regionclaw 0.0.13 → 0.0.15

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.
Files changed (45) hide show
  1. package/apps/ui/src/server/update-cli.ts +37 -17
  2. package/bin/regionclaw.js +64 -7
  3. package/dist/ui/BUILD_ID +1 -1
  4. package/dist/ui/build-manifest.json +3 -3
  5. package/dist/ui/server/app/(app)/dashboard/page.js +1 -1
  6. package/dist/ui/server/app/(app)/dashboard/page.js.nft.json +1 -1
  7. package/dist/ui/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  8. package/dist/ui/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/dist/ui/server/app/_global-error.html +1 -1
  10. package/dist/ui/server/app/_global-error.rsc +1 -1
  11. package/dist/ui/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/dist/ui/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/dist/ui/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/dist/ui/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/dist/ui/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/dist/ui/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/dist/ui/server/app/_not-found/page.js +2 -2
  18. package/dist/ui/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/dist/ui/server/app/_not-found.html +1 -1
  20. package/dist/ui/server/app/_not-found.rsc +5 -5
  21. package/dist/ui/server/app/_not-found.segments/_full.segment.rsc +5 -5
  22. package/dist/ui/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/dist/ui/server/app/_not-found.segments/_index.segment.rsc +5 -5
  24. package/dist/ui/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/dist/ui/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/dist/ui/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/dist/ui/server/app/api/update/run/route.js +28 -16
  28. package/dist/ui/server/app/api/update/status/route.js +28 -16
  29. package/dist/ui/server/app/login/page.js +1 -1
  30. package/dist/ui/server/app/login/page.js.nft.json +1 -1
  31. package/dist/ui/server/app/login/page_client-reference-manifest.js +1 -1
  32. package/dist/ui/server/app/page.js +1 -1
  33. package/dist/ui/server/app/page_client-reference-manifest.js +1 -1
  34. package/dist/ui/server/app/setup/page.js +1 -1
  35. package/dist/ui/server/app/setup/page.js.nft.json +1 -1
  36. package/dist/ui/server/app/setup/page_client-reference-manifest.js +1 -1
  37. package/dist/ui/server/chunks/{353.js → 313.js} +1 -1
  38. package/dist/ui/server/middleware-build-manifest.js +1 -1
  39. package/dist/ui/server/pages/404.html +1 -1
  40. package/dist/ui/server/pages/500.html +1 -1
  41. package/dist/ui/static/chunks/app/{layout-812a5dd3c2548265.js → layout-3d1ba533ac2879b9.js} +1 -1
  42. package/dist/ui/static/chunks/{webpack-95e4dbce7bf11a3e.js → webpack-aeb6fe2403cfa38a.js} +1 -1
  43. package/package.json +1 -1
  44. /package/dist/ui/static/{TST8cLEvF9ku4PwtBQGzN → 0bb91f4ehCx-TDKFbrUrv}/_buildManifest.js +0 -0
  45. /package/dist/ui/static/{TST8cLEvF9ku4PwtBQGzN → 0bb91f4ehCx-TDKFbrUrv}/_ssgManifest.js +0 -0
@@ -17,8 +17,12 @@ function resolveBinPath() {
17
17
  return path.join(resolvePackageRoot(), "bin", "regionclaw.js");
18
18
  }
19
19
 
20
- function resolveRestartCommand() {
21
- return process.env.REGIONCLAW_COMMAND_PATH || "regionclaw";
20
+ function resolveRestartNodePath() {
21
+ return process.env.REGIONCLAW_NODE_PATH || process.execPath;
22
+ }
23
+
24
+ function resolveRestartBinPath() {
25
+ return process.env.REGIONCLAW_BIN_PATH || resolveBinPath();
22
26
  }
23
27
 
24
28
  function shellEscape(value: string) {
@@ -27,29 +31,44 @@ function shellEscape(value: string) {
27
31
 
28
32
  function writeRestartScript(params: {
29
33
  parentPid: string;
30
- command: string;
34
+ nodePath: string;
35
+ binPath: string;
31
36
  host: string;
32
37
  port: string;
33
38
  }) {
34
39
  const scriptPath = path.join(os.tmpdir(), `regionclaw-restart-${Date.now()}.sh`);
40
+ const restartLogPath =
41
+ process.env.REGIONCLAW_RESTART_LOG_PATH || path.join(os.homedir(), ".regionclaw", "restart-handoff.log");
35
42
  const script = `#!/bin/sh
36
43
  parent_pid=${shellEscape(params.parentPid)}
37
- command=${shellEscape(params.command)}
44
+ node_path=${shellEscape(params.nodePath)}
45
+ bin_path=${shellEscape(params.binPath)}
38
46
  host=${shellEscape(params.host)}
39
47
  port=${shellEscape(params.port)}
48
+ restart_log=${shellEscape(restartLogPath)}
49
+
50
+ mkdir -p "$(dirname "$restart_log")"
51
+ {
52
+ printf '[%s] restart handoff begin pid=%s host=%s port=%s\\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$parent_pid" "$host" "$port"
53
+
54
+ kill -TERM "$parent_pid" >/dev/null 2>&1 || true
55
+
56
+ attempt=0
57
+ while kill -0 "$parent_pid" >/dev/null 2>&1; do
58
+ attempt=$((attempt + 1))
59
+ if [ "$attempt" -ge 40 ]; then
60
+ printf '[%s] parent still alive after wait; continuing anyway\\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
61
+ break
62
+ fi
63
+ sleep 0.25
64
+ done
65
+
66
+ printf '[%s] launching %s %s start --host %s --port %s\\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$node_path" "$bin_path" "$host" "$port"
67
+ "$node_path" "$bin_path" start --host "$host" --port "$port"
68
+ exit_code=$?
69
+ printf '[%s] restart handoff exit code=%s\\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$exit_code"
70
+ } >>"$restart_log" 2>&1
40
71
 
41
- kill -TERM "$parent_pid" >/dev/null 2>&1 || true
42
-
43
- attempt=0
44
- while kill -0 "$parent_pid" >/dev/null 2>&1; do
45
- attempt=$((attempt + 1))
46
- if [ "$attempt" -ge 40 ]; then
47
- break
48
- fi
49
- sleep 0.25
50
- done
51
-
52
- "$command" --host "$host" --port "$port" >/dev/null 2>&1
53
72
  rm -f "$0"
54
73
  `;
55
74
 
@@ -119,7 +138,8 @@ export function scheduleRegionClawRestart() {
119
138
 
120
139
  const scriptPath = writeRestartScript({
121
140
  parentPid,
122
- command: resolveRestartCommand(),
141
+ nodePath: resolveRestartNodePath(),
142
+ binPath: resolveRestartBinPath(),
123
143
  host,
124
144
  port,
125
145
  });
package/bin/regionclaw.js CHANGED
@@ -192,6 +192,42 @@ function isPidRunning(pid) {
192
192
  }
193
193
  }
194
194
 
195
+ function isPortListening(host, port) {
196
+ const portValue = String(port || "").trim();
197
+ if (!portValue) {
198
+ return false;
199
+ }
200
+
201
+ const result = runCapturedCommand("lsof", ["-nP", `-iTCP:${portValue}`, "-sTCP:LISTEN"]);
202
+ if (!result.ok) {
203
+ return false;
204
+ }
205
+
206
+ const expectedHost = String(host || "").trim();
207
+ const lines = result.stdout
208
+ .split("\n")
209
+ .map((line) => line.trim())
210
+ .filter(Boolean);
211
+
212
+ return lines.some((line) => {
213
+ if (!line.includes(`:${portValue}`)) {
214
+ return false;
215
+ }
216
+ if (!expectedHost) {
217
+ return true;
218
+ }
219
+ return line.includes(`${expectedHost}:${portValue}`) || line.includes(`*:${portValue}`);
220
+ });
221
+ }
222
+
223
+ function isRuntimeHealthy(payload) {
224
+ if (!payload || !isPidRunning(payload.pid)) {
225
+ return false;
226
+ }
227
+
228
+ return isPortListening(payload.host, payload.port);
229
+ }
230
+
195
231
  function readRuntimeState() {
196
232
  if (!fs.existsSync(runtimeStateFilePath)) {
197
233
  return null;
@@ -469,6 +505,15 @@ function resolveRestartCommandPath() {
469
505
  return "regionclaw";
470
506
  }
471
507
 
508
+ function resolveRestartBinPath() {
509
+ const invokedPath = process.argv[1];
510
+ if (invokedPath) {
511
+ return safeRealpath(invokedPath);
512
+ }
513
+
514
+ return safeRealpath(path.join(packageRoot, "bin", "regionclaw.js"));
515
+ }
516
+
472
517
  async function getUpdateStatus() {
473
518
  const globalContext = detectGlobalInstallContext();
474
519
  const packageManager = globalContext?.manager || "unknown";
@@ -741,7 +786,7 @@ function shouldDaemonize(args) {
741
786
  }
742
787
 
743
788
  function printRuntimeStatus(payload) {
744
- if (!payload || !isPidRunning(payload.pid)) {
789
+ if (!isRuntimeHealthy(payload)) {
745
790
  process.stdout.write("RegionClaw is not running.\n");
746
791
  return 1;
747
792
  }
@@ -758,11 +803,11 @@ function runStatusCommand(args) {
758
803
  const payload = readRuntimeState();
759
804
  if (args.json) {
760
805
  printJson({
761
- ok: Boolean(payload && isPidRunning(payload.pid)),
806
+ ok: isRuntimeHealthy(payload),
762
807
  ...(payload ?? {}),
763
808
  logFilePath: daemonLogFilePath,
764
809
  });
765
- return payload && isPidRunning(payload.pid) ? 0 : 1;
810
+ return isRuntimeHealthy(payload) ? 0 : 1;
766
811
  }
767
812
 
768
813
  return printRuntimeStatus(payload);
@@ -781,14 +826,24 @@ async function runStopCommand(args) {
781
826
  return result.ok || result.alreadyStopped ? 0 : 1;
782
827
  }
783
828
 
784
- function startDaemon({ host, port, dev }) {
829
+ async function startDaemon({ host, port, dev }) {
785
830
  const current = readRuntimeState();
786
- if (current && isPidRunning(current.pid)) {
831
+ if (isRuntimeHealthy(current)) {
787
832
  process.stdout.write(`RegionClaw is already running at http://${current.host}:${current.port}\n`);
788
833
  process.stdout.write(`PID: ${current.pid}\n`);
789
834
  return 0;
790
835
  }
791
836
 
837
+ if (current && isPidRunning(current.pid)) {
838
+ const stopResult = await stopRunningProcess(current);
839
+ if (!stopResult.ok && !stopResult.alreadyStopped) {
840
+ process.stderr.write(`${stopResult.message}\n`);
841
+ return 1;
842
+ }
843
+ } else if (current) {
844
+ clearRuntimeState(current.pid);
845
+ }
846
+
792
847
  fs.mkdirSync(stateDir, { recursive: true });
793
848
  const logFd = fs.openSync(daemonLogFilePath, "a");
794
849
  const child = spawn(
@@ -834,7 +889,7 @@ async function runRestartCommand({ args, config }) {
834
889
  }
835
890
 
836
891
  if (shouldDaemonize({ ...args, command: "start", dev })) {
837
- const exitCode = startDaemon({ host, port, dev });
892
+ const exitCode = await startDaemon({ host, port, dev });
838
893
  if (args.json) {
839
894
  printJson({
840
895
  ok: exitCode === 0,
@@ -933,7 +988,7 @@ async function main() {
933
988
  }
934
989
 
935
990
  if (resolvedArgs.command !== "serve" && shouldDaemonize(resolvedArgs)) {
936
- process.exitCode = startDaemon({ host, port, dev: resolvedArgs.dev });
991
+ process.exitCode = await startDaemon({ host, port, dev: resolvedArgs.dev });
937
992
  return;
938
993
  }
939
994
 
@@ -964,6 +1019,8 @@ async function main() {
964
1019
  HOST: host,
965
1020
  DATABASE_URL: databaseUrl,
966
1021
  REGIONCLAW_COMMAND_PATH: resolveRestartCommandPath(),
1022
+ REGIONCLAW_NODE_PATH: process.execPath,
1023
+ REGIONCLAW_BIN_PATH: resolveRestartBinPath(),
967
1024
  REGIONCLAW_HOST: host,
968
1025
  REGIONCLAW_PORT: port,
969
1026
  REGIONCLAW_PARENT_PID: String(process.pid),
package/dist/ui/BUILD_ID CHANGED
@@ -1 +1 @@
1
- TST8cLEvF9ku4PwtBQGzN
1
+ 0bb91f4ehCx-TDKFbrUrv
@@ -4,11 +4,11 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/TST8cLEvF9ku4PwtBQGzN/_buildManifest.js",
8
- "static/TST8cLEvF9ku4PwtBQGzN/_ssgManifest.js"
7
+ "static/0bb91f4ehCx-TDKFbrUrv/_buildManifest.js",
8
+ "static/0bb91f4ehCx-TDKFbrUrv/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
- "static/chunks/webpack-95e4dbce7bf11a3e.js",
11
+ "static/chunks/webpack-aeb6fe2403cfa38a.js",
12
12
  "static/chunks/628c8b96-cdfc45e32fce7014.js",
13
13
  "static/chunks/16-7d9bc77e936a4cb6.js",
14
14
  "static/chunks/main-app-e0f42b94daafe3ad.js"
@@ -10,4 +10,4 @@ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__
10
10
  ${a.right}px ${a.bottom}px,
11
11
  ${a.right}px ${a.top}px,
12
12
  ${a.left}px ${a.top}px
13
- )`}return(0,f.jsx)("div",{ref:b,role:"presentation","data-base-ui-inert":"",...e,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})}),ab=g.forwardRef(function(a,b){var c;let{keepMounted:d=!1,...e}=a,{store:g}=R(),h=g.useState("mounted"),i=g.useState("modal"),j=g.useState("open");return h||d?(0,f.jsx)(_.Provider,{value:d,children:(0,f.jsxs)($.XF,{ref:b,...e,children:[h&&!0===i&&(0,f.jsx)(aa,{ref:g.context.internalBackdropRef,inert:(c=!j,(0,Z._)(19)?c:c?"true":void 0)}),a.children]})}):null});var ac=c(49237),ad=c(90098);let ae={...ac.GW,...ad.G},af=g.forwardRef(function(a,b){let{render:c,className:d,forceRender:e=!1,...f}=a,{store:g}=R(),h=g.useState("open"),j=g.useState("nested"),k=g.useState("mounted"),l=g.useState("transitionStatus");return(0,i.o)("div",a,{state:{open:h,transitionStatus:l},ref:[g.context.backdropRef,b],stateAttributesMapping:ae,props:[{role:"presentation",hidden:!k,style:{userSelect:"none",WebkitUserSelect:"none"}},f],enabled:e||!j})});var ag=c(71281),ah=c(99527),ai=c(92255),aj=c(34017),ak=c(57837),al=c(16400),am=c(39177),an=c(40424);let ao=0;function ap(a,b={}){let{preventScroll:c=!1,cancelPrevious:d=!0,sync:e=!1}=b;d&&cancelAnimationFrame(ao);let f=()=>a?.focus({preventScroll:c});e?f():ao=requestAnimationFrame(f)}let aq={inert:new WeakMap,"aria-hidden":new WeakMap},ar="data-base-ui-inert",as={inert:new WeakSet,"aria-hidden":new WeakSet},at=new WeakMap,au=0,av=(a,b)=>b.map(b=>{if(a.contains(b))return b;let c=function a(b){return b?(0,t.Ng)(b)?b.host:a(b.parentNode):null}(b);return a.contains(c)?c:null}).filter(a=>null!=a),aw=a=>{let b=new Set;return a.forEach(a=>{let c=a;for(;c&&!b.has(c);)b.add(c),c=c.parentNode}),b},ax=(a,b,c)=>{let d=[],e=a=>{!a||c.has(a)||Array.from(a.children).forEach(a=>{"script"!==(0,t.mq)(a)&&(b.has(a)?e(a):d.push(a))})};return e(a),d};function ay(a,b={}){let{ariaHidden:c=!1,inert:d=!1,mark:e=!0,markerIgnoreElements:f=[]}=b,g=(0,v.R)(a[0]).body;return function(a,b,c,d,{mark:e=!0,markerIgnoreElements:f=[]}){let g=d?"inert":c?"aria-hidden":null,h=null,i=null,j=av(b,a),k=new Set(e?av(b,f):[]),l=e?ax(b,aw(j),new Set(j)).filter(a=>!k.has(a)):[],m=[],n=[];if(g){let a=aq[g],c=as[g];i=c,h=a;let d=av(b,Array.from(b.querySelectorAll("[aria-live]"))),e=j.concat(d);ax(b,aw(e),new Set(e)).forEach(b=>{let d=b.getAttribute(g),e=null!==d&&"false"!==d,f=(a.get(b)||0)+1;a.set(b,f),m.push(b),1===f&&e&&c.add(b),e||b.setAttribute(g,"inert"===g?"":"true")})}return e&&l.forEach(a=>{let b=(at.get(a)||0)+1;at.set(a,b),n.push(a),1===b&&a.setAttribute(ar,"")}),au+=1,()=>{h&&m.forEach(a=>{let b=(h.get(a)||0)-1;h.set(a,b),b||(!i?.has(a)&&g&&a.removeAttribute(g),i?.delete(a))}),e&&n.forEach(a=>{let b=(at.get(a)||0)-1;at.set(a,b),b||a.removeAttribute(ar)}),(au-=1)||(aq.inert=new WeakMap,aq["aria-hidden"]=new WeakMap,as.inert=new WeakSet,as["aria-hidden"]=new WeakSet,at=new WeakMap)}}(a,g,c,d,{mark:e,markerIgnoreElements:f})}var az=c(12983),aA=c(14229);let aB=[];function aC(){aB=aB.filter(a=>a.deref()?.isConnected)}function aD(){return aC(),aB[aB.length-1]?.deref()}function aE(a,b){if(!b.current.includes("floating")&&!a.getAttribute("role")?.includes("dialog"))return;let c=(0,ak.kQ)(),d=(0,ag.nq)(a,c).filter(a=>{let b=a.getAttribute("data-tabindex")||"";return(0,ag.AO)(a,c)||a.hasAttribute("data-tabindex")&&!b.startsWith("-")}),e=a.getAttribute("tabindex");b.current.includes("floating")||0===d.length?"0"!==e&&a.setAttribute("tabindex","0"):("-1"!==e||a.hasAttribute("data-tabindex")&&"-1"!==a.getAttribute("data-tabindex"))&&(a.setAttribute("tabindex","-1"),a.setAttribute("data-tabindex","-1"))}function aF(a){let{context:b,children:c,disabled:d=!1,initialFocus:e=!0,returnFocus:h=!0,restoreFocus:i=!1,modal:j=!0,closeOnFocusOut:k=!0,openInteractionType:l="",nextFocusableElement:m,previousFocusableElement:n,beforeContentFocusGuardRef:o,externalTree:p,getInsideElements:q}=a,r="rootStore"in b?b.rootStore:b,z=r.useState("open"),A=r.useState("domReferenceElement"),B=r.useState("floatingElement"),{events:C,dataRef:D}=r.context,E=(0,s.K)(()=>D.current.floatingContext?.nodeId),F=!1===e,G=(0,H.WZ)(A)&&F,J=g.useRef(["content"]),K=(0,ai.u)(e),L=(0,ai.u)(h),O=(0,ai.u)(l),P=(0,I.cq)(p),Q=(0,$.vB)(),R=g.useRef(!1),S=g.useRef(!1),T=g.useRef(!1),U=g.useRef(-1),V=g.useRef(""),W=g.useRef(""),X=g.useRef(null),Y=g.useRef(null),Z=(0,ah.a)(X,o,Q?.beforeInsideRef),_=(0,ah.a)(Y,Q?.afterInsideRef),aa=(0,x.Z)(),ab=(0,x.Z)(),ac=(0,y.N)(),ad=null!=Q,ae=(0,H.nd)(B),af=(0,s.K)((a=ae)=>a?(0,ag.Kr)(a,(0,ak.kQ)()):[]),ao=(0,s.K)(()=>q?.().filter(a=>null!=a)??[]),aq=(0,s.K)(a=>{let b=af(a);return J.current.map(()=>b).filter(Boolean).flat()});g.useEffect(()=>{if(d||!j)return;function a(a){"Tab"===a.key&&(0,H.gR)(ae,(0,H.RS)((0,v.R)(ae)))&&0===af().length&&!G&&(0,al.jo)(a)}let b=(0,v.R)(ae);return b.addEventListener("keydown",a),()=>{b.removeEventListener("keydown",a)}},[d,A,ae,j,J,G,af,aq]),g.useEffect(()=>{if(d||!z)return;let a=(0,v.R)(ae);function b(){T.current=!1}function c(a){let b=(0,H.EW)(a),c=ao();T.current=!((0,H.gR)(B,b)||(0,H.gR)(A,b)||(0,H.gR)(Q?.portalNode,b)||c.some(a=>a===b||(0,H.gR)(a,b))),W.current=a.pointerType||"keyboard",b?.closest(`[${az.Kd}]`)&&(S.current=!0)}function e(){W.current="keyboard"}return a.addEventListener("pointerdown",c,!0),a.addEventListener("pointerup",b,!0),a.addEventListener("pointercancel",b,!0),a.addEventListener("keydown",e,!0),()=>{a.removeEventListener("pointerdown",c,!0),a.removeEventListener("pointerup",b,!0),a.removeEventListener("pointercancel",b,!0),a.removeEventListener("keydown",e,!0)}},[d,B,A,ae,z,Q,ao]),g.useEffect(()=>{if(d||!k)return;let a=(0,v.R)(ae);function b(){S.current=!0,ab.start(0,()=>{S.current=!1})}function c(a){let b=(0,H.EW)(a),c=af().indexOf(b);-1!==c&&(U.current=c)}function e(b){let c=b.relatedTarget,d=b.currentTarget,e=(0,H.EW)(b);queueMicrotask(()=>{let f=E(),g=r.context.triggerElements,h=ao(),k=c?.hasAttribute((0,an.F)("focus-guard"))&&[X.current,Y.current,Q?.beforeInsideRef.current,Q?.afterInsideRef.current,Q?.beforeOutsideRef.current,Q?.afterOutsideRef.current,(0,aA.q)(n),(0,aA.q)(m)].includes(c),l=!((0,H.gR)(A,c)||(0,H.gR)(B,c)||(0,H.gR)(c,B)||(0,H.gR)(Q?.portalNode,c)||h.some(a=>a===c||(0,H.gR)(a,c))||null!=c&&g.hasElement(c)||g.hasMatchingElement(a=>(0,H.gR)(a,c))||k||P&&((0,am.CM)(P.nodesRef.current,f).find(a=>(0,H.gR)(a.context?.elements.floating,c)||(0,H.gR)(a.context?.elements.domReference,c))||(0,am.$4)(P.nodesRef.current,f).find(a=>[a.context?.elements.floating,(0,H.nd)(a.context?.elements.floating)].includes(c)||a.context?.elements.domReference===c)));if(d===A&&ae&&aE(ae,J),i&&d!==A&&!function(a){return!!a&&!!a.isConnected&&("function"==typeof a.checkVisibility?a.checkVisibility():"none"!==(0,t.L9)(a).display)}(e)&&(0,H.RS)(a)===a.body){if((0,t.sb)(ae)&&(ae.focus(),"popup"===i))return void ac.request(()=>{ae.focus()});let a=U.current,b=af(),c=b[a]||b[b.length-1]||ae;(0,t.sb)(c)&&c.focus()}if(D.current.insideReactTree){D.current.insideReactTree=!1;return}(G||!j)&&c&&l&&!S.current&&(G||c!==aD())&&(R.current=!0,r.setOpen(!1,(0,M.d)(N.Xn,b)))})}function f(){T.current||(D.current.insideReactTree=!0,aa.start(0,()=>{D.current.insideReactTree=!1}))}let g=(0,t.sb)(A)?A:null,h=[];if(B||g)return g&&(g.addEventListener("focusout",e),g.addEventListener("pointerdown",b),h.push(()=>{g.removeEventListener("focusout",e),g.removeEventListener("pointerdown",b)})),B&&(B.addEventListener("focusin",c),B.addEventListener("focusout",e),Q&&(B.addEventListener("focusout",f,!0),h.push(()=>{B.removeEventListener("focusout",f,!0)})),h.push(()=>{B.removeEventListener("focusin",c),B.removeEventListener("focusout",e)})),()=>{h.forEach(a=>{a()})}},[d,A,B,ae,j,P,Q,r,k,i,af,G,E,J,D,aa,ab,ac,m,n,ao]),g.useEffect(()=>{if(d||!B||!z)return;let a=Array.from(Q?.portalNode?.querySelectorAll(`[${(0,an.F)("portal")}]`)||[]),b=P?(0,am.$4)(P.nodesRef.current,E()):[],c=b.find(a=>(0,H.WZ)(a.context?.elements.domReference||null))?.context?.elements.domReference,e=ay([B,...a,X.current,Y.current,Q?.beforeOutsideRef.current,Q?.afterOutsideRef.current,...ao(),c,(0,aA.q)(n),(0,aA.q)(m),G?A:null].filter(a=>null!=a),{ariaHidden:j||G,mark:!1}),f=ay([B,...a].filter(a=>null!=a));return()=>{f(),e()}},[z,d,A,B,j,J,Q,G,P,E,m,n,ao]),(0,w.g)(()=>{if(!z||d||!(0,t.sb)(ae))return;let a=(0,v.R)(ae),b=(0,H.RS)(a);queueMicrotask(()=>{let a,c=aq(ae),d=K.current,e="function"==typeof d?d(O.current||""):d;void 0===e||!1===e||(a=(a=!0===e||null===e?c[0]||ae:(0,aA.q)(e))||c[0]||ae,(0,H.gR)(ae,b)||ap(a,{preventScroll:a===ae}))})},[d,z,ae,F,aq,K,O]),(0,w.g)(()=>{var a;if(d||!ae)return;let b=(0,v.R)(ae);function c(a){var b,c;let d;if(a.open||(b=a.nativeEvent,c=W.current,d=(0,t.zk)(b.target),V.current=b instanceof d.KeyboardEvent?"keyboard":b instanceof d.FocusEvent?c||"keyboard":"pointerType"in b?b.pointerType||"keyboard":"touches"in b?"touch":b instanceof d.MouseEvent?c||(0===b.detail?"keyboard":"mouse"):""),a.reason===N.N7&&"mouseleave"===a.nativeEvent.type&&(R.current=!0),a.reason===N.Np)if(a.nested)R.current=!1;else if((0,al.YF)(a.nativeEvent)||(0,al.Pg)(a.nativeEvent))R.current=!1;else{let a=!1;document.createElement("div").focus({get preventScroll(){return a=!0,!1}}),a?R.current=!1:R.current=!0}}return a=(0,H.RS)(b),aC(),a&&"body"!==(0,t.mq)(a)&&(aB.push(new WeakRef(a)),aB.length>20&&(aB=aB.slice(-20))),C.on("openchange",c),()=>{C.off("openchange",c);let a=(0,H.RS)(b),d=ao(),e=(0,H.gR)(B,a)||d.some(b=>b===a||(0,H.gR)(b,a))||P&&(0,am.CM)(P.nodesRef.current,E(),!1).some(b=>(0,H.gR)(b.context?.elements.floating,a)),f=function(){let a=L.current,b="function"==typeof a?a(V.current):a;if(void 0===b||!1===b)return null;if(null===b&&(b=!0),"boolean"==typeof b){let a=A||aD();return a&&a.isConnected?a:null}let c=A||aD();return(0,aA.q)(b)||c||null}();queueMicrotask(()=>{let c=function(a){if(!a)return null;let b=(0,ak.kQ)();return(0,ag.AO)(a,b)?a:(0,ag.Kr)(a,b)[0]||a}(f),d="boolean"!=typeof L.current;L.current&&!R.current&&(0,t.sb)(c)&&(d||c===a||a===b.body||e)&&c.focus({preventScroll:!0}),R.current=!1})}},[d,B,ae,L,D,C,P,A,E,ao]),(0,w.g)(()=>{if(!u.Tc||z||!B)return;let a=(0,H.RS)((0,v.R)(B));(0,t.sb)(a)&&(0,H.$u)(a)&&(0,H.gR)(B,a)&&a.blur()},[z,B]),(0,w.g)(()=>{if(!d&&Q)return Q.setFocusManagerState({modal:j,closeOnFocusOut:k,open:z,onOpenChange:r.setOpen,domReference:A}),()=>{Q.setFocusManagerState(null)}},[d,Q,j,z,r,k,A]),(0,w.g)(()=>{if(!d&&ae)return aE(ae,J),()=>{queueMicrotask(aC)}},[d,ae,J]);let ar=!d&&(!j||!G)&&(ad||j);return(0,f.jsxs)(g.Fragment,{children:[ar&&(0,f.jsx)(aj.U,{"data-type":"inside",ref:Z,onFocus:a=>{if(j){let a=aq();ap(a[a.length-1])}else if(Q?.portalNode)if(R.current=!1,(0,ak.Qp)(a,Q.portalNode)){let a=(0,ak.vF)(A);a?.focus()}else(0,aA.q)(n??Q.beforeOutsideRef)?.focus()}}),c,ar&&(0,f.jsx)(aj.U,{"data-type":"inside",ref:_,onFocus:a=>{if(j)ap(aq()[0]);else if(Q?.portalNode)if(k&&(R.current=!0),(0,ak.Qp)(a,Q.portalNode)){let a=(0,ak.XJ)(A);a?.focus()}else(0,aA.q)(m??Q.afterOutsideRef)?.focus()}})]})}let aG=((d={}).nestedDialogs="--nested-dialogs",d),aH=((e={})[e.open=ac.lP.open]="open",e[e.closed=ac.lP.closed]="closed",e[e.startingStyle=ac.lP.startingStyle]="startingStyle",e[e.endingStyle=ac.lP.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e);var aI=c(55291);let aJ="ArrowUp",aK="ArrowDown",aL="ArrowLeft",aM="ArrowRight";[...new Set([...new Set([aL,aM]),...new Set([aJ,aK])])];let aN=new Set([aJ,aK,aL,aM,"Home","End"]),aO={...ac.GW,...ad.G,nestedDialogOpen:a=>a?{[aH.nestedDialogOpen]:""}:null},aP=g.forwardRef(function(a,b){let{className:c,finalFocus:d,initialFocus:e,render:h,...j}=a,{store:k}=R(),l=k.useState("descriptionElementId"),m=k.useState("disablePointerDismissal"),n=k.useState("floatingRootContext"),o=k.useState("popupProps"),p=k.useState("modal"),q=k.useState("mounted"),r=k.useState("nested"),s=k.useState("nestedOpenDialogCount"),t=k.useState("open"),u=k.useState("openMethod"),v=k.useState("titleElementId"),w=k.useState("transitionStatus"),x=k.useState("role");!function(){if(void 0===g.useContext(_))throw Error((0,P.A)(26))}(),(0,aI.v)({open:t,ref:k.context.popupRef,onComplete(){t&&k.context.onOpenChangeComplete?.(!0)}});let y=void 0===e?function(a){return"touch"!==a||k.context.popupRef.current}:e,z=(0,i.o)("div",a,{state:{open:t,nested:r,transitionStatus:w,nestedDialogOpen:s>0},props:[o,{"aria-labelledby":v??void 0,"aria-describedby":l??void 0,role:x,tabIndex:-1,hidden:!q,onKeyDown(a){aN.has(a.key)&&a.stopPropagation()},style:{[aG.nestedDialogs]:s}},j],ref:[b,k.context.popupRef,k.useStateSetter("popupElement")],stateAttributesMapping:aO});return(0,f.jsx)(aF,{context:n,openInteractionType:u,disabled:!q,closeOnFocusOut:!m,initialFocus:y,returnFocus:d,modal:!1!==p,restoreFocus:"popup",children:z})});var aQ=c(25214);let aR=g.forwardRef(function(a,b){let{render:c,className:d,disabled:e=!1,nativeButton:f=!0,...g}=a,{store:h}=R(),j=h.useState("open"),{getButtonProps:k,buttonRef:l}=(0,aQ.s)({disabled:e,native:f});return(0,i.o)("button",a,{state:{disabled:e},ref:[b,l],props:[{onClick:function(a){j&&h.setOpen(!1,(0,M.d)(N.SR,a.nativeEvent))}},g,k]})});var aS=c(66731);let aT=g.forwardRef(function(a,b){let{render:c,className:d,id:e,...f}=a,{store:g}=R(),h=(0,aS.e)(e);return g.useSyncedValueWithCleanup("titleElementId",h),(0,i.o)("h2",a,{ref:b,props:[{id:h},f]})}),aU=g.forwardRef(function(a,b){let{render:c,className:d,id:e,...f}=a,{store:g}=R(),h=(0,aS.e)(e);return g.useSyncedValueWithCleanup("descriptionElementId",h),(0,i.o)("p",a,{ref:b,props:[{id:h},f]})});var aV=c(67210);let aW=(0,aV.A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function aX({...a}){return(0,f.jsx)(Y,{"data-slot":"sheet",...a})}function aY({...a}){return(0,f.jsx)(ab,{"data-slot":"sheet-portal",...a})}function aZ({className:a,...b}){return(0,f.jsx)(af,{"data-slot":"sheet-overlay",className:(0,l.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...b})}function a$({className:a,children:b,side:c="right",showCloseButton:d=!0,...e}){return(0,f.jsxs)(aY,{children:[(0,f.jsx)(aZ,{}),(0,f.jsxs)(aP,{"data-slot":"sheet-content","data-side":c,className:(0,l.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...e,children:[b,d&&(0,f.jsxs)(aR,{"data-slot":"sheet-close",render:(0,f.jsx)(m.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,f.jsx)(aW,{}),(0,f.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function a_({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sheet-header",className:(0,l.cn)("flex flex-col gap-0.5 p-4",a),...b})}function a0({className:a,...b}){return(0,f.jsx)(aT,{"data-slot":"sheet-title",className:(0,l.cn)("font-heading text-base font-medium text-foreground",a),...b})}function a1({className:a,...b}){return(0,f.jsx)(aU,{"data-slot":"sheet-description",className:(0,l.cn)("text-sm text-muted-foreground",a),...b})}function a2({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"skeleton",className:(0,l.cn)("animate-pulse rounded-md bg-muted",a),...b})}var a3=c(64494);let a4=(0,aV.A)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),a5=g.createContext(null);function a6(){let a=g.useContext(a5);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function a7({defaultOpen:a=!0,open:b,onOpenChange:c,className:d,style:e,children:h,...i}){let j=function(){let[a,b]=g.useState(void 0);return g.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[k,m]=g.useState(!1),[n,o]=g.useState(a),p=b??n,q=g.useCallback(a=>{let b="function"==typeof a?a(p):a;c?c(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[c,p]),r=g.useCallback(()=>j?m(a=>!a):q(a=>!a),[j,q,m]);g.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",t=g.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:j,openMobile:k,setOpenMobile:m,toggleSidebar:r}),[s,p,q,j,k,m,r]);return(0,f.jsx)(a5.Provider,{value:t,children:(0,f.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...e},className:(0,l.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",d),...i,children:h})})}function a8({side:a="left",variant:b="sidebar",collapsible:c="offcanvas",className:d,children:e,dir:g,...h}){let{isMobile:i,state:j,openMobile:k,setOpenMobile:m}=a6();return"none"===c?(0,f.jsx)("div",{"data-slot":"sidebar",className:(0,l.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",d),...h,children:e}):i?(0,f.jsx)(aX,{open:k,onOpenChange:m,...h,children:(0,f.jsxs)(a$,{dir:g,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,f.jsxs)(a_,{className:"sr-only",children:[(0,f.jsx)(a0,{children:"Sidebar"}),(0,f.jsx)(a1,{children:"Displays the mobile sidebar."})]}),(0,f.jsx)("div",{className:"flex h-full w-full flex-col",children:e})]})}):(0,f.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":j,"data-collapsible":"collapsed"===j?c:"","data-variant":b,"data-side":a,"data-slot":"sidebar",children:[(0,f.jsx)("div",{"data-slot":"sidebar-gap",className:(0,l.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===b||"inset"===b?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,f.jsx)("div",{"data-slot":"sidebar-container","data-side":a,className:(0,l.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===b||"inset"===b?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",d),...h,children:(0,f.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:e})})]})}function a9({className:a,onClick:b,...c}){let{toggleSidebar:d}=a6();return(0,f.jsxs)(m.$,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:(0,l.cn)(a),onClick:a=>{b?.(a),d()},...c,children:[(0,f.jsx)(a4,{}),(0,f.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function ba({className:a,...b}){let{toggleSidebar:c}=a6();return(0,f.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:c,title:"Toggle Sidebar",className:(0,l.cn)("absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...b})}function bb({className:a,...b}){return(0,f.jsx)("main",{"data-slot":"sidebar-inset",className:(0,l.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",a),...b})}function bc({className:a,...b}){return(0,f.jsx)(n.p,{"data-slot":"sidebar-input","data-sidebar":"input",className:(0,l.cn)("h-8 w-full bg-background shadow-none",a),...b})}function bd({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,l.cn)("flex flex-col gap-2 p-2",a),...b})}function be({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,l.cn)("flex flex-col gap-2 p-2",a),...b})}function bf({className:a,...b}){return(0,f.jsx)(p,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,l.cn)("mx-2 w-auto bg-sidebar-border",a),...b})}function bg({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,l.cn)("no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...b})}function bh({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,l.cn)("relative flex w-full min-w-0 flex-col p-2",a),...b})}function bi({className:a,render:b,...c}){return j({defaultTagName:"div",props:(0,h.v6)({className:(0,l.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",a)},c),render:b,state:{slot:"sidebar-group-label",sidebar:"group-label"}})}function bj({className:a,render:b,...c}){return j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",a)},c),render:b,state:{slot:"sidebar-group-action",sidebar:"group-action"}})}function bk({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,l.cn)("w-full text-sm",a),...b})}function bl({className:a,...b}){return(0,f.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,l.cn)("flex w-full min-w-0 flex-col gap-0",a),...b})}function bm({className:a,...b}){return(0,f.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,l.cn)("group/menu-item relative",a),...b})}let bn=(0,k.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function bo({render:a,isActive:b=!1,variant:c="default",size:d="default",tooltip:e,className:g,...i}){let{isMobile:k,state:m}=a6(),n=j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)(bn({variant:c,size:d}),g)},i),render:e?(0,f.jsx)(a3.k$,{render:a}):a,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:d,active:b}});return e?("string"==typeof e&&(e={children:e}),(0,f.jsxs)(a3.m_,{children:[n,(0,f.jsx)(a3.ZI,{side:"right",align:"center",hidden:"collapsed"!==m||k,...e})]})):n}function bp({className:a,render:b,showOnHover:c=!1,...d}){return j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",c&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0",a)},d),render:b,state:{slot:"sidebar-menu-action",sidebar:"menu-action"}})}function bq({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",className:(0,l.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground",a),...b})}function br({className:a,showIcon:b=!1,...c}){let[d]=g.useState(()=>`${Math.floor(40*Math.random())+50}%`);return(0,f.jsxs)("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:(0,l.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),...c,children:[b&&(0,f.jsx)(a2,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,f.jsx)(a2,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":d}})]})}function bs({className:a,...b}){return(0,f.jsx)("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:(0,l.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",a),...b})}function bt({className:a,...b}){return(0,f.jsx)("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:(0,l.cn)("group/menu-sub-item relative",a),...b})}function bu({render:a,size:b="md",isActive:c=!1,className:d,...e}){return j({defaultTagName:"a",props:(0,h.v6)({className:(0,l.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",d)},e),render:a,state:{slot:"sidebar-menu-sub-button",sidebar:"menu-sub-button",size:b,active:c}})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96362:(a,b,c)=>{"use strict";c.d(b,{RegionClawUpdateBanner:()=>d});let d=(0,c(67834).registerClientReference)(function(){throw Error("Attempted to call RegionClawUpdateBanner() from the server but RegionClawUpdateBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/region/regionclaw/apps/ui/src/components/regionclaw-update-banner.tsx","RegionClawUpdateBanner")},99361:(a,b,c)=>{Promise.resolve().then(c.bind(c,20999)),Promise.resolve().then(c.bind(c,19376)),Promise.resolve().then(c.bind(c,83119))},99394:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>d});let d=(0,c(67834).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/region/regionclaw/apps/ui/src/components/app-sidebar.tsx","AppSidebar")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[375,858,902,263,324,502,547,353],()=>b(b.s=46058));module.exports=c})();
13
+ )`}return(0,f.jsx)("div",{ref:b,role:"presentation","data-base-ui-inert":"",...e,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})}),ab=g.forwardRef(function(a,b){var c;let{keepMounted:d=!1,...e}=a,{store:g}=R(),h=g.useState("mounted"),i=g.useState("modal"),j=g.useState("open");return h||d?(0,f.jsx)(_.Provider,{value:d,children:(0,f.jsxs)($.XF,{ref:b,...e,children:[h&&!0===i&&(0,f.jsx)(aa,{ref:g.context.internalBackdropRef,inert:(c=!j,(0,Z._)(19)?c:c?"true":void 0)}),a.children]})}):null});var ac=c(49237),ad=c(90098);let ae={...ac.GW,...ad.G},af=g.forwardRef(function(a,b){let{render:c,className:d,forceRender:e=!1,...f}=a,{store:g}=R(),h=g.useState("open"),j=g.useState("nested"),k=g.useState("mounted"),l=g.useState("transitionStatus");return(0,i.o)("div",a,{state:{open:h,transitionStatus:l},ref:[g.context.backdropRef,b],stateAttributesMapping:ae,props:[{role:"presentation",hidden:!k,style:{userSelect:"none",WebkitUserSelect:"none"}},f],enabled:e||!j})});var ag=c(71281),ah=c(99527),ai=c(92255),aj=c(34017),ak=c(57837),al=c(16400),am=c(39177),an=c(40424);let ao=0;function ap(a,b={}){let{preventScroll:c=!1,cancelPrevious:d=!0,sync:e=!1}=b;d&&cancelAnimationFrame(ao);let f=()=>a?.focus({preventScroll:c});e?f():ao=requestAnimationFrame(f)}let aq={inert:new WeakMap,"aria-hidden":new WeakMap},ar="data-base-ui-inert",as={inert:new WeakSet,"aria-hidden":new WeakSet},at=new WeakMap,au=0,av=(a,b)=>b.map(b=>{if(a.contains(b))return b;let c=function a(b){return b?(0,t.Ng)(b)?b.host:a(b.parentNode):null}(b);return a.contains(c)?c:null}).filter(a=>null!=a),aw=a=>{let b=new Set;return a.forEach(a=>{let c=a;for(;c&&!b.has(c);)b.add(c),c=c.parentNode}),b},ax=(a,b,c)=>{let d=[],e=a=>{!a||c.has(a)||Array.from(a.children).forEach(a=>{"script"!==(0,t.mq)(a)&&(b.has(a)?e(a):d.push(a))})};return e(a),d};function ay(a,b={}){let{ariaHidden:c=!1,inert:d=!1,mark:e=!0,markerIgnoreElements:f=[]}=b,g=(0,v.R)(a[0]).body;return function(a,b,c,d,{mark:e=!0,markerIgnoreElements:f=[]}){let g=d?"inert":c?"aria-hidden":null,h=null,i=null,j=av(b,a),k=new Set(e?av(b,f):[]),l=e?ax(b,aw(j),new Set(j)).filter(a=>!k.has(a)):[],m=[],n=[];if(g){let a=aq[g],c=as[g];i=c,h=a;let d=av(b,Array.from(b.querySelectorAll("[aria-live]"))),e=j.concat(d);ax(b,aw(e),new Set(e)).forEach(b=>{let d=b.getAttribute(g),e=null!==d&&"false"!==d,f=(a.get(b)||0)+1;a.set(b,f),m.push(b),1===f&&e&&c.add(b),e||b.setAttribute(g,"inert"===g?"":"true")})}return e&&l.forEach(a=>{let b=(at.get(a)||0)+1;at.set(a,b),n.push(a),1===b&&a.setAttribute(ar,"")}),au+=1,()=>{h&&m.forEach(a=>{let b=(h.get(a)||0)-1;h.set(a,b),b||(!i?.has(a)&&g&&a.removeAttribute(g),i?.delete(a))}),e&&n.forEach(a=>{let b=(at.get(a)||0)-1;at.set(a,b),b||a.removeAttribute(ar)}),(au-=1)||(aq.inert=new WeakMap,aq["aria-hidden"]=new WeakMap,as.inert=new WeakSet,as["aria-hidden"]=new WeakSet,at=new WeakMap)}}(a,g,c,d,{mark:e,markerIgnoreElements:f})}var az=c(12983),aA=c(14229);let aB=[];function aC(){aB=aB.filter(a=>a.deref()?.isConnected)}function aD(){return aC(),aB[aB.length-1]?.deref()}function aE(a,b){if(!b.current.includes("floating")&&!a.getAttribute("role")?.includes("dialog"))return;let c=(0,ak.kQ)(),d=(0,ag.nq)(a,c).filter(a=>{let b=a.getAttribute("data-tabindex")||"";return(0,ag.AO)(a,c)||a.hasAttribute("data-tabindex")&&!b.startsWith("-")}),e=a.getAttribute("tabindex");b.current.includes("floating")||0===d.length?"0"!==e&&a.setAttribute("tabindex","0"):("-1"!==e||a.hasAttribute("data-tabindex")&&"-1"!==a.getAttribute("data-tabindex"))&&(a.setAttribute("tabindex","-1"),a.setAttribute("data-tabindex","-1"))}function aF(a){let{context:b,children:c,disabled:d=!1,initialFocus:e=!0,returnFocus:h=!0,restoreFocus:i=!1,modal:j=!0,closeOnFocusOut:k=!0,openInteractionType:l="",nextFocusableElement:m,previousFocusableElement:n,beforeContentFocusGuardRef:o,externalTree:p,getInsideElements:q}=a,r="rootStore"in b?b.rootStore:b,z=r.useState("open"),A=r.useState("domReferenceElement"),B=r.useState("floatingElement"),{events:C,dataRef:D}=r.context,E=(0,s.K)(()=>D.current.floatingContext?.nodeId),F=!1===e,G=(0,H.WZ)(A)&&F,J=g.useRef(["content"]),K=(0,ai.u)(e),L=(0,ai.u)(h),O=(0,ai.u)(l),P=(0,I.cq)(p),Q=(0,$.vB)(),R=g.useRef(!1),S=g.useRef(!1),T=g.useRef(!1),U=g.useRef(-1),V=g.useRef(""),W=g.useRef(""),X=g.useRef(null),Y=g.useRef(null),Z=(0,ah.a)(X,o,Q?.beforeInsideRef),_=(0,ah.a)(Y,Q?.afterInsideRef),aa=(0,x.Z)(),ab=(0,x.Z)(),ac=(0,y.N)(),ad=null!=Q,ae=(0,H.nd)(B),af=(0,s.K)((a=ae)=>a?(0,ag.Kr)(a,(0,ak.kQ)()):[]),ao=(0,s.K)(()=>q?.().filter(a=>null!=a)??[]),aq=(0,s.K)(a=>{let b=af(a);return J.current.map(()=>b).filter(Boolean).flat()});g.useEffect(()=>{if(d||!j)return;function a(a){"Tab"===a.key&&(0,H.gR)(ae,(0,H.RS)((0,v.R)(ae)))&&0===af().length&&!G&&(0,al.jo)(a)}let b=(0,v.R)(ae);return b.addEventListener("keydown",a),()=>{b.removeEventListener("keydown",a)}},[d,A,ae,j,J,G,af,aq]),g.useEffect(()=>{if(d||!z)return;let a=(0,v.R)(ae);function b(){T.current=!1}function c(a){let b=(0,H.EW)(a),c=ao();T.current=!((0,H.gR)(B,b)||(0,H.gR)(A,b)||(0,H.gR)(Q?.portalNode,b)||c.some(a=>a===b||(0,H.gR)(a,b))),W.current=a.pointerType||"keyboard",b?.closest(`[${az.Kd}]`)&&(S.current=!0)}function e(){W.current="keyboard"}return a.addEventListener("pointerdown",c,!0),a.addEventListener("pointerup",b,!0),a.addEventListener("pointercancel",b,!0),a.addEventListener("keydown",e,!0),()=>{a.removeEventListener("pointerdown",c,!0),a.removeEventListener("pointerup",b,!0),a.removeEventListener("pointercancel",b,!0),a.removeEventListener("keydown",e,!0)}},[d,B,A,ae,z,Q,ao]),g.useEffect(()=>{if(d||!k)return;let a=(0,v.R)(ae);function b(){S.current=!0,ab.start(0,()=>{S.current=!1})}function c(a){let b=(0,H.EW)(a),c=af().indexOf(b);-1!==c&&(U.current=c)}function e(b){let c=b.relatedTarget,d=b.currentTarget,e=(0,H.EW)(b);queueMicrotask(()=>{let f=E(),g=r.context.triggerElements,h=ao(),k=c?.hasAttribute((0,an.F)("focus-guard"))&&[X.current,Y.current,Q?.beforeInsideRef.current,Q?.afterInsideRef.current,Q?.beforeOutsideRef.current,Q?.afterOutsideRef.current,(0,aA.q)(n),(0,aA.q)(m)].includes(c),l=!((0,H.gR)(A,c)||(0,H.gR)(B,c)||(0,H.gR)(c,B)||(0,H.gR)(Q?.portalNode,c)||h.some(a=>a===c||(0,H.gR)(a,c))||null!=c&&g.hasElement(c)||g.hasMatchingElement(a=>(0,H.gR)(a,c))||k||P&&((0,am.CM)(P.nodesRef.current,f).find(a=>(0,H.gR)(a.context?.elements.floating,c)||(0,H.gR)(a.context?.elements.domReference,c))||(0,am.$4)(P.nodesRef.current,f).find(a=>[a.context?.elements.floating,(0,H.nd)(a.context?.elements.floating)].includes(c)||a.context?.elements.domReference===c)));if(d===A&&ae&&aE(ae,J),i&&d!==A&&!function(a){return!!a&&!!a.isConnected&&("function"==typeof a.checkVisibility?a.checkVisibility():"none"!==(0,t.L9)(a).display)}(e)&&(0,H.RS)(a)===a.body){if((0,t.sb)(ae)&&(ae.focus(),"popup"===i))return void ac.request(()=>{ae.focus()});let a=U.current,b=af(),c=b[a]||b[b.length-1]||ae;(0,t.sb)(c)&&c.focus()}if(D.current.insideReactTree){D.current.insideReactTree=!1;return}(G||!j)&&c&&l&&!S.current&&(G||c!==aD())&&(R.current=!0,r.setOpen(!1,(0,M.d)(N.Xn,b)))})}function f(){T.current||(D.current.insideReactTree=!0,aa.start(0,()=>{D.current.insideReactTree=!1}))}let g=(0,t.sb)(A)?A:null,h=[];if(B||g)return g&&(g.addEventListener("focusout",e),g.addEventListener("pointerdown",b),h.push(()=>{g.removeEventListener("focusout",e),g.removeEventListener("pointerdown",b)})),B&&(B.addEventListener("focusin",c),B.addEventListener("focusout",e),Q&&(B.addEventListener("focusout",f,!0),h.push(()=>{B.removeEventListener("focusout",f,!0)})),h.push(()=>{B.removeEventListener("focusin",c),B.removeEventListener("focusout",e)})),()=>{h.forEach(a=>{a()})}},[d,A,B,ae,j,P,Q,r,k,i,af,G,E,J,D,aa,ab,ac,m,n,ao]),g.useEffect(()=>{if(d||!B||!z)return;let a=Array.from(Q?.portalNode?.querySelectorAll(`[${(0,an.F)("portal")}]`)||[]),b=P?(0,am.$4)(P.nodesRef.current,E()):[],c=b.find(a=>(0,H.WZ)(a.context?.elements.domReference||null))?.context?.elements.domReference,e=ay([B,...a,X.current,Y.current,Q?.beforeOutsideRef.current,Q?.afterOutsideRef.current,...ao(),c,(0,aA.q)(n),(0,aA.q)(m),G?A:null].filter(a=>null!=a),{ariaHidden:j||G,mark:!1}),f=ay([B,...a].filter(a=>null!=a));return()=>{f(),e()}},[z,d,A,B,j,J,Q,G,P,E,m,n,ao]),(0,w.g)(()=>{if(!z||d||!(0,t.sb)(ae))return;let a=(0,v.R)(ae),b=(0,H.RS)(a);queueMicrotask(()=>{let a,c=aq(ae),d=K.current,e="function"==typeof d?d(O.current||""):d;void 0===e||!1===e||(a=(a=!0===e||null===e?c[0]||ae:(0,aA.q)(e))||c[0]||ae,(0,H.gR)(ae,b)||ap(a,{preventScroll:a===ae}))})},[d,z,ae,F,aq,K,O]),(0,w.g)(()=>{var a;if(d||!ae)return;let b=(0,v.R)(ae);function c(a){var b,c;let d;if(a.open||(b=a.nativeEvent,c=W.current,d=(0,t.zk)(b.target),V.current=b instanceof d.KeyboardEvent?"keyboard":b instanceof d.FocusEvent?c||"keyboard":"pointerType"in b?b.pointerType||"keyboard":"touches"in b?"touch":b instanceof d.MouseEvent?c||(0===b.detail?"keyboard":"mouse"):""),a.reason===N.N7&&"mouseleave"===a.nativeEvent.type&&(R.current=!0),a.reason===N.Np)if(a.nested)R.current=!1;else if((0,al.YF)(a.nativeEvent)||(0,al.Pg)(a.nativeEvent))R.current=!1;else{let a=!1;document.createElement("div").focus({get preventScroll(){return a=!0,!1}}),a?R.current=!1:R.current=!0}}return a=(0,H.RS)(b),aC(),a&&"body"!==(0,t.mq)(a)&&(aB.push(new WeakRef(a)),aB.length>20&&(aB=aB.slice(-20))),C.on("openchange",c),()=>{C.off("openchange",c);let a=(0,H.RS)(b),d=ao(),e=(0,H.gR)(B,a)||d.some(b=>b===a||(0,H.gR)(b,a))||P&&(0,am.CM)(P.nodesRef.current,E(),!1).some(b=>(0,H.gR)(b.context?.elements.floating,a)),f=function(){let a=L.current,b="function"==typeof a?a(V.current):a;if(void 0===b||!1===b)return null;if(null===b&&(b=!0),"boolean"==typeof b){let a=A||aD();return a&&a.isConnected?a:null}let c=A||aD();return(0,aA.q)(b)||c||null}();queueMicrotask(()=>{let c=function(a){if(!a)return null;let b=(0,ak.kQ)();return(0,ag.AO)(a,b)?a:(0,ag.Kr)(a,b)[0]||a}(f),d="boolean"!=typeof L.current;L.current&&!R.current&&(0,t.sb)(c)&&(d||c===a||a===b.body||e)&&c.focus({preventScroll:!0}),R.current=!1})}},[d,B,ae,L,D,C,P,A,E,ao]),(0,w.g)(()=>{if(!u.Tc||z||!B)return;let a=(0,H.RS)((0,v.R)(B));(0,t.sb)(a)&&(0,H.$u)(a)&&(0,H.gR)(B,a)&&a.blur()},[z,B]),(0,w.g)(()=>{if(!d&&Q)return Q.setFocusManagerState({modal:j,closeOnFocusOut:k,open:z,onOpenChange:r.setOpen,domReference:A}),()=>{Q.setFocusManagerState(null)}},[d,Q,j,z,r,k,A]),(0,w.g)(()=>{if(!d&&ae)return aE(ae,J),()=>{queueMicrotask(aC)}},[d,ae,J]);let ar=!d&&(!j||!G)&&(ad||j);return(0,f.jsxs)(g.Fragment,{children:[ar&&(0,f.jsx)(aj.U,{"data-type":"inside",ref:Z,onFocus:a=>{if(j){let a=aq();ap(a[a.length-1])}else if(Q?.portalNode)if(R.current=!1,(0,ak.Qp)(a,Q.portalNode)){let a=(0,ak.vF)(A);a?.focus()}else(0,aA.q)(n??Q.beforeOutsideRef)?.focus()}}),c,ar&&(0,f.jsx)(aj.U,{"data-type":"inside",ref:_,onFocus:a=>{if(j)ap(aq()[0]);else if(Q?.portalNode)if(k&&(R.current=!0),(0,ak.Qp)(a,Q.portalNode)){let a=(0,ak.XJ)(A);a?.focus()}else(0,aA.q)(m??Q.afterOutsideRef)?.focus()}})]})}let aG=((d={}).nestedDialogs="--nested-dialogs",d),aH=((e={})[e.open=ac.lP.open]="open",e[e.closed=ac.lP.closed]="closed",e[e.startingStyle=ac.lP.startingStyle]="startingStyle",e[e.endingStyle=ac.lP.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e);var aI=c(55291);let aJ="ArrowUp",aK="ArrowDown",aL="ArrowLeft",aM="ArrowRight";[...new Set([...new Set([aL,aM]),...new Set([aJ,aK])])];let aN=new Set([aJ,aK,aL,aM,"Home","End"]),aO={...ac.GW,...ad.G,nestedDialogOpen:a=>a?{[aH.nestedDialogOpen]:""}:null},aP=g.forwardRef(function(a,b){let{className:c,finalFocus:d,initialFocus:e,render:h,...j}=a,{store:k}=R(),l=k.useState("descriptionElementId"),m=k.useState("disablePointerDismissal"),n=k.useState("floatingRootContext"),o=k.useState("popupProps"),p=k.useState("modal"),q=k.useState("mounted"),r=k.useState("nested"),s=k.useState("nestedOpenDialogCount"),t=k.useState("open"),u=k.useState("openMethod"),v=k.useState("titleElementId"),w=k.useState("transitionStatus"),x=k.useState("role");!function(){if(void 0===g.useContext(_))throw Error((0,P.A)(26))}(),(0,aI.v)({open:t,ref:k.context.popupRef,onComplete(){t&&k.context.onOpenChangeComplete?.(!0)}});let y=void 0===e?function(a){return"touch"!==a||k.context.popupRef.current}:e,z=(0,i.o)("div",a,{state:{open:t,nested:r,transitionStatus:w,nestedDialogOpen:s>0},props:[o,{"aria-labelledby":v??void 0,"aria-describedby":l??void 0,role:x,tabIndex:-1,hidden:!q,onKeyDown(a){aN.has(a.key)&&a.stopPropagation()},style:{[aG.nestedDialogs]:s}},j],ref:[b,k.context.popupRef,k.useStateSetter("popupElement")],stateAttributesMapping:aO});return(0,f.jsx)(aF,{context:n,openInteractionType:u,disabled:!q,closeOnFocusOut:!m,initialFocus:y,returnFocus:d,modal:!1!==p,restoreFocus:"popup",children:z})});var aQ=c(25214);let aR=g.forwardRef(function(a,b){let{render:c,className:d,disabled:e=!1,nativeButton:f=!0,...g}=a,{store:h}=R(),j=h.useState("open"),{getButtonProps:k,buttonRef:l}=(0,aQ.s)({disabled:e,native:f});return(0,i.o)("button",a,{state:{disabled:e},ref:[b,l],props:[{onClick:function(a){j&&h.setOpen(!1,(0,M.d)(N.SR,a.nativeEvent))}},g,k]})});var aS=c(66731);let aT=g.forwardRef(function(a,b){let{render:c,className:d,id:e,...f}=a,{store:g}=R(),h=(0,aS.e)(e);return g.useSyncedValueWithCleanup("titleElementId",h),(0,i.o)("h2",a,{ref:b,props:[{id:h},f]})}),aU=g.forwardRef(function(a,b){let{render:c,className:d,id:e,...f}=a,{store:g}=R(),h=(0,aS.e)(e);return g.useSyncedValueWithCleanup("descriptionElementId",h),(0,i.o)("p",a,{ref:b,props:[{id:h},f]})});var aV=c(67210);let aW=(0,aV.A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function aX({...a}){return(0,f.jsx)(Y,{"data-slot":"sheet",...a})}function aY({...a}){return(0,f.jsx)(ab,{"data-slot":"sheet-portal",...a})}function aZ({className:a,...b}){return(0,f.jsx)(af,{"data-slot":"sheet-overlay",className:(0,l.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...b})}function a$({className:a,children:b,side:c="right",showCloseButton:d=!0,...e}){return(0,f.jsxs)(aY,{children:[(0,f.jsx)(aZ,{}),(0,f.jsxs)(aP,{"data-slot":"sheet-content","data-side":c,className:(0,l.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...e,children:[b,d&&(0,f.jsxs)(aR,{"data-slot":"sheet-close",render:(0,f.jsx)(m.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,f.jsx)(aW,{}),(0,f.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function a_({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sheet-header",className:(0,l.cn)("flex flex-col gap-0.5 p-4",a),...b})}function a0({className:a,...b}){return(0,f.jsx)(aT,{"data-slot":"sheet-title",className:(0,l.cn)("font-heading text-base font-medium text-foreground",a),...b})}function a1({className:a,...b}){return(0,f.jsx)(aU,{"data-slot":"sheet-description",className:(0,l.cn)("text-sm text-muted-foreground",a),...b})}function a2({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"skeleton",className:(0,l.cn)("animate-pulse rounded-md bg-muted",a),...b})}var a3=c(64494);let a4=(0,aV.A)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),a5=g.createContext(null);function a6(){let a=g.useContext(a5);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function a7({defaultOpen:a=!0,open:b,onOpenChange:c,className:d,style:e,children:h,...i}){let j=function(){let[a,b]=g.useState(void 0);return g.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[k,m]=g.useState(!1),[n,o]=g.useState(a),p=b??n,q=g.useCallback(a=>{let b="function"==typeof a?a(p):a;c?c(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[c,p]),r=g.useCallback(()=>j?m(a=>!a):q(a=>!a),[j,q,m]);g.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",t=g.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:j,openMobile:k,setOpenMobile:m,toggleSidebar:r}),[s,p,q,j,k,m,r]);return(0,f.jsx)(a5.Provider,{value:t,children:(0,f.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...e},className:(0,l.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",d),...i,children:h})})}function a8({side:a="left",variant:b="sidebar",collapsible:c="offcanvas",className:d,children:e,dir:g,...h}){let{isMobile:i,state:j,openMobile:k,setOpenMobile:m}=a6();return"none"===c?(0,f.jsx)("div",{"data-slot":"sidebar",className:(0,l.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",d),...h,children:e}):i?(0,f.jsx)(aX,{open:k,onOpenChange:m,...h,children:(0,f.jsxs)(a$,{dir:g,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,f.jsxs)(a_,{className:"sr-only",children:[(0,f.jsx)(a0,{children:"Sidebar"}),(0,f.jsx)(a1,{children:"Displays the mobile sidebar."})]}),(0,f.jsx)("div",{className:"flex h-full w-full flex-col",children:e})]})}):(0,f.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":j,"data-collapsible":"collapsed"===j?c:"","data-variant":b,"data-side":a,"data-slot":"sidebar",children:[(0,f.jsx)("div",{"data-slot":"sidebar-gap",className:(0,l.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===b||"inset"===b?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,f.jsx)("div",{"data-slot":"sidebar-container","data-side":a,className:(0,l.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===b||"inset"===b?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",d),...h,children:(0,f.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:e})})]})}function a9({className:a,onClick:b,...c}){let{toggleSidebar:d}=a6();return(0,f.jsxs)(m.$,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:(0,l.cn)(a),onClick:a=>{b?.(a),d()},...c,children:[(0,f.jsx)(a4,{}),(0,f.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function ba({className:a,...b}){let{toggleSidebar:c}=a6();return(0,f.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:c,title:"Toggle Sidebar",className:(0,l.cn)("absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...b})}function bb({className:a,...b}){return(0,f.jsx)("main",{"data-slot":"sidebar-inset",className:(0,l.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",a),...b})}function bc({className:a,...b}){return(0,f.jsx)(n.p,{"data-slot":"sidebar-input","data-sidebar":"input",className:(0,l.cn)("h-8 w-full bg-background shadow-none",a),...b})}function bd({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,l.cn)("flex flex-col gap-2 p-2",a),...b})}function be({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,l.cn)("flex flex-col gap-2 p-2",a),...b})}function bf({className:a,...b}){return(0,f.jsx)(p,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,l.cn)("mx-2 w-auto bg-sidebar-border",a),...b})}function bg({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,l.cn)("no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...b})}function bh({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,l.cn)("relative flex w-full min-w-0 flex-col p-2",a),...b})}function bi({className:a,render:b,...c}){return j({defaultTagName:"div",props:(0,h.v6)({className:(0,l.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",a)},c),render:b,state:{slot:"sidebar-group-label",sidebar:"group-label"}})}function bj({className:a,render:b,...c}){return j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",a)},c),render:b,state:{slot:"sidebar-group-action",sidebar:"group-action"}})}function bk({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,l.cn)("w-full text-sm",a),...b})}function bl({className:a,...b}){return(0,f.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,l.cn)("flex w-full min-w-0 flex-col gap-0",a),...b})}function bm({className:a,...b}){return(0,f.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,l.cn)("group/menu-item relative",a),...b})}let bn=(0,k.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function bo({render:a,isActive:b=!1,variant:c="default",size:d="default",tooltip:e,className:g,...i}){let{isMobile:k,state:m}=a6(),n=j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)(bn({variant:c,size:d}),g)},i),render:e?(0,f.jsx)(a3.k$,{render:a}):a,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:d,active:b}});return e?("string"==typeof e&&(e={children:e}),(0,f.jsxs)(a3.m_,{children:[n,(0,f.jsx)(a3.ZI,{side:"right",align:"center",hidden:"collapsed"!==m||k,...e})]})):n}function bp({className:a,render:b,showOnHover:c=!1,...d}){return j({defaultTagName:"button",props:(0,h.v6)({className:(0,l.cn)("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",c&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0",a)},d),render:b,state:{slot:"sidebar-menu-action",sidebar:"menu-action"}})}function bq({className:a,...b}){return(0,f.jsx)("div",{"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",className:(0,l.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground",a),...b})}function br({className:a,showIcon:b=!1,...c}){let[d]=g.useState(()=>`${Math.floor(40*Math.random())+50}%`);return(0,f.jsxs)("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:(0,l.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),...c,children:[b&&(0,f.jsx)(a2,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,f.jsx)(a2,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":d}})]})}function bs({className:a,...b}){return(0,f.jsx)("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:(0,l.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",a),...b})}function bt({className:a,...b}){return(0,f.jsx)("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:(0,l.cn)("group/menu-sub-item relative",a),...b})}function bu({render:a,size:b="md",isActive:c=!1,className:d,...e}){return j({defaultTagName:"a",props:(0,h.v6)({className:(0,l.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",d)},e),render:a,state:{slot:"sidebar-menu-sub-button",sidebar:"menu-sub-button",size:b,active:c}})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96362:(a,b,c)=>{"use strict";c.d(b,{RegionClawUpdateBanner:()=>d});let d=(0,c(67834).registerClientReference)(function(){throw Error("Attempted to call RegionClawUpdateBanner() from the server but RegionClawUpdateBanner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/region/regionclaw/apps/ui/src/components/regionclaw-update-banner.tsx","RegionClawUpdateBanner")},99361:(a,b,c)=>{Promise.resolve().then(c.bind(c,20999)),Promise.resolve().then(c.bind(c,19376)),Promise.resolve().then(c.bind(c,83119))},99394:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>d});let d=(0,c(67834).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/region/regionclaw/apps/ui/src/components/app-sidebar.tsx","AppSidebar")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[375,858,902,263,324,502,547,313],()=>b(b.s=46058));module.exports=c})();