@vibeflow-tools/cli 0.1.2 → 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/README.md +10 -6
- package/dist/chunk-BKTZSHJS.js +2 -0
- package/dist/cli/chunk-BKTZSHJS.js +2 -0
- package/dist/cli/files-3RDDXUOS.js +2 -0
- package/dist/cli/index.js +311 -180
- package/dist/client/kanban-browser.js +12 -12
- package/dist/client/kanban.css +1 -1
- package/dist/client/overlay-browser.js +31 -18
- package/dist/files-3RDDXUOS.js +2 -0
- package/dist/index.js +311 -180
- package/dist/overlay.css +13 -0
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as
|
|
3
|
-
`+
|
|
4
|
-
`+r}import{watch as
|
|
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
|
+
`+t.slice(i):t+`
|
|
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;
|
|
@@ -1922,7 +1922,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
1922
1922
|
if (true) {
|
|
1923
1923
|
(function() {
|
|
1924
1924
|
"use strict";
|
|
1925
|
-
var
|
|
1925
|
+
var React23 = require_react();
|
|
1926
1926
|
var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element");
|
|
1927
1927
|
var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
|
|
1928
1928
|
var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
|
|
@@ -1948,7 +1948,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
1948
1948
|
}
|
|
1949
1949
|
return null;
|
|
1950
1950
|
}
|
|
1951
|
-
var ReactSharedInternals =
|
|
1951
|
+
var ReactSharedInternals = React23.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
1952
1952
|
function error(format) {
|
|
1953
1953
|
{
|
|
1954
1954
|
{
|
|
@@ -2798,11 +2798,11 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
2798
2798
|
return jsxWithValidation(type, props, key, false);
|
|
2799
2799
|
}
|
|
2800
2800
|
}
|
|
2801
|
-
var
|
|
2802
|
-
var
|
|
2801
|
+
var jsx31 = jsxWithValidationDynamic;
|
|
2802
|
+
var jsxs26 = jsxWithValidationStatic;
|
|
2803
2803
|
exports.Fragment = REACT_FRAGMENT_TYPE;
|
|
2804
|
-
exports.jsx =
|
|
2805
|
-
exports.jsxs =
|
|
2804
|
+
exports.jsx = jsx31;
|
|
2805
|
+
exports.jsxs = jsxs26;
|
|
2806
2806
|
})();
|
|
2807
2807
|
}
|
|
2808
2808
|
}
|
|
@@ -3292,9 +3292,9 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
3292
3292
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
|
3293
3293
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
3294
3294
|
}
|
|
3295
|
-
var
|
|
3295
|
+
var React23 = require_react();
|
|
3296
3296
|
var Scheduler = require_scheduler();
|
|
3297
|
-
var ReactSharedInternals =
|
|
3297
|
+
var ReactSharedInternals = React23.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
3298
3298
|
var suppressWarning = false;
|
|
3299
3299
|
function setSuppressWarning(newSuppressWarning) {
|
|
3300
3300
|
{
|
|
@@ -4901,7 +4901,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
4901
4901
|
{
|
|
4902
4902
|
if (props.value == null) {
|
|
4903
4903
|
if (typeof props.children === "object" && props.children !== null) {
|
|
4904
|
-
|
|
4904
|
+
React23.Children.forEach(props.children, function(child) {
|
|
4905
4905
|
if (child == null) {
|
|
4906
4906
|
return;
|
|
4907
4907
|
}
|
|
@@ -24674,6 +24674,19 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
24674
24674
|
border-color: #3b82f6;
|
|
24675
24675
|
}
|
|
24676
24676
|
|
|
24677
|
+
.vibeflow-popover input[type="text"].input-error {
|
|
24678
|
+
border-color: #ef4444;
|
|
24679
|
+
outline: 2px solid rgba(239, 68, 68, 0.35);
|
|
24680
|
+
outline-offset: 1px;
|
|
24681
|
+
animation: input-shake 0.28s ease;
|
|
24682
|
+
}
|
|
24683
|
+
|
|
24684
|
+
@keyframes input-shake {
|
|
24685
|
+
0%, 100% { transform: translateX(0); }
|
|
24686
|
+
25% { transform: translateX(-4px); }
|
|
24687
|
+
75% { transform: translateX(4px); }
|
|
24688
|
+
}
|
|
24689
|
+
|
|
24677
24690
|
.vibeflow-popover input[type="text"]::placeholder { color: #64748b; }
|
|
24678
24691
|
|
|
24679
24692
|
.vibeflow-popover select {
|
|
@@ -26256,7 +26269,9 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
26256
26269
|
// src/client/overlay-browser/api.ts
|
|
26257
26270
|
function fetchTasks() {
|
|
26258
26271
|
const url = PROTO_CONFIG.boardId ? \`\${PROTO_CONFIG.apiUrl}?boardId=\${encodeURIComponent(PROTO_CONFIG.boardId)}\` : PROTO_CONFIG.apiUrl;
|
|
26259
|
-
|
|
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) => {
|
|
26260
26275
|
var _a, _b;
|
|
26261
26276
|
state.tasks = d.tasks ?? [];
|
|
26262
26277
|
(_b = (_a = state).onTasksFetched) == null ? void 0 : _b.call(_a, state.tasks);
|
|
@@ -26757,7 +26772,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
26757
26772
|
}
|
|
26758
26773
|
|
|
26759
26774
|
// src/client/overlay-react/OverlayApp.tsx
|
|
26760
|
-
var
|
|
26775
|
+
var import_react23 = __toESM(require_react(), 1);
|
|
26761
26776
|
|
|
26762
26777
|
// ../ui/src/VibeflowIcon.tsx
|
|
26763
26778
|
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
@@ -27243,7 +27258,82 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27243
27258
|
// ../ui/src/kanban/components/TaskCard.tsx
|
|
27244
27259
|
var import_react7 = __toESM(require_react(), 1);
|
|
27245
27260
|
var import_react_dom = __toESM(require_react_dom(), 1);
|
|
27261
|
+
|
|
27262
|
+
// ../ui/src/kanban/tag-colors.ts
|
|
27263
|
+
var TAG_PALETTE = [
|
|
27264
|
+
{ 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)" },
|
|
27265
|
+
{ 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)" },
|
|
27266
|
+
{ 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)" },
|
|
27267
|
+
{ 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)" },
|
|
27268
|
+
{ bg: "color-mix(in srgb, #f472b6 14%, transparent)", text: "#f9a8d4", border: "color-mix(in srgb, #f472b6 30%, transparent)" },
|
|
27269
|
+
{ 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)" },
|
|
27270
|
+
{ bg: "color-mix(in srgb, #f87171 14%, transparent)", text: "#fca5a5", border: "color-mix(in srgb, #f87171 30%, transparent)" },
|
|
27271
|
+
{ 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)" }
|
|
27272
|
+
];
|
|
27273
|
+
function hashTagName(name) {
|
|
27274
|
+
let hash = 0;
|
|
27275
|
+
for (let i = 0; i < name.length; i++) {
|
|
27276
|
+
hash = hash * 31 + name.charCodeAt(i) >>> 0;
|
|
27277
|
+
}
|
|
27278
|
+
return hash % TAG_PALETTE.length;
|
|
27279
|
+
}
|
|
27280
|
+
function getTagColors(name) {
|
|
27281
|
+
return TAG_PALETTE[hashTagName(name)];
|
|
27282
|
+
}
|
|
27283
|
+
|
|
27284
|
+
// ../ui/src/kanban/components/shared/TagPills.tsx
|
|
27246
27285
|
var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
|
|
27286
|
+
function TagPills({ tags, onRemove, size = "sm" }) {
|
|
27287
|
+
if (!tags.length) return null;
|
|
27288
|
+
const padding = size === "xs" ? "1px 6px" : "2px 7px";
|
|
27289
|
+
const fontSize = size === "xs" ? 9 : 10;
|
|
27290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: 3, alignItems: "center" }, children: tags.map((tag) => {
|
|
27291
|
+
const { bg, text, border } = getTagColors(tag);
|
|
27292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
27293
|
+
"span",
|
|
27294
|
+
{
|
|
27295
|
+
style: {
|
|
27296
|
+
display: "inline-flex",
|
|
27297
|
+
alignItems: "center",
|
|
27298
|
+
gap: 3,
|
|
27299
|
+
padding,
|
|
27300
|
+
borderRadius: 100,
|
|
27301
|
+
background: bg,
|
|
27302
|
+
border: \`1px solid \${border}\`,
|
|
27303
|
+
color: text,
|
|
27304
|
+
fontSize,
|
|
27305
|
+
fontWeight: 600,
|
|
27306
|
+
whiteSpace: "nowrap"
|
|
27307
|
+
},
|
|
27308
|
+
children: [
|
|
27309
|
+
tag,
|
|
27310
|
+
onRemove && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
27311
|
+
"button",
|
|
27312
|
+
{
|
|
27313
|
+
type: "button",
|
|
27314
|
+
onClick: (e) => {
|
|
27315
|
+
e.stopPropagation();
|
|
27316
|
+
onRemove(tag);
|
|
27317
|
+
},
|
|
27318
|
+
style: { display: "flex", background: "none", border: "none", color: text, cursor: "pointer", padding: 0, lineHeight: 1, opacity: 0.7 },
|
|
27319
|
+
onMouseEnter: (e) => {
|
|
27320
|
+
e.currentTarget.style.opacity = "1";
|
|
27321
|
+
},
|
|
27322
|
+
onMouseLeave: (e) => {
|
|
27323
|
+
e.currentTarget.style.opacity = "0.7";
|
|
27324
|
+
},
|
|
27325
|
+
children: "\\xD7"
|
|
27326
|
+
}
|
|
27327
|
+
)
|
|
27328
|
+
]
|
|
27329
|
+
},
|
|
27330
|
+
tag
|
|
27331
|
+
);
|
|
27332
|
+
}) });
|
|
27333
|
+
}
|
|
27334
|
+
|
|
27335
|
+
// ../ui/src/kanban/components/TaskCard.tsx
|
|
27336
|
+
var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
|
|
27247
27337
|
function isImageFileName(name) {
|
|
27248
27338
|
return /\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(name);
|
|
27249
27339
|
}
|
|
@@ -27296,7 +27386,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27296
27386
|
e.currentTarget.classList.remove("dragging");
|
|
27297
27387
|
}
|
|
27298
27388
|
if (isDone) {
|
|
27299
|
-
return /* @__PURE__ */ (0,
|
|
27389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
27300
27390
|
"article",
|
|
27301
27391
|
{
|
|
27302
27392
|
className: "task-card",
|
|
@@ -27306,14 +27396,14 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27306
27396
|
onDragStart: handleDragStart,
|
|
27307
27397
|
onDragEnd: handleDragEnd,
|
|
27308
27398
|
onClick: () => onOpen(task),
|
|
27309
|
-
children: /* @__PURE__ */ (0,
|
|
27310
|
-
/* @__PURE__ */ (0,
|
|
27311
|
-
/* @__PURE__ */ (0,
|
|
27399
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: DONE_INNER_ROW_STYLE, children: [
|
|
27400
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(CircleCheckBig, { style: DONE_CHECK_ICON_STYLE }),
|
|
27401
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: DONE_TITLE_STYLE, children: task.title })
|
|
27312
27402
|
] })
|
|
27313
27403
|
}
|
|
27314
27404
|
);
|
|
27315
27405
|
}
|
|
27316
|
-
return /* @__PURE__ */ (0,
|
|
27406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
27317
27407
|
"article",
|
|
27318
27408
|
{
|
|
27319
27409
|
className: \`task-card\${liveActivity ? " task-live-edit" : ""}\`,
|
|
@@ -27330,13 +27420,13 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27330
27420
|
onDragEnd: handleDragEnd,
|
|
27331
27421
|
onClick: () => onOpen(task),
|
|
27332
27422
|
children: [
|
|
27333
|
-
/* @__PURE__ */ (0,
|
|
27334
|
-
isInProgress && /* @__PURE__ */ (0,
|
|
27335
|
-
/* @__PURE__ */ (0,
|
|
27423
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: CARD_TITLE_ROW_STYLE, children: [
|
|
27424
|
+
isInProgress && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "spinner", style: SPINNER_SHRINK_STYLE }),
|
|
27425
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: CARD_TITLE_TEXT_STYLE, children: task.title })
|
|
27336
27426
|
] }),
|
|
27337
|
-
(task.description || thumbnailUrl) && /* @__PURE__ */ (0,
|
|
27338
|
-
task.description && /* @__PURE__ */ (0,
|
|
27339
|
-
thumbnailUrl && /* @__PURE__ */ (0,
|
|
27427
|
+
(task.description || thumbnailUrl) && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: DESC_THUMB_ROW_STYLE, children: [
|
|
27428
|
+
task.description && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { style: DESC_TEXT_STYLE, children: task.description }),
|
|
27429
|
+
thumbnailUrl && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
27340
27430
|
"div",
|
|
27341
27431
|
{
|
|
27342
27432
|
style: THUMB_WRAPPER_STYLE,
|
|
@@ -27352,7 +27442,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27352
27442
|
setThumbRect(null);
|
|
27353
27443
|
},
|
|
27354
27444
|
children: [
|
|
27355
|
-
/* @__PURE__ */ (0,
|
|
27445
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
27356
27446
|
"img",
|
|
27357
27447
|
{
|
|
27358
27448
|
ref: thumbRef,
|
|
@@ -27363,7 +27453,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27363
27453
|
}
|
|
27364
27454
|
),
|
|
27365
27455
|
showThumbPreview && thumbRect && import_react_dom.default.createPortal(
|
|
27366
|
-
/* @__PURE__ */ (0,
|
|
27456
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
27367
27457
|
"img",
|
|
27368
27458
|
{
|
|
27369
27459
|
src: thumbnailUrl,
|
|
@@ -27391,10 +27481,10 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27391
27481
|
}
|
|
27392
27482
|
)
|
|
27393
27483
|
] }),
|
|
27394
|
-
/* @__PURE__ */ (0,
|
|
27395
|
-
/* @__PURE__ */ (0,
|
|
27396
|
-
task.priority && /* @__PURE__ */ (0,
|
|
27397
|
-
isInProgress && task.assigneeName && /* @__PURE__ */ (0,
|
|
27484
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center", style: CARD_FOOTER_STYLE, children: [
|
|
27485
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TypeBadge, { type: task.type }),
|
|
27486
|
+
task.priority && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(PriorityBadge, { priority: task.priority }),
|
|
27487
|
+
isInProgress && task.assigneeName && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: {
|
|
27398
27488
|
fontSize: 10,
|
|
27399
27489
|
fontWeight: 600,
|
|
27400
27490
|
padding: "1px 6px",
|
|
@@ -27406,12 +27496,13 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27406
27496
|
textOverflow: "ellipsis",
|
|
27407
27497
|
maxWidth: 80
|
|
27408
27498
|
}, children: task.assigneeName }),
|
|
27409
|
-
/* @__PURE__ */ (0,
|
|
27410
|
-
|
|
27411
|
-
/* @__PURE__ */ (0,
|
|
27499
|
+
task.tags && task.tags.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TagPills, { tags: task.tags, size: "xs" }),
|
|
27500
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { style: SPACER_STYLE }),
|
|
27501
|
+
liveActivity && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LiveActivityBadge, { activity: liveActivity }),
|
|
27502
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
27412
27503
|
CardIconButton,
|
|
27413
27504
|
{
|
|
27414
|
-
icon: /* @__PURE__ */ (0,
|
|
27505
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MessageCircle, { style: { width: 9, height: 9 } }),
|
|
27415
27506
|
label: commentCount > 0 ? String(commentCount) : "",
|
|
27416
27507
|
color: hasNewComments ? "var(--p-purple)" : commentCount > 0 ? "var(--p-text-m)" : "var(--p-border-t)",
|
|
27417
27508
|
hoverColor: hasNewComments ? "var(--p-purple-300)" : "var(--p-text)",
|
|
@@ -27424,10 +27515,10 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27424
27515
|
}
|
|
27425
27516
|
}
|
|
27426
27517
|
),
|
|
27427
|
-
/* @__PURE__ */ (0,
|
|
27518
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
27428
27519
|
CardIconButton,
|
|
27429
27520
|
{
|
|
27430
|
-
icon: /* @__PURE__ */ (0,
|
|
27521
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Paperclip, { style: { width: 9, height: 9 } }),
|
|
27431
27522
|
label: fileCount > 0 ? String(fileCount) : "",
|
|
27432
27523
|
color: fileCount > 0 ? "var(--p-blue-300)" : "var(--p-border-t)",
|
|
27433
27524
|
hoverColor: fileCount > 0 ? "var(--p-cyan-300)" : "var(--p-text-sub)",
|
|
@@ -27445,7 +27536,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27445
27536
|
});
|
|
27446
27537
|
function CardIconButton({ icon, label, color, hoverColor, title, badge, badgeColor, onClick }) {
|
|
27447
27538
|
const [hovered, setHovered] = import_react7.default.useState(false);
|
|
27448
|
-
return /* @__PURE__ */ (0,
|
|
27539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
27449
27540
|
"button",
|
|
27450
27541
|
{
|
|
27451
27542
|
style: {
|
|
@@ -27467,15 +27558,15 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27467
27558
|
onClick,
|
|
27468
27559
|
children: [
|
|
27469
27560
|
icon,
|
|
27470
|
-
label && /* @__PURE__ */ (0,
|
|
27471
|
-
badge && /* @__PURE__ */ (0,
|
|
27561
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { children: label }),
|
|
27562
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { width: 4, height: 4, background: badgeColor ?? color, borderRadius: "50%", flexShrink: 0 } })
|
|
27472
27563
|
]
|
|
27473
27564
|
}
|
|
27474
27565
|
);
|
|
27475
27566
|
}
|
|
27476
27567
|
function LiveActivityBadge({ activity }) {
|
|
27477
27568
|
const isLocked = activity.state === "locked" || activity.state === "editing";
|
|
27478
|
-
const icon = isLocked ? /* @__PURE__ */ (0,
|
|
27569
|
+
const icon = isLocked ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Lock, { style: { width: 8, height: 8 } }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Eye, { style: { width: 8, height: 8 } });
|
|
27479
27570
|
const label = isLocked ? \`Locked by \${activity.user}\` : \`\${activity.user} viewing\`;
|
|
27480
27571
|
const badgeStyle = isLocked ? {
|
|
27481
27572
|
display: "inline-flex",
|
|
@@ -27510,37 +27601,37 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27510
27601
|
whiteSpace: "nowrap",
|
|
27511
27602
|
flexWrap: "nowrap"
|
|
27512
27603
|
};
|
|
27513
|
-
return /* @__PURE__ */ (0,
|
|
27604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { style: badgeStyle, title: label, "data-testid": "live-activity-badge", children: [
|
|
27514
27605
|
icon,
|
|
27515
|
-
/* @__PURE__ */ (0,
|
|
27606
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { overflow: "hidden", textOverflow: "ellipsis", minWidth: 0, flex: "1 1 0" }, children: activity.user })
|
|
27516
27607
|
] });
|
|
27517
27608
|
}
|
|
27518
27609
|
|
|
27519
27610
|
// ../ui/src/kanban/components/KanbanBoard.tsx
|
|
27520
|
-
var
|
|
27611
|
+
var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
|
|
27521
27612
|
|
|
27522
27613
|
// ../ui/src/kanban/components/KanbanListView.tsx
|
|
27523
27614
|
var import_react9 = __toESM(require_react(), 1);
|
|
27524
|
-
var
|
|
27615
|
+
var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
|
|
27525
27616
|
|
|
27526
27617
|
// ../ui/src/kanban/components/Header.tsx
|
|
27527
27618
|
var import_react10 = __toESM(require_react(), 1);
|
|
27528
27619
|
|
|
27529
27620
|
// ../ui/src/kanban/components/shared/HeaderActionButton.tsx
|
|
27530
|
-
var
|
|
27621
|
+
var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
|
|
27531
27622
|
|
|
27532
27623
|
// ../ui/src/kanban/components/Header.tsx
|
|
27533
|
-
var
|
|
27624
|
+
var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
|
|
27534
27625
|
|
|
27535
27626
|
// ../ui/src/kanban/components/DetailPanel.tsx
|
|
27536
|
-
var
|
|
27627
|
+
var import_react19 = __toESM(require_react(), 1);
|
|
27537
27628
|
|
|
27538
27629
|
// ../ui/src/kanban/components/shared/CommentsList.tsx
|
|
27539
27630
|
var import_react14 = __toESM(require_react(), 1);
|
|
27540
27631
|
|
|
27541
27632
|
// ../ui/src/AutoExpandTextarea.tsx
|
|
27542
27633
|
var import_react11 = __toESM(require_react(), 1);
|
|
27543
|
-
var
|
|
27634
|
+
var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
|
|
27544
27635
|
var AutoExpandTextarea = import_react11.default.forwardRef(function AutoExpandTextarea2({
|
|
27545
27636
|
value,
|
|
27546
27637
|
onChange,
|
|
@@ -27568,7 +27659,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27568
27659
|
import_react11.default.useLayoutEffect(() => {
|
|
27569
27660
|
resize();
|
|
27570
27661
|
}, [value, resize]);
|
|
27571
|
-
return /* @__PURE__ */ (0,
|
|
27662
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
27572
27663
|
"textarea",
|
|
27573
27664
|
{
|
|
27574
27665
|
...rest,
|
|
@@ -27594,50 +27685,54 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27594
27685
|
// ../ui/src/kanban/components/ModalBase.tsx
|
|
27595
27686
|
var import_react12 = __toESM(require_react(), 1);
|
|
27596
27687
|
var import_react_dom2 = __toESM(require_react_dom(), 1);
|
|
27597
|
-
var
|
|
27688
|
+
var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
|
|
27598
27689
|
|
|
27599
27690
|
// ../ui/src/kanban/components/ConfirmModal.tsx
|
|
27600
|
-
var
|
|
27691
|
+
var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
|
|
27601
27692
|
|
|
27602
27693
|
// ../ui/src/kanban/components/shared/FileItem.tsx
|
|
27603
|
-
var
|
|
27694
|
+
var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
|
|
27604
27695
|
|
|
27605
27696
|
// ../ui/src/kanban/components/shared/CommentsList.tsx
|
|
27606
|
-
var
|
|
27697
|
+
var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
|
|
27607
27698
|
|
|
27608
27699
|
// ../ui/src/kanban/components/shared/FilesList.tsx
|
|
27609
27700
|
var import_react15 = __toESM(require_react(), 1);
|
|
27610
|
-
var
|
|
27701
|
+
var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
|
|
27611
27702
|
|
|
27612
27703
|
// ../ui/src/kanban/components/shared/TaskDetailsTab.tsx
|
|
27613
|
-
var
|
|
27704
|
+
var import_react18 = __toESM(require_react(), 1);
|
|
27614
27705
|
|
|
27615
27706
|
// ../ui/src/kanban/components/shared/MarkdownEditableField.tsx
|
|
27616
27707
|
var import_react16 = __toESM(require_react(), 1);
|
|
27617
27708
|
var import_react_dom3 = __toESM(require_react_dom(), 1);
|
|
27618
|
-
var
|
|
27709
|
+
var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
|
|
27710
|
+
|
|
27711
|
+
// ../ui/src/kanban/components/shared/TagInput.tsx
|
|
27712
|
+
var import_react17 = __toESM(require_react(), 1);
|
|
27713
|
+
var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
|
|
27619
27714
|
|
|
27620
27715
|
// ../ui/src/kanban/components/shared/TaskDetailsTab.tsx
|
|
27621
|
-
var
|
|
27716
|
+
var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
|
|
27622
27717
|
|
|
27623
27718
|
// ../ui/src/kanban/components/shared/CommentsInputArea.tsx
|
|
27624
|
-
var
|
|
27719
|
+
var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
|
|
27625
27720
|
|
|
27626
27721
|
// ../ui/src/kanban/components/DetailPanel.tsx
|
|
27627
|
-
var
|
|
27722
|
+
var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
|
|
27628
27723
|
var MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
27629
27724
|
|
|
27630
27725
|
// ../ui/src/kanban/components/FilterBar.tsx
|
|
27631
|
-
var
|
|
27632
|
-
var
|
|
27726
|
+
var import_react20 = __toESM(require_react(), 1);
|
|
27727
|
+
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
|
|
27633
27728
|
|
|
27634
27729
|
// ../ui/src/kanban/components/SettingsModal.tsx
|
|
27635
|
-
var
|
|
27636
|
-
var
|
|
27730
|
+
var import_react21 = __toESM(require_react(), 1);
|
|
27731
|
+
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
|
|
27637
27732
|
|
|
27638
27733
|
// ../ui/src/kanban/components/FilePreviewModal.tsx
|
|
27639
|
-
var
|
|
27640
|
-
var
|
|
27734
|
+
var import_react22 = __toESM(require_react(), 1);
|
|
27735
|
+
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
27641
27736
|
|
|
27642
27737
|
// src/client/overlay-browser/error-recorder.ts
|
|
27643
27738
|
var MAX_ENTRIES = 50;
|
|
@@ -27698,7 +27793,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27698
27793
|
}
|
|
27699
27794
|
|
|
27700
27795
|
// src/client/overlay-react/OverlayApp.tsx
|
|
27701
|
-
var
|
|
27796
|
+
var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
|
|
27702
27797
|
var _externalShowAddModal = null;
|
|
27703
27798
|
var _externalFlashTrigger = null;
|
|
27704
27799
|
function flashFavicon(durationMs = 2200) {
|
|
@@ -27736,20 +27831,20 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27736
27831
|
onClick,
|
|
27737
27832
|
flashing
|
|
27738
27833
|
}) {
|
|
27739
|
-
const svgIcon = /* @__PURE__ */ (0,
|
|
27740
|
-
/* @__PURE__ */ (0,
|
|
27741
|
-
/* @__PURE__ */ (0,
|
|
27742
|
-
/* @__PURE__ */ (0,
|
|
27743
|
-
/* @__PURE__ */ (0,
|
|
27834
|
+
const svgIcon = /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
|
|
27835
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("rect", { x: "2.5", y: "5", width: "2", height: "8", rx: "1", fill: "currentColor", opacity: "0.7" }),
|
|
27836
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("rect", { x: "6.5", y: "2", width: "2", height: "14", rx: "1", fill: "currentColor" }),
|
|
27837
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("rect", { x: "10.5", y: "6", width: "2", height: "6", rx: "1", fill: "currentColor", opacity: "0.7" }),
|
|
27838
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("rect", { x: "14.5", y: "4", width: "2", height: "10", rx: "1", fill: "currentColor", opacity: "0.85" })
|
|
27744
27839
|
] });
|
|
27745
|
-
const [pos, setPos] =
|
|
27746
|
-
const [isDragging, setIsDragging] =
|
|
27747
|
-
const [isHolding, setIsHolding] =
|
|
27748
|
-
const dragOrigin =
|
|
27749
|
-
const holdTimer =
|
|
27750
|
-
const didDrag =
|
|
27751
|
-
const buttonRef =
|
|
27752
|
-
const posRef =
|
|
27840
|
+
const [pos, setPos] = import_react23.default.useState(null);
|
|
27841
|
+
const [isDragging, setIsDragging] = import_react23.default.useState(false);
|
|
27842
|
+
const [isHolding, setIsHolding] = import_react23.default.useState(false);
|
|
27843
|
+
const dragOrigin = import_react23.default.useRef(null);
|
|
27844
|
+
const holdTimer = import_react23.default.useRef(null);
|
|
27845
|
+
const didDrag = import_react23.default.useRef(false);
|
|
27846
|
+
const buttonRef = import_react23.default.useRef(null);
|
|
27847
|
+
const posRef = import_react23.default.useRef(null);
|
|
27753
27848
|
posRef.current = pos;
|
|
27754
27849
|
function getInitialPos(el2) {
|
|
27755
27850
|
const rect = el2.getBoundingClientRect();
|
|
@@ -27815,7 +27910,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27815
27910
|
isDragging ? "trigger-dragging" : ""
|
|
27816
27911
|
].filter(Boolean).join(" ");
|
|
27817
27912
|
const title = isDragging ? "Drag to reposition" : isHolding ? "Drag to reposition \\xB7 Release to open" : "Open Kanban board \\xB7 Hold to drag";
|
|
27818
|
-
return /* @__PURE__ */ (0,
|
|
27913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
27819
27914
|
"button",
|
|
27820
27915
|
{
|
|
27821
27916
|
ref: buttonRef,
|
|
@@ -27840,15 +27935,16 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27840
27935
|
done: { background: "rgba(52,211,153,0.12)", borderColor: "rgba(52,211,153,0.4)", color: "#6ee7b7" }
|
|
27841
27936
|
};
|
|
27842
27937
|
function OverlayAddModal({ opts, onClose, onSubmit }) {
|
|
27843
|
-
const [title, setTitle] =
|
|
27844
|
-
const [description, setDescription] =
|
|
27845
|
-
const [status, setStatus] =
|
|
27846
|
-
const [type, setType] =
|
|
27847
|
-
const [showPreview, setShowPreview] =
|
|
27848
|
-
const
|
|
27849
|
-
const
|
|
27850
|
-
const [
|
|
27851
|
-
const
|
|
27938
|
+
const [title, setTitle] = import_react23.default.useState(opts.initialTitle ?? "");
|
|
27939
|
+
const [description, setDescription] = import_react23.default.useState(opts.initialDescription ?? "");
|
|
27940
|
+
const [status, setStatus] = import_react23.default.useState("todo");
|
|
27941
|
+
const [type, setType] = import_react23.default.useState("Task");
|
|
27942
|
+
const [showPreview, setShowPreview] = import_react23.default.useState(false);
|
|
27943
|
+
const [titleError, setTitleError] = import_react23.default.useState(false);
|
|
27944
|
+
const titleRef = import_react23.default.useRef(null);
|
|
27945
|
+
const [dragPos, setDragPos] = import_react23.default.useState(null);
|
|
27946
|
+
const [isDragging, setIsDragging] = import_react23.default.useState(false);
|
|
27947
|
+
const dragOrigin = import_react23.default.useRef(null);
|
|
27852
27948
|
function onHeaderPointerDown(e) {
|
|
27853
27949
|
if (e.target.closest("button, input, select, textarea, a")) return;
|
|
27854
27950
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
@@ -27867,7 +27963,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27867
27963
|
dragOrigin.current = null;
|
|
27868
27964
|
setIsDragging(false);
|
|
27869
27965
|
}
|
|
27870
|
-
|
|
27966
|
+
import_react23.default.useEffect(() => {
|
|
27871
27967
|
setTimeout(() => {
|
|
27872
27968
|
var _a;
|
|
27873
27969
|
return (_a = titleRef.current) == null ? void 0 : _a.focus();
|
|
@@ -27884,9 +27980,11 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27884
27980
|
var _a;
|
|
27885
27981
|
const t = title.trim();
|
|
27886
27982
|
if (!t) {
|
|
27983
|
+
setTitleError(true);
|
|
27887
27984
|
(_a = titleRef.current) == null ? void 0 : _a.focus();
|
|
27888
27985
|
return;
|
|
27889
27986
|
}
|
|
27987
|
+
setTitleError(false);
|
|
27890
27988
|
let desc = description.trim() || t;
|
|
27891
27989
|
if (type === "Bug") {
|
|
27892
27990
|
const logs = getRecordedLogs();
|
|
@@ -27925,23 +28023,23 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27925
28023
|
cursor: isDragging ? "grabbing" : "grab",
|
|
27926
28024
|
userSelect: "none"
|
|
27927
28025
|
};
|
|
27928
|
-
const DragHandle = /* @__PURE__ */ (0,
|
|
28026
|
+
const DragHandle = /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
27929
28027
|
"span",
|
|
27930
28028
|
{
|
|
27931
28029
|
title: "Drag to move",
|
|
27932
28030
|
style: { display: "flex", alignItems: "center", color: "var(--vibeflow-text-muted)", opacity: 0.5, flexShrink: 0, pointerEvents: "none" },
|
|
27933
|
-
children: /* @__PURE__ */ (0,
|
|
27934
|
-
/* @__PURE__ */ (0,
|
|
27935
|
-
/* @__PURE__ */ (0,
|
|
27936
|
-
/* @__PURE__ */ (0,
|
|
27937
|
-
/* @__PURE__ */ (0,
|
|
27938
|
-
/* @__PURE__ */ (0,
|
|
27939
|
-
/* @__PURE__ */ (0,
|
|
28031
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { width: "12", height: "16", viewBox: "0 0 12 16", fill: "currentColor", "aria-hidden": "true", children: [
|
|
28032
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "3", cy: "3", r: "1.5" }),
|
|
28033
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "9", cy: "3", r: "1.5" }),
|
|
28034
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "3", cy: "8", r: "1.5" }),
|
|
28035
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "9", cy: "8", r: "1.5" }),
|
|
28036
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "3", cy: "13", r: "1.5" }),
|
|
28037
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "9", cy: "13", r: "1.5" })
|
|
27940
28038
|
] })
|
|
27941
28039
|
}
|
|
27942
28040
|
);
|
|
27943
|
-
return /* @__PURE__ */ (0,
|
|
27944
|
-
/* @__PURE__ */ (0,
|
|
28041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "vibeflow-modal-backdrop", onClick: handleBackdropClick, onKeyDown: handleKeyDown, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "vibeflow-modal overlay-add-modal", role: "dialog", "aria-modal": "true", style: modalStyle, children: [
|
|
28042
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
27945
28043
|
"div",
|
|
27946
28044
|
{
|
|
27947
28045
|
className: "modal-header overlay-modal-header",
|
|
@@ -27951,23 +28049,30 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27951
28049
|
onPointerUp: onHeaderPointerUp,
|
|
27952
28050
|
children: [
|
|
27953
28051
|
DragHandle,
|
|
27954
|
-
/* @__PURE__ */ (0,
|
|
27955
|
-
/* @__PURE__ */ (0,
|
|
28052
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TypePicker, { value: type, onChange: setType }),
|
|
28053
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
27956
28054
|
"input",
|
|
27957
28055
|
{
|
|
27958
28056
|
ref: titleRef,
|
|
27959
28057
|
type: "text",
|
|
27960
28058
|
placeholder: "Task title\\u2026",
|
|
27961
28059
|
value: title,
|
|
27962
|
-
onChange: (e) =>
|
|
27963
|
-
|
|
28060
|
+
onChange: (e) => {
|
|
28061
|
+
setTitle(e.target.value);
|
|
28062
|
+
if (titleError && e.target.value.trim()) setTitleError(false);
|
|
28063
|
+
},
|
|
28064
|
+
style: { flex: 1, fontSize: 14, fontWeight: 600, padding: "4px 8px", border: \`1px solid \${titleError ? "rgba(239,68,68,0.7)" : "transparent"}\`, borderRadius: 6, background: titleError ? "rgba(239,68,68,0.07)" : "transparent", color: "var(--vibeflow-text-primary)", fontFamily: "inherit", outline: "none", cursor: "text" },
|
|
27964
28065
|
onFocus: (e) => {
|
|
27965
|
-
|
|
27966
|
-
|
|
28066
|
+
if (!titleError) {
|
|
28067
|
+
e.currentTarget.style.borderColor = "var(--vibeflow-accent-strong)";
|
|
28068
|
+
e.currentTarget.style.background = "var(--vibeflow-surface-elevated)";
|
|
28069
|
+
}
|
|
27967
28070
|
},
|
|
27968
28071
|
onBlur: (e) => {
|
|
27969
|
-
|
|
27970
|
-
|
|
28072
|
+
if (!titleError) {
|
|
28073
|
+
e.currentTarget.style.borderColor = "transparent";
|
|
28074
|
+
e.currentTarget.style.background = "transparent";
|
|
28075
|
+
}
|
|
27971
28076
|
},
|
|
27972
28077
|
onKeyDown: (e) => {
|
|
27973
28078
|
if (e.key === "Enter") handleSave();
|
|
@@ -27975,7 +28080,8 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27975
28080
|
}
|
|
27976
28081
|
}
|
|
27977
28082
|
),
|
|
27978
|
-
/* @__PURE__ */ (0,
|
|
28083
|
+
titleError && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { style: { fontSize: 11, color: "rgba(239,68,68,0.9)", flexShrink: 0, whiteSpace: "nowrap" }, children: "Title is required" }),
|
|
28084
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
27979
28085
|
"button",
|
|
27980
28086
|
{
|
|
27981
28087
|
type: "button",
|
|
@@ -27996,9 +28102,9 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
27996
28102
|
]
|
|
27997
28103
|
}
|
|
27998
28104
|
),
|
|
27999
|
-
/* @__PURE__ */ (0,
|
|
28000
|
-
/* @__PURE__ */ (0,
|
|
28001
|
-
STATUS_OPTIONS.map((s) => /* @__PURE__ */ (0,
|
|
28105
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6, padding: "8px 16px", borderBottom: "1px solid var(--vibeflow-border-strong)" }, children: [
|
|
28106
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { style: { fontSize: 10, color: "var(--vibeflow-text-muted)", fontWeight: 500, textTransform: "uppercase", letterSpacing: "0.04em", flexShrink: 0 }, children: "Status" }),
|
|
28107
|
+
STATUS_OPTIONS.map((s) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
28002
28108
|
"button",
|
|
28003
28109
|
{
|
|
28004
28110
|
type: "button",
|
|
@@ -28021,8 +28127,8 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
28021
28127
|
s
|
|
28022
28128
|
))
|
|
28023
28129
|
] }),
|
|
28024
|
-
(opts.file || opts.component) && /* @__PURE__ */ (0,
|
|
28025
|
-
opts.file && /* @__PURE__ */ (0,
|
|
28130
|
+
(opts.file || opts.component) && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, padding: "6px 16px", background: "var(--vibeflow-surface-elevated)", borderBottom: "1px solid var(--vibeflow-border-subtle)", fontSize: 11, color: "var(--vibeflow-text-muted)" }, children: [
|
|
28131
|
+
opts.file && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
28026
28132
|
"a",
|
|
28027
28133
|
{
|
|
28028
28134
|
href: \`vscode://file\${opts.file}\${opts.line != null ? \`:\${opts.line}\` : ""}\`,
|
|
@@ -28036,16 +28142,16 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
28036
28142
|
]
|
|
28037
28143
|
}
|
|
28038
28144
|
),
|
|
28039
|
-
opts.component && /* @__PURE__ */ (0,
|
|
28145
|
+
opts.component && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 4, padding: "2px 6px", borderRadius: 4, background: "rgba(139,92,246,0.08)", border: "1px solid rgba(139,92,246,0.25)", color: "#8b5cf6", fontSize: 11 }, children: [
|
|
28040
28146
|
"\\u2B21 ",
|
|
28041
28147
|
opts.component
|
|
28042
28148
|
] })
|
|
28043
28149
|
] }),
|
|
28044
|
-
/* @__PURE__ */ (0,
|
|
28045
|
-
/* @__PURE__ */ (0,
|
|
28046
|
-
/* @__PURE__ */ (0,
|
|
28150
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "modal-tabs", children: [
|
|
28151
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: \`modal-tab\${!showPreview ? " active" : ""}\`, onClick: () => setShowPreview(false), children: "Edit" }),
|
|
28152
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: \`modal-tab\${showPreview ? " active" : ""}\`, onClick: () => setShowPreview(true), children: "Preview" })
|
|
28047
28153
|
] }),
|
|
28048
|
-
/* @__PURE__ */ (0,
|
|
28154
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "modal-body", children: !showPreview ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "modal-editor-pane", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
28049
28155
|
AutoExpandTextarea,
|
|
28050
28156
|
{
|
|
28051
28157
|
className: "dp-textarea",
|
|
@@ -28055,30 +28161,30 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
28055
28161
|
baseRows: 5,
|
|
28056
28162
|
maxRows: 14
|
|
28057
28163
|
}
|
|
28058
|
-
) }) : /* @__PURE__ */ (0,
|
|
28164
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
28059
28165
|
MarkdownPreview,
|
|
28060
28166
|
{
|
|
28061
28167
|
markdown: description,
|
|
28062
28168
|
className: "modal-preview-pane"
|
|
28063
28169
|
}
|
|
28064
28170
|
) }),
|
|
28065
|
-
type === "Bug" && /* @__PURE__ */ (0,
|
|
28066
|
-
/* @__PURE__ */ (0,
|
|
28067
|
-
/* @__PURE__ */ (0,
|
|
28171
|
+
type === "Bug" && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6, padding: "6px 16px", background: "rgba(239,68,68,0.06)", borderTop: "1px solid rgba(239,68,68,0.18)", fontSize: 11, color: "rgba(239,68,68,0.75)" }, children: [
|
|
28172
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: "\\u{1F534}" }),
|
|
28173
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: "Console errors & warnings will be attached to this report" })
|
|
28068
28174
|
] }),
|
|
28069
|
-
/* @__PURE__ */ (0,
|
|
28070
|
-
/* @__PURE__ */ (0,
|
|
28071
|
-
/* @__PURE__ */ (0,
|
|
28072
|
-
/* @__PURE__ */ (0,
|
|
28175
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "modal-footer", children: [
|
|
28176
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "modal-footer-left", children: [
|
|
28177
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("button", { type: "button", className: "btn-primary", onClick: handleSave, disabled: !title.trim(), style: { opacity: title.trim() ? 1 : 0.45, cursor: title.trim() ? "pointer" : "not-allowed" }, children: "Add Task" }),
|
|
28178
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("button", { type: "button", className: "btn-ghost", onClick: onClose, children: "Cancel" })
|
|
28073
28179
|
] }),
|
|
28074
|
-
/* @__PURE__ */ (0,
|
|
28180
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "modal-footer-center" })
|
|
28075
28181
|
] })
|
|
28076
28182
|
] }) });
|
|
28077
28183
|
}
|
|
28078
28184
|
function OverlayApp({ onOpenKanban, onSubmitTask }) {
|
|
28079
|
-
const [addModalOpts, setAddModalOpts] =
|
|
28080
|
-
const [triggerFlashing, setTriggerFlashing] =
|
|
28081
|
-
|
|
28185
|
+
const [addModalOpts, setAddModalOpts] = import_react23.default.useState(null);
|
|
28186
|
+
const [triggerFlashing, setTriggerFlashing] = import_react23.default.useState(false);
|
|
28187
|
+
import_react23.default.useEffect(() => {
|
|
28082
28188
|
_externalShowAddModal = (opts) => setAddModalOpts(opts);
|
|
28083
28189
|
_externalFlashTrigger = () => {
|
|
28084
28190
|
setTriggerFlashing(true);
|
|
@@ -28091,15 +28197,15 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
28091
28197
|
};
|
|
28092
28198
|
}, []);
|
|
28093
28199
|
const isKanbanPage = typeof document !== "undefined" && document.body.hasAttribute("data-vibeflow-cli-kanban");
|
|
28094
|
-
return /* @__PURE__ */ (0,
|
|
28095
|
-
!isKanbanPage && /* @__PURE__ */ (0,
|
|
28200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
|
|
28201
|
+
!isKanbanPage && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
28096
28202
|
CornerTrigger,
|
|
28097
28203
|
{
|
|
28098
28204
|
onClick: onOpenKanban,
|
|
28099
28205
|
flashing: triggerFlashing
|
|
28100
28206
|
}
|
|
28101
28207
|
),
|
|
28102
|
-
addModalOpts !== null && /* @__PURE__ */ (0,
|
|
28208
|
+
addModalOpts !== null && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
28103
28209
|
OverlayAddModal,
|
|
28104
28210
|
{
|
|
28105
28211
|
opts: addModalOpts,
|
|
@@ -28912,7 +29018,20 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
28912
29018
|
btnSave.addEventListener("click", () => {
|
|
28913
29019
|
var _a, _b;
|
|
28914
29020
|
const text = textarea.value.trim();
|
|
28915
|
-
const
|
|
29021
|
+
const rawTitle = titleInput.value.trim();
|
|
29022
|
+
if (!rawTitle) {
|
|
29023
|
+
titleInput.classList.remove("input-error");
|
|
29024
|
+
void titleInput.offsetWidth;
|
|
29025
|
+
titleInput.classList.add("input-error");
|
|
29026
|
+
titleInput.focus();
|
|
29027
|
+
const clear = () => {
|
|
29028
|
+
titleInput.classList.remove("input-error");
|
|
29029
|
+
titleInput.removeEventListener("input", clear);
|
|
29030
|
+
};
|
|
29031
|
+
titleInput.addEventListener("input", clear);
|
|
29032
|
+
return;
|
|
29033
|
+
}
|
|
29034
|
+
const title = rawTitle;
|
|
28916
29035
|
if (!text && !title) return;
|
|
28917
29036
|
const rawInnerText = ((_a = element.innerText) == null ? void 0 : _a.trim()) ?? "";
|
|
28918
29037
|
const capturedHtmlText = rawInnerText ? rawInnerText.slice(0, 300) : void 0;
|
|
@@ -29070,7 +29189,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
29070
29189
|
}
|
|
29071
29190
|
|
|
29072
29191
|
// src/client/overlay-browser/index.ts
|
|
29073
|
-
var
|
|
29192
|
+
var import_react24 = __toESM(require_react(), 1);
|
|
29074
29193
|
var import_client = __toESM(require_client(), 1);
|
|
29075
29194
|
function main() {
|
|
29076
29195
|
startRecording();
|
|
@@ -29101,7 +29220,7 @@ import{a as oe,b as ye,c as ln,d as un,e as be,f as cn,g as fe,h as me,i as ge,j
|
|
|
29101
29220
|
root.appendChild(reactContainer);
|
|
29102
29221
|
const reactRoot = (0, import_client.createRoot)(reactContainer);
|
|
29103
29222
|
reactRoot.render(
|
|
29104
|
-
|
|
29223
|
+
import_react24.default.createElement(OverlayApp, {
|
|
29105
29224
|
onOpenKanban: () => {
|
|
29106
29225
|
if (PROTO_CONFIG.boardId) {
|
|
29107
29226
|
const origin = new URL(PROTO_CONFIG.apiUrl).origin;
|
|
@@ -29214,27 +29333,34 @@ lucide-react/dist/esm/lucide-react.js:
|
|
|
29214
29333
|
* See the LICENSE file in the root directory of this source tree.
|
|
29215
29334
|
*)
|
|
29216
29335
|
*/
|
|
29217
|
-
`;function
|
|
29218
|
-
|
|
29219
|
-
|
|
29220
|
-
/*! 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}.pointer-events-none{pointer-events:none}.\\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-3{left:.75rem}.right-2{right:.5rem}.top-1\\/2{top:50%}.mb-0\\.5{margin-bottom:.125rem}.ml-1\\.5{margin-left:.375rem}.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}.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%}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.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))}.resize{resize:both}.flex-col{flex-direction:column}.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-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-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\\.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}.pl-9{padding-left:2.25rem}.pr-8{padding-right:2rem}.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{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)}}.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}.focus\\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.group\\/comment:hover .group-hover\\/comment\\:opacity-100{opacity:1}`;var Be='"use strict";(()=>{var Am=Object.create;var Yi=Object.defineProperty;var Mm=Object.getOwnPropertyDescriptor;var Fm=Object.getOwnPropertyNames;var Em=Object.getPrototypeOf,Bm=Object.prototype.hasOwnProperty;var Qt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Om=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Fm(t))!Bm.call(e,o)&&o!==a&&Yi(e,o,{get:()=>t[o],enumerable:!(r=Mm(t,o))||r.enumerable});return e};var A=(e,t,a)=>(a=e!=null?Am(Em(e)):{},Om(t||!e||!e.__esModule?Yi(a,"default",{value:e,enumerable:!0}):a,e));var id=Qt(J=>{"use strict";var no=Symbol.for("react.element"),zm=Symbol.for("react.portal"),Um=Symbol.for("react.fragment"),Nm=Symbol.for("react.strict_mode"),Hm=Symbol.for("react.profiler"),_m=Symbol.for("react.provider"),qm=Symbol.for("react.context"),Wm=Symbol.for("react.forward_ref"),Vm=Symbol.for("react.suspense"),$m=Symbol.for("react.memo"),Gm=Symbol.for("react.lazy"),Zi=Symbol.iterator;function jm(e){return e===null||typeof e!="object"?null:(e=Zi&&e[Zi]||e["@@iterator"],typeof e=="function"?e:null)}var td={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ad=Object.assign,rd={};function xr(e,t,a){this.props=e,this.context=t,this.refs=rd,this.updater=a||td}xr.prototype.isReactComponent={};xr.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")};xr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function od(){}od.prototype=xr.prototype;function cu(e,t,a){this.props=e,this.context=t,this.refs=rd,this.updater=a||td}var pu=cu.prototype=new od;pu.constructor=cu;ad(pu,xr.prototype);pu.isPureReactComponent=!0;var Ji=Array.isArray,nd=Object.prototype.hasOwnProperty,mu={current:null},ld={key:!0,ref:!0,__self:!0,__source:!0};function ud(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)nd.call(t,r)&&!ld.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(u===1)o.children=a;else if(1<u){for(var s=Array(u),f=0;f<u;f++)s[f]=arguments[f+2];o.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps,u)o[r]===void 0&&(o[r]=u[r]);return{$$typeof:no,type:e,key:n,ref:l,props:o,_owner:mu.current}}function Km(e,t){return{$$typeof:no,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function gu(e){return typeof e=="object"&&e!==null&&e.$$typeof===no}function Xm(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return t[a]})}var ed=/\\/+/g;function fu(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Xm(""+e.key):t.toString(36)}function bn(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 no:case zm:l=!0}}if(l)return l=e,o=o(l),e=r===""?"."+fu(l,0):r,Ji(o)?(a="",e!=null&&(a=e.replace(ed,"$&/")+"/"),bn(o,t,a,"",function(f){return f})):o!=null&&(gu(o)&&(o=Km(o,a+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(ed,"$&/")+"/")+e)),t.push(o)),1;if(l=0,r=r===""?".":r+":",Ji(e))for(var u=0;u<e.length;u++){n=e[u];var s=r+fu(n,u);l+=bn(n,t,a,s,o)}else if(s=jm(e),typeof s=="function")for(e=s.call(e),u=0;!(n=e.next()).done;)n=n.value,s=r+fu(n,u++),l+=bn(n,t,a,s,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 kn(e,t,a){if(e==null)return e;var r=[],o=0;return bn(e,r,"","",function(n){return t.call(a,n,o++)}),r}function Qm(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},Pn={transition:null},Ym={ReactCurrentDispatcher:je,ReactCurrentBatchConfig:Pn,ReactCurrentOwner:mu};function sd(){throw Error("act(...) is not supported in production builds of React.")}J.Children={map:kn,forEach:function(e,t,a){kn(e,function(){t.apply(this,arguments)},a)},count:function(e){var t=0;return kn(e,function(){t++}),t},toArray:function(e){return kn(e,function(t){return t})||[]},only:function(e){if(!gu(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};J.Component=xr;J.Fragment=Um;J.Profiler=Hm;J.PureComponent=cu;J.StrictMode=Nm;J.Suspense=Vm;J.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Ym;J.act=sd;J.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=ad({},e.props),o=e.key,n=e.ref,l=e._owner;if(t!=null){if(t.ref!==void 0&&(n=t.ref,l=mu.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(s in t)nd.call(t,s)&&!ld.hasOwnProperty(s)&&(r[s]=t[s]===void 0&&u!==void 0?u[s]:t[s])}var s=arguments.length-2;if(s===1)r.children=a;else if(1<s){u=Array(s);for(var f=0;f<s;f++)u[f]=arguments[f+2];r.children=u}return{$$typeof:no,type:e.type,key:o,ref:n,props:r,_owner:l}};J.createContext=function(e){return e={$$typeof:qm,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:_m,_context:e},e.Consumer=e};J.createElement=ud;J.createFactory=function(e){var t=ud.bind(null,e);return t.type=e,t};J.createRef=function(){return{current:null}};J.forwardRef=function(e){return{$$typeof:Wm,render:e}};J.isValidElement=gu;J.lazy=function(e){return{$$typeof:Gm,_payload:{_status:-1,_result:e},_init:Qm}};J.memo=function(e,t){return{$$typeof:$m,type:e,compare:t===void 0?null:t}};J.startTransition=function(e){var t=Pn.transition;Pn.transition={};try{e()}finally{Pn.transition=t}};J.unstable_act=sd;J.useCallback=function(e,t){return je.current.useCallback(e,t)};J.useContext=function(e){return je.current.useContext(e)};J.useDebugValue=function(){};J.useDeferredValue=function(e){return je.current.useDeferredValue(e)};J.useEffect=function(e,t){return je.current.useEffect(e,t)};J.useId=function(){return je.current.useId()};J.useImperativeHandle=function(e,t,a){return je.current.useImperativeHandle(e,t,a)};J.useInsertionEffect=function(e,t){return je.current.useInsertionEffect(e,t)};J.useLayoutEffect=function(e,t){return je.current.useLayoutEffect(e,t)};J.useMemo=function(e,t){return je.current.useMemo(e,t)};J.useReducer=function(e,t,a){return je.current.useReducer(e,t,a)};J.useRef=function(e){return je.current.useRef(e)};J.useState=function(e){return je.current.useState(e)};J.useSyncExternalStore=function(e,t,a){return je.current.useSyncExternalStore(e,t,a)};J.useTransition=function(){return je.current.useTransition()};J.version="18.3.1"});var Ce=Qt((Jx,dd)=>{"use strict";dd.exports=id()});var yd=Qt(ge=>{"use strict";function Lu(e,t){var a=e.length;e.push(t);e:for(;0<a;){var r=a-1>>>1,o=e[r];if(0<Tn(o,t))e[r]=t,e[a]=o,a=r;else break e}}function kt(e){return e.length===0?null:e[0]}function Dn(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,u=e[l],s=l+1,f=e[s];if(0>Tn(u,a))s<o&&0>Tn(f,u)?(e[r]=f,e[s]=a,r=s):(e[r]=u,e[l]=a,r=l);else if(s<o&&0>Tn(f,a))e[r]=f,e[s]=a,r=s;else break e}}return t}function Tn(e,t){var a=e.sortIndex-t.sortIndex;return a!==0?a:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(fd=performance,ge.unstable_now=function(){return fd.now()}):(hu=Date,cd=hu.now(),ge.unstable_now=function(){return hu.now()-cd});var fd,hu,cd,Ut=[],da=[],Zm=1,mt=null,He=3,An=!1,$a=!1,uo=!1,gd=typeof setTimeout=="function"?setTimeout:null,hd=typeof clearTimeout=="function"?clearTimeout:null,pd=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function yu(e){for(var t=kt(da);t!==null;){if(t.callback===null)Dn(da);else if(t.startTime<=e)Dn(da),t.sortIndex=t.expirationTime,Lu(Ut,t);else break;t=kt(da)}}function Su(e){if(uo=!1,yu(e),!$a)if(kt(Ut)!==null)$a=!0,Cu(Iu);else{var t=kt(da);t!==null&&wu(Su,t.startTime-e)}}function Iu(e,t){$a=!1,uo&&(uo=!1,hd(so),so=-1),An=!0;var a=He;try{for(yu(t),mt=kt(Ut);mt!==null&&(!(mt.expirationTime>t)||e&&!Ld());){var r=mt.callback;if(typeof r=="function"){mt.callback=null,He=mt.priorityLevel;var o=r(mt.expirationTime<=t);t=ge.unstable_now(),typeof o=="function"?mt.callback=o:mt===kt(Ut)&&Dn(Ut),yu(t)}else Dn(Ut);mt=kt(Ut)}if(mt!==null)var n=!0;else{var l=kt(da);l!==null&&wu(Su,l.startTime-t),n=!1}return n}finally{mt=null,He=a,An=!1}}var Mn=!1,Rn=null,so=-1,xd=5,vd=-1;function Ld(){return!(ge.unstable_now()-vd<xd)}function xu(){if(Rn!==null){var e=ge.unstable_now();vd=e;var t=!0;try{t=Rn(!0,e)}finally{t?lo():(Mn=!1,Rn=null)}}else Mn=!1}var lo;typeof pd=="function"?lo=function(){pd(xu)}:typeof MessageChannel<"u"?(vu=new MessageChannel,md=vu.port2,vu.port1.onmessage=xu,lo=function(){md.postMessage(null)}):lo=function(){gd(xu,0)};var vu,md;function Cu(e){Rn=e,Mn||(Mn=!0,lo())}function wu(e,t){so=gd(function(){e(ge.unstable_now())},t)}ge.unstable_IdlePriority=5;ge.unstable_ImmediatePriority=1;ge.unstable_LowPriority=4;ge.unstable_NormalPriority=3;ge.unstable_Profiling=null;ge.unstable_UserBlockingPriority=2;ge.unstable_cancelCallback=function(e){e.callback=null};ge.unstable_continueExecution=function(){$a||An||($a=!0,Cu(Iu))};ge.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"):xd=0<e?Math.floor(1e3/e):5};ge.unstable_getCurrentPriorityLevel=function(){return He};ge.unstable_getFirstCallbackNode=function(){return kt(Ut)};ge.unstable_next=function(e){switch(He){case 1:case 2:case 3:var t=3;break;default:t=He}var a=He;He=t;try{return e()}finally{He=a}};ge.unstable_pauseExecution=function(){};ge.unstable_requestPaint=function(){};ge.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var a=He;He=e;try{return t()}finally{He=a}};ge.unstable_scheduleCallback=function(e,t,a){var r=ge.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:Zm++,callback:t,priorityLevel:e,startTime:a,expirationTime:o,sortIndex:-1},a>r?(e.sortIndex=a,Lu(da,e),kt(Ut)===null&&e===kt(da)&&(uo?(hd(so),so=-1):uo=!0,wu(Su,a-r))):(e.sortIndex=o,Lu(Ut,e),$a||An||($a=!0,Cu(Iu))),e};ge.unstable_shouldYield=Ld;ge.unstable_wrapCallback=function(e){var t=He;return function(){var a=He;He=t;try{return e.apply(this,arguments)}finally{He=a}}}});var Id=Qt((tv,Sd)=>{"use strict";Sd.exports=yd()});var Pp=Qt(ct=>{"use strict";var Jm=Ce(),dt=Id();function b(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 Df=new Set,Ao={};function or(e,t){Ur(e,t),Ur(e+"Capture",t)}function Ur(e,t){for(Ao[e]=t,e=0;e<t.length;e++)Df.add(t[e])}var aa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ju=Object.prototype.hasOwnProperty,eg=/^[: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]*$/,Cd={},wd={};function tg(e){return ju.call(wd,e)?!0:ju.call(Cd,e)?!1:eg.test(e)?wd[e]=!0:(Cd[e]=!0,!1)}function ag(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 rg(e,t,a,r){if(t===null||typeof t>"u"||ag(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 Ue={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ue[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];Ue[t]=new Qe(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ue[e]=new Qe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ue[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){Ue[e]=new Qe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ue[e]=new Qe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ue[e]=new Qe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ue[e]=new Qe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ue[e]=new Qe(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ns=/[\\-:]([a-z])/g;function Hs(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(Ns,Hs);Ue[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(Ns,Hs);Ue[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(Ns,Hs);Ue[t]=new Qe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ue[e]=new Qe(e,1,!1,e.toLowerCase(),null,!1,!1)});Ue.xlinkHref=new Qe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ue[e]=new Qe(e,1,!1,e.toLowerCase(),null,!0,!0)});function _s(e,t,a,r){var o=Ue.hasOwnProperty(t)?Ue[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(rg(t,a,o,r)&&(a=null),r||o===null?tg(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 la=Jm.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Fn=Symbol.for("react.element"),yr=Symbol.for("react.portal"),Sr=Symbol.for("react.fragment"),qs=Symbol.for("react.strict_mode"),Ku=Symbol.for("react.profiler"),Af=Symbol.for("react.provider"),Mf=Symbol.for("react.context"),Ws=Symbol.for("react.forward_ref"),Xu=Symbol.for("react.suspense"),Qu=Symbol.for("react.suspense_list"),Vs=Symbol.for("react.memo"),ca=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode");var Ff=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var kd=Symbol.iterator;function io(e){return e===null||typeof e!="object"?null:(e=kd&&e[kd]||e["@@iterator"],typeof e=="function"?e:null)}var be=Object.assign,ku;function vo(e){if(ku===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\\n( *(at )?)/);ku=t&&t[1]||""}return`\n`+ku+e}var bu=!1;function Pu(e,t){if(!e||bu)return"";bu=!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(f){var r=f}Reflect.construct(e,[],t)}else{try{t.call()}catch(f){r=f}e.call(t.prototype)}else{try{throw Error()}catch(f){r=f}e()}}catch(f){if(f&&r&&typeof f.stack=="string"){for(var o=f.stack.split(`\n`),n=r.stack.split(`\n`),l=o.length-1,u=n.length-1;1<=l&&0<=u&&o[l]!==n[u];)u--;for(;1<=l&&0<=u;l--,u--)if(o[l]!==n[u]){if(l!==1||u!==1)do if(l--,u--,0>u||o[l]!==n[u]){var s=`\n`+o[l].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=l&&0<=u);break}}}finally{bu=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?vo(e):""}function og(e){switch(e.tag){case 5:return vo(e.type);case 16:return vo("Lazy");case 13:return vo("Suspense");case 19:return vo("SuspenseList");case 0:case 2:case 15:return e=Pu(e.type,!1),e;case 11:return e=Pu(e.type.render,!1),e;case 1:return e=Pu(e.type,!0),e;default:return""}}function Yu(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 Sr:return"Fragment";case yr:return"Portal";case Ku:return"Profiler";case qs:return"StrictMode";case Xu:return"Suspense";case Qu:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Mf:return(e.displayName||"Context")+".Consumer";case Af:return(e._context.displayName||"Context")+".Provider";case Ws:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Vs:return t=e.displayName||null,t!==null?t:Yu(e.type)||"Memo";case ca:t=e._payload,e=e._init;try{return Yu(e(t))}catch{}}return null}function ng(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 Yu(t);case 8:return t===qs?"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 ba(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ef(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function lg(e){var t=Ef(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 En(e){e._valueTracker||(e._valueTracker=lg(e))}function Bf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),r="";return e&&(r=Ef(e)?e.checked?"true":"false":e.value),e=r,e!==a?(t.setValue(e),!0):!1}function sl(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 Zu(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=ba(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 Of(e,t){t=t.checked,t!=null&&_s(e,"checked",t,!1)}function Ju(e,t){Of(e,t);var a=ba(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")?es(e,t.type,a):t.hasOwnProperty("defaultValue")&&es(e,t.type,ba(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Pd(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 es(e,t,a){(t!=="number"||sl(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var Lo=Array.isArray;function Mr(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=""+ba(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 ts(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(b(91));return be({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Td(e,t){var a=t.value;if(a==null){if(a=t.children,t=t.defaultValue,a!=null){if(t!=null)throw Error(b(92));if(Lo(a)){if(1<a.length)throw Error(b(93));a=a[0]}t=a}t==null&&(t=""),a=t}e._wrapperState={initialValue:ba(a)}}function zf(e,t){var a=ba(t.value),r=ba(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 Rd(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Uf(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 as(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Uf(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Bn,Nf=(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(Bn=Bn||document.createElement("div"),Bn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Bn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Mo(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var Io={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},ug=["Webkit","ms","Moz","O"];Object.keys(Io).forEach(function(e){ug.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Io[t]=Io[e]})});function Hf(e,t,a){return t==null||typeof t=="boolean"||t===""?"":a||typeof t!="number"||t===0||Io.hasOwnProperty(e)&&Io[e]?(""+t).trim():t+"px"}function _f(e,t){e=e.style;for(var a in t)if(t.hasOwnProperty(a)){var r=a.indexOf("--")===0,o=Hf(a,t[a],r);a==="float"&&(a="cssFloat"),r?e.setProperty(a,o):e[a]=o}}var sg=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 rs(e,t){if(t){if(sg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(b(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(b(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(b(61))}if(t.style!=null&&typeof t.style!="object")throw Error(b(62))}}function os(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 ns=null;function $s(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ls=null,Fr=null,Er=null;function Dd(e){if(e=Qo(e)){if(typeof ls!="function")throw Error(b(280));var t=e.stateNode;t&&(t=Ol(t),ls(e.stateNode,e.type,t))}}function qf(e){Fr?Er?Er.push(e):Er=[e]:Fr=e}function Wf(){if(Fr){var e=Fr,t=Er;if(Er=Fr=null,Dd(e),t)for(e=0;e<t.length;e++)Dd(t[e])}}function Vf(e,t){return e(t)}function $f(){}var Tu=!1;function Gf(e,t,a){if(Tu)return e(t,a);Tu=!0;try{return Vf(e,t,a)}finally{Tu=!1,(Fr!==null||Er!==null)&&($f(),Wf())}}function Fo(e,t){var a=e.stateNode;if(a===null)return null;var r=Ol(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(b(231,t,typeof a));return a}var us=!1;if(aa)try{vr={},Object.defineProperty(vr,"passive",{get:function(){us=!0}}),window.addEventListener("test",vr,vr),window.removeEventListener("test",vr,vr)}catch{us=!1}var vr;function ig(e,t,a,r,o,n,l,u,s){var f=Array.prototype.slice.call(arguments,3);try{t.apply(a,f)}catch(m){this.onError(m)}}var Co=!1,il=null,dl=!1,ss=null,dg={onError:function(e){Co=!0,il=e}};function fg(e,t,a,r,o,n,l,u,s){Co=!1,il=null,ig.apply(dg,arguments)}function cg(e,t,a,r,o,n,l,u,s){if(fg.apply(this,arguments),Co){if(Co){var f=il;Co=!1,il=null}else throw Error(b(198));dl||(dl=!0,ss=f)}}function nr(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 jf(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 Ad(e){if(nr(e)!==e)throw Error(b(188))}function pg(e){var t=e.alternate;if(!t){if(t=nr(e),t===null)throw Error(b(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 Ad(o),e;if(n===r)return Ad(o),t;n=n.sibling}throw Error(b(188))}if(a.return!==r.return)a=o,r=n;else{for(var l=!1,u=o.child;u;){if(u===a){l=!0,a=o,r=n;break}if(u===r){l=!0,r=o,a=n;break}u=u.sibling}if(!l){for(u=n.child;u;){if(u===a){l=!0,a=n,r=o;break}if(u===r){l=!0,r=n,a=o;break}u=u.sibling}if(!l)throw Error(b(189))}}if(a.alternate!==r)throw Error(b(190))}if(a.tag!==3)throw Error(b(188));return a.stateNode.current===a?e:t}function Kf(e){return e=pg(e),e!==null?Xf(e):null}function Xf(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Xf(e);if(t!==null)return t;e=e.sibling}return null}var Qf=dt.unstable_scheduleCallback,Md=dt.unstable_cancelCallback,mg=dt.unstable_shouldYield,gg=dt.unstable_requestPaint,Te=dt.unstable_now,hg=dt.unstable_getCurrentPriorityLevel,Gs=dt.unstable_ImmediatePriority,Yf=dt.unstable_UserBlockingPriority,fl=dt.unstable_NormalPriority,xg=dt.unstable_LowPriority,Zf=dt.unstable_IdlePriority,Ml=null,qt=null;function vg(e){if(qt&&typeof qt.onCommitFiberRoot=="function")try{qt.onCommitFiberRoot(Ml,e,void 0,(e.current.flags&128)===128)}catch{}}var Dt=Math.clz32?Math.clz32:Sg,Lg=Math.log,yg=Math.LN2;function Sg(e){return e>>>=0,e===0?32:31-(Lg(e)/yg|0)|0}var On=64,zn=4194304;function yo(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 cl(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 u=l&~o;u!==0?r=yo(u):(n&=l,n!==0&&(r=yo(n)))}else l=a&~o,l!==0?r=yo(l):n!==0&&(r=yo(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-Dt(t),o=1<<a,r|=e[a],t&=~o;return r}function Ig(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 Cg(e,t){for(var a=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,n=e.pendingLanes;0<n;){var l=31-Dt(n),u=1<<l,s=o[l];s===-1?((u&a)===0||(u&r)!==0)&&(o[l]=Ig(u,t)):s<=t&&(e.expiredLanes|=u),n&=~u}}function is(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Jf(){var e=On;return On<<=1,(On&4194240)===0&&(On=64),e}function Ru(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Ko(e,t,a){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Dt(t),e[t]=a}function wg(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-Dt(a),n=1<<o;t[o]=0,r[o]=-1,e[o]=-1,a&=~n}}function js(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var r=31-Dt(a),o=1<<r;o&t|e[r]&t&&(e[r]|=t),a&=~o}}var ce=0;function ec(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var tc,Ks,ac,rc,oc,ds=!1,Un=[],va=null,La=null,ya=null,Eo=new Map,Bo=new Map,ma=[],kg="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 Fd(e,t){switch(e){case"focusin":case"focusout":va=null;break;case"dragenter":case"dragleave":La=null;break;case"mouseover":case"mouseout":ya=null;break;case"pointerover":case"pointerout":Eo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Bo.delete(t.pointerId)}}function fo(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=Qo(t),t!==null&&Ks(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function bg(e,t,a,r,o){switch(t){case"focusin":return va=fo(va,e,t,a,r,o),!0;case"dragenter":return La=fo(La,e,t,a,r,o),!0;case"mouseover":return ya=fo(ya,e,t,a,r,o),!0;case"pointerover":var n=o.pointerId;return Eo.set(n,fo(Eo.get(n)||null,e,t,a,r,o)),!0;case"gotpointercapture":return n=o.pointerId,Bo.set(n,fo(Bo.get(n)||null,e,t,a,r,o)),!0}return!1}function nc(e){var t=Ka(e.target);if(t!==null){var a=nr(t);if(a!==null){if(t=a.tag,t===13){if(t=jf(a),t!==null){e.blockedOn=t,oc(e.priority,function(){ac(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 Zn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=fs(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var r=new a.constructor(a.type,a);ns=r,a.target.dispatchEvent(r),ns=null}else return t=Qo(a),t!==null&&Ks(t),e.blockedOn=a,!1;t.shift()}return!0}function Ed(e,t,a){Zn(e)&&a.delete(t)}function Pg(){ds=!1,va!==null&&Zn(va)&&(va=null),La!==null&&Zn(La)&&(La=null),ya!==null&&Zn(ya)&&(ya=null),Eo.forEach(Ed),Bo.forEach(Ed)}function co(e,t){e.blockedOn===t&&(e.blockedOn=null,ds||(ds=!0,dt.unstable_scheduleCallback(dt.unstable_NormalPriority,Pg)))}function Oo(e){function t(o){return co(o,e)}if(0<Un.length){co(Un[0],e);for(var a=1;a<Un.length;a++){var r=Un[a];r.blockedOn===e&&(r.blockedOn=null)}}for(va!==null&&co(va,e),La!==null&&co(La,e),ya!==null&&co(ya,e),Eo.forEach(t),Bo.forEach(t),a=0;a<ma.length;a++)r=ma[a],r.blockedOn===e&&(r.blockedOn=null);for(;0<ma.length&&(a=ma[0],a.blockedOn===null);)nc(a),a.blockedOn===null&&ma.shift()}var Br=la.ReactCurrentBatchConfig,pl=!0;function Tg(e,t,a,r){var o=ce,n=Br.transition;Br.transition=null;try{ce=1,Xs(e,t,a,r)}finally{ce=o,Br.transition=n}}function Rg(e,t,a,r){var o=ce,n=Br.transition;Br.transition=null;try{ce=4,Xs(e,t,a,r)}finally{ce=o,Br.transition=n}}function Xs(e,t,a,r){if(pl){var o=fs(e,t,a,r);if(o===null)Ou(e,t,r,ml,a),Fd(e,r);else if(bg(o,e,t,a,r))r.stopPropagation();else if(Fd(e,r),t&4&&-1<kg.indexOf(e)){for(;o!==null;){var n=Qo(o);if(n!==null&&tc(n),n=fs(e,t,a,r),n===null&&Ou(e,t,r,ml,a),n===o)break;o=n}o!==null&&r.stopPropagation()}else Ou(e,t,r,null,a)}}var ml=null;function fs(e,t,a,r){if(ml=null,e=$s(r),e=Ka(e),e!==null)if(t=nr(e),t===null)e=null;else if(a=t.tag,a===13){if(e=jf(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 ml=e,null}function lc(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(hg()){case Gs:return 1;case Yf:return 4;case fl:case xg:return 16;case Zf:return 536870912;default:return 16}default:return 16}}var ha=null,Qs=null,Jn=null;function uc(){if(Jn)return Jn;var e,t=Qs,a=t.length,r,o="value"in ha?ha.value:ha.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 Jn=o.slice(e,1<r?1-r:void 0)}function el(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 Nn(){return!0}function Bd(){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 u in e)e.hasOwnProperty(u)&&(a=e[u],this[u]=a?a(n):n[u]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?Nn:Bd,this.isPropagationStopped=Bd,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=Nn)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Nn)},persist:function(){},isPersistent:Nn}),t}var $r={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ys=ft($r),Xo=be({},$r,{view:0,detail:0}),Dg=ft(Xo),Du,Au,po,Fl=be({},Xo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Zs,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!==po&&(po&&e.type==="mousemove"?(Du=e.screenX-po.screenX,Au=e.screenY-po.screenY):Au=Du=0,po=e),Du)},movementY:function(e){return"movementY"in e?e.movementY:Au}}),Od=ft(Fl),Ag=be({},Fl,{dataTransfer:0}),Mg=ft(Ag),Fg=be({},Xo,{relatedTarget:0}),Mu=ft(Fg),Eg=be({},$r,{animationName:0,elapsedTime:0,pseudoElement:0}),Bg=ft(Eg),Og=be({},$r,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),zg=ft(Og),Ug=be({},$r,{data:0}),zd=ft(Ug),Ng={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Hg={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"},_g={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function qg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=_g[e])?!!t[e]:!1}function Zs(){return qg}var Wg=be({},Xo,{key:function(e){if(e.key){var t=Ng[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=el(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Hg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Zs,charCode:function(e){return e.type==="keypress"?el(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?el(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Vg=ft(Wg),$g=be({},Fl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ud=ft($g),Gg=be({},Xo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Zs}),jg=ft(Gg),Kg=be({},$r,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xg=ft(Kg),Qg=be({},Fl,{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}),Yg=ft(Qg),Zg=[9,13,27,32],Js=aa&&"CompositionEvent"in window,wo=null;aa&&"documentMode"in document&&(wo=document.documentMode);var Jg=aa&&"TextEvent"in window&&!wo,sc=aa&&(!Js||wo&&8<wo&&11>=wo),Nd=" ",Hd=!1;function ic(e,t){switch(e){case"keyup":return Zg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function dc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ir=!1;function eh(e,t){switch(e){case"compositionend":return dc(t);case"keypress":return t.which!==32?null:(Hd=!0,Nd);case"textInput":return e=t.data,e===Nd&&Hd?null:e;default:return null}}function th(e,t){if(Ir)return e==="compositionend"||!Js&&ic(e,t)?(e=uc(),Jn=Qs=ha=null,Ir=!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 sc&&t.locale!=="ko"?null:t.data;default:return null}}var ah={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 _d(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!ah[e.type]:t==="textarea"}function fc(e,t,a,r){qf(r),t=gl(t,"onChange"),0<t.length&&(a=new Ys("onChange","change",null,a,r),e.push({event:a,listeners:t}))}var ko=null,zo=null;function rh(e){Ic(e,0)}function El(e){var t=kr(e);if(Bf(t))return e}function oh(e,t){if(e==="change")return t}var cc=!1;aa&&(aa?(_n="oninput"in document,_n||(Fu=document.createElement("div"),Fu.setAttribute("oninput","return;"),_n=typeof Fu.oninput=="function"),Hn=_n):Hn=!1,cc=Hn&&(!document.documentMode||9<document.documentMode));var Hn,_n,Fu;function qd(){ko&&(ko.detachEvent("onpropertychange",pc),zo=ko=null)}function pc(e){if(e.propertyName==="value"&&El(zo)){var t=[];fc(t,zo,e,$s(e)),Gf(rh,t)}}function nh(e,t,a){e==="focusin"?(qd(),ko=t,zo=a,ko.attachEvent("onpropertychange",pc)):e==="focusout"&&qd()}function lh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return El(zo)}function uh(e,t){if(e==="click")return El(t)}function sh(e,t){if(e==="input"||e==="change")return El(t)}function ih(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Mt=typeof Object.is=="function"?Object.is:ih;function Uo(e,t){if(Mt(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(!ju.call(t,o)||!Mt(e[o],t[o]))return!1}return!0}function Wd(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Vd(e,t){var a=Wd(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=Wd(a)}}function mc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?mc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function gc(){for(var e=window,t=sl();t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=sl(e.document)}return t}function ei(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 dh(e){var t=gc(),a=e.focusedElem,r=e.selectionRange;if(t!==a&&a&&a.ownerDocument&&mc(a.ownerDocument.documentElement,a)){if(r!==null&&ei(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=Vd(a,n);var l=Vd(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 fh=aa&&"documentMode"in document&&11>=document.documentMode,Cr=null,cs=null,bo=null,ps=!1;function $d(e,t,a){var r=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;ps||Cr==null||Cr!==sl(r)||(r=Cr,"selectionStart"in r&&ei(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&&Uo(bo,r)||(bo=r,r=gl(cs,"onSelect"),0<r.length&&(t=new Ys("onSelect","select",null,t,a),e.push({event:t,listeners:r}),t.target=Cr)))}function qn(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var wr={animationend:qn("Animation","AnimationEnd"),animationiteration:qn("Animation","AnimationIteration"),animationstart:qn("Animation","AnimationStart"),transitionend:qn("Transition","TransitionEnd")},Eu={},hc={};aa&&(hc=document.createElement("div").style,"AnimationEvent"in window||(delete wr.animationend.animation,delete wr.animationiteration.animation,delete wr.animationstart.animation),"TransitionEvent"in window||delete wr.transitionend.transition);function Bl(e){if(Eu[e])return Eu[e];if(!wr[e])return e;var t=wr[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in hc)return Eu[e]=t[a];return e}var xc=Bl("animationend"),vc=Bl("animationiteration"),Lc=Bl("animationstart"),yc=Bl("transitionend"),Sc=new Map,Gd="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 Ta(e,t){Sc.set(e,t),or(t,[e])}for(Wn=0;Wn<Gd.length;Wn++)Vn=Gd[Wn],jd=Vn.toLowerCase(),Kd=Vn[0].toUpperCase()+Vn.slice(1),Ta(jd,"on"+Kd);var Vn,jd,Kd,Wn;Ta(xc,"onAnimationEnd");Ta(vc,"onAnimationIteration");Ta(Lc,"onAnimationStart");Ta("dblclick","onDoubleClick");Ta("focusin","onFocus");Ta("focusout","onBlur");Ta(yc,"onTransitionEnd");Ur("onMouseEnter",["mouseout","mouseover"]);Ur("onMouseLeave",["mouseout","mouseover"]);Ur("onPointerEnter",["pointerout","pointerover"]);Ur("onPointerLeave",["pointerout","pointerover"]);or("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));or("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));or("onBeforeInput",["compositionend","keypress","textInput","paste"]);or("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));or("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));or("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var So="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(" "),ch=new Set("cancel close invalid load scroll toggle".split(" ").concat(So));function Xd(e,t,a){var r=e.type||"unknown-event";e.currentTarget=a,cg(r,t,void 0,e),e.currentTarget=null}function Ic(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 u=r[l],s=u.instance,f=u.currentTarget;if(u=u.listener,s!==n&&o.isPropagationStopped())break e;Xd(o,u,f),n=s}else for(l=0;l<r.length;l++){if(u=r[l],s=u.instance,f=u.currentTarget,u=u.listener,s!==n&&o.isPropagationStopped())break e;Xd(o,u,f),n=s}}}if(dl)throw e=ss,dl=!1,ss=null,e}function Le(e,t){var a=t[vs];a===void 0&&(a=t[vs]=new Set);var r=e+"__bubble";a.has(r)||(Cc(t,e,2,!1),a.add(r))}function Bu(e,t,a){var r=0;t&&(r|=4),Cc(a,e,r,t)}var $n="_reactListening"+Math.random().toString(36).slice(2);function No(e){if(!e[$n]){e[$n]=!0,Df.forEach(function(a){a!=="selectionchange"&&(ch.has(a)||Bu(a,!1,e),Bu(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[$n]||(t[$n]=!0,Bu("selectionchange",!1,t))}}function Cc(e,t,a,r){switch(lc(t)){case 1:var o=Tg;break;case 4:o=Rg;break;default:o=Xs}a=o.bind(null,t,a,e),o=void 0,!us||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 Ou(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 u=r.stateNode.containerInfo;if(u===o||u.nodeType===8&&u.parentNode===o)break;if(l===4)for(l=r.return;l!==null;){var s=l.tag;if((s===3||s===4)&&(s=l.stateNode.containerInfo,s===o||s.nodeType===8&&s.parentNode===o))return;l=l.return}for(;u!==null;){if(l=Ka(u),l===null)return;if(s=l.tag,s===5||s===6){r=n=l;continue e}u=u.parentNode}}r=r.return}Gf(function(){var f=n,m=$s(a),g=[];e:{var p=Sc.get(e);if(p!==void 0){var x=Ys,L=e;switch(e){case"keypress":if(el(a)===0)break e;case"keydown":case"keyup":x=Vg;break;case"focusin":L="focus",x=Mu;break;case"focusout":L="blur",x=Mu;break;case"beforeblur":case"afterblur":x=Mu;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":x=Od;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":x=Mg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":x=jg;break;case xc:case vc:case Lc:x=Bg;break;case yc:x=Xg;break;case"scroll":x=Dg;break;case"wheel":x=Yg;break;case"copy":case"cut":case"paste":x=zg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":x=Ud}var y=(t&4)!==0,F=!y&&e==="scroll",c=y?p!==null?p+"Capture":null:p;y=[];for(var d=f,i;d!==null;){i=d;var h=i.stateNode;if(i.tag===5&&h!==null&&(i=h,c!==null&&(h=Fo(d,c),h!=null&&y.push(Ho(d,h,i)))),F)break;d=d.return}0<y.length&&(p=new x(p,L,null,a,m),g.push({event:p,listeners:y}))}}if((t&7)===0){e:{if(p=e==="mouseover"||e==="pointerover",x=e==="mouseout"||e==="pointerout",p&&a!==ns&&(L=a.relatedTarget||a.fromElement)&&(Ka(L)||L[ra]))break e;if((x||p)&&(p=m.window===m?m:(p=m.ownerDocument)?p.defaultView||p.parentWindow:window,x?(L=a.relatedTarget||a.toElement,x=f,L=L?Ka(L):null,L!==null&&(F=nr(L),L!==F||L.tag!==5&&L.tag!==6)&&(L=null)):(x=null,L=f),x!==L)){if(y=Od,h="onMouseLeave",c="onMouseEnter",d="mouse",(e==="pointerout"||e==="pointerover")&&(y=Ud,h="onPointerLeave",c="onPointerEnter",d="pointer"),F=x==null?p:kr(x),i=L==null?p:kr(L),p=new y(h,d+"leave",x,a,m),p.target=F,p.relatedTarget=i,h=null,Ka(m)===f&&(y=new y(c,d+"enter",L,a,m),y.target=i,y.relatedTarget=F,h=y),F=h,x&&L)t:{for(y=x,c=L,d=0,i=y;i;i=Lr(i))d++;for(i=0,h=c;h;h=Lr(h))i++;for(;0<d-i;)y=Lr(y),d--;for(;0<i-d;)c=Lr(c),i--;for(;d--;){if(y===c||c!==null&&y===c.alternate)break t;y=Lr(y),c=Lr(c)}y=null}else y=null;x!==null&&Qd(g,p,x,y,!1),L!==null&&F!==null&&Qd(g,F,L,y,!0)}}e:{if(p=f?kr(f):window,x=p.nodeName&&p.nodeName.toLowerCase(),x==="select"||x==="input"&&p.type==="file")var k=oh;else if(_d(p))if(cc)k=sh;else{k=lh;var C=nh}else(x=p.nodeName)&&x.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(k=uh);if(k&&(k=k(e,f))){fc(g,k,a,m);break e}C&&C(e,p,f),e==="focusout"&&(C=p._wrapperState)&&C.controlled&&p.type==="number"&&es(p,"number",p.value)}switch(C=f?kr(f):window,e){case"focusin":(_d(C)||C.contentEditable==="true")&&(Cr=C,cs=f,bo=null);break;case"focusout":bo=cs=Cr=null;break;case"mousedown":ps=!0;break;case"contextmenu":case"mouseup":case"dragend":ps=!1,$d(g,a,m);break;case"selectionchange":if(fh)break;case"keydown":case"keyup":$d(g,a,m)}var S;if(Js)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else Ir?ic(e,a)&&(w="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(w="onCompositionStart");w&&(sc&&a.locale!=="ko"&&(Ir||w!=="onCompositionStart"?w==="onCompositionEnd"&&Ir&&(S=uc()):(ha=m,Qs="value"in ha?ha.value:ha.textContent,Ir=!0)),C=gl(f,w),0<C.length&&(w=new zd(w,e,null,a,m),g.push({event:w,listeners:C}),S?w.data=S:(S=dc(a),S!==null&&(w.data=S)))),(S=Jg?eh(e,a):th(e,a))&&(f=gl(f,"onBeforeInput"),0<f.length&&(m=new zd("onBeforeInput","beforeinput",null,a,m),g.push({event:m,listeners:f}),m.data=S))}Ic(g,t)})}function Ho(e,t,a){return{instance:e,listener:t,currentTarget:a}}function gl(e,t){for(var a=t+"Capture",r=[];e!==null;){var o=e,n=o.stateNode;o.tag===5&&n!==null&&(o=n,n=Fo(e,a),n!=null&&r.unshift(Ho(e,n,o)),n=Fo(e,t),n!=null&&r.push(Ho(e,n,o))),e=e.return}return r}function Lr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Qd(e,t,a,r,o){for(var n=t._reactName,l=[];a!==null&&a!==r;){var u=a,s=u.alternate,f=u.stateNode;if(s!==null&&s===r)break;u.tag===5&&f!==null&&(u=f,o?(s=Fo(a,n),s!=null&&l.unshift(Ho(a,s,u))):o||(s=Fo(a,n),s!=null&&l.push(Ho(a,s,u)))),a=a.return}l.length!==0&&e.push({event:t,listeners:l})}var ph=/\\r\\n?/g,mh=/\\u0000|\\uFFFD/g;function Yd(e){return(typeof e=="string"?e:""+e).replace(ph,`\n`).replace(mh,"")}function Gn(e,t,a){if(t=Yd(t),Yd(e)!==t&&a)throw Error(b(425))}function hl(){}var ms=null,gs=null;function hs(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 xs=typeof setTimeout=="function"?setTimeout:void 0,gh=typeof clearTimeout=="function"?clearTimeout:void 0,Zd=typeof Promise=="function"?Promise:void 0,hh=typeof queueMicrotask=="function"?queueMicrotask:typeof Zd<"u"?function(e){return Zd.resolve(null).then(e).catch(xh)}:xs;function xh(e){setTimeout(function(){throw e})}function zu(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),Oo(t);return}r--}else a!=="$"&&a!=="$?"&&a!=="$!"||r++;a=o}while(a);Oo(t)}function Sa(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 Jd(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 Gr=Math.random().toString(36).slice(2),_t="__reactFiber$"+Gr,_o="__reactProps$"+Gr,ra="__reactContainer$"+Gr,vs="__reactEvents$"+Gr,vh="__reactListeners$"+Gr,Lh="__reactHandles$"+Gr;function Ka(e){var t=e[_t];if(t)return t;for(var a=e.parentNode;a;){if(t=a[ra]||a[_t]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=Jd(e);e!==null;){if(a=e[_t])return a;e=Jd(e)}return t}e=a,a=e.parentNode}return null}function Qo(e){return e=e[_t]||e[ra],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function kr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(b(33))}function Ol(e){return e[_o]||null}var Ls=[],br=-1;function Ra(e){return{current:e}}function ye(e){0>br||(e.current=Ls[br],Ls[br]=null,br--)}function he(e,t){br++,Ls[br]=e.current,e.current=t}var Pa={},Ve=Ra(Pa),at=Ra(!1),Ja=Pa;function Nr(e,t){var a=e.type.contextTypes;if(!a)return Pa;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 xl(){ye(at),ye(Ve)}function ef(e,t,a){if(Ve.current!==Pa)throw Error(b(168));he(Ve,t),he(at,a)}function wc(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(b(108,ng(e)||"Unknown",o));return be({},a,r)}function vl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Pa,Ja=Ve.current,he(Ve,e),he(at,at.current),!0}function tf(e,t,a){var r=e.stateNode;if(!r)throw Error(b(169));a?(e=wc(e,t,Ja),r.__reactInternalMemoizedMergedChildContext=e,ye(at),ye(Ve),he(Ve,e)):ye(at),he(at,a)}var Zt=null,zl=!1,Uu=!1;function kc(e){Zt===null?Zt=[e]:Zt.push(e)}function yh(e){zl=!0,kc(e)}function Da(){if(!Uu&&Zt!==null){Uu=!0;var e=0,t=ce;try{var a=Zt;for(ce=1;e<a.length;e++){var r=a[e];do r=r(!0);while(r!==null)}Zt=null,zl=!1}catch(o){throw Zt!==null&&(Zt=Zt.slice(e+1)),Qf(Gs,Da),o}finally{ce=t,Uu=!1}}return null}var Pr=[],Tr=0,Ll=null,yl=0,gt=[],ht=0,er=null,Jt=1,ea="";function Ga(e,t){Pr[Tr++]=yl,Pr[Tr++]=Ll,Ll=e,yl=t}function bc(e,t,a){gt[ht++]=Jt,gt[ht++]=ea,gt[ht++]=er,er=e;var r=Jt;e=ea;var o=32-Dt(r)-1;r&=~(1<<o),a+=1;var n=32-Dt(t)+o;if(30<n){var l=o-o%5;n=(r&(1<<l)-1).toString(32),r>>=l,o-=l,Jt=1<<32-Dt(t)+o|a<<o|r,ea=n+e}else Jt=1<<n|a<<o|r,ea=e}function ti(e){e.return!==null&&(Ga(e,1),bc(e,1,0))}function ai(e){for(;e===Ll;)Ll=Pr[--Tr],Pr[Tr]=null,yl=Pr[--Tr],Pr[Tr]=null;for(;e===er;)er=gt[--ht],gt[ht]=null,ea=gt[--ht],gt[ht]=null,Jt=gt[--ht],gt[ht]=null}var it=null,st=null,Se=!1,Rt=null;function Pc(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 af(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,st=Sa(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,it=e,st=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(a=er!==null?{id:Jt,overflow:ea}: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,st=null,!0):!1;default:return!1}}function ys(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ss(e){if(Se){var t=st;if(t){var a=t;if(!af(e,t)){if(ys(e))throw Error(b(418));t=Sa(a.nextSibling);var r=it;t&&af(e,t)?Pc(r,a):(e.flags=e.flags&-4097|2,Se=!1,it=e)}}else{if(ys(e))throw Error(b(418));e.flags=e.flags&-4097|2,Se=!1,it=e}}}function rf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;it=e}function jn(e){if(e!==it)return!1;if(!Se)return rf(e),Se=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!hs(e.type,e.memoizedProps)),t&&(t=st)){if(ys(e))throw Tc(),Error(b(418));for(;t;)Pc(e,t),t=Sa(t.nextSibling)}if(rf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(b(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(t===0){st=Sa(e.nextSibling);break e}t--}else a!=="$"&&a!=="$!"&&a!=="$?"||t++}e=e.nextSibling}st=null}}else st=it?Sa(e.stateNode.nextSibling):null;return!0}function Tc(){for(var e=st;e;)e=Sa(e.nextSibling)}function Hr(){st=it=null,Se=!1}function ri(e){Rt===null?Rt=[e]:Rt.push(e)}var Sh=la.ReactCurrentBatchConfig;function mo(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(b(309));var r=a.stateNode}if(!r)throw Error(b(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 u=o.refs;l===null?delete u[n]:u[n]=l},t._stringRef=n,t)}if(typeof e!="string")throw Error(b(284));if(!a._owner)throw Error(b(290,e))}return e}function Kn(e,t){throw e=Object.prototype.toString.call(t),Error(b(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function of(e){var t=e._init;return t(e._payload)}function Rc(e){function t(c,d){if(e){var i=c.deletions;i===null?(c.deletions=[d],c.flags|=16):i.push(d)}}function a(c,d){if(!e)return null;for(;d!==null;)t(c,d),d=d.sibling;return null}function r(c,d){for(c=new Map;d!==null;)d.key!==null?c.set(d.key,d):c.set(d.index,d),d=d.sibling;return c}function o(c,d){return c=ka(c,d),c.index=0,c.sibling=null,c}function n(c,d,i){return c.index=i,e?(i=c.alternate,i!==null?(i=i.index,i<d?(c.flags|=2,d):i):(c.flags|=2,d)):(c.flags|=1048576,d)}function l(c){return e&&c.alternate===null&&(c.flags|=2),c}function u(c,d,i,h){return d===null||d.tag!==6?(d=$u(i,c.mode,h),d.return=c,d):(d=o(d,i),d.return=c,d)}function s(c,d,i,h){var k=i.type;return k===Sr?m(c,d,i.props.children,h,i.key):d!==null&&(d.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ca&&of(k)===d.type)?(h=o(d,i.props),h.ref=mo(c,d,i),h.return=c,h):(h=ul(i.type,i.key,i.props,null,c.mode,h),h.ref=mo(c,d,i),h.return=c,h)}function f(c,d,i,h){return d===null||d.tag!==4||d.stateNode.containerInfo!==i.containerInfo||d.stateNode.implementation!==i.implementation?(d=Gu(i,c.mode,h),d.return=c,d):(d=o(d,i.children||[]),d.return=c,d)}function m(c,d,i,h,k){return d===null||d.tag!==7?(d=Za(i,c.mode,h,k),d.return=c,d):(d=o(d,i),d.return=c,d)}function g(c,d,i){if(typeof d=="string"&&d!==""||typeof d=="number")return d=$u(""+d,c.mode,i),d.return=c,d;if(typeof d=="object"&&d!==null){switch(d.$$typeof){case Fn:return i=ul(d.type,d.key,d.props,null,c.mode,i),i.ref=mo(c,null,d),i.return=c,i;case yr:return d=Gu(d,c.mode,i),d.return=c,d;case ca:var h=d._init;return g(c,h(d._payload),i)}if(Lo(d)||io(d))return d=Za(d,c.mode,i,null),d.return=c,d;Kn(c,d)}return null}function p(c,d,i,h){var k=d!==null?d.key:null;if(typeof i=="string"&&i!==""||typeof i=="number")return k!==null?null:u(c,d,""+i,h);if(typeof i=="object"&&i!==null){switch(i.$$typeof){case Fn:return i.key===k?s(c,d,i,h):null;case yr:return i.key===k?f(c,d,i,h):null;case ca:return k=i._init,p(c,d,k(i._payload),h)}if(Lo(i)||io(i))return k!==null?null:m(c,d,i,h,null);Kn(c,i)}return null}function x(c,d,i,h,k){if(typeof h=="string"&&h!==""||typeof h=="number")return c=c.get(i)||null,u(d,c,""+h,k);if(typeof h=="object"&&h!==null){switch(h.$$typeof){case Fn:return c=c.get(h.key===null?i:h.key)||null,s(d,c,h,k);case yr:return c=c.get(h.key===null?i:h.key)||null,f(d,c,h,k);case ca:var C=h._init;return x(c,d,i,C(h._payload),k)}if(Lo(h)||io(h))return c=c.get(i)||null,m(d,c,h,k,null);Kn(d,h)}return null}function L(c,d,i,h){for(var k=null,C=null,S=d,w=d=0,T=null;S!==null&&w<i.length;w++){S.index>w?(T=S,S=null):T=S.sibling;var E=p(c,S,i[w],h);if(E===null){S===null&&(S=T);break}e&&S&&E.alternate===null&&t(c,S),d=n(E,d,w),C===null?k=E:C.sibling=E,C=E,S=T}if(w===i.length)return a(c,S),Se&&Ga(c,w),k;if(S===null){for(;w<i.length;w++)S=g(c,i[w],h),S!==null&&(d=n(S,d,w),C===null?k=S:C.sibling=S,C=S);return Se&&Ga(c,w),k}for(S=r(c,S);w<i.length;w++)T=x(S,c,w,i[w],h),T!==null&&(e&&T.alternate!==null&&S.delete(T.key===null?w:T.key),d=n(T,d,w),C===null?k=T:C.sibling=T,C=T);return e&&S.forEach(function(O){return t(c,O)}),Se&&Ga(c,w),k}function y(c,d,i,h){var k=io(i);if(typeof k!="function")throw Error(b(150));if(i=k.call(i),i==null)throw Error(b(151));for(var C=k=null,S=d,w=d=0,T=null,E=i.next();S!==null&&!E.done;w++,E=i.next()){S.index>w?(T=S,S=null):T=S.sibling;var O=p(c,S,E.value,h);if(O===null){S===null&&(S=T);break}e&&S&&O.alternate===null&&t(c,S),d=n(O,d,w),C===null?k=O:C.sibling=O,C=O,S=T}if(E.done)return a(c,S),Se&&Ga(c,w),k;if(S===null){for(;!E.done;w++,E=i.next())E=g(c,E.value,h),E!==null&&(d=n(E,d,w),C===null?k=E:C.sibling=E,C=E);return Se&&Ga(c,w),k}for(S=r(c,S);!E.done;w++,E=i.next())E=x(S,c,w,E.value,h),E!==null&&(e&&E.alternate!==null&&S.delete(E.key===null?w:E.key),d=n(E,d,w),C===null?k=E:C.sibling=E,C=E);return e&&S.forEach(function(V){return t(c,V)}),Se&&Ga(c,w),k}function F(c,d,i,h){if(typeof i=="object"&&i!==null&&i.type===Sr&&i.key===null&&(i=i.props.children),typeof i=="object"&&i!==null){switch(i.$$typeof){case Fn:e:{for(var k=i.key,C=d;C!==null;){if(C.key===k){if(k=i.type,k===Sr){if(C.tag===7){a(c,C.sibling),d=o(C,i.props.children),d.return=c,c=d;break e}}else if(C.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ca&&of(k)===C.type){a(c,C.sibling),d=o(C,i.props),d.ref=mo(c,C,i),d.return=c,c=d;break e}a(c,C);break}else t(c,C);C=C.sibling}i.type===Sr?(d=Za(i.props.children,c.mode,h,i.key),d.return=c,c=d):(h=ul(i.type,i.key,i.props,null,c.mode,h),h.ref=mo(c,d,i),h.return=c,c=h)}return l(c);case yr:e:{for(C=i.key;d!==null;){if(d.key===C)if(d.tag===4&&d.stateNode.containerInfo===i.containerInfo&&d.stateNode.implementation===i.implementation){a(c,d.sibling),d=o(d,i.children||[]),d.return=c,c=d;break e}else{a(c,d);break}else t(c,d);d=d.sibling}d=Gu(i,c.mode,h),d.return=c,c=d}return l(c);case ca:return C=i._init,F(c,d,C(i._payload),h)}if(Lo(i))return L(c,d,i,h);if(io(i))return y(c,d,i,h);Kn(c,i)}return typeof i=="string"&&i!==""||typeof i=="number"?(i=""+i,d!==null&&d.tag===6?(a(c,d.sibling),d=o(d,i),d.return=c,c=d):(a(c,d),d=$u(i,c.mode,h),d.return=c,c=d),l(c)):a(c,d)}return F}var _r=Rc(!0),Dc=Rc(!1),Sl=Ra(null),Il=null,Rr=null,oi=null;function ni(){oi=Rr=Il=null}function li(e){var t=Sl.current;ye(Sl),e._currentValue=t}function Is(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 Or(e,t){Il=e,oi=Rr=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(oi!==e)if(e={context:e,memoizedValue:t,next:null},Rr===null){if(Il===null)throw Error(b(308));Rr=e,Il.dependencies={lanes:0,firstContext:e}}else Rr=Rr.next=e;return t}var Xa=null;function ui(e){Xa===null?Xa=[e]:Xa.push(e)}function Ac(e,t,a,r){var o=t.interleaved;return o===null?(a.next=a,ui(t)):(a.next=o.next,o.next=a),t.interleaved=a,oa(e,r)}function oa(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 pa=!1;function si(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Mc(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 ta(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ia(e,t,a){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(ae&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,oa(e,a)}return o=r.interleaved,o===null?(t.next=t,ui(r)):(t.next=o.next,o.next=t),r.interleaved=t,oa(e,a)}function tl(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,js(e,a)}}function nf(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 Cl(e,t,a,r){var o=e.updateQueue;pa=!1;var n=o.firstBaseUpdate,l=o.lastBaseUpdate,u=o.shared.pending;if(u!==null){o.shared.pending=null;var s=u,f=s.next;s.next=null,l===null?n=f:l.next=f,l=s;var m=e.alternate;m!==null&&(m=m.updateQueue,u=m.lastBaseUpdate,u!==l&&(u===null?m.firstBaseUpdate=f:u.next=f,m.lastBaseUpdate=s))}if(n!==null){var g=o.baseState;l=0,m=f=s=null,u=n;do{var p=u.lane,x=u.eventTime;if((r&p)===p){m!==null&&(m=m.next={eventTime:x,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var L=e,y=u;switch(p=t,x=a,y.tag){case 1:if(L=y.payload,typeof L=="function"){g=L.call(x,g,p);break e}g=L;break e;case 3:L.flags=L.flags&-65537|128;case 0:if(L=y.payload,p=typeof L=="function"?L.call(x,g,p):L,p==null)break e;g=be({},g,p);break e;case 2:pa=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,p=o.effects,p===null?o.effects=[u]:p.push(u))}else x={eventTime:x,lane:p,tag:u.tag,payload:u.payload,callback:u.callback,next:null},m===null?(f=m=x,s=g):m=m.next=x,l|=p;if(u=u.next,u===null){if(u=o.shared.pending,u===null)break;p=u,u=p.next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}while(!0);if(m===null&&(s=g),o.baseState=s,o.firstBaseUpdate=f,o.lastBaseUpdate=m,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);ar|=l,e.lanes=l,e.memoizedState=g}}function lf(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(b(191,o));o.call(r)}}}var Yo={},Wt=Ra(Yo),qo=Ra(Yo),Wo=Ra(Yo);function Qa(e){if(e===Yo)throw Error(b(174));return e}function ii(e,t){switch(he(Wo,t),he(qo,e),he(Wt,Yo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:as(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=as(t,e)}ye(Wt),he(Wt,t)}function qr(){ye(Wt),ye(qo),ye(Wo)}function Fc(e){Qa(Wo.current);var t=Qa(Wt.current),a=as(t,e.type);t!==a&&(he(qo,e),he(Wt,a))}function di(e){qo.current===e&&(ye(Wt),ye(qo))}var we=Ra(0);function wl(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 Nu=[];function fi(){for(var e=0;e<Nu.length;e++)Nu[e]._workInProgressVersionPrimary=null;Nu.length=0}var al=la.ReactCurrentDispatcher,Hu=la.ReactCurrentBatchConfig,tr=0,ke=null,Me=null,Ee=null,kl=!1,Po=!1,Vo=0,Ih=0;function _e(){throw Error(b(321))}function ci(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!Mt(e[a],t[a]))return!1;return!0}function pi(e,t,a,r,o,n){if(tr=n,ke=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,al.current=e===null||e.memoizedState===null?bh:Ph,e=a(r,o),Po){n=0;do{if(Po=!1,Vo=0,25<=n)throw Error(b(301));n+=1,Ee=Me=null,t.updateQueue=null,al.current=Th,e=a(r,o)}while(Po)}if(al.current=bl,t=Me!==null&&Me.next!==null,tr=0,Ee=Me=ke=null,kl=!1,t)throw Error(b(300));return e}function mi(){var e=Vo!==0;return Vo=0,e}function Ht(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ee===null?ke.memoizedState=Ee=e:Ee=Ee.next=e,Ee}function yt(){if(Me===null){var e=ke.alternate;e=e!==null?e.memoizedState:null}else e=Me.next;var t=Ee===null?ke.memoizedState:Ee.next;if(t!==null)Ee=t,Me=e;else{if(e===null)throw Error(b(310));Me=e,e={memoizedState:Me.memoizedState,baseState:Me.baseState,baseQueue:Me.baseQueue,queue:Me.queue,next:null},Ee===null?ke.memoizedState=Ee=e:Ee=Ee.next=e}return Ee}function $o(e,t){return typeof t=="function"?t(e):t}function _u(e){var t=yt(),a=t.queue;if(a===null)throw Error(b(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 u=l=null,s=null,f=n;do{var m=f.lane;if((tr&m)===m)s!==null&&(s=s.next={lane:0,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null}),r=f.hasEagerState?f.eagerState:e(r,f.action);else{var g={lane:m,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null};s===null?(u=s=g,l=r):s=s.next=g,ke.lanes|=m,ar|=m}f=f.next}while(f!==null&&f!==n);s===null?l=r:s.next=u,Mt(r,t.memoizedState)||(tt=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=s,a.lastRenderedState=r}if(e=a.interleaved,e!==null){o=e;do n=o.lane,ke.lanes|=n,ar|=n,o=o.next;while(o!==e)}else o===null&&(a.lanes=0);return[t.memoizedState,a.dispatch]}function qu(e){var t=yt(),a=t.queue;if(a===null)throw Error(b(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);Mt(n,t.memoizedState)||(tt=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),a.lastRenderedState=n}return[n,r]}function Ec(){}function Bc(e,t){var a=ke,r=yt(),o=t(),n=!Mt(r.memoizedState,o);if(n&&(r.memoizedState=o,tt=!0),r=r.queue,gi(Uc.bind(null,a,r,e),[e]),r.getSnapshot!==t||n||Ee!==null&&Ee.memoizedState.tag&1){if(a.flags|=2048,Go(9,zc.bind(null,a,r,o,t),void 0,null),Be===null)throw Error(b(349));(tr&30)!==0||Oc(a,t,o)}return o}function Oc(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 zc(e,t,a,r){t.value=a,t.getSnapshot=r,Nc(t)&&Hc(e)}function Uc(e,t,a){return a(function(){Nc(t)&&Hc(e)})}function Nc(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!Mt(e,a)}catch{return!0}}function Hc(e){var t=oa(e,1);t!==null&&At(t,e,1,-1)}function uf(e){var t=Ht();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:$o,lastRenderedState:e},t.queue=e,e=e.dispatch=kh.bind(null,ke,e),[t.memoizedState,e]}function Go(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 _c(){return yt().memoizedState}function rl(e,t,a,r){var o=Ht();ke.flags|=e,o.memoizedState=Go(1|t,a,void 0,r===void 0?null:r)}function Ul(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&&ci(r,l.deps)){o.memoizedState=Go(t,a,n,r);return}}ke.flags|=e,o.memoizedState=Go(1|t,a,n,r)}function sf(e,t){return rl(8390656,8,e,t)}function gi(e,t){return Ul(2048,8,e,t)}function qc(e,t){return Ul(4,2,e,t)}function Wc(e,t){return Ul(4,4,e,t)}function Vc(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 $c(e,t,a){return a=a!=null?a.concat([e]):null,Ul(4,4,Vc.bind(null,t,e),a)}function hi(){}function Gc(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&ci(t,r[1])?r[0]:(a.memoizedState=[e,t],e)}function jc(e,t){var a=yt();t=t===void 0?null:t;var r=a.memoizedState;return r!==null&&t!==null&&ci(t,r[1])?r[0]:(e=e(),a.memoizedState=[e,t],e)}function Kc(e,t,a){return(tr&21)===0?(e.baseState&&(e.baseState=!1,tt=!0),e.memoizedState=a):(Mt(a,t)||(a=Jf(),ke.lanes|=a,ar|=a,e.baseState=!0),t)}function Ch(e,t){var a=ce;ce=a!==0&&4>a?a:4,e(!0);var r=Hu.transition;Hu.transition={};try{e(!1),t()}finally{ce=a,Hu.transition=r}}function Xc(){return yt().memoizedState}function wh(e,t,a){var r=wa(e);if(a={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null},Qc(e))Yc(t,a);else if(a=Ac(e,t,a,r),a!==null){var o=Xe();At(a,e,r,o),Zc(a,t,r)}}function kh(e,t,a){var r=wa(e),o={lane:r,action:a,hasEagerState:!1,eagerState:null,next:null};if(Qc(e))Yc(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,u=n(l,a);if(o.hasEagerState=!0,o.eagerState=u,Mt(u,l)){var s=t.interleaved;s===null?(o.next=o,ui(t)):(o.next=s.next,s.next=o),t.interleaved=o;return}}catch{}finally{}a=Ac(e,t,o,r),a!==null&&(o=Xe(),At(a,e,r,o),Zc(a,t,r))}}function Qc(e){var t=e.alternate;return e===ke||t!==null&&t===ke}function Yc(e,t){Po=kl=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Zc(e,t,a){if((a&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,js(e,a)}}var bl={readContext:Lt,useCallback:_e,useContext:_e,useEffect:_e,useImperativeHandle:_e,useInsertionEffect:_e,useLayoutEffect:_e,useMemo:_e,useReducer:_e,useRef:_e,useState:_e,useDebugValue:_e,useDeferredValue:_e,useTransition:_e,useMutableSource:_e,useSyncExternalStore:_e,useId:_e,unstable_isNewReconciler:!1},bh={readContext:Lt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Lt,useEffect:sf,useImperativeHandle:function(e,t,a){return a=a!=null?a.concat([e]):null,rl(4194308,4,Vc.bind(null,t,e),a)},useLayoutEffect:function(e,t){return rl(4194308,4,e,t)},useInsertionEffect:function(e,t){return rl(4,2,e,t)},useMemo:function(e,t){var a=Ht();return t=t===void 0?null:t,e=e(),a.memoizedState=[e,t],e},useReducer:function(e,t,a){var r=Ht();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=wh.bind(null,ke,e),[r.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:uf,useDebugValue:hi,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=uf(!1),t=e[0];return e=Ch.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,a){var r=ke,o=Ht();if(Se){if(a===void 0)throw Error(b(407));a=a()}else{if(a=t(),Be===null)throw Error(b(349));(tr&30)!==0||Oc(r,t,a)}o.memoizedState=a;var n={value:a,getSnapshot:t};return o.queue=n,sf(Uc.bind(null,r,n,e),[e]),r.flags|=2048,Go(9,zc.bind(null,r,n,a,t),void 0,null),a},useId:function(){var e=Ht(),t=Be.identifierPrefix;if(Se){var a=ea,r=Jt;a=(r&~(1<<32-Dt(r)-1)).toString(32)+a,t=":"+t+"R"+a,a=Vo++,0<a&&(t+="H"+a.toString(32)),t+=":"}else a=Ih++,t=":"+t+"r"+a.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Ph={readContext:Lt,useCallback:Gc,useContext:Lt,useEffect:gi,useImperativeHandle:$c,useInsertionEffect:qc,useLayoutEffect:Wc,useMemo:jc,useReducer:_u,useRef:_c,useState:function(){return _u($o)},useDebugValue:hi,useDeferredValue:function(e){var t=yt();return Kc(t,Me.memoizedState,e)},useTransition:function(){var e=_u($o)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Ec,useSyncExternalStore:Bc,useId:Xc,unstable_isNewReconciler:!1},Th={readContext:Lt,useCallback:Gc,useContext:Lt,useEffect:gi,useImperativeHandle:$c,useInsertionEffect:qc,useLayoutEffect:Wc,useMemo:jc,useReducer:qu,useRef:_c,useState:function(){return qu($o)},useDebugValue:hi,useDeferredValue:function(e){var t=yt();return Me===null?t.memoizedState=e:Kc(t,Me.memoizedState,e)},useTransition:function(){var e=qu($o)[0],t=yt().memoizedState;return[e,t]},useMutableSource:Ec,useSyncExternalStore:Bc,useId:Xc,unstable_isNewReconciler:!1};function Pt(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 Cs(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 Nl={isMounted:function(e){return(e=e._reactInternals)?nr(e)===e:!1},enqueueSetState:function(e,t,a){e=e._reactInternals;var r=Xe(),o=wa(e),n=ta(r,o);n.payload=t,a!=null&&(n.callback=a),t=Ia(e,n,o),t!==null&&(At(t,e,o,r),tl(t,e,o))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var r=Xe(),o=wa(e),n=ta(r,o);n.tag=1,n.payload=t,a!=null&&(n.callback=a),t=Ia(e,n,o),t!==null&&(At(t,e,o,r),tl(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Xe(),r=wa(e),o=ta(a,r);o.tag=2,t!=null&&(o.callback=t),t=Ia(e,o,r),t!==null&&(At(t,e,r,a),tl(t,e,r))}};function df(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?!Uo(a,r)||!Uo(o,n):!0}function Jc(e,t,a){var r=!1,o=Pa,n=t.contextType;return typeof n=="object"&&n!==null?n=Lt(n):(o=rt(t)?Ja:Ve.current,r=t.contextTypes,n=(r=r!=null)?Nr(e,o):Pa),t=new t(a,n),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Nl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=n),t}function ff(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&&Nl.enqueueReplaceState(t,t.state,null)}function ws(e,t,a,r){var o=e.stateNode;o.props=a,o.state=e.memoizedState,o.refs={},si(e);var n=t.contextType;typeof n=="object"&&n!==null?o.context=Lt(n):(n=rt(t)?Ja:Ve.current,o.context=Nr(e,n)),o.state=e.memoizedState,n=t.getDerivedStateFromProps,typeof n=="function"&&(Cs(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&&Nl.enqueueReplaceState(o,o.state,null),Cl(e,a,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Wr(e,t){try{var a="",r=t;do a+=og(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 Wu(e,t,a){return{value:e,source:null,stack:a??null,digest:t??null}}function ks(e,t){try{console.error(t.value)}catch(a){setTimeout(function(){throw a})}}var Rh=typeof WeakMap=="function"?WeakMap:Map;function ep(e,t,a){a=ta(-1,a),a.tag=3,a.payload={element:null};var r=t.value;return a.callback=function(){Tl||(Tl=!0,Bs=r),ks(e,t)},a}function tp(e,t,a){a=ta(-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(){ks(e,t)}}var n=e.stateNode;return n!==null&&typeof n.componentDidCatch=="function"&&(a.callback=function(){ks(e,t),typeof r!="function"&&(Ca===null?Ca=new Set([this]):Ca.add(this));var l=t.stack;this.componentDidCatch(t.value,{componentStack:l!==null?l:""})}),a}function cf(e,t,a){var r=e.pingCache;if(r===null){r=e.pingCache=new Rh;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=Wh.bind(null,e,t,a),t.then(e,e))}function pf(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 mf(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=ta(-1,1),t.tag=2,Ia(a,t,1))),a.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Dh=la.ReactCurrentOwner,tt=!1;function Ke(e,t,a,r){t.child=e===null?Dc(t,null,a,r):_r(t,e.child,a,r)}function gf(e,t,a,r,o){a=a.render;var n=t.ref;return Or(t,o),r=pi(e,t,a,r,n,o),a=mi(),e!==null&&!tt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,na(e,t,o)):(Se&&a&&ti(t),t.flags|=1,Ke(e,t,r,o),t.child)}function hf(e,t,a,r,o){if(e===null){var n=a.type;return typeof n=="function"&&!wi(n)&&n.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(t.tag=15,t.type=n,ap(e,t,n,r,o)):(e=ul(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:Uo,a(l,r)&&e.ref===t.ref)return na(e,t,o)}return t.flags|=1,e=ka(n,r),e.ref=t.ref,e.return=t,t.child=e}function ap(e,t,a,r,o){if(e!==null){var n=e.memoizedProps;if(Uo(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,na(e,t,o)}return bs(e,t,a,r,o)}function rp(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},he(Ar,ut),ut|=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,he(Ar,ut),ut|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=n!==null?n.baseLanes:a,he(Ar,ut),ut|=r}else n!==null?(r=n.baseLanes|a,t.memoizedState=null):r=a,he(Ar,ut),ut|=r;return Ke(e,t,o,a),t.child}function op(e,t){var a=t.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(t.flags|=512,t.flags|=2097152)}function bs(e,t,a,r,o){var n=rt(a)?Ja:Ve.current;return n=Nr(t,n),Or(t,o),a=pi(e,t,a,r,n,o),r=mi(),e!==null&&!tt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,na(e,t,o)):(Se&&r&&ti(t),t.flags|=1,Ke(e,t,a,o),t.child)}function xf(e,t,a,r,o){if(rt(a)){var n=!0;vl(t)}else n=!1;if(Or(t,o),t.stateNode===null)ol(e,t),Jc(t,a,r),ws(t,a,r,o),r=!0;else if(e===null){var l=t.stateNode,u=t.memoizedProps;l.props=u;var s=l.context,f=a.contextType;typeof f=="object"&&f!==null?f=Lt(f):(f=rt(a)?Ja:Ve.current,f=Nr(t,f));var m=a.getDerivedStateFromProps,g=typeof m=="function"||typeof l.getSnapshotBeforeUpdate=="function";g||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(u!==r||s!==f)&&ff(t,l,r,f),pa=!1;var p=t.memoizedState;l.state=p,Cl(t,r,l,o),s=t.memoizedState,u!==r||p!==s||at.current||pa?(typeof m=="function"&&(Cs(t,a,m,r),s=t.memoizedState),(u=pa||df(t,a,u,r,p,s,f))?(g||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=s),l.props=r,l.state=s,l.context=f,r=u):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{l=t.stateNode,Mc(e,t),u=t.memoizedProps,f=t.type===t.elementType?u:Pt(t.type,u),l.props=f,g=t.pendingProps,p=l.context,s=a.contextType,typeof s=="object"&&s!==null?s=Lt(s):(s=rt(a)?Ja:Ve.current,s=Nr(t,s));var x=a.getDerivedStateFromProps;(m=typeof x=="function"||typeof l.getSnapshotBeforeUpdate=="function")||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(u!==g||p!==s)&&ff(t,l,r,s),pa=!1,p=t.memoizedState,l.state=p,Cl(t,r,l,o);var L=t.memoizedState;u!==g||p!==L||at.current||pa?(typeof x=="function"&&(Cs(t,a,x,r),L=t.memoizedState),(f=pa||df(t,a,f,r,p,L,s)||!1)?(m||typeof l.UNSAFE_componentWillUpdate!="function"&&typeof l.componentWillUpdate!="function"||(typeof l.componentWillUpdate=="function"&&l.componentWillUpdate(r,L,s),typeof l.UNSAFE_componentWillUpdate=="function"&&l.UNSAFE_componentWillUpdate(r,L,s)),typeof l.componentDidUpdate=="function"&&(t.flags|=4),typeof l.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof l.componentDidUpdate!="function"||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=L),l.props=r,l.state=L,l.context=s,r=f):(typeof l.componentDidUpdate!="function"||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ps(e,t,a,r,n,o)}function Ps(e,t,a,r,o,n){op(e,t);var l=(t.flags&128)!==0;if(!r&&!l)return o&&tf(t,a,!1),na(e,t,n);r=t.stateNode,Dh.current=t;var u=l&&typeof a.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&l?(t.child=_r(t,e.child,null,n),t.child=_r(t,null,u,n)):Ke(e,t,u,n),t.memoizedState=r.state,o&&tf(t,a,!0),t.child}function np(e){var t=e.stateNode;t.pendingContext?ef(e,t.pendingContext,t.pendingContext!==t.context):t.context&&ef(e,t.context,!1),ii(e,t.containerInfo)}function vf(e,t,a,r,o){return Hr(),ri(o),t.flags|=256,Ke(e,t,a,r),t.child}var Ts={dehydrated:null,treeContext:null,retryLane:0};function Rs(e){return{baseLanes:e,cachePool:null,transitions:null}}function lp(e,t,a){var r=t.pendingProps,o=we.current,n=!1,l=(t.flags&128)!==0,u;if((u=l)||(u=e!==null&&e.memoizedState===null?!1:(o&2)!==0),u?(n=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),he(we,o&1),e===null)return Ss(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=Za(e,r,a,null),n.return=t,e.return=t,n.sibling=e,t.child=n,t.child.memoizedState=Rs(a),t.memoizedState=Ts,e):xi(t,l));if(o=e.memoizedState,o!==null&&(u=o.dehydrated,u!==null))return Ah(e,t,l,r,u,o,a);if(n){n=r.fallback,l=t.mode,o=e.child,u=o.sibling;var s={mode:"hidden",children:r.children};return(l&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=ka(o,s),r.subtreeFlags=o.subtreeFlags&14680064),u!==null?n=ka(u,n):(n=Za(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?Rs(a):{baseLanes:l.baseLanes|a,cachePool:null,transitions:l.transitions},n.memoizedState=l,n.childLanes=e.childLanes&~a,t.memoizedState=Ts,r}return n=e.child,e=n.sibling,r=ka(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 xi(e,t){return t=ql({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Xn(e,t,a,r){return r!==null&&ri(r),_r(t,e.child,null,a),e=xi(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Ah(e,t,a,r,o,n,l){if(a)return t.flags&256?(t.flags&=-257,r=Wu(Error(b(422))),Xn(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=Za(n,o,l,null),n.flags|=2,r.return=t,n.return=t,r.sibling=n,t.child=r,(t.mode&1)!==0&&_r(t,e.child,null,l),t.child.memoizedState=Rs(l),t.memoizedState=Ts,n);if((t.mode&1)===0)return Xn(e,t,l,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var u=r.dgst;return r=u,n=Error(b(419)),r=Wu(n,r,void 0),Xn(e,t,l,r)}if(u=(l&e.childLanes)!==0,tt||u){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,oa(e,o),At(r,e,o,-1))}return Ci(),r=Wu(Error(b(421))),Xn(e,t,l,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=Vh.bind(null,e),o._reactRetry=t,null):(e=n.treeContext,st=Sa(o.nextSibling),it=t,Se=!0,Rt=null,e!==null&&(gt[ht++]=Jt,gt[ht++]=ea,gt[ht++]=er,Jt=e.id,ea=e.overflow,er=t),t=xi(t,r.children),t.flags|=4096,t)}function Lf(e,t,a){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Is(e.return,t,a)}function Vu(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 up(e,t,a){var r=t.pendingProps,o=r.revealOrder,n=r.tail;if(Ke(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&&Lf(e,a,t);else if(e.tag===19)Lf(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(he(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&&wl(e)===null&&(o=a),a=a.sibling;a=o,a===null?(o=t.child,t.child=null):(o=a.sibling,a.sibling=null),Vu(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&&wl(e)===null){t.child=o;break}e=o.sibling,o.sibling=a,a=o,o=e}Vu(t,!0,a,null,n);break;case"together":Vu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ol(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function na(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),ar|=t.lanes,(a&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(b(153));if(t.child!==null){for(e=t.child,a=ka(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=ka(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function Mh(e,t,a){switch(t.tag){case 3:np(t),Hr();break;case 5:Fc(t);break;case 1:rt(t.type)&&vl(t);break;case 4:ii(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;he(Sl,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(he(we,we.current&1),t.flags|=128,null):(a&t.child.childLanes)!==0?lp(e,t,a):(he(we,we.current&1),e=na(e,t,a),e!==null?e.sibling:null);he(we,we.current&1);break;case 19:if(r=(a&t.childLanes)!==0,(e.flags&128)!==0){if(r)return up(e,t,a);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),he(we,we.current),r)break;return null;case 22:case 23:return t.lanes=0,rp(e,t,a)}return na(e,t,a)}var sp,Ds,ip,dp;sp=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}};Ds=function(){};ip=function(e,t,a,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Qa(Wt.current);var n=null;switch(a){case"input":o=Zu(e,o),r=Zu(e,r),n=[];break;case"select":o=be({},o,{value:void 0}),r=be({},r,{value:void 0}),n=[];break;case"textarea":o=ts(e,o),r=ts(e,r),n=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=hl)}rs(a,r);var l;a=null;for(f in o)if(!r.hasOwnProperty(f)&&o.hasOwnProperty(f)&&o[f]!=null)if(f==="style"){var u=o[f];for(l in u)u.hasOwnProperty(l)&&(a||(a={}),a[l]="")}else f!=="dangerouslySetInnerHTML"&&f!=="children"&&f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&f!=="autoFocus"&&(Ao.hasOwnProperty(f)?n||(n=[]):(n=n||[]).push(f,null));for(f in r){var s=r[f];if(u=o!=null?o[f]:void 0,r.hasOwnProperty(f)&&s!==u&&(s!=null||u!=null))if(f==="style")if(u){for(l in u)!u.hasOwnProperty(l)||s&&s.hasOwnProperty(l)||(a||(a={}),a[l]="");for(l in s)s.hasOwnProperty(l)&&u[l]!==s[l]&&(a||(a={}),a[l]=s[l])}else a||(n||(n=[]),n.push(f,a)),a=s;else f==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(n=n||[]).push(f,s)):f==="children"?typeof s!="string"&&typeof s!="number"||(n=n||[]).push(f,""+s):f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&(Ao.hasOwnProperty(f)?(s!=null&&f==="onScroll"&&Le("scroll",e),n||u===s||(n=[])):(n=n||[]).push(f,s))}a&&(n=n||[]).push("style",a);var f=n;(t.updateQueue=f)&&(t.flags|=4)}};dp=function(e,t,a,r){a!==r&&(t.flags|=4)};function go(e,t){if(!Se)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 qe(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 Fh(e,t,a){var r=t.pendingProps;switch(ai(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qe(t),null;case 1:return rt(t.type)&&xl(),qe(t),null;case 3:return r=t.stateNode,qr(),ye(at),ye(Ve),fi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(jn(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Rt!==null&&(Us(Rt),Rt=null))),Ds(e,t),qe(t),null;case 5:di(t);var o=Qa(Wo.current);if(a=t.type,e!==null&&t.stateNode!=null)ip(e,t,a,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(b(166));return qe(t),null}if(e=Qa(Wt.current),jn(t)){r=t.stateNode,a=t.type;var n=t.memoizedProps;switch(r[_t]=t,r[_o]=n,e=(t.mode&1)!==0,a){case"dialog":Le("cancel",r),Le("close",r);break;case"iframe":case"object":case"embed":Le("load",r);break;case"video":case"audio":for(o=0;o<So.length;o++)Le(So[o],r);break;case"source":Le("error",r);break;case"img":case"image":case"link":Le("error",r),Le("load",r);break;case"details":Le("toggle",r);break;case"input":bd(r,n),Le("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!n.multiple},Le("invalid",r);break;case"textarea":Td(r,n),Le("invalid",r)}rs(a,n),o=null;for(var l in n)if(n.hasOwnProperty(l)){var u=n[l];l==="children"?typeof u=="string"?r.textContent!==u&&(n.suppressHydrationWarning!==!0&&Gn(r.textContent,u,e),o=["children",u]):typeof u=="number"&&r.textContent!==""+u&&(n.suppressHydrationWarning!==!0&&Gn(r.textContent,u,e),o=["children",""+u]):Ao.hasOwnProperty(l)&&u!=null&&l==="onScroll"&&Le("scroll",r)}switch(a){case"input":En(r),Pd(r,n,!0);break;case"textarea":En(r),Rd(r);break;case"select":case"option":break;default:typeof n.onClick=="function"&&(r.onclick=hl)}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=Uf(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[_t]=t,e[_o]=r,sp(e,t,!1,!1),t.stateNode=e;e:{switch(l=os(a,r),a){case"dialog":Le("cancel",e),Le("close",e),o=r;break;case"iframe":case"object":case"embed":Le("load",e),o=r;break;case"video":case"audio":for(o=0;o<So.length;o++)Le(So[o],e);o=r;break;case"source":Le("error",e),o=r;break;case"img":case"image":case"link":Le("error",e),Le("load",e),o=r;break;case"details":Le("toggle",e),o=r;break;case"input":bd(e,r),o=Zu(e,r),Le("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=be({},r,{value:void 0}),Le("invalid",e);break;case"textarea":Td(e,r),o=ts(e,r),Le("invalid",e);break;default:o=r}rs(a,o),u=o;for(n in u)if(u.hasOwnProperty(n)){var s=u[n];n==="style"?_f(e,s):n==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,s!=null&&Nf(e,s)):n==="children"?typeof s=="string"?(a!=="textarea"||s!=="")&&Mo(e,s):typeof s=="number"&&Mo(e,""+s):n!=="suppressContentEditableWarning"&&n!=="suppressHydrationWarning"&&n!=="autoFocus"&&(Ao.hasOwnProperty(n)?s!=null&&n==="onScroll"&&Le("scroll",e):s!=null&&_s(e,n,s,l))}switch(a){case"input":En(e),Pd(e,r,!1);break;case"textarea":En(e),Rd(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ba(r.value));break;case"select":e.multiple=!!r.multiple,n=r.value,n!=null?Mr(e,!!r.multiple,n,!1):r.defaultValue!=null&&Mr(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=hl)}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 qe(t),null;case 6:if(e&&t.stateNode!=null)dp(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(b(166));if(a=Qa(Wo.current),Qa(Wt.current),jn(t)){if(r=t.stateNode,a=t.memoizedProps,r[_t]=t,(n=r.nodeValue!==a)&&(e=it,e!==null))switch(e.tag){case 3:Gn(r.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Gn(r.nodeValue,a,(e.mode&1)!==0)}n&&(t.flags|=4)}else r=(a.nodeType===9?a:a.ownerDocument).createTextNode(r),r[_t]=t,t.stateNode=r}return qe(t),null;case 13:if(ye(we),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Se&&st!==null&&(t.mode&1)!==0&&(t.flags&128)===0)Tc(),Hr(),t.flags|=98560,n=!1;else if(n=jn(t),r!==null&&r.dehydrated!==null){if(e===null){if(!n)throw Error(b(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(b(317));n[_t]=t}else Hr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;qe(t),n=!1}else Rt!==null&&(Us(Rt),Rt=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):Ci())),t.updateQueue!==null&&(t.flags|=4),qe(t),null);case 4:return qr(),Ds(e,t),e===null&&No(t.stateNode.containerInfo),qe(t),null;case 10:return li(t.type._context),qe(t),null;case 17:return rt(t.type)&&xl(),qe(t),null;case 19:if(ye(we),n=t.memoizedState,n===null)return qe(t),null;if(r=(t.flags&128)!==0,l=n.rendering,l===null)if(r)go(n,!1);else{if(Fe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(l=wl(e),l!==null){for(t.flags|=128,go(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 he(we,we.current&1|2),t.child}e=e.sibling}n.tail!==null&&Te()>Vr&&(t.flags|=128,r=!0,go(n,!1),t.lanes=4194304)}else{if(!r)if(e=wl(l),e!==null){if(t.flags|=128,r=!0,a=e.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),go(n,!0),n.tail===null&&n.tailMode==="hidden"&&!l.alternate&&!Se)return qe(t),null}else 2*Te()-n.renderingStartTime>Vr&&a!==1073741824&&(t.flags|=128,r=!0,go(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,he(we,r?a&1|2:a&1),t):(qe(t),null);case 22:case 23:return Ii(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(ut&1073741824)!==0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error(b(156,t.tag))}function Eh(e,t){switch(ai(t),t.tag){case 1:return rt(t.type)&&xl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qr(),ye(at),ye(Ve),fi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return di(t),null;case 13:if(ye(we),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(b(340));Hr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ye(we),null;case 4:return qr(),null;case 10:return li(t.type._context),null;case 22:case 23:return Ii(),null;case 24:return null;default:return null}}var Qn=!1,We=!1,Bh=typeof WeakSet=="function"?WeakSet:Set,B=null;function Dr(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 As(e,t,a){try{a()}catch(r){Pe(e,t,r)}}var yf=!1;function Oh(e,t){if(ms=pl,e=gc(),ei(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,u=-1,s=-1,f=0,m=0,g=e,p=null;t:for(;;){for(var x;g!==a||o!==0&&g.nodeType!==3||(u=l+o),g!==n||r!==0&&g.nodeType!==3||(s=l+r),g.nodeType===3&&(l+=g.nodeValue.length),(x=g.firstChild)!==null;)p=g,g=x;for(;;){if(g===e)break t;if(p===a&&++f===o&&(u=l),p===n&&++m===r&&(s=l),(x=g.nextSibling)!==null)break;g=p,p=g.parentNode}g=x}a=u===-1||s===-1?null:{start:u,end:s}}else a=null}a=a||{start:0,end:0}}else a=null;for(gs={focusedElem:e,selectionRange:a},pl=!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 L=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(L!==null){var y=L.memoizedProps,F=L.memoizedState,c=t.stateNode,d=c.getSnapshotBeforeUpdate(t.elementType===t.type?y:Pt(t.type,y),F);c.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var i=t.stateNode.containerInfo;i.nodeType===1?i.textContent="":i.nodeType===9&&i.documentElement&&i.removeChild(i.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(b(163))}}catch(h){Pe(t,t.return,h)}if(e=t.sibling,e!==null){e.return=t.return,B=e;break}B=t.return}return L=yf,yf=!1,L}function To(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&&As(t,a,n)}o=o.next}while(o!==r)}}function Hl(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 Ms(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 fp(e){var t=e.alternate;t!==null&&(e.alternate=null,fp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[_t],delete t[_o],delete t[vs],delete t[vh],delete t[Lh])),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 cp(e){return e.tag===5||e.tag===3||e.tag===4}function Sf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||cp(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 Fs(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=hl));else if(r!==4&&(e=e.child,e!==null))for(Fs(e,t,a),e=e.sibling;e!==null;)Fs(e,t,a),e=e.sibling}function Es(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(Es(e,t,a),e=e.sibling;e!==null;)Es(e,t,a),e=e.sibling}var Oe=null,Tt=!1;function fa(e,t,a){for(a=a.child;a!==null;)pp(e,t,a),a=a.sibling}function pp(e,t,a){if(qt&&typeof qt.onCommitFiberUnmount=="function")try{qt.onCommitFiberUnmount(Ml,a)}catch{}switch(a.tag){case 5:We||Dr(a,t);case 6:var r=Oe,o=Tt;Oe=null,fa(e,t,a),Oe=r,Tt=o,Oe!==null&&(Tt?(e=Oe,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):Oe.removeChild(a.stateNode));break;case 18:Oe!==null&&(Tt?(e=Oe,a=a.stateNode,e.nodeType===8?zu(e.parentNode,a):e.nodeType===1&&zu(e,a),Oo(e)):zu(Oe,a.stateNode));break;case 4:r=Oe,o=Tt,Oe=a.stateNode.containerInfo,Tt=!0,fa(e,t,a),Oe=r,Tt=o;break;case 0:case 11:case 14:case 15:if(!We&&(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)&&As(a,t,l),o=o.next}while(o!==r)}fa(e,t,a);break;case 1:if(!We&&(Dr(a,t),r=a.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=a.memoizedProps,r.state=a.memoizedState,r.componentWillUnmount()}catch(u){Pe(a,t,u)}fa(e,t,a);break;case 21:fa(e,t,a);break;case 22:a.mode&1?(We=(r=We)||a.memoizedState!==null,fa(e,t,a),We=r):fa(e,t,a);break;default:fa(e,t,a)}}function If(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new Bh),t.forEach(function(r){var o=$h.bind(null,e,r);a.has(r)||(a.add(r),r.then(o,o))})}}function bt(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,u=l;e:for(;u!==null;){switch(u.tag){case 5:Oe=u.stateNode,Tt=!1;break e;case 3:Oe=u.stateNode.containerInfo,Tt=!0;break e;case 4:Oe=u.stateNode.containerInfo,Tt=!0;break e}u=u.return}if(Oe===null)throw Error(b(160));pp(n,l,o),Oe=null,Tt=!1;var s=o.alternate;s!==null&&(s.return=null),o.return=null}catch(f){Pe(o,t,f)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)mp(t,e),t=t.sibling}function mp(e,t){var a=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(bt(t,e),Nt(e),r&4){try{To(3,e,e.return),Hl(3,e)}catch(y){Pe(e,e.return,y)}try{To(5,e,e.return)}catch(y){Pe(e,e.return,y)}}break;case 1:bt(t,e),Nt(e),r&512&&a!==null&&Dr(a,a.return);break;case 5:if(bt(t,e),Nt(e),r&512&&a!==null&&Dr(a,a.return),e.flags&32){var o=e.stateNode;try{Mo(o,"")}catch(y){Pe(e,e.return,y)}}if(r&4&&(o=e.stateNode,o!=null)){var n=e.memoizedProps,l=a!==null?a.memoizedProps:n,u=e.type,s=e.updateQueue;if(e.updateQueue=null,s!==null)try{u==="input"&&n.type==="radio"&&n.name!=null&&Of(o,n),os(u,l);var f=os(u,n);for(l=0;l<s.length;l+=2){var m=s[l],g=s[l+1];m==="style"?_f(o,g):m==="dangerouslySetInnerHTML"?Nf(o,g):m==="children"?Mo(o,g):_s(o,m,g,f)}switch(u){case"input":Ju(o,n);break;case"textarea":zf(o,n);break;case"select":var p=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!n.multiple;var x=n.value;x!=null?Mr(o,!!n.multiple,x,!1):p!==!!n.multiple&&(n.defaultValue!=null?Mr(o,!!n.multiple,n.defaultValue,!0):Mr(o,!!n.multiple,n.multiple?[]:"",!1))}o[_o]=n}catch(y){Pe(e,e.return,y)}}break;case 6:if(bt(t,e),Nt(e),r&4){if(e.stateNode===null)throw Error(b(162));o=e.stateNode,n=e.memoizedProps;try{o.nodeValue=n}catch(y){Pe(e,e.return,y)}}break;case 3:if(bt(t,e),Nt(e),r&4&&a!==null&&a.memoizedState.isDehydrated)try{Oo(t.containerInfo)}catch(y){Pe(e,e.return,y)}break;case 4:bt(t,e),Nt(e);break;case 13:bt(t,e),Nt(e),o=e.child,o.flags&8192&&(n=o.memoizedState!==null,o.stateNode.isHidden=n,!n||o.alternate!==null&&o.alternate.memoizedState!==null||(yi=Te())),r&4&&If(e);break;case 22:if(m=a!==null&&a.memoizedState!==null,e.mode&1?(We=(f=We)||m,bt(t,e),We=f):bt(t,e),Nt(e),r&8192){if(f=e.memoizedState!==null,(e.stateNode.isHidden=f)&&!m&&(e.mode&1)!==0)for(B=e,m=e.child;m!==null;){for(g=B=m;B!==null;){switch(p=B,x=p.child,p.tag){case 0:case 11:case 14:case 15:To(4,p,p.return);break;case 1:Dr(p,p.return);var L=p.stateNode;if(typeof L.componentWillUnmount=="function"){r=p,a=p.return;try{t=r,L.props=t.memoizedProps,L.state=t.memoizedState,L.componentWillUnmount()}catch(y){Pe(r,a,y)}}break;case 5:Dr(p,p.return);break;case 22:if(p.memoizedState!==null){wf(g);continue}}x!==null?(x.return=p,B=x):wf(g)}m=m.sibling}e:for(m=null,g=e;;){if(g.tag===5){if(m===null){m=g;try{o=g.stateNode,f?(n=o.style,typeof n.setProperty=="function"?n.setProperty("display","none","important"):n.display="none"):(u=g.stateNode,s=g.memoizedProps.style,l=s!=null&&s.hasOwnProperty("display")?s.display:null,u.style.display=Hf("display",l))}catch(y){Pe(e,e.return,y)}}}else if(g.tag===6){if(m===null)try{g.stateNode.nodeValue=f?"":g.memoizedProps}catch(y){Pe(e,e.return,y)}}else if((g.tag!==22&&g.tag!==23||g.memoizedState===null||g===e)&&g.child!==null){g.child.return=g,g=g.child;continue}if(g===e)break e;for(;g.sibling===null;){if(g.return===null||g.return===e)break e;m===g&&(m=null),g=g.return}m===g&&(m=null),g.sibling.return=g.return,g=g.sibling}}break;case 19:bt(t,e),Nt(e),r&4&&If(e);break;case 21:break;default:bt(t,e),Nt(e)}}function Nt(e){var t=e.flags;if(t&2){try{e:{for(var a=e.return;a!==null;){if(cp(a)){var r=a;break e}a=a.return}throw Error(b(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(Mo(o,""),r.flags&=-33);var n=Sf(e);Es(e,n,o);break;case 3:case 4:var l=r.stateNode.containerInfo,u=Sf(e);Fs(e,u,l);break;default:throw Error(b(161))}}catch(s){Pe(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function zh(e,t,a){B=e,gp(e,t,a)}function gp(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||Qn;if(!l){var u=o.alternate,s=u!==null&&u.memoizedState!==null||We;u=Qn;var f=We;if(Qn=l,(We=s)&&!f)for(B=o;B!==null;)l=B,s=l.child,l.tag===22&&l.memoizedState!==null?kf(o):s!==null?(s.return=l,B=s):kf(o);for(;n!==null;)B=n,gp(n,t,a),n=n.sibling;B=o,Qn=u,We=f}Cf(e,t,a)}else(o.subtreeFlags&8772)!==0&&n!==null?(n.return=o,B=n):Cf(e,t,a)}}function Cf(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:We||Hl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!We)if(a===null)r.componentDidMount();else{var o=t.elementType===t.type?a.memoizedProps:Pt(t.type,a.memoizedProps);r.componentDidUpdate(o,a.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var n=t.updateQueue;n!==null&&lf(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}lf(t,l,a)}break;case 5:var u=t.stateNode;if(a===null&&t.flags&4){a=u;var s=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&a.focus();break;case"img":s.src&&(a.src=s.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var f=t.alternate;if(f!==null){var m=f.memoizedState;if(m!==null){var g=m.dehydrated;g!==null&&Oo(g)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(b(163))}We||t.flags&512&&Ms(t)}catch(p){Pe(t,t.return,p)}}if(t===e){B=null;break}if(a=t.sibling,a!==null){a.return=t.return,B=a;break}B=t.return}}function wf(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 kf(e){for(;B!==null;){var t=B;try{switch(t.tag){case 0:case 11:case 15:var a=t.return;try{Hl(4,t)}catch(s){Pe(t,a,s)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(s){Pe(t,o,s)}}var n=t.return;try{Ms(t)}catch(s){Pe(t,n,s)}break;case 5:var l=t.return;try{Ms(t)}catch(s){Pe(t,l,s)}}}catch(s){Pe(t,t.return,s)}if(t===e){B=null;break}var u=t.sibling;if(u!==null){u.return=t.return,B=u;break}B=t.return}}var Uh=Math.ceil,Pl=la.ReactCurrentDispatcher,vi=la.ReactCurrentOwner,vt=la.ReactCurrentBatchConfig,ae=0,Be=null,Re=null,ze=0,ut=0,Ar=Ra(0),Fe=0,jo=null,ar=0,_l=0,Li=0,Ro=null,et=null,yi=0,Vr=1/0,Yt=null,Tl=!1,Bs=null,Ca=null,Yn=!1,xa=null,Rl=0,Do=0,Os=null,nl=-1,ll=0;function Xe(){return(ae&6)!==0?Te():nl!==-1?nl:nl=Te()}function wa(e){return(e.mode&1)===0?1:(ae&2)!==0&&ze!==0?ze&-ze:Sh.transition!==null?(ll===0&&(ll=Jf()),ll):(e=ce,e!==0||(e=window.event,e=e===void 0?16:lc(e.type)),e)}function At(e,t,a,r){if(50<Do)throw Do=0,Os=null,Error(b(185));Ko(e,a,r),((ae&2)===0||e!==Be)&&(e===Be&&((ae&2)===0&&(_l|=a),Fe===4&&ga(e,ze)),ot(e,r),a===1&&ae===0&&(t.mode&1)===0&&(Vr=Te()+500,zl&&Da()))}function ot(e,t){var a=e.callbackNode;Cg(e,t);var r=cl(e,e===Be?ze:0);if(r===0)a!==null&&Md(a),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(a!=null&&Md(a),t===1)e.tag===0?yh(bf.bind(null,e)):kc(bf.bind(null,e)),hh(function(){(ae&6)===0&&Da()}),a=null;else{switch(ec(r)){case 1:a=Gs;break;case 4:a=Yf;break;case 16:a=fl;break;case 536870912:a=Zf;break;default:a=fl}a=Cp(a,hp.bind(null,e))}e.callbackPriority=t,e.callbackNode=a}}function hp(e,t){if(nl=-1,ll=0,(ae&6)!==0)throw Error(b(327));var a=e.callbackNode;if(zr()&&e.callbackNode!==a)return null;var r=cl(e,e===Be?ze:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=Dl(e,r);else{t=r;var o=ae;ae|=2;var n=vp();(Be!==e||ze!==t)&&(Yt=null,Vr=Te()+500,Ya(e,t));do try{_h();break}catch(u){xp(e,u)}while(!0);ni(),Pl.current=n,ae=o,Re!==null?t=0:(Be=null,ze=0,t=Fe)}if(t!==0){if(t===2&&(o=is(e),o!==0&&(r=o,t=zs(e,o))),t===1)throw a=jo,Ya(e,0),ga(e,r),ot(e,Te()),a;if(t===6)ga(e,r);else{if(o=e.current.alternate,(r&30)===0&&!Nh(o)&&(t=Dl(e,r),t===2&&(n=is(e),n!==0&&(r=n,t=zs(e,n))),t===1))throw a=jo,Ya(e,0),ga(e,r),ot(e,Te()),a;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(b(345));case 2:ja(e,et,Yt);break;case 3:if(ga(e,r),(r&130023424)===r&&(t=yi+500-Te(),10<t)){if(cl(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){Xe(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=xs(ja.bind(null,e,et,Yt),t);break}ja(e,et,Yt);break;case 4:if(ga(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-Dt(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*Uh(r/1960))-r,10<r){e.timeoutHandle=xs(ja.bind(null,e,et,Yt),r);break}ja(e,et,Yt);break;case 5:ja(e,et,Yt);break;default:throw Error(b(329))}}}return ot(e,Te()),e.callbackNode===a?hp.bind(null,e):null}function zs(e,t){var a=Ro;return e.current.memoizedState.isDehydrated&&(Ya(e,t).flags|=256),e=Dl(e,t),e!==2&&(t=et,et=a,t!==null&&Us(t)),e}function Us(e){et===null?et=e:et.push.apply(et,e)}function Nh(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(!Mt(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 ga(e,t){for(t&=~Li,t&=~_l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var a=31-Dt(t),r=1<<a;e[a]=-1,t&=~r}}function bf(e){if((ae&6)!==0)throw Error(b(327));zr();var t=cl(e,0);if((t&1)===0)return ot(e,Te()),null;var a=Dl(e,t);if(e.tag!==0&&a===2){var r=is(e);r!==0&&(t=r,a=zs(e,r))}if(a===1)throw a=jo,Ya(e,0),ga(e,t),ot(e,Te()),a;if(a===6)throw Error(b(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ja(e,et,Yt),ot(e,Te()),null}function Si(e,t){var a=ae;ae|=1;try{return e(t)}finally{ae=a,ae===0&&(Vr=Te()+500,zl&&Da())}}function rr(e){xa!==null&&xa.tag===0&&(ae&6)===0&&zr();var t=ae;ae|=1;var a=vt.transition,r=ce;try{if(vt.transition=null,ce=1,e)return e()}finally{ce=r,vt.transition=a,ae=t,(ae&6)===0&&Da()}}function Ii(){ut=Ar.current,ye(Ar)}function Ya(e,t){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,gh(a)),Re!==null)for(a=Re.return;a!==null;){var r=a;switch(ai(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&xl();break;case 3:qr(),ye(at),ye(Ve),fi();break;case 5:di(r);break;case 4:qr();break;case 13:ye(we);break;case 19:ye(we);break;case 10:li(r.type._context);break;case 22:case 23:Ii()}a=a.return}if(Be=e,Re=e=ka(e.current,null),ze=ut=t,Fe=0,jo=null,Li=_l=ar=0,et=Ro=null,Xa!==null){for(t=0;t<Xa.length;t++)if(a=Xa[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}Xa=null}return e}function xp(e,t){do{var a=Re;try{if(ni(),al.current=bl,kl){for(var r=ke.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}kl=!1}if(tr=0,Ee=Me=ke=null,Po=!1,Vo=0,vi.current=null,a===null||a.return===null){Fe=1,jo=t,Re=null;break}e:{var n=e,l=a.return,u=a,s=t;if(t=ze,u.flags|=32768,s!==null&&typeof s=="object"&&typeof s.then=="function"){var f=s,m=u,g=m.tag;if((m.mode&1)===0&&(g===0||g===11||g===15)){var p=m.alternate;p?(m.updateQueue=p.updateQueue,m.memoizedState=p.memoizedState,m.lanes=p.lanes):(m.updateQueue=null,m.memoizedState=null)}var x=pf(l);if(x!==null){x.flags&=-257,mf(x,l,u,n,t),x.mode&1&&cf(n,f,t),t=x,s=f;var L=t.updateQueue;if(L===null){var y=new Set;y.add(s),t.updateQueue=y}else L.add(s);break e}else{if((t&1)===0){cf(n,f,t),Ci();break e}s=Error(b(426))}}else if(Se&&u.mode&1){var F=pf(l);if(F!==null){(F.flags&65536)===0&&(F.flags|=256),mf(F,l,u,n,t),ri(Wr(s,u));break e}}n=s=Wr(s,u),Fe!==4&&(Fe=2),Ro===null?Ro=[n]:Ro.push(n),n=l;do{switch(n.tag){case 3:n.flags|=65536,t&=-t,n.lanes|=t;var c=ep(n,s,t);nf(n,c);break e;case 1:u=s;var d=n.type,i=n.stateNode;if((n.flags&128)===0&&(typeof d.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(Ca===null||!Ca.has(i)))){n.flags|=65536,t&=-t,n.lanes|=t;var h=tp(n,u,t);nf(n,h);break e}}n=n.return}while(n!==null)}yp(a)}catch(k){t=k,Re===a&&a!==null&&(Re=a=a.return);continue}break}while(!0)}function vp(){var e=Pl.current;return Pl.current=bl,e===null?bl:e}function Ci(){(Fe===0||Fe===3||Fe===2)&&(Fe=4),Be===null||(ar&268435455)===0&&(_l&268435455)===0||ga(Be,ze)}function Dl(e,t){var a=ae;ae|=2;var r=vp();(Be!==e||ze!==t)&&(Yt=null,Ya(e,t));do try{Hh();break}catch(o){xp(e,o)}while(!0);if(ni(),ae=a,Pl.current=r,Re!==null)throw Error(b(261));return Be=null,ze=0,Fe}function Hh(){for(;Re!==null;)Lp(Re)}function _h(){for(;Re!==null&&!mg();)Lp(Re)}function Lp(e){var t=Ip(e.alternate,e,ut);e.memoizedProps=e.pendingProps,t===null?yp(e):Re=t,vi.current=null}function yp(e){var t=e;do{var a=t.alternate;if(e=t.return,(t.flags&32768)===0){if(a=Fh(a,t,ut),a!==null){Re=a;return}}else{if(a=Eh(a,t),a!==null){a.flags&=32767,Re=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Fe=6,Re=null;return}}if(t=t.sibling,t!==null){Re=t;return}Re=t=e}while(t!==null);Fe===0&&(Fe=5)}function ja(e,t,a){var r=ce,o=vt.transition;try{vt.transition=null,ce=1,qh(e,t,a,r)}finally{vt.transition=o,ce=r}return null}function qh(e,t,a,r){do zr();while(xa!==null);if((ae&6)!==0)throw Error(b(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(b(177));e.callbackNode=null,e.callbackPriority=0;var n=a.lanes|a.childLanes;if(wg(e,n),e===Be&&(Re=Be=null,ze=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||Yn||(Yn=!0,Cp(fl,function(){return zr(),null})),n=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||n){n=vt.transition,vt.transition=null;var l=ce;ce=1;var u=ae;ae|=4,vi.current=null,Oh(e,a),mp(a,e),dh(gs),pl=!!ms,gs=ms=null,e.current=a,zh(a,e,o),gg(),ae=u,ce=l,vt.transition=n}else e.current=a;if(Yn&&(Yn=!1,xa=e,Rl=o),n=e.pendingLanes,n===0&&(Ca=null),vg(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(Tl)throw Tl=!1,e=Bs,Bs=null,e;return(Rl&1)!==0&&e.tag!==0&&zr(),n=e.pendingLanes,(n&1)!==0?e===Os?Do++:(Do=0,Os=e):Do=0,Da(),null}function zr(){if(xa!==null){var e=ec(Rl),t=vt.transition,a=ce;try{if(vt.transition=null,ce=16>e?16:e,xa===null)var r=!1;else{if(e=xa,xa=null,Rl=0,(ae&6)!==0)throw Error(b(331));var o=ae;for(ae|=4,B=e.current;B!==null;){var n=B,l=n.child;if((B.flags&16)!==0){var u=n.deletions;if(u!==null){for(var s=0;s<u.length;s++){var f=u[s];for(B=f;B!==null;){var m=B;switch(m.tag){case 0:case 11:case 15:To(8,m,n)}var g=m.child;if(g!==null)g.return=m,B=g;else for(;B!==null;){m=B;var p=m.sibling,x=m.return;if(fp(m),m===f){B=null;break}if(p!==null){p.return=x,B=p;break}B=x}}}var L=n.alternate;if(L!==null){var y=L.child;if(y!==null){L.child=null;do{var F=y.sibling;y.sibling=null,y=F}while(y!==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:To(9,n,n.return)}var c=n.sibling;if(c!==null){c.return=n.return,B=c;break e}B=n.return}}var d=e.current;for(B=d;B!==null;){l=B;var i=l.child;if((l.subtreeFlags&2064)!==0&&i!==null)i.return=l,B=i;else e:for(l=d;B!==null;){if(u=B,(u.flags&2048)!==0)try{switch(u.tag){case 0:case 11:case 15:Hl(9,u)}}catch(k){Pe(u,u.return,k)}if(u===l){B=null;break e}var h=u.sibling;if(h!==null){h.return=u.return,B=h;break e}B=u.return}}if(ae=o,Da(),qt&&typeof qt.onPostCommitFiberRoot=="function")try{qt.onPostCommitFiberRoot(Ml,e)}catch{}r=!0}return r}finally{ce=a,vt.transition=t}}return!1}function Pf(e,t,a){t=Wr(a,t),t=ep(e,t,1),e=Ia(e,t,1),t=Xe(),e!==null&&(Ko(e,1,t),ot(e,t))}function Pe(e,t,a){if(e.tag===3)Pf(e,e,a);else for(;t!==null;){if(t.tag===3){Pf(t,e,a);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Ca===null||!Ca.has(r))){e=Wr(a,e),e=tp(t,e,1),t=Ia(t,e,1),e=Xe(),t!==null&&(Ko(t,1,e),ot(t,e));break}}t=t.return}}function Wh(e,t,a){var r=e.pingCache;r!==null&&r.delete(t),t=Xe(),e.pingedLanes|=e.suspendedLanes&a,Be===e&&(ze&a)===a&&(Fe===4||Fe===3&&(ze&130023424)===ze&&500>Te()-yi?Ya(e,0):Li|=a),ot(e,t)}function Sp(e,t){t===0&&((e.mode&1)===0?t=1:(t=zn,zn<<=1,(zn&130023424)===0&&(zn=4194304)));var a=Xe();e=oa(e,t),e!==null&&(Ko(e,t,a),ot(e,a))}function Vh(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Sp(e,a)}function $h(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(b(314))}r!==null&&r.delete(t),Sp(e,a)}var Ip;Ip=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,Mh(e,t,a);tt=(e.flags&131072)!==0}else tt=!1,Se&&(t.flags&1048576)!==0&&bc(t,yl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ol(e,t),e=t.pendingProps;var o=Nr(t,Ve.current);Or(t,a),o=pi(null,t,r,e,o,a);var n=mi();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,vl(t)):n=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,si(t),o.updater=Nl,t.stateNode=o,o._reactInternals=t,ws(t,r,e,a),t=Ps(null,t,r,!0,n,a)):(t.tag=0,Se&&n&&ti(t),Ke(null,t,o,a),t=t.child),t;case 16:r=t.elementType;e:{switch(ol(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=jh(r),e=Pt(r,e),o){case 0:t=bs(null,t,r,e,a);break e;case 1:t=xf(null,t,r,e,a);break e;case 11:t=gf(null,t,r,e,a);break e;case 14:t=hf(null,t,r,Pt(r.type,e),a);break e}throw Error(b(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pt(r,o),bs(e,t,r,o,a);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pt(r,o),xf(e,t,r,o,a);case 3:e:{if(np(t),e===null)throw Error(b(387));r=t.pendingProps,n=t.memoizedState,o=n.element,Mc(e,t),Cl(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=Wr(Error(b(423)),t),t=vf(e,t,r,a,o);break e}else if(r!==o){o=Wr(Error(b(424)),t),t=vf(e,t,r,a,o);break e}else for(st=Sa(t.stateNode.containerInfo.firstChild),it=t,Se=!0,Rt=null,a=Dc(t,null,r,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Hr(),r===o){t=na(e,t,a);break e}Ke(e,t,r,a)}t=t.child}return t;case 5:return Fc(t),e===null&&Ss(t),r=t.type,o=t.pendingProps,n=e!==null?e.memoizedProps:null,l=o.children,hs(r,o)?l=null:n!==null&&hs(r,n)&&(t.flags|=32),op(e,t),Ke(e,t,l,a),t.child;case 6:return e===null&&Ss(t),null;case 13:return lp(e,t,a);case 4:return ii(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=_r(t,null,r,a):Ke(e,t,r,a),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pt(r,o),gf(e,t,r,o,a);case 7:return Ke(e,t,t.pendingProps,a),t.child;case 8:return Ke(e,t,t.pendingProps.children,a),t.child;case 12:return Ke(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,he(Sl,r._currentValue),r._currentValue=l,n!==null)if(Mt(n.value,l)){if(n.children===o.children&&!at.current){t=na(e,t,a);break e}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var u=n.dependencies;if(u!==null){l=n.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(n.tag===1){s=ta(-1,a&-a),s.tag=2;var f=n.updateQueue;if(f!==null){f=f.shared;var m=f.pending;m===null?s.next=s:(s.next=m.next,m.next=s),f.pending=s}}n.lanes|=a,s=n.alternate,s!==null&&(s.lanes|=a),Is(n.return,a,t),u.lanes|=a;break}s=s.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(b(341));l.lanes|=a,u=l.alternate,u!==null&&(u.lanes|=a),Is(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}Ke(e,t,o.children,a),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Or(t,a),o=Lt(o),r=r(o),t.flags|=1,Ke(e,t,r,a),t.child;case 14:return r=t.type,o=Pt(r,t.pendingProps),o=Pt(r.type,o),hf(e,t,r,o,a);case 15:return ap(e,t,t.type,t.pendingProps,a);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Pt(r,o),ol(e,t),t.tag=1,rt(r)?(e=!0,vl(t)):e=!1,Or(t,a),Jc(t,r,o),ws(t,r,o,a),Ps(null,t,r,!0,e,a);case 19:return up(e,t,a);case 22:return rp(e,t,a)}throw Error(b(156,t.tag))};function Cp(e,t){return Qf(e,t)}function Gh(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 Gh(e,t,a,r)}function wi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function jh(e){if(typeof e=="function")return wi(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ws)return 11;if(e===Vs)return 14}return 2}function ka(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 ul(e,t,a,r,o,n){var l=2;if(r=e,typeof e=="function")wi(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Sr:return Za(a.children,o,n,t);case qs:l=8,o|=8;break;case Ku:return e=xt(12,a,t,o|2),e.elementType=Ku,e.lanes=n,e;case Xu:return e=xt(13,a,t,o),e.elementType=Xu,e.lanes=n,e;case Qu:return e=xt(19,a,t,o),e.elementType=Qu,e.lanes=n,e;case Ff:return ql(a,o,n,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Af:l=10;break e;case Mf:l=9;break e;case Ws:l=11;break e;case Vs:l=14;break e;case ca:l=16,r=null;break e}throw Error(b(130,e==null?e:typeof e,""))}return t=xt(l,a,t,o),t.elementType=e,t.type=r,t.lanes=n,t}function Za(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=Ff,e.lanes=a,e.stateNode={isHidden:!1},e}function $u(e,t,a){return e=xt(6,e,null,t),e.lanes=a,e}function Gu(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 Kh(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=Ru(0),this.expirationTimes=Ru(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ru(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function ki(e,t,a,r,o,n,l,u,s){return e=new Kh(e,t,a,u,s),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},si(n),e}function Xh(e,t,a){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:yr,key:r==null?null:""+r,children:e,containerInfo:t,implementation:a}}function wp(e){if(!e)return Pa;e=e._reactInternals;e:{if(nr(e)!==e||e.tag!==1)throw Error(b(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(b(171))}if(e.tag===1){var a=e.type;if(rt(a))return wc(e,a,t)}return t}function kp(e,t,a,r,o,n,l,u,s){return e=ki(a,r,!0,e,o,n,l,u,s),e.context=wp(null),a=e.current,r=Xe(),o=wa(a),n=ta(r,o),n.callback=t??null,Ia(a,n,o),e.current.lanes=o,Ko(e,o,r),ot(e,r),e}function Wl(e,t,a,r){var o=t.current,n=Xe(),l=wa(o);return a=wp(a),t.context===null?t.context=a:t.pendingContext=a,t=ta(n,l),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Ia(o,t,l),e!==null&&(At(e,o,l,n),tl(e,o,l)),l}function Al(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 Tf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function bi(e,t){Tf(e,t),(e=e.alternate)&&Tf(e,t)}function Qh(){return null}var bp=typeof reportError=="function"?reportError:function(e){console.error(e)};function Pi(e){this._internalRoot=e}Vl.prototype.render=Pi.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(b(409));Wl(e,t,null,null)};Vl.prototype.unmount=Pi.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;rr(function(){Wl(null,e,null,null)}),t[ra]=null}};function Vl(e){this._internalRoot=e}Vl.prototype.unstable_scheduleHydration=function(e){if(e){var t=rc();e={blockedOn:null,target:e,priority:t};for(var a=0;a<ma.length&&t!==0&&t<ma[a].priority;a++);ma.splice(a,0,e),a===0&&nc(e)}};function Ti(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function $l(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Rf(){}function Yh(e,t,a,r,o){if(o){if(typeof r=="function"){var n=r;r=function(){var f=Al(l);n.call(f)}}var l=kp(t,r,e,0,null,!1,!1,"",Rf);return e._reactRootContainer=l,e[ra]=l.current,No(e.nodeType===8?e.parentNode:e),rr(),l}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var u=r;r=function(){var f=Al(s);u.call(f)}}var s=ki(e,0,!1,null,null,!1,!1,"",Rf);return e._reactRootContainer=s,e[ra]=s.current,No(e.nodeType===8?e.parentNode:e),rr(function(){Wl(t,s,a,r)}),s}function Gl(e,t,a,r,o){var n=a._reactRootContainer;if(n){var l=n;if(typeof o=="function"){var u=o;o=function(){var s=Al(l);u.call(s)}}Wl(t,l,e,o)}else l=Yh(a,t,e,o,r);return Al(l)}tc=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var a=yo(t.pendingLanes);a!==0&&(js(t,a|1),ot(t,Te()),(ae&6)===0&&(Vr=Te()+500,Da()))}break;case 13:rr(function(){var r=oa(e,1);if(r!==null){var o=Xe();At(r,e,1,o)}}),bi(e,1)}};Ks=function(e){if(e.tag===13){var t=oa(e,134217728);if(t!==null){var a=Xe();At(t,e,134217728,a)}bi(e,134217728)}};ac=function(e){if(e.tag===13){var t=wa(e),a=oa(e,t);if(a!==null){var r=Xe();At(a,e,t,r)}bi(e,t)}};rc=function(){return ce};oc=function(e,t){var a=ce;try{return ce=e,t()}finally{ce=a}};ls=function(e,t,a){switch(t){case"input":if(Ju(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=Ol(r);if(!o)throw Error(b(90));Bf(r),Ju(r,o)}}}break;case"textarea":zf(e,a);break;case"select":t=a.value,t!=null&&Mr(e,!!a.multiple,t,!1)}};Vf=Si;$f=rr;var Zh={usingClientEntryPoint:!1,Events:[Qo,kr,Ol,qf,Wf,Si]},ho={findFiberByHostInstance:Ka,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Jh={bundleType:ho.bundleType,version:ho.version,rendererPackageName:ho.rendererPackageName,rendererConfig:ho.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:la.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Kf(e),e===null?null:e.stateNode},findFiberByHostInstance:ho.findFiberByHostInstance||Qh,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(xo=__REACT_DEVTOOLS_GLOBAL_HOOK__,!xo.isDisabled&&xo.supportsFiber))try{Ml=xo.inject(Jh),qt=xo}catch{}var xo;ct.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Zh;ct.createPortal=function(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Ti(t))throw Error(b(200));return Xh(e,t,null,a)};ct.createRoot=function(e,t){if(!Ti(e))throw Error(b(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=ki(e,1,!1,null,null,a,!1,r,o),e[ra]=t.current,No(e.nodeType===8?e.parentNode:e),new Pi(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(b(188)):(e=Object.keys(e).join(","),Error(b(268,e)));return e=Kf(t),e=e===null?null:e.stateNode,e};ct.flushSync=function(e){return rr(e)};ct.hydrate=function(e,t,a){if(!$l(t))throw Error(b(200));return Gl(null,e,t,!0,a)};ct.hydrateRoot=function(e,t,a){if(!Ti(e))throw Error(b(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=kp(t,null,e,1,a??null,o,!1,n,l),e[ra]=t.current,No(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 Vl(t)};ct.render=function(e,t,a){if(!$l(t))throw Error(b(200));return Gl(null,e,t,!1,a)};ct.unmountComponentAtNode=function(e){if(!$l(e))throw Error(b(40));return e._reactRootContainer?(rr(function(){Gl(null,null,e,!1,function(){e._reactRootContainer=null,e[ra]=null})}),!0):!1};ct.unstable_batchedUpdates=Si;ct.unstable_renderSubtreeIntoContainer=function(e,t,a,r){if(!$l(a))throw Error(b(200));if(e==null||e._reactInternals===void 0)throw Error(b(38));return Gl(e,t,a,!1,r)};ct.version="18.3.1-next-f1338f8080-20240426"});var jr=Qt((rv,Rp)=>{"use strict";function Tp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Tp)}catch(e){console.error(e)}}Tp(),Rp.exports=Pp()});var Ap=Qt(Ri=>{"use strict";var Dp=jr();Ri.createRoot=Dp.createRoot,Ri.hydrateRoot=Dp.hydrateRoot;var ov});var zp=Qt(Ql=>{"use strict";var ox=Ce(),nx=Symbol.for("react.element"),lx=Symbol.for("react.fragment"),ux=Object.prototype.hasOwnProperty,sx=ox.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ix={key:!0,ref:!0,__self:!0,__source:!0};function Op(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)ux.call(t,r)&&!ix.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:nx,type:e,key:n,ref:l,props:o,_owner:sx.current}}Ql.Fragment=lx;Ql.jsx=Op;Ql.jsxs=Op});var _=Qt((ML,Up)=>{"use strict";Up.exports=zp()});var hm=A(Ap(),1);var Q=A(Ce(),1),cm=A(jr(),1);function Mp(e){return e.trim().replace(/^\\|/,"").replace(/\\|$/,"").split("|").map(a=>a.trim())}function ex(e){return/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)+\\|?\\s*$/.test(e)}function tx(e){let t=e.split(`\n`),a=[],r=0;for(;r<t.length;){let o=t[r]??"",n=t[r+1]??"";if(o.includes("|")&&ex(n)){let l=Mp(o),u=[];for(r+=2;r<t.length&&t[r].includes("|")&&t[r].trim()!=="";)u.push(Mp(t[r])),r+=1;let s=`<tr>${l.map(m=>`<th style="text-align:left;padding:7px 10px;border:1px solid #334155;color:#e2e8f0;background:#0f172a;">${m}</th>`).join("")}</tr>`,f=u.map(m=>`<tr>${m.map(g=>`<td style="padding:7px 10px;border:1px solid #334155;color:#cbd5e1;vertical-align:top;">${g}</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>${s}</thead><tbody>${f}</tbody></table></div>`);continue}a.push(t[r]),r+=1}return a.join(`\n`)}function jl(e){if(!e)return\'<span style="color:#475569;font-style:italic;">No description yet</span>\';let t=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");return tx(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 ax="proto-comments-seen";function Di(e,t){try{let a=localStorage.getItem(ax),r=a?JSON.parse(a):{};return t>(r[e]??0)}catch{return!1}}function Ai(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 rx=16;var uv=BigInt("9".repeat(rx));var Ea=A(Ce(),1);var Xl=A(Ce());var Fp=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Kl=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();var Zo=A(Ce());var Ep={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 Bp=(0,Zo.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:o="",children:n,iconNode:l,...u},s)=>(0,Zo.createElement)("svg",{ref:s,...Ep,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:Kl("lucide",o),...u},[...l.map(([f,m])=>(0,Zo.createElement)(f,m)),...Array.isArray(n)?n:[n]]));var G=(e,t)=>{let a=(0,Xl.forwardRef)(({className:r,...o},n)=>(0,Xl.createElement)(Bp,{ref:n,iconNode:t,className:Kl(`lucide-${Fp(e)}`,r),...o}));return a.displayName=`${e}`,a};var Kr=G("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var Jo=G("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var Aa=G("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 lr=G("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 en=G("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 Xr=G("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 tn=G("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 an=G("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 rn=G("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 on=G("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 ur=G("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);var Ma=G("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 sr=G("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 nn=G("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var ln=G("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);var ir=G("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 un=G("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 Fa=G("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 Qr=G("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 sn=G("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 dn=G("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 $e=G("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var Yr=A(Ce(),1),Kp=A(jr(),1);var _p=A(_(),1),Np={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 Hp({type:e,style:t}){let a=typeof e=="string"&&e.trim()&&e!=="[object Object]"&&Np[e]?e:"Task",r=Np[a];return(0,_p.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 Vp=A(_(),1),qp={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 Wp({priority:e,style:t}){if(!e||!qp[e])return null;let a=qp[e];return(0,Vp.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 dr=[{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."}],BL=dr.map(e=>e.value),Gp=Object.fromEntries(dr.map(e=>[e.value,e.icon])),OL=Object.fromEntries(dr.map(e=>[e.value,e.css])),$p={Task:"#94a3b8",Bug:"#ef4444",Research:"#a855f7"};function fn(e){return $p[e??"Task"]??$p.Task}var le=A(_(),1);function dx(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function Xp(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 Qp(e,t){return Xp(e,t==="Critical"?.36:t==="High"?.3:.24)??"color-mix(in srgb, var(--p-text-g) 40%, transparent)"}function fx(e){return Xp(e,.05)??"transparent"}var cx={padding:"7px 8px",gap:4,opacity:.45,userSelect:"none"},px={display:"flex",alignItems:"center",gap:5},mx={width:12,height:12,color:"color-mix(in srgb, var(--p-green) 55%, transparent)",flexShrink:0},gx={fontSize:11.5,fontWeight:600,color:"var(--p-text-g)",textDecoration:"line-through",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},hx={display:"flex",alignItems:"center",gap:5,minWidth:0},xx={flexShrink:0},vx={fontSize:11.5,fontWeight:600,color:"var(--p-text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},Lx={display:"flex",alignItems:"flex-start",gap:8},yx={fontSize:10,color:"var(--p-text-g)",lineHeight:"1.45",overflow:"hidden",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,flex:1,minWidth:0},Sx={position:"relative",flexShrink:0},Ix={width:52,height:34,borderRadius:6,objectFit:"cover",border:"1px solid color-mix(in srgb, var(--p-border) 90%, transparent)",display:"block",cursor:"pointer"},Cx={display:"flex",alignItems:"center",gap:2,marginTop:1},wx={flex:1},Mi=Yr.default.memo(function({task:t,col:a,liveActivity:r,onOpen:o,onDragStart:n}){var S;let l=a.id==="in-progress",u=a.id==="done",[s,f]=Yr.default.useState(!1),[m,g]=Yr.default.useState(null),p=Yr.default.useRef(null),x=t.commentCount??0,L=t.fileCount??0,y=x>0&&Di(t.id,x),F=Qp(a.color,t.priority),c=fn(t.type),d=fx(c),i=(S=t.files)==null?void 0:S.find(w=>dx(w.name)),h=i?`/api/tasks/${t.id}/files/${encodeURIComponent(i.name)}`:null;function k(w){n(w,t.id),w.currentTarget.classList.add("dragging")}function C(w){w.currentTarget.classList.remove("dragging")}return u?(0,le.jsx)("article",{className:"task-card",draggable:!0,"data-task-id":t.id,style:cx,onDragStart:k,onDragEnd:C,onClick:()=>o(t),children:(0,le.jsxs)("div",{style:px,children:[(0,le.jsx)(Aa,{style:mx}),(0,le.jsx)("span",{style:gx,children:t.title})]})}):(0,le.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)":d,...r?{borderColor:"rgba(59,130,246,0.5)",boxShadow:"0 0 0 2px rgba(59,130,246,0.14)"}:F?{borderColor:F}:{}},onDragStart:k,onDragEnd:C,onClick:()=>o(t),children:[(0,le.jsxs)("div",{style:hx,children:[l&&(0,le.jsx)("span",{className:"spinner",style:xx}),(0,le.jsx)("span",{style:vx,children:t.title})]}),(t.description||h)&&(0,le.jsxs)("div",{style:Lx,children:[t.description&&(0,le.jsx)("div",{style:yx,children:t.description}),h&&(0,le.jsxs)("div",{style:Sx,onMouseEnter:()=>{if(p.current){let w=p.current.getBoundingClientRect();g({top:w.top,right:w.right})}f(!0)},onMouseLeave:()=>{f(!1),g(null)},children:[(0,le.jsx)("img",{ref:p,src:h,alt:"Task screenshot","data-role":"task-thumb",style:Ix}),s&&m&&Kp.default.createPortal((0,le.jsx)("img",{src:h,alt:"Task screenshot enlarged preview","data-role":"task-thumb-preview",style:{position:"fixed",right:window.innerWidth-m.right,bottom:window.innerHeight-m.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,le.jsxs)("div",{className:"flex items-center",style:Cx,children:[(0,le.jsx)(Hp,{type:t.type}),t.priority&&(0,le.jsx)(Wp,{priority:t.priority}),l&&t.assigneeName&&(0,le.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}),(0,le.jsx)("div",{style:wx}),r&&(0,le.jsx)(Fi,{activity:r}),(0,le.jsx)(jp,{icon:(0,le.jsx)(ur,{style:{width:9,height:9}}),label:x>0?String(x):"",color:y?"var(--p-purple)":x>0?"var(--p-text-m)":"var(--p-border-t)",hoverColor:y?"var(--p-purple-300)":"var(--p-text)",title:x>0?`${x} comment(s)`:"Add comment",badge:y,badgeColor:"var(--p-purple)",onClick:w=>{w.stopPropagation(),o(t,"comments")}}),(0,le.jsx)(jp,{icon:(0,le.jsx)(sr,{style:{width:9,height:9}}),label:L>0?String(L):"",color:L>0?"var(--p-blue-300)":"var(--p-border-t)",hoverColor:L>0?"var(--p-cyan-300)":"var(--p-text-sub)",title:L>0?`${L} file(s) attached`:"Files",onClick:w=>{w.stopPropagation(),o(t,"files")}})]})]})});function jp({icon:e,label:t,color:a,hoverColor:r,title:o,badge:n,badgeColor:l,onClick:u}){let[s,f]=Yr.default.useState(!1);return(0,le.jsxs)("button",{style:{display:"inline-flex",alignItems:"center",gap:2,padding:"2px 3px",borderRadius:3,border:"none",background:s?"color-mix(in srgb, var(--p-text-m) 10%, transparent)":"transparent",cursor:"pointer",fontSize:9,color:s?r:a,transition:"color .1s, background .1s"},title:o,onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onClick:u,children:[e,t&&(0,le.jsx)("span",{children:t}),n&&(0,le.jsx)("span",{style:{width:4,height:4,background:l??a,borderRadius:"50%",flexShrink:0}})]})}function Fi({activity:e}){let t=e.state==="locked"||e.state==="editing",a=t?(0,le.jsx)(on,{style:{width:8,height:8}}):(0,le.jsx)(en,{style:{width:8,height:8}}),r=t?`Locked by ${e.user}`:`${e.user} viewing`;return(0,le.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,le.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:"1 1 0"},children:e.user})]})}var ue=A(_(),1),Ba=[{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 kx=3;function bx(){return(0,ue.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,ue.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"75%",marginBottom:8}}),(0,ue.jsx)("div",{style:{height:10,borderRadius:4,background:"var(--p-border-s)",width:"50%",marginBottom:8}}),(0,ue.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,ue.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:48}}),(0,ue.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})]})}function Ei({tasks:e,visibleCols:t,searchQuery:a,isLoading:r,liveActivities:o,onOpenPanel:n,onDrop:l,onReorder:u}){let s=Ea.default.useRef(null),f=Ea.default.useRef(null),[m,g]=Ea.default.useState(null),[p,x]=Ea.default.useState(null),[L,y]=Ea.default.useState(null),F=a?e.filter(S=>(S.title??"").toLowerCase().includes(a.toLowerCase())||(S.description??"").toLowerCase().includes(a.toLowerCase())):e,c=Ba.filter(S=>t.includes(S.id));Ea.default.useEffect(()=>{let S=s.current,w=f.current;if(!S||!w)return;function T(){if(!S||!w)return;let xe=S.scrollWidth>S.clientWidth?S.clientWidth/S.scrollWidth:1,de=Math.max(40,S.clientWidth*xe);w.style.width=`${de}px`;let fe=S.scrollWidth-S.clientWidth,K=S.clientWidth-de;w.style.left=`${fe>0?S.scrollLeft/fe*K:0}px`,w.style.opacity=xe<1?"1":"0"}S.addEventListener("scroll",T);let E=new ResizeObserver(T);E.observe(S),T();let O=!1,V=0,oe=0;function ee(xe){O=!0,V=xe.clientX,oe=S.scrollLeft,w.classList.add("dragging"),document.addEventListener("mousemove",Ae),document.addEventListener("mouseup",N)}function Ae(xe){if(!O||!S||!w)return;let de=S.scrollWidth>S.clientWidth?S.scrollWidth/S.clientWidth:1;S.scrollLeft=oe+(xe.clientX-V)*de}function N(){O=!1,w==null||w.classList.remove("dragging"),document.removeEventListener("mousemove",Ae),document.removeEventListener("mouseup",N)}return w.addEventListener("mousedown",ee),()=>{S.removeEventListener("scroll",T),E.disconnect(),w.removeEventListener("mousedown",ee)}},[c.length]);function d(S,w){g(w),S.dataTransfer.effectAllowed="move"}function i(S,w){S.preventDefault(),x(w)}function h(S,w){S.preventDefault(),S.stopPropagation();let T=S.currentTarget.getBoundingClientRect(),E=S.clientY<T.top+T.height/2?"before":"after";y(O=>(O==null?void 0:O.taskId)===w&&O.position===E?O:{taskId:w,position:E})}function k(S,w,T){S.preventDefault(),x(null);let E=L;if(y(null),!m){g(null);return}if(u&&E){let O=T.findIndex(ee=>ee.id===E.taskId),V=null,oe=null;E.position==="before"?(oe=E.taskId,V=O>0?T[O-1].id:null):(V=E.taskId,oe=O<T.length-1?T[O+1].id:null),u(m,w,V,oe)}else l(m,w);g(null)}function C(){g(null),x(null),y(null)}return(0,ue.jsxs)(ue.Fragment,{children:[(0,ue.jsx)("main",{id:"kanban-board",ref:s,className:"flex-1 flex overflow-x-auto overflow-y-hidden",style:{padding:"16px 20px",gap:16},onDragEnd:C,children:c.map(S=>{let w=r?[]:F.filter(T=>T.status===S.id).sort((T,E)=>T.sortKey&&E.sortKey?T.sortKey<E.sortKey?-1:T.sortKey>E.sortKey?1:0:T.sortKey?-1:E.sortKey?1:(E.updatedAt??E.createdAt??"").localeCompare(T.updatedAt??T.createdAt??""));return(0,ue.jsx)(Px,{col:S,tasks:w,isLoading:r,liveActivities:o,isDragOver:p===S.id&&!L,onDragOver:T=>i(T,S.id),onDrop:T=>k(T,S.id,w),onDragLeave:()=>{x(null),y(null)},onStatusChange:(T,E)=>l(T,E),onAddTask:()=>n(null,"details",S.id),onOpenTask:n,onDragStart:d,onCardDragOver:h,cardDropTarget:L},S.id)})}),(0,ue.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,ue.jsx)("div",{id:"kanban-scroll-thumb",ref:f,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:S=>{S.currentTarget.style.background="var(--p-text-g)"},onMouseLeave:S=>{S.currentTarget.classList.contains("dragging")||(S.currentTarget.style.background="var(--p-border-t)")}})})]})}function Px({col:e,tasks:t,isLoading:a,liveActivities:r,isDragOver:o,onDragOver:n,onDrop:l,onDragLeave:u,onStatusChange:s,onAddTask:f,onOpenTask:m,onDragStart:g,onCardDragOver:p,cardDropTarget:x}){let[L,y]=Ea.default.useState(!1),F=e.id==="in-progress"?"sd-inprogress":`sd-${e.id}`,c=20,d=e.id==="done",i=d&&t.length>c?t.length-c:0,h=d?t.slice(0,c):t;return(0,ue.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:u,onDrop:l,children:[(0,ue.jsxs)("div",{className:"column-header",style:{background:e.accent,borderColor:`color-mix(in srgb, ${e.color} 30%, transparent)`},children:[(0,ue.jsx)("div",{className:`status-dot ${F}`}),(0,ue.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:e.id==="done"?`${e.color}b3`:e.color},children:[e.label,a?"":` \\xB7 ${t.length}`]}),(0,ue.jsx)("span",{style:{marginLeft:"auto"}}),(0,ue.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:L?e.color:"var(--p-text-g)",cursor:"pointer",transition:"color .15s",padding:0},onMouseEnter:()=>y(!0),onMouseLeave:()=>y(!1),onClick:f,children:(0,ue.jsx)(nn,{style:{width:14,height:14}})})]}),(0,ue.jsx)("div",{className:"column-scroll","data-status":e.id,children:a?Array.from({length:kx}).map((k,C)=>(0,ue.jsx)(bx,{},C)):t.length===0?(0,ue.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,ue.jsxs)(ue.Fragment,{children:[h.map(k=>(0,ue.jsxs)("div",{style:{position:"relative"},onDragOver:C=>p(C,k.id),children:[(x==null?void 0:x.taskId)===k.id&&x.position==="before"&&(0,ue.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}}),(0,ue.jsx)(Mi,{task:k,col:e,liveActivity:r==null?void 0:r.get(k.id),onOpen:m,onDragStart:g}),(x==null?void 0:x.taskId)===k.id&&x.position==="after"&&(0,ue.jsx)("div",{style:{height:2,borderRadius:1,background:e.color,margin:"2px 0"}})]},k.id)),i>0&&(0,ue.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:["+",i," older ",i===1?"task":"tasks"," not shown"]})]})})]})}var fr=A(Ce(),1);var X=A(_(),1),Yp={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)"}},Tx=Gp,Zp={Critical:"var(--p-red)",High:"var(--p-amber-300)",Medium:"var(--p-text-m)",Low:"var(--p-text-f)"},Bi=["in-progress","review","todo","backlog","done"];function Rx(){return(0,X.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,X.jsx)("div",{style:{width:14,height:14,borderRadius:3,background:"var(--p-border-s)"}}),(0,X.jsx)("div",{style:{height:12,borderRadius:4,background:"var(--p-border-s)",width:"60%"}}),(0,X.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:44}}),(0,X.jsx)("div",{style:{height:18,borderRadius:10,background:"var(--p-border-s)",width:36}})]})}function Oi({tasks:e,searchQuery:t,isLoading:a,liveActivities:r,onOpenPanel:o,onAddTask:n,onDrop:l}){let[u,s]=fr.default.useState(null),[f,m]=fr.default.useState(null),[g,p]=fr.default.useState(null),[x,L]=fr.default.useState({backlog:!1,todo:!1,"in-progress":!1,review:!1,done:!1}),y=t?e.filter(c=>(c.title??"").toLowerCase().includes(t.toLowerCase())||(c.description??"").toLowerCase().includes(t.toLowerCase())):e,F=fr.default.useMemo(()=>{let c=new Map;for(let d of Bi)c.set(d,[]);for(let d of y)(c.get(d.status)??[]).push(d);return c},[y]);return(0,X.jsxs)("div",{id:"kanban-list-view",style:{flex:1,overflowY:"auto",padding:"16px 24px",minHeight:0},children:[a?Bi.slice(0,3).map(c=>{let d=Yp[c];return(0,X.jsxs)("div",{style:{marginBottom:24},children:[(0,X.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,X.jsx)("div",{style:{width:18,height:18,borderRadius:5,background:"var(--p-border-s)",animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,X.jsx)("div",{style:{height:18,borderRadius:6,background:d.bg,border:`1px solid ${d.border}`,width:72,animation:"skeleton-pulse 1.5s ease-in-out infinite"}}),(0,X.jsx)("div",{style:{height:14,borderRadius:4,background:"var(--p-border-s)",width:16,animation:"skeleton-pulse 1.5s ease-in-out infinite"}})]}),(0,X.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:Array.from({length:3}).map((i,h)=>(0,X.jsx)(Rx,{},h))})]},c)}):Bi.map(c=>{let d=F.get(c)??[];if(d.length===0)return null;let i=Yp[c];return(0,X.jsxs)("div",{style:{marginBottom:24},children:[(0,X.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8,padding:"4px 6px",borderRadius:6,transition:"background .1s",background:f===c?i.bg:"transparent",outline:f===c?`1px dashed ${i.border}`:void 0},onDragOver:h=>{h.preventDefault(),m(c)},onDragLeave:()=>m(null),onDrop:h=>{h.preventDefault(),m(null),p(null),u&&l(u,c),s(null)},children:[(0,X.jsx)("button",{type:"button",title:x[c]?"Expand":"Collapse",onClick:h=>{h.stopPropagation(),L(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:x[c]?"+":"\\u2212"}),(0,X.jsx)("span",{style:{fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",padding:"2px 8px",borderRadius:6,background:i.bg,border:`1px solid ${i.border}`,color:i.text},children:c}),(0,X.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)"},children:d.length}),(0,X.jsx)("button",{type:"button",title:`Add task to ${c}`,onClick:h=>{h.stopPropagation(),n(c)},style:{marginLeft:"auto",width:22,height:22,borderRadius:7,border:`1px solid ${i.border}`,background:i.bg,color:i.text,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600},children:"+"})]}),(0,X.jsx)("div",{style:{display:x[c]?"none":"flex",flexDirection:"column",gap:2},children:d.map(h=>(0,X.jsx)(Dx,{task:h,liveActivity:r==null?void 0:r.get(h.id),onOpen:o,onDragStart:k=>s(k),dragOver:g===h.id,onDragOver:()=>p(h.id),onDragLeave:()=>p(k=>k===h.id?null:k),onDropToStatus:()=>{u&&l(u,h.status),s(null),p(null)}},h.id))})]},c)}),!a&&y.length===0&&(0,X.jsx)("div",{style:{textAlign:"center",color:"var(--p-text-g)",fontSize:13,marginTop:60},children:"No tasks found"})]})}function Dx({task:e,liveActivity:t,onOpen:a,onDragStart:r,dragOver:o,onDragOver:n,onDragLeave:l,onDropToStatus:u}){let[s,f]=fr.default.useState(!1),m=Tx[e.type??"Task"]??"\\u2611",g=e.commentCount??0,p=e.fileCount??0;return(0,X.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)":s?"var(--p-hover)":"transparent",border:`1px solid ${o?"color-mix(in srgb, var(--p-blue) 40%, transparent)":s?"var(--p-border)":"transparent"}`,cursor:"grab",transition:"background .1s,border-color .1s",userSelect:"none"},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onClick:()=>a(e),onDragStart:x=>{x.dataTransfer.effectAllowed="move",r(e.id),x.currentTarget.style.opacity="0.4"},onDragEnd:x=>{x.currentTarget.style.opacity="1"},onDragOver:x=>{x.preventDefault(),n()},onDragLeave:l,onDrop:x=>{x.preventDefault(),u()},children:[(0,X.jsx)("span",{style:{fontSize:12,textAlign:"center",flexShrink:0},children:m}),(0,X.jsxs)("div",{style:{minWidth:0},children:[(0,X.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,X.jsx)("span",{style:{fontSize:13,fontWeight:500,color:"var(--p-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.title}),e.priority&&Zp[e.priority]&&(0,X.jsx)(tn,{className:"w-2.5 h-2.5 flex-shrink-0",style:{color:Zp[e.priority]}}),e.component&&(0,X.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,X.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,X.jsxs)("button",{title:g>0?`${g} comment(s)`:"Add comment",style:{display:"flex",alignItems:"center",gap:3,fontSize:11,color:g>0?"var(--p-text-m)":"var(--p-border-t)",background:"none",border:"none",cursor:"pointer",padding:"0 2px",flexShrink:0},onClick:x=>{x.stopPropagation(),a(e,"comments")},children:[(0,X.jsx)(ur,{className:"w-3 h-3"}),g>0&&(0,X.jsx)("span",{children:g})]}),p>0&&(0,X.jsxs)("button",{title:`${p} 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:x=>{x.stopPropagation(),a(e,"files")},children:[(0,X.jsx)(sr,{className:"w-3 h-3"}),(0,X.jsx)("span",{children:p})]}),t&&(0,X.jsx)(Fi,{activity:t})]})}var em=A(Ce(),1);var Oa=A(_(),1);function Jp({size:e=32,style:t,className:a}){return(0,Oa.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,Oa.jsx)("rect",{width:"32",height:"32",rx:"7",fill:"#2563eb"}),(0,Oa.jsx)("rect",{x:"7",y:"13",width:"3.5",height:"10",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Oa.jsx)("rect",{x:"12.25",y:"8.5",width:"3.5",height:"15",rx:"1.5",fill:"white"}),(0,Oa.jsx)("rect",{x:"17.5",y:"14.5",width:"3.5",height:"8",rx:"1.5",fill:"white",opacity:"0.75"}),(0,Oa.jsx)("rect",{x:"22.5",y:"11",width:"2.5",height:"11",rx:"1.25",fill:"white",opacity:"0.85"})]})}var Zl=A(_(),1);function Yl({id:e,title:t,onClick:a,label:r,icon:o,variant:n="neutral"}){return(0,Zl.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,Zl.jsx)("span",{children:r})]})}var j=A(_(),1);function zi({projectName:e,projectIcon:t,missingProjectIconStyle:a="initial",wsConnected:r,port:o,searchQuery:n,premiumUsage:l,isLoading:u,backHref:s,backLabel:f,onSearchChange:m,onSettings:g,extraActions:p,taskSummary:x}){let[L,y]=em.default.useState(!1),F=(t??"").trim(),c=e?e.charAt(0).toUpperCase()+e.slice(1):"Vibeflow Board";return(0,j.jsxs)("header",{className:"px-5 py-3 flex items-center gap-3 border-b border-slate-800/60 flex-shrink-0",children:[(0,j.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[s&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("a",{id:"header-back-link",href:s,className:"text-xs text-slate-400 hover:text-slate-200 transition-colors no-underline",style:{textDecoration:"none",fontWeight:500},children:f??"Back"}),(0,j.jsx)(Jo,{className:"w-3 h-3 text-slate-600 flex-shrink-0"})]}),(0,j.jsx)("div",{className:"flex-shrink-0",style:F?{fontSize:20}:void 0,children:F||(a==="vibeflow"?(0,j.jsx)(Jp,{size:32}):(0,j.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:c,children:c.charAt(0).toUpperCase()}))}),(0,j.jsxs)("div",{children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)("h1",{id:"header-project-name",className:"text-sm font-semibold text-white leading-tight",children:c}),r&&(0,j.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,j.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-green-400",style:{animation:"pulse-live 2s ease-in-out infinite"}}),(0,j.jsxs)("span",{className:"text-[10px] font-medium text-green-400",children:["live \\xB7 :",o]})]})]}),(0,j.jsxs)("p",{className:"text-[10px] text-slate-500 font-mono mt-0.5",children:[x,u&&(0,j.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,j.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,j.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,j.jsx)(ln,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-slate-500 pointer-events-none"}),(0,j.jsx)("input",{id:"global-search",type:"text",placeholder:"Search tasks, files, components\\u2026",value:n,onChange:d=>m(d.target.value),className:"w-full pl-9 pr-8 py-1.5 rounded-lg bg-slate-800 border border-slate-700/60 text-xs text-slate-200 placeholder-slate-500 focus:outline-none focus:border-blue-500 transition-colors",autoComplete:"off",spellCheck:!1}),n&&(0,j.jsx)("button",{id:"global-search-clear",onClick:()=>m(""),className:"absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-500 hover:text-slate-300 transition-colors",title:"Clear search",children:(0,j.jsx)($e,{className:"w-4 h-4"})})]})}),(0,j.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[p,(0,j.jsx)(Yl,{id:"header-shortcuts-hint",title:"Click to see keyboard shortcuts",onClick:()=>y(!0),label:"? shortcuts"}),(0,j.jsx)(Yl,{id:"btn-settings",title:"Settings",onClick:g,icon:(0,j.jsx)(ir,{className:"w-3.5 h-3.5"})})]}),L&&(0,j.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:()=>y(!1),children:(0,j.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:d=>d.stopPropagation(),children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,j.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--p-text)"},children:"Keyboard Shortcuts"}),(0,j.jsx)("button",{onClick:()=>y(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--p-text-f)",padding:2},children:(0,j.jsx)($e,{style:{width:14,height:14}})})]}),(0,j.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(([d,i])=>(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,j.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:d}),(0,j.jsx)("span",{style:{fontSize:12,color:"var(--p-text-m)"},children:i})]},d))})]})})]})}var $=A(Ce(),1);var Jl=A(Ce(),1);var Vt=A(_(),1);function eu({id:e,value:t,onChange:a,disabled:r}){let[o,n]=Jl.default.useState(!1),l=Jl.default.useRef(null),u=dr.find(s=>s.value===t)??dr[0];return Jl.default.useEffect(()=>{let s=f=>{var m;(m=l.current)!=null&&m.contains(f.target)||n(!1)};return document.addEventListener("click",s),()=>document.removeEventListener("click",s)},[]),(0,Vt.jsxs)("div",{id:e,ref:l,style:{position:"relative",display:"inline-block"},children:[(0,Vt.jsxs)("button",{type:"button",title:u==null?void 0:u.tooltip,onClick:s=>{s.preventDefault(),r||n(f=>!f)},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,Vt.jsx)("span",{style:{fontSize:13},children:u==null?void 0:u.icon}),(0,Vt.jsx)("span",{children:u==null?void 0:u.label})]}),o&&(0,Vt.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:dr.map(s=>(0,Vt.jsxs)("button",{type:"button",title:s.tooltip,onClick:()=>{a(s.value),n(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",border:"none",background:s.value===t?"var(--p-hover, rgba(255,255,255,0.06))":"transparent",color:s.value===t?"var(--p-text, #fff)":"var(--p-text-f, rgba(255,255,255,0.55))",fontSize:12,cursor:"pointer",textAlign:"left"},children:[(0,Vt.jsx)("span",{style:{fontSize:14,lineHeight:1},children:s.icon}),(0,Vt.jsx)("span",{children:s.label})]},s.value))})]})}var Ye=A(Ce(),1);var cn=A(Ce(),1);var za=A(_(),1);function Ua({markdown:e,className:t,style:a}){let r=cn.default.useRef(null),o=cn.default.useRef({}),[n,l]=cn.default.useState(null);return cn.default.useEffect(()=>{let u=r.current;if(!u)return;function s(){l(null)}async function f(g){let p=g.target,x=p==null?void 0:p.closest("a[data-task-ref]");if(!x){s();return}g.preventDefault();let L=x.getAttribute("data-task-ref");if(!L)return;let y=x.getBoundingClientRect(),F=o.current[L];if(F){l({id:L,title:F.title,status:F.status,x:y.left,y:y.bottom+6});return}try{let d=await(await fetch(`/api/tasks/${L}`)).json(),i={title:d.title??`Task ${L}`,status:d.status??"unknown"};o.current[L]=i,l({id:L,title:i.title,status:i.status,x:y.left,y:y.bottom+6})}catch{l({id:L,title:`Task ${L}`,status:"unknown",x:y.left,y:y.bottom+6})}}function m(g){var L,y;let p=(y=(L=g.target)==null?void 0:L.closest)==null?void 0:y.call(L,"a[data-task-ref]");if(!p)return;let x=p.getAttribute("data-task-ref");x&&window.dispatchEvent(new CustomEvent("vibeflow-task-ref-click",{detail:{refId:x}}))}return u.addEventListener("mouseover",f),u.addEventListener("mouseleave",s),u.addEventListener("click",m),()=>{u.removeEventListener("mouseover",f),u.removeEventListener("mouseleave",s),u.removeEventListener("click",m)}},[]),(0,za.jsxs)("div",{style:{position:"relative"},children:[(0,za.jsx)("div",{ref:r,className:t,style:a,dangerouslySetInnerHTML:{__html:jl(e)}}),n&&(0,za.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,za.jsxs)("div",{style:{color:"#60a5fa",fontFamily:"Menlo,monospace",marginBottom:3},children:["#",n.id]}),(0,za.jsx)("div",{style:{fontWeight:600,marginBottom:3},children:n.title}),(0,za.jsxs)("div",{style:{color:"#94a3b8"},children:["status: ",n.status]})]})]})}var pn=A(Ce(),1),tm=A(_(),1),Zr=pn.default.forwardRef(function({value:t,onChange:a,baseRows:r=4,maxRows:o,style:n,...l},u){let s=pn.default.useRef(null),f=o??r*2,m=pn.default.useCallback(()=>{let g=s.current;if(!g)return;g.style.height="auto";let p=window.getComputedStyle(g),x=Number.parseFloat(p.lineHeight||"0")||18,L=Number.parseFloat(p.paddingTop||"0")+Number.parseFloat(p.paddingBottom||"0"),y=Number.parseFloat(p.borderTopWidth||"0")+Number.parseFloat(p.borderBottomWidth||"0"),F=r*x+L+y,c=f*x+L+y,d=Math.max(F,Math.min(g.scrollHeight,c));g.style.height=`${d}px`,g.style.overflowY=g.scrollHeight>c?"auto":"hidden"},[r,f]);return pn.default.useLayoutEffect(()=>{m()},[t,m]),(0,tm.jsx)("textarea",{...l,ref:g=>{s.current=g,typeof u=="function"?u(g):u&&(u.current=g)},rows:r,value:t,onChange:g=>a(g.target.value),style:{...n,resize:"none"}})});var rm=A(Ce(),1);var tu=A(Ce(),1),am=A(jr(),1),ua=A(_(),1);function cr({open:e,onClose:t,icon:a,title:r,headerActions:o,width:n,maxHeight:l,id:u,children:s,footer:f,boxStyle:m,onKeyDown:g}){let[p,x]=tu.default.useState(!1);if(tu.default.useEffect(()=>(x(!0),()=>x(!1)),[]),tu.default.useEffect(()=>{if(!e)return;function F(c){c.key==="Escape"&&t(),g==null||g(c)}return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[e,t,g]),!e||!p)return null;let L=!!(a||r||o),y=(0,ua.jsx)("div",{id:u,className:"modal-backdrop",onClick:F=>{F.target===F.currentTarget&&t()},onMouseDown:F=>F.stopPropagation(),children:(0,ua.jsxs)("div",{className:"modal-box",style:{width:n??"min(420px, 95vw)",maxHeight:l,...m},children:[L&&(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})]}),s,f&&(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:f})]})});return(0,am.createPortal)(y,document.body)}var St=A(_(),1);function $t({open:e,message:t,title:a="Confirm",confirmLabel:r="Delete",cancelLabel:o="Cancel",loading:n,error:l,onConfirm:u,onCancel:s}){let f=rm.default.useCallback(m=>{m.key==="Enter"&&u()},[u]);return(0,St.jsx)(cr,{open:e,onClose:s,id:"confirm-modal",width:"min(380px, 95vw)",icon:(0,St.jsx)(Fa,{style:{width:20,height:20,color:"#f87171"}}),title:a,onKeyDown:f,footer:(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("button",{id:"confirm-modal-cancel",onClick:s,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:u,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 De=A(_(),1);function om(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 Ax(e){return/\\.(png|jpe?g|gif|webp|svg|html?)$/i.test(e.name)}function Mx(e){return/\\.html?$/i.test(e.name)}function au({file:e,url:t,variant:a,onPreview:r,onDelete:o}){let n=Ax(e),l=Mx(e);function u(){r?r(e,t):window.open(t,"_blank")}return a==="compact"?(0,De.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,De.jsx)("span",{style:{fontSize:14,flexShrink:0},children:om(e)}),(0,De.jsx)("div",{style:{flex:1,minWidth:0},children:(0,De.jsx)("button",{onClick:u,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,De.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,De.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,De.jsx)("button",{onClick:u,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,De.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:s=>s.stopPropagation(),children:"\\u2193"}),o&&(0,De.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,De.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,De.jsx)("span",{style:{fontSize:18,flexShrink:0},children:om(e)}),(0,De.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,De.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:u,children:e.name}),(0,De.jsx)("p",{style:{fontSize:10,color:"var(--p-text-f)",margin:0},children:e.linkedPath?`linked: ${e.linkedPath}`:Ai(e.size??0)})]}),(0,De.jsxs)("div",{className:"file-normal-actions",style:{display:"flex",alignItems:"center",gap:4,transition:"opacity 0.15s"},children:[n&&(0,De.jsx)("button",{onClick:u,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,De.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:s=>s.stopPropagation(),children:"\\u2193"}),o&&(0,De.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 M=A(_(),1);function nm({source:e}){return e!=="cli"?null:(0,M.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 Fx(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 Ex(e,t){let a=[];for(let r of e){let o=Fx(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 Ui({comments:e,files:t=[],localChanges:a=[],loading:r,error:o,gitUserName:n="You",taskAuthorName:l,baseUrl:u="",taskId:s,taskCreatedAt:f,taskUpdatedAt:m,onEdit:g,onDelete:p,onDeleteFile:x,onFilePreview:L}){let y=Ye.default.useRef(null),F=Ye.default.useRef(null),[c,d]=Ye.default.useState(null),[i,h]=Ye.default.useState(""),[k,C]=Ye.default.useState(null),[S,w]=Ye.default.useState(null),[T,E]=Ye.default.useState(()=>{try{return localStorage.getItem("vibeflow-show-updates")!=="false"}catch{return!0}}),O=Ye.default.useRef(r),V=Ye.default.useMemo(()=>{let N=[];f&&N.push({kind:"lifecycle",sortKey:f,label:"Task created",icon:"\\u2726",author:l??n}),m&&m!==f&&N.push({kind:"lifecycle",sortKey:m,label:"Task edited",icon:"\\u270E"});let xe=e.map(K=>({kind:"comment",sortKey:K.createdAt,comment:K})),de=t.map(K=>{let Ie=K.url.startsWith("http")?K.url:`${u}${K.url}`;return{kind:"file",sortKey:K.createdAt??"9999",file:K,url:Ie}}),fe=a.map(K=>({kind:"change",sortKey:K.timestamp,field:K.field,from:K.from,to:K.to,actor:K.actor,source:K.source}));return[...N,...xe,...de,...fe].sort((K,Ie)=>Ie.sortKey.localeCompare(K.sortKey))},[e,t,a,u,f,m]),oe=Ye.default.useMemo(()=>V.filter(N=>N.kind==="lifecycle"||N.kind==="change").length,[V]),ee=Ye.default.useMemo(()=>T?V:V.filter(N=>N.kind==="comment"||N.kind==="file"),[V,T]),Ae=Ye.default.useMemo(()=>Ex(ee,n),[ee,n]);return Ye.default.useEffect(()=>{let N=O.current&&!r;O.current=r,y.current&&N&&requestAnimationFrame(()=>{y.current&&(y.current.scrollTop=0)})},[r]),Ye.default.useEffect(()=>{c&&F.current&&(F.current.focus(),F.current.scrollIntoView({block:"nearest"}))},[c]),r?(0,M.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):o?(0,M.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):V.length===0?(0,M.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No activity yet."}):(0,M.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[oe>0&&(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0 4px",flexShrink:0,borderBottom:"1px solid var(--p-border)",marginBottom:4},children:[(0,M.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",flex:1,letterSpacing:"0.04em"},children:T?"":`${oe} system event${oe!==1?"s":""} hidden`}),(0,M.jsx)("button",{id:"dp-toggle-updates",onClick:()=>E(N=>{let xe=!N;try{localStorage.setItem("vibeflow-show-updates",String(xe))}catch{}return xe}),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 ${oe} system event${oe!==1?"s":""}`,onMouseEnter:N=>{N.currentTarget.style.color="var(--p-text)",N.currentTarget.style.background="var(--p-hover)"},onMouseLeave:N=>{N.currentTarget.style.color=T?"var(--p-text-m)":"var(--p-text-g)",N.currentTarget.style.background="transparent"},children:T?(0,M.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,M.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,M.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}):(0,M.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,M.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,M.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]})})]}),(0,M.jsx)("div",{ref:y,style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:Ae.map((N,xe)=>{let de=N.author!==null&&N.items.length>1,fe=de,K=N.author==="\\u{1F916} Agent";return(0,M.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:0},children:[fe&&(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 0 2px",marginTop:4},children:[(0,M.jsx)("span",{style:{fontSize:11,fontWeight:600,color:K?"var(--p-purple)":"var(--p-blue-300)",flexShrink:0},children:N.author}),(0,M.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",flexShrink:0},children:`${nt(N.oldestSortKey)} \\u2013 ${nt(N.newestSortKey)}`}),(0,M.jsxs)("span",{style:{fontSize:10,color:"var(--p-border-t)",flexShrink:0,marginLeft:2},children:["(",N.items.length," activities)"]})]}),(0,M.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:de?4:8,paddingLeft:de?8:0,borderLeft:de?"1.5px solid var(--p-border)":"none",marginLeft:de?4:0},children:N.items.map((Ie,Ze)=>Bx(Ie,Ze,xe,de,n,c,i,F,d,h,g,C,x?w:null,L))})]},`group-${xe}`)})}),(0,M.jsx)($t,{open:k!==null,message:"Delete this comment? This action cannot be undone.",onConfirm:()=>{k&&p(k),C(null)},onCancel:()=>C(null)}),x&&(0,M.jsx)($t,{open:S!==null,message:S?`Delete "${S.name}"? This action cannot be undone.`:"",onConfirm:()=>{S&&x(S),w(null)},onCancel:()=>w(null)})]})}function Bx(e,t,a,r,o,n,l,u,s,f,m,g,p,x){if(e.kind==="lifecycle")return(0,M.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-purple)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:e.icon}),(0,M.jsx)("div",{style:{flex:1,minWidth:0},children:(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)",fontStyle:"italic"},children:e.label}),!r&&(0,M.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 k=e.from.length>28?e.from.slice(0,28)+"\\u2026":e.from,C=e.to.length>28?e.to.slice(0,28)+"\\u2026":e.to,S=e.from.length>28||e.to.length>28;return(0,M.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,padding:"2px 0"},children:[(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-blue)",fontWeight:600,flexShrink:0,minWidth:18,paddingTop:1},children:"\\u270E"}),(0,M.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[!r&&(0,M.jsxs)("span",{style:{fontSize:11,fontWeight:600,color:"var(--p-blue-300)"},children:["\\u{1F464} ",e.actor]}),!r&&(0,M.jsx)(nm,{source:e.source}),(0,M.jsxs)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:["changed ",(0,M.jsx)("strong",{style:{color:"var(--p-text)"},children:e.field})]}),!r&&(0,M.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",marginLeft:"auto",flexShrink:0},children:nt(e.sortKey)})]}),(0,M.jsxs)("div",{title:S?`${e.from} \\u2192 ${e.to}`:void 0,style:{marginTop:2,fontSize:11,color:"var(--p-text-g)",display:"flex",alignItems:"center",gap:4,cursor:S?"help":"default"},children:[(0,M.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,M.jsx)("span",{style:{color:"var(--p-text-g)"},children:"\\u2192"}),(0,M.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:C})]})]})]},`change-${e.sortKey}-${a}-${t}`)}if(e.kind==="file"){let{file:h,url:k}=e;return(0,M.jsx)(au,{file:h,url:k,variant:"compact",onPreview:x?(C,S)=>x(C.name,S):void 0,onDelete:p?C=>(p(C),Promise.resolve()):void 0},`file-${h.name}-${a}-${t}`)}let L=e.comment,y=L.author==="agent",F=L.type==="system",c=L.deleted===!0,d=!!L.id&&!y&&!F&&!c&&L.isOwnComment!==!1,i=n===L.id;return F?(0,M.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 0",fontSize:11,color:"var(--p-text-g)",fontStyle:"italic"},children:[(0,M.jsx)("span",{style:{opacity:.6},children:"\\u2B21"}),(0,M.jsx)("span",{children:L.text}),!r&&(0,M.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,opacity:.6},children:nt(L.createdAt)})]},L.id):(0,M.jsxs)("div",{className:"flex flex-col gap-1 group/comment",style:{paddingTop:r?2:4},children:[!r&&(0,M.jsxs)("div",{className:"flex items-center justify-between gap-1.5 text-xs mb-0.5",children:[(0,M.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,M.jsx)("span",{style:{color:c?"var(--p-text-g)":y?"var(--p-purple)":"var(--p-blue-300)"},children:y?"\\u{1F916} Agent":`\\u{1F464} ${L.authorName??o}`}),(0,M.jsx)(nm,{source:L.source}),(0,M.jsxs)("span",{style:{color:"var(--p-text-g)"},children:[nt(L.createdAt),!c&&L.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]})]}),d&&(0,M.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,M.jsx)("button",{onClick:()=>{s(L.id),f(L.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,M.jsx)("button",{onClick:()=>g(L),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),r&&(0,M.jsxs)("div",{className:"flex items-center justify-between gap-1.5",style:{marginBottom:2},children:[(0,M.jsxs)("span",{style:{fontSize:10,color:"var(--p-text-g)"},children:[nt(L.createdAt),!c&&L.updatedAt?" \\xB7 edited":"",c?" \\xB7 deleted":""]}),d&&(0,M.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/comment:opacity-100 transition-opacity",children:[(0,M.jsx)("button",{onClick:()=>{s(L.id),f(L.text)},className:"p-1 rounded hover:bg-slate-700 transition-colors",title:"Edit",children:(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u270E"})}),(0,M.jsx)("button",{onClick:()=>g(L),className:"p-1 rounded hover:bg-red-900/40 transition-colors",title:"Delete",children:(0,M.jsx)("span",{style:{fontSize:11,color:"var(--p-text-m)"},children:"\\u2715"})})]})]}),i?(0,M.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,M.jsx)(Zr,{ref:u,value:l,onChange:f,baseRows:4,maxRows:12,onKeyDown:h=>{h.key==="Enter"&&(h.ctrlKey||h.metaKey)&&(h.preventDefault(),m(L,l).then(()=>s(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,M.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,M.jsx)("button",{onClick:()=>s(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,M.jsx)("button",{onClick:async()=>{await m(L,l),s(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,M.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,M.jsx)(Ua,{markdown:L.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}})]},L.id)}var lm=A(Ce(),1);var Na=A(_(),1);function Ni({files:e,loading:t,error:a,baseUrl:r,onPreview:o,onDelete:n}){let[l,u]=lm.default.useState(null);return t?(0,Na.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"Loading\\u2026"}):a?(0,Na.jsx)("p",{style:{color:"var(--p-red-500)",fontSize:12,textAlign:"center",padding:"8px 0"},children:"Failed to load."}):e.length===0?(0,Na.jsx)("p",{style:{color:"var(--p-text-g)",fontSize:12,textAlign:"center",padding:"16px 0"},children:"No files attached."}):(0,Na.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[e.map(s=>{let f=s.url??`${r}/api/files/${encodeURIComponent(s.name)}`;return(0,Na.jsx)(au,{file:s,url:f,variant:"normal",onPreview:m=>o(m),onDelete:n?m=>(u(m),Promise.resolve()):void 0},s.name)}),n&&(0,Na.jsx)($t,{open:l!==null,message:l?`Delete "${l.name}"? This action cannot be undone.`:"",onConfirm:()=>{l&&n(l),u(null)},onCancel:()=>u(null)})]})}var _i=A(Ce(),1);var Jr=A(Ce(),1),um=A(jr(),1);var Ft=A(_(),1);function mn({value:e,onChange:t,previewValue:a,showPreview:r,setShowPreview:o,previewId:n,textareaId:l,placeholder:u,previewEmptyText:s,previewMinHeight:f=54,previewMaxHeight:m=220,baseRows:g=5,maxRows:p=12,autoFocus:x=!1,textareaRef:L,onKeyDown:y,afterTextarea:F,onBlur:c}){let d=Jr.default.useRef(null),[i,h]=Jr.default.useState([]),[k,C]=Jr.default.useState(null),[S,w]=Jr.default.useState(null);Jr.default.useEffect(()=>{let O=!0;return fetch("/api/tasks").then(V=>V.json()).then(V=>{if(!O)return;let oe=(V.tasks??[]).map(ee=>({id:String(ee.id??""),title:String(ee.title??"")})).filter(ee=>ee.id.length>0);h(oe)}).catch(()=>{}),()=>{O=!1}},[]);function T(O){let V=d.current;if(!V){C(null);return}let oe=V.selectionStart??O.length,ee=O.slice(0,oe),Ae=-1;for(let fe=ee.length-1;fe>=0;fe--){if(ee[fe]!=="#")continue;let K=fe>0?ee[fe-1]:"";if(K&&!/\\s/.test(K))continue;let Ie=ee.slice(fe+1);if(!Ie.includes("#")){if(Ie.length>80)return;Ae=fe;break}}if(Ae===-1){C(null);return}let N=ee.slice(Ae+1).trim().toLowerCase(),xe=i.filter(fe=>{if(!N)return!0;let K=fe.id.toLowerCase(),Ie=fe.title.toLowerCase();return K.includes(N)||Ie.includes(N)}).sort((fe,K)=>{let Ie=fe.id.toLowerCase().startsWith(N)?1:0,Ze=K.id.toLowerCase().startsWith(N)?1:0;if(Ie!==Ze)return Ze-Ie;let Ct=fe.title.toLowerCase().startsWith(N)?1:0,Ge=K.title.toLowerCase().startsWith(N)?1:0;return Ct!==Ge?Ge-Ct:fe.id.localeCompare(K.id)}).slice(0,6);if(!xe.length){C(null),w(null);return}let de=V.getBoundingClientRect();w({top:de.top,left:de.left,width:de.width}),C({queryStart:Ae,queryEnd:oe,items:xe})}function E(O){let V=k;if(!V)return;let oe=`${e.slice(0,V.queryStart)}#${O} ${e.slice(V.queryEnd)}`;t(oe),C(null),w(null),requestAnimationFrame(()=>{let ee=d.current;if(!ee)return;let Ae=V.queryStart+O.length+2;ee.focus(),ee.setSelectionRange(Ae,Ae)})}return r?(0,Ft.jsx)("div",{id:n,onClick:O=>{O.target.closest("a")||o(!1)},title:"Click to edit",style:{cursor:"text",minHeight:f,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:m},children:(a??e).trim()?(0,Ft.jsx)(Ua,{markdown:a??e}):(0,Ft.jsx)("span",{style:{color:"var(--p-border-t)"},children:s??u})}):(0,Ft.jsxs)("div",{style:{position:"relative"},children:[(0,Ft.jsx)(Zr,{id:l,ref:O=>{d.current=O,L&&(L.current=O)},className:"dp-textarea",placeholder:u,value:e,onChange:O=>{t(O),T(O)},onFocus:()=>o(!1),onBlur:()=>{C(null),w(null),o(!0),c==null||c()},baseRows:g,maxRows:p,autoFocus:x,onKeyDown:O=>{O.key==="Escape"&&(C(null),w(null)),y==null||y(O)}}),k&&S&&(0,um.createPortal)((0,Ft.jsx)("div",{"data-task-ref-suggest":"true",style:{position:"fixed",left:S.left+8,width:S.width-16,top:S.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(O=>(0,Ft.jsxs)("button",{type:"button",onMouseDown:V=>{V.preventDefault(),E(O.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:V=>{V.currentTarget.style.background="var(--p-hover)"},onMouseLeave:V=>{V.currentTarget.style.background="transparent"},children:[(0,Ft.jsxs)("span",{style:{fontFamily:"monospace",color:"var(--p-blue-300)"},children:["#",O.id]}),(0,Ft.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:O.title})]},O.id))}),document.body),F]})}var q=A(_(),1);function qi({task:e,description:t,setDescription:a,showDescPreview:r,setShowDescPreview:o,priority:n,setPriority:l,onDescriptionBlur:u,onDescriptionDiscard:s,originalDescription:f,onPriorityChange:m,githubUrl:g,onFilePreview:p,onPatch:x,onDeleteScreenshot:L,liveFiles:y}){let F=(e==null?void 0:e.files)??[],c=y?y.map(T=>({name:T.name,linkedPath:T.linkedPath,addedAt:T.createdAt,url:T.url})):F,d=c==null?void 0:c.find(T=>/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(T.name)),i=e&&d?d.url||`/api/tasks/${e.id}/files/${encodeURIComponent(d.name)}`:null,h=_i.default.useRef(null),[k,C]=_i.default.useState(null),{userPart:S,consolePart:w}=zx(t);return(0,q.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,q.jsxs)("div",{children:[(0,q.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:"Description"}),(0,q.jsx)(mn,{value:t,previewValue:w?S:void 0,onChange:a,onBlur:u,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:h,afterTextarea:s&&f!==void 0&&t!==f?(0,q.jsx)("button",{type:"button",onMouseDown:T=>{T.preventDefault(),s()},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})]}),w&&(0,q.jsx)(Ux,{logs:w}),e&&d&&i&&(0,q.jsxs)("div",{children:[(0,q.jsx)("div",{className:"dp-meta-label",children:"Screenshot"}),(0,q.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,q.jsx)("button",{onClick:()=>p(d.name,i),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,q.jsx)("img",{src:i,alt:"Task screenshot",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})}),(0,q.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderTop:"1px solid var(--p-border)",background:"var(--p-surface)"},children:[(0,q.jsx)("span",{style:{fontSize:10,color:"var(--p-text-f)",flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:d.addedAt?`Captured ${nt(d.addedAt)}`:"Screenshot attached"}),(0,q.jsx)("button",{onClick:()=>p(d.name,i),style:{fontSize:10,color:"var(--p-text-m)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Preview screenshot",children:"Preview"}),(0,q.jsx)("button",{onClick:()=>C(d.name),style:{fontSize:10,color:"var(--p-red)",background:"transparent",border:"none",cursor:"pointer",padding:0},title:"Remove screenshot",children:"Remove"})]})]})]}),(0,q.jsxs)("div",{children:[(0,q.jsx)("div",{className:"dp-meta-label",children:"Priority"}),(0,q.jsxs)("select",{id:"dp-priority",className:"dp-input",value:n,onChange:T=>{let E=T.target.value;l(E),m==null||m(E)},style:{padding:"5px 8px",fontSize:12,cursor:"pointer",width:"auto"},children:[(0,q.jsx)("option",{value:"",children:"\\u2014"}),(0,q.jsx)("option",{value:"Critical",children:"Critical"}),(0,q.jsx)("option",{value:"High",children:"High"}),(0,q.jsx)("option",{value:"Medium",children:"Medium"}),(0,q.jsx)("option",{value:"Low",children:"Low"})]})]}),e&&(0,q.jsxs)("div",{id:"dp-metadata",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6},children:[(0,q.jsx)(Hi,{label:"Created",id:"dp-created",children:e.createdAt?nt(e.createdAt):"\\u2014"}),(0,q.jsx)(Hi,{label:"ID",id:"dp-id",children:(0,q.jsx)("span",{style:{fontFamily:"monospace"},children:e.id})}),(0,q.jsx)(Hi,{label:"Author",id:"dp-author",children:e.authorName??e.author??"\\u2014"}),e.commit&&(0,q.jsx)(Ox,{task:e,githubUrl:g}),e.annotatedElementText&&(0,q.jsxs)("div",{id:"dp-annotated-text",style:{gridColumn:"1 / -1",background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,q.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Annotated element text"}),(0,q.jsx)("div",{style:{fontSize:11,color:"var(--p-text-f)",fontStyle:"italic",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.annotatedElementText})]})]}),(0,q.jsx)($t,{open:k!==null,message:"Remove this screenshot? This action cannot be undone.",confirmLabel:"Remove",onConfirm:()=>{k&&L(k),C(null)},onCancel:()=>C(null)})]})}function Hi({label:e,id:t,children:a}){return(0,q.jsxs)("div",{id:t,style:{background:"var(--p-card)",borderRadius:8,padding:"8px 10px"},children:[(0,q.jsx)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:e}),(0,q.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 Ox({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,q.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,q.jsxs)("div",{style:{fontSize:9,color:"var(--p-border-t)",marginBottom:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:["Commit",a.length>1?"s":""]}),(0,q.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[t&&e.commitPushed!==!1?(0,q.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,q.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,q.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 zx(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 Ux({logs:e}){let t=e.replace(/^---\\s*\\n/,"").split(`\n`).filter(a=>a.trim());return(0,q.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,q.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,q.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,q.jsx)("span",{style:{fontSize:9,color:"var(--p-text-g)",marginLeft:"auto"},children:"captured at submission"})]}),(0,q.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,q.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,q.jsx)("div",{style:{fontSize:10,color:"var(--p-text-g)",fontStyle:"italic"},children:"No log entries captured."})]})]})}var eo=A(_(),1);function Wi({commentInput:e,setCommentInput:t,commentSubmitting:a,onSubmit:r,baseRows:o=4}){return(0,eo.jsx)("div",{id:"dp-comment-input-area",children:(0,eo.jsx)(mn,{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,eo.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,eo.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,eo.jsx)("path",{d:"M2 8L14 2L10 8L14 14L2 8Z",fill:"currentColor"})})})})})}var R=A(_(),1),Nx="vibeflow-paste-hint-dismissed";function Hx({storageKey:e=Nx}){let[t,a]=$.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,R.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,R.jsxs)("span",{style:{flex:1,lineHeight:1.4},children:["\\u{1F4A1} ",(0,R.jsx)("strong",{children:"Tip:"})," Paste screenshots or files anywhere in this panel \\u2014 they attach automatically."]}),(0,R.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,R.jsx)($e,{style:{width:12,height:12}})})]})}var _x=[{id:"backlog",label:"backlog"},{id:"todo",label:"todo"},{id:"in-progress",label:"in-progress"},{id:"review",label:"review"},{id:"done",label:"done"}],qx=5*1024*1024;function Vi(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 u=l.getContext("2d");if(!u){URL.revokeObjectURL(n),r(new Error("canvas unavailable"));return}u.drawImage(o,0,0),URL.revokeObjectURL(n),l.toBlob(s=>{s?a(s):r(new Error("canvas.toBlob failed"))},"image/jpeg",t)},o.onerror=()=>{URL.revokeObjectURL(n),r(new Error("image load failed"))},o.src=n})}function $i({open:e,task:t,tab:a,addColumnId:r="todo",gitUserName:o="You",githubUrl:n,baseUrl:l,isResizing:u,api:s,onClose:f,onSave:m,onCreate:g,onDelete:p,onPatch:x,onFilePreview:L,onActivityChange:y,externalLocalChanges:F=[],showLockIndicator:c=!0,lockedByUser:d,onGoBack:i,navBackLabel:h,commentVersion:k}){let C=!t,S=t?fn(t.type):fn("Task"),w=$.default.useRef(null),[T,E]=$.default.useState([]),O=$.default.useRef(!1),V=$.default.useRef(""),oe=$.default.useRef(""),[ee,Ae]=$.default.useState(a),[N,xe]=$.default.useState(""),[de,fe]=$.default.useState(""),[K,Ie]=$.default.useState(r),[Ze,Ct]=$.default.useState("Task"),[Ge,Gt]=$.default.useState(""),[pr,_a]=$.default.useState(!1),[Bt,mr]=$.default.useState(!1),[ao,Ot]=$.default.useState(!1),[sa,hn]=$.default.useState([]),[uu,xn]=$.default.useState(!1),[su,vn]=$.default.useState(null),[jt,Kt]=$.default.useState(""),[iu,Ln]=$.default.useState(!1),[Xt,yn]=$.default.useState([]),[Sn,In]=$.default.useState(!1),[du,Cn]=$.default.useState(null),[ro,oo]=$.default.useState(0),qa=$.default.useRef(0),[v,P]=$.default.useState(0),[U,te]=$.default.useState(null),[pe,Y]=$.default.useState([]),Z=$.default.useRef(null),ne=$.default.useRef(()=>{}),Ne=$.default.useRef(""),Je=$.default.useRef(!1);$.default.useEffect(()=>{Ne.current=jt},[jt]),$.default.useEffect(()=>{Je.current=ao},[ao]),$.default.useEffect(()=>{O.current=u??!1},[u]),$.default.useEffect(()=>{e||y==null||y(null,"viewing")},[e]),$.default.useEffect(()=>{if(!e||!t)return;N!==V.current||de!==oe.current?y==null||y(t.id,"locked"):y==null||y(t.id,"viewing")},[N,de,e,t==null?void 0:t.id]),$.default.useEffect(()=>{if(!e)return;function I(z){var H,ve,ie,wt;if(!O.current&&!((ve=(H=z.target)==null?void 0:H.closest)!=null&&ve.call(H,"[data-task-ref-suggest]"))&&!((wt=(ie=z.target)==null?void 0:ie.closest)!=null&&wt.call(ie,".modal-backdrop"))&&w.current&&!w.current.contains(z.target)){if(Je.current)return;if(Ne.current.trim().length>0){ne.current(),Ot(!0);return}ne.current(),f()}}return document.addEventListener("mousedown",I),()=>document.removeEventListener("mousedown",I)},[e,f]),$.default.useEffect(()=>{if(!e)return;function I(z){if(z.key==="Escape"){if(Je.current){Ot(!1),z.stopPropagation();return}if(Ne.current.trim().length>0){z.stopPropagation(),ne.current(),Ot(!0);return}}}return document.addEventListener("keydown",I,{capture:!0}),()=>document.removeEventListener("keydown",I,{capture:!0})},[e]),$.default.useEffect(()=>{if(e){if(Ae(a),_a(!!t),Kt(""),hn([]),yn([]),oo(0),P(0),Y([]),t){let I=(t.title??"").trim(),z=(t.description??"").trim();xe(I),fe(z),Ie(t.status),Ct(t.type??"Task"),Gt(t.priority??""),V.current=I,oe.current=z,y==null||y(t.id,"viewing")}else xe(""),fe(""),Ie(r),Ct("Task"),Gt("");t&&(lt(t.id),zt(t.id)),setTimeout(()=>{var I;return(I=Z.current)==null?void 0:I.focus()},50)}},[e,t==null?void 0:t.id,a]),$.default.useEffect(()=>{!e||!t||(ee==="comments"?(D(t.id),zt(t.id)):ee==="files"&&zt(t.id))},[ee,e,t==null?void 0:t.id]),$.default.useEffect(()=>{if(!e||!t||N!==V.current||de!==oe.current)return;let z=(t.title??"").trim(),H=(t.description??"").trim();(z!==V.current||H!==oe.current)&&(xe(z),fe(H),V.current=z,oe.current=H),t.status&&t.status!==K&&Ie(t.status),t.type&&t.type!==Ze&&Ct(t.type),t.priority!==void 0&&t.priority!==Ge&&Gt(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]),$.default.useEffect(()=>{!e||!t||k===void 0||(ee==="comments"?D(t.id):lt(t.id))},[k]);async function lt(I){var z,H;try{let[ve,ie]=await Promise.all([s.getComments(I),s.getFiles(I)]);oo(((z=ve.comments)==null?void 0:z.length)??0),P(((H=ie.files)==null?void 0:H.length)??0)}catch{}}async function D(I){var H;let z=++qa.current;xn(!0),vn(null);try{let ve=await s.getComments(I);if(qa.current!==z)return;hn(ve.comments??[]),oo(((H=ve.comments)==null?void 0:H.length)??0)}catch{if(qa.current!==z)return;vn("failed")}finally{qa.current===z&&xn(!1)}}async function zt(I){var z;In(!0),Cn(null);try{let H=await s.getFiles(I);yn(H.files??[]),P(((z=H.files)==null?void 0:z.length)??0)}catch{Cn("failed")}finally{In(!1)}}async function Wa(){var I;if(!N.trim()){(I=Z.current)==null||I.focus();return}if(!C&&jt.trim()&&await gr(),C){let z=await g({title:N.trim(),description:de.trim()||N.trim(),status:K,type:Ze,priority:Ge||void 0,selector:"/"});if(z&&T.length>0){for(let H of T)await s.uploadFile(z,H).catch(()=>null);E([])}f()}else pt()}function pt(){if(!t||C)return;let I=N.trim();if(!I)return;let z=V.current,H=oe.current,ve=I!==z,ie=de.trim()!==H;!ve&&!ie||(ve&&ia("title",z,I),ie&&ia("description",H,de.trim()),x(t.id,{title:I,description:de.trim(),type:Ze,priority:Ge||void 0}),V.current=I,oe.current=de.trim())}ne.current=pt;function ia(I,z,H){z!==H&&Y(ve=>[...ve,{field:I,from:z,to:H,actor:o,timestamp:new Date().toISOString()}])}async function gr(){if(!(!t||!jt.trim())){Ln(!0);try{await s.addComment(t.id,jt.trim()),Kt(""),await D(t.id)}finally{Ln(!1)}}}async function wn(I,z){t&&(await s.updateComment(t.id,I.id,z),await D(t.id))}async function vm(I){t&&(await s.deleteComment(t.id,I.id),await D(t.id))}async function Lm(I){if(!t)return;let z=t.id;te(null);for(let H of Array.from(I.target.files??[])){if(!H.type.startsWith("image/")&&H.size>qx){te(`"${H.name}" exceeds the 5 MB limit and was skipped.`);continue}let ve;if(H.type.startsWith("image/")){let ie=await Vi(H),wt=H.name.replace(/\\.(png|bmp|gif|webp|tiff?)$/i,".jpg");ve=new File([ie],wt,{type:"image/jpeg"})}else ve=H;await s.uploadFile(z,ve)}I.target.value="",await zt(z),lt(z)}async function ym(I){if(!t)return;te(null);let z=await Vi(I),ve=`paste-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.jpg`,ie=new File([z],ve,{type:"image/jpeg"});await s.uploadFile(t.id,ie),await zt(t.id),lt(t.id)}async function Sm(I){if(!t)return;let z=Array.from(I.items),H=z.find(ie=>ie.type.startsWith("image/"));if(H){let ie=H.getAsFile();ie&&await ym(ie);return}let ve=z.filter(ie=>ie.kind==="file"&&!ie.type.startsWith("image/"));if(ve.length>0){for(let ie of ve){let wt=ie.getAsFile();wt&&await s.uploadFile(t.id,wt)}await zt(t.id),lt(t.id);return}}$.default.useEffect(()=>{if(!e)return;function I(z){if(!z.clipboardData)return;let H=z.target;if(!((H.tagName==="TEXTAREA"||H.tagName==="INPUT"||H.isContentEditable)&&!Array.from(z.clipboardData.items).some(hr=>hr.kind==="file"))){if(z.preventDefault(),!t){let wt=Array.from(z.clipboardData.items).find(hr=>hr.type.startsWith("image/"));if(wt){let hr=wt.getAsFile();hr&&(async()=>{let Pm=await Vi(hr),Tm=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),Rm=new File([Pm],`paste-${Tm}.jpg`,{type:"image/jpeg"});E(Dm=>[...Dm,Rm])})()}return}Sm(z.clipboardData)}}return document.addEventListener("paste",I),()=>document.removeEventListener("paste",I)},[e,t==null?void 0:t.id]);async function Xi(I){t&&(await s.deleteFile(t.id,I.name),await zt(t.id),lt(t.id))}async function Im(I){if(!t)return;await s.deleteFile(t.id,I);let z=(t.files??[]).filter(H=>H.name!==I);x(t.id,{files:z}),await zt(t.id),lt(t.id)}function Cm(I){Ie(I),!C&&t&&x(t.id,{status:I})}let wm=I=>I!==K?"dp-status-btn":`dp-status-btn active-${I}`;function Qi(){if(!Je.current){if(Ne.current.trim().length>0){ne.current(),Ot(!0);return}ne.current(),f()}}let km=e&&t!=null&&(N!==V.current||de!==oe.current),bm=$.default.useMemo(()=>{let I=[...F,...pe].sort((H,ve)=>new Date(H.timestamp).getTime()-new Date(ve.timestamp).getTime()),z=[];for(let H of I)z.some(ie=>ie.field===H.field&&ie.from.toLowerCase()===H.from.toLowerCase()&&ie.to.toLowerCase()===H.to.toLowerCase()&&ie.actor===H.actor&&Math.abs(new Date(ie.timestamp).getTime()-new Date(H.timestamp).getTime())<=3e3)||z.push(H);return z},[F,pe]),Va=!C&&!!d;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)("aside",{id:"detail-panel",className:"open",ref:w,children:[Va&&(0,R.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,R.jsx)("strong",{children:d})," \\u2014 editing disabled until they finish."]}),(0,R.jsxs)("div",{className:"dp-header",children:[(0,R.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[i&&(0,R.jsx)("button",{id:"dp-back",onClick:i,title:h?`Back to: ${h}`:"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:I=>{I.currentTarget.style.background="var(--p-border)",I.currentTarget.style.color="var(--p-blue-300)",I.currentTarget.style.borderColor="var(--p-blue)"},onMouseOut:I=>{I.currentTarget.style.background="transparent",I.currentTarget.style.color="var(--p-text-g)",I.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u2190"}),(0,R.jsx)(eu,{id:"dp-type-picker",value:Ze,disabled:Va,onChange:I=>{!C&&t&&I!==Ze&&ia("type",Ze,I),Ct(I),!C&&t&&x(t.id,{type:I})}}),(0,R.jsx)("input",{id:"dp-title",ref:Z,className:"dp-input",type:"text",placeholder:"Task title\\u2026",value:N,readOnly:Va,onChange:I=>xe(I.target.value),onKeyDown:I=>{I.key==="Escape"&&(I.stopPropagation(),Qi()),I.key==="Enter"&&C&&Wa()},style:{flex:1,fontSize:14,fontWeight:600,padding:"4px 8px",borderColor:"transparent",background:"transparent"},onFocus:I=>{I.currentTarget.style.borderColor="var(--p-blue)",I.currentTarget.style.background="var(--p-input)"},onBlur:I=>{I.currentTarget.style.borderColor="transparent",I.currentTarget.style.background="transparent",C||pt()}}),!C&&N!==V.current&&N.trim()!==""&&(0,R.jsx)("button",{type:"button",title:"Discard title changes",onMouseDown:I=>{I.preventDefault(),xe(V.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:I=>{I.currentTarget.style.color="var(--p-amber-300)",I.currentTarget.style.borderColor="var(--p-amber-300)"},onMouseLeave:I=>{I.currentTarget.style.color="var(--p-text-g)",I.currentTarget.style.borderColor="var(--p-border-t)"},children:"\\u21A9"}),(0,R.jsx)("button",{id:"dp-close",onClick:Qi,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:I=>{I.currentTarget.style.background="var(--p-border)",I.currentTarget.style.color="var(--p-text-m)"},onMouseOut:I=>{I.currentTarget.style.background="transparent",I.currentTarget.style.color="var(--p-text-g)"},children:(0,R.jsx)($e,{style:{width:14,height:14}})}),c&&km&&t&&(0,R.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,R.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",...Va?{pointerEvents:"none",opacity:.6}:{}},children:[(0,R.jsx)("span",{style:{fontSize:10,color:"var(--p-text-g)",fontWeight:500,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Status"}),_x.map(I=>(0,R.jsx)("button",{className:wm(I.id),"data-status":I.id,onClick:()=>Cm(I.id),children:I.label},I.id))]})]}),!C&&(0,R.jsxs)("div",{className:"dp-tabs",id:"dp-tabs-row",children:[(0,R.jsx)("button",{className:`dp-tab${ee==="details"?" active":""}`,id:"dp-tab-details",onClick:()=>Ae("details"),children:"Details"}),(0,R.jsxs)("button",{className:`dp-tab${ee==="comments"?" active":""}`,id:"dp-tab-activity",onClick:()=>Ae("comments"),children:["Activity ",ro>0&&(0,R.jsxs)("span",{id:"dp-activity-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",ro,")"]})]}),(0,R.jsxs)("button",{className:`dp-tab${ee==="files"?" active":""}`,id:"dp-tab-files",onClick:()=>Ae("files"),children:["Files ",v>0&&(0,R.jsxs)("span",{id:"dp-file-count",style:{color:"var(--p-text-g)",fontSize:10},children:["(",v,")"]})]})]}),(0,R.jsxs)("div",{className:"dp-body",children:[!C&&(0,R.jsx)(Hx,{}),(0,R.jsxs)("div",{className:"dp-pane",id:"dp-details-pane",style:{display:!t||ee==="details"?"":"none"},children:[(0,R.jsx)("div",{style:Va?{pointerEvents:"none",opacity:.6}:void 0,children:(0,R.jsx)(qi,{task:t,description:de,setDescription:fe,showDescPreview:pr,setShowDescPreview:_a,priority:Ge,setPriority:Gt,onDescriptionBlur:C?void 0:pt,onDescriptionDiscard:C?void 0:()=>{fe(oe.current),_a(!0)},originalDescription:C?void 0:oe.current,onPriorityChange:C?void 0:I=>{t&&(I!==Ge&&ia("priority",Ge||"\\u2014",I||"\\u2014"),x(t.id,{priority:I||void 0}))},githubUrl:n,onFilePreview:L,onDeleteScreenshot:Im,onPatch:x,liveFiles:Xt.length>0||Sn?Xt:void 0})}),!C&&t&&(0,R.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,R.jsx)(Wx,{task:t})})]}),(0,R.jsxs)("div",{className:"dp-pane",id:"dp-activity-pane",style:{display:ee==="comments"&&!C?"":"none"},children:[(0,R.jsx)("div",{style:{borderBottom:"1px solid var(--p-border)",paddingBottom:8,flexShrink:0},children:(0,R.jsx)(Wi,{commentInput:jt,setCommentInput:Kt,commentSubmitting:iu,onSubmit:()=>void gr(),baseRows:2})}),(0,R.jsx)(Ui,{comments:sa,files:Xt,localChanges:bm,loading:uu,error:su,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:wn,onDelete:vm,onDeleteFile:Xi,onFilePreview:L})]}),(0,R.jsxs)("div",{className:"dp-pane",id:"dp-files-pane",style:{display:ee==="files"&&!C?"":"none"},children:[(0,R.jsx)(Ni,{files:Xt,loading:Sn,error:du,baseUrl:l,onPreview:I=>L(I.name,I.linkedPath?`${l}/api/tasks/${t==null?void 0:t.id}/files/${encodeURIComponent(I.name)}`:`${l}${I.url}`),onDelete:Va?void 0:Xi}),(0,R.jsxs)("div",{style:{borderTop:"1px solid var(--p-border)",paddingTop:8,flexShrink:0,display:"flex",gap:8,flexWrap:"wrap",alignItems:"center",...Va?{pointerEvents:"none",opacity:.5}:{}},children:[U&&(0,R.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:U}),(0,R.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:I=>{I.currentTarget.style.borderColor="var(--p-border-t)",I.currentTarget.style.color="var(--p-text)"},onMouseOut:I=>{I.currentTarget.style.borderColor="var(--p-border)",I.currentTarget.style.color="var(--p-text-m)"},children:[(0,R.jsx)(Qr,{style:{width:12,height:12}}),"Upload",(0,R.jsx)("input",{id:"dp-file-upload",type:"file",style:{display:"none"},multiple:!0,onChange:Lm})]}),(0,R.jsx)("span",{style:{fontSize:11,color:"var(--p-border-t)",marginLeft:"auto"},children:"or paste image"})]})]})]}),(0,R.jsxs)("div",{className:"dp-footer",children:[!C&&(0,R.jsx)("button",{id:"dp-delete",onClick:()=>mr(!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:I=>{I.currentTarget.style.borderColor="var(--p-red)"},onMouseOut:I=>{I.currentTarget.style.borderColor="var(--p-border-t)"},children:"Delete"}),(0,R.jsx)("div",{style:{flex:1}}),C?(0,R.jsxs)(R.Fragment,{children:[T.length>0&&(0,R.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,R.jsx)("button",{id:"dp-cancel",onClick:f,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:I=>{I.currentTarget.style.borderColor="var(--p-text-g)"},onMouseOut:I=>{I.currentTarget.style.borderColor="var(--p-border-t)"},children:"Cancel"}),(0,R.jsx)("button",{id:"dp-save",onClick:()=>void Wa(),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:I=>{I.currentTarget.style.background="var(--p-blue-700)"},onMouseOut:I=>{I.currentTarget.style.background="var(--p-blue)"},children:"Add Task"})]}):(0,R.jsx)("span",{style:{fontSize:11,color:"var(--p-text-g)",padding:"5px 4px"},children:"Changes are saved automatically"})]}),(0,R.jsx)($t,{open:Bt,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:()=>{mr(!1),p(t.id),f()},onCancel:()=>mr(!1)})]}),ao&&(0,R.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,R.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,R.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,R.jsx)(Qr,{style:{width:20,height:20,color:"var(--p-purple)"}})}),(0,R.jsx)("h2",{style:{margin:"0 0 8px",fontSize:17,fontWeight:700,color:"var(--p-text)"},children:"Send comment?"}),(0,R.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,R.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,R.jsx)("button",{onClick:()=>{Ot(!1),gr().then(()=>f())},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,R.jsx)("button",{type:"button",onClick:()=>{Ot(!1),Kt(""),f()},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,R.jsx)("button",{type:"button",onClick:()=>Ot(!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 Wx({task:e}){let t=[];if(e.component&&t.push((0,R.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,u=e.url?e.url.length>30?`\\u2026${e.url.slice(-30)}`:e.url:"";t.push((0,R.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,R.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}),u&&(0,R.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:u})]},"source"))}}else if(e.url){let r=e.url.length>40?`\\u2026${e.url.slice(-40)}`:e.url;t.push((0,R.jsx)("span",{className:"dp-source-pill",title:e.url,children:r},"url"))}return e.reportBack&&t.push((0,R.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,R.jsx)("div",{id:"dp-meta-row",style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",flex:1},children:t})}var gn=A(Ce(),1);var re=A(_(),1),Vx=[{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)"}],$x={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 Gi({tasks:e,filter:t,onFilter:a,view:r="board",onViewChange:o,activityCounter:n}){let[l,u]=gn.default.useState(!1),[s,f]=gn.default.useState(!1),m=gn.default.useMemo(()=>[...new Set(e.map(i=>i.type).filter(Boolean))].sort(),[e]),g=gn.default.useMemo(()=>[...new Set(e.map(i=>i.author).filter(Boolean))].sort(),[e]);function p(i){return e.filter(h=>h.status===i).length}function x(i){a({...t,status:i}),u(!1),f(!1)}function L(i){a({...t,type:i}),u(!1)}function y(i){a({...t,user:i}),f(!1)}function F(i){i.stopPropagation();let h=i.currentTarget.dataset.status;h&&x(h)}let c={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},d={...c,background:"var(--p-card)",border:"1px solid var(--p-border)",color:"var(--p-text-f)",padding:"3px 10px",position:"relative"};return(0,re.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:()=>{u(!1),f(!1)},children:[(0,re.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:Vx.map(i=>{let h=t.status===i.id,k=i.id!=="all"?p(i.id):null,C=h?$x[i.id]:{};return(0,re.jsxs)("button",{"data-status":i.id,style:{...c,...C},onMouseOver:S=>{h||(S.currentTarget.style.background="var(--p-hover)",S.currentTarget.style.color="var(--p-text-m)")},onMouseOut:S=>{h||(S.currentTarget.style.background="transparent",S.currentTarget.style.color="var(--p-text-f)")},onClick:F,children:[i.dot&&(0,re.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:i.dot,flexShrink:0,display:"inline-block"}}),i.label,k!=null&&(0,re.jsx)("span",{style:{color:h?"inherit":"var(--p-border-t)",fontSize:10,opacity:.8},children:k})]},i.id)})}),(0,re.jsx)("div",{style:{flex:1}}),n,t.user&&(0,re.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,re.jsx)("button",{onClick:()=>y(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-purple-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,re.jsx)($e,{style:{width:10,height:10}})})]}),t.type&&(0,re.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,re.jsx)("button",{onClick:()=>L(null),style:{display:"flex",background:"none",border:"none",color:"var(--p-cyan-300)",cursor:"pointer",padding:0,lineHeight:1},children:(0,re.jsx)($e,{style:{width:10,height:10}})})]}),(0,re.jsxs)("div",{style:{position:"relative"},children:[(0,re.jsxs)("button",{style:{...d,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:g.length?1:.55},onClick:i=>{i.stopPropagation(),g.length&&(u(!1),f(h=>!h))},children:[(0,re.jsx)(sn,{style:{width:12,height:12}}),"User",(0,re.jsx)(Kr,{style:{width:12,height:12}})]}),s&&g.length>0&&(0,re.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:i=>i.stopPropagation(),children:[(0,re.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:()=>y(null),children:"All users"}),g.map(i=>(0,re.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.user===i?"var(--p-purple-300)":"var(--p-text-m)",background:t.user===i?"color-mix(in srgb, var(--p-purple) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:h=>{t.user!==i&&(h.currentTarget.style.background="var(--p-hover)")},onMouseOut:h=>{t.user!==i&&(h.currentTarget.style.background="none")},onClick:()=>y(i),children:i},i))]})]}),(0,re.jsxs)("div",{style:{position:"relative"},children:[(0,re.jsxs)("button",{style:{...d,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:i=>{i.stopPropagation(),m.length&&u(h=>!h)},children:[(0,re.jsx)(un,{style:{width:12,height:12}}),"Type",(0,re.jsx)(Kr,{style:{width:12,height:12}})]}),l&&m.length>0&&(0,re.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:i=>i.stopPropagation(),children:[(0,re.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:()=>L(null),children:"All types"}),m.map(i=>(0,re.jsx)("button",{style:{width:"100%",textAlign:"left",padding:"7px 12px",fontSize:11,color:t.type===i?"var(--p-cyan-300)":"var(--p-text-m)",background:t.type===i?"color-mix(in srgb, var(--p-blue) 12%, transparent)":"none",border:"none",cursor:"pointer"},onMouseOver:h=>{t.type!==i&&(h.currentTarget.style.background="var(--p-hover)")},onMouseOut:h=>{t.type!==i&&(h.currentTarget.style.background="none")},onClick:()=>L(i),children:i},i))]})]}),(0,re.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,re.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:i=>{i.stopPropagation(),o==null||o("board")},children:(0,re.jsx)(an,{style:{width:13,height:13}})}),(0,re.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:i=>{i.stopPropagation(),o==null||o("list")},children:(0,re.jsx)(rn,{style:{width:13,height:13}})})]})]})}var Ha=A(Ce(),1);var se=A(_(),1),Gx=[{id:"board",label:"Board",icon:(0,se.jsx)(Ma,{className:"w-3.5 h-3.5"})},{id:"workflow",label:"Workflow",icon:(0,se.jsx)(dn,{className:"w-3.5 h-3.5"})}];function ji({open:e,visibleCols:t,settings:a,onClose:r,onSave:o}){let[n,l]=Ha.default.useState("board"),[u,s]=Ha.default.useState({}),[f,m]=Ha.default.useState(a.autoCommit??!1),[g,p]=Ha.default.useState(a.autoComment??!1),[x,L]=Ha.default.useState(a.autoPush??!1),[y,F]=Ha.default.useState(a.createBranch??!1);Ha.default.useEffect(()=>{if(!e)return;let i={};Ba.forEach(h=>{i[h.id]=t.includes(h.id)}),s(i),m(a.autoCommit??!1),p(a.autoComment??!1),L(a.autoPush??!1),F(a.createBranch??!1),l("board")},[e,t,a]);function c(){let i=Ba.filter(h=>u[h.id]).map(h=>h.id);o(i,{autoCommit:f,autoComment:g,autoPush:x,createBranch:y}),r()}function d(i){s(h=>({...h,[i]:!h[i]}))}return(0,se.jsxs)(cr,{open:e,onClose:r,id:"settings-modal",width:"min(460px, 95vw)",icon:(0,se.jsx)(ir,{style:{width:14,height:14,color:"var(--p-text-g)"}}),title:"Settings",headerActions:(0,se.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:i=>{i.currentTarget.style.background="var(--p-surface)",i.currentTarget.style.color="var(--p-text-m)"},onMouseOut:i=>{i.currentTarget.style.background="transparent",i.currentTarget.style.color="var(--p-text-g)"},children:(0,se.jsx)($e,{style:{width:14,height:14}})}),footer:(0,se.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,se.jsx)("button",{id:"settings-cancel",onClick:r,className:"dp-status-btn",style:{padding:"5px 14px",fontSize:12},children:"Cancel"}),(0,se.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:i=>{i.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 28%, transparent)"},onMouseOut:i=>{i.currentTarget.style.background="color-mix(in srgb, var(--p-purple) 18%, transparent)"},children:"Apply"})]}),children:[(0,se.jsx)("div",{className:"dp-tabs",children:Gx.map(i=>(0,se.jsxs)("button",{onClick:()=>l(i.id),className:`dp-tab${n===i.id?" active":""}`,style:{display:"flex",alignItems:"center",gap:6},children:[i.icon,i.label]},i.id))}),n==="board"&&(0,se.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:10},children:[(0,se.jsx)("div",{className:"dp-meta-label",children:"Visible Columns"}),Ba.map(i=>(0,se.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer",userSelect:"none"},children:[(0,se.jsx)("input",{id:`settings-col-${i.id}`,type:"checkbox",checked:u[i.id]??!0,onChange:()=>d(i.id),style:{width:14,height:14,accentColor:i.color,cursor:"pointer"}}),(0,se.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:i.color,flexShrink:0}}),(0,se.jsx)("span",{style:{fontSize:13,color:"var(--p-text-m)"},children:i.label})]},i.id))]}),n==="workflow"&&(0,se.jsxs)("div",{style:{padding:"14px 16px",display:"flex",flexDirection:"column",gap:16},children:[(0,se.jsx)(ru,{id:"settings-auto-commit",label:"Commit after task implementation",description:"Agent is instructed to stage and commit changes after each task.",value:f,onChange:m}),(0,se.jsx)(ru,{id:"settings-auto-push",label:"Push after task commit",description:`Agent is instructed to push after every commit. Requires \'Commit\' to be ON.${f?"":" (Enable Commit first)"}`,value:x&&f,onChange:i=>L(i&&f)}),(0,se.jsx)(ru,{id:"settings-auto-comment",label:"Comment after task implementation",description:"Agent is instructed to add a summary comment after completing a task.",value:g,onChange:p}),(0,se.jsx)(ru,{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:y,onChange:F})]})]})}function ru({id:e,label:t,description:a,value:r,onChange:o}){return(0,se.jsxs)("div",{children:[(0,se.jsx)("div",{className:"dp-meta-label",style:{marginBottom:4},children:t}),(0,se.jsx)("div",{style:{fontSize:11,color:"var(--p-text-g)",marginBottom:10},children:a}),(0,se.jsxs)("div",{id:e,style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer"},onClick:()=>o(!r),children:[(0,se.jsxs)("div",{style:{position:"relative",width:36,height:20,flexShrink:0},children:[(0,se.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,se.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,se.jsx)("span",{style:{fontSize:12,color:"var(--p-text-g)"},children:r?"On":"Off"})]})]})}var nu=A(Ce(),1);var me=A(_(),1);function sm(e){return/\\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function ou(e){return/\\.md$/i.test(e)}function Ki({open:e,name:t,url:a,onClose:r}){let[o,n]=nu.default.useState(null),[l,u]=nu.default.useState(!1);return nu.default.useEffect(()=>{!e||!a||(ou(t)?(u(!0),n(null),fetch(a).then(s=>s.text()).then(s=>{n(s),u(!1)}).catch(()=>{n("Error loading file."),u(!1)})):n(null))},[e,t,a]),(0,me.jsx)(cr,{open:e,onClose:r,id:"file-preview-modal",width:"min(700px, 95vw)",maxHeight:"88vh",boxStyle:{display:"flex",flexDirection:"column"},icon:(0,me.jsx)(Xr,{className:"w-4 h-4 text-slate-400"}),title:t,headerActions:(0,me.jsxs)(me.Fragment,{children:[(0,me.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,me.jsx)(lr,{className:"w-4 h-4"})}),(0,me.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,me.jsx)($e,{className:"w-4 h-4"})})]}),footer:(0,me.jsxs)(me.Fragment,{children:[(0,me.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,me.jsx)(lr,{className:"w-3.5 h-3.5"}),"Download"]}),(0,me.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,me.jsxs)("div",{className:"flex-1 overflow-auto",style:{minHeight:0,padding:"16px 20px"},children:[sm(t)&&(0,me.jsx)("div",{style:{borderRadius:8,overflow:"hidden",border:"1px solid var(--p-border)",background:"var(--p-card)",display:"inline-block",width:"100%"},children:(0,me.jsx)("img",{src:a,alt:t,style:{maxWidth:"100%",display:"block",margin:"0 auto",objectFit:"contain"}})}),ou(t)&&l&&(0,me.jsx)("p",{className:"text-xs text-slate-500 py-4",children:"Loading\\u2026"}),ou(t)&&!l&&o!==null&&(0,me.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,me.jsx)(Ua,{markdown:o})}),!sm(t)&&!ou(t)&&(0,me.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-slate-500",children:[(0,me.jsx)(Xr,{className:"w-10 h-10 opacity-40"}),(0,me.jsx)("p",{className:"text-sm",children:"Preview not available for this file type."}),(0,me.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,me.jsx)(lr,{className:"w-3.5 h-3.5"}),"Download file"]})]})]})})}var im=window.__PORT__??3700,to=`http://localhost:${im}`,Et=`${to}/api/tasks`,It={async getTasks(){return(await fetch(`${Et}?_=${Date.now()}`,{cache:"no-store"})).json()},async createTask(e){return(await fetch(Et,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json()},async updateTask(e,t){return(await fetch(`${Et}/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).json()},async deleteTask(e){await fetch(`${Et}/${e}`,{method:"DELETE"})},async getComments(e){return(await fetch(`${Et}/${e}/comments`)).json()},async addComment(e,t){await fetch(`${Et}/${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(`${Et}/${e}/comments/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})})},async deleteComment(e,t){await fetch(`${Et}/${e}/comments/${t}`,{method:"DELETE"})},async getFiles(e){return(await fetch(`${Et}/${e}/files`)).json()},async uploadFile(e,t){let a=await t.arrayBuffer();await fetch(`${Et}/${e}/files/${encodeURIComponent(t.name)}`,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:a})},async deleteFile(e,t){await fetch(`${Et}/${e}/files/${encodeURIComponent(t)}`,{method:"DELETE"})},async getProject(){return(await fetch(`${to}/api/project`)).json()},async getCopilotStatus(){return(await fetch(`${to}/api/copilot/status`)).json()},async copilotLogin(){return(await fetch(`${to}/api/copilot/login`,{method:"POST"})).json().catch(()=>({}))},async getSettings(){return(await fetch(`${to}/api/settings`,{cache:"no-store"})).json()},async saveSettings(e){await fetch(`${to}/api/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})},wsUrl(){return`ws://localhost:${im}`}};var W=A(_(),1),lu=window.__PORT__??3700,jx=window.__SAAS_MODE__??!1,dm=window.__BOARD_URL__??"",Kx=window.__BOARD_NAME__??"",pm=window.__IS_ADMIN__??!1;function Xx({onClose:e}){let t=`http://localhost:${lu}`,[a,r]=Q.default.useState("idle"),[o,n]=Q.default.useState(!0),[l,u]=Q.default.useState(null),[s,f]=Q.default.useState("");async function m(){r("pushing"),f("");try{let p=await fetch(`${t}/api/push`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keepLocalFiles:o})}),x=await p.json();if(!p.ok){f(x.error??"Push failed"),r("error");return}u({imported:x.imported??0,skipped:x.skipped}),r("done")}catch(p){f(p instanceof Error?p.message:"Network error"),r("error")}}let g=a==="pushing";return(0,W.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,W.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,W.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,W.jsxs)("div",{style:{padding:"36px 36px 20px",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,W.jsx)("div",{style:{position:"relative",width:52,height:52,marginBottom:22},children:(0,W.jsxs)("svg",{width:"52",height:"52",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,W.jsx)("rect",{width:"18",height:"18",rx:"4",fill:"#2563eb"}),(0,W.jsx)("rect",{x:"2.5",y:"5",width:"2",height:"8",rx:"1",fill:"white",opacity:"0.7"}),(0,W.jsx)("rect",{x:"6.5",y:"2",width:"2",height:"14",rx:"1",fill:"white"}),(0,W.jsx)("rect",{x:"10.5",y:"6",width:"2",height:"6",rx:"1",fill:"white",opacity:"0.7"}),(0,W.jsx)("rect",{x:"14.5",y:"4",width:"2",height:"10",rx:"1",fill:"white",opacity:"0.85"})]})}),(0,W.jsx)("h1",{style:{fontSize:18,fontWeight:700,color:"#f1f5f9",letterSpacing:"-0.3px",margin:"0 0 7px"},children:"Online Mode Active"}),(0,W.jsxs)("p",{style:{fontSize:12,color:"rgba(255,255,255,0.36)",lineHeight:1.5,margin:0},children:["Connected to"," ",(0,W.jsx)("strong",{style:{color:"rgba(255,255,255,0.55)",fontWeight:500},children:Kx||"Vibeflow SaaS"})]})]}),a==="done"&&l&&(0,W.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,W.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:(0,W.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"&&s&&(0,W.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:s}),(0,W.jsxs)("div",{style:{padding:"20px 24px 28px",display:"flex",flexDirection:"column",gap:8},children:[dm&&(0,W.jsx)("a",{href:dm,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:p=>{p.currentTarget.style.background="#3b82f6",p.currentTarget.style.transform="translateY(-1px)"},onMouseLeave:p=>{p.currentTarget.style.background="#2563eb",p.currentTarget.style.transform="none"},children:"Open Web App \\u2192"}),a!=="done"&&(0,W.jsx)("button",{onClick:()=>void m(),disabled:g,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:g?"rgba(255,255,255,0.25)":"rgba(255,255,255,0.4)",fontSize:13,fontWeight:500,cursor:g?"not-allowed":"pointer",transition:"border-color 0.15s, color 0.15s, background 0.15s"},onMouseEnter:p=>{g||(p.currentTarget.style.borderColor="rgba(255,255,255,0.15)",p.currentTarget.style.color="rgba(255,255,255,0.65)",p.currentTarget.style.background="rgba(255,255,255,0.03)")},onMouseLeave:p=>{g||(p.currentTarget.style.borderColor="rgba(255,255,255,0.08)",p.currentTarget.style.color="rgba(255,255,255,0.4)",p.currentTarget.style.background="transparent")},children:g?"\\u23F3 Pushing\\u2026":"\\u2191 Push local tasks"})]}),(0,W.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 24px 20px"},children:[(0,W.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,cursor:"pointer"},children:[(0,W.jsx)("input",{type:"checkbox",checked:o,onChange:p=>n(p.target.checked),style:{accentColor:"#2563eb",width:13,height:13,cursor:"pointer"}}),(0,W.jsx)("span",{style:{fontSize:11.5,color:"rgba(255,255,255,0.28)"},children:"Keep local files"})]}),pm&&e&&(0,W.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:p=>{p.currentTarget.style.color="rgba(255,255,255,0.45)"},onMouseLeave:p=>{p.currentTarget.style.color="rgba(255,255,255,0.2)"},children:"Dismiss (admin)"})]})]})})}var fm={backlog:"Backlog",todo:"Todo","in-progress":"In Progress",review:"Review",done:"Done"};function Qx(e,t,a){let r=a?e.filter(u=>{var s,f;return((s=u.title)==null?void 0:s.toLowerCase().includes(a))||((f=u.description)==null?void 0:f.toLowerCase().includes(a))}):e;if(a)return`${r.length} of ${e.length} tasks`;let o=r.filter(u=>u.status!=="done").length,n=r.filter(u=>u.status==="in-progress").length,l=r.filter(u=>u.status==="review").length;return`${o} open \\xB7 ${n} in-progress \\xB7 ${l} in review`}function mm(){var qa;let[e,t]=Q.default.useState([]),[a,r]=Q.default.useState(!0),[o,n]=Q.default.useState(!1),[l,u]=Q.default.useState({open:!1,task:null,tab:"details"}),[s,f]=Q.default.useState("board"),[m,g]=Q.default.useState(!1),[p,x]=Q.default.useState({open:!1,name:"",url:""}),[L,y]=Q.default.useState(420),[F,c]=Q.default.useState(!1),[d,i]=Q.default.useState(""),[h,k]=Q.default.useState(Ba.map(v=>v.id)),[C,S]=Q.default.useState({status:"all",component:null,type:null,user:null}),[w,T]=Q.default.useState("Proto Board"),[E,O]=Q.default.useState(!1),[V,oe]=Q.default.useState(!1),[ee,Ae]=Q.default.useState("You"),[N,xe]=Q.default.useState(null),[de,fe]=Q.default.useState(""),[K,Ie]=Q.default.useState({}),Ze=Q.default.useRef(null),Ct=Q.default.useRef(null),Ge=Q.default.useRef(null),[Gt,pr]=Q.default.useState([]),_a=Q.default.useRef(!1),Bt=Q.default.useRef([]),[mr,ao]=Q.default.useState([]);Q.default.useEffect(()=>(sa(),uu(),su(),vn(),xn(),jt(),()=>{var v;Ct.current&&clearTimeout(Ct.current),(v=Ze.current)==null||v.close()}),[]),Q.default.useEffect(()=>{document.body.setAttribute("data-theme","dark")},[]),Q.default.useEffect(()=>{function v(){let te=window.location.hash.match(/^#task-([a-f0-9]{30})$/i);if(!te){Ge.current=null;return}let pe=te[1].toLowerCase();if(Ge.current===pe)return;let Y=e.find(Z=>Z.id.toLowerCase()===pe);Y&&(Ge.current=pe,_a.current?u(Z=>({...Z,open:!0,task:Y,tab:"details"})):u(Z=>(Z.task&&Z.task.id!==Y.id&&pr(ne=>[...ne,Z.task]),{...Z,open:!0,task:Y,tab:"details"})),_a.current=!1)}function P(){}v();let U=()=>{Ge.current=null,v()};return window.addEventListener("hashchange",U),window.addEventListener("vibeflow-task-ref-click",P),()=>{window.removeEventListener("hashchange",U),window.removeEventListener("vibeflow-task-ref-click",P)}},[e]),Q.default.useEffect(()=>{function v(P){var pe,Y,Z;let U=(pe=P.target)==null?void 0:pe.tagName,te=U==="INPUT"||U==="TEXTAREA"||((Y=P.target)==null?void 0:Y.isContentEditable);if(P.key==="Escape"){if(p.open){x(ne=>({...ne,open:!1}));return}if(l.open){u(ne=>({...ne,open:!1}));return}if(m){g(!1);return}}if(!te&&((P.key==="?"||P.key==="/"&&P.shiftKey)&&((Z=document.getElementById("header-shortcuts-hint"))==null||Z.click()),P.altKey&&!P.ctrlKey&&!P.metaKey&&(P.key==="n"||P.key==="N")&&(P.preventDefault(),Xt(null,"details")),P.altKey&&!P.ctrlKey&&!P.metaKey&&(P.key==="f"||P.key==="F"))){P.preventDefault();let ne=document.getElementById("global-search");ne==null||ne.focus(),ne==null||ne.select()}}return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[p.open,l.open,m]);function Ot(v,P,U,te,pe){let Y=new Date().toISOString(),Z=fm[P]??P,ne=fm[U]??U,Ne=Date.now()-3e3;ao(Je=>Je.some(D=>D.taskId===v&&D.to===ne&&new Date(D.timestamp).getTime()>Ne)?Je:[...Je,{taskId:v,field:"status",from:Z,to:ne,actor:te,timestamp:Y,source:pe}].slice(-500))}async function sa(){try{let v=await It.getTasks();Bt.current=v.tasks??[],t(v.tasks??[])}catch{}finally{r(!1)}}let hn=Q.default.useCallback((v,P,U)=>{let te=String(v.id??"");if(!te)return;let pe=v.created??v.createdAt,Y=v.updated?String(v.updated):void 0,Z=Array.isArray(v.comments)?v.comments.length:void 0,ne=Array.isArray(v.files)?v.files.length:void 0,Ne=v.status?String(v.status):void 0,Je=Bt.current.find(lt=>lt.id===te);Ne&&Je&&Je.status!==Ne&&Ot(te,Je.status,Ne,P??"Someone",U),t(lt=>{let D=lt.find(pt=>pt.id===te),zt={id:te,title:v.title?String(v.title):(D==null?void 0:D.title)??"Untitled",description:v.description!=null?String(v.description):(D==null?void 0:D.description)??"",status:Ne??(D==null?void 0:D.status)??"todo",type:v.type?String(v.type):D==null?void 0:D.type,priority:v.priority?String(v.priority):D==null?void 0:D.priority,agent:v.agent?String(v.agent):D==null?void 0:D.agent,model:v.model?String(v.model):D==null?void 0:D.model,selector:v.selector?String(v.selector):D==null?void 0:D.selector,cssSelector:v.cssSelector?String(v.cssSelector):D==null?void 0:D.cssSelector,file:v.file?String(v.file):D==null?void 0:D.file,line:typeof v.line=="number"?v.line:D==null?void 0:D.line,col:typeof v.col=="number"?v.col:D==null?void 0:D.col,component:v.component?String(v.component):D==null?void 0:D.component,url:v.url?String(v.url):D==null?void 0:D.url,reportBack:v.reportBack===!0||(D==null?void 0:D.reportBack)===!0,commit:v.commit?String(v.commit):D==null?void 0:D.commit,commits:Array.isArray(v.commits)?v.commits:D==null?void 0:D.commits,commentCount:Z??(D==null?void 0:D.commentCount),fileCount:ne??(D==null?void 0:D.fileCount),createdAt:pe?String(pe):(D==null?void 0:D.createdAt)??new Date().toISOString(),updatedAt:Y??(D==null?void 0:D.updatedAt),author:v.author?String(v.author):D==null?void 0:D.author},Wa=lt.filter(pt=>pt.id!==te);return Wa.push(zt),Wa.sort((pt,ia)=>{let gr=new Date(pt.updatedAt??pt.createdAt??"").getTime(),wn=new Date(ia.updatedAt??ia.createdAt??"").getTime();return gr===wn?pt.id.localeCompare(ia.id):wn-gr}),Bt.current=Wa,Wa})},[]);async function uu(){try{let v=await It.getProject();v.name&&T(v.name),v.gitUserName&&Ae(v.gitUserName)}catch{}}async function xn(){try{let v=await fetch("/api/github-url").then(P=>P.json());xe(v.githubUrl??null)}catch{}}async function su(){var v;try{let U=await It.getSettings();Ie(U),(v=U.visibleCols)!=null&&v.length&&k(U.visibleCols),U.viewMode&&f(U.viewMode),U.panelWidth&&U.panelWidth>=280&&U.panelWidth<=900&&y(U.panelWidth)}catch{}}async function vn(){try{let v=await It.getCopilotStatus();v!=null&&v.authenticated&&(v!=null&&v.username)?fe(`Copilot: ${v.username}`):fe("Copilot: not logged in")}catch{}}function jt(){let v=`ws://localhost:${lu}`,P=new WebSocket(v);Ze.current=P,P.addEventListener("open",()=>{O(!0),oe(!0),sa()}),P.addEventListener("close",()=>{O(!1),Ct.current=setTimeout(jt,1500)}),P.addEventListener("message",te=>{var pe;try{let Y=JSON.parse(te.data);if(Y.type==="tasks-updated"||(pe=Y.type)!=null&&pe.startsWith("task:")){sa();return}if(Y.type==="task-changed"&&Y.task){let Z=Y.task,ne=typeof Z.alteredBy=="string"?Z.alteredBy:typeof Z.author=="string"?Z.author:"Someone",Ne=Y.source==="cli"?"cli":void 0;hn(Z,ne,Ne);return}if(Y.type==="task-deleted"&&Y.taskId){let Z=String(Y.taskId);t(ne=>{let Ne=ne.filter(Je=>Je.id!==Z);return Bt.current=Ne,Ne})}}catch{}});let U=setInterval(()=>{P.readyState===WebSocket.OPEN&&P.send(JSON.stringify({type:"ping"}))},2e4);P.addEventListener("close",()=>clearInterval(U))}async function Kt(v,P){let U=Bt.current.find(te=>te.id===v);t(te=>{let pe=te.map(Y=>Y.id===v?{...Y,...P}:Y);return Bt.current=pe,pe}),P.status&&(U!=null&&U.status)&&P.status!==U.status&&Ot(v,U.status,P.status,ee);try{let te=await It.updateTask(v,P);te.task&&t(pe=>{let Y=pe.map(Z=>Z.id===v?te.task:Z);return Bt.current=Y,Y})}catch{sa()}}async function iu(v){t(P=>{let U=P.filter(te=>te.id!==v);return Bt.current=U,U});try{await It.deleteTask(v)}catch{sa()}}async function Ln(v){var P;try{let U=await It.createTask(v);return await sa(),(P=U==null?void 0:U.task)==null?void 0:P.id}catch{}}function Xt(v,P="details",U){pr([]),u({open:!0,task:v,tab:P,addColumnId:U})}function yn(){pr(v=>{if(v.length===0)return v;let P=v[v.length-1],U=v.slice(0,-1);return _a.current=!0,Ge.current=null,window.location.hash=`#task-${P.id}`,u(te=>({...te,open:!0,task:P,tab:"details"})),U})}function Sn(v,P){if(/\\.html?$/i.test(v)){window.open(P,"_blank","noopener,noreferrer");return}x({open:!0,name:v,url:P})}let In=Qx(e,h,d.toLowerCase()),du=`http://localhost:${lu}`,Cn=Q.default.useMemo(()=>{var P;let v=(P=l.task)==null?void 0:P.id;return v?mr.filter(U=>U.taskId===v).map(({field:U,from:te,to:pe,actor:Y,timestamp:Z,source:ne})=>({field:U,from:te,to:pe,actor:Y,timestamp:Z,source:ne})):[]},[(qa=l.task)==null?void 0:qa.id,mr]),ro=Q.default.useMemo(()=>{let v=e;return C.status!=="all"&&(v=v.filter(P=>P.status===C.status)),C.component&&(v=v.filter(P=>P.component===C.component)),C.type&&(v=v.filter(P=>P.type===C.type)),C.user&&(v=v.filter(P=>P.author===C.user)),v},[e,C]),oo=V&&!E;return(0,W.jsxs)(W.Fragment,{children:[jx&&!o&&(0,W.jsx)(Xx,{onClose:pm?()=>n(!0):void 0}),(0,W.jsx)(zi,{projectName:w,missingProjectIconStyle:"vibeflow",wsConnected:E,port:lu,searchQuery:d,premiumUsage:de,isLoading:a,taskSummary:In,onSearchChange:i,onSettings:()=>g(!0)}),(0,W.jsx)(Gi,{tasks:e,filter:C,view:s,onFilter:S,onViewChange:v=>{f(v),It.saveSettings({...K,viewMode:v}),Ie(P=>({...P,viewMode:v}))}}),(0,W.jsxs)("div",{className:"flex flex-1 overflow-hidden",style:{minHeight:0,position:"relative"},children:[s==="list"?(0,W.jsx)(Oi,{tasks:ro,searchQuery:d,isLoading:a,onOpenPanel:(v,P)=>Xt(v,P),onAddTask:v=>Xt(null,"details",v),onDrop:(v,P)=>Kt(v,{status:P})}):(0,W.jsx)(Ei,{tasks:ro,visibleCols:h,searchQuery:d,isLoading:a,onOpenPanel:(v,P,U)=>Xt(v,P,U),onDrop:(v,P)=>Kt(v,{status:P})}),l.open&&(0,W.jsxs)("div",{id:"detail-panel-container",style:{width:L,zIndex:F?30:10},className:F?"resizing":"",children:[(0,W.jsx)("div",{id:"detail-panel-resize-handle",onMouseDown:v=>{v.preventDefault(),c(!0),document.body.classList.add("vibeflow-resizing-panel");let P=v.clientX,U=L,te=Y=>{let Z=U-(Y.clientX-P);y(Math.max(360,Math.min(860,Z)))},pe=Y=>{c(!1),document.body.classList.remove("vibeflow-resizing-panel");let Z=Math.max(360,Math.min(860,U-(Y.clientX-P)));It.saveSettings({...K,panelWidth:Z}),Ie(ne=>({...ne,panelWidth:Z})),window.removeEventListener("mousemove",te),window.removeEventListener("mouseup",pe)};window.addEventListener("mousemove",te),window.addEventListener("mouseup",pe)}}),(0,W.jsx)($i,{open:l.open,task:l.task,tab:l.tab,showLockIndicator:!1,addColumnId:l.addColumnId,gitUserName:ee,githubUrl:N,baseUrl:du,isResizing:F,api:It,onClose:()=>{pr([]),u(v=>({...v,open:!1}))},onSave:async v=>{l.task&&await Kt(l.task.id,v),u(P=>({...P,open:!1}))},onCreate:async v=>{let P=await Ln(v);return u(U=>({...U,open:!1})),P},onDelete:async v=>{await iu(v),u(P=>({...P,open:!1}))},onPatch:Kt,onFilePreview:Sn,onGoBack:Gt.length>0?yn:void 0,navBackLabel:Gt.length>0?Gt[Gt.length-1].title:void 0,externalLocalChanges:Cn})]})]}),oo&&(0,cm.createPortal)((0,W.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,W.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,W.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,W.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,W.jsx)("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),(0,W.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--p-text)"},children:"Connection Lost"})]}),(0,W.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,W.jsx)(ji,{open:m,visibleCols:h,settings:K,onClose:()=>g(!1),onSave:(v,P)=>{k(v);let U={...K,...P,visibleCols:v};Ie(U),It.saveSettings(U)}}),(0,W.jsx)(Ki,{open:p.open,name:p.name,url:p.url,onClose:()=>x(v=>({...v,open:!1}))})]})}var xm=A(_(),1),gm=document.getElementById("root");gm&&(0,hm.createRoot)(gm).render((0,xm.jsx)(mm,{}));})();\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 Tt=It(import.meta.url),_t=Pt(Tt),Rt=[Ve(_t,"kanban-template.html"),Ve(process.cwd(),"src","server","kanban-template.html"),Ve(process.cwd(),"dist","server","kanban-template.html")];function Nt(n){let e=Rt.find(r=>St(r));if(!e)throw new Error("kanban-template.html not found in expected locations");return Et(e,"utf8").replaceAll("__PORT__",String(n))}function Ft(n){return n.saasMode?`window.__SAAS_MODE__ = true; window.__BOARD_URL__ = ${JSON.stringify(n.boardUrl??"")}; window.__BOARD_NAME__ = ${JSON.stringify(n.boardName??"")}; window.__IS_ADMIN__ = ${n.isAdmin?"true":"false"};`:""}var Lt="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iNCIgZmlsbD0iIzI1NjNlYiIvPjxyZWN0IHg9IjIuNSIgeT0iNSIgd2lkdGg9IjIiIGhlaWdodD0iOCIgcng9IjEiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjciLz48cmVjdCB4PSI2LjUiIHk9IjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjE0IiByeD0iMSIgZmlsbD0id2hpdGUiLz48cmVjdCB4PSIxMC41IiB5PSI2IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuNyIvPjxyZWN0IHg9IjE0LjUiIHk9IjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjEwIiByeD0iMSIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuODUiLz48L3N2Zz4=";function Dt(n){return`<!DOCTYPE html>
|
|
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
|
+
};
|
|
29344
|
+
`+Ze}function Tn(t){return`var PROTO_CONFIG = ${JSON.stringify({port:0,wsUrl:"",apiUrl:`${t}/api/overlay/tasks`,pagesUrl:"",screenshotsUrl:""})};
|
|
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,"&").replace(/</g,"<").replace(/>/g,">");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>
|
|
29221
29347
|
<html lang="en" class="dark">
|
|
29222
29348
|
<head>
|
|
29223
29349
|
<meta charset="UTF-8">
|
|
29224
29350
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
29225
29351
|
<title>Vibeflow \u2014 Board</title>
|
|
29226
|
-
<link rel="icon" href="${
|
|
29352
|
+
<link rel="icon" href="${Gt}" type="image/svg+xml">
|
|
29227
29353
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
29228
|
-
<style>${
|
|
29354
|
+
<style>${_n}</style>
|
|
29229
29355
|
</head>
|
|
29230
29356
|
<body class="h-screen overflow-hidden flex flex-col" style="background:#020c1b;">
|
|
29231
29357
|
<div id="root"></div>
|
|
29232
|
-
<script>window.__PORT__ = ${
|
|
29233
|
-
<script>${
|
|
29358
|
+
<script>window.__PORT__ = ${t.port}; ${Qt(t)}</script>
|
|
29359
|
+
<script>${nn}</script>
|
|
29234
29360
|
</body>
|
|
29235
|
-
</html>`}function
|
|
29236
|
-
`;case"t":return" ";case"r":return"\r";case"\\":return"\\";default:return r}})}function
|
|
29237
|
-
`):[]);return
|
|
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}
|
|
29238
29364
|
body{font-family:system-ui,sans-serif;background:#0f172a;color:#e2e8f0;padding:32px;max-width:700px;margin:0 auto}
|
|
29239
29365
|
h1{font-size:22px;font-weight:700;color:#f1f5f9;margin-bottom:6px}
|
|
29240
29366
|
h2{font-size:14px;font-weight:600;color:#94a3b8;margin:24px 0 8px;text-transform:uppercase;letter-spacing:.06em}
|
|
@@ -29247,50 +29373,51 @@ code{font-family:monospace;font-size:12px;color:#a5b4fc;word-break:break-all}
|
|
|
29247
29373
|
.badge{display:inline-block;padding:2px 8px;background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);border-radius:10px;font-size:11px;color:#60a5fa;margin-left:6px}
|
|
29248
29374
|
.badge.green{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.3);color:#4ade80}
|
|
29249
29375
|
pre{background:#050d1a;border:1px solid #1e293b;border-radius:6px;padding:12px;overflow-x:auto;font-family:monospace;font-size:12px;color:#a5b4fc;margin-top:8px}
|
|
29250
|
-
.note{font-size:11px;color:#64748b;margin-top:8px;padding:8px 10px;background:#0a0f1e;border-radius:6px;border-left:3px solid #334155}`;function
|
|
29376
|
+
.note{font-size:11px;color:#64748b;margin-top:8px;padding:8px 10px;background:#0a0f1e;border-radius:6px;border-left:3px solid #334155}`;function dn(t){return t.replace(/</g,"<").replace(/>/g,">")}var Lr="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Crect width='32' height='32' rx='7' fill='%232563eb'/%3E%3Crect x='7' y='13' width='3.5' height='10' rx='1.5' fill='white' opacity='.75'/%3E%3Crect x='12.25' y='8.5' width='3.5' height='15' rx='1.5' fill='white'/%3E%3Crect x='17.5' y='14.5' width='3.5' height='8' rx='1.5' fill='white' opacity='.75'/%3E%3Crect x='22.5' y='11' width='2.5' height='11' rx='1.25' fill='white' opacity='.85'/%3E%3C/svg%3E";function nt(t,e){return`<!DOCTYPE html>
|
|
29251
29377
|
<html lang="en">
|
|
29252
|
-
<head><meta charset="UTF-8"><title>Vibeflow \u2014 Inject Overlay</title><link rel="icon" type="image/svg+xml" href="${
|
|
29378
|
+
<head><meta charset="UTF-8"><title>Vibeflow \u2014 Inject Overlay</title><link rel="icon" type="image/svg+xml" href="${Lr}"><style>${Nr}</style></head>
|
|
29253
29379
|
<body>
|
|
29254
29380
|
<h1>Vibeflow \u2014 Inject Overlay</h1>
|
|
29255
|
-
<p style="margin-top:6px">${
|
|
29381
|
+
<p style="margin-top:6px">${t}</p>
|
|
29256
29382
|
${e.join(`
|
|
29257
29383
|
`)}
|
|
29258
|
-
</body></html>`}function
|
|
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>
|
|
29259
29385
|
<div class="card"><p>Drag this link to your bookmarks bar, then click it on any page to activate the overlay:</p>
|
|
29260
|
-
<a class="bookmarklet" href="${
|
|
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>
|
|
29261
29387
|
<div class="note">\u2705 Works on pages with strict Content-Security-Policy (uses fetch + eval instead of <script src>).<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>
|
|
29262
29388
|
<div class="card"><p>Open browser DevTools console on your target page and paste:</p>
|
|
29263
|
-
<pre>${
|
|
29389
|
+
<pre>${dn(k)}</pre>
|
|
29264
29390
|
<div class="note">\u2705 Works on most pages \u2014 uses fetch + eval which respects <code>connect-src https:</code> and <code>unsafe-eval</code>.</div></div>`,`<h2>Option 3 \u2014 Script tag</h2>
|
|
29265
29391
|
<div class="card"><p>Add this tag to your HTML (before <code></body></code>):</p>
|
|
29266
|
-
<pre>${
|
|
29267
|
-
<div class="note">Requires your CSP to allow loading scripts from <code>${
|
|
29392
|
+
<pre>${dn(w)}</pre>
|
|
29393
|
+
<div class="note">Requires your CSP to allow loading scripts from <code>${i}</code>. Suitable when you control the page's HTML.</div></div>`]))});return}let s=`http://localhost:${e}/vibeflow-overlay.js`,o=r?` data-board-id="${r}"`:"",a=`<script src="${s}" data-vibeflow-overlay${o}></script>`,c=r?`s.setAttribute('data-board-id','${r}');`:"",l=`javascript:(function(){if(document.getElementById('vibeflow-studio-root')){alert('Vibeflow overlay is already active on this page.');}else{var s=document.createElement('script');s.src='${s}';s.setAttribute('data-vibeflow-overlay','');${c}document.head.appendChild(s);}})()`;t.get("/inject",(u,C)=>{C.type("html").send(nt("Add the Vibeflow overlay to any page without modifying source code.",[`<h2>Option 1 \u2014 Bookmarklet <span class="badge">recommended</span></h2>
|
|
29268
29394
|
<div class="card"><p>Drag this link to your bookmarks bar, then click it on any page to activate the overlay:</p>
|
|
29269
|
-
<a class="bookmarklet" href="${
|
|
29395
|
+
<a class="bookmarklet" href="${l}"><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>
|
|
29270
29396
|
<div class="note">\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 Script tag</h2>
|
|
29271
29397
|
<div class="card"><p>Add this tag to your HTML (before <code></body></code>):</p>
|
|
29272
|
-
<pre>${
|
|
29398
|
+
<pre>${dn(a)}</pre>
|
|
29273
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>
|
|
29274
29400
|
<div class="card"><p>Open browser DevTools console and paste:</p>
|
|
29275
|
-
<pre>var s=document.createElement('script');s.src='${
|
|
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.
|
|
29276
29402
|
To annotate an existing app, run: proto serve (API-only mode)
|
|
29277
|
-
Then install the Chrome extension and navigate to your app.`);let r=
|
|
29278
|
-
`);
|
|
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>
|
|
29279
29405
|
<style>body{font-family:system-ui;max-width:600px;margin:40px auto;padding:0 20px}
|
|
29280
29406
|
a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}
|
|
29281
29407
|
li{margin:8px 0}</style></head>
|
|
29282
29408
|
<body><h1>Vibeflow Studio</h1>
|
|
29283
29409
|
<p>Select a prototype to review:</p>
|
|
29284
|
-
<ul>${
|
|
29285
|
-
Push them to your board now? [Y/n]: `),async
|
|
29286
|
-
Login timed out. Please try again.`)),process.exit(1)}import
|
|
29287
|
-
Uploading ${o} file(s) (${
|
|
29288
|
-
`),{uploaded:l,failed:u,failedFiles:y}}async function pt(n,e){let r=Rr(n),s=await z();if(!s&&(console.log(H.yellow(" Not logged in. Starting login flow...")),await Fe(),s=await z(),!s)){console.error(H.red(" Login failed. Please run `vibeflow login` and try again.")),process.exitCode=1;return}let i=se(r);if(i.length===0){console.log(H.dim(" No local tasks found. Nothing to push."));return}console.log(H.cyan(` Found ${i.length} local task(s). Pushing to SaaS...`));let o=Lr(),a=e.workspace;if(!a){let m=await G();m&&(a=m.id,console.log(H.dim(` Using board: ${m.icon??""} ${m.name}`)))}let l={tasks:i};a&&(l.workspaceId=a);let u;try{let m=await fetch(`${o}/api/cli/import`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(l)});if(!m.ok){let T=await m.json().catch(()=>({}));console.error(H.red(` Import failed: ${m.status} ${T.error??m.statusText}`)),process.exitCode=1;return}u=await m.json()}catch(m){let T=m instanceof Error?m.message:String(m);console.error(H.red(` Network error: ${T}`)),process.exitCode=1;return}console.log(H.green(` \u2713 Pushed ${u.imported} task(s) to SaaS`)),u.skipped&&u.skipped>0&&console.log(H.dim(` Skipped ${u.skipped} already-imported task(s).`));let d=(await G())?.name??u.workspaceId;console.log(H.dim(` Board: ${d}`));let h=u.idMap??{},y=i.filter(m=>m.id&&h[m.id]).map(m=>({localId:m.id,remoteId:h[m.id]})),{uploaded:k,failed:v,failedFiles:x}=await Ar(o,s,r,y);if(k>0&&console.log(H.green(` \u2713 Uploaded ${k} file(s) to storage`)),v>0){console.log(H.yellow(` \u26A0 ${v} file(s) failed to upload`));for(let m of x)console.log(H.dim(` - ${m.name}: ${m.reason}`))}if(e.keepLocalFiles){console.log(H.dim(" Local task files kept (--keep-local-files)."));return}let N=0;for(let m of i)try{Ir(m.filePath),N++}catch{}console.log(H.dim(` Deleted ${N} local task file(s).`))}var Or="http://localhost:3000";function Le(){return process.env.SPOTA_API_URL??Or}var Mr={backlog:"backlog",todo:"todo","in-progress":"in_progress",review:"review",done:"done"},Hr={backlog:"backlog",todo:"todo",in_progress:"in-progress",review:"review",done:"done",cancelled:"done"};function ue(n){return Hr[n]??"todo"}function Ur(n){return Mr[n]??"todo"}async function De(){let n=await z();return n?{Authorization:`Bearer ${n}`}:null}async function xe(n){let e=await De();if(!e)return null;let r=new URL(`${Le()}/api/cli/tasks`);n&&r.searchParams.set("boardId",n);try{let s=await fetch(r.toString(),{headers:e});return s.ok?s.json():null}catch{return null}}async function ft(n){let e=await xe();return e?e.tasks.find(r=>r.id===n)??null:null}async function mt(n,e){let r=await De();if(!r)return null;let s={};e.status!==void 0&&(s.status=Ur(e.status)),e.title!==void 0&&(s.title=e.title),e.description!==void 0&&(s.description=e.description),e.priority!==void 0&&(s.priority=e.priority);try{let i=await fetch(`${Le()}/api/cli/tasks/${encodeURIComponent(n)}`,{method:"PATCH",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(s)});if(!i.ok)return null;let o=await i.json();return{task:o.task,warning:o.warning}}catch{return null}}async function gt(n,e){let r=await De();if(!r)return null;try{let s=await fetch(`${Le()}/api/cli/tasks/${encodeURIComponent(n)}/comments`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({body:e})});return s.ok?(await s.json()).comment:null}catch{return null}}async function ht(n){let e=await De();if(!e)return null;try{let r=await fetch(`${Le()}/api/cli/tasks`,{method:"POST",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify(n)});return r.ok?(await r.json()).task:null}catch{return null}}import{readFileSync as rn,existsSync as on,unlinkSync as jr}from"fs";import{resolve as B,join as vt,basename as yt}from"path";import t from"chalk";function $r(n,e){let r=d=>d.replace(/[^0-9.]/g,"").split(".").map(Number),[s=0,i=0,o=0]=r(n),[a=0,l=0,u=0]=r(e);return s!==a?s>a:i!==l?i>l:o>u}function zr(){let n="0.1.2";if(!n)return;let e="@vibeflow-tools/cli";import("https").then(({default:r})=>{let s=r.get(`https://registry.npmjs.org/${encodeURIComponent(e)}/latest`,{timeout:5e3},i=>{let o="";i.on("data",a=>{o+=a.toString()}),i.on("end",()=>{try{let{version:a}=JSON.parse(o);a&&$r(a,n)&&(console.log(),console.log(t.bgYellow.black.bold(` \u2191 Update available: ${n} \u2192 ${a} `)),console.log(t.dim(" Run: ")+t.cyan(`npm install -g ${e}@${a}`)+t.dim(" to update")),console.log())}catch{}})});s.on("error",()=>{}),s.on("timeout",()=>{s.destroy()})}).catch(()=>{})}ut();var de={backlog:t.gray,todo:t.yellow,"in-progress":t.blue,review:t.magenta,done:t.green},Br=new Set(["Task","Bug","Research"]);function Vr(n){if(n){for(let e of Br)if(e.toLowerCase()===n.toLowerCase())return e}}function Ae(n){let e=(n??"Medium").trim().toLowerCase();return e==="critical"?0:e==="high"?1:e==="low"?3:2}function bt(n){try{return Me("git",["push"],{cwd:n,stdio:"inherit"}),{ok:!0}}catch{try{let e=an("git rev-parse --abbrev-ref HEAD",{cwd:n}).toString().trim();return Me("git",["push","--set-upstream","origin",e],{cwd:n,stdio:"inherit"}),{ok:!0}}catch(e){return{ok:!1,error:(e instanceof Error?e.message:String(e)).slice(0,220)}}}}function Oe(n){let{autoCommit:e,autoPush:r,autoComment:s,createBranch:i}=n;if(console.log(t.bold("Agent instructions (concise):")),console.log(t.dim(" Discover: vibeflow tasks --status todo | vibeflow tasks --type Research | vibeflow tasks --user <email>")),console.log(t.dim(" Details: vibeflow tasks --get <id> (full task info with comments and files)")),console.log(t.dim(' Create: vibeflow tasks --add --title "..." --description "..."')),console.log(),console.log(t.dim(" Workflow:")),console.log(t.yellow(" \u26A0 IMMEDIATELY set in-progress BEFORE any implementation work:")),console.log(t.dim(" 1. vibeflow tasks --edit <id> --set-status in-progress \u2190 DO THIS FIRST")),console.log(t.dim(" 2. <implement the change>")),e){console.log(t.dim(" 3. git add <files> (stage your changes first)"));let o=["--set-status review"];e&&o.push('--commit-message "<one-line summary>"'),s&&o.push('--comment "<report>"'),console.log(t.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`)),console.log(t.dim(" CLI will commit staged changes and link the commit SHA automatically."))}else{console.log(t.dim(' 3. git add <files> && vibeflow tasks --commit --task <id> --message "<one-line summary>"'));let o=["--set-status review"];s&&o.push('--comment "<report>"'),console.log(t.dim(` 4. vibeflow tasks --edit <id> ${o.join(" ")}`))}s&&(console.log(t.dim("")),console.log(t.dim(" Comment format (--comment):")),console.log(t.dim(" \xB7 Plain text for concise one-liners.")),console.log(t.dim(" \xB7 Markdown for multi-section reports. Use **bold**, bullet lists, code fences.")),console.log(t.dim(" \xB7 Must cover: what changed, why, key decisions, anything future agents should know.")),console.log(t.dim(" \xB7 For long reports, attach a .md file and reference it in the comment."))),console.log(),e&&console.log(t.dim(" [setting] Auto-commit ON: provide --commit-message when setting status to review; CLI commits.")),r&&console.log(t.dim(" [setting] Auto-push ON: CLI pushes after the commit automatically.")),s&&console.log(t.dim(" [setting] Auto-comment ON: --comment is required when setting status to review.")),i&&(console.log(t.dim(" [setting] Create branch ON: after ALL tasks in this session are done, create and push a descriptive branch:")),console.log(t.dim(" git checkout -b <short-name> (e.g. fix/annotation-errors, feat/eye-toggle, chore/cleanup-extension)")),console.log(t.dim(" git push -u origin HEAD")),console.log(t.dim(" Branch name rules: lowercase, kebab-case, 2-5 words, prefix fix/feat/chore/docs.")),console.log(t.dim(" Describe the WORK done (not dates). Bad: agent/2026-04-16. Good: fix/bug-errors-visibility."))),n.hasResearchTasks&&(console.log(t.dim(" Research tasks: NEVER generate code \u2014 research only.")),console.log(t.dim(" Attach a .md report before marking Research tasks as review.")),console.log(t.dim(" CLI ENFORCES: cannot mark Research as review without an attached .md report.")),console.log(t.dim(" Use --report-file <path> to upload your .md report when marking as review:")),console.log(t.dim(' vibeflow tasks --edit <id> --set-status review --report-file ./report.md --comment "..."')),console.log(t.dim(" The file is uploaded to the task and deleted from the local filesystem automatically."))),n.hasBugTasks&&(console.log(t.dim(" Bug tasks: Include error logs / stack traces in the commit comment.")),console.log(t.dim(" Describe: the symptom, the console error, what triggered it, and how it was fixed."))),console.log(t.red(" CRITICAL: NEVER edit .vibeflow/ task files directly.")),console.log(t.dim(" All task operations (status, comments, commits) must go through CLI commands.")),console.log(t.red(" CRITICAL: Set in-progress BEFORE reading/planning. Other agents may pick the same task.")),console.log(t.dim(" The in-progress transition signals ownership. Skip it and another agent may duplicate your work.")),console.log(t.dim(" Sequence: discover tasks \u2192 pick one \u2192 set in-progress \u2192 THEN read details and implement.")),console.log(t.red(' CRITICAL: NEVER set a task status to "done".')),console.log(t.dim(' When your implementation is complete, set the status to "review" \u2014 not "done".')),console.log(t.dim(" Only humans can mark tasks as done after reviewing the work.")),console.log(t.dim(" The CLI will warn you and still allow the change \u2014 but agents must not use it.")),console.log()}var re=new Wr;re.name("vibeflow").description("Vibeflow \u2014 CLI tool for frontend prototyping with LLM assistance").version("0.1.2");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",`
|
|
29289
29415
|
${"\u2500".repeat(60)}
|
|
29290
29416
|
For coding agents \u2014 quick reference:
|
|
29291
29417
|
|
|
29292
29418
|
vibeflow tasks List all tasks
|
|
29293
29419
|
vibeflow tasks --status todo Filter to open tasks
|
|
29420
|
+
vibeflow tasks --tag <tag> Filter by tag (repeatable for AND)
|
|
29294
29421
|
vibeflow tasks --get <id> Full task details
|
|
29295
29422
|
vibeflow tasks --edit <id> --set-status in-progress
|
|
29296
29423
|
vibeflow serve [target] Start local server / prototype viewer
|
|
@@ -29316,16 +29443,20 @@ File attachments:
|
|
|
29316
29443
|
<file binary body>
|
|
29317
29444
|
List: GET /api/tasks/<id>/files
|
|
29318
29445
|
Delete: DELETE /api/tasks/<id>/files/<filename>
|
|
29319
|
-
`);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("--no-open","Do not open browser automatically").action(async(
|
|
29320
|
-
`))console.log(
|
|
29321
|
-
`))console.log(
|
|
29322
|
-
`))console.log(
|
|
29323
|
-
`))console.log(
|
|
29324
|
-
`))console.log(
|
|
29325
|
-
`))console.log(t.dim(` \u2502 ${K}`));console.log(t.dim(" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"))}catch{}}}let P=X(I),$=(p.type??"").toLowerCase()==="research",J=(p.type??"").toLowerCase()==="bug";Oe({hasResearchTasks:$,hasBugTasks:J,autoCommit:P.autoCommit,autoPush:P.autoPush,autoComment:P.autoComment,createBranch:P.createBranch});return}if(e.add){if(!e.title?.trim()){console.log(t.red("\u2717 --title is required with --add")),console.log(t.dim(' Example: vibeflow tasks --add --title "Fix CTA spacing" --description "Button overflows on mobile"')),process.exitCode=1;return}if(await he()==="saas"){let E=await G(),f=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",F=un(),P=await ht({id:F,title:e.title.trim(),description:e.description?.trim(),status:f,boardId:E?.id});if(!P){console.log(t.red("\u2717 Failed to create task in online board.")),console.log(t.yellow(" Check your connection or run 'vibeflow login'.")),process.exitCode=1;return}e.json?console.log(JSON.stringify(P,null,2)):(console.log(t.green(`\u2713 Task created: ${P.title}`)),console.log(t.dim(` id: ${P.id} | status: ${ue(P.status)}`)));return}let I=B(n);be(I);let O=["backlog","todo","in-progress","review","done"].includes(e.setStatus??"")?e.setStatus:"todo",p=me(I,{title:e.title.trim(),description:e.description?.trim()??"",status:O,selector:"/"});e.json?console.log(JSON.stringify(p,null,2)):(console.log(t.green(`\u2713 Task created: ${p.title}`)),console.log(t.dim(` id: ${p.id} | status: ${p.status}`)));return}if(e.commit){if(!e.task){console.log(t.red("\u2717 --task <task-id> is required with --commit")),console.log(t.dim(' Example: vibeflow tasks --commit --task abc12345 --message "fix button alignment"')),process.exitCode=1;return}let c=B(n),S=Q(c).find(E=>E.id===e.task||E.id.startsWith(e.task));if(!S){console.log(t.red(`\u2717 Task not found: ${e.task}`)),console.log(t.dim(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}let O=e.message?.trim()||S.title;(S.type??"").toLowerCase()==="research"&&(console.log(t.yellow("\u26A0 WARNING: This is a Research task. Research tasks must NOT produce code changes.")),console.log(t.yellow(" Only commit research report files (.md). Do not commit code changes.")),console.log());let p=`${O} [proto:${S.id}]`;try{Me("git",["commit","-m",p],{cwd:c,stdio:"inherit"});let E=an("git rev-parse HEAD",{cwd:c}).toString().trim(),b={sha:E,message:O,timestamp:new Date().toISOString()},f=S.commits??[];if(U(c,S.id,{commits:[...f,b]}),console.log(t.green(`\u2713 Committed and linked to task: ${S.title}`)),console.log(t.dim(` commit: ${E}`)),console.log(t.dim(` proto: ${S.id}`)),X(c).autoPush){console.log(t.dim(" auto-push: pushing commit to remote..."));let P=bt(c);P.ok?console.log(t.green("\u2713 Auto-push complete")):(console.log(t.yellow("\u26A0 Auto-push failed. Commit is local; run 'git push' manually.")),P.error&&console.log(t.dim(` reason: ${P.error}`)))}}catch{console.log(t.red("\u2717 git commit failed \u2014 ensure changes are staged with 'git add'")),process.exitCode=1}return}if(e.edit!==void 0){let c=typeof e.edit=="string"?e.edit:void 0,I=e.title||e.setStatus||e.description;if(!c||!I){if(e.type&&!a(e.type))return;let b=Q(n);if(e.status&&(b=b.filter(f=>f.status===e.status)),e.type&&(b=b.filter(f=>(f.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,b))return;if(e.user&&(b=b.filter(f=>i(f.author,e.user))),console.log(t.bold("vibeflow tasks --edit \u2014 LLM Usage Instructions")),console.log(),console.log("Edit a task:"),console.log(t.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(t.dim(" vibeflow tasks --edit abc12345 --set-status done")),console.log(t.dim(" vibeflow tasks --edit abc12345 --set-status in-progress")),console.log(t.dim(' vibeflow tasks --edit abc12345 --title "Updated title" --description "More detail"')),console.log(),b.length===0)console.log(t.dim("No tasks found."));else{console.log("Available tasks:");for(let f of b){let F=de[f.status]??t.white;console.log(` ${F(`[${f.status}]`)} ${t.bold(f.id)} \u2014 ${f.title}`)}}return}let S=["backlog","todo","in-progress","review","done"];if(e.setStatus==="done"&&(console.log(t.yellow('\u26A0 WARNING: Agents should NEVER set a task status to "done".')),console.log(t.yellow(" Only humans should mark tasks as done after reviewing.")),console.log(t.dim(" If you are an agent, use --set-status review instead.")),console.log()),e.setStatus&&!S.includes(e.setStatus)){console.log(t.red(`\u2717 Invalid status: "${e.setStatus}"`)),console.log(t.yellow(` Valid statuses: ${S.join(" | ")}`)),console.log(t.dim(` Example: vibeflow tasks --edit ${c} --set-status in-progress`)),process.exitCode=1;return}if(e.setStatus==="review"&&!e.comment?.trim()){console.log(t.red("\u2717 --comment is required when setting status to review")),console.log(t.dim(" Provide a concise implementation report explaining:")),console.log(t.dim(" \xB7 what was changed and why")),console.log(t.dim(" \xB7 key decisions and trade-offs")),console.log(t.dim(" \xB7 anything future agents should know")),console.log(t.dim(` Example: vibeflow tasks --edit ${c} --set-status review --comment "Implemented X by doing Y. Key decision: Z."`)),process.exitCode=1;return}let O=await he();if(e.setStatus==="review"){let b=B(n),f=X(b);if(f.autoComment&&!e.comment?.trim()){console.log(t.red("\u2717 --comment is required (auto-comment setting is ON)")),console.log(t.dim(" Provide: what changed, why, key decisions, anything future agents should know.")),console.log(t.dim(" Plain text for short notes; Markdown for multi-section reports.")),console.log(t.dim(` Example: vibeflow tasks --edit ${c} --set-status review --comment "Implemented X by doing Y."`)),process.exitCode=1;return}if(f.autoCommit&&!e.commitMessage?.trim()){console.log(t.red("\u2717 --commit-message is required (auto-commit setting is ON)")),console.log(t.dim(" Stage your changes first, then provide a one-line commit summary.")),console.log(t.dim(` Example: vibeflow tasks --edit ${c} --set-status review --commit-message "fix: add hover effect" --comment "..."`)),process.exitCode=1;return}}if(O==="saas"){let b={};if(e.setStatus&&(b.status=e.setStatus),e.title&&(b.title=e.title),e.description&&(b.description=e.description),e.setStatus==="in-progress"){let F=await ft(c);if(F&&ue(F.status)==="in-progress"){let P=F.author??"another user";console.log(t.yellow(`\u26A0 Task is already in-progress (last updated by: ${P})`)),console.log(t.yellow(" Another agent or user may be working on this task.")),console.log(t.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}let f=await mt(c,b);if(!f){console.log(t.red(`\u2717 Failed to update task: ${c}`)),console.log(t.yellow(" Ensure you are connected and the task ID exists in the online board.")),process.exitCode=1;return}f.warning&&console.log(t.yellow(`\u26A0 Server warning: ${f.warning}`)),e.setStatus==="review"&&e.comment?.trim()&&await gt(c,e.comment.trim())&&console.log(t.dim(" comment: added")),console.log(t.green(`\u2713 Task updated: ${f.task.title}`)),console.log(t.dim(` id: ${f.task.id} | status: ${ue(f.task.status)}`));return}let p={};if(e.title&&(p.title=e.title),e.setStatus&&(p.status=e.setStatus),e.description&&(p.description=e.description),e.setStatus==="in-progress"){let b=B(n),F=Q(b).find(P=>P.id===c||P.id.startsWith(c));if(F&&((F.type??"").toLowerCase()==="research"&&(console.log(t.yellow("\u26A0 WARNING: This is a Research task. Policy: do NOT implement code.")),console.log(t.yellow(" Research only \u2014 attach a .md report file, leave a summary comment, mark as review.")),console.log()),F.status==="in-progress")){let P=F.updated?new Date(F.updated).toLocaleString():"unknown",$=F.author??"another user";console.log(t.yellow(`\u26A0 Task is already in-progress (author: ${$}, last updated: ${P})`)),console.log(t.yellow(" Another agent or user may be working on this task.")),console.log(t.yellow(" Proceeding \u2014 but verify the task is not being worked on elsewhere.")),console.log()}}if(e.setStatus==="review"){let b=B(n),F=Q(b).find(P=>P.id===c||P.id.startsWith(c));if(F&&(F.type??"").toLowerCase()==="research"){if(e.reportFile){let P=B(e.reportFile);if(!on(P)){console.log(t.red(`\u2717 Report file not found: ${P}`)),process.exitCode=1;return}if(!/\.md$/i.test(P)){console.log(t.red("\u2717 Report file must be a Markdown (.md) file")),process.exitCode=1;return}let $=rn(P),{saveFile:J}=await import("./files-UWZP7P6B.js");J(b,F.id,yt(P),$),jr(P),console.log(t.green(`\u2713 Report uploaded: ${yt(P)} (local file removed)`))}else if(!ee(b,F.id).some(J=>/\.md$/i.test(J.name))){console.log(t.red("\u2717 Cannot mark Research task as review: no .md report file attached.")),console.log(t.dim(" Provide a research report:")),console.log(t.dim(` vibeflow tasks --edit ${c} --set-status review --report-file ./my-research.md --comment "..."`)),process.exitCode=1;return}}}let E=U(n,c,p);if(!E){console.log(t.red(`\u2717 Task not found: ${c}`)),console.log(t.yellow(" Run 'vibeflow tasks' to see available task IDs.")),process.exitCode=1;return}if(e.setStatus==="review"&&e.comment?.trim()&&(ce(B(n),c,"agent",e.comment.trim()),console.log(t.dim(" comment: added"))),console.log(t.green(`\u2713 Task updated: ${E.title}`)),console.log(t.dim(` id: ${E.id} | status: ${E.status}`)),e.setStatus==="review"){let b=B(n),f=X(b);if(f.autoCommit&&e.commitMessage?.trim()){let P=Q(b).find($=>$.id===c||$.id.startsWith(c));if(P){let $=`${e.commitMessage.trim()} [proto:${P.id}]`;try{Me("git",["commit","-m",$],{cwd:b,stdio:"inherit"});let J=an("git rev-parse HEAD",{cwd:b}).toString().trim(),R={sha:J,message:e.commitMessage.trim(),timestamp:new Date().toISOString()},C=P.commits??[];if(U(b,P.id,{commits:[...C,R]}),console.log(t.green(`\u2713 Committed: ${$}`)),console.log(t.dim(` sha: ${J}`)),f.autoPush){console.log(t.dim(" pushing..."));let _=bt(b);_.ok?console.log(t.green("\u2713 Pushed")):(console.log(t.yellow("\u26A0 Push failed. Run 'git push' manually.")),_.error&&console.log(t.dim(` reason: ${_.error}`)))}}catch{console.log(t.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(t.red(`\u2717 Invalid status filter: "${e.status}"`)),console.log(t.yellow(` Valid statuses: ${u.join(" | ")}`)),console.log(t.dim(" Example: vibeflow tasks --status todo")),process.exitCode=1;return}if(e.type&&!a(e.type))return;if(await he()==="saas"){let c=await G(),I=await xe(c?.id);if(!I){console.log(t.red("\u2717 Unable to reach the online backend.")),console.log(t.yellow(" Check your connection or run 'vibeflow login' if your session expired.")),process.exitCode=1;return}let S=I.tasks.map(f=>({...f,status:ue(f.status)}));if(e.status&&(S=S.filter(f=>f.status===e.status)),e.type&&(S=S.filter(f=>(f.type??"Task").toLowerCase()===e.type.toLowerCase())),e.user&&!l(e.user,S))return;e.user&&(S=S.filter(f=>i(f.author,e.user)));let O=e.limit!==void 0?parseInt(e.limit,10):20;if(!isNaN(O)&&O>0&&(S=S.slice(0,O)),e.json){console.log(JSON.stringify(S,null,2));return}let p=S.some(f=>(f.type??"").toLowerCase()==="research"),E=S.some(f=>(f.type??"").toLowerCase()==="bug"),b=X(B(n));if(Oe({hasResearchTasks:p,hasBugTasks:E,autoCommit:b.autoCommit,autoPush:b.autoPush,autoComment:b.autoComment,createBranch:b.createBranch}),S.length===0)console.log(t.dim("No tasks found."));else{S=S.sort((C,_)=>{let K=Ae(C.priority??void 0)-Ae(_.priority??void 0);return K!==0?K:new Date(_.updatedAt).getTime()-new Date(C.updatedAt).getTime()});for(let C of S){let _=de[C.status]??t.white,K=Vr(C.type);if(console.log(` ${_(`[${C.status}]`)} ${C.title}`),console.log(t.dim(` id: ${C.id}`)),console.log(t.dim(" selector: /")),K&&console.log(t.dim(` type: ${K}`)),C.priority&&console.log(t.dim(` priority: ${C.priority}`)),console.log(t.dim(` created: ${C.createdAt}`)),C.description){console.log(t.dim(" description:"));for(let V of C.description.split(`
|
|
29326
|
-
`))console.log(
|
|
29327
|
-
`))console.log(
|
|
29328
|
-
`))console.log(
|
|
29329
|
-
`))console.log(t.dim(` ${E}`))}if(p.structuredComments&&p.structuredComments.length>0){console.log(t.dim(` comments (${p.structuredComments.length}):`));for(let E of p.structuredComments){let b=E.updatedAt?` (edited ${E.updatedAt})`:"";console.log(t.dim(` [${E.author??"agent"}] ${E.createdAt}${b}`));for(let f of E.text.split(`
|
|
29330
|
-
`))console.log(
|
|
29331
|
-
`))console.log(
|
|
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();
|