@vibeflow-tools/cli 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import{a as ce,b as Ie,c as bn,d as kn,e as Te,f as wn,g as we,h as xe,i as Ce,j as ee,k as ue,l as z,m as De,n as Ae,o as xn,q as ne,r as Cn,s as Sn,t as En,u as _e}from"./chunk-BKTZSHJS.js";import{a as J,b as Pn}from"./chunk-KJ5LYG6A.js";import{Command as vo}from"commander";import{execSync as yn,execFileSync as Ge}from"child_process";import{readFileSync as yr,readdirSync as br,statSync as kr,existsSync as wr,writeFileSync as Xn,mkdirSync as Jn,unlinkSync as tt}from"fs";import{createRequire as xr}from"module";import{join as ae,resolve as Cr,basename as me,extname as Sr,dirname as Er}from"path";import{createServer as rt}from"http";import{spawn as Pr,execSync as ot}from"child_process";import{networkInterfaces as Ir}from"os";import de from"express";import{WebSocketServer as at,WebSocket as it}from"ws";import g from"chalk";import{createExpressMiddleware as Tr}from"@trpc/server/adapters/express";import*as Ht from"cheerio";import{readdirSync as So,statSync as Eo}from"fs";import{join as Io,extname as To}from"path";function In(t,e){let r=`<script data-vibeflow-overlay>${e}</script>`,i=t.lastIndexOf("</body>");return i!==-1?t.slice(0,i)+r+`
2
+ import{a as le,b as Ie,c as bn,d as kn,e as Te,f as wn,g as we,h as xe,i as Ce,j as ee,k as ce,l as z,m as De,n as Ae,o as xn,q as ne,r as Cn,s as Sn,t as En,u as _e}from"./chunk-BKTZSHJS.js";import{a as J,b as Pn}from"./chunk-KJ5LYG6A.js";import{Command as vo}from"commander";import{execSync as yn,execFileSync as Ge}from"child_process";import{readFileSync as br,readdirSync as kr,statSync as wr,existsSync as xr,writeFileSync as Xn,mkdirSync as Jn,unlinkSync as tt}from"fs";import{createRequire as Cr}from"module";import{join as ie,resolve as Sr,basename as me,extname as Er,dirname as Pr}from"path";import{createServer as rt}from"http";import{spawn as Ir,execSync as ot}from"child_process";import{networkInterfaces as Tr}from"os";import ue from"express";import{WebSocketServer as at,WebSocket as it}from"ws";import g from"chalk";import{createExpressMiddleware as _r}from"@trpc/server/adapters/express";import*as Ut from"cheerio";import{readdirSync as So,statSync as Eo}from"fs";import{join as Io,extname as To}from"path";function In(t,e){let r=`<script data-vibeflow-overlay>${e}</script>`,i=t.lastIndexOf("</body>");return i!==-1?t.slice(0,i)+r+`
3
3
  `+t.slice(i):t+`
4
- `+r}import{watch as Ut}from"chokidar";function Xe(t,e){let r=Ut(t,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}});return r.on("change",i=>{e.onChange(i)}),e.onAdd&&r.on("add",e.onAdd),e.onUnlink&&r.on("unlink",e.onUnlink),r}function Je(t,e){return Xe(t,{onChange:e.onChanged,onAdd:e.onChanged,onUnlink:e.onDeleted})}var Ze=`"use strict";
4
+ `+r}import{watch as Wt}from"chokidar";function Xe(t,e){let r=Wt(t,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}});return r.on("change",i=>{e.onChange(i)}),e.onAdd&&r.on("add",e.onAdd),e.onUnlink&&r.on("unlink",e.onUnlink),r}function Je(t,e){return Xe(t,{onChange:e.onChanged,onAdd:e.onChanged,onUnlink:e.onDeleted})}var Ze=`"use strict";
5
5
  (() => {
6
6
  var __create = Object.create;
7
7
  var __defProp = Object.defineProperty;
@@ -26269,7 +26269,9 @@ import{a as ce,b as Ie,c as bn,d as kn,e as Te,f as wn,g as we,h as xe,i as Ce,j
26269
26269
  // src/client/overlay-browser/api.ts
26270
26270
  function fetchTasks() {
26271
26271
  const url = PROTO_CONFIG.boardId ? \`\${PROTO_CONFIG.apiUrl}?boardId=\${encodeURIComponent(PROTO_CONFIG.boardId)}\` : PROTO_CONFIG.apiUrl;
26272
- fetch(url).then((r) => r.json()).then((d) => {
26272
+ const headers = {};
26273
+ if (PROTO_CONFIG.overlayApiKey) headers["X-Overlay-Api-Key"] = PROTO_CONFIG.overlayApiKey;
26274
+ fetch(url, Object.keys(headers).length > 0 ? { headers } : void 0).then((r) => r.json()).then((d) => {
26273
26275
  var _a, _b;
26274
26276
  state.tasks = d.tasks ?? [];
26275
26277
  (_b = (_a = state).onTasksFetched) == null ? void 0 : _b.call(_a, state.tasks);
@@ -29331,27 +29333,34 @@ lucide-react/dist/esm/lucide-react.js:
29331
29333
  * See the LICENSE file in the root directory of this source tree.
29332
29334
  *)
29333
29335
  */
29334
- `;function en(t){return`var PROTO_CONFIG = ${JSON.stringify({port:t,wsUrl:`ws://localhost:${t}`,apiUrl:`http://localhost:${t}/api/tasks`,pagesUrl:`http://localhost:${t}/api/pages`,screenshotsUrl:`http://localhost:${t}/screenshots/`})};
29336
+ `;function en(t){return`
29337
+ var PROTO_CONFIG = {
29338
+ port: ${t},
29339
+ wsUrl: 'ws://' + window.location.host,
29340
+ apiUrl: 'http://' + window.location.host + '/api/tasks',
29341
+ pagesUrl: 'http://' + window.location.host + '/api/pages',
29342
+ screenshotsUrl: 'http://' + window.location.host + '/screenshots/'
29343
+ };
29335
29344
  `+Ze}function Tn(t){return`var PROTO_CONFIG = ${JSON.stringify({port:0,wsUrl:"",apiUrl:`${t}/api/overlay/tasks`,pagesUrl:"",screenshotsUrl:""})};
29336
- `+Ze}import{existsSync as Wt,readFileSync as jt}from"fs";import{dirname as $t,join as tn}from"path";import{fileURLToPath as zt}from"url";var _n=`*,:after,:before{--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:rgba(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:rgba(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: }
29337
- /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,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,pre,samp{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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.mb-0\\.5{margin-bottom:.125rem}.ml-1\\.5{margin-left:.375rem}.mr-0\\.5{margin-right:.125rem}.mt-0\\.5{margin-top:.125rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-2\\.5{height:.625rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-4{height:1rem}.h-7{height:1.75rem}.min-h-\\[30px\\]{min-height:30px}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-10{width:2.5rem}.w-2\\.5{width:.625rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-4{width:1rem}.w-7{width:1.75rem}.w-full{width:100%}.min-w-\\[100px\\]{min-width:100px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-text{cursor:text}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-none{border-style:none}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/60{border-color:rgba(51,65,85,.6)}.border-slate-800\\/60{border-color:rgba(30,41,59,.6)}.border-violet-700\\/50{border-color:rgba(109,40,217,.5)}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-violet-900\\/30{background-color:rgba(76,29,149,.3)}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.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-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\\[10px\\]{font-size:10px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-tight{line-height:1.25}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/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-violet-300{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.text-violet-400{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{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-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}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--p-bg:#020c1b;--p-surface:#080f1e;--p-card:#0a0f1e;--p-input:#050d1a;--p-hover:#0d1f38;--p-border:#1e293b;--p-border-s:#1e3a5f;--p-border-t:#334155;--p-text:#e2e8f0;--p-text-sub:#cbd5e1;--p-text-m:#94a3b8;--p-text-f:#64748b;--p-text-g:#475569;--p-white:#fff;--p-blue:#2563eb;--p-blue-700:#1d4ed8;--p-blue-300:#60a5fa;--p-blue-200:#93c5fd;--p-purple:#a78bfa;--p-purple-300:#c4b5fd;--p-cyan-300:#7dd3fc;--p-amber:#f59e0b;--p-amber-300:#fcd34d;--p-green:#22c55e;--p-green-300:#6ee7b7;--p-red:#f87171;--p-red-500:#ef4444;--p-shadow-lg:0 8px 24px rgba(2,6,23,.28);--p-overlay:rgba(15,23,42,.2)}body,html{height:100%;margin:0;padding:0}body{font-family:Inter,sans-serif;background:var(--p-bg);color:var(--p-text)}#root{height:100%;display:flex;flex-direction:column;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--p-border-t) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--p-border-t);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--p-text-g)}#kanban-board{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden}#kanban-board::-webkit-scrollbar{display:none}#kanban-scroll-track{position:fixed;bottom:0;left:0;right:0;height:6px;background:transparent;z-index:40;pointer-events:none}#kanban-scroll-thumb{position:absolute;top:1px;height:4px;border-radius:2px;background:var(--p-border-t);cursor:pointer;pointer-events:auto;transition:background .15s}#kanban-scroll-thumb.dragging,#kanban-scroll-thumb:hover{background:var(--p-text-g)}.board-column{flex:1 0 260px;max-width:420px;display:flex;flex-direction:column;gap:6px;min-height:0}.column-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--p-surface);border:1px solid var(--p-border)}.column-scroll{flex:1;overflow-y:auto;min-height:0;gap:5px;padding-bottom:8px}.column-scroll,.task-card{display:flex;flex-direction:column}.task-card{background:var(--p-card);border:1px solid var(--p-border);border-radius:10px;padding:11px 13px;cursor:grab;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s;gap:7px}.task-card:hover{border-color:var(--p-border-s);background:var(--p-hover);box-shadow:0 4px 16px rgba(0,0,0,.3);transform:translateY(-1px)}.task-card:active{cursor:grabbing;transform:scale(.98)}.task-card.dragging{opacity:.4}.drag-over{outline:2px dashed rgba(59,130,246,.5);outline-offset:-3px;border-radius:10px;background:rgba(59,130,246,.04)}.file-compact-actions{opacity:0}.group\\/file-compact:hover .file-compact-actions{opacity:1}.file-normal-actions,.group\\/file-compact:hover .file-compact-ts{opacity:0}.group\\/file:hover .file-normal-actions{opacity:1}.group\\/file:hover{background:rgba(30,41,59,.6)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.sd-backlog{background:#475569}.sd-todo{background:#f59e0b}.sd-inprogress{background:#3b82f6;animation:pulse-prog 2s ease-in-out infinite}.sd-review{background:#a855f7}.sd-done{background:#22c55e}@keyframes pulse-prog{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.5)}50%{box-shadow:0 0 0 4px rgba(59,130,246,0)}}.type-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:10px;font-weight:500;border:1px solid}.type-bug{color:#fca5a5;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.25)}.type-feature{color:#86efac;background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.2)}.type-enhancement{color:#93c5fd;background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.2)}.type-task{color:#cbd5e1;background:rgba(148,163,184,.08);border-color:rgba(148,163,184,.2)}.type-research{color:#c4b5fd;background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.2)}.source-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;font-size:10px;font-family:JetBrains Mono,monospace;background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);color:#60a5fa;cursor:pointer;text-decoration:none;transition:background .1s,border-color .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.source-pill:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3)}@keyframes spin{to{transform:rotate(1turn)}}.spinner{display:inline-block;width:11px;height:11px;border:2px solid rgba(96,165,250,.3);border-top-color:#60a5fa;border-radius:50%;animation:spin .7s linear infinite}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;display:flex;align-items:center;justify-content:center}.modal-box{background:var(--p-card);border:1px solid var(--p-border);border-radius:14px;width:520px;max-width:95vw;overflow:hidden}.type-picker{display:flex;align-items:center;gap:6px}.type-picker-trigger{display:flex;align-items:center;gap:4px;width:auto;height:30px;padding:0 8px;border-radius:8px;border:1px solid var(--p-border-t);background:var(--p-card);color:var(--p-text-sub);font-size:13px;cursor:pointer;white-space:nowrap}.type-picker-label{font-size:11px;font-weight:500;color:var(--p-text-m);letter-spacing:.02em}.type-picker-trigger:hover{border-color:var(--p-text-g);color:var(--p-text)}.type-picker-options{display:none;align-items:center;gap:4px}.type-picker-options.open{display:flex}.type-picker-option{width:28px;height:28px;border-radius:7px;border:1px solid var(--p-border-t);background:var(--p-card);color:var(--p-text-sub);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px}.type-picker-option:hover{border-color:#60a5fa;color:#bfdbfe}#detail-panel-container{min-width:360px;max-width:min(860px,100%);position:absolute;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid #1e293b;animation:panel-slide-in .18s ease-out}#detail-panel-container.resizing{box-shadow:-12px 0 32px rgba(2,8,23,.6)}#detail-panel-resize-handle{position:absolute;left:0;top:0;width:12px;height:100%;cursor:ew-resize;z-index:5}#detail-panel-resize-handle:hover{background:linear-gradient(90deg,rgba(59,130,246,.22),rgba(59,130,246,0))}body.proto-resizing-panel{cursor:ew-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}#detail-panel{flex:1;background:var(--p-card);display:flex;flex-direction:column;overflow:hidden}@keyframes panel-slide-in{0%{width:0;opacity:0}to{width:420px;opacity:1}}.dp-header{padding:14px 16px 10px}.dp-header,.dp-tabs{border-bottom:1px solid var(--p-border);background:var(--p-surface);flex-shrink:0}.dp-tabs{display:flex;gap:0}.dp-tab{padding:8px 14px;font-size:12px;font-weight:500;color:var(--p-text-g);cursor:pointer;transition:color .12s,border-color .12s;background:none;border:none;border-bottom:2px solid transparent}.dp-tab:hover{color:var(--p-text-m)}.dp-tab.active{color:#93c5fd;border-bottom-color:#3b82f6}.dp-body{overflow:hidden}.dp-body,.dp-body>.dp-pane{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}.dp-body>.dp-pane{padding:14px 16px}#dp-details-pane,.dp-body>.dp-pane{overflow-y:auto;background:var(--p-card)}.dp-footer{padding:10px 16px 12px;border-top:1px solid var(--p-border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--p-card)}.dp-source-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:6px;font-size:10px;font-family:monospace;background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);color:#60a5fa;white-space:nowrap}.dp-source-pill:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3)}.dp-status-btn{padding:3px 10px;border-radius:6px;font-size:10px;font-weight:500;border:1px solid var(--p-border-t);color:var(--p-text-f);background:transparent;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.dp-status-btn:hover{border-color:var(--p-text-g);color:var(--p-text-m)}.dp-status-btn.active-backlog{border-color:#475569;background:rgba(100,116,139,.1);color:#94a3b8}.dp-status-btn.active-todo{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.1);color:#f59e0b}.dp-status-btn.active-in-progress{border-color:rgba(59,130,246,.5);background:rgba(59,130,246,.1);color:#60a5fa}.dp-status-btn.active-review{border-color:rgba(168,85,247,.5);background:rgba(168,85,247,.1);color:#a855f7}.dp-status-btn.active-done{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.08);color:#22c55e}.dp-input{width:100%;padding:7px 10px;border:1px solid var(--p-border-s);border-radius:8px;background:var(--p-input);color:var(--p-text);font-size:13px;font-family:inherit;outline:none;transition:border-color .12s,box-shadow .12s;box-sizing:border-box}.dp-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dp-input::-moz-placeholder{color:var(--p-border-t)}.dp-input::placeholder{color:var(--p-border-t)}.dp-textarea{width:100%;padding:8px 10px;border:1px solid var(--p-border-s);border-radius:8px;background:var(--p-input);color:var(--p-text);font-size:12px;font-family:monospace;line-height:1.6;resize:vertical;outline:none;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}.dp-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dp-textarea::-moz-placeholder{color:var(--p-border-t)}.dp-textarea::placeholder{color:var(--p-border-t)}.dp-meta-label{font-size:10px;font-weight:600;color:var(--p-text-g);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}@keyframes pulse-live{0%,to{box-shadow:0 0 0 0 rgba(74,222,128,.4)}50%{box-shadow:0 0 0 4px rgba(74,222,128,0)}}@keyframes agent-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes away-glow{0%,to{box-shadow:0 0 0 0 rgba(37,99,235,.45),0 0 24px rgba(37,99,235,.1);border-color:rgba(37,99,235,.35)}50%{box-shadow:0 0 0 14px rgba(37,99,235,0),0 0 48px rgba(37,99,235,.2);border-color:rgba(96,165,250,.6)}}@keyframes away-fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.focus-within\\:border-blue-500:focus-within{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\\:bg-red-900\\/40:hover{background-color:rgba(127,29,29,.4)}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700\\/50:hover{background-color:rgba(51,65,85,.5)}.hover\\:bg-slate-700\\/60:hover{background-color:rgba(51,65,85,.6)}.hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover\\:bg-violet-800\\/30:hover{background-color:rgba(91,33,182,.3)}.hover\\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.hover\\:text-slate-300:hover{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.hover\\:text-violet-300:hover{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.hover\\:underline:hover{text-decoration-line:underline}.group\\/comment:hover .group-hover\\/comment\\:opacity-100{opacity:1}`;var nn='"use strict";(()=>{var _m=Object.create;var ld=Object.defineProperty;var qm=Object.getOwnPropertyDescriptor;var Wm=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,$m=Object.prototype.hasOwnProperty;var Yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Gm=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Wm(t))!$m.call(e,o)&&o!==a&&ld(e,o,{get:()=>t[o],enumerable:!(r=qm(t,o))||r.enumerable});return e};var D=(e,t,a)=>(a=e!=null?_m(Vm(e)):{},Gm(t||!e||!e.__esModule?ld(a,"default",{value:e,enumerable:!0}):a,e));var vd=Yt(ne=>{"use strict";var mo=Symbol.for("react.element"),Km=Symbol.for("react.portal"),jm=Symbol.for("react.fragment"),Xm=Symbol.for("react.strict_mode"),Qm=Symbol.for("react.profiler"),Ym=Symbol.for("react.provider"),Zm=Symbol.for("react.context"),Jm=Symbol.for("react.forward_ref"),eg=Symbol.for("react.suspense"),tg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),sd=Symbol.iterator;function rg(e){return e===null||typeof e!="object"?null:(e=sd&&e[sd]||e["@@iterator"],typeof e=="function"?e:null)}var dd={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},fd=Object.assign,cd={};function br(e,t,a){this.props=e,this.context=t,this.refs=cd,this.updater=a||dd}br.prototype.isReactComponent={};br.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")};br.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function pd(){}pd.prototype=br.prototype;function Ls(e,t,a){this.props=e,this.context=t,this.refs=cd,this.updater=a||dd}var ys=Ls.prototype=new pd;ys.constructor=Ls;fd(ys,br.prototype);ys.isPureReactComponent=!0;var ud=Array.isArray,md=Object.prototype.hasOwnProperty,Ss={current:null},gd={key:!0,ref:!0,__self:!0,__source:!0};function hd(e,t,a){var r,o={},n=null,l=null;if(t!=null)for(r in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(n=""+t.key),t)md.call(t,r)&&!gd.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=a;else if(1<s){for(var u=Array(s),d=0;d<s;d++)u[d]=arguments[d+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)o[r]===void 0&&(o[r]=s[r]);return{$$typeof:mo,type:e,key:n,ref:l,props:o,_owner:Ss.current}}function og(e,t){return{$$typeof:mo,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Is(e){return typeof e=="object"&&e!==null&&e.$$typeof===mo}function ng(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return t[a]})}var id=/\\/+/g;function vs(e,t){return typeof e=="object"&&e!==null&&e.key!=null?ng(""+e.key):t.toString(36)}function Fn(e,t,a,r,o){var n=typeof e;(n==="undefined"||n==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(n){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case mo:case Km:l=!0}}if(l)return l=e,o=o(l),e=r===""?"."+vs(l,0):r,ud(o)?(a="",e!=null&&(a=e.replace(id,"$&/")+"/"),Fn(o,t,a,"",function(d){return d})):o!=null&&(Is(o)&&(o=og(o,a+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(id,"$&/")+"/")+e)),t.push(o)),1;if(l=0,r=r===""?".":r+":",ud(e))for(var s=0;s<e.length;s++){n=e[s];var u=r+vs(n,s);l+=Fn(n,t,a,u,o)}else if(u=rg(e),typeof u=="function")for(e=u.call(e),s=0;!(n=e.next()).done;)n=n.value,u=r+vs(n,s++),l+=Fn(n,t,a,u,o);else if(n==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function En(e,t,a){if(e==null)return e;var r=[],o=0;return Fn(e,r,"","",function(n){return t.call(a,n,o++)}),r}function lg(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(a){(e._status===0||e._status===-1)&&(e._status=1,e._result=a)},function(a){(e._status===0||e._status===-1)&&(e._status=2,e._result=a)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Ke={current:null},Bn={transition:null},sg={ReactCurrentDispatcher:Ke,ReactCurrentBatchConfig:Bn,ReactCurrentOwner:Ss};function xd(){throw Error("act(...) is not supported in production builds of React.")}ne.Children={map:En,forEach:function(e,t,a){En(e,function(){t.apply(this,arguments)},a)},count:function(e){var t=0;return En(e,function(){t++}),t},toArray:function(e){return En(e,function(t){return t})||[]},only:function(e){if(!Is(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ne.Component=br;ne.Fragment=jm;ne.Profiler=Qm;ne.PureComponent=Ls;ne.StrictMode=Xm;ne.Suspense=eg;ne.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sg;ne.act=xd;ne.cloneElement=function(e,t,a){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=fd({},e.props),o=e.key,n=e.ref,l=e._owner;if(t!=null){if(t.ref!==void 0&&(n=t.ref,l=Ss.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)md.call(t,u)&&!gd.hasOwnProperty(u)&&(r[u]=t[u]===void 0&&s!==void 0?s[u]:t[u])}var u=arguments.length-2;if(u===1)r.children=a;else if(1<u){s=Array(u);for(var d=0;d<u;d++)s[d]=arguments[d+2];r.children=s}return{$$typeof:mo,type:e.type,key:o,ref:n,props:r,_owner:l}};ne.createContext=function(e){return e={$$typeof:Zm,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Ym,_context:e},e.Consumer=e};ne.createElement=hd;ne.createFactory=function(e){var t=hd.bind(null,e);return t.type=e,t};ne.createRef=function(){return{current:null}};ne.forwardRef=function(e){return{$$typeof:Jm,render:e}};ne.isValidElement=Is;ne.lazy=function(e){return{$$typeof:ag,_payload:{_status:-1,_result:e},_init:lg}};ne.memo=function(e,t){return{$$typeof:tg,type:e,compare:t===void 0?null:t}};ne.startTransition=function(e){var t=Bn.transition;Bn.transition={};try{e()}finally{Bn.transition=t}};ne.unstable_act=xd;ne.useCallback=function(e,t){return Ke.current.useCallback(e,t)};ne.useContext=function(e){return Ke.current.useContext(e)};ne.useDebugValue=function(){};ne.useDeferredValue=function(e){return Ke.current.useDeferredValue(e)};ne.useEffect=function(e,t){return Ke.current.useEffect(e,t)};ne.useId=function(){return Ke.current.useId()};ne.useImperativeHandle=function(e,t,a){return Ke.current.useImperativeHandle(e,t,a)};ne.useInsertionEffect=function(e,t){return Ke.current.useInsertionEffect(e,t)};ne.useLayoutEffect=function(e,t){return Ke.current.useLayoutEffect(e,t)};ne.useMemo=function(e,t){return Ke.current.useMemo(e,t)};ne.useReducer=function(e,t,a){return Ke.current.useReducer(e,t,a)};ne.useRef=function(e){return Ke.current.useRef(e)};ne.useState=function(e){return Ke.current.useState(e)};ne.useSyncExternalStore=function(e,t,a){return Ke.current.useSyncExternalStore(e,t,a)};ne.useTransition=function(){return Ke.current.useTransition()};ne.version="18.3.1"});var Ie=Yt((dv,Ld)=>{"use strict";Ld.exports=vd()});var Rd=Yt(xe=>{"use strict";function bs(e,t){var a=e.length;e.push(t);e:for(;0<a;){var r=a-1>>>1,o=e[r];if(0<On(o,t))e[r]=t,e[a]=o,a=r;else break e}}function Pt(e){return e.length===0?null:e[0]}function Un(e){if(e.length===0)return null;var t=e[0],a=e.pop();if(a!==t){e[0]=a;e:for(var r=0,o=e.length,n=o>>>1;r<n;){var l=2*(r+1)-1,s=e[l],u=l+1,d=e[u];if(0>On(s,a))u<o&&0>On(d,s)?(e[r]=d,e[u]=a,r=u):(e[r]=s,e[l]=a,r=l);else if(u<o&&0>On(d,a))e[r]=d,e[u]=a,r=u;else break e}}return t}function On(e,t){var a=e.sortIndex-t.sortIndex;return a!==0?a:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(yd=performance,xe.unstable_now=function(){return yd.now()}):(Cs=Date,Sd=Cs.now(),xe.unstable_now=function(){return Cs.now()-Sd});var yd,Cs,Sd,_t=[],ca=[],ug=1,mt=null,_e=3,Nn=!1,Ka=!1,ho=!1,wd=typeof setTimeout=="function"?setTimeout:null,kd=typeof clearTimeout=="function"?clearTimeout:null,Id=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ps(e){for(var t=Pt(ca);t!==null;){if(t.callback===null)Un(ca);else if(t.startTime<=e)Un(ca),t.sortIndex=t.expirationTime,bs(_t,t);else break;t=Pt(ca)}}function Ts(e){if(ho=!1,Ps(e),!Ka)if(Pt(_t)!==null)Ka=!0,Ds(Rs);else{var t=Pt(ca);t!==null&&As(Ts,t.startTime-e)}}function Rs(e,t){Ka=!1,ho&&(ho=!1,kd(xo),xo=-1),Nn=!0;var a=_e;try{for(Ps(t),mt=Pt(_t);mt!==null&&(!(mt.expirationTime>t)||e&&!Td());){var r=mt.callback;if(typeof r=="function"){mt.callback=null,_e=mt.priorityLevel;var o=r(mt.expirationTime<=t);t=xe.unstable_now(),typeof o=="function"?mt.callback=o:mt===Pt(_t)&&Un(_t),Ps(t)}else Un(_t);mt=Pt(_t)}if(mt!==null)var n=!0;else{var l=Pt(ca);l!==null&&As(Ts,l.startTime-t),n=!1}return n}finally{mt=null,_e=a,Nn=!1}}var Hn=!1,zn=null,xo=-1,bd=5,Pd=-1;function Td(){return!(xe.unstable_now()-Pd<bd)}function ws(){if(zn!==null){var e=xe.unstable_now();Pd=e;var t=!0;try{t=zn(!0,e)}finally{t?go():(Hn=!1,zn=null)}}else Hn=!1}var go;typeof Id=="function"?go=function(){Id(ws)}:typeof MessageChannel<"u"?(ks=new MessageChannel,Cd=ks.port2,ks.port1.onmessage=ws,go=function(){Cd.postMessage(null)}):go=function(){wd(ws,0)};var ks,Cd;function Ds(e){zn=e,Hn||(Hn=!0,go())}function As(e,t){xo=wd(function(){e(xe.unstable_now())},t)}xe.unstable_IdlePriority=5;xe.unstable_ImmediatePriority=1;xe.unstable_LowPriority=4;xe.unstable_NormalPriority=3;xe.unstable_Profiling=null;xe.unstable_UserBlockingPriority=2;xe.unstable_cancelCallback=function(e){e.callback=null};xe.unstable_continueExecution=function(){Ka||Nn||(Ka=!0,Ds(Rs))};xe.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):bd=0<e?Math.floor(1e3/e):5};xe.unstable_getCurrentPriorityLevel=function(){return _e};xe.unstable_getFirstCallbackNode=function(){return Pt(_t)};xe.unstable_next=function(e){switch(_e){case 1:case 2:case 3:var t=3;break;default:t=_e}var a=_e;_e=t;try{return e()}finally{_e=a}};xe.unstable_pauseExecution=function(){};xe.unstable_requestPaint=function(){};xe.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var a=_e;_e=e;try{return t()}finally{_e=a}};xe.unstable_scheduleCallback=function(e,t,a){var r=xe.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?r+a:r):a=r,e){case 1:var o=-1;break;case 2:o=250;break;case 5:o=1073741823;break;case 4:o=1e4;break;default:o=5e3}return o=a+o,e={id:ug++,callback:t,priorityLevel:e,startTime:a,expirationTime:o,sortIndex:-1},a>r?(e.sortIndex=a,bs(ca,e),Pt(_t)===null&&e===Pt(ca)&&(ho?(kd(xo),xo=-1):ho=!0,As(Ts,a-r))):(e.sortIndex=o,bs(_t,e),Ka||Nn||(Ka=!0,Ds(Rs))),e};xe.unstable_shouldYield=Td;xe.unstable_wrapCallback=function(e){var t=_e;return function(){var a=_e;_e=t;try{return e.apply(this,arguments)}finally{_e=a}}}});var Ad=Yt((cv,Dd)=>{"use strict";Dd.exports=Rd()});var Op=Yt(ct=>{"use strict";var ig=Ie(),dt=Ad();function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Nf=new Set,No={};function lr(e,t){Kr(e,t),Kr(e+"Capture",t)}function Kr(e,t){for(No[e]=t,e=0;e<t.length;e++)Nf.add(t[e])}var ra=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),eu=Object.prototype.hasOwnProperty,dg=/^[: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]*$/,Md={},Ed={};function fg(e){return eu.call(Ed,e)?!0:eu.call(Md,e)?!1:dg.test(e)?Ed[e]=!0:(Md[e]=!0,!1)}function cg(e,t,a,r){if(a!==null&&a.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:a!==null?!a.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function pg(e,t,a,r){if(t===null||typeof t>"u"||cg(e,t,a,r))return!0;if(r)return!1;if(a!==null)switch(a.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 Qe(e,t,a,r,o,n,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=a,this.propertyName=e,this.type=t,this.sanitizeURL=n,this.removeEmptyString=l}var Ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ne[e]=new Qe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ne[t]=new Qe(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ne[e]=new Qe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ne[e]=new Qe(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){Ne[e]=new Qe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ne[e]=new Qe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ne[e]=new Qe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ne[e]=new Qe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ne[e]=new Qe(e,5,!1,e.toLowerCase(),null,!1,!1)});var Gu=/[\\-:]([a-z])/g;function Ku(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(Gu,Ku);Ne[t]=new Qe(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(Gu,Ku);Ne[t]=new Qe(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(Gu,Ku);Ne[t]=new Qe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ne[e]=new Qe(e,1,!1,e.toLowerCase(),null,!1,!1)});Ne.xlinkHref=new Qe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ne[e]=new Qe(e,1,!1,e.toLowerCase(),null,!0,!0)});function ju(e,t,a,r){var o=Ne.hasOwnProperty(t)?Ne[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(pg(t,a,o,r)&&(a=null),r||o===null?fg(t)&&(a===null?e.removeAttribute(t):e.setAttribute(t,""+a)):o.mustUseProperty?e[o.propertyName]=a===null?o.type===3?!1:"":a:(t=o.attributeName,r=o.attributeNamespace,a===null?e.removeAttribute(t):(o=o.type,a=o===3||o===4&&a===!0?"":""+a,r?e.setAttributeNS(r,t,a):e.setAttribute(t,a))))}var sa=ig.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n=Symbol.for("react.element"),Rr=Symbol.for("react.portal"),Dr=Symbol.for("react.fragment"),Xu=Symbol.for("react.strict_mode"),tu=Symbol.for("react.profiler"),Hf=Symbol.for("react.provider"),_f=Symbol.for("react.context"),Qu=Symbol.for("react.forward_ref"),au=Symbol.for("react.suspense"),ru=Symbol.for("react.suspense_list"),Yu=Symbol.for("react.memo"),ma=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode");var qf=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var Fd=Symbol.iterator;function vo(e){return e===null||typeof e!="object"?null:(e=Fd&&e[Fd]||e["@@iterator"],typeof e=="function"?e:null)}var be=Object.assign,Ms;function bo(e){if(Ms===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\\n( *(at )?)/);Ms=t&&t[1]||""}return`\n`+Ms+e}var Es=!1;function Fs(e,t){if(!e||Es)return"";Es=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var o=d.stack.split(`\n`),n=r.stack.split(`\n`),l=o.length-1,s=n.length-1;1<=l&&0<=s&&o[l]!==n[s];)s--;for(;1<=l&&0<=s;l--,s--)if(o[l]!==n[s]){if(l!==1||s!==1)do if(l--,s--,0>s||o[l]!==n[s]){var u=`\n`+o[l].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=l&&0<=s);break}}}finally{Es=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?bo(e):""}function mg(e){switch(e.tag){case 5:return bo(e.type);case 16:return bo("Lazy");case 13:return bo("Suspense");case 19:return bo("SuspenseList");case 0:case 2:case 15:return e=Fs(e.type,!1),e;case 11:return e=Fs(e.type.render,!1),e;case 1:return e=Fs(e.type,!0),e;default:return""}}function ou(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 Dr:return"Fragment";case Rr:return"Portal";case tu:return"Profiler";case Xu:return"StrictMode";case au:return"Suspense";case ru:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _f:return(e.displayName||"Context")+".Consumer";case Hf:return(e._context.displayName||"Context")+".Provider";case Qu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Yu:return t=e.displayName||null,t!==null?t:ou(e.type)||"Memo";case ma:t=e._payload,e=e._init;try{return ou(e(t))}catch{}}return null}function gg(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 ou(t);case 8:return t===Xu?"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 Ta(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Wf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function hg(e){var t=Wf(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var o=a.get,n=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(l){r=""+l,n.call(this,l)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function qn(e){e._valueTracker||(e._valueTracker=hg(e))}function Vf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),r="";return e&&(r=Wf(e)?e.checked?"true":"false":e.value),e=r,e!==a?(t.setValue(e),!0):!1}function hl(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 nu(e,t){var a=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??e._wrapperState.initialChecked})}function Bd(e,t){var a=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;a=Ta(t.value!=null?t.value:a),e._wrapperState={initialChecked:r,initialValue:a,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function $f(e,t){t=t.checked,t!=null&&ju(e,"checked",t,!1)}function lu(e,t){$f(e,t);var a=Ta(t.value),r=t.type;if(a!=null)r==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?su(e,t.type,a):t.hasOwnProperty("defaultValue")&&su(e,t.type,Ta(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Od(e,t,a){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,a||t===e.value||(e.value=t),e.defaultValue=t}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function su(e,t,a){(t!=="number"||hl(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var Po=Array.isArray;function _r(e,t,a,r){if(e=e.options,t){t={};for(var o=0;o<a.length;o++)t["$"+a[o]]=!0;for(a=0;a<e.length;a++)o=t.hasOwnProperty("$"+e[a].value),e[a].selected!==o&&(e[a].selected=o),o&&r&&(e[a].defaultSelected=!0)}else{for(a=""+Ta(a),t=null,o=0;o<e.length;o++){if(e[o].value===a){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function uu(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(P(91));return be({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function zd(e,t){var a=t.value;if(a==null){if(a=t.children,t=t.defaultValue,a!=null){if(t!=null)throw Error(P(92));if(Po(a)){if(1<a.length)throw Error(P(93));a=a[0]}t=a}t==null&&(t=""),a=t}e._wrapperState={initialValue:Ta(a)}}function Gf(e,t){var a=Ta(t.value),r=Ta(t.defaultValue);a!=null&&(a=""+a,a!==e.value&&(e.value=a),t.defaultValue==null&&e.defaultValue!==a&&(e.defaultValue=a)),r!=null&&(e.defaultValue=""+r)}function Ud(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Kf(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function iu(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Kf(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Wn,jf=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,a,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,a,r,o)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Wn=Wn||document.createElement("div"),Wn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Wn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ho(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var Do={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},xg=["Webkit","ms","Moz","O"];Object.keys(Do).forEach(function(e){xg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Do[t]=Do[e]})});function Xf(e,t,a){return t==null||typeof t=="boolean"||t===""?"":a||typeof t!="number"||t===0||Do.hasOwnProperty(e)&&Do[e]?(""+t).trim():t+"px"}function Qf(e,t){e=e.style;for(var a in t)if(t.hasOwnProperty(a)){var r=a.indexOf("--")===0,o=Xf(a,t[a],r);a==="float"&&(a="cssFloat"),r?e.setProperty(a,o):e[a]=o}}var vg=be({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 du(e,t){if(t){if(vg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function fu(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 cu=null;function Zu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pu=null,qr=null,Wr=null;function Nd(e){if(e=on(e)){if(typeof pu!="function")throw Error(P(280));var t=e.stateNode;t&&(t=Vl(t),pu(e.stateNode,e.type,t))}}function Yf(e){qr?Wr?Wr.push(e):Wr=[e]:qr=e}function Zf(){if(qr){var e=qr,t=Wr;if(Wr=qr=null,Nd(e),t)for(e=0;e<t.length;e++)Nd(t[e])}}function Jf(e,t){return e(t)}function ec(){}var Bs=!1;function tc(e,t,a){if(Bs)return e(t,a);Bs=!0;try{return Jf(e,t,a)}finally{Bs=!1,(qr!==null||Wr!==null)&&(ec(),Zf())}}function _o(e,t){var a=e.stateNode;if(a===null)return null;var r=Vl(a);if(r===null)return null;a=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(P(231,t,typeof a));return a}var mu=!1;if(ra)try{Pr={},Object.defineProperty(Pr,"passive",{get:function(){mu=!0}}),window.addEventListener("test",Pr,Pr),window.removeEventListener("test",Pr,Pr)}catch{mu=!1}var Pr;function Lg(e,t,a,r,o,n,l,s,u){var d=Array.prototype.slice.call(arguments,3);try{t.apply(a,d)}catch(g){this.onError(g)}}var Ao=!1,xl=null,vl=!1,gu=null,yg={onError:function(e){Ao=!0,xl=e}};function Sg(e,t,a,r,o,n,l,s,u){Ao=!1,xl=null,Lg.apply(yg,arguments)}function Ig(e,t,a,r,o,n,l,s,u){if(Sg.apply(this,arguments),Ao){if(Ao){var d=xl;Ao=!1,xl=null}else throw Error(P(198));vl||(vl=!0,gu=d)}}function sr(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function ac(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Hd(e){if(sr(e)!==e)throw Error(P(188))}function Cg(e){var t=e.alternate;if(!t){if(t=sr(e),t===null)throw Error(P(188));return t!==e?null:e}for(var a=e,r=t;;){var o=a.return;if(o===null)break;var n=o.alternate;if(n===null){if(r=o.return,r!==null){a=r;continue}break}if(o.child===n.child){for(n=o.child;n;){if(n===a)return Hd(o),e;if(n===r)return Hd(o),t;n=n.sibling}throw Error(P(188))}if(a.return!==r.return)a=o,r=n;else{for(var l=!1,s=o.child;s;){if(s===a){l=!0,a=o,r=n;break}if(s===r){l=!0,r=o,a=n;break}s=s.sibling}if(!l){for(s=n.child;s;){if(s===a){l=!0,a=n,r=o;break}if(s===r){l=!0,r=n,a=o;break}s=s.sibling}if(!l)throw Error(P(189))}}if(a.alternate!==r)throw Error(P(190))}if(a.tag!==3)throw Error(P(188));return a.stateNode.current===a?e:t}function rc(e){return e=Cg(e),e!==null?oc(e):null}function oc(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=oc(e);if(t!==null)return t;e=e.sibling}return null}var nc=dt.unstable_scheduleCallback,_d=dt.unstable_cancelCallback,wg=dt.unstable_shouldYield,kg=dt.unstable_requestPaint,Te=dt.unstable_now,bg=dt.unstable_getCurrentPriorityLevel,Ju=dt.unstable_ImmediatePriority,lc=dt.unstable_UserBlockingPriority,Ll=dt.unstable_NormalPriority,Pg=dt.unstable_LowPriority,sc=dt.unstable_IdlePriority,Hl=null,$t=null;function Tg(e){if($t&&typeof $t.onCommitFiberRoot=="function")try{$t.onCommitFiberRoot(Hl,e,void 0,(e.current.flags&128)===128)}catch{}}var Mt=Math.clz32?Math.clz32:Ag,Rg=Math.log,Dg=Math.LN2;function Ag(e){return e>>>=0,e===0?32:31-(Rg(e)/Dg|0)|0}var Vn=64,$n=4194304;function To(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 yl(e,t){var a=e.pendingLanes;if(a===0)return 0;var r=0,o=e.suspendedLanes,n=e.pingedLanes,l=a&268435455;if(l!==0){var s=l&~o;s!==0?r=To(s):(n&=l,n!==0&&(r=To(n)))}else l=a&~o,l!==0?r=To(l):n!==0&&(r=To(n));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,n=t&-t,o>=n||o===16&&(n&4194240)!==0))return t;if((r&4)!==0&&(r|=a&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)a=31-Mt(t),o=1<<a,r|=e[a],t&=~o;return r}function Mg(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Eg(e,t){for(var a=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,n=e.pendingLanes;0<n;){var l=31-Mt(n),s=1<<l,u=o[l];u===-1?((s&a)===0||(s&r)!==0)&&(o[l]=Mg(s,t)):u<=t&&(e.expiredLanes|=s),n&=~s}}function hu(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function uc(){var e=Vn;return Vn<<=1,(Vn&4194240)===0&&(Vn=64),e}function Os(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function an(e,t,a){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mt(t),e[t]=a}function Fg(e,t){var a=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<a;){var o=31-Mt(a),n=1<<o;t[o]=0,r[o]=-1,e[o]=-1,a&=~n}}function ei(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var r=31-Mt(a),o=1<<r;o&t|e[r]&t&&(e[r]|=t),a&=~o}}var pe=0;function ic(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var dc,ti,fc,cc,pc,xu=!1,Gn=[],ya=null,Sa=null,Ia=null,qo=new Map,Wo=new Map,ha=[],Bg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function qd(e,t){switch(e){case"focusin":case"focusout":ya=null;break;case"dragenter":case"dragleave":Sa=null;break;case"mouseover":case"mouseout":Ia=null;break;case"pointerover":case"pointerout":qo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Wo.delete(t.pointerId)}}function Lo(e,t,a,r,o,n){return e===null||e.nativeEvent!==n?(e={blockedOn:t,domEventName:a,eventSystemFlags:r,nativeEvent:n,targetContainers:[o]},t!==null&&(t=on(t),t!==null&&ti(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function Og(e,t,a,r,o){switch(t){case"focusin":return ya=Lo(ya,e,t,a,r,o),!0;case"dragenter":return Sa=Lo(Sa,e,t,a,r,o),!0;case"mouseover":return Ia=Lo(Ia,e,t,a,r,o),!0;case"pointerover":var n=o.pointerId;return qo.set(n,Lo(qo.get(n)||null,e,t,a,r,o)),!0;case"gotpointercapture":return n=o.pointerId,Wo.set(n,Lo(Wo.get(n)||null,e,t,a,r,o)),!0}return!1}function mc(e){var t=Qa(e.target);if(t!==null){var a=sr(t);if(a!==null){if(t=a.tag,t===13){if(t=ac(a),t!==null){e.blockedOn=t,pc(e.priority,function(){fc(a)});return}}else if(t===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ll(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=vu(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var r=new a.constructor(a.type,a);cu=r,a.target.dispatchEvent(r),cu=null}else return t=on(a),t!==null&&ti(t),e.blockedOn=a,!1;t.shift()}return!0}function Wd(e,t,a){ll(e)&&a.delete(t)}function zg(){xu=!1,ya!==null&&ll(ya)&&(ya=null),Sa!==null&&ll(Sa)&&(Sa=null),Ia!==null&&ll(Ia)&&(Ia=null),qo.forEach(Wd),Wo.forEach(Wd)}function yo(e,t){e.blockedOn===t&&(e.blockedOn=null,xu||(xu=!0,dt.unstable_scheduleCallback(dt.unstable_NormalPriority,zg)))}function Vo(e){function t(o){return yo(o,e)}if(0<Gn.length){yo(Gn[0],e);for(var a=1;a<Gn.length;a++){var r=Gn[a];r.blockedOn===e&&(r.blockedOn=null)}}for(ya!==null&&yo(ya,e),Sa!==null&&yo(Sa,e),Ia!==null&&yo(Ia,e),qo.forEach(t),Wo.forEach(t),a=0;a<ha.length;a++)r=ha[a],r.blockedOn===e&&(r.blockedOn=null);for(;0<ha.length&&(a=ha[0],a.blockedOn===null);)mc(a),a.blockedOn===null&&ha.shift()}var Vr=sa.ReactCurrentBatchConfig,Sl=!0;function Ug(e,t,a,r){var o=pe,n=Vr.transition;Vr.transition=null;try{pe=1,ai(e,t,a,r)}finally{pe=o,Vr.transition=n}}function Ng(e,t,a,r){var o=pe,n=Vr.transition;Vr.transition=null;try{pe=4,ai(e,t,a,r)}finally{pe=o,Vr.transition=n}}function ai(e,t,a,r){if(Sl){var o=vu(e,t,a,r);if(o===null)Ws(e,t,r,Il,a),qd(e,r);else if(Og(o,e,t,a,r))r.stopPropagation();else if(qd(e,r),t&4&&-1<Bg.indexOf(e)){for(;o!==null;){var n=on(o);if(n!==null&&dc(n),n=vu(e,t,a,r),n===null&&Ws(e,t,r,Il,a),n===o)break;o=n}o!==null&&r.stopPropagation()}else Ws(e,t,r,null,a)}}var Il=null;function vu(e,t,a,r){if(Il=null,e=Zu(r),e=Qa(e),e!==null)if(t=sr(e),t===null)e=null;else if(a=t.tag,a===13){if(e=ac(t),e!==null)return e;e=null}else if(a===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Il=e,null}function gc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(bg()){case Ju:return 1;case lc:return 4;case Ll:case Pg:return 16;case sc:return 536870912;default:return 16}default:return 16}}var va=null,ri=null,sl=null;function hc(){if(sl)return sl;var e,t=ri,a=t.length,r,o="value"in va?va.value:va.textContent,n=o.length;for(e=0;e<a&&t[e]===o[e];e++);var l=a-e;for(r=1;r<=l&&t[a-r]===o[n-r];r++);return sl=o.slice(e,1<r?1-r:void 0)}function ul(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Kn(){return!0}function Vd(){return!1}function ft(e){function t(a,r,o,n,l){this._reactName=a,this._targetInst=o,this.type=r,this.nativeEvent=n,this.target=l,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(a=e[s],this[s]=a?a(n):n[s]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?Kn:Vd,this.isPropagationStopped=Vd,this}return be(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=Kn)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Kn)},persist:function(){},isPersistent:Kn}),t}var eo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},oi=ft(eo),rn=be({},eo,{view:0,detail:0}),Hg=ft(rn),zs,Us,So,_l=be({},rn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ni,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==So&&(So&&e.type==="mousemove"?(zs=e.screenX-So.screenX,Us=e.screenY-So.screenY):Us=zs=0,So=e),zs)},movementY:function(e){return"movementY"in e?e.movementY:Us}}),$d=ft(_l),_g=be({},_l,{dataTransfer:0}),qg=ft(_g),Wg=be({},rn,{relatedTarget:0}),Ns=ft(Wg),Vg=be({},eo,{animationName:0,elapsedTime:0,pseudoElement:0}),$g=ft(Vg),Gg=be({},eo,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Kg=ft(Gg),jg=be({},eo,{data:0}),Gd=ft(jg),Xg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Qg={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Yg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Yg[e])?!!t[e]:!1}function ni(){return Zg}var Jg=be({},rn,{key:function(e){if(e.key){var t=Xg[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ul(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Qg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ni,charCode:function(e){return e.type==="keypress"?ul(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ul(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),eh=ft(Jg),th=be({},_l,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Kd=ft(th),ah=be({},rn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ni}),rh=ft(ah),oh=be({},eo,{propertyName:0,elapsedTime:0,pseudoElement:0}),nh=ft(oh),lh=be({},_l,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),sh=ft(lh),uh=[9,13,27,32],li=ra&&"CompositionEvent"in window,Mo=null;ra&&"documentMode"in document&&(Mo=document.documentMode);var ih=ra&&"TextEvent"in window&&!Mo,xc=ra&&(!li||Mo&&8<Mo&&11>=Mo),jd=" ",Xd=!1;function vc(e,t){switch(e){case"keyup":return uh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Lc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ar=!1;function dh(e,t){switch(e){case"compositionend":return Lc(t);case"keypress":return t.which!==32?null:(Xd=!0,jd);case"textInput":return e=t.data,e===jd&&Xd?null:e;default:return null}}function fh(e,t){if(Ar)return e==="compositionend"||!li&&vc(e,t)?(e=hc(),sl=ri=va=null,Ar=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return xc&&t.locale!=="ko"?null:t.data;default:return null}}var ch={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Qd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!ch[e.type]:t==="textarea"}function yc(e,t,a,r){Yf(r),t=Cl(t,"onChange"),0<t.length&&(a=new oi("onChange","change",null,a,r),e.push({event:a,listeners:t}))}var Eo=null,$o=null;function ph(e){Ac(e,0)}function ql(e){var t=Fr(e);if(Vf(t))return e}function mh(e,t){if(e==="change")return t}var Sc=!1;ra&&(ra?(Xn="oninput"in document,Xn||(Hs=document.createElement("div"),Hs.setAttribute("oninput","return;"),Xn=typeof Hs.oninput=="function"),jn=Xn):jn=!1,Sc=jn&&(!document.documentMode||9<document.documentMode));var jn,Xn,Hs;function Yd(){Eo&&(Eo.detachEvent("onpropertychange",Ic),$o=Eo=null)}function Ic(e){if(e.propertyName==="value"&&ql($o)){var t=[];yc(t,$o,e,Zu(e)),tc(ph,t)}}function gh(e,t,a){e==="focusin"?(Yd(),Eo=t,$o=a,Eo.attachEvent("onpropertychange",Ic)):e==="focusout"&&Yd()}function hh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ql($o)}function xh(e,t){if(e==="click")return ql(t)}function vh(e,t){if(e==="input"||e==="change")return ql(t)}function Lh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Ft=typeof Object.is=="function"?Object.is:Lh;function Go(e,t){if(Ft(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(r=0;r<a.length;r++){var o=a[r];if(!eu.call(t,o)||!Ft(e[o],t[o]))return!1}return!0}function Zd(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Jd(e,t){var a=Zd(e);e=0;for(var r;a;){if(a.nodeType===3){if(r=e+a.textContent.length,e<=t&&r>=t)return{node:a,offset:t-e};e=r}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Zd(a)}}function Cc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wc(){for(var e=window,t=hl();t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=hl(e.document)}return t}function si(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 yh(e){var t=wc(),a=e.focusedElem,r=e.selectionRange;if(t!==a&&a&&a.ownerDocument&&Cc(a.ownerDocument.documentElement,a)){if(r!==null&&si(a)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in a)a.selectionStart=t,a.selectionEnd=Math.min(e,a.value.length);else if(e=(t=a.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=a.textContent.length,n=Math.min(r.start,o);r=r.end===void 0?n:Math.min(r.end,o),!e.extend&&n>r&&(o=r,r=n,n=o),o=Jd(a,n);var l=Jd(a,r);o&&l&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),n>r?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=a;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<t.length;a++)e=t[a],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Sh=ra&&"documentMode"in document&&11>=document.documentMode,Mr=null,Lu=null,Fo=null,yu=!1;function ef(e,t,a){var r=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;yu||Mr==null||Mr!==hl(r)||(r=Mr,"selectionStart"in r&&si(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}),Fo&&Go(Fo,r)||(Fo=r,r=Cl(Lu,"onSelect"),0<r.length&&(t=new oi("onSelect","select",null,t,a),e.push({event:t,listeners:r}),t.target=Mr)))}function Qn(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var Er={animationend:Qn("Animation","AnimationEnd"),animationiteration:Qn("Animation","AnimationIteration"),animationstart:Qn("Animation","AnimationStart"),transitionend:Qn("Transition","TransitionEnd")},_s={},kc={};ra&&(kc=document.createElement("div").style,"AnimationEvent"in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),"TransitionEvent"in window||delete Er.transitionend.transition);function Wl(e){if(_s[e])return _s[e];if(!Er[e])return e;var t=Er[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in kc)return _s[e]=t[a];return e}var bc=Wl("animationend"),Pc=Wl("animationiteration"),Tc=Wl("animationstart"),Rc=Wl("transitionend"),Dc=new Map,tf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Da(e,t){Dc.set(e,t),lr(t,[e])}for(Yn=0;Yn<tf.length;Yn++)Zn=tf[Yn],af=Zn.toLowerCase(),rf=Zn[0].toUpperCase()+Zn.slice(1),Da(af,"on"+rf);var Zn,af,rf,Yn;Da(bc,"onAnimationEnd");Da(Pc,"onAnimationIteration");Da(Tc,"onAnimationStart");Da("dblclick","onDoubleClick");Da("focusin","onFocus");Da("focusout","onBlur");Da(Rc,"onTransitionEnd");Kr("onMouseEnter",["mouseout","mouseover"]);Kr("onMouseLeave",["mouseout","mouseover"]);Kr("onPointerEnter",["pointerout","pointerover"]);Kr("onPointerLeave",["pointerout","pointerover"]);lr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));lr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));lr("onBeforeInput",["compositionend","keypress","textInput","paste"]);lr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));lr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));lr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ro="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ih=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ro));function of(e,t,a){var r=e.type||"unknown-event";e.currentTarget=a,Ig(r,t,void 0,e),e.currentTarget=null}function Ac(e,t){t=(t&4)!==0;for(var a=0;a<e.length;a++){var r=e[a],o=r.event;r=r.listeners;e:{var n=void 0;if(t)for(var l=r.length-1;0<=l;l--){var s=r[l],u=s.instance,d=s.currentTarget;if(s=s.listener,u!==n&&o.isPropagationStopped())break e;of(o,s,d),n=u}else for(l=0;l<r.length;l++){if(s=r[l],u=s.instance,d=s.currentTarget,s=s.listener,u!==n&&o.isPropagationStopped())break e;of(o,s,d),n=u}}}if(vl)throw e=gu,vl=!1,gu=null,e}function ye(e,t){var a=t[ku];a===void 0&&(a=t[ku]=new Set);var r=e+"__bubble";a.has(r)||(Mc(t,e,2,!1),a.add(r))}function qs(e,t,a){var r=0;t&&(r|=4),Mc(a,e,r,t)}var Jn="_reactListening"+Math.random().toString(36).slice(2);function Ko(e){if(!e[Jn]){e[Jn]=!0,Nf.forEach(function(a){a!=="selectionchange"&&(Ih.has(a)||qs(a,!1,e),qs(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Jn]||(t[Jn]=!0,qs("selectionchange",!1,t))}}function Mc(e,t,a,r){switch(gc(t)){case 1:var o=Ug;break;case 4:o=Ng;break;default:o=ai}a=o.bind(null,t,a,e),o=void 0,!mu||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,a,{capture:!0,passive:o}):e.addEventListener(t,a,!0):o!==void 0?e.addEventListener(t,a,{passive:o}):e.addEventListener(t,a,!1)}function Ws(e,t,a,r,o){var n=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var l=r.tag;if(l===3||l===4){var s=r.stateNode.containerInfo;if(s===o||s.nodeType===8&&s.parentNode===o)break;if(l===4)for(l=r.return;l!==null;){var u=l.tag;if((u===3||u===4)&&(u=l.stateNode.containerInfo,u===o||u.nodeType===8&&u.parentNode===o))return;l=l.return}for(;s!==null;){if(l=Qa(s),l===null)return;if(u=l.tag,u===5||u===6){r=n=l;continue e}s=s.parentNode}}r=r.return}tc(function(){var d=n,g=Zu(a),h=[];e:{var m=Dc.get(e);if(m!==void 0){var L=oi,y=e;switch(e){case"keypress":if(ul(a)===0)break e;case"keydown":case"keyup":L=eh;break;case"focusin":y="focus",L=Ns;break;case"focusout":y="blur",L=Ns;break;case"beforeblur":case"afterblur":L=Ns;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":L=$d;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":L=qg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":L=rh;break;case bc:case Pc:case Tc:L=$g;break;case Rc:L=nh;break;case"scroll":L=Hg;break;case"wheel":L=sh;break;case"copy":case"cut":case"paste":L=Kg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":L=Kd}var I=(t&4)!==0,O=!I&&e==="scroll",c=I?m!==null?m+"Capture":null:m;I=[];for(var i=d,f;i!==null;){f=i;var v=f.stateNode;if(f.tag===5&&v!==null&&(f=v,c!==null&&(v=_o(i,c),v!=null&&I.push(jo(i,v,f)))),O)break;i=i.return}0<I.length&&(m=new L(m,y,null,a,g),h.push({event:m,listeners:I}))}}if((t&7)===0){e:{if(m=e==="mouseover"||e==="pointerover",L=e==="mouseout"||e==="pointerout",m&&a!==cu&&(y=a.relatedTarget||a.fromElement)&&(Qa(y)||y[oa]))break e;if((L||m)&&(m=g.window===g?g:(m=g.ownerDocument)?m.defaultView||m.parentWindow:window,L?(y=a.relatedTarget||a.toElement,L=d,y=y?Qa(y):null,y!==null&&(O=sr(y),y!==O||y.tag!==5&&y.tag!==6)&&(y=null)):(L=null,y=d),L!==y)){if(I=$d,v="onMouseLeave",c="onMouseEnter",i="mouse",(e==="pointerout"||e==="pointerover")&&(I=Kd,v="onPointerLeave",c="onPointerEnter",i="pointer"),O=L==null?m:Fr(L),f=y==null?m:Fr(y),m=new I(v,i+"leave",L,a,g),m.target=O,m.relatedTarget=f,v=null,Qa(g)===d&&(I=new I(c,i+"enter",y,a,g),I.target=f,I.relatedTarget=O,v=I),O=v,L&&y)t:{for(I=L,c=y,i=0,f=I;f;f=Tr(f))i++;for(f=0,v=c;v;v=Tr(v))f++;for(;0<i-f;)I=Tr(I),i--;for(;0<f-i;)c=Tr(c),f--;for(;i--;){if(I===c||c!==null&&I===c.alternate)break t;I=Tr(I),c=Tr(c)}I=null}else I=null;L!==null&&nf(h,m,L,I,!1),y!==null&&O!==null&&nf(h,O,y,I,!0)}}e:{if(m=d?Fr(d):window,L=m.nodeName&&m.nodeName.toLowerCase(),L==="select"||L==="input"&&m.type==="file")var k=mh;else if(Qd(m))if(Sc)k=vh;else{k=hh;var w=gh}else(L=m.nodeName)&&L.toLowerCase()==="input"&&(m.type==="checkbox"||m.type==="radio")&&(k=xh);if(k&&(k=k(e,d))){yc(h,k,a,g);break e}w&&w(e,m,d),e==="focusout"&&(w=m._wrapperState)&&w.controlled&&m.type==="number"&&su(m,"number",m.value)}switch(w=d?Fr(d):window,e){case"focusin":(Qd(w)||w.contentEditable==="true")&&(Mr=w,Lu=d,Fo=null);break;case"focusout":Fo=Lu=Mr=null;break;case"mousedown":yu=!0;break;case"contextmenu":case"mouseup":case"dragend":yu=!1,ef(h,a,g);break;case"selectionchange":if(Sh)break;case"keydown":case"keyup":ef(h,a,g)}var p;if(li)e:{switch(e){case"compositionstart":var S="onCompositionStart";break e;case"compositionend":S="onCompositionEnd";break e;case"compositionupdate":S="onCompositionUpdate";break e}S=void 0}else Ar?vc(e,a)&&(S="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(S="onCompositionStart");S&&(xc&&a.locale!=="ko"&&(Ar||S!=="onCompositionStart"?S==="onCompositionEnd"&&Ar&&(p=hc()):(va=g,ri="value"in va?va.value:va.textContent,Ar=!0)),w=Cl(d,S),0<w.length&&(S=new Gd(S,e,null,a,g),h.push({event:S,listeners:w}),p?S.data=p:(p=Lc(a),p!==null&&(S.data=p)))),(p=ih?dh(e,a):fh(e,a))&&(d=Cl(d,"onBeforeInput"),0<d.length&&(g=new Gd("onBeforeInput","beforeinput",null,a,g),h.push({event:g,listeners:d}),g.data=p))}Ac(h,t)})}function jo(e,t,a){return{instance:e,listener:t,currentTarget:a}}function Cl(e,t){for(var a=t+"Capture",r=[];e!==null;){var o=e,n=o.stateNode;o.tag===5&&n!==null&&(o=n,n=_o(e,a),n!=null&&r.unshift(jo(e,n,o)),n=_o(e,t),n!=null&&r.push(jo(e,n,o))),e=e.return}return r}function Tr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function nf(e,t,a,r,o){for(var n=t._reactName,l=[];a!==null&&a!==r;){var s=a,u=s.alternate,d=s.stateNode;if(u!==null&&u===r)break;s.tag===5&&d!==null&&(s=d,o?(u=_o(a,n),u!=null&&l.unshift(jo(a,u,s))):o||(u=_o(a,n),u!=null&&l.push(jo(a,u,s)))),a=a.return}l.length!==0&&e.push({event:t,listeners:l})}var Ch=/\\r\\n?/g,wh=/\\u0000|\\uFFFD/g;function lf(e){return(typeof e=="string"?e:""+e).replace(Ch,`\n`).replace(wh,"")}function el(e,t,a){if(t=lf(t),lf(e)!==t&&a)throw Error(P(425))}function wl(){}var Su=null,Iu=null;function Cu(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var wu=typeof setTimeout=="function"?setTimeout:void 0,kh=typeof clearTimeout=="function"?clearTimeout:void 0,sf=typeof Promise=="function"?Promise:void 0,bh=typeof queueMicrotask=="function"?queueMicrotask:typeof sf<"u"?function(e){return sf.resolve(null).then(e).catch(Ph)}:wu;function Ph(e){setTimeout(function(){throw e})}function Vs(e,t){var a=t,r=0;do{var o=a.nextSibling;if(e.removeChild(a),o&&o.nodeType===8)if(a=o.data,a==="/$"){if(r===0){e.removeChild(o),Vo(t);return}r--}else a!=="$"&&a!=="$?"&&a!=="$!"||r++;a=o}while(a);Vo(t)}function Ca(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function uf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"){if(t===0)return e;t--}else a==="/$"&&t++}e=e.previousSibling}return null}var to=Math.random().toString(36).slice(2),Vt="__reactFiber$"+to,Xo="__reactProps$"+to,oa="__reactContainer$"+to,ku="__reactEvents$"+to,Th="__reactListeners$"+to,Rh="__reactHandles$"+to;function Qa(e){var t=e[Vt];if(t)return t;for(var a=e.parentNode;a;){if(t=a[oa]||a[Vt]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=uf(e);e!==null;){if(a=e[Vt])return a;e=uf(e)}return t}e=a,a=e.parentNode}return null}function on(e){return e=e[Vt]||e[oa],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Fr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(P(33))}function Vl(e){return e[Xo]||null}var bu=[],Br=-1;function Aa(e){return{current:e}}function Se(e){0>Br||(e.current=bu[Br],bu[Br]=null,Br--)}function ve(e,t){Br++,bu[Br]=e.current,e.current=t}var Ra={},$e=Aa(Ra),tt=Aa(!1),tr=Ra;function jr(e,t){var a=e.type.contextTypes;if(!a)return Ra;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},n;for(n in a)o[n]=t[n];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function at(e){return e=e.childContextTypes,e!=null}function kl(){Se(tt),Se($e)}function df(e,t,a){if($e.current!==Ra)throw Error(P(168));ve($e,t),ve(tt,a)}function Ec(e,t,a){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return a;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(P(108,gg(e)||"Unknown",o));return be({},a,r)}function bl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ra,tr=$e.current,ve($e,e),ve(tt,tt.current),!0}function ff(e,t,a){var r=e.stateNode;if(!r)throw Error(P(169));a?(e=Ec(e,t,tr),r.__reactInternalMemoizedMergedChildContext=e,Se(tt),Se($e),ve($e,e)):Se(tt),ve(tt,a)}var Jt=null,$l=!1,$s=!1;function Fc(e){Jt===null?Jt=[e]:Jt.push(e)}function Dh(e){$l=!0,Fc(e)}function Ma(){if(!$s&&Jt!==null){$s=!0;var e=0,t=pe;try{var a=Jt;for(pe=1;e<a.length;e++){var r=a[e];do r=r(!0);while(r!==null)}Jt=null,$l=!1}catch(o){throw Jt!==null&&(Jt=Jt.slice(e+1)),nc(Ju,Ma),o}finally{pe=t,$s=!1}}return null}var Or=[],zr=0,Pl=null,Tl=0,gt=[],ht=0,ar=null,ea=1,ta="";function ja(e,t){Or[zr++]=Tl,Or[zr++]=Pl,Pl=e,Tl=t}function Bc(e,t,a){gt[ht++]=ea,gt[ht++]=ta,gt[ht++]=ar,ar=e;var r=ea;e=ta;var o=32-Mt(r)-1;r&=~(1<<o),a+=1;var n=32-Mt(t)+o;if(30<n){var l=o-o%5;n=(r&(1<<l)-1).toString(32),r>>=l,o-=l,ea=1<<32-Mt(t)+o|a<<o|r,ta=n+e}else ea=1<<n|a<<o|r,ta=e}function ui(e){e.return!==null&&(ja(e,1),Bc(e,1,0))}function ii(e){for(;e===Pl;)Pl=Or[--zr],Or[zr]=null,Tl=Or[--zr],Or[zr]=null;for(;e===ar;)ar=gt[--ht],gt[ht]=null,ta=gt[--ht],gt[ht]=null,ea=gt[--ht],gt[ht]=null}var it=null,ut=null,Ce=!1,At=null;function Oc(e,t){var a=xt(5,null,null,0);a.elementType="DELETED",a.stateNode=t,a.return=e,t=e.deletions,t===null?(e.deletions=[a],e.flags|=16):t.push(a)}function cf(e,t){switch(e.tag){case 5:var a=e.type;return t=t.nodeType!==1||a.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,it=e,ut=Ca(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,it=e,ut=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(a=ar!==null?{id:ea,overflow:ta}:null,e.memoizedState={dehydrated:t,treeContext:a,retryLane:1073741824},a=xt(18,null,null,0),a.stateNode=t,a.return=e,e.child=a,it=e,ut=null,!0):!1;default:return!1}}function Pu(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Tu(e){if(Ce){var t=ut;if(t){var a=t;if(!cf(e,t)){if(Pu(e))throw Error(P(418));t=Ca(a.nextSibling);var r=it;t&&cf(e,t)?Oc(r,a):(e.flags=e.flags&-4097|2,Ce=!1,it=e)}}else{if(Pu(e))throw Error(P(418));e.flags=e.flags&-4097|2,Ce=!1,it=e}}}function pf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;it=e}function tl(e){if(e!==it)return!1;if(!Ce)return pf(e),Ce=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Cu(e.type,e.memoizedProps)),t&&(t=ut)){if(Pu(e))throw zc(),Error(P(418));for(;t;)Oc(e,t),t=Ca(t.nextSibling)}if(pf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(P(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(t===0){ut=Ca(e.nextSibling);break e}t--}else a!=="$"&&a!=="$!"&&a!=="$?"||t++}e=e.nextSibling}ut=null}}else ut=it?Ca(e.stateNode.nextSibling):null;return!0}function zc(){for(var e=ut;e;)e=Ca(e.nextSibling)}function Xr(){ut=it=null,Ce=!1}function di(e){At===null?At=[e]:At.push(e)}var Ah=sa.ReactCurrentBatchConfig;function Io(e,t,a){if(e=a.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(P(309));var r=a.stateNode}if(!r)throw Error(P(147,e));var o=r,n=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===n?t.ref:(t=function(l){var s=o.refs;l===null?delete s[n]:s[n]=l},t._stringRef=n,t)}if(typeof e!="string")throw Error(P(284));if(!a._owner)throw Error(P(290,e))}return e}function al(e,t){throw e=Object.prototype.toString.call(t),Error(P(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function mf(e){var t=e._init;return t(e._payload)}function Uc(e){function t(c,i){if(e){var f=c.deletions;f===null?(c.deletions=[i],c.flags|=16):f.push(i)}}function a(c,i){if(!e)return null;for(;i!==null;)t(c,i),i=i.sibling;return null}function r(c,i){for(c=new Map;i!==null;)i.key!==null?c.set(i.key,i):c.set(i.index,i),i=i.sibling;return c}function o(c,i){return c=Pa(c,i),c.index=0,c.sibling=null,c}function n(c,i,f){return c.index=f,e?(f=c.alternate,f!==null?(f=f.index,f<i?(c.flags|=2,i):f):(c.flags|=2,i)):(c.flags|=1048576,i)}function l(c){return e&&c.alternate===null&&(c.flags|=2),c}function s(c,i,f,v){return i===null||i.tag!==6?(i=Zs(f,c.mode,v),i.return=c,i):(i=o(i,f),i.return=c,i)}function u(c,i,f,v){var k=f.type;return k===Dr?g(c,i,f.props.children,v,f.key):i!==null&&(i.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ma&&mf(k)===i.type)?(v=o(i,f.props),v.ref=Io(c,i,f),v.return=c,v):(v=gl(f.type,f.key,f.props,null,c.mode,v),v.ref=Io(c,i,f),v.return=c,v)}function d(c,i,f,v){return i===null||i.tag!==4||i.stateNode.containerInfo!==f.containerInfo||i.stateNode.implementation!==f.implementation?(i=Js(f,c.mode,v),i.return=c,i):(i=o(i,f.children||[]),i.return=c,i)}function g(c,i,f,v,k){return i===null||i.tag!==7?(i=er(f,c.mode,v,k),i.return=c,i):(i=o(i,f),i.return=c,i)}function h(c,i,f){if(typeof i=="string"&&i!==""||typeof i=="number")return i=Zs(""+i,c.mode,f),i.return=c,i;if(typeof i=="object"&&i!==null){switch(i.$$typeof){case _n:return f=gl(i.type,i.key,i.props,null,c.mode,f),f.ref=Io(c,null,i),f.return=c,f;case Rr:return i=Js(i,c.mode,f),i.return=c,i;case ma:var v=i._init;return h(c,v(i._payload),f)}if(Po(i)||vo(i))return i=er(i,c.mode,f,null),i.return=c,i;al(c,i)}return null}function m(c,i,f,v){var k=i!==null?i.key:null;if(typeof f=="string"&&f!==""||typeof f=="number")return k!==null?null:s(c,i,""+f,v);if(typeof f=="object"&&f!==null){switch(f.$$typeof){case _n:return f.key===k?u(c,i,f,v):null;case Rr:return f.key===k?d(c,i,f,v):null;case ma:return k=f._init,m(c,i,k(f._payload),v)}if(Po(f)||vo(f))return k!==null?null:g(c,i,f,v,null);al(c,f)}return null}function L(c,i,f,v,k){if(typeof v=="string"&&v!==""||typeof v=="number")return c=c.get(f)||null,s(i,c,""+v,k);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case _n:return c=c.get(v.key===null?f:v.key)||null,u(i,c,v,k);case Rr:return c=c.get(v.key===null?f:v.key)||null,d(i,c,v,k);case ma:var w=v._init;return L(c,i,f,w(v._payload),k)}if(Po(v)||vo(v))return c=c.get(f)||null,g(i,c,v,k,null);al(i,v)}return null}function y(c,i,f,v){for(var k=null,w=null,p=i,S=i=0,A=null;p!==null&&S<f.length;S++){p.index>S?(A=p,p=null):A=p.sibling;var T=m(c,p,f[S],v);if(T===null){p===null&&(p=A);break}e&&p&&T.alternate===null&&t(c,p),i=n(T,i,S),w===null?k=T:w.sibling=T,w=T,p=A}if(S===f.length)return a(c,p),Ce&&ja(c,S),k;if(p===null){for(;S<f.length;S++)p=h(c,f[S],v),p!==null&&(i=n(p,i,S),w===null?k=p:w.sibling=p,w=p);return Ce&&ja(c,S),k}for(p=r(c,p);S<f.length;S++)A=L(p,c,S,f[S],v),A!==null&&(e&&A.alternate!==null&&p.delete(A.key===null?S:A.key),i=n(A,i,S),w===null?k=A:w.sibling=A,w=A);return e&&p.forEach(function(M){return t(c,M)}),Ce&&ja(c,S),k}function I(c,i,f,v){var k=vo(f);if(typeof k!="function")throw Error(P(150));if(f=k.call(f),f==null)throw Error(P(151));for(var w=k=null,p=i,S=i=0,A=null,T=f.next();p!==null&&!T.done;S++,T=f.next()){p.index>S?(A=p,p=null):A=p.sibling;var M=m(c,p,T.value,v);if(M===null){p===null&&(p=A);break}e&&p&&M.alternate===null&&t(c,p),i=n(M,i,S),w===null?k=M:w.sibling=M,w=M,p=A}if(T.done)return a(c,p),Ce&&ja(c,S),k;if(p===null){for(;!T.done;S++,T=f.next())T=h(c,T.value,v),T!==null&&(i=n(T,i,S),w===null?k=T:w.sibling=T,w=T);return Ce&&ja(c,S),k}for(p=r(c,p);!T.done;S++,T=f.next())T=L(p,c,S,T.value,v),T!==null&&(e&&T.alternate!==null&&p.delete(T.key===null?S:T.key),i=n(T,i,S),w===null?k=T:w.sibling=T,w=T);return e&&p.forEach(function(X){return t(c,X)}),Ce&&ja(c,S),k}function O(c,i,f,v){if(typeof f=="object"&&f!==null&&f.type===Dr&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case _n:e:{for(var k=f.key,w=i;w!==null;){if(w.key===k){if(k=f.type,k===Dr){if(w.tag===7){a(c,w.sibling),i=o(w,f.props.children),i.return=c,c=i;break e}}else if(w.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ma&&mf(k)===w.type){a(c,w.sibling),i=o(w,f.props),i.ref=Io(c,w,f),i.return=c,c=i;break e}a(c,w);break}else t(c,w);w=w.sibling}f.type===Dr?(i=er(f.props.children,c.mode,v,f.key),i.return=c,c=i):(v=gl(f.type,f.key,f.props,null,c.mode,v),v.ref=Io(c,i,f),v.return=c,c=v)}return l(c);case Rr:e:{for(w=f.key;i!==null;){if(i.key===w)if(i.tag===4&&i.stateNode.containerInfo===f.containerInfo&&i.stateNode.implementation===f.implementation){a(c,i.sibling),i=o(i,f.children||[]),i.return=c,c=i;break e}else{a(c,i);break}else t(c,i);i=i.sibling}i=Js(f,c.mode,v),i.return=c,c=i}return l(c);case ma:return w=f._init,O(c,i,w(f._payload),v)}if(Po(f))return y(c,i,f,v);if(vo(f))return I(c,i,f,v);al(c,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,i!==null&&i.tag===6?(a(c,i.sibling),i=o(i,f),i.return=c,c=i):(a(c,i),i=Zs(f,c.mode,v),i.return=c,c=i),l(c)):a(c,i)}return O}var Qr=Uc(!0),Nc=Uc(!1),Rl=Aa(null),Dl=null,Ur=null,fi=null;function ci(){fi=Ur=Dl=null}function pi(e){var t=Rl.current;Se(Rl),e._currentValue=t}function Ru(e,t,a){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===a)break;e=e.return}}function $r(e,t){Dl=e,fi=Ur=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(et=!0),e.firstContext=null)}function Lt(e){var t=e._currentValue;if(fi!==e)if(e={context:e,memoizedValue:t,next:null},Ur===null){if(Dl===null)throw Error(P(308));Ur=e,Dl.dependencies={lanes:0,firstContext:e}}else Ur=Ur.next=e;return t}var Ya=null;function mi(e){Ya===null?Ya=[e]:Ya.push(e)}function Hc(e,t,a,r){var o=t.interleaved;return o===null?(a.next=a,mi(t)):(a.next=o.next,o.next=a),t.interleaved=a,na(e,r)}function na(e,t){e.lanes|=t;var a=e.alternate;for(a!==null&&(a.lanes|=t),a=e,e=e.return;e!==null;)e.childLanes|=t,a=e.alternate,a!==null&&(a.childLanes|=t),a=e,e=e.return;return a.tag===3?a.stateNode:null}var ga=!1;function gi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function _c(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 aa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wa(e,t,a){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(se&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,na(e,a)}return o=r.interleaved,o===null?(t.next=t,mi(r)):(t.next=o.next,o.next=t),r.interleaved=t,na(e,a)}function il(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,ei(e,a)}}function gf(e,t){var a=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,a===r)){var o=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var l={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};n===null?o=n=l:n=n.next=l,a=a.next}while(a!==null);n===null?o=n=t:n=n.next=t}else o=n=t;a={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:n,shared:r.shared,effects:r.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}function Al(e,t,a,r){var o=e.updateQueue;ga=!1;var n=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var u=s,d=u.next;u.next=null,l===null?n=d:l.next=d,l=u;var g=e.alternate;g!==null&&(g=g.updateQueue,s=g.lastBaseUpdate,s!==l&&(s===null?g.firstBaseUpdate=d:s.next=d,g.lastBaseUpdate=u))}if(n!==null){var h=o.baseState;l=0,g=d=u=null,s=n;do{var m=s.lane,L=s.eventTime;if((r&m)===m){g!==null&&(g=g.next={eventTime:L,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var y=e,I=s;switch(m=t,L=a,I.tag){case 1:if(y=I.payload,typeof y=="function"){h=y.call(L,h,m);break e}h=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=I.payload,m=typeof y=="function"?y.call(L,h,m):y,m==null)break e;h=be({},h,m);break e;case 2:ga=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[s]:m.push(s))}else L={eventTime:L,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},g===null?(d=g=L,u=h):g=g.next=L,l|=m;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;m=s,s=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(g===null&&(u=h),o.baseState=u,o.firstBaseUpdate=d,o.lastBaseUpdate=g,t=o.shared.interleaved,t!==null){o=t;do l|=o.lane,o=o.next;while(o!==t)}else n===null&&(o.shared.lanes=0);or|=l,e.lanes=l,e.memoizedState=h}}function hf(e,t,a){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=a,typeof o!="function")throw Error(P(191,o));o.call(r)}}}var nn={},Gt=Aa(nn),Qo=Aa(nn),Yo=Aa(nn);function Za(e){if(e===nn)throw Error(P(174));return e}function hi(e,t){switch(ve(Yo,t),ve(Qo,e),ve(Gt,nn),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:iu(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=iu(t,e)}Se(Gt),ve(Gt,t)}function Yr(){Se(Gt),Se(Qo),Se(Yo)}function qc(e){Za(Yo.current);var t=Za(Gt.current),a=iu(t,e.type);t!==a&&(ve(Qo,e),ve(Gt,a))}function xi(e){Qo.current===e&&(Se(Gt),Se(Qo))}var we=Aa(0);function Ml(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Gs=[];function vi(){for(var e=0;e<Gs.length;e++)Gs[e]._workInProgressVersionPrimary=null;Gs.length=0}var dl=sa.ReactCurrentDispatcher,Ks=sa.ReactCurrentBatchConfig,rr=0,ke=null,Me=null,Fe=null,El=!1,Bo=!1,Zo=0,Mh=0;function qe(){throw Error(P(321))}function Li(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!Ft(e[a],t[a]))return!1;return!0}function yi(e,t,a,r,o,n){if(rr=n,ke=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,dl.current=e===null||e.memoizedState===null?Oh:zh,e=a(r,o),Bo){n=0;do{if(Bo=!1,Zo=0,25<=n)throw Error(P(301));n+=1,Fe=Me=null,t.updateQueue=null,dl.current=Uh,e=a(r,o)}while(Bo)}if(dl.current=Fl,t=Me!==null&&Me.next!==null,rr=0,Fe=Me=ke=null,El=!1,t)throw Error(P(300));return e}function Si(){var e=Zo!==0;return Zo=0,e}function Wt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Fe===null?ke.memoizedState=Fe=e:Fe=Fe.next=e,Fe}function yt(){if(Me===null){var e=ke.alternate;e=e!==null?e.memoizedState:null}else e=Me.next;var t=Fe===null?ke.memoizedState:Fe.next;if(t!==null)Fe=t,Me=e;else{if(e===null)throw Error(P(310));Me=e,e={memoizedState:Me.memoizedState,baseState:Me.baseState,baseQueue:Me.baseQueue,queue:Me.queue,next:null},Fe===null?ke.memoizedState=Fe=e:Fe=Fe.next=e}return Fe}function Jo(e,t){return typeof t=="function"?t(e):t}function js(e){var t=yt(),a=t.queue;if(a===null)throw Error(P(311));a.lastRenderedReducer=e;var r=Me,o=r.baseQueue,n=a.pending;if(n!==null){if(o!==null){var l=o.next;o.next=n.next,n.next=l}r.baseQueue=o=n,a.pending=null}if(o!==null){n=o.next,r=r.baseState;var s=l=null,u=null,d=n;do{var g=d.lane;if((rr&g)===g)u!==null&&(u=u.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var h={lane:g,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};u===null?(s=u=h,l=r):u=u.next=h,ke.lanes|=g,or|=g}d=d.next}while(d!==null&&d!==n);u===null?l=r:u.next=s,Ft(r,t.memoizedState)||(et=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,a.lastRenderedState=r}if(e=a.interleaved,e!==null){o=e;do n=o.lane,ke.lanes|=n,or|=n,o=o.next;while(o!==e)}else o===null&&(a.lanes=0);return[t.memoizedState,a.dispatch]}function Xs(e){var t=yt(),a=t.queue;if(a===null)throw Error(P(311));a.lastRenderedReducer=e;var r=a.dispatch,o=a.pending,n=t.memoizedState;if(o!==null){a.pending=null;var l=o=o.next;do n=e(n,l.action),l=l.next;while(l!==o);Ft(n,t.memoizedState)||(et=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),a.lastRenderedState=n}return[n,r]}function Wc(){}function Vc(e,t){var a=ke,r=yt(),o=t(),n=!Ft(r.memoizedState,o);if(n&&(r.memoizedState=o,et=!0),r=r.queue,Ii(Kc.bind(null,a,r,e),[e]),r.getSnapshot!==t||n||Fe!==null&&Fe.memoizedState.tag&1){if(a.flags|=2048,en(9,Gc.bind(null,a,r,o,t),void 0,null),Be===null)throw Error(P(349));(rr&30)!==0||$c(a,t,o)}return o}function $c(e,t,a){e.flags|=16384,e={getSnapshot:t,value:a},t=ke.updateQueue,t===null?(t={lastEffect:null,stores:null},ke.updateQueue=t,t.stores=[e]):(a=t.stores,a===null?t.stores=[e]:a.push(e))}function Gc(e,t,a,r){t.value=a,t.getSnapshot=r,jc(t)&&Xc(e)}function Kc(e,t,a){return a(function(){jc(t)&&Xc(e)})}function jc(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!Ft(e,a)}catch{return!0}}function Xc(e){var t=na(e,1);t!==null&&Et(t,e,1,-1)}function xf(e){var t=Wt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Jo,lastRenderedState:e},t.queue=e,e=e.dispatch=Bh.bind(null,ke,e),[t.memoizedState,e]}function en(e,t,a,r){return e={tag:e,create:t,destroy:a,deps:r,next:null},t=ke.updateQueue,t===null?(t={lastEffect:null,stores:null},ke.updateQueue=t,t.lastEffect=e.next=e):(a=t.lastEffect,a===null?t.lastEffect=e.next=e:(r=a.next,a.next=e,e.next=r,t.lastEffect=e)),e}function Qc(){return yt().memoizedState}function fl(e,t,a,r){var o=Wt();ke.flags|=e,o.memoizedState=en(1|t,a,void 0,r===void 0?null:r)}function Gl(e,t,a,r){var o=yt();r=r===void 0?null:r;var n=void 0;if(Me!==null){var l=Me.memoizedState;if(n=l.destroy,r!==null&&Li(r,l.deps)){o.memoizedState=en(t,a,n,r);return}}ke.flags|=e,o.memoizedState=en(1|t,a,n,r)}function vf(e,t){return fl(8390656,8,e,t)}function Ii(e,t){return Gl(2048,8,e,t)}function Yc(e,t){return Gl(4,2,e,t)}function Zc(e,t){return Gl(4,4,e,t)}function Jc(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ep(e,t,a){return a=a!=null?a.concat([e]):null,Gl(4,4,Jc.bind(null,t,e),a)}function Ci(){}function tp(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&Li(t,r[1])?r[0]:(a.memoizedState=[e,t],e)}function ap(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&Li(t,r[1])?r[0]:(e=e(),a.memoizedState=[e,t],e)}function rp(e,t,a){return(rr&21)===0?(e.baseState&&(e.baseState=!1,et=!0),e.memoizedState=a):(Ft(a,t)||(a=uc(),ke.lanes|=a,or|=a,e.baseState=!0),t)}function Eh(e,t){var a=pe;pe=a!==0&&4>a?a:4,e(!0);var r=Ks.transition;Ks.transition={};try{e(!1),t()}finally{pe=a,Ks.transition=r}}function op(){return yt().memoizedState}function Fh(e,t,a){var r=ba(e);if(a={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null},np(e))lp(t,a);else if(a=Hc(e,t,a,r),a!==null){var o=Xe();Et(a,e,r,o),sp(a,t,r)}}function Bh(e,t,a){var r=ba(e),o={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null};if(np(e))lp(t,o);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var l=t.lastRenderedState,s=n(l,a);if(o.hasEagerState=!0,o.eagerState=s,Ft(s,l)){var u=t.interleaved;u===null?(o.next=o,mi(t)):(o.next=u.next,u.next=o),t.interleaved=o;return}}catch{}finally{}a=Hc(e,t,o,r),a!==null&&(o=Xe(),Et(a,e,r,o),sp(a,t,r))}}function np(e){var t=e.alternate;return e===ke||t!==null&&t===ke}function lp(e,t){Bo=El=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function sp(e,t,a){if((a&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,ei(e,a)}}var Fl={readContext:Lt,useCallback:qe,useContext:qe,useEffect:qe,useImperativeHandle:qe,useInsertionEffect:qe,useLayoutEffect:qe,useMemo:qe,useReducer:qe,useRef:qe,useState:qe,useDebugValue:qe,useDeferredValue:qe,useTransition:qe,useMutableSource:qe,useSyncExternalStore:qe,useId:qe,unstable_isNewReconciler:!1},Oh={readContext:Lt,useCallback:function(e,t){return Wt().memoizedState=[e,t===void 0?null:t],e},useContext:Lt,useEffect:vf,useImperativeHandle:function(e,t,a){return a=a!=null?a.concat([e]):null,fl(4194308,4,Jc.bind(null,t,e),a)},useLayoutEffect:function(e,t){return fl(4194308,4,e,t)},useInsertionEffect:function(e,t){return fl(4,2,e,t)},useMemo:function(e,t){var a=Wt();return t=t===void 0?null:t,e=e(),a.memoizedState=[e,t],e},useReducer:function(e,t,a){var r=Wt();return t=a!==void 0?a(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=Fh.bind(null,ke,e),[r.memoizedState,e]},useRef:function(e){var t=Wt();return e={current:e},t.memoizedState=e},useState:xf,useDebugValue:Ci,useDeferredValue:function(e){return Wt().memoizedState=e},useTransition:function(){var e=xf(!1),t=e[0];return e=Eh.bind(null,e[1]),Wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,a){var r=ke,o=Wt();if(Ce){if(a===void 0)throw Error(P(407));a=a()}else{if(a=t(),Be===null)throw Error(P(349));(rr&30)!==0||$c(r,t,a)}o.memoizedState=a;var n={value:a,getSnapshot:t};return o.queue=n,vf(Kc.bind(null,r,n,e),[e]),r.flags|=2048,en(9,Gc.bind(null,r,n,a,t),void 0,null),a},useId:function(){var e=Wt(),t=Be.identifierPrefix;if(Ce){var a=ta,r=ea;a=(r&~(1<<32-Mt(r)-1)).toString(32)+a,t=":"+t+"R"+a,a=Zo++,0<a&&(t+="H"+a.toString(32)),t+=":"}else a=Mh++,t=":"+t+"r"+a.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},zh={readContext:Lt,useCallback:tp,useContext:Lt,useEffect:Ii,useImperativeHandle:ep,useInsertionEffect:Yc,useLayoutEffect:Zc,useMemo:ap,useReducer:js,useRef:Qc,useState:function(){return js(Jo)},useDebugValue:Ci,useDeferredValue:function(e){var t=yt();return rp(t,Me.memoizedState,e)},useTransition:function(){var e=js(Jo)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Wc,useSyncExternalStore:Vc,useId:op,unstable_isNewReconciler:!1},Uh={readContext:Lt,useCallback:tp,useContext:Lt,useEffect:Ii,useImperativeHandle:ep,useInsertionEffect:Yc,useLayoutEffect:Zc,useMemo:ap,useReducer:Xs,useRef:Qc,useState:function(){return Xs(Jo)},useDebugValue:Ci,useDeferredValue:function(e){var t=yt();return Me===null?t.memoizedState=e:rp(t,Me.memoizedState,e)},useTransition:function(){var e=Xs(Jo)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Wc,useSyncExternalStore:Vc,useId:op,unstable_isNewReconciler:!1};function Rt(e,t){if(e&&e.defaultProps){t=be({},t),e=e.defaultProps;for(var a in e)t[a]===void 0&&(t[a]=e[a]);return t}return t}function Du(e,t,a,r){t=e.memoizedState,a=a(r,t),a=a==null?t:be({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Kl={isMounted:function(e){return(e=e._reactInternals)?sr(e)===e:!1},enqueueSetState:function(e,t,a){e=e._reactInternals;var r=Xe(),o=ba(e),n=aa(r,o);n.payload=t,a!=null&&(n.callback=a),t=wa(e,n,o),t!==null&&(Et(t,e,o,r),il(t,e,o))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var r=Xe(),o=ba(e),n=aa(r,o);n.tag=1,n.payload=t,a!=null&&(n.callback=a),t=wa(e,n,o),t!==null&&(Et(t,e,o,r),il(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Xe(),r=ba(e),o=aa(a,r);o.tag=2,t!=null&&(o.callback=t),t=wa(e,o,r),t!==null&&(Et(t,e,r,a),il(t,e,r))}};function Lf(e,t,a,r,o,n,l){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,n,l):t.prototype&&t.prototype.isPureReactComponent?!Go(a,r)||!Go(o,n):!0}function up(e,t,a){var r=!1,o=Ra,n=t.contextType;return typeof n=="object"&&n!==null?n=Lt(n):(o=at(t)?tr:$e.current,r=t.contextTypes,n=(r=r!=null)?jr(e,o):Ra),t=new t(a,n),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Kl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=n),t}function yf(e,t,a,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,r),t.state!==e&&Kl.enqueueReplaceState(t,t.state,null)}function Au(e,t,a,r){var o=e.stateNode;o.props=a,o.state=e.memoizedState,o.refs={},gi(e);var n=t.contextType;typeof n=="object"&&n!==null?o.context=Lt(n):(n=at(t)?tr:$e.current,o.context=jr(e,n)),o.state=e.memoizedState,n=t.getDerivedStateFromProps,typeof n=="function"&&(Du(e,t,n,a),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&Kl.enqueueReplaceState(o,o.state,null),Al(e,a,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Zr(e,t){try{var a="",r=t;do a+=mg(r),r=r.return;while(r);var o=a}catch(n){o=`\nError generating stack: `+n.message+`\n`+n.stack}return{value:e,source:t,stack:o,digest:null}}function Qs(e,t,a){return{value:e,source:null,stack:a??null,digest:t??null}}function Mu(e,t){try{console.error(t.value)}catch(a){setTimeout(function(){throw a})}}var Nh=typeof WeakMap=="function"?WeakMap:Map;function ip(e,t,a){a=aa(-1,a),a.tag=3,a.payload={element:null};var r=t.value;return a.callback=function(){Ol||(Ol=!0,qu=r),Mu(e,t)},a}function dp(e,t,a){a=aa(-1,a),a.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;a.payload=function(){return r(o)},a.callback=function(){Mu(e,t)}}var n=e.stateNode;return n!==null&&typeof n.componentDidCatch=="function"&&(a.callback=function(){Mu(e,t),typeof r!="function"&&(ka===null?ka=new Set([this]):ka.add(this));var l=t.stack;this.componentDidCatch(t.value,{componentStack:l!==null?l:""})}),a}function Sf(e,t,a){var r=e.pingCache;if(r===null){r=e.pingCache=new Nh;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(a)||(o.add(a),e=Jh.bind(null,e,t,a),t.then(e,e))}function If(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 Cf(e,t,a,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(t=aa(-1,1),t.tag=2,wa(a,t,1))),a.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Hh=sa.ReactCurrentOwner,et=!1;function je(e,t,a,r){t.child=e===null?Nc(t,null,a,r):Qr(t,e.child,a,r)}function wf(e,t,a,r,o){a=a.render;var n=t.ref;return $r(t,o),r=yi(e,t,a,r,n,o),a=Si(),e!==null&&!et?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,la(e,t,o)):(Ce&&a&&ui(t),t.flags|=1,je(e,t,r,o),t.child)}function kf(e,t,a,r,o){if(e===null){var n=a.type;return typeof n=="function"&&!Ai(n)&&n.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(t.tag=15,t.type=n,fp(e,t,n,r,o)):(e=gl(a.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(n=e.child,(e.lanes&o)===0){var l=n.memoizedProps;if(a=a.compare,a=a!==null?a:Go,a(l,r)&&e.ref===t.ref)return la(e,t,o)}return t.flags|=1,e=Pa(n,r),e.ref=t.ref,e.return=t,t.child=e}function fp(e,t,a,r,o){if(e!==null){var n=e.memoizedProps;if(Go(n,r)&&e.ref===t.ref)if(et=!1,t.pendingProps=r=n,(e.lanes&o)!==0)(e.flags&131072)!==0&&(et=!0);else return t.lanes=e.lanes,la(e,t,o)}return Eu(e,t,a,r,o)}function cp(e,t,a){var r=t.pendingProps,o=r.children,n=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ve(Hr,st),st|=a;else{if((a&1073741824)===0)return e=n!==null?n.baseLanes|a:a,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ve(Hr,st),st|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=n!==null?n.baseLanes:a,ve(Hr,st),st|=r}else n!==null?(r=n.baseLanes|a,t.memoizedState=null):r=a,ve(Hr,st),st|=r;return je(e,t,o,a),t.child}function pp(e,t){var a=t.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(t.flags|=512,t.flags|=2097152)}function Eu(e,t,a,r,o){var n=at(a)?tr:$e.current;return n=jr(t,n),$r(t,o),a=yi(e,t,a,r,n,o),r=Si(),e!==null&&!et?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,la(e,t,o)):(Ce&&r&&ui(t),t.flags|=1,je(e,t,a,o),t.child)}function bf(e,t,a,r,o){if(at(a)){var n=!0;bl(t)}else n=!1;if($r(t,o),t.stateNode===null)cl(e,t),up(t,a,r),Au(t,a,r,o),r=!0;else if(e===null){var l=t.stateNode,s=t.memoizedProps;l.props=s;var u=l.context,d=a.contextType;typeof d=="object"&&d!==null?d=Lt(d):(d=at(a)?tr:$e.current,d=jr(t,d));var g=a.getDerivedStateFromProps,h=typeof g=="function"||typeof l.getSnapshotBeforeUpdate=="function";h||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(s!==r||u!==d)&&yf(t,l,r,d),ga=!1;var m=t.memoizedState;l.state=m,Al(t,r,l,o),u=t.memoizedState,s!==r||m!==u||tt.current||ga?(typeof g=="function"&&(Du(t,a,g,r),u=t.memoizedState),(s=ga||Lf(t,a,s,r,m,u,d))?(h||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount()),typeof l.componentDidMount=="function"&&(t.flags|=4194308)):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),l.props=r,l.state=u,l.context=d,r=s):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{l=t.stateNode,_c(e,t),s=t.memoizedProps,d=t.type===t.elementType?s:Rt(t.type,s),l.props=d,h=t.pendingProps,m=l.context,u=a.contextType,typeof u=="object"&&u!==null?u=Lt(u):(u=at(a)?tr:$e.current,u=jr(t,u));var L=a.getDerivedStateFromProps;(g=typeof L=="function"||typeof l.getSnapshotBeforeUpdate=="function")||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(s!==h||m!==u)&&yf(t,l,r,u),ga=!1,m=t.memoizedState,l.state=m,Al(t,r,l,o);var y=t.memoizedState;s!==h||m!==y||tt.current||ga?(typeof L=="function"&&(Du(t,a,L,r),y=t.memoizedState),(d=ga||Lf(t,a,d,r,m,y,u)||!1)?(g||typeof l.UNSAFE_componentWillUpdate!="function"&&typeof l.componentWillUpdate!="function"||(typeof l.componentWillUpdate=="function"&&l.componentWillUpdate(r,y,u),typeof l.UNSAFE_componentWillUpdate=="function"&&l.UNSAFE_componentWillUpdate(r,y,u)),typeof l.componentDidUpdate=="function"&&(t.flags|=4),typeof l.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof l.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=y),l.props=r,l.state=y,l.context=u,r=d):(typeof l.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return Fu(e,t,a,r,n,o)}function Fu(e,t,a,r,o,n){pp(e,t);var l=(t.flags&128)!==0;if(!r&&!l)return o&&ff(t,a,!1),la(e,t,n);r=t.stateNode,Hh.current=t;var s=l&&typeof a.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&l?(t.child=Qr(t,e.child,null,n),t.child=Qr(t,null,s,n)):je(e,t,s,n),t.memoizedState=r.state,o&&ff(t,a,!0),t.child}function mp(e){var t=e.stateNode;t.pendingContext?df(e,t.pendingContext,t.pendingContext!==t.context):t.context&&df(e,t.context,!1),hi(e,t.containerInfo)}function Pf(e,t,a,r,o){return Xr(),di(o),t.flags|=256,je(e,t,a,r),t.child}var Bu={dehydrated:null,treeContext:null,retryLane:0};function Ou(e){return{baseLanes:e,cachePool:null,transitions:null}}function gp(e,t,a){var r=t.pendingProps,o=we.current,n=!1,l=(t.flags&128)!==0,s;if((s=l)||(s=e!==null&&e.memoizedState===null?!1:(o&2)!==0),s?(n=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),ve(we,o&1),e===null)return Tu(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(l=r.children,e=r.fallback,n?(r=t.mode,n=t.child,l={mode:"hidden",children:l},(r&1)===0&&n!==null?(n.childLanes=0,n.pendingProps=l):n=Ql(l,r,0,null),e=er(e,r,a,null),n.return=t,e.return=t,n.sibling=e,t.child=n,t.child.memoizedState=Ou(a),t.memoizedState=Bu,e):wi(t,l));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return _h(e,t,l,r,s,o,a);if(n){n=r.fallback,l=t.mode,o=e.child,s=o.sibling;var u={mode:"hidden",children:r.children};return(l&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=u,t.deletions=null):(r=Pa(o,u),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?n=Pa(s,n):(n=er(n,l,a,null),n.flags|=2),n.return=t,r.return=t,r.sibling=n,t.child=r,r=n,n=t.child,l=e.child.memoizedState,l=l===null?Ou(a):{baseLanes:l.baseLanes|a,cachePool:null,transitions:l.transitions},n.memoizedState=l,n.childLanes=e.childLanes&~a,t.memoizedState=Bu,r}return n=e.child,e=n.sibling,r=Pa(n,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=a),r.return=t,r.sibling=null,e!==null&&(a=t.deletions,a===null?(t.deletions=[e],t.flags|=16):a.push(e)),t.child=r,t.memoizedState=null,r}function wi(e,t){return t=Ql({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function rl(e,t,a,r){return r!==null&&di(r),Qr(t,e.child,null,a),e=wi(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function _h(e,t,a,r,o,n,l){if(a)return t.flags&256?(t.flags&=-257,r=Qs(Error(P(422))),rl(e,t,l,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(n=r.fallback,o=t.mode,r=Ql({mode:"visible",children:r.children},o,0,null),n=er(n,o,l,null),n.flags|=2,r.return=t,n.return=t,r.sibling=n,t.child=r,(t.mode&1)!==0&&Qr(t,e.child,null,l),t.child.memoizedState=Ou(l),t.memoizedState=Bu,n);if((t.mode&1)===0)return rl(e,t,l,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var s=r.dgst;return r=s,n=Error(P(419)),r=Qs(n,r,void 0),rl(e,t,l,r)}if(s=(l&e.childLanes)!==0,et||s){if(r=Be,r!==null){switch(l&-l){case 4:o=2;break;case 16:o=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:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|l))!==0?0:o,o!==0&&o!==n.retryLane&&(n.retryLane=o,na(e,o),Et(r,e,o,-1))}return Di(),r=Qs(Error(P(421))),rl(e,t,l,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=ex.bind(null,e),o._reactRetry=t,null):(e=n.treeContext,ut=Ca(o.nextSibling),it=t,Ce=!0,At=null,e!==null&&(gt[ht++]=ea,gt[ht++]=ta,gt[ht++]=ar,ea=e.id,ta=e.overflow,ar=t),t=wi(t,r.children),t.flags|=4096,t)}function Tf(e,t,a){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ru(e.return,t,a)}function Ys(e,t,a,r,o){var n=e.memoizedState;n===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:a,tailMode:o}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=r,n.tail=a,n.tailMode=o)}function hp(e,t,a){var r=t.pendingProps,o=r.revealOrder,n=r.tail;if(je(e,t,r.children,a),r=we.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Tf(e,a,t);else if(e.tag===19)Tf(e,a,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(ve(we,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(a=t.child,o=null;a!==null;)e=a.alternate,e!==null&&Ml(e)===null&&(o=a),a=a.sibling;a=o,a===null?(o=t.child,t.child=null):(o=a.sibling,a.sibling=null),Ys(t,!1,o,a,n);break;case"backwards":for(a=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Ml(e)===null){t.child=o;break}e=o.sibling,o.sibling=a,a=o,o=e}Ys(t,!0,a,null,n);break;case"together":Ys(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function cl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function la(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),or|=t.lanes,(a&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(P(153));if(t.child!==null){for(e=t.child,a=Pa(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=Pa(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function qh(e,t,a){switch(t.tag){case 3:mp(t),Xr();break;case 5:qc(t);break;case 1:at(t.type)&&bl(t);break;case 4:hi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;ve(Rl,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ve(we,we.current&1),t.flags|=128,null):(a&t.child.childLanes)!==0?gp(e,t,a):(ve(we,we.current&1),e=la(e,t,a),e!==null?e.sibling:null);ve(we,we.current&1);break;case 19:if(r=(a&t.childLanes)!==0,(e.flags&128)!==0){if(r)return hp(e,t,a);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),ve(we,we.current),r)break;return null;case 22:case 23:return t.lanes=0,cp(e,t,a)}return la(e,t,a)}var xp,zu,vp,Lp;xp=function(e,t){for(var a=t.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return;a=a.return}a.sibling.return=a.return,a=a.sibling}};zu=function(){};vp=function(e,t,a,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Za(Gt.current);var n=null;switch(a){case"input":o=nu(e,o),r=nu(e,r),n=[];break;case"select":o=be({},o,{value:void 0}),r=be({},r,{value:void 0}),n=[];break;case"textarea":o=uu(e,o),r=uu(e,r),n=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=wl)}du(a,r);var l;a=null;for(d in o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&o[d]!=null)if(d==="style"){var s=o[d];for(l in s)s.hasOwnProperty(l)&&(a||(a={}),a[l]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(No.hasOwnProperty(d)?n||(n=[]):(n=n||[]).push(d,null));for(d in r){var u=r[d];if(s=o!=null?o[d]:void 0,r.hasOwnProperty(d)&&u!==s&&(u!=null||s!=null))if(d==="style")if(s){for(l in s)!s.hasOwnProperty(l)||u&&u.hasOwnProperty(l)||(a||(a={}),a[l]="");for(l in u)u.hasOwnProperty(l)&&s[l]!==u[l]&&(a||(a={}),a[l]=u[l])}else a||(n||(n=[]),n.push(d,a)),a=u;else d==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,s=s?s.__html:void 0,u!=null&&s!==u&&(n=n||[]).push(d,u)):d==="children"?typeof u!="string"&&typeof u!="number"||(n=n||[]).push(d,""+u):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(No.hasOwnProperty(d)?(u!=null&&d==="onScroll"&&ye("scroll",e),n||s===u||(n=[])):(n=n||[]).push(d,u))}a&&(n=n||[]).push("style",a);var d=n;(t.updateQueue=d)&&(t.flags|=4)}};Lp=function(e,t,a,r){a!==r&&(t.flags|=4)};function Co(e,t){if(!Ce)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var r=null;a!==null;)a.alternate!==null&&(r=a),a=a.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function We(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,r=0;if(t)for(var o=e.child;o!==null;)a|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)a|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=a,t}function Wh(e,t,a){var r=t.pendingProps;switch(ii(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return We(t),null;case 1:return at(t.type)&&kl(),We(t),null;case 3:return r=t.stateNode,Yr(),Se(tt),Se($e),vi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(tl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,At!==null&&($u(At),At=null))),zu(e,t),We(t),null;case 5:xi(t);var o=Za(Yo.current);if(a=t.type,e!==null&&t.stateNode!=null)vp(e,t,a,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(P(166));return We(t),null}if(e=Za(Gt.current),tl(t)){r=t.stateNode,a=t.type;var n=t.memoizedProps;switch(r[Vt]=t,r[Xo]=n,e=(t.mode&1)!==0,a){case"dialog":ye("cancel",r),ye("close",r);break;case"iframe":case"object":case"embed":ye("load",r);break;case"video":case"audio":for(o=0;o<Ro.length;o++)ye(Ro[o],r);break;case"source":ye("error",r);break;case"img":case"image":case"link":ye("error",r),ye("load",r);break;case"details":ye("toggle",r);break;case"input":Bd(r,n),ye("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!n.multiple},ye("invalid",r);break;case"textarea":zd(r,n),ye("invalid",r)}du(a,n),o=null;for(var l in n)if(n.hasOwnProperty(l)){var s=n[l];l==="children"?typeof s=="string"?r.textContent!==s&&(n.suppressHydrationWarning!==!0&&el(r.textContent,s,e),o=["children",s]):typeof s=="number"&&r.textContent!==""+s&&(n.suppressHydrationWarning!==!0&&el(r.textContent,s,e),o=["children",""+s]):No.hasOwnProperty(l)&&s!=null&&l==="onScroll"&&ye("scroll",r)}switch(a){case"input":qn(r),Od(r,n,!0);break;case"textarea":qn(r),Ud(r);break;case"select":case"option":break;default:typeof n.onClick=="function"&&(r.onclick=wl)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{l=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Kf(a)),e==="http://www.w3.org/1999/xhtml"?a==="script"?(e=l.createElement("div"),e.innerHTML="<script><\\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(a,{is:r.is}):(e=l.createElement(a),a==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,a),e[Vt]=t,e[Xo]=r,xp(e,t,!1,!1),t.stateNode=e;e:{switch(l=fu(a,r),a){case"dialog":ye("cancel",e),ye("close",e),o=r;break;case"iframe":case"object":case"embed":ye("load",e),o=r;break;case"video":case"audio":for(o=0;o<Ro.length;o++)ye(Ro[o],e);o=r;break;case"source":ye("error",e),o=r;break;case"img":case"image":case"link":ye("error",e),ye("load",e),o=r;break;case"details":ye("toggle",e),o=r;break;case"input":Bd(e,r),o=nu(e,r),ye("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=be({},r,{value:void 0}),ye("invalid",e);break;case"textarea":zd(e,r),o=uu(e,r),ye("invalid",e);break;default:o=r}du(a,o),s=o;for(n in s)if(s.hasOwnProperty(n)){var u=s[n];n==="style"?Qf(e,u):n==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&jf(e,u)):n==="children"?typeof u=="string"?(a!=="textarea"||u!=="")&&Ho(e,u):typeof u=="number"&&Ho(e,""+u):n!=="suppressContentEditableWarning"&&n!=="suppressHydrationWarning"&&n!=="autoFocus"&&(No.hasOwnProperty(n)?u!=null&&n==="onScroll"&&ye("scroll",e):u!=null&&ju(e,n,u,l))}switch(a){case"input":qn(e),Od(e,r,!1);break;case"textarea":qn(e),Ud(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Ta(r.value));break;case"select":e.multiple=!!r.multiple,n=r.value,n!=null?_r(e,!!r.multiple,n,!1):r.defaultValue!=null&&_r(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=wl)}switch(a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return We(t),null;case 6:if(e&&t.stateNode!=null)Lp(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(P(166));if(a=Za(Yo.current),Za(Gt.current),tl(t)){if(r=t.stateNode,a=t.memoizedProps,r[Vt]=t,(n=r.nodeValue!==a)&&(e=it,e!==null))switch(e.tag){case 3:el(r.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&el(r.nodeValue,a,(e.mode&1)!==0)}n&&(t.flags|=4)}else r=(a.nodeType===9?a:a.ownerDocument).createTextNode(r),r[Vt]=t,t.stateNode=r}return We(t),null;case 13:if(Se(we),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ce&&ut!==null&&(t.mode&1)!==0&&(t.flags&128)===0)zc(),Xr(),t.flags|=98560,n=!1;else if(n=tl(t),r!==null&&r.dehydrated!==null){if(e===null){if(!n)throw Error(P(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(P(317));n[Vt]=t}else Xr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;We(t),n=!1}else At!==null&&($u(At),At=null),n=!0;if(!n)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=a,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(we.current&1)!==0?Ee===0&&(Ee=3):Di())),t.updateQueue!==null&&(t.flags|=4),We(t),null);case 4:return Yr(),zu(e,t),e===null&&Ko(t.stateNode.containerInfo),We(t),null;case 10:return pi(t.type._context),We(t),null;case 17:return at(t.type)&&kl(),We(t),null;case 19:if(Se(we),n=t.memoizedState,n===null)return We(t),null;if(r=(t.flags&128)!==0,l=n.rendering,l===null)if(r)Co(n,!1);else{if(Ee!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(l=Ml(e),l!==null){for(t.flags|=128,Co(n,!1),r=l.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=a,a=t.child;a!==null;)n=a,e=r,n.flags&=14680066,l=n.alternate,l===null?(n.childLanes=0,n.lanes=e,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=l.childLanes,n.lanes=l.lanes,n.child=l.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=l.memoizedProps,n.memoizedState=l.memoizedState,n.updateQueue=l.updateQueue,n.type=l.type,e=l.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),a=a.sibling;return ve(we,we.current&1|2),t.child}e=e.sibling}n.tail!==null&&Te()>Jr&&(t.flags|=128,r=!0,Co(n,!1),t.lanes=4194304)}else{if(!r)if(e=Ml(l),e!==null){if(t.flags|=128,r=!0,a=e.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),Co(n,!0),n.tail===null&&n.tailMode==="hidden"&&!l.alternate&&!Ce)return We(t),null}else 2*Te()-n.renderingStartTime>Jr&&a!==1073741824&&(t.flags|=128,r=!0,Co(n,!1),t.lanes=4194304);n.isBackwards?(l.sibling=t.child,t.child=l):(a=n.last,a!==null?a.sibling=l:t.child=l,n.last=l)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=Te(),t.sibling=null,a=we.current,ve(we,r?a&1|2:a&1),t):(We(t),null);case 22:case 23:return Ri(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(st&1073741824)!==0&&(We(t),t.subtreeFlags&6&&(t.flags|=8192)):We(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function Vh(e,t){switch(ii(t),t.tag){case 1:return at(t.type)&&kl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yr(),Se(tt),Se($e),vi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return xi(t),null;case 13:if(Se(we),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));Xr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(we),null;case 4:return Yr(),null;case 10:return pi(t.type._context),null;case 22:case 23:return Ri(),null;case 24:return null;default:return null}}var ol=!1,Ve=!1,$h=typeof WeakSet=="function"?WeakSet:Set,B=null;function Nr(e,t){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(r){Pe(e,t,r)}else a.current=null}function Uu(e,t,a){try{a()}catch(r){Pe(e,t,r)}}var Rf=!1;function Gh(e,t){if(Su=Sl,e=wc(),si(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var r=a.getSelection&&a.getSelection();if(r&&r.rangeCount!==0){a=r.anchorNode;var o=r.anchorOffset,n=r.focusNode;r=r.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break e}var l=0,s=-1,u=-1,d=0,g=0,h=e,m=null;t:for(;;){for(var L;h!==a||o!==0&&h.nodeType!==3||(s=l+o),h!==n||r!==0&&h.nodeType!==3||(u=l+r),h.nodeType===3&&(l+=h.nodeValue.length),(L=h.firstChild)!==null;)m=h,h=L;for(;;){if(h===e)break t;if(m===a&&++d===o&&(s=l),m===n&&++g===r&&(u=l),(L=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=L}a=s===-1||u===-1?null:{start:s,end:u}}else a=null}a=a||{start:0,end:0}}else a=null;for(Iu={focusedElem:e,selectionRange:a},Sl=!1,B=t;B!==null;)if(t=B,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,B=e;else for(;B!==null;){t=B;try{var y=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var I=y.memoizedProps,O=y.memoizedState,c=t.stateNode,i=c.getSnapshotBeforeUpdate(t.elementType===t.type?I:Rt(t.type,I),O);c.__reactInternalSnapshotBeforeUpdate=i}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(v){Pe(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,B=e;break}B=t.return}return y=Rf,Rf=!1,y}function Oo(e,t,a){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var n=o.destroy;o.destroy=void 0,n!==void 0&&Uu(t,a,n)}o=o.next}while(o!==r)}}function jl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var a=t=t.next;do{if((a.tag&e)===e){var r=a.create;a.destroy=r()}a=a.next}while(a!==t)}}function Nu(e){var t=e.ref;if(t!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof t=="function"?t(e):t.current=e}}function yp(e){var t=e.alternate;t!==null&&(e.alternate=null,yp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Vt],delete t[Xo],delete t[ku],delete t[Th],delete t[Rh])),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 Sp(e){return e.tag===5||e.tag===3||e.tag===4}function Df(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sp(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 Hu(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?a.nodeType===8?a.parentNode.insertBefore(e,t):a.insertBefore(e,t):(a.nodeType===8?(t=a.parentNode,t.insertBefore(e,a)):(t=a,t.appendChild(e)),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=wl));else if(r!==4&&(e=e.child,e!==null))for(Hu(e,t,a),e=e.sibling;e!==null;)Hu(e,t,a),e=e.sibling}function _u(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(_u(e,t,a),e=e.sibling;e!==null;)_u(e,t,a),e=e.sibling}var ze=null,Dt=!1;function pa(e,t,a){for(a=a.child;a!==null;)Ip(e,t,a),a=a.sibling}function Ip(e,t,a){if($t&&typeof $t.onCommitFiberUnmount=="function")try{$t.onCommitFiberUnmount(Hl,a)}catch{}switch(a.tag){case 5:Ve||Nr(a,t);case 6:var r=ze,o=Dt;ze=null,pa(e,t,a),ze=r,Dt=o,ze!==null&&(Dt?(e=ze,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):ze.removeChild(a.stateNode));break;case 18:ze!==null&&(Dt?(e=ze,a=a.stateNode,e.nodeType===8?Vs(e.parentNode,a):e.nodeType===1&&Vs(e,a),Vo(e)):Vs(ze,a.stateNode));break;case 4:r=ze,o=Dt,ze=a.stateNode.containerInfo,Dt=!0,pa(e,t,a),ze=r,Dt=o;break;case 0:case 11:case 14:case 15:if(!Ve&&(r=a.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var n=o,l=n.destroy;n=n.tag,l!==void 0&&((n&2)!==0||(n&4)!==0)&&Uu(a,t,l),o=o.next}while(o!==r)}pa(e,t,a);break;case 1:if(!Ve&&(Nr(a,t),r=a.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=a.memoizedProps,r.state=a.memoizedState,r.componentWillUnmount()}catch(s){Pe(a,t,s)}pa(e,t,a);break;case 21:pa(e,t,a);break;case 22:a.mode&1?(Ve=(r=Ve)||a.memoizedState!==null,pa(e,t,a),Ve=r):pa(e,t,a);break;default:pa(e,t,a)}}function Af(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new $h),t.forEach(function(r){var o=tx.bind(null,e,r);a.has(r)||(a.add(r),r.then(o,o))})}}function Tt(e,t){var a=t.deletions;if(a!==null)for(var r=0;r<a.length;r++){var o=a[r];try{var n=e,l=t,s=l;e:for(;s!==null;){switch(s.tag){case 5:ze=s.stateNode,Dt=!1;break e;case 3:ze=s.stateNode.containerInfo,Dt=!0;break e;case 4:ze=s.stateNode.containerInfo,Dt=!0;break e}s=s.return}if(ze===null)throw Error(P(160));Ip(n,l,o),ze=null,Dt=!1;var u=o.alternate;u!==null&&(u.return=null),o.return=null}catch(d){Pe(o,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Cp(t,e),t=t.sibling}function Cp(e,t){var a=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Tt(t,e),qt(e),r&4){try{Oo(3,e,e.return),jl(3,e)}catch(I){Pe(e,e.return,I)}try{Oo(5,e,e.return)}catch(I){Pe(e,e.return,I)}}break;case 1:Tt(t,e),qt(e),r&512&&a!==null&&Nr(a,a.return);break;case 5:if(Tt(t,e),qt(e),r&512&&a!==null&&Nr(a,a.return),e.flags&32){var o=e.stateNode;try{Ho(o,"")}catch(I){Pe(e,e.return,I)}}if(r&4&&(o=e.stateNode,o!=null)){var n=e.memoizedProps,l=a!==null?a.memoizedProps:n,s=e.type,u=e.updateQueue;if(e.updateQueue=null,u!==null)try{s==="input"&&n.type==="radio"&&n.name!=null&&$f(o,n),fu(s,l);var d=fu(s,n);for(l=0;l<u.length;l+=2){var g=u[l],h=u[l+1];g==="style"?Qf(o,h):g==="dangerouslySetInnerHTML"?jf(o,h):g==="children"?Ho(o,h):ju(o,g,h,d)}switch(s){case"input":lu(o,n);break;case"textarea":Gf(o,n);break;case"select":var m=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!n.multiple;var L=n.value;L!=null?_r(o,!!n.multiple,L,!1):m!==!!n.multiple&&(n.defaultValue!=null?_r(o,!!n.multiple,n.defaultValue,!0):_r(o,!!n.multiple,n.multiple?[]:"",!1))}o[Xo]=n}catch(I){Pe(e,e.return,I)}}break;case 6:if(Tt(t,e),qt(e),r&4){if(e.stateNode===null)throw Error(P(162));o=e.stateNode,n=e.memoizedProps;try{o.nodeValue=n}catch(I){Pe(e,e.return,I)}}break;case 3:if(Tt(t,e),qt(e),r&4&&a!==null&&a.memoizedState.isDehydrated)try{Vo(t.containerInfo)}catch(I){Pe(e,e.return,I)}break;case 4:Tt(t,e),qt(e);break;case 13:Tt(t,e),qt(e),o=e.child,o.flags&8192&&(n=o.memoizedState!==null,o.stateNode.isHidden=n,!n||o.alternate!==null&&o.alternate.memoizedState!==null||(Pi=Te())),r&4&&Af(e);break;case 22:if(g=a!==null&&a.memoizedState!==null,e.mode&1?(Ve=(d=Ve)||g,Tt(t,e),Ve=d):Tt(t,e),qt(e),r&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!g&&(e.mode&1)!==0)for(B=e,g=e.child;g!==null;){for(h=B=g;B!==null;){switch(m=B,L=m.child,m.tag){case 0:case 11:case 14:case 15:Oo(4,m,m.return);break;case 1:Nr(m,m.return);var y=m.stateNode;if(typeof y.componentWillUnmount=="function"){r=m,a=m.return;try{t=r,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(I){Pe(r,a,I)}}break;case 5:Nr(m,m.return);break;case 22:if(m.memoizedState!==null){Ef(h);continue}}L!==null?(L.return=m,B=L):Ef(h)}g=g.sibling}e:for(g=null,h=e;;){if(h.tag===5){if(g===null){g=h;try{o=h.stateNode,d?(n=o.style,typeof n.setProperty=="function"?n.setProperty("display","none","important"):n.display="none"):(s=h.stateNode,u=h.memoizedProps.style,l=u!=null&&u.hasOwnProperty("display")?u.display:null,s.style.display=Xf("display",l))}catch(I){Pe(e,e.return,I)}}}else if(h.tag===6){if(g===null)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(I){Pe(e,e.return,I)}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===e)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;h.sibling===null;){if(h.return===null||h.return===e)break e;g===h&&(g=null),h=h.return}g===h&&(g=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:Tt(t,e),qt(e),r&4&&Af(e);break;case 21:break;default:Tt(t,e),qt(e)}}function qt(e){var t=e.flags;if(t&2){try{e:{for(var a=e.return;a!==null;){if(Sp(a)){var r=a;break e}a=a.return}throw Error(P(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(Ho(o,""),r.flags&=-33);var n=Df(e);_u(e,n,o);break;case 3:case 4:var l=r.stateNode.containerInfo,s=Df(e);Hu(e,s,l);break;default:throw Error(P(161))}}catch(u){Pe(e,e.return,u)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Kh(e,t,a){B=e,wp(e,t,a)}function wp(e,t,a){for(var r=(e.mode&1)!==0;B!==null;){var o=B,n=o.child;if(o.tag===22&&r){var l=o.memoizedState!==null||ol;if(!l){var s=o.alternate,u=s!==null&&s.memoizedState!==null||Ve;s=ol;var d=Ve;if(ol=l,(Ve=u)&&!d)for(B=o;B!==null;)l=B,u=l.child,l.tag===22&&l.memoizedState!==null?Ff(o):u!==null?(u.return=l,B=u):Ff(o);for(;n!==null;)B=n,wp(n,t,a),n=n.sibling;B=o,ol=s,Ve=d}Mf(e,t,a)}else(o.subtreeFlags&8772)!==0&&n!==null?(n.return=o,B=n):Mf(e,t,a)}}function Mf(e){for(;B!==null;){var t=B;if((t.flags&8772)!==0){var a=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:Ve||jl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!Ve)if(a===null)r.componentDidMount();else{var o=t.elementType===t.type?a.memoizedProps:Rt(t.type,a.memoizedProps);r.componentDidUpdate(o,a.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var n=t.updateQueue;n!==null&&hf(t,n,r);break;case 3:var l=t.updateQueue;if(l!==null){if(a=null,t.child!==null)switch(t.child.tag){case 5:a=t.child.stateNode;break;case 1:a=t.child.stateNode}hf(t,l,a)}break;case 5:var s=t.stateNode;if(a===null&&t.flags&4){a=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&a.focus();break;case"img":u.src&&(a.src=u.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var g=d.memoizedState;if(g!==null){var h=g.dehydrated;h!==null&&Vo(h)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(P(163))}Ve||t.flags&512&&Nu(t)}catch(m){Pe(t,t.return,m)}}if(t===e){B=null;break}if(a=t.sibling,a!==null){a.return=t.return,B=a;break}B=t.return}}function Ef(e){for(;B!==null;){var t=B;if(t===e){B=null;break}var a=t.sibling;if(a!==null){a.return=t.return,B=a;break}B=t.return}}function Ff(e){for(;B!==null;){var t=B;try{switch(t.tag){case 0:case 11:case 15:var a=t.return;try{jl(4,t)}catch(u){Pe(t,a,u)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(u){Pe(t,o,u)}}var n=t.return;try{Nu(t)}catch(u){Pe(t,n,u)}break;case 5:var l=t.return;try{Nu(t)}catch(u){Pe(t,l,u)}}}catch(u){Pe(t,t.return,u)}if(t===e){B=null;break}var s=t.sibling;if(s!==null){s.return=t.return,B=s;break}B=t.return}}var jh=Math.ceil,Bl=sa.ReactCurrentDispatcher,ki=sa.ReactCurrentOwner,vt=sa.ReactCurrentBatchConfig,se=0,Be=null,De=null,Ue=0,st=0,Hr=Aa(0),Ee=0,tn=null,or=0,Xl=0,bi=0,zo=null,Je=null,Pi=0,Jr=1/0,Zt=null,Ol=!1,qu=null,ka=null,nl=!1,La=null,zl=0,Uo=0,Wu=null,pl=-1,ml=0;function Xe(){return(se&6)!==0?Te():pl!==-1?pl:pl=Te()}function ba(e){return(e.mode&1)===0?1:(se&2)!==0&&Ue!==0?Ue&-Ue:Ah.transition!==null?(ml===0&&(ml=uc()),ml):(e=pe,e!==0||(e=window.event,e=e===void 0?16:gc(e.type)),e)}function Et(e,t,a,r){if(50<Uo)throw Uo=0,Wu=null,Error(P(185));an(e,a,r),((se&2)===0||e!==Be)&&(e===Be&&((se&2)===0&&(Xl|=a),Ee===4&&xa(e,Ue)),rt(e,r),a===1&&se===0&&(t.mode&1)===0&&(Jr=Te()+500,$l&&Ma()))}function rt(e,t){var a=e.callbackNode;Eg(e,t);var r=yl(e,e===Be?Ue:0);if(r===0)a!==null&&_d(a),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(a!=null&&_d(a),t===1)e.tag===0?Dh(Bf.bind(null,e)):Fc(Bf.bind(null,e)),bh(function(){(se&6)===0&&Ma()}),a=null;else{switch(ic(r)){case 1:a=Ju;break;case 4:a=lc;break;case 16:a=Ll;break;case 536870912:a=sc;break;default:a=Ll}a=Mp(a,kp.bind(null,e))}e.callbackPriority=t,e.callbackNode=a}}function kp(e,t){if(pl=-1,ml=0,(se&6)!==0)throw Error(P(327));var a=e.callbackNode;if(Gr()&&e.callbackNode!==a)return null;var r=yl(e,e===Be?Ue:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=Ul(e,r);else{t=r;var o=se;se|=2;var n=Pp();(Be!==e||Ue!==t)&&(Zt=null,Jr=Te()+500,Ja(e,t));do try{Yh();break}catch(s){bp(e,s)}while(!0);ci(),Bl.current=n,se=o,De!==null?t=0:(Be=null,Ue=0,t=Ee)}if(t!==0){if(t===2&&(o=hu(e),o!==0&&(r=o,t=Vu(e,o))),t===1)throw a=tn,Ja(e,0),xa(e,r),rt(e,Te()),a;if(t===6)xa(e,r);else{if(o=e.current.alternate,(r&30)===0&&!Xh(o)&&(t=Ul(e,r),t===2&&(n=hu(e),n!==0&&(r=n,t=Vu(e,n))),t===1))throw a=tn,Ja(e,0),xa(e,r),rt(e,Te()),a;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(P(345));case 2:Xa(e,Je,Zt);break;case 3:if(xa(e,r),(r&130023424)===r&&(t=Pi+500-Te(),10<t)){if(yl(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){Xe(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=wu(Xa.bind(null,e,Je,Zt),t);break}Xa(e,Je,Zt);break;case 4:if(xa(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-Mt(r);n=1<<l,l=t[l],l>o&&(o=l),r&=~n}if(r=o,r=Te()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jh(r/1960))-r,10<r){e.timeoutHandle=wu(Xa.bind(null,e,Je,Zt),r);break}Xa(e,Je,Zt);break;case 5:Xa(e,Je,Zt);break;default:throw Error(P(329))}}}return rt(e,Te()),e.callbackNode===a?kp.bind(null,e):null}function Vu(e,t){var a=zo;return e.current.memoizedState.isDehydrated&&(Ja(e,t).flags|=256),e=Ul(e,t),e!==2&&(t=Je,Je=a,t!==null&&$u(t)),e}function $u(e){Je===null?Je=e:Je.push.apply(Je,e)}function Xh(e){for(var t=e;;){if(t.flags&16384){var a=t.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var r=0;r<a.length;r++){var o=a[r],n=o.getSnapshot;o=o.value;try{if(!Ft(n(),o))return!1}catch{return!1}}}if(a=t.child,t.subtreeFlags&16384&&a!==null)a.return=t,t=a;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function xa(e,t){for(t&=~bi,t&=~Xl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var a=31-Mt(t),r=1<<a;e[a]=-1,t&=~r}}function Bf(e){if((se&6)!==0)throw Error(P(327));Gr();var t=yl(e,0);if((t&1)===0)return rt(e,Te()),null;var a=Ul(e,t);if(e.tag!==0&&a===2){var r=hu(e);r!==0&&(t=r,a=Vu(e,r))}if(a===1)throw a=tn,Ja(e,0),xa(e,t),rt(e,Te()),a;if(a===6)throw Error(P(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Xa(e,Je,Zt),rt(e,Te()),null}function Ti(e,t){var a=se;se|=1;try{return e(t)}finally{se=a,se===0&&(Jr=Te()+500,$l&&Ma())}}function nr(e){La!==null&&La.tag===0&&(se&6)===0&&Gr();var t=se;se|=1;var a=vt.transition,r=pe;try{if(vt.transition=null,pe=1,e)return e()}finally{pe=r,vt.transition=a,se=t,(se&6)===0&&Ma()}}function Ri(){st=Hr.current,Se(Hr)}function Ja(e,t){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,kh(a)),De!==null)for(a=De.return;a!==null;){var r=a;switch(ii(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&kl();break;case 3:Yr(),Se(tt),Se($e),vi();break;case 5:xi(r);break;case 4:Yr();break;case 13:Se(we);break;case 19:Se(we);break;case 10:pi(r.type._context);break;case 22:case 23:Ri()}a=a.return}if(Be=e,De=e=Pa(e.current,null),Ue=st=t,Ee=0,tn=null,bi=Xl=or=0,Je=zo=null,Ya!==null){for(t=0;t<Ya.length;t++)if(a=Ya[t],r=a.interleaved,r!==null){a.interleaved=null;var o=r.next,n=a.pending;if(n!==null){var l=n.next;n.next=o,r.next=l}a.pending=r}Ya=null}return e}function bp(e,t){do{var a=De;try{if(ci(),dl.current=Fl,El){for(var r=ke.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}El=!1}if(rr=0,Fe=Me=ke=null,Bo=!1,Zo=0,ki.current=null,a===null||a.return===null){Ee=1,tn=t,De=null;break}e:{var n=e,l=a.return,s=a,u=t;if(t=Ue,s.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){var d=u,g=s,h=g.tag;if((g.mode&1)===0&&(h===0||h===11||h===15)){var m=g.alternate;m?(g.updateQueue=m.updateQueue,g.memoizedState=m.memoizedState,g.lanes=m.lanes):(g.updateQueue=null,g.memoizedState=null)}var L=If(l);if(L!==null){L.flags&=-257,Cf(L,l,s,n,t),L.mode&1&&Sf(n,d,t),t=L,u=d;var y=t.updateQueue;if(y===null){var I=new Set;I.add(u),t.updateQueue=I}else y.add(u);break e}else{if((t&1)===0){Sf(n,d,t),Di();break e}u=Error(P(426))}}else if(Ce&&s.mode&1){var O=If(l);if(O!==null){(O.flags&65536)===0&&(O.flags|=256),Cf(O,l,s,n,t),di(Zr(u,s));break e}}n=u=Zr(u,s),Ee!==4&&(Ee=2),zo===null?zo=[n]:zo.push(n),n=l;do{switch(n.tag){case 3:n.flags|=65536,t&=-t,n.lanes|=t;var c=ip(n,u,t);gf(n,c);break e;case 1:s=u;var i=n.type,f=n.stateNode;if((n.flags&128)===0&&(typeof i.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(ka===null||!ka.has(f)))){n.flags|=65536,t&=-t,n.lanes|=t;var v=dp(n,s,t);gf(n,v);break e}}n=n.return}while(n!==null)}Rp(a)}catch(k){t=k,De===a&&a!==null&&(De=a=a.return);continue}break}while(!0)}function Pp(){var e=Bl.current;return Bl.current=Fl,e===null?Fl:e}function Di(){(Ee===0||Ee===3||Ee===2)&&(Ee=4),Be===null||(or&268435455)===0&&(Xl&268435455)===0||xa(Be,Ue)}function Ul(e,t){var a=se;se|=2;var r=Pp();(Be!==e||Ue!==t)&&(Zt=null,Ja(e,t));do try{Qh();break}catch(o){bp(e,o)}while(!0);if(ci(),se=a,Bl.current=r,De!==null)throw Error(P(261));return Be=null,Ue=0,Ee}function Qh(){for(;De!==null;)Tp(De)}function Yh(){for(;De!==null&&!wg();)Tp(De)}function Tp(e){var t=Ap(e.alternate,e,st);e.memoizedProps=e.pendingProps,t===null?Rp(e):De=t,ki.current=null}function Rp(e){var t=e;do{var a=t.alternate;if(e=t.return,(t.flags&32768)===0){if(a=Wh(a,t,st),a!==null){De=a;return}}else{if(a=Vh(a,t),a!==null){a.flags&=32767,De=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ee=6,De=null;return}}if(t=t.sibling,t!==null){De=t;return}De=t=e}while(t!==null);Ee===0&&(Ee=5)}function Xa(e,t,a){var r=pe,o=vt.transition;try{vt.transition=null,pe=1,Zh(e,t,a,r)}finally{vt.transition=o,pe=r}return null}function Zh(e,t,a,r){do Gr();while(La!==null);if((se&6)!==0)throw Error(P(327));a=e.finishedWork;var o=e.finishedLanes;if(a===null)return null;if(e.finishedWork=null,e.finishedLanes=0,a===e.current)throw Error(P(177));e.callbackNode=null,e.callbackPriority=0;var n=a.lanes|a.childLanes;if(Fg(e,n),e===Be&&(De=Be=null,Ue=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||nl||(nl=!0,Mp(Ll,function(){return Gr(),null})),n=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||n){n=vt.transition,vt.transition=null;var l=pe;pe=1;var s=se;se|=4,ki.current=null,Gh(e,a),Cp(a,e),yh(Iu),Sl=!!Su,Iu=Su=null,e.current=a,Kh(a,e,o),kg(),se=s,pe=l,vt.transition=n}else e.current=a;if(nl&&(nl=!1,La=e,zl=o),n=e.pendingLanes,n===0&&(ka=null),Tg(a.stateNode,r),rt(e,Te()),t!==null)for(r=e.onRecoverableError,a=0;a<t.length;a++)o=t[a],r(o.value,{componentStack:o.stack,digest:o.digest});if(Ol)throw Ol=!1,e=qu,qu=null,e;return(zl&1)!==0&&e.tag!==0&&Gr(),n=e.pendingLanes,(n&1)!==0?e===Wu?Uo++:(Uo=0,Wu=e):Uo=0,Ma(),null}function Gr(){if(La!==null){var e=ic(zl),t=vt.transition,a=pe;try{if(vt.transition=null,pe=16>e?16:e,La===null)var r=!1;else{if(e=La,La=null,zl=0,(se&6)!==0)throw Error(P(331));var o=se;for(se|=4,B=e.current;B!==null;){var n=B,l=n.child;if((B.flags&16)!==0){var s=n.deletions;if(s!==null){for(var u=0;u<s.length;u++){var d=s[u];for(B=d;B!==null;){var g=B;switch(g.tag){case 0:case 11:case 15:Oo(8,g,n)}var h=g.child;if(h!==null)h.return=g,B=h;else for(;B!==null;){g=B;var m=g.sibling,L=g.return;if(yp(g),g===d){B=null;break}if(m!==null){m.return=L,B=m;break}B=L}}}var y=n.alternate;if(y!==null){var I=y.child;if(I!==null){y.child=null;do{var O=I.sibling;I.sibling=null,I=O}while(I!==null)}}B=n}}if((n.subtreeFlags&2064)!==0&&l!==null)l.return=n,B=l;else e:for(;B!==null;){if(n=B,(n.flags&2048)!==0)switch(n.tag){case 0:case 11:case 15:Oo(9,n,n.return)}var c=n.sibling;if(c!==null){c.return=n.return,B=c;break e}B=n.return}}var i=e.current;for(B=i;B!==null;){l=B;var f=l.child;if((l.subtreeFlags&2064)!==0&&f!==null)f.return=l,B=f;else e:for(l=i;B!==null;){if(s=B,(s.flags&2048)!==0)try{switch(s.tag){case 0:case 11:case 15:jl(9,s)}}catch(k){Pe(s,s.return,k)}if(s===l){B=null;break e}var v=s.sibling;if(v!==null){v.return=s.return,B=v;break e}B=s.return}}if(se=o,Ma(),$t&&typeof $t.onPostCommitFiberRoot=="function")try{$t.onPostCommitFiberRoot(Hl,e)}catch{}r=!0}return r}finally{pe=a,vt.transition=t}}return!1}function Of(e,t,a){t=Zr(a,t),t=ip(e,t,1),e=wa(e,t,1),t=Xe(),e!==null&&(an(e,1,t),rt(e,t))}function Pe(e,t,a){if(e.tag===3)Of(e,e,a);else for(;t!==null;){if(t.tag===3){Of(t,e,a);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(ka===null||!ka.has(r))){e=Zr(a,e),e=dp(t,e,1),t=wa(t,e,1),e=Xe(),t!==null&&(an(t,1,e),rt(t,e));break}}t=t.return}}function Jh(e,t,a){var r=e.pingCache;r!==null&&r.delete(t),t=Xe(),e.pingedLanes|=e.suspendedLanes&a,Be===e&&(Ue&a)===a&&(Ee===4||Ee===3&&(Ue&130023424)===Ue&&500>Te()-Pi?Ja(e,0):bi|=a),rt(e,t)}function Dp(e,t){t===0&&((e.mode&1)===0?t=1:(t=$n,$n<<=1,($n&130023424)===0&&($n=4194304)));var a=Xe();e=na(e,t),e!==null&&(an(e,t,a),rt(e,a))}function ex(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Dp(e,a)}function tx(e,t){var a=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(a=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(P(314))}r!==null&&r.delete(t),Dp(e,a)}var Ap;Ap=function(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps||tt.current)et=!0;else{if((e.lanes&a)===0&&(t.flags&128)===0)return et=!1,qh(e,t,a);et=(e.flags&131072)!==0}else et=!1,Ce&&(t.flags&1048576)!==0&&Bc(t,Tl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cl(e,t),e=t.pendingProps;var o=jr(t,$e.current);$r(t,a),o=yi(null,t,r,e,o,a);var n=Si();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,at(r)?(n=!0,bl(t)):n=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,gi(t),o.updater=Kl,t.stateNode=o,o._reactInternals=t,Au(t,r,e,a),t=Fu(null,t,r,!0,n,a)):(t.tag=0,Ce&&n&&ui(t),je(null,t,o,a),t=t.child),t;case 16:r=t.elementType;e:{switch(cl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=rx(r),e=Rt(r,e),o){case 0:t=Eu(null,t,r,e,a);break e;case 1:t=bf(null,t,r,e,a);break e;case 11:t=wf(null,t,r,e,a);break e;case 14:t=kf(null,t,r,Rt(r.type,e),a);break e}throw Error(P(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),Eu(e,t,r,o,a);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),bf(e,t,r,o,a);case 3:e:{if(mp(t),e===null)throw Error(P(387));r=t.pendingProps,n=t.memoizedState,o=n.element,_c(e,t),Al(t,r,null,a);var l=t.memoizedState;if(r=l.element,n.isDehydrated)if(n={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){o=Zr(Error(P(423)),t),t=Pf(e,t,r,a,o);break e}else if(r!==o){o=Zr(Error(P(424)),t),t=Pf(e,t,r,a,o);break e}else for(ut=Ca(t.stateNode.containerInfo.firstChild),it=t,Ce=!0,At=null,a=Nc(t,null,r,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Xr(),r===o){t=la(e,t,a);break e}je(e,t,r,a)}t=t.child}return t;case 5:return qc(t),e===null&&Tu(t),r=t.type,o=t.pendingProps,n=e!==null?e.memoizedProps:null,l=o.children,Cu(r,o)?l=null:n!==null&&Cu(r,n)&&(t.flags|=32),pp(e,t),je(e,t,l,a),t.child;case 6:return e===null&&Tu(t),null;case 13:return gp(e,t,a);case 4:return hi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Qr(t,null,r,a):je(e,t,r,a),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),wf(e,t,r,o,a);case 7:return je(e,t,t.pendingProps,a),t.child;case 8:return je(e,t,t.pendingProps.children,a),t.child;case 12:return je(e,t,t.pendingProps.children,a),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,n=t.memoizedProps,l=o.value,ve(Rl,r._currentValue),r._currentValue=l,n!==null)if(Ft(n.value,l)){if(n.children===o.children&&!tt.current){t=la(e,t,a);break e}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var s=n.dependencies;if(s!==null){l=n.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(n.tag===1){u=aa(-1,a&-a),u.tag=2;var d=n.updateQueue;if(d!==null){d=d.shared;var g=d.pending;g===null?u.next=u:(u.next=g.next,g.next=u),d.pending=u}}n.lanes|=a,u=n.alternate,u!==null&&(u.lanes|=a),Ru(n.return,a,t),s.lanes|=a;break}u=u.next}}else if(n.tag===10)l=n.type===t.type?null:n.child;else if(n.tag===18){if(l=n.return,l===null)throw Error(P(341));l.lanes|=a,s=l.alternate,s!==null&&(s.lanes|=a),Ru(l,a,t),l=n.sibling}else l=n.child;if(l!==null)l.return=n;else for(l=n;l!==null;){if(l===t){l=null;break}if(n=l.sibling,n!==null){n.return=l.return,l=n;break}l=l.return}n=l}je(e,t,o.children,a),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,$r(t,a),o=Lt(o),r=r(o),t.flags|=1,je(e,t,r,a),t.child;case 14:return r=t.type,o=Rt(r,t.pendingProps),o=Rt(r.type,o),kf(e,t,r,o,a);case 15:return fp(e,t,t.type,t.pendingProps,a);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),cl(e,t),t.tag=1,at(r)?(e=!0,bl(t)):e=!1,$r(t,a),up(t,r,o),Au(t,r,o,a),Fu(null,t,r,!0,e,a);case 19:return hp(e,t,a);case 22:return cp(e,t,a)}throw Error(P(156,t.tag))};function Mp(e,t){return nc(e,t)}function ax(e,t,a,r){this.tag=e,this.key=a,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 xt(e,t,a,r){return new ax(e,t,a,r)}function Ai(e){return e=e.prototype,!(!e||!e.isReactComponent)}function rx(e){if(typeof e=="function")return Ai(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Qu)return 11;if(e===Yu)return 14}return 2}function Pa(e,t){var a=e.alternate;return a===null?(a=xt(e.tag,t,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=t,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,t=e.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function gl(e,t,a,r,o,n){var l=2;if(r=e,typeof e=="function")Ai(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Dr:return er(a.children,o,n,t);case Xu:l=8,o|=8;break;case tu:return e=xt(12,a,t,o|2),e.elementType=tu,e.lanes=n,e;case au:return e=xt(13,a,t,o),e.elementType=au,e.lanes=n,e;case ru:return e=xt(19,a,t,o),e.elementType=ru,e.lanes=n,e;case qf:return Ql(a,o,n,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Hf:l=10;break e;case _f:l=9;break e;case Qu:l=11;break e;case Yu:l=14;break e;case ma:l=16,r=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=xt(l,a,t,o),t.elementType=e,t.type=r,t.lanes=n,t}function er(e,t,a,r){return e=xt(7,e,r,t),e.lanes=a,e}function Ql(e,t,a,r){return e=xt(22,e,r,t),e.elementType=qf,e.lanes=a,e.stateNode={isHidden:!1},e}function Zs(e,t,a){return e=xt(6,e,null,t),e.lanes=a,e}function Js(e,t,a){return t=xt(4,e.children!==null?e.children:[],e.key,t),t.lanes=a,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ox(e,t,a,r,o){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=Os(0),this.expirationTimes=Os(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Os(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Mi(e,t,a,r,o,n,l,s,u){return e=new ox(e,t,a,s,u),t===1?(t=1,n===!0&&(t|=8)):t=0,n=xt(3,null,null,t),e.current=n,n.stateNode=e,n.memoizedState={element:r,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},gi(n),e}function nx(e,t,a){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Rr,key:r==null?null:""+r,children:e,containerInfo:t,implementation:a}}function Ep(e){if(!e)return Ra;e=e._reactInternals;e:{if(sr(e)!==e||e.tag!==1)throw Error(P(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(at(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(P(171))}if(e.tag===1){var a=e.type;if(at(a))return Ec(e,a,t)}return t}function Fp(e,t,a,r,o,n,l,s,u){return e=Mi(a,r,!0,e,o,n,l,s,u),e.context=Ep(null),a=e.current,r=Xe(),o=ba(a),n=aa(r,o),n.callback=t??null,wa(a,n,o),e.current.lanes=o,an(e,o,r),rt(e,r),e}function Yl(e,t,a,r){var o=t.current,n=Xe(),l=ba(o);return a=Ep(a),t.context===null?t.context=a:t.pendingContext=a,t=aa(n,l),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=wa(o,t,l),e!==null&&(Et(e,o,l,n),il(e,o,l)),l}function Nl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function zf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function Ei(e,t){zf(e,t),(e=e.alternate)&&zf(e,t)}function lx(){return null}var Bp=typeof reportError=="function"?reportError:function(e){console.error(e)};function Fi(e){this._internalRoot=e}Zl.prototype.render=Fi.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(P(409));Yl(e,t,null,null)};Zl.prototype.unmount=Fi.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;nr(function(){Yl(null,e,null,null)}),t[oa]=null}};function Zl(e){this._internalRoot=e}Zl.prototype.unstable_scheduleHydration=function(e){if(e){var t=cc();e={blockedOn:null,target:e,priority:t};for(var a=0;a<ha.length&&t!==0&&t<ha[a].priority;a++);ha.splice(a,0,e),a===0&&mc(e)}};function Bi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Jl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Uf(){}function sx(e,t,a,r,o){if(o){if(typeof r=="function"){var n=r;r=function(){var d=Nl(l);n.call(d)}}var l=Fp(t,r,e,0,null,!1,!1,"",Uf);return e._reactRootContainer=l,e[oa]=l.current,Ko(e.nodeType===8?e.parentNode:e),nr(),l}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var s=r;r=function(){var d=Nl(u);s.call(d)}}var u=Mi(e,0,!1,null,null,!1,!1,"",Uf);return e._reactRootContainer=u,e[oa]=u.current,Ko(e.nodeType===8?e.parentNode:e),nr(function(){Yl(t,u,a,r)}),u}function es(e,t,a,r,o){var n=a._reactRootContainer;if(n){var l=n;if(typeof o=="function"){var s=o;o=function(){var u=Nl(l);s.call(u)}}Yl(t,l,e,o)}else l=sx(a,t,e,o,r);return Nl(l)}dc=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var a=To(t.pendingLanes);a!==0&&(ei(t,a|1),rt(t,Te()),(se&6)===0&&(Jr=Te()+500,Ma()))}break;case 13:nr(function(){var r=na(e,1);if(r!==null){var o=Xe();Et(r,e,1,o)}}),Ei(e,1)}};ti=function(e){if(e.tag===13){var t=na(e,134217728);if(t!==null){var a=Xe();Et(t,e,134217728,a)}Ei(e,134217728)}};fc=function(e){if(e.tag===13){var t=ba(e),a=na(e,t);if(a!==null){var r=Xe();Et(a,e,t,r)}Ei(e,t)}};cc=function(){return pe};pc=function(e,t){var a=pe;try{return pe=e,t()}finally{pe=a}};pu=function(e,t,a){switch(t){case"input":if(lu(e,a),t=a.name,a.type==="radio"&&t!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+t)+\'][type="radio"]\'),t=0;t<a.length;t++){var r=a[t];if(r!==e&&r.form===e.form){var o=Vl(r);if(!o)throw Error(P(90));Vf(r),lu(r,o)}}}break;case"textarea":Gf(e,a);break;case"select":t=a.value,t!=null&&_r(e,!!a.multiple,t,!1)}};Jf=Ti;ec=nr;var ux={usingClientEntryPoint:!1,Events:[on,Fr,Vl,Yf,Zf,Ti]},wo={findFiberByHostInstance:Qa,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},ix={bundleType:wo.bundleType,version:wo.version,rendererPackageName:wo.rendererPackageName,rendererConfig:wo.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:sa.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=rc(e),e===null?null:e.stateNode},findFiberByHostInstance:wo.findFiberByHostInstance||lx,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(ko=__REACT_DEVTOOLS_GLOBAL_HOOK__,!ko.isDisabled&&ko.supportsFiber))try{Hl=ko.inject(ix),$t=ko}catch{}var ko;ct.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ux;ct.createPortal=function(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Bi(t))throw Error(P(200));return nx(e,t,null,a)};ct.createRoot=function(e,t){if(!Bi(e))throw Error(P(299));var a=!1,r="",o=Bp;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=Mi(e,1,!1,null,null,a,!1,r,o),e[oa]=t.current,Ko(e.nodeType===8?e.parentNode:e),new Fi(t)};ct.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(P(188)):(e=Object.keys(e).join(","),Error(P(268,e)));return e=rc(t),e=e===null?null:e.stateNode,e};ct.flushSync=function(e){return nr(e)};ct.hydrate=function(e,t,a){if(!Jl(t))throw Error(P(200));return es(null,e,t,!0,a)};ct.hydrateRoot=function(e,t,a){if(!Bi(e))throw Error(P(405));var r=a!=null&&a.hydratedSources||null,o=!1,n="",l=Bp;if(a!=null&&(a.unstable_strictMode===!0&&(o=!0),a.identifierPrefix!==void 0&&(n=a.identifierPrefix),a.onRecoverableError!==void 0&&(l=a.onRecoverableError)),t=Fp(t,null,e,1,a??null,o,!1,n,l),e[oa]=t.current,Ko(e),r)for(e=0;e<r.length;e++)a=r[e],o=a._getVersion,o=o(a._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[a,o]:t.mutableSourceEagerHydrationData.push(a,o);return new Zl(t)};ct.render=function(e,t,a){if(!Jl(t))throw Error(P(200));return es(null,e,t,!1,a)};ct.unmountComponentAtNode=function(e){if(!Jl(e))throw Error(P(40));return e._reactRootContainer?(nr(function(){es(null,null,e,!1,function(){e._reactRootContainer=null,e[oa]=null})}),!0):!1};ct.unstable_batchedUpdates=Ti;ct.unstable_renderSubtreeIntoContainer=function(e,t,a,r){if(!Jl(a))throw Error(P(200));if(e==null||e._reactInternals===void 0)throw Error(P(38));return es(e,t,a,!1,r)};ct.version="18.3.1-next-f1338f8080-20240426"});var ao=Yt((mv,Up)=>{"use strict";function zp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(zp)}catch(e){console.error(e)}}zp(),Up.exports=Op()});var Hp=Yt(Oi=>{"use strict";var Np=ao();Oi.createRoot=Np.createRoot,Oi.hydrateRoot=Np.hydrateRoot;var gv});var Gp=Yt(os=>{"use strict";var mx=Ie(),gx=Symbol.for("react.element"),hx=Symbol.for("react.fragment"),xx=Object.prototype.hasOwnProperty,vx=mx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Lx={key:!0,ref:!0,__self:!0,__source:!0};function $p(e,t,a){var r,o={},n=null,l=null;a!==void 0&&(n=""+a),t.key!==void 0&&(n=""+t.key),t.ref!==void 0&&(l=t.ref);for(r in t)xx.call(t,r)&&!Lx.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:gx,type:e,key:n,ref:l,props:o,_owner:vx.current}}os.Fragment=hx;os.jsx=$p;os.jsxs=$p});var H=Yt((WL,Kp)=>{"use strict";Kp.exports=Gp()});var bm=D(Hp(),1);var ee=D(Ie(),1),Im=D(ao(),1);function _p(e){return e.trim().replace(/^\\|/,"").replace(/\\|$/,"").split("|").map(a=>a.trim())}function dx(e){return/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)+\\|?\\s*$/.test(e)}function fx(e){let t=e.split(`\n`),a=[],r=0;for(;r<t.length;){let o=t[r]??"",n=t[r+1]??"";if(o.includes("|")&&dx(n)){let l=_p(o),s=[];for(r+=2;r<t.length&&t[r].includes("|")&&t[r].trim()!=="";)s.push(_p(t[r])),r+=1;let u=`<tr>${l.map(g=>`<th style="text-align:left;padding:7px 10px;border:1px solid #334155;color:#e2e8f0;background:#0f172a;">${g}</th>`).join("")}</tr>`,d=s.map(g=>`<tr>${g.map(h=>`<td style="padding:7px 10px;border:1px solid #334155;color:#cbd5e1;vertical-align:top;">${h}</td>`).join("")}</tr>`).join("");a.push(`<div style="overflow-x:auto;margin:0.65em 0;"><table style="border-collapse:collapse;min-width:360px;width:100%;font-size:12px;"><thead>${u}</thead><tbody>${d}</tbody></table></div>`);continue}a.push(t[r]),r+=1}return a.join(`\n`)}function ts(e){if(!e)return\'<span style="color:#475569;font-style:italic;">No description yet</span>\';let t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return fx(t).replace(/^### (.+)$/gm,\'<h3 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.05em;color:#cbd5e1;">$1</h3>\').replace(/^## (.+)$/gm,\'<h2 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.2em;color:#f1f5f9;">$1</h2>\').replace(/^# (.+)$/gm,\'<h1 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.4em;color:#f1f5f9;">$1</h1>\').replace(/[*][*]([^\\n]+?)[*][*]/g,\'<strong style="font-weight:700;color:#f1f5f9;">$1</strong>\').replace(/__([^\\n]+?)__/g,\'<strong style="font-weight:700;color:#f1f5f9;">$1</strong>\').replace(/[*]([^\\n*]+?)[*]/g,\'<em style="font-style:italic;color:#94a3b8;">$1</em>\').replace(/(?<![a-zA-Z0-9])_([^_\\n]+?)_(?![a-zA-Z0-9])/g,\'<em style="font-style:italic;color:#94a3b8;">$1</em>\').replace(/`(.+?)`/g,\'<code style="font-family:Menlo,monospace;font-size:12px;background:#1e293b;padding:1px 5px;border-radius:3px;color:#7dd3fc;">$1</code>\').replace(/\\[([^\\]]+)\\]\\((https?:\\/\\/[^)]+)\\)/g,\'<a href="$2" target="_blank" rel="noopener noreferrer" style="color:#60a5fa;text-decoration:underline;">$1</a>\').replace(/(^|[\\s(>])((https?:\\/\\/)[^\\s<>"\']+)/g,\'$1<a href="$2" target="_blank" rel="noopener noreferrer" style="color:#60a5fa;text-decoration:underline;word-break:break-all;">$2</a>\').replace(/(^|[^\\w])#([a-f0-9]{30})(?![a-f0-9])/gi,\'$1<a href="#task-$2" data-task-ref="$2" style="color:#60a5fa;text-decoration:underline;font-family:Menlo,monospace;">#$2</a>\').replace(/^[-*] (.+)$/gm,\'<li style="margin:0.2em 0;display:list-item;">$1</li>\').replace(/^---$/gm,\'<hr style="border:none;border-top:1px solid #334155;margin:0.8em 0;">\').replace(/(<li[^>]*>[\\s\\S]*?<\\/li>\\n?)+/g,r=>`<ul style="padding-left:1.5em;margin:0.4em 0;list-style-type:disc;">${r}</ul>`).replace(/^(?!<[a-z]|$).+$/gm,r=>`<p style="margin:0.5em 0;">${r}</p>`)}var cx="proto-comments-seen";function zi(e,t){try{let a=localStorage.getItem(cx),r=a?JSON.parse(a):{};return t>(r[e]??0)}catch{return!1}}function Ui(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function ot(e){try{return new Date(e).toLocaleString()}catch{return e}}var px=16;var vv=BigInt("9".repeat(px));function Ni(e,t){return e.sortKey&&t.sortKey?e.sortKey<t.sortKey?-1:e.sortKey>t.sortKey?1:0:e.sortKey?-1:t.sortKey?1:(t.updatedAt??t.createdAt??"").localeCompare(e.updatedAt??e.createdAt??"")}var Oa=D(Ie(),1);var rs=D(Ie());var qp=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),as=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();var ln=D(Ie());var Wp={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Vp=(0,ln.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:o="",children:n,iconNode:l,...s},u)=>(0,ln.createElement)("svg",{ref:u,...Wp,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:as("lucide",o),...s},[...l.map(([d,g])=>(0,ln.createElement)(d,g)),...Array.isArray(n)?n:[n]]));var Z=(e,t)=>{let a=(0,rs.forwardRef)(({className:r,...o},n)=>(0,rs.createElement)(Vp,{ref:n,iconNode:t,className:as(`lucide-${qp(e)}`,r),...o}));return a.displayName=`${e}`,a};var ur=Z("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var sn=Z("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var Ea=Z("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var ir=Z("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);var un=Z("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var ro=Z("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var dn=Z("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);var fn=Z("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var cn=Z("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var pn=Z("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"}]]);var dr=Z("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);var Fa=Z("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);var fr=Z("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);var mn=Z("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var gn=Z("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);var cr=Z("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var oo=Z("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var Ba=Z("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"}]]);var no=Z("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var hn=Z("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"}]]);var xn=Z("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);var Oe=Z("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var lo=D(Ie(),1),om=D(ao(),1);var Qp=D(H(),1),jp={Bug:{background:"rgba(239,68,68,0.12)",color:"#f87171",border:"rgba(239,68,68,0.25)"},Research:{background:"rgba(192,132,252,0.12)",color:"#c084fc",border:"rgba(139,92,246,0.2)"},Task:{background:"rgba(148,163,184,0.1)",color:"#94a3b8",border:"rgba(148,163,184,0.2)"}};function Xp({type:e,style:t}){let a=typeof e=="string"&&e.trim()&&e!=="[object Object]"&&jp[e]?e:"Task",r=jp[a];return(0,Qp.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",padding:"1px 5px",borderRadius:3,flexShrink:0,textTransform:"uppercase",background:r.background,color:r.color,border:`1px solid ${r.border}`,lineHeight:"1.5",...t},children:a})}var Jp=D(H(),1),Yp={Critical:{background:"rgba(239,68,68,0.15)",color:"#f87171",border:"rgba(239,68,68,0.3)"},High:{background:"rgba(249,115,22,0.12)",color:"#fb923c",border:"rgba(249,115,22,0.25)"},Medium:{background:"rgba(234,179,8,0.12)",color:"#facc15",border:"rgba(234,179,8,0.25)"},Low:{background:"rgba(148,163,184,0.1)",color:"#94a3b8",border:"rgba(148,163,184,0.2)"}};function Zp({priority:e,style:t}){if(!e||!Yp[e])return null;let a=Yp[e];return(0,Jp.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",padding:"1px 5px",borderRadius:3,flexShrink:0,textTransform:"uppercase",background:a.background,color:a.color,border:`1px solid ${a.border}`,lineHeight:"1.5",...t},children:e})}var pr=[{value:"Task",icon:"\\u2611",label:"Task",css:"type-task",tooltip:"A general task or feature to implement."},{value:"Bug",icon:"\\u{1F41E}",label:"Bug",css:"type-bug",tooltip:"A defect \\u2014 annotator collects page errors and console logs to help reproduce it."},{value:"Research",icon:"\\u{1F52C}",label:"Research",css:"type-research",tooltip:"A research task \\u2014 agent will NOT write code but must attach a findings report."}],GL=pr.map(e=>e.value),tm=Object.fromEntries(pr.map(e=>[e.value,e.icon])),KL=Object.fromEntries(pr.map(e=>[e.value,e.css])),em={Task:"#94a3b8",Bug:"#ef4444",Research:"#a855f7"};function vn(e){return em[e??"Task"]??em.Task}var am=[{bg:"color-mix(in srgb, var(--p-blue) 14%, transparent)",text:"var(--p-blue-200)",border:"color-mix(in srgb, var(--p-blue) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-green) 14%, transparent)",text:"var(--p-green-300)",border:"color-mix(in srgb, var(--p-green) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-purple) 14%, transparent)",text:"var(--p-purple-300)",border:"color-mix(in srgb, var(--p-purple) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-amber) 14%, transparent)",text:"var(--p-amber-300)",border:"color-mix(in srgb, var(--p-amber) 30%, transparent)"},{bg:"color-mix(in srgb, #f472b6 14%, transparent)",text:"#f9a8d4",border:"color-mix(in srgb, #f472b6 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-cyan) 14%, transparent)",text:"var(--p-cyan-300)",border:"color-mix(in srgb, var(--p-cyan) 30%, transparent)"},{bg:"color-mix(in srgb, #f87171 14%, transparent)",text:"#fca5a5",border:"color-mix(in srgb, #f87171 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-text-g) 14%, transparent)",text:"var(--p-text-m)",border:"color-mix(in srgb, var(--p-text-g) 30%, transparent)"}];function yx(e){let t=0;for(let a=0;a<e.length;a++)t=t*31+e.charCodeAt(a)>>>0;return t%am.length}function Bt(e){return am[yx(e)]}var Ln=D(H(),1);function yn({tags:e,onRemove:t,size:a="sm"}){if(!e.length)return null;let r=a==="xs"?"1px 6px":"2px 7px",o=a==="xs"?9:10;return(0,Ln.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:3,alignItems:"center"},children:e.map(n=>{let{bg:l,text:s,border:u}=Bt(n);return(0,Ln.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,padding:r,borderRadius:100,background:l,border:`1px solid ${u}`,color:s,fontSize:o,fontWeight:600,whiteSpace:"nowrap"},children:[n,t&&(0,Ln.jsx)("button",{type:"button",onClick:d=>{d.stopPropagation(),t(n)},style:{display:"flex",background:"none",border:"none",color:s,cursor:"pointer",padding:0,lineHeight:1,opacity:.7},onMouseEnter:d=>{d.currentTarget.style.opacity="1"},onMouseLeave:d=>{d.currentTarget.style.opacity="0.7"},children:"\\xD7"})]},n)})})}var ue=D(H(),1);function Sx(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function nm(e,t){if(!/^#[0-9a-fA-F]{6}$/.test(e))return;let a=Math.max(0,Math.min(1,t)),r=Math.round(a*255).toString(16).padStart(2,"0");return`${e}${r}`}function lm(e,t){return nm(e,t==="Critical"?.36:t==="High"?.3:.24)??"color-mix(in srgb, var(--p-text-g) 40%, transparent)"}function Ix(e){return nm(e,.05)??"transparent"}var Cx={padding:"7px 8px",gap:4,opacity:.45,userSelect:"none"},wx={display:"flex",alignItems:"center",gap:5},kx={width:12,height:12,color:"color-mix(in srgb, var(--p-green) 55%, transparent)",flexShrink:0},bx={fontSize:11.5,fontWeight:600,color:"var(--p-text-g)",textDecoration:"line-through",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},Px={display:"flex",alignItems:"center",gap:5,minWidth:0},Tx={flexShrink:0},Rx={fontSize:11.5,fontWeight:600,color:"var(--p-text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},Dx={display:"flex",alignItems:"flex-start",gap:8},Ax={fontSize:10,color:"var(--p-text-g)",lineHeight:"1.45",overflow:"hidden",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,flex:1,minWidth:0},Mx={position:"relative",flexShrink:0},Ex={width:52,height:34,borderRadius:6,objectFit:"cover",border:"1px solid color-mix(in srgb, var(--p-border) 90%, transparent)",display:"block",cursor:"pointer"},Fx={display:"flex",alignItems:"center",gap:2,marginTop:1},Bx={flex:1},Hi=lo.default.memo(function({task:t,col:a,liveActivity:r,onOpen:o,onDragStart:n}){var p;let l=a.id==="in-progress",s=a.id==="done",[u,d]=lo.default.useState(!1),[g,h]=lo.default.useState(null),m=lo.default.useRef(null),L=t.commentCount??0,y=t.fileCount??0,I=L>0&&zi(t.id,L),O=lm(a.color,t.priority),c=vn(t.type),i=Ix(c),f=(p=t.files)==null?void 0:p.find(S=>Sx(S.name)),v=f?`/api/tasks/${t.id}/files/${encodeURIComponent(f.name)}`:null;function k(S){n(S,t.id),S.currentTarget.classList.add("dragging")}function w(S){S.currentTarget.classList.remove("dragging")}return s?(0,ue.jsx)("article",{className:"task-card",draggable:!0,"data-task-id":t.id,style:Cx,onDragStart:k,onDragEnd:w,onClick:()=>o(t),children:(0,ue.jsxs)("div",{style:wx,children:[(0,ue.jsx)(Ea,{style:kx}),(0,ue.jsx)("span",{style:bx,children:t.title})]})}):(0,ue.jsxs)("article",{className:`task-card${r?" task-live-edit":""}`,draggable:!0,"data-task-id":t.id,style:{padding:"7px 8px",gap:4,userSelect:"none",background:r?"rgba(59,130,246,0.08)":i,...r?{borderColor:"rgba(59,130,246,0.5)",boxShadow:"0 0 0 2px rgba(59,130,246,0.14)"}:O?{borderColor:O}:{}},onDragStart:k,onDragEnd:w,onClick:()=>o(t),children:[(0,ue.jsxs)("div",{style:Px,children:[l&&(0,ue.jsx)("span",{className:"spinner",style:Tx}),(0,ue.jsx)("span",{style:Rx,children:t.title})]}),(t.description||v)&&(0,ue.jsxs)("div",{style:Dx,children:[t.description&&(0,ue.jsx)("div",{style:Ax,children:t.description}),v&&(0,ue.jsxs)("div",{style:Mx,onMouseEnter:()=>{if(m.current){let S=m.current.getBoundingClientRect();h({top:S.top,right:S.right})}d(!0)},onMouseLeave:()=>{d(!1),h(null)},children:[(0,ue.jsx)("img",{ref:m,src:v,alt:"Task screenshot","data-role":"task-thumb",style:Ex}),u&&g&&om.default.createPortal((0,ue.jsx)("img",{src:v,alt:"Task screenshot enlarged preview","data-role":"task-thumb-preview",style:{position:"fixed",right:window.innerWidth-g.right,bottom:window.innerHeight-g.top+8,width:220,height:138,borderRadius:8,objectFit:"cover",border:"1px solid color-mix(in srgb, var(--p-border) 96%, transparent)",boxShadow:"0 10px 24px color-mix(in srgb, var(--p-bg) 75%, transparent)",pointerEvents:"none",zIndex:9999,background:"var(--p-bg)"}}),document.body)]})]}),(0,ue.jsxs)("div",{className:"flex items-center",style:Fx,children:[(0,ue.jsx)(Xp,{type:t.type}),t.priority&&(0,ue.jsx)(Zp,{priority:t.priority}),l&&t.assigneeName&&(0,ue.jsx)("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:6,background:"rgba(59,130,246,0.12)",color:"#60a5fa",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:80},children:t.assigneeName}),t.tags&&t.tags.length>0&&(0,ue.jsx)(yn,{tags:t.tags,size:"xs"}),(0,ue.jsx)("div",{style:Bx}),r&&(0,ue.jsx)(_i,{activity:r}),(0,ue.jsx)(rm,{icon:(0,ue.jsx)(dr,{style:{width:9,height:9}}),label:L>0?String(L):"",color:I?"var(--p-purple)":L>0?"var(--p-text-m)":"var(--p-border-t)",hoverColor:I?"var(--p-purple-300)":"var(--p-text)",title:L>0?`${L} comment(s)`:"Add comment",badge:I,badgeColor:"var(--p-purple)",onClick:S=>{S.stopPropagation(),o(t,"comments")}}),(0,ue.jsx)(rm,{icon:(0,ue.jsx)(fr,{style:{width:9,height:9}}),label:y>0?String(y):"",color:y>0?"var(--p-blue-300)":"var(--p-border-t)",hoverColor:y>0?"var(--p-cyan-300)":"var(--p-text-sub)",title:y>0?`${y} file(s) attached`:"Files",onClick:S=>{S.stopPropagation(),o(t,"files")}})]})]})});function rm({icon:e,label:t,color:a,hoverColor:r,title:o,badge:n,badgeColor:l,onClick:s}){let[u,d]=lo.default.useState(!1);return(0,ue.jsxs)("button",{style:{display:"inline-flex",alignItems:"center",gap:2,padding:"2px 3px",borderRadius:3,border:"none",background:u?"color-mix(in srgb, var(--p-text-m) 10%, transparent)":"transparent",cursor:"pointer",fontSize:9,color:u?r:a,transition:"color .1s, background .1s"},title:o,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:s,children:[e,t&&(0,ue.jsx)("span",{children:t}),n&&(0,ue.jsx)("span",{style:{width:4,height:4,background:l??a,borderRadius:"50%",flexShrink:0}})]})}function _i({activity:e}){let t=e.state==="locked"||e.state==="editing",a=t?(0,ue.jsx)(pn,{style:{width:8,height:8}}):(0,ue.jsx)(un,{style:{width:8,height:8}}),r=t?`Locked by ${e.user}`:`${e.user} viewing`;return(0,ue.jsxs)("span",{style:t?{display:"inline-flex",alignItems:"center",gap:3,borderRadius:999,padding:"1px 5px",fontSize:9,fontWeight:600,border:"1px solid rgba(244,114,182,0.35)",color:"#f9a8d4",background:"rgba(157,23,77,0.28)",flexShrink:0,maxWidth:110,overflow:"hidden",whiteSpace:"nowrap",flexWrap:"nowrap"}:{display:"inline-flex",alignItems:"center",gap:3,borderRadius:999,padding:"1px 5px",fontSize:9,fontWeight:600,border:"1px solid rgba(59,130,246,0.35)",color:"#93c5fd",background:"rgba(30,58,138,0.28)",flexShrink:0,maxWidth:110,overflow:"hidden",whiteSpace:"nowrap",flexWrap:"nowrap"},title:r,"data-testid":"live-activity-badge",children:[a,(0,ue.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:"1 1 0"},children:e.user})]})}var de=D(H(),1),za=[{id:"backlog",label:"Backlog",color:"var(--p-text-f)",accent:"color-mix(in srgb, var(--p-text-g) 20%, transparent)"},{id:"todo",label:"Todo",color:"var(--p-amber)",accent:"color-mix(in srgb, var(--p-amber) 12%, transparent)"},{id:"in-progress",label:"In Progress",color:"var(--p-blue)",accent:"color-mix(in srgb, var(--p-blue) 12%, transparent)",glow:!0},{id:"review",label:"Review",color:"var(--p-purple)",accent:"color-mix(in srgb, var(--p-purple) 12%, transparent)"},{id:"done",label:"Done",color:"var(--p-green)",accent:"color-mix(in srgb, var(--p-green) 10%, transparent)"}];var Ox=3;function zx(){return(0,de.jsxs)("div",{style:{borderRadius:8,border:"1px solid var(--p-border-t)",padding:"10px 12px",background:"var(--p-bg-2)",marginBottom:6,animation:"skeleton-pulse 1.5s ease-in-out infinite"},children:[(0,de.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"75%",marginBottom:8}}),(0,de.jsx)("div",{style:{height:10,borderRadius:4,background:"var(--p-border-s)",width:"50%",marginBottom:8}}),(0,de.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,de.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:48}}),(0,de.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})]})}function qi({tasks:e,visibleCols:t,searchQuery:a,isLoading:r,liveActivities:o,onOpenPanel:n,onDrop:l,onReorder:s}){let u=Oa.default.useRef(null),d=Oa.default.useRef(null),[g,h]=Oa.default.useState(null),[m,L]=Oa.default.useState(null),[y,I]=Oa.default.useState(null),O=a?e.filter(p=>(p.title??"").toLowerCase().includes(a.toLowerCase())||(p.description??"").toLowerCase().includes(a.toLowerCase())):e,c=za.filter(p=>t.includes(p.id));Oa.default.useEffect(()=>{let p=u.current,S=d.current;if(!p||!S)return;function A(){if(!p||!S)return;let U=p.scrollWidth>p.clientWidth?p.clientWidth/p.scrollWidth:1,Q=Math.max(40,p.clientWidth*U);S.style.width=`${Q}px`;let ae=p.scrollWidth-p.clientWidth,V=p.clientWidth-Q;S.style.left=`${ae>0?p.scrollLeft/ae*V:0}px`,S.style.opacity=U<1?"1":"0"}p.addEventListener("scroll",A);let T=new ResizeObserver(A);T.observe(p),A();let M=!1,X=0,le=0;function J(U){M=!0,X=U.clientX,le=p.scrollLeft,S.classList.add("dragging"),document.addEventListener("mousemove",Re),document.addEventListener("mouseup",_)}function Re(U){if(!M||!p||!S)return;let Q=p.scrollWidth>p.clientWidth?p.scrollWidth/p.clientWidth:1;p.scrollLeft=le+(U.clientX-X)*Q}function _(){M=!1,S==null||S.classList.remove("dragging"),document.removeEventListener("mousemove",Re),document.removeEventListener("mouseup",_)}return S.addEventListener("mousedown",J),()=>{p.removeEventListener("scroll",A),T.disconnect(),S.removeEventListener("mousedown",J)}},[c.length]);function i(p,S){h(S),p.dataTransfer.effectAllowed="move"}function f(p,S){p.preventDefault(),L(S)}function v(p,S){p.preventDefault(),p.stopPropagation();let A=p.currentTarget.getBoundingClientRect(),T=p.clientY<A.top+A.height/2?"before":"after";I(M=>(M==null?void 0:M.taskId)===S&&M.position===T?M:{taskId:S,position:T})}function k(p,S,A){p.preventDefault(),L(null);let T=y;if(I(null),!g){h(null);return}if(s&&T){let M=A.findIndex(J=>J.id===T.taskId),X=null,le=null;T.position==="before"?(le=T.taskId,X=M>0?A[M-1].id:null):(X=T.taskId,le=M<A.length-1?A[M+1].id:null),s(g,S,X,le)}else l(g,S);h(null)}function w(){h(null),L(null),I(null)}return(0,de.jsxs)(de.Fragment,{children:[(0,de.jsx)("main",{id:"kanban-board",ref:u,className:"flex-1 flex overflow-x-auto overflow-y-hidden",style:{padding:"16px 20px",gap:16},onDragEnd:w,children:c.map(p=>{let S=r?[]:O.filter(A=>A.status===p.id).sort(Ni);return(0,de.jsx)(Ux,{col:p,tasks:S,isLoading:r,liveActivities:o,isDragOver:m===p.id&&!y,onDragOver:A=>f(A,p.id),onDrop:A=>k(A,p.id,S),onDragLeave:()=>{L(null),I(null)},onStatusChange:(A,T)=>l(A,T),onAddTask:()=>n(null,"details",p.id),onOpenTask:n,onDragStart:i,onCardDragOver:v,cardDropTarget:y},p.id)})}),(0,de.jsx)("div",{id:"kanban-scroll-track",style:{position:"fixed",bottom:0,left:0,right:0,height:6,background:"transparent",zIndex:40,pointerEvents:"none"},children:(0,de.jsx)("div",{id:"kanban-scroll-thumb",ref:d,style:{position:"absolute",top:1,height:4,borderRadius:2,background:"var(--p-border-t)",cursor:"pointer",pointerEvents:"auto",transition:"background 0.15s",opacity:0},onMouseEnter:p=>{p.currentTarget.style.background="var(--p-text-g)"},onMouseLeave:p=>{p.currentTarget.classList.contains("dragging")||(p.currentTarget.style.background="var(--p-border-t)")}})})]})}function Ux({col:e,tasks:t,isLoading:a,liveActivities:r,isDragOver:o,onDragOver:n,onDrop:l,onDragLeave:s,onStatusChange:u,onAddTask:d,onOpenTask:g,onDragStart:h,onCardDragOver:m,cardDropTarget:L}){let[y,I]=Oa.default.useState(!1),O=e.id==="in-progress"?"sd-inprogress":`sd-${e.id}`,c=20,i=e.id==="done",f=i&&t.length>c?t.length-c:0,v=i?t.slice(0,c):t;return(0,de.jsxs)("section",{className:"board-column","data-column-id":e.id,style:{outline:o?`2px dashed ${e.color}66`:void 0,outlineOffset:-2,borderRadius:8},onDragOver:n,onDragLeave:s,onDrop:l,children:[(0,de.jsxs)("div",{className:"column-header",style:{background:e.accent,borderColor:`color-mix(in srgb, ${e.color} 30%, transparent)`},children:[(0,de.jsx)("div",{className:`status-dot ${O}`}),(0,de.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:e.id==="done"?`${e.color}b3`:e.color},children:[e.label,a?"":` \\xB7 ${t.length}`]}),(0,de.jsx)("span",{style:{marginLeft:"auto"}}),(0,de.jsx)("button",{type:"button",title:`Add task to ${e.label}`,style:{width:20,height:20,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,border:"none",background:"transparent",color:y?e.color:"var(--p-text-g)",cursor:"pointer",transition:"color .15s",padding:0},onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),onClick:d,children:(0,de.jsx)(mn,{style:{width:14,height:14}})})]}),(0,de.jsx)("div",{className:"column-scroll","data-status":e.id,children:a?Array.from({length:Ox}).map((k,w)=>(0,de.jsx)(zx,{},w)):t.length===0?(0,de.jsxs)("div",{style:{border:"1px dashed var(--p-border-t)",borderRadius:8,padding:"10px 8px",fontSize:11,color:"var(--p-text-f)",textAlign:"center"},children:["No tasks in ",e.label.toLowerCase(),"."]}):(0,de.jsxs)(de.Fragment,{children:[v.map(k=>(0,de.jsxs)("div",{style:{position:"relative"},onDragOver:w=>m(w,k.id),children:[(L==null?void 0:L.taskId)===k.id&&L.position==="before"&&(0,de.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}}),(0,de.jsx)(Hi,{task:k,col:e,liveActivity:r==null?void 0:r.get(k.id),onOpen:g,onDragStart:h}),(L==null?void 0:L.taskId)===k.id&&L.position==="after"&&(0,de.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}})]},k.id)),f>0&&(0,de.jsxs)("div",{style:{margin:"4px 0 2px",padding:"6px 8px",borderRadius:6,border:"1px dashed var(--p-border-t)",fontSize:11,color:"var(--p-text-g)",textAlign:"center",lineHeight:1.4},children:["+",f," older ",f===1?"task":"tasks"," not shown"]})]})})]})}var mr=D(Ie(),1);var te=D(H(),1),sm={backlog:{text:"var(--p-text-m)",bg:"color-mix(in srgb, var(--p-text-g) 14%, transparent)",border:"color-mix(in srgb, var(--p-text-g) 30%, transparent)"},todo:{text:"var(--p-amber-300)",bg:"color-mix(in srgb, var(--p-amber) 14%, transparent)",border:"color-mix(in srgb, var(--p-amber) 30%, transparent)"},"in-progress":{text:"var(--p-blue-200)",bg:"color-mix(in srgb, var(--p-blue) 14%, transparent)",border:"color-mix(in srgb, var(--p-blue) 30%, transparent)"},review:{text:"var(--p-purple-300)",bg:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"color-mix(in srgb, var(--p-purple) 30%, transparent)"},done:{text:"var(--p-green-300)",bg:"color-mix(in srgb, var(--p-green) 12%, transparent)",border:"color-mix(in srgb, var(--p-green) 30%, transparent)"}},Nx=tm,um={Critical:"var(--p-red)",High:"var(--p-amber-300)",Medium:"var(--p-text-m)",Low:"var(--p-text-f)"},Wi=["in-progress","review","todo","backlog","done"];function Hx(){return(0,te.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"18px 1fr auto auto",alignItems:"center",gap:10,padding:"6px 10px",borderRadius:8,border:"1px solid var(--p-border-t)",background:"var(--p-bg-2)",animation:"skeleton-pulse 1.5s ease-in-out infinite"},children:[(0,te.jsx)("div",{style:{width:14,height:14,borderRadius:3,background:"var(--p-border-s)"}}),(0,te.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"60%"}}),(0,te.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:44}}),(0,te.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})}function Vi({tasks:e,searchQuery:t,isLoading:a,liveActivities:r,onOpenPanel:o,onAddTask:n,onDrop:l}){let[s,u]=mr.default.useState(null),[d,g]=mr.default.useState(null),[h,m]=mr.default.useState(null),[L,y]=mr.default.useState({backlog:!1,todo:!1,"in-progress":!1,review:!1,done:!1}),I=t?e.filter(c=>(c.title??"").toLowerCase().includes(t.toLowerCase())||(c.description??"").toLowerCase().includes(t.toLowerCase())):e,O=mr.default.useMemo(()=>{let c=new Map;for(let i of Wi)c.set(i,[]);for(let i of I)(c.get(i.status)??[]).push(i);return c},[I]);return(0,te.jsxs)("div",{id:"kanban-list-view",style:{flex:1,overflowY:"auto",padding:"16px 24px",minHeight:0},children:[a?Wi.slice(0,3).map(c=>{let i=sm[c];return(0,te.jsxs)("div",{style:{marginBottom:24},children:[(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,te.jsx)("div",{style:{width:18,height:18,borderRadius:5,background:"var(--p-border-s)",animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,te.jsx)("div",{style:{height:18,borderRadius:6,background:i.bg,border:`1px solid ${i.border}`,width:72,animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,te.jsx)("div",{style:{height:14,borderRadius:4,background:"var(--p-border-s)",width:16,animation:"skeleton-pulse 1.5s ease-in-out infinite"}})]}),(0,te.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:Array.from({length:3}).map((f,v)=>(0,te.jsx)(Hx,{},v))})]},c)}):Wi.map(c=>{let i=O.get(c)??[];if(i.length===0)return null;let f=sm[c];return(0,te.jsxs)("div",{style:{marginBottom:24},children:[(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8,padding:"4px 6px",borderRadius:6,transition:"background .1s",background:d===c?f.bg:"transparent",outline:d===c?`1px dashed ${f.border}`:void 0},onDragOver:v=>{v.preventDefault(),g(c)},onDragLeave:()=>g(null),onDrop:v=>{v.preventDefault(),g(null),m(null),s&&l(s,c),u(null)},children:[(0,te.jsx)("button",{type:"button",title:L[c]?"Expand":"Collapse",onClick:v=>{v.stopPropagation(),y(k=>({...k,[c]:!k[c]}))},style:{width:18,height:18,borderRadius:5,border:"1px solid var(--p-border-t)",background:"var(--p-surface)",color:"var(--p-text-m)",fontSize:10,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:L[c]?"+":"\\u2212"}),(0,te.jsx)("span",{style:{fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",padding:"2px 8px",borderRadius:6,background:f.bg,border:`1px solid ${f.border}`,color:f.text},children:c}),(0,te.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)"},children:i.length}),(0,te.jsx)("button",{type:"button",title:`Add task to ${c}`,onClick:v=>{v.stopPropagation(),n(c)},style:{marginLeft:"auto",width:22,height:22,borderRadius:7,border:`1px solid ${f.border}`,background:f.bg,color:f.text,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600},children:"+"})]}),(0,te.jsx)("div",{style:{display:L[c]?"none":"flex",flexDirection:"column",gap:2},children:i.map(v=>(0,te.jsx)(_x,{task:v,liveActivity:r==null?void 0:r.get(v.id),onOpen:o,onDragStart:k=>u(k),dragOver:h===v.id,onDragOver:()=>m(v.id),onDragLeave:()=>m(k=>k===v.id?null:k),onDropToStatus:()=>{s&&l(s,v.status),u(null),m(null)}},v.id))})]},c)}),!a&&I.length===0&&(0,te.jsx)("div",{style:{textAlign:"center",color:"var(--p-text-g)",fontSize:13,marginTop:60},children:"No tasks found"})]})}function _x({task:e,liveActivity:t,onOpen:a,onDragStart:r,dragOver:o,onDragOver:n,onDragLeave:l,onDropToStatus:s}){let[u,d]=mr.default.useState(!1),g=Nx[e.type??"Task"]??"\\u2611",h=e.commentCount??0,m=e.fileCount??0;return(0,te.jsxs)("div",{"data-task-id":e.id,"data-proto-id":"list-row",draggable:!0,style:{display:"grid",gridTemplateColumns:"18px 1fr auto auto auto",alignItems:"center",gap:10,padding:"6px 10px",borderRadius:8,background:o?"color-mix(in srgb, var(--p-blue) 10%, transparent)":u?"var(--p-hover)":"transparent",border:`1px solid ${o?"color-mix(in srgb, var(--p-blue) 40%, transparent)":u?"var(--p-border)":"transparent"}`,cursor:"grab",transition:"background .1s,border-color .1s",userSelect:"none"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>a(e),onDragStart:L=>{L.dataTransfer.effectAllowed="move",r(e.id),L.currentTarget.style.opacity="0.4"},onDragEnd:L=>{L.currentTarget.style.opacity="1"},onDragOver:L=>{L.preventDefault(),n()},onDragLeave:l,onDrop:L=>{L.preventDefault(),s()},children:[(0,te.jsx)("span",{style:{fontSize:12,textAlign:"center",flexShrink:0},children:g}),(0,te.jsxs)("div",{style:{minWidth:0},children:[(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,te.jsx)("span",{style:{fontSize:13,fontWeight:500,color:"var(--p-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.title}),e.priority&&um[e.priority]&&(0,te.jsx)(dn,{className:"w-2.5 h-2.5 flex-shrink-0",style:{color:um[e.priority]}}),e.component&&(0,te.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:10,background:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 30%, transparent)",color:"var(--p-purple-300)",flexShrink:0,fontFamily:"monospace"},children:e.component})]}),e.description&&(0,te.jsx)("div",{style:{fontSize:11,color:"var(--p-text-g)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1,maxWidth:"100%"},children:e.description.replace(/\\s+/g," ").trim()})]}),(0,te.jsxs)("button",{title:h>0?`${h} comment(s)`:"Add comment",style:{display:"flex",alignItems:"center",gap:3,fontSize:11,color:h>0?"var(--p-text-m)":"var(--p-border-t)",background:"none",border:"none",cursor:"pointer",padding:"0 2px",flexShrink:0},onClick:L=>{L.stopPropagation(),a(e,"comments")},children:[(0,te.jsx)(dr,{className:"w-3 h-3"}),h>0&&(0,te.jsx)("span",{children:h})]}),m>0&&(0,te.jsxs)("button",{title:`${m} file(s)`,style:{display:"flex",alignItems:"center",gap:3,fontSize:11,color:"var(--p-blue-300)",background:"none",border:"none",cursor:"pointer",padding:"0 2px",flexShrink:0},onClick:L=>{L.stopPropagation(),a(e,"files")},children:[(0,te.jsx)(fr,{className:"w-3 h-3"}),(0,te.jsx)("span",{children:m})]}),t&&(0,te.jsx)(_i,{activity:t})]})}var so=D(Ie(),1);var Ua=D(H(),1);function im({size:e=32,style:t,className:a}){return(0,Ua.jsxs)("svg",{width:e,height:e,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:t,className:a,"aria-label":"Vibeflow",children:[(0,Ua.jsx)("rect",{width:"32",height:"32",rx:"7",fill:"#2563eb"}),(0,Ua.jsx)("rect",{x:"7",y:"13",width:"3.5",height:"10",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Ua.jsx)("rect",{x:"12.25",y:"8.5",width:"3.5",height:"15",rx:"1.5",fill:"white"}),(0,Ua.jsx)("rect",{x:"17.5",y:"14.5",width:"3.5",height:"8",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Ua.jsx)("rect",{x:"22.5",y:"11",width:"2.5",height:"11",rx:"1.25",fill:"white",opacity:"0.85"})]})}var ls=D(H(),1);function ns({id:e,title:t,onClick:a,label:r,icon:o,variant:n="neutral"}){return(0,ls.jsxs)("button",{id:e,onClick:a,title:t,className:`h-7 inline-flex items-center justify-center rounded-lg border transition-colors ${n==="accent"?"border-violet-700/50 bg-violet-900/30 text-violet-300 hover:bg-violet-800/30":"border-slate-700/60 bg-slate-800 text-slate-400 hover:bg-slate-700/50 hover:text-slate-200"} ${r?"gap-1.5 px-3 text-xs font-medium":"w-7"}`,type:"button",children:[o,r&&(0,ls.jsx)("span",{children:r})]})}var $=D(H(),1);function $i({projectName:e,projectIcon:t,missingProjectIconStyle:a="initial",wsConnected:r,port:o,searchQuery:n,premiumUsage:l,isLoading:s,filterTags:u,allTags:d,onToggleTag:g,backHref:h,backLabel:m,onSearchChange:L,onSettings:y,extraActions:I,taskSummary:O}){let[c,i]=so.default.useState(!1),[f,v]=so.default.useState(0),k=so.default.useRef(null),w=so.default.useRef(null),p=n.match(/(?:^|\\s)#(\\S*)$/),S=p?p[1]:null,A=u??[],T=(d??[]).filter(U=>!A.includes(U)),M=S!==null?T.filter(U=>U.toLowerCase().includes(S.toLowerCase())):[];so.default.useEffect(()=>{v(0)},[M.length]);function X(U){var ae;let Q=n.replace(/\\s*#\\S*$/,"");L(Q),g==null||g(U),(ae=k.current)==null||ae.focus()}function le(U){if(!(S===null||M.length===0)){if(U.key==="ArrowDown")U.preventDefault(),v(Q=>Math.min(Q+1,M.length-1));else if(U.key==="ArrowUp")U.preventDefault(),v(Q=>Math.max(Q-1,0));else if(U.key==="Enter")U.preventDefault(),M[f]&&X(M[f]);else if(U.key==="Escape"){let Q=n.replace(/\\s*#\\S*$/,"");L(Q)}}}let J=(t??"").trim(),Re=e?e.charAt(0).toUpperCase()+e.slice(1):"Vibeflow Board",_=n||A.length>0;return(0,$.jsxs)("header",{className:"px-5 py-3 flex items-center gap-3 border-b border-slate-800/60 flex-shrink-0",children:[(0,$.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("a",{id:"header-back-link",href:h,className:"text-xs text-slate-400 hover:text-slate-200 transition-colors no-underline",style:{textDecoration:"none",fontWeight:500},children:m??"Back"}),(0,$.jsx)(sn,{className:"w-3 h-3 text-slate-600 flex-shrink-0"})]}),(0,$.jsx)("div",{className:"flex-shrink-0",style:J?{fontSize:20}:void 0,children:J||(a==="vibeflow"?(0,$.jsx)(im,{size:32}):(0,$.jsx)("div",{style:{width:32,height:32,borderRadius:8,flexShrink:0,background:"linear-gradient(135deg, #1e3a5f 0%, #1e293b 100%)",border:"1px solid rgba(37,99,235,0.3)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,fontWeight:700,color:"#93c5fd",letterSpacing:"-0.01em"},title:Re,children:Re.charAt(0).toUpperCase()}))}),(0,$.jsxs)("div",{children:[(0,$.jsxs)("div",{className:"flex items-center gap-2",children:[(0,$.jsx)("h1",{id:"header-project-name",className:"text-sm font-semibold text-white leading-tight",children:Re}),r&&(0,$.jsxs)("div",{id:"header-live-pill",className:"flex items-center gap-1.5 rounded-full px-2 py-0.5",style:{background:"color-mix(in srgb, var(--p-green) 30%, transparent)",border:"1px solid color-mix(in srgb, var(--p-green) 28%, transparent)"},children:[(0,$.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-green-400",style:{animation:"pulse-live 2s ease-in-out infinite"}}),(0,$.jsxs)("span",{className:"text-[10px] font-medium text-green-400",children:["live \\xB7 :",o]})]})]}),(0,$.jsxs)("p",{className:"text-[10px] text-slate-500 font-mono mt-0.5",children:[O,s&&(0,$.jsx)("span",{id:"header-loading-indicator",className:"inline-block ml-1.5 w-1 h-1 rounded-full bg-blue-400",style:{animation:"pulse-live 1.4s ease-in-out infinite",verticalAlign:"middle"}})]})]})]}),(0,$.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,$.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,$.jsxs)("div",{className:"flex flex-wrap items-center gap-1 w-full min-h-[30px] rounded-lg bg-slate-800 border border-slate-700/60 px-2 py-1 cursor-text transition-colors focus-within:border-blue-500",onClick:()=>{var U;return(U=k.current)==null?void 0:U.focus()},children:[(0,$.jsx)(gn,{className:"w-3.5 h-3.5 text-slate-500 flex-shrink-0 mr-0.5"}),A.map(U=>{let{bg:Q,text:ae,border:V}=Bt(U);return(0,$.jsxs)("span",{style:{background:Q,color:ae,border:`1px solid ${V}`,display:"inline-flex",alignItems:"center",gap:3,padding:"1px 7px",borderRadius:100,fontSize:11,fontWeight:500,whiteSpace:"nowrap"},children:[U,(0,$.jsx)("button",{onClick:me=>{me.stopPropagation(),g==null||g(U)},style:{background:"none",border:"none",cursor:"pointer",padding:0,lineHeight:1,color:"inherit",opacity:.7,display:"flex"},children:(0,$.jsx)(Oe,{style:{width:9,height:9}})})]},U)}),(0,$.jsx)("input",{ref:k,id:"global-search",type:"text",placeholder:A.length===0?"Search\\u2026 or type #tag":"#tag or search\\u2026",value:n,onChange:U=>L(U.target.value),onKeyDown:le,className:"flex-1 min-w-[100px] bg-transparent border-none outline-none text-xs text-slate-200 placeholder-slate-500",autoComplete:"off",spellCheck:!1}),_&&(0,$.jsx)("button",{id:"global-search-clear",onClick:()=>{L(""),A.forEach(U=>g==null?void 0:g(U))},className:"text-slate-500 hover:text-slate-300 transition-colors flex-shrink-0 flex",title:"Clear search and tag filters",children:(0,$.jsx)(Oe,{className:"w-3.5 h-3.5"})})]}),S!==null&&M.length>0&&(0,$.jsxs)("div",{ref:w,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.3)",zIndex:50,overflow:"hidden"},children:[(0,$.jsx)("div",{style:{padding:"5px 10px",fontSize:10,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--p-text-g)",borderBottom:"1px solid var(--p-border)"},children:"Tags"}),M.map((U,Q)=>{let{bg:ae,text:V,border:me}=Bt(U);return(0,$.jsxs)("button",{onMouseDown:nt=>{nt.preventDefault(),X(U)},onMouseEnter:()=>v(Q),style:{width:"100%",textAlign:"left",display:"flex",alignItems:"center",gap:8,padding:"7px 12px",background:Q===f?"var(--p-hover)":"none",border:"none",cursor:"pointer"},children:[(0,$.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:V,flexShrink:0}}),(0,$.jsx)("span",{style:{fontSize:12,color:"var(--p-text-m)"},children:U}),(0,$.jsx)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",padding:"1px 7px",borderRadius:100,fontSize:10,background:ae,color:V,border:`1px solid ${me}`},children:"tag"})]},U)}),(0,$.jsx)("div",{style:{padding:"5px 10px",fontSize:10,color:"var(--p-text-g)",borderTop:"1px solid var(--p-border)"},children:"\\u2191\\u2193 navigate \\xB7 Enter select \\xB7 Esc close"})]})]})}),(0,$.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[I,(0,$.jsx)(ns,{id:"header-shortcuts-hint",title:"Click to see keyboard shortcuts",onClick:()=>i(!0),label:"? shortcuts"}),(0,$.jsx)(ns,{id:"btn-settings",title:"Settings",onClick:y,icon:(0,$.jsx)(cr,{className:"w-3.5 h-3.5"})})]}),c&&(0,$.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(2,12,27,0.80)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",zIndex:200,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>i(!1),children:(0,$.jsxs)("div",{id:"shortcuts-modal",style:{background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:14,padding:"20px 24px",minWidth:320,maxWidth:420,boxShadow:"var(--p-shadow-lg)"},onClick:U=>U.stopPropagation(),children:[(0,$.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,$.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--p-text)"},children:"Keyboard Shortcuts"}),(0,$.jsx)("button",{onClick:()=>i(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--p-text-f)",padding:2},children:(0,$.jsx)(Oe,{style:{width:14,height:14}})})]}),(0,$.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[["Alt+N","Open new task panel"],["Esc","Close panel / modal"],["?","Show this shortcuts overlay"],["Alt+F","Focus task search"]].map(([U,Q])=>(0,$.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,$.jsx)("kbd",{style:{fontSize:10,fontFamily:"monospace",background:"var(--p-surface)",border:"1px solid var(--p-border-t)",borderRadius:4,padding:"2px 7px",color:"var(--p-text-sub)",flexShrink:0},children:U}),(0,$.jsx)("span",{style:{fontSize:12,color:"var(--p-text-m)"},children:Q})]},U))})]})})]})}var K=D(Ie(),1);var ss=D(Ie(),1);var Kt=D(H(),1);function us({id:e,value:t,onChange:a,disabled:r}){let[o,n]=ss.default.useState(!1),l=ss.default.useRef(null),s=pr.find(u=>u.value===t)??pr[0];return ss.default.useEffect(()=>{let u=d=>{var g;(g=l.current)!=null&&g.contains(d.target)||n(!1)};return document.addEventListener("click",u),()=>document.removeEventListener("click",u)},[]),(0,Kt.jsxs)("div",{id:e,ref:l,style:{position:"relative",display:"inline-block"},children:[(0,Kt.jsxs)("button",{type:"button",title:s==null?void 0:s.tooltip,onClick:u=>{u.preventDefault(),r||n(d=>!d)},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"3px 8px",borderRadius:6,border:"1px solid var(--p-border, rgba(255,255,255,0.08))",background:"var(--p-hover, rgba(255,255,255,0.05))",color:"var(--p-text-m, rgba(255,255,255,0.7))",fontSize:12,cursor:"pointer",whiteSpace:"nowrap"},children:[(0,Kt.jsx)("span",{style:{fontSize:13},children:s==null?void 0:s.icon}),(0,Kt.jsx)("span",{children:s==null?void 0:s.label})]}),o&&(0,Kt.jsx)("div",{style:{position:"absolute",top:"100%",left:0,marginTop:4,background:"var(--p-card, #1e293b)",border:"1px solid var(--p-border-s, rgba(255,255,255,0.12))",borderRadius:8,padding:"4px 0",zIndex:200,minWidth:140,boxShadow:"0 8px 24px rgba(0,0,0,0.4)"},children:pr.map(u=>(0,Kt.jsxs)("button",{type:"button",title:u.tooltip,onClick:()=>{a(u.value),n(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",border:"none",background:u.value===t?"var(--p-hover, rgba(255,255,255,0.06))":"transparent",color:u.value===t?"var(--p-text, #fff)":"var(--p-text-f, rgba(255,255,255,0.55))",fontSize:12,cursor:"pointer",textAlign:"left"},children:[(0,Kt.jsx)("span",{style:{fontSize:14,lineHeight:1},children:u.icon}),(0,Kt.jsx)("span",{children:u.label})]},u.value))})]})}var Ye=D(Ie(),1);var Sn=D(Ie(),1);var Na=D(H(),1);function Ha({markdown:e,className:t,style:a}){let r=Sn.default.useRef(null),o=Sn.default.useRef({}),[n,l]=Sn.default.useState(null);return Sn.default.useEffect(()=>{let s=r.current;if(!s)return;function u(){l(null)}async function d(h){let m=h.target,L=m==null?void 0:m.closest("a[data-task-ref]");if(!L){u();return}h.preventDefault();let y=L.getAttribute("data-task-ref");if(!y)return;let I=L.getBoundingClientRect(),O=o.current[y];if(O){l({id:y,title:O.title,status:O.status,x:I.left,y:I.bottom+6});return}try{let i=await(await fetch(`/api/tasks/${y}`)).json(),f={title:i.title??`Task ${y}`,status:i.status??"unknown"};o.current[y]=f,l({id:y,title:f.title,status:f.status,x:I.left,y:I.bottom+6})}catch{l({id:y,title:`Task ${y}`,status:"unknown",x:I.left,y:I.bottom+6})}}function g(h){var y,I;let m=(I=(y=h.target)==null?void 0:y.closest)==null?void 0:I.call(y,"a[data-task-ref]");if(!m)return;let L=m.getAttribute("data-task-ref");L&&window.dispatchEvent(new CustomEvent("vibeflow-task-ref-click",{detail:{refId:L}}))}return s.addEventListener("mouseover",d),s.addEventListener("mouseleave",u),s.addEventListener("click",g),()=>{s.removeEventListener("mouseover",d),s.removeEventListener("mouseleave",u),s.removeEventListener("click",g)}},[]),(0,Na.jsxs)("div",{style:{position:"relative"},children:[(0,Na.jsx)("div",{ref:r,className:t,style:a,dangerouslySetInnerHTML:{__html:ts(e)}}),n&&(0,Na.jsxs)("div",{style:{position:"fixed",left:n.x,top:n.y,background:"#0f172a",border:"1px solid rgba(59,130,246,0.4)",color:"#e2e8f0",borderRadius:8,padding:"8px 10px",fontSize:11,boxShadow:"0 10px 24px rgba(2,6,23,0.55)",zIndex:60,pointerEvents:"none",minWidth:180},children:[(0,Na.jsxs)("div",{style:{color:"#60a5fa",fontFamily:"Menlo,monospace",marginBottom:3},children:["#",n.id]}),(0,Na.jsx)("div",{style:{fontWeight:600,marginBottom:3},children:n.title}),(0,Na.jsxs)("div",{style:{color:"#94a3b8"},children:["status: ",n.status]})]})]})}var In=D(Ie(),1),dm=D(H(),1),uo=In.default.forwardRef(function({value:t,onChange:a,baseRows:r=4,maxRows:o,style:n,...l},s){let u=In.default.useRef(null),d=o??r*2,g=In.default.useCallback(()=>{let h=u.current;if(!h)return;h.style.height="auto";let m=window.getComputedStyle(h),L=Number.parseFloat(m.lineHeight||"0")||18,y=Number.parseFloat(m.paddingTop||"0")+Number.parseFloat(m.paddingBottom||"0"),I=Number.parseFloat(m.borderTopWidth||"0")+Number.parseFloat(m.borderBottomWidth||"0"),O=r*L+y+I,c=d*L+y+I,i=Math.max(O,Math.min(h.scrollHeight,c));h.style.height=`${i}px`,h.style.overflowY=h.scrollHeight>c?"auto":"hidden"},[r,d]);return In.default.useLayoutEffect(()=>{g()},[t,g]),(0,dm.jsx)("textarea",{...l,ref:h=>{u.current=h,typeof s=="function"?s(h):s&&(s.current=h)},rows:r,value:t,onChange:h=>a(h.target.value),style:{...n,resize:"none"}})});var pm=D(Ie(),1);var fm=D(Ie(),1),cm=D(ao(),1),ua=D(H(),1);function gr({open:e,onClose:t,icon:a,title:r,headerActions:o,width:n,maxHeight:l,id:s,children:u,footer:d,boxStyle:g,onKeyDown:h}){if(fm.default.useEffect(()=>{if(!e)return;function y(I){I.key==="Escape"&&t(),h==null||h(I)}return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[e,t,h]),!e)return null;let m=!!(a||r||o),L=(0,ua.jsx)("div",{id:s,className:"modal-backdrop",onClick:y=>{y.target===y.currentTarget&&t()},onMouseDown:y=>y.stopPropagation(),children:(0,ua.jsxs)("div",{className:"modal-box",style:{width:n??"min(420px, 95vw)",maxHeight:l,...g},children:[m&&(0,ua.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 18px",borderBottom:"1px solid var(--p-border)",flexShrink:0},children:[a&&(0,ua.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:a}),r&&(0,ua.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"var(--p-text)",flex:1,minWidth:0},children:r}),o&&(0,ua.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,flexShrink:0,marginLeft:"auto"},children:o})]}),u,d&&(0,ua.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"10px 18px",borderTop:"1px solid var(--p-border)",flexShrink:0},children:d})]})});return(0,cm.createPortal)(L,document.body)}var St=D(H(),1);function jt({open:e,message:t,title:a="Confirm",confirmLabel:r="Delete",cancelLabel:o="Cancel",loading:n,error:l,onConfirm:s,onCancel:u}){let d=pm.default.useCallback(g=>{g.key==="Enter"&&s()},[s]);return(0,St.jsx)(gr,{open:e,onClose:u,id:"confirm-modal",width:"min(380px, 95vw)",icon:(0,St.jsx)(Ba,{style:{width:20,height:20,color:"#f87171"}}),title:a,onKeyDown:d,footer:(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("button",{id:"confirm-modal-cancel",onClick:u,disabled:n,style:{padding:"7px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer",transition:"background 0.15s"},children:o}),(0,St.jsx)("button",{id:"confirm-modal-confirm",onClick:s,disabled:n,style:{padding:"7px 16px",borderRadius:8,background:"#dc2626",border:"none",color:"#fff",fontSize:13,fontWeight:600,cursor:n?"wait":"pointer",opacity:n?.6:1,transition:"background 0.15s"},children:n?"Deleting\\u2026":r})]}),children:(0,St.jsxs)("div",{style:{padding:"16px 18px"},children:[typeof t=="string"?(0,St.jsx)("p",{style:{margin:0,fontSize:13,color:"var(--p-text-f)",lineHeight:1.6},children:t}):t,l&&(0,St.jsx)("p",{style:{margin:"8px 0 0",fontSize:12,color:"var(--p-red)"},children:l})]})})}var Ae=D(H(),1);function mm(e){return e.linkedPath?"\\u{1F517}":/\\.(png|jpe?g|gif|webp|svg)$/i.test(e.name)?"\\u{1F5BC}\\uFE0F":/\\.html?$/i.test(e.name)?"\\u{1F310}":/\\.md$/i.test(e.name)||/\\.pdf$/i.test(e.name)?"\\u{1F4C4}":"\\u{1F4CE}"}function qx(e){return/\\.(png|jpe?g|gif|webp|svg|html?)$/i.test(e.name)}function Wx(e){return/\\.html?$/i.test(e.name)}function is({file:e,url:t,variant:a,onPreview:r,onDelete:o}){let n=qx(e),l=Wx(e);function s(){r?r(e,t):window.open(t,"_blank")}return a==="compact"?(0,Ae.jsxs)("div",{className:"group/file-compact",style:{display:"flex",alignItems:"center",gap:8,padding:"4px 8px",borderRadius:8,background:"var(--p-card)",border:"1px solid var(--p-border)",position:"relative"},children:[(0,Ae.jsx)("span",{style:{fontSize:14,flexShrink:0},children:mm(e)}),(0,Ae.jsx)("div",{style:{flex:1,minWidth:0},children:(0,Ae.jsx)("button",{onClick:s,style:{fontSize:12,color:"var(--p-blue-300)",background:"none",border:"none",cursor:"pointer",padding:0,textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},title:e.name,children:e.name})}),(0,Ae.jsx)("span",{className:"file-compact-ts",style:{fontSize:10,color:"var(--p-border-t)",flexShrink:0,marginLeft:2},children:e.createdAt?ot(e.createdAt):"attached"}),(0,Ae.jsxs)("div",{className:"file-compact-actions",style:{position:"absolute",right:6,top:0,bottom:0,display:"flex",alignItems:"center",gap:4,transition:"opacity 0.15s",background:"var(--p-card)",paddingLeft:8},children:[n&&(0,Ae.jsx)("button",{onClick:s,style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:l?"Open in new tab":"Preview",children:l?"\\u2197":"\\u{1F441}"}),(0,Ae.jsx)("a",{href:t,download:e.name,style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)",textDecoration:"none"},title:"Download",onClick:u=>u.stopPropagation(),children:"\\u2193"}),o&&(0,Ae.jsx)("button",{onClick:()=>void o(e),style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:"Delete",children:"\\u2715"})]})]}):(0,Ae.jsxs)("div",{className:"group/file",style:{display:"flex",alignItems:"center",gap:10,padding:8,borderRadius:8,border:"1px solid var(--p-border)",transition:"background 0.15s",position:"relative"},children:[(0,Ae.jsx)("span",{style:{fontSize:18,flexShrink:0},children:mm(e)}),(0,Ae.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,Ae.jsx)("p",{style:{fontSize:12,fontWeight:500,color:"var(--p-text)",margin:0,cursor:"pointer",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.name,onClick:s,children:e.name}),(0,Ae.jsx)("p",{style:{fontSize:10,color:"var(--p-text-f)",margin:0},children:e.linkedPath?`linked: ${e.linkedPath}`:Ui(e.size??0)})]}),(0,Ae.jsxs)("div",{className:"file-normal-actions",style:{display:"flex",alignItems:"center",gap:4,transition:"opacity 0.15s"},children:[n&&(0,Ae.jsx)("button",{onClick:s,style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:l?"Open in new tab":"Preview",children:l?"\\u2197":"\\u{1F441}"}),(0,Ae.jsx)("a",{href:t,download:e.name,style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)",textDecoration:"none"},title:"Download",onClick:u=>u.stopPropagation(),children:"\\u2193"}),o&&(0,Ae.jsx)("button",{onClick:()=>void o(e),style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:"Delete",children:"\\u2715"})]})]})}var F=D(H(),1);function gm({source:e}){return e!=="cli"?null:(0,F.jsx)("span",{title:"Via CLI (agent)",style:{fontSize:9,color:"var(--p-green-300)",background:"rgba(34,197,94,0.1)",border:"1px solid rgba(34,197,94,0.2)",borderRadius:4,padding:"0 4px",fontFamily:"monospace",lineHeight:"16px",flexShrink:0},children:">_"})}function Vx(e,t){if(e.kind==="lifecycle")return e.author??null;if(e.kind==="comment"){let a=e.comment;return a.type==="system"?null:a.author==="agent"?"\\u{1F916} Agent":a.authorName??t}return e.kind==="change"?e.actor:null}function $x(e,t){let a=[];for(let r of e){let o=Vx(r,t),n=a[a.length-1];o&&n&&n.author===o?(n.items.push(r),r.sortKey>n.newestSortKey&&(n.newestSortKey=r.sortKey),r.sortKey<n.oldestSortKey&&(n.oldestSortKey=r.sortKey)):a.push({author:o,newestSortKey:r.sortKey,oldestSortKey:r.sortKey,items:[r]})}return a}function Gi({comments:e,files:t=[],localChanges:a=[],loading:r,error:o,gitUserName:n="You",taskAuthorName:l,baseUrl:s="",taskId:u,taskCreatedAt:d,taskUpdatedAt:g,onEdit:h,onDelete:m,onDeleteFile:L,onFilePreview:y}){let I=Ye.default.useRef(null),O=Ye.default.useRef(null),[c,i]=Ye.default.useState(null),[f,v]=Ye.default.useState(""),[k,w]=Ye.default.useState(null),[p,S]=Ye.default.useState(null),[A,T]=Ye.default.useState(()=>{try{return localStorage.getItem("vibeflow-show-updates")!=="false"}catch{return!0}}),M=Ye.default.useRef(r),X=Ye.default.useMemo(()=>{let _=[];d&&_.push({kind:"lifecycle",sortKey:d,label:"Task created",icon:"\\u2726",author:l??n}),g&&g!==d&&_.push({kind:"lifecycle",sortKey:g,label:"Task edited",icon:"\\u270E"});let U=e.map(V=>({kind:"comment",sortKey:V.createdAt,comment:V})),Q=t.map(V=>{let me=V.url.startsWith("http")?V.url:`${s}${V.url}`;return{kind:"file",sortKey:V.createdAt??"9999",file:V,url:me}}),ae=a.map(V=>({kind:"change",sortKey:V.timestamp,field:V.field,from:V.from,to:V.to,actor:V.actor,source:V.source}));return[..._,...U,...Q,...ae].sort((V,me)=>me.sortKey.localeCompare(V.sortKey))},[e,t,a,s,d,g]),le=Ye.default.useMemo(()=>X.filter(_=>_.kind==="lifecycle"||_.kind==="change").length,[X]),J=Ye.default.useMemo(()=>A?X:X.filter(_=>_.kind==="comment"||_.kind==="file"),[X,A]),Re=Ye.default.useMemo(()=>$x(J,n),[J,n]);return Ye.default.useEffect(()=>{let _=M.current&&!r;M.current=r,I.current&&_&&requestAnimationFrame(()=>{I.current&&(I.current.scrollTop=0)})},[r]),Ye.default.useEffect(()=>{c&&O.current&&(O.current.focus(),O.current.scrollIntoView({block:"nearest"}))},[c]),r?(0,F.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):o?(0,F.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):X.length===0?(0,F.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No activity yet."}):(0,F.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[le>0&&(0,F.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0 4px",flexShrink:0,borderBottom:"1px solid var(--p-border)",marginBottom:4},children:[(0,F.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",flex:1,letterSpacing:"0.04em"},children:A?"":`${le} system event${le!==1?"s":""} hidden`}),(0,F.jsx)("button",{id:"dp-toggle-updates",onClick:()=>T(_=>{let U=!_;try{localStorage.setItem("vibeflow-show-updates",String(U))}catch{}return U}),style:{all:"unset",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,color:A?"var(--p-text-m)":"var(--p-text-g)",transition:"color .12s, background .12s"},title:A?"Hide system events":`Show ${le} system event${le!==1?"s":""}`,onMouseEnter:_=>{_.currentTarget.style.color="var(--p-text)",_.currentTarget.style.background="var(--p-hover)"},onMouseLeave:_=>{_.currentTarget.style.color=A?"var(--p-text-m)":"var(--p-text-g)",_.currentTarget.style.background="transparent"},children:A?(0,F.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,F.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,F.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}):(0,F.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,F.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,F.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]})})]}),(0,F.jsx)("div",{ref:I,style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:Re.map((_,U)=>{let Q=_.author!==null&&_.items.length>1,ae=Q,V=_.author==="\\u{1F916} Agent";return(0,F.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:0},children:[ae&&(0,F.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 0 2px",marginTop:4},children:[(0,F.jsx)("span",{style:{fontSize:11,fontWeight:600,color:V?"var(--p-purple)":"var(--p-blue-300)",flexShrink:0},children:_.author}),(0,F.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",flexShrink:0},children:`${ot(_.oldestSortKey)} \\u2013 ${ot(_.newestSortKey)}`}),(0,F.jsxs)("span",{style:{fontSize:10,color:"var(--p-border-t)",flexShrink:0,marginLeft:2},children:["(",_.items.length," activities)"]})]}),(0,F.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:Q?4:8,paddingLeft:Q?8:0,borderLeft:Q?"1.5px solid var(--p-border)":"none",marginLeft:Q?4:0},children:_.items.map((me,nt)=>Gx(me,nt,U,Q,n,c,f,O,i,v,h,w,L?S:null,y))})]},`group-${U}`)})}),(0,F.jsx)(jt,{open:k!==null,message:"Delete this comment? This action cannot be undone.",onConfirm:()=>{k&&m(k),w(null)},onCancel:()=>w(null)}),L&&(0,F.jsx)(jt,{open:p!==null,message:p?`Delete "${p.name}"? This action cannot be undone.`:"",onConfirm:()=>{p&&L(p),S(null)},onCancel:()=>S(null)})]})}function Gx(e,t,a,r,o,n,l,s,u,d,g,h,m,L){if(e.kind==="lifecycle")return(0,F.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-purple)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:e.icon}),(0,F.jsx)("div",{style:{flex:1,minWidth:0},children:(0,F.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)",fontStyle:"italic"},children:e.label}),!r&&(0,F.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",marginLeft:"auto",flexShrink:0},children:ot(e.sortKey)})]})})]},`lifecycle-${e.sortKey}-${a}-${t}`);if(e.kind==="change"){let k=e.from.length>28?e.from.slice(0,28)+"\\u2026":e.from,w=e.to.length>28?e.to.slice(0,28)+"\\u2026":e.to,p=e.from.length>28||e.to.length>28;return(0,F.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-blue)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:"\\u270E"}),(0,F.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,F.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[!r&&(0,F.jsxs)("span",{style:{fontSize:11,fontWeight:600,color:"var(--p-blue-300)"},children:["\\u{1F464} ",e.actor]}),!r&&(0,F.jsx)(gm,{source:e.source}),(0,F.jsxs)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:["changed ",(0,F.jsx)("strong",{style:{color:"var(--p-text)"},children:e.field})]}),!r&&(0,F.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",marginLeft:"auto",flexShrink:0},children:ot(e.sortKey)})]}),(0,F.jsxs)("div",{title:p?`${e.from} \\u2192 ${e.to}`:void 0,style:{marginTop:2,fontSize:11,color:"var(--p-text-g)",display:"flex",alignItems:"center",gap:4,cursor:p?"help":"default"},children:[(0,F.jsx)("span",{style:{color:"var(--p-red)",background:"rgba(239,68,68,0.1)",borderRadius:4,padding:"1px 5px",maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k}),(0,F.jsx)("span",{style:{color:"var(--p-text-g)"},children:"\\u2192"}),(0,F.jsx)("span",{style:{color:"var(--p-green)",background:"rgba(34,197,94,0.1)",borderRadius:4,padding:"1px 5px",maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:w})]})]})]},`change-${e.sortKey}-${a}-${t}`)}if(e.kind==="file"){let{file:v,url:k}=e;return(0,F.jsx)(is,{file:v,url:k,variant:"compact",onPreview:L?(w,p)=>L(w.name,p):void 0,onDelete:m?w=>(m(w),Promise.resolve()):void 0},`file-${v.name}-${a}-${t}`)}let y=e.comment,I=y.author==="agent",O=y.type==="system",c=y.deleted===!0,i=!!y.id&&!I&&!O&&!c&&y.isOwnComment!==!1,f=n===y.id;return O?(0,F.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 0",fontSize:11,color:"var(--p-text-g)",fontStyle:"italic"},children:[(0,F.jsx)("span",{style:{opacity:.6},children:"\\u2B21"}),(0,F.jsx)("span",{children:y.text}),!r&&(0,F.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,opacity:.6},children:ot(y.createdAt)})]},y.id):(0,F.jsxs)("div",{className:"flex flex-col gap-1 group/comment",style:{paddingTop:r?2:4},children:[!r&&(0,F.jsxs)("div",{className:"flex items-center justify-between gap-1.5 text-xs mb-0.5",children:[(0,F.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,F.jsx)("span",{style:{color:c?"var(--p-text-g)":I?"var(--p-purple)":"var(--p-blue-300)"},children:I?"\\u{1F916} Agent":`\\u{1F464} ${y.authorName??o}`}),(0,F.jsx)(gm,{source:y.source}),(0,F.jsxs)("span",{style:{color:"var(--p-text-g)"},children:[ot(y.createdAt),!c&&y.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]})]}),i&&(0,F.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,F.jsx)("button",{onClick:()=>{u(y.id),d(y.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,F.jsx)("button",{onClick:()=>h(y),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),r&&(0,F.jsxs)("div",{className:"flex items-center justify-between gap-1.5",style:{marginBottom:2},children:[(0,F.jsxs)("span",{style:{fontSize:10,color:"var(--p-text-g)"},children:[ot(y.createdAt),!c&&y.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]}),i&&(0,F.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,F.jsx)("button",{onClick:()=>{u(y.id),d(y.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,F.jsx)("button",{onClick:()=>h(y),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,F.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),f?(0,F.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,F.jsx)(uo,{ref:s,value:l,onChange:d,baseRows:4,maxRows:12,onKeyDown:v=>{v.key==="Enter"&&(v.ctrlKey||v.metaKey)&&(v.preventDefault(),g(y,l).then(()=>u(null)))},style:{width:"100%",background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:6,padding:"8px 10px",fontSize:12,color:"var(--p-text)",outline:"none",fontFamily:"inherit",boxSizing:"border-box"}}),(0,F.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,F.jsx)("button",{onClick:()=>u(null),style:{padding:"4px 10px",background:"var(--p-surface)",border:"none",borderRadius:5,fontSize:11,color:"var(--p-text-sub)",cursor:"pointer"},children:"Cancel"}),(0,F.jsx)("button",{onClick:async()=>{await g(y,l),u(null)},style:{padding:"4px 10px",background:"var(--p-blue)",border:"none",borderRadius:5,fontSize:11,color:"var(--p-white)",cursor:"pointer"},children:"Save"})]})]}):c?(0,F.jsx)("div",{style:{padding:"8px 14px",fontSize:12,color:"var(--p-text-g)",fontStyle:"italic",background:"var(--p-input)",border:"1px dashed var(--p-border)",borderRadius:8},children:"Comment deleted"}):(0,F.jsx)(Ha,{markdown:y.text,style:{background:"var(--p-input)",border:"1px solid var(--p-border)",borderRadius:8,padding:"10px 14px",fontSize:12,color:"var(--p-text-sub)",lineHeight:1.6}})]},y.id)}var hm=D(Ie(),1);var _a=D(H(),1);function Ki({files:e,loading:t,error:a,baseUrl:r,onPreview:o,onDelete:n}){let[l,s]=hm.default.useState(null);return t?(0,_a.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):a?(0,_a.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):e.length===0?(0,_a.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No files attached."}):(0,_a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[e.map(u=>{let d=u.url??`${r}/api/files/${encodeURIComponent(u.name)}`;return(0,_a.jsx)(is,{file:u,url:d,variant:"normal",onPreview:g=>o(g),onDelete:n?g=>(s(g),Promise.resolve()):void 0},u.name)}),n&&(0,_a.jsx)(jt,{open:l!==null,message:l?`Delete "${l.name}"? This action cannot be undone.`:"",onConfirm:()=>{l&&n(l),s(null)},onCancel:()=>s(null)})]})}var Qi=D(Ie(),1);var io=D(Ie(),1),xm=D(ao(),1);var Ot=D(H(),1);function Cn({value:e,onChange:t,previewValue:a,showPreview:r,setShowPreview:o,previewId:n,textareaId:l,placeholder:s,previewEmptyText:u,previewMinHeight:d=54,previewMaxHeight:g=220,baseRows:h=5,maxRows:m=12,autoFocus:L=!1,textareaRef:y,onKeyDown:I,afterTextarea:O,onBlur:c}){let i=io.default.useRef(null),[f,v]=io.default.useState([]),[k,w]=io.default.useState(null),[p,S]=io.default.useState(null);io.default.useEffect(()=>{let M=!0;return fetch("/api/tasks").then(X=>X.json()).then(X=>{if(!M)return;let le=(X.tasks??[]).map(J=>({id:String(J.id??""),title:String(J.title??"")})).filter(J=>J.id.length>0);v(le)}).catch(()=>{}),()=>{M=!1}},[]);function A(M){let X=i.current;if(!X){w(null);return}let le=X.selectionStart??M.length,J=M.slice(0,le),Re=-1;for(let ae=J.length-1;ae>=0;ae--){if(J[ae]!=="#")continue;let V=ae>0?J[ae-1]:"";if(V&&!/\\s/.test(V))continue;let me=J.slice(ae+1);if(!me.includes("#")){if(me.length>80)return;Re=ae;break}}if(Re===-1){w(null);return}let _=J.slice(Re+1).trim().toLowerCase(),U=f.filter(ae=>{if(!_)return!0;let V=ae.id.toLowerCase(),me=ae.title.toLowerCase();return V.includes(_)||me.includes(_)}).sort((ae,V)=>{let me=ae.id.toLowerCase().startsWith(_)?1:0,nt=V.id.toLowerCase().startsWith(_)?1:0;if(me!==nt)return nt-me;let wt=ae.title.toLowerCase().startsWith(_)?1:0,Ge=V.title.toLowerCase().startsWith(_)?1:0;return wt!==Ge?Ge-wt:ae.id.localeCompare(V.id)}).slice(0,6);if(!U.length){w(null),S(null);return}let Q=X.getBoundingClientRect();S({top:Q.top,left:Q.left,width:Q.width}),w({queryStart:Re,queryEnd:le,items:U})}function T(M){let X=k;if(!X)return;let le=`${e.slice(0,X.queryStart)}#${M} ${e.slice(X.queryEnd)}`;t(le),w(null),S(null),requestAnimationFrame(()=>{let J=i.current;if(!J)return;let Re=X.queryStart+M.length+2;J.focus(),J.setSelectionRange(Re,Re)})}return r?(0,Ot.jsx)("div",{id:n,onClick:M=>{M.target.closest("a")||o(!1)},title:"Click to edit",style:{cursor:"text",minHeight:d,background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:8,padding:10,fontSize:12,color:"var(--p-text-sub)",lineHeight:1.7,overflow:"auto",maxHeight:g},children:(a??e).trim()?(0,Ot.jsx)(Ha,{markdown:a??e}):(0,Ot.jsx)("span",{style:{color:"var(--p-border-t)"},children:u??s})}):(0,Ot.jsxs)("div",{style:{position:"relative"},children:[(0,Ot.jsx)(uo,{id:l,ref:M=>{i.current=M,y&&(y.current=M)},className:"dp-textarea",placeholder:s,value:e,onChange:M=>{t(M),A(M)},onFocus:()=>o(!1),onBlur:()=>{w(null),S(null),o(!0),c==null||c()},baseRows:h,maxRows:m,autoFocus:L,onKeyDown:M=>{M.key==="Escape"&&(w(null),S(null)),I==null||I(M)}}),k&&p&&(0,xm.createPortal)((0,Ot.jsx)("div",{"data-task-ref-suggest":"true",style:{position:"fixed",left:p.left+8,width:p.width-16,top:p.top,transform:"translateY(-100%)",border:"1px solid var(--p-border-s)",background:"var(--p-card)",borderRadius:8,boxShadow:"var(--p-shadow-lg)",overflow:"hidden",zIndex:9999},children:k.items.map(M=>(0,Ot.jsxs)("button",{type:"button",onMouseDown:X=>{X.preventDefault(),T(M.id)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,textAlign:"left",border:"none",borderBottom:"1px solid var(--p-border)",background:"transparent",color:"var(--p-text-sub)",padding:"7px 10px",fontSize:11,cursor:"pointer"},onMouseEnter:X=>{X.currentTarget.style.background="var(--p-hover)"},onMouseLeave:X=>{X.currentTarget.style.background="transparent"},children:[(0,Ot.jsxs)("span",{style:{fontFamily:"monospace",color:"var(--p-blue-300)"},children:["#",M.id]}),(0,Ot.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M.title})]},M.id))}),document.body),O]})}var hr=D(Ie(),1);var It=D(H(),1);function ji({tags:e,allTags:t,onChange:a,disabled:r}){let[o,n]=hr.default.useState(""),[l,s]=hr.default.useState(!1),u=hr.default.useRef(null),d=hr.default.useRef(null),g=o.trim().toLowerCase(),h=hr.default.useMemo(()=>t.filter(f=>!e.includes(f)&&f.toLowerCase().includes(g)).slice(0,8),[t,e,g]),m=g.length>0&&!t.some(i=>i.toLowerCase()===g)&&!e.some(i=>i.toLowerCase()===g),L=g.length>0&&t.some(i=>i.toLowerCase()===g)&&!e.some(i=>i.toLowerCase()===g);function y(i){var v;let f=i.trim();!f||e.includes(f)||(a([...e,f]),n(""),s(!1),(v=u.current)==null||v.focus())}function I(i){a(e.filter(f=>f!==i))}function O(i){if(i.key==="Enter")if(i.preventDefault(),m||L){let f=t.find(v=>v.toLowerCase()===g);y(f??o.trim())}else h.length>0&&y(h[0]);i.key==="Escape"&&(s(!1),n("")),i.key==="Backspace"&&!o&&e.length>0&&I(e[e.length-1])}hr.default.useEffect(()=>{function i(f){d.current&&!d.current.contains(f.target)&&s(!1)}return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[]);let c=l&&(h.length>0||m);return(0,It.jsxs)("div",{ref:d,style:{position:"relative"},children:[(0,It.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center",padding:"5px 8px",borderRadius:8,border:`1px solid ${l?"var(--p-blue)":"var(--p-border)"}`,background:"var(--p-input)",cursor:r?"not-allowed":"text",opacity:r?.6:1,minHeight:34,transition:"border-color .12s"},onClick:()=>{var i;r||(i=u.current)==null||i.focus()},children:[(0,It.jsx)(yn,{tags:e,onRemove:r?void 0:I,size:"sm"}),!r&&(0,It.jsx)("input",{ref:u,type:"text",value:o,placeholder:e.length?"":"Add tags\\u2026",onChange:i=>{n(i.target.value),s(!0)},onFocus:()=>s(!0),onKeyDown:O,style:{background:"none",border:"none",outline:"none",fontSize:12,color:"var(--p-text)",minWidth:80,flex:1,padding:0,lineHeight:"1.4"}})]}),c&&(0,It.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onMouseDown:i=>i.preventDefault(),children:[h.map(i=>{let{bg:f,text:v,border:k}=Bt(i);return(0,It.jsxs)("button",{type:"button",onClick:()=>y(i),style:{width:"100%",textAlign:"left",padding:"6px 10px",display:"flex",alignItems:"center",gap:6,background:"none",border:"none",cursor:"pointer",fontSize:12,color:"var(--p-text-m)"},onMouseEnter:w=>{w.currentTarget.style.background="var(--p-hover)"},onMouseLeave:w=>{w.currentTarget.style.background="none"},children:[(0,It.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:v,border:`1px solid ${k}`,flexShrink:0}}),i]},i)}),m&&(0,It.jsxs)("button",{type:"button",onClick:()=>y(o.trim()),style:{width:"100%",textAlign:"left",padding:"6px 10px",display:"flex",alignItems:"center",gap:6,background:"none",border:h.length>0?"1px solid var(--p-border)":"none",borderLeft:"none",borderRight:"none",borderBottom:"none",cursor:"pointer",fontSize:12,color:"var(--p-text-g)"},onMouseEnter:i=>{i.currentTarget.style.background="var(--p-hover)",i.currentTarget.style.color="var(--p-text-m)"},onMouseLeave:i=>{i.currentTarget.style.background="none",i.currentTarget.style.color="var(--p-text-g)"},children:[(0,It.jsx)("span",{style:{fontSize:14,lineHeight:1},children:"+"}),\'Create "\',(0,It.jsx)("strong",{style:{color:"var(--p-text)"},children:o.trim()}),\'"\']})]})]})}var W=D(H(),1);function Yi({task:e,description:t,setDescription:a,showDescPreview:r,setShowDescPreview:o,priority:n,setPriority:l,onDescriptionBlur:s,onDescriptionDiscard:u,originalDescription:d,onPriorityChange:g,githubUrl:h,onFilePreview:m,onPatch:L,onDeleteScreenshot:y,liveFiles:I,allTags:O=[]}){let c=(e==null?void 0:e.files)??[],i=I?I.map(T=>({name:T.name,linkedPath:T.linkedPath,addedAt:T.createdAt,url:T.url})):c,f=i==null?void 0:i.find(T=>/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(T.name)),v=e&&f?f.url||`/api/tasks/${e.id}/files/${encodeURIComponent(f.name)}`:null,k=Qi.default.useRef(null),[w,p]=Qi.default.useState(null),{userPart:S,consolePart:A}=jx(t);return(0,W.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,W.jsxs)("div",{children:[(0,W.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:"Description"}),(0,W.jsx)(Cn,{value:t,previewValue:A?S:void 0,onChange:a,onBlur:s,showPreview:r,setShowPreview:o,previewId:"dp-desc-preview",textareaId:"dp-desc",placeholder:"Description (markdown)\\u2026",previewMinHeight:80,previewMaxHeight:220,baseRows:6,maxRows:12,autoFocus:!0,textareaRef:k,afterTextarea:u&&d!==void 0&&t!==d?(0,W.jsx)("button",{type:"button",onMouseDown:T=>{T.preventDefault(),u()},title:"Discard changes and restore saved description",style:{marginTop:4,display:"flex",alignItems:"center",gap:4,fontSize:11,color:"var(--p-text-g)",background:"none",border:"1px solid var(--p-border-t)",borderRadius:6,padding:"3px 8px",cursor:"pointer",transition:"color .12s, border-color .12s"},onMouseEnter:T=>{T.currentTarget.style.color="var(--p-amber-300)",T.currentTarget.style.borderColor="var(--p-amber-300)"},onMouseLeave:T=>{T.currentTarget.style.color="var(--p-text-g)",T.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u21A9 Discard changes"}):void 0})]}),A&&(0,W.jsx)(Xx,{logs:A}),e&&f&&v&&(0,W.jsxs)("div",{children:[(0,W.jsx)("div",{className:"dp-meta-label",children:"Screenshot"}),(0,W.jsxs)("div",{id:"dp-screenshot-preview",style:{border:"1px solid color-mix(in srgb, var(--p-border-t) 70%, transparent)",borderRadius:10,overflow:"hidden",background:"var(--p-card)"},children:[(0,W.jsx)("button",{onClick:()=>m(f.name,v),style:{width:"100%",height:112,border:"none",padding:0,background:"linear-gradient(135deg, var(--p-border), var(--p-bg))",cursor:"pointer",display:"block",overflow:"hidden"},title:"Preview screenshot",children:(0,W.jsx)("img",{src:v,alt:"Task screenshot",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})}),(0,W.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderTop:"1px solid var(--p-border)",background:"var(--p-surface)"},children:[(0,W.jsx)("span",{style:{fontSize:10,color:"var(--p-text-f)",flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:f.addedAt?`Captured ${ot(f.addedAt)}`:"Screenshot attached"}),(0,W.jsx)("button",{onClick:()=>m(f.name,v),style:{fontSize:10,color:"var(--p-text-m)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Preview screenshot",children:"Preview"}),(0,W.jsx)("button",{onClick:()=>p(f.name),style:{fontSize:10,color:"var(--p-red)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Remove screenshot",children:"Remove"})]})]})]}),(0,W.jsxs)("div",{children:[(0,W.jsx)("div",{className:"dp-meta-label",children:"Tags"}),(0,W.jsx)(ji,{tags:(e==null?void 0:e.tags)??[],allTags:O,disabled:!e,onChange:T=>{e&&L(e.id,{tags:T})}})]}),(0,W.jsxs)("div",{children:[(0,W.jsx)("div",{className:"dp-meta-label",children:"Priority"}),(0,W.jsxs)("select",{id:"dp-priority",className:"dp-input",value:n,onChange:T=>{let M=T.target.value;l(M),g==null||g(M)},style:{padding:"5px 8px",fontSize:12,cursor:"pointer",width:"auto"},children:[(0,W.jsx)("option",{value:"",children:"\\u2014"}),(0,W.jsx)("option",{value:"Critical",children:"Critical"}),(0,W.jsx)("option",{value:"High",children:"High"}),(0,W.jsx)("option",{value:"Medium",children:"Medium"}),(0,W.jsx)("option",{value:"Low",children:"Low"})]})]}),e&&(0,W.jsxs)("div",{id:"dp-metadata",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6},children:[(0,W.jsx)(Xi,{label:"Created",id:"dp-created",children:e.createdAt?ot(e.createdAt):"\\u2014"}),(0,W.jsx)(Xi,{label:"ID",id:"dp-id",children:(0,W.jsx)("span",{style:{fontFamily:"monospace"},children:e.id})}),(0,W.jsx)(Xi,{label:"Author",id:"dp-author",children:e.authorName??e.author??"\\u2014"}),e.commit&&(0,W.jsx)(Kx,{task:e,githubUrl:h}),e.annotatedElementText&&(0,W.jsxs)("div",{id:"dp-annotated-text",style:{gridColumn:"1 / -1",background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,W.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Annotated element text"}),(0,W.jsx)("div",{style:{fontSize:11,color:"var(--p-text-f)",fontStyle:"italic",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.annotatedElementText})]})]}),(0,W.jsx)(jt,{open:w!==null,message:"Remove this screenshot? This action cannot be undone.",confirmLabel:"Remove",onConfirm:()=>{w&&y(w),p(null)},onCancel:()=>p(null)})]})}function Xi({label:e,id:t,children:a}){return(0,W.jsxs)("div",{id:t,style:{background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,W.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:e}),(0,W.jsx)("div",{style:{fontSize:11,color:"var(--p-text-f)",borderBottom:"1px solid var(--p-border)",paddingBottom:4,display:"flex",alignItems:"center",minHeight:16},children:a})]})}function Kx({task:e,githubUrl:t}){var n;let a=(n=e.commits)!=null&&n.length?e.commits:[{sha:e.commit,message:e.title??"",timestamp:e.createdAt??""}],r=a[a.length-1],o=a.map(l=>`${l.sha.slice(0,8)} ${l.timestamp?new Date(l.timestamp).toLocaleString():""} ${l.message.slice(0,60)}`).join(`\n`);return(0,W.jsxs)("div",{id:"dp-commit",style:{background:"var(--p-card)",borderRadius:8,padding:"8px 10px",cursor:"default"},title:a.length>1?`All commits:\n${o}`:`${r.sha}\n${r.message}`,children:[(0,W.jsxs)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:["Commit",a.length>1?"s":""]}),(0,W.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[t&&e.commitPushed!==!1?(0,W.jsxs)("a",{href:`${t}/commit/${r.sha}`,target:"_blank",rel:"noopener noreferrer",style:{fontSize:10,color:"var(--p-blue-300)",fontFamily:"monospace",textDecoration:"none"},title:"Open diff on GitHub",onClick:l=>l.stopPropagation(),children:[r.sha.slice(0,8)," \\u2197"]}):(0,W.jsxs)("span",{style:{fontSize:10,color:"var(--p-text-f)",fontFamily:"monospace"},title:e.commitPushed===!1?"Commit not pushed to remote yet":void 0,children:[r.sha.slice(0,8),e.commitPushed===!1?" \\u23F3":""]}),a.length>1&&(0,W.jsxs)("span",{style:{fontSize:9,color:"var(--p-blue)",background:"color-mix(in srgb, var(--p-blue) 12%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 25%, transparent)",borderRadius:10,padding:"0 5px",fontWeight:600},children:["+",a.length-1]})]})]})}function jx(e){let a=e.indexOf(`\n---\n**Console logs**`);return a===-1?{userPart:e,consolePart:null}:{userPart:e.slice(0,a).trim(),consolePart:e.slice(a+1).trim()}}function Xx({logs:e}){let t=e.replace(/^---\\s*\\n/,"").split(`\n`).filter(a=>a.trim());return(0,W.jsxs)("div",{id:"dp-console-logs",style:{borderRadius:8,border:"1px solid color-mix(in srgb, var(--p-red) 30%, var(--p-border))",background:"color-mix(in srgb, var(--p-red) 4%, var(--p-card))",overflow:"hidden"},children:[(0,W.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 10px",borderBottom:"1px solid color-mix(in srgb, var(--p-red) 20%, var(--p-border))",background:"color-mix(in srgb, var(--p-red) 8%, var(--p-card))"},children:[(0,W.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"color-mix(in srgb, var(--p-red) 80%, var(--p-text-sub))",letterSpacing:"0.05em",textTransform:"uppercase"},children:"Console Logs"}),(0,W.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",marginLeft:"auto"},children:"captured at submission"})]}),(0,W.jsxs)("div",{style:{padding:"6px 10px",maxHeight:200,overflowY:"auto",display:"flex",flexDirection:"column",gap:3},children:[t.map((a,r)=>{let o=a.includes("\\u{1F534}"),n=a.includes("\\u{1F7E1}"),l=a.replace(/^[-*]\\s*/,"");return(0,W.jsx)("div",{style:{fontFamily:"Menlo, monospace",fontSize:10,lineHeight:1.5,color:o?"var(--p-red)":n?"var(--p-amber-300)":"var(--p-text-f)",wordBreak:"break-all"},children:l},r)}),t.length===0&&(0,W.jsx)("div",{style:{fontSize:10,color:"var(--p-text-g)",fontStyle:"italic"},children:"No log entries captured."})]})]})}var fo=D(H(),1);function Zi({commentInput:e,setCommentInput:t,commentSubmitting:a,onSubmit:r,baseRows:o=4}){return(0,fo.jsx)("div",{id:"dp-comment-input-area",children:(0,fo.jsx)(Cn,{value:e,onChange:t,showPreview:!1,setShowPreview:()=>{},previewId:"dp-comment-tab-edit",textareaId:"dp-comment-input",placeholder:"Add a comment\\u2026 (markdown)",previewEmptyText:"Leave a comment (markdown)\\u2026",previewMinHeight:o<=2?36:54,previewMaxHeight:140,baseRows:o,maxRows:10,autoFocus:!0,onKeyDown:n=>{n.key==="Enter"&&(n.ctrlKey||n.metaKey)&&(n.preventDefault(),r())},afterTextarea:(0,fo.jsx)("button",{id:"dp-comment-submit",disabled:a,onMouseDown:n=>{n.preventDefault(),r()},title:"Send (Ctrl+Enter)",style:{position:"absolute",bottom:16,right:8,width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--p-blue)",border:"none",borderRadius:6,cursor:"pointer",color:"var(--p-white)",transition:"background .15s"},children:(0,fo.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{display:"block"},children:(0,fo.jsx)("path",{d:"M2 8L14 2L10 8L14 14L2 8Z",fill:"currentColor"})})})})})}var E=D(H(),1),Qx="vibeflow-paste-hint-dismissed";function Yx({storageKey:e=Qx}){let[t,a]=K.default.useState(()=>{try{return!localStorage.getItem(e)}catch{return!0}});if(!t)return null;function r(){try{localStorage.setItem(e,"1")}catch{}a(!1)}return(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",margin:"0 0 6px",borderRadius:6,background:"rgba(37,99,235,0.08)",border:"1px solid rgba(37,99,235,0.18)",fontSize:11,color:"var(--p-blue-300)",flexShrink:0},children:[(0,E.jsxs)("span",{style:{flex:1,lineHeight:1.4},children:["\\u{1F4A1} ",(0,E.jsx)("strong",{children:"Tip:"})," Paste screenshots or files anywhere in this panel \\u2014 they attach automatically."]}),(0,E.jsx)("button",{onClick:r,title:"Dismiss",style:{flexShrink:0,background:"none",border:"none",cursor:"pointer",padding:2,color:"var(--p-blue-300)",opacity:.7,display:"flex",alignItems:"center"},onMouseEnter:o=>{o.currentTarget.style.opacity="1"},onMouseLeave:o=>{o.currentTarget.style.opacity="0.7"},children:(0,E.jsx)(Oe,{style:{width:12,height:12}})})]})}var Zx=[{id:"backlog",label:"backlog"},{id:"todo",label:"todo"},{id:"in-progress",label:"in-progress"},{id:"review",label:"review"},{id:"done",label:"done"}],Jx=5*1024*1024;function Ji(e,t=.8){return new Promise((a,r)=>{let o=new Image,n=URL.createObjectURL(e);o.onload=()=>{let l=document.createElement("canvas");l.width=o.naturalWidth,l.height=o.naturalHeight;let s=l.getContext("2d");if(!s){URL.revokeObjectURL(n),r(new Error("canvas unavailable"));return}s.drawImage(o,0,0),URL.revokeObjectURL(n),l.toBlob(u=>{u?a(u):r(new Error("canvas.toBlob failed"))},"image/jpeg",t)},o.onerror=()=>{URL.revokeObjectURL(n),r(new Error("image load failed"))},o.src=n})}function ed({open:e,task:t,tab:a,addColumnId:r="todo",gitUserName:o="You",githubUrl:n,baseUrl:l,isResizing:s,api:u,onClose:d,onSave:g,onCreate:h,onDelete:m,onPatch:L,onFilePreview:y,onActivityChange:I,externalLocalChanges:O=[],showLockIndicator:c=!0,lockedByUser:i,onGoBack:f,navBackLabel:v,commentVersion:k,allTasks:w=[]}){let p=!t,S=t?vn(t.type):vn("Task"),A=K.default.useRef(null),[T,M]=K.default.useState([]),X=K.default.useRef(!1),le=K.default.useRef(""),J=K.default.useRef(""),Re=K.default.useMemo(()=>{let C=new Set;for(let N of w)for(let q of N.tags??[])C.add(q);return[...C].sort()},[w]),[_,U]=K.default.useState(a),[Q,ae]=K.default.useState(""),[V,me]=K.default.useState(""),[nt,wt]=K.default.useState(r),[Ge,Xt]=K.default.useState("Task"),[kt,ia]=K.default.useState(""),[Ut,vr]=K.default.useState(!1),[ms,Lr]=K.default.useState(!1),[Nt,Qt]=K.default.useState(!1),[gs,wn]=K.default.useState([]),[hs,kn]=K.default.useState(!1),[bn,Wa]=K.default.useState(null),[da,yr]=K.default.useState(""),[Sr,Pn]=K.default.useState(!1),[Ir,Tn]=K.default.useState([]),[Rn,Dn]=K.default.useState(!1),[xs,po]=K.default.useState(null),[An,Cr]=K.default.useState(0),Va=K.default.useRef(0),[x,b]=K.default.useState(0),[z,Y]=K.default.useState(null),[ge,re]=K.default.useState([]),oe=K.default.useRef(null),ie=K.default.useRef(()=>{}),He=K.default.useRef(""),Ze=K.default.useRef(!1);K.default.useEffect(()=>{He.current=da},[da]),K.default.useEffect(()=>{Ze.current=Nt},[Nt]),K.default.useEffect(()=>{X.current=s??!1},[s]),K.default.useEffect(()=>{e||I==null||I(null,"viewing")},[e]),K.default.useEffect(()=>{if(!e||!t)return;Q!==le.current||V!==J.current?I==null||I(t.id,"locked"):I==null||I(t.id,"viewing")},[Q,V,e,t==null?void 0:t.id]),K.default.useEffect(()=>{if(!e)return;function C(N){var q,Le,ce,bt;if(!X.current&&!((Le=(q=N.target)==null?void 0:q.closest)!=null&&Le.call(q,"[data-task-ref-suggest]"))&&!((bt=(ce=N.target)==null?void 0:ce.closest)!=null&&bt.call(ce,".modal-backdrop"))&&A.current&&!A.current.contains(N.target)){if(Ze.current)return;if(He.current.trim().length>0){ie.current(),Qt(!0);return}ie.current(),d()}}return document.addEventListener("mousedown",C),()=>document.removeEventListener("mousedown",C)},[e,d]),K.default.useEffect(()=>{if(!e)return;function C(N){if(N.key==="Escape"){if(Ze.current){Qt(!1),N.stopPropagation();return}if(He.current.trim().length>0){N.stopPropagation(),ie.current(),Qt(!0);return}}}return document.addEventListener("keydown",C,{capture:!0}),()=>document.removeEventListener("keydown",C,{capture:!0})},[e]),K.default.useEffect(()=>{if(e){if(U(a),vr(!!t),yr(""),wn([]),Tn([]),Cr(0),b(0),re([]),t){let C=(t.title??"").trim(),N=(t.description??"").trim();ae(C),me(N),wt(t.status),Xt(t.type??"Task"),ia(t.priority??""),le.current=C,J.current=N,I==null||I(t.id,"viewing")}else ae(""),me(""),wt(r),Xt("Task"),ia("");t&&(lt(t.id),Ht(t.id)),setTimeout(()=>{var C;return(C=oe.current)==null?void 0:C.focus()},50)}},[e,t==null?void 0:t.id,a]),K.default.useEffect(()=>{!e||!t||(_==="comments"?(R(t.id),Ht(t.id)):_==="files"&&Ht(t.id))},[_,e,t==null?void 0:t.id]),K.default.useEffect(()=>{if(!e||!t||Q!==le.current||V!==J.current)return;let N=(t.title??"").trim(),q=(t.description??"").trim();(N!==le.current||q!==J.current)&&(ae(N),me(q),le.current=N,J.current=q),t.status&&t.status!==nt&&wt(t.status),t.type&&t.type!==Ge&&Xt(t.type),t.priority!==void 0&&t.priority!==kt&&ia(t.priority??"")},[t==null?void 0:t.title,t==null?void 0:t.description,t==null?void 0:t.status,t==null?void 0:t.type,t==null?void 0:t.priority]),K.default.useEffect(()=>{!e||!t||k===void 0||(_==="comments"?R(t.id):lt(t.id))},[k]);async function lt(C){var N,q;try{let[Le,ce]=await Promise.all([u.getComments(C),u.getFiles(C)]);Cr(((N=Le.comments)==null?void 0:N.length)??0),b(((q=ce.files)==null?void 0:q.length)??0)}catch{}}async function R(C){var q;let N=++Va.current;kn(!0),Wa(null);try{let Le=await u.getComments(C);if(Va.current!==N)return;wn(Le.comments??[]),Cr(((q=Le.comments)==null?void 0:q.length)??0)}catch{if(Va.current!==N)return;Wa("failed")}finally{Va.current===N&&kn(!1)}}async function Ht(C){var N;Dn(!0),po(null);try{let q=await u.getFiles(C);Tn(q.files??[]),b(((N=q.files)==null?void 0:N.length)??0)}catch{po("failed")}finally{Dn(!1)}}async function $a(){var C;if(!Q.trim()){(C=oe.current)==null||C.focus();return}if(!p&&da.trim()&&await wr(),p){let N=await h({title:Q.trim(),description:V.trim()||Q.trim(),status:nt,type:Ge,priority:kt||void 0,selector:"/"});if(N&&T.length>0){for(let q of T)await u.uploadFile(N,q).catch(()=>null);M([])}d()}else pt()}function pt(){if(!t||p)return;let C=Q.trim();if(!C)return;let N=le.current,q=J.current,Le=C!==N,ce=V.trim()!==q;!Le&&!ce||(Le&&fa("title",N,C),ce&&fa("description",q,V.trim()),L(t.id,{title:C,description:V.trim(),type:Ge,priority:kt||void 0}),le.current=C,J.current=V.trim())}ie.current=pt;function fa(C,N,q){N!==q&&re(Le=>[...Le,{field:C,from:N,to:q,actor:o,timestamp:new Date().toISOString()}])}async function wr(){if(!(!t||!da.trim())){Pn(!0);try{await u.addComment(t.id,da.trim()),yr(""),await R(t.id)}finally{Pn(!1)}}}async function Mn(C,N){t&&(await u.updateComment(t.id,C.id,N),await R(t.id))}async function Tm(C){t&&(await u.deleteComment(t.id,C.id),await R(t.id))}async function Rm(C){if(!t)return;let N=t.id;Y(null);for(let q of Array.from(C.target.files??[])){if(!q.type.startsWith("image/")&&q.size>Jx){Y(`"${q.name}" exceeds the 5 MB limit and was skipped.`);continue}let Le;if(q.type.startsWith("image/")){let ce=await Ji(q),bt=q.name.replace(/\\.(png|bmp|gif|webp|tiff?)$/i,".jpg");Le=new File([ce],bt,{type:"image/jpeg"})}else Le=q;await u.uploadFile(N,Le)}C.target.value="",await Ht(N),lt(N)}async function Dm(C){if(!t)return;Y(null);let N=await Ji(C),Le=`paste-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.jpg`,ce=new File([N],Le,{type:"image/jpeg"});await u.uploadFile(t.id,ce),await Ht(t.id),lt(t.id)}async function Am(C){if(!t)return;let N=Array.from(C.items),q=N.find(ce=>ce.type.startsWith("image/"));if(q){let ce=q.getAsFile();ce&&await Dm(ce);return}let Le=N.filter(ce=>ce.kind==="file"&&!ce.type.startsWith("image/"));if(Le.length>0){for(let ce of Le){let bt=ce.getAsFile();bt&&await u.uploadFile(t.id,bt)}await Ht(t.id),lt(t.id);return}}K.default.useEffect(()=>{if(!e)return;function C(N){if(!N.clipboardData)return;let q=N.target;if(!((q.tagName==="TEXTAREA"||q.tagName==="INPUT"||q.isContentEditable)&&!Array.from(N.clipboardData.items).some(kr=>kr.kind==="file"))){if(N.preventDefault(),!t){let bt=Array.from(N.clipboardData.items).find(kr=>kr.type.startsWith("image/"));if(bt){let kr=bt.getAsFile();kr&&(async()=>{let zm=await Ji(kr),Um=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),Nm=new File([zm],`paste-${Um}.jpg`,{type:"image/jpeg"});M(Hm=>[...Hm,Nm])})()}return}Am(N.clipboardData)}}return document.addEventListener("paste",C),()=>document.removeEventListener("paste",C)},[e,t==null?void 0:t.id]);async function od(C){t&&(await u.deleteFile(t.id,C.name),await Ht(t.id),lt(t.id))}async function Mm(C){if(!t)return;await u.deleteFile(t.id,C);let N=(t.files??[]).filter(q=>q.name!==C);L(t.id,{files:N}),await Ht(t.id),lt(t.id)}function Em(C){wt(C),!p&&t&&L(t.id,{status:C})}let Fm=C=>C!==nt?"dp-status-btn":`dp-status-btn active-${C}`;function nd(){if(!Ze.current){if(He.current.trim().length>0){ie.current(),Qt(!0);return}ie.current(),d()}}let Bm=e&&t!=null&&(Q!==le.current||V!==J.current),Om=K.default.useMemo(()=>{let C=[...O,...ge].sort((q,Le)=>new Date(q.timestamp).getTime()-new Date(Le.timestamp).getTime()),N=[];for(let q of C)N.some(ce=>ce.field===q.field&&ce.from.toLowerCase()===q.from.toLowerCase()&&ce.to.toLowerCase()===q.to.toLowerCase()&&ce.actor===q.actor&&Math.abs(new Date(ce.timestamp).getTime()-new Date(q.timestamp).getTime())<=3e3)||N.push(q);return N},[O,ge]),Ga=!p&&!!i;return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)("aside",{id:"detail-panel",className:"open",ref:A,children:[Ga&&(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",background:"rgba(234,88,12,0.12)",border:"1px solid rgba(234,88,12,0.25)",borderRadius:6,margin:"8px 12px 0",fontSize:12,color:"#f97316",fontWeight:500},children:["\\u{1F512} Locked by ",(0,E.jsx)("strong",{children:i})," \\u2014 editing disabled until they finish."]}),(0,E.jsxs)("div",{className:"dp-header",children:[(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[f&&(0,E.jsx)("button",{id:"dp-back",onClick:f,title:v?`Back to: ${v}`:"Go back",style:{width:26,height:26,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"1px solid var(--p-border-t)",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s",fontSize:14,lineHeight:1},onMouseOver:C=>{C.currentTarget.style.background="var(--p-border)",C.currentTarget.style.color="var(--p-blue-300)",C.currentTarget.style.borderColor="var(--p-blue)"},onMouseOut:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--p-text-g)",C.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u2190"}),(0,E.jsx)(us,{id:"dp-type-picker",value:Ge,disabled:Ga,onChange:C=>{!p&&t&&C!==Ge&&fa("type",Ge,C),Xt(C),!p&&t&&L(t.id,{type:C})}}),(0,E.jsx)("input",{id:"dp-title",ref:oe,className:"dp-input",type:"text",placeholder:"Task title\\u2026",value:Q,readOnly:Ga,onChange:C=>ae(C.target.value),onKeyDown:C=>{C.key==="Escape"&&(C.stopPropagation(),nd()),C.key==="Enter"&&p&&$a()},style:{flex:1,fontSize:14,fontWeight:600,padding:"4px 8px",borderColor:"transparent",background:"transparent"},onFocus:C=>{C.currentTarget.style.borderColor="var(--p-blue)",C.currentTarget.style.background="var(--p-input)"},onBlur:C=>{C.currentTarget.style.borderColor="transparent",C.currentTarget.style.background="transparent",p||pt()}}),!p&&Q!==le.current&&Q.trim()!==""&&(0,E.jsx)("button",{type:"button",title:"Discard title changes",onMouseDown:C=>{C.preventDefault(),ae(le.current)},style:{width:20,height:20,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,border:"1px solid var(--p-border-t)",background:"none",color:"var(--p-text-g)",cursor:"pointer",fontSize:13,lineHeight:1},onMouseEnter:C=>{C.currentTarget.style.color="var(--p-amber-300)",C.currentTarget.style.borderColor="var(--p-amber-300)"},onMouseLeave:C=>{C.currentTarget.style.color="var(--p-text-g)",C.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u21A9"}),(0,E.jsx)("button",{id:"dp-close",onClick:nd,style:{width:26,height:26,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"none",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s",pointerEvents:"auto"},onMouseOver:C=>{C.currentTarget.style.background="var(--p-border)",C.currentTarget.style.color="var(--p-text-m)"},onMouseOut:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--p-text-g)"},children:(0,E.jsx)(Oe,{style:{width:14,height:14}})}),c&&Bm&&t&&(0,E.jsx)("span",{id:"dp-lock-indicator",title:`Locked by ${o} \\u2014 unsaved changes`,style:{display:"inline-flex",alignItems:"center",gap:3,flexShrink:0,borderRadius:999,padding:"2px 7px",fontSize:10,fontWeight:600,border:"1px solid rgba(244,114,182,0.35)",color:"#f9a8d4",background:"rgba(157,23,77,0.28)"},children:"\\u{1F512} Locked"})]}),(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",...Ga?{pointerEvents:"none",opacity:.6}:{}},children:[(0,E.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",fontWeight:500,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Status"}),Zx.map(C=>(0,E.jsx)("button",{className:Fm(C.id),"data-status":C.id,onClick:()=>Em(C.id),children:C.label},C.id))]})]}),!p&&(0,E.jsxs)("div",{className:"dp-tabs",id:"dp-tabs-row",children:[(0,E.jsx)("button",{className:`dp-tab${_==="details"?" active":""}`,id:"dp-tab-details",onClick:()=>U("details"),children:"Details"}),(0,E.jsxs)("button",{className:`dp-tab${_==="comments"?" active":""}`,id:"dp-tab-activity",onClick:()=>U("comments"),children:["Activity ",An>0&&(0,E.jsxs)("span",{id:"dp-activity-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",An,")"]})]}),(0,E.jsxs)("button",{className:`dp-tab${_==="files"?" active":""}`,id:"dp-tab-files",onClick:()=>U("files"),children:["Files ",x>0&&(0,E.jsxs)("span",{id:"dp-file-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",x,")"]})]})]}),(0,E.jsxs)("div",{className:"dp-body",children:[!p&&(0,E.jsx)(Yx,{}),(0,E.jsxs)("div",{className:"dp-pane",id:"dp-details-pane",style:{display:!t||_==="details"?"":"none"},children:[(0,E.jsx)("div",{style:Ga?{pointerEvents:"none",opacity:.6}:void 0,children:(0,E.jsx)(Yi,{task:t,description:V,setDescription:me,showDescPreview:Ut,setShowDescPreview:vr,priority:kt,setPriority:ia,onDescriptionBlur:p?void 0:pt,onDescriptionDiscard:p?void 0:()=>{me(J.current),vr(!0)},originalDescription:p?void 0:J.current,onPriorityChange:p?void 0:C=>{t&&(C!==kt&&fa("priority",kt||"\\u2014",C||"\\u2014"),L(t.id,{priority:C||void 0}))},githubUrl:n,onFilePreview:y,onDeleteScreenshot:Mm,onPatch:L,liveFiles:Ir.length>0||Rn?Ir:void 0,allTags:Re})}),!p&&t&&(0,E.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",flexShrink:0,marginTop:12,borderTop:"1px solid var(--p-border)",paddingTop:10},children:(0,E.jsx)(ev,{task:t})})]}),(0,E.jsxs)("div",{className:"dp-pane",id:"dp-activity-pane",style:{display:_==="comments"&&!p?"":"none"},children:[(0,E.jsx)("div",{style:{borderBottom:"1px solid var(--p-border)",paddingBottom:8,flexShrink:0},children:(0,E.jsx)(Zi,{commentInput:da,setCommentInput:yr,commentSubmitting:Sr,onSubmit:()=>void wr(),baseRows:2})}),(0,E.jsx)(Gi,{comments:gs,files:Ir,localChanges:Om,loading:hs,error:bn,gitUserName:o,taskAuthorName:t==null?void 0:t.authorName,baseUrl:l,taskId:t==null?void 0:t.id,taskCreatedAt:t==null?void 0:t.createdAt,taskUpdatedAt:t==null?void 0:t.updatedAt,onEdit:Mn,onDelete:Tm,onDeleteFile:od,onFilePreview:y})]}),(0,E.jsxs)("div",{className:"dp-pane",id:"dp-files-pane",style:{display:_==="files"&&!p?"":"none"},children:[(0,E.jsx)(Ki,{files:Ir,loading:Rn,error:xs,baseUrl:l,onPreview:C=>y(C.name,C.linkedPath?`${l}/api/tasks/${t==null?void 0:t.id}/files/${encodeURIComponent(C.name)}`:`${l}${C.url}`),onDelete:Ga?void 0:od}),(0,E.jsxs)("div",{style:{borderTop:"1px solid var(--p-border)",paddingTop:8,flexShrink:0,display:"flex",gap:8,flexWrap:"wrap",alignItems:"center",...Ga?{pointerEvents:"none",opacity:.5}:{}},children:[z&&(0,E.jsx)("div",{style:{width:"100%",fontSize:11,color:"var(--p-red)",background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.2)",borderRadius:5,padding:"4px 8px"},children:z}),(0,E.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"6px 10px",background:"var(--p-card)",border:"1px solid var(--p-border)",borderRadius:8,color:"var(--p-text-m)",fontSize:12,transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-border-t)",C.currentTarget.style.color="var(--p-text)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border)",C.currentTarget.style.color="var(--p-text-m)"},children:[(0,E.jsx)(no,{style:{width:12,height:12}}),"Upload",(0,E.jsx)("input",{id:"dp-file-upload",type:"file",style:{display:"none"},multiple:!0,onChange:Rm})]}),(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-border-t)",marginLeft:"auto"},children:"or paste image"})]})]})]}),(0,E.jsxs)("div",{className:"dp-footer",children:[!p&&(0,E.jsx)("button",{id:"dp-delete",onClick:()=>Lr(!0),style:{color:"var(--p-red)",background:"none",border:"1px solid var(--p-border-t)",borderRadius:7,padding:"5px 12px",fontSize:12,cursor:"pointer",fontFamily:"inherit",transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-red)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border-t)"},children:"Delete"}),(0,E.jsx)("div",{style:{flex:1}}),p?(0,E.jsxs)(E.Fragment,{children:[T.length>0&&(0,E.jsxs)("span",{style:{fontSize:11,color:"var(--p-blue-300)",marginRight:8,background:"rgba(37,99,235,0.1)",border:"1px solid rgba(37,99,235,0.25)",borderRadius:6,padding:"3px 8px"},children:["\\u{1F4CE} ",T.length," screenshot",T.length!==1?"s":""," will attach on save"]}),(0,E.jsx)("button",{id:"dp-cancel",onClick:d,style:{padding:"5px 14px",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",border:"1px solid var(--p-border-t)",background:"var(--p-border)",color:"var(--p-text-sub)",fontFamily:"inherit",transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-text-g)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border-t)"},children:"Cancel"}),(0,E.jsx)("button",{id:"dp-save",onClick:()=>void $a(),style:{padding:"5px 18px",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",border:"1px solid var(--p-blue-700)",background:"var(--p-blue)",color:"var(--p-white)",fontFamily:"inherit",transition:"background .15s"},onMouseOver:C=>{C.currentTarget.style.background="var(--p-blue-700)"},onMouseOut:C=>{C.currentTarget.style.background="var(--p-blue)"},children:"Add Task"})]}):(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)",padding:"5px 4px"},children:"Changes are saved automatically"})]}),(0,E.jsx)(jt,{open:ms,title:"Delete task?",message:`You are about to permanently delete "${(t==null?void 0:t.title)||"this task"}". This action cannot be undone.`,confirmLabel:"Delete task",onConfirm:()=>{Lr(!1),m(t.id),d()},onCancel:()=>Lr(!1)})]}),Nt&&(0,E.jsx)("div",{style:{position:"fixed",inset:0,zIndex:201,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",background:"rgba(2,12,27,0.80)"},children:(0,E.jsxs)("div",{style:{background:"var(--p-surface)",border:"1px solid var(--p-border-s)",borderRadius:16,padding:"28px 32px",width:"100%",maxWidth:480,boxShadow:"var(--p-shadow-lg)",position:"relative"},children:[(0,E.jsx)("div",{style:{width:44,height:44,borderRadius:12,background:"rgba(139,92,246,0.12)",border:"1px solid rgba(139,92,246,0.25)",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:16},children:(0,E.jsx)(no,{style:{width:20,height:20,color:"var(--p-purple)"}})}),(0,E.jsx)("h2",{style:{margin:"0 0 8px",fontSize:17,fontWeight:700,color:"var(--p-text)"},children:"Send comment?"}),(0,E.jsx)("p",{style:{margin:"0 0 22px",fontSize:13,color:"var(--p-text-f)",lineHeight:1.6},children:"You have an unsent comment. Do you want to send it before closing?"}),(0,E.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,E.jsx)("button",{onClick:()=>{Qt(!1),wr().then(()=>d())},style:{flex:1,padding:"9px 14px",borderRadius:8,background:"var(--p-purple)",border:"none",color:"#fff",fontSize:13,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:"Send & Close"}),(0,E.jsx)("button",{type:"button",onClick:()=>{Qt(!1),yr(""),d()},style:{padding:"9px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer"},children:"Discard & Close"}),(0,E.jsx)("button",{type:"button",onClick:()=>Qt(!1),style:{padding:"9px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer"},children:"Keep editing"})]})]})})]})}function ev({task:e}){let t=[];if(e.component&&t.push((0,E.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 36%, transparent)",borderRadius:100,fontSize:10,color:"var(--p-purple-300)",fontFamily:"monospace"},children:["\\u2B21 ",e.component]},"component")),e.file||e.selector&&e.selector!=="/"||e.cssSelector){let r=e.file??"";e.line!=null&&(r+=`:${e.line}`),e.col!=null&&(r+=`:${e.col}`);let o=e.cssSelector??(e.selector&&e.selector!=="/"?e.selector:""),n=r||o;if(n){let l=n.length>40?`\\u2026${n.slice(-40)}`:n,s=e.url?e.url.length>30?`\\u2026${e.url.slice(-30)}`:e.url:"";t.push((0,E.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:0,borderRadius:6,overflow:"hidden",border:"1px solid color-mix(in srgb, var(--p-blue) 15%, transparent)",fontSize:10,fontFamily:"monospace",whiteSpace:"nowrap"},children:[(0,E.jsx)("span",{title:[r,o].filter(Boolean).join(" \\xB7 "),style:{padding:"2px 6px",background:"color-mix(in srgb, var(--p-blue) 10%, transparent)",color:"var(--p-blue-300)"},children:l}),s&&(0,E.jsx)("span",{title:e.url,style:{padding:"2px 6px",background:"color-mix(in srgb, var(--p-border) 72%, transparent)",color:"var(--p-text-g)",borderLeft:"1px solid color-mix(in srgb, var(--p-blue) 18%, transparent)"},children:s})]},"source"))}}else if(e.url){let r=e.url.length>40?`\\u2026${e.url.slice(-40)}`:e.url;t.push((0,E.jsx)("span",{className:"dp-source-pill",title:e.url,children:r},"url"))}return e.reportBack&&t.push((0,E.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"color-mix(in srgb, var(--p-purple) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 24%, transparent)",borderRadius:100,fontSize:10,color:"var(--p-purple-300)"},children:"\\u21A9 report back"},"rb")),(0,E.jsx)("div",{id:"dp-meta-row",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",flex:1},children:t})}var xr=D(Ie(),1);var j=D(H(),1),tv=[{id:"all",label:"All",dot:""},{id:"todo",label:"Todo",dot:"var(--p-amber)"},{id:"in-progress",label:"In Progress",dot:"var(--p-blue)"},{id:"review",label:"Review",dot:"var(--p-purple)"}],av={todo:{background:"color-mix(in srgb, var(--p-amber) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-amber) 38%, transparent)",color:"var(--p-amber-300)"},"in-progress":{background:"color-mix(in srgb, var(--p-blue) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 38%, transparent)",color:"var(--p-blue-200)"},review:{background:"color-mix(in srgb, var(--p-purple) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 38%, transparent)",color:"var(--p-purple-300)"},done:{background:"color-mix(in srgb, var(--p-green) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-green) 32%, transparent)",color:"var(--p-green-300)"},backlog:{background:"color-mix(in srgb, var(--p-text-g) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-text-g) 32%, transparent)",color:"var(--p-text-m)"},all:{background:"color-mix(in srgb, var(--p-blue) 12%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 32%, transparent)",color:"var(--p-blue-200)"}};function td({tasks:e,filter:t,onFilter:a,view:r="board",onViewChange:o,activityCounter:n}){let[l,s]=xr.default.useState(!1),[u,d]=xr.default.useState(!1),[g,h]=xr.default.useState(!1),m=xr.default.useMemo(()=>[...new Set(e.map(p=>p.type).filter(Boolean))].sort(),[e]),L=xr.default.useMemo(()=>[...new Set(e.map(p=>p.author).filter(Boolean))].sort(),[e]),y=xr.default.useMemo(()=>{let p=new Set;for(let S of e)for(let A of S.tags??[])p.add(A);return[...p].sort()},[e]);function I(p){return e.filter(S=>S.status===p).length}function O(p){a({...t,status:p}),s(!1),d(!1),h(!1)}function c(p){a({...t,type:p}),s(!1)}function i(p){a({...t,user:p}),d(!1)}function f(p){let S=t.tags??[],A=S.includes(p)?S.filter(T=>T!==p):[...S,p];a({...t,tags:A})}function v(p){p.stopPropagation();let S=p.currentTarget.dataset.status;S&&O(S)}let k={display:"flex",alignItems:"center",gap:5,padding:"3px 10px",borderRadius:6,fontSize:11,cursor:"pointer",border:"1px solid transparent",background:"transparent",color:"var(--p-text-f)",transition:"all .12s",fontFamily:"inherit",fontWeight:500},w={...k,background:"var(--p-card)",border:"1px solid var(--p-border)",color:"var(--p-text-f)",padding:"3px 10px",position:"relative"};return(0,j.jsxs)("div",{"data-proto-id":"filter-bar",style:{display:"flex",alignItems:"center",gap:6,padding:"7px 16px",background:"var(--p-surface)",borderBottom:"1px solid var(--p-border)",flexShrink:0},onClick:()=>{s(!1),d(!1),h(!1)},children:[(0,j.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:tv.map(p=>{let S=t.status===p.id,A=p.id!=="all"?I(p.id):null,T=S?av[p.id]:{};return(0,j.jsxs)("button",{"data-status":p.id,style:{...k,...T},onMouseOver:M=>{S||(M.currentTarget.style.background="var(--p-hover)",M.currentTarget.style.color="var(--p-text-m)")},onMouseOut:M=>{S||(M.currentTarget.style.background="transparent",M.currentTarget.style.color="var(--p-text-f)")},onClick:v,children:[p.dot&&(0,j.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:p.dot,flexShrink:0,display:"inline-block"}}),p.label,A!=null&&(0,j.jsx)("span",{style:{color:S?"inherit":"var(--p-border-t)",fontSize:10,opacity:.8},children:A})]},p.id)})}),(0,j.jsx)("div",{style:{flex:1}}),n,t.user&&(0,j.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:"color-mix(in srgb, var(--p-purple) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 24%, transparent)",fontSize:10,color:"var(--p-purple-300)"},children:[t.user,(0,j.jsx)("button",{onClick:()=>i(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-purple-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,j.jsx)(Oe,{style:{width:10,height:10}})})]}),t.type&&(0,j.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:"color-mix(in srgb, var(--p-blue) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 24%, transparent)",fontSize:10,color:"var(--p-cyan-300)"},children:[t.type,(0,j.jsx)("button",{onClick:()=>c(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-cyan-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,j.jsx)(Oe,{style:{width:10,height:10}})})]}),(t.tags??[]).map(p=>{let{bg:S,text:A,border:T}=Bt(p);return(0,j.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:S,border:`1px solid ${T}`,fontSize:10,color:A,fontWeight:600},children:[p,(0,j.jsx)("button",{onClick:()=>f(p),style:{display:"flex",background:"none",border:"none",color:A,cursor:"pointer",padding:0,lineHeight:1},children:(0,j.jsx)(Oe,{style:{width:10,height:10}})})]},p)}),(0,j.jsxs)("div",{style:{position:"relative"},children:[(0,j.jsxs)("button",{style:{...w,color:(t.tags??[]).length?"var(--p-green-300)":"var(--p-text-f)",borderColor:(t.tags??[]).length?"color-mix(in srgb, var(--p-green) 36%, transparent)":"var(--p-border)",opacity:y.length?1:.55},onClick:p=>{p.stopPropagation(),y.length&&(d(!1),s(!1),h(S=>!S))},children:[(0,j.jsx)(oo,{style:{width:12,height:12}}),"Tags",(t.tags??[]).length>0&&(0,j.jsx)("span",{style:{fontSize:9,background:"color-mix(in srgb, var(--p-green) 20%, transparent)",color:"var(--p-green-300)",borderRadius:100,padding:"0 4px"},children:(t.tags??[]).length}),(0,j.jsx)(ur,{style:{width:12,height:12}})]}),g&&y.length>0&&(0,j.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:160,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(t.tags??[]).length>0&&(0,j.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>a({...t,tags:[]}),children:"Clear tag filters"}),y.map(p=>{let{bg:S,text:A,border:T}=Bt(p),M=(t.tags??[]).includes(p);return(0,j.jsxs)("button",{style:{width:"100%",textAlign:"left",padding:"6px 12px",fontSize:11,color:"var(--p-text-m)",background:M?"var(--p-hover)":"none",border:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:6},onMouseEnter:X=>{X.currentTarget.style.background="var(--p-hover)"},onMouseLeave:X=>{X.currentTarget.style.background=M?"var(--p-hover)":"none"},onClick:()=>f(p),children:[(0,j.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:A,border:`1px solid ${T}`,flexShrink:0}}),(0,j.jsx)("span",{style:{flex:1},children:p}),M&&(0,j.jsx)("span",{style:{color:A,fontSize:12,lineHeight:1},children:"\\u2713"})]},p)})]})]}),(0,j.jsxs)("div",{style:{position:"relative"},children:[(0,j.jsxs)("button",{style:{...w,color:t.user?"var(--p-purple-300)":"var(--p-text-f)",borderColor:t.user?"color-mix(in srgb, var(--p-purple) 36%, transparent)":"var(--p-border)",opacity:L.length?1:.55},onClick:p=>{p.stopPropagation(),L.length&&(s(!1),d(S=>!S))},children:[(0,j.jsx)(hn,{style:{width:12,height:12}}),"User",(0,j.jsx)(ur,{style:{width:12,height:12}})]}),u&&L.length>0&&(0,j.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:160,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(0,j.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>i(null),children:"All users"}),L.map(p=>(0,j.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.user===p?"var(--p-purple-300)":"var(--p-text-m)",background:t.user===p?"color-mix(in srgb, var(--p-purple) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:S=>{t.user!==p&&(S.currentTarget.style.background="var(--p-hover)")},onMouseOut:S=>{t.user!==p&&(S.currentTarget.style.background="none")},onClick:()=>i(p),children:p},p))]})]}),(0,j.jsxs)("div",{style:{position:"relative"},children:[(0,j.jsxs)("button",{style:{...w,color:t.type?"var(--p-cyan-300)":"var(--p-text-f)",borderColor:t.type?"color-mix(in srgb, var(--p-blue) 36%, transparent)":"var(--p-border)",opacity:m.length?1:.55},onClick:p=>{p.stopPropagation(),m.length&&s(S=>!S)},children:[(0,j.jsx)(oo,{style:{width:12,height:12}}),"Type",(0,j.jsx)(ur,{style:{width:12,height:12}})]}),l&&m.length>0&&(0,j.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:140,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(0,j.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>c(null),children:"All types"}),m.map(p=>(0,j.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.type===p?"var(--p-cyan-300)":"var(--p-text-m)",background:t.type===p?"color-mix(in srgb, var(--p-blue) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:S=>{t.type!==p&&(S.currentTarget.style.background="var(--p-hover)")},onMouseOut:S=>{t.type!==p&&(S.currentTarget.style.background="none")},onClick:()=>c(p),children:p},p))]})]}),(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",background:"var(--p-card)",border:"1px solid var(--p-border)",borderRadius:8,padding:2,gap:0},children:[(0,j.jsx)("button",{title:"Board view",style:{padding:"4px 7px",borderRadius:5,background:r==="board"?"var(--p-surface)":"none",color:r==="board"?"var(--p-text-sub)":"var(--p-text-g)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",transition:"background .12s,color .12s"},onClick:p=>{p.stopPropagation(),o==null||o("board")},children:(0,j.jsx)(fn,{style:{width:13,height:13}})}),(0,j.jsx)("button",{title:"List view",style:{padding:"4px 7px",borderRadius:5,background:r==="list"?"var(--p-surface)":"none",color:r==="list"?"var(--p-text-sub)":"var(--p-text-g)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",transition:"background .12s,color .12s"},onClick:p=>{p.stopPropagation(),o==null||o("list")},children:(0,j.jsx)(cn,{style:{width:13,height:13}})})]})]})}var qa=D(Ie(),1);var fe=D(H(),1),rv=[{id:"board",label:"Board",icon:(0,fe.jsx)(Fa,{className:"w-3.5 h-3.5"})},{id:"workflow",label:"Workflow",icon:(0,fe.jsx)(xn,{className:"w-3.5 h-3.5"})}];function ad({open:e,visibleCols:t,settings:a,onClose:r,onSave:o}){let[n,l]=qa.default.useState("board"),[s,u]=qa.default.useState({}),[d,g]=qa.default.useState(a.autoCommit??!1),[h,m]=qa.default.useState(a.autoComment??!1),[L,y]=qa.default.useState(a.autoPush??!1),[I,O]=qa.default.useState(a.createBranch??!1);qa.default.useEffect(()=>{if(!e)return;let f={};za.forEach(v=>{f[v.id]=t.includes(v.id)}),u(f),g(a.autoCommit??!1),m(a.autoComment??!1),y(a.autoPush??!1),O(a.createBranch??!1),l("board")},[e,t,a]);function c(){let f=za.filter(v=>s[v.id]).map(v=>v.id);o(f,{autoCommit:d,autoComment:h,autoPush:L,createBranch:I}),r()}function i(f){u(v=>({...v,[f]:!v[f]}))}return(0,fe.jsxs)(gr,{open:e,onClose:r,id:"settings-modal",width:"min(460px, 95vw)",icon:(0,fe.jsx)(cr,{style:{width:14,height:14,color:"var(--p-text-g)"}}),title:"Settings",headerActions:(0,fe.jsx)("button",{id:"settings-close",onClick:r,style:{width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"none",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s"},onMouseOver:f=>{f.currentTarget.style.background="var(--p-surface)",f.currentTarget.style.color="var(--p-text-m)"},onMouseOut:f=>{f.currentTarget.style.background="transparent",f.currentTarget.style.color="var(--p-text-g)"},children:(0,fe.jsx)(Oe,{style:{width:14,height:14}})}),footer:(0,fe.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,fe.jsx)("button",{id:"settings-cancel",onClick:r,className:"dp-status-btn",style:{padding:"5px 14px",fontSize:12},children:"Cancel"}),(0,fe.jsx)("button",{id:"settings-apply",onClick:c,style:{padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:6,border:"1px solid color-mix(in srgb, var(--p-purple) 55%, transparent)",background:"color-mix(in srgb, var(--p-purple) 18%, transparent)",color:"var(--p-purple-300)",cursor:"pointer",transition:"background .12s"},onMouseOver:f=>{f.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 28%, transparent)"},onMouseOut:f=>{f.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 18%, transparent)"},children:"Apply"})]}),children:[(0,fe.jsx)("div",{className:"dp-tabs",children:rv.map(f=>(0,fe.jsxs)("button",{onClick:()=>l(f.id),className:`dp-tab${n===f.id?" active":""}`,style:{display:"flex",alignItems:"center",gap:6},children:[f.icon,f.label]},f.id))}),n==="board"&&(0,fe.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:10},children:[(0,fe.jsx)("div",{className:"dp-meta-label",children:"Visible Columns"}),za.map(f=>(0,fe.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer",userSelect:"none"},children:[(0,fe.jsx)("input",{id:`settings-col-${f.id}`,type:"checkbox",checked:s[f.id]??!0,onChange:()=>i(f.id),style:{width:14,height:14,accentColor:f.color,cursor:"pointer"}}),(0,fe.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:f.color,flexShrink:0}}),(0,fe.jsx)("span",{style:{fontSize:13,color:"var(--p-text-m)"},children:f.label})]},f.id))]}),n==="workflow"&&(0,fe.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:16},children:[(0,fe.jsx)(ds,{id:"settings-auto-commit",label:"Commit after task implementation",description:"Agent is instructed to stage and commit changes after each task.",value:d,onChange:g}),(0,fe.jsx)(ds,{id:"settings-auto-push",label:"Push after task commit",description:`Agent is instructed to push after every commit. Requires \'Commit\' to be ON.${d?"":" (Enable Commit first)"}`,value:L&&d,onChange:f=>y(f&&d)}),(0,fe.jsx)(ds,{id:"settings-auto-comment",label:"Comment after task implementation",description:"Agent is instructed to add a summary comment after completing a task.",value:h,onChange:m}),(0,fe.jsx)(ds,{id:"settings-create-branch",label:"Create branch at end of session",description:"Agent creates a descriptive branch after all session tasks are done (e.g. fix/bug-errors, feat/eye-toggle). Name reflects the work: lowercase, kebab-case, 2\\u20135 words, prefix fix/feat/chore/docs.",value:I,onChange:O})]})]})}function ds({id:e,label:t,description:a,value:r,onChange:o}){return(0,fe.jsxs)("div",{children:[(0,fe.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:t}),(0,fe.jsx)("div",{style:{fontSize:11,color:"var(--p-text-g)",marginBottom:10},children:a}),(0,fe.jsxs)("div",{id:e,style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer"},onClick:()=>o(!r),children:[(0,fe.jsxs)("div",{style:{position:"relative",width:36,height:20,flexShrink:0},children:[(0,fe.jsx)("div",{style:{width:36,height:20,borderRadius:10,background:r?"var(--p-purple)":"var(--p-card)",border:`1px solid ${r?"var(--p-purple-300)":"var(--p-border)"}`,transition:"all .15s"}}),(0,fe.jsx)("div",{style:{position:"absolute",top:3,left:r?18:3,width:14,height:14,borderRadius:"50%",background:r?"var(--p-purple-300)":"var(--p-text-muted)",transition:"all .15s"}})]}),(0,fe.jsx)("span",{style:{fontSize:12,color:"var(--p-text-g)"},children:r?"On":"Off"})]})]})}var cs=D(Ie(),1);var he=D(H(),1);function vm(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function fs(e){return/\\.md$/i.test(e)}function rd({open:e,name:t,url:a,onClose:r}){let[o,n]=cs.default.useState(null),[l,s]=cs.default.useState(!1);return cs.default.useEffect(()=>{!e||!a||(fs(t)?(s(!0),n(null),fetch(a).then(u=>u.text()).then(u=>{n(u),s(!1)}).catch(()=>{n("Error loading file."),s(!1)})):n(null))},[e,t,a]),(0,he.jsx)(gr,{open:e,onClose:r,id:"file-preview-modal",width:"min(700px, 95vw)",maxHeight:"88vh",boxStyle:{display:"flex",flexDirection:"column"},icon:(0,he.jsx)(ro,{className:"w-4 h-4 text-slate-400"}),title:t,headerActions:(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)("a",{href:a,download:t,className:"text-slate-400 hover:text-slate-200 transition-colors p-1.5 rounded-md hover:bg-slate-700/60",title:"Download",children:(0,he.jsx)(ir,{className:"w-4 h-4"})}),(0,he.jsx)("button",{id:"file-preview-close",onClick:r,className:"text-slate-400 hover:text-slate-200 transition-colors p-1.5 rounded-md hover:bg-slate-700/60",title:"Close",children:(0,he.jsx)(Oe,{className:"w-4 h-4"})})]}),footer:(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)("a",{href:a,download:t,className:"flex items-center gap-1.5 border border-slate-700 hover:bg-slate-800 text-slate-300 text-sm px-3 py-1.5 rounded-lg transition-colors",children:[(0,he.jsx)(ir,{className:"w-3.5 h-3.5"}),"Download"]}),(0,he.jsx)("button",{id:"file-preview-close-footer",onClick:r,className:"border border-slate-700 hover:bg-slate-800 text-slate-300 text-sm px-4 py-1.5 rounded-lg transition-colors",children:"Close"})]}),children:(0,he.jsxs)("div",{className:"flex-1 overflow-auto",style:{minHeight:0,padding:"16px 20px"},children:[vm(t)&&(0,he.jsx)("div",{style:{borderRadius:8,overflow:"hidden",border:"1px solid var(--p-border)",background:"var(--p-card)",display:"inline-block",width:"100%"},children:(0,he.jsx)("img",{src:a,alt:t,style:{maxWidth:"100%",display:"block",margin:"0 auto",objectFit:"contain"}})}),fs(t)&&l&&(0,he.jsx)("p",{className:"text-xs text-slate-500 py-4",children:"Loading\\u2026"}),fs(t)&&!l&&o!==null&&(0,he.jsx)("div",{id:"file-preview-md",style:{background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:8,padding:"10px 14px",fontSize:13,color:"var(--p-text-sub)",lineHeight:1.65},children:(0,he.jsx)(Ha,{markdown:o})}),!vm(t)&&!fs(t)&&(0,he.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-slate-500",children:[(0,he.jsx)(ro,{className:"w-10 h-10 opacity-40"}),(0,he.jsx)("p",{className:"text-sm",children:"Preview not available for this file type."}),(0,he.jsxs)("a",{href:a,download:t,className:"flex items-center gap-1.5 text-violet-400 hover:text-violet-300 hover:underline text-sm transition-colors",children:[(0,he.jsx)(ir,{className:"w-3.5 h-3.5"}),"Download file"]})]})]})})}var Lm=window.__PORT__??3700,co=`http://localhost:${Lm}`,zt=`${co}/api/tasks`,Ct={async getTasks(){return(await fetch(`${zt}?_=${Date.now()}`,{cache:"no-store"})).json()},async createTask(e){return(await fetch(zt,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json()},async updateTask(e,t){return(await fetch(`${zt}/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).json()},async deleteTask(e){await fetch(`${zt}/${e}`,{method:"DELETE"})},async getComments(e){return(await fetch(`${zt}/${e}/comments`)).json()},async addComment(e,t){await fetch(`${zt}/${e}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:"user",text:t,source:"web"})})},async updateComment(e,t,a){await fetch(`${zt}/${e}/comments/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})})},async deleteComment(e,t){await fetch(`${zt}/${e}/comments/${t}`,{method:"DELETE"})},async getFiles(e){return(await fetch(`${zt}/${e}/files`)).json()},async uploadFile(e,t){let a=await t.arrayBuffer();await fetch(`${zt}/${e}/files/${encodeURIComponent(t.name)}`,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:a})},async deleteFile(e,t){await fetch(`${zt}/${e}/files/${encodeURIComponent(t)}`,{method:"DELETE"})},async getProject(){return(await fetch(`${co}/api/project`)).json()},async getCopilotStatus(){return(await fetch(`${co}/api/copilot/status`)).json()},async copilotLogin(){return(await fetch(`${co}/api/copilot/login`,{method:"POST"})).json().catch(()=>({}))},async getSettings(){return(await fetch(`${co}/api/settings`,{cache:"no-store"})).json()},async saveSettings(e){await fetch(`${co}/api/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})},wsUrl(){return`ws://localhost:${Lm}`}};var G=D(H(),1),ps=window.__PORT__??3700,ov=window.__SAAS_MODE__??!1,ym=window.__BOARD_URL__??"",nv=window.__BOARD_NAME__??"",Cm=window.__IS_ADMIN__??!1;function lv({onClose:e}){let t=`http://localhost:${ps}`,[a,r]=ee.default.useState("idle"),[o,n]=ee.default.useState(!0),[l,s]=ee.default.useState(null),[u,d]=ee.default.useState("");async function g(){r("pushing"),d("");try{let m=await fetch(`${t}/api/push`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keepLocalFiles:o})}),L=await m.json();if(!m.ok){d(L.error??"Push failed"),r("error");return}s({imported:L.imported??0,skipped:L.skipped}),r("done")}catch(m){d(m instanceof Error?m.message:"Network error"),r("error")}}let h=a==="pushing";return(0,G.jsx)("div",{style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(5, 8, 18, 0.72)",backdropFilter:"blur(10px)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,fontFamily:"Inter, system-ui, -apple-system, sans-serif"},children:(0,G.jsxs)("div",{style:{background:"#101827",border:"1px solid rgba(255,255,255,0.07)",borderRadius:24,maxWidth:380,width:"100%",boxShadow:"0 0 0 1px rgba(59,130,246,0.07), 0 40px 80px rgba(0,0,0,0.75)",overflow:"hidden",position:"relative"},children:[(0,G.jsx)("div",{style:{position:"absolute",top:0,left:"20%",right:"20%",height:1,background:"linear-gradient(90deg, transparent, rgba(59,130,246,0.5), transparent)"}}),(0,G.jsxs)("div",{style:{padding:"36px 36px 20px",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,G.jsx)("div",{style:{position:"relative",width:52,height:52,marginBottom:22},children:(0,G.jsxs)("svg",{width:"52",height:"52",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,G.jsx)("rect",{width:"18",height:"18",rx:"4",fill:"#2563eb"}),(0,G.jsx)("rect",{x:"2.5",y:"5",width:"2",height:"8",rx:"1",fill:"white",opacity:"0.7"}),(0,G.jsx)("rect",{x:"6.5",y:"2",width:"2",height:"14",rx:"1",fill:"white"}),(0,G.jsx)("rect",{x:"10.5",y:"6",width:"2",height:"6",rx:"1",fill:"white",opacity:"0.7"}),(0,G.jsx)("rect",{x:"14.5",y:"4",width:"2",height:"10",rx:"1",fill:"white",opacity:"0.85"})]})}),(0,G.jsx)("h1",{style:{fontSize:18,fontWeight:700,color:"#f1f5f9",letterSpacing:"-0.3px",margin:"0 0 7px"},children:"Online Mode Active"}),(0,G.jsxs)("p",{style:{fontSize:12,color:"rgba(255,255,255,0.36)",lineHeight:1.5,margin:0},children:["Connected to"," ",(0,G.jsx)("strong",{style:{color:"rgba(255,255,255,0.55)",fontWeight:500},children:nv||"Vibeflow SaaS"})]})]}),a==="done"&&l&&(0,G.jsxs)("div",{style:{margin:"0 28px 0",padding:"10px 14px",borderRadius:9,fontSize:12,display:"flex",alignItems:"center",gap:9,background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.18)",color:"#34d399"},children:[(0,G.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:(0,G.jsx)("path",{d:"M13 5L6.5 11.5 3 8",stroke:"#34d399",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})}),l.imported," task",l.imported!==1?"s":""," pushed to board",l.skipped!=null&&l.skipped>0?` \\xB7 ${l.skipped} already existed`:""]}),a==="error"&&u&&(0,G.jsx)("div",{style:{margin:"0 28px 0",padding:"10px 14px",borderRadius:9,fontSize:12,display:"flex",alignItems:"center",gap:9,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.18)",color:"#f87171"},children:u}),(0,G.jsxs)("div",{style:{padding:"20px 24px 28px",display:"flex",flexDirection:"column",gap:8},children:[ym&&(0,G.jsx)("a",{href:ym,target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:9,padding:14,background:"#2563eb",border:"none",borderRadius:12,color:"#fff",fontSize:14,fontWeight:600,cursor:"pointer",textDecoration:"none",letterSpacing:"-0.1px",transition:"background 0.15s, transform 0.1s"},onMouseEnter:m=>{m.currentTarget.style.background="#3b82f6",m.currentTarget.style.transform="translateY(-1px)"},onMouseLeave:m=>{m.currentTarget.style.background="#2563eb",m.currentTarget.style.transform="none"},children:"Open Web App \\u2192"}),a!=="done"&&(0,G.jsx)("button",{onClick:()=>void g(),disabled:h,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:9,padding:12,background:"transparent",border:"1px solid rgba(255,255,255,0.08)",borderRadius:12,color:h?"rgba(255,255,255,0.25)":"rgba(255,255,255,0.4)",fontSize:13,fontWeight:500,cursor:h?"not-allowed":"pointer",transition:"border-color 0.15s, color 0.15s, background 0.15s"},onMouseEnter:m=>{h||(m.currentTarget.style.borderColor="rgba(255,255,255,0.15)",m.currentTarget.style.color="rgba(255,255,255,0.65)",m.currentTarget.style.background="rgba(255,255,255,0.03)")},onMouseLeave:m=>{h||(m.currentTarget.style.borderColor="rgba(255,255,255,0.08)",m.currentTarget.style.color="rgba(255,255,255,0.4)",m.currentTarget.style.background="transparent")},children:h?"\\u23F3 Pushing\\u2026":"\\u2191 Push local tasks"})]}),(0,G.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 24px 20px"},children:[(0,G.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,cursor:"pointer"},children:[(0,G.jsx)("input",{type:"checkbox",checked:o,onChange:m=>n(m.target.checked),style:{accentColor:"#2563eb",width:13,height:13,cursor:"pointer"}}),(0,G.jsx)("span",{style:{fontSize:11.5,color:"rgba(255,255,255,0.28)"},children:"Keep local files"})]}),Cm&&e&&(0,G.jsx)("button",{onClick:e,style:{fontSize:11,color:"rgba(255,255,255,0.2)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline",textUnderlineOffset:2,transition:"color 0.15s"},onMouseEnter:m=>{m.currentTarget.style.color="rgba(255,255,255,0.45)"},onMouseLeave:m=>{m.currentTarget.style.color="rgba(255,255,255,0.2)"},children:"Dismiss (admin)"})]})]})})}var Sm={backlog:"Backlog",todo:"Todo","in-progress":"In Progress",review:"Review",done:"Done"};function sv(e,t,a){let r=a?e.filter(s=>{var u,d;return((u=s.title)==null?void 0:u.toLowerCase().includes(a))||((d=s.description)==null?void 0:d.toLowerCase().includes(a))}):e;if(a)return`${r.length} of ${e.length} tasks`;let o=r.filter(s=>s.status!=="done").length,n=r.filter(s=>s.status==="in-progress").length,l=r.filter(s=>s.status==="review").length;return`${o} open \\xB7 ${n} in-progress \\xB7 ${l} in review`}function wm(){var Cr,Va;let[e,t]=ee.default.useState([]),[a,r]=ee.default.useState(!0),[o,n]=ee.default.useState(!1),[l,s]=ee.default.useState({open:!1,task:null,tab:"details"}),[u,d]=ee.default.useState("board"),[g,h]=ee.default.useState(!1),[m,L]=ee.default.useState({open:!1,name:"",url:""}),[y,I]=ee.default.useState(420),[O,c]=ee.default.useState(!1),[i,f]=ee.default.useState(""),[v,k]=ee.default.useState(za.map(x=>x.id)),[w,p]=ee.default.useState({status:"all",component:null,type:null,user:null,tags:[]}),[S,A]=ee.default.useState("Proto Board"),[T,M]=ee.default.useState(!1),[X,le]=ee.default.useState(!1),[J,Re]=ee.default.useState("You"),[_,U]=ee.default.useState(null),[Q,ae]=ee.default.useState(""),[V,me]=ee.default.useState({}),nt=ee.default.useRef(null),wt=ee.default.useRef(null),Ge=ee.default.useRef(null),[Xt,kt]=ee.default.useState([]),ia=ee.default.useRef(!1),Ut=ee.default.useRef([]),[vr,ms]=ee.default.useState([]);ee.default.useEffect(()=>(Nt(),gs(),hs(),kn(),wn(),bn(),()=>{var x;wt.current&&clearTimeout(wt.current),(x=nt.current)==null||x.close()}),[]),ee.default.useEffect(()=>{document.body.setAttribute("data-theme","dark")},[]),ee.default.useEffect(()=>{function x(){let Y=window.location.hash.match(/^#task-([a-f0-9]{30})$/i);if(!Y){Ge.current=null;return}let ge=Y[1].toLowerCase();if(Ge.current===ge)return;let re=e.find(oe=>oe.id.toLowerCase()===ge);re&&(Ge.current=ge,ia.current?s(oe=>({...oe,open:!0,task:re,tab:"details"})):s(oe=>(oe.task&&oe.task.id!==re.id&&kt(ie=>[...ie,oe.task]),{...oe,open:!0,task:re,tab:"details"})),ia.current=!1)}function b(){}x();let z=()=>{Ge.current=null,x()};return window.addEventListener("hashchange",z),window.addEventListener("vibeflow-task-ref-click",b),()=>{window.removeEventListener("hashchange",z),window.removeEventListener("vibeflow-task-ref-click",b)}},[e]),ee.default.useEffect(()=>{if(!l.open||!l.task)return;let x=e.find(Y=>Y.id===l.task.id);if(!x)return;let b=l.task;Object.keys(x).some(Y=>x[Y]!==b[Y])&&s(Y=>({...Y,task:x}))},[e,l.open,(Cr=l.task)==null?void 0:Cr.id]),ee.default.useEffect(()=>{function x(b){var ge,re,oe;let z=(ge=b.target)==null?void 0:ge.tagName,Y=z==="INPUT"||z==="TEXTAREA"||((re=b.target)==null?void 0:re.isContentEditable);if(b.key==="Escape"){if(m.open){L(ie=>({...ie,open:!1}));return}if(l.open){s(ie=>({...ie,open:!1}));return}if(g){h(!1);return}}if(!Y&&((b.key==="?"||b.key==="/"&&b.shiftKey)&&((oe=document.getElementById("header-shortcuts-hint"))==null||oe.click()),b.altKey&&!b.ctrlKey&&!b.metaKey&&(b.key==="n"||b.key==="N")&&(b.preventDefault(),Sr(null,"details")),b.altKey&&!b.ctrlKey&&!b.metaKey&&(b.key==="f"||b.key==="F"))){b.preventDefault();let ie=document.getElementById("global-search");ie==null||ie.focus(),ie==null||ie.select()}}return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[m.open,l.open,g]);function Lr(x,b,z,Y,ge){let re=new Date().toISOString(),oe=Sm[b]??b,ie=Sm[z]??z,He=Date.now()-3e3;ms(Ze=>Ze.some(R=>R.taskId===x&&R.to===ie&&new Date(R.timestamp).getTime()>He)?Ze:[...Ze,{taskId:x,field:"status",from:oe,to:ie,actor:Y,timestamp:re,source:ge}].slice(-500))}async function Nt(){try{let x=await Ct.getTasks();Ut.current=x.tasks??[],t(x.tasks??[])}catch{}finally{r(!1)}}let Qt=ee.default.useCallback((x,b,z)=>{let Y=String(x.id??"");if(!Y)return;let ge=x.created??x.createdAt,re=x.updated?String(x.updated):void 0,oe=Array.isArray(x.comments)?x.comments.length:void 0,ie=Array.isArray(x.files)?x.files.length:void 0,He=x.status?String(x.status):void 0,Ze=Ut.current.find(lt=>lt.id===Y);He&&Ze&&Ze.status!==He&&Lr(Y,Ze.status,He,b??"Someone",z),t(lt=>{let R=lt.find(pt=>pt.id===Y),Ht={id:Y,title:x.title?String(x.title):(R==null?void 0:R.title)??"Untitled",description:x.description!=null?String(x.description):(R==null?void 0:R.description)??"",status:He??(R==null?void 0:R.status)??"todo",type:x.type?String(x.type):R==null?void 0:R.type,priority:x.priority?String(x.priority):R==null?void 0:R.priority,agent:x.agent?String(x.agent):R==null?void 0:R.agent,model:x.model?String(x.model):R==null?void 0:R.model,selector:x.selector?String(x.selector):R==null?void 0:R.selector,cssSelector:x.cssSelector?String(x.cssSelector):R==null?void 0:R.cssSelector,file:x.file?String(x.file):R==null?void 0:R.file,line:typeof x.line=="number"?x.line:R==null?void 0:R.line,col:typeof x.col=="number"?x.col:R==null?void 0:R.col,component:x.component?String(x.component):R==null?void 0:R.component,url:x.url?String(x.url):R==null?void 0:R.url,reportBack:x.reportBack===!0||(R==null?void 0:R.reportBack)===!0,commit:x.commit?String(x.commit):R==null?void 0:R.commit,commits:Array.isArray(x.commits)?x.commits:R==null?void 0:R.commits,commentCount:oe??(R==null?void 0:R.commentCount),fileCount:ie??(R==null?void 0:R.fileCount),createdAt:ge?String(ge):(R==null?void 0:R.createdAt)??new Date().toISOString(),updatedAt:re??(R==null?void 0:R.updatedAt),author:x.author?String(x.author):R==null?void 0:R.author,tags:Array.isArray(x.tags)?x.tags:R==null?void 0:R.tags,sortKey:x.sortKey?String(x.sortKey):R==null?void 0:R.sortKey},$a=lt.filter(pt=>pt.id!==Y);return $a.push(Ht),$a.sort((pt,fa)=>{let wr=new Date(pt.updatedAt??pt.createdAt??"").getTime(),Mn=new Date(fa.updatedAt??fa.createdAt??"").getTime();return wr===Mn?pt.id.localeCompare(fa.id):Mn-wr}),Ut.current=$a,$a})},[]);async function gs(){try{let x=await Ct.getProject();x.name&&A(x.name),x.gitUserName&&Re(x.gitUserName)}catch{}}async function wn(){try{let x=await fetch("/api/github-url").then(b=>b.json());U(x.githubUrl??null)}catch{}}async function hs(){var x;try{let z=await Ct.getSettings();me(z),(x=z.visibleCols)!=null&&x.length&&k(z.visibleCols),z.viewMode&&d(z.viewMode),z.panelWidth&&z.panelWidth>=280&&z.panelWidth<=900&&I(z.panelWidth)}catch{}}async function kn(){try{let x=await Ct.getCopilotStatus();x!=null&&x.authenticated&&(x!=null&&x.username)?ae(`Copilot: ${x.username}`):ae("Copilot: not logged in")}catch{}}function bn(){let x=`ws://localhost:${ps}`,b=new WebSocket(x);nt.current=b,b.addEventListener("open",()=>{M(!0),le(!0),Nt()}),b.addEventListener("close",()=>{M(!1),wt.current=setTimeout(bn,1500)}),b.addEventListener("message",Y=>{var ge;try{let re=JSON.parse(Y.data);if(re.type==="tasks-updated"||(ge=re.type)!=null&&ge.startsWith("task:")){Nt();return}if(re.type==="task-changed"&&re.task){let oe=re.task,ie=typeof oe.alteredBy=="string"?oe.alteredBy:typeof oe.author=="string"?oe.author:"Someone",He=re.source==="cli"?"cli":void 0;Qt(oe,ie,He);return}if(re.type==="task-deleted"&&re.taskId){let oe=String(re.taskId);t(ie=>{let He=ie.filter(Ze=>Ze.id!==oe);return Ut.current=He,He})}}catch{}});let z=setInterval(()=>{b.readyState===WebSocket.OPEN&&b.send(JSON.stringify({type:"ping"}))},2e4);b.addEventListener("close",()=>clearInterval(z))}async function Wa(x,b){let z=Ut.current.find(Y=>Y.id===x);t(Y=>{let ge=Y.map(re=>re.id===x?{...re,...b}:re);return Ut.current=ge,ge}),b.status&&(z!=null&&z.status)&&b.status!==z.status&&Lr(x,z.status,b.status,J);try{let Y=await Ct.updateTask(x,b);Y.task&&t(ge=>{let re=ge.map(oe=>oe.id===x?Y.task:oe);return Ut.current=re,re})}catch{Nt()}}async function da(x){t(b=>{let z=b.filter(Y=>Y.id!==x);return Ut.current=z,z});try{await Ct.deleteTask(x)}catch{Nt()}}async function yr(x){var b;try{let z=await Ct.createTask(x);return await Nt(),(b=z==null?void 0:z.task)==null?void 0:b.id}catch{}}function Sr(x,b="details",z){kt([]),s({open:!0,task:x,tab:b,addColumnId:z})}function Pn(){kt(x=>{if(x.length===0)return x;let b=x[x.length-1],z=x.slice(0,-1);return ia.current=!0,Ge.current=null,window.location.hash=`#task-${b.id}`,s(Y=>({...Y,open:!0,task:b,tab:"details"})),z})}function Ir(x,b){if(/\\.html?$/i.test(x)){window.open(b,"_blank","noopener,noreferrer");return}L({open:!0,name:x,url:b})}let Tn=sv(e,v,i.toLowerCase()),Rn=`http://localhost:${ps}`,Dn=ee.default.useMemo(()=>{let x=new Set;return e.forEach(b=>(b.tags??[]).forEach(z=>x.add(z))),Array.from(x).sort()},[e]),xs=ee.default.useMemo(()=>{var b;let x=(b=l.task)==null?void 0:b.id;return x?vr.filter(z=>z.taskId===x).map(({field:z,from:Y,to:ge,actor:re,timestamp:oe,source:ie})=>({field:z,from:Y,to:ge,actor:re,timestamp:oe,source:ie})):[]},[(Va=l.task)==null?void 0:Va.id,vr]),po=ee.default.useMemo(()=>{let x=e;return w.status!=="all"&&(x=x.filter(b=>b.status===w.status)),w.component&&(x=x.filter(b=>b.component===w.component)),w.type&&(x=x.filter(b=>b.type===w.type)),w.user&&(x=x.filter(b=>b.author===w.user)),w.tags&&w.tags.length>0&&(x=x.filter(b=>w.tags.every(z=>(b.tags??[]).includes(z)))),x},[e,w]),An=X&&!T;return(0,G.jsxs)(G.Fragment,{children:[ov&&!o&&(0,G.jsx)(lv,{onClose:Cm?()=>n(!0):void 0}),(0,G.jsx)($i,{projectName:S,missingProjectIconStyle:"vibeflow",wsConnected:T,port:ps,searchQuery:i,filterTags:w.tags,allTags:Dn,onToggleTag:x=>{let b=w.tags??[],z=b.includes(x)?b.filter(Y=>Y!==x):[...b,x];p(Y=>({...Y,tags:z}))},premiumUsage:Q,isLoading:a,taskSummary:Tn,onSearchChange:f,onSettings:()=>h(!0)}),(0,G.jsx)(td,{tasks:e,filter:w,view:u,onFilter:p,onViewChange:x=>{d(x),Ct.saveSettings({...V,viewMode:x}),me(b=>({...b,viewMode:x}))}}),(0,G.jsxs)("div",{className:"flex flex-1 overflow-hidden",style:{minHeight:0,position:"relative"},children:[u==="list"?(0,G.jsx)(Vi,{tasks:po,searchQuery:i,isLoading:a,onOpenPanel:(x,b)=>Sr(x,b),onAddTask:x=>Sr(null,"details",x),onDrop:(x,b)=>Wa(x,{status:b})}):(0,G.jsx)(qi,{tasks:po,visibleCols:v,searchQuery:i,isLoading:a,onOpenPanel:(x,b,z)=>Sr(x,b,z),onDrop:(x,b)=>Wa(x,{status:b})}),l.open&&(0,G.jsxs)("div",{id:"detail-panel-container",style:{width:y,zIndex:O?30:10},className:O?"resizing":"",children:[(0,G.jsx)("div",{id:"detail-panel-resize-handle",onMouseDown:x=>{x.preventDefault(),c(!0),document.body.classList.add("vibeflow-resizing-panel");let b=x.clientX,z=y,Y=re=>{let oe=z-(re.clientX-b);I(Math.max(360,Math.min(860,oe)))},ge=re=>{c(!1),document.body.classList.remove("vibeflow-resizing-panel");let oe=Math.max(360,Math.min(860,z-(re.clientX-b)));Ct.saveSettings({...V,panelWidth:oe}),me(ie=>({...ie,panelWidth:oe})),window.removeEventListener("mousemove",Y),window.removeEventListener("mouseup",ge)};window.addEventListener("mousemove",Y),window.addEventListener("mouseup",ge)}}),(0,G.jsx)(ed,{open:l.open,task:l.task,tab:l.tab,showLockIndicator:!1,addColumnId:l.addColumnId,gitUserName:J,githubUrl:_,baseUrl:Rn,isResizing:O,api:Ct,onClose:()=>{kt([]),s(x=>({...x,open:!1}))},onSave:async x=>{l.task&&await Wa(l.task.id,x),s(b=>({...b,open:!1}))},onCreate:async x=>{let b=await yr(x);return s(z=>({...z,open:!1})),b},onDelete:async x=>{await da(x),s(b=>({...b,open:!1}))},onPatch:Wa,onFilePreview:Ir,onGoBack:Xt.length>0?Pn:void 0,navBackLabel:Xt.length>0?Xt[Xt.length-1].title:void 0,externalLocalChanges:xs,allTasks:e})]})]}),An&&(0,Im.createPortal)((0,G.jsx)("div",{id:"ws-lost-overlay",style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:99999,background:"rgba(2, 6, 23, 0.88)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,pointerEvents:"all",cursor:"not-allowed"},children:(0,G.jsxs)("div",{style:{width:"min(420px, 92vw)",borderRadius:14,border:"1px solid var(--p-border-s)",background:"var(--p-card)",boxShadow:"0 16px 40px rgba(2,6,23,0.7)",padding:"20px 22px",display:"flex",flexDirection:"column",gap:10,cursor:"default",pointerEvents:"auto"},children:[(0,G.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,G.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"var(--p-text-m)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{animation:"spin 1.1s linear infinite",flexShrink:0},children:(0,G.jsx)("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),(0,G.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--p-text)"},children:"Connection Lost"})]}),(0,G.jsx)("div",{style:{fontSize:12,color:"var(--p-text-m)",lineHeight:1.6},children:"Real-time connection to the server was interrupted. Reconnecting in the background\\u2026"})]})}),document.body),(0,G.jsx)(ad,{open:g,visibleCols:v,settings:V,onClose:()=>h(!1),onSave:(x,b)=>{k(x);let z={...V,...b,visibleCols:x};me(z),Ct.saveSettings(z)}}),(0,G.jsx)(rd,{open:m.open,name:m.name,url:m.url,onClose:()=>L(x=>({...x,open:!1}))})]})}var Pm=D(H(),1),km=document.getElementById("root");km&&(0,bm.createRoot)(km).render((0,Pm.jsx)(wm,{}));})();\n/*! Bundled license information:\n\nreact/cjs/react.production.min.js:\n (**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.min.js:\n (**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.min.js:\n (**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact/cjs/react-jsx-runtime.production.min.js:\n (**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nlucide-react/dist/esm/shared/src/utils.js:\nlucide-react/dist/esm/defaultAttributes.js:\nlucide-react/dist/esm/Icon.js:\nlucide-react/dist/esm/createLucideIcon.js:\nlucide-react/dist/esm/icons/chevron-down.js:\nlucide-react/dist/esm/icons/chevron-right.js:\nlucide-react/dist/esm/icons/circle-check-big.js:\nlucide-react/dist/esm/icons/download.js:\nlucide-react/dist/esm/icons/eye.js:\nlucide-react/dist/esm/icons/file-text.js:\nlucide-react/dist/esm/icons/flag.js:\nlucide-react/dist/esm/icons/layout-dashboard.js:\nlucide-react/dist/esm/icons/list.js:\nlucide-react/dist/esm/icons/lock.js:\nlucide-react/dist/esm/icons/message-circle.js:\nlucide-react/dist/esm/icons/panels-top-left.js:\nlucide-react/dist/esm/icons/paperclip.js:\nlucide-react/dist/esm/icons/plus.js:\nlucide-react/dist/esm/icons/search.js:\nlucide-react/dist/esm/icons/settings.js:\nlucide-react/dist/esm/icons/tag.js:\nlucide-react/dist/esm/icons/triangle-alert.js:\nlucide-react/dist/esm/icons/upload.js:\nlucide-react/dist/esm/icons/user.js:\nlucide-react/dist/esm/icons/workflow.js:\nlucide-react/dist/esm/icons/x.js:\nlucide-react/dist/esm/lucide-react.js:\n (**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n *)\n*/\n';var Bt=zt(import.meta.url),Vt=$t(Bt),qt=[tn(Vt,"kanban-template.html"),tn(process.cwd(),"src","server","kanban-template.html"),tn(process.cwd(),"dist","server","kanban-template.html")];function Yt(t){let e=qt.find(r=>Wt(r));if(!e)throw new Error("kanban-template.html not found in expected locations");return jt(e,"utf8").replaceAll("__PORT__",String(t))}function Kt(t){return t.saasMode?`window.__SAAS_MODE__ = true; window.__BOARD_URL__ = ${JSON.stringify(t.boardUrl??"")}; window.__BOARD_NAME__ = ${JSON.stringify(t.boardName??"")}; window.__IS_ADMIN__ = ${t.isAdmin?"true":"false"};`:""}var Qt="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iNCIgZmlsbD0iIzI1NjNlYiIvPjxyZWN0IHg9IjIuNSIgeT0iNSIgd2lkdGg9IjIiIGhlaWdodD0iOCIgcng9IjEiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjciLz48cmVjdCB4PSI2LjUiIHk9IjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjE0IiByeD0iMSIgZmlsbD0id2hpdGUiLz48cmVjdCB4PSIxMC41IiB5PSI2IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuNyIvPjxyZWN0IHg9IjE0LjUiIHk9IjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjEwIiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuODUiLz48L3N2Zz4=";function Gt(t){return`<!DOCTYPE html>
29345
+ `+Ze}import{existsSync as jt,readFileSync as $t}from"fs";import{dirname as zt,join as tn}from"path";import{fileURLToPath as Bt}from"url";var _n=`*,:after,:before{--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:rgba(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:rgba(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: }
29346
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,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,pre,samp{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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.mb-0\\.5{margin-bottom:.125rem}.ml-1\\.5{margin-left:.375rem}.mr-0\\.5{margin-right:.125rem}.mt-0\\.5{margin-top:.125rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-2\\.5{height:.625rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-4{height:1rem}.h-7{height:1.75rem}.min-h-\\[30px\\]{min-height:30px}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-10{width:2.5rem}.w-2\\.5{width:.625rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-4{width:1rem}.w-7{width:1.75rem}.w-full{width:100%}.min-w-\\[100px\\]{min-width:100px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-text{cursor:text}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-none{border-style:none}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/60{border-color:rgba(51,65,85,.6)}.border-slate-800\\/60{border-color:rgba(30,41,59,.6)}.border-violet-700\\/50{border-color:rgba(109,40,217,.5)}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-violet-900\\/30{background-color:rgba(76,29,149,.3)}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.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-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\\[10px\\]{font-size:10px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-tight{line-height:1.25}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/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-violet-300{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.text-violet-400{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{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-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}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--p-bg:#020c1b;--p-surface:#080f1e;--p-card:#0a0f1e;--p-input:#050d1a;--p-hover:#0d1f38;--p-border:#1e293b;--p-border-s:#1e3a5f;--p-border-t:#334155;--p-text:#e2e8f0;--p-text-sub:#cbd5e1;--p-text-m:#94a3b8;--p-text-f:#64748b;--p-text-g:#475569;--p-white:#fff;--p-blue:#2563eb;--p-blue-700:#1d4ed8;--p-blue-300:#60a5fa;--p-blue-200:#93c5fd;--p-purple:#a78bfa;--p-purple-300:#c4b5fd;--p-cyan-300:#7dd3fc;--p-amber:#f59e0b;--p-amber-300:#fcd34d;--p-green:#22c55e;--p-green-300:#6ee7b7;--p-red:#f87171;--p-red-500:#ef4444;--p-shadow-lg:0 8px 24px rgba(2,6,23,.28);--p-overlay:rgba(15,23,42,.2)}body,html{height:100%;margin:0;padding:0}body{font-family:Inter,sans-serif;background:var(--p-bg);color:var(--p-text)}#root{height:100%;display:flex;flex-direction:column;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--p-border-t) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--p-border-t);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--p-text-g)}#kanban-board{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden}#kanban-board::-webkit-scrollbar{display:none}#kanban-scroll-track{position:fixed;bottom:0;left:0;right:0;height:6px;background:transparent;z-index:40;pointer-events:none}#kanban-scroll-thumb{position:absolute;top:1px;height:4px;border-radius:2px;background:var(--p-border-t);cursor:pointer;pointer-events:auto;transition:background .15s}#kanban-scroll-thumb.dragging,#kanban-scroll-thumb:hover{background:var(--p-text-g)}.board-column{flex:1 0 260px;max-width:420px;display:flex;flex-direction:column;gap:6px;min-height:0}.column-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--p-surface);border:1px solid var(--p-border)}.column-scroll{flex:1;overflow-y:auto;min-height:0;gap:5px;padding-bottom:8px}.column-scroll,.task-card{display:flex;flex-direction:column}.task-card{background:var(--p-card);border:1px solid var(--p-border);border-radius:10px;padding:11px 13px;cursor:grab;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s;gap:7px}.task-card:hover{border-color:var(--p-border-s);background:var(--p-hover);box-shadow:0 4px 16px rgba(0,0,0,.3);transform:translateY(-1px)}.task-card:active{cursor:grabbing;transform:scale(.98)}.task-card.dragging{opacity:.4}.drag-over{outline:2px dashed rgba(59,130,246,.5);outline-offset:-3px;border-radius:10px;background:rgba(59,130,246,.04)}.file-compact-actions{opacity:0}.group\\/file-compact:hover .file-compact-actions{opacity:1}.file-normal-actions,.group\\/file-compact:hover .file-compact-ts{opacity:0}.group\\/file:hover .file-normal-actions{opacity:1}.group\\/file:hover{background:rgba(30,41,59,.6)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.sd-backlog{background:#475569}.sd-todo{background:#f59e0b}.sd-inprogress{background:#3b82f6;animation:pulse-prog 2s ease-in-out infinite}.sd-review{background:#a855f7}.sd-done{background:#22c55e}@keyframes pulse-prog{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.5)}50%{box-shadow:0 0 0 4px rgba(59,130,246,0)}}.type-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:10px;font-weight:500;border:1px solid}.type-bug{color:#fca5a5;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.25)}.type-feature{color:#86efac;background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.2)}.type-enhancement{color:#93c5fd;background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.2)}.type-task{color:#cbd5e1;background:rgba(148,163,184,.08);border-color:rgba(148,163,184,.2)}.type-research{color:#c4b5fd;background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.2)}.source-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;font-size:10px;font-family:JetBrains Mono,monospace;background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);color:#60a5fa;cursor:pointer;text-decoration:none;transition:background .1s,border-color .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.source-pill:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3)}@keyframes spin{to{transform:rotate(1turn)}}.spinner{display:inline-block;width:11px;height:11px;border:2px solid rgba(96,165,250,.3);border-top-color:#60a5fa;border-radius:50%;animation:spin .7s linear infinite}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;display:flex;align-items:center;justify-content:center}.modal-box{background:var(--p-card);border:1px solid var(--p-border);border-radius:14px;width:520px;max-width:95vw;overflow:hidden}.type-picker{display:flex;align-items:center;gap:6px}.type-picker-trigger{display:flex;align-items:center;gap:4px;width:auto;height:30px;padding:0 8px;border-radius:8px;border:1px solid var(--p-border-t);background:var(--p-card);color:var(--p-text-sub);font-size:13px;cursor:pointer;white-space:nowrap}.type-picker-label{font-size:11px;font-weight:500;color:var(--p-text-m);letter-spacing:.02em}.type-picker-trigger:hover{border-color:var(--p-text-g);color:var(--p-text)}.type-picker-options{display:none;align-items:center;gap:4px}.type-picker-options.open{display:flex}.type-picker-option{width:28px;height:28px;border-radius:7px;border:1px solid var(--p-border-t);background:var(--p-card);color:var(--p-text-sub);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px}.type-picker-option:hover{border-color:#60a5fa;color:#bfdbfe}#detail-panel-container{min-width:360px;max-width:min(860px,100%);position:absolute;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid #1e293b;animation:panel-slide-in .18s ease-out}#detail-panel-container.resizing{box-shadow:-12px 0 32px rgba(2,8,23,.6)}#detail-panel-resize-handle{position:absolute;left:0;top:0;width:12px;height:100%;cursor:ew-resize;z-index:5}#detail-panel-resize-handle:hover{background:linear-gradient(90deg,rgba(59,130,246,.22),rgba(59,130,246,0))}body.proto-resizing-panel{cursor:ew-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}#detail-panel{flex:1;background:var(--p-card);display:flex;flex-direction:column;overflow:hidden}@keyframes panel-slide-in{0%{width:0;opacity:0}to{width:420px;opacity:1}}.dp-header{padding:14px 16px 10px}.dp-header,.dp-tabs{border-bottom:1px solid var(--p-border);background:var(--p-surface);flex-shrink:0}.dp-tabs{display:flex;gap:0}.dp-tab{padding:8px 14px;font-size:12px;font-weight:500;color:var(--p-text-g);cursor:pointer;transition:color .12s,border-color .12s;background:none;border:none;border-bottom:2px solid transparent}.dp-tab:hover{color:var(--p-text-m)}.dp-tab.active{color:#93c5fd;border-bottom-color:#3b82f6}.dp-body{overflow:hidden}.dp-body,.dp-body>.dp-pane{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}.dp-body>.dp-pane{padding:14px 16px}#dp-details-pane,.dp-body>.dp-pane{overflow-y:auto;background:var(--p-card)}.dp-footer{padding:10px 16px 12px;border-top:1px solid var(--p-border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--p-card)}.dp-source-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:6px;font-size:10px;font-family:monospace;background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);color:#60a5fa;white-space:nowrap}.dp-source-pill:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3)}.dp-status-btn{padding:3px 10px;border-radius:6px;font-size:10px;font-weight:500;border:1px solid var(--p-border-t);color:var(--p-text-f);background:transparent;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.dp-status-btn:hover{border-color:var(--p-text-g);color:var(--p-text-m)}.dp-status-btn.active-backlog{border-color:#475569;background:rgba(100,116,139,.1);color:#94a3b8}.dp-status-btn.active-todo{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.1);color:#f59e0b}.dp-status-btn.active-in-progress{border-color:rgba(59,130,246,.5);background:rgba(59,130,246,.1);color:#60a5fa}.dp-status-btn.active-review{border-color:rgba(168,85,247,.5);background:rgba(168,85,247,.1);color:#a855f7}.dp-status-btn.active-done{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.08);color:#22c55e}.dp-input{width:100%;padding:7px 10px;border:1px solid var(--p-border-s);border-radius:8px;background:var(--p-input);color:var(--p-text);font-size:13px;font-family:inherit;outline:none;transition:border-color .12s,box-shadow .12s;box-sizing:border-box}.dp-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dp-input::-moz-placeholder{color:var(--p-border-t)}.dp-input::placeholder{color:var(--p-border-t)}.dp-textarea{width:100%;padding:8px 10px;border:1px solid var(--p-border-s);border-radius:8px;background:var(--p-input);color:var(--p-text);font-size:12px;font-family:monospace;line-height:1.6;resize:vertical;outline:none;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}.dp-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dp-textarea::-moz-placeholder{color:var(--p-border-t)}.dp-textarea::placeholder{color:var(--p-border-t)}.dp-meta-label{font-size:10px;font-weight:600;color:var(--p-text-g);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}@keyframes pulse-live{0%,to{box-shadow:0 0 0 0 rgba(74,222,128,.4)}50%{box-shadow:0 0 0 4px rgba(74,222,128,0)}}@keyframes agent-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes away-glow{0%,to{box-shadow:0 0 0 0 rgba(37,99,235,.45),0 0 24px rgba(37,99,235,.1);border-color:rgba(37,99,235,.35)}50%{box-shadow:0 0 0 14px rgba(37,99,235,0),0 0 48px rgba(37,99,235,.2);border-color:rgba(96,165,250,.6)}}@keyframes away-fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.focus-within\\:border-blue-500:focus-within{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\\:bg-red-900\\/40:hover{background-color:rgba(127,29,29,.4)}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700\\/50:hover{background-color:rgba(51,65,85,.5)}.hover\\:bg-slate-700\\/60:hover{background-color:rgba(51,65,85,.6)}.hover\\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover\\:bg-violet-800\\/30:hover{background-color:rgba(91,33,182,.3)}.hover\\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.hover\\:text-slate-300:hover{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.hover\\:text-violet-300:hover{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.hover\\:underline:hover{text-decoration-line:underline}.group\\/comment:hover .group-hover\\/comment\\:opacity-100{opacity:1}`;var nn='"use strict";(()=>{var _m=Object.create;var ld=Object.defineProperty;var qm=Object.getOwnPropertyDescriptor;var Wm=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,$m=Object.prototype.hasOwnProperty;var Zt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Gm=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Wm(t))!$m.call(e,o)&&o!==a&&ld(e,o,{get:()=>t[o],enumerable:!(r=qm(t,o))||r.enumerable});return e};var D=(e,t,a)=>(a=e!=null?_m(Vm(e)):{},Gm(t||!e||!e.__esModule?ld(a,"default",{value:e,enumerable:!0}):a,e));var vd=Zt(ne=>{"use strict";var go=Symbol.for("react.element"),Km=Symbol.for("react.portal"),jm=Symbol.for("react.fragment"),Xm=Symbol.for("react.strict_mode"),Qm=Symbol.for("react.profiler"),Ym=Symbol.for("react.provider"),Zm=Symbol.for("react.context"),Jm=Symbol.for("react.forward_ref"),eg=Symbol.for("react.suspense"),tg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),sd=Symbol.iterator;function rg(e){return e===null||typeof e!="object"?null:(e=sd&&e[sd]||e["@@iterator"],typeof e=="function"?e:null)}var dd={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},fd=Object.assign,cd={};function Pr(e,t,a){this.props=e,this.context=t,this.refs=cd,this.updater=a||dd}Pr.prototype.isReactComponent={};Pr.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")};Pr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function pd(){}pd.prototype=Pr.prototype;function Ls(e,t,a){this.props=e,this.context=t,this.refs=cd,this.updater=a||dd}var ys=Ls.prototype=new pd;ys.constructor=Ls;fd(ys,Pr.prototype);ys.isPureReactComponent=!0;var ud=Array.isArray,md=Object.prototype.hasOwnProperty,Ss={current:null},gd={key:!0,ref:!0,__self:!0,__source:!0};function hd(e,t,a){var r,o={},n=null,l=null;if(t!=null)for(r in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(n=""+t.key),t)md.call(t,r)&&!gd.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=a;else if(1<s){for(var u=Array(s),d=0;d<s;d++)u[d]=arguments[d+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)o[r]===void 0&&(o[r]=s[r]);return{$$typeof:go,type:e,key:n,ref:l,props:o,_owner:Ss.current}}function og(e,t){return{$$typeof:go,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Is(e){return typeof e=="object"&&e!==null&&e.$$typeof===go}function ng(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return t[a]})}var id=/\\/+/g;function vs(e,t){return typeof e=="object"&&e!==null&&e.key!=null?ng(""+e.key):t.toString(36)}function Fn(e,t,a,r,o){var n=typeof e;(n==="undefined"||n==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(n){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case go:case Km:l=!0}}if(l)return l=e,o=o(l),e=r===""?"."+vs(l,0):r,ud(o)?(a="",e!=null&&(a=e.replace(id,"$&/")+"/"),Fn(o,t,a,"",function(d){return d})):o!=null&&(Is(o)&&(o=og(o,a+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(id,"$&/")+"/")+e)),t.push(o)),1;if(l=0,r=r===""?".":r+":",ud(e))for(var s=0;s<e.length;s++){n=e[s];var u=r+vs(n,s);l+=Fn(n,t,a,u,o)}else if(u=rg(e),typeof u=="function")for(e=u.call(e),s=0;!(n=e.next()).done;)n=n.value,u=r+vs(n,s++),l+=Fn(n,t,a,u,o);else if(n==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function En(e,t,a){if(e==null)return e;var r=[],o=0;return Fn(e,r,"","",function(n){return t.call(a,n,o++)}),r}function lg(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(a){(e._status===0||e._status===-1)&&(e._status=1,e._result=a)},function(a){(e._status===0||e._status===-1)&&(e._status=2,e._result=a)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var je={current:null},Bn={transition:null},sg={ReactCurrentDispatcher:je,ReactCurrentBatchConfig:Bn,ReactCurrentOwner:Ss};function xd(){throw Error("act(...) is not supported in production builds of React.")}ne.Children={map:En,forEach:function(e,t,a){En(e,function(){t.apply(this,arguments)},a)},count:function(e){var t=0;return En(e,function(){t++}),t},toArray:function(e){return En(e,function(t){return t})||[]},only:function(e){if(!Is(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ne.Component=Pr;ne.Fragment=jm;ne.Profiler=Qm;ne.PureComponent=Ls;ne.StrictMode=Xm;ne.Suspense=eg;ne.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sg;ne.act=xd;ne.cloneElement=function(e,t,a){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=fd({},e.props),o=e.key,n=e.ref,l=e._owner;if(t!=null){if(t.ref!==void 0&&(n=t.ref,l=Ss.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)md.call(t,u)&&!gd.hasOwnProperty(u)&&(r[u]=t[u]===void 0&&s!==void 0?s[u]:t[u])}var u=arguments.length-2;if(u===1)r.children=a;else if(1<u){s=Array(u);for(var d=0;d<u;d++)s[d]=arguments[d+2];r.children=s}return{$$typeof:go,type:e.type,key:o,ref:n,props:r,_owner:l}};ne.createContext=function(e){return e={$$typeof:Zm,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Ym,_context:e},e.Consumer=e};ne.createElement=hd;ne.createFactory=function(e){var t=hd.bind(null,e);return t.type=e,t};ne.createRef=function(){return{current:null}};ne.forwardRef=function(e){return{$$typeof:Jm,render:e}};ne.isValidElement=Is;ne.lazy=function(e){return{$$typeof:ag,_payload:{_status:-1,_result:e},_init:lg}};ne.memo=function(e,t){return{$$typeof:tg,type:e,compare:t===void 0?null:t}};ne.startTransition=function(e){var t=Bn.transition;Bn.transition={};try{e()}finally{Bn.transition=t}};ne.unstable_act=xd;ne.useCallback=function(e,t){return je.current.useCallback(e,t)};ne.useContext=function(e){return je.current.useContext(e)};ne.useDebugValue=function(){};ne.useDeferredValue=function(e){return je.current.useDeferredValue(e)};ne.useEffect=function(e,t){return je.current.useEffect(e,t)};ne.useId=function(){return je.current.useId()};ne.useImperativeHandle=function(e,t,a){return je.current.useImperativeHandle(e,t,a)};ne.useInsertionEffect=function(e,t){return je.current.useInsertionEffect(e,t)};ne.useLayoutEffect=function(e,t){return je.current.useLayoutEffect(e,t)};ne.useMemo=function(e,t){return je.current.useMemo(e,t)};ne.useReducer=function(e,t,a){return je.current.useReducer(e,t,a)};ne.useRef=function(e){return je.current.useRef(e)};ne.useState=function(e){return je.current.useState(e)};ne.useSyncExternalStore=function(e,t,a){return je.current.useSyncExternalStore(e,t,a)};ne.useTransition=function(){return je.current.useTransition()};ne.version="18.3.1"});var Ie=Zt((fv,Ld)=>{"use strict";Ld.exports=vd()});var Rd=Zt(xe=>{"use strict";function bs(e,t){var a=e.length;e.push(t);e:for(;0<a;){var r=a-1>>>1,o=e[r];if(0<On(o,t))e[r]=t,e[a]=o,a=r;else break e}}function Pt(e){return e.length===0?null:e[0]}function Un(e){if(e.length===0)return null;var t=e[0],a=e.pop();if(a!==t){e[0]=a;e:for(var r=0,o=e.length,n=o>>>1;r<n;){var l=2*(r+1)-1,s=e[l],u=l+1,d=e[u];if(0>On(s,a))u<o&&0>On(d,s)?(e[r]=d,e[u]=a,r=u):(e[r]=s,e[l]=a,r=l);else if(u<o&&0>On(d,a))e[r]=d,e[u]=a,r=u;else break e}}return t}function On(e,t){var a=e.sortIndex-t.sortIndex;return a!==0?a:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(yd=performance,xe.unstable_now=function(){return yd.now()}):(Cs=Date,Sd=Cs.now(),xe.unstable_now=function(){return Cs.now()-Sd});var yd,Cs,Sd,_t=[],ca=[],ug=1,mt=null,qe=3,Nn=!1,ja=!1,xo=!1,wd=typeof setTimeout=="function"?setTimeout:null,kd=typeof clearTimeout=="function"?clearTimeout:null,Id=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ps(e){for(var t=Pt(ca);t!==null;){if(t.callback===null)Un(ca);else if(t.startTime<=e)Un(ca),t.sortIndex=t.expirationTime,bs(_t,t);else break;t=Pt(ca)}}function Ts(e){if(xo=!1,Ps(e),!ja)if(Pt(_t)!==null)ja=!0,Ds(Rs);else{var t=Pt(ca);t!==null&&As(Ts,t.startTime-e)}}function Rs(e,t){ja=!1,xo&&(xo=!1,kd(vo),vo=-1),Nn=!0;var a=qe;try{for(Ps(t),mt=Pt(_t);mt!==null&&(!(mt.expirationTime>t)||e&&!Td());){var r=mt.callback;if(typeof r=="function"){mt.callback=null,qe=mt.priorityLevel;var o=r(mt.expirationTime<=t);t=xe.unstable_now(),typeof o=="function"?mt.callback=o:mt===Pt(_t)&&Un(_t),Ps(t)}else Un(_t);mt=Pt(_t)}if(mt!==null)var n=!0;else{var l=Pt(ca);l!==null&&As(Ts,l.startTime-t),n=!1}return n}finally{mt=null,qe=a,Nn=!1}}var Hn=!1,zn=null,vo=-1,bd=5,Pd=-1;function Td(){return!(xe.unstable_now()-Pd<bd)}function ws(){if(zn!==null){var e=xe.unstable_now();Pd=e;var t=!0;try{t=zn(!0,e)}finally{t?ho():(Hn=!1,zn=null)}}else Hn=!1}var ho;typeof Id=="function"?ho=function(){Id(ws)}:typeof MessageChannel<"u"?(ks=new MessageChannel,Cd=ks.port2,ks.port1.onmessage=ws,ho=function(){Cd.postMessage(null)}):ho=function(){wd(ws,0)};var ks,Cd;function Ds(e){zn=e,Hn||(Hn=!0,ho())}function As(e,t){vo=wd(function(){e(xe.unstable_now())},t)}xe.unstable_IdlePriority=5;xe.unstable_ImmediatePriority=1;xe.unstable_LowPriority=4;xe.unstable_NormalPriority=3;xe.unstable_Profiling=null;xe.unstable_UserBlockingPriority=2;xe.unstable_cancelCallback=function(e){e.callback=null};xe.unstable_continueExecution=function(){ja||Nn||(ja=!0,Ds(Rs))};xe.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):bd=0<e?Math.floor(1e3/e):5};xe.unstable_getCurrentPriorityLevel=function(){return qe};xe.unstable_getFirstCallbackNode=function(){return Pt(_t)};xe.unstable_next=function(e){switch(qe){case 1:case 2:case 3:var t=3;break;default:t=qe}var a=qe;qe=t;try{return e()}finally{qe=a}};xe.unstable_pauseExecution=function(){};xe.unstable_requestPaint=function(){};xe.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var a=qe;qe=e;try{return t()}finally{qe=a}};xe.unstable_scheduleCallback=function(e,t,a){var r=xe.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?r+a:r):a=r,e){case 1:var o=-1;break;case 2:o=250;break;case 5:o=1073741823;break;case 4:o=1e4;break;default:o=5e3}return o=a+o,e={id:ug++,callback:t,priorityLevel:e,startTime:a,expirationTime:o,sortIndex:-1},a>r?(e.sortIndex=a,bs(ca,e),Pt(_t)===null&&e===Pt(ca)&&(xo?(kd(vo),vo=-1):xo=!0,As(Ts,a-r))):(e.sortIndex=o,bs(_t,e),ja||Nn||(ja=!0,Ds(Rs))),e};xe.unstable_shouldYield=Td;xe.unstable_wrapCallback=function(e){var t=qe;return function(){var a=qe;qe=t;try{return e.apply(this,arguments)}finally{qe=a}}}});var Ad=Zt((pv,Dd)=>{"use strict";Dd.exports=Rd()});var Op=Zt(ct=>{"use strict";var ig=Ie(),dt=Ad();function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Nf=new Set,Ho={};function sr(e,t){jr(e,t),jr(e+"Capture",t)}function jr(e,t){for(Ho[e]=t,e=0;e<t.length;e++)Nf.add(t[e])}var oa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),eu=Object.prototype.hasOwnProperty,dg=/^[: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]*$/,Md={},Ed={};function fg(e){return eu.call(Ed,e)?!0:eu.call(Md,e)?!1:dg.test(e)?Ed[e]=!0:(Md[e]=!0,!1)}function cg(e,t,a,r){if(a!==null&&a.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:a!==null?!a.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function pg(e,t,a,r){if(t===null||typeof t>"u"||cg(e,t,a,r))return!0;if(r)return!1;if(a!==null)switch(a.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 Ye(e,t,a,r,o,n,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=a,this.propertyName=e,this.type=t,this.sanitizeURL=n,this.removeEmptyString=l}var He={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){He[e]=new Ye(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];He[t]=new Ye(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){He[e]=new Ye(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){He[e]=new Ye(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){He[e]=new Ye(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){He[e]=new Ye(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){He[e]=new Ye(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){He[e]=new Ye(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){He[e]=new Ye(e,5,!1,e.toLowerCase(),null,!1,!1)});var Gu=/[\\-:]([a-z])/g;function Ku(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(Gu,Ku);He[t]=new Ye(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(Gu,Ku);He[t]=new Ye(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(Gu,Ku);He[t]=new Ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){He[e]=new Ye(e,1,!1,e.toLowerCase(),null,!1,!1)});He.xlinkHref=new Ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){He[e]=new Ye(e,1,!1,e.toLowerCase(),null,!0,!0)});function ju(e,t,a,r){var o=He.hasOwnProperty(t)?He[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(pg(t,a,o,r)&&(a=null),r||o===null?fg(t)&&(a===null?e.removeAttribute(t):e.setAttribute(t,""+a)):o.mustUseProperty?e[o.propertyName]=a===null?o.type===3?!1:"":a:(t=o.attributeName,r=o.attributeNamespace,a===null?e.removeAttribute(t):(o=o.type,a=o===3||o===4&&a===!0?"":""+a,r?e.setAttributeNS(r,t,a):e.setAttribute(t,a))))}var ua=ig.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n=Symbol.for("react.element"),Dr=Symbol.for("react.portal"),Ar=Symbol.for("react.fragment"),Xu=Symbol.for("react.strict_mode"),tu=Symbol.for("react.profiler"),Hf=Symbol.for("react.provider"),_f=Symbol.for("react.context"),Qu=Symbol.for("react.forward_ref"),au=Symbol.for("react.suspense"),ru=Symbol.for("react.suspense_list"),Yu=Symbol.for("react.memo"),ma=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode");var qf=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var Fd=Symbol.iterator;function Lo(e){return e===null||typeof e!="object"?null:(e=Fd&&e[Fd]||e["@@iterator"],typeof e=="function"?e:null)}var be=Object.assign,Ms;function Po(e){if(Ms===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\\n( *(at )?)/);Ms=t&&t[1]||""}return`\n`+Ms+e}var Es=!1;function Fs(e,t){if(!e||Es)return"";Es=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var o=d.stack.split(`\n`),n=r.stack.split(`\n`),l=o.length-1,s=n.length-1;1<=l&&0<=s&&o[l]!==n[s];)s--;for(;1<=l&&0<=s;l--,s--)if(o[l]!==n[s]){if(l!==1||s!==1)do if(l--,s--,0>s||o[l]!==n[s]){var u=`\n`+o[l].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=l&&0<=s);break}}}finally{Es=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?Po(e):""}function mg(e){switch(e.tag){case 5:return Po(e.type);case 16:return Po("Lazy");case 13:return Po("Suspense");case 19:return Po("SuspenseList");case 0:case 2:case 15:return e=Fs(e.type,!1),e;case 11:return e=Fs(e.type.render,!1),e;case 1:return e=Fs(e.type,!0),e;default:return""}}function ou(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 Ar:return"Fragment";case Dr:return"Portal";case tu:return"Profiler";case Xu:return"StrictMode";case au:return"Suspense";case ru:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _f:return(e.displayName||"Context")+".Consumer";case Hf:return(e._context.displayName||"Context")+".Provider";case Qu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Yu:return t=e.displayName||null,t!==null?t:ou(e.type)||"Memo";case ma:t=e._payload,e=e._init;try{return ou(e(t))}catch{}}return null}function gg(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 ou(t);case 8:return t===Xu?"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 Ta(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Wf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function hg(e){var t=Wf(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var o=a.get,n=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(l){r=""+l,n.call(this,l)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function qn(e){e._valueTracker||(e._valueTracker=hg(e))}function Vf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),r="";return e&&(r=Wf(e)?e.checked?"true":"false":e.value),e=r,e!==a?(t.setValue(e),!0):!1}function hl(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 nu(e,t){var a=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??e._wrapperState.initialChecked})}function Bd(e,t){var a=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;a=Ta(t.value!=null?t.value:a),e._wrapperState={initialChecked:r,initialValue:a,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function $f(e,t){t=t.checked,t!=null&&ju(e,"checked",t,!1)}function lu(e,t){$f(e,t);var a=Ta(t.value),r=t.type;if(a!=null)r==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?su(e,t.type,a):t.hasOwnProperty("defaultValue")&&su(e,t.type,Ta(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Od(e,t,a){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,a||t===e.value||(e.value=t),e.defaultValue=t}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function su(e,t,a){(t!=="number"||hl(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var To=Array.isArray;function qr(e,t,a,r){if(e=e.options,t){t={};for(var o=0;o<a.length;o++)t["$"+a[o]]=!0;for(a=0;a<e.length;a++)o=t.hasOwnProperty("$"+e[a].value),e[a].selected!==o&&(e[a].selected=o),o&&r&&(e[a].defaultSelected=!0)}else{for(a=""+Ta(a),t=null,o=0;o<e.length;o++){if(e[o].value===a){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function uu(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(P(91));return be({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function zd(e,t){var a=t.value;if(a==null){if(a=t.children,t=t.defaultValue,a!=null){if(t!=null)throw Error(P(92));if(To(a)){if(1<a.length)throw Error(P(93));a=a[0]}t=a}t==null&&(t=""),a=t}e._wrapperState={initialValue:Ta(a)}}function Gf(e,t){var a=Ta(t.value),r=Ta(t.defaultValue);a!=null&&(a=""+a,a!==e.value&&(e.value=a),t.defaultValue==null&&e.defaultValue!==a&&(e.defaultValue=a)),r!=null&&(e.defaultValue=""+r)}function Ud(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Kf(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function iu(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Kf(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Wn,jf=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,a,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,a,r,o)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Wn=Wn||document.createElement("div"),Wn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Wn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function _o(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var Ao={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},xg=["Webkit","ms","Moz","O"];Object.keys(Ao).forEach(function(e){xg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ao[t]=Ao[e]})});function Xf(e,t,a){return t==null||typeof t=="boolean"||t===""?"":a||typeof t!="number"||t===0||Ao.hasOwnProperty(e)&&Ao[e]?(""+t).trim():t+"px"}function Qf(e,t){e=e.style;for(var a in t)if(t.hasOwnProperty(a)){var r=a.indexOf("--")===0,o=Xf(a,t[a],r);a==="float"&&(a="cssFloat"),r?e.setProperty(a,o):e[a]=o}}var vg=be({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 du(e,t){if(t){if(vg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function fu(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 cu=null;function Zu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pu=null,Wr=null,Vr=null;function Nd(e){if(e=nn(e)){if(typeof pu!="function")throw Error(P(280));var t=e.stateNode;t&&(t=Vl(t),pu(e.stateNode,e.type,t))}}function Yf(e){Wr?Vr?Vr.push(e):Vr=[e]:Wr=e}function Zf(){if(Wr){var e=Wr,t=Vr;if(Vr=Wr=null,Nd(e),t)for(e=0;e<t.length;e++)Nd(t[e])}}function Jf(e,t){return e(t)}function ec(){}var Bs=!1;function tc(e,t,a){if(Bs)return e(t,a);Bs=!0;try{return Jf(e,t,a)}finally{Bs=!1,(Wr!==null||Vr!==null)&&(ec(),Zf())}}function qo(e,t){var a=e.stateNode;if(a===null)return null;var r=Vl(a);if(r===null)return null;a=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(P(231,t,typeof a));return a}var mu=!1;if(oa)try{Tr={},Object.defineProperty(Tr,"passive",{get:function(){mu=!0}}),window.addEventListener("test",Tr,Tr),window.removeEventListener("test",Tr,Tr)}catch{mu=!1}var Tr;function Lg(e,t,a,r,o,n,l,s,u){var d=Array.prototype.slice.call(arguments,3);try{t.apply(a,d)}catch(g){this.onError(g)}}var Mo=!1,xl=null,vl=!1,gu=null,yg={onError:function(e){Mo=!0,xl=e}};function Sg(e,t,a,r,o,n,l,s,u){Mo=!1,xl=null,Lg.apply(yg,arguments)}function Ig(e,t,a,r,o,n,l,s,u){if(Sg.apply(this,arguments),Mo){if(Mo){var d=xl;Mo=!1,xl=null}else throw Error(P(198));vl||(vl=!0,gu=d)}}function ur(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function ac(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Hd(e){if(ur(e)!==e)throw Error(P(188))}function Cg(e){var t=e.alternate;if(!t){if(t=ur(e),t===null)throw Error(P(188));return t!==e?null:e}for(var a=e,r=t;;){var o=a.return;if(o===null)break;var n=o.alternate;if(n===null){if(r=o.return,r!==null){a=r;continue}break}if(o.child===n.child){for(n=o.child;n;){if(n===a)return Hd(o),e;if(n===r)return Hd(o),t;n=n.sibling}throw Error(P(188))}if(a.return!==r.return)a=o,r=n;else{for(var l=!1,s=o.child;s;){if(s===a){l=!0,a=o,r=n;break}if(s===r){l=!0,r=o,a=n;break}s=s.sibling}if(!l){for(s=n.child;s;){if(s===a){l=!0,a=n,r=o;break}if(s===r){l=!0,r=n,a=o;break}s=s.sibling}if(!l)throw Error(P(189))}}if(a.alternate!==r)throw Error(P(190))}if(a.tag!==3)throw Error(P(188));return a.stateNode.current===a?e:t}function rc(e){return e=Cg(e),e!==null?oc(e):null}function oc(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=oc(e);if(t!==null)return t;e=e.sibling}return null}var nc=dt.unstable_scheduleCallback,_d=dt.unstable_cancelCallback,wg=dt.unstable_shouldYield,kg=dt.unstable_requestPaint,Te=dt.unstable_now,bg=dt.unstable_getCurrentPriorityLevel,Ju=dt.unstable_ImmediatePriority,lc=dt.unstable_UserBlockingPriority,Ll=dt.unstable_NormalPriority,Pg=dt.unstable_LowPriority,sc=dt.unstable_IdlePriority,Hl=null,$t=null;function Tg(e){if($t&&typeof $t.onCommitFiberRoot=="function")try{$t.onCommitFiberRoot(Hl,e,void 0,(e.current.flags&128)===128)}catch{}}var Mt=Math.clz32?Math.clz32:Ag,Rg=Math.log,Dg=Math.LN2;function Ag(e){return e>>>=0,e===0?32:31-(Rg(e)/Dg|0)|0}var Vn=64,$n=4194304;function Ro(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 yl(e,t){var a=e.pendingLanes;if(a===0)return 0;var r=0,o=e.suspendedLanes,n=e.pingedLanes,l=a&268435455;if(l!==0){var s=l&~o;s!==0?r=Ro(s):(n&=l,n!==0&&(r=Ro(n)))}else l=a&~o,l!==0?r=Ro(l):n!==0&&(r=Ro(n));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,n=t&-t,o>=n||o===16&&(n&4194240)!==0))return t;if((r&4)!==0&&(r|=a&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)a=31-Mt(t),o=1<<a,r|=e[a],t&=~o;return r}function Mg(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Eg(e,t){for(var a=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,n=e.pendingLanes;0<n;){var l=31-Mt(n),s=1<<l,u=o[l];u===-1?((s&a)===0||(s&r)!==0)&&(o[l]=Mg(s,t)):u<=t&&(e.expiredLanes|=s),n&=~s}}function hu(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function uc(){var e=Vn;return Vn<<=1,(Vn&4194240)===0&&(Vn=64),e}function Os(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function rn(e,t,a){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mt(t),e[t]=a}function Fg(e,t){var a=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<a;){var o=31-Mt(a),n=1<<o;t[o]=0,r[o]=-1,e[o]=-1,a&=~n}}function ei(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var r=31-Mt(a),o=1<<r;o&t|e[r]&t&&(e[r]|=t),a&=~o}}var pe=0;function ic(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var dc,ti,fc,cc,pc,xu=!1,Gn=[],ya=null,Sa=null,Ia=null,Wo=new Map,Vo=new Map,ha=[],Bg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function qd(e,t){switch(e){case"focusin":case"focusout":ya=null;break;case"dragenter":case"dragleave":Sa=null;break;case"mouseover":case"mouseout":Ia=null;break;case"pointerover":case"pointerout":Wo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Vo.delete(t.pointerId)}}function yo(e,t,a,r,o,n){return e===null||e.nativeEvent!==n?(e={blockedOn:t,domEventName:a,eventSystemFlags:r,nativeEvent:n,targetContainers:[o]},t!==null&&(t=nn(t),t!==null&&ti(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function Og(e,t,a,r,o){switch(t){case"focusin":return ya=yo(ya,e,t,a,r,o),!0;case"dragenter":return Sa=yo(Sa,e,t,a,r,o),!0;case"mouseover":return Ia=yo(Ia,e,t,a,r,o),!0;case"pointerover":var n=o.pointerId;return Wo.set(n,yo(Wo.get(n)||null,e,t,a,r,o)),!0;case"gotpointercapture":return n=o.pointerId,Vo.set(n,yo(Vo.get(n)||null,e,t,a,r,o)),!0}return!1}function mc(e){var t=Ya(e.target);if(t!==null){var a=ur(t);if(a!==null){if(t=a.tag,t===13){if(t=ac(a),t!==null){e.blockedOn=t,pc(e.priority,function(){fc(a)});return}}else if(t===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ll(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=vu(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var r=new a.constructor(a.type,a);cu=r,a.target.dispatchEvent(r),cu=null}else return t=nn(a),t!==null&&ti(t),e.blockedOn=a,!1;t.shift()}return!0}function Wd(e,t,a){ll(e)&&a.delete(t)}function zg(){xu=!1,ya!==null&&ll(ya)&&(ya=null),Sa!==null&&ll(Sa)&&(Sa=null),Ia!==null&&ll(Ia)&&(Ia=null),Wo.forEach(Wd),Vo.forEach(Wd)}function So(e,t){e.blockedOn===t&&(e.blockedOn=null,xu||(xu=!0,dt.unstable_scheduleCallback(dt.unstable_NormalPriority,zg)))}function $o(e){function t(o){return So(o,e)}if(0<Gn.length){So(Gn[0],e);for(var a=1;a<Gn.length;a++){var r=Gn[a];r.blockedOn===e&&(r.blockedOn=null)}}for(ya!==null&&So(ya,e),Sa!==null&&So(Sa,e),Ia!==null&&So(Ia,e),Wo.forEach(t),Vo.forEach(t),a=0;a<ha.length;a++)r=ha[a],r.blockedOn===e&&(r.blockedOn=null);for(;0<ha.length&&(a=ha[0],a.blockedOn===null);)mc(a),a.blockedOn===null&&ha.shift()}var $r=ua.ReactCurrentBatchConfig,Sl=!0;function Ug(e,t,a,r){var o=pe,n=$r.transition;$r.transition=null;try{pe=1,ai(e,t,a,r)}finally{pe=o,$r.transition=n}}function Ng(e,t,a,r){var o=pe,n=$r.transition;$r.transition=null;try{pe=4,ai(e,t,a,r)}finally{pe=o,$r.transition=n}}function ai(e,t,a,r){if(Sl){var o=vu(e,t,a,r);if(o===null)Ws(e,t,r,Il,a),qd(e,r);else if(Og(o,e,t,a,r))r.stopPropagation();else if(qd(e,r),t&4&&-1<Bg.indexOf(e)){for(;o!==null;){var n=nn(o);if(n!==null&&dc(n),n=vu(e,t,a,r),n===null&&Ws(e,t,r,Il,a),n===o)break;o=n}o!==null&&r.stopPropagation()}else Ws(e,t,r,null,a)}}var Il=null;function vu(e,t,a,r){if(Il=null,e=Zu(r),e=Ya(e),e!==null)if(t=ur(e),t===null)e=null;else if(a=t.tag,a===13){if(e=ac(t),e!==null)return e;e=null}else if(a===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Il=e,null}function gc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(bg()){case Ju:return 1;case lc:return 4;case Ll:case Pg:return 16;case sc:return 536870912;default:return 16}default:return 16}}var va=null,ri=null,sl=null;function hc(){if(sl)return sl;var e,t=ri,a=t.length,r,o="value"in va?va.value:va.textContent,n=o.length;for(e=0;e<a&&t[e]===o[e];e++);var l=a-e;for(r=1;r<=l&&t[a-r]===o[n-r];r++);return sl=o.slice(e,1<r?1-r:void 0)}function ul(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Kn(){return!0}function Vd(){return!1}function ft(e){function t(a,r,o,n,l){this._reactName=a,this._targetInst=o,this.type=r,this.nativeEvent=n,this.target=l,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(a=e[s],this[s]=a?a(n):n[s]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?Kn:Vd,this.isPropagationStopped=Vd,this}return be(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=Kn)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Kn)},persist:function(){},isPersistent:Kn}),t}var to={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},oi=ft(to),on=be({},to,{view:0,detail:0}),Hg=ft(on),zs,Us,Io,_l=be({},on,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ni,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Io&&(Io&&e.type==="mousemove"?(zs=e.screenX-Io.screenX,Us=e.screenY-Io.screenY):Us=zs=0,Io=e),zs)},movementY:function(e){return"movementY"in e?e.movementY:Us}}),$d=ft(_l),_g=be({},_l,{dataTransfer:0}),qg=ft(_g),Wg=be({},on,{relatedTarget:0}),Ns=ft(Wg),Vg=be({},to,{animationName:0,elapsedTime:0,pseudoElement:0}),$g=ft(Vg),Gg=be({},to,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Kg=ft(Gg),jg=be({},to,{data:0}),Gd=ft(jg),Xg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Qg={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Yg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Yg[e])?!!t[e]:!1}function ni(){return Zg}var Jg=be({},on,{key:function(e){if(e.key){var t=Xg[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ul(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Qg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ni,charCode:function(e){return e.type==="keypress"?ul(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ul(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),eh=ft(Jg),th=be({},_l,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Kd=ft(th),ah=be({},on,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ni}),rh=ft(ah),oh=be({},to,{propertyName:0,elapsedTime:0,pseudoElement:0}),nh=ft(oh),lh=be({},_l,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),sh=ft(lh),uh=[9,13,27,32],li=oa&&"CompositionEvent"in window,Eo=null;oa&&"documentMode"in document&&(Eo=document.documentMode);var ih=oa&&"TextEvent"in window&&!Eo,xc=oa&&(!li||Eo&&8<Eo&&11>=Eo),jd=" ",Xd=!1;function vc(e,t){switch(e){case"keyup":return uh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Lc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Mr=!1;function dh(e,t){switch(e){case"compositionend":return Lc(t);case"keypress":return t.which!==32?null:(Xd=!0,jd);case"textInput":return e=t.data,e===jd&&Xd?null:e;default:return null}}function fh(e,t){if(Mr)return e==="compositionend"||!li&&vc(e,t)?(e=hc(),sl=ri=va=null,Mr=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return xc&&t.locale!=="ko"?null:t.data;default:return null}}var ch={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Qd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!ch[e.type]:t==="textarea"}function yc(e,t,a,r){Yf(r),t=Cl(t,"onChange"),0<t.length&&(a=new oi("onChange","change",null,a,r),e.push({event:a,listeners:t}))}var Fo=null,Go=null;function ph(e){Ac(e,0)}function ql(e){var t=Br(e);if(Vf(t))return e}function mh(e,t){if(e==="change")return t}var Sc=!1;oa&&(oa?(Xn="oninput"in document,Xn||(Hs=document.createElement("div"),Hs.setAttribute("oninput","return;"),Xn=typeof Hs.oninput=="function"),jn=Xn):jn=!1,Sc=jn&&(!document.documentMode||9<document.documentMode));var jn,Xn,Hs;function Yd(){Fo&&(Fo.detachEvent("onpropertychange",Ic),Go=Fo=null)}function Ic(e){if(e.propertyName==="value"&&ql(Go)){var t=[];yc(t,Go,e,Zu(e)),tc(ph,t)}}function gh(e,t,a){e==="focusin"?(Yd(),Fo=t,Go=a,Fo.attachEvent("onpropertychange",Ic)):e==="focusout"&&Yd()}function hh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ql(Go)}function xh(e,t){if(e==="click")return ql(t)}function vh(e,t){if(e==="input"||e==="change")return ql(t)}function Lh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Ft=typeof Object.is=="function"?Object.is:Lh;function Ko(e,t){if(Ft(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(r=0;r<a.length;r++){var o=a[r];if(!eu.call(t,o)||!Ft(e[o],t[o]))return!1}return!0}function Zd(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Jd(e,t){var a=Zd(e);e=0;for(var r;a;){if(a.nodeType===3){if(r=e+a.textContent.length,e<=t&&r>=t)return{node:a,offset:t-e};e=r}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Zd(a)}}function Cc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wc(){for(var e=window,t=hl();t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=hl(e.document)}return t}function si(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 yh(e){var t=wc(),a=e.focusedElem,r=e.selectionRange;if(t!==a&&a&&a.ownerDocument&&Cc(a.ownerDocument.documentElement,a)){if(r!==null&&si(a)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in a)a.selectionStart=t,a.selectionEnd=Math.min(e,a.value.length);else if(e=(t=a.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=a.textContent.length,n=Math.min(r.start,o);r=r.end===void 0?n:Math.min(r.end,o),!e.extend&&n>r&&(o=r,r=n,n=o),o=Jd(a,n);var l=Jd(a,r);o&&l&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),n>r?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=a;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<t.length;a++)e=t[a],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Sh=oa&&"documentMode"in document&&11>=document.documentMode,Er=null,Lu=null,Bo=null,yu=!1;function ef(e,t,a){var r=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;yu||Er==null||Er!==hl(r)||(r=Er,"selectionStart"in r&&si(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}),Bo&&Ko(Bo,r)||(Bo=r,r=Cl(Lu,"onSelect"),0<r.length&&(t=new oi("onSelect","select",null,t,a),e.push({event:t,listeners:r}),t.target=Er)))}function Qn(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var Fr={animationend:Qn("Animation","AnimationEnd"),animationiteration:Qn("Animation","AnimationIteration"),animationstart:Qn("Animation","AnimationStart"),transitionend:Qn("Transition","TransitionEnd")},_s={},kc={};oa&&(kc=document.createElement("div").style,"AnimationEvent"in window||(delete Fr.animationend.animation,delete Fr.animationiteration.animation,delete Fr.animationstart.animation),"TransitionEvent"in window||delete Fr.transitionend.transition);function Wl(e){if(_s[e])return _s[e];if(!Fr[e])return e;var t=Fr[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in kc)return _s[e]=t[a];return e}var bc=Wl("animationend"),Pc=Wl("animationiteration"),Tc=Wl("animationstart"),Rc=Wl("transitionend"),Dc=new Map,tf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Da(e,t){Dc.set(e,t),sr(t,[e])}for(Yn=0;Yn<tf.length;Yn++)Zn=tf[Yn],af=Zn.toLowerCase(),rf=Zn[0].toUpperCase()+Zn.slice(1),Da(af,"on"+rf);var Zn,af,rf,Yn;Da(bc,"onAnimationEnd");Da(Pc,"onAnimationIteration");Da(Tc,"onAnimationStart");Da("dblclick","onDoubleClick");Da("focusin","onFocus");Da("focusout","onBlur");Da(Rc,"onTransitionEnd");jr("onMouseEnter",["mouseout","mouseover"]);jr("onMouseLeave",["mouseout","mouseover"]);jr("onPointerEnter",["pointerout","pointerover"]);jr("onPointerLeave",["pointerout","pointerover"]);sr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));sr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));sr("onBeforeInput",["compositionend","keypress","textInput","paste"]);sr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));sr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));sr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Do="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ih=new Set("cancel close invalid load scroll toggle".split(" ").concat(Do));function of(e,t,a){var r=e.type||"unknown-event";e.currentTarget=a,Ig(r,t,void 0,e),e.currentTarget=null}function Ac(e,t){t=(t&4)!==0;for(var a=0;a<e.length;a++){var r=e[a],o=r.event;r=r.listeners;e:{var n=void 0;if(t)for(var l=r.length-1;0<=l;l--){var s=r[l],u=s.instance,d=s.currentTarget;if(s=s.listener,u!==n&&o.isPropagationStopped())break e;of(o,s,d),n=u}else for(l=0;l<r.length;l++){if(s=r[l],u=s.instance,d=s.currentTarget,s=s.listener,u!==n&&o.isPropagationStopped())break e;of(o,s,d),n=u}}}if(vl)throw e=gu,vl=!1,gu=null,e}function ye(e,t){var a=t[ku];a===void 0&&(a=t[ku]=new Set);var r=e+"__bubble";a.has(r)||(Mc(t,e,2,!1),a.add(r))}function qs(e,t,a){var r=0;t&&(r|=4),Mc(a,e,r,t)}var Jn="_reactListening"+Math.random().toString(36).slice(2);function jo(e){if(!e[Jn]){e[Jn]=!0,Nf.forEach(function(a){a!=="selectionchange"&&(Ih.has(a)||qs(a,!1,e),qs(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Jn]||(t[Jn]=!0,qs("selectionchange",!1,t))}}function Mc(e,t,a,r){switch(gc(t)){case 1:var o=Ug;break;case 4:o=Ng;break;default:o=ai}a=o.bind(null,t,a,e),o=void 0,!mu||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,a,{capture:!0,passive:o}):e.addEventListener(t,a,!0):o!==void 0?e.addEventListener(t,a,{passive:o}):e.addEventListener(t,a,!1)}function Ws(e,t,a,r,o){var n=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var l=r.tag;if(l===3||l===4){var s=r.stateNode.containerInfo;if(s===o||s.nodeType===8&&s.parentNode===o)break;if(l===4)for(l=r.return;l!==null;){var u=l.tag;if((u===3||u===4)&&(u=l.stateNode.containerInfo,u===o||u.nodeType===8&&u.parentNode===o))return;l=l.return}for(;s!==null;){if(l=Ya(s),l===null)return;if(u=l.tag,u===5||u===6){r=n=l;continue e}s=s.parentNode}}r=r.return}tc(function(){var d=n,g=Zu(a),h=[];e:{var m=Dc.get(e);if(m!==void 0){var L=oi,y=e;switch(e){case"keypress":if(ul(a)===0)break e;case"keydown":case"keyup":L=eh;break;case"focusin":y="focus",L=Ns;break;case"focusout":y="blur",L=Ns;break;case"beforeblur":case"afterblur":L=Ns;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":L=$d;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":L=qg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":L=rh;break;case bc:case Pc:case Tc:L=$g;break;case Rc:L=nh;break;case"scroll":L=Hg;break;case"wheel":L=sh;break;case"copy":case"cut":case"paste":L=Kg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":L=Kd}var I=(t&4)!==0,U=!I&&e==="scroll",c=I?m!==null?m+"Capture":null:m;I=[];for(var i=d,f;i!==null;){f=i;var v=f.stateNode;if(f.tag===5&&v!==null&&(f=v,c!==null&&(v=qo(i,c),v!=null&&I.push(Xo(i,v,f)))),U)break;i=i.return}0<I.length&&(m=new L(m,y,null,a,g),h.push({event:m,listeners:I}))}}if((t&7)===0){e:{if(m=e==="mouseover"||e==="pointerover",L=e==="mouseout"||e==="pointerout",m&&a!==cu&&(y=a.relatedTarget||a.fromElement)&&(Ya(y)||y[na]))break e;if((L||m)&&(m=g.window===g?g:(m=g.ownerDocument)?m.defaultView||m.parentWindow:window,L?(y=a.relatedTarget||a.toElement,L=d,y=y?Ya(y):null,y!==null&&(U=ur(y),y!==U||y.tag!==5&&y.tag!==6)&&(y=null)):(L=null,y=d),L!==y)){if(I=$d,v="onMouseLeave",c="onMouseEnter",i="mouse",(e==="pointerout"||e==="pointerover")&&(I=Kd,v="onPointerLeave",c="onPointerEnter",i="pointer"),U=L==null?m:Br(L),f=y==null?m:Br(y),m=new I(v,i+"leave",L,a,g),m.target=U,m.relatedTarget=f,v=null,Ya(g)===d&&(I=new I(c,i+"enter",y,a,g),I.target=f,I.relatedTarget=U,v=I),U=v,L&&y)t:{for(I=L,c=y,i=0,f=I;f;f=Rr(f))i++;for(f=0,v=c;v;v=Rr(v))f++;for(;0<i-f;)I=Rr(I),i--;for(;0<f-i;)c=Rr(c),f--;for(;i--;){if(I===c||c!==null&&I===c.alternate)break t;I=Rr(I),c=Rr(c)}I=null}else I=null;L!==null&&nf(h,m,L,I,!1),y!==null&&U!==null&&nf(h,U,y,I,!0)}}e:{if(m=d?Br(d):window,L=m.nodeName&&m.nodeName.toLowerCase(),L==="select"||L==="input"&&m.type==="file")var w=mh;else if(Qd(m))if(Sc)w=vh;else{w=hh;var k=gh}else(L=m.nodeName)&&L.toLowerCase()==="input"&&(m.type==="checkbox"||m.type==="radio")&&(w=xh);if(w&&(w=w(e,d))){yc(h,w,a,g);break e}k&&k(e,m,d),e==="focusout"&&(k=m._wrapperState)&&k.controlled&&m.type==="number"&&su(m,"number",m.value)}switch(k=d?Br(d):window,e){case"focusin":(Qd(k)||k.contentEditable==="true")&&(Er=k,Lu=d,Bo=null);break;case"focusout":Bo=Lu=Er=null;break;case"mousedown":yu=!0;break;case"contextmenu":case"mouseup":case"dragend":yu=!1,ef(h,a,g);break;case"selectionchange":if(Sh)break;case"keydown":case"keyup":ef(h,a,g)}var p;if(li)e:{switch(e){case"compositionstart":var S="onCompositionStart";break e;case"compositionend":S="onCompositionEnd";break e;case"compositionupdate":S="onCompositionUpdate";break e}S=void 0}else Mr?vc(e,a)&&(S="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(S="onCompositionStart");S&&(xc&&a.locale!=="ko"&&(Mr||S!=="onCompositionStart"?S==="onCompositionEnd"&&Mr&&(p=hc()):(va=g,ri="value"in va?va.value:va.textContent,Mr=!0)),k=Cl(d,S),0<k.length&&(S=new Gd(S,e,null,a,g),h.push({event:S,listeners:k}),p?S.data=p:(p=Lc(a),p!==null&&(S.data=p)))),(p=ih?dh(e,a):fh(e,a))&&(d=Cl(d,"onBeforeInput"),0<d.length&&(g=new Gd("onBeforeInput","beforeinput",null,a,g),h.push({event:g,listeners:d}),g.data=p))}Ac(h,t)})}function Xo(e,t,a){return{instance:e,listener:t,currentTarget:a}}function Cl(e,t){for(var a=t+"Capture",r=[];e!==null;){var o=e,n=o.stateNode;o.tag===5&&n!==null&&(o=n,n=qo(e,a),n!=null&&r.unshift(Xo(e,n,o)),n=qo(e,t),n!=null&&r.push(Xo(e,n,o))),e=e.return}return r}function Rr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function nf(e,t,a,r,o){for(var n=t._reactName,l=[];a!==null&&a!==r;){var s=a,u=s.alternate,d=s.stateNode;if(u!==null&&u===r)break;s.tag===5&&d!==null&&(s=d,o?(u=qo(a,n),u!=null&&l.unshift(Xo(a,u,s))):o||(u=qo(a,n),u!=null&&l.push(Xo(a,u,s)))),a=a.return}l.length!==0&&e.push({event:t,listeners:l})}var Ch=/\\r\\n?/g,wh=/\\u0000|\\uFFFD/g;function lf(e){return(typeof e=="string"?e:""+e).replace(Ch,`\n`).replace(wh,"")}function el(e,t,a){if(t=lf(t),lf(e)!==t&&a)throw Error(P(425))}function wl(){}var Su=null,Iu=null;function Cu(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var wu=typeof setTimeout=="function"?setTimeout:void 0,kh=typeof clearTimeout=="function"?clearTimeout:void 0,sf=typeof Promise=="function"?Promise:void 0,bh=typeof queueMicrotask=="function"?queueMicrotask:typeof sf<"u"?function(e){return sf.resolve(null).then(e).catch(Ph)}:wu;function Ph(e){setTimeout(function(){throw e})}function Vs(e,t){var a=t,r=0;do{var o=a.nextSibling;if(e.removeChild(a),o&&o.nodeType===8)if(a=o.data,a==="/$"){if(r===0){e.removeChild(o),$o(t);return}r--}else a!=="$"&&a!=="$?"&&a!=="$!"||r++;a=o}while(a);$o(t)}function Ca(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function uf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"){if(t===0)return e;t--}else a==="/$"&&t++}e=e.previousSibling}return null}var ao=Math.random().toString(36).slice(2),Vt="__reactFiber$"+ao,Qo="__reactProps$"+ao,na="__reactContainer$"+ao,ku="__reactEvents$"+ao,Th="__reactListeners$"+ao,Rh="__reactHandles$"+ao;function Ya(e){var t=e[Vt];if(t)return t;for(var a=e.parentNode;a;){if(t=a[na]||a[Vt]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=uf(e);e!==null;){if(a=e[Vt])return a;e=uf(e)}return t}e=a,a=e.parentNode}return null}function nn(e){return e=e[Vt]||e[na],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Br(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(P(33))}function Vl(e){return e[Qo]||null}var bu=[],Or=-1;function Aa(e){return{current:e}}function Se(e){0>Or||(e.current=bu[Or],bu[Or]=null,Or--)}function ve(e,t){Or++,bu[Or]=e.current,e.current=t}var Ra={},Ge=Aa(Ra),at=Aa(!1),ar=Ra;function Xr(e,t){var a=e.type.contextTypes;if(!a)return Ra;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},n;for(n in a)o[n]=t[n];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function rt(e){return e=e.childContextTypes,e!=null}function kl(){Se(at),Se(Ge)}function df(e,t,a){if(Ge.current!==Ra)throw Error(P(168));ve(Ge,t),ve(at,a)}function Ec(e,t,a){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return a;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(P(108,gg(e)||"Unknown",o));return be({},a,r)}function bl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ra,ar=Ge.current,ve(Ge,e),ve(at,at.current),!0}function ff(e,t,a){var r=e.stateNode;if(!r)throw Error(P(169));a?(e=Ec(e,t,ar),r.__reactInternalMemoizedMergedChildContext=e,Se(at),Se(Ge),ve(Ge,e)):Se(at),ve(at,a)}var ea=null,$l=!1,$s=!1;function Fc(e){ea===null?ea=[e]:ea.push(e)}function Dh(e){$l=!0,Fc(e)}function Ma(){if(!$s&&ea!==null){$s=!0;var e=0,t=pe;try{var a=ea;for(pe=1;e<a.length;e++){var r=a[e];do r=r(!0);while(r!==null)}ea=null,$l=!1}catch(o){throw ea!==null&&(ea=ea.slice(e+1)),nc(Ju,Ma),o}finally{pe=t,$s=!1}}return null}var zr=[],Ur=0,Pl=null,Tl=0,gt=[],ht=0,rr=null,ta=1,aa="";function Xa(e,t){zr[Ur++]=Tl,zr[Ur++]=Pl,Pl=e,Tl=t}function Bc(e,t,a){gt[ht++]=ta,gt[ht++]=aa,gt[ht++]=rr,rr=e;var r=ta;e=aa;var o=32-Mt(r)-1;r&=~(1<<o),a+=1;var n=32-Mt(t)+o;if(30<n){var l=o-o%5;n=(r&(1<<l)-1).toString(32),r>>=l,o-=l,ta=1<<32-Mt(t)+o|a<<o|r,aa=n+e}else ta=1<<n|a<<o|r,aa=e}function ui(e){e.return!==null&&(Xa(e,1),Bc(e,1,0))}function ii(e){for(;e===Pl;)Pl=zr[--Ur],zr[Ur]=null,Tl=zr[--Ur],zr[Ur]=null;for(;e===rr;)rr=gt[--ht],gt[ht]=null,aa=gt[--ht],gt[ht]=null,ta=gt[--ht],gt[ht]=null}var it=null,ut=null,Ce=!1,At=null;function Oc(e,t){var a=xt(5,null,null,0);a.elementType="DELETED",a.stateNode=t,a.return=e,t=e.deletions,t===null?(e.deletions=[a],e.flags|=16):t.push(a)}function cf(e,t){switch(e.tag){case 5:var a=e.type;return t=t.nodeType!==1||a.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,it=e,ut=Ca(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,it=e,ut=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(a=rr!==null?{id:ta,overflow:aa}:null,e.memoizedState={dehydrated:t,treeContext:a,retryLane:1073741824},a=xt(18,null,null,0),a.stateNode=t,a.return=e,e.child=a,it=e,ut=null,!0):!1;default:return!1}}function Pu(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Tu(e){if(Ce){var t=ut;if(t){var a=t;if(!cf(e,t)){if(Pu(e))throw Error(P(418));t=Ca(a.nextSibling);var r=it;t&&cf(e,t)?Oc(r,a):(e.flags=e.flags&-4097|2,Ce=!1,it=e)}}else{if(Pu(e))throw Error(P(418));e.flags=e.flags&-4097|2,Ce=!1,it=e}}}function pf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;it=e}function tl(e){if(e!==it)return!1;if(!Ce)return pf(e),Ce=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Cu(e.type,e.memoizedProps)),t&&(t=ut)){if(Pu(e))throw zc(),Error(P(418));for(;t;)Oc(e,t),t=Ca(t.nextSibling)}if(pf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(P(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(t===0){ut=Ca(e.nextSibling);break e}t--}else a!=="$"&&a!=="$!"&&a!=="$?"||t++}e=e.nextSibling}ut=null}}else ut=it?Ca(e.stateNode.nextSibling):null;return!0}function zc(){for(var e=ut;e;)e=Ca(e.nextSibling)}function Qr(){ut=it=null,Ce=!1}function di(e){At===null?At=[e]:At.push(e)}var Ah=ua.ReactCurrentBatchConfig;function Co(e,t,a){if(e=a.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(P(309));var r=a.stateNode}if(!r)throw Error(P(147,e));var o=r,n=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===n?t.ref:(t=function(l){var s=o.refs;l===null?delete s[n]:s[n]=l},t._stringRef=n,t)}if(typeof e!="string")throw Error(P(284));if(!a._owner)throw Error(P(290,e))}return e}function al(e,t){throw e=Object.prototype.toString.call(t),Error(P(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function mf(e){var t=e._init;return t(e._payload)}function Uc(e){function t(c,i){if(e){var f=c.deletions;f===null?(c.deletions=[i],c.flags|=16):f.push(i)}}function a(c,i){if(!e)return null;for(;i!==null;)t(c,i),i=i.sibling;return null}function r(c,i){for(c=new Map;i!==null;)i.key!==null?c.set(i.key,i):c.set(i.index,i),i=i.sibling;return c}function o(c,i){return c=Pa(c,i),c.index=0,c.sibling=null,c}function n(c,i,f){return c.index=f,e?(f=c.alternate,f!==null?(f=f.index,f<i?(c.flags|=2,i):f):(c.flags|=2,i)):(c.flags|=1048576,i)}function l(c){return e&&c.alternate===null&&(c.flags|=2),c}function s(c,i,f,v){return i===null||i.tag!==6?(i=Zs(f,c.mode,v),i.return=c,i):(i=o(i,f),i.return=c,i)}function u(c,i,f,v){var w=f.type;return w===Ar?g(c,i,f.props.children,v,f.key):i!==null&&(i.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ma&&mf(w)===i.type)?(v=o(i,f.props),v.ref=Co(c,i,f),v.return=c,v):(v=gl(f.type,f.key,f.props,null,c.mode,v),v.ref=Co(c,i,f),v.return=c,v)}function d(c,i,f,v){return i===null||i.tag!==4||i.stateNode.containerInfo!==f.containerInfo||i.stateNode.implementation!==f.implementation?(i=Js(f,c.mode,v),i.return=c,i):(i=o(i,f.children||[]),i.return=c,i)}function g(c,i,f,v,w){return i===null||i.tag!==7?(i=tr(f,c.mode,v,w),i.return=c,i):(i=o(i,f),i.return=c,i)}function h(c,i,f){if(typeof i=="string"&&i!==""||typeof i=="number")return i=Zs(""+i,c.mode,f),i.return=c,i;if(typeof i=="object"&&i!==null){switch(i.$$typeof){case _n:return f=gl(i.type,i.key,i.props,null,c.mode,f),f.ref=Co(c,null,i),f.return=c,f;case Dr:return i=Js(i,c.mode,f),i.return=c,i;case ma:var v=i._init;return h(c,v(i._payload),f)}if(To(i)||Lo(i))return i=tr(i,c.mode,f,null),i.return=c,i;al(c,i)}return null}function m(c,i,f,v){var w=i!==null?i.key:null;if(typeof f=="string"&&f!==""||typeof f=="number")return w!==null?null:s(c,i,""+f,v);if(typeof f=="object"&&f!==null){switch(f.$$typeof){case _n:return f.key===w?u(c,i,f,v):null;case Dr:return f.key===w?d(c,i,f,v):null;case ma:return w=f._init,m(c,i,w(f._payload),v)}if(To(f)||Lo(f))return w!==null?null:g(c,i,f,v,null);al(c,f)}return null}function L(c,i,f,v,w){if(typeof v=="string"&&v!==""||typeof v=="number")return c=c.get(f)||null,s(i,c,""+v,w);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case _n:return c=c.get(v.key===null?f:v.key)||null,u(i,c,v,w);case Dr:return c=c.get(v.key===null?f:v.key)||null,d(i,c,v,w);case ma:var k=v._init;return L(c,i,f,k(v._payload),w)}if(To(v)||Lo(v))return c=c.get(f)||null,g(i,c,v,w,null);al(i,v)}return null}function y(c,i,f,v){for(var w=null,k=null,p=i,S=i=0,T=null;p!==null&&S<f.length;S++){p.index>S?(T=p,p=null):T=p.sibling;var F=m(c,p,f[S],v);if(F===null){p===null&&(p=T);break}e&&p&&F.alternate===null&&t(c,p),i=n(F,i,S),k===null?w=F:k.sibling=F,k=F,p=T}if(S===f.length)return a(c,p),Ce&&Xa(c,S),w;if(p===null){for(;S<f.length;S++)p=h(c,f[S],v),p!==null&&(i=n(p,i,S),k===null?w=p:k.sibling=p,k=p);return Ce&&Xa(c,S),w}for(p=r(c,p);S<f.length;S++)T=L(p,c,S,f[S],v),T!==null&&(e&&T.alternate!==null&&p.delete(T.key===null?S:T.key),i=n(T,i,S),k===null?w=T:k.sibling=T,k=T);return e&&p.forEach(function(A){return t(c,A)}),Ce&&Xa(c,S),w}function I(c,i,f,v){var w=Lo(f);if(typeof w!="function")throw Error(P(150));if(f=w.call(f),f==null)throw Error(P(151));for(var k=w=null,p=i,S=i=0,T=null,F=f.next();p!==null&&!F.done;S++,F=f.next()){p.index>S?(T=p,p=null):T=p.sibling;var A=m(c,p,F.value,v);if(A===null){p===null&&(p=T);break}e&&p&&A.alternate===null&&t(c,p),i=n(A,i,S),k===null?w=A:k.sibling=A,k=A,p=T}if(F.done)return a(c,p),Ce&&Xa(c,S),w;if(p===null){for(;!F.done;S++,F=f.next())F=h(c,F.value,v),F!==null&&(i=n(F,i,S),k===null?w=F:k.sibling=F,k=F);return Ce&&Xa(c,S),w}for(p=r(c,p);!F.done;S++,F=f.next())F=L(p,c,S,F.value,v),F!==null&&(e&&F.alternate!==null&&p.delete(F.key===null?S:F.key),i=n(F,i,S),k===null?w=F:k.sibling=F,k=F);return e&&p.forEach(function(O){return t(c,O)}),Ce&&Xa(c,S),w}function U(c,i,f,v){if(typeof f=="object"&&f!==null&&f.type===Ar&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case _n:e:{for(var w=f.key,k=i;k!==null;){if(k.key===w){if(w=f.type,w===Ar){if(k.tag===7){a(c,k.sibling),i=o(k,f.props.children),i.return=c,c=i;break e}}else if(k.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ma&&mf(w)===k.type){a(c,k.sibling),i=o(k,f.props),i.ref=Co(c,k,f),i.return=c,c=i;break e}a(c,k);break}else t(c,k);k=k.sibling}f.type===Ar?(i=tr(f.props.children,c.mode,v,f.key),i.return=c,c=i):(v=gl(f.type,f.key,f.props,null,c.mode,v),v.ref=Co(c,i,f),v.return=c,c=v)}return l(c);case Dr:e:{for(k=f.key;i!==null;){if(i.key===k)if(i.tag===4&&i.stateNode.containerInfo===f.containerInfo&&i.stateNode.implementation===f.implementation){a(c,i.sibling),i=o(i,f.children||[]),i.return=c,c=i;break e}else{a(c,i);break}else t(c,i);i=i.sibling}i=Js(f,c.mode,v),i.return=c,c=i}return l(c);case ma:return k=f._init,U(c,i,k(f._payload),v)}if(To(f))return y(c,i,f,v);if(Lo(f))return I(c,i,f,v);al(c,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,i!==null&&i.tag===6?(a(c,i.sibling),i=o(i,f),i.return=c,c=i):(a(c,i),i=Zs(f,c.mode,v),i.return=c,c=i),l(c)):a(c,i)}return U}var Yr=Uc(!0),Nc=Uc(!1),Rl=Aa(null),Dl=null,Nr=null,fi=null;function ci(){fi=Nr=Dl=null}function pi(e){var t=Rl.current;Se(Rl),e._currentValue=t}function Ru(e,t,a){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===a)break;e=e.return}}function Gr(e,t){Dl=e,fi=Nr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(tt=!0),e.firstContext=null)}function Lt(e){var t=e._currentValue;if(fi!==e)if(e={context:e,memoizedValue:t,next:null},Nr===null){if(Dl===null)throw Error(P(308));Nr=e,Dl.dependencies={lanes:0,firstContext:e}}else Nr=Nr.next=e;return t}var Za=null;function mi(e){Za===null?Za=[e]:Za.push(e)}function Hc(e,t,a,r){var o=t.interleaved;return o===null?(a.next=a,mi(t)):(a.next=o.next,o.next=a),t.interleaved=a,la(e,r)}function la(e,t){e.lanes|=t;var a=e.alternate;for(a!==null&&(a.lanes|=t),a=e,e=e.return;e!==null;)e.childLanes|=t,a=e.alternate,a!==null&&(a.childLanes|=t),a=e,e=e.return;return a.tag===3?a.stateNode:null}var ga=!1;function gi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function _c(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 ra(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wa(e,t,a){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(le&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,la(e,a)}return o=r.interleaved,o===null?(t.next=t,mi(r)):(t.next=o.next,o.next=t),r.interleaved=t,la(e,a)}function il(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,ei(e,a)}}function gf(e,t){var a=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,a===r)){var o=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var l={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};n===null?o=n=l:n=n.next=l,a=a.next}while(a!==null);n===null?o=n=t:n=n.next=t}else o=n=t;a={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:n,shared:r.shared,effects:r.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}function Al(e,t,a,r){var o=e.updateQueue;ga=!1;var n=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var u=s,d=u.next;u.next=null,l===null?n=d:l.next=d,l=u;var g=e.alternate;g!==null&&(g=g.updateQueue,s=g.lastBaseUpdate,s!==l&&(s===null?g.firstBaseUpdate=d:s.next=d,g.lastBaseUpdate=u))}if(n!==null){var h=o.baseState;l=0,g=d=u=null,s=n;do{var m=s.lane,L=s.eventTime;if((r&m)===m){g!==null&&(g=g.next={eventTime:L,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var y=e,I=s;switch(m=t,L=a,I.tag){case 1:if(y=I.payload,typeof y=="function"){h=y.call(L,h,m);break e}h=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=I.payload,m=typeof y=="function"?y.call(L,h,m):y,m==null)break e;h=be({},h,m);break e;case 2:ga=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[s]:m.push(s))}else L={eventTime:L,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},g===null?(d=g=L,u=h):g=g.next=L,l|=m;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;m=s,s=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(g===null&&(u=h),o.baseState=u,o.firstBaseUpdate=d,o.lastBaseUpdate=g,t=o.shared.interleaved,t!==null){o=t;do l|=o.lane,o=o.next;while(o!==t)}else n===null&&(o.shared.lanes=0);nr|=l,e.lanes=l,e.memoizedState=h}}function hf(e,t,a){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=a,typeof o!="function")throw Error(P(191,o));o.call(r)}}}var ln={},Gt=Aa(ln),Yo=Aa(ln),Zo=Aa(ln);function Ja(e){if(e===ln)throw Error(P(174));return e}function hi(e,t){switch(ve(Zo,t),ve(Yo,e),ve(Gt,ln),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:iu(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=iu(t,e)}Se(Gt),ve(Gt,t)}function Zr(){Se(Gt),Se(Yo),Se(Zo)}function qc(e){Ja(Zo.current);var t=Ja(Gt.current),a=iu(t,e.type);t!==a&&(ve(Yo,e),ve(Gt,a))}function xi(e){Yo.current===e&&(Se(Gt),Se(Yo))}var we=Aa(0);function Ml(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Gs=[];function vi(){for(var e=0;e<Gs.length;e++)Gs[e]._workInProgressVersionPrimary=null;Gs.length=0}var dl=ua.ReactCurrentDispatcher,Ks=ua.ReactCurrentBatchConfig,or=0,ke=null,Ee=null,Be=null,El=!1,Oo=!1,Jo=0,Mh=0;function We(){throw Error(P(321))}function Li(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!Ft(e[a],t[a]))return!1;return!0}function yi(e,t,a,r,o,n){if(or=n,ke=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,dl.current=e===null||e.memoizedState===null?Oh:zh,e=a(r,o),Oo){n=0;do{if(Oo=!1,Jo=0,25<=n)throw Error(P(301));n+=1,Be=Ee=null,t.updateQueue=null,dl.current=Uh,e=a(r,o)}while(Oo)}if(dl.current=Fl,t=Ee!==null&&Ee.next!==null,or=0,Be=Ee=ke=null,El=!1,t)throw Error(P(300));return e}function Si(){var e=Jo!==0;return Jo=0,e}function Wt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Be===null?ke.memoizedState=Be=e:Be=Be.next=e,Be}function yt(){if(Ee===null){var e=ke.alternate;e=e!==null?e.memoizedState:null}else e=Ee.next;var t=Be===null?ke.memoizedState:Be.next;if(t!==null)Be=t,Ee=e;else{if(e===null)throw Error(P(310));Ee=e,e={memoizedState:Ee.memoizedState,baseState:Ee.baseState,baseQueue:Ee.baseQueue,queue:Ee.queue,next:null},Be===null?ke.memoizedState=Be=e:Be=Be.next=e}return Be}function en(e,t){return typeof t=="function"?t(e):t}function js(e){var t=yt(),a=t.queue;if(a===null)throw Error(P(311));a.lastRenderedReducer=e;var r=Ee,o=r.baseQueue,n=a.pending;if(n!==null){if(o!==null){var l=o.next;o.next=n.next,n.next=l}r.baseQueue=o=n,a.pending=null}if(o!==null){n=o.next,r=r.baseState;var s=l=null,u=null,d=n;do{var g=d.lane;if((or&g)===g)u!==null&&(u=u.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var h={lane:g,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};u===null?(s=u=h,l=r):u=u.next=h,ke.lanes|=g,nr|=g}d=d.next}while(d!==null&&d!==n);u===null?l=r:u.next=s,Ft(r,t.memoizedState)||(tt=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,a.lastRenderedState=r}if(e=a.interleaved,e!==null){o=e;do n=o.lane,ke.lanes|=n,nr|=n,o=o.next;while(o!==e)}else o===null&&(a.lanes=0);return[t.memoizedState,a.dispatch]}function Xs(e){var t=yt(),a=t.queue;if(a===null)throw Error(P(311));a.lastRenderedReducer=e;var r=a.dispatch,o=a.pending,n=t.memoizedState;if(o!==null){a.pending=null;var l=o=o.next;do n=e(n,l.action),l=l.next;while(l!==o);Ft(n,t.memoizedState)||(tt=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),a.lastRenderedState=n}return[n,r]}function Wc(){}function Vc(e,t){var a=ke,r=yt(),o=t(),n=!Ft(r.memoizedState,o);if(n&&(r.memoizedState=o,tt=!0),r=r.queue,Ii(Kc.bind(null,a,r,e),[e]),r.getSnapshot!==t||n||Be!==null&&Be.memoizedState.tag&1){if(a.flags|=2048,tn(9,Gc.bind(null,a,r,o,t),void 0,null),Oe===null)throw Error(P(349));(or&30)!==0||$c(a,t,o)}return o}function $c(e,t,a){e.flags|=16384,e={getSnapshot:t,value:a},t=ke.updateQueue,t===null?(t={lastEffect:null,stores:null},ke.updateQueue=t,t.stores=[e]):(a=t.stores,a===null?t.stores=[e]:a.push(e))}function Gc(e,t,a,r){t.value=a,t.getSnapshot=r,jc(t)&&Xc(e)}function Kc(e,t,a){return a(function(){jc(t)&&Xc(e)})}function jc(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!Ft(e,a)}catch{return!0}}function Xc(e){var t=la(e,1);t!==null&&Et(t,e,1,-1)}function xf(e){var t=Wt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:e},t.queue=e,e=e.dispatch=Bh.bind(null,ke,e),[t.memoizedState,e]}function tn(e,t,a,r){return e={tag:e,create:t,destroy:a,deps:r,next:null},t=ke.updateQueue,t===null?(t={lastEffect:null,stores:null},ke.updateQueue=t,t.lastEffect=e.next=e):(a=t.lastEffect,a===null?t.lastEffect=e.next=e:(r=a.next,a.next=e,e.next=r,t.lastEffect=e)),e}function Qc(){return yt().memoizedState}function fl(e,t,a,r){var o=Wt();ke.flags|=e,o.memoizedState=tn(1|t,a,void 0,r===void 0?null:r)}function Gl(e,t,a,r){var o=yt();r=r===void 0?null:r;var n=void 0;if(Ee!==null){var l=Ee.memoizedState;if(n=l.destroy,r!==null&&Li(r,l.deps)){o.memoizedState=tn(t,a,n,r);return}}ke.flags|=e,o.memoizedState=tn(1|t,a,n,r)}function vf(e,t){return fl(8390656,8,e,t)}function Ii(e,t){return Gl(2048,8,e,t)}function Yc(e,t){return Gl(4,2,e,t)}function Zc(e,t){return Gl(4,4,e,t)}function Jc(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ep(e,t,a){return a=a!=null?a.concat([e]):null,Gl(4,4,Jc.bind(null,t,e),a)}function Ci(){}function tp(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&Li(t,r[1])?r[0]:(a.memoizedState=[e,t],e)}function ap(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&Li(t,r[1])?r[0]:(e=e(),a.memoizedState=[e,t],e)}function rp(e,t,a){return(or&21)===0?(e.baseState&&(e.baseState=!1,tt=!0),e.memoizedState=a):(Ft(a,t)||(a=uc(),ke.lanes|=a,nr|=a,e.baseState=!0),t)}function Eh(e,t){var a=pe;pe=a!==0&&4>a?a:4,e(!0);var r=Ks.transition;Ks.transition={};try{e(!1),t()}finally{pe=a,Ks.transition=r}}function op(){return yt().memoizedState}function Fh(e,t,a){var r=ba(e);if(a={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null},np(e))lp(t,a);else if(a=Hc(e,t,a,r),a!==null){var o=Qe();Et(a,e,r,o),sp(a,t,r)}}function Bh(e,t,a){var r=ba(e),o={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null};if(np(e))lp(t,o);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var l=t.lastRenderedState,s=n(l,a);if(o.hasEagerState=!0,o.eagerState=s,Ft(s,l)){var u=t.interleaved;u===null?(o.next=o,mi(t)):(o.next=u.next,u.next=o),t.interleaved=o;return}}catch{}finally{}a=Hc(e,t,o,r),a!==null&&(o=Qe(),Et(a,e,r,o),sp(a,t,r))}}function np(e){var t=e.alternate;return e===ke||t!==null&&t===ke}function lp(e,t){Oo=El=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function sp(e,t,a){if((a&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,ei(e,a)}}var Fl={readContext:Lt,useCallback:We,useContext:We,useEffect:We,useImperativeHandle:We,useInsertionEffect:We,useLayoutEffect:We,useMemo:We,useReducer:We,useRef:We,useState:We,useDebugValue:We,useDeferredValue:We,useTransition:We,useMutableSource:We,useSyncExternalStore:We,useId:We,unstable_isNewReconciler:!1},Oh={readContext:Lt,useCallback:function(e,t){return Wt().memoizedState=[e,t===void 0?null:t],e},useContext:Lt,useEffect:vf,useImperativeHandle:function(e,t,a){return a=a!=null?a.concat([e]):null,fl(4194308,4,Jc.bind(null,t,e),a)},useLayoutEffect:function(e,t){return fl(4194308,4,e,t)},useInsertionEffect:function(e,t){return fl(4,2,e,t)},useMemo:function(e,t){var a=Wt();return t=t===void 0?null:t,e=e(),a.memoizedState=[e,t],e},useReducer:function(e,t,a){var r=Wt();return t=a!==void 0?a(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=Fh.bind(null,ke,e),[r.memoizedState,e]},useRef:function(e){var t=Wt();return e={current:e},t.memoizedState=e},useState:xf,useDebugValue:Ci,useDeferredValue:function(e){return Wt().memoizedState=e},useTransition:function(){var e=xf(!1),t=e[0];return e=Eh.bind(null,e[1]),Wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,a){var r=ke,o=Wt();if(Ce){if(a===void 0)throw Error(P(407));a=a()}else{if(a=t(),Oe===null)throw Error(P(349));(or&30)!==0||$c(r,t,a)}o.memoizedState=a;var n={value:a,getSnapshot:t};return o.queue=n,vf(Kc.bind(null,r,n,e),[e]),r.flags|=2048,tn(9,Gc.bind(null,r,n,a,t),void 0,null),a},useId:function(){var e=Wt(),t=Oe.identifierPrefix;if(Ce){var a=aa,r=ta;a=(r&~(1<<32-Mt(r)-1)).toString(32)+a,t=":"+t+"R"+a,a=Jo++,0<a&&(t+="H"+a.toString(32)),t+=":"}else a=Mh++,t=":"+t+"r"+a.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},zh={readContext:Lt,useCallback:tp,useContext:Lt,useEffect:Ii,useImperativeHandle:ep,useInsertionEffect:Yc,useLayoutEffect:Zc,useMemo:ap,useReducer:js,useRef:Qc,useState:function(){return js(en)},useDebugValue:Ci,useDeferredValue:function(e){var t=yt();return rp(t,Ee.memoizedState,e)},useTransition:function(){var e=js(en)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Wc,useSyncExternalStore:Vc,useId:op,unstable_isNewReconciler:!1},Uh={readContext:Lt,useCallback:tp,useContext:Lt,useEffect:Ii,useImperativeHandle:ep,useInsertionEffect:Yc,useLayoutEffect:Zc,useMemo:ap,useReducer:Xs,useRef:Qc,useState:function(){return Xs(en)},useDebugValue:Ci,useDeferredValue:function(e){var t=yt();return Ee===null?t.memoizedState=e:rp(t,Ee.memoizedState,e)},useTransition:function(){var e=Xs(en)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Wc,useSyncExternalStore:Vc,useId:op,unstable_isNewReconciler:!1};function Rt(e,t){if(e&&e.defaultProps){t=be({},t),e=e.defaultProps;for(var a in e)t[a]===void 0&&(t[a]=e[a]);return t}return t}function Du(e,t,a,r){t=e.memoizedState,a=a(r,t),a=a==null?t:be({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Kl={isMounted:function(e){return(e=e._reactInternals)?ur(e)===e:!1},enqueueSetState:function(e,t,a){e=e._reactInternals;var r=Qe(),o=ba(e),n=ra(r,o);n.payload=t,a!=null&&(n.callback=a),t=wa(e,n,o),t!==null&&(Et(t,e,o,r),il(t,e,o))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var r=Qe(),o=ba(e),n=ra(r,o);n.tag=1,n.payload=t,a!=null&&(n.callback=a),t=wa(e,n,o),t!==null&&(Et(t,e,o,r),il(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Qe(),r=ba(e),o=ra(a,r);o.tag=2,t!=null&&(o.callback=t),t=wa(e,o,r),t!==null&&(Et(t,e,r,a),il(t,e,r))}};function Lf(e,t,a,r,o,n,l){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,n,l):t.prototype&&t.prototype.isPureReactComponent?!Ko(a,r)||!Ko(o,n):!0}function up(e,t,a){var r=!1,o=Ra,n=t.contextType;return typeof n=="object"&&n!==null?n=Lt(n):(o=rt(t)?ar:Ge.current,r=t.contextTypes,n=(r=r!=null)?Xr(e,o):Ra),t=new t(a,n),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Kl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=n),t}function yf(e,t,a,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,r),t.state!==e&&Kl.enqueueReplaceState(t,t.state,null)}function Au(e,t,a,r){var o=e.stateNode;o.props=a,o.state=e.memoizedState,o.refs={},gi(e);var n=t.contextType;typeof n=="object"&&n!==null?o.context=Lt(n):(n=rt(t)?ar:Ge.current,o.context=Xr(e,n)),o.state=e.memoizedState,n=t.getDerivedStateFromProps,typeof n=="function"&&(Du(e,t,n,a),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&Kl.enqueueReplaceState(o,o.state,null),Al(e,a,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Jr(e,t){try{var a="",r=t;do a+=mg(r),r=r.return;while(r);var o=a}catch(n){o=`\nError generating stack: `+n.message+`\n`+n.stack}return{value:e,source:t,stack:o,digest:null}}function Qs(e,t,a){return{value:e,source:null,stack:a??null,digest:t??null}}function Mu(e,t){try{console.error(t.value)}catch(a){setTimeout(function(){throw a})}}var Nh=typeof WeakMap=="function"?WeakMap:Map;function ip(e,t,a){a=ra(-1,a),a.tag=3,a.payload={element:null};var r=t.value;return a.callback=function(){Ol||(Ol=!0,qu=r),Mu(e,t)},a}function dp(e,t,a){a=ra(-1,a),a.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;a.payload=function(){return r(o)},a.callback=function(){Mu(e,t)}}var n=e.stateNode;return n!==null&&typeof n.componentDidCatch=="function"&&(a.callback=function(){Mu(e,t),typeof r!="function"&&(ka===null?ka=new Set([this]):ka.add(this));var l=t.stack;this.componentDidCatch(t.value,{componentStack:l!==null?l:""})}),a}function Sf(e,t,a){var r=e.pingCache;if(r===null){r=e.pingCache=new Nh;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(a)||(o.add(a),e=Jh.bind(null,e,t,a),t.then(e,e))}function If(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 Cf(e,t,a,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(t=ra(-1,1),t.tag=2,wa(a,t,1))),a.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Hh=ua.ReactCurrentOwner,tt=!1;function Xe(e,t,a,r){t.child=e===null?Nc(t,null,a,r):Yr(t,e.child,a,r)}function wf(e,t,a,r,o){a=a.render;var n=t.ref;return Gr(t,o),r=yi(e,t,a,r,n,o),a=Si(),e!==null&&!tt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,sa(e,t,o)):(Ce&&a&&ui(t),t.flags|=1,Xe(e,t,r,o),t.child)}function kf(e,t,a,r,o){if(e===null){var n=a.type;return typeof n=="function"&&!Ai(n)&&n.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(t.tag=15,t.type=n,fp(e,t,n,r,o)):(e=gl(a.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(n=e.child,(e.lanes&o)===0){var l=n.memoizedProps;if(a=a.compare,a=a!==null?a:Ko,a(l,r)&&e.ref===t.ref)return sa(e,t,o)}return t.flags|=1,e=Pa(n,r),e.ref=t.ref,e.return=t,t.child=e}function fp(e,t,a,r,o){if(e!==null){var n=e.memoizedProps;if(Ko(n,r)&&e.ref===t.ref)if(tt=!1,t.pendingProps=r=n,(e.lanes&o)!==0)(e.flags&131072)!==0&&(tt=!0);else return t.lanes=e.lanes,sa(e,t,o)}return Eu(e,t,a,r,o)}function cp(e,t,a){var r=t.pendingProps,o=r.children,n=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ve(_r,st),st|=a;else{if((a&1073741824)===0)return e=n!==null?n.baseLanes|a:a,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ve(_r,st),st|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=n!==null?n.baseLanes:a,ve(_r,st),st|=r}else n!==null?(r=n.baseLanes|a,t.memoizedState=null):r=a,ve(_r,st),st|=r;return Xe(e,t,o,a),t.child}function pp(e,t){var a=t.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(t.flags|=512,t.flags|=2097152)}function Eu(e,t,a,r,o){var n=rt(a)?ar:Ge.current;return n=Xr(t,n),Gr(t,o),a=yi(e,t,a,r,n,o),r=Si(),e!==null&&!tt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,sa(e,t,o)):(Ce&&r&&ui(t),t.flags|=1,Xe(e,t,a,o),t.child)}function bf(e,t,a,r,o){if(rt(a)){var n=!0;bl(t)}else n=!1;if(Gr(t,o),t.stateNode===null)cl(e,t),up(t,a,r),Au(t,a,r,o),r=!0;else if(e===null){var l=t.stateNode,s=t.memoizedProps;l.props=s;var u=l.context,d=a.contextType;typeof d=="object"&&d!==null?d=Lt(d):(d=rt(a)?ar:Ge.current,d=Xr(t,d));var g=a.getDerivedStateFromProps,h=typeof g=="function"||typeof l.getSnapshotBeforeUpdate=="function";h||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(s!==r||u!==d)&&yf(t,l,r,d),ga=!1;var m=t.memoizedState;l.state=m,Al(t,r,l,o),u=t.memoizedState,s!==r||m!==u||at.current||ga?(typeof g=="function"&&(Du(t,a,g,r),u=t.memoizedState),(s=ga||Lf(t,a,s,r,m,u,d))?(h||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount()),typeof l.componentDidMount=="function"&&(t.flags|=4194308)):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),l.props=r,l.state=u,l.context=d,r=s):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{l=t.stateNode,_c(e,t),s=t.memoizedProps,d=t.type===t.elementType?s:Rt(t.type,s),l.props=d,h=t.pendingProps,m=l.context,u=a.contextType,typeof u=="object"&&u!==null?u=Lt(u):(u=rt(a)?ar:Ge.current,u=Xr(t,u));var L=a.getDerivedStateFromProps;(g=typeof L=="function"||typeof l.getSnapshotBeforeUpdate=="function")||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(s!==h||m!==u)&&yf(t,l,r,u),ga=!1,m=t.memoizedState,l.state=m,Al(t,r,l,o);var y=t.memoizedState;s!==h||m!==y||at.current||ga?(typeof L=="function"&&(Du(t,a,L,r),y=t.memoizedState),(d=ga||Lf(t,a,d,r,m,y,u)||!1)?(g||typeof l.UNSAFE_componentWillUpdate!="function"&&typeof l.componentWillUpdate!="function"||(typeof l.componentWillUpdate=="function"&&l.componentWillUpdate(r,y,u),typeof l.UNSAFE_componentWillUpdate=="function"&&l.UNSAFE_componentWillUpdate(r,y,u)),typeof l.componentDidUpdate=="function"&&(t.flags|=4),typeof l.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof l.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=y),l.props=r,l.state=y,l.context=u,r=d):(typeof l.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return Fu(e,t,a,r,n,o)}function Fu(e,t,a,r,o,n){pp(e,t);var l=(t.flags&128)!==0;if(!r&&!l)return o&&ff(t,a,!1),sa(e,t,n);r=t.stateNode,Hh.current=t;var s=l&&typeof a.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&l?(t.child=Yr(t,e.child,null,n),t.child=Yr(t,null,s,n)):Xe(e,t,s,n),t.memoizedState=r.state,o&&ff(t,a,!0),t.child}function mp(e){var t=e.stateNode;t.pendingContext?df(e,t.pendingContext,t.pendingContext!==t.context):t.context&&df(e,t.context,!1),hi(e,t.containerInfo)}function Pf(e,t,a,r,o){return Qr(),di(o),t.flags|=256,Xe(e,t,a,r),t.child}var Bu={dehydrated:null,treeContext:null,retryLane:0};function Ou(e){return{baseLanes:e,cachePool:null,transitions:null}}function gp(e,t,a){var r=t.pendingProps,o=we.current,n=!1,l=(t.flags&128)!==0,s;if((s=l)||(s=e!==null&&e.memoizedState===null?!1:(o&2)!==0),s?(n=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),ve(we,o&1),e===null)return Tu(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(l=r.children,e=r.fallback,n?(r=t.mode,n=t.child,l={mode:"hidden",children:l},(r&1)===0&&n!==null?(n.childLanes=0,n.pendingProps=l):n=Ql(l,r,0,null),e=tr(e,r,a,null),n.return=t,e.return=t,n.sibling=e,t.child=n,t.child.memoizedState=Ou(a),t.memoizedState=Bu,e):wi(t,l));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return _h(e,t,l,r,s,o,a);if(n){n=r.fallback,l=t.mode,o=e.child,s=o.sibling;var u={mode:"hidden",children:r.children};return(l&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=u,t.deletions=null):(r=Pa(o,u),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?n=Pa(s,n):(n=tr(n,l,a,null),n.flags|=2),n.return=t,r.return=t,r.sibling=n,t.child=r,r=n,n=t.child,l=e.child.memoizedState,l=l===null?Ou(a):{baseLanes:l.baseLanes|a,cachePool:null,transitions:l.transitions},n.memoizedState=l,n.childLanes=e.childLanes&~a,t.memoizedState=Bu,r}return n=e.child,e=n.sibling,r=Pa(n,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=a),r.return=t,r.sibling=null,e!==null&&(a=t.deletions,a===null?(t.deletions=[e],t.flags|=16):a.push(e)),t.child=r,t.memoizedState=null,r}function wi(e,t){return t=Ql({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function rl(e,t,a,r){return r!==null&&di(r),Yr(t,e.child,null,a),e=wi(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function _h(e,t,a,r,o,n,l){if(a)return t.flags&256?(t.flags&=-257,r=Qs(Error(P(422))),rl(e,t,l,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(n=r.fallback,o=t.mode,r=Ql({mode:"visible",children:r.children},o,0,null),n=tr(n,o,l,null),n.flags|=2,r.return=t,n.return=t,r.sibling=n,t.child=r,(t.mode&1)!==0&&Yr(t,e.child,null,l),t.child.memoizedState=Ou(l),t.memoizedState=Bu,n);if((t.mode&1)===0)return rl(e,t,l,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var s=r.dgst;return r=s,n=Error(P(419)),r=Qs(n,r,void 0),rl(e,t,l,r)}if(s=(l&e.childLanes)!==0,tt||s){if(r=Oe,r!==null){switch(l&-l){case 4:o=2;break;case 16:o=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:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|l))!==0?0:o,o!==0&&o!==n.retryLane&&(n.retryLane=o,la(e,o),Et(r,e,o,-1))}return Di(),r=Qs(Error(P(421))),rl(e,t,l,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=ex.bind(null,e),o._reactRetry=t,null):(e=n.treeContext,ut=Ca(o.nextSibling),it=t,Ce=!0,At=null,e!==null&&(gt[ht++]=ta,gt[ht++]=aa,gt[ht++]=rr,ta=e.id,aa=e.overflow,rr=t),t=wi(t,r.children),t.flags|=4096,t)}function Tf(e,t,a){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ru(e.return,t,a)}function Ys(e,t,a,r,o){var n=e.memoizedState;n===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:a,tailMode:o}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=r,n.tail=a,n.tailMode=o)}function hp(e,t,a){var r=t.pendingProps,o=r.revealOrder,n=r.tail;if(Xe(e,t,r.children,a),r=we.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Tf(e,a,t);else if(e.tag===19)Tf(e,a,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(ve(we,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(a=t.child,o=null;a!==null;)e=a.alternate,e!==null&&Ml(e)===null&&(o=a),a=a.sibling;a=o,a===null?(o=t.child,t.child=null):(o=a.sibling,a.sibling=null),Ys(t,!1,o,a,n);break;case"backwards":for(a=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Ml(e)===null){t.child=o;break}e=o.sibling,o.sibling=a,a=o,o=e}Ys(t,!0,a,null,n);break;case"together":Ys(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function cl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function sa(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),nr|=t.lanes,(a&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(P(153));if(t.child!==null){for(e=t.child,a=Pa(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=Pa(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function qh(e,t,a){switch(t.tag){case 3:mp(t),Qr();break;case 5:qc(t);break;case 1:rt(t.type)&&bl(t);break;case 4:hi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;ve(Rl,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ve(we,we.current&1),t.flags|=128,null):(a&t.child.childLanes)!==0?gp(e,t,a):(ve(we,we.current&1),e=sa(e,t,a),e!==null?e.sibling:null);ve(we,we.current&1);break;case 19:if(r=(a&t.childLanes)!==0,(e.flags&128)!==0){if(r)return hp(e,t,a);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),ve(we,we.current),r)break;return null;case 22:case 23:return t.lanes=0,cp(e,t,a)}return sa(e,t,a)}var xp,zu,vp,Lp;xp=function(e,t){for(var a=t.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return;a=a.return}a.sibling.return=a.return,a=a.sibling}};zu=function(){};vp=function(e,t,a,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ja(Gt.current);var n=null;switch(a){case"input":o=nu(e,o),r=nu(e,r),n=[];break;case"select":o=be({},o,{value:void 0}),r=be({},r,{value:void 0}),n=[];break;case"textarea":o=uu(e,o),r=uu(e,r),n=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=wl)}du(a,r);var l;a=null;for(d in o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&o[d]!=null)if(d==="style"){var s=o[d];for(l in s)s.hasOwnProperty(l)&&(a||(a={}),a[l]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Ho.hasOwnProperty(d)?n||(n=[]):(n=n||[]).push(d,null));for(d in r){var u=r[d];if(s=o!=null?o[d]:void 0,r.hasOwnProperty(d)&&u!==s&&(u!=null||s!=null))if(d==="style")if(s){for(l in s)!s.hasOwnProperty(l)||u&&u.hasOwnProperty(l)||(a||(a={}),a[l]="");for(l in u)u.hasOwnProperty(l)&&s[l]!==u[l]&&(a||(a={}),a[l]=u[l])}else a||(n||(n=[]),n.push(d,a)),a=u;else d==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,s=s?s.__html:void 0,u!=null&&s!==u&&(n=n||[]).push(d,u)):d==="children"?typeof u!="string"&&typeof u!="number"||(n=n||[]).push(d,""+u):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Ho.hasOwnProperty(d)?(u!=null&&d==="onScroll"&&ye("scroll",e),n||s===u||(n=[])):(n=n||[]).push(d,u))}a&&(n=n||[]).push("style",a);var d=n;(t.updateQueue=d)&&(t.flags|=4)}};Lp=function(e,t,a,r){a!==r&&(t.flags|=4)};function wo(e,t){if(!Ce)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var r=null;a!==null;)a.alternate!==null&&(r=a),a=a.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ve(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,r=0;if(t)for(var o=e.child;o!==null;)a|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)a|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=a,t}function Wh(e,t,a){var r=t.pendingProps;switch(ii(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ve(t),null;case 1:return rt(t.type)&&kl(),Ve(t),null;case 3:return r=t.stateNode,Zr(),Se(at),Se(Ge),vi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(tl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,At!==null&&($u(At),At=null))),zu(e,t),Ve(t),null;case 5:xi(t);var o=Ja(Zo.current);if(a=t.type,e!==null&&t.stateNode!=null)vp(e,t,a,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(P(166));return Ve(t),null}if(e=Ja(Gt.current),tl(t)){r=t.stateNode,a=t.type;var n=t.memoizedProps;switch(r[Vt]=t,r[Qo]=n,e=(t.mode&1)!==0,a){case"dialog":ye("cancel",r),ye("close",r);break;case"iframe":case"object":case"embed":ye("load",r);break;case"video":case"audio":for(o=0;o<Do.length;o++)ye(Do[o],r);break;case"source":ye("error",r);break;case"img":case"image":case"link":ye("error",r),ye("load",r);break;case"details":ye("toggle",r);break;case"input":Bd(r,n),ye("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!n.multiple},ye("invalid",r);break;case"textarea":zd(r,n),ye("invalid",r)}du(a,n),o=null;for(var l in n)if(n.hasOwnProperty(l)){var s=n[l];l==="children"?typeof s=="string"?r.textContent!==s&&(n.suppressHydrationWarning!==!0&&el(r.textContent,s,e),o=["children",s]):typeof s=="number"&&r.textContent!==""+s&&(n.suppressHydrationWarning!==!0&&el(r.textContent,s,e),o=["children",""+s]):Ho.hasOwnProperty(l)&&s!=null&&l==="onScroll"&&ye("scroll",r)}switch(a){case"input":qn(r),Od(r,n,!0);break;case"textarea":qn(r),Ud(r);break;case"select":case"option":break;default:typeof n.onClick=="function"&&(r.onclick=wl)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{l=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Kf(a)),e==="http://www.w3.org/1999/xhtml"?a==="script"?(e=l.createElement("div"),e.innerHTML="<script><\\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(a,{is:r.is}):(e=l.createElement(a),a==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,a),e[Vt]=t,e[Qo]=r,xp(e,t,!1,!1),t.stateNode=e;e:{switch(l=fu(a,r),a){case"dialog":ye("cancel",e),ye("close",e),o=r;break;case"iframe":case"object":case"embed":ye("load",e),o=r;break;case"video":case"audio":for(o=0;o<Do.length;o++)ye(Do[o],e);o=r;break;case"source":ye("error",e),o=r;break;case"img":case"image":case"link":ye("error",e),ye("load",e),o=r;break;case"details":ye("toggle",e),o=r;break;case"input":Bd(e,r),o=nu(e,r),ye("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=be({},r,{value:void 0}),ye("invalid",e);break;case"textarea":zd(e,r),o=uu(e,r),ye("invalid",e);break;default:o=r}du(a,o),s=o;for(n in s)if(s.hasOwnProperty(n)){var u=s[n];n==="style"?Qf(e,u):n==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&jf(e,u)):n==="children"?typeof u=="string"?(a!=="textarea"||u!=="")&&_o(e,u):typeof u=="number"&&_o(e,""+u):n!=="suppressContentEditableWarning"&&n!=="suppressHydrationWarning"&&n!=="autoFocus"&&(Ho.hasOwnProperty(n)?u!=null&&n==="onScroll"&&ye("scroll",e):u!=null&&ju(e,n,u,l))}switch(a){case"input":qn(e),Od(e,r,!1);break;case"textarea":qn(e),Ud(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Ta(r.value));break;case"select":e.multiple=!!r.multiple,n=r.value,n!=null?qr(e,!!r.multiple,n,!1):r.defaultValue!=null&&qr(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=wl)}switch(a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ve(t),null;case 6:if(e&&t.stateNode!=null)Lp(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(P(166));if(a=Ja(Zo.current),Ja(Gt.current),tl(t)){if(r=t.stateNode,a=t.memoizedProps,r[Vt]=t,(n=r.nodeValue!==a)&&(e=it,e!==null))switch(e.tag){case 3:el(r.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&el(r.nodeValue,a,(e.mode&1)!==0)}n&&(t.flags|=4)}else r=(a.nodeType===9?a:a.ownerDocument).createTextNode(r),r[Vt]=t,t.stateNode=r}return Ve(t),null;case 13:if(Se(we),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ce&&ut!==null&&(t.mode&1)!==0&&(t.flags&128)===0)zc(),Qr(),t.flags|=98560,n=!1;else if(n=tl(t),r!==null&&r.dehydrated!==null){if(e===null){if(!n)throw Error(P(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(P(317));n[Vt]=t}else Qr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ve(t),n=!1}else At!==null&&($u(At),At=null),n=!0;if(!n)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=a,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(we.current&1)!==0?Fe===0&&(Fe=3):Di())),t.updateQueue!==null&&(t.flags|=4),Ve(t),null);case 4:return Zr(),zu(e,t),e===null&&jo(t.stateNode.containerInfo),Ve(t),null;case 10:return pi(t.type._context),Ve(t),null;case 17:return rt(t.type)&&kl(),Ve(t),null;case 19:if(Se(we),n=t.memoizedState,n===null)return Ve(t),null;if(r=(t.flags&128)!==0,l=n.rendering,l===null)if(r)wo(n,!1);else{if(Fe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(l=Ml(e),l!==null){for(t.flags|=128,wo(n,!1),r=l.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=a,a=t.child;a!==null;)n=a,e=r,n.flags&=14680066,l=n.alternate,l===null?(n.childLanes=0,n.lanes=e,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=l.childLanes,n.lanes=l.lanes,n.child=l.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=l.memoizedProps,n.memoizedState=l.memoizedState,n.updateQueue=l.updateQueue,n.type=l.type,e=l.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),a=a.sibling;return ve(we,we.current&1|2),t.child}e=e.sibling}n.tail!==null&&Te()>eo&&(t.flags|=128,r=!0,wo(n,!1),t.lanes=4194304)}else{if(!r)if(e=Ml(l),e!==null){if(t.flags|=128,r=!0,a=e.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),wo(n,!0),n.tail===null&&n.tailMode==="hidden"&&!l.alternate&&!Ce)return Ve(t),null}else 2*Te()-n.renderingStartTime>eo&&a!==1073741824&&(t.flags|=128,r=!0,wo(n,!1),t.lanes=4194304);n.isBackwards?(l.sibling=t.child,t.child=l):(a=n.last,a!==null?a.sibling=l:t.child=l,n.last=l)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=Te(),t.sibling=null,a=we.current,ve(we,r?a&1|2:a&1),t):(Ve(t),null);case 22:case 23:return Ri(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(st&1073741824)!==0&&(Ve(t),t.subtreeFlags&6&&(t.flags|=8192)):Ve(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function Vh(e,t){switch(ii(t),t.tag){case 1:return rt(t.type)&&kl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Zr(),Se(at),Se(Ge),vi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return xi(t),null;case 13:if(Se(we),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));Qr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(we),null;case 4:return Zr(),null;case 10:return pi(t.type._context),null;case 22:case 23:return Ri(),null;case 24:return null;default:return null}}var ol=!1,$e=!1,$h=typeof WeakSet=="function"?WeakSet:Set,z=null;function Hr(e,t){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(r){Pe(e,t,r)}else a.current=null}function Uu(e,t,a){try{a()}catch(r){Pe(e,t,r)}}var Rf=!1;function Gh(e,t){if(Su=Sl,e=wc(),si(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var r=a.getSelection&&a.getSelection();if(r&&r.rangeCount!==0){a=r.anchorNode;var o=r.anchorOffset,n=r.focusNode;r=r.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break e}var l=0,s=-1,u=-1,d=0,g=0,h=e,m=null;t:for(;;){for(var L;h!==a||o!==0&&h.nodeType!==3||(s=l+o),h!==n||r!==0&&h.nodeType!==3||(u=l+r),h.nodeType===3&&(l+=h.nodeValue.length),(L=h.firstChild)!==null;)m=h,h=L;for(;;){if(h===e)break t;if(m===a&&++d===o&&(s=l),m===n&&++g===r&&(u=l),(L=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=L}a=s===-1||u===-1?null:{start:s,end:u}}else a=null}a=a||{start:0,end:0}}else a=null;for(Iu={focusedElem:e,selectionRange:a},Sl=!1,z=t;z!==null;)if(t=z,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,z=e;else for(;z!==null;){t=z;try{var y=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var I=y.memoizedProps,U=y.memoizedState,c=t.stateNode,i=c.getSnapshotBeforeUpdate(t.elementType===t.type?I:Rt(t.type,I),U);c.__reactInternalSnapshotBeforeUpdate=i}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(v){Pe(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,z=e;break}z=t.return}return y=Rf,Rf=!1,y}function zo(e,t,a){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var n=o.destroy;o.destroy=void 0,n!==void 0&&Uu(t,a,n)}o=o.next}while(o!==r)}}function jl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var a=t=t.next;do{if((a.tag&e)===e){var r=a.create;a.destroy=r()}a=a.next}while(a!==t)}}function Nu(e){var t=e.ref;if(t!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof t=="function"?t(e):t.current=e}}function yp(e){var t=e.alternate;t!==null&&(e.alternate=null,yp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Vt],delete t[Qo],delete t[ku],delete t[Th],delete t[Rh])),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 Sp(e){return e.tag===5||e.tag===3||e.tag===4}function Df(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sp(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 Hu(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?a.nodeType===8?a.parentNode.insertBefore(e,t):a.insertBefore(e,t):(a.nodeType===8?(t=a.parentNode,t.insertBefore(e,a)):(t=a,t.appendChild(e)),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=wl));else if(r!==4&&(e=e.child,e!==null))for(Hu(e,t,a),e=e.sibling;e!==null;)Hu(e,t,a),e=e.sibling}function _u(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(_u(e,t,a),e=e.sibling;e!==null;)_u(e,t,a),e=e.sibling}var Ue=null,Dt=!1;function pa(e,t,a){for(a=a.child;a!==null;)Ip(e,t,a),a=a.sibling}function Ip(e,t,a){if($t&&typeof $t.onCommitFiberUnmount=="function")try{$t.onCommitFiberUnmount(Hl,a)}catch{}switch(a.tag){case 5:$e||Hr(a,t);case 6:var r=Ue,o=Dt;Ue=null,pa(e,t,a),Ue=r,Dt=o,Ue!==null&&(Dt?(e=Ue,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):Ue.removeChild(a.stateNode));break;case 18:Ue!==null&&(Dt?(e=Ue,a=a.stateNode,e.nodeType===8?Vs(e.parentNode,a):e.nodeType===1&&Vs(e,a),$o(e)):Vs(Ue,a.stateNode));break;case 4:r=Ue,o=Dt,Ue=a.stateNode.containerInfo,Dt=!0,pa(e,t,a),Ue=r,Dt=o;break;case 0:case 11:case 14:case 15:if(!$e&&(r=a.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var n=o,l=n.destroy;n=n.tag,l!==void 0&&((n&2)!==0||(n&4)!==0)&&Uu(a,t,l),o=o.next}while(o!==r)}pa(e,t,a);break;case 1:if(!$e&&(Hr(a,t),r=a.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=a.memoizedProps,r.state=a.memoizedState,r.componentWillUnmount()}catch(s){Pe(a,t,s)}pa(e,t,a);break;case 21:pa(e,t,a);break;case 22:a.mode&1?($e=(r=$e)||a.memoizedState!==null,pa(e,t,a),$e=r):pa(e,t,a);break;default:pa(e,t,a)}}function Af(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new $h),t.forEach(function(r){var o=tx.bind(null,e,r);a.has(r)||(a.add(r),r.then(o,o))})}}function Tt(e,t){var a=t.deletions;if(a!==null)for(var r=0;r<a.length;r++){var o=a[r];try{var n=e,l=t,s=l;e:for(;s!==null;){switch(s.tag){case 5:Ue=s.stateNode,Dt=!1;break e;case 3:Ue=s.stateNode.containerInfo,Dt=!0;break e;case 4:Ue=s.stateNode.containerInfo,Dt=!0;break e}s=s.return}if(Ue===null)throw Error(P(160));Ip(n,l,o),Ue=null,Dt=!1;var u=o.alternate;u!==null&&(u.return=null),o.return=null}catch(d){Pe(o,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Cp(t,e),t=t.sibling}function Cp(e,t){var a=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Tt(t,e),qt(e),r&4){try{zo(3,e,e.return),jl(3,e)}catch(I){Pe(e,e.return,I)}try{zo(5,e,e.return)}catch(I){Pe(e,e.return,I)}}break;case 1:Tt(t,e),qt(e),r&512&&a!==null&&Hr(a,a.return);break;case 5:if(Tt(t,e),qt(e),r&512&&a!==null&&Hr(a,a.return),e.flags&32){var o=e.stateNode;try{_o(o,"")}catch(I){Pe(e,e.return,I)}}if(r&4&&(o=e.stateNode,o!=null)){var n=e.memoizedProps,l=a!==null?a.memoizedProps:n,s=e.type,u=e.updateQueue;if(e.updateQueue=null,u!==null)try{s==="input"&&n.type==="radio"&&n.name!=null&&$f(o,n),fu(s,l);var d=fu(s,n);for(l=0;l<u.length;l+=2){var g=u[l],h=u[l+1];g==="style"?Qf(o,h):g==="dangerouslySetInnerHTML"?jf(o,h):g==="children"?_o(o,h):ju(o,g,h,d)}switch(s){case"input":lu(o,n);break;case"textarea":Gf(o,n);break;case"select":var m=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!n.multiple;var L=n.value;L!=null?qr(o,!!n.multiple,L,!1):m!==!!n.multiple&&(n.defaultValue!=null?qr(o,!!n.multiple,n.defaultValue,!0):qr(o,!!n.multiple,n.multiple?[]:"",!1))}o[Qo]=n}catch(I){Pe(e,e.return,I)}}break;case 6:if(Tt(t,e),qt(e),r&4){if(e.stateNode===null)throw Error(P(162));o=e.stateNode,n=e.memoizedProps;try{o.nodeValue=n}catch(I){Pe(e,e.return,I)}}break;case 3:if(Tt(t,e),qt(e),r&4&&a!==null&&a.memoizedState.isDehydrated)try{$o(t.containerInfo)}catch(I){Pe(e,e.return,I)}break;case 4:Tt(t,e),qt(e);break;case 13:Tt(t,e),qt(e),o=e.child,o.flags&8192&&(n=o.memoizedState!==null,o.stateNode.isHidden=n,!n||o.alternate!==null&&o.alternate.memoizedState!==null||(Pi=Te())),r&4&&Af(e);break;case 22:if(g=a!==null&&a.memoizedState!==null,e.mode&1?($e=(d=$e)||g,Tt(t,e),$e=d):Tt(t,e),qt(e),r&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!g&&(e.mode&1)!==0)for(z=e,g=e.child;g!==null;){for(h=z=g;z!==null;){switch(m=z,L=m.child,m.tag){case 0:case 11:case 14:case 15:zo(4,m,m.return);break;case 1:Hr(m,m.return);var y=m.stateNode;if(typeof y.componentWillUnmount=="function"){r=m,a=m.return;try{t=r,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(I){Pe(r,a,I)}}break;case 5:Hr(m,m.return);break;case 22:if(m.memoizedState!==null){Ef(h);continue}}L!==null?(L.return=m,z=L):Ef(h)}g=g.sibling}e:for(g=null,h=e;;){if(h.tag===5){if(g===null){g=h;try{o=h.stateNode,d?(n=o.style,typeof n.setProperty=="function"?n.setProperty("display","none","important"):n.display="none"):(s=h.stateNode,u=h.memoizedProps.style,l=u!=null&&u.hasOwnProperty("display")?u.display:null,s.style.display=Xf("display",l))}catch(I){Pe(e,e.return,I)}}}else if(h.tag===6){if(g===null)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(I){Pe(e,e.return,I)}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===e)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;h.sibling===null;){if(h.return===null||h.return===e)break e;g===h&&(g=null),h=h.return}g===h&&(g=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:Tt(t,e),qt(e),r&4&&Af(e);break;case 21:break;default:Tt(t,e),qt(e)}}function qt(e){var t=e.flags;if(t&2){try{e:{for(var a=e.return;a!==null;){if(Sp(a)){var r=a;break e}a=a.return}throw Error(P(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(_o(o,""),r.flags&=-33);var n=Df(e);_u(e,n,o);break;case 3:case 4:var l=r.stateNode.containerInfo,s=Df(e);Hu(e,s,l);break;default:throw Error(P(161))}}catch(u){Pe(e,e.return,u)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Kh(e,t,a){z=e,wp(e,t,a)}function wp(e,t,a){for(var r=(e.mode&1)!==0;z!==null;){var o=z,n=o.child;if(o.tag===22&&r){var l=o.memoizedState!==null||ol;if(!l){var s=o.alternate,u=s!==null&&s.memoizedState!==null||$e;s=ol;var d=$e;if(ol=l,($e=u)&&!d)for(z=o;z!==null;)l=z,u=l.child,l.tag===22&&l.memoizedState!==null?Ff(o):u!==null?(u.return=l,z=u):Ff(o);for(;n!==null;)z=n,wp(n,t,a),n=n.sibling;z=o,ol=s,$e=d}Mf(e,t,a)}else(o.subtreeFlags&8772)!==0&&n!==null?(n.return=o,z=n):Mf(e,t,a)}}function Mf(e){for(;z!==null;){var t=z;if((t.flags&8772)!==0){var a=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:$e||jl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!$e)if(a===null)r.componentDidMount();else{var o=t.elementType===t.type?a.memoizedProps:Rt(t.type,a.memoizedProps);r.componentDidUpdate(o,a.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var n=t.updateQueue;n!==null&&hf(t,n,r);break;case 3:var l=t.updateQueue;if(l!==null){if(a=null,t.child!==null)switch(t.child.tag){case 5:a=t.child.stateNode;break;case 1:a=t.child.stateNode}hf(t,l,a)}break;case 5:var s=t.stateNode;if(a===null&&t.flags&4){a=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&a.focus();break;case"img":u.src&&(a.src=u.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var g=d.memoizedState;if(g!==null){var h=g.dehydrated;h!==null&&$o(h)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(P(163))}$e||t.flags&512&&Nu(t)}catch(m){Pe(t,t.return,m)}}if(t===e){z=null;break}if(a=t.sibling,a!==null){a.return=t.return,z=a;break}z=t.return}}function Ef(e){for(;z!==null;){var t=z;if(t===e){z=null;break}var a=t.sibling;if(a!==null){a.return=t.return,z=a;break}z=t.return}}function Ff(e){for(;z!==null;){var t=z;try{switch(t.tag){case 0:case 11:case 15:var a=t.return;try{jl(4,t)}catch(u){Pe(t,a,u)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(u){Pe(t,o,u)}}var n=t.return;try{Nu(t)}catch(u){Pe(t,n,u)}break;case 5:var l=t.return;try{Nu(t)}catch(u){Pe(t,l,u)}}}catch(u){Pe(t,t.return,u)}if(t===e){z=null;break}var s=t.sibling;if(s!==null){s.return=t.return,z=s;break}z=t.return}}var jh=Math.ceil,Bl=ua.ReactCurrentDispatcher,ki=ua.ReactCurrentOwner,vt=ua.ReactCurrentBatchConfig,le=0,Oe=null,De=null,Ne=0,st=0,_r=Aa(0),Fe=0,an=null,nr=0,Xl=0,bi=0,Uo=null,et=null,Pi=0,eo=1/0,Jt=null,Ol=!1,qu=null,ka=null,nl=!1,La=null,zl=0,No=0,Wu=null,pl=-1,ml=0;function Qe(){return(le&6)!==0?Te():pl!==-1?pl:pl=Te()}function ba(e){return(e.mode&1)===0?1:(le&2)!==0&&Ne!==0?Ne&-Ne:Ah.transition!==null?(ml===0&&(ml=uc()),ml):(e=pe,e!==0||(e=window.event,e=e===void 0?16:gc(e.type)),e)}function Et(e,t,a,r){if(50<No)throw No=0,Wu=null,Error(P(185));rn(e,a,r),((le&2)===0||e!==Oe)&&(e===Oe&&((le&2)===0&&(Xl|=a),Fe===4&&xa(e,Ne)),ot(e,r),a===1&&le===0&&(t.mode&1)===0&&(eo=Te()+500,$l&&Ma()))}function ot(e,t){var a=e.callbackNode;Eg(e,t);var r=yl(e,e===Oe?Ne:0);if(r===0)a!==null&&_d(a),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(a!=null&&_d(a),t===1)e.tag===0?Dh(Bf.bind(null,e)):Fc(Bf.bind(null,e)),bh(function(){(le&6)===0&&Ma()}),a=null;else{switch(ic(r)){case 1:a=Ju;break;case 4:a=lc;break;case 16:a=Ll;break;case 536870912:a=sc;break;default:a=Ll}a=Mp(a,kp.bind(null,e))}e.callbackPriority=t,e.callbackNode=a}}function kp(e,t){if(pl=-1,ml=0,(le&6)!==0)throw Error(P(327));var a=e.callbackNode;if(Kr()&&e.callbackNode!==a)return null;var r=yl(e,e===Oe?Ne:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=Ul(e,r);else{t=r;var o=le;le|=2;var n=Pp();(Oe!==e||Ne!==t)&&(Jt=null,eo=Te()+500,er(e,t));do try{Yh();break}catch(s){bp(e,s)}while(!0);ci(),Bl.current=n,le=o,De!==null?t=0:(Oe=null,Ne=0,t=Fe)}if(t!==0){if(t===2&&(o=hu(e),o!==0&&(r=o,t=Vu(e,o))),t===1)throw a=an,er(e,0),xa(e,r),ot(e,Te()),a;if(t===6)xa(e,r);else{if(o=e.current.alternate,(r&30)===0&&!Xh(o)&&(t=Ul(e,r),t===2&&(n=hu(e),n!==0&&(r=n,t=Vu(e,n))),t===1))throw a=an,er(e,0),xa(e,r),ot(e,Te()),a;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(P(345));case 2:Qa(e,et,Jt);break;case 3:if(xa(e,r),(r&130023424)===r&&(t=Pi+500-Te(),10<t)){if(yl(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){Qe(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=wu(Qa.bind(null,e,et,Jt),t);break}Qa(e,et,Jt);break;case 4:if(xa(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-Mt(r);n=1<<l,l=t[l],l>o&&(o=l),r&=~n}if(r=o,r=Te()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jh(r/1960))-r,10<r){e.timeoutHandle=wu(Qa.bind(null,e,et,Jt),r);break}Qa(e,et,Jt);break;case 5:Qa(e,et,Jt);break;default:throw Error(P(329))}}}return ot(e,Te()),e.callbackNode===a?kp.bind(null,e):null}function Vu(e,t){var a=Uo;return e.current.memoizedState.isDehydrated&&(er(e,t).flags|=256),e=Ul(e,t),e!==2&&(t=et,et=a,t!==null&&$u(t)),e}function $u(e){et===null?et=e:et.push.apply(et,e)}function Xh(e){for(var t=e;;){if(t.flags&16384){var a=t.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var r=0;r<a.length;r++){var o=a[r],n=o.getSnapshot;o=o.value;try{if(!Ft(n(),o))return!1}catch{return!1}}}if(a=t.child,t.subtreeFlags&16384&&a!==null)a.return=t,t=a;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function xa(e,t){for(t&=~bi,t&=~Xl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var a=31-Mt(t),r=1<<a;e[a]=-1,t&=~r}}function Bf(e){if((le&6)!==0)throw Error(P(327));Kr();var t=yl(e,0);if((t&1)===0)return ot(e,Te()),null;var a=Ul(e,t);if(e.tag!==0&&a===2){var r=hu(e);r!==0&&(t=r,a=Vu(e,r))}if(a===1)throw a=an,er(e,0),xa(e,t),ot(e,Te()),a;if(a===6)throw Error(P(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Qa(e,et,Jt),ot(e,Te()),null}function Ti(e,t){var a=le;le|=1;try{return e(t)}finally{le=a,le===0&&(eo=Te()+500,$l&&Ma())}}function lr(e){La!==null&&La.tag===0&&(le&6)===0&&Kr();var t=le;le|=1;var a=vt.transition,r=pe;try{if(vt.transition=null,pe=1,e)return e()}finally{pe=r,vt.transition=a,le=t,(le&6)===0&&Ma()}}function Ri(){st=_r.current,Se(_r)}function er(e,t){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,kh(a)),De!==null)for(a=De.return;a!==null;){var r=a;switch(ii(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&kl();break;case 3:Zr(),Se(at),Se(Ge),vi();break;case 5:xi(r);break;case 4:Zr();break;case 13:Se(we);break;case 19:Se(we);break;case 10:pi(r.type._context);break;case 22:case 23:Ri()}a=a.return}if(Oe=e,De=e=Pa(e.current,null),Ne=st=t,Fe=0,an=null,bi=Xl=nr=0,et=Uo=null,Za!==null){for(t=0;t<Za.length;t++)if(a=Za[t],r=a.interleaved,r!==null){a.interleaved=null;var o=r.next,n=a.pending;if(n!==null){var l=n.next;n.next=o,r.next=l}a.pending=r}Za=null}return e}function bp(e,t){do{var a=De;try{if(ci(),dl.current=Fl,El){for(var r=ke.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}El=!1}if(or=0,Be=Ee=ke=null,Oo=!1,Jo=0,ki.current=null,a===null||a.return===null){Fe=1,an=t,De=null;break}e:{var n=e,l=a.return,s=a,u=t;if(t=Ne,s.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){var d=u,g=s,h=g.tag;if((g.mode&1)===0&&(h===0||h===11||h===15)){var m=g.alternate;m?(g.updateQueue=m.updateQueue,g.memoizedState=m.memoizedState,g.lanes=m.lanes):(g.updateQueue=null,g.memoizedState=null)}var L=If(l);if(L!==null){L.flags&=-257,Cf(L,l,s,n,t),L.mode&1&&Sf(n,d,t),t=L,u=d;var y=t.updateQueue;if(y===null){var I=new Set;I.add(u),t.updateQueue=I}else y.add(u);break e}else{if((t&1)===0){Sf(n,d,t),Di();break e}u=Error(P(426))}}else if(Ce&&s.mode&1){var U=If(l);if(U!==null){(U.flags&65536)===0&&(U.flags|=256),Cf(U,l,s,n,t),di(Jr(u,s));break e}}n=u=Jr(u,s),Fe!==4&&(Fe=2),Uo===null?Uo=[n]:Uo.push(n),n=l;do{switch(n.tag){case 3:n.flags|=65536,t&=-t,n.lanes|=t;var c=ip(n,u,t);gf(n,c);break e;case 1:s=u;var i=n.type,f=n.stateNode;if((n.flags&128)===0&&(typeof i.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(ka===null||!ka.has(f)))){n.flags|=65536,t&=-t,n.lanes|=t;var v=dp(n,s,t);gf(n,v);break e}}n=n.return}while(n!==null)}Rp(a)}catch(w){t=w,De===a&&a!==null&&(De=a=a.return);continue}break}while(!0)}function Pp(){var e=Bl.current;return Bl.current=Fl,e===null?Fl:e}function Di(){(Fe===0||Fe===3||Fe===2)&&(Fe=4),Oe===null||(nr&268435455)===0&&(Xl&268435455)===0||xa(Oe,Ne)}function Ul(e,t){var a=le;le|=2;var r=Pp();(Oe!==e||Ne!==t)&&(Jt=null,er(e,t));do try{Qh();break}catch(o){bp(e,o)}while(!0);if(ci(),le=a,Bl.current=r,De!==null)throw Error(P(261));return Oe=null,Ne=0,Fe}function Qh(){for(;De!==null;)Tp(De)}function Yh(){for(;De!==null&&!wg();)Tp(De)}function Tp(e){var t=Ap(e.alternate,e,st);e.memoizedProps=e.pendingProps,t===null?Rp(e):De=t,ki.current=null}function Rp(e){var t=e;do{var a=t.alternate;if(e=t.return,(t.flags&32768)===0){if(a=Wh(a,t,st),a!==null){De=a;return}}else{if(a=Vh(a,t),a!==null){a.flags&=32767,De=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Fe=6,De=null;return}}if(t=t.sibling,t!==null){De=t;return}De=t=e}while(t!==null);Fe===0&&(Fe=5)}function Qa(e,t,a){var r=pe,o=vt.transition;try{vt.transition=null,pe=1,Zh(e,t,a,r)}finally{vt.transition=o,pe=r}return null}function Zh(e,t,a,r){do Kr();while(La!==null);if((le&6)!==0)throw Error(P(327));a=e.finishedWork;var o=e.finishedLanes;if(a===null)return null;if(e.finishedWork=null,e.finishedLanes=0,a===e.current)throw Error(P(177));e.callbackNode=null,e.callbackPriority=0;var n=a.lanes|a.childLanes;if(Fg(e,n),e===Oe&&(De=Oe=null,Ne=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||nl||(nl=!0,Mp(Ll,function(){return Kr(),null})),n=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||n){n=vt.transition,vt.transition=null;var l=pe;pe=1;var s=le;le|=4,ki.current=null,Gh(e,a),Cp(a,e),yh(Iu),Sl=!!Su,Iu=Su=null,e.current=a,Kh(a,e,o),kg(),le=s,pe=l,vt.transition=n}else e.current=a;if(nl&&(nl=!1,La=e,zl=o),n=e.pendingLanes,n===0&&(ka=null),Tg(a.stateNode,r),ot(e,Te()),t!==null)for(r=e.onRecoverableError,a=0;a<t.length;a++)o=t[a],r(o.value,{componentStack:o.stack,digest:o.digest});if(Ol)throw Ol=!1,e=qu,qu=null,e;return(zl&1)!==0&&e.tag!==0&&Kr(),n=e.pendingLanes,(n&1)!==0?e===Wu?No++:(No=0,Wu=e):No=0,Ma(),null}function Kr(){if(La!==null){var e=ic(zl),t=vt.transition,a=pe;try{if(vt.transition=null,pe=16>e?16:e,La===null)var r=!1;else{if(e=La,La=null,zl=0,(le&6)!==0)throw Error(P(331));var o=le;for(le|=4,z=e.current;z!==null;){var n=z,l=n.child;if((z.flags&16)!==0){var s=n.deletions;if(s!==null){for(var u=0;u<s.length;u++){var d=s[u];for(z=d;z!==null;){var g=z;switch(g.tag){case 0:case 11:case 15:zo(8,g,n)}var h=g.child;if(h!==null)h.return=g,z=h;else for(;z!==null;){g=z;var m=g.sibling,L=g.return;if(yp(g),g===d){z=null;break}if(m!==null){m.return=L,z=m;break}z=L}}}var y=n.alternate;if(y!==null){var I=y.child;if(I!==null){y.child=null;do{var U=I.sibling;I.sibling=null,I=U}while(I!==null)}}z=n}}if((n.subtreeFlags&2064)!==0&&l!==null)l.return=n,z=l;else e:for(;z!==null;){if(n=z,(n.flags&2048)!==0)switch(n.tag){case 0:case 11:case 15:zo(9,n,n.return)}var c=n.sibling;if(c!==null){c.return=n.return,z=c;break e}z=n.return}}var i=e.current;for(z=i;z!==null;){l=z;var f=l.child;if((l.subtreeFlags&2064)!==0&&f!==null)f.return=l,z=f;else e:for(l=i;z!==null;){if(s=z,(s.flags&2048)!==0)try{switch(s.tag){case 0:case 11:case 15:jl(9,s)}}catch(w){Pe(s,s.return,w)}if(s===l){z=null;break e}var v=s.sibling;if(v!==null){v.return=s.return,z=v;break e}z=s.return}}if(le=o,Ma(),$t&&typeof $t.onPostCommitFiberRoot=="function")try{$t.onPostCommitFiberRoot(Hl,e)}catch{}r=!0}return r}finally{pe=a,vt.transition=t}}return!1}function Of(e,t,a){t=Jr(a,t),t=ip(e,t,1),e=wa(e,t,1),t=Qe(),e!==null&&(rn(e,1,t),ot(e,t))}function Pe(e,t,a){if(e.tag===3)Of(e,e,a);else for(;t!==null;){if(t.tag===3){Of(t,e,a);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(ka===null||!ka.has(r))){e=Jr(a,e),e=dp(t,e,1),t=wa(t,e,1),e=Qe(),t!==null&&(rn(t,1,e),ot(t,e));break}}t=t.return}}function Jh(e,t,a){var r=e.pingCache;r!==null&&r.delete(t),t=Qe(),e.pingedLanes|=e.suspendedLanes&a,Oe===e&&(Ne&a)===a&&(Fe===4||Fe===3&&(Ne&130023424)===Ne&&500>Te()-Pi?er(e,0):bi|=a),ot(e,t)}function Dp(e,t){t===0&&((e.mode&1)===0?t=1:(t=$n,$n<<=1,($n&130023424)===0&&($n=4194304)));var a=Qe();e=la(e,t),e!==null&&(rn(e,t,a),ot(e,a))}function ex(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Dp(e,a)}function tx(e,t){var a=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(a=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(P(314))}r!==null&&r.delete(t),Dp(e,a)}var Ap;Ap=function(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps||at.current)tt=!0;else{if((e.lanes&a)===0&&(t.flags&128)===0)return tt=!1,qh(e,t,a);tt=(e.flags&131072)!==0}else tt=!1,Ce&&(t.flags&1048576)!==0&&Bc(t,Tl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cl(e,t),e=t.pendingProps;var o=Xr(t,Ge.current);Gr(t,a),o=yi(null,t,r,e,o,a);var n=Si();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,rt(r)?(n=!0,bl(t)):n=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,gi(t),o.updater=Kl,t.stateNode=o,o._reactInternals=t,Au(t,r,e,a),t=Fu(null,t,r,!0,n,a)):(t.tag=0,Ce&&n&&ui(t),Xe(null,t,o,a),t=t.child),t;case 16:r=t.elementType;e:{switch(cl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=rx(r),e=Rt(r,e),o){case 0:t=Eu(null,t,r,e,a);break e;case 1:t=bf(null,t,r,e,a);break e;case 11:t=wf(null,t,r,e,a);break e;case 14:t=kf(null,t,r,Rt(r.type,e),a);break e}throw Error(P(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),Eu(e,t,r,o,a);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),bf(e,t,r,o,a);case 3:e:{if(mp(t),e===null)throw Error(P(387));r=t.pendingProps,n=t.memoizedState,o=n.element,_c(e,t),Al(t,r,null,a);var l=t.memoizedState;if(r=l.element,n.isDehydrated)if(n={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){o=Jr(Error(P(423)),t),t=Pf(e,t,r,a,o);break e}else if(r!==o){o=Jr(Error(P(424)),t),t=Pf(e,t,r,a,o);break e}else for(ut=Ca(t.stateNode.containerInfo.firstChild),it=t,Ce=!0,At=null,a=Nc(t,null,r,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Qr(),r===o){t=sa(e,t,a);break e}Xe(e,t,r,a)}t=t.child}return t;case 5:return qc(t),e===null&&Tu(t),r=t.type,o=t.pendingProps,n=e!==null?e.memoizedProps:null,l=o.children,Cu(r,o)?l=null:n!==null&&Cu(r,n)&&(t.flags|=32),pp(e,t),Xe(e,t,l,a),t.child;case 6:return e===null&&Tu(t),null;case 13:return gp(e,t,a);case 4:return hi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Yr(t,null,r,a):Xe(e,t,r,a),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),wf(e,t,r,o,a);case 7:return Xe(e,t,t.pendingProps,a),t.child;case 8:return Xe(e,t,t.pendingProps.children,a),t.child;case 12:return Xe(e,t,t.pendingProps.children,a),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,n=t.memoizedProps,l=o.value,ve(Rl,r._currentValue),r._currentValue=l,n!==null)if(Ft(n.value,l)){if(n.children===o.children&&!at.current){t=sa(e,t,a);break e}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var s=n.dependencies;if(s!==null){l=n.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(n.tag===1){u=ra(-1,a&-a),u.tag=2;var d=n.updateQueue;if(d!==null){d=d.shared;var g=d.pending;g===null?u.next=u:(u.next=g.next,g.next=u),d.pending=u}}n.lanes|=a,u=n.alternate,u!==null&&(u.lanes|=a),Ru(n.return,a,t),s.lanes|=a;break}u=u.next}}else if(n.tag===10)l=n.type===t.type?null:n.child;else if(n.tag===18){if(l=n.return,l===null)throw Error(P(341));l.lanes|=a,s=l.alternate,s!==null&&(s.lanes|=a),Ru(l,a,t),l=n.sibling}else l=n.child;if(l!==null)l.return=n;else for(l=n;l!==null;){if(l===t){l=null;break}if(n=l.sibling,n!==null){n.return=l.return,l=n;break}l=l.return}n=l}Xe(e,t,o.children,a),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Gr(t,a),o=Lt(o),r=r(o),t.flags|=1,Xe(e,t,r,a),t.child;case 14:return r=t.type,o=Rt(r,t.pendingProps),o=Rt(r.type,o),kf(e,t,r,o,a);case 15:return fp(e,t,t.type,t.pendingProps,a);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Rt(r,o),cl(e,t),t.tag=1,rt(r)?(e=!0,bl(t)):e=!1,Gr(t,a),up(t,r,o),Au(t,r,o,a),Fu(null,t,r,!0,e,a);case 19:return hp(e,t,a);case 22:return cp(e,t,a)}throw Error(P(156,t.tag))};function Mp(e,t){return nc(e,t)}function ax(e,t,a,r){this.tag=e,this.key=a,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 xt(e,t,a,r){return new ax(e,t,a,r)}function Ai(e){return e=e.prototype,!(!e||!e.isReactComponent)}function rx(e){if(typeof e=="function")return Ai(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Qu)return 11;if(e===Yu)return 14}return 2}function Pa(e,t){var a=e.alternate;return a===null?(a=xt(e.tag,t,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=t,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,t=e.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function gl(e,t,a,r,o,n){var l=2;if(r=e,typeof e=="function")Ai(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Ar:return tr(a.children,o,n,t);case Xu:l=8,o|=8;break;case tu:return e=xt(12,a,t,o|2),e.elementType=tu,e.lanes=n,e;case au:return e=xt(13,a,t,o),e.elementType=au,e.lanes=n,e;case ru:return e=xt(19,a,t,o),e.elementType=ru,e.lanes=n,e;case qf:return Ql(a,o,n,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Hf:l=10;break e;case _f:l=9;break e;case Qu:l=11;break e;case Yu:l=14;break e;case ma:l=16,r=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=xt(l,a,t,o),t.elementType=e,t.type=r,t.lanes=n,t}function tr(e,t,a,r){return e=xt(7,e,r,t),e.lanes=a,e}function Ql(e,t,a,r){return e=xt(22,e,r,t),e.elementType=qf,e.lanes=a,e.stateNode={isHidden:!1},e}function Zs(e,t,a){return e=xt(6,e,null,t),e.lanes=a,e}function Js(e,t,a){return t=xt(4,e.children!==null?e.children:[],e.key,t),t.lanes=a,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ox(e,t,a,r,o){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=Os(0),this.expirationTimes=Os(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Os(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Mi(e,t,a,r,o,n,l,s,u){return e=new ox(e,t,a,s,u),t===1?(t=1,n===!0&&(t|=8)):t=0,n=xt(3,null,null,t),e.current=n,n.stateNode=e,n.memoizedState={element:r,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},gi(n),e}function nx(e,t,a){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Dr,key:r==null?null:""+r,children:e,containerInfo:t,implementation:a}}function Ep(e){if(!e)return Ra;e=e._reactInternals;e:{if(ur(e)!==e||e.tag!==1)throw Error(P(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(rt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(P(171))}if(e.tag===1){var a=e.type;if(rt(a))return Ec(e,a,t)}return t}function Fp(e,t,a,r,o,n,l,s,u){return e=Mi(a,r,!0,e,o,n,l,s,u),e.context=Ep(null),a=e.current,r=Qe(),o=ba(a),n=ra(r,o),n.callback=t??null,wa(a,n,o),e.current.lanes=o,rn(e,o,r),ot(e,r),e}function Yl(e,t,a,r){var o=t.current,n=Qe(),l=ba(o);return a=Ep(a),t.context===null?t.context=a:t.pendingContext=a,t=ra(n,l),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=wa(o,t,l),e!==null&&(Et(e,o,l,n),il(e,o,l)),l}function Nl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function zf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function Ei(e,t){zf(e,t),(e=e.alternate)&&zf(e,t)}function lx(){return null}var Bp=typeof reportError=="function"?reportError:function(e){console.error(e)};function Fi(e){this._internalRoot=e}Zl.prototype.render=Fi.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(P(409));Yl(e,t,null,null)};Zl.prototype.unmount=Fi.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;lr(function(){Yl(null,e,null,null)}),t[na]=null}};function Zl(e){this._internalRoot=e}Zl.prototype.unstable_scheduleHydration=function(e){if(e){var t=cc();e={blockedOn:null,target:e,priority:t};for(var a=0;a<ha.length&&t!==0&&t<ha[a].priority;a++);ha.splice(a,0,e),a===0&&mc(e)}};function Bi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Jl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Uf(){}function sx(e,t,a,r,o){if(o){if(typeof r=="function"){var n=r;r=function(){var d=Nl(l);n.call(d)}}var l=Fp(t,r,e,0,null,!1,!1,"",Uf);return e._reactRootContainer=l,e[na]=l.current,jo(e.nodeType===8?e.parentNode:e),lr(),l}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var s=r;r=function(){var d=Nl(u);s.call(d)}}var u=Mi(e,0,!1,null,null,!1,!1,"",Uf);return e._reactRootContainer=u,e[na]=u.current,jo(e.nodeType===8?e.parentNode:e),lr(function(){Yl(t,u,a,r)}),u}function es(e,t,a,r,o){var n=a._reactRootContainer;if(n){var l=n;if(typeof o=="function"){var s=o;o=function(){var u=Nl(l);s.call(u)}}Yl(t,l,e,o)}else l=sx(a,t,e,o,r);return Nl(l)}dc=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var a=Ro(t.pendingLanes);a!==0&&(ei(t,a|1),ot(t,Te()),(le&6)===0&&(eo=Te()+500,Ma()))}break;case 13:lr(function(){var r=la(e,1);if(r!==null){var o=Qe();Et(r,e,1,o)}}),Ei(e,1)}};ti=function(e){if(e.tag===13){var t=la(e,134217728);if(t!==null){var a=Qe();Et(t,e,134217728,a)}Ei(e,134217728)}};fc=function(e){if(e.tag===13){var t=ba(e),a=la(e,t);if(a!==null){var r=Qe();Et(a,e,t,r)}Ei(e,t)}};cc=function(){return pe};pc=function(e,t){var a=pe;try{return pe=e,t()}finally{pe=a}};pu=function(e,t,a){switch(t){case"input":if(lu(e,a),t=a.name,a.type==="radio"&&t!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+t)+\'][type="radio"]\'),t=0;t<a.length;t++){var r=a[t];if(r!==e&&r.form===e.form){var o=Vl(r);if(!o)throw Error(P(90));Vf(r),lu(r,o)}}}break;case"textarea":Gf(e,a);break;case"select":t=a.value,t!=null&&qr(e,!!a.multiple,t,!1)}};Jf=Ti;ec=lr;var ux={usingClientEntryPoint:!1,Events:[nn,Br,Vl,Yf,Zf,Ti]},ko={findFiberByHostInstance:Ya,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},ix={bundleType:ko.bundleType,version:ko.version,rendererPackageName:ko.rendererPackageName,rendererConfig:ko.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=rc(e),e===null?null:e.stateNode},findFiberByHostInstance:ko.findFiberByHostInstance||lx,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(bo=__REACT_DEVTOOLS_GLOBAL_HOOK__,!bo.isDisabled&&bo.supportsFiber))try{Hl=bo.inject(ix),$t=bo}catch{}var bo;ct.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ux;ct.createPortal=function(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Bi(t))throw Error(P(200));return nx(e,t,null,a)};ct.createRoot=function(e,t){if(!Bi(e))throw Error(P(299));var a=!1,r="",o=Bp;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=Mi(e,1,!1,null,null,a,!1,r,o),e[na]=t.current,jo(e.nodeType===8?e.parentNode:e),new Fi(t)};ct.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(P(188)):(e=Object.keys(e).join(","),Error(P(268,e)));return e=rc(t),e=e===null?null:e.stateNode,e};ct.flushSync=function(e){return lr(e)};ct.hydrate=function(e,t,a){if(!Jl(t))throw Error(P(200));return es(null,e,t,!0,a)};ct.hydrateRoot=function(e,t,a){if(!Bi(e))throw Error(P(405));var r=a!=null&&a.hydratedSources||null,o=!1,n="",l=Bp;if(a!=null&&(a.unstable_strictMode===!0&&(o=!0),a.identifierPrefix!==void 0&&(n=a.identifierPrefix),a.onRecoverableError!==void 0&&(l=a.onRecoverableError)),t=Fp(t,null,e,1,a??null,o,!1,n,l),e[na]=t.current,jo(e),r)for(e=0;e<r.length;e++)a=r[e],o=a._getVersion,o=o(a._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[a,o]:t.mutableSourceEagerHydrationData.push(a,o);return new Zl(t)};ct.render=function(e,t,a){if(!Jl(t))throw Error(P(200));return es(null,e,t,!1,a)};ct.unmountComponentAtNode=function(e){if(!Jl(e))throw Error(P(40));return e._reactRootContainer?(lr(function(){es(null,null,e,!1,function(){e._reactRootContainer=null,e[na]=null})}),!0):!1};ct.unstable_batchedUpdates=Ti;ct.unstable_renderSubtreeIntoContainer=function(e,t,a,r){if(!Jl(a))throw Error(P(200));if(e==null||e._reactInternals===void 0)throw Error(P(38));return es(e,t,a,!1,r)};ct.version="18.3.1-next-f1338f8080-20240426"});var ro=Zt((gv,Up)=>{"use strict";function zp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(zp)}catch(e){console.error(e)}}zp(),Up.exports=Op()});var Hp=Zt(Oi=>{"use strict";var Np=ro();Oi.createRoot=Np.createRoot,Oi.hydrateRoot=Np.hydrateRoot;var hv});var Gp=Zt(os=>{"use strict";var mx=Ie(),gx=Symbol.for("react.element"),hx=Symbol.for("react.fragment"),xx=Object.prototype.hasOwnProperty,vx=mx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Lx={key:!0,ref:!0,__self:!0,__source:!0};function $p(e,t,a){var r,o={},n=null,l=null;a!==void 0&&(n=""+a),t.key!==void 0&&(n=""+t.key),t.ref!==void 0&&(l=t.ref);for(r in t)xx.call(t,r)&&!Lx.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:gx,type:e,key:n,ref:l,props:o,_owner:vx.current}}os.Fragment=hx;os.jsx=$p;os.jsxs=$p});var _=Zt((VL,Kp)=>{"use strict";Kp.exports=Gp()});var km=D(Hp(),1);var ee=D(Ie(),1),Sm=D(ro(),1);function _p(e){return e.trim().replace(/^\\|/,"").replace(/\\|$/,"").split("|").map(a=>a.trim())}function dx(e){return/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)+\\|?\\s*$/.test(e)}function fx(e){let t=e.split(`\n`),a=[],r=0;for(;r<t.length;){let o=t[r]??"",n=t[r+1]??"";if(o.includes("|")&&dx(n)){let l=_p(o),s=[];for(r+=2;r<t.length&&t[r].includes("|")&&t[r].trim()!=="";)s.push(_p(t[r])),r+=1;let u=`<tr>${l.map(g=>`<th style="text-align:left;padding:7px 10px;border:1px solid #334155;color:#e2e8f0;background:#0f172a;">${g}</th>`).join("")}</tr>`,d=s.map(g=>`<tr>${g.map(h=>`<td style="padding:7px 10px;border:1px solid #334155;color:#cbd5e1;vertical-align:top;">${h}</td>`).join("")}</tr>`).join("");a.push(`<div style="overflow-x:auto;margin:0.65em 0;"><table style="border-collapse:collapse;min-width:360px;width:100%;font-size:12px;"><thead>${u}</thead><tbody>${d}</tbody></table></div>`);continue}a.push(t[r]),r+=1}return a.join(`\n`)}function ts(e){if(!e)return\'<span style="color:#475569;font-style:italic;">No description yet</span>\';let t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return fx(t).replace(/^### (.+)$/gm,\'<h3 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.05em;color:#cbd5e1;">$1</h3>\').replace(/^## (.+)$/gm,\'<h2 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.2em;color:#f1f5f9;">$1</h2>\').replace(/^# (.+)$/gm,\'<h1 style="font-weight:700;margin:0.8em 0 0.3em;font-size:1.4em;color:#f1f5f9;">$1</h1>\').replace(/[*][*]([^\\n]+?)[*][*]/g,\'<strong style="font-weight:700;color:#f1f5f9;">$1</strong>\').replace(/__([^\\n]+?)__/g,\'<strong style="font-weight:700;color:#f1f5f9;">$1</strong>\').replace(/[*]([^\\n*]+?)[*]/g,\'<em style="font-style:italic;color:#94a3b8;">$1</em>\').replace(/(?<![a-zA-Z0-9])_([^_\\n]+?)_(?![a-zA-Z0-9])/g,\'<em style="font-style:italic;color:#94a3b8;">$1</em>\').replace(/`(.+?)`/g,\'<code style="font-family:Menlo,monospace;font-size:12px;background:#1e293b;padding:1px 5px;border-radius:3px;color:#7dd3fc;">$1</code>\').replace(/\\[([^\\]]+)\\]\\((https?:\\/\\/[^)]+)\\)/g,\'<a href="$2" target="_blank" rel="noopener noreferrer" style="color:#60a5fa;text-decoration:underline;">$1</a>\').replace(/(^|[\\s(>])((https?:\\/\\/)[^\\s<>"\']+)/g,\'$1<a href="$2" target="_blank" rel="noopener noreferrer" style="color:#60a5fa;text-decoration:underline;word-break:break-all;">$2</a>\').replace(/(^|[^\\w])#([a-f0-9]{30})(?![a-f0-9])/gi,\'$1<a href="#task-$2" data-task-ref="$2" style="color:#60a5fa;text-decoration:underline;font-family:Menlo,monospace;">#$2</a>\').replace(/^[-*] (.+)$/gm,\'<li style="margin:0.2em 0;display:list-item;">$1</li>\').replace(/^---$/gm,\'<hr style="border:none;border-top:1px solid #334155;margin:0.8em 0;">\').replace(/(<li[^>]*>[\\s\\S]*?<\\/li>\\n?)+/g,r=>`<ul style="padding-left:1.5em;margin:0.4em 0;list-style-type:disc;">${r}</ul>`).replace(/^(?!<[a-z]|$).+$/gm,r=>`<p style="margin:0.5em 0;">${r}</p>`)}var cx="proto-comments-seen";function zi(e,t){try{let a=localStorage.getItem(cx),r=a?JSON.parse(a):{};return t>(r[e]??0)}catch{return!1}}function Ui(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function nt(e){try{return new Date(e).toLocaleString()}catch{return e}}var px=16;var Lv=BigInt("9".repeat(px));function Ni(e,t){return e.sortKey&&t.sortKey?e.sortKey<t.sortKey?-1:e.sortKey>t.sortKey?1:0:e.sortKey?-1:t.sortKey?1:(t.updatedAt??t.createdAt??"").localeCompare(e.updatedAt??e.createdAt??"")}var Oa=D(Ie(),1);var rs=D(Ie());var qp=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),as=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();var sn=D(Ie());var Wp={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Vp=(0,sn.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:o="",children:n,iconNode:l,...s},u)=>(0,sn.createElement)("svg",{ref:u,...Wp,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:as("lucide",o),...s},[...l.map(([d,g])=>(0,sn.createElement)(d,g)),...Array.isArray(n)?n:[n]]));var Z=(e,t)=>{let a=(0,rs.forwardRef)(({className:r,...o},n)=>(0,rs.createElement)(Vp,{ref:n,iconNode:t,className:as(`lucide-${qp(e)}`,r),...o}));return a.displayName=`${e}`,a};var ir=Z("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var un=Z("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var Ea=Z("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var dr=Z("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);var dn=Z("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var oo=Z("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var fn=Z("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);var cn=Z("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var pn=Z("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var mn=Z("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"}]]);var fr=Z("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);var Fa=Z("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);var cr=Z("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);var gn=Z("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var hn=Z("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);var pr=Z("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var no=Z("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var Ba=Z("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"}]]);var lo=Z("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var xn=Z("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"}]]);var vn=Z("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);var ze=Z("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var so=D(Ie(),1),om=D(ro(),1);var Qp=D(_(),1),jp={Bug:{background:"rgba(239,68,68,0.12)",color:"#f87171",border:"rgba(239,68,68,0.25)"},Research:{background:"rgba(192,132,252,0.12)",color:"#c084fc",border:"rgba(139,92,246,0.2)"},Task:{background:"rgba(148,163,184,0.1)",color:"#94a3b8",border:"rgba(148,163,184,0.2)"}};function Xp({type:e,style:t}){let a=typeof e=="string"&&e.trim()&&e!=="[object Object]"&&jp[e]?e:"Task",r=jp[a];return(0,Qp.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",padding:"1px 5px",borderRadius:3,flexShrink:0,textTransform:"uppercase",background:r.background,color:r.color,border:`1px solid ${r.border}`,lineHeight:"1.5",...t},children:a})}var Jp=D(_(),1),Yp={Critical:{background:"rgba(239,68,68,0.15)",color:"#f87171",border:"rgba(239,68,68,0.3)"},High:{background:"rgba(249,115,22,0.12)",color:"#fb923c",border:"rgba(249,115,22,0.25)"},Medium:{background:"rgba(234,179,8,0.12)",color:"#facc15",border:"rgba(234,179,8,0.25)"},Low:{background:"rgba(148,163,184,0.1)",color:"#94a3b8",border:"rgba(148,163,184,0.2)"}};function Zp({priority:e,style:t}){if(!e||!Yp[e])return null;let a=Yp[e];return(0,Jp.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.04em",padding:"1px 5px",borderRadius:3,flexShrink:0,textTransform:"uppercase",background:a.background,color:a.color,border:`1px solid ${a.border}`,lineHeight:"1.5",...t},children:e})}var mr=[{value:"Task",icon:"\\u2611",label:"Task",css:"type-task",tooltip:"A general task or feature to implement."},{value:"Bug",icon:"\\u{1F41E}",label:"Bug",css:"type-bug",tooltip:"A defect \\u2014 annotator collects page errors and console logs to help reproduce it."},{value:"Research",icon:"\\u{1F52C}",label:"Research",css:"type-research",tooltip:"A research task \\u2014 agent will NOT write code but must attach a findings report."}],KL=mr.map(e=>e.value),tm=Object.fromEntries(mr.map(e=>[e.value,e.icon])),jL=Object.fromEntries(mr.map(e=>[e.value,e.css])),em={Task:"#94a3b8",Bug:"#ef4444",Research:"#a855f7"};function Ln(e){return em[e??"Task"]??em.Task}var am=[{bg:"color-mix(in srgb, var(--p-blue) 14%, transparent)",text:"var(--p-blue-200)",border:"color-mix(in srgb, var(--p-blue) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-green) 14%, transparent)",text:"var(--p-green-300)",border:"color-mix(in srgb, var(--p-green) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-purple) 14%, transparent)",text:"var(--p-purple-300)",border:"color-mix(in srgb, var(--p-purple) 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-amber) 14%, transparent)",text:"var(--p-amber-300)",border:"color-mix(in srgb, var(--p-amber) 30%, transparent)"},{bg:"color-mix(in srgb, #f472b6 14%, transparent)",text:"#f9a8d4",border:"color-mix(in srgb, #f472b6 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-cyan) 14%, transparent)",text:"var(--p-cyan-300)",border:"color-mix(in srgb, var(--p-cyan) 30%, transparent)"},{bg:"color-mix(in srgb, #f87171 14%, transparent)",text:"#fca5a5",border:"color-mix(in srgb, #f87171 30%, transparent)"},{bg:"color-mix(in srgb, var(--p-text-g) 14%, transparent)",text:"var(--p-text-m)",border:"color-mix(in srgb, var(--p-text-g) 30%, transparent)"}];function yx(e){let t=0;for(let a=0;a<e.length;a++)t=t*31+e.charCodeAt(a)>>>0;return t%am.length}function Bt(e){return am[yx(e)]}var yn=D(_(),1);function Sn({tags:e,onRemove:t,size:a="sm"}){if(!e.length)return null;let r=a==="xs"?"1px 6px":"2px 7px",o=a==="xs"?9:10;return(0,yn.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:3,alignItems:"center"},children:e.map(n=>{let{bg:l,text:s,border:u}=Bt(n);return(0,yn.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,padding:r,borderRadius:100,background:l,border:`1px solid ${u}`,color:s,fontSize:o,fontWeight:600,whiteSpace:"nowrap"},children:[n,t&&(0,yn.jsx)("button",{type:"button",onClick:d=>{d.stopPropagation(),t(n)},style:{display:"flex",background:"none",border:"none",color:s,cursor:"pointer",padding:0,lineHeight:1,opacity:.7},onMouseEnter:d=>{d.currentTarget.style.opacity="1"},onMouseLeave:d=>{d.currentTarget.style.opacity="0.7"},children:"\\xD7"})]},n)})})}var se=D(_(),1);function Sx(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function nm(e,t){if(!/^#[0-9a-fA-F]{6}$/.test(e))return;let a=Math.max(0,Math.min(1,t)),r=Math.round(a*255).toString(16).padStart(2,"0");return`${e}${r}`}function lm(e,t){return nm(e,t==="Critical"?.36:t==="High"?.3:.24)??"color-mix(in srgb, var(--p-text-g) 40%, transparent)"}function Ix(e){return nm(e,.05)??"transparent"}var Cx={padding:"7px 8px",gap:4,opacity:.45,userSelect:"none"},wx={display:"flex",alignItems:"center",gap:5},kx={width:12,height:12,color:"color-mix(in srgb, var(--p-green) 55%, transparent)",flexShrink:0},bx={fontSize:11.5,fontWeight:600,color:"var(--p-text-g)",textDecoration:"line-through",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},Px={display:"flex",alignItems:"center",gap:5,minWidth:0},Tx={flexShrink:0},Rx={fontSize:11.5,fontWeight:600,color:"var(--p-text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},Dx={display:"flex",alignItems:"flex-start",gap:8},Ax={fontSize:10,color:"var(--p-text-g)",lineHeight:"1.45",overflow:"hidden",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,flex:1,minWidth:0},Mx={position:"relative",flexShrink:0},Ex={width:52,height:34,borderRadius:6,objectFit:"cover",border:"1px solid color-mix(in srgb, var(--p-border) 90%, transparent)",display:"block",cursor:"pointer"},Fx={display:"flex",alignItems:"center",gap:2,marginTop:1},Bx={flex:1},Hi=so.default.memo(function({task:t,col:a,liveActivity:r,onOpen:o,onDragStart:n}){var p;let l=a.id==="in-progress",s=a.id==="done",[u,d]=so.default.useState(!1),[g,h]=so.default.useState(null),m=so.default.useRef(null),L=t.commentCount??0,y=t.fileCount??0,I=L>0&&zi(t.id,L),U=lm(a.color,t.priority),c=Ln(t.type),i=Ix(c),f=(p=t.files)==null?void 0:p.find(S=>Sx(S.name)),v=f?`/api/tasks/${t.id}/files/${encodeURIComponent(f.name)}`:null;function w(S){n(S,t.id),S.currentTarget.classList.add("dragging")}function k(S){S.currentTarget.classList.remove("dragging")}return s?(0,se.jsx)("article",{className:"task-card",draggable:!0,"data-task-id":t.id,style:Cx,onDragStart:w,onDragEnd:k,onClick:()=>o(t),children:(0,se.jsxs)("div",{style:wx,children:[(0,se.jsx)(Ea,{style:kx}),(0,se.jsx)("span",{style:bx,children:t.title})]})}):(0,se.jsxs)("article",{className:`task-card${r?" task-live-edit":""}`,draggable:!0,"data-task-id":t.id,style:{padding:"7px 8px",gap:4,userSelect:"none",background:r?"rgba(59,130,246,0.08)":i,...r?{borderColor:"rgba(59,130,246,0.5)",boxShadow:"0 0 0 2px rgba(59,130,246,0.14)"}:U?{borderColor:U}:{}},onDragStart:w,onDragEnd:k,onClick:()=>o(t),children:[(0,se.jsxs)("div",{style:Px,children:[l&&(0,se.jsx)("span",{className:"spinner",style:Tx}),(0,se.jsx)("span",{style:Rx,children:t.title})]}),(t.description||v)&&(0,se.jsxs)("div",{style:Dx,children:[t.description&&(0,se.jsx)("div",{style:Ax,children:t.description}),v&&(0,se.jsxs)("div",{style:Mx,onMouseEnter:()=>{if(m.current){let S=m.current.getBoundingClientRect();h({top:S.top,right:S.right})}d(!0)},onMouseLeave:()=>{d(!1),h(null)},children:[(0,se.jsx)("img",{ref:m,src:v,alt:"Task screenshot","data-role":"task-thumb",style:Ex}),u&&g&&om.default.createPortal((0,se.jsx)("img",{src:v,alt:"Task screenshot enlarged preview","data-role":"task-thumb-preview",style:{position:"fixed",right:window.innerWidth-g.right,bottom:window.innerHeight-g.top+8,width:220,height:138,borderRadius:8,objectFit:"cover",border:"1px solid color-mix(in srgb, var(--p-border) 96%, transparent)",boxShadow:"0 10px 24px color-mix(in srgb, var(--p-bg) 75%, transparent)",pointerEvents:"none",zIndex:9999,background:"var(--p-bg)"}}),document.body)]})]}),(0,se.jsxs)("div",{className:"flex items-center",style:Fx,children:[(0,se.jsx)(Xp,{type:t.type}),t.priority&&(0,se.jsx)(Zp,{priority:t.priority}),l&&t.assigneeName&&(0,se.jsx)("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:6,background:"rgba(59,130,246,0.12)",color:"#60a5fa",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:80},children:t.assigneeName}),t.tags&&t.tags.length>0&&(0,se.jsx)(Sn,{tags:t.tags,size:"xs"}),(0,se.jsx)("div",{style:Bx}),r&&(0,se.jsx)(_i,{activity:r}),(0,se.jsx)(rm,{icon:(0,se.jsx)(fr,{style:{width:9,height:9}}),label:L>0?String(L):"",color:I?"var(--p-purple)":L>0?"var(--p-text-m)":"var(--p-border-t)",hoverColor:I?"var(--p-purple-300)":"var(--p-text)",title:L>0?`${L} comment(s)`:"Add comment",badge:I,badgeColor:"var(--p-purple)",onClick:S=>{S.stopPropagation(),o(t,"comments")}}),(0,se.jsx)(rm,{icon:(0,se.jsx)(cr,{style:{width:9,height:9}}),label:y>0?String(y):"",color:y>0?"var(--p-blue-300)":"var(--p-border-t)",hoverColor:y>0?"var(--p-cyan-300)":"var(--p-text-sub)",title:y>0?`${y} file(s) attached`:"Files",onClick:S=>{S.stopPropagation(),o(t,"files")}})]})]})});function rm({icon:e,label:t,color:a,hoverColor:r,title:o,badge:n,badgeColor:l,onClick:s}){let[u,d]=so.default.useState(!1);return(0,se.jsxs)("button",{style:{display:"inline-flex",alignItems:"center",gap:2,padding:"2px 3px",borderRadius:3,border:"none",background:u?"color-mix(in srgb, var(--p-text-m) 10%, transparent)":"transparent",cursor:"pointer",fontSize:9,color:u?r:a,transition:"color .1s, background .1s"},title:o,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:s,children:[e,t&&(0,se.jsx)("span",{children:t}),n&&(0,se.jsx)("span",{style:{width:4,height:4,background:l??a,borderRadius:"50%",flexShrink:0}})]})}function _i({activity:e}){let t=e.state==="locked"||e.state==="editing",a=t?(0,se.jsx)(mn,{style:{width:8,height:8}}):(0,se.jsx)(dn,{style:{width:8,height:8}}),r=t?`Locked by ${e.user}`:`${e.user} viewing`;return(0,se.jsxs)("span",{style:t?{display:"inline-flex",alignItems:"center",gap:3,borderRadius:999,padding:"1px 5px",fontSize:9,fontWeight:600,border:"1px solid rgba(244,114,182,0.35)",color:"#f9a8d4",background:"rgba(157,23,77,0.28)",flexShrink:0,maxWidth:110,overflow:"hidden",whiteSpace:"nowrap",flexWrap:"nowrap"}:{display:"inline-flex",alignItems:"center",gap:3,borderRadius:999,padding:"1px 5px",fontSize:9,fontWeight:600,border:"1px solid rgba(59,130,246,0.35)",color:"#93c5fd",background:"rgba(30,58,138,0.28)",flexShrink:0,maxWidth:110,overflow:"hidden",whiteSpace:"nowrap",flexWrap:"nowrap"},title:r,"data-testid":"live-activity-badge",children:[a,(0,se.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:"1 1 0"},children:e.user})]})}var ie=D(_(),1),za=[{id:"backlog",label:"Backlog",color:"var(--p-text-f)",accent:"color-mix(in srgb, var(--p-text-g) 20%, transparent)"},{id:"todo",label:"Todo",color:"var(--p-amber)",accent:"color-mix(in srgb, var(--p-amber) 12%, transparent)"},{id:"in-progress",label:"In Progress",color:"var(--p-blue)",accent:"color-mix(in srgb, var(--p-blue) 12%, transparent)",glow:!0},{id:"review",label:"Review",color:"var(--p-purple)",accent:"color-mix(in srgb, var(--p-purple) 12%, transparent)"},{id:"done",label:"Done",color:"var(--p-green)",accent:"color-mix(in srgb, var(--p-green) 10%, transparent)"}];var Ox=3;function zx(){return(0,ie.jsxs)("div",{style:{borderRadius:8,border:"1px solid var(--p-border-t)",padding:"10px 12px",background:"var(--p-bg-2)",marginBottom:6,animation:"skeleton-pulse 1.5s ease-in-out infinite"},children:[(0,ie.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"75%",marginBottom:8}}),(0,ie.jsx)("div",{style:{height:10,borderRadius:4,background:"var(--p-border-s)",width:"50%",marginBottom:8}}),(0,ie.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,ie.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:48}}),(0,ie.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})]})}function qi({tasks:e,visibleCols:t,searchQuery:a,isLoading:r,liveActivities:o,onOpenPanel:n,onDrop:l,onReorder:s}){let u=Oa.default.useRef(null),d=Oa.default.useRef(null),[g,h]=Oa.default.useState(null),[m,L]=Oa.default.useState(null),[y,I]=Oa.default.useState(null),U=a?e.filter(p=>(p.title??"").toLowerCase().includes(a.toLowerCase())||(p.description??"").toLowerCase().includes(a.toLowerCase())):e,c=za.filter(p=>t.includes(p.id));Oa.default.useEffect(()=>{let p=u.current,S=d.current;if(!p||!S)return;function T(){if(!p||!S)return;let N=p.scrollWidth>p.clientWidth?p.clientWidth/p.scrollWidth:1,Q=Math.max(40,p.clientWidth*N);S.style.width=`${Q}px`;let oe=p.scrollWidth-p.clientWidth,$=p.clientWidth-Q;S.style.left=`${oe>0?p.scrollLeft/oe*$:0}px`,S.style.opacity=N<1?"1":"0"}p.addEventListener("scroll",T);let F=new ResizeObserver(T);F.observe(p),T();let A=!1,O=0,re=0;function J(N){A=!0,O=N.clientX,re=p.scrollLeft,S.classList.add("dragging"),document.addEventListener("mousemove",Re),document.addEventListener("mouseup",q)}function Re(N){if(!A||!p||!S)return;let Q=p.scrollWidth>p.clientWidth?p.scrollWidth/p.clientWidth:1;p.scrollLeft=re+(N.clientX-O)*Q}function q(){A=!1,S==null||S.classList.remove("dragging"),document.removeEventListener("mousemove",Re),document.removeEventListener("mouseup",q)}return S.addEventListener("mousedown",J),()=>{p.removeEventListener("scroll",T),F.disconnect(),S.removeEventListener("mousedown",J)}},[c.length]);function i(p,S){h(S),p.dataTransfer.effectAllowed="move"}function f(p,S){p.preventDefault(),L(S)}function v(p,S){p.preventDefault(),p.stopPropagation();let T=p.currentTarget.getBoundingClientRect(),F=p.clientY<T.top+T.height/2?"before":"after";I(A=>(A==null?void 0:A.taskId)===S&&A.position===F?A:{taskId:S,position:F})}function w(p,S,T){p.preventDefault(),L(null);let F=y;if(I(null),!g){h(null);return}if(s&&F){let A=T.findIndex(J=>J.id===F.taskId),O=null,re=null;F.position==="before"?(re=F.taskId,O=A>0?T[A-1].id:null):(O=F.taskId,re=A<T.length-1?T[A+1].id:null),s(g,S,O,re)}else l(g,S);h(null)}function k(){h(null),L(null),I(null)}return(0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)("main",{id:"kanban-board",ref:u,className:"flex-1 flex overflow-x-auto overflow-y-hidden",style:{padding:"16px 20px",gap:16},onDragEnd:k,children:c.map(p=>{let S=r?[]:U.filter(T=>T.status===p.id).sort(Ni);return(0,ie.jsx)(Ux,{col:p,tasks:S,isLoading:r,liveActivities:o,isDragOver:m===p.id&&!y,onDragOver:T=>f(T,p.id),onDrop:T=>w(T,p.id,S),onDragLeave:()=>{L(null),I(null)},onStatusChange:(T,F)=>l(T,F),onAddTask:()=>n(null,"details",p.id),onOpenTask:n,onDragStart:i,onCardDragOver:v,cardDropTarget:y},p.id)})}),(0,ie.jsx)("div",{id:"kanban-scroll-track",style:{position:"fixed",bottom:0,left:0,right:0,height:6,background:"transparent",zIndex:40,pointerEvents:"none"},children:(0,ie.jsx)("div",{id:"kanban-scroll-thumb",ref:d,style:{position:"absolute",top:1,height:4,borderRadius:2,background:"var(--p-border-t)",cursor:"pointer",pointerEvents:"auto",transition:"background 0.15s",opacity:0},onMouseEnter:p=>{p.currentTarget.style.background="var(--p-text-g)"},onMouseLeave:p=>{p.currentTarget.classList.contains("dragging")||(p.currentTarget.style.background="var(--p-border-t)")}})})]})}function Ux({col:e,tasks:t,isLoading:a,liveActivities:r,isDragOver:o,onDragOver:n,onDrop:l,onDragLeave:s,onStatusChange:u,onAddTask:d,onOpenTask:g,onDragStart:h,onCardDragOver:m,cardDropTarget:L}){let[y,I]=Oa.default.useState(!1),U=e.id==="in-progress"?"sd-inprogress":`sd-${e.id}`,c=20,i=e.id==="done",f=i&&t.length>c?t.length-c:0,v=i?t.slice(0,c):t;return(0,ie.jsxs)("section",{className:"board-column","data-column-id":e.id,style:{outline:o?`2px dashed ${e.color}66`:void 0,outlineOffset:-2,borderRadius:8},onDragOver:n,onDragLeave:s,onDrop:l,children:[(0,ie.jsxs)("div",{className:"column-header",style:{background:e.accent,borderColor:`color-mix(in srgb, ${e.color} 30%, transparent)`},children:[(0,ie.jsx)("div",{className:`status-dot ${U}`}),(0,ie.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:e.id==="done"?`${e.color}b3`:e.color},children:[e.label,a?"":` \\xB7 ${t.length}`]}),(0,ie.jsx)("span",{style:{marginLeft:"auto"}}),(0,ie.jsx)("button",{type:"button",title:`Add task to ${e.label}`,style:{width:20,height:20,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,border:"none",background:"transparent",color:y?e.color:"var(--p-text-g)",cursor:"pointer",transition:"color .15s",padding:0},onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),onClick:d,children:(0,ie.jsx)(gn,{style:{width:14,height:14}})})]}),(0,ie.jsx)("div",{className:"column-scroll","data-status":e.id,children:a?Array.from({length:Ox}).map((w,k)=>(0,ie.jsx)(zx,{},k)):t.length===0?(0,ie.jsxs)("div",{style:{border:"1px dashed var(--p-border-t)",borderRadius:8,padding:"10px 8px",fontSize:11,color:"var(--p-text-f)",textAlign:"center"},children:["No tasks in ",e.label.toLowerCase(),"."]}):(0,ie.jsxs)(ie.Fragment,{children:[v.map(w=>(0,ie.jsxs)("div",{style:{position:"relative"},onDragOver:k=>m(k,w.id),children:[(L==null?void 0:L.taskId)===w.id&&L.position==="before"&&(0,ie.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}}),(0,ie.jsx)(Hi,{task:w,col:e,liveActivity:r==null?void 0:r.get(w.id),onOpen:g,onDragStart:h}),(L==null?void 0:L.taskId)===w.id&&L.position==="after"&&(0,ie.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}})]},w.id)),f>0&&(0,ie.jsxs)("div",{style:{margin:"4px 0 2px",padding:"6px 8px",borderRadius:6,border:"1px dashed var(--p-border-t)",fontSize:11,color:"var(--p-text-g)",textAlign:"center",lineHeight:1.4},children:["+",f," older ",f===1?"task":"tasks"," not shown"]})]})})]})}var gr=D(Ie(),1);var ae=D(_(),1),sm={backlog:{text:"var(--p-text-m)",bg:"color-mix(in srgb, var(--p-text-g) 14%, transparent)",border:"color-mix(in srgb, var(--p-text-g) 30%, transparent)"},todo:{text:"var(--p-amber-300)",bg:"color-mix(in srgb, var(--p-amber) 14%, transparent)",border:"color-mix(in srgb, var(--p-amber) 30%, transparent)"},"in-progress":{text:"var(--p-blue-200)",bg:"color-mix(in srgb, var(--p-blue) 14%, transparent)",border:"color-mix(in srgb, var(--p-blue) 30%, transparent)"},review:{text:"var(--p-purple-300)",bg:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"color-mix(in srgb, var(--p-purple) 30%, transparent)"},done:{text:"var(--p-green-300)",bg:"color-mix(in srgb, var(--p-green) 12%, transparent)",border:"color-mix(in srgb, var(--p-green) 30%, transparent)"}},Nx=tm,um={Critical:"var(--p-red)",High:"var(--p-amber-300)",Medium:"var(--p-text-m)",Low:"var(--p-text-f)"},Wi=["in-progress","review","todo","backlog","done"];function Hx(){return(0,ae.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"18px 1fr auto auto",alignItems:"center",gap:10,padding:"6px 10px",borderRadius:8,border:"1px solid var(--p-border-t)",background:"var(--p-bg-2)",animation:"skeleton-pulse 1.5s ease-in-out infinite"},children:[(0,ae.jsx)("div",{style:{width:14,height:14,borderRadius:3,background:"var(--p-border-s)"}}),(0,ae.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"60%"}}),(0,ae.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:44}}),(0,ae.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})}function Vi({tasks:e,searchQuery:t,isLoading:a,liveActivities:r,onOpenPanel:o,onAddTask:n,onDrop:l}){let[s,u]=gr.default.useState(null),[d,g]=gr.default.useState(null),[h,m]=gr.default.useState(null),[L,y]=gr.default.useState({backlog:!1,todo:!1,"in-progress":!1,review:!1,done:!1}),I=t?e.filter(c=>(c.title??"").toLowerCase().includes(t.toLowerCase())||(c.description??"").toLowerCase().includes(t.toLowerCase())):e,U=gr.default.useMemo(()=>{let c=new Map;for(let i of Wi)c.set(i,[]);for(let i of I)(c.get(i.status)??[]).push(i);return c},[I]);return(0,ae.jsxs)("div",{id:"kanban-list-view",style:{flex:1,overflowY:"auto",padding:"16px 24px",minHeight:0},children:[a?Wi.slice(0,3).map(c=>{let i=sm[c];return(0,ae.jsxs)("div",{style:{marginBottom:24},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,ae.jsx)("div",{style:{width:18,height:18,borderRadius:5,background:"var(--p-border-s)",animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,ae.jsx)("div",{style:{height:18,borderRadius:6,background:i.bg,border:`1px solid ${i.border}`,width:72,animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,ae.jsx)("div",{style:{height:14,borderRadius:4,background:"var(--p-border-s)",width:16,animation:"skeleton-pulse 1.5s ease-in-out infinite"}})]}),(0,ae.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:Array.from({length:3}).map((f,v)=>(0,ae.jsx)(Hx,{},v))})]},c)}):Wi.map(c=>{let i=U.get(c)??[];if(i.length===0)return null;let f=sm[c];return(0,ae.jsxs)("div",{style:{marginBottom:24},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8,padding:"4px 6px",borderRadius:6,transition:"background .1s",background:d===c?f.bg:"transparent",outline:d===c?`1px dashed ${f.border}`:void 0},onDragOver:v=>{v.preventDefault(),g(c)},onDragLeave:()=>g(null),onDrop:v=>{v.preventDefault(),g(null),m(null),s&&l(s,c),u(null)},children:[(0,ae.jsx)("button",{type:"button",title:L[c]?"Expand":"Collapse",onClick:v=>{v.stopPropagation(),y(w=>({...w,[c]:!w[c]}))},style:{width:18,height:18,borderRadius:5,border:"1px solid var(--p-border-t)",background:"var(--p-surface)",color:"var(--p-text-m)",fontSize:10,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:L[c]?"+":"\\u2212"}),(0,ae.jsx)("span",{style:{fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",padding:"2px 8px",borderRadius:6,background:f.bg,border:`1px solid ${f.border}`,color:f.text},children:c}),(0,ae.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)"},children:i.length}),(0,ae.jsx)("button",{type:"button",title:`Add task to ${c}`,onClick:v=>{v.stopPropagation(),n(c)},style:{marginLeft:"auto",width:22,height:22,borderRadius:7,border:`1px solid ${f.border}`,background:f.bg,color:f.text,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600},children:"+"})]}),(0,ae.jsx)("div",{style:{display:L[c]?"none":"flex",flexDirection:"column",gap:2},children:i.map(v=>(0,ae.jsx)(_x,{task:v,liveActivity:r==null?void 0:r.get(v.id),onOpen:o,onDragStart:w=>u(w),dragOver:h===v.id,onDragOver:()=>m(v.id),onDragLeave:()=>m(w=>w===v.id?null:w),onDropToStatus:()=>{s&&l(s,v.status),u(null),m(null)}},v.id))})]},c)}),!a&&I.length===0&&(0,ae.jsx)("div",{style:{textAlign:"center",color:"var(--p-text-g)",fontSize:13,marginTop:60},children:"No tasks found"})]})}function _x({task:e,liveActivity:t,onOpen:a,onDragStart:r,dragOver:o,onDragOver:n,onDragLeave:l,onDropToStatus:s}){let[u,d]=gr.default.useState(!1),g=Nx[e.type??"Task"]??"\\u2611",h=e.commentCount??0,m=e.fileCount??0;return(0,ae.jsxs)("div",{"data-task-id":e.id,"data-proto-id":"list-row",draggable:!0,style:{display:"grid",gridTemplateColumns:"18px 1fr auto auto auto",alignItems:"center",gap:10,padding:"6px 10px",borderRadius:8,background:o?"color-mix(in srgb, var(--p-blue) 10%, transparent)":u?"var(--p-hover)":"transparent",border:`1px solid ${o?"color-mix(in srgb, var(--p-blue) 40%, transparent)":u?"var(--p-border)":"transparent"}`,cursor:"grab",transition:"background .1s,border-color .1s",userSelect:"none"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>a(e),onDragStart:L=>{L.dataTransfer.effectAllowed="move",r(e.id),L.currentTarget.style.opacity="0.4"},onDragEnd:L=>{L.currentTarget.style.opacity="1"},onDragOver:L=>{L.preventDefault(),n()},onDragLeave:l,onDrop:L=>{L.preventDefault(),s()},children:[(0,ae.jsx)("span",{style:{fontSize:12,textAlign:"center",flexShrink:0},children:g}),(0,ae.jsxs)("div",{style:{minWidth:0},children:[(0,ae.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,ae.jsx)("span",{style:{fontSize:13,fontWeight:500,color:"var(--p-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.title}),e.priority&&um[e.priority]&&(0,ae.jsx)(fn,{className:"w-2.5 h-2.5 flex-shrink-0",style:{color:um[e.priority]}}),e.component&&(0,ae.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:10,background:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 30%, transparent)",color:"var(--p-purple-300)",flexShrink:0,fontFamily:"monospace"},children:e.component})]}),e.description&&(0,ae.jsx)("div",{style:{fontSize:11,color:"var(--p-text-g)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1,maxWidth:"100%"},children:e.description.replace(/\\s+/g," ").trim()})]}),(0,ae.jsxs)("button",{title:h>0?`${h} comment(s)`:"Add comment",style:{display:"flex",alignItems:"center",gap:3,fontSize:11,color:h>0?"var(--p-text-m)":"var(--p-border-t)",background:"none",border:"none",cursor:"pointer",padding:"0 2px",flexShrink:0},onClick:L=>{L.stopPropagation(),a(e,"comments")},children:[(0,ae.jsx)(fr,{className:"w-3 h-3"}),h>0&&(0,ae.jsx)("span",{children:h})]}),m>0&&(0,ae.jsxs)("button",{title:`${m} file(s)`,style:{display:"flex",alignItems:"center",gap:3,fontSize:11,color:"var(--p-blue-300)",background:"none",border:"none",cursor:"pointer",padding:"0 2px",flexShrink:0},onClick:L=>{L.stopPropagation(),a(e,"files")},children:[(0,ae.jsx)(cr,{className:"w-3 h-3"}),(0,ae.jsx)("span",{children:m})]}),t&&(0,ae.jsx)(_i,{activity:t})]})}var uo=D(Ie(),1);var Ua=D(_(),1);function im({size:e=32,style:t,className:a}){return(0,Ua.jsxs)("svg",{width:e,height:e,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:t,className:a,"aria-label":"Vibeflow",children:[(0,Ua.jsx)("rect",{width:"32",height:"32",rx:"7",fill:"#2563eb"}),(0,Ua.jsx)("rect",{x:"7",y:"13",width:"3.5",height:"10",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Ua.jsx)("rect",{x:"12.25",y:"8.5",width:"3.5",height:"15",rx:"1.5",fill:"white"}),(0,Ua.jsx)("rect",{x:"17.5",y:"14.5",width:"3.5",height:"8",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Ua.jsx)("rect",{x:"22.5",y:"11",width:"2.5",height:"11",rx:"1.25",fill:"white",opacity:"0.85"})]})}var ls=D(_(),1);function ns({id:e,title:t,onClick:a,label:r,icon:o,variant:n="neutral"}){return(0,ls.jsxs)("button",{id:e,onClick:a,title:t,className:`h-7 inline-flex items-center justify-center rounded-lg border transition-colors ${n==="accent"?"border-violet-700/50 bg-violet-900/30 text-violet-300 hover:bg-violet-800/30":"border-slate-700/60 bg-slate-800 text-slate-400 hover:bg-slate-700/50 hover:text-slate-200"} ${r?"gap-1.5 px-3 text-xs font-medium":"w-7"}`,type:"button",children:[o,r&&(0,ls.jsx)("span",{children:r})]})}var G=D(_(),1);function $i({projectName:e,projectIcon:t,missingProjectIconStyle:a="initial",wsConnected:r,port:o,searchQuery:n,premiumUsage:l,isLoading:s,filterTags:u,allTags:d,onToggleTag:g,backHref:h,backLabel:m,onSearchChange:L,onSettings:y,extraActions:I,taskSummary:U}){let[c,i]=uo.default.useState(!1),[f,v]=uo.default.useState(0),w=uo.default.useRef(null),k=uo.default.useRef(null),p=n.match(/(?:^|\\s)#(\\S*)$/),S=p?p[1]:null,T=u??[],F=(d??[]).filter(N=>!T.includes(N)),A=S!==null?F.filter(N=>N.toLowerCase().includes(S.toLowerCase())):[];uo.default.useEffect(()=>{v(0)},[A.length]);function O(N){var oe;let Q=n.replace(/\\s*#\\S*$/,"");L(Q),g==null||g(N),(oe=w.current)==null||oe.focus()}function re(N){if(N.key==="Backspace"&&n===""&&T.length>0){N.preventDefault(),g==null||g(T[T.length-1]);return}if(!(S===null||A.length===0)){if(N.key==="ArrowDown")N.preventDefault(),v(Q=>Math.min(Q+1,A.length-1));else if(N.key==="ArrowUp")N.preventDefault(),v(Q=>Math.max(Q-1,0));else if(N.key==="Enter")N.preventDefault(),A[f]&&O(A[f]);else if(N.key==="Escape"){let Q=n.replace(/\\s*#\\S*$/,"");L(Q)}}}let J=(t??"").trim(),Re=e?e.charAt(0).toUpperCase()+e.slice(1):"Vibeflow Board",q=n||T.length>0;return(0,G.jsxs)("header",{className:"px-5 py-3 flex items-center gap-3 border-b border-slate-800/60 flex-shrink-0",children:[(0,G.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[h&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("a",{id:"header-back-link",href:h,className:"text-xs text-slate-400 hover:text-slate-200 transition-colors no-underline",style:{textDecoration:"none",fontWeight:500},children:m??"Back"}),(0,G.jsx)(un,{className:"w-3 h-3 text-slate-600 flex-shrink-0"})]}),(0,G.jsx)("div",{className:"flex-shrink-0",style:J?{fontSize:20}:void 0,children:J||(a==="vibeflow"?(0,G.jsx)(im,{size:32}):(0,G.jsx)("div",{style:{width:32,height:32,borderRadius:8,flexShrink:0,background:"linear-gradient(135deg, #1e3a5f 0%, #1e293b 100%)",border:"1px solid rgba(37,99,235,0.3)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,fontWeight:700,color:"#93c5fd",letterSpacing:"-0.01em"},title:Re,children:Re.charAt(0).toUpperCase()}))}),(0,G.jsxs)("div",{children:[(0,G.jsxs)("div",{className:"flex items-center gap-2",children:[(0,G.jsx)("h1",{id:"header-project-name",className:"text-sm font-semibold text-white leading-tight",children:Re}),r&&(0,G.jsxs)("div",{id:"header-live-pill",className:"flex items-center gap-1.5 rounded-full px-2 py-0.5",style:{background:"color-mix(in srgb, var(--p-green) 30%, transparent)",border:"1px solid color-mix(in srgb, var(--p-green) 28%, transparent)"},children:[(0,G.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-green-400",style:{animation:"pulse-live 2s ease-in-out infinite"}}),(0,G.jsxs)("span",{className:"text-[10px] font-medium text-green-400",children:["live \\xB7 :",o]})]})]}),(0,G.jsxs)("p",{className:"text-[10px] text-slate-500 font-mono mt-0.5",children:[U,s&&(0,G.jsx)("span",{id:"header-loading-indicator",className:"inline-block ml-1.5 w-1 h-1 rounded-full bg-blue-400",style:{animation:"pulse-live 1.4s ease-in-out infinite",verticalAlign:"middle"}})]})]})]}),(0,G.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,G.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,G.jsxs)("div",{className:"flex flex-wrap items-center gap-1 w-full min-h-[30px] rounded-lg bg-slate-800 border border-slate-700/60 px-2 py-1 cursor-text transition-colors focus-within:border-blue-500",onClick:()=>{var N;return(N=w.current)==null?void 0:N.focus()},children:[(0,G.jsx)(hn,{className:"w-3.5 h-3.5 text-slate-500 flex-shrink-0 mr-0.5"}),T.map(N=>{let{bg:Q,text:oe,border:$}=Bt(N);return(0,G.jsxs)("span",{style:{background:Q,color:oe,border:`1px solid ${$}`,display:"inline-flex",alignItems:"center",gap:3,padding:"1px 7px",borderRadius:100,fontSize:11,fontWeight:500,whiteSpace:"nowrap"},children:[N,(0,G.jsx)("button",{onClick:me=>{me.stopPropagation(),g==null||g(N)},style:{background:"none",border:"none",cursor:"pointer",padding:0,lineHeight:1,color:"inherit",opacity:.7,display:"flex"},children:(0,G.jsx)(ze,{style:{width:9,height:9}})})]},N)}),(0,G.jsx)("input",{ref:w,id:"global-search",type:"text",placeholder:T.length===0?"Search\\u2026 or type #tag":"#tag or search\\u2026",value:n,onChange:N=>L(N.target.value),onKeyDown:re,className:"flex-1 min-w-[100px] bg-transparent border-none outline-none text-xs text-slate-200 placeholder-slate-500",autoComplete:"off",spellCheck:!1}),q&&(0,G.jsx)("button",{id:"global-search-clear",onClick:()=>{L(""),T.forEach(N=>g==null?void 0:g(N))},className:"text-slate-500 hover:text-slate-300 transition-colors flex-shrink-0 flex",title:"Clear search and tag filters",children:(0,G.jsx)(ze,{className:"w-3.5 h-3.5"})})]}),S!==null&&A.length>0&&(0,G.jsxs)("div",{ref:k,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.3)",zIndex:50,overflow:"hidden"},children:[(0,G.jsx)("div",{style:{padding:"5px 10px",fontSize:10,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--p-text-g)",borderBottom:"1px solid var(--p-border)"},children:"Tags"}),A.map((N,Q)=>{let{bg:oe,text:$,border:me}=Bt(N);return(0,G.jsxs)("button",{onMouseDown:lt=>{lt.preventDefault(),O(N)},onMouseEnter:()=>v(Q),style:{width:"100%",textAlign:"left",display:"flex",alignItems:"center",gap:8,padding:"7px 12px",background:Q===f?"var(--p-hover)":"none",border:"none",cursor:"pointer"},children:[(0,G.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:$,flexShrink:0}}),(0,G.jsx)("span",{style:{fontSize:12,color:"var(--p-text-m)"},children:N}),(0,G.jsx)("span",{style:{marginLeft:"auto",display:"inline-flex",alignItems:"center",padding:"1px 7px",borderRadius:100,fontSize:10,background:oe,color:$,border:`1px solid ${me}`},children:"tag"})]},N)}),(0,G.jsx)("div",{style:{padding:"5px 10px",fontSize:10,color:"var(--p-text-g)",borderTop:"1px solid var(--p-border)"},children:"\\u2191\\u2193 navigate \\xB7 Enter select \\xB7 Esc close"})]})]})}),(0,G.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[I,(0,G.jsx)(ns,{id:"header-shortcuts-hint",title:"Click to see keyboard shortcuts",onClick:()=>i(!0),label:"? shortcuts"}),(0,G.jsx)(ns,{id:"btn-settings",title:"Settings",onClick:y,icon:(0,G.jsx)(pr,{className:"w-3.5 h-3.5"})})]}),c&&(0,G.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(2,12,27,0.80)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",zIndex:200,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>i(!1),children:(0,G.jsxs)("div",{id:"shortcuts-modal",style:{background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:14,padding:"20px 24px",minWidth:320,maxWidth:420,boxShadow:"var(--p-shadow-lg)"},onClick:N=>N.stopPropagation(),children:[(0,G.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,G.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--p-text)"},children:"Keyboard Shortcuts"}),(0,G.jsx)("button",{onClick:()=>i(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--p-text-f)",padding:2},children:(0,G.jsx)(ze,{style:{width:14,height:14}})})]}),(0,G.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[["Alt+N","Open new task panel"],["Esc","Close panel / modal"],["?","Show this shortcuts overlay"],["Alt+F","Focus task search"]].map(([N,Q])=>(0,G.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,G.jsx)("kbd",{style:{fontSize:10,fontFamily:"monospace",background:"var(--p-surface)",border:"1px solid var(--p-border-t)",borderRadius:4,padding:"2px 7px",color:"var(--p-text-sub)",flexShrink:0},children:N}),(0,G.jsx)("span",{style:{fontSize:12,color:"var(--p-text-m)"},children:Q})]},N))})]})})]})}var j=D(Ie(),1);var ss=D(Ie(),1);var Kt=D(_(),1);function us({id:e,value:t,onChange:a,disabled:r}){let[o,n]=ss.default.useState(!1),l=ss.default.useRef(null),s=mr.find(u=>u.value===t)??mr[0];return ss.default.useEffect(()=>{let u=d=>{var g;(g=l.current)!=null&&g.contains(d.target)||n(!1)};return document.addEventListener("click",u),()=>document.removeEventListener("click",u)},[]),(0,Kt.jsxs)("div",{id:e,ref:l,style:{position:"relative",display:"inline-block"},children:[(0,Kt.jsxs)("button",{type:"button",title:s==null?void 0:s.tooltip,onClick:u=>{u.preventDefault(),r||n(d=>!d)},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"3px 8px",borderRadius:6,border:"1px solid var(--p-border, rgba(255,255,255,0.08))",background:"var(--p-hover, rgba(255,255,255,0.05))",color:"var(--p-text-m, rgba(255,255,255,0.7))",fontSize:12,cursor:"pointer",whiteSpace:"nowrap"},children:[(0,Kt.jsx)("span",{style:{fontSize:13},children:s==null?void 0:s.icon}),(0,Kt.jsx)("span",{children:s==null?void 0:s.label})]}),o&&(0,Kt.jsx)("div",{style:{position:"absolute",top:"100%",left:0,marginTop:4,background:"var(--p-card, #1e293b)",border:"1px solid var(--p-border-s, rgba(255,255,255,0.12))",borderRadius:8,padding:"4px 0",zIndex:200,minWidth:140,boxShadow:"0 8px 24px rgba(0,0,0,0.4)"},children:mr.map(u=>(0,Kt.jsxs)("button",{type:"button",title:u.tooltip,onClick:()=>{a(u.value),n(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",border:"none",background:u.value===t?"var(--p-hover, rgba(255,255,255,0.06))":"transparent",color:u.value===t?"var(--p-text, #fff)":"var(--p-text-f, rgba(255,255,255,0.55))",fontSize:12,cursor:"pointer",textAlign:"left"},children:[(0,Kt.jsx)("span",{style:{fontSize:14,lineHeight:1},children:u.icon}),(0,Kt.jsx)("span",{children:u.label})]},u.value))})]})}var Ze=D(Ie(),1);var In=D(Ie(),1);var Na=D(_(),1);function Ha({markdown:e,className:t,style:a}){let r=In.default.useRef(null),o=In.default.useRef({}),[n,l]=In.default.useState(null);return In.default.useEffect(()=>{let s=r.current;if(!s)return;function u(){l(null)}async function d(h){let m=h.target,L=m==null?void 0:m.closest("a[data-task-ref]");if(!L){u();return}h.preventDefault();let y=L.getAttribute("data-task-ref");if(!y)return;let I=L.getBoundingClientRect(),U=o.current[y];if(U){l({id:y,title:U.title,status:U.status,x:I.left,y:I.bottom+6});return}try{let i=await(await fetch(`/api/tasks/${y}`)).json(),f={title:i.title??`Task ${y}`,status:i.status??"unknown"};o.current[y]=f,l({id:y,title:f.title,status:f.status,x:I.left,y:I.bottom+6})}catch{l({id:y,title:`Task ${y}`,status:"unknown",x:I.left,y:I.bottom+6})}}function g(h){var y,I;let m=(I=(y=h.target)==null?void 0:y.closest)==null?void 0:I.call(y,"a[data-task-ref]");if(!m)return;let L=m.getAttribute("data-task-ref");L&&window.dispatchEvent(new CustomEvent("vibeflow-task-ref-click",{detail:{refId:L}}))}return s.addEventListener("mouseover",d),s.addEventListener("mouseleave",u),s.addEventListener("click",g),()=>{s.removeEventListener("mouseover",d),s.removeEventListener("mouseleave",u),s.removeEventListener("click",g)}},[]),(0,Na.jsxs)("div",{style:{position:"relative"},children:[(0,Na.jsx)("div",{ref:r,className:t,style:a,dangerouslySetInnerHTML:{__html:ts(e)}}),n&&(0,Na.jsxs)("div",{style:{position:"fixed",left:n.x,top:n.y,background:"#0f172a",border:"1px solid rgba(59,130,246,0.4)",color:"#e2e8f0",borderRadius:8,padding:"8px 10px",fontSize:11,boxShadow:"0 10px 24px rgba(2,6,23,0.55)",zIndex:60,pointerEvents:"none",minWidth:180},children:[(0,Na.jsxs)("div",{style:{color:"#60a5fa",fontFamily:"Menlo,monospace",marginBottom:3},children:["#",n.id]}),(0,Na.jsx)("div",{style:{fontWeight:600,marginBottom:3},children:n.title}),(0,Na.jsxs)("div",{style:{color:"#94a3b8"},children:["status: ",n.status]})]})]})}var Cn=D(Ie(),1),dm=D(_(),1),io=Cn.default.forwardRef(function({value:t,onChange:a,baseRows:r=4,maxRows:o,style:n,...l},s){let u=Cn.default.useRef(null),d=o??r*2,g=Cn.default.useCallback(()=>{let h=u.current;if(!h)return;h.style.height="auto";let m=window.getComputedStyle(h),L=Number.parseFloat(m.lineHeight||"0")||18,y=Number.parseFloat(m.paddingTop||"0")+Number.parseFloat(m.paddingBottom||"0"),I=Number.parseFloat(m.borderTopWidth||"0")+Number.parseFloat(m.borderBottomWidth||"0"),U=r*L+y+I,c=d*L+y+I,i=Math.max(U,Math.min(h.scrollHeight,c));h.style.height=`${i}px`,h.style.overflowY=h.scrollHeight>c?"auto":"hidden"},[r,d]);return Cn.default.useLayoutEffect(()=>{g()},[t,g]),(0,dm.jsx)("textarea",{...l,ref:h=>{u.current=h,typeof s=="function"?s(h):s&&(s.current=h)},rows:r,value:t,onChange:h=>a(h.target.value),style:{...n,resize:"none"}})});var pm=D(Ie(),1);var fm=D(Ie(),1),cm=D(ro(),1),ia=D(_(),1);function hr({open:e,onClose:t,icon:a,title:r,headerActions:o,width:n,maxHeight:l,id:s,children:u,footer:d,boxStyle:g,onKeyDown:h}){if(fm.default.useEffect(()=>{if(!e)return;function y(I){I.key==="Escape"&&t(),h==null||h(I)}return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[e,t,h]),!e)return null;let m=!!(a||r||o),L=(0,ia.jsx)("div",{id:s,className:"modal-backdrop",onClick:y=>{y.target===y.currentTarget&&t()},onMouseDown:y=>y.stopPropagation(),children:(0,ia.jsxs)("div",{className:"modal-box",style:{width:n??"min(420px, 95vw)",maxHeight:l,...g},children:[m&&(0,ia.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 18px",borderBottom:"1px solid var(--p-border)",flexShrink:0},children:[a&&(0,ia.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:a}),r&&(0,ia.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"var(--p-text)",flex:1,minWidth:0},children:r}),o&&(0,ia.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,flexShrink:0,marginLeft:"auto"},children:o})]}),u,d&&(0,ia.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"10px 18px",borderTop:"1px solid var(--p-border)",flexShrink:0},children:d})]})});return(0,cm.createPortal)(L,document.body)}var St=D(_(),1);function jt({open:e,message:t,title:a="Confirm",confirmLabel:r="Delete",cancelLabel:o="Cancel",loading:n,error:l,onConfirm:s,onCancel:u}){let d=pm.default.useCallback(g=>{g.key==="Enter"&&s()},[s]);return(0,St.jsx)(hr,{open:e,onClose:u,id:"confirm-modal",width:"min(380px, 95vw)",icon:(0,St.jsx)(Ba,{style:{width:20,height:20,color:"#f87171"}}),title:a,onKeyDown:d,footer:(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("button",{id:"confirm-modal-cancel",onClick:u,disabled:n,style:{padding:"7px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer",transition:"background 0.15s"},children:o}),(0,St.jsx)("button",{id:"confirm-modal-confirm",onClick:s,disabled:n,style:{padding:"7px 16px",borderRadius:8,background:"#dc2626",border:"none",color:"#fff",fontSize:13,fontWeight:600,cursor:n?"wait":"pointer",opacity:n?.6:1,transition:"background 0.15s"},children:n?"Deleting\\u2026":r})]}),children:(0,St.jsxs)("div",{style:{padding:"16px 18px"},children:[typeof t=="string"?(0,St.jsx)("p",{style:{margin:0,fontSize:13,color:"var(--p-text-f)",lineHeight:1.6},children:t}):t,l&&(0,St.jsx)("p",{style:{margin:"8px 0 0",fontSize:12,color:"var(--p-red)"},children:l})]})})}var Ae=D(_(),1);function mm(e){return e.linkedPath?"\\u{1F517}":/\\.(png|jpe?g|gif|webp|svg)$/i.test(e.name)?"\\u{1F5BC}\\uFE0F":/\\.html?$/i.test(e.name)?"\\u{1F310}":/\\.md$/i.test(e.name)||/\\.pdf$/i.test(e.name)?"\\u{1F4C4}":"\\u{1F4CE}"}function qx(e){return/\\.(png|jpe?g|gif|webp|svg|html?)$/i.test(e.name)}function Wx(e){return/\\.html?$/i.test(e.name)}function is({file:e,url:t,variant:a,onPreview:r,onDelete:o}){let n=qx(e),l=Wx(e);function s(){r?r(e,t):window.open(t,"_blank")}return a==="compact"?(0,Ae.jsxs)("div",{className:"group/file-compact",style:{display:"flex",alignItems:"center",gap:8,padding:"4px 8px",borderRadius:8,background:"var(--p-card)",border:"1px solid var(--p-border)",position:"relative"},children:[(0,Ae.jsx)("span",{style:{fontSize:14,flexShrink:0},children:mm(e)}),(0,Ae.jsx)("div",{style:{flex:1,minWidth:0},children:(0,Ae.jsx)("button",{onClick:s,style:{fontSize:12,color:"var(--p-blue-300)",background:"none",border:"none",cursor:"pointer",padding:0,textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},title:e.name,children:e.name})}),(0,Ae.jsx)("span",{className:"file-compact-ts",style:{fontSize:10,color:"var(--p-border-t)",flexShrink:0,marginLeft:2},children:e.createdAt?nt(e.createdAt):"attached"}),(0,Ae.jsxs)("div",{className:"file-compact-actions",style:{position:"absolute",right:6,top:0,bottom:0,display:"flex",alignItems:"center",gap:4,transition:"opacity 0.15s",background:"var(--p-card)",paddingLeft:8},children:[n&&(0,Ae.jsx)("button",{onClick:s,style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:l?"Open in new tab":"Preview",children:l?"\\u2197":"\\u{1F441}"}),(0,Ae.jsx)("a",{href:t,download:e.name,style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)",textDecoration:"none"},title:"Download",onClick:u=>u.stopPropagation(),children:"\\u2193"}),o&&(0,Ae.jsx)("button",{onClick:()=>void o(e),style:{background:"none",border:"none",cursor:"pointer",padding:"2px 4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:"Delete",children:"\\u2715"})]})]}):(0,Ae.jsxs)("div",{className:"group/file",style:{display:"flex",alignItems:"center",gap:10,padding:8,borderRadius:8,border:"1px solid var(--p-border)",transition:"background 0.15s",position:"relative"},children:[(0,Ae.jsx)("span",{style:{fontSize:18,flexShrink:0},children:mm(e)}),(0,Ae.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,Ae.jsx)("p",{style:{fontSize:12,fontWeight:500,color:"var(--p-text)",margin:0,cursor:"pointer",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.name,onClick:s,children:e.name}),(0,Ae.jsx)("p",{style:{fontSize:10,color:"var(--p-text-f)",margin:0},children:e.linkedPath?`linked: ${e.linkedPath}`:Ui(e.size??0)})]}),(0,Ae.jsxs)("div",{className:"file-normal-actions",style:{display:"flex",alignItems:"center",gap:4,transition:"opacity 0.15s"},children:[n&&(0,Ae.jsx)("button",{onClick:s,style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:l?"Open in new tab":"Preview",children:l?"\\u2197":"\\u{1F441}"}),(0,Ae.jsx)("a",{href:t,download:e.name,style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)",textDecoration:"none"},title:"Download",onClick:u=>u.stopPropagation(),children:"\\u2193"}),o&&(0,Ae.jsx)("button",{onClick:()=>void o(e),style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:4,fontSize:11,color:"var(--p-text-m)"},title:"Delete",children:"\\u2715"})]})]})}var E=D(_(),1);function gm({source:e}){return e!=="cli"?null:(0,E.jsx)("span",{title:"Via CLI (agent)",style:{fontSize:9,color:"var(--p-green-300)",background:"rgba(34,197,94,0.1)",border:"1px solid rgba(34,197,94,0.2)",borderRadius:4,padding:"0 4px",fontFamily:"monospace",lineHeight:"16px",flexShrink:0},children:">_"})}function Vx(e,t){if(e.kind==="lifecycle")return e.author??null;if(e.kind==="comment"){let a=e.comment;return a.type==="system"?null:a.author==="agent"?"\\u{1F916} Agent":a.authorName??t}return e.kind==="change"?e.actor:null}function $x(e,t){let a=[];for(let r of e){let o=Vx(r,t),n=a[a.length-1];o&&n&&n.author===o?(n.items.push(r),r.sortKey>n.newestSortKey&&(n.newestSortKey=r.sortKey),r.sortKey<n.oldestSortKey&&(n.oldestSortKey=r.sortKey)):a.push({author:o,newestSortKey:r.sortKey,oldestSortKey:r.sortKey,items:[r]})}return a}function Gi({comments:e,files:t=[],localChanges:a=[],loading:r,error:o,gitUserName:n="You",taskAuthorName:l,baseUrl:s="",taskId:u,taskCreatedAt:d,taskUpdatedAt:g,onEdit:h,onDelete:m,onDeleteFile:L,onFilePreview:y}){let I=Ze.default.useRef(null),U=Ze.default.useRef(null),[c,i]=Ze.default.useState(null),[f,v]=Ze.default.useState(""),[w,k]=Ze.default.useState(null),[p,S]=Ze.default.useState(null),[T,F]=Ze.default.useState(()=>{try{return localStorage.getItem("vibeflow-show-updates")!=="false"}catch{return!0}}),A=Ze.default.useRef(r),O=Ze.default.useMemo(()=>{let q=[];d&&q.push({kind:"lifecycle",sortKey:d,label:"Task created",icon:"\\u2726",author:l??n}),g&&g!==d&&q.push({kind:"lifecycle",sortKey:g,label:"Task edited",icon:"\\u270E"});let N=e.map($=>({kind:"comment",sortKey:$.createdAt,comment:$})),Q=t.map($=>{let me=$.url.startsWith("http")?$.url:`${s}${$.url}`;return{kind:"file",sortKey:$.createdAt??"9999",file:$,url:me}}),oe=a.map($=>({kind:"change",sortKey:$.timestamp,field:$.field,from:$.from,to:$.to,actor:$.actor,source:$.source}));return[...q,...N,...Q,...oe].sort(($,me)=>me.sortKey.localeCompare($.sortKey))},[e,t,a,s,d,g]),re=Ze.default.useMemo(()=>O.filter(q=>q.kind==="lifecycle"||q.kind==="change").length,[O]),J=Ze.default.useMemo(()=>T?O:O.filter(q=>q.kind==="comment"||q.kind==="file"),[O,T]),Re=Ze.default.useMemo(()=>$x(J,n),[J,n]);return Ze.default.useEffect(()=>{let q=A.current&&!r;A.current=r,I.current&&q&&requestAnimationFrame(()=>{I.current&&(I.current.scrollTop=0)})},[r]),Ze.default.useEffect(()=>{c&&U.current&&(U.current.focus(),U.current.scrollIntoView({block:"nearest"}))},[c]),r?(0,E.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):o?(0,E.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):O.length===0?(0,E.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No activity yet."}):(0,E.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[re>0&&(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0 4px",flexShrink:0,borderBottom:"1px solid var(--p-border)",marginBottom:4},children:[(0,E.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",flex:1,letterSpacing:"0.04em"},children:T?"":`${re} system event${re!==1?"s":""} hidden`}),(0,E.jsx)("button",{id:"dp-toggle-updates",onClick:()=>F(q=>{let N=!q;try{localStorage.setItem("vibeflow-show-updates",String(N))}catch{}return N}),style:{all:"unset",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,color:T?"var(--p-text-m)":"var(--p-text-g)",transition:"color .12s, background .12s"},title:T?"Hide system events":`Show ${re} system event${re!==1?"s":""}`,onMouseEnter:q=>{q.currentTarget.style.color="var(--p-text)",q.currentTarget.style.background="var(--p-hover)"},onMouseLeave:q=>{q.currentTarget.style.color=T?"var(--p-text-m)":"var(--p-text-g)",q.currentTarget.style.background="transparent"},children:T?(0,E.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}):(0,E.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,E.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]})})]}),(0,E.jsx)("div",{ref:I,style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:Re.map((q,N)=>{let Q=q.author!==null&&q.items.length>1,oe=Q,$=q.author==="\\u{1F916} Agent";return(0,E.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:0},children:[oe&&(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 0 2px",marginTop:4},children:[(0,E.jsx)("span",{style:{fontSize:11,fontWeight:600,color:$?"var(--p-purple)":"var(--p-blue-300)",flexShrink:0},children:q.author}),(0,E.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",flexShrink:0},children:`${nt(q.oldestSortKey)} \\u2013 ${nt(q.newestSortKey)}`}),(0,E.jsxs)("span",{style:{fontSize:10,color:"var(--p-border-t)",flexShrink:0,marginLeft:2},children:["(",q.items.length," activities)"]})]}),(0,E.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:Q?4:8,paddingLeft:Q?8:0,borderLeft:Q?"1.5px solid var(--p-border)":"none",marginLeft:Q?4:0},children:q.items.map((me,lt)=>Gx(me,lt,N,Q,n,c,f,U,i,v,h,k,L?S:null,y))})]},`group-${N}`)})}),(0,E.jsx)(jt,{open:w!==null,message:"Delete this comment? This action cannot be undone.",onConfirm:()=>{w&&m(w),k(null)},onCancel:()=>k(null)}),L&&(0,E.jsx)(jt,{open:p!==null,message:p?`Delete "${p.name}"? This action cannot be undone.`:"",onConfirm:()=>{p&&L(p),S(null)},onCancel:()=>S(null)})]})}function Gx(e,t,a,r,o,n,l,s,u,d,g,h,m,L){if(e.kind==="lifecycle")return(0,E.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-purple)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:e.icon}),(0,E.jsx)("div",{style:{flex:1,minWidth:0},children:(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)",fontStyle:"italic"},children:e.label}),!r&&(0,E.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",marginLeft:"auto",flexShrink:0},children:nt(e.sortKey)})]})})]},`lifecycle-${e.sortKey}-${a}-${t}`);if(e.kind==="change"){let w=e.from.length>28?e.from.slice(0,28)+"\\u2026":e.from,k=e.to.length>28?e.to.slice(0,28)+"\\u2026":e.to,p=e.from.length>28||e.to.length>28;return(0,E.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-blue)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:"\\u270E"}),(0,E.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[!r&&(0,E.jsxs)("span",{style:{fontSize:11,fontWeight:600,color:"var(--p-blue-300)"},children:["\\u{1F464} ",e.actor]}),!r&&(0,E.jsx)(gm,{source:e.source}),(0,E.jsxs)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:["changed ",(0,E.jsx)("strong",{style:{color:"var(--p-text)"},children:e.field})]}),!r&&(0,E.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",marginLeft:"auto",flexShrink:0},children:nt(e.sortKey)})]}),(0,E.jsxs)("div",{title:p?`${e.from} \\u2192 ${e.to}`:void 0,style:{marginTop:2,fontSize:11,color:"var(--p-text-g)",display:"flex",alignItems:"center",gap:4,cursor:p?"help":"default"},children:[(0,E.jsx)("span",{style:{color:"var(--p-red)",background:"rgba(239,68,68,0.1)",borderRadius:4,padding:"1px 5px",maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:w}),(0,E.jsx)("span",{style:{color:"var(--p-text-g)"},children:"\\u2192"}),(0,E.jsx)("span",{style:{color:"var(--p-green)",background:"rgba(34,197,94,0.1)",borderRadius:4,padding:"1px 5px",maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k})]})]})]},`change-${e.sortKey}-${a}-${t}`)}if(e.kind==="file"){let{file:v,url:w}=e;return(0,E.jsx)(is,{file:v,url:w,variant:"compact",onPreview:L?(k,p)=>L(k.name,p):void 0,onDelete:m?k=>(m(k),Promise.resolve()):void 0},`file-${v.name}-${a}-${t}`)}let y=e.comment,I=y.author==="agent",U=y.type==="system",c=y.deleted===!0,i=!!y.id&&!I&&!U&&!c&&y.isOwnComment!==!1,f=n===y.id;return U?(0,E.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 0",fontSize:11,color:"var(--p-text-g)",fontStyle:"italic"},children:[(0,E.jsx)("span",{style:{opacity:.6},children:"\\u2B21"}),(0,E.jsx)("span",{children:y.text}),!r&&(0,E.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,opacity:.6},children:nt(y.createdAt)})]},y.id):(0,E.jsxs)("div",{className:"flex flex-col gap-1 group/comment",style:{paddingTop:r?2:4},children:[!r&&(0,E.jsxs)("div",{className:"flex items-center justify-between gap-1.5 text-xs mb-0.5",children:[(0,E.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,E.jsx)("span",{style:{color:c?"var(--p-text-g)":I?"var(--p-purple)":"var(--p-blue-300)"},children:I?"\\u{1F916} Agent":`\\u{1F464} ${y.authorName??o}`}),(0,E.jsx)(gm,{source:y.source}),(0,E.jsxs)("span",{style:{color:"var(--p-text-g)"},children:[nt(y.createdAt),!c&&y.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]})]}),i&&(0,E.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,E.jsx)("button",{onClick:()=>{u(y.id),d(y.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,E.jsx)("button",{onClick:()=>h(y),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),r&&(0,E.jsxs)("div",{className:"flex items-center justify-between gap-1.5",style:{marginBottom:2},children:[(0,E.jsxs)("span",{style:{fontSize:10,color:"var(--p-text-g)"},children:[nt(y.createdAt),!c&&y.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]}),i&&(0,E.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,E.jsx)("button",{onClick:()=>{u(y.id),d(y.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,E.jsx)("button",{onClick:()=>h(y),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,E.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),f?(0,E.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,E.jsx)(io,{ref:s,value:l,onChange:d,baseRows:4,maxRows:12,onKeyDown:v=>{v.key==="Enter"&&(v.ctrlKey||v.metaKey)&&(v.preventDefault(),g(y,l).then(()=>u(null)))},style:{width:"100%",background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:6,padding:"8px 10px",fontSize:12,color:"var(--p-text)",outline:"none",fontFamily:"inherit",boxSizing:"border-box"}}),(0,E.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,E.jsx)("button",{onClick:()=>u(null),style:{padding:"4px 10px",background:"var(--p-surface)",border:"none",borderRadius:5,fontSize:11,color:"var(--p-text-sub)",cursor:"pointer"},children:"Cancel"}),(0,E.jsx)("button",{onClick:async()=>{await g(y,l),u(null)},style:{padding:"4px 10px",background:"var(--p-blue)",border:"none",borderRadius:5,fontSize:11,color:"var(--p-white)",cursor:"pointer"},children:"Save"})]})]}):c?(0,E.jsx)("div",{style:{padding:"8px 14px",fontSize:12,color:"var(--p-text-g)",fontStyle:"italic",background:"var(--p-input)",border:"1px dashed var(--p-border)",borderRadius:8},children:"Comment deleted"}):(0,E.jsx)(Ha,{markdown:y.text,style:{background:"var(--p-input)",border:"1px solid var(--p-border)",borderRadius:8,padding:"10px 14px",fontSize:12,color:"var(--p-text-sub)",lineHeight:1.6}})]},y.id)}var hm=D(Ie(),1);var _a=D(_(),1);function Ki({files:e,loading:t,error:a,baseUrl:r,onPreview:o,onDelete:n}){let[l,s]=hm.default.useState(null);return t?(0,_a.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):a?(0,_a.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):e.length===0?(0,_a.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No files attached."}):(0,_a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[e.map(u=>{let d=u.url??`${r}/api/files/${encodeURIComponent(u.name)}`;return(0,_a.jsx)(is,{file:u,url:d,variant:"normal",onPreview:g=>o(g),onDelete:n?g=>(s(g),Promise.resolve()):void 0},u.name)}),n&&(0,_a.jsx)(jt,{open:l!==null,message:l?`Delete "${l.name}"? This action cannot be undone.`:"",onConfirm:()=>{l&&n(l),s(null)},onCancel:()=>s(null)})]})}var Qi=D(Ie(),1);var fo=D(Ie(),1),xm=D(ro(),1);var Ot=D(_(),1);function wn({value:e,onChange:t,previewValue:a,showPreview:r,setShowPreview:o,previewId:n,textareaId:l,placeholder:s,previewEmptyText:u,previewMinHeight:d=54,previewMaxHeight:g=220,baseRows:h=5,maxRows:m=12,autoFocus:L=!1,textareaRef:y,onKeyDown:I,afterTextarea:U,onBlur:c}){let i=fo.default.useRef(null),[f,v]=fo.default.useState([]),[w,k]=fo.default.useState(null),[p,S]=fo.default.useState(null);fo.default.useEffect(()=>{let A=!0;return fetch("/api/tasks").then(O=>O.json()).then(O=>{if(!A)return;let re=(O.tasks??[]).map(J=>({id:String(J.id??""),title:String(J.title??"")})).filter(J=>J.id.length>0);v(re)}).catch(()=>{}),()=>{A=!1}},[]);function T(A){let O=i.current;if(!O){k(null);return}let re=O.selectionStart??A.length,J=A.slice(0,re),Re=-1;for(let oe=J.length-1;oe>=0;oe--){if(J[oe]!=="#")continue;let $=oe>0?J[oe-1]:"";if($&&!/\\s/.test($))continue;let me=J.slice(oe+1);if(!me.includes("#")){if(me.length>80)return;Re=oe;break}}if(Re===-1){k(null);return}let q=J.slice(Re+1).trim().toLowerCase(),N=f.filter(oe=>{if(!q)return!0;let $=oe.id.toLowerCase(),me=oe.title.toLowerCase();return $.includes(q)||me.includes(q)}).sort((oe,$)=>{let me=oe.id.toLowerCase().startsWith(q)?1:0,lt=$.id.toLowerCase().startsWith(q)?1:0;if(me!==lt)return lt-me;let wt=oe.title.toLowerCase().startsWith(q)?1:0,Ke=$.title.toLowerCase().startsWith(q)?1:0;return wt!==Ke?Ke-wt:oe.id.localeCompare($.id)}).slice(0,6);if(!N.length){k(null),S(null);return}let Q=O.getBoundingClientRect();S({top:Q.top,left:Q.left,width:Q.width}),k({queryStart:Re,queryEnd:re,items:N})}function F(A){let O=w;if(!O)return;let re=`${e.slice(0,O.queryStart)}#${A} ${e.slice(O.queryEnd)}`;t(re),k(null),S(null),requestAnimationFrame(()=>{let J=i.current;if(!J)return;let Re=O.queryStart+A.length+2;J.focus(),J.setSelectionRange(Re,Re)})}return r?(0,Ot.jsx)("div",{id:n,onClick:A=>{A.target.closest("a")||o(!1)},title:"Click to edit",style:{cursor:"text",minHeight:d,background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:8,padding:10,fontSize:12,color:"var(--p-text-sub)",lineHeight:1.7,overflow:"auto",maxHeight:g},children:(a??e).trim()?(0,Ot.jsx)(Ha,{markdown:a??e}):(0,Ot.jsx)("span",{style:{color:"var(--p-border-t)"},children:u??s})}):(0,Ot.jsxs)("div",{style:{position:"relative"},children:[(0,Ot.jsx)(io,{id:l,ref:A=>{i.current=A,y&&(y.current=A)},className:"dp-textarea",placeholder:s,value:e,onChange:A=>{t(A),T(A)},onFocus:()=>o(!1),onBlur:()=>{k(null),S(null),o(!0),c==null||c()},baseRows:h,maxRows:m,autoFocus:L,onKeyDown:A=>{A.key==="Escape"&&(k(null),S(null)),I==null||I(A)}}),w&&p&&(0,xm.createPortal)((0,Ot.jsx)("div",{"data-task-ref-suggest":"true",style:{position:"fixed",left:p.left+8,width:p.width-16,top:p.top,transform:"translateY(-100%)",border:"1px solid var(--p-border-s)",background:"var(--p-card)",borderRadius:8,boxShadow:"var(--p-shadow-lg)",overflow:"hidden",zIndex:9999},children:w.items.map(A=>(0,Ot.jsxs)("button",{type:"button",onMouseDown:O=>{O.preventDefault(),F(A.id)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,textAlign:"left",border:"none",borderBottom:"1px solid var(--p-border)",background:"transparent",color:"var(--p-text-sub)",padding:"7px 10px",fontSize:11,cursor:"pointer"},onMouseEnter:O=>{O.currentTarget.style.background="var(--p-hover)"},onMouseLeave:O=>{O.currentTarget.style.background="transparent"},children:[(0,Ot.jsxs)("span",{style:{fontFamily:"monospace",color:"var(--p-blue-300)"},children:["#",A.id]}),(0,Ot.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:A.title})]},A.id))}),document.body),U]})}var xr=D(Ie(),1);var It=D(_(),1);function ji({tags:e,allTags:t,onChange:a,disabled:r}){let[o,n]=xr.default.useState(""),[l,s]=xr.default.useState(!1),u=xr.default.useRef(null),d=xr.default.useRef(null),g=o.trim().toLowerCase(),h=xr.default.useMemo(()=>t.filter(f=>!e.includes(f)&&f.toLowerCase().includes(g)).slice(0,8),[t,e,g]),m=g.length>0&&!t.some(i=>i.toLowerCase()===g)&&!e.some(i=>i.toLowerCase()===g),L=g.length>0&&t.some(i=>i.toLowerCase()===g)&&!e.some(i=>i.toLowerCase()===g);function y(i){var v;let f=i.trim();!f||e.includes(f)||(a([...e,f]),n(""),s(!1),(v=u.current)==null||v.focus())}function I(i){a(e.filter(f=>f!==i))}function U(i){if(i.key==="Enter")if(i.preventDefault(),m||L){let f=t.find(v=>v.toLowerCase()===g);y(f??o.trim())}else h.length>0&&y(h[0]);i.key==="Escape"&&(s(!1),n("")),i.key==="Backspace"&&!o&&e.length>0&&I(e[e.length-1])}xr.default.useEffect(()=>{function i(f){d.current&&!d.current.contains(f.target)&&s(!1)}return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[]);let c=l&&(h.length>0||m);return(0,It.jsxs)("div",{ref:d,style:{position:"relative"},children:[(0,It.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center",padding:"5px 8px",borderRadius:8,border:`1px solid ${l?"var(--p-blue)":"var(--p-border)"}`,background:"var(--p-input)",cursor:r?"not-allowed":"text",opacity:r?.6:1,minHeight:34,transition:"border-color .12s"},onClick:()=>{var i;r||(i=u.current)==null||i.focus()},children:[(0,It.jsx)(Sn,{tags:e,onRemove:r?void 0:I,size:"sm"}),!r&&(0,It.jsx)("input",{ref:u,type:"text",value:o,placeholder:e.length?"":"Add tags\\u2026",onChange:i=>{n(i.target.value),s(!0)},onFocus:()=>s(!0),onKeyDown:U,style:{background:"none",border:"none",outline:"none",fontSize:12,color:"var(--p-text)",minWidth:80,flex:1,padding:0,lineHeight:"1.4"}})]}),c&&(0,It.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onMouseDown:i=>i.preventDefault(),children:[h.map(i=>{let{bg:f,text:v,border:w}=Bt(i);return(0,It.jsxs)("button",{type:"button",onClick:()=>y(i),style:{width:"100%",textAlign:"left",padding:"6px 10px",display:"flex",alignItems:"center",gap:6,background:"none",border:"none",cursor:"pointer",fontSize:12,color:"var(--p-text-m)"},onMouseEnter:k=>{k.currentTarget.style.background="var(--p-hover)"},onMouseLeave:k=>{k.currentTarget.style.background="none"},children:[(0,It.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:v,border:`1px solid ${w}`,flexShrink:0}}),i]},i)}),m&&(0,It.jsxs)("button",{type:"button",onClick:()=>y(o.trim()),style:{width:"100%",textAlign:"left",padding:"6px 10px",display:"flex",alignItems:"center",gap:6,background:"none",border:h.length>0?"1px solid var(--p-border)":"none",borderLeft:"none",borderRight:"none",borderBottom:"none",cursor:"pointer",fontSize:12,color:"var(--p-text-g)"},onMouseEnter:i=>{i.currentTarget.style.background="var(--p-hover)",i.currentTarget.style.color="var(--p-text-m)"},onMouseLeave:i=>{i.currentTarget.style.background="none",i.currentTarget.style.color="var(--p-text-g)"},children:[(0,It.jsx)("span",{style:{fontSize:14,lineHeight:1},children:"+"}),\'Create "\',(0,It.jsx)("strong",{style:{color:"var(--p-text)"},children:o.trim()}),\'"\']})]})]})}var V=D(_(),1);function Yi({task:e,description:t,setDescription:a,showDescPreview:r,setShowDescPreview:o,priority:n,setPriority:l,onDescriptionBlur:s,onDescriptionDiscard:u,originalDescription:d,onPriorityChange:g,githubUrl:h,onFilePreview:m,onPatch:L,onDeleteScreenshot:y,liveFiles:I,allTags:U=[],overrideTags:c,onTagsChange:i}){let f=(e==null?void 0:e.files)??[],v=I?I.map(O=>({name:O.name,linkedPath:O.linkedPath,addedAt:O.createdAt,url:O.url})):f,w=v==null?void 0:v.find(O=>/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(O.name)),k=e&&w?w.url||`/api/tasks/${e.id}/files/${encodeURIComponent(w.name)}`:null,p=Qi.default.useRef(null),[S,T]=Qi.default.useState(null),{userPart:F,consolePart:A}=jx(t);return(0,V.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,V.jsxs)("div",{children:[(0,V.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:"Description"}),(0,V.jsx)(wn,{value:t,previewValue:A?F:void 0,onChange:a,onBlur:s,showPreview:r,setShowPreview:o,previewId:"dp-desc-preview",textareaId:"dp-desc",placeholder:"Description (markdown)\\u2026",previewMinHeight:80,previewMaxHeight:220,baseRows:6,maxRows:12,autoFocus:!0,textareaRef:p,afterTextarea:u&&d!==void 0&&t!==d?(0,V.jsx)("button",{type:"button",onMouseDown:O=>{O.preventDefault(),u()},title:"Discard changes and restore saved description",style:{marginTop:4,display:"flex",alignItems:"center",gap:4,fontSize:11,color:"var(--p-text-g)",background:"none",border:"1px solid var(--p-border-t)",borderRadius:6,padding:"3px 8px",cursor:"pointer",transition:"color .12s, border-color .12s"},onMouseEnter:O=>{O.currentTarget.style.color="var(--p-amber-300)",O.currentTarget.style.borderColor="var(--p-amber-300)"},onMouseLeave:O=>{O.currentTarget.style.color="var(--p-text-g)",O.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u21A9 Discard changes"}):void 0})]}),A&&(0,V.jsx)(Xx,{logs:A}),e&&w&&k&&(0,V.jsxs)("div",{children:[(0,V.jsx)("div",{className:"dp-meta-label",children:"Screenshot"}),(0,V.jsxs)("div",{id:"dp-screenshot-preview",style:{border:"1px solid color-mix(in srgb, var(--p-border-t) 70%, transparent)",borderRadius:10,overflow:"hidden",background:"var(--p-card)"},children:[(0,V.jsx)("button",{onClick:()=>m(w.name,k),style:{width:"100%",height:112,border:"none",padding:0,background:"linear-gradient(135deg, var(--p-border), var(--p-bg))",cursor:"pointer",display:"block",overflow:"hidden"},title:"Preview screenshot",children:(0,V.jsx)("img",{src:k,alt:"Task screenshot",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})}),(0,V.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderTop:"1px solid var(--p-border)",background:"var(--p-surface)"},children:[(0,V.jsx)("span",{style:{fontSize:10,color:"var(--p-text-f)",flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:w.addedAt?`Captured ${nt(w.addedAt)}`:"Screenshot attached"}),(0,V.jsx)("button",{onClick:()=>m(w.name,k),style:{fontSize:10,color:"var(--p-text-m)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Preview screenshot",children:"Preview"}),(0,V.jsx)("button",{onClick:()=>T(w.name),style:{fontSize:10,color:"var(--p-red)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Remove screenshot",children:"Remove"})]})]})]}),(0,V.jsxs)("div",{children:[(0,V.jsx)("div",{className:"dp-meta-label",children:"Tags"}),(0,V.jsx)(ji,{tags:c??(e==null?void 0:e.tags)??[],allTags:U,disabled:!e&&!i,onChange:O=>{i?i(O):e&&L(e.id,{tags:O})}})]}),(0,V.jsxs)("div",{children:[(0,V.jsx)("div",{className:"dp-meta-label",children:"Priority"}),(0,V.jsxs)("select",{id:"dp-priority",className:"dp-input",value:n,onChange:O=>{let re=O.target.value;l(re),g==null||g(re)},style:{padding:"5px 8px",fontSize:12,cursor:"pointer",width:"auto"},children:[(0,V.jsx)("option",{value:"",children:"\\u2014"}),(0,V.jsx)("option",{value:"Critical",children:"Critical"}),(0,V.jsx)("option",{value:"High",children:"High"}),(0,V.jsx)("option",{value:"Medium",children:"Medium"}),(0,V.jsx)("option",{value:"Low",children:"Low"})]})]}),e&&(0,V.jsxs)("div",{id:"dp-metadata",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6},children:[(0,V.jsx)(Xi,{label:"Created",id:"dp-created",children:e.createdAt?nt(e.createdAt):"\\u2014"}),(0,V.jsx)(Xi,{label:"ID",id:"dp-id",children:(0,V.jsx)("span",{style:{fontFamily:"monospace"},children:e.id})}),(0,V.jsx)(Xi,{label:"Author",id:"dp-author",children:e.authorName??e.author??"\\u2014"}),e.commit&&(0,V.jsx)(Kx,{task:e,githubUrl:h}),e.annotatedElementText&&(0,V.jsxs)("div",{id:"dp-annotated-text",style:{gridColumn:"1 / -1",background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,V.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Annotated element text"}),(0,V.jsx)("div",{style:{fontSize:11,color:"var(--p-text-f)",fontStyle:"italic",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.annotatedElementText})]})]}),(0,V.jsx)(jt,{open:S!==null,message:"Remove this screenshot? This action cannot be undone.",confirmLabel:"Remove",onConfirm:()=>{S&&y(S),T(null)},onCancel:()=>T(null)})]})}function Xi({label:e,id:t,children:a}){return(0,V.jsxs)("div",{id:t,style:{background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,V.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:e}),(0,V.jsx)("div",{style:{fontSize:11,color:"var(--p-text-f)",borderBottom:"1px solid var(--p-border)",paddingBottom:4,display:"flex",alignItems:"center",minHeight:16},children:a})]})}function Kx({task:e,githubUrl:t}){var n;let a=(n=e.commits)!=null&&n.length?e.commits:[{sha:e.commit,message:e.title??"",timestamp:e.createdAt??""}],r=a[a.length-1],o=a.map(l=>`${l.sha.slice(0,8)} ${l.timestamp?new Date(l.timestamp).toLocaleString():""} ${l.message.slice(0,60)}`).join(`\n`);return(0,V.jsxs)("div",{id:"dp-commit",style:{background:"var(--p-card)",borderRadius:8,padding:"8px 10px",cursor:"default"},title:a.length>1?`All commits:\n${o}`:`${r.sha}\n${r.message}`,children:[(0,V.jsxs)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:["Commit",a.length>1?"s":""]}),(0,V.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[t&&e.commitPushed!==!1?(0,V.jsxs)("a",{href:`${t}/commit/${r.sha}`,target:"_blank",rel:"noopener noreferrer",style:{fontSize:10,color:"var(--p-blue-300)",fontFamily:"monospace",textDecoration:"none"},title:"Open diff on GitHub",onClick:l=>l.stopPropagation(),children:[r.sha.slice(0,8)," \\u2197"]}):(0,V.jsxs)("span",{style:{fontSize:10,color:"var(--p-text-f)",fontFamily:"monospace"},title:e.commitPushed===!1?"Commit not pushed to remote yet":void 0,children:[r.sha.slice(0,8),e.commitPushed===!1?" \\u23F3":""]}),a.length>1&&(0,V.jsxs)("span",{style:{fontSize:9,color:"var(--p-blue)",background:"color-mix(in srgb, var(--p-blue) 12%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 25%, transparent)",borderRadius:10,padding:"0 5px",fontWeight:600},children:["+",a.length-1]})]})]})}function jx(e){let a=e.indexOf(`\n---\n**Console logs**`);return a===-1?{userPart:e,consolePart:null}:{userPart:e.slice(0,a).trim(),consolePart:e.slice(a+1).trim()}}function Xx({logs:e}){let t=e.replace(/^---\\s*\\n/,"").split(`\n`).filter(a=>a.trim());return(0,V.jsxs)("div",{id:"dp-console-logs",style:{borderRadius:8,border:"1px solid color-mix(in srgb, var(--p-red) 30%, var(--p-border))",background:"color-mix(in srgb, var(--p-red) 4%, var(--p-card))",overflow:"hidden"},children:[(0,V.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 10px",borderBottom:"1px solid color-mix(in srgb, var(--p-red) 20%, var(--p-border))",background:"color-mix(in srgb, var(--p-red) 8%, var(--p-card))"},children:[(0,V.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"color-mix(in srgb, var(--p-red) 80%, var(--p-text-sub))",letterSpacing:"0.05em",textTransform:"uppercase"},children:"Console Logs"}),(0,V.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",marginLeft:"auto"},children:"captured at submission"})]}),(0,V.jsxs)("div",{style:{padding:"6px 10px",maxHeight:200,overflowY:"auto",display:"flex",flexDirection:"column",gap:3},children:[t.map((a,r)=>{let o=a.includes("\\u{1F534}"),n=a.includes("\\u{1F7E1}"),l=a.replace(/^[-*]\\s*/,"");return(0,V.jsx)("div",{style:{fontFamily:"Menlo, monospace",fontSize:10,lineHeight:1.5,color:o?"var(--p-red)":n?"var(--p-amber-300)":"var(--p-text-f)",wordBreak:"break-all"},children:l},r)}),t.length===0&&(0,V.jsx)("div",{style:{fontSize:10,color:"var(--p-text-g)",fontStyle:"italic"},children:"No log entries captured."})]})]})}var co=D(_(),1);function Zi({commentInput:e,setCommentInput:t,commentSubmitting:a,onSubmit:r,baseRows:o=4}){return(0,co.jsx)("div",{id:"dp-comment-input-area",children:(0,co.jsx)(wn,{value:e,onChange:t,showPreview:!1,setShowPreview:()=>{},previewId:"dp-comment-tab-edit",textareaId:"dp-comment-input",placeholder:"Add a comment\\u2026 (markdown)",previewEmptyText:"Leave a comment (markdown)\\u2026",previewMinHeight:o<=2?36:54,previewMaxHeight:140,baseRows:o,maxRows:10,autoFocus:!0,onKeyDown:n=>{n.key==="Enter"&&(n.ctrlKey||n.metaKey)&&(n.preventDefault(),r())},afterTextarea:(0,co.jsx)("button",{id:"dp-comment-submit",disabled:a,onMouseDown:n=>{n.preventDefault(),r()},title:"Send (Ctrl+Enter)",style:{position:"absolute",bottom:16,right:8,width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--p-blue)",border:"none",borderRadius:6,cursor:"pointer",color:"var(--p-white)",transition:"background .15s"},children:(0,co.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{display:"block"},children:(0,co.jsx)("path",{d:"M2 8L14 2L10 8L14 14L2 8Z",fill:"currentColor"})})})})})}var M=D(_(),1),Qx="vibeflow-paste-hint-dismissed";function Yx({storageKey:e=Qx}){let[t,a]=j.default.useState(()=>{try{return!localStorage.getItem(e)}catch{return!0}});if(!t)return null;function r(){try{localStorage.setItem(e,"1")}catch{}a(!1)}return(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",margin:"0 0 6px",borderRadius:6,background:"rgba(37,99,235,0.08)",border:"1px solid rgba(37,99,235,0.18)",fontSize:11,color:"var(--p-blue-300)",flexShrink:0},children:[(0,M.jsxs)("span",{style:{flex:1,lineHeight:1.4},children:["\\u{1F4A1} ",(0,M.jsx)("strong",{children:"Tip:"})," Paste screenshots or files anywhere in this panel \\u2014 they attach automatically."]}),(0,M.jsx)("button",{onClick:r,title:"Dismiss",style:{flexShrink:0,background:"none",border:"none",cursor:"pointer",padding:2,color:"var(--p-blue-300)",opacity:.7,display:"flex",alignItems:"center"},onMouseEnter:o=>{o.currentTarget.style.opacity="1"},onMouseLeave:o=>{o.currentTarget.style.opacity="0.7"},children:(0,M.jsx)(ze,{style:{width:12,height:12}})})]})}var Zx=[{id:"backlog",label:"backlog"},{id:"todo",label:"todo"},{id:"in-progress",label:"in-progress"},{id:"review",label:"review"},{id:"done",label:"done"}],Jx=5*1024*1024;function Ji(e,t=.8){return new Promise((a,r)=>{let o=new Image,n=URL.createObjectURL(e);o.onload=()=>{let l=document.createElement("canvas");l.width=o.naturalWidth,l.height=o.naturalHeight;let s=l.getContext("2d");if(!s){URL.revokeObjectURL(n),r(new Error("canvas unavailable"));return}s.drawImage(o,0,0),URL.revokeObjectURL(n),l.toBlob(u=>{u?a(u):r(new Error("canvas.toBlob failed"))},"image/jpeg",t)},o.onerror=()=>{URL.revokeObjectURL(n),r(new Error("image load failed"))},o.src=n})}function ed({open:e,task:t,tab:a,addColumnId:r="todo",gitUserName:o="You",githubUrl:n,baseUrl:l,isResizing:s,api:u,onClose:d,onSave:g,onCreate:h,onDelete:m,onPatch:L,onFilePreview:y,onActivityChange:I,externalLocalChanges:U=[],showLockIndicator:c=!0,lockedByUser:i,onGoBack:f,navBackLabel:v,commentVersion:w,allTasks:k=[]}){let p=!t,S=t?Ln(t.type):Ln("Task"),T=j.default.useRef(null),[F,A]=j.default.useState([]),O=j.default.useRef(!1),re=j.default.useRef(""),J=j.default.useRef(""),Re=j.default.useMemo(()=>{let C=new Set;for(let H of k)for(let W of H.tags??[])C.add(W);return[...C].sort()},[k]),[q,N]=j.default.useState(a),[Q,oe]=j.default.useState(""),[$,me]=j.default.useState(""),[lt,wt]=j.default.useState(r),[Ke,Xt]=j.default.useState("Task"),[kt,da]=j.default.useState(""),[Ut,Lr]=j.default.useState(!1),[ps,yr]=j.default.useState(!1),[Nt,Qt]=j.default.useState(!1),[ms,kn]=j.default.useState([]),[gs,bn]=j.default.useState(!1),[Pn,Wa]=j.default.useState(null),[fa,Sr]=j.default.useState(""),[Ir,Tn]=j.default.useState(!1),[Cr,Rn]=j.default.useState([]),[Dn,An]=j.default.useState(!1),[hs,mo]=j.default.useState(null),[Mn,wr]=j.default.useState(0),Va=j.default.useRef(0),[x,b]=j.default.useState(0),[B,Y]=j.default.useState(null),[he,ce]=j.default.useState([]),[te,ue]=j.default.useState([]),Je=j.default.useRef(null),Me=j.default.useRef(()=>{}),pt=j.default.useRef(""),R=j.default.useRef(!1);j.default.useEffect(()=>{pt.current=fa},[fa]),j.default.useEffect(()=>{R.current=Nt},[Nt]),j.default.useEffect(()=>{O.current=s??!1},[s]),j.default.useEffect(()=>{e||I==null||I(null,"viewing")},[e]),j.default.useEffect(()=>{if(!e||!t)return;Q!==re.current||$!==J.current?I==null||I(t.id,"locked"):I==null||I(t.id,"viewing")},[Q,$,e,t==null?void 0:t.id]),j.default.useEffect(()=>{if(!e)return;function C(H){var W,Le,fe,bt;if(!O.current&&!((Le=(W=H.target)==null?void 0:W.closest)!=null&&Le.call(W,"[data-task-ref-suggest]"))&&!((bt=(fe=H.target)==null?void 0:fe.closest)!=null&&bt.call(fe,".modal-backdrop"))&&T.current&&!T.current.contains(H.target)){if(R.current)return;if(pt.current.trim().length>0){Me.current(),Qt(!0);return}Me.current(),d()}}return document.addEventListener("mousedown",C),()=>document.removeEventListener("mousedown",C)},[e,d]),j.default.useEffect(()=>{if(!e)return;function C(H){if(H.key==="Escape"){if(R.current){Qt(!1),H.stopPropagation();return}if(pt.current.trim().length>0){H.stopPropagation(),Me.current(),Qt(!0);return}}}return document.addEventListener("keydown",C,{capture:!0}),()=>document.removeEventListener("keydown",C,{capture:!0})},[e]),j.default.useEffect(()=>{if(e){if(N(a),Lr(!!t),Sr(""),kn([]),Rn([]),wr(0),b(0),ce([]),ue([]),t){let C=(t.title??"").trim(),H=(t.description??"").trim();oe(C),me(H),wt(t.status),Xt(t.type??"Task"),da(t.priority??""),re.current=C,J.current=H,I==null||I(t.id,"viewing")}else oe(""),me(""),wt(r),Xt("Task"),da("");t&&(Yt(t.id),_e(t.id)),setTimeout(()=>{var C;return(C=Je.current)==null?void 0:C.focus()},50)}},[e,t==null?void 0:t.id,a]),j.default.useEffect(()=>{!e||!t||(q==="comments"?(Ht(t.id),_e(t.id)):q==="files"&&_e(t.id))},[q,e,t==null?void 0:t.id]),j.default.useEffect(()=>{if(!e||!t||Q!==re.current||$!==J.current)return;let H=(t.title??"").trim(),W=(t.description??"").trim();(H!==re.current||W!==J.current)&&(oe(H),me(W),re.current=H,J.current=W),t.status&&t.status!==lt&&wt(t.status),t.type&&t.type!==Ke&&Xt(t.type),t.priority!==void 0&&t.priority!==kt&&da(t.priority??"")},[t==null?void 0:t.title,t==null?void 0:t.description,t==null?void 0:t.status,t==null?void 0:t.type,t==null?void 0:t.priority]),j.default.useEffect(()=>{!e||!t||w===void 0||(q==="comments"?Ht(t.id):Yt(t.id))},[w]);async function Yt(C){var H,W;try{let[Le,fe]=await Promise.all([u.getComments(C),u.getFiles(C)]);wr(((H=Le.comments)==null?void 0:H.length)??0),b(((W=fe.files)==null?void 0:W.length)??0)}catch{}}async function Ht(C){var W;let H=++Va.current;bn(!0),Wa(null);try{let Le=await u.getComments(C);if(Va.current!==H)return;kn(Le.comments??[]),wr(((W=Le.comments)==null?void 0:W.length)??0)}catch{if(Va.current!==H)return;Wa("failed")}finally{Va.current===H&&bn(!1)}}async function _e(C){var H;An(!0),mo(null);try{let W=await u.getFiles(C);Rn(W.files??[]),b(((H=W.files)==null?void 0:H.length)??0)}catch{mo("failed")}finally{An(!1)}}async function kr(){var C;if(!Q.trim()){(C=Je.current)==null||C.focus();return}if(!p&&fa.trim()&&await xs(),p){let H=await h({title:Q.trim(),description:$.trim()||Q.trim(),status:lt,type:Ke,priority:kt||void 0,selector:"/",tags:te.length>0?te:void 0});if(H&&F.length>0){for(let W of F)await u.uploadFile(H,W).catch(()=>null);A([])}d()}else $a()}function $a(){if(!t||p)return;let C=Q.trim();if(!C)return;let H=re.current,W=J.current,Le=C!==H,fe=$.trim()!==W;!Le&&!fe||(Le&&Ga("title",H,C),fe&&Ga("description",W,$.trim()),L(t.id,{title:C,description:$.trim(),type:Ke,priority:kt||void 0}),re.current=C,J.current=$.trim())}Me.current=$a;function Ga(C,H,W){H!==W&&ce(Le=>[...Le,{field:C,from:H,to:W,actor:o,timestamp:new Date().toISOString()}])}async function xs(){if(!(!t||!fa.trim())){Tn(!0);try{await u.addComment(t.id,fa.trim()),Sr(""),await Ht(t.id)}finally{Tn(!1)}}}async function Pm(C,H){t&&(await u.updateComment(t.id,C.id,H),await Ht(t.id))}async function Tm(C){t&&(await u.deleteComment(t.id,C.id),await Ht(t.id))}async function Rm(C){if(!t)return;let H=t.id;Y(null);for(let W of Array.from(C.target.files??[])){if(!W.type.startsWith("image/")&&W.size>Jx){Y(`"${W.name}" exceeds the 5 MB limit and was skipped.`);continue}let Le;if(W.type.startsWith("image/")){let fe=await Ji(W),bt=W.name.replace(/\\.(png|bmp|gif|webp|tiff?)$/i,".jpg");Le=new File([fe],bt,{type:"image/jpeg"})}else Le=W;await u.uploadFile(H,Le)}C.target.value="",await _e(H),Yt(H)}async function Dm(C){if(!t)return;Y(null);let H=await Ji(C),Le=`paste-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.jpg`,fe=new File([H],Le,{type:"image/jpeg"});await u.uploadFile(t.id,fe),await _e(t.id),Yt(t.id)}async function Am(C){if(!t)return;let H=Array.from(C.items),W=H.find(fe=>fe.type.startsWith("image/"));if(W){let fe=W.getAsFile();fe&&await Dm(fe);return}let Le=H.filter(fe=>fe.kind==="file"&&!fe.type.startsWith("image/"));if(Le.length>0){for(let fe of Le){let bt=fe.getAsFile();bt&&await u.uploadFile(t.id,bt)}await _e(t.id),Yt(t.id);return}}j.default.useEffect(()=>{if(!e)return;function C(H){if(!H.clipboardData)return;let W=H.target;if(!((W.tagName==="TEXTAREA"||W.tagName==="INPUT"||W.isContentEditable)&&!Array.from(H.clipboardData.items).some(br=>br.kind==="file"))){if(H.preventDefault(),!t){let bt=Array.from(H.clipboardData.items).find(br=>br.type.startsWith("image/"));if(bt){let br=bt.getAsFile();br&&(async()=>{let zm=await Ji(br),Um=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),Nm=new File([zm],`paste-${Um}.jpg`,{type:"image/jpeg"});A(Hm=>[...Hm,Nm])})()}return}Am(H.clipboardData)}}return document.addEventListener("paste",C),()=>document.removeEventListener("paste",C)},[e,t==null?void 0:t.id]);async function od(C){t&&(await u.deleteFile(t.id,C.name),await _e(t.id),Yt(t.id))}async function Mm(C){if(!t)return;await u.deleteFile(t.id,C);let H=(t.files??[]).filter(W=>W.name!==C);L(t.id,{files:H}),await _e(t.id),Yt(t.id)}function Em(C){wt(C),!p&&t&&L(t.id,{status:C})}let Fm=C=>C!==lt?"dp-status-btn":`dp-status-btn active-${C}`;function nd(){if(!R.current){if(pt.current.trim().length>0){Me.current(),Qt(!0);return}Me.current(),d()}}let Bm=e&&t!=null&&(Q!==re.current||$!==J.current),Om=j.default.useMemo(()=>{let C=[...U,...he].sort((W,Le)=>new Date(W.timestamp).getTime()-new Date(Le.timestamp).getTime()),H=[];for(let W of C)H.some(fe=>fe.field===W.field&&fe.from.toLowerCase()===W.from.toLowerCase()&&fe.to.toLowerCase()===W.to.toLowerCase()&&fe.actor===W.actor&&Math.abs(new Date(fe.timestamp).getTime()-new Date(W.timestamp).getTime())<=3e3)||H.push(W);return H},[U,he]),Ka=!p&&!!i;return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("aside",{id:"detail-panel",className:"open",ref:T,children:[Ka&&(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",background:"rgba(234,88,12,0.12)",border:"1px solid rgba(234,88,12,0.25)",borderRadius:6,margin:"8px 12px 0",fontSize:12,color:"#f97316",fontWeight:500},children:["\\u{1F512} Locked by ",(0,M.jsx)("strong",{children:i})," \\u2014 editing disabled until they finish."]}),(0,M.jsxs)("div",{className:"dp-header",children:[(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[f&&(0,M.jsx)("button",{id:"dp-back",onClick:f,title:v?`Back to: ${v}`:"Go back",style:{width:26,height:26,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"1px solid var(--p-border-t)",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s",fontSize:14,lineHeight:1},onMouseOver:C=>{C.currentTarget.style.background="var(--p-border)",C.currentTarget.style.color="var(--p-blue-300)",C.currentTarget.style.borderColor="var(--p-blue)"},onMouseOut:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--p-text-g)",C.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u2190"}),(0,M.jsx)(us,{id:"dp-type-picker",value:Ke,disabled:Ka,onChange:C=>{!p&&t&&C!==Ke&&Ga("type",Ke,C),Xt(C),!p&&t&&L(t.id,{type:C})}}),(0,M.jsx)("input",{id:"dp-title",ref:Je,className:"dp-input",type:"text",placeholder:"Task title\\u2026",value:Q,readOnly:Ka,onChange:C=>oe(C.target.value),onKeyDown:C=>{C.key==="Escape"&&(C.stopPropagation(),nd()),C.key==="Enter"&&p&&kr()},style:{flex:1,fontSize:14,fontWeight:600,padding:"4px 8px",borderColor:"transparent",background:"transparent"},onFocus:C=>{C.currentTarget.style.borderColor="var(--p-blue)",C.currentTarget.style.background="var(--p-input)"},onBlur:C=>{C.currentTarget.style.borderColor="transparent",C.currentTarget.style.background="transparent",p||$a()}}),!p&&Q!==re.current&&Q.trim()!==""&&(0,M.jsx)("button",{type:"button",title:"Discard title changes",onMouseDown:C=>{C.preventDefault(),oe(re.current)},style:{width:20,height:20,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,border:"1px solid var(--p-border-t)",background:"none",color:"var(--p-text-g)",cursor:"pointer",fontSize:13,lineHeight:1},onMouseEnter:C=>{C.currentTarget.style.color="var(--p-amber-300)",C.currentTarget.style.borderColor="var(--p-amber-300)"},onMouseLeave:C=>{C.currentTarget.style.color="var(--p-text-g)",C.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u21A9"}),(0,M.jsx)("button",{id:"dp-close",onClick:nd,style:{width:26,height:26,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"none",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s",pointerEvents:"auto"},onMouseOver:C=>{C.currentTarget.style.background="var(--p-border)",C.currentTarget.style.color="var(--p-text-m)"},onMouseOut:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--p-text-g)"},children:(0,M.jsx)(ze,{style:{width:14,height:14}})}),c&&Bm&&t&&(0,M.jsx)("span",{id:"dp-lock-indicator",title:`Locked by ${o} \\u2014 unsaved changes`,style:{display:"inline-flex",alignItems:"center",gap:3,flexShrink:0,borderRadius:999,padding:"2px 7px",fontSize:10,fontWeight:600,border:"1px solid rgba(244,114,182,0.35)",color:"#f9a8d4",background:"rgba(157,23,77,0.28)"},children:"\\u{1F512} Locked"})]}),(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",...Ka?{pointerEvents:"none",opacity:.6}:{}},children:[(0,M.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",fontWeight:500,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Status"}),Zx.map(C=>(0,M.jsx)("button",{className:Fm(C.id),"data-status":C.id,onClick:()=>Em(C.id),children:C.label},C.id))]})]}),!p&&(0,M.jsxs)("div",{className:"dp-tabs",id:"dp-tabs-row",children:[(0,M.jsx)("button",{className:`dp-tab${q==="details"?" active":""}`,id:"dp-tab-details",onClick:()=>N("details"),children:"Details"}),(0,M.jsxs)("button",{className:`dp-tab${q==="comments"?" active":""}`,id:"dp-tab-activity",onClick:()=>N("comments"),children:["Activity ",Mn>0&&(0,M.jsxs)("span",{id:"dp-activity-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",Mn,")"]})]}),(0,M.jsxs)("button",{className:`dp-tab${q==="files"?" active":""}`,id:"dp-tab-files",onClick:()=>N("files"),children:["Files ",x>0&&(0,M.jsxs)("span",{id:"dp-file-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",x,")"]})]})]}),(0,M.jsxs)("div",{className:"dp-body",children:[!p&&(0,M.jsx)(Yx,{}),(0,M.jsxs)("div",{className:"dp-pane",id:"dp-details-pane",style:{display:!t||q==="details"?"":"none"},children:[(0,M.jsx)("div",{style:Ka?{pointerEvents:"none",opacity:.6}:void 0,children:(0,M.jsx)(Yi,{task:t,description:$,setDescription:me,showDescPreview:Ut,setShowDescPreview:Lr,priority:kt,setPriority:da,onDescriptionBlur:p?void 0:$a,onDescriptionDiscard:p?void 0:()=>{me(J.current),Lr(!0)},originalDescription:p?void 0:J.current,onPriorityChange:p?void 0:C=>{t&&(C!==kt&&Ga("priority",kt||"\\u2014",C||"\\u2014"),L(t.id,{priority:C||void 0}))},githubUrl:n,onFilePreview:y,onDeleteScreenshot:Mm,onPatch:L,liveFiles:Cr.length>0||Dn?Cr:void 0,allTags:Re,overrideTags:p?te:void 0,onTagsChange:p?ue:void 0})}),!p&&t&&(0,M.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",flexShrink:0,marginTop:12,borderTop:"1px solid var(--p-border)",paddingTop:10},children:(0,M.jsx)(ev,{task:t})})]}),(0,M.jsxs)("div",{className:"dp-pane",id:"dp-activity-pane",style:{display:q==="comments"&&!p?"":"none"},children:[(0,M.jsx)("div",{style:{borderBottom:"1px solid var(--p-border)",paddingBottom:8,flexShrink:0},children:(0,M.jsx)(Zi,{commentInput:fa,setCommentInput:Sr,commentSubmitting:Ir,onSubmit:()=>void xs(),baseRows:2})}),(0,M.jsx)(Gi,{comments:ms,files:Cr,localChanges:Om,loading:gs,error:Pn,gitUserName:o,taskAuthorName:t==null?void 0:t.authorName,baseUrl:l,taskId:t==null?void 0:t.id,taskCreatedAt:t==null?void 0:t.createdAt,taskUpdatedAt:t==null?void 0:t.updatedAt,onEdit:Pm,onDelete:Tm,onDeleteFile:od,onFilePreview:y})]}),(0,M.jsxs)("div",{className:"dp-pane",id:"dp-files-pane",style:{display:q==="files"&&!p?"":"none"},children:[(0,M.jsx)(Ki,{files:Cr,loading:Dn,error:hs,baseUrl:l,onPreview:C=>y(C.name,C.linkedPath?`${l}/api/tasks/${t==null?void 0:t.id}/files/${encodeURIComponent(C.name)}`:`${l}${C.url}`),onDelete:Ka?void 0:od}),(0,M.jsxs)("div",{style:{borderTop:"1px solid var(--p-border)",paddingTop:8,flexShrink:0,display:"flex",gap:8,flexWrap:"wrap",alignItems:"center",...Ka?{pointerEvents:"none",opacity:.5}:{}},children:[B&&(0,M.jsx)("div",{style:{width:"100%",fontSize:11,color:"var(--p-red)",background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.2)",borderRadius:5,padding:"4px 8px"},children:B}),(0,M.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"6px 10px",background:"var(--p-card)",border:"1px solid var(--p-border)",borderRadius:8,color:"var(--p-text-m)",fontSize:12,transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-border-t)",C.currentTarget.style.color="var(--p-text)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border)",C.currentTarget.style.color="var(--p-text-m)"},children:[(0,M.jsx)(lo,{style:{width:12,height:12}}),"Upload",(0,M.jsx)("input",{id:"dp-file-upload",type:"file",style:{display:"none"},multiple:!0,onChange:Rm})]}),(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-border-t)",marginLeft:"auto"},children:"or paste image"})]})]})]}),(0,M.jsxs)("div",{className:"dp-footer",children:[!p&&(0,M.jsx)("button",{id:"dp-delete",onClick:()=>yr(!0),style:{color:"var(--p-red)",background:"none",border:"1px solid var(--p-border-t)",borderRadius:7,padding:"5px 12px",fontSize:12,cursor:"pointer",fontFamily:"inherit",transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-red)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border-t)"},children:"Delete"}),(0,M.jsx)("div",{style:{flex:1}}),p?(0,M.jsxs)(M.Fragment,{children:[F.length>0&&(0,M.jsxs)("span",{style:{fontSize:11,color:"var(--p-blue-300)",marginRight:8,background:"rgba(37,99,235,0.1)",border:"1px solid rgba(37,99,235,0.25)",borderRadius:6,padding:"3px 8px"},children:["\\u{1F4CE} ",F.length," screenshot",F.length!==1?"s":""," will attach on save"]}),(0,M.jsx)("button",{id:"dp-cancel",onClick:d,style:{padding:"5px 14px",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",border:"1px solid var(--p-border-t)",background:"var(--p-border)",color:"var(--p-text-sub)",fontFamily:"inherit",transition:"all .15s"},onMouseOver:C=>{C.currentTarget.style.borderColor="var(--p-text-g)"},onMouseOut:C=>{C.currentTarget.style.borderColor="var(--p-border-t)"},children:"Cancel"}),(0,M.jsx)("button",{id:"dp-save",onClick:()=>void kr(),style:{padding:"5px 18px",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",border:"1px solid var(--p-blue-700)",background:"var(--p-blue)",color:"var(--p-white)",fontFamily:"inherit",transition:"background .15s"},onMouseOver:C=>{C.currentTarget.style.background="var(--p-blue-700)"},onMouseOut:C=>{C.currentTarget.style.background="var(--p-blue)"},children:"Add Task"})]}):(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)",padding:"5px 4px"},children:"Changes are saved automatically"})]}),(0,M.jsx)(jt,{open:ps,title:"Delete task?",message:`You are about to permanently delete "${(t==null?void 0:t.title)||"this task"}". This action cannot be undone.`,confirmLabel:"Delete task",onConfirm:()=>{yr(!1),m(t.id),d()},onCancel:()=>yr(!1)})]}),Nt&&(0,M.jsx)("div",{style:{position:"fixed",inset:0,zIndex:201,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",background:"rgba(2,12,27,0.80)"},children:(0,M.jsxs)("div",{style:{background:"var(--p-surface)",border:"1px solid var(--p-border-s)",borderRadius:16,padding:"28px 32px",width:"100%",maxWidth:480,boxShadow:"var(--p-shadow-lg)",position:"relative"},children:[(0,M.jsx)("div",{style:{width:44,height:44,borderRadius:12,background:"rgba(139,92,246,0.12)",border:"1px solid rgba(139,92,246,0.25)",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:16},children:(0,M.jsx)(lo,{style:{width:20,height:20,color:"var(--p-purple)"}})}),(0,M.jsx)("h2",{style:{margin:"0 0 8px",fontSize:17,fontWeight:700,color:"var(--p-text)"},children:"Send comment?"}),(0,M.jsx)("p",{style:{margin:"0 0 22px",fontSize:13,color:"var(--p-text-f)",lineHeight:1.6},children:"You have an unsent comment. Do you want to send it before closing?"}),(0,M.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,M.jsx)("button",{onClick:()=>{Qt(!1),xs().then(()=>d())},style:{flex:1,padding:"9px 14px",borderRadius:8,background:"var(--p-purple)",border:"none",color:"#fff",fontSize:13,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:"Send & Close"}),(0,M.jsx)("button",{type:"button",onClick:()=>{Qt(!1),Sr(""),d()},style:{padding:"9px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer"},children:"Discard & Close"}),(0,M.jsx)("button",{type:"button",onClick:()=>Qt(!1),style:{padding:"9px 16px",borderRadius:8,background:"var(--p-hover)",border:"1px solid var(--p-border)",color:"var(--p-text-m)",fontSize:13,cursor:"pointer"},children:"Keep editing"})]})]})})]})}function ev({task:e}){let t=[];if(e.component&&t.push((0,M.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"color-mix(in srgb, var(--p-purple) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 36%, transparent)",borderRadius:100,fontSize:10,color:"var(--p-purple-300)",fontFamily:"monospace"},children:["\\u2B21 ",e.component]},"component")),e.file||e.selector&&e.selector!=="/"||e.cssSelector){let r=e.file??"";e.line!=null&&(r+=`:${e.line}`),e.col!=null&&(r+=`:${e.col}`);let o=e.cssSelector??(e.selector&&e.selector!=="/"?e.selector:""),n=r||o;if(n){let l=n.length>40?`\\u2026${n.slice(-40)}`:n,s=e.url?e.url.length>30?`\\u2026${e.url.slice(-30)}`:e.url:"";t.push((0,M.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:0,borderRadius:6,overflow:"hidden",border:"1px solid color-mix(in srgb, var(--p-blue) 15%, transparent)",fontSize:10,fontFamily:"monospace",whiteSpace:"nowrap"},children:[(0,M.jsx)("span",{title:[r,o].filter(Boolean).join(" \\xB7 "),style:{padding:"2px 6px",background:"color-mix(in srgb, var(--p-blue) 10%, transparent)",color:"var(--p-blue-300)"},children:l}),s&&(0,M.jsx)("span",{title:e.url,style:{padding:"2px 6px",background:"color-mix(in srgb, var(--p-border) 72%, transparent)",color:"var(--p-text-g)",borderLeft:"1px solid color-mix(in srgb, var(--p-blue) 18%, transparent)"},children:s})]},"source"))}}else if(e.url){let r=e.url.length>40?`\\u2026${e.url.slice(-40)}`:e.url;t.push((0,M.jsx)("span",{className:"dp-source-pill",title:e.url,children:r},"url"))}return e.reportBack&&t.push((0,M.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"color-mix(in srgb, var(--p-purple) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 24%, transparent)",borderRadius:100,fontSize:10,color:"var(--p-purple-300)"},children:"\\u21A9 report back"},"rb")),(0,M.jsx)("div",{id:"dp-meta-row",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",flex:1},children:t})}var vr=D(Ie(),1);var X=D(_(),1),tv=[{id:"all",label:"All",dot:""},{id:"todo",label:"Todo",dot:"var(--p-amber)"},{id:"in-progress",label:"In Progress",dot:"var(--p-blue)"},{id:"review",label:"Review",dot:"var(--p-purple)"}],av={todo:{background:"color-mix(in srgb, var(--p-amber) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-amber) 38%, transparent)",color:"var(--p-amber-300)"},"in-progress":{background:"color-mix(in srgb, var(--p-blue) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 38%, transparent)",color:"var(--p-blue-200)"},review:{background:"color-mix(in srgb, var(--p-purple) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 38%, transparent)",color:"var(--p-purple-300)"},done:{background:"color-mix(in srgb, var(--p-green) 14%, transparent)",border:"1px solid color-mix(in srgb, var(--p-green) 32%, transparent)",color:"var(--p-green-300)"},backlog:{background:"color-mix(in srgb, var(--p-text-g) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--p-text-g) 32%, transparent)",color:"var(--p-text-m)"},all:{background:"color-mix(in srgb, var(--p-blue) 12%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 32%, transparent)",color:"var(--p-blue-200)"}};function td({tasks:e,filter:t,onFilter:a,view:r="board",onViewChange:o,activityCounter:n}){let[l,s]=vr.default.useState(!1),[u,d]=vr.default.useState(!1),[g,h]=vr.default.useState(!1),m=vr.default.useMemo(()=>[...new Set(e.map(p=>p.type).filter(Boolean))].sort(),[e]),L=vr.default.useMemo(()=>[...new Set(e.map(p=>p.author).filter(Boolean))].sort(),[e]),y=vr.default.useMemo(()=>{let p=new Set;for(let S of e)for(let T of S.tags??[])p.add(T);return[...p].sort()},[e]);function I(p){return e.filter(S=>S.status===p).length}function U(p){a({...t,status:p}),s(!1),d(!1),h(!1)}function c(p){a({...t,type:p}),s(!1)}function i(p){a({...t,user:p}),d(!1)}function f(p){let S=t.tags??[],T=S.includes(p)?S.filter(F=>F!==p):[...S,p];a({...t,tags:T})}function v(p){p.stopPropagation();let S=p.currentTarget.dataset.status;S&&U(S)}let w={display:"flex",alignItems:"center",gap:5,padding:"3px 10px",borderRadius:6,fontSize:11,cursor:"pointer",border:"1px solid transparent",background:"transparent",color:"var(--p-text-f)",transition:"all .12s",fontFamily:"inherit",fontWeight:500},k={...w,background:"var(--p-card)",border:"1px solid var(--p-border)",color:"var(--p-text-f)",padding:"3px 10px",position:"relative"};return(0,X.jsxs)("div",{"data-proto-id":"filter-bar",style:{display:"flex",alignItems:"center",gap:6,padding:"7px 16px",background:"var(--p-surface)",borderBottom:"1px solid var(--p-border)",flexShrink:0},onClick:()=>{s(!1),d(!1),h(!1)},children:[(0,X.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:tv.map(p=>{let S=t.status===p.id,T=p.id!=="all"?I(p.id):null,F=S?av[p.id]:{};return(0,X.jsxs)("button",{"data-status":p.id,style:{...w,...F},onMouseOver:A=>{S||(A.currentTarget.style.background="var(--p-hover)",A.currentTarget.style.color="var(--p-text-m)")},onMouseOut:A=>{S||(A.currentTarget.style.background="transparent",A.currentTarget.style.color="var(--p-text-f)")},onClick:v,children:[p.dot&&(0,X.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:p.dot,flexShrink:0,display:"inline-block"}}),p.label,T!=null&&(0,X.jsx)("span",{style:{color:S?"inherit":"var(--p-border-t)",fontSize:10,opacity:.8},children:T})]},p.id)})}),(0,X.jsx)("div",{style:{flex:1}}),n,t.user&&(0,X.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:"color-mix(in srgb, var(--p-purple) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-purple) 24%, transparent)",fontSize:10,color:"var(--p-purple-300)"},children:[t.user,(0,X.jsx)("button",{onClick:()=>i(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-purple-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,X.jsx)(ze,{style:{width:10,height:10}})})]}),t.type&&(0,X.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:"color-mix(in srgb, var(--p-blue) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--p-blue) 24%, transparent)",fontSize:10,color:"var(--p-cyan-300)"},children:[t.type,(0,X.jsx)("button",{onClick:()=>c(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-cyan-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,X.jsx)(ze,{style:{width:10,height:10}})})]}),(t.tags??[]).map(p=>{let{bg:S,text:T,border:F}=Bt(p);return(0,X.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",borderRadius:100,background:S,border:`1px solid ${F}`,fontSize:10,color:T,fontWeight:600},children:[p,(0,X.jsx)("button",{onClick:()=>f(p),style:{display:"flex",background:"none",border:"none",color:T,cursor:"pointer",padding:0,lineHeight:1},children:(0,X.jsx)(ze,{style:{width:10,height:10}})})]},p)}),(0,X.jsxs)("div",{style:{position:"relative"},children:[(0,X.jsxs)("button",{style:{...k,color:(t.tags??[]).length?"var(--p-green-300)":"var(--p-text-f)",borderColor:(t.tags??[]).length?"color-mix(in srgb, var(--p-green) 36%, transparent)":"var(--p-border)",opacity:y.length?1:.55},onClick:p=>{p.stopPropagation(),y.length&&(d(!1),s(!1),h(S=>!S))},children:[(0,X.jsx)(no,{style:{width:12,height:12}}),"Tags",(t.tags??[]).length>0&&(0,X.jsx)("span",{style:{fontSize:9,background:"color-mix(in srgb, var(--p-green) 20%, transparent)",color:"var(--p-green-300)",borderRadius:100,padding:"0 4px"},children:(t.tags??[]).length}),(0,X.jsx)(ir,{style:{width:12,height:12}})]}),g&&y.length>0&&(0,X.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:160,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(t.tags??[]).length>0&&(0,X.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>a({...t,tags:[]}),children:"Clear tag filters"}),y.map(p=>{let{bg:S,text:T,border:F}=Bt(p),A=(t.tags??[]).includes(p);return(0,X.jsxs)("button",{style:{width:"100%",textAlign:"left",padding:"6px 12px",fontSize:11,color:"var(--p-text-m)",background:A?"var(--p-hover)":"none",border:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:6},onMouseEnter:O=>{O.currentTarget.style.background="var(--p-hover)"},onMouseLeave:O=>{O.currentTarget.style.background=A?"var(--p-hover)":"none"},onClick:()=>f(p),children:[(0,X.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:T,border:`1px solid ${F}`,flexShrink:0}}),(0,X.jsx)("span",{style:{flex:1},children:p}),A&&(0,X.jsx)("span",{style:{color:T,fontSize:12,lineHeight:1},children:"\\u2713"})]},p)})]})]}),(0,X.jsxs)("div",{style:{position:"relative"},children:[(0,X.jsxs)("button",{style:{...k,color:t.user?"var(--p-purple-300)":"var(--p-text-f)",borderColor:t.user?"color-mix(in srgb, var(--p-purple) 36%, transparent)":"var(--p-border)",opacity:L.length?1:.55},onClick:p=>{p.stopPropagation(),L.length&&(s(!1),d(S=>!S))},children:[(0,X.jsx)(xn,{style:{width:12,height:12}}),"User",(0,X.jsx)(ir,{style:{width:12,height:12}})]}),u&&L.length>0&&(0,X.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:160,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(0,X.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>i(null),children:"All users"}),L.map(p=>(0,X.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.user===p?"var(--p-purple-300)":"var(--p-text-m)",background:t.user===p?"color-mix(in srgb, var(--p-purple) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:S=>{t.user!==p&&(S.currentTarget.style.background="var(--p-hover)")},onMouseOut:S=>{t.user!==p&&(S.currentTarget.style.background="none")},onClick:()=>i(p),children:p},p))]})]}),(0,X.jsxs)("div",{style:{position:"relative"},children:[(0,X.jsxs)("button",{style:{...k,color:t.type?"var(--p-cyan-300)":"var(--p-text-f)",borderColor:t.type?"color-mix(in srgb, var(--p-blue) 36%, transparent)":"var(--p-border)",opacity:m.length?1:.55},onClick:p=>{p.stopPropagation(),m.length&&s(S=>!S)},children:[(0,X.jsx)(no,{style:{width:12,height:12}}),"Type",(0,X.jsx)(ir,{style:{width:12,height:12}})]}),l&&m.length>0&&(0,X.jsxs)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,minWidth:140,background:"var(--p-card)",border:"1px solid var(--p-border-s)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.25)",zIndex:50,overflow:"hidden"},onClick:p=>p.stopPropagation(),children:[(0,X.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:"var(--p-text-f)",background:"none",border:"none",cursor:"pointer",borderBottom:"1px solid var(--p-border)"},onClick:()=>c(null),children:"All types"}),m.map(p=>(0,X.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.type===p?"var(--p-cyan-300)":"var(--p-text-m)",background:t.type===p?"color-mix(in srgb, var(--p-blue) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:S=>{t.type!==p&&(S.currentTarget.style.background="var(--p-hover)")},onMouseOut:S=>{t.type!==p&&(S.currentTarget.style.background="none")},onClick:()=>c(p),children:p},p))]})]}),(0,X.jsxs)("div",{style:{display:"flex",alignItems:"center",background:"var(--p-card)",border:"1px solid var(--p-border)",borderRadius:8,padding:2,gap:0},children:[(0,X.jsx)("button",{title:"Board view",style:{padding:"4px 7px",borderRadius:5,background:r==="board"?"var(--p-surface)":"none",color:r==="board"?"var(--p-text-sub)":"var(--p-text-g)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",transition:"background .12s,color .12s"},onClick:p=>{p.stopPropagation(),o==null||o("board")},children:(0,X.jsx)(cn,{style:{width:13,height:13}})}),(0,X.jsx)("button",{title:"List view",style:{padding:"4px 7px",borderRadius:5,background:r==="list"?"var(--p-surface)":"none",color:r==="list"?"var(--p-text-sub)":"var(--p-text-g)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",transition:"background .12s,color .12s"},onClick:p=>{p.stopPropagation(),o==null||o("list")},children:(0,X.jsx)(pn,{style:{width:13,height:13}})})]})]})}var qa=D(Ie(),1);var de=D(_(),1),rv=[{id:"board",label:"Board",icon:(0,de.jsx)(Fa,{className:"w-3.5 h-3.5"})},{id:"workflow",label:"Workflow",icon:(0,de.jsx)(vn,{className:"w-3.5 h-3.5"})}];function ad({open:e,visibleCols:t,settings:a,onClose:r,onSave:o}){let[n,l]=qa.default.useState("board"),[s,u]=qa.default.useState({}),[d,g]=qa.default.useState(a.autoCommit??!1),[h,m]=qa.default.useState(a.autoComment??!1),[L,y]=qa.default.useState(a.autoPush??!1),[I,U]=qa.default.useState(a.createBranch??!1);qa.default.useEffect(()=>{if(!e)return;let f={};za.forEach(v=>{f[v.id]=t.includes(v.id)}),u(f),g(a.autoCommit??!1),m(a.autoComment??!1),y(a.autoPush??!1),U(a.createBranch??!1),l("board")},[e,t,a]);function c(){let f=za.filter(v=>s[v.id]).map(v=>v.id);o(f,{autoCommit:d,autoComment:h,autoPush:L,createBranch:I}),r()}function i(f){u(v=>({...v,[f]:!v[f]}))}return(0,de.jsxs)(hr,{open:e,onClose:r,id:"settings-modal",width:"min(460px, 95vw)",icon:(0,de.jsx)(pr,{style:{width:14,height:14,color:"var(--p-text-g)"}}),title:"Settings",headerActions:(0,de.jsx)("button",{id:"settings-close",onClick:r,style:{width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,border:"none",background:"transparent",color:"var(--p-text-g)",cursor:"pointer",transition:"background .12s,color .12s"},onMouseOver:f=>{f.currentTarget.style.background="var(--p-surface)",f.currentTarget.style.color="var(--p-text-m)"},onMouseOut:f=>{f.currentTarget.style.background="transparent",f.currentTarget.style.color="var(--p-text-g)"},children:(0,de.jsx)(ze,{style:{width:14,height:14}})}),footer:(0,de.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,de.jsx)("button",{id:"settings-cancel",onClick:r,className:"dp-status-btn",style:{padding:"5px 14px",fontSize:12},children:"Cancel"}),(0,de.jsx)("button",{id:"settings-apply",onClick:c,style:{padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:6,border:"1px solid color-mix(in srgb, var(--p-purple) 55%, transparent)",background:"color-mix(in srgb, var(--p-purple) 18%, transparent)",color:"var(--p-purple-300)",cursor:"pointer",transition:"background .12s"},onMouseOver:f=>{f.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 28%, transparent)"},onMouseOut:f=>{f.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 18%, transparent)"},children:"Apply"})]}),children:[(0,de.jsx)("div",{className:"dp-tabs",children:rv.map(f=>(0,de.jsxs)("button",{onClick:()=>l(f.id),className:`dp-tab${n===f.id?" active":""}`,style:{display:"flex",alignItems:"center",gap:6},children:[f.icon,f.label]},f.id))}),n==="board"&&(0,de.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:10},children:[(0,de.jsx)("div",{className:"dp-meta-label",children:"Visible Columns"}),za.map(f=>(0,de.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer",userSelect:"none"},children:[(0,de.jsx)("input",{id:`settings-col-${f.id}`,type:"checkbox",checked:s[f.id]??!0,onChange:()=>i(f.id),style:{width:14,height:14,accentColor:f.color,cursor:"pointer"}}),(0,de.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:f.color,flexShrink:0}}),(0,de.jsx)("span",{style:{fontSize:13,color:"var(--p-text-m)"},children:f.label})]},f.id))]}),n==="workflow"&&(0,de.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:16},children:[(0,de.jsx)(ds,{id:"settings-auto-commit",label:"Commit after task implementation",description:"Agent is instructed to stage and commit changes after each task.",value:d,onChange:g}),(0,de.jsx)(ds,{id:"settings-auto-push",label:"Push after task commit",description:`Agent is instructed to push after every commit. Requires \'Commit\' to be ON.${d?"":" (Enable Commit first)"}`,value:L&&d,onChange:f=>y(f&&d)}),(0,de.jsx)(ds,{id:"settings-auto-comment",label:"Comment after task implementation",description:"Agent is instructed to add a summary comment after completing a task.",value:h,onChange:m}),(0,de.jsx)(ds,{id:"settings-create-branch",label:"Create branch at end of session",description:"Agent creates a descriptive branch after all session tasks are done (e.g. fix/bug-errors, feat/eye-toggle). Name reflects the work: lowercase, kebab-case, 2\\u20135 words, prefix fix/feat/chore/docs.",value:I,onChange:U})]})]})}function ds({id:e,label:t,description:a,value:r,onChange:o}){return(0,de.jsxs)("div",{children:[(0,de.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:t}),(0,de.jsx)("div",{style:{fontSize:11,color:"var(--p-text-g)",marginBottom:10},children:a}),(0,de.jsxs)("div",{id:e,style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer"},onClick:()=>o(!r),children:[(0,de.jsxs)("div",{style:{position:"relative",width:36,height:20,flexShrink:0},children:[(0,de.jsx)("div",{style:{width:36,height:20,borderRadius:10,background:r?"var(--p-purple)":"var(--p-card)",border:`1px solid ${r?"var(--p-purple-300)":"var(--p-border)"}`,transition:"all .15s"}}),(0,de.jsx)("div",{style:{position:"absolute",top:3,left:r?18:3,width:14,height:14,borderRadius:"50%",background:r?"var(--p-purple-300)":"var(--p-text-muted)",transition:"all .15s"}})]}),(0,de.jsx)("span",{style:{fontSize:12,color:"var(--p-text-g)"},children:r?"On":"Off"})]})]})}var cs=D(Ie(),1);var ge=D(_(),1);function vm(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function fs(e){return/\\.md$/i.test(e)}function rd({open:e,name:t,url:a,onClose:r}){let[o,n]=cs.default.useState(null),[l,s]=cs.default.useState(!1);return cs.default.useEffect(()=>{!e||!a||(fs(t)?(s(!0),n(null),fetch(a).then(u=>u.text()).then(u=>{n(u),s(!1)}).catch(()=>{n("Error loading file."),s(!1)})):n(null))},[e,t,a]),(0,ge.jsx)(hr,{open:e,onClose:r,id:"file-preview-modal",width:"min(700px, 95vw)",maxHeight:"88vh",boxStyle:{display:"flex",flexDirection:"column"},icon:(0,ge.jsx)(oo,{className:"w-4 h-4 text-slate-400"}),title:t,headerActions:(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("a",{href:a,download:t,className:"text-slate-400 hover:text-slate-200 transition-colors p-1.5 rounded-md hover:bg-slate-700/60",title:"Download",children:(0,ge.jsx)(dr,{className:"w-4 h-4"})}),(0,ge.jsx)("button",{id:"file-preview-close",onClick:r,className:"text-slate-400 hover:text-slate-200 transition-colors p-1.5 rounded-md hover:bg-slate-700/60",title:"Close",children:(0,ge.jsx)(ze,{className:"w-4 h-4"})})]}),footer:(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("a",{href:a,download:t,className:"flex items-center gap-1.5 border border-slate-700 hover:bg-slate-800 text-slate-300 text-sm px-3 py-1.5 rounded-lg transition-colors",children:[(0,ge.jsx)(dr,{className:"w-3.5 h-3.5"}),"Download"]}),(0,ge.jsx)("button",{id:"file-preview-close-footer",onClick:r,className:"border border-slate-700 hover:bg-slate-800 text-slate-300 text-sm px-4 py-1.5 rounded-lg transition-colors",children:"Close"})]}),children:(0,ge.jsxs)("div",{className:"flex-1 overflow-auto",style:{minHeight:0,padding:"16px 20px"},children:[vm(t)&&(0,ge.jsx)("div",{style:{borderRadius:8,overflow:"hidden",border:"1px solid var(--p-border)",background:"var(--p-card)",display:"inline-block",width:"100%"},children:(0,ge.jsx)("img",{src:a,alt:t,style:{maxWidth:"100%",display:"block",margin:"0 auto",objectFit:"contain"}})}),fs(t)&&l&&(0,ge.jsx)("p",{className:"text-xs text-slate-500 py-4",children:"Loading\\u2026"}),fs(t)&&!l&&o!==null&&(0,ge.jsx)("div",{id:"file-preview-md",style:{background:"var(--p-input)",border:"1px solid var(--p-border-s)",borderRadius:8,padding:"10px 14px",fontSize:13,color:"var(--p-text-sub)",lineHeight:1.65},children:(0,ge.jsx)(Ha,{markdown:o})}),!vm(t)&&!fs(t)&&(0,ge.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-slate-500",children:[(0,ge.jsx)(oo,{className:"w-10 h-10 opacity-40"}),(0,ge.jsx)("p",{className:"text-sm",children:"Preview not available for this file type."}),(0,ge.jsxs)("a",{href:a,download:t,className:"flex items-center gap-1.5 text-violet-400 hover:text-violet-300 hover:underline text-sm transition-colors",children:[(0,ge.jsx)(dr,{className:"w-3.5 h-3.5"}),"Download file"]})]})]})})}var po=window.location.origin,zt=`${po}/api/tasks`,Ct={async getTasks(){return(await fetch(`${zt}?_=${Date.now()}`,{cache:"no-store"})).json()},async createTask(e){return(await fetch(zt,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json()},async updateTask(e,t){return(await fetch(`${zt}/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).json()},async deleteTask(e){await fetch(`${zt}/${e}`,{method:"DELETE"})},async getComments(e){return(await fetch(`${zt}/${e}/comments`)).json()},async addComment(e,t){await fetch(`${zt}/${e}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:"user",text:t,source:"web"})})},async updateComment(e,t,a){await fetch(`${zt}/${e}/comments/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})})},async deleteComment(e,t){await fetch(`${zt}/${e}/comments/${t}`,{method:"DELETE"})},async getFiles(e){return(await fetch(`${zt}/${e}/files`)).json()},async uploadFile(e,t){let a=await t.arrayBuffer();await fetch(`${zt}/${e}/files/${encodeURIComponent(t.name)}`,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:a})},async deleteFile(e,t){await fetch(`${zt}/${e}/files/${encodeURIComponent(t)}`,{method:"DELETE"})},async getProject(){return(await fetch(`${po}/api/project`)).json()},async getCopilotStatus(){return(await fetch(`${po}/api/copilot/status`)).json()},async copilotLogin(){return(await fetch(`${po}/api/copilot/login`,{method:"POST"})).json().catch(()=>({}))},async getSettings(){return(await fetch(`${po}/api/settings`,{cache:"no-store"})).json()},async saveSettings(e){await fetch(`${po}/api/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})},wsUrl(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}`}};var K=D(_(),1),ov=window.__PORT__??3700,nv=window.__SAAS_MODE__??!1,Lm=window.__BOARD_URL__??"",lv=window.__BOARD_NAME__??"",Im=window.__IS_ADMIN__??!1;function sv({onClose:e}){let t=window.location.origin,[a,r]=ee.default.useState("idle"),[o,n]=ee.default.useState(!0),[l,s]=ee.default.useState(null),[u,d]=ee.default.useState("");async function g(){r("pushing"),d("");try{let m=await fetch(`${t}/api/push`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keepLocalFiles:o})}),L=await m.json();if(!m.ok){d(L.error??"Push failed"),r("error");return}s({imported:L.imported??0,skipped:L.skipped}),r("done")}catch(m){d(m instanceof Error?m.message:"Network error"),r("error")}}let h=a==="pushing";return(0,K.jsx)("div",{style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(5, 8, 18, 0.72)",backdropFilter:"blur(10px)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,fontFamily:"Inter, system-ui, -apple-system, sans-serif"},children:(0,K.jsxs)("div",{style:{background:"#101827",border:"1px solid rgba(255,255,255,0.07)",borderRadius:24,maxWidth:380,width:"100%",boxShadow:"0 0 0 1px rgba(59,130,246,0.07), 0 40px 80px rgba(0,0,0,0.75)",overflow:"hidden",position:"relative"},children:[(0,K.jsx)("div",{style:{position:"absolute",top:0,left:"20%",right:"20%",height:1,background:"linear-gradient(90deg, transparent, rgba(59,130,246,0.5), transparent)"}}),(0,K.jsxs)("div",{style:{padding:"36px 36px 20px",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,K.jsx)("div",{style:{position:"relative",width:52,height:52,marginBottom:22},children:(0,K.jsxs)("svg",{width:"52",height:"52",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,K.jsx)("rect",{width:"18",height:"18",rx:"4",fill:"#2563eb"}),(0,K.jsx)("rect",{x:"2.5",y:"5",width:"2",height:"8",rx:"1",fill:"white",opacity:"0.7"}),(0,K.jsx)("rect",{x:"6.5",y:"2",width:"2",height:"14",rx:"1",fill:"white"}),(0,K.jsx)("rect",{x:"10.5",y:"6",width:"2",height:"6",rx:"1",fill:"white",opacity:"0.7"}),(0,K.jsx)("rect",{x:"14.5",y:"4",width:"2",height:"10",rx:"1",fill:"white",opacity:"0.85"})]})}),(0,K.jsx)("h1",{style:{fontSize:18,fontWeight:700,color:"#f1f5f9",letterSpacing:"-0.3px",margin:"0 0 7px"},children:"Online Mode Active"}),(0,K.jsxs)("p",{style:{fontSize:12,color:"rgba(255,255,255,0.36)",lineHeight:1.5,margin:0},children:["Connected to"," ",(0,K.jsx)("strong",{style:{color:"rgba(255,255,255,0.55)",fontWeight:500},children:lv||"Vibeflow SaaS"})]})]}),a==="done"&&l&&(0,K.jsxs)("div",{style:{margin:"0 28px 0",padding:"10px 14px",borderRadius:9,fontSize:12,display:"flex",alignItems:"center",gap:9,background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.18)",color:"#34d399"},children:[(0,K.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:(0,K.jsx)("path",{d:"M13 5L6.5 11.5 3 8",stroke:"#34d399",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})}),l.imported," task",l.imported!==1?"s":""," pushed to board",l.skipped!=null&&l.skipped>0?` \\xB7 ${l.skipped} already existed`:""]}),a==="error"&&u&&(0,K.jsx)("div",{style:{margin:"0 28px 0",padding:"10px 14px",borderRadius:9,fontSize:12,display:"flex",alignItems:"center",gap:9,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.18)",color:"#f87171"},children:u}),(0,K.jsxs)("div",{style:{padding:"20px 24px 28px",display:"flex",flexDirection:"column",gap:8},children:[Lm&&(0,K.jsx)("a",{href:Lm,target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:9,padding:14,background:"#2563eb",border:"none",borderRadius:12,color:"#fff",fontSize:14,fontWeight:600,cursor:"pointer",textDecoration:"none",letterSpacing:"-0.1px",transition:"background 0.15s, transform 0.1s"},onMouseEnter:m=>{m.currentTarget.style.background="#3b82f6",m.currentTarget.style.transform="translateY(-1px)"},onMouseLeave:m=>{m.currentTarget.style.background="#2563eb",m.currentTarget.style.transform="none"},children:"Open Web App \\u2192"}),a!=="done"&&(0,K.jsx)("button",{onClick:()=>void g(),disabled:h,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:9,padding:12,background:"transparent",border:"1px solid rgba(255,255,255,0.08)",borderRadius:12,color:h?"rgba(255,255,255,0.25)":"rgba(255,255,255,0.4)",fontSize:13,fontWeight:500,cursor:h?"not-allowed":"pointer",transition:"border-color 0.15s, color 0.15s, background 0.15s"},onMouseEnter:m=>{h||(m.currentTarget.style.borderColor="rgba(255,255,255,0.15)",m.currentTarget.style.color="rgba(255,255,255,0.65)",m.currentTarget.style.background="rgba(255,255,255,0.03)")},onMouseLeave:m=>{h||(m.currentTarget.style.borderColor="rgba(255,255,255,0.08)",m.currentTarget.style.color="rgba(255,255,255,0.4)",m.currentTarget.style.background="transparent")},children:h?"\\u23F3 Pushing\\u2026":"\\u2191 Push local tasks"})]}),(0,K.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 24px 20px"},children:[(0,K.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,cursor:"pointer"},children:[(0,K.jsx)("input",{type:"checkbox",checked:o,onChange:m=>n(m.target.checked),style:{accentColor:"#2563eb",width:13,height:13,cursor:"pointer"}}),(0,K.jsx)("span",{style:{fontSize:11.5,color:"rgba(255,255,255,0.28)"},children:"Keep local files"})]}),Im&&e&&(0,K.jsx)("button",{onClick:e,style:{fontSize:11,color:"rgba(255,255,255,0.2)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline",textUnderlineOffset:2,transition:"color 0.15s"},onMouseEnter:m=>{m.currentTarget.style.color="rgba(255,255,255,0.45)"},onMouseLeave:m=>{m.currentTarget.style.color="rgba(255,255,255,0.2)"},children:"Dismiss (admin)"})]})]})})}var ym={backlog:"Backlog",todo:"Todo","in-progress":"In Progress",review:"Review",done:"Done"};function uv(e,t,a){let r=a?e.filter(s=>{var u,d;return((u=s.title)==null?void 0:u.toLowerCase().includes(a))||((d=s.description)==null?void 0:d.toLowerCase().includes(a))}):e;if(a)return`${r.length} of ${e.length} tasks`;let o=r.filter(s=>s.status!=="done").length,n=r.filter(s=>s.status==="in-progress").length,l=r.filter(s=>s.status==="review").length;return`${o} open \\xB7 ${n} in-progress \\xB7 ${l} in review`}function Cm(){var wr,Va;let[e,t]=ee.default.useState([]),[a,r]=ee.default.useState(!0),[o,n]=ee.default.useState(!1),[l,s]=ee.default.useState({open:!1,task:null,tab:"details"}),[u,d]=ee.default.useState("board"),[g,h]=ee.default.useState(!1),[m,L]=ee.default.useState({open:!1,name:"",url:""}),[y,I]=ee.default.useState(420),[U,c]=ee.default.useState(!1),[i,f]=ee.default.useState(""),[v,w]=ee.default.useState(za.map(x=>x.id)),[k,p]=ee.default.useState({status:"all",component:null,type:null,user:null,tags:[]}),[S,T]=ee.default.useState("Proto Board"),[F,A]=ee.default.useState(!1),[O,re]=ee.default.useState(!1),[J,Re]=ee.default.useState("You"),[q,N]=ee.default.useState(null),[Q,oe]=ee.default.useState(""),[$,me]=ee.default.useState({}),lt=ee.default.useRef(null),wt=ee.default.useRef(null),Ke=ee.default.useRef(null),[Xt,kt]=ee.default.useState([]),da=ee.default.useRef(!1),Ut=ee.default.useRef([]),[Lr,ps]=ee.default.useState([]);ee.default.useEffect(()=>(Nt(),ms(),gs(),bn(),kn(),Pn(),()=>{var x;wt.current&&clearTimeout(wt.current),(x=lt.current)==null||x.close()}),[]),ee.default.useEffect(()=>{document.body.setAttribute("data-theme","dark")},[]),ee.default.useEffect(()=>{function x(){let Y=window.location.hash.match(/^#task-([a-f0-9]{30})$/i);if(!Y){Ke.current=null;return}let he=Y[1].toLowerCase();if(Ke.current===he)return;let ce=e.find(te=>te.id.toLowerCase()===he);ce&&(Ke.current=he,da.current?s(te=>({...te,open:!0,task:ce,tab:"details"})):s(te=>(te.task&&te.task.id!==ce.id&&kt(ue=>[...ue,te.task]),{...te,open:!0,task:ce,tab:"details"})),da.current=!1)}function b(){}x();let B=()=>{Ke.current=null,x()};return window.addEventListener("hashchange",B),window.addEventListener("vibeflow-task-ref-click",b),()=>{window.removeEventListener("hashchange",B),window.removeEventListener("vibeflow-task-ref-click",b)}},[e]),ee.default.useEffect(()=>{if(!l.open||!l.task)return;let x=e.find(Y=>Y.id===l.task.id);if(!x)return;let b=l.task;Object.keys(x).some(Y=>x[Y]!==b[Y])&&s(Y=>({...Y,task:x}))},[e,l.open,(wr=l.task)==null?void 0:wr.id]),ee.default.useEffect(()=>{function x(b){var he,ce,te;let B=(he=b.target)==null?void 0:he.tagName,Y=B==="INPUT"||B==="TEXTAREA"||((ce=b.target)==null?void 0:ce.isContentEditable);if(b.key==="Escape"){if(m.open){L(ue=>({...ue,open:!1}));return}if(l.open){s(ue=>({...ue,open:!1}));return}if(g){h(!1);return}}if(!Y&&((b.key==="?"||b.key==="/"&&b.shiftKey)&&((te=document.getElementById("header-shortcuts-hint"))==null||te.click()),b.altKey&&!b.ctrlKey&&!b.metaKey&&(b.key==="n"||b.key==="N")&&(b.preventDefault(),Ir(null,"details")),b.altKey&&!b.ctrlKey&&!b.metaKey&&(b.key==="f"||b.key==="F"))){b.preventDefault();let ue=document.getElementById("global-search");ue==null||ue.focus(),ue==null||ue.select()}}return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[m.open,l.open,g]);function yr(x,b,B,Y,he){let ce=new Date().toISOString(),te=ym[b]??b,ue=ym[B]??B,Je=Date.now()-3e3;ps(Me=>Me.some(R=>R.taskId===x&&R.to===ue&&new Date(R.timestamp).getTime()>Je)?Me:[...Me,{taskId:x,field:"status",from:te,to:ue,actor:Y,timestamp:ce,source:he}].slice(-500))}async function Nt(){try{let x=await Ct.getTasks();Ut.current=x.tasks??[],t(x.tasks??[])}catch{}finally{r(!1)}}let Qt=ee.default.useCallback((x,b,B)=>{let Y=String(x.id??"");if(!Y)return;let he=x.created??x.createdAt,ce=x.updated?String(x.updated):void 0,te=Array.isArray(x.comments)?x.comments.length:void 0,ue=Array.isArray(x.files)?x.files.length:void 0,Je=x.status?String(x.status):void 0,Me=Ut.current.find(pt=>pt.id===Y);Je&&Me&&Me.status!==Je&&yr(Y,Me.status,Je,b??"Someone",B),t(pt=>{let R=pt.find(_e=>_e.id===Y),Yt={id:Y,title:x.title?String(x.title):(R==null?void 0:R.title)??"Untitled",description:x.description!=null?String(x.description):(R==null?void 0:R.description)??"",status:Je??(R==null?void 0:R.status)??"todo",type:x.type?String(x.type):R==null?void 0:R.type,priority:x.priority?String(x.priority):R==null?void 0:R.priority,agent:x.agent?String(x.agent):R==null?void 0:R.agent,model:x.model?String(x.model):R==null?void 0:R.model,selector:x.selector?String(x.selector):R==null?void 0:R.selector,cssSelector:x.cssSelector?String(x.cssSelector):R==null?void 0:R.cssSelector,file:x.file?String(x.file):R==null?void 0:R.file,line:typeof x.line=="number"?x.line:R==null?void 0:R.line,col:typeof x.col=="number"?x.col:R==null?void 0:R.col,component:x.component?String(x.component):R==null?void 0:R.component,url:x.url?String(x.url):R==null?void 0:R.url,reportBack:x.reportBack===!0||(R==null?void 0:R.reportBack)===!0,commit:x.commit?String(x.commit):R==null?void 0:R.commit,commits:Array.isArray(x.commits)?x.commits:R==null?void 0:R.commits,commentCount:te??(R==null?void 0:R.commentCount),fileCount:ue??(R==null?void 0:R.fileCount),createdAt:he?String(he):(R==null?void 0:R.createdAt)??new Date().toISOString(),updatedAt:ce??(R==null?void 0:R.updatedAt),author:x.author?String(x.author):R==null?void 0:R.author,tags:Array.isArray(x.tags)?x.tags:R==null?void 0:R.tags,sortKey:x.sortKey?String(x.sortKey):R==null?void 0:R.sortKey},Ht=pt.filter(_e=>_e.id!==Y);return Ht.push(Yt),Ht.sort((_e,kr)=>{let $a=new Date(_e.updatedAt??_e.createdAt??"").getTime(),Ga=new Date(kr.updatedAt??kr.createdAt??"").getTime();return $a===Ga?_e.id.localeCompare(kr.id):Ga-$a}),Ut.current=Ht,Ht})},[]);async function ms(){try{let x=await Ct.getProject();x.name&&T(x.name),x.gitUserName&&Re(x.gitUserName)}catch{}}async function kn(){try{let x=await fetch("/api/github-url").then(b=>b.json());N(x.githubUrl??null)}catch{}}async function gs(){var x;try{let B=await Ct.getSettings();me(B),(x=B.visibleCols)!=null&&x.length&&w(B.visibleCols),B.viewMode&&d(B.viewMode),B.panelWidth&&B.panelWidth>=280&&B.panelWidth<=900&&I(B.panelWidth)}catch{}}async function bn(){try{let x=await Ct.getCopilotStatus();x!=null&&x.authenticated&&(x!=null&&x.username)?oe(`Copilot: ${x.username}`):oe("Copilot: not logged in")}catch{}}function Pn(){let b=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}`,B=new WebSocket(b);lt.current=B,B.addEventListener("open",()=>{A(!0),re(!0),Nt()}),B.addEventListener("close",()=>{A(!1),wt.current=setTimeout(Pn,1500)}),B.addEventListener("message",he=>{var ce;try{let te=JSON.parse(he.data);if(te.type==="tasks-updated"||(ce=te.type)!=null&&ce.startsWith("task:")){Nt();return}if(te.type==="task-changed"&&te.task){let ue=te.task,Je=typeof ue.alteredBy=="string"?ue.alteredBy:typeof ue.author=="string"?ue.author:"Someone",Me=te.source==="cli"?"cli":void 0;Qt(ue,Je,Me);return}if(te.type==="task-deleted"&&te.taskId){let ue=String(te.taskId);t(Je=>{let Me=Je.filter(pt=>pt.id!==ue);return Ut.current=Me,Me})}}catch{}});let Y=setInterval(()=>{B.readyState===WebSocket.OPEN&&B.send(JSON.stringify({type:"ping"}))},2e4);B.addEventListener("close",()=>clearInterval(Y))}async function Wa(x,b){let B=Ut.current.find(Y=>Y.id===x);t(Y=>{let he=Y.map(ce=>ce.id===x?{...ce,...b}:ce);return Ut.current=he,he}),b.status&&(B!=null&&B.status)&&b.status!==B.status&&yr(x,B.status,b.status,J);try{let Y=await Ct.updateTask(x,b);Y.task&&t(he=>{let ce=he.map(te=>te.id===x?Y.task:te);return Ut.current=ce,ce})}catch{Nt()}}async function fa(x){t(b=>{let B=b.filter(Y=>Y.id!==x);return Ut.current=B,B});try{await Ct.deleteTask(x)}catch{Nt()}}async function Sr(x){var b;try{let B=await Ct.createTask(x);return await Nt(),(b=B==null?void 0:B.task)==null?void 0:b.id}catch{}}function Ir(x,b="details",B){kt([]),s({open:!0,task:x,tab:b,addColumnId:B})}function Tn(){kt(x=>{if(x.length===0)return x;let b=x[x.length-1],B=x.slice(0,-1);return da.current=!0,Ke.current=null,window.location.hash=`#task-${b.id}`,s(Y=>({...Y,open:!0,task:b,tab:"details"})),B})}function Cr(x,b){if(/\\.html?$/i.test(x)){window.open(b,"_blank","noopener,noreferrer");return}L({open:!0,name:x,url:b})}let Rn=uv(e,v,i.toLowerCase()),Dn=window.location.origin,An=ee.default.useMemo(()=>{let x=new Set;return e.forEach(b=>(b.tags??[]).forEach(B=>x.add(B))),Array.from(x).sort()},[e]),hs=ee.default.useMemo(()=>{var b;let x=(b=l.task)==null?void 0:b.id;return x?Lr.filter(B=>B.taskId===x).map(({field:B,from:Y,to:he,actor:ce,timestamp:te,source:ue})=>({field:B,from:Y,to:he,actor:ce,timestamp:te,source:ue})):[]},[(Va=l.task)==null?void 0:Va.id,Lr]),mo=ee.default.useMemo(()=>{let x=e;return k.status!=="all"&&(x=x.filter(b=>b.status===k.status)),k.component&&(x=x.filter(b=>b.component===k.component)),k.type&&(x=x.filter(b=>b.type===k.type)),k.user&&(x=x.filter(b=>b.author===k.user)),k.tags&&k.tags.length>0&&(x=x.filter(b=>k.tags.every(B=>(b.tags??[]).includes(B)))),x},[e,k]),Mn=O&&!F;return(0,K.jsxs)(K.Fragment,{children:[nv&&!o&&(0,K.jsx)(sv,{onClose:Im?()=>n(!0):void 0}),(0,K.jsx)($i,{projectName:S,missingProjectIconStyle:"vibeflow",wsConnected:F,port:ov,searchQuery:i,filterTags:k.tags,allTags:An,onToggleTag:x=>{let b=k.tags??[],B=b.includes(x)?b.filter(Y=>Y!==x):[...b,x];p(Y=>({...Y,tags:B}))},premiumUsage:Q,isLoading:a,taskSummary:Rn,onSearchChange:f,onSettings:()=>h(!0)}),(0,K.jsx)(td,{tasks:e,filter:k,view:u,onFilter:p,onViewChange:x=>{d(x),Ct.saveSettings({...$,viewMode:x}),me(b=>({...b,viewMode:x}))}}),(0,K.jsxs)("div",{className:"flex flex-1 overflow-hidden",style:{minHeight:0,position:"relative"},children:[u==="list"?(0,K.jsx)(Vi,{tasks:mo,searchQuery:i,isLoading:a,onOpenPanel:(x,b)=>Ir(x,b),onAddTask:x=>Ir(null,"details",x),onDrop:(x,b)=>Wa(x,{status:b})}):(0,K.jsx)(qi,{tasks:mo,visibleCols:v,searchQuery:i,isLoading:a,onOpenPanel:(x,b,B)=>Ir(x,b,B),onDrop:(x,b)=>Wa(x,{status:b})}),l.open&&(0,K.jsxs)("div",{id:"detail-panel-container",style:{width:y,zIndex:U?30:10},className:U?"resizing":"",children:[(0,K.jsx)("div",{id:"detail-panel-resize-handle",onMouseDown:x=>{x.preventDefault(),c(!0),document.body.classList.add("vibeflow-resizing-panel");let b=x.clientX,B=y,Y=ce=>{let te=B-(ce.clientX-b);I(Math.max(360,Math.min(860,te)))},he=ce=>{c(!1),document.body.classList.remove("vibeflow-resizing-panel");let te=Math.max(360,Math.min(860,B-(ce.clientX-b)));Ct.saveSettings({...$,panelWidth:te}),me(ue=>({...ue,panelWidth:te})),window.removeEventListener("mousemove",Y),window.removeEventListener("mouseup",he)};window.addEventListener("mousemove",Y),window.addEventListener("mouseup",he)}}),(0,K.jsx)(ed,{open:l.open,task:l.task,tab:l.tab,showLockIndicator:!1,addColumnId:l.addColumnId,gitUserName:J,githubUrl:q,baseUrl:Dn,isResizing:U,api:Ct,onClose:()=>{kt([]),s(x=>({...x,open:!1}))},onSave:async x=>{l.task&&await Wa(l.task.id,x),s(b=>({...b,open:!1}))},onCreate:async x=>{let b=await Sr(x);return s(B=>({...B,open:!1})),b},onDelete:async x=>{await fa(x),s(b=>({...b,open:!1}))},onPatch:Wa,onFilePreview:Cr,onGoBack:Xt.length>0?Tn:void 0,navBackLabel:Xt.length>0?Xt[Xt.length-1].title:void 0,externalLocalChanges:hs,allTasks:e})]})]}),Mn&&(0,Sm.createPortal)((0,K.jsx)("div",{id:"ws-lost-overlay",style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:99999,background:"rgba(2, 6, 23, 0.88)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,pointerEvents:"all",cursor:"not-allowed"},children:(0,K.jsxs)("div",{style:{width:"min(420px, 92vw)",borderRadius:14,border:"1px solid var(--p-border-s)",background:"var(--p-card)",boxShadow:"0 16px 40px rgba(2,6,23,0.7)",padding:"20px 22px",display:"flex",flexDirection:"column",gap:10,cursor:"default",pointerEvents:"auto"},children:[(0,K.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,K.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"var(--p-text-m)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{animation:"spin 1.1s linear infinite",flexShrink:0},children:(0,K.jsx)("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),(0,K.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--p-text)"},children:"Connection Lost"})]}),(0,K.jsx)("div",{style:{fontSize:12,color:"var(--p-text-m)",lineHeight:1.6},children:"Real-time connection to the server was interrupted. Reconnecting in the background\\u2026"})]})}),document.body),(0,K.jsx)(ad,{open:g,visibleCols:v,settings:$,onClose:()=>h(!1),onSave:(x,b)=>{w(x);let B={...$,...b,visibleCols:x};me(B),Ct.saveSettings(B)}}),(0,K.jsx)(rd,{open:m.open,name:m.name,url:m.url,onClose:()=>L(x=>({...x,open:!1}))})]})}var bm=D(_(),1),wm=document.getElementById("root");wm&&(0,km.createRoot)(wm).render((0,bm.jsx)(Cm,{}));})();\n/*! Bundled license information:\n\nreact/cjs/react.production.min.js:\n (**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.min.js:\n (**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.min.js:\n (**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact/cjs/react-jsx-runtime.production.min.js:\n (**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nlucide-react/dist/esm/shared/src/utils.js:\nlucide-react/dist/esm/defaultAttributes.js:\nlucide-react/dist/esm/Icon.js:\nlucide-react/dist/esm/createLucideIcon.js:\nlucide-react/dist/esm/icons/chevron-down.js:\nlucide-react/dist/esm/icons/chevron-right.js:\nlucide-react/dist/esm/icons/circle-check-big.js:\nlucide-react/dist/esm/icons/download.js:\nlucide-react/dist/esm/icons/eye.js:\nlucide-react/dist/esm/icons/file-text.js:\nlucide-react/dist/esm/icons/flag.js:\nlucide-react/dist/esm/icons/layout-dashboard.js:\nlucide-react/dist/esm/icons/list.js:\nlucide-react/dist/esm/icons/lock.js:\nlucide-react/dist/esm/icons/message-circle.js:\nlucide-react/dist/esm/icons/panels-top-left.js:\nlucide-react/dist/esm/icons/paperclip.js:\nlucide-react/dist/esm/icons/plus.js:\nlucide-react/dist/esm/icons/search.js:\nlucide-react/dist/esm/icons/settings.js:\nlucide-react/dist/esm/icons/tag.js:\nlucide-react/dist/esm/icons/triangle-alert.js:\nlucide-react/dist/esm/icons/upload.js:\nlucide-react/dist/esm/icons/user.js:\nlucide-react/dist/esm/icons/workflow.js:\nlucide-react/dist/esm/icons/x.js:\nlucide-react/dist/esm/lucide-react.js:\n (**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n *)\n*/\n';var Vt=Bt(import.meta.url),qt=zt(Vt),Yt=[tn(qt,"kanban-template.html"),tn(process.cwd(),"src","server","kanban-template.html"),tn(process.cwd(),"dist","server","kanban-template.html")];function Kt(t){let e=Yt.find(r=>jt(r));if(!e)throw new Error("kanban-template.html not found in expected locations");return $t(e,"utf8").replaceAll("__PORT__",String(t))}function Qt(t){return t.saasMode?`window.__SAAS_MODE__ = true; window.__BOARD_URL__ = ${JSON.stringify(t.boardUrl??"")}; window.__BOARD_NAME__ = ${JSON.stringify(t.boardName??"")}; window.__IS_ADMIN__ = ${t.isAdmin?"true":"false"};`:""}var Gt="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iNCIgZmlsbD0iIzI1NjNlYiIvPjxyZWN0IHg9IjIuNSIgeT0iNSIgd2lkdGg9IjIiIGhlaWdodD0iOCIgcng9IjEiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjciLz48cmVjdCB4PSI2LjUiIHk9IjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjE0IiByeD0iMSIgZmlsbD0id2hpdGUiLz48cmVjdCB4PSIxMC41IiB5PSI2IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuNyIvPjxyZWN0IHg9IjE0LjUiIHk9IjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjEwIiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuODUiLz48L3N2Zz4=";function Xt(t){return`<!DOCTYPE html>
29338
29347
  <html lang="en" class="dark">
29339
29348
  <head>
29340
29349
  <meta charset="UTF-8">
29341
29350
  <meta name="viewport" content="width=device-width, initial-scale=1">
29342
29351
  <title>Vibeflow \u2014 Board</title>
29343
- <link rel="icon" href="${Qt}" type="image/svg+xml">
29352
+ <link rel="icon" href="${Gt}" type="image/svg+xml">
29344
29353
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
29345
29354
  <style>${_n}</style>
29346
29355
  </head>
29347
29356
  <body class="h-screen overflow-hidden flex flex-col" style="background:#020c1b;">
29348
29357
  <div id="root"></div>
29349
- <script>window.__PORT__ = ${t.port}; ${Kt(t)}</script>
29358
+ <script>window.__PORT__ = ${t.port}; ${Qt(t)}</script>
29350
29359
  <script>${nn}</script>
29351
29360
  </body>
29352
- </html>`}function rn(t){let e=typeof t=="number"?{port:t}:t;return nn?Gt(e):Yt(e.port)}import{readFileSync as Nn,writeFileSync as Bo,mkdirSync as Vo,existsSync as Ln}from"fs";import{join as Fn,basename as Xt}from"path";var Rn={port:3700};function Jt(t){return Fn(t,ce,bn)}function Oe(t){let e=Jt(t);if(!Ln(e))return{...Rn};let r=Nn(e,"utf-8"),i=JSON.parse(r);return{...Rn,...i}}function Me(t){let e=Fn(t,"package.json");if(Ln(e))try{let r=JSON.parse(Nn(e,"utf-8"));if(r.name)return r.name}catch{}return Xt(t)}import{mkdirSync as Zt,writeFileSync as er}from"fs";import{dirname as nr}from"path";function tr(t){let e=t;return{...t,text:t.text||e.body||"",author:t.author??"agent"}}function te(t,e){let r=we(t,e);return((r?Ce(r):null)?.comments??[]).filter(s=>!s.deleted).map(tr)}function Dn(t){return t.replace(/\\(n|t|r|\\)/g,(e,r)=>{switch(r){case"n":return`
29353
- `;case"t":return" ";case"r":return"\r";case"\\":return"\\";default:return r}})}function he(t,e,r,i,s,o,a){i=Dn(i);let c=te(t,e),l={id:Date.now().toString(36)+Math.random().toString(36).slice(2,7),author:r,text:i,...s&&s.length>0?{files:s}:{},...o&&o!=="comment"?{type:o}:{},createdAt:new Date().toISOString(),source:a??"cli"},u=[...c,l];if(!z(t,e,{comments:u})){let P=wn(t,e,new Date().toISOString());Zt(nr(P),{recursive:!0}),er(P,JSON.stringify({id:e,comments:u},null,2),"utf-8")}return l}function He(t,e,r,i){let s=te(t,e),o=s.find(a=>a.id===r);return o?(o.text=Dn(i),o.updatedAt=new Date().toISOString(),z(t,e,{comments:s}),o):null}function Ue(t,e,r){let i=te(t,e),s=i.findIndex(o=>o.id===r);return s===-1?!1:(i[s]={...i[s],deleted:!0,text:"[Comment deleted]",updatedAt:new Date().toISOString()},z(t,e,{comments:i}),!0)}import{execSync as An}from"child_process";import{existsSync as rr,readFileSync as or,writeFileSync as na,mkdirSync as ta}from"fs";import{join as ar}from"path";var ir="config.json";function sr(t){return ar(t,ce,ir)}function lr(t){let e=sr(t);if(!rr(e))return{};try{return JSON.parse(or(e,"utf-8"))}catch{return{}}}function cr(t){return t.length<=8?"***":t.slice(0,6)+"..."+t.slice(-4)}function ur(){try{return An("gh auth token --hostname github.com 2>/dev/null",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}).trim()||null}catch{return null}}async function dr(t){try{let e=await fetch("https://api.github.com/user",{headers:{Authorization:`Bearer ${t}`,"User-Agent":"proto-studio-cli",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(5e3)});return e.ok?(await e.json()).login??null:null}catch{return null}}function pr(t){let e=process.env.GITHUB_TOKEN;if(e?.trim())return{token:e.trim(),source:"env"};let i=lr(t).copilotToken;if(typeof i=="string"&&i.trim())return{token:i.trim(),source:"config"};let s=ur();return s?{token:s,source:"gh-cli"}:null}async function Re(t){let e=pr(t);if(!e)return{authenticated:!1,source:null,tokenHint:null,username:null};let r=await dr(e.token).catch(()=>null);return{authenticated:!0,source:e.source,tokenHint:cr(e.token),username:r}}function We(){try{return An("gh --version 2>/dev/null",{encoding:"utf-8",timeout:3e3,stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}import{existsSync as on,readFileSync as On,writeFileSync as Mn,mkdirSync as Hn}from"fs";import{join as je}from"path";import Un from"os";var fr="settings.json",Wn=".vibeflow";function jn(){return je(Un.homedir(),".vibeflow","settings.json")}function $n(t){return je(t,Wn,fr)}function an(){try{return JSON.parse(On(jn(),"utf-8"))}catch{return{}}}function zn(t){let e=je(Un.homedir(),".vibeflow");on(e)||Hn(e,{recursive:!0}),Mn(jn(),JSON.stringify(t,null,2),"utf-8")}function G(t){let e=an(),r=$n(t);if(!on(r))return e;try{let i=JSON.parse(On(r,"utf-8"));return{...e,...i}}catch{return e}}function Bn(t,e){let r=je(t,Wn);on(r)||Hn(r,{recursive:!0});let i=$n(t),o={...G(t),...e};return Mn(i,JSON.stringify(o,null,2),"utf-8"),o}import $e from"fs/promises";import mr from"os";import sn from"path";var gr=sn.join(mr.homedir(),".vibeflow"),ze=sn.join(gr,"token");async function Q(){try{return(await $e.readFile(ze,"utf8")).trim()||null}catch{return null}}async function Vn(t){await $e.mkdir(sn.dirname(ze),{recursive:!0}),await $e.writeFile(ze,t,{mode:384})}async function qn(){try{await $e.unlink(ze)}catch{}}import{initTRPC as hr,TRPCError as ln}from"@trpc/server";import{z as I}from"zod";var Kn=hr.context().create(),vr=Kn.router,Z=Kn.procedure,Yn=I.enum(["backlog","todo","in-progress","review","done"]),cn=I.object({id:I.string().min(1)}),Qn=vr({project:Z.query(({ctx:t})=>({name:Me(t.projectDir),projectDir:t.projectDir})),copilotStatus:Z.query(async({ctx:t})=>await We()?await Re(t.projectDir):{authenticated:!1,reason:"gh CLI not found"}),tasks:Z.query(({ctx:t})=>({tasks:ee(t.projectDir).map(i=>({...i,createdAt:i.created,commentCount:(i.comments??[]).length,fileCount:_e(t.projectDir,i.id)}))})),searchTasks:Z.input(I.object({query:I.string().min(1),limit:I.number().int().min(1).max(100).optional(),pageScope:I.string().optional()})).query(({ctx:t,input:e})=>{let r=ee(t.projectDir),i=Math.max(1,e.limit??10),s=e.query.toLowerCase();return{results:r.filter(a=>`${a.title} ${a.description??""} ${a.type??""} ${a.component??""}`.toLowerCase().includes(s)).slice(0,i).map(a=>({score:1,task:a,commentCount:(a.comments??[]).length,fileCount:_e(t.projectDir,a.id)}))}}),createTask:Z.input(I.object({title:I.string().min(1),selector:I.string().min(1),description:I.string().optional(),cssSelector:I.string().optional(),url:I.string().optional(),type:I.string().optional(),priority:I.string().optional(),file:I.string().optional(),line:I.number().int().positive().optional(),col:I.number().int().positive().optional(),component:I.string().optional(),status:Yn.optional(),agent:I.string().optional(),model:I.string().optional(),author:I.string().optional(),annotatedElementText:I.string().max(300).optional()})).mutation(({ctx:t,input:e})=>{let r=xe(t.projectDir,{title:e.title,description:e.description??"",selector:e.selector,cssSelector:e.cssSelector,url:e.url,status:e.status??"todo",screenshot:void 0,file:e.file,line:e.line,col:e.col,component:e.component,type:e.type,priority:e.priority,author:e.author??"Unknown",agent:e.agent,model:e.model,annotatedElementText:e.annotatedElementText});return t.broadcast({type:"tasks-updated"}),{success:!0,task:r}}),updateTask:Z.input(I.object({id:I.string().min(1),updates:I.object({status:Yn.optional(),title:I.string().min(1).optional(),description:I.string().optional(),type:I.string().optional(),priority:I.string().optional(),reportBack:I.boolean().optional(),agent:I.string().optional(),model:I.string().optional()})})).mutation(({ctx:t,input:e})=>{let r=z(t.projectDir,e.id,e.updates);if(!r)throw new ln({code:"NOT_FOUND",message:"Task not found"});return t.broadcast({type:"tasks-updated"}),{success:!0,task:r}}),deleteTask:Z.input(cn).mutation(({ctx:t,input:e})=>{if(!De(t.projectDir,e.id))throw new ln({code:"NOT_FOUND",message:"Task not found"});return t.broadcast({type:"tasks-updated"}),{success:!0}}),comments:Z.input(cn).query(({ctx:t,input:e})=>({comments:te(t.projectDir,e.id)})),addComment:Z.input(I.object({taskId:I.string().min(1),text:I.string().min(1),author:I.enum(["user","agent"]).optional().default("user"),files:I.array(I.string()).optional(),source:I.enum(["cli","web"]).optional().default("web")})).mutation(({ctx:t,input:e})=>{let r=he(t.projectDir,e.taskId,e.author,e.text.trim(),e.files,void 0,e.source);return t.broadcast({type:"tasks-updated"}),{success:!0,comment:r}}),updateComment:Z.input(I.object({taskId:I.string().min(1),commentId:I.string().min(1),text:I.string().min(1)})).mutation(({ctx:t,input:e})=>{let r=He(t.projectDir,e.taskId,e.commentId,e.text.trim());if(!r)throw new ln({code:"NOT_FOUND",message:"Comment not found"});return{success:!0,comment:r}}),deleteComment:Z.input(I.object({taskId:I.string().min(1),commentId:I.string().min(1)})).mutation(({ctx:t,input:e})=>(Ue(t.projectDir,e.taskId,e.commentId),t.broadcast({type:"tasks-updated"}),{success:!0})),files:Z.input(cn).query(({ctx:t,input:e})=>({files:ne(t.projectDir,e.id)}))});import{execSync as Gn}from"child_process";function un(t){try{let e=Gn("git config user.name",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim(),r=Gn("git config user.email",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim();return{name:e||"Unknown",email:r||""}}catch{return{name:"Unknown",email:""}}}function _r(t){return/^[a-f0-9]{30}$/.test(t)}var Qa=xr(import.meta.url);function Rr(){for(let t of Object.values(Ir()))for(let e of t??[])if(e.family==="IPv4"&&!e.internal)return e.address;return null}function st(t,e){t.get("/api/pages",(r,i)=>{i.json({pages:e})})}var Be=null;function Zn(t){if(Be&&Date.now()-Be.fetchedAt<3e5)return Be.shas;try{let r=ot("git log --remotes --format=%H",{cwd:t,timeout:5e3}).toString().trim(),i=new Set(r?r.split(`
29354
- `):[]);return Be={shas:i,fetchedAt:Date.now()},i}catch{return new Set}}function et(t,e){return t?e.has(t):null}function lt(t,e,r){t.get("/api/project",(s,o)=>{o.json({name:Me(e),projectDir:e})}),t.get("/api/tasks",(s,o)=>{let a=ee(e),c=Zn(e),l=a.map(u=>{let C=u.commits?.length?u.commits[u.commits.length-1].sha:u.commit;return{...u,createdAt:u.created,commentCount:(u.comments??[]).length,fileCount:_e(e,u.id),commitPushed:et(C,c)}});o.json({tasks:l})}),t.param("id",(s,o,a,c)=>{if(!_r(c)){o.status(400).json({error:"Invalid task id"});return}a()}),t.get("/api/tasks/:id",(s,o)=>{let{id:a}=s.params,c=we(e,a),l=c?Ce(c):null;if(!l){o.status(404).json({error:"Task not found"});return}let u=Zn(e),C=l.commits?.length?l.commits[l.commits.length-1].sha:l.commit;o.json({...l,commitPushed:et(C,u)})}),t.post("/api/tasks",(s,o)=>{let{title:a,description:c,selector:l,cssSelector:u,url:C,type:P,priority:k,file:w,line:_,col:L,component:m,status:N,agent:H,model:K,screenshot:O,annotatedElementText:q}=s.body;if(!a||!l){o.status(400).json({error:"Missing required fields: title, selector"});return}let ie=un(e),oe=xe(e,{title:a,description:c||"",selector:l,cssSelector:u||void 0,url:C||void 0,status:["backlog","todo","in-progress","review","done"].includes(N)?N:"todo",file:w||void 0,line:_!=null?Number(_):void 0,col:L!=null?Number(L):void 0,component:m||void 0,type:P||void 0,priority:k||void 0,author:ie.name,agent:H||void 0,model:K||void 0,annotatedElementText:q?String(q).slice(0,300):void 0});if(O){let Le=ae(e,ce,Ie);Jn(Le,{recursive:!0});let p=`${oe.id}.png`;Xn(ae(Le,p),Buffer.from(O,"base64")),z(e,oe.id,{screenshot:p}),oe.screenshot=p}console.log(`[Proto] Task created: "${oe.title}" (${oe.id})`),r({type:"tasks-updated"}),o.json({success:!0,task:oe})}),t.patch("/api/tasks/:id",(s,o)=>{let{id:a}=s.params,c=s.body,l=z(e,a,c);if(!l){o.status(404).json({error:"Task not found"});return}console.log(`[Proto] Task updated: "${l.title}" (${l.id}) \u2192 status:${l.status}`),r({type:"task-changed",taskId:l.id,action:"update",task:l}),o.json({success:!0,task:l})}),t.delete("/api/tasks/:id",(s,o)=>{let{id:a}=s.params;if(!De(e,a)){o.status(404).json({error:"Task not found"});return}console.log(`[Proto] Task deleted: ${a}`),r({type:"task-deleted",taskId:a}),o.json({success:!0})}),t.get("/api/tasks/:id/comments",(s,o)=>{let{id:a}=s.params,c=te(e,a);o.json({comments:c})}),t.post("/api/tasks/:id/comments",(s,o)=>{let{id:a}=s.params,{author:c,text:l,files:u,source:C}=s.body;if(!l||!l.trim()){o.status(400).json({error:"Missing required field: text"});return}let P=c==="agent"?"agent":"user",k=C==="cli"?"cli":"web",w=he(e,a,P,l.trim(),Array.isArray(u)?u:void 0,void 0,k);r({type:"tasks-updated"}),o.json({success:!0,comment:w})}),t.patch("/api/tasks/:id/comments/:commentId",(s,o)=>{let{id:a,commentId:c}=s.params,{text:l}=s.body;if(!l||!l.trim()){o.status(400).json({error:"Missing required field: text"});return}let u=He(e,a,c,l.trim());if(!u){o.status(404).json({error:"Comment not found"});return}o.json({success:!0,comment:u})}),t.delete("/api/tasks/:id/comments/:commentId",(s,o)=>{let{id:a,commentId:c}=s.params;if(!Ue(e,a,c)){o.status(404).json({error:"Comment not found"});return}r({type:"tasks-updated"}),o.json({success:!0})}),t.get("/api/tasks/:id/files",(s,o)=>{let{id:a}=s.params,c=ne(e,a);o.json({files:c})}),t.get("/api/tasks/:id/files/:filename",(s,o)=>{let{id:a,filename:c}=s.params,l=En(e,a,c);if(!l){o.status(404).json({error:"File not found"});return}o.sendFile(l)}),t.post("/api/tasks/:id/files/:filename",de.raw({type:"*/*",limit:"50mb"}),(s,o)=>{let{id:a,filename:c}=s.params;if(!c||c.includes("/")||c.includes("\\")){o.status(400).json({error:"Invalid filename"});return}let l=s.body;if(!Buffer.isBuffer(l)||l.length===0){o.status(400).json({error:"Empty file body"});return}let u=Cn(e,a,decodeURIComponent(c),l);r({type:"tasks-updated"}),o.json({success:!0,file:u})}),t.delete("/api/tasks/:id/files/:filename",(s,o)=>{let{id:a,filename:c}=s.params;if(!Sn(e,a,c)){o.status(404).json({error:"File not found"});return}he(e,a,"user",`\u{1F5D1}\uFE0F File removed: \`${c}\``,void 0,"system","web"),r({type:"tasks-updated"}),o.json({success:!0})});let i=ae(e,ce,Ie);t.post("/api/tasks/:id/screenshot",de.json(),(s,o)=>{let{id:a}=s.params,{screenshot:c}=s.body;if(!we(e,a)){o.status(404).json({error:"Task not found"});return}if(!c){o.status(400).json({error:"Missing screenshot"});return}Jn(i,{recursive:!0});let l=`${a}.png`;Xn(ae(i,l),Buffer.from(c,"base64")),z(e,a,{screenshot:l}),r({type:"tasks-updated"}),o.json({success:!0,screenshot:l})}),t.delete("/api/tasks/:id/screenshot",(s,o)=>{let{id:a}=s.params;if(!we(e,a)){o.status(404).json({error:"Task not found"});return}let c=`${a}.png`,l=ae(i,c);wr(l)&&tt(l),z(e,a,{screenshot:void 0}),r({type:"tasks-updated"}),o.json({success:!0})})}function ct(t,e,r){t.get("/api/user",(s,o)=>{o.json(un(e))}),t.get("/api/settings",(s,o)=>{o.json(G(e))}),t.post("/api/settings",(s,o)=>{let a=s.body,c=Bn(e,a);o.json({success:!0,settings:c})}),t.get("/api/push/workspaces",async(s,o)=>{let a=await Q().catch(()=>null);if(!a){o.status(401).json({error:"Not logged in"});return}let c=process.env.SPOTA_API_URL??"http://localhost:3000";try{let l=await fetch(`${c}/api/cli/workspaces`,{headers:{Authorization:`Bearer ${a}`}});if(!l.ok){let C=(await l.json().catch(()=>({}))).error??`HTTP ${l.status} from ${c}`;console.error(`[Proto] GET /api/push/workspaces failed: ${C}`),o.status(l.status).json({error:C});return}o.json(await l.json())}catch(l){let u=l instanceof Error?l.message:String(l);console.error(`[Proto] GET /api/push/workspaces network error: ${u}`),o.status(502).json({error:`Network error contacting SaaS API: ${u}`})}}),t.post("/api/push",de.json(),async(s,o)=>{let{workspaceId:a,keepLocalFiles:c}=s.body,l=await Q().catch(()=>null);if(!l){o.status(401).json({error:"Not logged in"});return}let u=ue(e);if(u.length===0){o.json({imported:0,message:"No local tasks found"});return}let C=process.env.SPOTA_API_URL??"http://localhost:3000",P={tasks:u};a&&(P.workspaceId=a);try{let k=await fetch(`${C}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify(P)});if(!k.ok){let _=await k.json().catch(()=>({}));o.status(k.status).json({error:_.error??"Import failed"});return}let w=await k.json();if(!c){for(let _ of u)try{tt(_.filePath)}catch{}r?.({type:"tasks-updated"})}o.json({imported:w.imported,skipped:w.skipped??0,workspaceId:w.workspaceId,boardId:w.boardId})}catch(k){let w=k instanceof Error?k.message:String(k);console.error(`[Proto] POST /api/push network error: ${w}`),o.status(502).json({error:`Network error contacting SaaS API: ${w}`})}}),t.get("/api/copilot/status",(s,o)=>{Re(e).then(a=>o.json(a)).catch(a=>{console.error(`[Proto] GET /api/copilot/status error: ${a instanceof Error?a.message:String(a)}`),o.json({authenticated:!1,source:null,tokenHint:null,username:null})})}),t.post("/api/copilot/login",async(s,o)=>{try{let a=await Re(e);if(a.authenticated){o.json({launched:!1,alreadyAuthenticated:!0,username:a.username??null});return}if(!We()){o.status(400).json({launched:!1,error:"GitHub CLI is not installed. Install gh and authenticate with 'gh auth login'."});return}Pr("gh",["auth","login","--web","--hostname","github.com","--git-protocol","https","--scopes","read:user,copilot"],{cwd:e,detached:!0,stdio:"ignore"}).unref(),o.json({launched:!0})}catch(a){let c=a instanceof Error?a.message:String(a);console.error(`[Proto] POST /api/copilot/login error: ${c}`),o.status(500).json({launched:!1,error:c})}});let i=null;t.get("/api/agent-status",(s,o)=>{o.json(i??{message:"",active:!1,updatedAt:null})}),t.post("/api/agent-status",(s,o)=>{let{message:a,active:c}=s.body;i={message:(a??"").slice(0,200),active:c!==!1,updatedAt:new Date().toISOString()},r?.({type:"agent-status",...i}),o.json({ok:!0})}),t.delete("/api/agent-status",(s,o)=>{i=null,r?.({type:"agent-status",message:"",active:!1,updatedAt:null}),o.json({ok:!0})}),t.get("/api/github-url",(s,o)=>{try{let a=ot("git remote get-url origin",{cwd:e,timeout:3e3}).toString().trim(),c=a.match(/^git@github\.com:(.+?)(?:\.git)?$/);if(c){o.json({githubUrl:`https://github.com/${c[1]}`});return}let l=a.match(/^(https?:\/\/github\.com\/[^/]+\/[^/]+?)(?:\.git)?$/);if(l){o.json({githubUrl:l[1]});return}}catch{}o.json({githubUrl:null})})}function ut(t,e){let r=process.env.SPOTA_ADMIN_EMAIL??"",i=process.env.SPOTA_API_URL??"http://localhost:3000";t.get("/kanban",async(s,o)=>{let a=await Q().catch(()=>null);if(!a){o.type("html").send(rn({port:e}));return}let c=await J().catch(()=>null),l=!1;if(r)try{let C=await fetch(`${i}/api/cli/profile`,{headers:{Authorization:`Bearer ${a}`}}).catch(()=>null);C?.ok&&(l=(await C.json()).email===r)}catch{}let u={port:e,saasMode:!0,boardUrl:c?.url??`${i}/kanban`,boardName:c?.name,isAdmin:l};o.type("html").send(rn(u))})}var Nr=`*{box-sizing:border-box;margin:0;padding:0}
29361
+ </html>`}function rn(t){let e=typeof t=="number"?{port:t}:t;return nn?Xt(e):Kt(e.port)}import{readFileSync as Nn,writeFileSync as Bo,mkdirSync as Vo,existsSync as Ln}from"fs";import{join as Fn,basename as Jt}from"path";var Rn={port:3700};function Zt(t){return Fn(t,le,bn)}function Oe(t){let e=Zt(t);if(!Ln(e))return{...Rn};let r=Nn(e,"utf-8"),i=JSON.parse(r);return{...Rn,...i}}function Me(t){let e=Fn(t,"package.json");if(Ln(e))try{let r=JSON.parse(Nn(e,"utf-8"));if(r.name)return r.name}catch{}return Jt(t)}import{mkdirSync as er,writeFileSync as nr}from"fs";import{dirname as tr}from"path";function rr(t){let e=t;return{...t,text:t.text||e.body||"",author:t.author??"agent"}}function te(t,e){let r=we(t,e);return((r?Ce(r):null)?.comments??[]).filter(s=>!s.deleted).map(rr)}function Dn(t){return t.replace(/\\(n|t|r|\\)/g,(e,r)=>{switch(r){case"n":return`
29362
+ `;case"t":return" ";case"r":return"\r";case"\\":return"\\";default:return r}})}function he(t,e,r,i,s,o,a){i=Dn(i);let c=te(t,e),l={id:Date.now().toString(36)+Math.random().toString(36).slice(2,7),author:r,text:i,...s&&s.length>0?{files:s}:{},...o&&o!=="comment"?{type:o}:{},createdAt:new Date().toISOString(),source:a??"cli"},u=[...c,l];if(!z(t,e,{comments:u})){let P=wn(t,e,new Date().toISOString());er(tr(P),{recursive:!0}),nr(P,JSON.stringify({id:e,comments:u},null,2),"utf-8")}return l}function He(t,e,r,i){let s=te(t,e),o=s.find(a=>a.id===r);return o?(o.text=Dn(i),o.updatedAt=new Date().toISOString(),z(t,e,{comments:s}),o):null}function Ue(t,e,r){let i=te(t,e),s=i.findIndex(o=>o.id===r);return s===-1?!1:(i[s]={...i[s],deleted:!0,text:"[Comment deleted]",updatedAt:new Date().toISOString()},z(t,e,{comments:i}),!0)}import{execSync as An}from"child_process";import{existsSync as or,readFileSync as ar,writeFileSync as na,mkdirSync as ta}from"fs";import{join as ir}from"path";var sr="config.json";function lr(t){return ir(t,le,sr)}function cr(t){let e=lr(t);if(!or(e))return{};try{return JSON.parse(ar(e,"utf-8"))}catch{return{}}}function ur(t){return t.length<=8?"***":t.slice(0,6)+"..."+t.slice(-4)}function dr(){try{return An("gh auth token --hostname github.com 2>/dev/null",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}).trim()||null}catch{return null}}async function pr(t){try{let e=await fetch("https://api.github.com/user",{headers:{Authorization:`Bearer ${t}`,"User-Agent":"proto-studio-cli",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(5e3)});return e.ok?(await e.json()).login??null:null}catch{return null}}function fr(t){let e=process.env.GITHUB_TOKEN;if(e?.trim())return{token:e.trim(),source:"env"};let i=cr(t).copilotToken;if(typeof i=="string"&&i.trim())return{token:i.trim(),source:"config"};let s=dr();return s?{token:s,source:"gh-cli"}:null}async function Re(t){let e=fr(t);if(!e)return{authenticated:!1,source:null,tokenHint:null,username:null};let r=await pr(e.token).catch(()=>null);return{authenticated:!0,source:e.source,tokenHint:ur(e.token),username:r}}function We(){try{return An("gh --version 2>/dev/null",{encoding:"utf-8",timeout:3e3,stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}import{existsSync as on,readFileSync as On,writeFileSync as Mn,mkdirSync as Hn}from"fs";import{join as je}from"path";import Un from"os";var mr="settings.json",Wn=".vibeflow";function jn(){return je(Un.homedir(),".vibeflow","settings.json")}function $n(t){return je(t,Wn,mr)}function an(){try{return JSON.parse(On(jn(),"utf-8"))}catch{return{}}}function zn(t){let e=je(Un.homedir(),".vibeflow");on(e)||Hn(e,{recursive:!0}),Mn(jn(),JSON.stringify(t,null,2),"utf-8")}function G(t){let e=an(),r=$n(t);if(!on(r))return e;try{let i=JSON.parse(On(r,"utf-8"));return{...e,...i}}catch{return e}}function Bn(t,e){let r=je(t,Wn);on(r)||Hn(r,{recursive:!0});let i=$n(t),o={...G(t),...e};return Mn(i,JSON.stringify(o,null,2),"utf-8"),o}import $e from"fs/promises";import gr from"os";import sn from"path";var hr=sn.join(gr.homedir(),".vibeflow"),ze=sn.join(hr,"token");async function Q(){try{return(await $e.readFile(ze,"utf8")).trim()||null}catch{return null}}async function Vn(t){await $e.mkdir(sn.dirname(ze),{recursive:!0}),await $e.writeFile(ze,t,{mode:384})}async function qn(){try{await $e.unlink(ze)}catch{}}import{initTRPC as vr,TRPCError as ln}from"@trpc/server";import{z as I}from"zod";var Kn=vr.context().create(),yr=Kn.router,Z=Kn.procedure,Yn=I.enum(["backlog","todo","in-progress","review","done"]),cn=I.object({id:I.string().min(1)}),Qn=yr({project:Z.query(({ctx:t})=>({name:Me(t.projectDir),projectDir:t.projectDir})),copilotStatus:Z.query(async({ctx:t})=>await We()?await Re(t.projectDir):{authenticated:!1,reason:"gh CLI not found"}),tasks:Z.query(({ctx:t})=>({tasks:ee(t.projectDir).map(i=>({...i,createdAt:i.created,commentCount:(i.comments??[]).length,fileCount:_e(t.projectDir,i.id)}))})),searchTasks:Z.input(I.object({query:I.string().min(1),limit:I.number().int().min(1).max(100).optional(),pageScope:I.string().optional()})).query(({ctx:t,input:e})=>{let r=ee(t.projectDir),i=Math.max(1,e.limit??10),s=e.query.toLowerCase();return{results:r.filter(a=>`${a.title} ${a.description??""} ${a.type??""} ${a.component??""}`.toLowerCase().includes(s)).slice(0,i).map(a=>({score:1,task:a,commentCount:(a.comments??[]).length,fileCount:_e(t.projectDir,a.id)}))}}),createTask:Z.input(I.object({title:I.string().min(1),selector:I.string().min(1),description:I.string().optional(),cssSelector:I.string().optional(),url:I.string().optional(),type:I.string().optional(),priority:I.string().optional(),file:I.string().optional(),line:I.number().int().positive().optional(),col:I.number().int().positive().optional(),component:I.string().optional(),status:Yn.optional(),agent:I.string().optional(),model:I.string().optional(),author:I.string().optional(),annotatedElementText:I.string().max(300).optional()})).mutation(({ctx:t,input:e})=>{let r=xe(t.projectDir,{title:e.title,description:e.description??"",selector:e.selector,cssSelector:e.cssSelector,url:e.url,status:e.status??"todo",screenshot:void 0,file:e.file,line:e.line,col:e.col,component:e.component,type:e.type,priority:e.priority,author:e.author??"Unknown",agent:e.agent,model:e.model,annotatedElementText:e.annotatedElementText});return t.broadcast({type:"tasks-updated"}),{success:!0,task:r}}),updateTask:Z.input(I.object({id:I.string().min(1),updates:I.object({status:Yn.optional(),title:I.string().min(1).optional(),description:I.string().optional(),type:I.string().optional(),priority:I.string().optional(),reportBack:I.boolean().optional(),agent:I.string().optional(),model:I.string().optional()})})).mutation(({ctx:t,input:e})=>{let r=z(t.projectDir,e.id,e.updates);if(!r)throw new ln({code:"NOT_FOUND",message:"Task not found"});return t.broadcast({type:"tasks-updated"}),{success:!0,task:r}}),deleteTask:Z.input(cn).mutation(({ctx:t,input:e})=>{if(!De(t.projectDir,e.id))throw new ln({code:"NOT_FOUND",message:"Task not found"});return t.broadcast({type:"tasks-updated"}),{success:!0}}),comments:Z.input(cn).query(({ctx:t,input:e})=>({comments:te(t.projectDir,e.id)})),addComment:Z.input(I.object({taskId:I.string().min(1),text:I.string().min(1),author:I.enum(["user","agent"]).optional().default("user"),files:I.array(I.string()).optional(),source:I.enum(["cli","web"]).optional().default("web")})).mutation(({ctx:t,input:e})=>{let r=he(t.projectDir,e.taskId,e.author,e.text.trim(),e.files,void 0,e.source);return t.broadcast({type:"tasks-updated"}),{success:!0,comment:r}}),updateComment:Z.input(I.object({taskId:I.string().min(1),commentId:I.string().min(1),text:I.string().min(1)})).mutation(({ctx:t,input:e})=>{let r=He(t.projectDir,e.taskId,e.commentId,e.text.trim());if(!r)throw new ln({code:"NOT_FOUND",message:"Comment not found"});return{success:!0,comment:r}}),deleteComment:Z.input(I.object({taskId:I.string().min(1),commentId:I.string().min(1)})).mutation(({ctx:t,input:e})=>(Ue(t.projectDir,e.taskId,e.commentId),t.broadcast({type:"tasks-updated"}),{success:!0})),files:Z.input(cn).query(({ctx:t,input:e})=>({files:ne(t.projectDir,e.id)}))});import{execSync as Gn}from"child_process";function un(t){try{let e=Gn("git config user.name",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim(),r=Gn("git config user.email",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim();return{name:e||"Unknown",email:r||""}}catch{return{name:"Unknown",email:""}}}function Rr(t){return/^[a-f0-9]{30}$/.test(t)}var Qa=Cr(import.meta.url);function st(){for(let t of Object.values(Tr()))for(let e of t??[])if(e.family==="IPv4"&&!e.internal)return e.address;return null}function lt(t,e){t.get("/api/pages",(r,i)=>{i.json({pages:e})})}var Be=null;function Zn(t){if(Be&&Date.now()-Be.fetchedAt<3e5)return Be.shas;try{let r=ot("git log --remotes --format=%H",{cwd:t,timeout:5e3}).toString().trim(),i=new Set(r?r.split(`
29363
+ `):[]);return Be={shas:i,fetchedAt:Date.now()},i}catch{return new Set}}function et(t,e){return t?e.has(t):null}function ct(t,e,r){t.get("/api/project",(s,o)=>{o.json({name:Me(e),projectDir:e})}),t.get("/api/tasks",(s,o)=>{let a=ee(e),c=Zn(e),l=a.map(u=>{let C=u.commits?.length?u.commits[u.commits.length-1].sha:u.commit;return{...u,createdAt:u.created,commentCount:(u.comments??[]).length,fileCount:_e(e,u.id),commitPushed:et(C,c)}});o.json({tasks:l})}),t.param("id",(s,o,a,c)=>{if(!Rr(c)){o.status(400).json({error:"Invalid task id"});return}a()}),t.get("/api/tasks/:id",(s,o)=>{let{id:a}=s.params,c=we(e,a),l=c?Ce(c):null;if(!l){o.status(404).json({error:"Task not found"});return}let u=Zn(e),C=l.commits?.length?l.commits[l.commits.length-1].sha:l.commit;o.json({...l,commitPushed:et(C,u)})}),t.post("/api/tasks",(s,o)=>{let{title:a,description:c,selector:l,cssSelector:u,url:C,type:P,priority:k,file:w,line:R,col:L,component:f,status:_,agent:F,model:q,screenshot:M,annotatedElementText:Y,tags:oe}=s.body;if(!a||!l){o.status(400).json({error:"Missing required fields: title, selector"});return}let ae=un(e),pe=xe(e,{title:a,description:c||"",selector:l,cssSelector:u||void 0,url:C||void 0,status:["backlog","todo","in-progress","review","done"].includes(_)?_:"todo",file:w||void 0,line:R!=null?Number(R):void 0,col:L!=null?Number(L):void 0,component:f||void 0,type:P||void 0,priority:k||void 0,author:ae.name,agent:F||void 0,model:q||void 0,annotatedElementText:Y?String(Y).slice(0,300):void 0,tags:Array.isArray(oe)?oe.filter(p=>typeof p=="string"&&p.length>0):void 0});if(M){let p=ie(e,le,Ie);Jn(p,{recursive:!0});let h=`${pe.id}.png`;Xn(ie(p,h),Buffer.from(M,"base64")),z(e,pe.id,{screenshot:h}),pe.screenshot=h}console.log(`[Proto] Task created: "${pe.title}" (${pe.id})`),r({type:"tasks-updated"}),o.json({success:!0,task:pe})}),t.patch("/api/tasks/:id",(s,o)=>{let{id:a}=s.params,c=s.body,l=z(e,a,c);if(!l){o.status(404).json({error:"Task not found"});return}console.log(`[Proto] Task updated: "${l.title}" (${l.id}) \u2192 status:${l.status}`),r({type:"task-changed",taskId:l.id,action:"update",task:l}),o.json({success:!0,task:l})}),t.delete("/api/tasks/:id",(s,o)=>{let{id:a}=s.params;if(!De(e,a)){o.status(404).json({error:"Task not found"});return}console.log(`[Proto] Task deleted: ${a}`),r({type:"task-deleted",taskId:a}),o.json({success:!0})}),t.get("/api/tasks/:id/comments",(s,o)=>{let{id:a}=s.params,c=te(e,a);o.json({comments:c})}),t.post("/api/tasks/:id/comments",(s,o)=>{let{id:a}=s.params,{author:c,text:l,files:u,source:C}=s.body;if(!l||!l.trim()){o.status(400).json({error:"Missing required field: text"});return}let P=c==="agent"?"agent":"user",k=C==="cli"?"cli":"web",w=he(e,a,P,l.trim(),Array.isArray(u)?u:void 0,void 0,k);r({type:"tasks-updated"}),o.json({success:!0,comment:w})}),t.patch("/api/tasks/:id/comments/:commentId",(s,o)=>{let{id:a,commentId:c}=s.params,{text:l}=s.body;if(!l||!l.trim()){o.status(400).json({error:"Missing required field: text"});return}let u=He(e,a,c,l.trim());if(!u){o.status(404).json({error:"Comment not found"});return}o.json({success:!0,comment:u})}),t.delete("/api/tasks/:id/comments/:commentId",(s,o)=>{let{id:a,commentId:c}=s.params;if(!Ue(e,a,c)){o.status(404).json({error:"Comment not found"});return}r({type:"tasks-updated"}),o.json({success:!0})}),t.get("/api/tasks/:id/files",(s,o)=>{let{id:a}=s.params,c=ne(e,a);o.json({files:c})}),t.get("/api/tasks/:id/files/:filename",(s,o)=>{let{id:a,filename:c}=s.params,l=En(e,a,c);if(!l){o.status(404).json({error:"File not found"});return}o.sendFile(l)}),t.post("/api/tasks/:id/files/:filename",ue.raw({type:"*/*",limit:"50mb"}),(s,o)=>{let{id:a,filename:c}=s.params;if(!c||c.includes("/")||c.includes("\\")){o.status(400).json({error:"Invalid filename"});return}let l=s.body;if(!Buffer.isBuffer(l)||l.length===0){o.status(400).json({error:"Empty file body"});return}let u=Cn(e,a,decodeURIComponent(c),l);r({type:"tasks-updated"}),o.json({success:!0,file:u})}),t.delete("/api/tasks/:id/files/:filename",(s,o)=>{let{id:a,filename:c}=s.params;if(!Sn(e,a,c)){o.status(404).json({error:"File not found"});return}he(e,a,"user",`\u{1F5D1}\uFE0F File removed: \`${c}\``,void 0,"system","web"),r({type:"tasks-updated"}),o.json({success:!0})});let i=ie(e,le,Ie);t.post("/api/tasks/:id/screenshot",ue.json(),(s,o)=>{let{id:a}=s.params,{screenshot:c}=s.body;if(!we(e,a)){o.status(404).json({error:"Task not found"});return}if(!c){o.status(400).json({error:"Missing screenshot"});return}Jn(i,{recursive:!0});let l=`${a}.png`;Xn(ie(i,l),Buffer.from(c,"base64")),z(e,a,{screenshot:l}),r({type:"tasks-updated"}),o.json({success:!0,screenshot:l})}),t.delete("/api/tasks/:id/screenshot",(s,o)=>{let{id:a}=s.params;if(!we(e,a)){o.status(404).json({error:"Task not found"});return}let c=`${a}.png`,l=ie(i,c);xr(l)&&tt(l),z(e,a,{screenshot:void 0}),r({type:"tasks-updated"}),o.json({success:!0})})}function ut(t,e,r){t.get("/api/user",(s,o)=>{o.json(un(e))}),t.get("/api/settings",(s,o)=>{o.json(G(e))}),t.post("/api/settings",(s,o)=>{let a=s.body,c=Bn(e,a);o.json({success:!0,settings:c})}),t.get("/api/push/workspaces",async(s,o)=>{let a=await Q().catch(()=>null);if(!a){o.status(401).json({error:"Not logged in"});return}let c=process.env.SPOTA_API_URL??"http://localhost:3000";try{let l=await fetch(`${c}/api/cli/workspaces`,{headers:{Authorization:`Bearer ${a}`}});if(!l.ok){let C=(await l.json().catch(()=>({}))).error??`HTTP ${l.status} from ${c}`;console.error(`[Proto] GET /api/push/workspaces failed: ${C}`),o.status(l.status).json({error:C});return}o.json(await l.json())}catch(l){let u=l instanceof Error?l.message:String(l);console.error(`[Proto] GET /api/push/workspaces network error: ${u}`),o.status(502).json({error:`Network error contacting SaaS API: ${u}`})}}),t.post("/api/push",ue.json(),async(s,o)=>{let{workspaceId:a,keepLocalFiles:c}=s.body,l=await Q().catch(()=>null);if(!l){o.status(401).json({error:"Not logged in"});return}let u=ce(e);if(u.length===0){o.json({imported:0,message:"No local tasks found"});return}let C=process.env.SPOTA_API_URL??"http://localhost:3000",P={tasks:u};a&&(P.workspaceId=a);try{let k=await fetch(`${C}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify(P)});if(!k.ok){let R=await k.json().catch(()=>({}));o.status(k.status).json({error:R.error??"Import failed"});return}let w=await k.json();if(!c){for(let R of u)try{tt(R.filePath)}catch{}r?.({type:"tasks-updated"})}o.json({imported:w.imported,skipped:w.skipped??0,workspaceId:w.workspaceId,boardId:w.boardId})}catch(k){let w=k instanceof Error?k.message:String(k);console.error(`[Proto] POST /api/push network error: ${w}`),o.status(502).json({error:`Network error contacting SaaS API: ${w}`})}}),t.get("/api/copilot/status",(s,o)=>{Re(e).then(a=>o.json(a)).catch(a=>{console.error(`[Proto] GET /api/copilot/status error: ${a instanceof Error?a.message:String(a)}`),o.json({authenticated:!1,source:null,tokenHint:null,username:null})})}),t.post("/api/copilot/login",async(s,o)=>{try{let a=await Re(e);if(a.authenticated){o.json({launched:!1,alreadyAuthenticated:!0,username:a.username??null});return}if(!We()){o.status(400).json({launched:!1,error:"GitHub CLI is not installed. Install gh and authenticate with 'gh auth login'."});return}Ir("gh",["auth","login","--web","--hostname","github.com","--git-protocol","https","--scopes","read:user,copilot"],{cwd:e,detached:!0,stdio:"ignore"}).unref(),o.json({launched:!0})}catch(a){let c=a instanceof Error?a.message:String(a);console.error(`[Proto] POST /api/copilot/login error: ${c}`),o.status(500).json({launched:!1,error:c})}});let i=null;t.get("/api/agent-status",(s,o)=>{o.json(i??{message:"",active:!1,updatedAt:null})}),t.post("/api/agent-status",(s,o)=>{let{message:a,active:c}=s.body;i={message:(a??"").slice(0,200),active:c!==!1,updatedAt:new Date().toISOString()},r?.({type:"agent-status",...i}),o.json({ok:!0})}),t.delete("/api/agent-status",(s,o)=>{i=null,r?.({type:"agent-status",message:"",active:!1,updatedAt:null}),o.json({ok:!0})}),t.get("/api/github-url",(s,o)=>{try{let a=ot("git remote get-url origin",{cwd:e,timeout:3e3}).toString().trim(),c=a.match(/^git@github\.com:(.+?)(?:\.git)?$/);if(c){o.json({githubUrl:`https://github.com/${c[1]}`});return}let l=a.match(/^(https?:\/\/github\.com\/[^/]+\/[^/]+?)(?:\.git)?$/);if(l){o.json({githubUrl:l[1]});return}}catch{}o.json({githubUrl:null})})}function dt(t,e){let r=process.env.SPOTA_ADMIN_EMAIL??"",i=process.env.SPOTA_API_URL??"http://localhost:3000";t.get("/kanban",async(s,o)=>{let a=await Q().catch(()=>null);if(!a){o.type("html").send(rn({port:e}));return}let c=await J().catch(()=>null),l=!1;if(r)try{let C=await fetch(`${i}/api/cli/profile`,{headers:{Authorization:`Bearer ${a}`}}).catch(()=>null);C?.ok&&(l=(await C.json()).email===r)}catch{}let u={port:e,saasMode:!0,boardUrl:c?.url??`${i}/kanban`,boardName:c?.name,isAdmin:l};o.type("html").send(rn(u))})}var Nr=`*{box-sizing:border-box;margin:0;padding:0}
29355
29364
  body{font-family:system-ui,sans-serif;background:#0f172a;color:#e2e8f0;padding:32px;max-width:700px;margin:0 auto}
29356
29365
  h1{font-size:22px;font-weight:700;color:#f1f5f9;margin-bottom:6px}
29357
29366
  h2{font-size:14px;font-weight:600;color:#94a3b8;margin:24px 0 8px;text-transform:uppercase;letter-spacing:.06em}
@@ -29372,7 +29381,7 @@ pre{background:#050d1a;border:1px solid #1e293b;border-radius:6px;padding:12px;o
29372
29381
  <p style="margin-top:6px">${t}</p>
29373
29382
  ${e.join(`
29374
29383
  `)}
29375
- </body></html>`}function dt(t,e,r,i){if(i){let u=`${i}/api/overlay.js`,C=r?`window.__PROTO_BOARD_ID='${r}';`:"",P=`javascript:(function(){if(document.getElementById('vibeflow-studio-root')){alert('Vibeflow overlay is already active.')}else{${C}fetch('${u}').then(function(r){return r.text()}).then(function(code){eval(code)}).catch(function(){alert('Failed to load Vibeflow overlay')})}})()`,k=`${C}fetch('${u}').then(r=>r.text()).then(code=>eval(code));`,w=r?`<script src="${u}" data-vibeflow-overlay data-board-id="${r}"></script>`:`<script src="${u}" data-vibeflow-overlay></script>`;t.get("/inject",(_,L)=>{L.type("html").send(nt(`Add the Vibeflow overlay to any page to annotate and create tasks.${r?`<br><span style="font-size:12px;color:#64748b">Connected to board <code style="background:#1e293b;padding:2px 6px;border-radius:4px">${r}</code> via SaaS.</span>`:""}`,[`<h2>Option 1 \u2014 Bookmarklet <span class="badge green">CSP-safe</span> <span class="badge">recommended</span></h2>
29384
+ </body></html>`}function pt(t,e,r,i){if(i){let u=`${i}/api/overlay.js`,C=r?`window.__PROTO_BOARD_ID='${r}';`:"",P=`javascript:(function(){if(document.getElementById('vibeflow-studio-root')){alert('Vibeflow overlay is already active.')}else{${C}fetch('${u}').then(function(r){return r.text()}).then(function(code){eval(code)}).catch(function(){alert('Failed to load Vibeflow overlay')})}})()`,k=`${C}fetch('${u}').then(r=>r.text()).then(code=>eval(code));`,w=r?`<script src="${u}" data-vibeflow-overlay data-board-id="${r}"></script>`:`<script src="${u}" data-vibeflow-overlay></script>`;t.get("/inject",(R,L)=>{L.type("html").send(nt(`Add the Vibeflow overlay to any page to annotate and create tasks.${r?`<br><span style="font-size:12px;color:#64748b">Connected to board <code style="background:#1e293b;padding:2px 6px;border-radius:4px">${r}</code> via SaaS.</span>`:""}`,[`<h2>Option 1 \u2014 Bookmarklet <span class="badge green">CSP-safe</span> <span class="badge">recommended</span></h2>
29376
29385
  <div class="card"><p>Drag this link to your bookmarks bar, then click it on any page to activate the overlay:</p>
29377
29386
  <a class="bookmarklet" href="${P}"><svg class='bookmarklet-icon' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='7' y='13' width='3.5' height='10' rx='1.5' fill='white' opacity='.75'/><rect x='12.25' y='8.5' width='3.5' height='15' rx='1.5' fill='white'/><rect x='17.5' y='14.5' width='3.5' height='8' rx='1.5' fill='white' opacity='.75'/><rect x='22.5' y='11' width='2.5' height='11' rx='1.25' fill='white' opacity='.85'/></svg>Vibeflow annotate</a>
29378
29387
  <div class="note">\u2705 Works on pages with strict Content-Security-Policy (uses fetch + eval instead of &lt;script src&gt;).<br>\u26A0\uFE0F Do not click the link here \u2014 drag it to your bookmarks bar first, then use it on your target page.</div></div>`,`<h2>Option 2 \u2014 Browser console <span class="badge green">CSP-safe</span></h2>
@@ -29389,20 +29398,20 @@ ${e.join(`
29389
29398
  <pre>${dn(a)}</pre>
29390
29399
  <div class="note">Requires the proto server to be running at port ${e}. Works without the Chrome extension.</div></div>`,`<h2>Option 3 \u2014 Browser console</h2>
29391
29400
  <div class="card"><p>Open browser DevTools console and paste:</p>
29392
- <pre>var s=document.createElement('script');s.src='${s}';s.setAttribute('data-vibeflow-overlay','');${r?`s.setAttribute('data-board-id','${r}');`:""}document.head.appendChild(s);</pre></div>`,'<div class="note" style="margin-top:20px">\u2699\uFE0F <strong>CSP note:</strong> If your app sets a strict Content-Security-Policy, use the Chrome extension instead \u2014 it bypasses CSP by injecting in the main world.</div>']))})}function pt(t,e,r){t.use("/trpc",Tr({router:Qn,createContext:()=>({projectDir:e,broadcast:r})}))}function ft(t){t.use((e,r,i,s)=>{console.error("[Proto] Unhandled error:",e.message),i.status(500).json({error:"Internal server error"})})}function mt(t){t.use((e,r,i)=>{if(r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST, PATCH, DELETE, OPTIONS"),r.setHeader("Access-Control-Allow-Headers","Content-Type"),e.method==="OPTIONS"){r.status(204).end();return}i()})}function gt(t){t.disable("x-powered-by"),t.use((e,r,i)=>{r.setHeader("Content-Security-Policy",["default-src 'self'","script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: https://cdn.tailwindcss.com https://unpkg.com","style-src 'self' 'unsafe-inline' https://fonts.googleapis.com","font-src 'self' https://fonts.gstatic.com","img-src 'self' data: blob:","connect-src 'self' ws://localhost:* ws://127.0.0.1:* wss://localhost:* wss://127.0.0.1:*","frame-ancestors 'none'","object-src 'none'","base-uri 'self'","form-action 'self'","worker-src 'self' blob:"].join("; ")),r.setHeader("Permissions-Policy","camera=(), microphone=(), geolocation=()"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("X-Frame-Options","DENY"),r.setHeader("Referrer-Policy","strict-origin-when-cross-origin"),r.setHeader("Cross-Origin-Embedder-Policy","unsafe-none"),r.setHeader("Cross-Origin-Opener-Policy","same-origin"),i()})}async function Fr(t,e){let r=e._testToken!==void 0?e._testToken:await Q().catch(()=>null),i=e._testWorkspace!==void 0?e._testWorkspace:r?await J().catch(()=>null):null,s=!!(r&&i),o=de();mt(o),gt(o),o.use(de.json({limit:"10mb"}));let a=rt(o),c=new at({server:a}),l=k=>{let w=JSON.stringify(k);for(let _ of c.clients)_.readyState===it.OPEN&&_.send(w)};c.on("connection",k=>{k.on("message",w=>{try{JSON.parse(w.toString()).type==="ping"&&k.send(JSON.stringify({type:"pong"}))}catch{}})});let C=(i?.url?(()=>{try{return new URL(i.url).origin}catch{return null}})():null)??process.env.SPOTA_API_URL??"http://localhost:3000";if(s){o.use(["/api/tasks","/api/push","/trpc"],(w,_)=>{_.status(503).json({error:"Online mode active \u2014 local task API is disabled. All task operations go through the SaaS backend."})});let k=Tn(C);o.get("/vibeflow-overlay.js",(w,_)=>{_.type("application/javascript").send(k)})}else{Te(t);let k=en(e.port);o.get("/vibeflow-overlay.js",(w,_)=>{_.type("application/javascript").send(k)}),o.use("/screenshots",de.static(ae(t,ce,Ie))),st(o,[]),lt(o,t,l),pt(o,t,l),ct(o,t,l)}ut(o,e.port),dt(o,e.port,s?i?.id:void 0,s?C:void 0);let P=s?null:Je(ae(t,".vibeflow","tasks"),{onChanged:k=>{let w=Ce(k);l(w?{type:"task-changed",taskId:w.id,action:"update",task:w,source:"cli"}:{type:"tasks-updated"})},onDeleted:k=>{let w=me(k,".json");l({type:"task-deleted",taskId:w})}});return ft(o),new Promise((k,w)=>{a.listen(e.port,()=>{let _=`http://localhost:${e.port}`,L=g.dim(" "+"\u2500".repeat(62));console.log(),console.log(g.green(" \u2713 Vibeflow running")+g.dim(" \xB7 ")+g.cyan(_)),console.log(L),s?(console.log(g.dim(" Mode: ")+g.green("\u25CF Online")+g.dim(" \u2014 connected to Vibeflow SaaS")),console.log(g.dim(" Board: ")+g.white(i.name??"your board")),console.log(g.dim(" Web: ")+g.cyan(i.url)),console.log(L),console.log(g.dim(" Overlay script: ")+g.cyan(`${_}/vibeflow-overlay.js`)),console.log(),console.log(g.dim(" \u250C\u2500 Add to your HTML ")+g.dim("\u2500".repeat(43)+"\u2510")),console.log(g.dim(" \u2502 ")+g.yellow(`<script src="${_}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)+g.dim(" \u2502")),console.log(g.dim(" \u2502 ")+g.dim("Or drag the bookmarklet: ")+g.cyan(`${_}/inject`)+g.dim(" \u2502")),console.log(g.dim(" \u2514"+"\u2500".repeat(63)+"\u2518"))):(console.log(g.dim(" Mode: ")+g.yellow("\u25CE Local")+g.dim(" \u2014 no account needed")),console.log(L),console.log(g.bold.white(" BOARDS & APIS")),console.log(g.dim(" Kanban board ")+g.cyan(`${_}/kanban`)),console.log(g.dim(" Task API ")+g.cyan(`${_}/api/tasks`)),console.log(L),console.log(g.bold.white(" INTEGRATE INTO YOUR APP")+g.dim(` (full guide: ${_}/inject)`)),console.log(g.dim(" 1. Add this script tag to your HTML:")),console.log(g.dim(" ")+g.yellow(`<script src="${_}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)),console.log(g.dim(" 2. Reload your page \u2014 the overlay appears automatically.")),console.log(g.dim(" 3. Click anything to annotate it.")),console.log(L),console.log(g.dim(" Bookmarklet \u2014 no code changes needed:")),console.log(g.dim(" Visit and drag the bookmarklet from ")+g.cyan(`${_}/inject`)+g.dim(" to your bookmarks bar."))),console.log(),console.log(g.dim(" Press Ctrl+C to stop")),console.log(),k({url:_,close:async()=>{P&&await P.close(),c.close(),await new Promise(m=>a.close(()=>m()))}})}),a.on("error",w)})}async function pn(t,e){if(!t)return Fr(e.projectDir??process.cwd(),e);if(t.startsWith("http://")||t.startsWith("https://"))throw new Error(`Proxy mode is no longer supported.
29401
+ <pre>var s=document.createElement('script');s.src='${s}';s.setAttribute('data-vibeflow-overlay','');${r?`s.setAttribute('data-board-id','${r}');`:""}document.head.appendChild(s);</pre></div>`,'<div class="note" style="margin-top:20px">\u2699\uFE0F <strong>CSP note:</strong> If your app sets a strict Content-Security-Policy, use the Chrome extension instead \u2014 it bypasses CSP by injecting in the main world.</div>']))})}function ft(t,e,r){t.use("/trpc",_r({router:Qn,createContext:()=>({projectDir:e,broadcast:r})}))}function mt(t){t.use((e,r,i,s)=>{console.error("[Proto] Unhandled error:",e.message),i.status(500).json({error:"Internal server error"})})}function gt(t){t.use((e,r,i)=>{if(r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST, PATCH, DELETE, OPTIONS"),r.setHeader("Access-Control-Allow-Headers","Content-Type"),e.method==="OPTIONS"){r.status(204).end();return}i()})}function ht(t){t.disable("x-powered-by"),t.use((e,r,i)=>{r.setHeader("Content-Security-Policy",["default-src 'self'","script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: https://cdn.tailwindcss.com https://unpkg.com","style-src 'self' 'unsafe-inline' https://fonts.googleapis.com","font-src 'self' https://fonts.gstatic.com","img-src 'self' data: blob:","connect-src 'self' ws://localhost:* ws://127.0.0.1:* wss://localhost:* wss://127.0.0.1:*","frame-ancestors 'none'","object-src 'none'","base-uri 'self'","form-action 'self'","worker-src 'self' blob:"].join("; ")),r.setHeader("Permissions-Policy","camera=(), microphone=(), geolocation=()"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("X-Frame-Options","DENY"),r.setHeader("Referrer-Policy","strict-origin-when-cross-origin"),r.setHeader("Cross-Origin-Embedder-Policy","unsafe-none"),r.setHeader("Cross-Origin-Opener-Policy","same-origin"),i()})}async function Fr(t,e){let r=e._testToken!==void 0?e._testToken:await Q().catch(()=>null),i=e._testWorkspace!==void 0?e._testWorkspace:r?await J().catch(()=>null):null,s=!!(r&&i),o=ue();gt(o),ht(o),o.use(ue.json({limit:"10mb"}));let a=rt(o),c=new at({server:a}),l=k=>{let w=JSON.stringify(k);for(let R of c.clients)R.readyState===it.OPEN&&R.send(w)};c.on("connection",k=>{k.on("message",w=>{try{JSON.parse(w.toString()).type==="ping"&&k.send(JSON.stringify({type:"pong"}))}catch{}})});let C=(i?.url?(()=>{try{return new URL(i.url).origin}catch{return null}})():null)??process.env.SPOTA_API_URL??"http://localhost:3000";if(s){o.use(["/api/tasks","/api/push","/trpc"],(w,R)=>{R.status(503).json({error:"Online mode active \u2014 local task API is disabled. All task operations go through the SaaS backend."})});let k=Tn(C);o.get("/vibeflow-overlay.js",(w,R)=>{R.type("application/javascript").send(k)})}else{Te(t);let k=en(e.port);o.get("/vibeflow-overlay.js",(w,R)=>{R.type("application/javascript").send(k)}),o.use("/screenshots",ue.static(ie(t,le,Ie))),lt(o,[]),ct(o,t,l),ft(o,t,l),ut(o,t,l)}dt(o,e.port),pt(o,e.port,s?i?.id:void 0,s?C:void 0);let P=s?null:Je(ie(t,".vibeflow","tasks"),{onChanged:k=>{let w=Ce(k);l(w?{type:"task-changed",taskId:w.id,action:"update",task:w,source:"cli"}:{type:"tasks-updated"})},onDeleted:k=>{let w=me(k,".json");l({type:"task-deleted",taskId:w})}});return mt(o),new Promise((k,w)=>{let R=e.host??"localhost";a.listen(e.port,R,()=>{let f=`http://${R==="0.0.0.0"?st()??"localhost":R}:${e.port}`,_=R==="0.0.0.0"?`http://localhost:${e.port}`:null,F=g.dim(" "+"\u2500".repeat(62));console.log(),console.log(g.green(" \u2713 Vibeflow running")+g.dim(" \xB7 ")+g.cyan(f)),_&&console.log(g.dim(" Local: ")+g.cyan(_)),console.log(F),s?(console.log(g.dim(" Mode: ")+g.green("\u25CF Online")+g.dim(" \u2014 connected to Vibeflow SaaS")),console.log(g.dim(" Board: ")+g.white(i.name??"your board")),console.log(g.dim(" Web: ")+g.cyan(i.url)),console.log(F),console.log(g.dim(" Overlay script: ")+g.cyan(`${f}/vibeflow-overlay.js`)),console.log(),console.log(g.dim(" \u250C\u2500 Add to your HTML ")+g.dim("\u2500".repeat(43)+"\u2510")),console.log(g.dim(" \u2502 ")+g.yellow(`<script src="${f}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)+g.dim(" \u2502")),console.log(g.dim(" \u2502 ")+g.dim("Or drag the bookmarklet: ")+g.cyan(`${f}/inject`)+g.dim(" \u2502")),console.log(g.dim(" \u2514"+"\u2500".repeat(63)+"\u2518"))):(console.log(g.dim(" Mode: ")+g.yellow("\u25CE Local")+g.dim(" \u2014 no account needed")),console.log(F),console.log(g.bold.white(" BOARDS & APIS")),console.log(g.dim(" Kanban board ")+g.cyan(`${f}/kanban`)),console.log(g.dim(" Task API ")+g.cyan(`${f}/api/tasks`)),console.log(F),console.log(g.bold.white(" INTEGRATE INTO YOUR APP")+g.dim(` (full guide: ${f}/inject)`)),console.log(g.dim(" 1. Add this script tag to your HTML:")),console.log(g.dim(" ")+g.yellow(`<script src="${f}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)),console.log(g.dim(" 2. Reload your page \u2014 the overlay appears automatically.")),console.log(g.dim(" 3. Click anything to annotate it.")),console.log(F),console.log(g.dim(" Bookmarklet \u2014 no code changes needed:")),console.log(g.dim(" Visit and drag the bookmarklet from ")+g.cyan(`${f}/inject`)+g.dim(" to your bookmarks bar."))),console.log(),console.log(g.dim(" Press Ctrl+C to stop")),console.log(),k({url:f,close:async()=>{P&&await P.close(),c.close(),await new Promise(q=>a.close(()=>q()))}})}),a.on("error",w)})}async function pn(t,e){if(!t)return Fr(e.projectDir??process.cwd(),e);if(t.startsWith("http://")||t.startsWith("https://"))throw new Error(`Proxy mode is no longer supported.
29393
29402
  To annotate an existing app, run: proto serve (API-only mode)
29394
- Then install the Chrome extension and navigate to your app.`);let r=Cr(t),s=kr(r).isDirectory(),o=s?br(r).filter(m=>Sr(m)===".html").map(m=>ae(r,m)):[r];if(o.length===0)throw new Error("No HTML files found at "+t);let a=s?r:Er(r);Te(a);let c=de();mt(c),gt(c),c.use(de.json({limit:"10mb"}));let l=rt(c),u=new at({server:l}),C=m=>{let N=JSON.stringify(m);for(let H of u.clients)H.readyState===it.OPEN&&H.send(N)};u.on("connection",m=>{m.on("message",N=>{try{JSON.parse(N.toString()).type==="ping"&&m.send(JSON.stringify({type:"pong"}))}catch{}})});let P=e.noOverlay?null:en(e.port);P&&c.get("/vibeflow-overlay.js",(m,N)=>{N.type("application/javascript").send(P)}),c.use("/screenshots",de.static(ae(a,ce,Ie))),s&&c.get("/",(m,N)=>{let H=o.map(K=>{let O=me(K);return`<li><a href="/${O}">${O}</a></li>`}).join(`
29395
- `);N.send(`<!DOCTYPE html><html><head><title>Vibeflow Studio</title>
29403
+ Then install the Chrome extension and navigate to your app.`);let r=Sr(t),s=wr(r).isDirectory(),o=s?kr(r).filter(f=>Er(f)===".html").map(f=>ie(r,f)):[r];if(o.length===0)throw new Error("No HTML files found at "+t);let a=s?r:Pr(r);Te(a);let c=ue();gt(c),ht(c),c.use(ue.json({limit:"10mb"}));let l=rt(c),u=new at({server:l}),C=f=>{let _=JSON.stringify(f);for(let F of u.clients)F.readyState===it.OPEN&&F.send(_)};u.on("connection",f=>{f.on("message",_=>{try{JSON.parse(_.toString()).type==="ping"&&f.send(JSON.stringify({type:"pong"}))}catch{}})});let P=e.noOverlay?null:en(e.port);P&&c.get("/vibeflow-overlay.js",(f,_)=>{_.type("application/javascript").send(P)}),c.use("/screenshots",ue.static(ie(a,le,Ie))),s&&c.get("/",(f,_)=>{let F=o.map(q=>{let M=me(q);return`<li><a href="/${M}">${M}</a></li>`}).join(`
29404
+ `);_.send(`<!DOCTYPE html><html><head><title>Vibeflow Studio</title>
29396
29405
  <style>body{font-family:system-ui;max-width:600px;margin:40px auto;padding:0 20px}
29397
29406
  a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}
29398
29407
  li{margin:8px 0}</style></head>
29399
29408
  <body><h1>Vibeflow Studio</h1>
29400
29409
  <p>Select a prototype to review:</p>
29401
- <ul>${H}</ul></body></html>`)});for(let m of o){let N=s?`/${me(m)}`:"/";c.get(N,(H,K)=>{let O=yr(m,"utf-8"),q=P?In(O,P):O;K.type("html").send(q)})}let k=o.map(m=>`/${me(m)}`);st(c,s?k:[]),lt(c,a,C),pt(c,a,C),ct(c,a,C),ut(c,e.port),dt(c,e.port);let w=null;w=Xe(r,{onChange:m=>{let N=me(m);console.log(g.dim(` File changed: ${N}`)),C({type:"reload",file:N})}});let _=ae(a,".vibeflow","tasks"),L=Je(_,{onChanged:m=>{let N=Ce(m);C(N?{type:"task-changed",taskId:N.id,action:"update",task:N,source:"cli"}:{type:"tasks-updated"})},onDeleted:m=>{let N=me(m,".json");C({type:"task-deleted",taskId:N})}});return ft(c),new Promise((m,N)=>{let H=e.host??"localhost";l.listen(e.port,H,()=>{let K=H==="0.0.0.0"?Rr()??"localhost":H,O=`http://localhost:${e.port}`,q=H==="0.0.0.0"?`http://${K}:${e.port}`:null,ie=g.dim(" "+"\u2500".repeat(62));console.log(),console.log(g.green(" \u2713 Vibeflow running")+g.dim(" \xB7 ")+g.cyan(O)),q&&console.log(g.dim(" LAN access: ")+g.cyan(q)),console.log(ie);for(let se of o){let oe=s?`/${me(se)}`:"/";console.log(g.dim(" File: ")+g.cyan(`${O}${oe}`)+g.dim(` (${me(se)})`))}console.log(g.dim(" Kanban board: ")+g.cyan(`${O}/kanban`)),console.log(g.dim(" Task API: ")+g.cyan(`${O}/api/tasks`)),console.log(ie),console.log(g.bold.white(" INTEGRATE INTO YOUR APP")+g.dim(` (full guide: ${O}/inject)`)),console.log(g.dim(" 1. Add this script tag to your HTML:")),console.log(g.dim(" ")+g.yellow(`<script src="${O}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)),console.log(g.dim(" 2. Reload your page \u2014 the overlay appears automatically.")),console.log(g.dim(" 3. Click anything to annotate it.")),console.log(),console.log(g.dim(" Press Ctrl+C to stop")),console.log(),e.open&&import("open").then(se=>se.default(O)).catch(()=>{}),m({url:O,close:async()=>{w&&await w.close(),await L.close(),u.close(),await new Promise(se=>l.close(()=>se()))}})}),l.on("error",N)})}async function ve(){return await Q()?"saas":"local"}import F from"chalk";import Dr from"open";import ht from"readline";import Ar from"@inquirer/select";import{existsSync as Or,readdirSync as vt,readFileSync as Mr}from"fs";import{join as fn}from"path";var Hr="http://localhost:3000",Ur=300*1e3;function yt(){return process.env.SPOTA_API_URL??Hr}async function Wr(t){return new Promise(e=>setTimeout(e,t))}async function jr(t){return t.length===1?(console.log(F.dim(` Using board: ${t[0].icon??""} ${t[0].name}`)),t[0]):await Ar({message:"Select a board to use:",choices:t.map(r=>({name:`${r.icon??""} ${r.name}`,value:r}))})}async function bt(t,e){try{let r=await fetch(`${t}/api/cli/settings`,{headers:{Authorization:`Bearer ${e}`}});if(!r.ok)return;let i=await r.json();i.settings&&Object.keys(i.settings).length>0&&zn({...i.settings,_settingsRefreshedAt:Date.now()})}catch{}}async function kt(){try{let t=await Q();if(!t)return;let r=an()._settingsRefreshedAt??0;if(Date.now()-r<Ur)return;let i=yt();bt(i,t)}catch{}}async function $r(t,e){try{let[r,i]=await Promise.all([fetch(`${t}/api/cli/workspaces`,{headers:{Authorization:`Bearer ${e}`}}),fetch(`${t}/api/cli/profile`,{headers:{Authorization:`Bearer ${e}`}})]);if(!r.ok)return;let s=await r.json();if(!s.workspaces?.length){console.log(F.yellow(" No boards found. Create a board in the web app first."));return}let o=i.ok?await i.json():null,a=await jr(s.workspaces);await Pn({...a,email:o?.email??null}),console.log(F.green(` Board set: ${a.icon??""} ${a.name}`)),console.log(F.dim(` Open at: ${a.url}`))}catch{}}async function zr(t,e,r){let i=fn(process.cwd(),".vibeflow","tasks");if(!Or(i))return;let s=[];try{for(let u of vt(i))if(!u.startsWith(".")){let C=fn(i,u);for(let P of vt(C).filter(k=>k.endsWith(".json")))s.push(fn(C,P))}}catch{return}if(s.length===0)return;let o=s.flatMap(u=>{try{return[JSON.parse(Mr(u,"utf-8"))]}catch{return[]}}),a=new Set;try{let u=await fetch(`${t}/api/cli/tasks?boardId=${r.id}`,{headers:{Authorization:`Bearer ${e}`}}).catch(()=>null);if(u?.ok){let C=await u.json();a=new Set((C.tasks??[]).flatMap(P=>[P.id,...P.cliId?[P.cliId]:[]]))}}catch{}let c=o.filter(u=>!a.has(u.id));if(c.length===0)return;console.log(),console.log(F.bold(` ${c.length} local task${c.length!==1?"s are":" is"} not yet synced to the board:`));let l=c.slice(0,10);for(let u of l){let C=u.status?F.dim(` [${u.status}]`):"";console.log(F.dim(` \u2022 ${u.title??u.id}${C}`))}return c.length>10&&console.log(F.dim(` \u2026 and ${c.length-10} more`)),new Promise(u=>{let C=ht.createInterface({input:process.stdin,output:process.stdout});C.question(F.cyan(`
29402
- Push them to your board now? [Y/n]: `),async P=>{if(C.close(),P.trim().toLowerCase()==="n"){console.log(F.dim(" Skipped. You can push later with: vibeflow push")),u();return}let k=ht.createInterface({input:process.stdin,output:process.stdout});k.question(F.cyan(" Delete local task files after push? [y/N]: "),async w=>{k.close();let _=w.trim().toLowerCase()!=="y";try{let L=await fetch(`${t}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({boardId:r.id,tasks:c,keepLocalFiles:_})}),m={};try{m=await L.json()}catch{}L.ok?(console.log(F.green(` \u2713 Pushed ${m.imported??0} task${(m.imported??0)!==1?"s":""} to ${r.name}`)),(m.skipped??0)>0&&console.log(F.dim(` (${m.skipped} already existed and were skipped)`))):console.log(F.red(` Push failed: ${m.error??`HTTP ${L.status}`}`))}catch(L){console.log(F.red(` Push failed: ${L instanceof Error?L.message:"Network error"}`))}u()})})})}async function Ve(){let t=yt();console.log(F.cyan(" Initiating device login flow..."));let e=await fetch(`${t}/api/cli/auth/device-init`,{method:"POST",headers:{"Content-Type":"application/json"}});e.ok||(console.error(F.red(` Failed to initiate login: ${e.status} ${e.statusText}`)),process.exit(1));let{deviceCode:r,userCode:i,verificationUrl:s,expiresIn:o}=await e.json();console.log(),console.log(F.bold(" Open this URL in your browser to authorize:")),console.log(F.underline(` ${s}`)),console.log();try{await Dr(s),console.log(F.dim(" (Browser opened automatically)"))}catch{}let a=Date.now()+o*1e3,c=3e3;for(;Date.now()<a;){await Wr(c);let l=await fetch(`${t}/api/cli/auth/device-poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:r})});if(!l.ok){console.error(F.red(" Poll request failed. Retrying..."));continue}let u=await l.json();if("token"in u){await Vn(u.token),console.log(),console.log(F.green(" Logged in successfully. Now operating in SaaS mode.")),await Promise.all([$r(t,u.token),bt(t,u.token)]);let{readWorkspace:C}=await import("./workspace-KGOQ67YV.js"),P=await C();P&&await zr(t,u.token,P);return}"expired"in u&&(console.error(F.red(" Device code expired. Please try again.")),process.exit(1)),process.stdout.write(F.dim("."))}console.error(F.red(`
29403
- Login timed out. Please try again.`)),process.exit(1)}import Br from"chalk";async function wt(){await qn(),console.log(Br.green(" Logged out. Now operating in local mode."))}import B from"chalk";import{unlinkSync as Vr,readFileSync as qr,existsSync as Yr}from"fs";import{resolve as Kr,join as Qr}from"path";var Gr="http://localhost:3000";function Xr(){return process.env.SPOTA_API_URL??Gr}function Jr(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function xt(t,e,r=24){let i=Math.round(t/e*r);return`[${"\u2588".repeat(i)+"\u2591".repeat(r-i)}]`}async function Zr(t,e,r,i){let s=[];for(let{localId:w,remoteId:_}of i){let L=ne(r,w);for(let m of L){let N=m.linkedPath??Qr(xn(r,w),m.name);Yr(N)&&s.push({remoteId:_,name:m.name,filePath:N,size:m.size})}}if(s.length===0)return{uploaded:0,failed:0,failedFiles:[]};let o=s.length,a=s.reduce((w,_)=>w+_.size,0);console.log(B.cyan(`
29404
- Uploading ${o} file(s) (${Jr(a)})...`));let c=0,l=0,u=0,C=Date.now(),P=[];for(let w of s){let _=Math.round(c/o*100),L=xt(c,o),m=(Date.now()-C)/1e3,N=u/Math.max(m,.01),H=a-u,K=N>0?Math.ceil(H/N):0,O=K>60?`${Math.ceil(K/60)}m`:`${K}s`;process.stdout.write(`\r ${L} ${_}% ${w.name.slice(0,28)} ETA: ${O} `);try{let q=qr(w.filePath),ie=await fetch(`${t}/api/tasks/${encodeURIComponent(w.remoteId)}/files`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/octet-stream","x-filename":encodeURIComponent(w.name)},body:q});ie.ok?(c++,u+=w.size):(l++,P.push({name:w.name,reason:`HTTP ${ie.status}`}))}catch(q){l++,P.push({name:w.name,reason:q instanceof Error?q.message:String(q)})}}let k=xt(o,o);return process.stdout.write(`\r ${k} 100% Done${" ".repeat(40)}
29405
- `),{uploaded:c,failed:l,failedFiles:P}}async function Ct(t,e){let r=Kr(t),i=await Q();if(!i&&(console.log(B.yellow(" Not logged in. Starting login flow...")),await Ve(),i=await Q(),!i)){console.error(B.red(" Login failed. Please run `vibeflow login` and try again.")),process.exitCode=1;return}let s=ue(r);if(s.length===0){console.log(B.dim(" No local tasks found. Nothing to push."));return}console.log(B.cyan(` Found ${s.length} local task(s). Pushing to SaaS...`));let o=Xr(),a=e.workspace;if(!a){let m=await J();m&&(a=m.id,console.log(B.dim(` Using board: ${m.icon??""} ${m.name}`)))}let c={tasks:s};a&&(c.workspaceId=a);let l;try{let m=await fetch(`${o}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(c)});if(!m.ok){let N=await m.json().catch(()=>({}));console.error(B.red(` Import failed: ${m.status} ${N.error??m.statusText}`)),process.exitCode=1;return}l=await m.json()}catch(m){let N=m instanceof Error?m.message:String(m);console.error(B.red(` Network error: ${N}`)),process.exitCode=1;return}console.log(B.green(` \u2713 Pushed ${l.imported} task(s) to SaaS`)),l.skipped&&l.skipped>0&&console.log(B.dim(` Skipped ${l.skipped} already-imported task(s).`));let u=(await J())?.name??l.workspaceId;console.log(B.dim(` Board: ${u}`));let C=l.idMap??{},P=s.filter(m=>m.id&&C[m.id]).map(m=>({localId:m.id,remoteId:C[m.id]})),{uploaded:k,failed:w,failedFiles:_}=await Zr(o,i,r,P);if(k>0&&console.log(B.green(` \u2713 Uploaded ${k} file(s) to storage`)),w>0){console.log(B.yellow(` \u26A0 ${w} file(s) failed to upload`));for(let m of _)console.log(B.dim(` - ${m.name}: ${m.reason}`))}if(e.keepLocalFiles){console.log(B.dim(" Local task files kept (--keep-local-files)."));return}let L=0;for(let m of s)try{Vr(m.filePath),L++}catch{}console.log(B.dim(` Deleted ${L} local task file(s).`))}var eo="http://localhost:3000";function qe(){return process.env.SPOTA_API_URL??eo}var no={backlog:"backlog",todo:"todo","in-progress":"in_progress",review:"review",done:"done"},to={backlog:"backlog",todo:"todo",in_progress:"in-progress",review:"review",done:"done",cancelled:"done"};function pe(t){return to[t]??"todo"}function ro(t){return no[t]??"todo"}async function Ye(){let t=await Q();return t?{Authorization:`Bearer ${t}`}:null}async function Se(t){let e=await Ye();if(!e)return null;let r=new URL(`${qe()}/api/cli/tasks`);t&&r.searchParams.set("boardId",t);try{let i=await fetch(r.toString(),{headers:e});return i.ok?i.json():null}catch{return null}}async function St(t){let e=await Se();return e?e.tasks.find(r=>r.id===t)??null:null}async function mn(t,e){let r=await Ye();if(!r)return null;let i={};e.status!==void 0&&(i.status=ro(e.status)),e.title!==void 0&&(i.title=e.title),e.description!==void 0&&(i.description=e.description),e.priority!==void 0&&(i.priority=e.priority);try{let s=await fetch(`${qe()}/api/cli/tasks/${encodeURIComponent(t)}`,{method:"PATCH",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!s.ok)return null;let o=await s.json();return{task:o.task,warning:o.warning}}catch{return null}}async function Et(t,e){let r=await Ye();if(!r)return null;try{let i=await fetch(`${qe()}/api/cli/tasks/${encodeURIComponent(t)}/comments`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({body:e})});return i.ok?(await i.json()).comment:null}catch{return null}}async function Pt(t){let e=await Ye();if(!e)return null;try{let r=await fetch(`${qe()}/api/cli/tasks`,{method:"POST",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?(await r.json()).task:null}catch{return null}}import{readFileSync as hn,existsSync as vn,unlinkSync as yo}from"fs";import{resolve as V,join as Dt,basename as At}from"path";import n from"chalk";import{createHash as oo,randomUUID as ao}from"crypto";import{existsSync as io,readFileSync as so,writeFileSync as lo,mkdirSync as co}from"fs";import{join as It}from"path";import Tt from"os";import{PostHog as uo}from"posthog-node";var po="phc_C9AUV3rnayLfVvxgHtvj6AXcwsd8FKWUfJ9262zWsCvM",fo="https://eu.i.posthog.com";function _t(){return It(process.env.HOME??Tt.homedir(),".vibeflow")}function Rt(){return It(_t(),"config.json")}function Ke(){try{return JSON.parse(so(Rt(),"utf-8"))}catch{return{}}}function Nt(t){let e=_t();io(e)||co(e,{recursive:!0});let r=Ke();lo(Rt(),JSON.stringify({...r,...t},null,2),"utf-8")}function Lt(){return process.env.VIBEFLOW_TELEMETRY==="0"?!1:Ke().disabled!==!0}function gn(t){Nt({disabled:!t})}function Ft(){let t=Lt(),e=Ke();return{enabled:t,anonymousId:e.anonymousId??null}}function mo(){let t=Ke();if(t.anonymousId)return t.anonymousId;let e=ao();return Nt({anonymousId:e}),e}function go(){let t=Tt.userInfo().username;return oo("sha256").update(t).digest("hex").slice(0,16)}var Ne=null;function ho(){return Lt()?(Ne||(Ne=new uo(po,{host:fo,flushAt:1,flushInterval:0})),Ne):null}function ye(t,e){let r=ho();if(!r)return;let i=mo();r.capture({distinctId:i,event:t,properties:{...e,$user_id:go()}})}async function be(){if(Ne)try{await Ne.shutdown()}catch{}}function bo(t,e){let r=u=>u.replace(/[^0-9.]/g,"").split(".").map(Number),[i=0,s=0,o=0]=r(t),[a=0,c=0,l=0]=r(e);return i!==a?i>a:s!==c?s>c:o>l}function ko(){let t="0.2.0";if(!t)return;let e="@vibeflow-tools/cli";import("https").then(({default:r})=>{let i=r.get(`https://registry.npmjs.org/${encodeURIComponent(e)}/latest`,{timeout:5e3},s=>{let o="";s.on("data",a=>{o+=a.toString()}),s.on("end",()=>{try{let{version:a}=JSON.parse(o);a&&bo(a,t)&&(console.log(),console.log(n.bgYellow.black.bold(` \u2191 Update available: ${t} \u2192 ${a} `)),console.log(n.dim(" Run: ")+n.cyan(`npm install -g ${e}@${a}`)+n.dim(" to update")),console.log())}catch{}})});i.on("error",()=>{}),i.on("timeout",()=>{i.destroy()})}).catch(()=>{})}kt();var ke={backlog:n.gray,todo:n.yellow,"in-progress":n.blue,review:n.magenta,done:n.green},wo=new Set(["Task","Bug","Research"]);function xo(t){if(t){for(let e of wo)if(e.toLowerCase()===t.toLowerCase())return e}}function ge(t){let e=(t??"Medium").trim().toLowerCase();return e==="critical"?0:e==="high"?1:e==="low"?3:2}var Ot=["in-progress","review","todo","backlog","done"];function Qe(t){let e=Ot.indexOf(t);return e===-1?Ot.length:e}function Mt(t){try{return Ge("git",["push"],{cwd:t,stdio:"inherit"}),{ok:!0}}catch{try{let e=yn("git rev-parse --abbrev-ref HEAD",{cwd:t}).toString().trim();return Ge("git",["push","--set-upstream","origin",e],{cwd:t,stdio:"inherit"}),{ok:!0}}catch(e){return{ok:!1,error:(e instanceof Error?e.message:String(e)).slice(0,220)}}}}function Ee(t){let{autoCommit:e,autoPush:r,autoComment:i,createBranch:s}=t;if(console.log(n.bold("Agent instructions (concise):")),console.log(n.dim(" Discover: vibeflow tasks --status todo | vibeflow tasks --type Research | vibeflow tasks --user <email> | vibeflow tasks --tag <tag>")),console.log(n.dim(" Details: vibeflow tasks --get <id> (full task info with comments and files)")),console.log(n.dim(' Create: vibeflow tasks --add --title "..." --description "..."')),console.log(),console.log(n.dim(" Workflow:")),console.log(n.yellow(" \u26A0 IMMEDIATELY set in-progress BEFORE any implementation work:")),console.log(n.dim(" 1. vibeflow tasks --edit <id> --set-status in-progress \u2190 DO THIS FIRST")),console.log(n.dim(" 2. <implement the change>")),e){console.log(n.dim(" 3. git add <files> (stage your changes first)"));let o=["--set-status review"];e&&o.push('--commit-message "<one-line summary>"'),i&&o.push('--comment "<report>"'),console.log(n.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`)),console.log(n.dim(" CLI will commit staged changes and link the commit SHA automatically."))}else{console.log(n.dim(' 3. git add <files> && vibeflow tasks --commit --task <id> --message "<one-line summary>"'));let o=["--set-status review"];i&&o.push('--comment "<report>"'),console.log(n.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`))}i&&(console.log(n.dim("")),console.log(n.dim(" Comment format (--comment):")),console.log(n.dim(" \xB7 Plain text for concise one-liners.")),console.log(n.dim(" \xB7 Markdown for multi-section reports. Use **bold**, bullet lists, code fences.")),console.log(n.dim(" \xB7 Must cover: what changed, why, key decisions, anything future agents should know.")),console.log(n.dim(" \xB7 For long reports, attach a .md file and reference it in the comment."))),console.log(),e&&console.log(n.dim(" [setting] Auto-commit ON: provide --commit-message when setting status to review; CLI commits.")),r&&console.log(n.dim(" [setting] Auto-push ON: CLI pushes after the commit automatically.")),i&&console.log(n.dim(" [setting] Auto-comment ON: --comment is required when setting status to review.")),s&&(console.log(n.dim(" [setting] Create branch ON: after ALL tasks in this session are done, create and push a descriptive branch:")),console.log(n.dim(" git checkout -b <short-name> (e.g. fix/annotation-errors, feat/eye-toggle, chore/cleanup-extension)")),console.log(n.dim(" git push -u origin HEAD")),console.log(n.dim(" Branch name rules: lowercase, kebab-case, 2-5 words, prefix fix/feat/chore/docs.")),console.log(n.dim(" Describe the WORK done (not dates). Bad: agent/2026-04-16. Good: fix/bug-errors-visibility."))),t.hasResearchTasks&&(console.log(n.dim(" Research tasks: NEVER generate code \u2014 research only.")),console.log(n.dim(" Attach a .md report before marking Research tasks as review.")),console.log(n.dim(" CLI ENFORCES: cannot mark Research as review without an attached .md report.")),console.log(n.dim(" Use --report-file <path> to upload your .md report when marking as review:")),console.log(n.dim(' vibeflow tasks --edit <id> --set-status review --report-file ./report.md --comment "..."')),console.log(n.dim(" The file is uploaded to the task and deleted from the local filesystem automatically."))),t.hasBugTasks&&(console.log(n.dim(" Bug tasks: Include error logs / stack traces in the commit comment.")),console.log(n.dim(" Describe: the symptom, the console error, what triggered it, and how it was fixed."))),console.log(n.red(" CRITICAL: NEVER edit .vibeflow/ task files directly.")),console.log(n.dim(" All task operations (status, comments, commits) must go through CLI commands.")),console.log(n.red(" CRITICAL: Set in-progress BEFORE reading/planning. Other agents may pick the same task.")),console.log(n.dim(" The in-progress transition signals ownership. Skip it and another agent may duplicate your work.")),console.log(n.dim(" Sequence: discover tasks \u2192 pick one \u2192 set in-progress \u2192 THEN read details and implement.")),console.log(n.red(' CRITICAL: NEVER set a task status to "done".')),console.log(n.dim(' When your implementation is complete, set the status to "review" \u2014 not "done".')),console.log(n.dim(" Only humans can mark tasks as done after reviewing the work.")),console.log(n.dim(" The CLI will warn you and still allow the change \u2014 but agents must not use it.")),console.log()}var re=new vo;re.name("vibeflow").description("Vibeflow \u2014 CLI tool for frontend prototyping with LLM assistance").version("0.2.0");re.addHelpText("after",`
29410
+ <ul>${F}</ul></body></html>`)});for(let f of o){let _=s?`/${me(f)}`:"/";c.get(_,(F,q)=>{let M=br(f,"utf-8"),Y=P?In(M,P):M;q.type("html").send(Y)})}let k=o.map(f=>`/${me(f)}`);lt(c,s?k:[]),ct(c,a,C),ft(c,a,C),ut(c,a,C),dt(c,e.port),pt(c,e.port);let w=null;w=Xe(r,{onChange:f=>{let _=me(f);console.log(g.dim(` File changed: ${_}`)),C({type:"reload",file:_})}});let R=ie(a,".vibeflow","tasks"),L=Je(R,{onChanged:f=>{let _=Ce(f);C(_?{type:"task-changed",taskId:_.id,action:"update",task:_,source:"cli"}:{type:"tasks-updated"})},onDeleted:f=>{let _=me(f,".json");C({type:"task-deleted",taskId:_})}});return mt(c),new Promise((f,_)=>{let F=e.host??"localhost";l.listen(e.port,F,()=>{let M=`http://${F==="0.0.0.0"?st()??"localhost":F}:${e.port}`,Y=F==="0.0.0.0"?`http://localhost:${e.port}`:null,oe=g.dim(" "+"\u2500".repeat(62));console.log(),console.log(g.green(" \u2713 Vibeflow running")+g.dim(" \xB7 ")+g.cyan(M)),Y&&console.log(g.dim(" Local: ")+g.cyan(Y)),console.log(oe);for(let ae of o){let Le=s?`/${me(ae)}`:"/";console.log(g.dim(" File: ")+g.cyan(`${M}${Le}`)+g.dim(` (${me(ae)})`))}console.log(g.dim(" Kanban board: ")+g.cyan(`${M}/kanban`)),console.log(g.dim(" Task API: ")+g.cyan(`${M}/api/tasks`)),console.log(oe),console.log(g.bold.white(" INTEGRATE INTO YOUR APP")+g.dim(` (full guide: ${M}/inject)`)),console.log(g.dim(" 1. Add this script tag to your HTML:")),console.log(g.dim(" ")+g.yellow(`<script src="${M}/vibeflow-overlay.js" data-vibeflow-overlay></script>`)),console.log(g.dim(" 2. Reload your page \u2014 the overlay appears automatically.")),console.log(g.dim(" 3. Click anything to annotate it.")),console.log(),console.log(g.dim(" Press Ctrl+C to stop")),console.log(),e.open&&import("open").then(ae=>ae.default(M)).catch(()=>{}),f({url:M,close:async()=>{w&&await w.close(),await L.close(),u.close(),await new Promise(ae=>l.close(()=>ae()))}})}),l.on("error",_)})}async function ve(){return await Q()?"saas":"local"}import D from"chalk";import Dr from"open";import vt from"readline";import Ar from"@inquirer/select";import{existsSync as Or,readdirSync as yt,readFileSync as Mr}from"fs";import{join as fn}from"path";var Hr="http://localhost:3000",Ur=300*1e3;function bt(){return process.env.SPOTA_API_URL??Hr}async function Wr(t){return new Promise(e=>setTimeout(e,t))}async function jr(t){return t.length===1?(console.log(D.dim(` Using board: ${t[0].icon??""} ${t[0].name}`)),t[0]):await Ar({message:"Select a board to use:",choices:t.map(r=>({name:`${r.icon??""} ${r.name}`,value:r}))})}async function kt(t,e){try{let r=await fetch(`${t}/api/cli/settings`,{headers:{Authorization:`Bearer ${e}`}});if(!r.ok)return;let i=await r.json();i.settings&&Object.keys(i.settings).length>0&&zn({...i.settings,_settingsRefreshedAt:Date.now()})}catch{}}async function wt(){try{let t=await Q();if(!t)return;let r=an()._settingsRefreshedAt??0;if(Date.now()-r<Ur)return;let i=bt();kt(i,t)}catch{}}async function $r(t,e){try{let[r,i]=await Promise.all([fetch(`${t}/api/cli/workspaces`,{headers:{Authorization:`Bearer ${e}`}}),fetch(`${t}/api/cli/profile`,{headers:{Authorization:`Bearer ${e}`}})]);if(!r.ok)return;let s=await r.json();if(!s.workspaces?.length){console.log(D.yellow(" No boards found. Create a board in the web app first."));return}let o=i.ok?await i.json():null,a=await jr(s.workspaces);await Pn({...a,email:o?.email??null}),console.log(D.green(` Board set: ${a.icon??""} ${a.name}`)),console.log(D.dim(` Open at: ${a.url}`))}catch{}}async function zr(t,e,r){let i=fn(process.cwd(),".vibeflow","tasks");if(!Or(i))return;let s=[];try{for(let u of yt(i))if(!u.startsWith(".")){let C=fn(i,u);for(let P of yt(C).filter(k=>k.endsWith(".json")))s.push(fn(C,P))}}catch{return}if(s.length===0)return;let o=s.flatMap(u=>{try{return[JSON.parse(Mr(u,"utf-8"))]}catch{return[]}}),a=new Set;try{let u=await fetch(`${t}/api/cli/tasks?boardId=${r.id}`,{headers:{Authorization:`Bearer ${e}`}}).catch(()=>null);if(u?.ok){let C=await u.json();a=new Set((C.tasks??[]).flatMap(P=>[P.id,...P.cliId?[P.cliId]:[]]))}}catch{}let c=o.filter(u=>!a.has(u.id));if(c.length===0)return;console.log(),console.log(D.bold(` ${c.length} local task${c.length!==1?"s are":" is"} not yet synced to the board:`));let l=c.slice(0,10);for(let u of l){let C=u.status?D.dim(` [${u.status}]`):"";console.log(D.dim(` \u2022 ${u.title??u.id}${C}`))}return c.length>10&&console.log(D.dim(` \u2026 and ${c.length-10} more`)),new Promise(u=>{let C=vt.createInterface({input:process.stdin,output:process.stdout});C.question(D.cyan(`
29411
+ Push them to your board now? [Y/n]: `),async P=>{if(C.close(),P.trim().toLowerCase()==="n"){console.log(D.dim(" Skipped. You can push later with: vibeflow push")),u();return}let k=vt.createInterface({input:process.stdin,output:process.stdout});k.question(D.cyan(" Delete local task files after push? [y/N]: "),async w=>{k.close();let R=w.trim().toLowerCase()!=="y";try{let L=await fetch(`${t}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify({boardId:r.id,tasks:c,keepLocalFiles:R})}),f={};try{f=await L.json()}catch{}L.ok?(console.log(D.green(` \u2713 Pushed ${f.imported??0} task${(f.imported??0)!==1?"s":""} to ${r.name}`)),(f.skipped??0)>0&&console.log(D.dim(` (${f.skipped} already existed and were skipped)`))):console.log(D.red(` Push failed: ${f.error??`HTTP ${L.status}`}`))}catch(L){console.log(D.red(` Push failed: ${L instanceof Error?L.message:"Network error"}`))}u()})})})}async function Ve(){let t=bt();console.log(D.cyan(" Initiating device login flow..."));let e=await fetch(`${t}/api/cli/auth/device-init`,{method:"POST",headers:{"Content-Type":"application/json"}});e.ok||(console.error(D.red(` Failed to initiate login: ${e.status} ${e.statusText}`)),process.exit(1));let{deviceCode:r,userCode:i,verificationUrl:s,expiresIn:o}=await e.json();console.log(),console.log(D.bold(" Open this URL in your browser to authorize:")),console.log(D.underline(` ${s}`)),console.log();try{await Dr(s),console.log(D.dim(" (Browser opened automatically)"))}catch{}let a=Date.now()+o*1e3,c=3e3;for(;Date.now()<a;){await Wr(c);let l=await fetch(`${t}/api/cli/auth/device-poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:r})});if(!l.ok){console.error(D.red(" Poll request failed. Retrying..."));continue}let u=await l.json();if("token"in u){await Vn(u.token),console.log(),console.log(D.green(" Logged in successfully. Now operating in SaaS mode.")),await Promise.all([$r(t,u.token),kt(t,u.token)]);let{readWorkspace:C}=await import("./workspace-KGOQ67YV.js"),P=await C();P&&await zr(t,u.token,P);return}"expired"in u&&(console.error(D.red(" Device code expired. Please try again.")),process.exit(1)),process.stdout.write(D.dim("."))}console.error(D.red(`
29412
+ Login timed out. Please try again.`)),process.exit(1)}import Br from"chalk";async function xt(){await qn(),console.log(Br.green(" Logged out. Now operating in local mode."))}import B from"chalk";import{unlinkSync as Vr,readFileSync as qr,existsSync as Yr}from"fs";import{resolve as Kr,join as Qr}from"path";var Gr="http://localhost:3000";function Xr(){return process.env.SPOTA_API_URL??Gr}function Jr(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ct(t,e,r=24){let i=Math.round(t/e*r);return`[${"\u2588".repeat(i)+"\u2591".repeat(r-i)}]`}async function Zr(t,e,r,i){let s=[];for(let{localId:w,remoteId:R}of i){let L=ne(r,w);for(let f of L){let _=f.linkedPath??Qr(xn(r,w),f.name);Yr(_)&&s.push({remoteId:R,name:f.name,filePath:_,size:f.size})}}if(s.length===0)return{uploaded:0,failed:0,failedFiles:[]};let o=s.length,a=s.reduce((w,R)=>w+R.size,0);console.log(B.cyan(`
29413
+ Uploading ${o} file(s) (${Jr(a)})...`));let c=0,l=0,u=0,C=Date.now(),P=[];for(let w of s){let R=Math.round(c/o*100),L=Ct(c,o),f=(Date.now()-C)/1e3,_=u/Math.max(f,.01),F=a-u,q=_>0?Math.ceil(F/_):0,M=q>60?`${Math.ceil(q/60)}m`:`${q}s`;process.stdout.write(`\r ${L} ${R}% ${w.name.slice(0,28)} ETA: ${M} `);try{let Y=qr(w.filePath),oe=await fetch(`${t}/api/tasks/${encodeURIComponent(w.remoteId)}/files`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/octet-stream","x-filename":encodeURIComponent(w.name)},body:Y});oe.ok?(c++,u+=w.size):(l++,P.push({name:w.name,reason:`HTTP ${oe.status}`}))}catch(Y){l++,P.push({name:w.name,reason:Y instanceof Error?Y.message:String(Y)})}}let k=Ct(o,o);return process.stdout.write(`\r ${k} 100% Done${" ".repeat(40)}
29414
+ `),{uploaded:c,failed:l,failedFiles:P}}async function St(t,e){let r=Kr(t),i=await Q();if(!i&&(console.log(B.yellow(" Not logged in. Starting login flow...")),await Ve(),i=await Q(),!i)){console.error(B.red(" Login failed. Please run `vibeflow login` and try again.")),process.exitCode=1;return}let s=ce(r);if(s.length===0){console.log(B.dim(" No local tasks found. Nothing to push."));return}console.log(B.cyan(` Found ${s.length} local task(s). Pushing to SaaS...`));let o=Xr(),a=e.workspace;if(!a){let f=await J();f&&(a=f.id,console.log(B.dim(` Using board: ${f.icon??""} ${f.name}`)))}let c={tasks:s};a&&(c.workspaceId=a);let l;try{let f=await fetch(`${o}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(c)});if(!f.ok){let _=await f.json().catch(()=>({}));console.error(B.red(` Import failed: ${f.status} ${_.error??f.statusText}`)),process.exitCode=1;return}l=await f.json()}catch(f){let _=f instanceof Error?f.message:String(f);console.error(B.red(` Network error: ${_}`)),process.exitCode=1;return}console.log(B.green(` \u2713 Pushed ${l.imported} task(s) to SaaS`)),l.skipped&&l.skipped>0&&console.log(B.dim(` Skipped ${l.skipped} already-imported task(s).`));let u=(await J())?.name??l.workspaceId;console.log(B.dim(` Board: ${u}`));let C=l.idMap??{},P=s.filter(f=>f.id&&C[f.id]).map(f=>({localId:f.id,remoteId:C[f.id]})),{uploaded:k,failed:w,failedFiles:R}=await Zr(o,i,r,P);if(k>0&&console.log(B.green(` \u2713 Uploaded ${k} file(s) to storage`)),w>0){console.log(B.yellow(` \u26A0 ${w} file(s) failed to upload`));for(let f of R)console.log(B.dim(` - ${f.name}: ${f.reason}`))}if(e.keepLocalFiles){console.log(B.dim(" Local task files kept (--keep-local-files)."));return}let L=0;for(let f of s)try{Vr(f.filePath),L++}catch{}console.log(B.dim(` Deleted ${L} local task file(s).`))}var eo="http://localhost:3000";function qe(){return process.env.SPOTA_API_URL??eo}var no={backlog:"backlog",todo:"todo","in-progress":"in_progress",review:"review",done:"done"},to={backlog:"backlog",todo:"todo",in_progress:"in-progress",review:"review",done:"done",cancelled:"done"};function de(t){return to[t]??"todo"}function ro(t){return no[t]??"todo"}async function Ye(){let t=await Q();return t?{Authorization:`Bearer ${t}`}:null}async function Se(t){let e=await Ye();if(!e)return null;let r=new URL(`${qe()}/api/cli/tasks`);t&&r.searchParams.set("boardId",t);try{let i=await fetch(r.toString(),{headers:e});return i.ok?i.json():null}catch{return null}}async function Et(t){let e=await Se();return e?e.tasks.find(r=>r.id===t)??null:null}async function mn(t,e){let r=await Ye();if(!r)return null;let i={};e.status!==void 0&&(i.status=ro(e.status)),e.title!==void 0&&(i.title=e.title),e.description!==void 0&&(i.description=e.description),e.priority!==void 0&&(i.priority=e.priority);try{let s=await fetch(`${qe()}/api/cli/tasks/${encodeURIComponent(t)}`,{method:"PATCH",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!s.ok)return null;let o=await s.json();return{task:o.task,warning:o.warning}}catch{return null}}async function Pt(t,e){let r=await Ye();if(!r)return null;try{let i=await fetch(`${qe()}/api/cli/tasks/${encodeURIComponent(t)}/comments`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({body:e})});return i.ok?(await i.json()).comment:null}catch{return null}}async function It(t){let e=await Ye();if(!e)return null;try{let r=await fetch(`${qe()}/api/cli/tasks`,{method:"POST",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?(await r.json()).task:null}catch{return null}}import{readFileSync as hn,existsSync as vn,unlinkSync as yo}from"fs";import{resolve as V,join as At,basename as Ot}from"path";import n from"chalk";import{createHash as oo,randomUUID as ao}from"crypto";import{existsSync as io,readFileSync as so,writeFileSync as lo,mkdirSync as co}from"fs";import{join as Tt}from"path";import _t from"os";import{PostHog as uo}from"posthog-node";var po="phc_C9AUV3rnayLfVvxgHtvj6AXcwsd8FKWUfJ9262zWsCvM",fo="https://eu.i.posthog.com";function Rt(){return Tt(process.env.HOME??_t.homedir(),".vibeflow")}function Nt(){return Tt(Rt(),"config.json")}function Ke(){try{return JSON.parse(so(Nt(),"utf-8"))}catch{return{}}}function Lt(t){let e=Rt();io(e)||co(e,{recursive:!0});let r=Ke();lo(Nt(),JSON.stringify({...r,...t},null,2),"utf-8")}function Ft(){return process.env.VIBEFLOW_TELEMETRY==="0"?!1:Ke().disabled!==!0}function gn(t){Lt({disabled:!t})}function Dt(){let t=Ft(),e=Ke();return{enabled:t,anonymousId:e.anonymousId??null}}function mo(){let t=Ke();if(t.anonymousId)return t.anonymousId;let e=ao();return Lt({anonymousId:e}),e}function go(){let t=_t.userInfo().username;return oo("sha256").update(t).digest("hex").slice(0,16)}var Ne=null;function ho(){return Ft()?(Ne||(Ne=new uo(po,{host:fo,flushAt:1,flushInterval:0})),Ne):null}function ye(t,e){let r=ho();if(!r)return;let i=mo();r.capture({distinctId:i,event:t,properties:{...e,$user_id:go()}})}async function be(){if(Ne)try{await Ne.shutdown()}catch{}}function bo(t,e){let r=u=>u.replace(/[^0-9.]/g,"").split(".").map(Number),[i=0,s=0,o=0]=r(t),[a=0,c=0,l=0]=r(e);return i!==a?i>a:s!==c?s>c:o>l}function ko(){let t="0.4.0";if(!t)return;let e="@vibeflow-tools/cli";import("https").then(({default:r})=>{let i=r.get(`https://registry.npmjs.org/${encodeURIComponent(e)}/latest`,{timeout:5e3},s=>{let o="";s.on("data",a=>{o+=a.toString()}),s.on("end",()=>{try{let{version:a}=JSON.parse(o);a&&bo(a,t)&&(console.log(),console.log(n.bgYellow.black.bold(` \u2191 Update available: ${t} \u2192 ${a} `)),console.log(n.dim(" Run: ")+n.cyan(`npm install -g ${e}@${a}`)+n.dim(" to update")),console.log())}catch{}})});i.on("error",()=>{}),i.on("timeout",()=>{i.destroy()})}).catch(()=>{})}wt();var ke={backlog:n.gray,todo:n.yellow,"in-progress":n.blue,review:n.magenta,done:n.green},wo=new Set(["Task","Bug","Research"]);function xo(t){if(t){for(let e of wo)if(e.toLowerCase()===t.toLowerCase())return e}}function ge(t){let e=(t??"Medium").trim().toLowerCase();return e==="critical"?0:e==="high"?1:e==="low"?3:2}var Mt=["in-progress","review","todo","backlog","done"];function Qe(t){let e=Mt.indexOf(t);return e===-1?Mt.length:e}function Ht(t){try{return Ge("git",["push"],{cwd:t,stdio:"inherit"}),{ok:!0}}catch{try{let e=yn("git rev-parse --abbrev-ref HEAD",{cwd:t}).toString().trim();return Ge("git",["push","--set-upstream","origin",e],{cwd:t,stdio:"inherit"}),{ok:!0}}catch(e){return{ok:!1,error:(e instanceof Error?e.message:String(e)).slice(0,220)}}}}function Ee(t){let{autoCommit:e,autoPush:r,autoComment:i,createBranch:s}=t;if(console.log(n.bold("Agent instructions (concise):")),console.log(n.dim(" Discover: vibeflow tasks --status todo | vibeflow tasks --type Research | vibeflow tasks --user <email> | vibeflow tasks --tag <tag>")),console.log(n.dim(" Details: vibeflow tasks --get <id> (full task info with comments and files)")),console.log(n.dim(' Create: vibeflow tasks --add --title "..." --description "..."')),console.log(),console.log(n.dim(" Workflow:")),console.log(n.yellow(" \u26A0 IMMEDIATELY set in-progress BEFORE any implementation work:")),console.log(n.dim(" 1. vibeflow tasks --edit <id> --set-status in-progress \u2190 DO THIS FIRST")),console.log(n.dim(" 2. <implement the change>")),e){console.log(n.dim(" 3. git add <files> (stage your changes first)"));let o=["--set-status review"];e&&o.push('--commit-message "<one-line summary>"'),i&&o.push('--comment "<report>"'),console.log(n.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`)),console.log(n.dim(" CLI will commit staged changes and link the commit SHA automatically."))}else{console.log(n.dim(' 3. git add <files> && vibeflow tasks --commit --task <id> --message "<one-line summary>"'));let o=["--set-status review"];i&&o.push('--comment "<report>"'),console.log(n.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`))}i&&(console.log(n.dim("")),console.log(n.dim(" Comment format (--comment):")),console.log(n.dim(" \xB7 Plain text for concise one-liners.")),console.log(n.dim(" \xB7 Markdown for multi-section reports. Use **bold**, bullet lists, code fences.")),console.log(n.dim(" \xB7 Must cover: what changed, why, key decisions, anything future agents should know.")),console.log(n.dim(" \xB7 For long reports, attach a .md file and reference it in the comment."))),console.log(),e&&console.log(n.dim(" [setting] Auto-commit ON: provide --commit-message when setting status to review; CLI commits.")),r&&console.log(n.dim(" [setting] Auto-push ON: CLI pushes after the commit automatically.")),i&&console.log(n.dim(" [setting] Auto-comment ON: --comment is required when setting status to review.")),s&&(console.log(n.dim(" [setting] Create branch ON: after ALL tasks in this session are done, create and push a descriptive branch:")),console.log(n.dim(" git checkout -b <short-name> (e.g. fix/annotation-errors, feat/eye-toggle, chore/cleanup-extension)")),console.log(n.dim(" git push -u origin HEAD")),console.log(n.dim(" Branch name rules: lowercase, kebab-case, 2-5 words, prefix fix/feat/chore/docs.")),console.log(n.dim(" Describe the WORK done (not dates). Bad: agent/2026-04-16. Good: fix/bug-errors-visibility."))),t.hasResearchTasks&&(console.log(n.dim(" Research tasks: NEVER generate code \u2014 research only.")),console.log(n.dim(" Attach a .md report before marking Research tasks as review.")),console.log(n.dim(" CLI ENFORCES: cannot mark Research as review without an attached .md report.")),console.log(n.dim(" Use --report-file <path> to upload your .md report when marking as review:")),console.log(n.dim(' vibeflow tasks --edit <id> --set-status review --report-file ./report.md --comment "..."')),console.log(n.dim(" The file is uploaded to the task and deleted from the local filesystem automatically."))),t.hasBugTasks&&(console.log(n.dim(" Bug tasks: Include error logs / stack traces in the commit comment.")),console.log(n.dim(" Describe: the symptom, the console error, what triggered it, and how it was fixed."))),console.log(n.red(" CRITICAL: NEVER edit .vibeflow/ task files directly.")),console.log(n.dim(" All task operations (status, comments, commits) must go through CLI commands.")),console.log(n.red(" CRITICAL: Set in-progress BEFORE reading/planning. Other agents may pick the same task.")),console.log(n.dim(" The in-progress transition signals ownership. Skip it and another agent may duplicate your work.")),console.log(n.dim(" Sequence: discover tasks \u2192 pick one \u2192 set in-progress \u2192 THEN read details and implement.")),console.log(n.red(' CRITICAL: NEVER set a task status to "done".')),console.log(n.dim(' When your implementation is complete, set the status to "review" \u2014 not "done".')),console.log(n.dim(" Only humans can mark tasks as done after reviewing the work.")),console.log(n.dim(" The CLI will warn you and still allow the change \u2014 but agents must not use it.")),console.log()}var re=new vo;re.name("vibeflow").description("Vibeflow \u2014 CLI tool for frontend prototyping with LLM assistance").version("0.4.0");re.addHelpText("after",`
29406
29415
  ${"\u2500".repeat(60)}
29407
29416
  For coding agents \u2014 quick reference:
29408
29417
 
@@ -29434,20 +29443,20 @@ File attachments:
29434
29443
  <file binary body>
29435
29444
  List: GET /api/tasks/<id>/files
29436
29445
  Delete: DELETE /api/tasks/<id>/files/<filename>
29437
- `);re.command("serve").description("Serve HTML prototype(s) with live overlay, or start API-only task server for existing apps").argument("[target]","HTML file or directory of HTML files").option("-p, --port <port>","Port number","3700").option("--host <host>","Bind hostname (default: localhost; use 0.0.0.0 for LAN sharing)").option("--no-open","Do not open browser automatically").action(async(t,e)=>{ye("command_run",{command:"serve"}),await be(),await pn(t,{port:parseInt(e.port,10),host:e.host,open:e.open})});re.command("kanban").description("Start the Vibeflow server and open the live Kanban board in the browser").argument("[dir]","Project root directory",".").option("-p, --port <port>","Port number","3700").option("--host <host>","Bind hostname (default: localhost; use 0.0.0.0 for LAN sharing)").action(async(t,e)=>{ye("command_run",{command:"kanban"}),await be();let r=parseInt(e.port,10),s=(await pn(void 0,{port:r,host:e.host,open:!1,projectDir:V(t)})).url+"/kanban";console.log(),console.log(n.green(" \u2713 Kanban board ready")),console.log(n.dim(" ")+n.cyan(s)),console.log(),console.log(n.bold("Agent prompt:")),console.log(n.dim(" Get new tasks from `npx @vibeflow-tools/cli tasks --status todo` and implement them.")),console.log(),import("open").then(o=>o.default(s)).catch(()=>{console.log(n.dim(" Visit: ")+n.cyan(s))}),ko()});re.command("tasks").description("List or edit tasks in the project").argument("[dir]","Project root directory",".").option("--status <status>","Filter by status (backlog, todo, in-progress, review, done)").option("--type <type>","Filter by type (Task, Bug, Feature, Enhancement, Research)").option("--user <user>","Filter by exact task author email (case-insensitive)").option("--edit [task-id]","Edit a task by ID (LLM-friendly). Omit task-id to see usage instructions.").option("--add","Create a task (requires --title)").option("--title <title>","New title for the task (use with --edit)").option("--set-status <status>","New status: backlog | todo | in-progress | review | done (use with --edit)").option("--description <text>","New description for the task (use with --edit)").option("--json","Output machine-readable JSON").option("--commit","Commit staged changes and link the commit SHA to a task (use with --task)").option("--task <task-id>","Task ID to link with the commit (use with --commit)").option("--message <msg>","Commit message (use with --commit; task ID is appended automatically)").option("--comment <text>","Implementation report comment (required when setting status to review)").option("--commit-message <msg>","Commit message for auto-commit on review (required when auto-commit setting is ON)").option("--get <task-id>","Get full details of a single task by ID (supports partial ID prefix)").option("--next","Pick the next available todo task, move it to in-progress, and output it ready to work on").option("--tag <tag>","Filter by tag (can be specified multiple times for AND matching)",(t,e)=>[...e,t],[]).option("--report-file <path>","Path to a local .md file to upload as the research report (use with --set-status review on Research tasks; file is uploaded and deleted locally)").option("--limit <n>","Limit how many tasks are returned in list mode (default: 20; use 0 for unlimited)").action((t,e)=>{(async()=>{let r=e.add?"add":e.next?"next":e.edit?"edit":e.get?"get":"list";ye("command_run",{command:"tasks",subcommand:r});let i=["Task","Bug","Feature","Enhancement","Research"],s=p=>p.trim().toLowerCase(),o=(p,b)=>{let E=s(b);return E?s(p??"")===E:!0},a=p=>[...new Set(p.map(b=>b.author?.trim()).filter(b=>!!b))].sort((b,E)=>b.localeCompare(E)),c=p=>i.map(b=>b.toLowerCase()).includes(p.toLowerCase())?!0:(console.log(n.red(`\u2717 Invalid type filter: "${p}"`)),console.log(n.yellow(` Available types: ${i.join(" | ")}`)),console.log(n.dim(" Type filter is exact (example: --type Bug)")),process.exitCode=1,!1),l=(p,b)=>{let E=a(b);return E.length===0?(console.log(n.red("\u2717 Cannot filter by user: no task authors are available on this board.")),process.exitCode=1,!1):E.some(M=>o(M,p))?!0:(console.log(n.red(`\u2717 User not found: "${p}"`)),console.log(n.yellow(` Available users: ${E.join(" | ")}`)),console.log(n.dim(" User filter is exact email match (case-insensitive).")),process.exitCode=1,!1)};if(e.get){if(await ve()==="saas"){let y=await J(),x=await Se(y?.id);if(!x){console.log(n.red("\u2717 Unable to reach the online backend.")),process.exitCode=1;return}let v=x.tasks.find(U=>U.id===e.get||U.id.startsWith(e.get));if(!v){console.log(n.red(`\u2717 Task not found: ${e.get}`)),process.exitCode=1;return}let W=pe(v.status);if(e.json){console.log(JSON.stringify({...v,status:W},null,2));return}let D=ke[W]??n.white;if(console.log(` ${D(`[${W}]`)} ${n.bold(v.title)}`),console.log(n.dim(` id: ${v.id}`)),console.log(n.dim(" selector: /")),v.type&&console.log(n.dim(` type: ${v.type}`)),v.priority&&console.log(n.dim(` priority: ${v.priority}`)),console.log(n.dim(` created: ${v.createdAt}`)),v.description){console.log(n.dim(" description:"));for(let U of v.description.split(`
29438
- `))console.log(n.dim(` ${U}`))}v.annotatedElementText&&console.log(n.dim(` element text: ${v.annotatedElementText}`));let Y=[...v.comments??[]].sort((U,A)=>new Date(U.createdAt).getTime()-new Date(A.createdAt).getTime());if(Y.length>0){console.log(n.dim(` comments (${Y.length}):`));for(let U of Y){console.log(n.dim(` [${U.author??"agent"}] ${U.createdAt}`));for(let A of U.body.split(`
29439
- `))console.log(n.dim(` ${A}`))}}if(v.files&&v.files.length>0){console.log(n.dim(` linked files (${v.files.length}):`));for(let U of v.files){let A=U.url??`${process.env.SPOTA_API_URL??"http://localhost:3000"}/api/tasks/${v.id}/files/${encodeURIComponent(U.name)}`;if(console.log(n.dim(` - ${U.name} ${A}`)),U.content){console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let fe of U.content.split(`
29440
- `))console.log(n.dim(` \u2502 ${fe}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}}}let j=G(V(t)),le=(v.type??"").toLowerCase()==="research",Pe=(v.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:le,hasBugTasks:Pe,autoCommit:j.autoCommit,autoPush:j.autoPush,autoComment:j.autoComment,createBranch:j.createBranch});return}let b=V(t),E=Oe(b),S=ue(b).find(y=>y.id===e.get||y.id.startsWith(e.get));if(!S){console.log(n.red(`\u2717 Task not found: ${e.get}`)),console.log(n.dim(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}let h=te(b,S.id).sort((y,x)=>new Date(y.createdAt).getTime()-new Date(x.createdAt).getTime()),f=ne(b,S.id).map(y=>({...y,url:`http://localhost:${E.port}${y.url}`})),d=Ae(S,h,f);if(e.json){console.log(JSON.stringify({...S,comments:h,files:f},null,2));return}let R=ke[S.status]??n.white;if(console.log(` ${R(`[${d.status}]`)} ${n.bold(d.title)}`),console.log(n.dim(` id: ${d.id}`)),console.log(n.dim(` file: ${S.filePath}`)),d.file&&console.log(n.dim(` source: ${d.file}${d.line!=null?`:${d.line}`:""}${d.col!=null?`:${d.col}`:""}`)),d.component&&console.log(n.dim(` component: ${d.component}`)),console.log(n.dim(` selector: ${d.selector}`)),S.cssSelector&&console.log(n.dim(` css: ${S.cssSelector}`)),d.url&&console.log(n.dim(` url: ${d.url}`)),S.commits&&S.commits.length>0)if(S.commits.length===1)console.log(n.dim(` commit: ${S.commits[0].sha}`));else{console.log(n.dim(` commits (${S.commits.length}):`));for(let y of S.commits)console.log(n.dim(` ${y.sha.slice(0,8)} ${y.timestamp} ${y.message.slice(0,60)}`))}if(console.log(n.dim(` created: ${d.created}`)),S.type&&console.log(n.dim(` type: ${S.type}`)),S.priority&&console.log(n.dim(` priority: ${S.priority}`)),S.author&&console.log(n.dim(` author: ${S.author}`)),d.description){console.log(n.dim(" description:"));for(let y of d.description.split(`
29441
- `))console.log(n.dim(` ${y}`))}if(S.annotatedElementText&&console.log(n.dim(` element text: ${S.annotatedElementText}`)),h.length>0){console.log(n.dim(` comments (${h.length}):`));for(let y of h){let x=y.updatedAt?` (edited ${y.updatedAt})`:"";console.log(n.dim(` [${y.author??"user"}] ${y.createdAt}${x}`));for(let v of y.text.split(`
29442
- `))console.log(n.dim(` ${v}`))}}if(f.length>0){console.log(n.dim(` linked files (${f.length}):`));for(let y of f){let x=y.linkedPath??Dt(b,".vibeflow","files",S.id,y.name);if(console.log(n.dim(` - ${y.name} ${y.url}`)),/\.(md|txt)$/i.test(y.name)&&y.size<1e5&&vn(x))try{let v=hn(x,"utf-8");console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let W of v.split(`
29443
- `))console.log(n.dim(` \u2502 ${W}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}catch{}}}let T=G(b),$=(S.type??"").toLowerCase()==="research",X=(S.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:$,hasBugTasks:X,autoCommit:T.autoCommit,autoPush:T.autoPush,autoComment:T.autoComment,createBranch:T.createBranch});return}if(e.next){if(await ve()==="saas"){let x=await J(),v=await Se(x?.id);if(!v){console.log(n.red("\u2717 Unable to reach the online backend.")),process.exitCode=1;return}let W=v.tasks.map(A=>({...A,status:pe(A.status)})).filter(A=>A.status==="todo").sort((A,fe)=>{let Fe=ge(A.priority??void 0)-ge(fe.priority??void 0);return Fe!==0?Fe:new Date(A.createdAt).getTime()-new Date(fe.createdAt).getTime()});if(W.length===0){console.log(n.dim("No todo tasks found. Nothing to work on."));return}let D=W[0];if(!await mn(D.id,{status:"in-progress"})){console.log(n.red(`\u2717 Failed to move task to in-progress: ${D.id}`)),process.exitCode=1;return}if(e.json){console.log(JSON.stringify({...D,status:"in-progress"},null,2));return}let j=G(V(t)),le=(D.type??"").toLowerCase()==="research",Pe=(D.type??"").toLowerCase()==="bug";if(Ee({hasResearchTasks:le,hasBugTasks:Pe,autoCommit:j.autoCommit,autoPush:j.autoPush,autoComment:j.autoComment,createBranch:j.createBranch}),console.log(n.green.bold("\u25B6 NEXT TASK \u2014 Status moved to in-progress. Implement this now:")),console.log(),console.log(` ${n.blue("[in-progress]")} ${n.bold(D.title)}`),console.log(n.dim(` id: ${D.id}`)),D.type&&console.log(n.dim(` type: ${D.type}`)),D.priority&&console.log(n.dim(` priority: ${D.priority}`)),console.log(n.dim(` created: ${D.createdAt}`)),D.description){console.log(n.dim(" description:"));for(let A of D.description.split(`
29444
- `))console.log(n.dim(` ${A}`))}let U=[...D.comments??[]].sort((A,fe)=>new Date(A.createdAt).getTime()-new Date(fe.createdAt).getTime());if(U.length>0){console.log(n.dim(` comments (${U.length}):`));for(let A of U){let fe=A.authorId?`user:${A.authorId.slice(0,8)}`:"agent";console.log(n.dim(` [${fe}] ${A.createdAt}`));for(let Fe of A.body.split(`
29445
- `))console.log(n.dim(` ${Fe}`))}}console.log(),console.log(n.yellow(" \u26A1 This task is already in-progress. Implement it now and mark as review when done."));return}let b=V(t),M=ue(b).filter(x=>x.status==="todo").sort((x,v)=>{let W=ge(x.priority)-ge(v.priority);return W!==0?W:new Date(x.created).getTime()-new Date(v.created).getTime()});if(M.length===0){console.log(n.dim("No todo tasks found. Nothing to work on."));return}let S=M[0],h=z(b,S.id,{status:"in-progress"});if(!h){console.log(n.red(`\u2717 Failed to update task: ${S.id}`)),process.exitCode=1;return}if(e.json){console.log(JSON.stringify({...h,filePath:S.filePath},null,2));return}let f=G(b),d=(h.type??"").toLowerCase()==="research",R=(h.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:d,hasBugTasks:R,autoCommit:f.autoCommit,autoPush:f.autoPush,autoComment:f.autoComment,createBranch:f.createBranch});let T=Oe(b),$=te(b,h.id).sort((x,v)=>new Date(x.createdAt).getTime()-new Date(v.createdAt).getTime()),X=ne(b,h.id).map(x=>({...x,url:`http://localhost:${T.port}${x.url}`})),y=Ae(h,$,X);if(console.log(n.green.bold("\u25B6 NEXT TASK \u2014 Status moved to in-progress. Implement this now:")),console.log(),console.log(` ${n.blue("[in-progress]")} ${n.bold(y.title)}`),console.log(n.dim(` id: ${y.id}`)),console.log(n.dim(` file: ${S.filePath}`)),y.file&&console.log(n.dim(` source: ${y.file}${y.line!=null?`:${y.line}`:""}${y.col!=null?`:${y.col}`:""}`)),y.component&&console.log(n.dim(` component: ${y.component}`)),console.log(n.dim(` selector: ${y.selector}`)),h.cssSelector&&console.log(n.dim(` css: ${h.cssSelector}`)),y.url&&console.log(n.dim(` url: ${y.url}`)),console.log(n.dim(` created: ${y.created}`)),y.type&&console.log(n.dim(` type: ${y.type}`)),y.priority&&console.log(n.dim(` priority: ${y.priority}`)),y.description){console.log(n.dim(" description:"));for(let x of y.description.split(`
29446
- `))console.log(n.dim(` ${x}`))}if(y.structuredComments&&y.structuredComments.length>0){console.log(n.dim(` comments (${y.structuredComments.length}):`));for(let x of y.structuredComments){let v=x.updatedAt?` (edited ${x.updatedAt})`:"";console.log(n.dim(` [${x.author??"agent"}] ${x.createdAt}${v}`));for(let W of x.text.split(`
29447
- `))console.log(n.dim(` ${W}`))}}if(y.linkedFiles&&y.linkedFiles.length>0){console.log(n.dim(` linked files (${y.linkedFiles.length}):`));for(let x of y.linkedFiles)console.log(n.dim(` - ${x.name} ${x.url}`))}console.log(),console.log(n.yellow(" \u26A1 This task is already in-progress. Implement it now and mark as review when done."));return}if(e.add){if(!e.title?.trim()){console.log(n.red("\u2717 --title is required with --add")),console.log(n.dim(' Example: vibeflow tasks --add --title "Fix CTA spacing" --description "Button overflows on mobile"')),process.exitCode=1;return}if(await ve()==="saas"){let h=await J(),d=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",R=kn(),T=await Pt({id:R,title:e.title.trim(),description:e.description?.trim(),status:d,boardId:h?.id});if(!T){console.log(n.red("\u2717 Failed to create task in online board.")),console.log(n.yellow(" Check your connection or run 'vibeflow login'.")),process.exitCode=1;return}e.json?console.log(JSON.stringify(T,null,2)):(console.log(n.green(`\u2713 Task created: ${T.title}`)),console.log(n.dim(` id: ${T.id} | status: ${pe(T.status)}`)));return}let b=V(t);Te(b);let M=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",S=xe(b,{title:e.title.trim(),description:e.description?.trim()??"",status:M,selector:"/"});e.json?console.log(JSON.stringify(S,null,2)):(console.log(n.green(`\u2713 Task created: ${S.title}`)),console.log(n.dim(` id: ${S.id} | status: ${S.status}`)));return}if(e.commit){if(!e.task){console.log(n.red("\u2717 --task <task-id> is required with --commit")),console.log(n.dim(' Example: vibeflow tasks --commit --task abc12345 --message "fix button alignment"')),process.exitCode=1;return}let p=V(t),E=ee(p).find(h=>h.id===e.task||h.id.startsWith(e.task));if(!E){console.log(n.red(`\u2717 Task not found: ${e.task}`)),console.log(n.dim(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}let M=e.message?.trim()||E.title;(E.type??"").toLowerCase()==="research"&&(console.log(n.yellow("\u26A0 WARNING: This is a Research task. Research tasks must NOT produce code changes.")),console.log(n.yellow(" Only commit research report files (.md). Do not commit code changes.")),console.log());let S=`${M} [proto:${E.id}]`;try{Ge("git",["commit","-m",S],{cwd:p,stdio:"inherit"});let h=yn("git rev-parse HEAD",{cwd:p}).toString().trim(),f={sha:h,message:M,timestamp:new Date().toISOString()},d=E.commits??[];if(z(p,E.id,{commits:[...d,f]}),console.log(n.green(`\u2713 Committed and linked to task: ${E.title}`)),console.log(n.dim(` commit: ${h}`)),console.log(n.dim(` proto: ${E.id}`)),G(p).autoPush){console.log(n.dim(" auto-push: pushing commit to remote..."));let T=Mt(p);T.ok?console.log(n.green("\u2713 Auto-push complete")):(console.log(n.yellow("\u26A0 Auto-push failed. Commit is local; run 'git push' manually.")),T.error&&console.log(n.dim(` reason: ${T.error}`)))}}catch{console.log(n.red("\u2717 git commit failed \u2014 ensure changes are staged with 'git add'")),process.exitCode=1}return}if(e.edit!==void 0){let p=typeof e.edit=="string"?e.edit:void 0,b=e.title||e.setStatus||e.description;if(!p||!b){if(e.type&&!c(e.type))return;let f=ee(t);if(e.status&&(f=f.filter(d=>d.status===e.status)),e.type&&(f=f.filter(d=>(d.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,f))return;if(e.user&&(f=f.filter(d=>o(d.author,e.user))),e.tag&&e.tag.length>0&&(f=f.filter(d=>e.tag.every(R=>(d.tags??[]).includes(R)))),console.log(n.bold("vibeflow tasks --edit \u2014 LLM Usage Instructions")),console.log(),console.log("Edit a task:"),console.log(n.cyan(' vibeflow tasks [dir] --edit <task-id> [--title "new title"] [--set-status backlog|todo|in-progress|review|done] [--description "new description"]')),console.log(),console.log("Examples:"),console.log(n.dim(" vibeflow tasks --edit abc12345 --set-status done")),console.log(n.dim(" vibeflow tasks --edit abc12345 --set-status in-progress")),console.log(n.dim(' vibeflow tasks --edit abc12345 --title "Updated title" --description "More detail"')),console.log(),f.length===0)console.log(n.dim("No tasks found."));else{console.log("Available tasks:");for(let d of f){let R=ke[d.status]??n.white;console.log(` ${R(`[${d.status}]`)} ${n.bold(d.id)} \u2014 ${d.title}`)}}return}let E=["backlog","todo","in-progress","review","done"];if(e.setStatus==="done"&&(console.log(n.yellow('\u26A0 WARNING: Agents should NEVER set a task status to "done".')),console.log(n.yellow(" Only humans should mark tasks as done after reviewing.")),console.log(n.dim(" If you are an agent, use --set-status review instead.")),console.log()),e.setStatus&&!E.includes(e.setStatus)){console.log(n.red(`\u2717 Invalid status: "${e.setStatus}"`)),console.log(n.yellow(` Valid statuses: ${E.join(" | ")}`)),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status in-progress`)),process.exitCode=1;return}if(e.setStatus==="review"&&!e.comment?.trim()){console.log(n.red("\u2717 --comment is required when setting status to review")),console.log(n.dim(" Provide a concise implementation report explaining:")),console.log(n.dim(" \xB7 what was changed and why")),console.log(n.dim(" \xB7 key decisions and trade-offs")),console.log(n.dim(" \xB7 anything future agents should know")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --comment "Implemented X by doing Y. Key decision: Z."`)),process.exitCode=1;return}let M=await ve();if(e.setStatus==="review"){let f=V(t),d=G(f);if(d.autoComment&&!e.comment?.trim()){console.log(n.red("\u2717 --comment is required (auto-comment setting is ON)")),console.log(n.dim(" Provide: what changed, why, key decisions, anything future agents should know.")),console.log(n.dim(" Plain text for short notes; Markdown for multi-section reports.")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --comment "Implemented X by doing Y."`)),process.exitCode=1;return}if(d.autoCommit&&!e.commitMessage?.trim()){console.log(n.red("\u2717 --commit-message is required (auto-commit setting is ON)")),console.log(n.dim(" Stage your changes first, then provide a one-line commit summary.")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --commit-message "fix: add hover effect" --comment "..."`)),process.exitCode=1;return}}if(M==="saas"){let f={};if(e.setStatus&&(f.status=e.setStatus),e.title&&(f.title=e.title),e.description&&(f.description=e.description),e.setStatus==="in-progress"){let R=await St(p);if(R&&pe(R.status)==="in-progress"){let T=R.author??"another user";console.log(n.yellow(`\u26A0 Task is already in-progress (last updated by: ${T})`)),console.log(n.yellow(" Another agent or user may be working on this task.")),console.log(n.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}let d=await mn(p,f);if(!d){console.log(n.red(`\u2717 Failed to update task: ${p}`)),console.log(n.yellow(" Ensure you are connected and the task ID exists in the online board.")),process.exitCode=1;return}d.warning&&console.log(n.yellow(`\u26A0 Server warning: ${d.warning}`)),e.setStatus==="review"&&e.comment?.trim()&&await Et(p,e.comment.trim())&&console.log(n.dim(" comment: added")),console.log(n.green(`\u2713 Task updated: ${d.task.title}`)),console.log(n.dim(` id: ${d.task.id} | status: ${pe(d.task.status)}`));return}let S={};if(e.title&&(S.title=e.title),e.setStatus&&(S.status=e.setStatus),e.description&&(S.description=e.description),e.setStatus==="in-progress"){let f=V(t),R=ee(f).find(T=>T.id===p||T.id.startsWith(p));if(R&&((R.type??"").toLowerCase()==="research"&&(console.log(n.yellow("\u26A0 WARNING: This is a Research task. Policy: do NOT implement code.")),console.log(n.yellow(" Research only \u2014 attach a .md report file, leave a summary comment, mark as review.")),console.log()),R.status==="in-progress")){let T=R.updated?new Date(R.updated).toLocaleString():"unknown",$=R.author??"another user";console.log(n.yellow(`\u26A0 Task is already in-progress (author: ${$}, last updated: ${T})`)),console.log(n.yellow(" Another agent or user may be working on this task.")),console.log(n.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}if(e.setStatus==="review"){let f=V(t),R=ee(f).find(T=>T.id===p||T.id.startsWith(p));if(R&&(R.type??"").toLowerCase()==="research"){if(e.reportFile){let T=V(e.reportFile);if(!vn(T)){console.log(n.red(`\u2717 Report file not found: ${T}`)),process.exitCode=1;return}if(!/\.md$/i.test(T)){console.log(n.red("\u2717 Report file must be a Markdown (.md) file")),process.exitCode=1;return}let $=hn(T),{saveFile:X}=await import("./files-3RDDXUOS.js");X(f,R.id,At(T),$),yo(T),console.log(n.green(`\u2713 Report uploaded: ${At(T)} (local file removed)`))}else if(!ne(f,R.id).some(X=>/\.md$/i.test(X.name))){console.log(n.red("\u2717 Cannot mark Research task as review: no .md report file attached.")),console.log(n.dim(" Provide a research report:")),console.log(n.dim(` vibeflow tasks --edit ${p} --set-status review --report-file ./my-research.md --comment "..."`)),process.exitCode=1;return}}}let h=z(t,p,S);if(!h){console.log(n.red(`\u2717 Task not found: ${p}`)),console.log(n.yellow(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}if(e.setStatus==="review"&&e.comment?.trim()&&(he(V(t),p,"agent",e.comment.trim()),console.log(n.dim(" comment: added"))),console.log(n.green(`\u2713 Task updated: ${h.title}`)),console.log(n.dim(` id: ${h.id} | status: ${h.status}`)),e.setStatus==="review"){let f=V(t),d=G(f);if(d.autoCommit&&e.commitMessage?.trim()){let T=ee(f).find($=>$.id===p||$.id.startsWith(p));if(T){let $=`${e.commitMessage.trim()} [proto:${T.id}]`;try{Ge("git",["commit","-m",$],{cwd:f,stdio:"inherit"});let X=yn("git rev-parse HEAD",{cwd:f}).toString().trim(),y={sha:X,message:e.commitMessage.trim(),timestamp:new Date().toISOString()},x=T.commits??[];if(z(f,T.id,{commits:[...x,y]}),console.log(n.green(`\u2713 Committed: ${$}`)),console.log(n.dim(` sha: ${X}`)),d.autoPush){console.log(n.dim(" pushing..."));let v=Mt(f);v.ok?console.log(n.green("\u2713 Pushed")):(console.log(n.yellow("\u26A0 Push failed. Run 'git push' manually.")),v.error&&console.log(n.dim(` reason: ${v.error}`)))}}catch{console.log(n.red("\u2717 git commit failed \u2014 ensure changes are staged with 'git add'")),process.exitCode=1}}}}return}let u=["backlog","todo","in-progress","review","done"];if(e.status&&!u.includes(e.status)){console.log(n.red(`\u2717 Invalid status filter: "${e.status}"`)),console.log(n.yellow(` Valid statuses: ${u.join(" | ")}`)),console.log(n.dim(" Example: vibeflow tasks --status todo")),process.exitCode=1;return}if(e.type&&!c(e.type))return;if(await ve()==="saas"){let p=await J(),b=await Se(p?.id);if(!b){console.log(n.red("\u2717 Unable to reach the online backend.")),console.log(n.yellow(" Check your connection or run 'vibeflow login' if your session expired.")),process.exitCode=1;return}let E=b.tasks.map(d=>({...d,status:pe(d.status)}));if(e.status&&(E=E.filter(d=>d.status===e.status)),e.type&&(E=E.filter(d=>(d.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,E))return;e.user&&(E=E.filter(d=>o(d.author,e.user))),e.tag&&e.tag.length>0&&(E=E.filter(d=>e.tag.every(R=>(d.tags??[]).includes(R))));let M=e.limit!==void 0?parseInt(e.limit,10):20;if(!isNaN(M)&&M>0&&(E=E.slice(0,M)),e.json){console.log(JSON.stringify(E,null,2));return}let S=E.some(d=>(d.type??"").toLowerCase()==="research"),h=E.some(d=>(d.type??"").toLowerCase()==="bug"),f=G(V(t));if(Ee({hasResearchTasks:S,hasBugTasks:h,autoCommit:f.autoCommit,autoPush:f.autoPush,autoComment:f.autoComment,createBranch:f.createBranch}),E.length===0)console.log(n.dim("No tasks found."));else{E=E.sort((x,v)=>{let W=Qe(x.status)-Qe(v.status);if(W!==0)return W;let D=ge(x.priority??void 0)-ge(v.priority??void 0);return D!==0?D:new Date(v.updatedAt).getTime()-new Date(x.updatedAt).getTime()});for(let[x,v]of E.entries()){let W=ke[v.status]??n.white,D=xo(v.type);if(console.log(` ${n.dim(`${x+1}.`)} ${W(`[${v.status}]`)} ${v.title}`),console.log(n.dim(` id: ${v.id}`)),console.log(n.dim(" selector: /")),D&&console.log(n.dim(` type: ${D}`)),v.priority&&console.log(n.dim(` priority: ${v.priority}`)),console.log(n.dim(` created: ${v.createdAt}`)),v.description){console.log(n.dim(" description:"));for(let Y of v.description.split(`
29448
- `))console.log(n.dim(` ${Y}`))}if(v.comments&&v.comments.length>0){let Y=[...v.comments].sort((j,le)=>new Date(j.createdAt).getTime()-new Date(le.createdAt).getTime());console.log(n.dim(` comments (${Y.length}):`));for(let j of Y){let le=j.authorId?`user:${j.authorId.slice(0,8)}`:"agent";console.log(n.dim(` [${le}] ${j.createdAt}`));for(let Pe of j.body.split(`
29449
- `))console.log(n.dim(` ${Pe}`))}}if(v.files&&v.files.length>0){console.log(n.dim(` linked files (${v.files.length}):`));for(let Y of v.files){let j=Y.url??`${process.env.SPOTA_API_URL??"http://localhost:3000"}/api/tasks/${v.id}/files/${encodeURIComponent(Y.name)}`;if(console.log(n.dim(` - ${Y.name} ${j}`)),Y.content){console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let le of Y.content.split(`
29450
- `))console.log(n.dim(` \u2502 ${le}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}}}console.log()}let d=b.tasks.map(x=>({...x,status:pe(x.status)})),R=d.filter(x=>x.status==="backlog").length,T=d.filter(x=>x.status==="todo").length,$=d.filter(x=>x.status==="in-progress").length,X=d.filter(x=>x.status==="review").length,y=d.filter(x=>x.status==="done").length;console.log(n.dim(` Total: ${d.length} | Backlog: ${R} | Todo: ${T} | In Progress: ${$} | Review: ${X} | Done: ${y}`))}return}let P=ue(t);if(e.user&&!l(e.user,P))return;let k=e.status?P.filter(p=>p.status===e.status):P;e.type&&(k=k.filter(p=>(p.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&(k=k.filter(p=>o(p.author,e.user))),e.tag&&e.tag.length>0&&(k=k.filter(p=>e.tag.every(b=>(p.tags??[]).includes(b))));let w=e.limit!==void 0?parseInt(e.limit,10):20;if(e.json){console.log(JSON.stringify(k,null,2));return}k=k.sort((p,b)=>{let E=Qe(p.status)-Qe(b.status);if(E!==0)return E;let M=ge(p.priority)-ge(b.priority);if(M!==0)return M;let S=new Date(p.updated??p.created).getTime(),h=new Date(b.updated??b.created).getTime();return S!==h?h-S:p.id.localeCompare(b.id)});let _=k.length;if(!isNaN(w)&&w>0&&(k=k.slice(0,w)),k.length===0){console.log(n.dim("No tasks found."));return}let L=V(t),m=k.some(p=>(p.type??"").toLowerCase()==="research"),N=k.some(p=>(p.type??"").toLowerCase()==="bug"),H=G(L);Ee({hasResearchTasks:m,hasBugTasks:N,autoCommit:H.autoCommit,autoPush:H.autoPush,autoComment:H.autoComment,createBranch:H.createBranch});let K=Oe(L);for(let[p,b]of k.entries()){let E=ke[b.status]??n.white,M=te(L,b.id).sort((f,d)=>new Date(f.createdAt).getTime()-new Date(d.createdAt).getTime()),S=ne(L,b.id).map(f=>({...f,url:`http://localhost:${K.port}${f.url}`})),h=Ae(b,M,S);if(console.log(` ${n.dim(`${p+1}.`)} ${E(`[${h.status}]`)} ${h.title}`),console.log(n.dim(` id: ${h.id}`)),console.log(n.dim(` file: ${b.filePath}`)),h.file&&console.log(n.dim(` source: ${h.file}${h.line!=null?`:${h.line}`:""}${h.col!=null?`:${h.col}`:""}`)),h.component&&console.log(n.dim(` component: ${h.component}`)),console.log(n.dim(` selector: ${h.selector}`)),b.cssSelector&&console.log(n.dim(` css: ${b.cssSelector}`)),h.url&&console.log(n.dim(` url: ${h.url}`)),b.screenshot&&console.log(n.dim(` screenshot: http://localhost:${K.port}/screenshots/${b.screenshot}`)),b.commits&&b.commits.length>0)if(b.commits.length===1)console.log(n.dim(` commit: ${b.commits[0].sha}`));else{console.log(n.dim(` commits (${b.commits.length}):`));for(let f of b.commits)console.log(n.dim(` ${f.sha.slice(0,8)} ${f.timestamp} ${f.message.slice(0,60)}`))}if(console.log(n.dim(` created: ${h.created}`)),h.type&&console.log(n.dim(` type: ${h.type}`)),h.priority&&console.log(n.dim(` priority: ${h.priority}`)),h.description){console.log(n.dim(" description:"));for(let f of h.description.split(`
29451
- `))console.log(n.dim(` ${f}`))}if(h.structuredComments&&h.structuredComments.length>0){console.log(n.dim(` comments (${h.structuredComments.length}):`));for(let f of h.structuredComments){let d=f.updatedAt?` (edited ${f.updatedAt})`:"";console.log(n.dim(` [${f.author??"agent"}] ${f.createdAt}${d}`));for(let R of f.text.split(`
29452
- `))console.log(n.dim(` ${R}`))}}if(h.linkedFiles&&h.linkedFiles.length>0){console.log(n.dim(` linked files (${h.linkedFiles.length}):`));for(let f of h.linkedFiles){let d=f.linkedPath??Dt(L,".vibeflow","files",b.id,f.name);if(console.log(n.dim(` - ${f.name} ${f.url}`)),/\.(md|txt)$/i.test(f.name)&&f.size<1e5&&vn(d))try{let R=hn(d,"utf-8");console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let T of R.split(`
29453
- `))console.log(n.dim(` \u2502 ${T}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}catch{}}}console.log()}let O=P.filter(p=>p.status==="backlog").length,q=P.filter(p=>p.status==="todo").length,ie=P.filter(p=>p.status==="in-progress").length,se=P.filter(p=>p.status==="review").length,oe=P.filter(p=>p.status==="done").length,Le=!isNaN(w)&&w>0&&_>w?n.yellow(` (showing ${w} of ${_} matching \u2014 use --limit 0 for all)`):"";console.log(n.dim(` Total: ${P.length} | Backlog: ${O} | Todo: ${q} | In Progress: ${ie} | Review: ${se} | Done: ${oe}`)+Le),await be()})()});re.command("login",{hidden:!0}).description("Authenticate CLI against the Vibeflow SaaS backend (device flow)").action(async()=>{ye("command_run",{command:"login"}),await be(),await Ve()});re.command("logout",{hidden:!0}).description("Remove stored auth token and switch to local mode").action(async()=>{ye("command_run",{command:"logout"}),await be(),await wt()});re.command("status",{hidden:!0}).description("Show login status, connection info, and task statistics").action(async()=>{if(await ve()==="local"){console.log(n.yellow("\u25CF Not logged in")+n.dim(" (local mode)")),console.log(n.dim(" Run ")+n.cyan("vibeflow login")+n.dim(" to connect to the Vibeflow cloud.")),console.log();let o=V("."),a=ue(o);if(a.length>0){let c=a.reduce((l,u)=>(l[u.status]=(l[u.status]??0)+1,l),{});console.log(n.bold(" Local task statistics:"));for(let[l,u]of Object.entries(c)){let C=ke[l]??n.white;console.log(` ${C(l.padEnd(12))} ${u}`)}console.log(n.dim(` ${"total".padEnd(12)} ${a.length}`))}else console.log(n.dim(" No local tasks found."));return}let e=await J();console.log(n.green("\u25CF Online")+n.dim(" (SaaS mode)")),e&&(console.log(n.dim(` Board: ${e.icon?e.icon+" ":""}${e.name}`)),e.email&&console.log(n.dim(` Email: ${e.email}`)),console.log(n.dim(" URL: ")+n.cyan(e.url))),console.log();let r=await Se(e?.id);if(!r){console.log(n.yellow(" \u26A0 Could not reach SaaS backend. Check your connection."));return}let i=r.tasks.map(o=>({...o,status:pe(o.status)}));if(i.length===0){console.log(n.dim(" No tasks found."));return}let s=i.reduce((o,a)=>(o[a.status]=(o[a.status]??0)+1,o),{});console.log(n.bold(" Task statistics:"));for(let[o,a]of Object.entries(s)){let c=ke[o]??n.white;console.log(` ${c(o.padEnd(12))} ${a}`)}console.log(n.dim(` ${"total".padEnd(12)} ${i.length}`))});re.command("push",{hidden:!0}).description("Push all local tasks to the Vibeflow SaaS app and delete them locally").argument("[dir]","Project root directory",".").option("--workspace <id>","Target workspace ID (defaults to your first workspace)").option("--keep-local-files","Keep local task files after pushing (do not delete them)").action(async(t,e)=>{ye("command_run",{command:"push"}),await Ct(t,e),await be()});re.command("telemetry").description("Manage CLI usage telemetry (opt-out at any time)").option("--enable","Enable usage telemetry (default)").option("--disable","Disable usage telemetry").option("--status","Show current telemetry status").action(async t=>{if(t.disable){gn(!1),console.log(n.yellow("Telemetry disabled. No usage data will be collected.")),console.log(n.dim("Run `vibeflow telemetry --enable` to re-enable at any time."));return}if(t.enable){gn(!0),console.log(n.green("Telemetry enabled. Thank you for helping improve Vibeflow!"));return}let{enabled:e,anonymousId:r}=Ft(),i=process.env.VIBEFLOW_TELEMETRY==="0";console.log(n.bold("Telemetry status:")),console.log(` Enabled: ${e?n.green("yes"):n.yellow("no")}`),i&&console.log(n.dim(" (disabled via VIBEFLOW_TELEMETRY=0 environment variable)")),r&&console.log(n.dim(` Anonymous ID: ${r}`)),console.log(),console.log(n.dim(" vibeflow telemetry --disable Opt out of usage tracking")),console.log(n.dim(" vibeflow telemetry --enable Opt back in")),console.log(n.dim(" No PII is ever collected. User identity is hashed."))});re.parse();
29446
+ `);re.command("serve").description("Serve HTML prototype(s) with live overlay, or start API-only task server for existing apps").argument("[target]","HTML file or directory of HTML files").option("-p, --port <port>","Port number","3700").option("--host <host>","Bind hostname (default: localhost; use 0.0.0.0 for LAN sharing)").option("--no-open","Do not open browser automatically").action(async(t,e)=>{ye("command_run",{command:"serve"}),await be(),await pn(t,{port:parseInt(e.port,10),host:e.host,open:e.open})});re.command("kanban").description("Start the Vibeflow server and open the live Kanban board in the browser").argument("[dir]","Project root directory",".").option("-p, --port <port>","Port number","3700").option("--host <host>","Bind hostname (default: localhost; use 0.0.0.0 for LAN sharing)").action(async(t,e)=>{ye("command_run",{command:"kanban"}),await be();let r=parseInt(e.port,10),s=(await pn(void 0,{port:r,host:e.host,open:!1,projectDir:V(t)})).url+"/kanban";console.log(),console.log(n.green(" \u2713 Kanban board ready")),console.log(n.dim(" ")+n.cyan(s)),console.log(),console.log(n.bold("Agent prompt:")),console.log(n.dim(" Get new tasks and implement them, once done check again for new ones:")),console.log(n.dim(" ")+n.green("npx @vibeflow-tools/cli tasks --next")),console.log(),import("open").then(o=>o.default(s)).catch(()=>{console.log(n.dim(" Visit: ")+n.cyan(s))}),ko()});re.command("tasks").description("List or edit tasks in the project").argument("[dir]","Project root directory",".").option("--status <status>","Filter by status (backlog, todo, in-progress, review, done)").option("--type <type>","Filter by type (Task, Bug, Feature, Enhancement, Research)").option("--user <user>","Filter by exact task author email (case-insensitive)").option("--edit [task-id]","Edit a task by ID (LLM-friendly). Omit task-id to see usage instructions.").option("--add","Create a task (requires --title)").option("--title <title>","New title for the task (use with --edit)").option("--set-status <status>","New status: backlog | todo | in-progress | review | done (use with --edit)").option("--description <text>","New description for the task (use with --edit)").option("--json","Output machine-readable JSON").option("--commit","Commit staged changes and link the commit SHA to a task (use with --task)").option("--task <task-id>","Task ID to link with the commit (use with --commit)").option("--message <msg>","Commit message (use with --commit; task ID is appended automatically)").option("--comment <text>","Implementation report comment (required when setting status to review)").option("--commit-message <msg>","Commit message for auto-commit on review (required when auto-commit setting is ON)").option("--get <task-id>","Get full details of a single task by ID (supports partial ID prefix)").option("--next","Pick the next available todo task, move it to in-progress, and output it ready to work on").option("--tag <tag>","Filter by tag (can be specified multiple times for AND matching)",(t,e)=>[...e,t],[]).option("--report-file <path>","Path to a local .md file to upload as the research report (use with --set-status review on Research tasks; file is uploaded and deleted locally)").option("--limit <n>","Limit how many tasks are returned in list mode (default: 20; use 0 for unlimited)").action((t,e)=>{(async()=>{let r=e.add?"add":e.next?"next":e.edit?"edit":e.get?"get":"list";ye("command_run",{command:"tasks",subcommand:r});let i=["Task","Bug","Feature","Enhancement","Research"],s=p=>p.trim().toLowerCase(),o=(p,h)=>{let E=s(h);return E?s(p??"")===E:!0},a=p=>[...new Set(p.map(h=>h.author?.trim()).filter(h=>!!h))].sort((h,E)=>h.localeCompare(E)),c=p=>i.map(h=>h.toLowerCase()).includes(p.toLowerCase())?!0:(console.log(n.red(`\u2717 Invalid type filter: "${p}"`)),console.log(n.yellow(` Available types: ${i.join(" | ")}`)),console.log(n.dim(" Type filter is exact (example: --type Bug)")),process.exitCode=1,!1),l=(p,h)=>{let E=a(h);return E.length===0?(console.log(n.red("\u2717 Cannot filter by user: no task authors are available on this board.")),process.exitCode=1,!1):E.some(H=>o(H,p))?!0:(console.log(n.red(`\u2717 User not found: "${p}"`)),console.log(n.yellow(` Available users: ${E.join(" | ")}`)),console.log(n.dim(" User filter is exact email match (case-insensitive).")),process.exitCode=1,!1)};if(e.get){if(await ve()==="saas"){let b=await J(),x=await Se(b?.id);if(!x){console.log(n.red("\u2717 Unable to reach the online backend.")),process.exitCode=1;return}let y=x.tasks.find(U=>U.id===e.get||U.id.startsWith(e.get));if(!y){console.log(n.red(`\u2717 Task not found: ${e.get}`)),process.exitCode=1;return}let W=de(y.status);if(e.json){console.log(JSON.stringify({...y,status:W},null,2));return}let A=ke[W]??n.white;if(console.log(` ${A(`[${W}]`)} ${n.bold(y.title)}`),console.log(n.dim(` id: ${y.id}`)),console.log(n.dim(" selector: /")),y.type&&console.log(n.dim(` type: ${y.type}`)),y.priority&&console.log(n.dim(` priority: ${y.priority}`)),console.log(n.dim(` created: ${y.createdAt}`)),y.description){console.log(n.dim(" description:"));for(let U of y.description.split(`
29447
+ `))console.log(n.dim(` ${U}`))}y.annotatedElementText&&console.log(n.dim(` element text: ${y.annotatedElementText}`));let K=[...y.comments??[]].sort((U,O)=>new Date(U.createdAt).getTime()-new Date(O.createdAt).getTime());if(K.length>0){console.log(n.dim(` comments (${K.length}):`));for(let U of K){console.log(n.dim(` [${U.author??"agent"}] ${U.createdAt}`));for(let O of U.body.split(`
29448
+ `))console.log(n.dim(` ${O}`))}}if(y.files&&y.files.length>0){console.log(n.dim(` linked files (${y.files.length}):`));for(let U of y.files){let O=U.url??`${process.env.SPOTA_API_URL??"http://localhost:3000"}/api/tasks/${y.id}/files/${encodeURIComponent(U.name)}`;if(console.log(n.dim(` - ${U.name} ${O}`)),U.content){console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let fe of U.content.split(`
29449
+ `))console.log(n.dim(` \u2502 ${fe}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}}}let j=G(V(t)),se=(y.type??"").toLowerCase()==="research",Pe=(y.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:se,hasBugTasks:Pe,autoCommit:j.autoCommit,autoPush:j.autoPush,autoComment:j.autoComment,createBranch:j.createBranch});return}let h=V(t),E=Oe(h),S=ce(h).find(b=>b.id===e.get||b.id.startsWith(e.get));if(!S){console.log(n.red(`\u2717 Task not found: ${e.get}`)),console.log(n.dim(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}let v=te(h,S.id).sort((b,x)=>new Date(b.createdAt).getTime()-new Date(x.createdAt).getTime()),m=ne(h,S.id).map(b=>({...b,url:`http://localhost:${E.port}${b.url}`})),d=Ae(S,v,m);if(e.json){console.log(JSON.stringify({...S,comments:v,files:m},null,2));return}let N=ke[S.status]??n.white;if(console.log(` ${N(`[${d.status}]`)} ${n.bold(d.title)}`),console.log(n.dim(` id: ${d.id}`)),console.log(n.dim(` file: ${S.filePath}`)),d.file&&console.log(n.dim(` source: ${d.file}${d.line!=null?`:${d.line}`:""}${d.col!=null?`:${d.col}`:""}`)),d.component&&console.log(n.dim(` component: ${d.component}`)),console.log(n.dim(` selector: ${d.selector}`)),S.cssSelector&&console.log(n.dim(` css: ${S.cssSelector}`)),d.url&&console.log(n.dim(` url: ${d.url}`)),S.commits&&S.commits.length>0)if(S.commits.length===1)console.log(n.dim(` commit: ${S.commits[0].sha}`));else{console.log(n.dim(` commits (${S.commits.length}):`));for(let b of S.commits)console.log(n.dim(` ${b.sha.slice(0,8)} ${b.timestamp} ${b.message.slice(0,60)}`))}if(console.log(n.dim(` created: ${d.created}`)),S.type&&console.log(n.dim(` type: ${S.type}`)),S.priority&&console.log(n.dim(` priority: ${S.priority}`)),S.author&&console.log(n.dim(` author: ${S.author}`)),d.description){console.log(n.dim(" description:"));for(let b of d.description.split(`
29450
+ `))console.log(n.dim(` ${b}`))}if(S.annotatedElementText&&console.log(n.dim(` element text: ${S.annotatedElementText}`)),v.length>0){console.log(n.dim(` comments (${v.length}):`));for(let b of v){let x=b.updatedAt?` (edited ${b.updatedAt})`:"";console.log(n.dim(` [${b.author??"user"}] ${b.createdAt}${x}`));for(let y of b.text.split(`
29451
+ `))console.log(n.dim(` ${y}`))}}if(m.length>0){console.log(n.dim(` linked files (${m.length}):`));for(let b of m){let x=b.linkedPath??At(h,".vibeflow","files",S.id,b.name);if(console.log(n.dim(` - ${b.name} ${b.url}`)),/\.(md|txt)$/i.test(b.name)&&b.size<1e5&&vn(x))try{let y=hn(x,"utf-8");console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let W of y.split(`
29452
+ `))console.log(n.dim(` \u2502 ${W}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}catch{}}}let T=G(h),$=(S.type??"").toLowerCase()==="research",X=(S.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:$,hasBugTasks:X,autoCommit:T.autoCommit,autoPush:T.autoPush,autoComment:T.autoComment,createBranch:T.createBranch});return}if(e.next){if(await ve()==="saas"){let x=await J(),y=await Se(x?.id);if(!y){console.log(n.red("\u2717 Unable to reach the online backend.")),process.exitCode=1;return}let W=y.tasks.map(O=>({...O,status:de(O.status)})).filter(O=>O.status==="todo").sort((O,fe)=>{let Fe=ge(O.priority??void 0)-ge(fe.priority??void 0);return Fe!==0?Fe:new Date(O.createdAt).getTime()-new Date(fe.createdAt).getTime()});if(W.length===0){console.log(n.dim("No todo tasks found. Nothing to work on."));return}let A=W[0];if(!await mn(A.id,{status:"in-progress"})){console.log(n.red(`\u2717 Failed to move task to in-progress: ${A.id}`)),process.exitCode=1;return}if(e.json){console.log(JSON.stringify({...A,status:"in-progress"},null,2));return}let j=G(V(t)),se=(A.type??"").toLowerCase()==="research",Pe=(A.type??"").toLowerCase()==="bug";if(Ee({hasResearchTasks:se,hasBugTasks:Pe,autoCommit:j.autoCommit,autoPush:j.autoPush,autoComment:j.autoComment,createBranch:j.createBranch}),console.log(n.green.bold("\u25B6 NEXT TASK \u2014 Status moved to in-progress. Implement this now:")),console.log(),console.log(` ${n.blue("[in-progress]")} ${n.bold(A.title)}`),console.log(n.dim(` id: ${A.id}`)),A.type&&console.log(n.dim(` type: ${A.type}`)),A.priority&&console.log(n.dim(` priority: ${A.priority}`)),console.log(n.dim(` created: ${A.createdAt}`)),A.description){console.log(n.dim(" description:"));for(let O of A.description.split(`
29453
+ `))console.log(n.dim(` ${O}`))}let U=[...A.comments??[]].sort((O,fe)=>new Date(O.createdAt).getTime()-new Date(fe.createdAt).getTime());if(U.length>0){console.log(n.dim(` comments (${U.length}):`));for(let O of U){let fe=O.authorId?`user:${O.authorId.slice(0,8)}`:"agent";console.log(n.dim(` [${fe}] ${O.createdAt}`));for(let Fe of O.body.split(`
29454
+ `))console.log(n.dim(` ${Fe}`))}}console.log(),console.log(n.yellow(" \u26A1 This task is already in-progress. Implement it now and mark as review when done."));return}let h=V(t),H=ce(h).filter(x=>x.status==="todo").sort((x,y)=>{let W=ge(x.priority)-ge(y.priority);return W!==0?W:new Date(x.created).getTime()-new Date(y.created).getTime()});if(H.length===0){console.log(n.dim("No todo tasks found. Nothing to work on."));return}let S=H[0],v=z(h,S.id,{status:"in-progress"});if(!v){console.log(n.red(`\u2717 Failed to update task: ${S.id}`)),process.exitCode=1;return}if(e.json){console.log(JSON.stringify({...v,filePath:S.filePath},null,2));return}let m=G(h),d=(v.type??"").toLowerCase()==="research",N=(v.type??"").toLowerCase()==="bug";Ee({hasResearchTasks:d,hasBugTasks:N,autoCommit:m.autoCommit,autoPush:m.autoPush,autoComment:m.autoComment,createBranch:m.createBranch});let T=Oe(h),$=te(h,v.id).sort((x,y)=>new Date(x.createdAt).getTime()-new Date(y.createdAt).getTime()),X=ne(h,v.id).map(x=>({...x,url:`http://localhost:${T.port}${x.url}`})),b=Ae(v,$,X);if(console.log(n.green.bold("\u25B6 NEXT TASK \u2014 Status moved to in-progress. Implement this now:")),console.log(),console.log(` ${n.blue("[in-progress]")} ${n.bold(b.title)}`),console.log(n.dim(` id: ${b.id}`)),console.log(n.dim(` file: ${S.filePath}`)),b.file&&console.log(n.dim(` source: ${b.file}${b.line!=null?`:${b.line}`:""}${b.col!=null?`:${b.col}`:""}`)),b.component&&console.log(n.dim(` component: ${b.component}`)),console.log(n.dim(` selector: ${b.selector}`)),v.cssSelector&&console.log(n.dim(` css: ${v.cssSelector}`)),b.url&&console.log(n.dim(` url: ${b.url}`)),console.log(n.dim(` created: ${b.created}`)),b.type&&console.log(n.dim(` type: ${b.type}`)),b.priority&&console.log(n.dim(` priority: ${b.priority}`)),b.description){console.log(n.dim(" description:"));for(let x of b.description.split(`
29455
+ `))console.log(n.dim(` ${x}`))}if(b.structuredComments&&b.structuredComments.length>0){console.log(n.dim(` comments (${b.structuredComments.length}):`));for(let x of b.structuredComments){let y=x.updatedAt?` (edited ${x.updatedAt})`:"";console.log(n.dim(` [${x.author??"agent"}] ${x.createdAt}${y}`));for(let W of x.text.split(`
29456
+ `))console.log(n.dim(` ${W}`))}}if(b.linkedFiles&&b.linkedFiles.length>0){console.log(n.dim(` linked files (${b.linkedFiles.length}):`));for(let x of b.linkedFiles)console.log(n.dim(` - ${x.name} ${x.url}`))}console.log(),console.log(n.yellow(" \u26A1 This task is already in-progress. Implement it now and mark as review when done."));return}if(e.add){if(!e.title?.trim()){console.log(n.red("\u2717 --title is required with --add")),console.log(n.dim(' Example: vibeflow tasks --add --title "Fix CTA spacing" --description "Button overflows on mobile"')),process.exitCode=1;return}if(await ve()==="saas"){let v=await J(),d=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",N=kn(),T=await It({id:N,title:e.title.trim(),description:e.description?.trim(),status:d,boardId:v?.id});if(!T){console.log(n.red("\u2717 Failed to create task in online board.")),console.log(n.yellow(" Check your connection or run 'vibeflow login'.")),process.exitCode=1;return}e.json?console.log(JSON.stringify(T,null,2)):(console.log(n.green(`\u2713 Task created: ${T.title}`)),console.log(n.dim(` id: ${T.id} | status: ${de(T.status)}`)));return}let h=V(t);Te(h);let H=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",S=xe(h,{title:e.title.trim(),description:e.description?.trim()??"",status:H,selector:"/"});e.json?console.log(JSON.stringify(S,null,2)):(console.log(n.green(`\u2713 Task created: ${S.title}`)),console.log(n.dim(` id: ${S.id} | status: ${S.status}`)));return}if(e.commit){if(!e.task){console.log(n.red("\u2717 --task <task-id> is required with --commit")),console.log(n.dim(' Example: vibeflow tasks --commit --task abc12345 --message "fix button alignment"')),process.exitCode=1;return}let p=V(t),E=ee(p).find(v=>v.id===e.task||v.id.startsWith(e.task));if(!E){console.log(n.red(`\u2717 Task not found: ${e.task}`)),console.log(n.dim(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}let H=e.message?.trim()||E.title;(E.type??"").toLowerCase()==="research"&&(console.log(n.yellow("\u26A0 WARNING: This is a Research task. Research tasks must NOT produce code changes.")),console.log(n.yellow(" Only commit research report files (.md). Do not commit code changes.")),console.log());let S=`${H} [proto:${E.id}]`;try{Ge("git",["commit","-m",S],{cwd:p,stdio:"inherit"});let v=yn("git rev-parse HEAD",{cwd:p}).toString().trim(),m={sha:v,message:H,timestamp:new Date().toISOString()},d=E.commits??[];if(z(p,E.id,{commits:[...d,m]}),console.log(n.green(`\u2713 Committed and linked to task: ${E.title}`)),console.log(n.dim(` commit: ${v}`)),console.log(n.dim(` proto: ${E.id}`)),G(p).autoPush){console.log(n.dim(" auto-push: pushing commit to remote..."));let T=Ht(p);T.ok?console.log(n.green("\u2713 Auto-push complete")):(console.log(n.yellow("\u26A0 Auto-push failed. Commit is local; run 'git push' manually.")),T.error&&console.log(n.dim(` reason: ${T.error}`)))}}catch{console.log(n.red("\u2717 git commit failed \u2014 ensure changes are staged with 'git add'")),process.exitCode=1}return}if(e.edit!==void 0){let p=typeof e.edit=="string"?e.edit:void 0,h=e.title||e.setStatus||e.description;if(!p||!h){if(e.type&&!c(e.type))return;let m=ee(t);if(e.status&&(m=m.filter(d=>d.status===e.status)),e.type&&(m=m.filter(d=>(d.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,m))return;if(e.user&&(m=m.filter(d=>o(d.author,e.user))),e.tag&&e.tag.length>0&&(m=m.filter(d=>e.tag.every(N=>(d.tags??[]).includes(N)))),console.log(n.bold("vibeflow tasks --edit \u2014 LLM Usage Instructions")),console.log(),console.log("Edit a task:"),console.log(n.cyan(' vibeflow tasks [dir] --edit <task-id> [--title "new title"] [--set-status backlog|todo|in-progress|review|done] [--description "new description"]')),console.log(),console.log("Examples:"),console.log(n.dim(" vibeflow tasks --edit abc12345 --set-status done")),console.log(n.dim(" vibeflow tasks --edit abc12345 --set-status in-progress")),console.log(n.dim(' vibeflow tasks --edit abc12345 --title "Updated title" --description "More detail"')),console.log(),m.length===0)console.log(n.dim("No tasks found."));else{console.log("Available tasks:");for(let d of m){let N=ke[d.status]??n.white;console.log(` ${N(`[${d.status}]`)} ${n.bold(d.id)} \u2014 ${d.title}`)}}return}let E=["backlog","todo","in-progress","review","done"];if(e.setStatus==="done"&&(console.log(n.yellow('\u26A0 WARNING: Agents should NEVER set a task status to "done".')),console.log(n.yellow(" Only humans should mark tasks as done after reviewing.")),console.log(n.dim(" If you are an agent, use --set-status review instead.")),console.log()),e.setStatus&&!E.includes(e.setStatus)){console.log(n.red(`\u2717 Invalid status: "${e.setStatus}"`)),console.log(n.yellow(` Valid statuses: ${E.join(" | ")}`)),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status in-progress`)),process.exitCode=1;return}if(e.setStatus==="review"&&!e.comment?.trim()){console.log(n.red("\u2717 --comment is required when setting status to review")),console.log(n.dim(" Provide a concise implementation report explaining:")),console.log(n.dim(" \xB7 what was changed and why")),console.log(n.dim(" \xB7 key decisions and trade-offs")),console.log(n.dim(" \xB7 anything future agents should know")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --comment "Implemented X by doing Y. Key decision: Z."`)),process.exitCode=1;return}let H=await ve();if(e.setStatus==="review"){let m=V(t),d=G(m);if(d.autoComment&&!e.comment?.trim()){console.log(n.red("\u2717 --comment is required (auto-comment setting is ON)")),console.log(n.dim(" Provide: what changed, why, key decisions, anything future agents should know.")),console.log(n.dim(" Plain text for short notes; Markdown for multi-section reports.")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --comment "Implemented X by doing Y."`)),process.exitCode=1;return}if(d.autoCommit&&!e.commitMessage?.trim()){console.log(n.red("\u2717 --commit-message is required (auto-commit setting is ON)")),console.log(n.dim(" Stage your changes first, then provide a one-line commit summary.")),console.log(n.dim(` Example: vibeflow tasks --edit ${p} --set-status review --commit-message "fix: add hover effect" --comment "..."`)),process.exitCode=1;return}}if(H==="saas"){let m={};if(e.setStatus&&(m.status=e.setStatus),e.title&&(m.title=e.title),e.description&&(m.description=e.description),e.setStatus==="in-progress"){let N=await Et(p);if(N&&de(N.status)==="in-progress"){let T=N.author??"another user";console.log(n.yellow(`\u26A0 Task is already in-progress (last updated by: ${T})`)),console.log(n.yellow(" Another agent or user may be working on this task.")),console.log(n.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}let d=await mn(p,m);if(!d){console.log(n.red(`\u2717 Failed to update task: ${p}`)),console.log(n.yellow(" Ensure you are connected and the task ID exists in the online board.")),process.exitCode=1;return}d.warning&&console.log(n.yellow(`\u26A0 Server warning: ${d.warning}`)),e.setStatus==="review"&&e.comment?.trim()&&await Pt(p,e.comment.trim())&&console.log(n.dim(" comment: added")),console.log(n.green(`\u2713 Task updated: ${d.task.title}`)),console.log(n.dim(` id: ${d.task.id} | status: ${de(d.task.status)}`));return}let S={};if(e.title&&(S.title=e.title),e.setStatus&&(S.status=e.setStatus),e.description&&(S.description=e.description),e.setStatus==="in-progress"){let m=V(t),N=ee(m).find(T=>T.id===p||T.id.startsWith(p));if(N&&((N.type??"").toLowerCase()==="research"&&(console.log(n.yellow("\u26A0 WARNING: This is a Research task. Policy: do NOT implement code.")),console.log(n.yellow(" Research only \u2014 attach a .md report file, leave a summary comment, mark as review.")),console.log()),N.status==="in-progress")){let T=N.updated?new Date(N.updated).toLocaleString():"unknown",$=N.author??"another user";console.log(n.yellow(`\u26A0 Task is already in-progress (author: ${$}, last updated: ${T})`)),console.log(n.yellow(" Another agent or user may be working on this task.")),console.log(n.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}if(e.setStatus==="review"){let m=V(t),N=ee(m).find(T=>T.id===p||T.id.startsWith(p));if(N&&(N.type??"").toLowerCase()==="research"){if(e.reportFile){let T=V(e.reportFile);if(!vn(T)){console.log(n.red(`\u2717 Report file not found: ${T}`)),process.exitCode=1;return}if(!/\.md$/i.test(T)){console.log(n.red("\u2717 Report file must be a Markdown (.md) file")),process.exitCode=1;return}let $=hn(T),{saveFile:X}=await import("./files-3RDDXUOS.js");X(m,N.id,Ot(T),$),yo(T),console.log(n.green(`\u2713 Report uploaded: ${Ot(T)} (local file removed)`))}else if(!ne(m,N.id).some(X=>/\.md$/i.test(X.name))){console.log(n.red("\u2717 Cannot mark Research task as review: no .md report file attached.")),console.log(n.dim(" Provide a research report:")),console.log(n.dim(` vibeflow tasks --edit ${p} --set-status review --report-file ./my-research.md --comment "..."`)),process.exitCode=1;return}}}let v=z(t,p,S);if(!v){console.log(n.red(`\u2717 Task not found: ${p}`)),console.log(n.yellow(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}if(e.setStatus==="review"&&e.comment?.trim()&&(he(V(t),p,"agent",e.comment.trim()),console.log(n.dim(" comment: added"))),console.log(n.green(`\u2713 Task updated: ${v.title}`)),console.log(n.dim(` id: ${v.id} | status: ${v.status}`)),e.setStatus==="review"){let m=V(t),d=G(m);if(d.autoCommit&&e.commitMessage?.trim()){let T=ee(m).find($=>$.id===p||$.id.startsWith(p));if(T){let $=`${e.commitMessage.trim()} [proto:${T.id}]`;try{Ge("git",["commit","-m",$],{cwd:m,stdio:"inherit"});let X=yn("git rev-parse HEAD",{cwd:m}).toString().trim(),b={sha:X,message:e.commitMessage.trim(),timestamp:new Date().toISOString()},x=T.commits??[];if(z(m,T.id,{commits:[...x,b]}),console.log(n.green(`\u2713 Committed: ${$}`)),console.log(n.dim(` sha: ${X}`)),d.autoPush){console.log(n.dim(" pushing..."));let y=Ht(m);y.ok?console.log(n.green("\u2713 Pushed")):(console.log(n.yellow("\u26A0 Push failed. Run 'git push' manually.")),y.error&&console.log(n.dim(` reason: ${y.error}`)))}}catch{console.log(n.red("\u2717 git commit failed \u2014 ensure changes are staged with 'git add'")),process.exitCode=1}}}}return}let u=["backlog","todo","in-progress","review","done"];if(e.status&&!u.includes(e.status)){console.log(n.red(`\u2717 Invalid status filter: "${e.status}"`)),console.log(n.yellow(` Valid statuses: ${u.join(" | ")}`)),console.log(n.dim(" Example: vibeflow tasks --status todo")),process.exitCode=1;return}if(e.type&&!c(e.type))return;if(await ve()==="saas"){let p=await J(),h=await Se(p?.id);if(!h){console.log(n.red("\u2717 Unable to reach the online backend.")),console.log(n.yellow(" Check your connection or run 'vibeflow login' if your session expired.")),process.exitCode=1;return}let E=h.tasks.map(d=>({...d,status:de(d.status)}));if(e.status&&(E=E.filter(d=>d.status===e.status)),e.type&&(E=E.filter(d=>(d.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,E))return;e.user&&(E=E.filter(d=>o(d.author,e.user))),e.tag&&e.tag.length>0&&(E=E.filter(d=>e.tag.every(N=>(d.tags??[]).includes(N))));let H=e.limit!==void 0?parseInt(e.limit,10):20;if(!isNaN(H)&&H>0&&(E=E.slice(0,H)),e.json){console.log(JSON.stringify(E,null,2));return}let S=E.some(d=>(d.type??"").toLowerCase()==="research"),v=E.some(d=>(d.type??"").toLowerCase()==="bug"),m=G(V(t));if(Ee({hasResearchTasks:S,hasBugTasks:v,autoCommit:m.autoCommit,autoPush:m.autoPush,autoComment:m.autoComment,createBranch:m.createBranch}),E.length===0)console.log(n.dim("No tasks found."));else{E=E.sort((x,y)=>{let W=Qe(x.status)-Qe(y.status);if(W!==0)return W;let A=ge(x.priority??void 0)-ge(y.priority??void 0);return A!==0?A:new Date(y.updatedAt).getTime()-new Date(x.updatedAt).getTime()});for(let[x,y]of E.entries()){let W=ke[y.status]??n.white,A=xo(y.type);if(console.log(` ${n.dim(`${x+1}.`)} ${W(`[${y.status}]`)} ${y.title}`),console.log(n.dim(` id: ${y.id}`)),console.log(n.dim(" selector: /")),A&&console.log(n.dim(` type: ${A}`)),y.priority&&console.log(n.dim(` priority: ${y.priority}`)),console.log(n.dim(` created: ${y.createdAt}`)),y.description){console.log(n.dim(" description:"));for(let K of y.description.split(`
29457
+ `))console.log(n.dim(` ${K}`))}if(y.comments&&y.comments.length>0){let K=[...y.comments].sort((j,se)=>new Date(j.createdAt).getTime()-new Date(se.createdAt).getTime());console.log(n.dim(` comments (${K.length}):`));for(let j of K){let se=j.authorId?`user:${j.authorId.slice(0,8)}`:"agent";console.log(n.dim(` [${se}] ${j.createdAt}`));for(let Pe of j.body.split(`
29458
+ `))console.log(n.dim(` ${Pe}`))}}if(y.files&&y.files.length>0){console.log(n.dim(` linked files (${y.files.length}):`));for(let K of y.files){let j=K.url??`${process.env.SPOTA_API_URL??"http://localhost:3000"}/api/tasks/${y.id}/files/${encodeURIComponent(K.name)}`;if(console.log(n.dim(` - ${K.name} ${j}`)),K.content){console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let se of K.content.split(`
29459
+ `))console.log(n.dim(` \u2502 ${se}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}}}console.log()}let d=h.tasks.map(x=>({...x,status:de(x.status)})),N=d.filter(x=>x.status==="backlog").length,T=d.filter(x=>x.status==="todo").length,$=d.filter(x=>x.status==="in-progress").length,X=d.filter(x=>x.status==="review").length,b=d.filter(x=>x.status==="done").length;console.log(n.dim(` Total: ${d.length} | Backlog: ${N} | Todo: ${T} | In Progress: ${$} | Review: ${X} | Done: ${b}`))}return}let P=ce(t);if(e.user&&!l(e.user,P))return;let k=e.status?P.filter(p=>p.status===e.status):P;e.type&&(k=k.filter(p=>(p.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&(k=k.filter(p=>o(p.author,e.user))),e.tag&&e.tag.length>0&&(k=k.filter(p=>e.tag.every(h=>(p.tags??[]).includes(h))));let w=e.limit!==void 0?parseInt(e.limit,10):20;if(e.json){console.log(JSON.stringify(k,null,2));return}k=k.sort((p,h)=>{let E=Qe(p.status)-Qe(h.status);if(E!==0)return E;let H=ge(p.priority)-ge(h.priority);if(H!==0)return H;let S=new Date(p.updated??p.created).getTime(),v=new Date(h.updated??h.created).getTime();return S!==v?v-S:p.id.localeCompare(h.id)});let R=k.length;if(!isNaN(w)&&w>0&&(k=k.slice(0,w)),k.length===0){console.log(n.dim("No tasks found."));return}let L=V(t),f=k.some(p=>(p.type??"").toLowerCase()==="research"),_=k.some(p=>(p.type??"").toLowerCase()==="bug"),F=G(L);Ee({hasResearchTasks:f,hasBugTasks:_,autoCommit:F.autoCommit,autoPush:F.autoPush,autoComment:F.autoComment,createBranch:F.createBranch});let q=Oe(L);for(let[p,h]of k.entries()){let E=ke[h.status]??n.white,H=te(L,h.id).sort((m,d)=>new Date(m.createdAt).getTime()-new Date(d.createdAt).getTime()),S=ne(L,h.id).map(m=>({...m,url:`http://localhost:${q.port}${m.url}`})),v=Ae(h,H,S);if(console.log(` ${n.dim(`${p+1}.`)} ${E(`[${v.status}]`)} ${v.title}`),console.log(n.dim(` id: ${v.id}`)),console.log(n.dim(` file: ${h.filePath}`)),v.file&&console.log(n.dim(` source: ${v.file}${v.line!=null?`:${v.line}`:""}${v.col!=null?`:${v.col}`:""}`)),v.component&&console.log(n.dim(` component: ${v.component}`)),console.log(n.dim(` selector: ${v.selector}`)),h.cssSelector&&console.log(n.dim(` css: ${h.cssSelector}`)),v.url&&console.log(n.dim(` url: ${v.url}`)),h.screenshot&&console.log(n.dim(` screenshot: http://localhost:${q.port}/screenshots/${h.screenshot}`)),h.commits&&h.commits.length>0)if(h.commits.length===1)console.log(n.dim(` commit: ${h.commits[0].sha}`));else{console.log(n.dim(` commits (${h.commits.length}):`));for(let m of h.commits)console.log(n.dim(` ${m.sha.slice(0,8)} ${m.timestamp} ${m.message.slice(0,60)}`))}if(console.log(n.dim(` created: ${v.created}`)),v.type&&console.log(n.dim(` type: ${v.type}`)),v.priority&&console.log(n.dim(` priority: ${v.priority}`)),v.description){console.log(n.dim(" description:"));for(let m of v.description.split(`
29460
+ `))console.log(n.dim(` ${m}`))}if(v.structuredComments&&v.structuredComments.length>0){console.log(n.dim(` comments (${v.structuredComments.length}):`));for(let m of v.structuredComments){let d=m.updatedAt?` (edited ${m.updatedAt})`:"";console.log(n.dim(` [${m.author??"agent"}] ${m.createdAt}${d}`));for(let N of m.text.split(`
29461
+ `))console.log(n.dim(` ${N}`))}}if(v.linkedFiles&&v.linkedFiles.length>0){console.log(n.dim(` linked files (${v.linkedFiles.length}):`));for(let m of v.linkedFiles){let d=m.linkedPath??At(L,".vibeflow","files",h.id,m.name);if(console.log(n.dim(` - ${m.name} ${m.url}`)),/\.(md|txt)$/i.test(m.name)&&m.size<1e5&&vn(d))try{let N=hn(d,"utf-8");console.log(n.dim(" \u250C\u2500\u2500 content \u2500\u2500"));for(let T of N.split(`
29462
+ `))console.log(n.dim(` \u2502 ${T}`));console.log(n.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}catch{}}}console.log()}let M=P.filter(p=>p.status==="backlog").length,Y=P.filter(p=>p.status==="todo").length,oe=P.filter(p=>p.status==="in-progress").length,ae=P.filter(p=>p.status==="review").length,Le=P.filter(p=>p.status==="done").length,pe=!isNaN(w)&&w>0&&R>w?n.yellow(` (showing ${w} of ${R} matching \u2014 use --limit 0 for all)`):"";console.log(n.dim(` Total: ${P.length} | Backlog: ${M} | Todo: ${Y} | In Progress: ${oe} | Review: ${ae} | Done: ${Le}`)+pe),await be()})()});re.command("login",{hidden:!0}).description("Authenticate CLI against the Vibeflow SaaS backend (device flow)").action(async()=>{ye("command_run",{command:"login"}),await be(),await Ve()});re.command("logout",{hidden:!0}).description("Remove stored auth token and switch to local mode").action(async()=>{ye("command_run",{command:"logout"}),await be(),await xt()});re.command("status",{hidden:!0}).description("Show login status, connection info, and task statistics").action(async()=>{if(await ve()==="local"){console.log(n.yellow("\u25CF Not logged in")+n.dim(" (local mode)")),console.log(n.dim(" Run ")+n.cyan("vibeflow login")+n.dim(" to connect to the Vibeflow cloud.")),console.log();let o=V("."),a=ce(o);if(a.length>0){let c=a.reduce((l,u)=>(l[u.status]=(l[u.status]??0)+1,l),{});console.log(n.bold(" Local task statistics:"));for(let[l,u]of Object.entries(c)){let C=ke[l]??n.white;console.log(` ${C(l.padEnd(12))} ${u}`)}console.log(n.dim(` ${"total".padEnd(12)} ${a.length}`))}else console.log(n.dim(" No local tasks found."));return}let e=await J();console.log(n.green("\u25CF Online")+n.dim(" (SaaS mode)")),e&&(console.log(n.dim(` Board: ${e.icon?e.icon+" ":""}${e.name}`)),e.email&&console.log(n.dim(` Email: ${e.email}`)),console.log(n.dim(" URL: ")+n.cyan(e.url))),console.log();let r=await Se(e?.id);if(!r){console.log(n.yellow(" \u26A0 Could not reach SaaS backend. Check your connection."));return}let i=r.tasks.map(o=>({...o,status:de(o.status)}));if(i.length===0){console.log(n.dim(" No tasks found."));return}let s=i.reduce((o,a)=>(o[a.status]=(o[a.status]??0)+1,o),{});console.log(n.bold(" Task statistics:"));for(let[o,a]of Object.entries(s)){let c=ke[o]??n.white;console.log(` ${c(o.padEnd(12))} ${a}`)}console.log(n.dim(` ${"total".padEnd(12)} ${i.length}`))});re.command("push",{hidden:!0}).description("Push all local tasks to the Vibeflow SaaS app and delete them locally").argument("[dir]","Project root directory",".").option("--workspace <id>","Target workspace ID (defaults to your first workspace)").option("--keep-local-files","Keep local task files after pushing (do not delete them)").action(async(t,e)=>{ye("command_run",{command:"push"}),await St(t,e),await be()});re.command("telemetry").description("Manage CLI usage telemetry (opt-out at any time)").option("--enable","Enable usage telemetry (default)").option("--disable","Disable usage telemetry").option("--status","Show current telemetry status").action(async t=>{if(t.disable){gn(!1),console.log(n.yellow("Telemetry disabled. No usage data will be collected.")),console.log(n.dim("Run `vibeflow telemetry --enable` to re-enable at any time."));return}if(t.enable){gn(!0),console.log(n.green("Telemetry enabled. Thank you for helping improve Vibeflow!"));return}let{enabled:e,anonymousId:r}=Dt(),i=process.env.VIBEFLOW_TELEMETRY==="0";console.log(n.bold("Telemetry status:")),console.log(` Enabled: ${e?n.green("yes"):n.yellow("no")}`),i&&console.log(n.dim(" (disabled via VIBEFLOW_TELEMETRY=0 environment variable)")),r&&console.log(n.dim(` Anonymous ID: ${r}`)),console.log(),console.log(n.dim(" vibeflow telemetry --disable Opt out of usage tracking")),console.log(n.dim(" vibeflow telemetry --enable Opt back in")),console.log(n.dim(" No PII is ever collected. User identity is hashed."))});re.parse();