pipe-kan 0.30.0 → 0.30.1

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 CHANGED
@@ -12,7 +12,7 @@ npx pipe-kan
12
12
 
13
13
  Opens `http://127.0.0.1:5173`. No clone, no `bun install`. `bunx` / `npx` installs the published package into a cache and runs it.
14
14
 
15
- First paint is the Fixture. If `jira` is on PATH, the process then Refresh-es from your existing `jira init`. If not, Refresh, Move, Create, and Edit use the in-process store.
15
+ If `--plane` is set, first paint is live Refresh. A failed live Refresh stays in Plane mode and keeps the last live Board, with the error on the Board. If live Refresh never succeeded, the Fixture is not shown. If `jira` is on PATH and `--plane` is off, first paint is the Fixture, then Refresh from your existing `jira init`. If `jira` is missing and `--plane` is off, first paint is the Fixture and Refresh, Move, Create, and Edit use the in-process store.
16
16
 
17
17
  The published CLI is on npm. From a clone: `bun run build && bun dist/pipe-kan.js`.
18
18
 
@@ -68,6 +68,8 @@ On Refresh:
68
68
 
69
69
  Create and Edit use Plane REST when `--plane` is set. Pulse, Plane Pro, scraping, and SQL workspace moves are out of scope.
70
70
 
71
+ A Plane `429 RATE_LIMIT_EXCEEDED` does not fall back to Fake Jira. Plane waits the rate-limit window, then continues.
72
+
71
73
  ## Multiple projects
72
74
 
73
75
  Default Scope is one Project — jira-cli's `jira init` project. To list more than one Project key:
package/dist/pipe-kan.js CHANGED
@@ -1231,6 +1231,8 @@ function createApp(opts) {
1231
1231
  let childrenRaw = [];
1232
1232
  let hasChildrenCache = false;
1233
1233
  let childrenError;
1234
+ let refreshError;
1235
+ let live = false;
1234
1236
  let targetEndFieldId = readTargetEndFieldMap(fieldMapPath).targetEnd ?? targetEndFieldIdFromJiraConfig(safeRead(jiraConfigPath) ?? "");
1235
1237
  let workflowStates;
1236
1238
  function boardOpts() {
@@ -1330,11 +1332,13 @@ function createApp(opts) {
1330
1332
  childrenRaw = mergeSelectedChildren(childrenRaw, hydrated, keys);
1331
1333
  hasChildrenCache = true;
1332
1334
  childrenError = undefined;
1335
+ refreshError = undefined;
1333
1336
  return app.board();
1334
1337
  } catch (err) {
1335
1338
  const message = err instanceof Error ? err.message : "Refresh failed";
1339
+ refreshError = message;
1336
1340
  console.error("Refresh failed", message);
1337
- return { ...app.board(), error: message };
1341
+ return app.board();
1338
1342
  }
1339
1343
  }
1340
1344
  async function tryMove(key, status) {
@@ -1350,12 +1354,21 @@ function createApp(opts) {
1350
1354
  return flags;
1351
1355
  },
1352
1356
  board() {
1357
+ const error = refreshError ?? childrenError;
1358
+ if (!live && (refreshError || opts.liveBackend)) {
1359
+ const empty = toBoard([]);
1360
+ return {
1361
+ columns: empty.columns,
1362
+ epics: [],
1363
+ ...error ? { error } : {}
1364
+ };
1365
+ }
1353
1366
  const board = toBoard(payload);
1354
1367
  return {
1355
1368
  columns: board.columns,
1356
1369
  epics: mergeEpics(toBoard(epicsPayload).epics, board.epics),
1357
1370
  ...hasChildrenCache ? { children: columnsOf(childrenRaw, targetEndFieldId) } : {},
1358
- ...childrenError ? { error: childrenError } : {}
1371
+ ...error ? { error } : {}
1359
1372
  };
1360
1373
  },
1361
1374
  hydrate(raw, hydrateOpts) {
@@ -1364,6 +1377,8 @@ function createApp(opts) {
1364
1377
  childrenRaw = [];
1365
1378
  hasChildrenCache = false;
1366
1379
  childrenError = undefined;
1380
+ refreshError = undefined;
1381
+ live = false;
1367
1382
  if (hydrateOpts?.fromStore)
1368
1383
  cacheFromStore();
1369
1384
  rememberTargetEndId([...payload, ...epicsPayload, ...childrenRaw]);
@@ -1417,11 +1432,14 @@ function createApp(opts) {
1417
1432
  childrenRaw = nextHasCache ? await hydrateRaw(nextChildren) : nextChildren;
1418
1433
  hasChildrenCache = nextHasCache;
1419
1434
  childrenError = nextError;
1435
+ refreshError = undefined;
1436
+ live = true;
1420
1437
  return app.board();
1421
1438
  } catch (err) {
1422
1439
  const message = err instanceof Error ? err.message : "Refresh failed";
1440
+ refreshError = message;
1423
1441
  console.error("Refresh failed", message);
1424
- return { ...app.board(), error: message };
1442
+ return app.board();
1425
1443
  }
1426
1444
  },
1427
1445
  async children(epic) {
@@ -1495,7 +1513,6 @@ function createApp(opts) {
1495
1513
  var DEFAULT_PLANE_HOST = "https://plane.tail48fe8.ts.net";
1496
1514
  var DEFAULT_PLANE_WORKSPACE = "personal";
1497
1515
  var STATE_GROUPS = ["backlog", "unstarted", "started", "completed", "cancelled"];
1498
- var RETRY_LIMIT2 = 4;
1499
1516
  function planeHost(env = process.env) {
1500
1517
  return (env.PLANE_HOST ?? DEFAULT_PLANE_HOST).replace(/\/$/, "");
1501
1518
  }
@@ -1696,6 +1713,30 @@ function queryPath(path, query) {
1696
1713
  return path;
1697
1714
  return `${path}${path.includes("?") ? "&" : "?"}${encoded}`;
1698
1715
  }
1716
+ function rateLimitWaitMs(headers, nowMs, on429) {
1717
+ const retryAfter = headers.get("Retry-After");
1718
+ if (retryAfter) {
1719
+ const seconds = Number(retryAfter.trim());
1720
+ if (Number.isFinite(seconds) && seconds >= 0)
1721
+ return seconds * 1000;
1722
+ const parsed = Date.parse(retryAfter);
1723
+ if (!Number.isNaN(parsed))
1724
+ return Math.max(0, parsed - nowMs);
1725
+ }
1726
+ const reset = headers.get("X-RateLimit-Reset");
1727
+ if (reset) {
1728
+ const n = Number(reset.trim());
1729
+ if (Number.isFinite(n)) {
1730
+ const resetMs = n < 1000000000000 ? n * 1000 : n;
1731
+ return Math.max(0, resetMs - nowMs);
1732
+ }
1733
+ }
1734
+ if (on429)
1735
+ return 60000;
1736
+ if (headers.get("X-RateLimit-Remaining")?.trim() === "0")
1737
+ return 60000;
1738
+ return 0;
1739
+ }
1699
1740
  function errorMessage(status, body) {
1700
1741
  try {
1701
1742
  const parsed = JSON.parse(body);
@@ -1718,33 +1759,63 @@ function createPlaneCli(opts) {
1718
1759
  const apiBase = planeApiBase(host);
1719
1760
  const defaultFlags = opts.flags ?? DEFAULT_FLAGS;
1720
1761
  const fetchFn = opts.fetch ?? fetch;
1721
- const retryDelayMs = opts.retryDelayMs ?? 1000;
1762
+ const nowFn = opts.now ?? Date.now;
1763
+ const sleepFn = opts.sleep ?? ((ms) => ms <= 0 ? Promise.resolve() : new Promise((resolve) => setTimeout(resolve, ms)));
1722
1764
  let lastFlags = defaultFlags;
1723
1765
  let workItemResource = "work-items";
1724
1766
  let catalog;
1725
1767
  function workspaceOf(flags) {
1726
1768
  return planeWorkspace(flags || defaultFlags);
1727
1769
  }
1728
- async function request(path, init = {}, attempt = 0) {
1729
- const headers = new Headers(init.headers);
1730
- headers.set("X-API-Key", opts.apiKey);
1731
- if (init.body && !headers.has("content-type")) {
1732
- headers.set("content-type", "application/json");
1733
- }
1734
- const response = await fetchFn(joinUrl(apiBase, path), { ...init, headers });
1735
- const body = await response.text();
1736
- if (response.status === 429 && attempt < RETRY_LIMIT2) {
1737
- const delay = retryDelayMs * 2 ** attempt;
1738
- if (retryDelayMs)
1739
- await new Promise((resolve) => setTimeout(resolve, delay));
1740
- return request(path, init, attempt + 1);
1741
- }
1742
- if (!response.ok) {
1743
- const error = new Error(errorMessage(response.status, body));
1744
- error.status = response.status;
1745
- throw error;
1746
- }
1747
- return { status: response.status, body };
1770
+ let notBefore = 0;
1771
+ let gate = Promise.resolve();
1772
+ function locked(fn) {
1773
+ const run = gate.then(fn, fn);
1774
+ gate = run.then(() => {
1775
+ return;
1776
+ }, () => {
1777
+ return;
1778
+ });
1779
+ return run;
1780
+ }
1781
+ function fail(status, body) {
1782
+ const error = new Error(errorMessage(status, body));
1783
+ error.status = status;
1784
+ throw error;
1785
+ }
1786
+ function noteHeaders(headers, status) {
1787
+ const remaining = headers.get("X-RateLimit-Remaining")?.trim();
1788
+ if (status !== 429 && remaining !== "0")
1789
+ return;
1790
+ const wait = rateLimitWaitMs(headers, nowFn(), status === 429);
1791
+ notBefore = Math.max(notBefore, nowFn() + wait);
1792
+ }
1793
+ async function request(path, init = {}) {
1794
+ return locked(async () => {
1795
+ let retried = false;
1796
+ while (true) {
1797
+ const headers = new Headers(init.headers);
1798
+ headers.set("X-API-Key", opts.apiKey);
1799
+ if (init.body && !headers.has("content-type")) {
1800
+ headers.set("content-type", "application/json");
1801
+ }
1802
+ const delay = notBefore - nowFn();
1803
+ if (delay > 0)
1804
+ await sleepFn(delay);
1805
+ const response = await fetchFn(joinUrl(apiBase, path), { ...init, headers });
1806
+ const body = await response.text();
1807
+ noteHeaders(response.headers, response.status);
1808
+ if (response.status === 429) {
1809
+ if (retried)
1810
+ fail(response.status, body);
1811
+ retried = true;
1812
+ continue;
1813
+ }
1814
+ if (!response.ok)
1815
+ fail(response.status, body);
1816
+ return { status: response.status, body };
1817
+ }
1818
+ });
1748
1819
  }
1749
1820
  async function requestJson(path, init) {
1750
1821
  const { body } = await request(path, init);
@@ -1853,14 +1924,12 @@ function createPlaneCli(opts) {
1853
1924
  const modules = new Map;
1854
1925
  const columnStates = [];
1855
1926
  for (const project of projects) {
1856
- const [stateRows, labelRows, moduleRows, workRows] = await Promise.all([
1857
- paginate(`/workspaces/${workspace}/projects/${project.id}/states/`),
1858
- paginate(`/workspaces/${workspace}/projects/${project.id}/labels/`),
1859
- paginate(`/workspaces/${workspace}/projects/${project.id}/modules/`),
1860
- withResource((resource) => paginate(queryPath(`/workspaces/${workspace}/projects/${project.id}/${resource}/`, {
1861
- expand: "assignees,labels,state,module"
1862
- })))
1863
- ]);
1927
+ const stateRows = await paginate(`/workspaces/${workspace}/projects/${project.id}/states/`);
1928
+ const labelRows = await paginate(`/workspaces/${workspace}/projects/${project.id}/labels/`);
1929
+ const moduleRows = await paginate(`/workspaces/${workspace}/projects/${project.id}/modules/`);
1930
+ const workRows = await withResource((resource) => paginate(queryPath(`/workspaces/${workspace}/projects/${project.id}/${resource}/`, {
1931
+ expand: "assignees,labels,state,module"
1932
+ })));
1864
1933
  const stateById = new Map;
1865
1934
  for (const row of stateRows) {
1866
1935
  const state = parseState(row);
@@ -1891,11 +1960,11 @@ function createPlaneCli(opts) {
1891
1960
  const missingModules = moduleById.size > 0 && workItems.some((item) => item.module_ids == null && item.modules == null && item.module == null);
1892
1961
  const issueByModule = new Map;
1893
1962
  if (missingModules && moduleById.size) {
1894
- await Promise.all([...moduleById.keys()].map(async (moduleId) => {
1963
+ for (const moduleId of moduleById.keys()) {
1895
1964
  const rows = await paginate(`/workspaces/${workspace}/projects/${project.id}/modules/${moduleId}/module-issues/`);
1896
1965
  const ids = rows.map((row) => asId(asRecord(row)?.issue) ?? asId(row)).filter((id) => !!id);
1897
1966
  issueByModule.set(moduleId, ids);
1898
- }));
1967
+ }
1899
1968
  }
1900
1969
  for (const raw of workItems) {
1901
1970
  const item = raw;
@@ -2146,7 +2215,8 @@ async function createBoardApp(opts) {
2146
2215
  store,
2147
2216
  cli,
2148
2217
  flags,
2149
- jiraConfigPath: jiraCliConfigPath(env)
2218
+ jiraConfigPath: jiraCliConfigPath(env),
2219
+ liveBackend: plane
2150
2220
  });
2151
2221
  if (opts.piped) {
2152
2222
  app.hydrate(opts.raw);
@@ -13237,7 +13307,11 @@ function handleFakeJira(req, res, store) {
13237
13307
 
13238
13308
  // src/http.ts
13239
13309
  function handleRequest(req, res, ctx) {
13240
- return handleAppApi(req, res, ctx.app) || handleAgentApi(req, res, ctx.app) || handleFakeJira(req, res, ctx.store);
13310
+ if (handleAppApi(req, res, ctx.app) || handleAgentApi(req, res, ctx.app))
13311
+ return true;
13312
+ if (ctx.kind === "plane")
13313
+ return false;
13314
+ return handleFakeJira(req, res, ctx.store);
13241
13315
  }
13242
13316
 
13243
13317
  // src/jira-config.ts
@@ -13356,7 +13430,7 @@ async function runServer(opts) {
13356
13430
  flags
13357
13431
  });
13358
13432
  const server = createServer((req, res) => {
13359
- if (handleRequest(req, res, { app, store }))
13433
+ if (handleRequest(req, res, { app, store, kind }))
13360
13434
  return;
13361
13435
  if (opts.fallback) {
13362
13436
  opts.fallback(req, res);
@@ -13367,20 +13441,30 @@ async function runServer(opts) {
13367
13441
  res.end("pipe-kan UI is missing. Run bun run build.");
13368
13442
  }
13369
13443
  });
13444
+ if (kind === "plane") {
13445
+ try {
13446
+ await refreshFromJira(app, kind, { piped: Boolean(piped) });
13447
+ } catch (err) {
13448
+ console.error(`${kind} Refresh failed`, err);
13449
+ }
13450
+ const error = app.board().error;
13451
+ if (error)
13452
+ console.error(`${kind} Refresh failed; keeping last live Board`, error);
13453
+ }
13370
13454
  const { host, port } = resolveListen();
13371
13455
  await bindListen(server, host, port);
13372
13456
  const origin = `http://127.0.0.1:${port}`;
13373
- const fakeConfig = writeJiraConfig(join10(tmpdir3(), "pipe-kan"), origin);
13374
13457
  announce(`pipe-kan http://${host}:${port}`);
13375
13458
  if (kind === "plane") {
13376
13459
  announce(`cli plane ${planeHost()} ${planeWorkspace(flags)}`);
13377
13460
  announce(`Plane host default ${DEFAULT_PLANE_HOST}`);
13378
13461
  } else {
13462
+ const fakeConfig = writeJiraConfig(join10(tmpdir3(), "pipe-kan"), origin);
13379
13463
  announce(`cli ${kind === "jira" ? resolveJiraBin() : "store"}`);
13380
13464
  announce(`Fake Jira ${origin}/rest/api/2/search`);
13381
13465
  announce(`Fake Jira config ${fakeConfig}`);
13382
13466
  }
13383
- if (kind === "jira" || kind === "plane") {
13467
+ if (kind === "jira") {
13384
13468
  try {
13385
13469
  await refreshFromJira(app, kind, { piped: Boolean(piped) });
13386
13470
  } catch (err) {
@@ -53,4 +53,4 @@ Error generating stack: `+e.message+`
53
53
  To pick up a draggable item, press the space bar.
54
54
  While dragging, use the arrow keys to move the item.
55
55
  Press space again to drop the item in its new position, or press escape to cancel.
56
- `},hO={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function gO(e){let{announcements:t=hO,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=mO}=e,{announce:a,announcement:o}=uO(),s=XD(`DndLiveRegion`),[c,l]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{l(!0)},[]),fO((0,C.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=C.createElement(C.Fragment,null,C.createElement(cO,{id:r,value:i.draggable}),C.createElement(lO,{id:s,announcement:o}));return n?(0,pe.createPortal)(u,n):u}var _O;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(_O||={});function vO(){}function yO(e,t){return(0,C.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function bO(){var e=[...arguments];return(0,C.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var xO=Object.freeze({x:0,y:0});function SO(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function CO(e,t){let n=rO(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function wO(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function TO(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function EO(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function DO(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}var OO=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=EO(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=EO(r),o=i.reduce((e,t,r)=>e+SO(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(wO)};function kO(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var AO=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=kO(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(TO)};function jO(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function MO(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:xO}function NO(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var PO=NO(1);function FO(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function IO(e,t,n){let r=FO(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var LO={ignoreTransform:!1};function RO(e,t){t===void 0&&(t=LO);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=LD(e).getComputedStyle(e);t&&(n=IO(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function zO(e){return RO(e,{ignoreTransform:!0})}function BO(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function VO(e,t){return t===void 0&&(t=LD(e).getComputedStyle(e)),t.position===`fixed`}function HO(e,t){t===void 0&&(t=LD(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function UO(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(RD(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!zD(i)||BD(i)||n.includes(i))return n;let a=LD(e).getComputedStyle(i);return i!==e&&HO(i,a)&&n.push(i),VO(i,a)?n:r(i.parentNode)}return e?r(e):n}function WO(e){let[t]=UO(e,1);return t??null}function GO(e){return!PD||!e?null:FD(e)?e:ID(e)?RD(e)||e===VD(e).scrollingElement?window:zD(e)?e:null:null}function KO(e){return FD(e)?e.scrollX:e.scrollLeft}function qO(e){return FD(e)?e.scrollY:e.scrollTop}function JO(e){return{x:KO(e),y:qO(e)}}var YO;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(YO||={});function XO(e){return!PD||!e?!1:e===document.scrollingElement}function ZO(e){let t={x:0,y:0},n=XO(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var QO={x:.2,y:.2};function $O(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=QO);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=ZO(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=YO.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=YO.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=YO.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=YO.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function ek(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function tk(e){return e.reduce((e,t)=>QD(e,JO(t)),xO)}function nk(e){return e.reduce((e,t)=>e+KO(t),0)}function rk(e){return e.reduce((e,t)=>e+qO(t),0)}function ik(e,t){if(t===void 0&&(t=RO),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);WO(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var ak=[[`x`,[`left`,`right`],nk],[`y`,[`top`,`bottom`],rk]],ok=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=UO(t),r=tk(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of ak)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},sk=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function ck(e){let{EventTarget:t}=LD(e);return e instanceof t?e:VD(e)}function lk(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var uk;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(uk||={});function dk(e){e.preventDefault()}function fk(e){e.stopPropagation()}var pk;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(pk||={});var mk={start:[pk.Space,pk.Enter],cancel:[pk.Esc],end:[pk.Space,pk.Enter,pk.Tab]},hk=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case pk.Right:return{...n,x:n.x+25};case pk.Left:return{...n,x:n.x-25};case pk.Down:return{...n,y:n.y+25};case pk.Up:return{...n,y:n.y-25}}},gk=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new sk(VD(t)),this.windowListeners=new sk(LD(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(uk.Resize,this.handleCancel),this.windowListeners.add(uk.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(uk.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&ik(n),t(xO)}handleKeyDown(e){if(tO(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=mk,coordinateGetter:a=hk,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:xO;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=$D(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=ZO(n),p=ek(n),m={x:Math.min(i===pk.Right?p.right-p.width/2:p.right,Math.max(i===pk.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===pk.Down?p.bottom-p.height/2:p.bottom,Math.max(i===pk.Down?p.top:p.top+p.height/2,u.y))},h=i===pk.Right&&!s||i===pk.Left&&!c,g=i===pk.Down&&!l||i===pk.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===pk.Right&&e<=d.x||i===pk.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===pk.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===pk.Down&&e<=d.y||i===pk.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===pk.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,QD($D(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};gk.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=mk,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function _k(e){return!!(e&&`distance`in e)}function vk(e){return!!(e&&`delay`in e)}var yk=class{constructor(e,t,n){n===void 0&&(n=ck(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=VD(i),this.documentListeners=new sk(this.document),this.listeners=new sk(n),this.windowListeners=new sk(LD(i)),this.initialCoordinates=rO(r)??xO,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(uk.Resize,this.handleCancel),this.windowListeners.add(uk.DragStart,dk),this.windowListeners.add(uk.VisibilityChange,this.handleCancel),this.windowListeners.add(uk.ContextMenu,dk),this.documentListeners.add(uk.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(vk(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(_k(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(uk.Click,fk,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(uk.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=rO(e)??xO,s=$D(n,o);if(!t&&a){if(_k(a)){if(a.tolerance!=null&&lk(s,a.tolerance))return this.handleCancel();if(lk(s,a.distance))return this.handleStart()}if(vk(a)&&lk(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===pk.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},bk={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},xk=class extends yk{constructor(e){let{event:t}=e,n=VD(t.target);super(e,bk,n)}};xk.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var Sk={move:{name:`mousemove`},end:{name:`mouseup`}},Ck;(function(e){e[e.RightClick=2]=`RightClick`})(Ck||={});var wk=class extends yk{constructor(e){super(e,Sk,VD(e.event.target))}};wk.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==Ck.RightClick&&(r?.({event:n}),!0)}}];var Tk={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},Ek=class extends yk{constructor(e){super(e,Tk)}static setup(){return window.addEventListener(Tk.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Tk.move.name,e)};function e(){}}};Ek.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Dk;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Dk||={});var Ok;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(Ok||={});function kk(e){let{acceleration:t,activator:n=Dk.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=Ok.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=jk({delta:d,disabled:!a}),[m,h]=WD(),g=(0,C.useRef)({x:0,y:0}),_=(0,C.useRef)({x:0,y:0}),v=(0,C.useMemo)(()=>{switch(n){case Dk.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Dk.DraggableRect:return i}},[n,i,c]),y=(0,C.useRef)(null),b=(0,C.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,C.useMemo)(()=>s===Ok.TreeOrder?[...l].reverse():l,[s,l]);(0,C.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=$O(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var Ak={x:{[YO.Backward]:!1,[YO.Forward]:!1},y:{[YO.Backward]:!1,[YO.Forward]:!1}};function jk(e){let{delta:t,disabled:n}=e,r=JD(t);return KD(e=>{if(n||!r||!e)return Ak;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[YO.Backward]:e.x[YO.Backward]||i.x===-1,[YO.Forward]:e.x[YO.Forward]||i.x===1},y:{[YO.Backward]:e.y[YO.Backward]||i.y===-1,[YO.Forward]:e.y[YO.Forward]||i.y===1}}},[n,t,r])}function Mk(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return KD(e=>t==null?null:r??e??null,[r,t])}function Nk(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var Pk;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(Pk||={});var Fk;(function(e){e.Optimized=`optimized`})(Fk||={});var Ik=new Map;function Lk(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,C.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,C.useRef)(e),d=g(),f=GD(d),p=(0,C.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,C.useRef)(null),h=KD(t=>{if(d&&!n)return Ik;if(!t||t===Ik||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ok(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,C.useEffect)(()=>{u.current=e},[e]),(0,C.useEffect)(()=>{d||p()},[n,d]),(0,C.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,C.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case Pk.Always:return!1;case Pk.BeforeDragging:return n;default:return!n}}}function Rk(e,t){return KD(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function zk(e,t){return Rk(e,t)}function Bk(e){let{callback:t,disabled:n}=e,r=UD(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Vk(e){let{callback:t,disabled:n}=e,r=UD(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Hk(e){return new ok(RO(e),e)}function Uk(e,t,n){t===void 0&&(t=Hk);let[r,i]=(0,C.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Bk({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Vk({callback:a});return HD(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function Wk(e){return MO(e,Rk(e))}var Gk=[];function Kk(e){let t=(0,C.useRef)(e),n=KD(n=>e?n&&n!==Gk&&e&&t.current&&e.parentNode===t.current.parentNode?n:UO(e):Gk,[e]);return(0,C.useEffect)(()=>{t.current=e},[e]),n}function qk(e){let[t,n]=(0,C.useState)(null),r=(0,C.useRef)(e),i=(0,C.useCallback)(e=>{let t=GO(e.target);t&&n(e=>e?(e.set(t,JO(t)),new Map(e)):null)},[]);return(0,C.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=GO(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,JO(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{GO(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,C.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>QD(e,t),xO):tk(e):xO,[e,t])}function Jk(e,t){t===void 0&&(t=[]);let n=(0,C.useRef)(null);return(0,C.useEffect)(()=>{n.current=null},t),(0,C.useEffect)(()=>{let t=e!==xO;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?$D(e,n.current):xO}function Yk(e){(0,C.useEffect)(()=>{if(!PD)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Xk(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Zk(e){return(0,C.useMemo)(()=>e?BO(e):null,[e])}var Qk=[];function $k(e,t){t===void 0&&(t=RO);let[n]=e,r=Zk(n?LD(n):null),[i,a]=(0,C.useState)(Qk);function o(){a(()=>e.length?e.map(e=>XO(e)?r:new ok(t(e),e)):Qk)}let s=Vk({callback:o});return HD(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function eA(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return zD(t)?t:e}function tA(e){let{measure:t}=e,[n,r]=(0,C.useState)(null),i=Vk({callback:(0,C.useCallback)(e=>{for(let{target:n}of e)if(zD(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=qD((0,C.useCallback)(e=>{let n=eA(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,C.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var nA=[{sensor:xk,options:{}},{sensor:gk,options:{}}],rA={current:{}},iA={draggable:{measure:zO},droppable:{measure:zO,strategy:Pk.WhileDragging,frequency:Fk.Optimized},dragOverlay:{measure:RO}},aA=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},oA={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new aA,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:vO},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:iA,measureDroppableContainers:vO,windowRect:null,measuringScheduled:!1},sA={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:vO,draggableNodes:new Map,over:null,measureDroppableContainers:vO},cA=(0,C.createContext)(sA),lA=(0,C.createContext)(oA);function uA(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new aA}}}function dA(e,t){switch(t.type){case _O.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case _O.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case _O.DragEnd:case _O.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case _O.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new aA(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case _O.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new aA(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case _O.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new aA(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function fA(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,C.useContext)(cA),a=JD(r),o=JD(n?.id);return(0,C.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!tO(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=oO(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function pA(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function mA(e){return(0,C.useMemo)(()=>({draggable:{...iA.draggable,...e?.draggable},droppable:{...iA.droppable,...e?.droppable},dragOverlay:{...iA.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function hA(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,C.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;HD(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=MO(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=WO(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var gA=(0,C.createContext)({...xO,scaleX:1,scaleY:1}),_A;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(_A||={});var vA=(0,C.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=nA,collisionDetection:o=AO,measuring:s,modifiers:c,...l}=e,[u,d]=(0,C.useReducer)(dA,void 0,uA),[f,p]=pO(),[m,h]=(0,C.useState)(_A.Uninitialized),g=m===_A.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,C.useRef)({initial:null,translated:null}),w=(0,C.useMemo)(()=>_==null?null:{id:_,data:x?.data??rA,rect:S},[_,x]),T=(0,C.useRef)(null),[E,D]=(0,C.useState)(null),[O,ee]=(0,C.useState)(null),k=GD(l,Object.values(l)),A=XD(`DndDescribedBy`,t),j=(0,C.useMemo)(()=>b.getEnabled(),[b]),M=mA(s),{droppableRects:te,measureDroppableContainers:N,measuringScheduled:P}=Lk(j,{dragging:g,dependencies:[y.x,y.y],config:M.droppable}),F=Mk(v,_),ne=(0,C.useMemo)(()=>O?rO(O):null,[O]),re=Ae(),ie=zk(F,M.draggable.measure);hA({activeNode:_==null?null:v.get(_),config:re.layoutShiftCompensation,initialRect:ie,measure:M.draggable.measure});let I=Uk(F,M.draggable.measure,ie),L=Uk(F?F.parentElement:null),R=(0,C.useRef)({activatorEvent:null,active:null,activeNode:F,collisionRect:null,collisions:null,droppableRects:te,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ae=b.getNodeFor(R.current.over?.id),z=tA({measure:M.dragOverlay.measure}),B=z.nodeRef.current??F,oe=g?z.rect??I:null,se=!!(z.nodeRef.current&&z.rect),ce=Wk(se?null:I),le=Zk(B?LD(B):null),ue=Kk(g?ae??F:null),de=$k(ue),fe=pA(c,{transform:{x:y.x-ce.x,y:y.y-ce.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:I,containerNodeRect:L,draggingNodeRect:oe,over:R.current.over,overlayNodeRect:z.rect,scrollableAncestors:ue,scrollableAncestorRects:de,windowRect:le}),me=ne?QD(ne,y):null,he=qk(ue),ge=Jk(he),_e=Jk(he,[I]),ve=QD(fe,ge),ye=oe?PO(oe,fe):null,be=w&&ye?o({active:w,collisionRect:ye,droppableRects:te,droppableContainers:j,pointerCoordinates:me}):null,xe=DO(be,`id`),[Se,Ce]=(0,C.useState)(null),we=jO(se?fe:QD(fe,_e),Se?.rect??null,I),Te=(0,C.useRef)(null),Ee=(0,C.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent,o=new n({active:T.current,activeNode:i,event:a,options:r,context:R,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=k.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=k.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=k.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,pe.unstable_batchedUpdates)(()=>{r?.(i),h(_A.Initializing),d({type:_O.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(Te.current),ee(a)})},onMove(e){d({type:_O.DragMove,coordinates:e})},onEnd:s(_O.DragEnd),onCancel:s(_O.DragCancel)});Te.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=R.current,o=null;if(t&&i){let{cancelDrop:s}=k.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===_O.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=_O.DragCancel)}T.current=null,(0,pe.unstable_batchedUpdates)(()=>{d({type:e}),h(_A.Uninitialized),Ce(null),D(null),ee(null),Te.current=null;let t=e===_O.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=k.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),De=Nk(a,(0,C.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Ee(n,t))},[v,Ee]));Yk(a),HD(()=>{I&&m===_A.Initializing&&h(_A.Initialized)},[I,m]),(0,C.useEffect)(()=>{let{onDragMove:e}=k.current,{active:t,activatorEvent:n,collisions:r,over:i}=R.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:ve.x,y:ve.y},over:i};(0,pe.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[ve.x,ve.y]),(0,C.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=R.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=k.current,o=r.get(xe),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,pe.unstable_batchedUpdates)(()=>{Ce(s),a?.(c),f({type:`onDragOver`,event:c})})},[xe]),HD(()=>{R.current={activatorEvent:O,active:w,activeNode:F,collisionRect:ye,collisions:be,droppableRects:te,draggableNodes:v,draggingNode:B,draggingNodeRect:oe,droppableContainers:b,over:Se,scrollableAncestors:ue,scrollAdjustedTranslate:ve},S.current={initial:oe,translated:ye}},[w,F,be,ye,v,B,oe,te,b,Se,ue,ve]),kk({...re,delta:y,draggingRect:ye,pointerCoordinates:me,scrollableAncestors:ue,scrollableAncestorRects:de});let Oe=(0,C.useMemo)(()=>({active:w,activeNode:F,activeNodeRect:I,activatorEvent:O,collisions:be,containerNodeRect:L,dragOverlay:z,draggableNodes:v,droppableContainers:b,droppableRects:te,over:Se,measureDroppableContainers:N,scrollableAncestors:ue,scrollableAncestorRects:de,measuringConfiguration:M,measuringScheduled:P,windowRect:le}),[w,F,I,O,be,L,z,v,b,te,Se,N,ue,de,M,P,le]),ke=(0,C.useMemo)(()=>({activatorEvent:O,activators:De,active:w,activeNodeRect:I,ariaDescribedById:{draggable:A},dispatch:d,draggableNodes:v,over:Se,measureDroppableContainers:N}),[O,De,w,I,d,A,v,Se,N]);return C.createElement(dO.Provider,{value:p},C.createElement(cA.Provider,{value:ke},C.createElement(lA.Provider,{value:Oe},C.createElement(gA.Provider,{value:we},i)),C.createElement(fA,{disabled:n?.restoreFocus===!1})),C.createElement(gO,{...n,hiddenTextDescribedById:A}));function Ae(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),yA=(0,C.createContext)(null),bA=`button`,xA=`Draggable`;function SA(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=XD(xA),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,C.useContext)(cA),{role:p=bA,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,C.useContext)(g?gA:yA),[v,y]=qD(),[b,x]=qD(),S=Xk(o,t),w=GD(n);return HD(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,C.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===bA?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function CA(){return(0,C.useContext)(lA)}var wA=`Droppable`,TA={timeout:25};function EA(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=XD(wA),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,C.useContext)(cA),u=(0,C.useRef)({disabled:n}),d=(0,C.useRef)(!1),f=(0,C.useRef)(null),p=(0,C.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...TA,...i},_=GD(h??r),v=Vk({callback:(0,C.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=qD((0,C.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=GD(t);return(0,C.useEffect)(()=>{v&&y.current&&(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,C.useEffect)(()=>(s({type:_O.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:_O.UnregisterDroppable,key:a,id:r})),[r]),(0,C.useEffect)(()=>{n!==u.current.disabled&&(s({type:_O.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function DA(e){let{animation:t,children:n}=e,[r,i]=(0,C.useState)(null),[a,o]=(0,C.useState)(null),s=JD(n);return!n&&!r&&s&&i(s),HD(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),C.createElement(C.Fragment,null,n,r?(0,C.cloneElement)(r,{ref:o}):null)}var OA={x:0,y:0,scaleX:1,scaleY:1};function kA(e){let{children:t}=e;return C.createElement(cA.Provider,{value:sA},C.createElement(gA.Provider,{value:OA},t))}var AA={position:`fixed`,touchAction:`none`},jA=e=>tO(e)?`transform 250ms ease`:void 0,MA=(0,C.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=jA}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...AA,width:s.width,height:s.height,top:s.top,left:s.left,transform:iO.Transform.toString(d),transformOrigin:i&&r?CO(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return C.createElement(n,{className:o,style:f,ref:t},a)}),NA=e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}},PA={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:iO.Transform.toString(t)},{transform:iO.Transform.toString(n)}]},sideEffects:NA({styles:{active:{opacity:`0`}}})};function FA(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return UD((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=eA(a);if(!c)return;let{transform:l}=LD(a).getComputedStyle(a),u=FO(l);if(!u)return;let d=typeof t==`function`?t:IA(t);return ik(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function IA(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...PA,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var LA=0;function RA(e){return(0,C.useMemo)(()=>{if(e!=null)return LA++,LA},[e])}var zA=C.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=CA(),S=(0,C.useContext)(gA),w=RA(d?.id),T=pA(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),E=Rk(f),D=FA({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),O=E?g.setRef:void 0;return C.createElement(kA,null,C.createElement(DA,{animation:D},d&&w?C.createElement(MA,{key:w,id:d.id,ref:O,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:E,style:{zIndex:l,...i},transform:T},n):null))});function BA(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function VA(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function HA(e){return e!==null&&e>=0}function UA(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function WA(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var GA=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=BA(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},KA={scaleX:1,scaleY:1},qA=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...KA}:null}let s=JA(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...KA}:r<t&&r>=a?{x:0,y:o.height+s,...KA}:{x:0,y:0,...KA}};function JA(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var YA=`Sortable`,XA=C.createContext({activeIndex:-1,containerId:YA,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:GA,disabled:{draggable:!1,droppable:!1}});function ZA(e){let{children:t,id:n,items:r,strategy:i=GA,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=CA(),d=XD(YA,n),f=s.rect!==null,p=(0,C.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,C.useRef)(p),v=!UA(p,_.current),y=g!==-1&&h===-1||v,b=WA(a);HD(()=>{v&&m&&u(p)},[v,p,m,u]),(0,C.useEffect)(()=>{_.current=p},[p]);let x=(0,C.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:VA(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return C.createElement(XA.Provider,{value:x},t)}var QA=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return BA(n,r,i).indexOf(t)},$A=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},ej={duration:200,easing:`ease`},tj=`transform`,nj=iO.Transition.toString({property:tj,duration:0,easing:`linear`}),rj={roleDescription:`sortable`};function ij(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,C.useState)(null),s=(0,C.useRef)(n);return HD(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=RO(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,C.useEffect)(()=>{a&&o(null)},[a]),a}function aj(e){let{animateLayoutChanges:t=$A,attributes:n,disabled:r,data:i,getNewIndex:a=QA,id:o,strategy:s,resizeObserverConfig:c,transition:l=ej}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,C.useContext)(XA),y=oj(r,p),b=u.indexOf(o),x=(0,C.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,C.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=EA({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:O,activatorEvent:ee,activeNodeRect:k,attributes:A,setNodeRef:j,listeners:M,isDragging:te,over:N,setActivatorNodeRef:P,transform:F}=SA({id:o,data:x,attributes:{...rj,...n},disabled:y.draggable}),ne=ND(D,j),re=!!O,ie=re&&!m&&HA(f)&&HA(g),I=!_&&te,L=ie?(I&&ie?F:null)??(s??v)({rects:h,activeNodeRect:k,activeIndex:f,overIndex:g,index:b}):null,R=HA(f)&&HA(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ae=O?.id,z=(0,C.useRef)({activeId:ae,items:u,newIndex:R,containerId:d}),B=u!==z.current.items,oe=t({active:O,containerId:d,isDragging:te,isSorting:re,id:o,index:b,items:u,newIndex:z.current.newIndex,previousItems:z.current.items,previousContainerId:z.current.containerId,transition:l,wasDragging:z.current.activeId!=null}),se=ij({disabled:!oe,index:b,node:T,rect:w});return(0,C.useEffect)(()=>{re&&z.current.newIndex!==R&&(z.current.newIndex=R),d!==z.current.containerId&&(z.current.containerId=d),u!==z.current.items&&(z.current.items=u)},[re,R,d,u]),(0,C.useEffect)(()=>{if(ae===z.current.activeId)return;if(ae!=null&&z.current.activeId==null){z.current.activeId=ae;return}let e=setTimeout(()=>{z.current.activeId=ae},50);return()=>clearTimeout(e)},[ae]),{active:O,activeIndex:f,attributes:A,data:x,rect:w,index:b,newIndex:R,items:u,isOver:E,isSorting:re,isDragging:te,listeners:M,node:T,overIndex:g,over:N,setNodeRef:ne,setActivatorNodeRef:P,setDroppableNodeRef:D,setDraggableNodeRef:j,transform:se??L,transition:ce()};function ce(){if(se||B&&z.current.newIndex===b)return nj;if(!(I&&!tO(ee)||!l)&&(re||oe))return iO.Transition.toString({...l,property:tj})}}function oj(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function sj(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var cj=[pk.Down,pk.Right,pk.Up,pk.Left],lj=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(cj.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case pk.Down:r.top<a.top&&t.push(n);break;case pk.Up:r.top>a.top&&t.push(n);break;case pk.Left:r.left>a.left&&t.push(n);break;case pk.Right:r.left<a.left&&t.push(n)}});let c=OO({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=DO(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=UO(c).some((e,t)=>s[t]!==e),i=uj(e,t),a=dj(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:$D(u,l)}}}};function uj(e,t){return!sj(e)||!sj(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function dj(e,t){return!sj(e)||!sj(t)||!uj(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var fj=(0,C.createContext)({columns:{},setColumns:()=>{},getItemId:()=>``,columnIds:[],activeId:null,setActiveId:()=>{},findContainer:()=>void 0,isColumn:()=>!1,modifiers:void 0}),pj=(0,C.createContext)({attributes:{},listeners:void 0,isDragging:!1,disabled:!1}),mj=(0,C.createContext)({listeners:void 0,isDragging:!1,disabled:!1}),hj=(0,C.createContext)(!1),gj=e=>$A({...e,wasDragging:!0}),_j={sideEffects:NA({styles:{active:{opacity:`0.4`}}})},vj=()=>()=>{},yj=()=>!0,bj=()=>!1,xj={activationConstraint:{distance:10}},Sj={activationConstraint:{delay:250,tolerance:5}},Cj={coordinateGetter:lj},wj={droppable:{strategy:Pk.Always}};function Tj({value:e,onValueChange:t,getItemValue:n,children:r,className:i,asChild:a=!1,onMove:o,onValueCommit:s,restoreOnCancel:c=!1,onDragStart:l,onDragEnd:u,onDragCancel:d,accessibility:f,modifiers:p,...m}){let h=e,g=t,[_,v]=(0,C.useState)(null),y=(0,C.useRef)(e),b=(0,C.useRef)(n);(0,C.useLayoutEffect)(()=>{y.current=e,b.current=n});let x=(0,C.useRef)(null),S=bO(yO(wk,xj),yO(Ek,Sj),yO(gk,Cj)),w=(0,C.useMemo)(()=>Object.keys(h),[h,n]),T=(0,C.useCallback)(e=>w.includes(e),[w]),E=(0,C.useCallback)(e=>T(e)?e:w.find(t=>h[t].some(t=>n(t)===e)),[h,w,n,T]),D=(0,C.useCallback)((e,t,n)=>{if(!s)return;let r=x.current;if(!r)return;let i=t.active.id;if(n===`column`){let n=Object.keys(e).indexOf(i);if(n===-1||n===r.index)return;s(e,{kind:`column`,event:t,activeContainer:i,activeIndex:r.index,overContainer:String(t.over?.id??i),overIndex:n,previousValue:r.value});return}let a=b.current,o,c=-1;for(let t of Object.keys(e)){let n=e[t].findIndex(e=>a(e)===i);if(n!==-1){o=t,c=n;break}}o!==void 0&&(o!==r.container||c!==r.index)&&s(e,{kind:`item`,event:t,activeContainer:r.container??o,activeIndex:r.index,overContainer:o,overIndex:c,previousValue:r.value})},[s]),O=(0,C.useCallback)(e=>{if(v(e.active.id),l?.(e),s||c){let t=y.current,n=e.active.id,r=Object.keys(t);if(r.includes(n))x.current={value:t,container:n,index:r.indexOf(n)};else{let e=b.current,i,a=-1;for(let o of r){let r=t[o].findIndex(t=>e(t)===n);if(r!==-1){i=o,a=r;break}}x.current={value:t,container:i,index:a}}}},[l,s,c]),ee=(0,C.useCallback)(e=>{if(o)return;let{active:t,over:r}=e;if(!r||T(t.id))return;let i=E(t.id),a=E(r.id);if(i&&a){if(i!==a){let e=h[i],o=h[a],s=e.findIndex(e=>n(e)===t.id),c=o.findIndex(e=>n(e)===r.id);T(r.id)&&(c=o.length);let l=[...e],u=[...o],[d]=l.splice(s,1);u.splice(c,0,d),g({...h,[i]:l,[a]:u})}else{let e=i,a=h[e].findIndex(e=>n(e)===t.id),o=h[e].findIndex(e=>n(e)===r.id);a!==o&&g({...h,[e]:BA(h[e],a,o)})}}},[E,n,T,g,h,o]),k=(0,C.useCallback)(e=>{let t=x.current;c&&t&&!o?g(t.value):s&&t&&!o&&D(y.current,e,`item`),x.current=null,v(null),d?.(e)},[c,o,s,g,d,D]),A=(0,C.useCallback)(e=>{let{active:t,over:r}=e;if(v(null),u?.(e),!r){D(y.current,e,`item`),x.current=null;return}if(o&&!T(t.id)){let i=E(t.id),a=E(r.id);i&&a&&o({event:e,activeContainer:i,activeIndex:h[i].findIndex(e=>n(e)===t.id),overContainer:a,overIndex:T(r.id)?h[a].length:h[a].findIndex(e=>n(e)===r.id)}),x.current=null;return}if(T(t.id)&&T(r.id)){let n=w.indexOf(t.id),i=w.indexOf(r.id);if(n!==i){let t=BA(Object.keys(h),n,i),r={};t.forEach(e=>{r[e]=h[e]}),g(r),D(r,e,`column`)}x.current=null;return}if(T(t.id)){x.current=null;return}let i=E(t.id),a=E(r.id);if(i&&a&&i===a){let a=i,o=h[a].findIndex(e=>n(e)===t.id),s=h[a].findIndex(e=>n(e)===r.id);if(o!==s){let t={...h,[a]:BA(h[a],o,s)};g(t),D(t,e,`item`)}else D(h,e,`item`)}else D(h,e,`item`);x.current=null},[w,h,E,n,T,g,o,u,D]),j=(0,C.useMemo)(()=>({columns:h,setColumns:g,getItemId:n,columnIds:w,activeId:_,setActiveId:v,findContainer:E,isColumn:T,modifiers:p}),[h,g,n,w,_,E,T,p]),M=a?Ni:`div`;return(0,G.jsx)(fj.Provider,{value:j,children:(0,G.jsx)(vA,{sensors:S,modifiers:p,accessibility:f,measuring:wj,onDragStart:O,onDragOver:ee,onDragEnd:A,onDragCancel:k,children:(0,G.jsx)(M,{"data-slot":`kanban`,"data-dragging":_!==null,className:W(_!==null&&`cursor-grabbing!`,i),...m,children:r})})})}function Ej({className:e,asChild:t=!1,children:n,...r}){let{columnIds:i}=(0,C.useContext)(fj);return(0,G.jsx)(ZA,{items:i,strategy:GA,children:(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-board`,className:W(`grid auto-rows-fr gap-4`,e),...r,children:n})})}function Dj({value:e,className:t,asChild:n=!1,disabled:r,children:i,...a}){let o=(0,C.useContext)(hj),{setNodeRef:s,transform:c,transition:l,attributes:u,listeners:d,isDragging:f}=aj({id:e,disabled:r||o,animateLayoutChanges:gj}),{activeId:p,isColumn:m}=(0,C.useContext)(fj),h=p?m(p):!1,g={transition:l,transform:iO.Transform.toString(c)},_=n?Ni:`div`;return o?(0,G.jsx)(pj.Provider,{value:{attributes:{},listeners:void 0,isDragging:!0,disabled:!1},children:(0,G.jsx)(_,{"data-slot":`kanban-column`,"data-value":e,"data-dragging":!0,className:W(`group/kanban-column flex flex-col`,t),...a,children:i})}):(0,G.jsx)(pj.Provider,{value:{attributes:u,listeners:d,isDragging:h,disabled:r},children:(0,G.jsx)(_,{"data-slot":`kanban-column`,"data-value":e,"data-dragging":f,"data-disabled":r,ref:s,style:g,className:W(`group/kanban-column flex flex-col`,f&&`z-50 opacity-50`,r&&`opacity-50`,t),...a,children:i})})}function Oj({className:e,asChild:t=!1,cursor:n=!0,children:r,...i}){let{attributes:a,listeners:o,isDragging:s,disabled:c}=(0,C.useContext)(pj);return(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-column-handle`,"data-dragging":s,"data-disabled":c,...a,...o,className:W(`opacity-0 transition-opacity group-hover/kanban-column:opacity-100`,n&&(s?`cursor-grabbing!`:`cursor-grab!`),e),...i,children:r})}function kj({value:e,className:t,asChild:n=!1,disabled:r,children:i,...a}){let o=(0,C.useContext)(hj),{setNodeRef:s,transform:c,transition:l,attributes:u,listeners:d,isDragging:f}=aj({id:e,disabled:r||o,animateLayoutChanges:gj}),{activeId:p,isColumn:m}=(0,C.useContext)(fj),h=p?!m(p):!1,g={transition:l,transform:iO.Transform.toString(c)},_=n?Ni:`div`;return o?(0,G.jsx)(mj.Provider,{value:{listeners:void 0,isDragging:!0,disabled:!1},children:(0,G.jsx)(_,{"data-slot":`kanban-item`,"data-value":e,"data-dragging":!0,className:W(t),...a,children:i})}):(0,G.jsx)(mj.Provider,{value:{listeners:d,isDragging:h,disabled:r},children:(0,G.jsx)(_,{"data-slot":`kanban-item`,"data-value":e,"data-dragging":f,"data-disabled":r,ref:s,style:g,...u,className:W(`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,f&&`z-50 opacity-50`,r&&`opacity-50`,t),...a,children:i})})}function Aj({className:e,asChild:t=!1,cursor:n=!0,children:r,...i}){let{listeners:a,isDragging:o,disabled:s}=(0,C.useContext)(mj);return(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-item-handle`,"data-dragging":o,"data-disabled":s,...a,className:W(n&&(o?`cursor-grabbing!`:`cursor-grab!`),e),...i,children:r})}function jj({value:e,className:t,asChild:n=!1,children:r,...i}){let{columns:a,getItemId:o}=(0,C.useContext)(fj),s=(0,C.useMemo)(()=>{let t=a[e];if(!t)throw Error(`KanbanColumnContent: column "${e}" was not found in the Kanban value. Available columns: ${Object.keys(a).join(`, `)||`(none)`}.`);return t.map(o)},[a,o,e]);return(0,G.jsx)(ZA,{items:s,strategy:qA,children:(0,G.jsx)(n?Ni:`div`,{"data-slot":`kanban-column-content`,className:W(`flex flex-col gap-2`,t),...i,children:r})})}function Mj({children:e,className:t,...n}){let{activeId:r,isColumn:i,modifiers:a}=(0,C.useContext)(fj),o=(0,C.useSyncExternalStore)(vj,yj,bj),s=r&&i(r)?`column`:`item`,c=r&&e?typeof e==`function`?e({value:r,variant:s}):e:null;return o?(0,pe.createPortal)((0,G.jsx)(zA,{dropAnimation:_j,modifiers:a,className:W(`z-50`,r&&`cursor-grabbing`,t),...n,children:(0,G.jsx)(hj.Provider,{value:!0,children:c})}),document.body):null}function Nj({className:e,...t}){return(0,G.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:W(`group/input-group border-input dark:bg-input/30 relative flex h-9 w-full min-w-0 items-center rounded-md border shadow-xs outline-none`,`has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]`,e),...t})}var Pj=yi(`text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm select-none [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-3`,"inline-end":`order-last pr-3`}},defaultVariants:{align:`inline-start`}});function Fj({className:e,align:t=`inline-start`,...n}){return(0,G.jsx)(`div`,{"data-slot":`input-group-addon`,className:W(Pj({align:t}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...n})}function Ij({className:e,...t}){return(0,G.jsx)(SE,{"data-slot":`input-group-control`,className:W(`flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent`,e),...t})}var Lj=`collapsed-columns`,Rj=`collapsed-epic-statuses`,zj=`collapsed-favourite-folders`,Bj=`board-chrome`,Vj=`board-opener`,Hj=`favourite-epics`,Uj=`board-presets`,Wj=`board-sidebar-open`,Gj=`board-column-order`,Kj=[`In Progress`,`Completed`,`Cancelled`,`Canceled`],qj=[`created`,`targetEnd`,`priority`,`labels`,`assignee`,`dueDate`],Jj={filter:{},sort:`payload`,hide:[],shown:[...qj]},Yj={keys:[],folders:[],projects:void 0};function Xj(e=Lj,t=[]){try{let n=localStorage.getItem(e);if(n===null)return new Set(t);let r=JSON.parse(n);return new Set(Array.isArray(r)?r.filter(e=>typeof e==`string`):t)}catch{return new Set(t)}}function Zj(e,t=Lj){localStorage.setItem(t,JSON.stringify([...e]))}function Qj(e,t){let n=t.toLowerCase();return[...e].some(e=>e.toLowerCase()===n)}function $j(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))n!==`priorities`&&n!==`assignees`&&Array.isArray(r)&&(t[n]=r.filter(e=>typeof e==`string`));return Array.isArray(e.priorities)&&!t.priority&&(t.priority=e.priorities.filter(e=>typeof e==`string`)),Array.isArray(e.assignees)&&!t.assignee&&(t.assignee=e.assignees.filter(e=>typeof e==`string`)),t}function eM(){try{let e=localStorage.getItem(Bj);if(e===null)return Jj;let t=JSON.parse(e),n=Array.isArray(t.shown)?t.shown.filter(e=>qj.includes(e)):[...qj];return{filter:$j(t.filter),sort:t.sort===`priority`||t.sort===`age`||t.sort===`due`||t.sort===`key`?t.sort:`payload`,hide:Array.isArray(t.hide)?t.hide.filter(e=>typeof e==`string`):[],shown:n.length?n:[...qj]}}catch{return Jj}}function tM(e){localStorage.setItem(Bj,JSON.stringify(e))}function nM(){try{let e=localStorage.getItem(Hj);if(e===null)return Yj;let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return{keys:t,folders:[]};if(t&&typeof t==`object`){let e=t;return{keys:Array.isArray(e.keys)?e.keys.filter(e=>typeof e==`string`):[],folders:Array.isArray(e.folders)?e.folders.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.name!=`string`||!t.name.trim()?[]:[{name:t.name,keys:Array.isArray(t.keys)?t.keys.filter(e=>typeof e==`string`):[]}]}):[],projects:Array.isArray(e.projects)?e.projects.filter(e=>typeof e==`string`):void 0}}return Yj}catch{return Yj}}function rM(e){localStorage.setItem(Hj,JSON.stringify(e))}function iM(){try{let e=localStorage.getItem(Uj);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.name!=`string`||!t.name.trim()?[]:[{name:t.name,filter:$j(t.filter),sort:t.sort===`priority`||t.sort===`age`||t.sort===`due`||t.sort===`key`?t.sort:`payload`,hide:Array.isArray(t.hide)?t.hide.filter(e=>typeof e==`string`):[]}]}):[]}catch{return[]}}function aM(e){localStorage.setItem(Uj,JSON.stringify(e))}function oM(e,t){let n=(e??[]).slice().sort(),r=(t??[]).slice().sort();return n.length===r.length&&n.every((e,t)=>e===r[t])}function sM(e,t){return!t.length||oM(e.projects,t)?e:{keys:[],folders:[],projects:t}}function cM(e,t){return t.length?e.filter(e=>oM(e.projects,t)):e}function lM(){try{let e=localStorage.getItem(Vj);return e===`epics`||e===`combined`?e:`stories`}catch{return`stories`}}function uM(e){localStorage.setItem(Vj,e)}function dM(){try{let e=localStorage.getItem(Wj);return e===null||e===`true`}catch{return!0}}function fM(e){localStorage.setItem(Wj,e?`true`:`false`)}function pM(){try{let e=localStorage.getItem(Gj);if(e===null)return{};let t=JSON.parse(e);return!t||typeof t!=`object`?{}:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,Array.isArray(t)?t.filter(e=>typeof e==`string`):[]]))}catch{return{}}}function mM(e){localStorage.setItem(Gj,JSON.stringify(e))}function hM(e,t){let n=[{label:`Key`,value:e.key},{label:`Summary`,value:e.summary}];return t&&n.push({label:`Jira URL`,value:t}),e.priority&&n.push({label:`Priority`,value:e.priority}),e.assignee&&n.push({label:`Assignee`,value:e.assignee}),e.dueDate&&n.push({label:`Due date`,value:e.dueDate}),e.targetEnd&&n.push({label:`Target end`,value:e.targetEnd}),e.labels?.length&&n.push({label:`Labels`,value:e.labels.join(`, `),pills:e.labels}),n}async function gM(e,t){return(await fetch(e,{headers:{"content-type":`application/json`},...t})).json()}function _M(e){return Object.fromEntries(e.map(e=>[e.title,e.cards]))}function vM(){return typeof document>`u`?`light`:document.documentElement.classList.contains(`dark`)?`dark`:`light`}function yM(e){document.documentElement.classList.toggle(`dark`,e===`dark`),localStorage.setItem(`theme`,e)}var bM={done:`green`,complete:`green`,completed:`green`,closed:`green`,resolved:`green`,progress:`yellow`,review:`yellow`,doing:`yellow`,cancelled:`gray`,canceled:`gray`};function xM(e){if(!e)return`var(--primary)`;let t=e.toLowerCase(),n=Object.keys(bM).find(e=>t.includes(e));return`var(--kanban-board-circle-${n?bM[n]:`gray`})`}function SM(e){let t=(e??``).toLowerCase();return t===`high`||t===`highest`||t===`critical`?`text-red-500`:t===`medium`?`text-orange-400`:`text-yellow-500`}function CM(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function wM(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function TM(e){let t=[];for(let n of e){let e=t.at(-1);n.group&&e?.group===n.group?e.facets.push(n):t.push({group:n.group,facets:[n]})}return t}function EM({facet:e,selected:t,onToggle:n}){return(0,G.jsxs)(G.Fragment,{children:[e.label===e.group?null:(0,G.jsx)(jp,{children:e.label}),e.values.map(e=>(0,G.jsx)(Np,{checked:t.includes(e),onCheckedChange:()=>n(e),children:e},e))]})}function DM({facets:e,filter:t,onToggle:n,onClear:r}){let[i,a]=(0,C.useState)({});return(0,G.jsxs)(Ap,{align:`end`,className:`w-56 max-h-[min(70vh,28rem)]`,children:[TM(e).map((e,r)=>{let o=e.facets.map(e=>(0,G.jsx)(EM,{facet:e,selected:t[e.key]??[],onToggle:t=>n(e.key,t)},e.key));return(0,G.jsxs)(C.Fragment,{children:[r>0?(0,G.jsx)(Ip,{}):null,e.group?(0,G.jsxs)(pg,{open:i[e.group]!==!1,onOpenChange:t=>a(n=>({...n,[e.group]:t})),className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex w-full items-center gap-1.5 px-2 py-1.5 text-left text-[11px] font-medium`,onPointerDown:e=>e.preventDefault(),children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,i[e.group]===!1&&`-rotate-90`)}),e.group]})}),(0,G.jsx)(hg,{className:`flex flex-col`,children:o})]}):o]},e.group??e.facets[0]?.key)}),e.length?(0,G.jsx)(Ip,{}):null,(0,G.jsx)(Mp,{onClick:r,children:`Clear Filter, Sort, and Hide`})]})}function OM({card:e,asHandle:t,isOverlay:n,disabled:r,selected:i,onClick:a,onDoubleClick:o,variant:s=`story`,shown:c}){let l=s===`epic`||(e.type??``).toLowerCase()===`epic`,u=e=>c?.has(e)??!0,d=u(`created`)?qe(e.created):void 0,f=u(`targetEnd`)?Je(e.targetEnd):void 0,p=f?(()=>{let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e.targetEnd??``),n=t?Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])):Date.parse(e.targetEnd??``);return!Number.isNaN(n)&&n<Date.now()})():!1,m=f?(()=>{let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e.targetEnd??``),n=t?Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])):Date.parse(e.targetEnd??``);if(Number.isNaN(n)||n<Date.now())return!1;let r=new Date,i=Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate());return Math.round((n-i)/864e5)<=3})():!1,h=u(`priority`)&&e.priority||u(`labels`)&&e.labels?.length||u(`assignee`)&&e.assignee||u(`dueDate`)&&e.dueDate||f,g=(0,G.jsxs)(`div`,{className:W(`bg-card hover:bg-foreground/5 rounded-[9px] border px-3 pt-2 pb-3`,i&&`ring-primary ring-2`,l&&`bg-muted/40 border-l-4 border-l-primary`),children:[(0,G.jsxs)(`div`,{className:`flex h-[22px] items-center justify-between gap-2`,children:[(0,G.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] font-medium tabular-nums`,children:e.key}),(e.type??``).toLowerCase()===`epic`?(0,G.jsx)(`span`,{className:`text-muted-foreground/60 text-[11px] font-normal`,children:`Epic`}):null]}),d?(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] tabular-nums`,children:d}):null]}),(0,G.jsx)(`p`,{className:`mt-0.5 truncate text-[13px] leading-[18px]`,children:e.summary}),h?(0,G.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-2 pt-2`,children:[u(`priority`)&&e.priority?(0,G.jsx)(`span`,{className:W(`inline-flex h-6 shrink-0 items-center rounded-full border px-2 text-[12px] font-medium capitalize`,SM(e.priority)),children:e.priority}):null,u(`labels`)?e.labels?.map(e=>Xe(e)?(0,G.jsx)(xi,{variant:`warning-light`,className:`h-6 rounded-full px-2 text-[12px]`,children:e},e):(0,G.jsx)(`span`,{className:`text-muted-foreground inline-flex h-6 shrink-0 items-center rounded-full border px-2 text-[12px]`,children:e},e)):null,(0,G.jsx)(`span`,{className:`flex-1`}),f?(0,G.jsx)(`span`,{className:W(`shrink-0 text-[11px] tabular-nums`,p&&`text-destructive font-medium`,m&&!p&&`text-amber-500 dark:text-amber-400`,!p&&!m&&`text-muted-foreground`),title:e.targetEnd,children:f}):null,u(`dueDate`)&&e.dueDate?(0,G.jsx)(`time`,{className:`text-muted-foreground shrink-0 text-[11px] tabular-nums`,children:e.dueDate}):null,u(`assignee`)&&e.assignee?(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0 text-[12px]`,children:e.assignee}):null]}):null]});return(0,G.jsx)(kj,{value:e.key,disabled:r,children:t&&!n?(0,G.jsx)(Aj,{onClick:a,onDoubleClick:o,children:g}):g})}function kM({title:e,cards:t,isOverlay:n,disabled:r,selected:i,onClick:a,onDoubleClick:o,onCreate:s,onHide:c,shown:l}){let[u,d]=(0,C.useState)(()=>n||!Xj().has(e));function f(t){if(d(t),n)return;let r=Xj();t?r.delete(e):r.add(e),Zj(r)}return(0,G.jsx)(Dj,{value:e,className:`group h-full min-h-0`,children:(0,G.jsx)(pg,{open:u,onOpenChange:f,className:W(`flex h-full min-h-0 flex-col`,!u&&`h-auto`),children:(0,G.jsxs)(`div`,{className:W(`flex flex-col`,u?`h-full min-h-0`:`h-auto`),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 pt-[13px] pb-5`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,children:[(0,G.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-full`,style:{backgroundColor:xM(e)}}),(0,G.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:e}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] tabular-nums`,children:t.length}),(0,G.jsx)(j,{className:W(`text-muted-foreground size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)})]})}),s?(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Create issue in ${e}`,title:`Create issue`,onPointerDown:e=>e.stopPropagation(),onClick:()=>s(e),children:(0,G.jsx)(ae,{})}):null,c?(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Hide ${e}`,onClick:c,children:(0,G.jsx)(ne,{})}):null,(0,G.jsx)(Oj,{className:`opacity-0 transition-opacity group-hover:opacity-60`,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,tabIndex:-1,type:`button`,children:(0,G.jsx)(ie,{})})})]}),(0,G.jsx)(hg,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,G.jsxs)(jj,{value:e,className:`flex h-full flex-col gap-2 overflow-auto px-2 pb-2`,children:[t.map(e=>(0,G.jsx)(OM,{card:e,asHandle:!n,isOverlay:n,disabled:r,selected:i?.has(e.key),variant:(e.type??``).toLowerCase()===`epic`?`epic`:`story`,shown:l,onClick:t=>a?.(e.key,t),onDoubleClick:t=>o?.(e.key,t)},e.key)),s?(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:bg-foreground/5 hover:text-foreground flex min-h-8 w-full shrink-0 items-center gap-1.5 rounded-md px-2 text-[12px]`,"aria-label":`Create issue in ${e}`,onPointerDown:e=>e.stopPropagation(),onClick:()=>s(e),children:[(0,G.jsx)(ae,{className:`size-3.5`}),`Create`]}):null]})})]})})})}function AM(e,t){return[...new Set(e.map(e=>e.status?.trim()).filter(e=>!!e))].filter(e=>e!==t)}function jM({epic:e,selected:t,count:n,favourited:r,folders:i,moveTo:a,onSelect:o,onToggleFavourite:s,onFile:c,onMove:l,onOpen:u}){let d=a??[],f=!!(c&&r),p=!!u||f||d.length>0;return(0,G.jsxs)(`div`,{className:W(`flex h-14 w-full items-center gap-1 rounded-lg pr-1`,t?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-3 px-3 text-left`,onClick:()=>void o(e.key),children:[(0,G.jsx)(`span`,{className:`size-2 shrink-0 rounded-full`,style:{backgroundColor:xM(e.status)}}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[13px] leading-[18px]`,children:e.summary}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] font-medium tabular-nums`,children:e.key}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] tabular-nums`,children:n})]}),p?(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":f?`File ${e.key}`:d.length?`Move ${e.key}`:`Open ${e.key}`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`end`,children:[u?(0,G.jsx)(Mp,{onClick:()=>u(e.key),children:`Open`}):null,f?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Mp,{onClick:()=>c?.(e.key,null),children:`Unfiled`}),i?.map(t=>(0,G.jsx)(Mp,{onClick:()=>c?.(e.key,t),children:t},t))]}):null,f&&d.length?(0,G.jsxs)(Lp,{children:[(0,G.jsx)(Rp,{children:`Move`}),(0,G.jsx)(zp,{children:d.map(t=>(0,G.jsx)(Mp,{onClick:()=>l?.(e.key,t),children:t},t))})]}):null,f?null:d.map(t=>(0,G.jsx)(Mp,{onClick:()=>l?.(e.key,t),children:t},t))]})]}):null,(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":r?`Unfavourite ${e.key}`:`Favourite ${e.key}`,onClick:t=>{t.stopPropagation(),s(e.key)},children:(0,G.jsx)(ce,{className:W(r&&`fill-current`)})})]})}function MM({status:e,epics:t,selectedEpic:n,childCount:r,favourites:i,listedEpics:a,onSelect:o,onToggleFavourite:s,onMove:c,onOpen:l}){let[u,d]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),e));function f(t){d(t);let n=Xj(Rj,Kj);if(t)for(let t of[...n])t.toLowerCase()===e.toLowerCase()&&n.delete(t);else n.add(e);Zj(n,Rj)}return(0,G.jsxs)(pg,{open:u,onOpenChange:f,className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 items-center gap-1.5 px-3 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:e}),(0,G.jsx)(`span`,{className:`text-[11px] tabular-nums`,children:t.length})]})}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:t.map(e=>(0,G.jsx)(jM,{epic:e,selected:n===e.key,count:r(e.key),favourited:i.keys.includes(e.key),onSelect:o,onToggleFavourite:s,moveTo:AM(a,e.status),onMove:c,onOpen:l},e.key))})]})}function NM({fields:e}){return(0,G.jsx)(`dl`,{className:`flex flex-col gap-3 p-4 text-[13px]`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsx)(`dt`,{className:`text-muted-foreground text-[11px] font-medium`,children:e.label}),(0,G.jsx)(`dd`,{className:`whitespace-pre-wrap`,children:e.label===`Jira URL`?(0,G.jsx)(`a`,{className:`text-foreground font-medium underline-offset-4 hover:underline`,href:e.value,target:`_blank`,rel:`noreferrer`,children:e.value}):e.pills?.length?(0,G.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:e.pills.map(e=>(0,G.jsx)(`span`,{className:`text-muted-foreground inline-flex h-6 items-center rounded-full border px-2 text-[12px]`,children:e},e))}):e.value})]},e.label))})}function PM(){let[e,t]=(0,C.useState)({}),[n,r]=(0,C.useState)([]),[i,a]=(0,C.useState)(null),[o,s]=(0,C.useState)(!1),[c,l]=(0,C.useState)(null),[u,d]=(0,C.useState)(null),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)(``),[g,_]=(0,C.useState)(null),[v,y]=(0,C.useState)(null),[b,x]=(0,C.useState)(null),[S,w]=(0,C.useState)([]),[T,E]=(0,C.useState)(``),[D,ee]=(0,C.useState)(``),[A,j]=(0,C.useState)(``),[P,F]=(0,C.useState)(``),[ne,ie]=(0,C.useState)(!1),[L,ae]=(0,C.useState)(vM),[B,oe]=(0,C.useState)(eM),se=(0,C.useMemo)(()=>nt(D).projects,[D]),[ce,ue]=(0,C.useState)(()=>sM(nM(),se)),[fe,pe]=(0,C.useState)(()=>cM(iM(),se)),[me,he]=(0,C.useState)(``),[ge,_e]=(0,C.useState)(``),[ve,ye]=(0,C.useState)(``),[be,xe]=(0,C.useState)(``),[Se,Ce]=(0,C.useState)(lM),[we,Te]=(0,C.useState)(Dn),[Ee,De]=(0,C.useState)(()=>dM()),Oe=Gh(),ke=(0,C.useRef)(null),[je,Me]=(0,C.useState)(null),[Ne,Pe]=(0,C.useState)(!1),[Fe,Ie]=(0,C.useState)(!1),[Le,Re]=(0,C.useState)(void 0),ze=(0,C.useRef)(!1),Be=(0,C.useRef)(null),Ve=wn(t,r),[He,Ue]=(0,C.useState)(new Set),We={...B,epics:n},Ge=(0,C.useMemo)(()=>new Set(B.shown),[B.shown]),Ke=Se===`epics`,qe=(0,C.useMemo)(()=>Se===`combined`?wt(e,n,A,We):Tt(Ke?e:Ct(e,je?.children,A),Ke?null:g,A,We),[e,g,A,B,n,Ke,je,Se]),Je=(0,C.useMemo)(()=>Object.values(e).flat(),[e]),Ye=i??Je,Xe=(0,C.useMemo)(()=>{let e=new Map;for(let t of je?.columns.flatMap(e=>e.cards)??[])e.set(t.key,t);for(let t of Ye)e.has(t.key)||e.set(t.key,t);return[...e.values()]},[je,Ye]),et=(0,C.useMemo)(()=>jt(n,Ye,A,B.filter),[n,Ye,A,B.filter]),tt=(0,C.useMemo)(()=>Mt(et),[et]),rt=(0,C.useMemo)(()=>zt(n,ce,A,Ye,B.filter),[n,ce,A,Ye,B.filter]),it=Object.keys(qe),at=`${Se}:${[...se].sort().join(`,`)}`,st=v?[`cards`,`open`]:[`cards`],ct=zh({id:`shell`,panelIds:[`epics`,`board`],onlySaveAfterUserInteractions:!0}),lt=zh({id:`board-open`,panelIds:st,onlySaveAfterUserInteractions:!0}),ut=zh({id:`columns`,panelIds:it,onlySaveAfterUserInteractions:!0}),dt=b?Tn(b,window.location.origin):null,ft=gt(Je,n),pt=Object.keys(e),mt=(0,C.useMemo)(()=>nn([...Je,...n,...Xe]),[Je,n,Xe]),ht=rt.unfiled.length>0||rt.folders.length>0;function _t(e){oe(e),tM(e)}function vt(e){let t=se.length?{...e,projects:se}:e;ue(t),rM(t)}function yt(e){pe(e),aM(e)}function bt(){Ue(new Set)}function xt(e,n){ke.current=e,Me(e);let i=e.epics??[];r(i);let o=pM()[`${n}:${[...se].sort().join(`,`)}`];t(Pt(_M(n===`epics`?Ze(i):e.columns),o)),a(e.children?Object.values(e.children).flat():null),e.error&&F(e.error)}function St(e){bt(),ke.current=e,Me(e);let n=e.epics??[];r(n);let i=pM()[at];t(Pt(_M(Se===`epics`?Ze(n):e.columns),i)),a(e.children?Object.values(e.children).flat():null),_(t=>t&&(e.epics??[]).some(e=>e.key===t)?t:null),e.error&&F(e.error)}async function Et(){let e=await gM(`/api/board`);St(e),e.flags&&ee(e.flags)}(0,C.useEffect)(()=>{Et()},[]),(0,C.useEffect)(()=>{Ee||Oe.current?.collapse()},[]),(0,C.useEffect)(()=>{let e=pM()[at];e?.length&&t(t=>Pt(t,e))},[at]),(0,C.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`k`){if(e.preventDefault(),ze.current){ze.current=!1,Pe(!1),Be.current?.focus();return}Be.current=document.activeElement instanceof HTMLElement?document.activeElement:null,ze.current=!0,Pe(!0);return}e.key===`Escape`&&ze.current&&(e.preventDefault(),ze.current=!1,Pe(!1),Be.current?.focus())}return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]);function Dt(e){Re(e),Ie(!0)}async function Ot(e){let t=Qe(e,g,Le??D);t&&(Ie(!1),Re(void 0),await kt(t))}async function kt(e){ie(!0),F(``),console.info(`[pipe-kan] Refresh`,e);let t=Ae.loading(`Refreshing…`,{description:e.scope===`selected`?`Listing the focused Epic's works`:`Listing Issues and Epics`});try{let n=await gM(`/api/refresh`,{method:`POST`,body:JSON.stringify(e)});St(n),e.scope===`all`&&ee(e.flags),n.error?(console.info(`[pipe-kan] Refresh error`,n.error),Ae.error(`Refresh failed`,{id:t,description:n.error})):(console.info(`[pipe-kan] Refreshed`,n.epics.length,`epics`),Ae.success(`Refreshed`,{id:t,description:e.scope===`selected`?e.epicKeys?.join(`, `):`${n.epics.length} epics`}))}catch(e){let n=e instanceof Error?e.message:`Refresh failed`;console.info(`[pipe-kan] Refresh failed`,n),F(n),Ae.error(`Refresh failed`,{id:t,description:n})}finally{ie(!1)}}function Nt(t){for(let[n,r]of Object.entries(e))if(r.some(e=>e.key===t))return n;return``}function Rt(e,i,a){F(``);let o=n.find(t=>t.key===e);if(o){let n=a??o.status??`To Do`;r(n=>{let r=n.findIndex(t=>t.key===e);if(r===-1)return n;let a=[...n];return a[r]={...a[r],status:i},Se===`epics`&&t(Pt(_M(Ze(a)),pM()[at])),a}),Ve.move({key:e,target:i,source:n,kind:`epic`});return}let s=a??Nt(e);Ve.move({key:e,target:i,source:s,kind:`card`})}function Gt(e,t){if(t.ctrlKey||t.metaKey){t.preventDefault(),t.stopPropagation(),Ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return}bt(),on(e)}function Kt(e,t){t.preventDefault(),t.stopPropagation(),bt(),rn(e)}function Qt(e){return{...e?{status:e}:{},selectedEpic:g,boardKind:Se}}function $t(e){h(``),p(!1),d(dn(Qt(e)))}function en(e){l(Sn(e)),s(!0)}function tn(e){let{draft:t,seed:n}=fn(Qt(e));h(``),p(!1),d(t),l(n),s(!0)}async function rn(e){let t=Je.find(t=>t.key===e)??Xe.find(t=>t.key===e),r=n.find(t=>t.key===e),i=Nt(e)||r?.status;h(``),p(!1),d(pn({key:e,summary:t?.summary??r?.summary??``,labels:t?.labels??r?.labels??[],...i?{status:i}:{},...t?.epic?{epic:t.epic}:{},...t?.type||r?{type:t?.type??`Epic`}:{},...v===e&&S.length?{fields:S}:{}}));try{let t=await gM(`/api/open`,{method:`POST`,body:JSON.stringify({key:e})});if(t.error||!t.fields?.length)return;d(n=>n?.mode===`edit`&&n.key===e?xn(n,t.fields):n)}catch{}}async function an(){if(u&&mn(u,f)){p(!0),h(``);try{if(u.mode===`create`){let e=hn(u);if(!e)return;let t=await gM(`/api/issue/create`,{method:`POST`,body:JSON.stringify(e)});if(!t.ok){let e=t.error??`Create failed`;h(e),Ae.error(`Create failed`,{description:e});return}t.board&&St(t.board),Ae.success(`Created`,{description:t.key??u.title.trim()}),d(null);return}let e=gn(u);if(!e)return;let t=await gM(`/api/issue/edit`,{method:`POST`,body:JSON.stringify(e)});if(!t.ok){let e=t.error??`Edit failed`;h(e),Ae.error(`Edit failed`,{description:e});return}t.board&&St(t.board),Ae.success(`Saved`,{description:u.key});let n=u.key;d(null),v===n&&on(n)}catch(e){let t=e instanceof Error?e.message:`Save failed`;h(t),Ae.error(`Save failed`,{description:t})}finally{p(!1)}}}async function on(e){let t=ke.current?.columns.flatMap(e=>e.cards)??[],r=Je.find(t=>t.key===e)??t.find(t=>t.key===e),i=n.find(t=>t.key===e),a=r??(i?{key:i.key,summary:i.summary,priority:i.priority,assignee:i.assignee,dueDate:i.dueDate,labels:i.labels}:void 0),o=`/browse/${e}`;y(e),x(o),E(``),w(a?hM(a,o):[{label:`Jira URL`,value:o}]);let s=await gM(`/api/open`,{method:`POST`,body:JSON.stringify({key:e})});if(x(s.url),s.error){E(s.error),w(a?hM(a,s.url):[{label:`Jira URL`,value:s.url}]);return}w(s.fields)}function sn(e,t){let n=[];for(let[r,i]of Object.entries(t))for(let t of i)He.has(t.key)&&n.push({key:t.key,target:e,source:r,kind:`card`});return n}function cn(e,n){if(B.hide.includes(n.overContainer)){t(e=>It(n.previousValue,e,g,A,We));return}if(n.kind===`column`){let n=Object.keys(e),r=pM();r[at]=n,mM(r),t(e=>Pt(e,n));return}if(n.activeContainer===n.overContainer)return;let r=String(n.event.active.id);if(He.has(r)&&He.size>1){let e=sn(n.overContainer,n.previousValue);if(e.length===0)return;t(e=>{let t={},r=[];for(let[n,i]of Object.entries(e)){let e=[];for(let t of i)He.has(t.key)?r.push(t):e.push(t);t[n]=e}return t[n.overContainer]=[...t[n.overContainer]??[],...r],t}),bt(),Ve.move(e);return}let i=Object.entries(n.previousValue).find(([,e])=>e.some(e=>e.key===r))?.[0];i&&(bt(),Rt(r,n.overContainer,i))}function ln(){let e=L===`dark`?`light`:`dark`;yM(e),ae(e)}function un(e){return At(Ye,e,A,B.filter,n)}function _n(){uM(`stories`),Ce(`stories`),_(null),ke.current&&xt(ke.current,`stories`)}function vn(){uM(`epics`),Ce(`epics`),_(null),ke.current&&xt(ke.current,`epics`)}function yn(){uM(`combined`),Ce(`combined`),_(null),ke.current&&xt(ke.current,`combined`)}function bn(e){On(e),Te(e)}function Cn(){kn(),Te(`calendar`)}async function En(e){let r=Se===`epics`||Se===`combined`;if(r&&_n(),_(e),!e||!n.some(t=>t.key===e)||(r&&ke.current?ke.current.columns.flatMap(e=>e.cards):Je).filter(t=>t.epic===e&&ot(t,A)).length>0)return;ie(!0),F(``);let i=Ae.loading(`Listing children…`);try{let n=await gM(`/api/epic`,{method:`POST`,body:JSON.stringify({key:e})});t(t=>Lt(t,_M(n.columns),e)),Ae.success(`Listed children`,{id:i})}catch(e){let t=e instanceof Error?e.message:`Epic list failed`;F(t),Ae.error(`Epic list failed`,{id:i,description:t})}finally{ie(!1)}}function An(){let e=Vt(ce,me);if(!e.ok){_e(`Folder names must be unique`);return}he(``),_e(``),vt(e.state)}function jn(){let e=qt(fe,ve,{...B,boardKind:Se,projects:se});if(!e.ok){xe(`Preset names must be unique`);return}ye(``),xe(``),yt(e.presets)}function Mn(e){let t=Jt(fe,e);if(!t.ok||se.length&&!oM(t.chrome.projects,se))return;_t({...B,...t.chrome});let n=t.chrome.boardKind??`stories`;n===`combined`?yn():n===`epics`?vn():Se!==`stories`&&_n()}function Nn(e){ze.current=!1,Pe(!1),j(``),e.kind===`all-stories`?_n():e.kind===`all-epics`?vn():e.kind===`all-combined`?yn():e.kind===`refresh`?Dt():e.kind===`agent`?s(!0):e.kind===`create`?$t():e.kind===`create-ai`?tn():e.kind===`preset`?Mn(e.name):e.kind===`epic`?(y(null),x(null),w([]),E(``),En(e.key)):e.kind===`card`&&(e.epic?En(e.epic):_n(),on(e.key))}function Pn(e){let t=Yt(fe,e,{...B,boardKind:Se,projects:se});t.ok&&yt(t.presets)}function Fn(e,t){let n=Xt(fe,e,t);if(!n.ok){xe(`Preset names must be unique`);return}xe(``),yt(n.presets)}return(0,G.jsxs)(`div`,{className:`bg-sidebar flex h-screen`,children:[(0,G.jsxs)(Jh,{id:`shell`,orientation:`horizontal`,className:`min-h-0 flex-1`,defaultLayout:ct.defaultLayout,onLayoutChanged:(e,t)=>{if(ct.onLayoutChanged(e,t),!t.isUserInteraction)return;let n=(e.epics??0)<=0;De(!n),fM(!n)},children:[(0,G.jsx)(Yh,{id:`epics`,panelRef:Oe,defaultSize:`244px`,minSize:`12rem`,maxSize:`40%`,collapsible:!0,collapsedSize:0,className:`min-h-0 overflow-hidden`,children:(0,G.jsxs)(`aside`,{className:`text-sidebar-foreground flex h-full min-h-0 flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex h-10 items-center justify-between px-4`,children:[(0,G.jsx)(`span`,{className:`text-[13px] font-medium`,children:`pipe-kan`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] tabular-nums`,children:et.length}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Collapse sidebar`,title:`Collapse sidebar`,onClick:()=>{De(!1),fM(!1),Oe.current?.collapse()},children:(0,G.jsx)(M,{className:`size-4`})})]})]}),(0,G.jsxs)(`nav`,{className:`flex flex-1 flex-col gap-0.5 overflow-auto px-2 pb-2`,children:[(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`stories`&&g===null?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:_n,children:`All stories`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`epics`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:vn,children:`All epics`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`combined`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:yn,children:`Combined`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,we===`calendar`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:Cn,children:`Calendar`}),ht?(0,G.jsx)(FM,{pane:rt,selectedEpic:g,childCount:un,favourites:ce,folderName:me,folderError:ge,onFolderName:he,onCreateFolder:An,onRenameFolder:(e,t)=>{let n=Ht(ce,e,t);if(!n.ok){_e(`Folder names must be unique`);return}_e(``),vt(n.state)},onDeleteFolder:e=>vt(Ut(ce,e)),listedEpics:n,onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onFile:(e,t)=>vt(Wt(ce,e,t)),onMove:Rt,onOpen:on}):null,(0,G.jsx)(LM,{presets:fe,presetName:ve,presetError:be,onPresetName:ye,onCreatePreset:jn,onApplyPreset:Mn,onOverwritePreset:Pn,onRenamePreset:Fn,onDeletePreset:e=>yt(Zt(fe,e))}),(0,G.jsx)(`div`,{className:`text-muted-foreground px-3 pt-3 pb-1 text-[11px] font-medium`,children:`Epics`}),tt.map(e=>e.status?(0,G.jsx)(MM,{status:e.status,epics:e.epics,selectedEpic:g,childCount:un,favourites:ce,listedEpics:n,onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onMove:Rt,onOpen:on},e.status):e.epics.map(e=>(0,G.jsx)(jM,{epic:e,selected:g===e.key,count:un(e.key),favourited:ce.keys.includes(e.key),moveTo:AM(n,e.status),onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onMove:Rt,onOpen:on},e.key)))]})]})}),(0,G.jsx)(Xh,{className:W(!Ee&&`hidden`)}),(0,G.jsx)(Yh,{id:`board`,defaultSize:`80%`,minSize:`24rem`,className:`min-h-0`,children:(0,G.jsx)(`div`,{className:`flex h-full min-h-0 flex-col p-2 pl-0`,children:(0,G.jsxs)(`div`,{className:`bg-background flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border`,children:[(0,G.jsxs)(`header`,{className:`flex min-h-11 shrink-0 flex-wrap items-center gap-2 px-3`,children:[Ee?null:(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Expand sidebar`,title:`Expand sidebar`,onClick:()=>{De(!0),fM(!0),Oe.current?.expand()},children:(0,G.jsx)(te,{className:`size-4`})}),(0,G.jsxs)(`div`,{role:`tablist`,"aria-label":`Board or Calendar`,className:`flex items-center gap-0.5`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":we===`board`,className:W(`h-7 rounded-md px-2 text-[13px] font-medium`,we===`board`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>bn(`board`),children:`Board`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":we===`calendar`,className:W(`h-7 rounded-md px-2 text-[13px] font-medium`,we===`calendar`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>bn(`calendar`),children:`Calendar`})]}),(0,G.jsx)(`span`,{className:`bg-primary/10 text-primary inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium`,children:(()=>{let{projects:e}=nt(D);return e.length>0?e.join(`, `):`DEMO`})()}),(0,G.jsxs)(Nj,{className:`h-7 max-w-72 min-w-40 flex-1 border-transparent bg-muted shadow-none`,children:[(0,G.jsx)(Fj,{children:(0,G.jsx)(z,{className:`size-3.5`})}),(0,G.jsx)(Ij,{value:A,onChange:e=>j(e.target.value),placeholder:`Search Epics and Cards`,"aria-label":`Search`,className:`h-7 text-[13px]`}),A?(0,G.jsx)(Fj,{align:`inline-end`,children:(0,G.jsx)(`button`,{type:`button`,"aria-label":`Clear search`,onClick:()=>j(``),children:(0,G.jsx)(de,{className:`size-3.5`})})}):null]}),(0,G.jsx)(`input`,{className:`placeholder:text-muted-foreground h-7 min-w-40 flex-1 rounded-md bg-muted px-2.5 text-[13px] outline-none`,value:D,onChange:e=>ee(e.target.value),placeholder:`Scope flags`,spellCheck:!1,"aria-label":`Scope flags`}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(I,{}),`Filter`]})}),(0,G.jsx)(DM,{facets:ft,filter:B.filter,onToggle:(e,t)=>_t({...B,filter:{...B.filter,[e]:CM(B.filter[e]??[],t)}}),onClear:()=>_t(Jj)})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(O,{}),`Sort`]})}),(0,G.jsx)(Ap,{align:`end`,children:(0,G.jsxs)(Pp,{value:B.sort,onValueChange:e=>_t({...B,sort:e}),children:[(0,G.jsx)(Fp,{value:`payload`,children:`Payload order`}),(0,G.jsx)(Fp,{value:`priority`,children:`Priority`}),(0,G.jsx)(Fp,{value:`age`,children:`Age`}),(0,G.jsx)(Fp,{value:`due`,children:`Due date`}),(0,G.jsx)(Fp,{value:`key`,children:`Key`})]})})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(N,{}),`Columns`]})}),(0,G.jsx)(Ap,{align:`end`,children:pt.map(e=>(0,G.jsx)(Np,{checked:!B.hide.includes(e),onCheckedChange:t=>_t({...B,hide:t?B.hide.filter(t=>t!==e):[...B.hide,e]}),children:e},e))})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(re,{}),`Display`]})}),(0,G.jsxs)(Ap,{align:`end`,className:`w-44`,children:[(0,G.jsx)(jp,{children:`Card properties`}),qj.map(e=>(0,G.jsxs)(Np,{checked:B.shown.includes(e),onCheckedChange:()=>_t({...B,shown:wM(B.shown,e)}),children:[e===`created`&&`Age`,e===`targetEnd`&&`Target end`,e===`priority`&&`Priority`,e===`labels`&&`Labels`,e===`assignee`&&`Assignee`,e===`dueDate`&&`Due date`]},e))]})]}),(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>Dt(),disabled:ne,"aria-busy":ne,children:[ne?(0,G.jsx)(TE,{className:`size-3.5`}):null,`Refresh`]}),(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>s(e=>!e),"aria-pressed":o,children:[(0,G.jsx)(k,{className:`mr-1 size-4`}),`Agent`]}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:ln,"aria-label":L===`dark`?`Switch to light mode`:`Switch to dark mode`,children:L===`dark`?(0,G.jsx)(le,{}):(0,G.jsx)(R,{})}),P?(0,G.jsx)(`p`,{className:`text-destructive w-full text-[13px] whitespace-pre-wrap`,children:P}):null]}),(0,G.jsxs)(Jh,{id:`board-open`,orientation:`horizontal`,className:`min-h-0 flex-1`,defaultLayout:lt.defaultLayout,onLayoutChanged:lt.onLayoutChanged,children:[(0,G.jsx)(Yh,{id:`cards`,defaultSize:v?`70%`:`100%`,minSize:`16rem`,className:`min-h-0`,children:(0,G.jsx)(`main`,{className:W(`h-full min-h-0 min-w-0 px-2 pb-2`,we===`calendar`?`overflow-hidden`:`overflow-auto`),children:we===`calendar`?(0,G.jsx)(yE,{cards:Object.values(qe).flat(),onOpen:e=>void on(e)}):(0,G.jsxs)(Tj,{className:`h-full min-h-0`,value:qe,onValueChange:e=>t(t=>Ft(e,t,g,A,We)),getItemValue:e=>e.key,restoreOnCancel:!0,onValueCommit:cn,children:[(0,G.jsx)(Ej,{className:`grid h-full min-h-0 grid-cols-1 auto-rows-fr gap-3`,children:it.length?(0,G.jsx)(Jh,{id:`columns`,orientation:`horizontal`,className:`min-h-0`,defaultLayout:ut.defaultLayout,onLayoutChanged:ut.onLayoutChanged,children:Object.entries(qe).map(([e,t],n,r)=>(0,G.jsxs)(C.Fragment,{children:[n>0?(0,G.jsx)(Xh,{}):null,(0,G.jsx)(Yh,{id:e,defaultSize:`${100/Math.max(r.length,1)}%`,minSize:`16rem`,className:`min-h-0 min-w-0`,children:(0,G.jsx)(kM,{title:e,cards:t,disabled:ne,selected:He,shown:Ge,onClick:Gt,onDoubleClick:Kt,onCreate:$t,onHide:()=>_t({...B,hide:[...B.hide,e]})})})]},e))}):null}),(0,G.jsx)(Mj,{children:({value:e,variant:t})=>{if(t===`column`)return(0,G.jsx)(kM,{title:String(e),cards:qe[String(e)]??[],isOverlay:!0,shown:Ge});let n=Object.values(qe).flat().find(t=>t.key===e);if(!n)return null;let r=He.has(n.key)?He.size:1;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(OM,{card:n,isOverlay:!0,variant:(n.type??``).toLowerCase()===`epic`?`epic`:`story`,shown:Ge}),r>1?(0,G.jsx)(`span`,{className:`absolute -top-2 -right-2 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-[11px] font-medium text-primary-foreground`,children:r}):null]})}})]})})}),v?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xh,{}),(0,G.jsx)(Yh,{id:`open`,defaultSize:`30%`,minSize:`16rem`,className:`min-h-0`,children:(0,G.jsxs)(`aside`,{className:`flex h-full min-h-0 flex-col border-l`,children:[(0,G.jsxs)(`div`,{className:`flex h-10 items-center gap-2 px-3`,children:[(0,G.jsx)(`a`,{className:`min-w-0 flex-1 truncate text-[13px] font-medium underline-offset-4 hover:underline`,href:b??void 0,target:`_blank`,rel:`noreferrer`,children:v}),(0,G.jsx)(K,{variant:`ghost`,size:`sm`,className:`h-7 text-[12px]`,type:`button`,onClick:()=>{v&&rn(v)},children:`Edit`}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close issue`,onClick:()=>{y(null),x(null),w([]),E(``)},children:(0,G.jsx)(de,{})})]}),(0,G.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:[T?(0,G.jsx)(`p`,{className:`text-destructive px-4 pt-3 text-[13px] whitespace-pre-wrap`,children:T}):null,(0,G.jsx)(NM,{fields:S}),dt?(0,G.jsx)(`iframe`,{title:v??`Issue`,src:dt,className:`min-h-64 w-full border-0 bg-background`}):b?(0,G.jsx)(`div`,{className:`text-muted-foreground px-4 pb-6 text-[13px]`,children:`Jira refuses to embed this page.`}):null]})]})})]}):null]})]})})}),o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xh,{}),(0,G.jsx)(yg,{open:o,onClose:()=>s(!1),selectedIssueKey:v??g??void 0,boardView:{scope:`view`,kind:Se,selectedEpic:Ke?null:g,search:A,filter:B.filter,sort:B.sort,hide:B.hide,columns:Object.entries(qe).map(([e,t])=>({title:e,cards:t.map(e=>({key:e.key,summary:e.summary,epic:e.epic,assignee:e.assignee,priority:e.priority,labels:e.labels,dueDate:e.dueDate,targetEnd:e.targetEnd}))})),epics:et.map(e=>({key:e.key,summary:e.summary,status:e.status}))},pipeView:je?{scope:`pipe`,kind:`stories`,selectedEpic:null,search:``,filter:{},sort:`payload`,hide:[],columns:je.columns.map(e=>({title:e.title,cards:e.cards.map(e=>({key:e.key,summary:e.summary,epic:e.epic,assignee:e.assignee,priority:e.priority,labels:e.labels,dueDate:e.dueDate,targetEnd:e.targetEnd}))})),epics:je.epics.map(e=>({key:e.key,summary:e.summary,status:e.status}))}:void 0,onApplyPreset:Mn,onSetFilter:e=>_t({...B,filter:e}),onConfirmRefresh:Dt,onBoardMutated:()=>{Et()},seedPrompt:c,onSeedConsumed:()=>l(null)})]}):null]}),(0,G.jsx)(wD,{open:Fe,onOpenChange:e=>{Ie(e),e||Re(void 0)},children:(0,G.jsxs)(DD,{children:[(0,G.jsxs)(OD,{children:[(0,G.jsx)(AD,{children:`Refresh`}),(0,G.jsx)(jD,{children:g?`Refresh all Epics, or only the focused Epic ${g}.`:$e})]}),(0,G.jsxs)(kD,{children:[(0,G.jsx)(MD,{disabled:ne,children:`Cancel`}),(0,G.jsx)(K,{type:`button`,variant:`outline`,disabled:ne||!g,onClick:()=>void Ot(`selected`),children:g?`Refresh selected (${g})`:`Refresh selected`}),(0,G.jsx)(K,{type:`button`,disabled:ne,onClick:()=>void Ot(`all`),children:`Refresh all Epics`})]})]})}),(0,G.jsx)(wE,{theme:L}),u?(0,G.jsx)(CE,{draft:u,catalog:mt,busy:f,error:m,onChange:d,onSubmit:()=>void an(),onClose:()=>{f||(d(null),h(``))},onDraftWithAi:u.mode===`create`?()=>en(u):void 0}):null,Ne?(0,G.jsx)(xE,{presets:fe.map(e=>e.name),epics:je?.epics??n,cards:Xe,favouriteKeys:ce.keys,onPick:Nn,onClose:()=>{ze.current=!1,Pe(!1),Be.current?.focus()}}):null]})}function FM({pane:e,selectedEpic:t,childCount:n,favourites:r,folderName:i,folderError:a,onFolderName:o,onCreateFolder:s,onRenameFolder:c,onDeleteFolder:l,listedEpics:u,onSelect:d,onToggleFavourite:f,onFile:p,onMove:m,onOpen:h}){let[g,_]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),`Favourites`));function v(e){_(e);let t=Xj(Rj,Kj);if(e)for(let e of[...t])e.toLowerCase()===`favourites`&&t.delete(e);else t.add(`Favourites`);Zj(t,Rj)}let y=r.folders.map(e=>e.name);return(0,G.jsxs)(pg,{open:g,onOpenChange:v,className:`flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 px-1`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 min-w-0 flex-1 items-center gap-1.5 px-2 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!g&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:`Favourites`})]})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Favourite Folders`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`start`,className:`w-56`,children:[(0,G.jsx)(jp,{children:`Create Folder`}),(0,G.jsxs)(`div`,{className:`px-2 pb-2`,children:[(0,G.jsx)(`input`,{className:`border-input h-7 w-full rounded-md border bg-transparent px-2 text-[13px] outline-none`,value:i,onChange:e=>o(e.target.value),placeholder:`Name`,"aria-label":`Folder name`,onKeyDown:e=>{e.key===`Enter`&&s()}}),a?(0,G.jsx)(`p`,{className:`text-destructive pt-1 text-[11px]`,children:a}):null]}),(0,G.jsx)(Mp,{onClick:s,children:`Create`}),y.length?(0,G.jsx)(Ip,{}):null,y.map(e=>(0,G.jsxs)(Mp,{onClick:()=>{let t=window.prompt(`Rename Folder`,e);t!=null&&c(e,t)},children:[`Rename `,e]},`rename-${e}`)),y.map(e=>(0,G.jsxs)(Mp,{onClick:()=>l(e),children:[`Delete `,e]},`delete-${e}`))]})]})]}),(0,G.jsxs)(hg,{className:`flex flex-col gap-0.5`,children:[e.unfiled.map(e=>(0,G.jsx)(jM,{epic:e,selected:t===e.key,count:n(e.key),favourited:!0,folders:y,onSelect:d,onToggleFavourite:f,onFile:p,moveTo:AM(u,e.status),onMove:m,onOpen:h},e.key)),e.folders.map(e=>(0,G.jsx)(IM,{folder:e,selectedEpic:t,childCount:n,folderNames:y,listedEpics:u,onSelect:d,onToggleFavourite:f,onFile:p,onMove:m,onOpen:h},e.name))]})]})}function IM({folder:e,selectedEpic:t,childCount:n,folderNames:r,listedEpics:i,onSelect:a,onToggleFavourite:o,onFile:s,onMove:c,onOpen:l}){let[u,d]=(0,C.useState)(()=>!Qj(Xj(zj),e.name));function f(t){d(t);let n=Xj(zj);if(t)for(let t of[...n])t.toLowerCase()===e.name.toLowerCase()&&n.delete(t);else n.add(e.name);Zj(n,zj)}return(0,G.jsxs)(pg,{open:u,onOpenChange:f,className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 items-center gap-1.5 px-3 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:e.name}),(0,G.jsx)(`span`,{className:`text-[11px] tabular-nums`,children:e.epics.length})]})}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:e.epics.map(e=>(0,G.jsx)(jM,{epic:e,selected:t===e.key,count:n(e.key),favourited:!0,folders:r,onSelect:a,onToggleFavourite:o,onFile:s,moveTo:AM(i,e.status),onMove:c,onOpen:l},e.key))})]})}function LM({presets:e,presetName:t,presetError:n,onPresetName:r,onCreatePreset:i,onApplyPreset:a,onOverwritePreset:o,onRenamePreset:s,onDeletePreset:c}){let[l,u]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),`Presets`));function d(e){u(e);let t=Xj(Rj,Kj);if(e)for(let e of[...t])e.toLowerCase()===`presets`&&t.delete(e);else t.add(`Presets`);Zj(t,Rj)}return(0,G.jsxs)(pg,{open:l,onOpenChange:d,className:`flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 px-1`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 min-w-0 flex-1 items-center gap-1.5 px-2 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!l&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:`Presets`})]})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Presets`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`start`,className:`w-56`,children:[(0,G.jsx)(jp,{children:`Save Preset`}),(0,G.jsxs)(`div`,{className:`px-2 pb-2`,children:[(0,G.jsx)(`input`,{className:`border-input h-7 w-full rounded-md border bg-transparent px-2 text-[13px] outline-none`,value:t,onChange:e=>r(e.target.value),placeholder:`Name`,"aria-label":`Preset name`,onKeyDown:e=>{e.key===`Enter`&&i()}}),n?(0,G.jsx)(`p`,{className:`text-destructive pt-1 text-[11px]`,children:n}):null]}),(0,G.jsx)(Mp,{onClick:i,children:`Save`})]})]})]}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`hover:bg-foreground/5 flex h-7 min-w-0 flex-1 items-center rounded-lg px-[7px] text-left text-[13px] font-medium`,onClick:()=>a(e.name),children:(0,G.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Preset ${e.name}`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`end`,children:[(0,G.jsx)(Mp,{onClick:()=>o(e.name),children:`Save over`}),(0,G.jsx)(Mp,{onClick:()=>{let t=window.prompt(`Rename Preset`,e.name);t!=null&&s(e.name,t)},children:`Rename`}),(0,G.jsx)(Mp,{onClick:()=>c(e.name),children:`Delete`})]})]})]},e.name))})]})}(0,fe.createRoot)(document.getElementById(`root`)).render((0,G.jsx)(C.StrictMode,{children:(0,G.jsx)(PM,{})}));
56
+ `},hO={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function gO(e){let{announcements:t=hO,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=mO}=e,{announce:a,announcement:o}=uO(),s=XD(`DndLiveRegion`),[c,l]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{l(!0)},[]),fO((0,C.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=C.createElement(C.Fragment,null,C.createElement(cO,{id:r,value:i.draggable}),C.createElement(lO,{id:s,announcement:o}));return n?(0,pe.createPortal)(u,n):u}var _O;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(_O||={});function vO(){}function yO(e,t){return(0,C.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function bO(){var e=[...arguments];return(0,C.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var xO=Object.freeze({x:0,y:0});function SO(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function CO(e,t){let n=rO(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function wO(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function TO(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function EO(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function DO(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}var OO=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=EO(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=EO(r),o=i.reduce((e,t,r)=>e+SO(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(wO)};function kO(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var AO=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=kO(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(TO)};function jO(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function MO(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:xO}function NO(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var PO=NO(1);function FO(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function IO(e,t,n){let r=FO(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var LO={ignoreTransform:!1};function RO(e,t){t===void 0&&(t=LO);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=LD(e).getComputedStyle(e);t&&(n=IO(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function zO(e){return RO(e,{ignoreTransform:!0})}function BO(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function VO(e,t){return t===void 0&&(t=LD(e).getComputedStyle(e)),t.position===`fixed`}function HO(e,t){t===void 0&&(t=LD(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function UO(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(RD(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!zD(i)||BD(i)||n.includes(i))return n;let a=LD(e).getComputedStyle(i);return i!==e&&HO(i,a)&&n.push(i),VO(i,a)?n:r(i.parentNode)}return e?r(e):n}function WO(e){let[t]=UO(e,1);return t??null}function GO(e){return!PD||!e?null:FD(e)?e:ID(e)?RD(e)||e===VD(e).scrollingElement?window:zD(e)?e:null:null}function KO(e){return FD(e)?e.scrollX:e.scrollLeft}function qO(e){return FD(e)?e.scrollY:e.scrollTop}function JO(e){return{x:KO(e),y:qO(e)}}var YO;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(YO||={});function XO(e){return!PD||!e?!1:e===document.scrollingElement}function ZO(e){let t={x:0,y:0},n=XO(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var QO={x:.2,y:.2};function $O(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=QO);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=ZO(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=YO.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=YO.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=YO.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=YO.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function ek(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function tk(e){return e.reduce((e,t)=>QD(e,JO(t)),xO)}function nk(e){return e.reduce((e,t)=>e+KO(t),0)}function rk(e){return e.reduce((e,t)=>e+qO(t),0)}function ik(e,t){if(t===void 0&&(t=RO),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);WO(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var ak=[[`x`,[`left`,`right`],nk],[`y`,[`top`,`bottom`],rk]],ok=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=UO(t),r=tk(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of ak)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},sk=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function ck(e){let{EventTarget:t}=LD(e);return e instanceof t?e:VD(e)}function lk(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var uk;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(uk||={});function dk(e){e.preventDefault()}function fk(e){e.stopPropagation()}var pk;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(pk||={});var mk={start:[pk.Space,pk.Enter],cancel:[pk.Esc],end:[pk.Space,pk.Enter,pk.Tab]},hk=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case pk.Right:return{...n,x:n.x+25};case pk.Left:return{...n,x:n.x-25};case pk.Down:return{...n,y:n.y+25};case pk.Up:return{...n,y:n.y-25}}},gk=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new sk(VD(t)),this.windowListeners=new sk(LD(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(uk.Resize,this.handleCancel),this.windowListeners.add(uk.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(uk.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&ik(n),t(xO)}handleKeyDown(e){if(tO(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=mk,coordinateGetter:a=hk,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:xO;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=$D(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=ZO(n),p=ek(n),m={x:Math.min(i===pk.Right?p.right-p.width/2:p.right,Math.max(i===pk.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===pk.Down?p.bottom-p.height/2:p.bottom,Math.max(i===pk.Down?p.top:p.top+p.height/2,u.y))},h=i===pk.Right&&!s||i===pk.Left&&!c,g=i===pk.Down&&!l||i===pk.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===pk.Right&&e<=d.x||i===pk.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===pk.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===pk.Down&&e<=d.y||i===pk.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===pk.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,QD($D(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};gk.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=mk,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function _k(e){return!!(e&&`distance`in e)}function vk(e){return!!(e&&`delay`in e)}var yk=class{constructor(e,t,n){n===void 0&&(n=ck(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=VD(i),this.documentListeners=new sk(this.document),this.listeners=new sk(n),this.windowListeners=new sk(LD(i)),this.initialCoordinates=rO(r)??xO,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(uk.Resize,this.handleCancel),this.windowListeners.add(uk.DragStart,dk),this.windowListeners.add(uk.VisibilityChange,this.handleCancel),this.windowListeners.add(uk.ContextMenu,dk),this.documentListeners.add(uk.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(vk(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(_k(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(uk.Click,fk,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(uk.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=rO(e)??xO,s=$D(n,o);if(!t&&a){if(_k(a)){if(a.tolerance!=null&&lk(s,a.tolerance))return this.handleCancel();if(lk(s,a.distance))return this.handleStart()}if(vk(a)&&lk(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===pk.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},bk={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},xk=class extends yk{constructor(e){let{event:t}=e,n=VD(t.target);super(e,bk,n)}};xk.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var Sk={move:{name:`mousemove`},end:{name:`mouseup`}},Ck;(function(e){e[e.RightClick=2]=`RightClick`})(Ck||={});var wk=class extends yk{constructor(e){super(e,Sk,VD(e.event.target))}};wk.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==Ck.RightClick&&(r?.({event:n}),!0)}}];var Tk={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},Ek=class extends yk{constructor(e){super(e,Tk)}static setup(){return window.addEventListener(Tk.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Tk.move.name,e)};function e(){}}};Ek.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Dk;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Dk||={});var Ok;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(Ok||={});function kk(e){let{acceleration:t,activator:n=Dk.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=Ok.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=jk({delta:d,disabled:!a}),[m,h]=WD(),g=(0,C.useRef)({x:0,y:0}),_=(0,C.useRef)({x:0,y:0}),v=(0,C.useMemo)(()=>{switch(n){case Dk.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Dk.DraggableRect:return i}},[n,i,c]),y=(0,C.useRef)(null),b=(0,C.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,C.useMemo)(()=>s===Ok.TreeOrder?[...l].reverse():l,[s,l]);(0,C.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=$O(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var Ak={x:{[YO.Backward]:!1,[YO.Forward]:!1},y:{[YO.Backward]:!1,[YO.Forward]:!1}};function jk(e){let{delta:t,disabled:n}=e,r=JD(t);return KD(e=>{if(n||!r||!e)return Ak;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[YO.Backward]:e.x[YO.Backward]||i.x===-1,[YO.Forward]:e.x[YO.Forward]||i.x===1},y:{[YO.Backward]:e.y[YO.Backward]||i.y===-1,[YO.Forward]:e.y[YO.Forward]||i.y===1}}},[n,t,r])}function Mk(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return KD(e=>t==null?null:r??e??null,[r,t])}function Nk(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var Pk;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(Pk||={});var Fk;(function(e){e.Optimized=`optimized`})(Fk||={});var Ik=new Map;function Lk(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,C.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,C.useRef)(e),d=g(),f=GD(d),p=(0,C.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,C.useRef)(null),h=KD(t=>{if(d&&!n)return Ik;if(!t||t===Ik||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ok(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,C.useEffect)(()=>{u.current=e},[e]),(0,C.useEffect)(()=>{d||p()},[n,d]),(0,C.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,C.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case Pk.Always:return!1;case Pk.BeforeDragging:return n;default:return!n}}}function Rk(e,t){return KD(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function zk(e,t){return Rk(e,t)}function Bk(e){let{callback:t,disabled:n}=e,r=UD(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Vk(e){let{callback:t,disabled:n}=e,r=UD(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Hk(e){return new ok(RO(e),e)}function Uk(e,t,n){t===void 0&&(t=Hk);let[r,i]=(0,C.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Bk({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Vk({callback:a});return HD(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function Wk(e){return MO(e,Rk(e))}var Gk=[];function Kk(e){let t=(0,C.useRef)(e),n=KD(n=>e?n&&n!==Gk&&e&&t.current&&e.parentNode===t.current.parentNode?n:UO(e):Gk,[e]);return(0,C.useEffect)(()=>{t.current=e},[e]),n}function qk(e){let[t,n]=(0,C.useState)(null),r=(0,C.useRef)(e),i=(0,C.useCallback)(e=>{let t=GO(e.target);t&&n(e=>e?(e.set(t,JO(t)),new Map(e)):null)},[]);return(0,C.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=GO(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,JO(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{GO(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,C.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>QD(e,t),xO):tk(e):xO,[e,t])}function Jk(e,t){t===void 0&&(t=[]);let n=(0,C.useRef)(null);return(0,C.useEffect)(()=>{n.current=null},t),(0,C.useEffect)(()=>{let t=e!==xO;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?$D(e,n.current):xO}function Yk(e){(0,C.useEffect)(()=>{if(!PD)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Xk(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Zk(e){return(0,C.useMemo)(()=>e?BO(e):null,[e])}var Qk=[];function $k(e,t){t===void 0&&(t=RO);let[n]=e,r=Zk(n?LD(n):null),[i,a]=(0,C.useState)(Qk);function o(){a(()=>e.length?e.map(e=>XO(e)?r:new ok(t(e),e)):Qk)}let s=Vk({callback:o});return HD(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function eA(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return zD(t)?t:e}function tA(e){let{measure:t}=e,[n,r]=(0,C.useState)(null),i=Vk({callback:(0,C.useCallback)(e=>{for(let{target:n}of e)if(zD(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=qD((0,C.useCallback)(e=>{let n=eA(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,C.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var nA=[{sensor:xk,options:{}},{sensor:gk,options:{}}],rA={current:{}},iA={draggable:{measure:zO},droppable:{measure:zO,strategy:Pk.WhileDragging,frequency:Fk.Optimized},dragOverlay:{measure:RO}},aA=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},oA={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new aA,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:vO},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:iA,measureDroppableContainers:vO,windowRect:null,measuringScheduled:!1},sA={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:vO,draggableNodes:new Map,over:null,measureDroppableContainers:vO},cA=(0,C.createContext)(sA),lA=(0,C.createContext)(oA);function uA(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new aA}}}function dA(e,t){switch(t.type){case _O.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case _O.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case _O.DragEnd:case _O.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case _O.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new aA(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case _O.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new aA(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case _O.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new aA(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function fA(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,C.useContext)(cA),a=JD(r),o=JD(n?.id);return(0,C.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!tO(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=oO(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function pA(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function mA(e){return(0,C.useMemo)(()=>({draggable:{...iA.draggable,...e?.draggable},droppable:{...iA.droppable,...e?.droppable},dragOverlay:{...iA.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function hA(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,C.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;HD(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=MO(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=WO(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var gA=(0,C.createContext)({...xO,scaleX:1,scaleY:1}),_A;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(_A||={});var vA=(0,C.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=nA,collisionDetection:o=AO,measuring:s,modifiers:c,...l}=e,[u,d]=(0,C.useReducer)(dA,void 0,uA),[f,p]=pO(),[m,h]=(0,C.useState)(_A.Uninitialized),g=m===_A.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,C.useRef)({initial:null,translated:null}),w=(0,C.useMemo)(()=>_==null?null:{id:_,data:x?.data??rA,rect:S},[_,x]),T=(0,C.useRef)(null),[E,D]=(0,C.useState)(null),[O,ee]=(0,C.useState)(null),k=GD(l,Object.values(l)),A=XD(`DndDescribedBy`,t),j=(0,C.useMemo)(()=>b.getEnabled(),[b]),M=mA(s),{droppableRects:te,measureDroppableContainers:N,measuringScheduled:P}=Lk(j,{dragging:g,dependencies:[y.x,y.y],config:M.droppable}),F=Mk(v,_),ne=(0,C.useMemo)(()=>O?rO(O):null,[O]),re=Ae(),ie=zk(F,M.draggable.measure);hA({activeNode:_==null?null:v.get(_),config:re.layoutShiftCompensation,initialRect:ie,measure:M.draggable.measure});let I=Uk(F,M.draggable.measure,ie),L=Uk(F?F.parentElement:null),R=(0,C.useRef)({activatorEvent:null,active:null,activeNode:F,collisionRect:null,collisions:null,droppableRects:te,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ae=b.getNodeFor(R.current.over?.id),z=tA({measure:M.dragOverlay.measure}),B=z.nodeRef.current??F,oe=g?z.rect??I:null,se=!!(z.nodeRef.current&&z.rect),ce=Wk(se?null:I),le=Zk(B?LD(B):null),ue=Kk(g?ae??F:null),de=$k(ue),fe=pA(c,{transform:{x:y.x-ce.x,y:y.y-ce.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:I,containerNodeRect:L,draggingNodeRect:oe,over:R.current.over,overlayNodeRect:z.rect,scrollableAncestors:ue,scrollableAncestorRects:de,windowRect:le}),me=ne?QD(ne,y):null,he=qk(ue),ge=Jk(he),_e=Jk(he,[I]),ve=QD(fe,ge),ye=oe?PO(oe,fe):null,be=w&&ye?o({active:w,collisionRect:ye,droppableRects:te,droppableContainers:j,pointerCoordinates:me}):null,xe=DO(be,`id`),[Se,Ce]=(0,C.useState)(null),we=jO(se?fe:QD(fe,_e),Se?.rect??null,I),Te=(0,C.useRef)(null),Ee=(0,C.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent,o=new n({active:T.current,activeNode:i,event:a,options:r,context:R,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=k.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=k.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=k.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,pe.unstable_batchedUpdates)(()=>{r?.(i),h(_A.Initializing),d({type:_O.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(Te.current),ee(a)})},onMove(e){d({type:_O.DragMove,coordinates:e})},onEnd:s(_O.DragEnd),onCancel:s(_O.DragCancel)});Te.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=R.current,o=null;if(t&&i){let{cancelDrop:s}=k.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===_O.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=_O.DragCancel)}T.current=null,(0,pe.unstable_batchedUpdates)(()=>{d({type:e}),h(_A.Uninitialized),Ce(null),D(null),ee(null),Te.current=null;let t=e===_O.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=k.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),De=Nk(a,(0,C.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Ee(n,t))},[v,Ee]));Yk(a),HD(()=>{I&&m===_A.Initializing&&h(_A.Initialized)},[I,m]),(0,C.useEffect)(()=>{let{onDragMove:e}=k.current,{active:t,activatorEvent:n,collisions:r,over:i}=R.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:ve.x,y:ve.y},over:i};(0,pe.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[ve.x,ve.y]),(0,C.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=R.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=k.current,o=r.get(xe),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,pe.unstable_batchedUpdates)(()=>{Ce(s),a?.(c),f({type:`onDragOver`,event:c})})},[xe]),HD(()=>{R.current={activatorEvent:O,active:w,activeNode:F,collisionRect:ye,collisions:be,droppableRects:te,draggableNodes:v,draggingNode:B,draggingNodeRect:oe,droppableContainers:b,over:Se,scrollableAncestors:ue,scrollAdjustedTranslate:ve},S.current={initial:oe,translated:ye}},[w,F,be,ye,v,B,oe,te,b,Se,ue,ve]),kk({...re,delta:y,draggingRect:ye,pointerCoordinates:me,scrollableAncestors:ue,scrollableAncestorRects:de});let Oe=(0,C.useMemo)(()=>({active:w,activeNode:F,activeNodeRect:I,activatorEvent:O,collisions:be,containerNodeRect:L,dragOverlay:z,draggableNodes:v,droppableContainers:b,droppableRects:te,over:Se,measureDroppableContainers:N,scrollableAncestors:ue,scrollableAncestorRects:de,measuringConfiguration:M,measuringScheduled:P,windowRect:le}),[w,F,I,O,be,L,z,v,b,te,Se,N,ue,de,M,P,le]),ke=(0,C.useMemo)(()=>({activatorEvent:O,activators:De,active:w,activeNodeRect:I,ariaDescribedById:{draggable:A},dispatch:d,draggableNodes:v,over:Se,measureDroppableContainers:N}),[O,De,w,I,d,A,v,Se,N]);return C.createElement(dO.Provider,{value:p},C.createElement(cA.Provider,{value:ke},C.createElement(lA.Provider,{value:Oe},C.createElement(gA.Provider,{value:we},i)),C.createElement(fA,{disabled:n?.restoreFocus===!1})),C.createElement(gO,{...n,hiddenTextDescribedById:A}));function Ae(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),yA=(0,C.createContext)(null),bA=`button`,xA=`Draggable`;function SA(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=XD(xA),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,C.useContext)(cA),{role:p=bA,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,C.useContext)(g?gA:yA),[v,y]=qD(),[b,x]=qD(),S=Xk(o,t),w=GD(n);return HD(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,C.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===bA?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function CA(){return(0,C.useContext)(lA)}var wA=`Droppable`,TA={timeout:25};function EA(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=XD(wA),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,C.useContext)(cA),u=(0,C.useRef)({disabled:n}),d=(0,C.useRef)(!1),f=(0,C.useRef)(null),p=(0,C.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...TA,...i},_=GD(h??r),v=Vk({callback:(0,C.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=qD((0,C.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=GD(t);return(0,C.useEffect)(()=>{v&&y.current&&(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,C.useEffect)(()=>(s({type:_O.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:_O.UnregisterDroppable,key:a,id:r})),[r]),(0,C.useEffect)(()=>{n!==u.current.disabled&&(s({type:_O.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function DA(e){let{animation:t,children:n}=e,[r,i]=(0,C.useState)(null),[a,o]=(0,C.useState)(null),s=JD(n);return!n&&!r&&s&&i(s),HD(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),C.createElement(C.Fragment,null,n,r?(0,C.cloneElement)(r,{ref:o}):null)}var OA={x:0,y:0,scaleX:1,scaleY:1};function kA(e){let{children:t}=e;return C.createElement(cA.Provider,{value:sA},C.createElement(gA.Provider,{value:OA},t))}var AA={position:`fixed`,touchAction:`none`},jA=e=>tO(e)?`transform 250ms ease`:void 0,MA=(0,C.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=jA}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...AA,width:s.width,height:s.height,top:s.top,left:s.left,transform:iO.Transform.toString(d),transformOrigin:i&&r?CO(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return C.createElement(n,{className:o,style:f,ref:t},a)}),NA=e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}},PA={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:iO.Transform.toString(t)},{transform:iO.Transform.toString(n)}]},sideEffects:NA({styles:{active:{opacity:`0`}}})};function FA(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return UD((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=eA(a);if(!c)return;let{transform:l}=LD(a).getComputedStyle(a),u=FO(l);if(!u)return;let d=typeof t==`function`?t:IA(t);return ik(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function IA(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...PA,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var LA=0;function RA(e){return(0,C.useMemo)(()=>{if(e!=null)return LA++,LA},[e])}var zA=C.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=CA(),S=(0,C.useContext)(gA),w=RA(d?.id),T=pA(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),E=Rk(f),D=FA({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),O=E?g.setRef:void 0;return C.createElement(kA,null,C.createElement(DA,{animation:D},d&&w?C.createElement(MA,{key:w,id:d.id,ref:O,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:E,style:{zIndex:l,...i},transform:T},n):null))});function BA(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function VA(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function HA(e){return e!==null&&e>=0}function UA(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function WA(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var GA=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=BA(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},KA={scaleX:1,scaleY:1},qA=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...KA}:null}let s=JA(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...KA}:r<t&&r>=a?{x:0,y:o.height+s,...KA}:{x:0,y:0,...KA}};function JA(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var YA=`Sortable`,XA=C.createContext({activeIndex:-1,containerId:YA,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:GA,disabled:{draggable:!1,droppable:!1}});function ZA(e){let{children:t,id:n,items:r,strategy:i=GA,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=CA(),d=XD(YA,n),f=s.rect!==null,p=(0,C.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,C.useRef)(p),v=!UA(p,_.current),y=g!==-1&&h===-1||v,b=WA(a);HD(()=>{v&&m&&u(p)},[v,p,m,u]),(0,C.useEffect)(()=>{_.current=p},[p]);let x=(0,C.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:VA(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return C.createElement(XA.Provider,{value:x},t)}var QA=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return BA(n,r,i).indexOf(t)},$A=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},ej={duration:200,easing:`ease`},tj=`transform`,nj=iO.Transition.toString({property:tj,duration:0,easing:`linear`}),rj={roleDescription:`sortable`};function ij(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,C.useState)(null),s=(0,C.useRef)(n);return HD(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=RO(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,C.useEffect)(()=>{a&&o(null)},[a]),a}function aj(e){let{animateLayoutChanges:t=$A,attributes:n,disabled:r,data:i,getNewIndex:a=QA,id:o,strategy:s,resizeObserverConfig:c,transition:l=ej}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,C.useContext)(XA),y=oj(r,p),b=u.indexOf(o),x=(0,C.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,C.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=EA({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:O,activatorEvent:ee,activeNodeRect:k,attributes:A,setNodeRef:j,listeners:M,isDragging:te,over:N,setActivatorNodeRef:P,transform:F}=SA({id:o,data:x,attributes:{...rj,...n},disabled:y.draggable}),ne=ND(D,j),re=!!O,ie=re&&!m&&HA(f)&&HA(g),I=!_&&te,L=ie?(I&&ie?F:null)??(s??v)({rects:h,activeNodeRect:k,activeIndex:f,overIndex:g,index:b}):null,R=HA(f)&&HA(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ae=O?.id,z=(0,C.useRef)({activeId:ae,items:u,newIndex:R,containerId:d}),B=u!==z.current.items,oe=t({active:O,containerId:d,isDragging:te,isSorting:re,id:o,index:b,items:u,newIndex:z.current.newIndex,previousItems:z.current.items,previousContainerId:z.current.containerId,transition:l,wasDragging:z.current.activeId!=null}),se=ij({disabled:!oe,index:b,node:T,rect:w});return(0,C.useEffect)(()=>{re&&z.current.newIndex!==R&&(z.current.newIndex=R),d!==z.current.containerId&&(z.current.containerId=d),u!==z.current.items&&(z.current.items=u)},[re,R,d,u]),(0,C.useEffect)(()=>{if(ae===z.current.activeId)return;if(ae!=null&&z.current.activeId==null){z.current.activeId=ae;return}let e=setTimeout(()=>{z.current.activeId=ae},50);return()=>clearTimeout(e)},[ae]),{active:O,activeIndex:f,attributes:A,data:x,rect:w,index:b,newIndex:R,items:u,isOver:E,isSorting:re,isDragging:te,listeners:M,node:T,overIndex:g,over:N,setNodeRef:ne,setActivatorNodeRef:P,setDroppableNodeRef:D,setDraggableNodeRef:j,transform:se??L,transition:ce()};function ce(){if(se||B&&z.current.newIndex===b)return nj;if(!(I&&!tO(ee)||!l)&&(re||oe))return iO.Transition.toString({...l,property:tj})}}function oj(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function sj(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var cj=[pk.Down,pk.Right,pk.Up,pk.Left],lj=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(cj.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case pk.Down:r.top<a.top&&t.push(n);break;case pk.Up:r.top>a.top&&t.push(n);break;case pk.Left:r.left>a.left&&t.push(n);break;case pk.Right:r.left<a.left&&t.push(n)}});let c=OO({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=DO(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=UO(c).some((e,t)=>s[t]!==e),i=uj(e,t),a=dj(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:$D(u,l)}}}};function uj(e,t){return!sj(e)||!sj(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function dj(e,t){return!sj(e)||!sj(t)||!uj(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var fj=(0,C.createContext)({columns:{},setColumns:()=>{},getItemId:()=>``,columnIds:[],activeId:null,setActiveId:()=>{},findContainer:()=>void 0,isColumn:()=>!1,modifiers:void 0}),pj=(0,C.createContext)({attributes:{},listeners:void 0,isDragging:!1,disabled:!1}),mj=(0,C.createContext)({listeners:void 0,isDragging:!1,disabled:!1}),hj=(0,C.createContext)(!1),gj=e=>$A({...e,wasDragging:!0}),_j={sideEffects:NA({styles:{active:{opacity:`0.4`}}})},vj=()=>()=>{},yj=()=>!0,bj=()=>!1,xj={activationConstraint:{distance:10}},Sj={activationConstraint:{delay:250,tolerance:5}},Cj={coordinateGetter:lj},wj={droppable:{strategy:Pk.Always}};function Tj({value:e,onValueChange:t,getItemValue:n,children:r,className:i,asChild:a=!1,onMove:o,onValueCommit:s,restoreOnCancel:c=!1,onDragStart:l,onDragEnd:u,onDragCancel:d,accessibility:f,modifiers:p,...m}){let h=e,g=t,[_,v]=(0,C.useState)(null),y=(0,C.useRef)(e),b=(0,C.useRef)(n);(0,C.useLayoutEffect)(()=>{y.current=e,b.current=n});let x=(0,C.useRef)(null),S=bO(yO(wk,xj),yO(Ek,Sj),yO(gk,Cj)),w=(0,C.useMemo)(()=>Object.keys(h),[h,n]),T=(0,C.useCallback)(e=>w.includes(e),[w]),E=(0,C.useCallback)(e=>T(e)?e:w.find(t=>h[t].some(t=>n(t)===e)),[h,w,n,T]),D=(0,C.useCallback)((e,t,n)=>{if(!s)return;let r=x.current;if(!r)return;let i=t.active.id;if(n===`column`){let n=Object.keys(e).indexOf(i);if(n===-1||n===r.index)return;s(e,{kind:`column`,event:t,activeContainer:i,activeIndex:r.index,overContainer:String(t.over?.id??i),overIndex:n,previousValue:r.value});return}let a=b.current,o,c=-1;for(let t of Object.keys(e)){let n=e[t].findIndex(e=>a(e)===i);if(n!==-1){o=t,c=n;break}}o!==void 0&&(o!==r.container||c!==r.index)&&s(e,{kind:`item`,event:t,activeContainer:r.container??o,activeIndex:r.index,overContainer:o,overIndex:c,previousValue:r.value})},[s]),O=(0,C.useCallback)(e=>{if(v(e.active.id),l?.(e),s||c){let t=y.current,n=e.active.id,r=Object.keys(t);if(r.includes(n))x.current={value:t,container:n,index:r.indexOf(n)};else{let e=b.current,i,a=-1;for(let o of r){let r=t[o].findIndex(t=>e(t)===n);if(r!==-1){i=o,a=r;break}}x.current={value:t,container:i,index:a}}}},[l,s,c]),ee=(0,C.useCallback)(e=>{if(o)return;let{active:t,over:r}=e;if(!r||T(t.id))return;let i=E(t.id),a=E(r.id);if(i&&a){if(i!==a){let e=h[i],o=h[a],s=e.findIndex(e=>n(e)===t.id),c=o.findIndex(e=>n(e)===r.id);T(r.id)&&(c=o.length);let l=[...e],u=[...o],[d]=l.splice(s,1);u.splice(c,0,d),g({...h,[i]:l,[a]:u})}else{let e=i,a=h[e].findIndex(e=>n(e)===t.id),o=h[e].findIndex(e=>n(e)===r.id);a!==o&&g({...h,[e]:BA(h[e],a,o)})}}},[E,n,T,g,h,o]),k=(0,C.useCallback)(e=>{let t=x.current;c&&t&&!o?g(t.value):s&&t&&!o&&D(y.current,e,`item`),x.current=null,v(null),d?.(e)},[c,o,s,g,d,D]),A=(0,C.useCallback)(e=>{let{active:t,over:r}=e;if(v(null),u?.(e),!r){D(y.current,e,`item`),x.current=null;return}if(o&&!T(t.id)){let i=E(t.id),a=E(r.id);i&&a&&o({event:e,activeContainer:i,activeIndex:h[i].findIndex(e=>n(e)===t.id),overContainer:a,overIndex:T(r.id)?h[a].length:h[a].findIndex(e=>n(e)===r.id)}),x.current=null;return}if(T(t.id)&&T(r.id)){let n=w.indexOf(t.id),i=w.indexOf(r.id);if(n!==i){let t=BA(Object.keys(h),n,i),r={};t.forEach(e=>{r[e]=h[e]}),g(r),D(r,e,`column`)}x.current=null;return}if(T(t.id)){x.current=null;return}let i=E(t.id),a=E(r.id);if(i&&a&&i===a){let a=i,o=h[a].findIndex(e=>n(e)===t.id),s=h[a].findIndex(e=>n(e)===r.id);if(o!==s){let t={...h,[a]:BA(h[a],o,s)};g(t),D(t,e,`item`)}else D(h,e,`item`)}else D(h,e,`item`);x.current=null},[w,h,E,n,T,g,o,u,D]),j=(0,C.useMemo)(()=>({columns:h,setColumns:g,getItemId:n,columnIds:w,activeId:_,setActiveId:v,findContainer:E,isColumn:T,modifiers:p}),[h,g,n,w,_,E,T,p]),M=a?Ni:`div`;return(0,G.jsx)(fj.Provider,{value:j,children:(0,G.jsx)(vA,{sensors:S,modifiers:p,accessibility:f,measuring:wj,onDragStart:O,onDragOver:ee,onDragEnd:A,onDragCancel:k,children:(0,G.jsx)(M,{"data-slot":`kanban`,"data-dragging":_!==null,className:W(_!==null&&`cursor-grabbing!`,i),...m,children:r})})})}function Ej({className:e,asChild:t=!1,children:n,...r}){let{columnIds:i}=(0,C.useContext)(fj);return(0,G.jsx)(ZA,{items:i,strategy:GA,children:(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-board`,className:W(`grid auto-rows-fr gap-4`,e),...r,children:n})})}function Dj({value:e,className:t,asChild:n=!1,disabled:r,children:i,...a}){let o=(0,C.useContext)(hj),{setNodeRef:s,transform:c,transition:l,attributes:u,listeners:d,isDragging:f}=aj({id:e,disabled:r||o,animateLayoutChanges:gj}),{activeId:p,isColumn:m}=(0,C.useContext)(fj),h=p?m(p):!1,g={transition:l,transform:iO.Transform.toString(c)},_=n?Ni:`div`;return o?(0,G.jsx)(pj.Provider,{value:{attributes:{},listeners:void 0,isDragging:!0,disabled:!1},children:(0,G.jsx)(_,{"data-slot":`kanban-column`,"data-value":e,"data-dragging":!0,className:W(`group/kanban-column flex flex-col`,t),...a,children:i})}):(0,G.jsx)(pj.Provider,{value:{attributes:u,listeners:d,isDragging:h,disabled:r},children:(0,G.jsx)(_,{"data-slot":`kanban-column`,"data-value":e,"data-dragging":f,"data-disabled":r,ref:s,style:g,className:W(`group/kanban-column flex flex-col`,f&&`z-50 opacity-50`,r&&`opacity-50`,t),...a,children:i})})}function Oj({className:e,asChild:t=!1,cursor:n=!0,children:r,...i}){let{attributes:a,listeners:o,isDragging:s,disabled:c}=(0,C.useContext)(pj);return(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-column-handle`,"data-dragging":s,"data-disabled":c,...a,...o,className:W(`opacity-0 transition-opacity group-hover/kanban-column:opacity-100`,n&&(s?`cursor-grabbing!`:`cursor-grab!`),e),...i,children:r})}function kj({value:e,className:t,asChild:n=!1,disabled:r,children:i,...a}){let o=(0,C.useContext)(hj),{setNodeRef:s,transform:c,transition:l,attributes:u,listeners:d,isDragging:f}=aj({id:e,disabled:r||o,animateLayoutChanges:gj}),{activeId:p,isColumn:m}=(0,C.useContext)(fj),h=p?!m(p):!1,g={transition:l,transform:iO.Transform.toString(c)},_=n?Ni:`div`;return o?(0,G.jsx)(mj.Provider,{value:{listeners:void 0,isDragging:!0,disabled:!1},children:(0,G.jsx)(_,{"data-slot":`kanban-item`,"data-value":e,"data-dragging":!0,className:W(t),...a,children:i})}):(0,G.jsx)(mj.Provider,{value:{listeners:d,isDragging:h,disabled:r},children:(0,G.jsx)(_,{"data-slot":`kanban-item`,"data-value":e,"data-dragging":f,"data-disabled":r,ref:s,style:g,...u,className:W(`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,f&&`z-50 opacity-50`,r&&`opacity-50`,t),...a,children:i})})}function Aj({className:e,asChild:t=!1,cursor:n=!0,children:r,...i}){let{listeners:a,isDragging:o,disabled:s}=(0,C.useContext)(mj);return(0,G.jsx)(t?Ni:`div`,{"data-slot":`kanban-item-handle`,"data-dragging":o,"data-disabled":s,...a,className:W(n&&(o?`cursor-grabbing!`:`cursor-grab!`),e),...i,children:r})}function jj({value:e,className:t,asChild:n=!1,children:r,...i}){let{columns:a,getItemId:o}=(0,C.useContext)(fj),s=(0,C.useMemo)(()=>{let t=a[e];if(!t)throw Error(`KanbanColumnContent: column "${e}" was not found in the Kanban value. Available columns: ${Object.keys(a).join(`, `)||`(none)`}.`);return t.map(o)},[a,o,e]);return(0,G.jsx)(ZA,{items:s,strategy:qA,children:(0,G.jsx)(n?Ni:`div`,{"data-slot":`kanban-column-content`,className:W(`flex flex-col gap-2`,t),...i,children:r})})}function Mj({children:e,className:t,...n}){let{activeId:r,isColumn:i,modifiers:a}=(0,C.useContext)(fj),o=(0,C.useSyncExternalStore)(vj,yj,bj),s=r&&i(r)?`column`:`item`,c=r&&e?typeof e==`function`?e({value:r,variant:s}):e:null;return o?(0,pe.createPortal)((0,G.jsx)(zA,{dropAnimation:_j,modifiers:a,className:W(`z-50`,r&&`cursor-grabbing`,t),...n,children:(0,G.jsx)(hj.Provider,{value:!0,children:c})}),document.body):null}function Nj({className:e,...t}){return(0,G.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:W(`group/input-group border-input dark:bg-input/30 relative flex h-9 w-full min-w-0 items-center rounded-md border shadow-xs outline-none`,`has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]`,e),...t})}var Pj=yi(`text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm select-none [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-3`,"inline-end":`order-last pr-3`}},defaultVariants:{align:`inline-start`}});function Fj({className:e,align:t=`inline-start`,...n}){return(0,G.jsx)(`div`,{"data-slot":`input-group-addon`,className:W(Pj({align:t}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...n})}function Ij({className:e,...t}){return(0,G.jsx)(SE,{"data-slot":`input-group-control`,className:W(`flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent`,e),...t})}var Lj=`collapsed-columns`,Rj=`collapsed-epic-statuses`,zj=`collapsed-favourite-folders`,Bj=`board-chrome`,Vj=`board-opener`,Hj=`favourite-epics`,Uj=`board-presets`,Wj=`board-sidebar-open`,Gj=`board-column-order`,Kj=[`In Progress`,`Completed`,`Cancelled`,`Canceled`],qj=[`created`,`targetEnd`,`priority`,`labels`,`assignee`,`dueDate`],Jj={filter:{},sort:`payload`,hide:[],shown:[...qj]},Yj={keys:[],folders:[],projects:void 0};function Xj(e=Lj,t=[]){try{let n=localStorage.getItem(e);if(n===null)return new Set(t);let r=JSON.parse(n);return new Set(Array.isArray(r)?r.filter(e=>typeof e==`string`):t)}catch{return new Set(t)}}function Zj(e,t=Lj){localStorage.setItem(t,JSON.stringify([...e]))}function Qj(e,t){let n=t.toLowerCase();return[...e].some(e=>e.toLowerCase()===n)}function $j(e){if(!e||typeof e!=`object`)return{};let t={};for(let[n,r]of Object.entries(e))n!==`priorities`&&n!==`assignees`&&Array.isArray(r)&&(t[n]=r.filter(e=>typeof e==`string`));return Array.isArray(e.priorities)&&!t.priority&&(t.priority=e.priorities.filter(e=>typeof e==`string`)),Array.isArray(e.assignees)&&!t.assignee&&(t.assignee=e.assignees.filter(e=>typeof e==`string`)),t}function eM(){try{let e=localStorage.getItem(Bj);if(e===null)return Jj;let t=JSON.parse(e),n=Array.isArray(t.shown)?t.shown.filter(e=>qj.includes(e)):[...qj];return{filter:$j(t.filter),sort:t.sort===`priority`||t.sort===`age`||t.sort===`due`||t.sort===`key`?t.sort:`payload`,hide:Array.isArray(t.hide)?t.hide.filter(e=>typeof e==`string`):[],shown:n.length?n:[...qj]}}catch{return Jj}}function tM(e){localStorage.setItem(Bj,JSON.stringify(e))}function nM(){try{let e=localStorage.getItem(Hj);if(e===null)return Yj;let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return{keys:t,folders:[]};if(t&&typeof t==`object`){let e=t;return{keys:Array.isArray(e.keys)?e.keys.filter(e=>typeof e==`string`):[],folders:Array.isArray(e.folders)?e.folders.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.name!=`string`||!t.name.trim()?[]:[{name:t.name,keys:Array.isArray(t.keys)?t.keys.filter(e=>typeof e==`string`):[]}]}):[],projects:Array.isArray(e.projects)?e.projects.filter(e=>typeof e==`string`):void 0}}return Yj}catch{return Yj}}function rM(e){localStorage.setItem(Hj,JSON.stringify(e))}function iM(){try{let e=localStorage.getItem(Uj);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.name!=`string`||!t.name.trim()?[]:[{name:t.name,filter:$j(t.filter),sort:t.sort===`priority`||t.sort===`age`||t.sort===`due`||t.sort===`key`?t.sort:`payload`,hide:Array.isArray(t.hide)?t.hide.filter(e=>typeof e==`string`):[]}]}):[]}catch{return[]}}function aM(e){localStorage.setItem(Uj,JSON.stringify(e))}function oM(e,t){let n=(e??[]).slice().sort(),r=(t??[]).slice().sort();return n.length===r.length&&n.every((e,t)=>e===r[t])}function sM(e,t){return!t.length||oM(e.projects,t)?e:{keys:[],folders:[],projects:t}}function cM(e,t){return t.length?e.filter(e=>oM(e.projects,t)):e}function lM(){try{let e=localStorage.getItem(Vj);return e===`epics`||e===`combined`?e:`stories`}catch{return`stories`}}function uM(e){localStorage.setItem(Vj,e)}function dM(){try{let e=localStorage.getItem(Wj);return e===null||e===`true`}catch{return!0}}function fM(e){localStorage.setItem(Wj,e?`true`:`false`)}function pM(){try{let e=localStorage.getItem(Gj);if(e===null)return{};let t=JSON.parse(e);return!t||typeof t!=`object`?{}:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,Array.isArray(t)?t.filter(e=>typeof e==`string`):[]]))}catch{return{}}}function mM(e){localStorage.setItem(Gj,JSON.stringify(e))}function hM(e,t){let n=[{label:`Key`,value:e.key},{label:`Summary`,value:e.summary}];return t&&n.push({label:`Jira URL`,value:t}),e.priority&&n.push({label:`Priority`,value:e.priority}),e.assignee&&n.push({label:`Assignee`,value:e.assignee}),e.dueDate&&n.push({label:`Due date`,value:e.dueDate}),e.targetEnd&&n.push({label:`Target end`,value:e.targetEnd}),e.labels?.length&&n.push({label:`Labels`,value:e.labels.join(`, `),pills:e.labels}),n}async function gM(e,t){return(await fetch(e,{headers:{"content-type":`application/json`},...t})).json()}function _M(e){return Object.fromEntries(e.map(e=>[e.title,e.cards]))}function vM(){return typeof document>`u`?`light`:document.documentElement.classList.contains(`dark`)?`dark`:`light`}function yM(e){document.documentElement.classList.toggle(`dark`,e===`dark`),localStorage.setItem(`theme`,e)}var bM={done:`green`,complete:`green`,completed:`green`,closed:`green`,resolved:`green`,progress:`yellow`,review:`yellow`,doing:`yellow`,cancelled:`gray`,canceled:`gray`};function xM(e){if(!e)return`var(--primary)`;let t=e.toLowerCase(),n=Object.keys(bM).find(e=>t.includes(e));return`var(--kanban-board-circle-${n?bM[n]:`gray`})`}function SM(e){let t=(e??``).toLowerCase();return t===`high`||t===`highest`||t===`critical`?`text-red-500`:t===`medium`?`text-orange-400`:`text-yellow-500`}function CM(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function wM(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function TM(e){let t=[];for(let n of e){let e=t.at(-1);n.group&&e?.group===n.group?e.facets.push(n):t.push({group:n.group,facets:[n]})}return t}function EM({facet:e,selected:t,onToggle:n}){return(0,G.jsxs)(G.Fragment,{children:[e.label===e.group?null:(0,G.jsx)(jp,{children:e.label}),e.values.map(e=>(0,G.jsx)(Np,{checked:t.includes(e),onCheckedChange:()=>n(e),children:e},e))]})}function DM({facets:e,filter:t,onToggle:n,onClear:r}){let[i,a]=(0,C.useState)({});return(0,G.jsxs)(Ap,{align:`end`,className:`w-56 max-h-[min(70vh,28rem)]`,children:[TM(e).map((e,r)=>{let o=e.facets.map(e=>(0,G.jsx)(EM,{facet:e,selected:t[e.key]??[],onToggle:t=>n(e.key,t)},e.key));return(0,G.jsxs)(C.Fragment,{children:[r>0?(0,G.jsx)(Ip,{}):null,e.group?(0,G.jsxs)(pg,{open:i[e.group]!==!1,onOpenChange:t=>a(n=>({...n,[e.group]:t})),className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex w-full items-center gap-1.5 px-2 py-1.5 text-left text-[11px] font-medium`,onPointerDown:e=>e.preventDefault(),children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,i[e.group]===!1&&`-rotate-90`)}),e.group]})}),(0,G.jsx)(hg,{className:`flex flex-col`,children:o})]}):o]},e.group??e.facets[0]?.key)}),e.length?(0,G.jsx)(Ip,{}):null,(0,G.jsx)(Mp,{onClick:r,children:`Clear Filter, Sort, and Hide`})]})}function OM({card:e,asHandle:t,isOverlay:n,disabled:r,selected:i,onClick:a,onDoubleClick:o,variant:s=`story`,shown:c}){let l=s===`epic`||(e.type??``).toLowerCase()===`epic`,u=e=>c?.has(e)??!0,d=u(`created`)?qe(e.created):void 0,f=u(`targetEnd`)?Je(e.targetEnd):void 0,p=f?(()=>{let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e.targetEnd??``),n=t?Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])):Date.parse(e.targetEnd??``);return!Number.isNaN(n)&&n<Date.now()})():!1,m=f?(()=>{let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e.targetEnd??``),n=t?Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])):Date.parse(e.targetEnd??``);if(Number.isNaN(n)||n<Date.now())return!1;let r=new Date,i=Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate());return Math.round((n-i)/864e5)<=3})():!1,h=u(`priority`)&&e.priority||u(`labels`)&&e.labels?.length||u(`assignee`)&&e.assignee||u(`dueDate`)&&e.dueDate||f,g=(0,G.jsxs)(`div`,{className:W(`bg-card hover:bg-foreground/5 rounded-[9px] border px-3 pt-2 pb-3`,i&&`ring-primary ring-2`,l&&`bg-muted/40 border-l-4 border-l-primary`),children:[(0,G.jsxs)(`div`,{className:`flex h-[22px] items-center justify-between gap-2`,children:[(0,G.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] font-medium tabular-nums`,children:e.key}),(e.type??``).toLowerCase()===`epic`?(0,G.jsx)(`span`,{className:`text-muted-foreground/60 text-[11px] font-normal`,children:`Epic`}):null]}),d?(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] tabular-nums`,children:d}):null]}),(0,G.jsx)(`p`,{className:`mt-0.5 truncate text-[13px] leading-[18px]`,children:e.summary}),h?(0,G.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-2 pt-2`,children:[u(`priority`)&&e.priority?(0,G.jsx)(`span`,{className:W(`inline-flex h-6 shrink-0 items-center rounded-full border px-2 text-[12px] font-medium capitalize`,SM(e.priority)),children:e.priority}):null,u(`labels`)?e.labels?.map(e=>Xe(e)?(0,G.jsx)(xi,{variant:`warning-light`,className:`h-6 rounded-full px-2 text-[12px]`,children:e},e):(0,G.jsx)(`span`,{className:`text-muted-foreground inline-flex h-6 shrink-0 items-center rounded-full border px-2 text-[12px]`,children:e},e)):null,(0,G.jsx)(`span`,{className:`flex-1`}),f?(0,G.jsx)(`span`,{className:W(`shrink-0 text-[11px] tabular-nums`,p&&`text-destructive font-medium`,m&&!p&&`text-amber-500 dark:text-amber-400`,!p&&!m&&`text-muted-foreground`),title:e.targetEnd,children:f}):null,u(`dueDate`)&&e.dueDate?(0,G.jsx)(`time`,{className:`text-muted-foreground shrink-0 text-[11px] tabular-nums`,children:e.dueDate}):null,u(`assignee`)&&e.assignee?(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0 text-[12px]`,children:e.assignee}):null]}):null]});return(0,G.jsx)(kj,{value:e.key,disabled:r,children:t&&!n?(0,G.jsx)(Aj,{onClick:a,onDoubleClick:o,children:g}):g})}function kM({title:e,cards:t,isOverlay:n,disabled:r,selected:i,onClick:a,onDoubleClick:o,onCreate:s,onHide:c,shown:l}){let[u,d]=(0,C.useState)(()=>n||!Xj().has(e));function f(t){if(d(t),n)return;let r=Xj();t?r.delete(e):r.add(e),Zj(r)}return(0,G.jsx)(Dj,{value:e,className:`group h-full min-h-0`,children:(0,G.jsx)(pg,{open:u,onOpenChange:f,className:W(`flex h-full min-h-0 flex-col`,!u&&`h-auto`),children:(0,G.jsxs)(`div`,{className:W(`flex flex-col`,u?`h-full min-h-0`:`h-auto`),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 pt-[13px] pb-5`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,children:[(0,G.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-full`,style:{backgroundColor:xM(e)}}),(0,G.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:e}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] tabular-nums`,children:t.length}),(0,G.jsx)(j,{className:W(`text-muted-foreground size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)})]})}),s?(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Create issue in ${e}`,title:`Create issue`,onPointerDown:e=>e.stopPropagation(),onClick:()=>s(e),children:(0,G.jsx)(ae,{})}):null,c?(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Hide ${e}`,onClick:c,children:(0,G.jsx)(ne,{})}):null,(0,G.jsx)(Oj,{className:`opacity-0 transition-opacity group-hover:opacity-60`,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,tabIndex:-1,type:`button`,children:(0,G.jsx)(ie,{})})})]}),(0,G.jsx)(hg,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,G.jsxs)(jj,{value:e,className:`flex h-full flex-col gap-2 overflow-auto px-2 pb-2`,children:[t.map(e=>(0,G.jsx)(OM,{card:e,asHandle:!n,isOverlay:n,disabled:r,selected:i?.has(e.key),variant:(e.type??``).toLowerCase()===`epic`?`epic`:`story`,shown:l,onClick:t=>a?.(e.key,t),onDoubleClick:t=>o?.(e.key,t)},e.key)),s?(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:bg-foreground/5 hover:text-foreground flex min-h-8 w-full shrink-0 items-center gap-1.5 rounded-md px-2 text-[12px]`,"aria-label":`Create issue in ${e}`,onPointerDown:e=>e.stopPropagation(),onClick:()=>s(e),children:[(0,G.jsx)(ae,{className:`size-3.5`}),`Create`]}):null]})})]})})})}function AM(e,t){return[...new Set(e.map(e=>e.status?.trim()).filter(e=>!!e))].filter(e=>e!==t)}function jM({epic:e,selected:t,count:n,favourited:r,folders:i,moveTo:a,onSelect:o,onToggleFavourite:s,onFile:c,onMove:l,onOpen:u}){let d=a??[],f=!!(c&&r),p=!!u||f||d.length>0;return(0,G.jsxs)(`div`,{className:W(`flex h-14 w-full items-center gap-1 rounded-lg pr-1`,t?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-3 px-3 text-left`,onClick:()=>void o(e.key),children:[(0,G.jsx)(`span`,{className:`size-2 shrink-0 rounded-full`,style:{backgroundColor:xM(e.status)}}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[13px] leading-[18px]`,children:e.summary}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] font-medium tabular-nums`,children:e.key}),(0,G.jsx)(`span`,{className:`text-muted-foreground text-[11px] tabular-nums`,children:n})]}),p?(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":f?`File ${e.key}`:d.length?`Move ${e.key}`:`Open ${e.key}`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`end`,children:[u?(0,G.jsx)(Mp,{onClick:()=>u(e.key),children:`Open`}):null,f?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Mp,{onClick:()=>c?.(e.key,null),children:`Unfiled`}),i?.map(t=>(0,G.jsx)(Mp,{onClick:()=>c?.(e.key,t),children:t},t))]}):null,f&&d.length?(0,G.jsxs)(Lp,{children:[(0,G.jsx)(Rp,{children:`Move`}),(0,G.jsx)(zp,{children:d.map(t=>(0,G.jsx)(Mp,{onClick:()=>l?.(e.key,t),children:t},t))})]}):null,f?null:d.map(t=>(0,G.jsx)(Mp,{onClick:()=>l?.(e.key,t),children:t},t))]})]}):null,(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":r?`Unfavourite ${e.key}`:`Favourite ${e.key}`,onClick:t=>{t.stopPropagation(),s(e.key)},children:(0,G.jsx)(ce,{className:W(r&&`fill-current`)})})]})}function MM({status:e,epics:t,selectedEpic:n,childCount:r,favourites:i,listedEpics:a,onSelect:o,onToggleFavourite:s,onMove:c,onOpen:l}){let[u,d]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),e));function f(t){d(t);let n=Xj(Rj,Kj);if(t)for(let t of[...n])t.toLowerCase()===e.toLowerCase()&&n.delete(t);else n.add(e);Zj(n,Rj)}return(0,G.jsxs)(pg,{open:u,onOpenChange:f,className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 items-center gap-1.5 px-3 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:e}),(0,G.jsx)(`span`,{className:`text-[11px] tabular-nums`,children:t.length})]})}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:t.map(e=>(0,G.jsx)(jM,{epic:e,selected:n===e.key,count:r(e.key),favourited:i.keys.includes(e.key),onSelect:o,onToggleFavourite:s,moveTo:AM(a,e.status),onMove:c,onOpen:l},e.key))})]})}function NM({fields:e}){return(0,G.jsx)(`dl`,{className:`flex flex-col gap-3 p-4 text-[13px]`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsx)(`dt`,{className:`text-muted-foreground text-[11px] font-medium`,children:e.label}),(0,G.jsx)(`dd`,{className:`whitespace-pre-wrap`,children:e.label===`Jira URL`?(0,G.jsx)(`a`,{className:`text-foreground font-medium underline-offset-4 hover:underline`,href:e.value,target:`_blank`,rel:`noreferrer`,children:e.value}):e.pills?.length?(0,G.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:e.pills.map(e=>(0,G.jsx)(`span`,{className:`text-muted-foreground inline-flex h-6 items-center rounded-full border px-2 text-[12px]`,children:e},e))}):e.value})]},e.label))})}function PM(){let[e,t]=(0,C.useState)({}),[n,r]=(0,C.useState)([]),[i,a]=(0,C.useState)(null),[o,s]=(0,C.useState)(!1),[c,l]=(0,C.useState)(null),[u,d]=(0,C.useState)(null),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)(``),[g,_]=(0,C.useState)(null),[v,y]=(0,C.useState)(null),[b,x]=(0,C.useState)(null),[S,w]=(0,C.useState)([]),[T,E]=(0,C.useState)(``),[D,ee]=(0,C.useState)(``),[A,j]=(0,C.useState)(``),[P,F]=(0,C.useState)(``),[ne,ie]=(0,C.useState)(!1),[L,ae]=(0,C.useState)(vM),[B,oe]=(0,C.useState)(eM),se=(0,C.useMemo)(()=>nt(D).projects,[D]),[ce,ue]=(0,C.useState)(()=>sM(nM(),se)),[fe,pe]=(0,C.useState)(()=>cM(iM(),se)),[me,he]=(0,C.useState)(``),[ge,_e]=(0,C.useState)(``),[ve,ye]=(0,C.useState)(``),[be,xe]=(0,C.useState)(``),[Se,Ce]=(0,C.useState)(lM),[we,Te]=(0,C.useState)(Dn),[Ee,De]=(0,C.useState)(()=>dM()),Oe=Gh(),ke=(0,C.useRef)(null),[je,Me]=(0,C.useState)(null),[Ne,Pe]=(0,C.useState)(!1),[Fe,Ie]=(0,C.useState)(!1),[Le,Re]=(0,C.useState)(void 0),ze=(0,C.useRef)(!1),Be=(0,C.useRef)(null),Ve=wn(t,r),[He,Ue]=(0,C.useState)(new Set),We={...B,epics:n},Ge=(0,C.useMemo)(()=>new Set(B.shown),[B.shown]),Ke=Se===`epics`,qe=(0,C.useMemo)(()=>Se===`combined`?wt(e,n,A,We):Tt(Ke?e:Ct(e,je?.children,A),Ke?null:g,A,We),[e,g,A,B,n,Ke,je,Se]),Je=(0,C.useMemo)(()=>Object.values(e).flat(),[e]),Ye=i??Je,Xe=(0,C.useMemo)(()=>{let e=new Map;for(let t of je?.columns.flatMap(e=>e.cards)??[])e.set(t.key,t);for(let t of Ye)e.has(t.key)||e.set(t.key,t);return[...e.values()]},[je,Ye]),et=(0,C.useMemo)(()=>jt(n,Ye,A,B.filter),[n,Ye,A,B.filter]),tt=(0,C.useMemo)(()=>Mt(et),[et]),rt=(0,C.useMemo)(()=>zt(n,ce,A,Ye,B.filter),[n,ce,A,Ye,B.filter]),it=Object.keys(qe),at=`${Se}:${[...se].sort().join(`,`)}`,st=v?[`cards`,`open`]:[`cards`],ct=zh({id:`shell`,panelIds:[`epics`,`board`],onlySaveAfterUserInteractions:!0}),lt=zh({id:`board-open`,panelIds:st,onlySaveAfterUserInteractions:!0}),ut=zh({id:`columns`,panelIds:it,onlySaveAfterUserInteractions:!0}),dt=b?Tn(b,window.location.origin):null,ft=gt(Je,n),pt=Object.keys(e),mt=(0,C.useMemo)(()=>nn([...Je,...n,...Xe]),[Je,n,Xe]),ht=rt.unfiled.length>0||rt.folders.length>0;function _t(e){oe(e),tM(e)}function vt(e){let t=se.length?{...e,projects:se}:e;ue(t),rM(t)}function yt(e){pe(e),aM(e)}function bt(){Ue(new Set)}function xt(e,n){ke.current=e,Me(e);let i=e.epics??[];r(i);let o=pM()[`${n}:${[...se].sort().join(`,`)}`];t(Pt(_M(n===`epics`?Ze(i):e.columns),o)),a(e.children?Object.values(e.children).flat():null),F(e.error??``)}function St(e){bt(),ke.current=e,Me(e);let n=e.epics??[];r(n);let i=pM()[at];t(Pt(_M(Se===`epics`?Ze(n):e.columns),i)),a(e.children?Object.values(e.children).flat():null),_(t=>t&&(e.epics??[]).some(e=>e.key===t)?t:null),F(e.error??``)}async function Et(){let e=await gM(`/api/board`);St(e),e.flags&&ee(e.flags)}(0,C.useEffect)(()=>{Et()},[]),(0,C.useEffect)(()=>{Ee||Oe.current?.collapse()},[]),(0,C.useEffect)(()=>{let e=pM()[at];e?.length&&t(t=>Pt(t,e))},[at]),(0,C.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`k`){if(e.preventDefault(),ze.current){ze.current=!1,Pe(!1),Be.current?.focus();return}Be.current=document.activeElement instanceof HTMLElement?document.activeElement:null,ze.current=!0,Pe(!0);return}e.key===`Escape`&&ze.current&&(e.preventDefault(),ze.current=!1,Pe(!1),Be.current?.focus())}return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]);function Dt(e){Re(e),Ie(!0)}async function Ot(e){let t=Qe(e,g,Le??D);t&&(Ie(!1),Re(void 0),await kt(t))}async function kt(e){ie(!0),F(``),console.info(`[pipe-kan] Refresh`,e);let t=Ae.loading(`Refreshing…`,{description:e.scope===`selected`?`Listing the focused Epic's works`:`Listing Issues and Epics`});try{let n=await gM(`/api/refresh`,{method:`POST`,body:JSON.stringify(e)});St(n),e.scope===`all`&&ee(e.flags),n.error?(console.info(`[pipe-kan] Refresh error`,n.error),Ae.error(`Refresh failed`,{id:t,description:n.error})):(console.info(`[pipe-kan] Refreshed`,n.epics.length,`epics`),Ae.success(`Refreshed`,{id:t,description:e.scope===`selected`?e.epicKeys?.join(`, `):`${n.epics.length} epics`}))}catch(e){let n=e instanceof Error?e.message:`Refresh failed`;console.info(`[pipe-kan] Refresh failed`,n),F(n),Ae.error(`Refresh failed`,{id:t,description:n})}finally{ie(!1)}}function Nt(t){for(let[n,r]of Object.entries(e))if(r.some(e=>e.key===t))return n;return``}function Rt(e,i,a){F(``);let o=n.find(t=>t.key===e);if(o){let n=a??o.status??`To Do`;r(n=>{let r=n.findIndex(t=>t.key===e);if(r===-1)return n;let a=[...n];return a[r]={...a[r],status:i},Se===`epics`&&t(Pt(_M(Ze(a)),pM()[at])),a}),Ve.move({key:e,target:i,source:n,kind:`epic`});return}let s=a??Nt(e);Ve.move({key:e,target:i,source:s,kind:`card`})}function Gt(e,t){if(t.ctrlKey||t.metaKey){t.preventDefault(),t.stopPropagation(),Ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return}bt(),on(e)}function Kt(e,t){t.preventDefault(),t.stopPropagation(),bt(),rn(e)}function Qt(e){return{...e?{status:e}:{},selectedEpic:g,boardKind:Se}}function $t(e){h(``),p(!1),d(dn(Qt(e)))}function en(e){l(Sn(e)),s(!0)}function tn(e){let{draft:t,seed:n}=fn(Qt(e));h(``),p(!1),d(t),l(n),s(!0)}async function rn(e){let t=Je.find(t=>t.key===e)??Xe.find(t=>t.key===e),r=n.find(t=>t.key===e),i=Nt(e)||r?.status;h(``),p(!1),d(pn({key:e,summary:t?.summary??r?.summary??``,labels:t?.labels??r?.labels??[],...i?{status:i}:{},...t?.epic?{epic:t.epic}:{},...t?.type||r?{type:t?.type??`Epic`}:{},...v===e&&S.length?{fields:S}:{}}));try{let t=await gM(`/api/open`,{method:`POST`,body:JSON.stringify({key:e})});if(t.error||!t.fields?.length)return;d(n=>n?.mode===`edit`&&n.key===e?xn(n,t.fields):n)}catch{}}async function an(){if(u&&mn(u,f)){p(!0),h(``);try{if(u.mode===`create`){let e=hn(u);if(!e)return;let t=await gM(`/api/issue/create`,{method:`POST`,body:JSON.stringify(e)});if(!t.ok){let e=t.error??`Create failed`;h(e),Ae.error(`Create failed`,{description:e});return}t.board&&St(t.board),Ae.success(`Created`,{description:t.key??u.title.trim()}),d(null);return}let e=gn(u);if(!e)return;let t=await gM(`/api/issue/edit`,{method:`POST`,body:JSON.stringify(e)});if(!t.ok){let e=t.error??`Edit failed`;h(e),Ae.error(`Edit failed`,{description:e});return}t.board&&St(t.board),Ae.success(`Saved`,{description:u.key});let n=u.key;d(null),v===n&&on(n)}catch(e){let t=e instanceof Error?e.message:`Save failed`;h(t),Ae.error(`Save failed`,{description:t})}finally{p(!1)}}}async function on(e){let t=ke.current?.columns.flatMap(e=>e.cards)??[],r=Je.find(t=>t.key===e)??t.find(t=>t.key===e),i=n.find(t=>t.key===e),a=r??(i?{key:i.key,summary:i.summary,priority:i.priority,assignee:i.assignee,dueDate:i.dueDate,labels:i.labels}:void 0),o=`/browse/${e}`;y(e),x(o),E(``),w(a?hM(a,o):[{label:`Jira URL`,value:o}]);let s=await gM(`/api/open`,{method:`POST`,body:JSON.stringify({key:e})});if(x(s.url),s.error){E(s.error),w(a?hM(a,s.url):[{label:`Jira URL`,value:s.url}]);return}w(s.fields)}function sn(e,t){let n=[];for(let[r,i]of Object.entries(t))for(let t of i)He.has(t.key)&&n.push({key:t.key,target:e,source:r,kind:`card`});return n}function cn(e,n){if(B.hide.includes(n.overContainer)){t(e=>It(n.previousValue,e,g,A,We));return}if(n.kind===`column`){let n=Object.keys(e),r=pM();r[at]=n,mM(r),t(e=>Pt(e,n));return}if(n.activeContainer===n.overContainer)return;let r=String(n.event.active.id);if(He.has(r)&&He.size>1){let e=sn(n.overContainer,n.previousValue);if(e.length===0)return;t(e=>{let t={},r=[];for(let[n,i]of Object.entries(e)){let e=[];for(let t of i)He.has(t.key)?r.push(t):e.push(t);t[n]=e}return t[n.overContainer]=[...t[n.overContainer]??[],...r],t}),bt(),Ve.move(e);return}let i=Object.entries(n.previousValue).find(([,e])=>e.some(e=>e.key===r))?.[0];i&&(bt(),Rt(r,n.overContainer,i))}function ln(){let e=L===`dark`?`light`:`dark`;yM(e),ae(e)}function un(e){return At(Ye,e,A,B.filter,n)}function _n(){uM(`stories`),Ce(`stories`),_(null),ke.current&&xt(ke.current,`stories`)}function vn(){uM(`epics`),Ce(`epics`),_(null),ke.current&&xt(ke.current,`epics`)}function yn(){uM(`combined`),Ce(`combined`),_(null),ke.current&&xt(ke.current,`combined`)}function bn(e){On(e),Te(e)}function Cn(){kn(),Te(`calendar`)}async function En(e){let r=Se===`epics`||Se===`combined`;if(r&&_n(),_(e),!e||!n.some(t=>t.key===e)||(r&&ke.current?ke.current.columns.flatMap(e=>e.cards):Je).filter(t=>t.epic===e&&ot(t,A)).length>0)return;ie(!0),F(``);let i=Ae.loading(`Listing children…`);try{let n=await gM(`/api/epic`,{method:`POST`,body:JSON.stringify({key:e})});t(t=>Lt(t,_M(n.columns),e)),Ae.success(`Listed children`,{id:i})}catch(e){let t=e instanceof Error?e.message:`Epic list failed`;F(t),Ae.error(`Epic list failed`,{id:i,description:t})}finally{ie(!1)}}function An(){let e=Vt(ce,me);if(!e.ok){_e(`Folder names must be unique`);return}he(``),_e(``),vt(e.state)}function jn(){let e=qt(fe,ve,{...B,boardKind:Se,projects:se});if(!e.ok){xe(`Preset names must be unique`);return}ye(``),xe(``),yt(e.presets)}function Mn(e){let t=Jt(fe,e);if(!t.ok||se.length&&!oM(t.chrome.projects,se))return;_t({...B,...t.chrome});let n=t.chrome.boardKind??`stories`;n===`combined`?yn():n===`epics`?vn():Se!==`stories`&&_n()}function Nn(e){ze.current=!1,Pe(!1),j(``),e.kind===`all-stories`?_n():e.kind===`all-epics`?vn():e.kind===`all-combined`?yn():e.kind===`refresh`?Dt():e.kind===`agent`?s(!0):e.kind===`create`?$t():e.kind===`create-ai`?tn():e.kind===`preset`?Mn(e.name):e.kind===`epic`?(y(null),x(null),w([]),E(``),En(e.key)):e.kind===`card`&&(e.epic?En(e.epic):_n(),on(e.key))}function Pn(e){let t=Yt(fe,e,{...B,boardKind:Se,projects:se});t.ok&&yt(t.presets)}function Fn(e,t){let n=Xt(fe,e,t);if(!n.ok){xe(`Preset names must be unique`);return}xe(``),yt(n.presets)}return(0,G.jsxs)(`div`,{className:`bg-sidebar flex h-screen`,children:[(0,G.jsxs)(Jh,{id:`shell`,orientation:`horizontal`,className:`min-h-0 flex-1`,defaultLayout:ct.defaultLayout,onLayoutChanged:(e,t)=>{if(ct.onLayoutChanged(e,t),!t.isUserInteraction)return;let n=(e.epics??0)<=0;De(!n),fM(!n)},children:[(0,G.jsx)(Yh,{id:`epics`,panelRef:Oe,defaultSize:`244px`,minSize:`12rem`,maxSize:`40%`,collapsible:!0,collapsedSize:0,className:`min-h-0 overflow-hidden`,children:(0,G.jsxs)(`aside`,{className:`text-sidebar-foreground flex h-full min-h-0 flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex h-10 items-center justify-between px-4`,children:[(0,G.jsx)(`span`,{className:`text-[13px] font-medium`,children:`pipe-kan`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground text-[12px] tabular-nums`,children:et.length}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Collapse sidebar`,title:`Collapse sidebar`,onClick:()=>{De(!1),fM(!1),Oe.current?.collapse()},children:(0,G.jsx)(M,{className:`size-4`})})]})]}),(0,G.jsxs)(`nav`,{className:`flex flex-1 flex-col gap-0.5 overflow-auto px-2 pb-2`,children:[(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`stories`&&g===null?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:_n,children:`All stories`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`epics`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:vn,children:`All epics`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,Se===`combined`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:yn,children:`Combined`}),(0,G.jsx)(`button`,{type:`button`,className:W(`h-8 rounded-lg px-3 text-left text-[13px]`,we===`calendar`?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-foreground/5`),onClick:Cn,children:`Calendar`}),ht?(0,G.jsx)(FM,{pane:rt,selectedEpic:g,childCount:un,favourites:ce,folderName:me,folderError:ge,onFolderName:he,onCreateFolder:An,onRenameFolder:(e,t)=>{let n=Ht(ce,e,t);if(!n.ok){_e(`Folder names must be unique`);return}_e(``),vt(n.state)},onDeleteFolder:e=>vt(Ut(ce,e)),listedEpics:n,onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onFile:(e,t)=>vt(Wt(ce,e,t)),onMove:Rt,onOpen:on}):null,(0,G.jsx)(LM,{presets:fe,presetName:ve,presetError:be,onPresetName:ye,onCreatePreset:jn,onApplyPreset:Mn,onOverwritePreset:Pn,onRenamePreset:Fn,onDeletePreset:e=>yt(Zt(fe,e))}),(0,G.jsx)(`div`,{className:`text-muted-foreground px-3 pt-3 pb-1 text-[11px] font-medium`,children:`Epics`}),tt.map(e=>e.status?(0,G.jsx)(MM,{status:e.status,epics:e.epics,selectedEpic:g,childCount:un,favourites:ce,listedEpics:n,onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onMove:Rt,onOpen:on},e.status):e.epics.map(e=>(0,G.jsx)(jM,{epic:e,selected:g===e.key,count:un(e.key),favourited:ce.keys.includes(e.key),moveTo:AM(n,e.status),onSelect:En,onToggleFavourite:e=>vt(Bt(ce,e)),onMove:Rt,onOpen:on},e.key)))]})]})}),(0,G.jsx)(Xh,{className:W(!Ee&&`hidden`)}),(0,G.jsx)(Yh,{id:`board`,defaultSize:`80%`,minSize:`24rem`,className:`min-h-0`,children:(0,G.jsx)(`div`,{className:`flex h-full min-h-0 flex-col p-2 pl-0`,children:(0,G.jsxs)(`div`,{className:`bg-background flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border`,children:[(0,G.jsxs)(`header`,{className:`flex min-h-11 shrink-0 flex-wrap items-center gap-2 px-3`,children:[Ee?null:(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Expand sidebar`,title:`Expand sidebar`,onClick:()=>{De(!0),fM(!0),Oe.current?.expand()},children:(0,G.jsx)(te,{className:`size-4`})}),(0,G.jsxs)(`div`,{role:`tablist`,"aria-label":`Board or Calendar`,className:`flex items-center gap-0.5`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":we===`board`,className:W(`h-7 rounded-md px-2 text-[13px] font-medium`,we===`board`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>bn(`board`),children:`Board`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":we===`calendar`,className:W(`h-7 rounded-md px-2 text-[13px] font-medium`,we===`calendar`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>bn(`calendar`),children:`Calendar`})]}),(0,G.jsx)(`span`,{className:`bg-primary/10 text-primary inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium`,children:(()=>{let{projects:e}=nt(D);return e.length>0?e.join(`, `):`DEMO`})()}),(0,G.jsxs)(Nj,{className:`h-7 max-w-72 min-w-40 flex-1 border-transparent bg-muted shadow-none`,children:[(0,G.jsx)(Fj,{children:(0,G.jsx)(z,{className:`size-3.5`})}),(0,G.jsx)(Ij,{value:A,onChange:e=>j(e.target.value),placeholder:`Search Epics and Cards`,"aria-label":`Search`,className:`h-7 text-[13px]`}),A?(0,G.jsx)(Fj,{align:`inline-end`,children:(0,G.jsx)(`button`,{type:`button`,"aria-label":`Clear search`,onClick:()=>j(``),children:(0,G.jsx)(de,{className:`size-3.5`})})}):null]}),(0,G.jsx)(`input`,{className:`placeholder:text-muted-foreground h-7 min-w-40 flex-1 rounded-md bg-muted px-2.5 text-[13px] outline-none`,value:D,onChange:e=>ee(e.target.value),placeholder:`Scope flags`,spellCheck:!1,"aria-label":`Scope flags`}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(I,{}),`Filter`]})}),(0,G.jsx)(DM,{facets:ft,filter:B.filter,onToggle:(e,t)=>_t({...B,filter:{...B.filter,[e]:CM(B.filter[e]??[],t)}}),onClear:()=>_t(Jj)})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(O,{}),`Sort`]})}),(0,G.jsx)(Ap,{align:`end`,children:(0,G.jsxs)(Pp,{value:B.sort,onValueChange:e=>_t({...B,sort:e}),children:[(0,G.jsx)(Fp,{value:`payload`,children:`Payload order`}),(0,G.jsx)(Fp,{value:`priority`,children:`Priority`}),(0,G.jsx)(Fp,{value:`age`,children:`Age`}),(0,G.jsx)(Fp,{value:`due`,children:`Due date`}),(0,G.jsx)(Fp,{value:`key`,children:`Key`})]})})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(N,{}),`Columns`]})}),(0,G.jsx)(Ap,{align:`end`,children:pt.map(e=>(0,G.jsx)(Np,{checked:!B.hide.includes(e),onCheckedChange:t=>_t({...B,hide:t?B.hide.filter(t=>t!==e):[...B.hide,e]}),children:e},e))})]}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,children:[(0,G.jsx)(re,{}),`Display`]})}),(0,G.jsxs)(Ap,{align:`end`,className:`w-44`,children:[(0,G.jsx)(jp,{children:`Card properties`}),qj.map(e=>(0,G.jsxs)(Np,{checked:B.shown.includes(e),onCheckedChange:()=>_t({...B,shown:wM(B.shown,e)}),children:[e===`created`&&`Age`,e===`targetEnd`&&`Target end`,e===`priority`&&`Priority`,e===`labels`&&`Labels`,e===`assignee`&&`Assignee`,e===`dueDate`&&`Due date`]},e))]})]}),(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>Dt(),disabled:ne,"aria-busy":ne,children:[ne?(0,G.jsx)(TE,{className:`size-3.5`}):null,`Refresh`]}),(0,G.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>s(e=>!e),"aria-pressed":o,children:[(0,G.jsx)(k,{className:`mr-1 size-4`}),`Agent`]}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:ln,"aria-label":L===`dark`?`Switch to light mode`:`Switch to dark mode`,children:L===`dark`?(0,G.jsx)(le,{}):(0,G.jsx)(R,{})}),P?(0,G.jsx)(`p`,{className:`text-destructive w-full text-[13px] whitespace-pre-wrap`,children:P}):null]}),(0,G.jsxs)(Jh,{id:`board-open`,orientation:`horizontal`,className:`min-h-0 flex-1`,defaultLayout:lt.defaultLayout,onLayoutChanged:lt.onLayoutChanged,children:[(0,G.jsx)(Yh,{id:`cards`,defaultSize:v?`70%`:`100%`,minSize:`16rem`,className:`min-h-0`,children:(0,G.jsx)(`main`,{className:W(`h-full min-h-0 min-w-0 px-2 pb-2`,we===`calendar`?`overflow-hidden`:`overflow-auto`),children:we===`calendar`?(0,G.jsx)(yE,{cards:Object.values(qe).flat(),onOpen:e=>void on(e)}):(0,G.jsxs)(Tj,{className:`h-full min-h-0`,value:qe,onValueChange:e=>t(t=>Ft(e,t,g,A,We)),getItemValue:e=>e.key,restoreOnCancel:!0,onValueCommit:cn,children:[(0,G.jsx)(Ej,{className:`grid h-full min-h-0 grid-cols-1 auto-rows-fr gap-3`,children:it.length?(0,G.jsx)(Jh,{id:`columns`,orientation:`horizontal`,className:`min-h-0`,defaultLayout:ut.defaultLayout,onLayoutChanged:ut.onLayoutChanged,children:Object.entries(qe).map(([e,t],n,r)=>(0,G.jsxs)(C.Fragment,{children:[n>0?(0,G.jsx)(Xh,{}):null,(0,G.jsx)(Yh,{id:e,defaultSize:`${100/Math.max(r.length,1)}%`,minSize:`16rem`,className:`min-h-0 min-w-0`,children:(0,G.jsx)(kM,{title:e,cards:t,disabled:ne,selected:He,shown:Ge,onClick:Gt,onDoubleClick:Kt,onCreate:$t,onHide:()=>_t({...B,hide:[...B.hide,e]})})})]},e))}):null}),(0,G.jsx)(Mj,{children:({value:e,variant:t})=>{if(t===`column`)return(0,G.jsx)(kM,{title:String(e),cards:qe[String(e)]??[],isOverlay:!0,shown:Ge});let n=Object.values(qe).flat().find(t=>t.key===e);if(!n)return null;let r=He.has(n.key)?He.size:1;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(OM,{card:n,isOverlay:!0,variant:(n.type??``).toLowerCase()===`epic`?`epic`:`story`,shown:Ge}),r>1?(0,G.jsx)(`span`,{className:`absolute -top-2 -right-2 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-[11px] font-medium text-primary-foreground`,children:r}):null]})}})]})})}),v?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xh,{}),(0,G.jsx)(Yh,{id:`open`,defaultSize:`30%`,minSize:`16rem`,className:`min-h-0`,children:(0,G.jsxs)(`aside`,{className:`flex h-full min-h-0 flex-col border-l`,children:[(0,G.jsxs)(`div`,{className:`flex h-10 items-center gap-2 px-3`,children:[(0,G.jsx)(`a`,{className:`min-w-0 flex-1 truncate text-[13px] font-medium underline-offset-4 hover:underline`,href:b??void 0,target:`_blank`,rel:`noreferrer`,children:v}),(0,G.jsx)(K,{variant:`ghost`,size:`sm`,className:`h-7 text-[12px]`,type:`button`,onClick:()=>{v&&rn(v)},children:`Edit`}),(0,G.jsx)(K,{variant:`ghost`,size:`icon-xs`,"aria-label":`Close issue`,onClick:()=>{y(null),x(null),w([]),E(``)},children:(0,G.jsx)(de,{})})]}),(0,G.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:[T?(0,G.jsx)(`p`,{className:`text-destructive px-4 pt-3 text-[13px] whitespace-pre-wrap`,children:T}):null,(0,G.jsx)(NM,{fields:S}),dt?(0,G.jsx)(`iframe`,{title:v??`Issue`,src:dt,className:`min-h-64 w-full border-0 bg-background`}):b?(0,G.jsx)(`div`,{className:`text-muted-foreground px-4 pb-6 text-[13px]`,children:`Jira refuses to embed this page.`}):null]})]})})]}):null]})]})})}),o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xh,{}),(0,G.jsx)(yg,{open:o,onClose:()=>s(!1),selectedIssueKey:v??g??void 0,boardView:{scope:`view`,kind:Se,selectedEpic:Ke?null:g,search:A,filter:B.filter,sort:B.sort,hide:B.hide,columns:Object.entries(qe).map(([e,t])=>({title:e,cards:t.map(e=>({key:e.key,summary:e.summary,epic:e.epic,assignee:e.assignee,priority:e.priority,labels:e.labels,dueDate:e.dueDate,targetEnd:e.targetEnd}))})),epics:et.map(e=>({key:e.key,summary:e.summary,status:e.status}))},pipeView:je?{scope:`pipe`,kind:`stories`,selectedEpic:null,search:``,filter:{},sort:`payload`,hide:[],columns:je.columns.map(e=>({title:e.title,cards:e.cards.map(e=>({key:e.key,summary:e.summary,epic:e.epic,assignee:e.assignee,priority:e.priority,labels:e.labels,dueDate:e.dueDate,targetEnd:e.targetEnd}))})),epics:je.epics.map(e=>({key:e.key,summary:e.summary,status:e.status}))}:void 0,onApplyPreset:Mn,onSetFilter:e=>_t({...B,filter:e}),onConfirmRefresh:Dt,onBoardMutated:()=>{Et()},seedPrompt:c,onSeedConsumed:()=>l(null)})]}):null]}),(0,G.jsx)(wD,{open:Fe,onOpenChange:e=>{Ie(e),e||Re(void 0)},children:(0,G.jsxs)(DD,{children:[(0,G.jsxs)(OD,{children:[(0,G.jsx)(AD,{children:`Refresh`}),(0,G.jsx)(jD,{children:g?`Refresh all Epics, or only the focused Epic ${g}.`:$e})]}),(0,G.jsxs)(kD,{children:[(0,G.jsx)(MD,{disabled:ne,children:`Cancel`}),(0,G.jsx)(K,{type:`button`,variant:`outline`,disabled:ne||!g,onClick:()=>void Ot(`selected`),children:g?`Refresh selected (${g})`:`Refresh selected`}),(0,G.jsx)(K,{type:`button`,disabled:ne,onClick:()=>void Ot(`all`),children:`Refresh all Epics`})]})]})}),(0,G.jsx)(wE,{theme:L}),u?(0,G.jsx)(CE,{draft:u,catalog:mt,busy:f,error:m,onChange:d,onSubmit:()=>void an(),onClose:()=>{f||(d(null),h(``))},onDraftWithAi:u.mode===`create`?()=>en(u):void 0}):null,Ne?(0,G.jsx)(xE,{presets:fe.map(e=>e.name),epics:je?.epics??n,cards:Xe,favouriteKeys:ce.keys,onPick:Nn,onClose:()=>{ze.current=!1,Pe(!1),Be.current?.focus()}}):null]})}function FM({pane:e,selectedEpic:t,childCount:n,favourites:r,folderName:i,folderError:a,onFolderName:o,onCreateFolder:s,onRenameFolder:c,onDeleteFolder:l,listedEpics:u,onSelect:d,onToggleFavourite:f,onFile:p,onMove:m,onOpen:h}){let[g,_]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),`Favourites`));function v(e){_(e);let t=Xj(Rj,Kj);if(e)for(let e of[...t])e.toLowerCase()===`favourites`&&t.delete(e);else t.add(`Favourites`);Zj(t,Rj)}let y=r.folders.map(e=>e.name);return(0,G.jsxs)(pg,{open:g,onOpenChange:v,className:`flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 px-1`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 min-w-0 flex-1 items-center gap-1.5 px-2 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!g&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:`Favourites`})]})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Favourite Folders`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`start`,className:`w-56`,children:[(0,G.jsx)(jp,{children:`Create Folder`}),(0,G.jsxs)(`div`,{className:`px-2 pb-2`,children:[(0,G.jsx)(`input`,{className:`border-input h-7 w-full rounded-md border bg-transparent px-2 text-[13px] outline-none`,value:i,onChange:e=>o(e.target.value),placeholder:`Name`,"aria-label":`Folder name`,onKeyDown:e=>{e.key===`Enter`&&s()}}),a?(0,G.jsx)(`p`,{className:`text-destructive pt-1 text-[11px]`,children:a}):null]}),(0,G.jsx)(Mp,{onClick:s,children:`Create`}),y.length?(0,G.jsx)(Ip,{}):null,y.map(e=>(0,G.jsxs)(Mp,{onClick:()=>{let t=window.prompt(`Rename Folder`,e);t!=null&&c(e,t)},children:[`Rename `,e]},`rename-${e}`)),y.map(e=>(0,G.jsxs)(Mp,{onClick:()=>l(e),children:[`Delete `,e]},`delete-${e}`))]})]})]}),(0,G.jsxs)(hg,{className:`flex flex-col gap-0.5`,children:[e.unfiled.map(e=>(0,G.jsx)(jM,{epic:e,selected:t===e.key,count:n(e.key),favourited:!0,folders:y,onSelect:d,onToggleFavourite:f,onFile:p,moveTo:AM(u,e.status),onMove:m,onOpen:h},e.key)),e.folders.map(e=>(0,G.jsx)(IM,{folder:e,selectedEpic:t,childCount:n,folderNames:y,listedEpics:u,onSelect:d,onToggleFavourite:f,onFile:p,onMove:m,onOpen:h},e.name))]})]})}function IM({folder:e,selectedEpic:t,childCount:n,folderNames:r,listedEpics:i,onSelect:a,onToggleFavourite:o,onFile:s,onMove:c,onOpen:l}){let[u,d]=(0,C.useState)(()=>!Qj(Xj(zj),e.name));function f(t){d(t);let n=Xj(zj);if(t)for(let t of[...n])t.toLowerCase()===e.name.toLowerCase()&&n.delete(t);else n.add(e.name);Zj(n,zj)}return(0,G.jsxs)(pg,{open:u,onOpenChange:f,className:`flex flex-col`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 items-center gap-1.5 px-3 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!u&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:e.name}),(0,G.jsx)(`span`,{className:`text-[11px] tabular-nums`,children:e.epics.length})]})}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:e.epics.map(e=>(0,G.jsx)(jM,{epic:e,selected:t===e.key,count:n(e.key),favourited:!0,folders:r,onSelect:a,onToggleFavourite:o,onFile:s,moveTo:AM(i,e.status),onMove:c,onOpen:l},e.key))})]})}function LM({presets:e,presetName:t,presetError:n,onPresetName:r,onCreatePreset:i,onApplyPreset:a,onOverwritePreset:o,onRenamePreset:s,onDeletePreset:c}){let[l,u]=(0,C.useState)(()=>!Qj(Xj(Rj,Kj),`Presets`));function d(e){u(e);let t=Xj(Rj,Kj);if(e)for(let e of[...t])e.toLowerCase()===`presets`&&t.delete(e);else t.add(`Presets`);Zj(t,Rj)}return(0,G.jsxs)(pg,{open:l,onOpenChange:d,className:`flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 px-1`,children:[(0,G.jsx)(mg,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground flex h-7 min-w-0 flex-1 items-center gap-1.5 px-2 text-left`,children:[(0,G.jsx)(j,{className:W(`size-3.5 shrink-0 transition-transform`,!l&&`-rotate-90`)}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] font-medium`,children:`Presets`})]})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Presets`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`start`,className:`w-56`,children:[(0,G.jsx)(jp,{children:`Save Preset`}),(0,G.jsxs)(`div`,{className:`px-2 pb-2`,children:[(0,G.jsx)(`input`,{className:`border-input h-7 w-full rounded-md border bg-transparent px-2 text-[13px] outline-none`,value:t,onChange:e=>r(e.target.value),placeholder:`Name`,"aria-label":`Preset name`,onKeyDown:e=>{e.key===`Enter`&&i()}}),n?(0,G.jsx)(`p`,{className:`text-destructive pt-1 text-[11px]`,children:n}):null]}),(0,G.jsx)(Mp,{onClick:i,children:`Save`})]})]})]}),(0,G.jsx)(hg,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`hover:bg-foreground/5 flex h-7 min-w-0 flex-1 items-center rounded-lg px-[7px] text-left text-[13px] font-medium`,onClick:()=>a(e.name),children:(0,G.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name})}),(0,G.jsxs)(Op,{children:[(0,G.jsx)(kp,{asChild:!0,children:(0,G.jsx)(K,{size:`icon-xs`,variant:`ghost`,type:`button`,"aria-label":`Preset ${e.name}`,children:(0,G.jsx)(F,{})})}),(0,G.jsxs)(Ap,{align:`end`,children:[(0,G.jsx)(Mp,{onClick:()=>o(e.name),children:`Save over`}),(0,G.jsx)(Mp,{onClick:()=>{let t=window.prompt(`Rename Preset`,e.name);t!=null&&s(e.name,t)},children:`Rename`}),(0,G.jsx)(Mp,{onClick:()=>c(e.name),children:`Delete`})]})]})]},e.name))})]})}(0,fe.createRoot)(document.getElementById(`root`)).render((0,G.jsx)(C.StrictMode,{children:(0,G.jsx)(PM,{})}));
@@ -17,7 +17,7 @@
17
17
  (!theme && matchMedia("(prefers-color-scheme: dark)").matches);
18
18
  document.documentElement.classList.toggle("dark", dark);
19
19
  </script>
20
- <script type="module" crossorigin src="/assets/index-BRqmsBb_.js"></script>
20
+ <script type="module" crossorigin src="/assets/index-CyO_1G_D.js"></script>
21
21
  <link rel="stylesheet" crossorigin href="/assets/index-BLLz4u2n.css">
22
22
  </head>
23
23
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipe-kan",
3
- "version": "0.30.0",
3
+ "version": "0.30.1",
4
4
  "description": "Local Kanban for jira-cli and Plane",
5
5
  "license": "MIT",
6
6
  "type": "module",