@minimalcorp/tsunagi 0.1.50 → 0.1.52

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 (158) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  3. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js +1 -1
  5. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  6. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js +2 -2
  14. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +20 -19
  18. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +20 -19
  19. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  20. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +9 -8
  21. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  22. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  25. package/.next/standalone/apps/web/.next/server/app/index.rsc +22 -21
  26. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  27. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +22 -21
  28. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  29. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +9 -8
  30. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  31. package/.next/standalone/apps/web/.next/server/app/page.js +2 -2
  32. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
  33. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/apps/web/.next/server/app/settings/page.js +2 -2
  35. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  36. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  38. package/.next/standalone/apps/web/.next/server/app/settings.rsc +24 -23
  39. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +24 -23
  40. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  41. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +9 -8
  42. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  43. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  44. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  45. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js +2 -2
  46. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  47. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02o_btn._.js +4 -4
  49. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__03~.ax1._.js +3 -0
  50. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0jj9045._.js → [root-of-the-server]__0h2guje._.js} +2 -2
  51. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qjafjt._.js +3 -0
  52. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13yzr3f._.js +4 -0
  53. package/.next/standalone/apps/web/.next/server/chunks/ssr/_05_5y28._.js +7 -0
  54. package/.next/standalone/apps/web/.next/server/chunks/ssr/_07iexqz._.js +3 -0
  55. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0bru-z.._.js +3 -0
  56. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +17 -17
  57. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0hqrmyz._.js +3 -0
  58. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0i8ojdw._.js +14 -0
  59. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0m.hvms._.js +7 -0
  60. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0mljs_s._.js +7 -0
  61. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0o6gl4b._.js +3 -0
  62. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +3 -1
  63. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +12 -12
  64. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0kuu0i_._.js → node_modules_06gyfuv._.js} +1 -1
  65. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_10vm5h.._.js → node_modules_09e0q95._.js} +1 -1
  66. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0-yxz.k._.js → node_modules_09nusj_._.js} +1 -1
  67. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0br2zvr._.js → node_modules_0_876x4._.js} +1 -1
  68. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0rgnv~i._.js → node_modules_0axuayq._.js} +1 -1
  69. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0-5m30v._.js → node_modules_0c8sp_9._.js} +1 -1
  70. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0azs4bs._.js → node_modules_0h_hear._.js} +1 -1
  71. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_01l-p1x._.js → node_modules_0la1a4x._.js} +1 -1
  72. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0-nk4sk._.js → node_modules_0mt.8za._.js} +1 -1
  73. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ljm1cj._.js → node_modules_0nji2bx._.js} +1 -1
  74. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0zxpl-b._.js → node_modules_0o9t~hh._.js} +1 -1
  75. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0s5.073._.js → node_modules_0s3mkxs._.js} +1 -1
  76. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0wg2e2t._.js → node_modules_0w8sswp._.js} +1 -1
  77. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_053ofle._.js → node_modules_0zv4e8x._.js} +1 -1
  78. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0g-5xh6._.js → node_modules_10v5lct._.js} +1 -1
  79. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ne-fkd._.js → node_modules_117mm7f._.js} +1 -1
  80. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  81. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  82. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  83. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  84. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  85. package/.next/standalone/apps/web/.next/static/chunks/00b2u96xq7qxl.css +4 -0
  86. package/.next/standalone/apps/web/.next/static/chunks/026168y2bx0d~.js +1 -0
  87. package/.next/standalone/apps/web/.next/static/chunks/03~3ukpvmjafx.js +12 -0
  88. package/.next/standalone/apps/web/.next/static/chunks/{0bhssqb0~3~7n.js → 059w2rbrv6jh4.js} +12 -12
  89. package/.next/standalone/apps/web/.next/static/chunks/08-d-ag2euha9.js +5 -0
  90. package/.next/standalone/apps/web/.next/static/chunks/0d-vappn~2d.d.js +1 -0
  91. package/.next/standalone/apps/web/.next/static/chunks/0f8~7qwyc8ul0.js +1 -0
  92. package/.next/standalone/apps/web/.next/static/chunks/0gpkw.1e6kcpn.js +1 -0
  93. package/.next/standalone/apps/web/.next/static/chunks/0hfsoxrzcikz5.js +7 -0
  94. package/.next/standalone/apps/web/.next/static/chunks/0p3_2uc39mlse.js +5 -0
  95. package/.next/standalone/apps/web/.next/static/chunks/0v3hfoggxwsov.js +64 -0
  96. package/.next/standalone/apps/web/.next/static/chunks/0v6gxm~ldhmma.js +1 -0
  97. package/.next/standalone/apps/web/.next/static/chunks/0wzu~340lh7o~.js +7 -0
  98. package/.next/standalone/apps/web/.next/static/chunks/13y6z-vus9yvr.js +5 -0
  99. package/dist/cli.js +12 -1
  100. package/dist/server/index.js +6 -5
  101. package/dist/server/lib/asr-models.d.ts +7 -0
  102. package/dist/server/lib/asr-models.js +51 -0
  103. package/dist/server/lib/process-port.js +1 -1
  104. package/dist/server/lib/update-check.d.ts +7 -0
  105. package/dist/server/lib/update-check.js +65 -0
  106. package/dist/server/lib/voice-debug-log.d.ts +4 -4
  107. package/dist/server/lib/voice-debug-log.js +1 -1
  108. package/dist/server/lib/whisper-process.d.ts +19 -2
  109. package/dist/server/lib/whisper-process.js +123 -26
  110. package/dist/server/routes/version.d.ts +2 -0
  111. package/dist/server/routes/version.js +7 -0
  112. package/dist/server/routes/whisper.js +37 -56
  113. package/dist/whisper-server/README.md +11 -3
  114. package/dist/whisper-server/download_model.py +8 -3
  115. package/dist/whisper-server/requirements.txt +1 -0
  116. package/dist/whisper-server/run.sh +7 -2
  117. package/dist/whisper-server/server.py +57 -29
  118. package/npm-shrinkwrap.json +2 -2
  119. package/package.json +1 -1
  120. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08uda78._.js +0 -3
  121. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0kpobap._.js +0 -3
  122. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0m52zsj._.js +0 -3
  123. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0mo_9ei._.js +0 -3
  124. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0stter-._.js +0 -4
  125. package/.next/standalone/apps/web/.next/server/chunks/ssr/_00mhd_n._.js +0 -7
  126. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0i7y5ac._.js +0 -3
  127. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0iscwmf._.js +0 -14
  128. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ldtf2a._.js +0 -7
  129. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ydcfna._.js +0 -3
  130. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0z8pikg._.js +0 -7
  131. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0zu_05y._.js +0 -3
  132. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0-bra0k._.js +0 -3
  133. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0qttwc4._.js +0 -3
  134. package/.next/standalone/apps/web/.next/static/chunks/0.ahnhx-ugzbt.js +0 -7
  135. package/.next/standalone/apps/web/.next/static/chunks/01fuewnm93_l5.js +0 -1
  136. package/.next/standalone/apps/web/.next/static/chunks/0ekz145m0f5h8.js +0 -1
  137. package/.next/standalone/apps/web/.next/static/chunks/0n.xodexdkf03.js +0 -1
  138. package/.next/standalone/apps/web/.next/static/chunks/0ohaa3~lhhv1b.js +0 -5
  139. package/.next/standalone/apps/web/.next/static/chunks/0p19bzg3v08hf.js +0 -1
  140. package/.next/standalone/apps/web/.next/static/chunks/0pg.320d4u8z5.js +0 -1
  141. package/.next/standalone/apps/web/.next/static/chunks/0plamn018wq.u.css +0 -4
  142. package/.next/standalone/apps/web/.next/static/chunks/0qbchjvhms-.9.js +0 -5
  143. package/.next/standalone/apps/web/.next/static/chunks/0tcznr_934_ai.js +0 -64
  144. package/.next/standalone/apps/web/.next/static/chunks/0ywpi-uf71k8s.js +0 -1
  145. package/.next/standalone/apps/web/.next/static/chunks/12av8cpq.8slk.js +0 -5
  146. package/.next/standalone/apps/web/.next/static/chunks/12n4j5ugu5jbn.js +0 -12
  147. package/.next/standalone/apps/web/.next/static/chunks/16ehoz1y-qf39.js +0 -5
  148. package/dist/llm-server/README.md +0 -27
  149. package/dist/llm-server/download_model.py +0 -14
  150. package/dist/llm-server/requirements.txt +0 -2
  151. package/dist/llm-server/run.sh +0 -59
  152. package/dist/server/lib/llm-process.d.ts +0 -29
  153. package/dist/server/lib/llm-process.js +0 -261
  154. package/dist/server/routes/llm.d.ts +0 -2
  155. package/dist/server/routes/llm.js +0 -23
  156. /package/.next/standalone/apps/web/.next/static/{w7do3hyV84oyognhRCQuA → et2hOuZAP9TEcN1mn6uIG}/_buildManifest.js +0 -0
  157. /package/.next/standalone/apps/web/.next/static/{w7do3hyV84oyognhRCQuA → et2hOuZAP9TEcN1mn6uIG}/_clientMiddlewareManifest.js +0 -0
  158. /package/.next/standalone/apps/web/.next/static/{w7do3hyV84oyognhRCQuA → et2hOuZAP9TEcN1mn6uIG}/_ssgManifest.js +0 -0
@@ -1,5 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82341,e=>{"use strict";var t=e.i(18050),s=e.i(71645),a=e.i(18566),r=e.i(471),l=e.i(70935),n=e.i(75254);let i=(0,n.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),o=(0,n.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var c=e.i(55716),d=e.i(46349),d=d;let u=(0,n.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var x=e.i(85902);function m({node:e,isSelected:s,isExpanded:a,depth:r,onSelect:l,onToggle:n}){let h=e.children&&e.children.length>0;return(0,t.jsxs)("div",{onClick:()=>{l(),h&&n&&!a&&n()},className:`
2
- flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer
3
- transition-colors
4
- ${s?"bg-accent":"hover:bg-accent"}
5
- `,style:{paddingLeft:`${16*r+8}px`},children:[h&&(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-xs",onClick:e=>{e.stopPropagation(),n&&n()},className:"size-4",children:a?(0,t.jsx)(u,{className:"w-3 h-3 text-muted-foreground"}):(0,t.jsx)(d.default,{className:"w-3 h-3 text-muted-foreground"})}),!h&&(0,t.jsx)("div",{className:"w-3"}),(0,t.jsx)("div",{className:"text-foreground",children:(()=>{switch(e.type){case"global":return(0,t.jsx)(i,{className:"w-4 h-4"});case"owner":return(0,t.jsx)(o,{className:"w-4 h-4"});case"repo":return(0,t.jsx)(c.GitBranch,{className:"w-4 h-4"})}})()}),(0,t.jsx)("span",{className:"text-sm text-foreground truncate",children:e.label})]})}function h({selectedNode:e,onNodeSelect:a,refreshKey:r}){let[n,i]=(0,s.useState)([]),[o,c]=(0,s.useState)(new Set),[d,u]=(0,s.useState)(!0);(0,s.useEffect)(()=>{let e=localStorage.getItem("tsunagi:env-tree-expanded");if(e)try{let t=JSON.parse(e);c(new Set(t))}catch(e){console.error("Failed to parse expanded owners:",e)}},[]),(0,s.useEffect)(()=>{localStorage.setItem("tsunagi:env-tree-expanded",JSON.stringify([...o]))},[o]),(0,s.useEffect)(()=>{(async()=>{u(!0);try{let e=await fetch((0,l.apiUrl)("/api/owners"));if(!e.ok)throw Error("Failed to fetch owners");let t=((await e.json()).data.owners||[]).map(e=>({id:`owner:${e.name}`,type:"owner",label:e.name,scope:"owner",owner:e.name,children:e.repositories.map(e=>({id:`repo:${e.owner}/${e.repo}`,type:"repo",label:e.repo,scope:"repo",owner:e.owner,repo:e.repo}))}));i([{id:"global",type:"global",label:"Global",scope:"global"},...t])}catch(e){console.error("Failed to load tree:",e)}finally{u(!1)}})()},[r]);let x=(s,r=0)=>{let l=e?.scope===s.scope&&e?.owner===s.owner&&e?.repo===s.repo,n=o.has(s.id);return(0,t.jsxs)("div",{children:[(0,t.jsx)(m,{node:s,isSelected:l,isExpanded:n,depth:r,onSelect:()=>{a({scope:s.scope,owner:s.owner,repo:s.repo,label:s.label})},onToggle:()=>{var e;return e=s.id,void c(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})}}),n&&s.children?.map(e=>x(e,r+1))]},s.id)};return d?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"Loading..."}):0===n.length?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"No repositories found"}):(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsx)("div",{className:"p-2",children:n.map(e=>x(e))})})}var p=e.i(7233),g=e.i(37727),f=e.i(43531),j=e.i(86536);let v=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var N=e.i(27612),b=e.i(88699),y=e.i(10012);function k({variable:e,onToggle:a,onDelete:r,onUpdate:l,isDeletable:n=!0}){let[i,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),[u,m]=(0,s.useState)(!1),[h,p]=(0,s.useState)(e.value),w=async t=>{d(!0);try{await a(e.key,t.target.checked)}finally{d(!1)}},C=async()=>{await r(e.key)},S=async()=>{try{await l(e.key,h),m(!1)}catch(e){console.error("Failed to update variable:",e),alert("Failed to update variable")}};return(0,t.jsxs)("div",{className:"border border-border rounded p-3 space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-mono text-foreground",children:e.key}),!u&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:w,disabled:c,className:"w-4 h-4 cursor-pointer"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Enabled"})]}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:()=>o(!i),title:i?"Hide value":"Show value",children:i?(0,t.jsx)(v,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(j.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{m(!0),p(e.value)},title:"Edit",children:(0,t.jsx)(b.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),n&&(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:C,title:"Delete",children:(0,t.jsx)(N.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),u?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(y.Input,{type:"password",value:h,onChange:e=>p(e.target.value),className:"w-full font-mono",autoFocus:!0}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:()=>{m(!1),p(e.value)},className:"active:scale-95",children:(0,t.jsx)(g.X,{className:"w-4 h-4"})}),(0,t.jsx)(x.Button,{size:"sm",onClick:S,className:"active:scale-95",children:(0,t.jsx)(f.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsx)("div",{children:(0,t.jsx)(y.Input,{type:i?"text":"password",value:e.value,readOnly:!0,className:"w-full font-mono"})})]})}var w=e.i(37870);let C=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"];function S({selectedNode:e}){let[a,r]=(0,s.useState)([]),[n,i]=(0,s.useState)(!0),[o,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(!1),[m,h]=(0,s.useState)(""),[j,v]=(0,s.useState)(""),[N,b]=(0,s.useState)("");(0,s.useEffect)(()=>{(async()=>{i(!0),c(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let s=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!s.ok)throw Error("Failed to fetch environment variables");let a=((await s.json()).data.envVars||[]).filter(e=>!C.includes(e.key));r(a)}catch(e){console.error("Failed to load environment variables:",e),c("Failed to load environment variables")}finally{i(!1)}})()},[e]);let L=async(t,s)=>{if("global"===e.scope&&!s&&("ANTHROPIC_API_KEY"===t||"CLAUDE_CODE_OAUTH_TOKEN"===t)&&!a.find(e=>e.key!==t&&("ANTHROPIC_API_KEY"===e.key||"CLAUDE_CODE_OAUTH_TOKEN"===e.key)&&e.enabled))return void alert("Cannot disable the last enabled Claude Token. Please add or enable another Claude Token first.");try{if(!(await fetch((0,l.apiUrl)("/api/env/toggle"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,scope:e.scope,owner:e.owner,repo:e.repo,enabled:s})})).ok)throw Error("Failed to toggle environment variable");r(e=>e.map(e=>e.key===t?{...e,enabled:s}:e))}catch(e){console.error("Failed to toggle environment variable:",e),r(e=>e.map(e=>e.key===t?{...e,enabled:!s}:e))}},E=async t=>{if(confirm(`Delete ${t}?`))try{let s=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&s.set("owner",e.owner),e.repo&&s.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${s}`),{method:"DELETE"})).ok)throw Error("Failed to delete environment variable");r(e=>e.filter(e=>e.key!==t))}catch(e){console.error("Failed to delete environment variable:",e),alert("Failed to delete environment variable")}},T=async(t,s)=>{try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:s,scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update environment variable");r(e=>e.map(e=>e.key===t?{...e,value:s}:e))}catch(e){throw console.error("Failed to update environment variable:",e),e}},O=async()=>{var t;if(b(""),!m.trim())return void b("Key is required");if(!j.trim())return void b("Value is required");if(t=m.trim(),/^[A-Z0-9_]+$/.test(t)?C.includes(t)?(b("Claude tokens should be added in the Tokens section"),!1):!a.some(e=>e.key===t)||(b(`Key "${t}" already exists in this scope`),!1):(b("Key must contain only uppercase letters, numbers, and underscores"),!1))try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m.trim(),value:j.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add environment variable");let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let s=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(s.ok){let e=((await s.json()).data.envVars||[]).filter(e=>!C.includes(e.key));r(e)}u(!1),h(""),v("")}catch(e){console.error("Failed to add environment variable:",e),b("Failed to add environment variable")}};return n?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)(w.LoadingSpinner,{size:"md",message:"Loading variables..."})}):o?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)("div",{className:"text-destructive text-sm",children:o})}):(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Environment Variables"}),!d&&(0,t.jsxs)(x.Button,{size:"sm",onClick:()=>u(!0),className:"active:scale-95",children:[(0,t.jsx)(p.Plus,{className:"w-4 h-4"}),"Add Variable"]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto space-y-3",children:[d&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent space-y-2",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground",children:"New Variable"}),(0,t.jsx)(y.Input,{type:"text",value:m,onChange:e=>h(e.target.value.toUpperCase()),placeholder:"VARIABLE_NAME",className:"w-full font-mono",autoFocus:!0}),(0,t.jsx)(y.Input,{type:"password",value:j,onChange:e=>v(e.target.value),placeholder:"value",className:"w-full font-mono"}),N&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:N}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:()=>{u(!1),h(""),v(""),b("")},className:"active:scale-95",children:(0,t.jsx)(g.X,{className:"w-4 h-4"})}),(0,t.jsx)(x.Button,{size:"sm",onClick:O,className:"active:scale-95",children:(0,t.jsx)(f.Check,{className:"w-4 h-4"})})]})]}),0!==a.length||d?a.map(e=>(0,t.jsx)(k,{variable:e,onToggle:L,onDelete:E,onUpdate:T,isDeletable:!0},e.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No environment variables"})]})]})}var L=e.i(63209);let E=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"],T={ANTHROPIC_API_KEY:"API Key",CLAUDE_CODE_OAUTH_TOKEN:"OAuth Token"};function O(e){return e.startsWith("sk-ant-api")?"ANTHROPIC_API_KEY":e.startsWith("sk-ant-oat")?"CLAUDE_CODE_OAUTH_TOKEN":null}function z({selectedNode:e,onboardingStatus:a,onSwitchToGlobal:r}){let[n,i]=(0,s.useState)([]),[o,c]=(0,s.useState)(!0),[d,u]=(0,s.useState)(null),[m,h]=(0,s.useState)(null),[k,C]=(0,s.useState)(""),[S,M]=(0,s.useState)(""),[P,B]=(0,s.useState)(null),[I,_]=(0,s.useState)({}),[F,U]=(0,s.useState)(!1),[D,A]=(0,s.useState)(""),[$,R]=(0,s.useState)(""),[G,H]=(0,s.useState)(null);(0,s.useEffect)(()=>{K()},[e]);let K=async()=>{c(!0),u(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let s=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!s.ok)throw Error("Failed to fetch tokens");let a=((await s.json()).data.envVars||[]).filter(e=>E.includes(e.key)).map(e=>({key:e.key,value:e.value,label:T[e.key]||e.key}));i(a)}catch(e){console.error("Failed to load tokens:",e),u("Failed to load tokens")}finally{c(!1)}},W=()=>{h(null),C(""),M(""),B(null)},X=async t=>{if(!k.trim())return void M("Token value is required");let s=O(k);if(!s)return void M("Invalid token format");try{if(s!==t){let a=new URLSearchParams({key:t,scope:e.scope});e.owner&&a.set("owner",e.owner),e.repo&&a.set("repo",e.repo),await fetch((0,l.apiUrl)(`/api/env?${a}`),{method:"DELETE"}),await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:s,value:k.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})}else if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:k.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update token");await K(),h(null),C(""),M(""),B(null)}catch(e){console.error("Failed to update token:",e),M("Failed to update token")}},q=async()=>{if(!D.trim())return void R("Token value is required");let t=O(D);if(!t)return void R("Invalid token format");if(n.length>0)return void R("Only one Claude token is allowed per scope. Please edit the existing token.");try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:D.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add token");await K(),U(!1),A(""),H(null)}catch(e){console.error("Failed to add token:",e),R("Failed to add token")}},V=async t=>{if(confirm("Are you sure you want to delete this token?"))try{let s=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&s.set("owner",e.owner),e.repo&&s.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${s}`),{method:"DELETE"})).ok)throw Error("Failed to delete token");await K()}catch(e){console.error("Failed to delete token:",e),alert("Failed to delete token")}};if(o)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,t.jsx)(w.LoadingSpinner,{size:"sm",message:"Loading tokens..."})})]});if(d)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"text-destructive text-sm",children:d})]});let J=a&&!a.completed&&"global"!==e.scope;return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Claude Tokens"}),!F&&0===n.length&&(0,t.jsxs)(x.Button,{size:"sm",onClick:()=>U(!0),className:"active:scale-95",children:[(0,t.jsx)(p.Plus,{className:"w-4 h-4"}),"Add Token"]})]}),J&&(0,t.jsxs)("div",{className:"mb-4 border-2 border-warning bg-warning/10 rounded-xl p-3 flex items-start gap-3",children:[(0,t.jsx)(L.AlertCircle,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)("p",{className:"text-sm text-warning",children:"オンボーディングを完了するには、Globalスコープにトークンを追加してください"})}),r&&(0,t.jsx)(x.Button,{size:"sm",onClick:r,className:"bg-warning text-white hover:bg-warning/80 active:scale-95 whitespace-nowrap",children:"Switch to Global"})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[F&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"New Token"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(y.Input,{type:"password",value:D,onChange:e=>{var t;let s;return A(t=e.target.value),R(""),void(H(s=O(t)),t&&!s&&R("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),G&&!$&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",T[G]]}),$&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:$}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:()=>{U(!1),A(""),R(""),H(null)},className:"active:scale-95",children:(0,t.jsx)(g.X,{className:"w-4 h-4"})}),(0,t.jsx)(x.Button,{size:"sm",onClick:q,disabled:!G||!!$,className:"active:scale-95",children:(0,t.jsx)(f.Check,{className:"w-4 h-4"})})]})]})]}),0!==n.length||F?n.map(s=>(0,t.jsx)("div",{className:"border border-border rounded p-3 space-y-2",children:m===s.key?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"Edit Token"}),(0,t.jsx)(y.Input,{type:"password",value:k,onChange:e=>{var t;let s;return C(t=e.target.value),M(""),void(B(s=O(t)),t&&!s&&M("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),P&&!S&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",T[P]]}),S&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:S}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:W,className:"active:scale-95",children:(0,t.jsx)(g.X,{className:"w-4 h-4"})}),(0,t.jsx)(x.Button,{size:"sm",onClick:()=>X(s.key),disabled:!P||!!S,className:"active:scale-95",children:(0,t.jsx)(f.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:s.label}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:()=>_(e=>({...e,[s.key]:!e[s.key]})),title:I[s.key]?"Hide value":"Show value",children:I[s.key]?(0,t.jsx)(v,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(j.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{h(s.key),C(""),M(""),B(null)},title:"Edit",children:(0,t.jsx)(b.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),"global"!==e.scope&&(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-lg",onClick:()=>V(s.key),className:"hover:bg-destructive/10",title:"Delete",children:(0,t.jsx)(N.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),(0,t.jsx)(y.Input,{type:I[s.key]?"text":"password",value:s.value,readOnly:!0,className:"w-full font-mono"})]})},s.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No Claude tokens configured"})]})]})}let M=(0,n.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var P=e.i(5352),B=e.i(68995);function I(){let[e,a]=(0,s.useState)([]),[r,n]=(0,s.useState)({}),[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(!1),[m,h]=(0,s.useState)(!1),p=(0,s.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch((0,l.apiUrl)("/api/repos")).then(e=>e.json()),fetch((0,l.apiUrl)("/api/tasks")).then(e=>e.json())]);a(e.data??[]);let s={};for(let e of t.data?.tasks??[]){let t=`${e.owner}/${e.repo}`;s[t]=(s[t]??0)+1}n(s)}catch(e){console.error("Failed to load repositories:",e)}},[]);(0,s.useEffect)(()=>{p()},[p]);let g=async()=>{if(i){d(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${i.owner}/${i.repo}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");await p()}catch(e){console.error("Failed to delete repository:",e)}finally{d(!1),o(null)}}},f=(0,s.useCallback)(async(t,s)=>{let r=t+s;if(r<0||r>=e.length)return;let n=[...e];[n[t],n[r]]=[n[r],n[t]],a(n.map((e,t)=>({...e,order:t}))),h(!0);try{if(!(await fetch((0,l.apiUrl)("/api/repos/reorder"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoIds:n.map(e=>e.id)})})).ok)throw Error("Failed to reorder repositories")}catch(e){console.error("Failed to reorder repositories:",e),await p()}finally{h(!1)}},[e,p]);return 0===e.length?(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:"No repositories cloned yet."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(B.ConfirmDialog,{open:null!==i,onOpenChange:e=>{e.open||o(null)},title:"Delete Repository",message:i?`Delete ${i.owner}/${i.repo}? This will also delete ${r[`${i.owner}/${i.repo}`]??0} associated task(s), all worktrees, and the bare repository. This action cannot be undone.`:"",confirmLabel:c?"Deleting...":"Delete",cancelLabel:"Cancel",onConfirm:g,variant:"danger"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"この並び順がトップページの列の並び順になります"}),(0,t.jsx)("div",{className:"space-y-2",children:e.map((s,a)=>{let l=`${s.owner}/${s.repo}`,n=(0,P.getRepoColor)(s.owner,s.repo),i=r[l]??0;return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${n.bg} ${n.text}`,children:l}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[i," task",1!==i?"s":""]})]}),(0,t.jsxs)("div",{className:"flex flex-shrink-0 items-center",children:[(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",onClick:()=>f(a,-1),disabled:0===a||m,className:"text-muted-foreground",title:"Move up",children:(0,t.jsx)(M,{className:"size-4"})}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",onClick:()=>f(a,1),disabled:a===e.length-1||m,className:"text-muted-foreground",title:"Move down",children:(0,t.jsx)(u,{className:"size-4"})}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",onClick:()=>o(s),className:"text-muted-foreground hover:text-destructive",title:"Delete repository",children:(0,t.jsx)(N.Trash2,{className:"size-4"})})]})]},s.id)})})]})}var _=e.i(69068);function F({owner:e,repo:a,onDeleted:r}){let[n,i]=(0,s.useState)(!1),[o,c]=(0,s.useState)(""),[d,u]=(0,s.useState)(!1),m=`${e}/${a}`,h=o===m,p=async()=>{if(h){u(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${e}/${a}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");r()}catch(e){console.error("Failed to delete repository:",e)}finally{u(!1),i(!1),c("")}}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-destructive",children:"Remove Repository"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Remove this repository and all associated data including tasks, worktrees, and environment variables. This action cannot be undone."})]}),(0,t.jsxs)(x.Button,{variant:"destructive",size:"sm",onClick:()=>i(!0),children:[(0,t.jsx)(N.Trash2,{className:"size-4"}),"Remove Repository"]})]}),(0,t.jsx)(_.Dialog,{open:n,onOpenChange:i,children:(0,t.jsxs)(_.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(_.DialogHeader,{children:[(0,t.jsx)(_.DialogTitle,{children:"Remove Repository"}),(0,t.jsxs)(_.DialogDescription,{children:["This will permanently delete ",(0,t.jsx)("strong",{children:m})," and all associated tasks, worktrees, and environment variables."]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"text-xs text-muted-foreground",children:["Type ",(0,t.jsx)("strong",{children:m})," to confirm"]}),(0,t.jsx)(y.Input,{value:o,onChange:e=>c(e.target.value),placeholder:m,autoComplete:"off"})]}),(0,t.jsxs)(_.DialogFooter,{children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:()=>{i(!1),c("")},disabled:d,children:"Cancel"}),(0,t.jsx)(x.Button,{variant:"destructive",size:"sm",onClick:p,disabled:!h||d,children:d?"Removing...":"Remove"})]})]})})]})}var U=e.i(95468),D=e.i(58e3),A=e.i(31278),$=e.i(87951),R=e.i(52044),G=e.i(64036),H=e.i(77814),K=e.i(41247),W=e.i(57024),X=e.i(19728);let q={not_running:"停止中",installing_deps:"依存関係をインストール中...",downloading_model:"モデルをダウンロード中...",starting_server:"サーバーを起動中...",running:"実行中",running_external:"実行中 (tsunagi外で起動)",error:"エラー"},V=["installing_deps","downloading_model","starting_server"],J=["running","running_external"];function Y(e){let t=e/0x40000000;return t>=.1?`${t.toFixed(2)} GB`:`${(e/1048576).toFixed(0)} MB`}function Z(){let[e,a]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1),[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(""),u=(0,s.useRef)(null),m=(0,s.useCallback)(e=>{a(e),localStorage.setItem(X.VOICE_INPUT_ENABLED_STORAGE_KEY,String(e))},[]),h=(0,s.useCallback)(e=>{d(e),localStorage.setItem(X.WHISPER_PROMPT_STORAGE_KEY,e)},[]),p=(0,s.useCallback)(async()=>{let e=await fetch((0,l.apiUrl)("/api/whisper/server/status")),t=await e.json();return o(t),t},[]);(0,s.useEffect)(()=>{a("true"===localStorage.getItem(X.VOICE_INPUT_ENABLED_STORAGE_KEY)),d(localStorage.getItem(X.WHISPER_PROMPT_STORAGE_KEY)??""),p()},[p]),(0,s.useEffect)(()=>{i&&J.includes(i.step)&&!e&&(m(!0),W.toaster.create({type:"success",title:"音声入力が有効化されました"}))},[i,e,m]),(0,s.useEffect)(()=>(i&&V.includes(i.step)&&!u.current&&(u.current=setInterval(()=>{p().then(e=>{!V.includes(e.step)&&u.current&&(clearInterval(u.current),u.current=null)})},1e3)),()=>{u.current&&(clearInterval(u.current),u.current=null)}),[i,p]);let g=(0,s.useCallback)(()=>{p(),n(!0)},[p]),f=(0,s.useCallback)(async()=>{try{let e=await fetch((0,l.apiUrl)("/api/whisper/server/start"),{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error||`HTTPエラー: ${e.status}`)}o(await e.json())}catch(e){W.toaster.create({type:"error",title:"サーバーの起動に失敗しました",description:e instanceof Error?e.message:String(e)})}},[]),j=(0,s.useCallback)(async()=>{try{let e=await fetch((0,l.apiUrl)("/api/whisper/server/stop"),{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error||`HTTPエラー: ${e.status}`)}o(await e.json())}catch(e){W.toaster.create({type:"error",title:"サーバーの停止に失敗しました",description:e instanceof Error?e.message:String(e)})}},[]),v=(0,s.useCallback)(()=>{m(!1),i&&J.includes(i.step)&&j()},[m,j,i]),N=i?.serverDir,b=i?.downloadProgress,y=b?b.downloadedBytes/b.totalBytes*100:0,k=null!==i,w=k&&J.includes(i.step);return(0,t.jsxs)(G.Card,{children:[(0,t.jsxs)(G.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(G.CardTitle,{children:"音声入力 (実験的機能)"}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-sm",onClick:g,title:"音声入力について",children:(0,t.jsx)(D.CircleHelp,{})})]}),(0,t.jsx)(G.CardDescription,{children:"ローカルで動作するWhisperを使って音声入力を行います。下記のローカルLLMも有効にすると、 文字起こし結果がLLMで自動整形されます(無効時は文字起こし結果をそのまま使用)。"})]}),(0,t.jsx)(G.CardContent,{className:"flex flex-col gap-3",children:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[k?w?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"音声入力: 有効"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-warning",children:[(0,t.jsx)(L.AlertCircle,{className:"size-4"}),"音声入力: 有効化済み(サーバー停止中)"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"状態を確認中..."]}),i&&(0,t.jsxs)("span",{className:"text-xs/relaxed text-muted-foreground",children:["(",q[i.step],")"]}),k&&!w&&(0,t.jsxs)(x.Button,{size:"default",onClick:g,children:[(0,t.jsx)($.Mic,{}),"サーバーを起動"]}),(0,t.jsx)(x.Button,{size:"default",variant:"outline",onClick:v,children:"無効にする"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"文字起こしプロンプト (任意)"}),(0,t.jsx)(K.Textarea,{value:c,onChange:e=>h(e.target.value),placeholder:"例: 誤字、句読点、音声入力、Whisper、固有名詞や専門用語など",className:"min-h-16 text-xs"}),(0,t.jsx)("p",{className:"mt-1 text-[0.65rem] text-muted-foreground",children:"よく使う単語(固有名詞・専門用語・同音異義語で誤変換されやすい単語など)を列挙すると、 Whisperがその表記を優先しやすくなり誤変換が減ります。文章でなく単語の羅列でも構いません。空でも可。"})]})]}):(0,t.jsxs)(x.Button,{size:"default",onClick:g,children:[(0,t.jsx)($.Mic,{}),"音声入力を有効化する"]})}),(0,t.jsx)(B.Dialog,{open:r,onOpenChange:({open:e})=>n(e),title:"音声入力について",maxWidth:"2xl",children:(0,t.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"実験的機能です"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"音声入力はローカルで動作するWhisper (mlx-whisper) を利用します。精度・速度は環境に依存し、今後変更される可能性があります。"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"対応環境"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"Apple Silicon Mac (M1/M2/M3/M4) のみ対応。Windows/Linuxでは利用できません。"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"必要なもの(事前に手動でインストール)"}),(0,t.jsx)("ul",{className:"list-disc pl-5 text-muted-foreground",children:(0,t.jsx)("li",{children:"Python 3.9以降(Xcode Command Line Tools または Homebrew経由で入手可能)"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 font-medium text-foreground",children:"セットアップ・起動"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"下のボタンから、依存関係のインストール・モデルのダウンロード・サーバー起動まで自動で行われます(初回は数分かかります)。"}),i&&!N&&(0,t.jsx)("p",{className:"mt-1 text-destructive",children:"whisper-serverが見つかりませんでした。インストールが壊れている可能性があります。"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 font-medium text-foreground",children:"アンインストール"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:["音声入力のためにダウンロードされるもの(Pythonの依存関係・Whisperモデル、合計約2.6GB)は全て",(0,t.jsx)("code",{className:"rounded bg-muted px-1",children:"~/.tsunagi/whisper"}),"に保存されます。不要になった場合はこのディレクトリを削除するだけで、関連リソースを完全に削除できます。"]})]}),(0,t.jsxs)("div",{className:"border-t border-border pt-4",children:[(!i||"not_running"===i.step||"error"===i.step)&&(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void f(),disabled:!i,children:[i?(0,t.jsx)($.Mic,{}):(0,t.jsx)(A.Loader2,{className:"animate-spin"}),"Whisperサーバーを起動"]}),i?.step==="error"&&i.error&&(0,t.jsx)("p",{className:"text-xs/relaxed text-destructive",children:i.error})]}),i?.step==="installing_deps"&&(0,t.jsxs)(x.Button,{size:"default",disabled:!0,children:[(0,t.jsx)(A.Loader2,{className:"animate-spin"}),"依存関係をインストール中... (数分かかる場合があります)"]}),i?.step==="downloading_model"&&(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs/relaxed text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"モデルをダウンロード中..."]}),b&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Progress,{value:y}),(0,t.jsxs)("p",{className:"text-xs/relaxed text-muted-foreground",children:[Y(b.downloadedBytes)," / ",Y(b.totalBytes)," (",y.toFixed(0),"%) ・ ",function(e){if(null===e)return"残り時間を計算中...";if(e<60)return`残り約${e}秒`;let t=Math.floor(e/60);return`残り約${t}分${e%60}秒`}(b.etaSeconds)]})]})]}),i?.step==="starting_server"&&(0,t.jsxs)(x.Button,{size:"default",disabled:!0,children:[(0,t.jsx)(A.Loader2,{className:"animate-spin"}),"サーバーを起動中..."]}),i&&J.includes(i.step)&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"サーバーは起動しています"]}),(0,t.jsxs)(x.Button,{size:"default",variant:"outline",onClick:()=>void j(),children:[(0,t.jsx)(R.Square,{}),"サーバーを停止"]})]})]})]})})]})}var Q=e.i(66961),ee=e.i(66992);let et=(0,n.default)("memory-stick",[["path",{d:"M12 12v-2",key:"fwoke6"}],["path",{d:"M12 18v-2",key:"qj6yno"}],["path",{d:"M16 12v-2",key:"heuere"}],["path",{d:"M16 18v-2",key:"s1ct0w"}],["path",{d:"M2 11h1.5",key:"15p63e"}],["path",{d:"M20 18v-2",key:"12ehxp"}],["path",{d:"M20.5 11H22",key:"khsy7a"}],["path",{d:"M4 18v-2",key:"1c3oqr"}],["path",{d:"M8 12v-2",key:"1mwtfd"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["rect",{x:"2",y:"6",width:"20",height:"10",rx:"2",key:"1qcswk"}]]);var es=e.i(31343);let ea=(0,n.default)("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var er=e.i(16715),el=e.i(47161),en=e.i(93355),ei=e.i(38078);let eo={k:1024,m:1048576},ec=[32768,65536,131072,262144];function ed(e){let t=e.trim().replace(/[,_\s]/g,"").toLowerCase().match(/^(\d+(?:\.\d+)?)([km]?)$/);if(!t)return null;let s=Number(t[1])*(t[2]?eo[t[2]]:1);return Number.isInteger(s)&&s>0?s:null}function eu(e){return e>=eo.m&&e%eo.m==0?`${e/eo.m}m`:e>=eo.k&&e%eo.k==0?`${e/eo.k}k`:String(e)}var ex=e.i(64691);function em({value:e,onChange:a,max:r}){let l=(0,s.useId)(),n=ed(e),i=null!==n&&void 0!==r&&r>0&&n>r,o=ec.filter(e=>!r||e<=r);return(0,t.jsxs)("div",{children:[(0,t.jsx)(y.Input,{value:e,onChange:e=>a(e.target.value),placeholder:"64k",list:l,"aria-invalid":null===n||i,className:"font-mono"}),(0,t.jsx)("datalist",{id:l,children:o.map(e=>(0,t.jsx)("option",{value:eu(e)},e))}),(0,t.jsx)("p",{className:`mt-1 text-[0.65rem] ${null===n||i?"text-destructive":"text-muted-foreground"}`,children:null===n?"64k / 128k / 1m または整数で入力してください(k = 1024)":i?`このモデルの最大値(${eu(r)})を超えています`:`${n.toLocaleString()} tokens`})]})}var d=d;async function eh(e,t){let s=await fetch((0,l.apiUrl)(e),t),a=await s.json().catch(()=>null);if(!s.ok||a?.data===void 0)throw Error(a?.error||`HTTPエラー: ${s.status}`);return a.data}function ep(e,t){return eh(e,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}function eg(e){return e instanceof Error?e.message:String(e)}function ef({children:e}){return(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm",children:e})}function ej({label:e,hint:s,children:a}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:e}),a,s&&(0,t.jsx)("p",{className:"mt-1 text-[0.65rem] text-muted-foreground",children:s})]})}function ev({children:e}){let[a,r]=(0,s.useState)(!1);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>r(e=>!e),className:"flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",children:[(0,t.jsx)(d.default,{className:`size-3.5 transition-transform ${a?"rotate-90":""}`}),"詳細設定"]}),a&&(0,t.jsx)("div",{className:"mt-3 flex flex-col gap-3 border-l border-border pl-3",children:e})]})}function eN({children:e}){return(0,t.jsx)("code",{className:"rounded bg-muted px-1",children:e})}function eb(e,t){return`${e}:${t}`}function ey(e){let t=e.indexOf(":");if(t<0)return null;let s=e.slice(0,t);return"ollama"!==s&&"lmstudio"!==s?null:{provider:s,model:e.slice(t+1)}}function ek({status:e}){let s=e.active?`${e.active.model}(${ex.LOCAL_LLM_PROVIDER_LABEL[e.active.provider]}・${eu(e.active.contextTokens)})`:"";switch(e.state){case"unconfigured":return(0,t.jsx)("span",{className:"text-muted-foreground",children:"使用するモデルが未設定です"});case"loading":return(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"読み込み中: ",s]});case"loaded":return(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"読み込み済み: ",s]});case"unloaded":return(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(et,{className:"size-4"}),"解放済み: ",s,"(次の発言で読み込みます)"]});case"error":return(0,t.jsxs)("span",{className:"flex items-center gap-2 text-destructive",children:[(0,t.jsx)(L.AlertCircle,{className:"size-4"}),e.error]})}}function ew(){var e;let a,{settings:r,setSettings:l}=(0,ei.useLocalLlmSettings)(),[n,i]=(0,s.useState)(null),[o,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(null),[m,h]=(0,s.useState)(!1),[p,g]=(0,s.useState)(null),[f,j]=(0,s.useState)(!1),[v,N]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{var e;r&&i({selection:(e=r).active?eb(e.active.provider,e.active.model):"",context:eu(e.active?.contextTokens??65536),idleUnloadMinutes:String(e.idleUnloadMinutes),unloadOnExit:e.unloadOnExit,webSearch:e.webSearch,extraEnvText:Object.entries(e.extraEnv).map(([e,t])=>`${e}=${t}`).join("\n")})},[r]);let w=(0,s.useCallback)(async()=>{try{c(await eh("/api/settings/local-llm/status"))}catch(e){console.error("Failed to fetch local LLM status:",e)}},[]),C=(0,s.useCallback)(async()=>{h(!0);try{u(await eh("/api/settings/local-llm/models"))}catch(e){W.toaster.create({type:"error",title:"モデル一覧を取得できません",description:eg(e)})}finally{h(!1)}},[]);(0,s.useEffect)(()=>{w(),C();let e=setInterval(()=>void w(),3e3);return()=>clearInterval(e)},[w,C]);let S=n?ey(n.selection):null,L=(0,s.useMemo)(()=>d?.models.find(e=>e.provider===S?.provider&&e.model===S?.model),[d,S?.provider,S?.model]),E=L?.maxContextLength??void 0,T=S?.provider==="lmstudio"?S.model:"",O=n?ed(n.context):null;(0,s.useEffect)(()=>{if(g(null),!T||!O)return;let e=new AbortController,t=setTimeout(()=>{let t=new URLSearchParams({model:T,contextTokens:String(O)});eh(`/api/settings/local-llm/estimate?${t}`,{signal:e.signal}).then(g).catch(()=>g(null))},600);return()=>{clearTimeout(t),e.abort()}},[T,O]);let z=Number(n?.idleUnloadMinutes),M=null!==n&&(e=n.context,null!==(a=ed(e))&&(!E||a<=E))&&Number.isInteger(z)&&z>=0,P=(0,s.useCallback)(async()=>{if(!n||!M)return;let e=ey(n.selection),t={active:e?{...e,contextTokens:ed(n.context)??65536}:null,idleUnloadMinutes:Number(n.idleUnloadMinutes),unloadOnExit:n.unloadOnExit,webSearch:n.webSearch,extraEnv:function(e){let t={};for(let s of e.split("\n")){let e=s.trim();if(!e||e.startsWith("#"))continue;let a=e.indexOf("=");a<=0||(t[e.slice(0,a).trim()]=e.slice(a+1).trim())}return t}(n.extraEnvText)},s=JSON.stringify(r?.active)!==JSON.stringify(t.active);j(!0);try{l(await ep("/api/settings/local-llm",t)),W.toaster.create({type:"success",title:s?"使用するモデルを切り替えました(他のモデルは解放します)":"ローカルLLMの設定を保存しました"}),w()}catch(e){W.toaster.create({type:"error",title:"ローカルLLMの設定を保存できませんでした",description:eg(e)})}finally{j(!1)}},[n,M,r?.active,l,w]),I=(0,s.useCallback)(async(e,t)=>{N(!0);try{c(await eh(e,{method:"POST"}))}catch(e){W.toaster.create({type:"error",title:t,description:eg(e)})}finally{N(!1)}},[]),_=e=>i(t=>t?{...t,...e}:t),F=(d?.models??[]).map(e=>{var t;return{value:eb(e.provider,e.model),label:[e.displayName,e.format.toUpperCase(),e.sizeBytes?(t=e.sizeBytes)>=0x40000000?`${(t/0x40000000).toFixed(1)} GB`:`${Math.round(t/1048576)} MB`:null,e.maxContextLength?`最大 ${eu(e.maxContextLength)}`:null].filter(Boolean).join(" · "),group:ex.LOCAL_LLM_PROVIDER_LABEL[e.provider]}}),U=r?.active;U&&!F.some(e=>e.value===eb(U.provider,U.model))&&F.unshift({value:eb(U.provider,U.model),label:`${U.model}(一覧にありません)`,group:ex.LOCAL_LLM_PROVIDER_LABEL[U.provider]});let $=null!==d&&0===d.models.length&&0===d.errors.length;return(0,t.jsxs)(G.Card,{children:[(0,t.jsxs)(G.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(G.CardTitle,{children:"Claude Code のローカルLLM (実験的機能)"}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-sm",onClick:()=>k(!0),title:"ローカルLLMについて",children:(0,t.jsx)(D.CircleHelp,{})})]}),(0,t.jsxs)(G.CardDescription,{children:["Ollama / LM Studio のローカルLLMで Claude Code を起動します。",(0,t.jsx)("strong",{className:"font-medium text-foreground",children:"使用するモデルは1つだけで、全てのローカルLLMタブで共有します"}),"。切り替えると他のモデルはメモリから解放されます。"]})]}),(0,t.jsx)(G.CardContent,{className:"flex flex-col gap-3",children:r&&n?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ef,{children:[o?(0,t.jsx)(ek,{status:o}):(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[o?.state==="unloaded"&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>void I("/api/settings/local-llm/load","モデルを読み込めません"),disabled:v,children:[(0,t.jsx)(es.Play,{}),"読み込む"]}),(o?.state==="loaded"||o?.state==="error")&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>void I("/api/settings/local-llm/unload","モデルを解放できません"),disabled:v||(o?.inflight??0)>0,title:"メモリから外す(次の発言で自動で読み込み直します)",children:[v?(0,t.jsx)(A.Loader2,{className:"animate-spin"}):(0,t.jsx)(ea,{}),"解放"]})]})]}),o&&o.inflight>0&&(0,t.jsxs)("p",{className:"text-[0.65rem] text-muted-foreground",children:["応答を生成中のタブがあります(",o.inflight,"件)。完了するまでモデルは切り替えられません。"]}),$?(0,t.jsx)("p",{className:"text-xs text-warning",children:"下の Ollama / LM Studio のどちらかを有効にすると、モデルを選べるようになります。"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ej,{label:"使用するモデル",hint:d?.errors.length?(0,t.jsx)("span",{className:"text-destructive",children:d.errors.map(e=>`${ex.LOCAL_LLM_PROVIDER_LABEL[e.provider]}: ${e.message}`).join(" / ")}):`有効なプロバイダーにダウンロード済みのモデル(${d?.models.length??0}件)`,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(el.Combobox,{options:F,value:n.selection,onChange:e=>_({selection:String(e)}),placeholder:"モデルを選択",className:"flex-1"}),(0,t.jsx)(x.Button,{variant:"outline",size:"icon",onClick:()=>void C(),disabled:m,title:"モデル一覧を再取得",children:(0,t.jsx)(er.RefreshCw,{className:m?"animate-spin":void 0})})]})}),(0,t.jsxs)(ej,{label:"コンテキスト長",children:[(0,t.jsx)(em,{value:n.context,onChange:e=>_({context:e}),max:E}),S?.provider==="lmstudio"&&(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-1 text-[0.65rem] text-muted-foreground",children:[(0,t.jsx)(ee.Cpu,{className:"size-3"}),"必要メモリ(見積もり): ",p?.totalMemory??"-",L?.format==="mlx"&&"。MLX はモデルの最大値で読み込まれ、メモリは使った分だけ増えます"]}),S?.provider==="ollama"&&(0,t.jsxs)("p",{className:"mt-1 text-[0.65rem] text-muted-foreground",children:["このコンテキスト長を固定した派生モデル(",(0,t.jsx)(eN,{children:"<モデル>-tsunagi-ctx<長さ>"}),")を作成して使います(重みは共有されます)。"]})]})]}),(0,t.jsx)(ej,{label:"自動解放(分)",hint:"最後のリクエストからこの時間がたったらモデルをメモリから外します(0 で無効)。次の発言で自動で読み込み直します",children:(0,t.jsx)(y.Input,{type:"number",min:0,value:n.idleUnloadMinutes,onChange:e=>_({idleUnloadMinutes:e.target.value}),className:"w-32 font-mono"})}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)("input",{type:"checkbox",checked:n.unloadOnExit,onChange:e=>_({unloadOnExit:e.target.checked}),className:"size-4 accent-primary"}),"tsunagi の終了時にモデルを解放する"]}),(0,t.jsxs)(ej,{label:"WebSearch",children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(x.Button,{size:"sm",variant:"local"===n.webSearch?"default":"outline",onClick:()=>_({webSearch:"local"}),children:"ローカル検索(SearXNG)"}),(0,t.jsx)(x.Button,{size:"sm",variant:"ollama"===n.webSearch?"default":"outline",onClick:()=>_({webSearch:"ollama"}),children:"ollama.com(Ollama のみ・要サインイン)"})]}),(0,t.jsxs)("p",{className:"mt-1 text-[0.65rem] text-muted-foreground",children:["local"===n.webSearch?"組み込みの WebSearch を無効化し、ローカル検索(SearXNG)の web_search ツールを使います。":"使用するモデルが Ollama のとき、Ollama が ollama.com の Web 検索 API で代行します(Ollama 欄でサインイン状態を確認できます)。LM Studio のときはローカル検索になります。","設定はこの後に作成・起動したタブから反映されます。"]})]}),(0,t.jsx)(ev,{children:(0,t.jsx)(ej,{label:"追加の環境変数 (任意)",hint:"ローカルLLMタブにのみ適用されます。同名の既定値より優先されます",children:(0,t.jsx)(K.Textarea,{value:n.extraEnvText,onChange:e=>_({extraEnvText:e.target.value}),placeholder:"KEY=VALUE(1行に1つ)",className:"min-h-16 font-mono text-xs"})})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void P(),disabled:f||!M,children:[f?(0,t.jsx)(A.Loader2,{className:"animate-spin"}):S&&(0,t.jsx)(en.LocalLlmIcon,{provider:S.provider,className:"size-4"}),"保存"]}),(0,t.jsx)("span",{className:"text-[0.65rem] text-muted-foreground",children:"モデルを変えて保存すると、他のモデルを解放して読み込みを始めます"})]})]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"読み込み中..."]})}),(0,t.jsx)(B.Dialog,{open:b,onOpenChange:({open:e})=>k(e),title:"ローカルLLMについて",maxWidth:"2xl",children:(0,t.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"実験的機能です"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"Claude Code の接続先を tsunagi の中継口に切り替え、tsunagi が Ollama / LM Studio の Anthropic 互換 API に転送します。Anthropic はClaude以外のモデルへの接続をサポートしていないため、動作は保証されません。"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"モデルは1つだけ"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"20〜30GB 級のモデルを2つ同時にメモリへ載せられるマシンは少ないため、使用するモデルは1つにし、全てのローカルLLMタブで共有します。切り替えると他のモデルは解放され、各タブは次の発言で会話全体を新しいモデルで読み直します(数十秒〜数分)。"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"/model について"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:["ローカルLLMタブでは ",(0,t.jsx)(eN,{children:"/model"})," ","によるモデルの切り替えを無効にしています(Claude Code が切り替えたモデルを通常の Claude タブの既定値として保存してしまうため)。切り替えはここで行ってください。"]})]})]})})]})}var eC=e.i(78917),eS=e.i(82458),eS=eS;function eL(){let{settings:e,setSettings:a}=(0,ei.useOllamaSettings)(),[r,l]=(0,s.useState)(""),[n,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),[h,p]=(0,s.useState)(!1),[g,f]=(0,s.useState)(null);(0,s.useEffect)(()=>{e&&l(e.baseUrl)},[e]);let j=(0,s.useCallback)(async e=>{o(!0);try{return a(await ep("/api/settings/ollama",e)),!0}catch(e){return W.toaster.create({type:"error",title:"Ollama の設定を保存できませんでした",description:eg(e)}),!1}finally{o(!1)}},[a]),v=(0,s.useCallback)(async e=>{try{d(await eh(`/api/settings/ollama/status?baseUrl=${encodeURIComponent(e)}`))}catch(e){console.error("Failed to fetch Ollama status:",e)}},[]),N=(0,s.useCallback)(async e=>{p(!0),f(null);try{m(await eh(`/api/settings/ollama/account?baseUrl=${encodeURIComponent(e)}`))}catch(e){m(null),f(eg(e))}finally{p(!1)}},[]),b=e?.enabled===!0,k=e?.baseUrl;(0,s.useEffect)(()=>{if(!b||!k)return;v(k),N(k);let e=setInterval(()=>void v(k),5e3);return()=>clearInterval(e)},[b,k,v,N]);let w=(0,s.useCallback)(async()=>{e&&await j({...e,baseUrl:r})&&W.toaster.create({type:"success",title:"Ollama の設定を保存しました"})},[e,r,j]);return(0,t.jsxs)(G.Card,{children:[(0,t.jsxs)(G.CardHeader,{children:[(0,t.jsx)(G.CardTitle,{children:"Ollama"}),(0,t.jsxs)(G.CardDescription,{children:["ローカルLLMのプロバイダーとして Ollama を使います。Ollama のインストール・モデルの pull・起動はご自身で行ってください(例:"," ",(0,t.jsx)(eN,{children:"ollama pull qwen3.6:35b-a3b-coding-nvfp4"}),")。"]})]}),(0,t.jsx)(G.CardContent,{className:"flex flex-col gap-3",children:e?b?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ef,{children:[c?c.reachable?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"接続中",c.version&&` (v${c.version})`]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:c.loaded.length>0?`読み込み中: ${c.loaded.map(e=>`${e.name}${e.contextLength?` (${eu(e.contextLength)})`:""}`).join(", ")}`:"読み込み中のモデルなし"})]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-warning",children:[(0,t.jsx)(eS.default,{className:"size-4"}),"Ollama に接続できません。Ollama アプリを起動してください"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"確認中..."]}),(0,t.jsx)(x.Button,{variant:"outline",size:"sm",className:"ml-auto",onClick:()=>void j({...e,enabled:!1}),disabled:n,children:"無効にする"})]}),(0,t.jsx)(ej,{label:"ollama.com(WebSearch を Ollama に代行させる場合)",hint:(0,t.jsxs)(t.Fragment,{children:["「Claude Code のローカルLLM」欄の WebSearch を「ollama.com」にした場合のみ必要です。Ollama を動かしているマシンで"," ",(0,t.jsx)(eN,{children:"ollama signin"})," を実行してください(検索クエリは ollama.com に送信されます)。"]}),children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[h?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"確認中..."]}):u?.signedIn?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(i,{className:"size-4"}),"サインイン済み(",u.name,")"]}):u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(eS.default,{className:"size-4"}),"未サインイン"]}),u.signinUrl&&(0,t.jsxs)("a",{href:u.signinUrl,target:"_blank",rel:"noreferrer",className:(0,x.buttonVariants)({variant:"outline",size:"sm"}),children:[(0,t.jsx)(eC.ExternalLink,{}),"サインイン"]})]}):(0,t.jsx)("span",{className:"text-xs text-destructive",children:g}),(0,t.jsx)(x.Button,{variant:"outline",size:"icon",onClick:()=>void N(e.baseUrl),disabled:h,title:"サインイン状態を再確認",children:(0,t.jsx)(er.RefreshCw,{className:h?"animate-spin":void 0})})]})}),(0,t.jsx)(ev,{children:(0,t.jsx)(ej,{label:"Base URL",hint:(0,t.jsxs)(t.Fragment,{children:["Docker で tsunagi を動かしている場合は"," ",(0,t.jsx)(eN,{children:"http://host.docker.internal:11434"})]}),children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Input,{value:r,onChange:e=>l(e.target.value),placeholder:"http://localhost:11434"}),(0,t.jsx)(x.Button,{size:"default",onClick:()=>void w(),disabled:n||r===e.baseUrl,children:"保存"})]})})})]}):(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void j({...e,enabled:!0}),disabled:n,children:[(0,t.jsx)(en.OllamaIcon,{className:"size-4"}),"Ollama を有効化する"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"読み込み中..."]})})]})}var eS=eS;function eE(){let{settings:e,setSettings:a}=(0,ei.useLmStudioSettings)(),[r,l]=(0,s.useState)(null),[n,i]=(0,s.useState)(!1),[o,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(!1);(0,s.useEffect)(()=>{e&&l({baseUrl:e.baseUrl,apiToken:e.apiToken,lmsPath:e.lmsPath})},[e]);let m=e?.enabled===!0,h=(0,s.useCallback)(async()=>{try{c(await eh("/api/settings/lmstudio/status"))}catch(e){console.error("Failed to fetch LM Studio status:",e)}},[]);(0,s.useEffect)(()=>{if(!m)return;h();let e=setInterval(()=>void h(),5e3);return()=>clearInterval(e)},[m,h]);let p=(0,s.useCallback)(async e=>{i(!0);try{return a(await ep("/api/settings/lmstudio",e)),!0}catch(e){return W.toaster.create({type:"error",title:"LM Studio の設定を保存できませんでした",description:eg(e)}),!1}finally{i(!1)}},[a]),g=(0,s.useCallback)(async e=>{u(!0);try{c(await eh(`/api/settings/lmstudio/server/${e}`,{method:"POST"}))}catch(t){W.toaster.create({type:"error",title:"start"===e?"サーバーを起動できません":"サーバーを停止できません",description:eg(t)})}finally{u(!1)}},[]),f=(0,s.useCallback)(async()=>{e&&r&&await p({...e,...r})&&(W.toaster.create({type:"success",title:"LM Studio の設定を保存しました"}),h())},[e,r,p,h]),j=e=>l(t=>t?{...t,...e}:t);return(0,t.jsxs)(G.Card,{children:[(0,t.jsxs)(G.CardHeader,{children:[(0,t.jsx)(G.CardTitle,{children:"LM Studio"}),(0,t.jsxs)(G.CardDescription,{children:["ローカルLLMのプロバイダーとして LM Studio(0.4.1 以降)を使います。",(0,t.jsx)("a",{href:"https://lmstudio.ai/download",target:"_blank",rel:"noreferrer",className:"underline",children:"LM Studio"}),"のインストールとモデルのダウンロードはご自身で行ってください(例:"," ",(0,t.jsx)(eN,{children:"mlx-community/Qwen3.6-35B-A3B-4bit"}),")。一度起動すると lms CLI が入ります。"]})]}),(0,t.jsx)(G.CardContent,{className:"flex flex-col gap-3",children:e&&r?m?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ef,{children:[o?o.serverRunning?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"サーバー起動中"]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:o.loaded.length>0?`読み込み中: ${o.loaded.map(e=>`${e.key} (${eu(e.contextLength)})`).join(", ")}`:"読み込み中のモデルなし"})]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-warning",children:[(0,t.jsx)(eS.default,{className:"size-4"}),"サーバー停止中"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"確認中..."]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[o&&o.lmsPath?o.serverRunning?(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>void g("stop"),disabled:d,children:[d?(0,t.jsx)(A.Loader2,{className:"animate-spin"}):(0,t.jsx)(R.Square,{}),"停止"]}):(0,t.jsxs)(x.Button,{size:"sm",onClick:()=>void g("start"),disabled:d,children:[d?(0,t.jsx)(A.Loader2,{className:"animate-spin"}):(0,t.jsx)(es.Play,{}),"起動"]}):null,(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:()=>void p({...e,enabled:!1}),disabled:n,children:"無効にする"})]})]}),o&&!o.lmsPath&&!o.serverRunning&&(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["tsunagi から LM Studio のサーバーを起動するための lms CLI が見つかりません(tsunagi を Docker で動かしている場合も同様です)。LM Studio アプリの Developer タブでサーバーを起動するか、LM Studio を動かしているマシンで"," ",(0,t.jsx)(eN,{children:"lms server start"})," を実行してください。lms がある場合は詳細設定でパスを指定できます。"]}),(0,t.jsxs)(ev,{children:[(0,t.jsx)(ej,{label:"Base URL",children:(0,t.jsx)(y.Input,{value:r.baseUrl,onChange:e=>j({baseUrl:e.target.value}),placeholder:"http://localhost:1234"})}),(0,t.jsx)(ej,{label:"API トークン (任意)",hint:"LM Studio で「Require Authentication」を有効にしている場合のみ",children:(0,t.jsx)(y.Input,{type:"password",value:r.apiToken,onChange:e=>j({apiToken:e.target.value})})}),(0,t.jsx)(ej,{label:"lms のパス (任意)",hint:"空欄なら ~/.lmstudio/bin/lms → PATH の順で探します",children:(0,t.jsx)(y.Input,{value:r.lmsPath,onChange:e=>j({lmsPath:e.target.value}),placeholder:o?.lmsPath??"~/.lmstudio/bin/lms",className:"font-mono"})}),(0,t.jsx)("div",{children:(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void f(),disabled:n,children:[n&&(0,t.jsx)(A.Loader2,{className:"animate-spin"}),"保存"]})})]})]}):(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void p({...e,enabled:!0}),disabled:n,children:[(0,t.jsx)(en.LmStudioIcon,{className:"size-4"}),"LM Studio を有効化する"]}):(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),"読み込み中..."]})})]})}let eT=(0,n.default)("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]),eO=(0,n.default)("package-x",[["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}],["path",{d:"m17 13 5 5m-5 0 5-5",key:"im3w4b"}]]),ez=(0,n.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),eM=(0,n.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),eP={auto:"自動(searxng-run → Docker の順)",process:"searxng-run",docker:"Docker"};function eB({status:e}){let s,{state:a,runner:r,docker:l}=e;if("not-installed"===a)return null;let n=(0,t.jsx)(eN,{children:l.container}),i=(0,t.jsx)(eN,{children:e.binPath??"searxng-run"});return s="external"===a?"docker"===r?(0,t.jsxs)(t.Fragment,{children:["Docker コンテナ ",n,"(tsunagi 外で起動したため、tsunagi は停止しません)"]}):(0,t.jsx)(t.Fragment,{children:"tsunagi 外で起動した SearXNG(起動方法は不明。tsunagi は停止しません)"}):"running"===a?"docker"===r?(0,t.jsxs)(t.Fragment,{children:["Docker コンテナ ",n," を tsunagi が起動しました(停止時・終了時に停止します)"]}):(0,t.jsxs)(t.Fragment,{children:[i," を tsunagi が起動しました(停止時・終了時に停止します)"]}):"docker"===r?null===l.containerExists?(0,t.jsxs)(t.Fragment,{children:["Docker コンテナ ",n," を起動します(Docker が応答しません。Docker Desktop を起動してください)"]}):l.containerExists?(0,t.jsxs)(t.Fragment,{children:["Docker コンテナ ",n," を起動します"]}):(0,t.jsxs)(t.Fragment,{children:["Docker コンテナ ",n," を作成して起動します(初回はイメージの取得に数分かかります)"]}):(0,t.jsxs)(t.Fragment,{children:[i," を起動します"]}),(0,t.jsxs)("p",{className:"flex items-start gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)("docker"===r?eT:eM,{className:"mt-px size-3.5 shrink-0","aria-label":"起動方法"}),(0,t.jsx)("span",{children:s})]})}function eI(){let[e,a]=(0,s.useState)(null),[r,l]=(0,s.useState)(null),[n,i]=(0,s.useState)(null),[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(!1),m=(0,s.useCallback)(async()=>{try{a(await eh("/api/settings/searxng/status"))}catch(e){console.error("Failed to fetch SearXNG status:",e)}},[]);(0,s.useEffect)(()=>{m(),eh("/api/settings/searxng").then(l).catch(e=>console.error("Failed to fetch SearXNG settings:",e));let e=setInterval(()=>void m(),3e3);return()=>clearInterval(e)},[m]),(0,s.useEffect)(()=>{r&&i({port:String(r.port),method:r.method,binPath:r.binPath,settingsPath:r.settingsPath,dockerContainer:r.dockerContainer})},[r]);let h=(0,s.useCallback)(async(e,t)=>{c(!0);try{a(await eh(e,{method:"POST"}))}catch(e){W.toaster.create({type:"error",title:t,description:eg(e)})}finally{c(!1)}},[]),p=(0,s.useCallback)(async()=>{if(n){c(!0);try{l(await ep("/api/settings/searxng",{port:Number(n.port),method:n.method,binPath:n.binPath,settingsPath:n.settingsPath,dockerContainer:n.dockerContainer}))}catch(e){W.toaster.create({type:"error",title:"SearXNG の設定を保存できませんでした",description:eg(e)}),c(!1);return}c(!1),await h("/api/settings/searxng/restart","SearXNG を再起動できません")}},[n,h]);if(!e?.required)return null;let g=e=>i(t=>t?{...t,...e}:t);return(0,t.jsxs)(G.Card,{children:[(0,t.jsxs)(G.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(G.CardTitle,{children:"ローカル検索 (SearXNG)"}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon-sm",onClick:()=>u(!0),title:"ローカル検索について",children:(0,t.jsx)(D.CircleHelp,{})})]}),(0,t.jsxs)(G.CardDescription,{children:["Ollama / LM Studio タブの WebSearch をローカルの SearXNG で行います。",(0,t.jsx)("strong",{className:"font-medium text-foreground",children:"Ollama か LM Studio が有効な間、tsunagi が自動で起動・停止します"}),"。searxng-run が無ければ Docker で起動します(コンテナが無ければ作成します)。"]})]}),(0,t.jsxs)(G.CardContent,{className:"flex flex-col gap-3",children:[(0,t.jsxs)(ef,{children:["running"===e.state||"external"===e.state?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-success",children:[(0,t.jsx)(U.CheckCircle2,{className:"size-4"}),"running"===e.state?"起動中":"起動中(tsunagi 外で起動)"]}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:e.url})]}):"starting"===e.state?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(A.Loader2,{className:"size-4 animate-spin"}),e.message??"起動中","..."]}):"not-installed"===e.state?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-warning",children:[(0,t.jsx)(eO,{className:"size-4"}),"SearXNG を起動できません(",(0,t.jsx)(eN,{children:"searxng-run"})," も ",(0,t.jsx)(eN,{children:"docker"})," ","も見つかりません)"]}):"error"===e.state?(0,t.jsxs)("span",{className:"flex items-center gap-2 text-destructive",children:[(0,t.jsx)(L.AlertCircle,{className:"size-4"}),"エラー"]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"停止中"}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:["external"!==e.state&&"starting"!==e.state&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>void h("/api/settings/searxng/restart","SearXNG を起動できません"),disabled:o,children:[(0,t.jsx)(ez,{}),"running"===e.state?"再起動":"起動"]}),"running"===e.state&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>void h("/api/settings/searxng/stop","SearXNG を停止できません"),disabled:o,children:[(0,t.jsx)(R.Square,{}),"停止"]})]})]}),(0,t.jsx)(eB,{status:e}),"error"===e.state&&e.error&&(0,t.jsx)("pre",{className:"max-h-40 overflow-auto rounded-md bg-muted p-2 text-[0.65rem] whitespace-pre-wrap text-destructive",children:e.error}),"not-installed"===e.state&&(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Docker Desktop を入れると、tsunagi がコンテナを作成して起動します(",(0,t.jsx)("a",{href:"https://minimalcorp.github.io/tsunagi/ja/features/local-search/",target:"_blank",rel:"noreferrer",className:"underline",children:"手順"}),")。Docker を使わない場合は、nix なら ",(0,t.jsx)(eN,{children:"nix profile install nixpkgs#searxng"})," ","などで ",(0,t.jsx)(eN,{children:"searxng-run"})," を PATH に入れてください(",(0,t.jsx)("a",{href:"https://docs.searxng.org/admin/installation.html",target:"_blank",rel:"noreferrer",className:"underline",children:"インストール方法"}),")。PATH にない場合は詳細設定でパスを指定できます。起動方法を固定したい場合も詳細設定で選べます。"]}),n&&(0,t.jsxs)(ev,{children:[(0,t.jsx)(ej,{label:"ポート",hint:"既定は 7964(キーパッドで sxng)",children:(0,t.jsx)(y.Input,{type:"number",min:1,max:65535,value:n.port,onChange:e=>g({port:e.target.value}),className:"font-mono"})}),(0,t.jsx)(ej,{label:"起動方法",children:(0,t.jsx)("select",{value:n.method,onChange:e=>g({method:e.target.value}),className:"h-9 w-full rounded-md border border-input bg-transparent pl-3 pr-10 text-sm text-foreground shadow-xs",children:Object.keys(eP).map(e=>(0,t.jsx)("option",{value:e,children:eP[e]},e))})}),(0,t.jsx)(ej,{label:"Docker のコンテナ名",hint:"無ければ tsunagi が公式イメージで作成します(設定は ~/.tsunagi/searxng/docker/<コンテナ名>/)",children:(0,t.jsx)(y.Input,{value:n.dockerContainer,onChange:e=>g({dockerContainer:e.target.value}),placeholder:"searxng",className:"font-mono"})}),(0,t.jsx)(ej,{label:"searxng-run のパス (任意)",hint:"空欄なら PATH から探します",children:(0,t.jsx)(y.Input,{value:n.binPath,onChange:e=>g({binPath:e.target.value}),placeholder:e.binPath??"searxng-run",className:"font-mono"})}),(0,t.jsx)(ej,{label:"settings.yml のパス (任意)",hint:"searxng-run で起動するときのみ。空欄なら tsunagi が生成したもの(~/.tsunagi/searxng/settings.yml)を使います。独自のものを使う場合は search.formats に json を含めてください",children:(0,t.jsx)(y.Input,{value:n.settingsPath,onChange:e=>g({settingsPath:e.target.value}),className:"font-mono"})}),(0,t.jsx)("div",{children:(0,t.jsxs)(x.Button,{size:"default",onClick:()=>void p(),disabled:o,children:[o&&(0,t.jsx)(A.Loader2,{className:"animate-spin"}),"保存して再起動"]})})]})]}),(0,t.jsx)(B.Dialog,{open:d,onOpenChange:({open:e})=>u(e),title:"ローカル検索について",maxWidth:"2xl",children:(0,t.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"仕組み"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:["Claude Code の WebSearch は Anthropic のサーバーツールのため、ローカルLLMでは使えません(LM Studio は無視し、Ollama は ollama.com のサインインが必要)。ローカル検索を使うタブでは WebSearch を無効化し、tsunagi の MCP が提供する ",(0,t.jsx)(eN,{children:"web_search"})," ツールで SearXNG に検索させます。"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"自動起動・停止"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:["Ollama か LM Studio が有効なら、tsunagi の起動時・有効化時に SearXNG を起動し、両方を無効にしたときと tsunagi の終了時に停止します。起動方法は"," ",(0,t.jsx)(eN,{children:"searxng-run"})," があればそれを、なければ Docker(コンテナが無ければ作成)を使います。既にポートで SearXNG が動いていればそれを使います(tsunagi は止めません)。SearXNG がなくても tsunagi 自体は通常どおり動きます。"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"注意"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"SearXNG は Google / Bing / DuckDuckGo などの検索エンジンに問い合わせます。短時間に大量に検索すると、検索エンジン側で一時的にブロックされることがあります。"})]})]})})]})}var e_=e.i(51846);e.s(["default",0,function(){let e=(0,a.useRouter)();(0,e_.useDocumentTitle)("settings");let n=()=>{{let e=localStorage.getItem("tsunagi:env-selected-node");if(e)try{return JSON.parse(e)}catch(e){console.error("Failed to parse selected node:",e)}}return{scope:"global",label:"Global"}},[i,o]=(0,s.useState)(null),[c,d]=(0,s.useState)(0),[u,m]=(0,s.useState)({completed:!0,hasGlobalToken:!0});return(0,s.useEffect)(()=>{fetch((0,l.apiUrl)("/api/onboarding/status")).then(e=>e.json()).then(e=>{let t=e.data;m(t),t.completed||t.hasGlobalToken?o(n()):o({scope:"global",label:"Global"})}).catch(e=>{console.error("Failed to fetch onboarding status:",e),o(n())})},[]),(0,s.useEffect)(()=>{i&&localStorage.setItem("tsunagi:env-selected-node",JSON.stringify(i))},[i]),(0,t.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,t.jsx)("div",{className:"sticky top-0 z-50 p-4 border-b border-border bg-card",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(x.Button,{variant:"ghost",onClick:()=>e.push("/"),className:"text-primary font-medium hover:bg-primary/10 hover:text-foreground",children:[(0,t.jsx)(r.ArrowLeft,{className:"w-4 h-4"}),"Back to Board"]}),(0,t.jsx)("h1",{className:"text-xl font-bold text-foreground absolute left-1/2 -translate-x-1/2",children:"Settings"})]})}),(0,t.jsxs)("div",{className:"flex-1 flex min-h-0",children:[(0,t.jsx)("div",{className:"w-64 border-r border-border bg-card",children:(0,t.jsx)(h,{selectedNode:i,onNodeSelect:e=>{o(e)},refreshKey:c})}),(0,t.jsx)("div",{className:"flex-1 bg-card p-4 overflow-y-auto",children:i?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(z,{selectedNode:i,onboardingStatus:u,onSwitchToGlobal:()=>{o({scope:"global",label:"Global"})}}),(0,t.jsx)(S,{selectedNode:i}),"global"===i.scope&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"Repositories"}),(0,t.jsx)(I,{})]}),"global"===i.scope&&(0,t.jsx)(Z,{}),"global"===i.scope&&(0,t.jsx)(Q.LocalLlmSection,{}),"global"===i.scope&&(0,t.jsx)(ew,{}),"global"===i.scope&&(0,t.jsx)(eL,{}),"global"===i.scope&&(0,t.jsx)(eE,{}),"global"===i.scope&&(0,t.jsx)(eI,{}),"repo"===i.scope&&i.owner&&i.repo&&(0,t.jsx)(F,{owner:i.owner,repo:i.repo,onDeleted:()=>{o({scope:"global",label:"Global"}),d(e=>e+1)}})]}):(0,t.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground text-sm",children:"Select a node from the left panel"})})]})]})}],82341)}]);
@@ -1,12 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,85699,e=>{"use strict";var t=e.i(71645),n=e.i(74080);let r=Array(12).fill(0),o=({visible:e,className:n})=>t.default.createElement("div",{className:["sonner-loading-wrapper",n].filter(Boolean).join(" "),"data-visible":e},t.default.createElement("div",{className:"sonner-spinner"},r.map((e,n)=>t.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),a=t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},t.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),i=t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},t.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),s=t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},t.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},t.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),u=t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},t.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),c=1,d=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,o="number"==typeof(null==e?void 0:e.id)||(null==(t=e.id)?void 0:t.length)>0?e.id:c++,a=this.toasts.find(e=>e.id===o),i=void 0===e.dismissible||e.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),a?this.toasts=this.toasts.map(t=>t.id===o?(this.publish({...t,...e,id:o,title:n}),{...t,...e,id:o,dismissible:i,title:n}):t):this.addToast({title:n,...r,dismissible:i,id:o}),o},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,n)=>{let r,o;if(!n)return;void 0!==n.loading&&(o=this.create({...n,promise:e,type:"loading",message:n.loading,description:"function"!=typeof n.description?n.description:void 0}));let a=Promise.resolve(e instanceof Function?e():e),i=void 0!==o,s=a.then(async e=>{if(r=["resolve",e],t.default.isValidElement(e))i=!1,this.create({id:o,type:"default",message:e});else if(f(e)&&!e.ok){i=!1;let r="function"==typeof n.error?await n.error(`HTTP error! status: ${e.status}`):n.error,a="function"==typeof n.description?await n.description(`HTTP error! status: ${e.status}`):n.description,s="object"!=typeof r||t.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:a,...s})}else if(e instanceof Error){i=!1;let r="function"==typeof n.error?await n.error(e):n.error,a="function"==typeof n.description?await n.description(e):n.description,s="object"!=typeof r||t.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:a,...s})}else if(void 0!==n.success){i=!1;let r="function"==typeof n.success?await n.success(e):n.success,a="function"==typeof n.description?await n.description(e):n.description,s="object"!=typeof r||t.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:a,...s})}}).catch(async e=>{if(r=["reject",e],void 0!==n.error){i=!1;let r="function"==typeof n.error?await n.error(e):n.error,a="function"==typeof n.description?await n.description(e):n.description,s="object"!=typeof r||t.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:a,...s})}}).finally(()=>{i&&(this.dismiss(o),o=void 0),null==n.finally||n.finally.call(n)}),l=()=>new Promise((e,t)=>s.then(()=>"reject"===r[0]?t(r[1]):e(r[1])).catch(t));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(e,t)=>{let n=(null==t?void 0:t.id)||c++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=e=>e&&"object"==typeof e&&"ok"in e&&"boolean"==typeof e.ok&&"status"in e&&"number"==typeof e.status,p=Object.assign((e,t)=>{let n=(null==t?void 0:t.id)||c++;return d.addToast({title:e,...t,id:n}),n},{success:d.success,info:d.info,warning:d.warning,error:d.error,custom:d.custom,message:d.message,promise:d.promise,dismiss:d.dismiss,loading:d.loading},{getHistory:()=>d.toasts,getToasts:()=>d.getActiveToasts()});function g(e){return void 0!==e.label}function m(...e){return e.filter(Boolean).join(" ")}!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let h=e=>{var n,r,c,d,f,p,h,v,b,y,x,E,w;let{invert:S,toast:C,unstyled:R,interacting:T,setHeights:k,visibleToasts:D,heights:O,index:I,toasts:A,expanded:P,removeToast:N,defaultRichColors:M,closeButton:L,style:j,cancelButtonStyle:B,actionButtonStyle:F,className:W="",descriptionClassName:z="",duration:_,position:V,gap:Y,expandByDefault:H,classNames:$,icons:U,closeButtonAriaLabel:K="Close toast"}=e,[q,X]=t.default.useState(null),[G,J]=t.default.useState(null),[Q,Z]=t.default.useState(!1),[ee,et]=t.default.useState(!1),[en,er]=t.default.useState(!1),[eo,ea]=t.default.useState(!1),[ei,es]=t.default.useState(!1),[el,eu]=t.default.useState(0),[ec,ed]=t.default.useState(0),ef=t.default.useRef(C.duration||_||4e3),ep=t.default.useRef(null),eg=t.default.useRef(null),em=0===I,eh=I+1<=D,ev=C.type,eb=!1!==C.dismissible,ey=C.className||"",ex=C.descriptionClassName||"",eE=t.default.useMemo(()=>O.findIndex(e=>e.toastId===C.id)||0,[O,C.id]),ew=t.default.useMemo(()=>{var e;return null!=(e=C.closeButton)?e:L},[C.closeButton,L]),eS=t.default.useMemo(()=>C.duration||_||4e3,[C.duration,_]),eC=t.default.useRef(0),eR=t.default.useRef(0),eT=t.default.useRef(0),ek=t.default.useRef(null),[eD,eO]=V.split("-"),eI=t.default.useMemo(()=>O.reduce((e,t,n)=>n>=eE?e:e+t.height,0),[O,eE]),eA=(()=>{let[e,n]=t.default.useState(document.hidden);return t.default.useEffect(()=>{let e=()=>{n(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),e})(),eP=C.invert||S,eN="loading"===ev;eR.current=t.default.useMemo(()=>eE*Y+eI,[eE,eI]),t.default.useEffect(()=>{ef.current=eS},[eS]),t.default.useEffect(()=>{Z(!0)},[]),t.default.useEffect(()=>{let e=eg.current;if(e){let t=e.getBoundingClientRect().height;return ed(t),k(e=>[{toastId:C.id,height:t,position:C.position},...e]),()=>k(e=>e.filter(e=>e.toastId!==C.id))}},[k,C.id]),t.default.useLayoutEffect(()=>{if(!Q)return;let e=eg.current,t=e.style.height;e.style.height="auto";let n=e.getBoundingClientRect().height;e.style.height=t,ed(n),k(e=>e.find(e=>e.toastId===C.id)?e.map(e=>e.toastId===C.id?{...e,height:n}:e):[{toastId:C.id,height:n,position:C.position},...e])},[Q,C.title,C.description,k,C.id,C.jsx,C.action,C.cancel]);let eM=t.default.useCallback(()=>{et(!0),eu(eR.current),k(e=>e.filter(e=>e.toastId!==C.id)),setTimeout(()=>{N(C)},200)},[C,N,k,eR]);t.default.useEffect(()=>{let e;if((!C.promise||"loading"!==ev)&&C.duration!==1/0&&"loading"!==C.type){if(P||T||eA){if(eT.current<eC.current){let e=new Date().getTime()-eC.current;ef.current=ef.current-e}eT.current=new Date().getTime()}else ef.current!==1/0&&(eC.current=new Date().getTime(),e=setTimeout(()=>{null==C.onAutoClose||C.onAutoClose.call(C,C),eM()},ef.current));return()=>clearTimeout(e)}},[P,T,C,ev,eA,eM]),t.default.useEffect(()=>{C.delete&&(eM(),null==C.onDismiss||C.onDismiss.call(C,C))},[eM,C.delete]);let eL=C.icon||(null==U?void 0:U[ev])||(e=>{switch(e){case"success":return a;case"info":return s;case"warning":return i;case"error":return l;default:return null}})(ev);return t.default.createElement("li",{tabIndex:0,ref:eg,className:m(W,ey,null==$?void 0:$.toast,null==C||null==(n=C.classNames)?void 0:n.toast,null==$?void 0:$.default,null==$?void 0:$[ev],null==C||null==(r=C.classNames)?void 0:r[ev]),"data-sonner-toast":"","data-rich-colors":null!=(y=C.richColors)?y:M,"data-styled":!(C.jsx||C.unstyled||R),"data-mounted":Q,"data-promise":!!C.promise,"data-swiped":ei,"data-removed":ee,"data-visible":eh,"data-y-position":eD,"data-x-position":eO,"data-index":I,"data-front":em,"data-swiping":en,"data-dismissible":eb,"data-type":ev,"data-invert":eP,"data-swipe-out":eo,"data-swipe-direction":G,"data-expanded":!!(P||H&&Q),"data-testid":C.testId,style:{"--index":I,"--toasts-before":I,"--z-index":A.length-I,"--offset":`${ee?el:eR.current}px`,"--initial-height":H?"auto":`${ec}px`,...j,...C.style},onDragEnd:()=>{er(!1),X(null),ek.current=null},onPointerDown:e=>{2===e.button||eN||!eb||(ep.current=new Date,eu(eR.current),e.target.setPointerCapture(e.pointerId),"BUTTON"!==e.target.tagName&&(er(!0),ek.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{var e,t,n,r,o;if(eo||!eb)return;ek.current=null;let a=Number((null==(e=eg.current)?void 0:e.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),i=Number((null==(t=eg.current)?void 0:t.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),s=new Date().getTime()-(null==(n=ep.current)?void 0:n.getTime()),l="x"===q?a:i,u=Math.abs(l)/s;if(Math.abs(l)>=45||u>.11){eu(eR.current),null==C.onDismiss||C.onDismiss.call(C,C),"x"===q?J(a>0?"right":"left"):J(i>0?"down":"up"),eM(),ea(!0);return}null==(r=eg.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=eg.current)||o.style.setProperty("--swipe-amount-y","0px"),es(!1),er(!1),X(null)},onPointerMove:t=>{var n,r,o,a;if(!ek.current||!eb||(null==(n=window.getSelection())?void 0:n.toString().length)>0)return;let i=t.clientY-ek.current.y,s=t.clientX-ek.current.x,l=null!=(a=e.swipeDirections)?a:function(e){let[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}(V);!q&&(Math.abs(s)>1||Math.abs(i)>1)&&X(Math.abs(s)>Math.abs(i)?"x":"y");let u={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if("y"===q){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&i<0||l.includes("bottom")&&i>0)u.y=i;else{let e=i*c(i);u.y=Math.abs(e)<Math.abs(i)?e:i}}else if("x"===q&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&s<0||l.includes("right")&&s>0)u.x=s;else{let e=s*c(s);u.x=Math.abs(e)<Math.abs(s)?e:s}(Math.abs(u.x)>0||Math.abs(u.y)>0)&&es(!0),null==(r=eg.current)||r.style.setProperty("--swipe-amount-x",`${u.x}px`),null==(o=eg.current)||o.style.setProperty("--swipe-amount-y",`${u.y}px`)}},ew&&!C.jsx&&"loading"!==ev?t.default.createElement("button",{"aria-label":K,"data-disabled":eN,"data-close-button":!0,onClick:eN||!eb?()=>{}:()=>{eM(),null==C.onDismiss||C.onDismiss.call(C,C)},className:m(null==$?void 0:$.closeButton,null==C||null==(c=C.classNames)?void 0:c.closeButton)},null!=(x=null==U?void 0:U.close)?x:u):null,(ev||C.icon||C.promise)&&null!==C.icon&&((null==U?void 0:U[ev])!==null||C.icon)?t.default.createElement("div",{"data-icon":"",className:m(null==$?void 0:$.icon,null==C||null==(d=C.classNames)?void 0:d.icon)},C.promise||"loading"===C.type&&!C.icon?C.icon||((null==U?void 0:U.loading)?t.default.createElement("div",{className:m(null==$?void 0:$.loader,null==C||null==(w=C.classNames)?void 0:w.loader,"sonner-loader"),"data-visible":"loading"===ev},U.loading):t.default.createElement(o,{className:m(null==$?void 0:$.loader,null==C||null==(E=C.classNames)?void 0:E.loader),visible:"loading"===ev})):null,"loading"!==C.type?eL:null):null,t.default.createElement("div",{"data-content":"",className:m(null==$?void 0:$.content,null==C||null==(f=C.classNames)?void 0:f.content)},t.default.createElement("div",{"data-title":"",className:m(null==$?void 0:$.title,null==C||null==(p=C.classNames)?void 0:p.title)},C.jsx?C.jsx:"function"==typeof C.title?C.title():C.title),C.description?t.default.createElement("div",{"data-description":"",className:m(z,ex,null==$?void 0:$.description,null==C||null==(h=C.classNames)?void 0:h.description)},"function"==typeof C.description?C.description():C.description):null),t.default.isValidElement(C.cancel)?C.cancel:C.cancel&&g(C.cancel)?t.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:C.cancelButtonStyle||B,onClick:e=>{!g(C.cancel)||eb&&(null==C.cancel.onClick||C.cancel.onClick.call(C.cancel,e),eM())},className:m(null==$?void 0:$.cancelButton,null==C||null==(v=C.classNames)?void 0:v.cancelButton)},C.cancel.label):null,t.default.isValidElement(C.action)?C.action:C.action&&g(C.action)?t.default.createElement("button",{"data-button":!0,"data-action":!0,style:C.actionButtonStyle||F,onClick:e=>{!g(C.action)||(null==C.action.onClick||C.action.onClick.call(C.action,e),e.defaultPrevented||eM())},className:m(null==$?void 0:$.actionButton,null==C||null==(b=C.classNames)?void 0:b.actionButton)},C.action.label):null)};function v(){if("u"<typeof window||"u"<typeof document)return"ltr";let e=document.documentElement.getAttribute("dir");return"auto"!==e&&e?e:window.getComputedStyle(document.documentElement).direction}let b=t.default.forwardRef(function(e,r){let{id:o,invert:a,position:i="bottom-right",hotkey:s=["altKey","KeyT"],expand:l,closeButton:u,className:c,offset:f,mobileOffset:p,theme:g="light",richColors:m,duration:b,style:y,visibleToasts:x=3,toastOptions:E,dir:w=v(),gap:S=14,icons:C,containerAriaLabel:R="Notifications"}=e,[T,k]=t.default.useState([]),D=t.default.useMemo(()=>o?T.filter(e=>e.toasterId===o):T.filter(e=>!e.toasterId),[T,o]),O=t.default.useMemo(()=>Array.from(new Set([i].concat(D.filter(e=>e.position).map(e=>e.position)))),[D,i]),[I,A]=t.default.useState([]),[P,N]=t.default.useState(!1),[M,L]=t.default.useState(!1),[j,B]=t.default.useState("system"!==g?g:"u">typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),F=t.default.useRef(null),W=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),z=t.default.useRef(null),_=t.default.useRef(!1),V=t.default.useCallback(e=>{k(t=>{var n;return(null==(n=t.find(t=>t.id===e.id))?void 0:n.delete)||d.dismiss(e.id),t.filter(({id:t})=>t!==e.id)})},[]);return t.default.useEffect(()=>d.subscribe(e=>{e.dismiss?requestAnimationFrame(()=>{k(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))}):setTimeout(()=>{n.default.flushSync(()=>{k(t=>{let n=t.findIndex(t=>t.id===e.id);return -1!==n?[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]:[e,...t]})})})}),[T]),t.default.useEffect(()=>{if("system"!==g)return void B(g);if("system"===g&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?B("dark"):B("light")),"u"<typeof window)return;let e=window.matchMedia("(prefers-color-scheme: dark)");try{e.addEventListener("change",({matches:e})=>{e?B("dark"):B("light")})}catch(t){e.addListener(({matches:e})=>{try{e?B("dark"):B("light")}catch(e){console.error(e)}})}},[g]),t.default.useEffect(()=>{T.length<=1&&N(!1)},[T]),t.default.useEffect(()=>{let e=e=>{var t,n;s.every(t=>e[t]||e.code===t)&&(N(!0),null==(n=F.current)||n.focus()),"Escape"===e.code&&(document.activeElement===F.current||(null==(t=F.current)?void 0:t.contains(document.activeElement)))&&N(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]),t.default.useEffect(()=>{if(F.current)return()=>{z.current&&(z.current.focus({preventScroll:!0}),z.current=null,_.current=!1)}},[F.current]),t.default.createElement("section",{ref:r,"aria-label":`${R} ${W}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((n,r)=>{var o;let i,[s,d]=n.split("-");return D.length?t.default.createElement("ol",{key:n,dir:"auto"===w?v():w,tabIndex:-1,ref:F,className:c,"data-sonner-toaster":!0,"data-sonner-theme":j,"data-y-position":s,"data-x-position":d,style:{"--front-toast-height":`${(null==(o=I[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${S}px`,...y,...(i={},[f,p].forEach((e,t)=>{let n=1===t,r=n?"--mobile-offset":"--offset",o=n?"16px":"24px";function a(e){["top","right","bottom","left"].forEach(t=>{i[`${r}-${t}`]="number"==typeof e?`${e}px`:e})}"number"==typeof e||"string"==typeof e?a(e):"object"==typeof e?["top","right","bottom","left"].forEach(t=>{void 0===e[t]?i[`${r}-${t}`]=o:i[`${r}-${t}`]="number"==typeof e[t]?`${e[t]}px`:e[t]}):a(o)}),i)},onBlur:e=>{_.current&&!e.currentTarget.contains(e.relatedTarget)&&(_.current=!1,z.current&&(z.current.focus({preventScroll:!0}),z.current=null))},onFocus:e=>{!(e.target instanceof HTMLElement&&"false"===e.target.dataset.dismissible)&&(_.current||(_.current=!0,z.current=e.relatedTarget))},onMouseEnter:()=>N(!0),onMouseMove:()=>N(!0),onMouseLeave:()=>{M||N(!1)},onDragEnd:()=>N(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&"false"===e.target.dataset.dismissible||L(!0)},onPointerUp:()=>L(!1)},D.filter(e=>!e.position&&0===r||e.position===n).map((r,o)=>{var i,s;return t.default.createElement(h,{key:r.id,icons:C,index:o,toast:r,defaultRichColors:m,duration:null!=(i=null==E?void 0:E.duration)?i:b,className:null==E?void 0:E.className,descriptionClassName:null==E?void 0:E.descriptionClassName,invert:a,visibleToasts:x,closeButton:null!=(s=null==E?void 0:E.closeButton)?s:u,interacting:M,position:n,style:null==E?void 0:E.style,unstyled:null==E?void 0:E.unstyled,classNames:null==E?void 0:E.classNames,cancelButtonStyle:null==E?void 0:E.cancelButtonStyle,actionButtonStyle:null==E?void 0:E.actionButtonStyle,closeButtonAriaLabel:null==E?void 0:E.closeButtonAriaLabel,removeToast:V,toasts:D.filter(e=>e.position==r.position),heights:I.filter(e=>e.position==r.position),setHeights:A,expandByDefault:l,gap:S,expanded:P,swipeDirections:e.swipeDirections})})):null}))});e.s(["Toaster",0,b,"toast",0,p])},75704,13104,e=>{"use strict";e.s([],75704),e.i(47167);var t=e.i(67805),n=e.i(71645);let r=n.createContext(void 0);e.s(["DialogRootContext",0,r,"useDialogRootContext",0,function(e){let o=n.useContext(r);if(!1===e&&void 0===o)throw Error((0,t.default)(27));return o}],13104)},84759,e=>{"use strict";var t;let n=((t={}).startingStyle="data-starting-style",t.endingStyle="data-ending-style",t),r={[n.startingStyle]:""},o={[n.endingStyle]:""};e.s(["TransitionStatusDataAttributes",0,n,"transitionStatusMapping",0,{transitionStatus:e=>"starting"===e?r:"ending"===e?o:null}])},59141,83590,e=>{"use strict";e.i(47167);var t,n,r=e.i(71645),o=e.i(13104),a=e.i(27601),i=e.i(84759);let s=((t={}).open="data-open",t.closed="data-closed",t[t.startingStyle=i.TransitionStatusDataAttributes.startingStyle]="startingStyle",t[t.endingStyle=i.TransitionStatusDataAttributes.endingStyle]="endingStyle",t.anchorHidden="data-anchor-hidden",t.side="data-side",t.align="data-align",t),l=((n={}).popupOpen="data-popup-open",n.pressed="data-pressed",n),u={[l.popupOpen]:""},c={[l.popupOpen]:"",[l.pressed]:""},d={[s.open]:""},f={[s.closed]:""},p={[s.anchorHidden]:""},g={open:e=>e?d:f,anchorHidden:e=>e?p:null};e.s(["CommonPopupDataAttributes",0,s,"popupStateMapping",0,g,"pressableTriggerOpenStateMapping",0,{open:e=>e?c:null},"triggerOpenStateMapping",0,{open:e=>e?u:null}],83590);let m={...g,...i.transitionStatusMapping},h=r.forwardRef(function(e,t){let{render:n,className:r,forceRender:i=!1,...s}=e,{store:l}=(0,o.useDialogRootContext)(),u=l.useState("open"),c=l.useState("nested"),d=l.useState("mounted"),f=l.useState("transitionStatus");return(0,a.useRenderElement)("div",e,{state:{open:u,transitionStatus:f},ref:[l.context.backdropRef,t],stateAttributesMapping:m,props:[{role:"presentation",hidden:!d,style:{userSelect:"none",WebkitUserSelect:"none"}},s],enabled:i||!c})});e.s(["DialogBackdrop",0,h],59141)},91730,29315,76477,977,54694,e=>{"use strict";let t;e.i(47167);var n=e.i(71645);function r(){return"u">typeof window}function o(e){return s(e)?(e.nodeName||"").toLowerCase():"#document"}function a(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function i(e){var t;return null==(t=(s(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function s(e){return!!r()&&(e instanceof Node||e instanceof a(e).Node)}function l(e){return!!r()&&(e instanceof Element||e instanceof a(e).Element)}function u(e){return!!r()&&(e instanceof HTMLElement||e instanceof a(e).HTMLElement)}function c(e){return!(!r()||"u"<typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof a(e).ShadowRoot)}function d(e){let{overflow:t,overflowX:n,overflowY:r,display:o}=y(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&"inline"!==o&&"contents"!==o}function f(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}let p=/transform|translate|scale|rotate|perspective|filter/,g=/paint|layout|strict|content/,m=e=>!!e&&"none"!==e;function h(e){let t=l(e)?y(e):e;return m(t.transform)||m(t.translate)||m(t.scale)||m(t.rotate)||m(t.perspective)||!v()&&(m(t.backdropFilter)||m(t.filter))||p.test(t.willChange||"")||g.test(t.contain||"")}function v(){return null==t&&(t="u">typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),t}function b(e){return/^(html|body|#document)$/.test(o(e))}function y(e){return a(e).getComputedStyle(e)}function x(e){if("html"===o(e))return e;let t=e.assignedSlot||e.parentNode||c(e)&&e.host||i(e);return c(t)?t.host:t}function E(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}e.s(["getComputedStyle",0,y,"getContainingBlock",0,function(e){let t=x(e);for(;u(t)&&!b(t);){if(h(t))return t;if(f(t))break;t=x(t)}return null},"getDocumentElement",0,i,"getFrameElement",0,E,"getNodeName",0,o,"getNodeScroll",0,function(e){return l(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}},"getOverflowAncestors",0,function e(t,n,r){var o;void 0===n&&(n=[]),void 0===r&&(r=!0);let i=function e(t){let n=x(t);return b(n)?t.ownerDocument?t.ownerDocument.body:t.body:u(n)&&d(n)?n:e(n)}(t),s=i===(null==(o=t.ownerDocument)?void 0:o.body),l=a(i);if(!s)return n.concat(i,e(i,[],r));{let t=E(l);return n.concat(l,l.visualViewport||[],d(i)?i:[],t&&r?e(t):[])}},"getParentNode",0,x,"getWindow",0,a,"isContainingBlock",0,h,"isElement",0,l,"isHTMLElement",0,u,"isLastTraversableNode",0,b,"isNode",0,s,"isOverflowElement",0,d,"isShadowRoot",0,c,"isTableElement",0,function(e){return/^(table|td|th)$/.test(o(e))},"isTopLayer",0,f,"isWebKit",0,v],29315);var w=e.i(30628);let S=n[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],C=S&&S!==n.useLayoutEffect?S:e=>e();function R(e){let t=(0,w.useRefWithInit)(T).current;return t.next=e,C(t.effect),t.trampoline}function T(){let e={next:void 0,callback:k,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function k(){}e.s(["useStableCallback",0,R],76477);let D="u">typeof document?n.useLayoutEffect:()=>{};e.s(["useIsoLayoutEffect",0,D],977);var O=e.i(19805),I=e.i(67805);let A=n.createContext(void 0);function P(e=!1){let t=n.useContext(A);if(void 0===t&&!e)throw Error((0,I.default)(16));return t}function N(e){return u(e)&&"BUTTON"===e.tagName}e.s(["useCompositeRootContext",0,P],54694),e.s(["useButton",0,function(e={}){let{disabled:t=!1,focusableWhenDisabled:r,tabIndex:o=0,native:a=!0,composite:i}=e,s=n.useRef(null),l=P(!0),u=i??void 0!==l,{props:c}=function(e){let{focusableWhenDisabled:t,disabled:r,composite:o=!1,tabIndex:a=0,isNativeButton:i}=e,s=o&&!1!==t,l=o&&!1===t;return{props:n.useMemo(()=>{let e={onKeyDown(e){r&&t&&"Tab"!==e.key&&e.preventDefault()}};return o||(e.tabIndex=a,!i&&r&&(e.tabIndex=t?a:-1)),(i&&(t||s)||!i&&r)&&(e["aria-disabled"]=r),i&&(!t||l)&&(e.disabled=r),e},[o,r,t,s,l,i,a])}}({focusableWhenDisabled:r,disabled:t,composite:u,tabIndex:o,isNativeButton:a}),d=n.useCallback(()=>{let e=s.current;N(e)&&u&&t&&void 0===c.disabled&&e.disabled&&(e.disabled=!1)},[t,c.disabled,u]);return D(d,[d]),{getButtonProps:n.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:o,onKeyDown:i,onPointerDown:s,...l}=e,d=a?"button":void 0;return(0,O.mergeProps)({type:d,onClick(e){t?e.preventDefault():n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){var r;if(t||((0,O.makeEventPreventable)(e),i?.(e),e.baseUIHandlerPrevented))return;let o=e.target===e.currentTarget,s=e.currentTarget,l=N(s),c=!a&&(r=s,!!(r?.tagName==="A"&&r?.href)),d=o&&(a?l:!c),f="Enter"===e.key,p=" "===e.key,g=s.getAttribute("role"),m=g?.startsWith("menuitem")||"option"===g||"gridcell"===g;if(o&&u&&p){if(e.defaultPrevented&&m)return;e.preventDefault(),c||a&&l?(s.click(),e.preventBaseUIHandler()):d&&(n?.(e),e.preventBaseUIHandler());return}d&&(!a&&(p||f)&&e.preventDefault(),!a&&f&&n?.(e))},onKeyUp(e){t||(((0,O.makeEventPreventable)(e),o?.(e),e.target===e.currentTarget&&a&&u&&N(e.currentTarget)&&" "===e.key)?e.preventDefault():!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||a||u||" "!==e.key||n?.(e)))},onPointerDown(e){t?e.preventDefault():s?.(e)}},a?void 0:{role:"button"},c,l)},[t,c,u,a]),buttonRef:R(e=>{s.current=e,d()})}}],91730)},5963,3404,e=>{"use strict";var t=e.i(17514);e.s(["createChangeEventDetails",0,function(e,n,r,o){let a=!1,i=!1,s=o??t.EMPTY_OBJECT;return{reason:e,event:n??new Event("base-ui"),cancel(){a=!0},allowPropagation(){i=!0},get isCanceled(){return a},get isPropagationAllowed(){return i},trigger:r,...s}}],5963),e.s(["cancelOpen",0,"cancel-open","chipRemovePress",0,"chip-remove-press","clearPress",0,"clear-press","closePress",0,"close-press","closeWatcher",0,"close-watcher","decrementPress",0,"decrement-press","disabled",0,"disabled","drag",0,"drag","escapeKey",0,"escape-key","focusOut",0,"focus-out","imperativeAction",0,"imperative-action","incrementPress",0,"increment-press","inputBlur",0,"input-blur","inputChange",0,"input-change","inputClear",0,"input-clear","inputPaste",0,"input-paste","inputPress",0,"input-press","itemPress",0,"item-press","keyboard",0,"keyboard","linkPress",0,"link-press","listNavigation",0,"list-navigation","none",0,"none","outsidePress",0,"outside-press","pointer",0,"pointer","scrub",0,"scrub","siblingOpen",0,"sibling-open","swipe",0,"swipe","trackPress",0,"track-press","triggerFocus",0,"trigger-focus","triggerHover",0,"trigger-hover","triggerPress",0,"trigger-press","wheel",0,"wheel","windowResize",0,"window-resize"],16162);var n=e.i(16162);e.s(["REASONS",0,n],3404)},43444,e=>{"use strict";var t=e.i(71645),n=e.i(13104),r=e.i(27601),o=e.i(91730),a=e.i(5963),i=e.i(3404);let s=t.forwardRef(function(e,t){let{render:s,className:l,disabled:u=!1,nativeButton:c=!0,...d}=e,{store:f}=(0,n.useDialogRootContext)(),p=f.useState("open"),{getButtonProps:g,buttonRef:m}=(0,o.useButton)({disabled:u,native:c});return(0,r.useRenderElement)("button",e,{state:{disabled:u},ref:[t,m],props:[{onClick:function(e){p&&f.setOpen(!1,(0,a.createChangeEventDetails)(i.REASONS.closePress,e.nativeEvent))}},d,g]})});e.s(["DialogClose",0,s])},89879,83799,e=>{"use strict";var t=e.i(71645);let n={...t},r=0,o=n.useId;function a(e,n){if(void 0!==o){let t=o();return e??(n?`${n}-${t}`:t)}return function(e,n="mui"){let[o,a]=t.useState(e),i=e||o;return t.useEffect(()=>{null==o&&(r+=1,a(`${n}-${r}`))},[o,n]),i}(e,n)}e.s(["useId",0,a],83799),e.s(["useBaseUiId",0,function(e){return a(e,"base-ui")}],89879)},39362,97126,231,e=>{"use strict";e.i(47167);var t=e.i(71645),n=e.i(13104),r=e.i(27601),o=e.i(89879);let a=t.forwardRef(function(e,t){let{render:a,className:i,id:s,...l}=e,{store:u}=(0,n.useDialogRootContext)(),c=(0,o.useBaseUiId)(s);return u.useSyncedValueWithCleanup("descriptionElementId",c),(0,r.useRenderElement)("p",e,{ref:t,props:[{id:c},l]})});e.s(["DialogDescription",0,a],39362);var i='input:not([inert]):not([inert] *),select:not([inert]):not([inert] *),textarea:not([inert]):not([inert] *),a[href]:not([inert]):not([inert] *),button:not([inert]):not([inert] *),[tabindex]:not(slot):not([inert]):not([inert] *),audio[controls]:not([inert]):not([inert] *),video[controls]:not([inert]):not([inert] *),[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *),details>summary:first-of-type:not([inert]):not([inert] *),details:not([inert]):not([inert] *)',s="u"<typeof Element,l=s?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,u=!s&&Element.prototype.getRootNode?function(e){var t;return null==e||null==(t=e.getRootNode)?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},c=function(e,t){void 0===t&&(t=!0);var n,r=null==e||null==(n=e.getAttribute)?void 0:n.call(e,"inert");return""===r||"true"===r||t&&e&&("function"==typeof e.closest?e.closest("[inert]"):c(e.parentNode))},d=function(e){var t,n=null==e||null==(t=e.getAttribute)?void 0:t.call(e,"contenteditable");return""===n||"true"===n},f=function(e,t,n){if(c(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(i));return t&&l.call(e,i)&&r.unshift(e),r=r.filter(n)},p=function(e,t,n){for(var r=[],o=Array.from(e);o.length;){var a=o.shift();if(!c(a,!1))if("SLOT"===a.tagName){var s=a.assignedElements(),u=p(s.length?s:a.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else{l.call(a,i)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var d=a.shadowRoot||"function"==typeof n.getShadowRoot&&n.getShadowRoot(a),f=!c(d,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(d&&f){var g=p(!0===d?a.children:d.children,!0,n);n.flatten?r.push.apply(r,g):r.push({scopeParent:a,candidates:g})}else o.unshift.apply(o,a.children)}}return r},g=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},m=function(e){if(!e)throw Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||d(e))&&!g(e)?0:e.tabIndex},h=function(e,t){var n=m(e);return n<0&&t&&!g(e)?0:n},v=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},b=function(e){return"INPUT"===e.tagName},y=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},x=function(e){if(!e.name)return!0;var t,n=e.form||u(e),r=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("u">typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var o=y(t,e.form);return!o||o===e},E=function(e){return b(e)&&"radio"===e.type&&!x(e)},w=function(e){var t,n,r,o,a,i,s,l=e&&u(e),c=null==(t=l)?void 0:t.host,d=!1;if(l&&l!==e)for(d=!!(null!=(n=c)&&null!=(r=n.ownerDocument)&&r.contains(c)||null!=e&&null!=(o=e.ownerDocument)&&o.contains(e));!d&&c;)d=!!(null!=(i=c=null==(a=l=u(c))?void 0:a.host)&&null!=(s=i.ownerDocument)&&s.contains(c));return d},S=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},C=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if("full-native"===n&&"checkVisibility"in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if("hidden"===getComputedStyle(e).visibility)return!0;var o=l.call(e,"details>summary:first-of-type")?e.parentElement:e;if(l.call(o,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"full-native"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return S(e)}else{if("function"==typeof r){for(var a=e;e;){var i=e.parentElement,s=u(e);if(i&&!i.shadowRoot&&!0===r(i))return S(e);e=e.assignedSlot?e.assignedSlot:i||s===e.ownerDocument?i:s.host}e=a}if(w(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},R=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if("LEGEND"===r.tagName)return!!l.call(t,"fieldset[disabled] *")||!r.contains(e)}return!0}t=t.parentElement}return!1},T=function(e,t){return!(t.disabled||b(t)&&"hidden"===t.type||C(t,e)||"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some(function(e){return"SUMMARY"===e.tagName})||R(t))},k=function(e,t){return!(E(t)||0>m(t))&&!!T(e,t)},D=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!isNaN(t)||!!(t>=0)},O=function(e){var t=[],n=[];return e.forEach(function(e,r){var o=!!e.scopeParent,a=o?e.scopeParent:e,i=h(a,o),s=o?O(e.candidates):a;0===i?o?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:i,item:e,isScope:o,content:s})}),n.sort(v).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)};e.s(["focusable",0,function(e,t){return(t=t||{}).getShadowRoot?p([e],t.includeContainer,{filter:T.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):f(e,t.includeContainer,T.bind(null,t))},"isTabbable",0,function(e,t){if(t=t||{},!e)throw Error("No node provided");return!1!==l.call(e,i)&&k(t,e)},"tabbable",0,function(e,t){return O((t=t||{}).getShadowRoot?p([e],t.includeContainer,{filter:k.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:D}):f(e,t.includeContainer,k.bind(null,t)))}],97126);var I=e.i(977),A=e.i(30628);function P(e){let t={current:e,next:e,effect:()=>{t.current=t.next}};return t}e.s(["useValueAsRef",0,function(e){let t=(0,A.useRefWithInit)(P,e).current;return t.next=e,(0,I.useIsoLayoutEffect)(t.effect),t}],231)},66745,94365,e=>{"use strict";var t=e.i(30628),n=e.i(71645);let r=[];function o(e){n.useEffect(e,r)}e.s(["useOnMount",0,o],94365);class a{static create(){return new a}currentId=0;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=0,t()},e)}isStarted(){return 0!==this.currentId}clear=()=>{0!==this.currentId&&(clearTimeout(this.currentId),this.currentId=0)};disposeEffect=()=>this.clear}e.s(["Timeout",0,a,"useTimeout",0,function(){let e=(0,t.useRefWithInit)(a.create).current;return o(e.disposeEffect),e}],66745)},57666,e=>{"use strict";let t="u">typeof navigator,n=function(){if(!t)return{platform:"",maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}(),r=function(){if(!t)return"";let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??""}(),o=function(){if(!t)return"";let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(" "):navigator.userAgent}(),a="u">typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter:none"),i="MacIntel"===n.platform&&n.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(n.platform);t&&/firefox/i.test(o);let s=t&&/apple/i.test(navigator.vendor);t&&/Edg/i.test(o);let l=t&&/android/i.test(r)||/android/i.test(o),u=t&&r.toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints,c=o.includes("jsdom/");e.s(["isAndroid",0,l,"isIOS",0,i,"isJSDOM",0,c,"isMac",0,u,"isSafari",0,s,"isWebKit",0,a])},47135,e=>{"use strict";var t=e.i(30628),n=e.i(94365);let r=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n<t.length;n+=1)t[n]?.(e)};request(e){let t=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||(requestAnimationFrame(this.tick),this.isScheduled=!0),t}cancel(e){let t=e-this.startId;t<0||t>=this.callbacks.length||(this.callbacks[t]=null,this.callbacksCount-=1)}};class o{static create(){return new o}static request(e){return r.request(e)}static cancel(e){return r.cancel(e)}currentId=null;request(e){this.cancel(),this.currentId=r.request(()=>{this.currentId=null,e()})}cancel=()=>{null!==this.currentId&&(r.cancel(this.currentId),this.currentId=null)};disposeEffect=()=>this.cancel}e.s(["AnimationFrame",0,o,"useAnimationFrame",0,function(){let e=(0,t.useRefWithInit)(o.create).current;return(0,n.useOnMount)(e.disposeEffect),e}])},90219,e=>{"use strict";e.s(["ownerDocument",0,function(e){return e?.ownerDocument||document}])},33848,62372,72408,e=>{"use strict";var t=e.i(29315);e.s(["ownerWindow",()=>t.getWindow],33848),e.i(47167);var n=e.i(71645),r=e.i(977),o=e.i(57666);let a={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},i={...a,position:"fixed",top:0,left:0};e.s(["visuallyHidden",0,i],62372);var s=e.i(18050);let l=n.forwardRef(function(e,t){let[a,l]=n.useState();return(0,r.useIsoLayoutEffect)(()=>{o.isSafari&&l("button")},[]),(0,s.jsx)("span",{...e,ref:t,style:i,"aria-hidden":!a||void 0,tabIndex:0,role:a,"data-base-ui-focus-guard":""})});e.s(["FocusGuard",0,l],72408)},47857,494,e=>{"use strict";var t=e.i(29315),n=e.i(57666);let r="data-base-ui-focusable",o="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function a(e,n){if(!e||!n)return!1;let r=n.getRootNode?.();if(e.contains(n))return!0;if(r&&(0,t.isShadowRoot)(r)){let t=n;for(;t;){if(e===t)return!0;t=t.parentNode||t.host}}return!1}function i(e){return(0,t.isHTMLElement)(e)&&e.matches(o)}e.s(["ACTIVE_KEY",0,"active","ARROW_DOWN",0,"ArrowDown","ARROW_LEFT",0,"ArrowLeft","ARROW_RIGHT",0,"ArrowRight","ARROW_UP",0,"ArrowUp","FOCUSABLE_ATTRIBUTE",0,r,"SELECTED_KEY",0,"selected","TYPEABLE_SELECTOR",0,o],494),e.s(["activeElement",0,function(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t},"contains",0,a,"getFloatingFocusElement",0,function(e){return e?e.hasAttribute(r)?e:e.querySelector(`[${r}]`)||e:null},"getTarget",0,function(e){return"composedPath"in e?e.composedPath()[0]:e.target},"isEventTargetWithin",0,function(e,t){return null!=t&&("composedPath"in e?e.composedPath().includes(t):null!=e.target&&t.contains(e.target))},"isRootElement",0,function(e){return e.matches("html,body")},"isTargetInsideEnabledTrigger",0,function(e,n){if(!(0,t.isElement)(e))return!1;if(n.hasElement(e))return!e.hasAttribute("data-trigger-disabled");for(let[,t]of n.entries())if(a(t,e))return!t.hasAttribute("data-trigger-disabled");return!1},"isTypeableCombobox",0,function(e){return!!e&&"combobox"===e.getAttribute("role")&&i(e)},"isTypeableElement",0,i,"matchesFocusVisible",0,function(e){if(!e||n.isJSDOM)return!0;try{return e.matches(":focus-visible")}catch(e){return!0}}],47857)},82033,87612,59266,43084,43801,32652,98442,40684,7335,37692,16385,89429,51665,e=>{"use strict";var t=e.i(57666);function n(e){e.preventDefault(),e.stopPropagation()}e.s(["isClickLikeEvent",0,function(e){let t=e.type;return"click"===t||"mousedown"===t||"keydown"===t||"keyup"===t},"isMouseLikePointerType",0,function(e,t){let n=["mouse","pen"];return t||n.push("",void 0),n.includes(e)},"isReactEvent",0,function(e){return"nativeEvent"in e},"isVirtualClick",0,function(e){return""===e.pointerType&&!!e.isTrusted||(t.isAndroid&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)},"isVirtualPointerEvent",0,function(e){return!t.isJSDOM&&(!t.isAndroid&&0===e.width&&0===e.height||t.isAndroid&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&"mouse"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&"touch"===e.pointerType)},"stopEvent",0,n],82033),e.s(["getNodeAncestors",0,function(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n},"getNodeChildren",0,function e(t,n,r=!0){return t.filter(e=>e.parentId===n&&(!r||e.context?.open)).flatMap(n=>[n,...e(t,n.id,r)])}],87612);var r=e.i(97126),o=e.i(90219),a=e.i(47857);let i=()=>({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function s(e,t){let n=(0,r.tabbable)(e,i()),s=n.length;if(0===s)return;let l=(0,a.activeElement)((0,o.ownerDocument)(e)),u=n.indexOf(l);return n[-1===u?1===t?0:s-1:u+t]}function l(e){return s((0,o.ownerDocument)(e).body,1)||e}function u(e){return s((0,o.ownerDocument)(e).body,-1)||e}function c(e,t){if(!e)return null;let n=(0,r.tabbable)((0,o.ownerDocument)(e).body,i()),a=n.length;if(0===a)return null;let s=n.indexOf(e);return -1===s?null:n[(s+t+a)%a]}function d(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!(0,a.contains)(n,r)}function f(e){(0,r.tabbable)(e,i()).forEach(e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")})}function p(e){e.querySelectorAll("[data-tabindex]").forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute("tabindex",t):e.removeAttribute("tabindex")})}e.s(["disableFocusInside",0,f,"enableFocusInside",0,p,"getNextTabbable",0,l,"getPreviousTabbable",0,u,"getTabbableAfterElement",0,function(e){return c(e,1)},"getTabbableBeforeElement",0,function(e){return c(e,-1)},"getTabbableOptions",0,i,"isOutsideEvent",0,d],59266),e.i(47167);let g=["top","right","bottom","left"],m=g.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]),h=Math.min,v=Math.max,b=Math.round,y=Math.floor,x={left:"right",right:"left",bottom:"top",top:"bottom"};function E(e){return e.split("-")[0]}function w(e){return e.split("-")[1]}function S(e){return"x"===e?"y":"x"}function C(e){return"y"===e?"height":"width"}function R(e){let t=e[0];return"t"===t||"b"===t?"y":"x"}function T(e){return S(R(e))}function k(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}let D=["left","right"],O=["right","left"],I=["top","bottom"],A=["bottom","top"];function P(e){let t=E(e);return x[t]+e.slice(t.length)}e.s(["clamp",0,function(e,t,n){return v(e,h(t,n))},"createCoords",0,e=>({x:e,y:e}),"evaluate",0,function(e,t){return"function"==typeof e?e(t):e},"floor",0,y,"getAlignment",0,w,"getAlignmentAxis",0,T,"getAlignmentSides",0,function(e,t,n){void 0===n&&(n=!1);let r=w(e),o=T(e),a=C(o),i="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=P(i)),[i,P(i)]},"getAxisLength",0,C,"getExpandedPlacements",0,function(e){let t=P(e);return[k(e),t,k(t)]},"getOppositeAlignmentPlacement",0,k,"getOppositeAxis",0,S,"getOppositeAxisPlacements",0,function(e,t,n,r){let o=w(e),a=function(e,t,n){switch(e){case"top":case"bottom":if(n)return t?O:D;return t?D:O;case"left":case"right":return t?I:A;default:return[]}}(E(e),"start"===n,r);return o&&(a=a.map(e=>e+"-"+o),t&&(a=a.concat(a.map(k)))),a},"getOppositePlacement",0,P,"getPaddingObject",0,function(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}},"getSide",0,E,"getSideAxis",0,R,"max",0,v,"min",0,h,"placements",0,m,"rectToClientRect",0,function(e){let{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}},"round",0,b,"sides",0,g],43084);var N=e.i(29315),M=e.i(494);function L(e,t,n){return Math.floor(e/t)!==n}function j(e,t){return t<0||t>=e.current.length}function B(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:r,amount:o=1}={}){let a=t;do a+=n?-o:o;while(a>=0&&a<=e.current.length-1&&F(e,a,r))return a}function F(e,t,n){if("function"==typeof n?n(t):n?.includes(t)??!1)return!0;let r=e.current[t];return!!r&&(!W(r)||!n&&(r.hasAttribute("disabled")||"true"===r.getAttribute("aria-disabled")))}function W(e){return"none"!==(0,N.getComputedStyle)(e).display}function z(e){return`data-base-ui-${e}`}e.s(["createGridCellMap",0,function(e,t,n){let r=[],o=0;return e.forEach(({width:e,height:a},i)=>{let s=!1;for(n&&(o=0);!s;){let n=[];for(let r=0;r<e;r+=1)for(let e=0;e<a;e+=1)n.push(o+r+e*t);o%t+e<=t&&n.every(e=>null==r[e])?(n.forEach(e=>{r[e]=i}),s=!0):o+=1}}),[...r]},"findNonDisabledListIndex",0,B,"getGridCellIndexOfCorner",0,function(e,t,n,r,o){if(-1===e)return -1;let a=n.indexOf(e),i=t[e];switch(o){case"tl":return a;case"tr":if(!i)return a;return a+i.width-1;case"bl":if(!i)return a;return a+(i.height-1)*r;case"br":return n.lastIndexOf(e);default:return -1}},"getGridCellIndices",0,function(e,t){return t.flatMap((t,n)=>e.includes(t)?[n]:[])},"getGridNavigatedIndex",0,function(e,{event:t,orientation:r,loopFocus:o,rtl:a,cols:i,disabledIndices:s,minIndex:l,maxIndex:u,prevIndex:c,stopEvent:d=!1}){let f,p=c;if(t.key===M.ARROW_UP?f="up":t.key===M.ARROW_DOWN&&(f="down"),f){let r=[],a=[],g=!1,m=0;{let t=null,n=-1;e.current.forEach((e,o)=>{if(null==e)return;m+=1;let i=e.closest('[role="row"]');i&&(g=!0),(i!==t||-1===n)&&(t=i,r[n+=1]=[]),r[n].push(o),a[o]=n})}let h=!1,v=0;if(g)for(let e of r){let t=e.length;t>v&&(v=t),t!==i&&(h=!0)}let b=h&&m<e.current.length,x=v||i;d&&n(t);let E=(t=>{if(!h||-1===c)return;let n=a[c];if(null==n)return;let i=r[n].indexOf(c),l="up"===t?-1:1;for(let t=n+l,a=0;a<r.length;a+=1,t+=l){if(t<0||t>=r.length){if(!o||b)return;t=t<0?r.length-1:0}let n=r[t];for(let t=Math.min(i,n.length-1);t>=0;t-=1){let r=n[t];if(!F(e,r,s))return r}}})(f)??(t=>{if(!b||-1===c)return;let n=c%x,r="up"===t?-x:x,a=u-u%x,i=y(u/x)+1;for(let t=c-n+r,l=0;l<i;l+=1,t+=r){if(t<0||t>u){if(!o)return;t=t<0?a:0}let r=Math.min(t+x-1,u);for(let o=Math.min(t+n,r);o>=t;o-=1)if(!F(e,o,s))return o}})(f);if(void 0!==E)p=E;else if(-1===c)p="up"===f?u:l;else if(p=B(e,{startingIndex:c,amount:x,decrement:"up"===f,disabledIndices:s}),o){if("up"===f&&(c-x<l||p<0)){let e=c%x,t=u%x,n=u-(t-e);p=t===e?u:t>e?n:n-x}"down"===f&&c+x>u&&(p=B(e,{startingIndex:c%x-x,amount:x,disabledIndices:s}))}j(e,p)&&(p=c)}if("both"===r){let r=y(c/i);t.key===(a?M.ARROW_LEFT:M.ARROW_RIGHT)&&(d&&n(t),c%i!=i-1?(p=B(e,{startingIndex:c,disabledIndices:s}),o&&L(p,i,r)&&(p=B(e,{startingIndex:c-c%i-1,disabledIndices:s}))):o&&(p=B(e,{startingIndex:c-c%i-1,disabledIndices:s})),L(p,i,r)&&(p=c)),t.key===(a?M.ARROW_RIGHT:M.ARROW_LEFT)&&(d&&n(t),c%i!=0?(p=B(e,{startingIndex:c,decrement:!0,disabledIndices:s}),o&&L(p,i,r)&&(p=B(e,{startingIndex:c+(i-c%i),decrement:!0,disabledIndices:s}))):o&&(p=B(e,{startingIndex:c+(i-c%i),decrement:!0,disabledIndices:s})),L(p,i,r)&&(p=c));let l=y(u/i)===r;j(e,p)&&(p=o&&l?t.key===(a?M.ARROW_RIGHT:M.ARROW_LEFT)?u:B(e,{startingIndex:c-c%i-1,disabledIndices:s}):c)}return p},"getMaxListIndex",0,function(e,t){return B(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})},"getMinListIndex",0,function(e,t){return B(e,{disabledIndices:t})},"isElementVisible",0,W,"isIndexOutOfListBounds",0,j,"isListIndexDisabled",0,F],43801),e.s(["createAttribute",0,z],32652);let _=0;e.s(["enqueueFocus",0,function(e,t={}){let{preventScroll:n=!1,cancelPrevious:r=!0,sync:o=!1}=t;r&&cancelAnimationFrame(_);let a=()=>e?.focus({preventScroll:n});o?a():_=requestAnimationFrame(a)}],98442);let V={inert:new WeakMap,"aria-hidden":new WeakMap},Y="data-base-ui-inert",H={inert:new WeakSet,"aria-hidden":new WeakSet},$=new WeakMap,U=0,K=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=function e(t){return t?(0,N.isShadowRoot)(t)?t.host:e(t.parentNode):null}(t);return e.contains(n)?n:null}).filter(e=>null!=e),q=e=>{let t=new Set;return e.forEach(e=>{let n=e;for(;n&&!t.has(n);)t.add(n),n=n.parentNode}),t},X=(e,t,n)=>{let r=[],o=e=>{!e||n.has(e)||Array.from(e.children).forEach(e=>{"script"!==(0,N.getNodeName)(e)&&(t.has(e)?o(e):r.push(e))})};return o(e),r};e.s(["markOthers",0,function(e,t={}){let{ariaHidden:n=!1,inert:r=!1,mark:a=!0,markerIgnoreElements:i=[]}=t,s=(0,o.ownerDocument)(e[0]).body;return function(e,t,n,r,{mark:o=!0,markerIgnoreElements:a=[]}){let i=r?"inert":n?"aria-hidden":null,s=null,l=null,u=K(t,e),c=new Set(o?K(t,a):[]),d=o?X(t,q(u),new Set(u)).filter(e=>!c.has(e)):[],f=[],p=[];if(i){let e=V[i],n=H[i];l=n,s=e;let r=K(t,Array.from(t.querySelectorAll("[aria-live]"))),o=u.concat(r);X(t,q(o),new Set(o)).forEach(t=>{let r=t.getAttribute(i),o=null!==r&&"false"!==r,a=(e.get(t)||0)+1;e.set(t,a),f.push(t),1===a&&o&&n.add(t),o||t.setAttribute(i,"inert"===i?"":"true")})}return o&&d.forEach(e=>{let t=($.get(e)||0)+1;$.set(e,t),p.push(e),1===t&&e.setAttribute(Y,"")}),U+=1,()=>{s&&f.forEach(e=>{let t=(s.get(e)||0)-1;s.set(e,t),t||(!l?.has(e)&&i&&e.removeAttribute(i),l?.delete(e))}),o&&p.forEach(e=>{let t=($.get(e)||0)-1;$.set(e,t),t||e.removeAttribute(Y)}),(U-=1)||(V.inert=new WeakMap,V["aria-hidden"]=new WeakMap,H.inert=new WeakSet,H["aria-hidden"]=new WeakSet,$=new WeakMap)}}(e,s,n,r,{mark:a,markerIgnoreElements:i})}],40684);var G=e.i(71645),J=e.i(74080),Q=e.i(83799),Z=e.i(977),ee=e.i(76477),et=e.i(72408),en=e.i(5963),er=e.i(3404),eo=e.i(27601),ea=e.i(17514);let ei={clipPath:"inset(50%)",position:"fixed",top:0,left:0};e.s(["CLICK_TRIGGER_IDENTIFIER",0,"data-base-ui-click-trigger","DISABLED_TRANSITIONS_STYLE",0,{style:{transition:"none"}},"DROPDOWN_COLLISION_AVOIDANCE",0,{fallbackAxisSide:"none"},"PATIENT_CLICK_THRESHOLD",0,500,"POPUP_COLLISION_AVOIDANCE",0,{fallbackAxisSide:"end"},"TYPEAHEAD_RESET_MS",0,500,"ownerVisuallyHidden",0,ei],7335);var es=e.i(18050);let el=G.createContext(null),eu=()=>G.useContext(el),ec=z("portal"),ed=G.forwardRef(function(e,t){let{children:n,container:r,className:o,render:a,renderGuards:i,...s}=e,{portalNode:c,portalSubtree:g}=function(e={}){let{ref:t,container:n,componentProps:r=ea.EMPTY_OBJECT,elementProps:o}=e,a=(0,Q.useId)(),i=eu(),s=i?.portalNode,[l,u]=G.useState(null),[c,d]=G.useState(null),f=(0,ee.useStableCallback)(e=>{null!==e&&d(e)}),p=G.useRef(null);(0,Z.useIsoLayoutEffect)(()=>{if(null===n){p.current&&(p.current=null,d(null),u(null));return}if(null==a)return;let e=(n&&((0,N.isNode)(n)?n:n.current))??s??document.body;if(null==e){p.current&&(p.current=null,d(null),u(null));return}p.current!==e&&(p.current=e,d(null),u(e))},[n,s,a]);let g=(0,eo.useRenderElement)("div",r,{ref:[t,f],props:[{id:a,[ec]:""},o]});return{portalNode:c,portalSubtree:l&&g?J.createPortal(g,l):null}}({container:r,ref:t,componentProps:e,elementProps:s}),m=G.useRef(null),h=G.useRef(null),v=G.useRef(null),b=G.useRef(null),[y,x]=G.useState(null),E=y?.modal,w=y?.open,S="boolean"==typeof i?i:!!y&&!y.modal&&y.open&&!!c;G.useEffect(()=>{if(c&&!E)return c.addEventListener("focusin",e,!0),c.addEventListener("focusout",e,!0),()=>{c.removeEventListener("focusin",e,!0),c.removeEventListener("focusout",e,!0)};function e(e){c&&e.relatedTarget&&d(e)&&("focusin"===e.type?p:f)(c)}},[c,E]),G.useEffect(()=>{c&&!w&&p(c)},[w,c]);let C=G.useMemo(()=>({beforeOutsideRef:m,afterOutsideRef:h,beforeInsideRef:v,afterInsideRef:b,portalNode:c,setFocusManagerState:x}),[c]);return(0,es.jsxs)(G.Fragment,{children:[g,(0,es.jsxs)(el.Provider,{value:C,children:[S&&c&&(0,es.jsx)(et.FocusGuard,{"data-type":"outside",ref:m,onFocus:e=>{if(d(e,c))v.current?.focus();else{let e=u(y?y.domReference:null);e?.focus()}}}),S&&c&&(0,es.jsx)("span",{"aria-owns":c.id,style:ei}),c&&J.createPortal(n,c),S&&c&&(0,es.jsx)(et.FocusGuard,{"data-type":"outside",ref:h,onFocus:e=>{if(d(e,c))b.current?.focus();else{let t=l(y?y.domReference:null);t?.focus(),y?.closeOnFocusOut&&y?.onOpenChange(!1,(0,en.createChangeEventDetails)(er.REASONS.focusOut,e.nativeEvent))}}})]})]})});e.s(["FloatingPortal",0,ed,"usePortalContext",0,eu],37692);var ef=e.i(30628);function ep(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}e.s(["createEventEmitter",0,ep],16385);class eg{nodesRef={current:[]};events=ep();addNode(e){this.nodesRef.current.push(e)}removeNode(e){let t=this.nodesRef.current.findIndex(t=>t===e);-1!==t&&this.nodesRef.current.splice(t,1)}}e.s(["FloatingTreeStore",0,eg],89429);let em=G.createContext(null),eh=G.createContext(null),ev=()=>G.useContext(em)?.id||null,eb=e=>{let t=G.useContext(eh);return e??t};e.s(["FloatingNode",0,function(e){let{children:t,id:n}=e,r=ev();return(0,es.jsx)(em.Provider,{value:G.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})},"FloatingTree",0,function(e){let{children:t,externalTree:n}=e,r=(0,ef.useRefWithInit)(()=>n??new eg).current;return(0,es.jsx)(eh.Provider,{value:r,children:t})},"useFloatingNodeId",0,function(e){let t=(0,Q.useId)(),n=eb(e),r=ev();return(0,Z.useIsoLayoutEffect)(()=>{if(!t)return;let e={id:t,parentId:r};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,r]),t},"useFloatingParentNodeId",0,ev,"useFloatingTree",0,eb],51665)},19414,e=>{"use strict";e.s(["resolveRef",0,function(e){return null==e?e:"current"in e?e.current:e}])},88306,7,82664,77681,e=>{"use strict";var t,n,r=e.i(71645),o=e.i(97126),a=e.i(29315),i=e.i(26292),s=e.i(231),l=e.i(76477),u=e.i(977),c=e.i(66745),d=e.i(57666),f=e.i(47135),p=e.i(90219),g=e.i(33848),m=e.i(72408),h=e.i(47857),v=e.i(82033),b=e.i(87612),y=e.i(59266),x=e.i(43801),E=e.i(5963),w=e.i(3404),S=e.i(32652),C=e.i(98442),R=e.i(40684),T=e.i(37692),k=e.i(51665),D=e.i(7335),O=e.i(19414),I=e.i(18050);let A=[];function P(){A=A.filter(e=>e.deref()?.isConnected)}function N(){return P(),A[A.length-1]?.deref()}function M(e,t){if(!t.current.includes("floating")&&!e.getAttribute("role")?.includes("dialog"))return;let n=(0,y.getTabbableOptions)(),r=(0,o.focusable)(e,n).filter(e=>{let t=e.getAttribute("data-tabindex")||"";return(0,o.isTabbable)(e,n)||e.hasAttribute("data-tabindex")&&!t.startsWith("-")}),a=e.getAttribute("tabindex");t.current.includes("floating")||0===r.length?"0"!==a&&e.setAttribute("tabindex","0"):("-1"!==a||e.hasAttribute("data-tabindex")&&"-1"!==e.getAttribute("data-tabindex"))&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}e.s(["FloatingFocusManager",0,function(e){let{context:t,children:n,disabled:L=!1,initialFocus:j=!0,returnFocus:B=!0,restoreFocus:F=!1,modal:W=!0,closeOnFocusOut:z=!0,openInteractionType:_="",nextFocusableElement:V,previousFocusableElement:Y,beforeContentFocusGuardRef:H,externalTree:$,getInsideElements:U}=e,K="rootStore"in t?t.rootStore:t,q=K.useState("open"),X=K.useState("domReferenceElement"),G=K.useState("floatingElement"),{events:J,dataRef:Q}=K.context,Z=(0,l.useStableCallback)(()=>Q.current.floatingContext?.nodeId),ee=!1===j,et=(0,h.isTypeableCombobox)(X)&&ee,en=r.useRef(["content"]),er=(0,s.useValueAsRef)(j),eo=(0,s.useValueAsRef)(B),ea=(0,s.useValueAsRef)(_),ei=(0,k.useFloatingTree)($),es=(0,T.usePortalContext)(),el=r.useRef(!1),eu=r.useRef(!1),ec=r.useRef(!1),ed=r.useRef(-1),ef=r.useRef(""),ep=r.useRef(""),eg=r.useRef(null),em=r.useRef(null),eh=(0,i.useMergedRefs)(eg,H,es?.beforeInsideRef),ev=(0,i.useMergedRefs)(em,es?.afterInsideRef),eb=(0,c.useTimeout)(),ey=(0,c.useTimeout)(),ex=(0,f.useAnimationFrame)(),eE=null!=es,ew=(0,h.getFloatingFocusElement)(G),eS=(0,l.useStableCallback)((e=ew)=>e?(0,o.tabbable)(e,(0,y.getTabbableOptions)()):[]),eC=(0,l.useStableCallback)(()=>U?.().filter(e=>null!=e)??[]),eR=(0,l.useStableCallback)(e=>{let t=eS(e);return en.current.map(()=>t).filter(Boolean).flat()});r.useEffect(()=>{if(L||!W)return;function e(e){"Tab"===e.key&&(0,h.contains)(ew,(0,h.activeElement)((0,p.ownerDocument)(ew)))&&0===eS().length&&!et&&(0,v.stopEvent)(e)}let t=(0,p.ownerDocument)(ew);return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}},[L,X,ew,W,en,et,eS,eR]),r.useEffect(()=>{if(L||!q)return;let e=(0,p.ownerDocument)(ew);function t(){ec.current=!1}function n(e){let t=(0,h.getTarget)(e),n=eC();ec.current=!((0,h.contains)(G,t)||(0,h.contains)(X,t)||(0,h.contains)(es?.portalNode,t)||n.some(e=>e===t||(0,h.contains)(e,t))),ep.current=e.pointerType||"keyboard",t?.closest(`[${D.CLICK_TRIGGER_IDENTIFIER}]`)&&(eu.current=!0)}function r(){ep.current="keyboard"}return e.addEventListener("pointerdown",n,!0),e.addEventListener("pointerup",t,!0),e.addEventListener("pointercancel",t,!0),e.addEventListener("keydown",r,!0),()=>{e.removeEventListener("pointerdown",n,!0),e.removeEventListener("pointerup",t,!0),e.removeEventListener("pointercancel",t,!0),e.removeEventListener("keydown",r,!0)}},[L,G,X,ew,q,es,eC]),r.useEffect(()=>{if(L||!z)return;let e=(0,p.ownerDocument)(ew);function t(){eu.current=!0,ey.start(0,()=>{eu.current=!1})}function n(e){let t=(0,h.getTarget)(e),n=eS().indexOf(t);-1!==n&&(ed.current=n)}function r(t){let n=t.relatedTarget,r=t.currentTarget,o=(0,h.getTarget)(t);queueMicrotask(()=>{let i=Z(),s=K.context.triggerElements,l=eC(),u=n?.hasAttribute((0,S.createAttribute)("focus-guard"))&&[eg.current,em.current,es?.beforeInsideRef.current,es?.afterInsideRef.current,es?.beforeOutsideRef.current,es?.afterOutsideRef.current,(0,O.resolveRef)(Y),(0,O.resolveRef)(V)].includes(n),c=!((0,h.contains)(X,n)||(0,h.contains)(G,n)||(0,h.contains)(n,G)||(0,h.contains)(es?.portalNode,n)||l.some(e=>e===n||(0,h.contains)(e,n))||null!=n&&s.hasElement(n)||s.hasMatchingElement(e=>(0,h.contains)(e,n))||u||ei&&((0,b.getNodeChildren)(ei.nodesRef.current,i).find(e=>(0,h.contains)(e.context?.elements.floating,n)||(0,h.contains)(e.context?.elements.domReference,n))||(0,b.getNodeAncestors)(ei.nodesRef.current,i).find(e=>[e.context?.elements.floating,(0,h.getFloatingFocusElement)(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(r===X&&ew&&M(ew,en),F&&r!==X&&!(o&&o.isConnected&&("function"==typeof o.checkVisibility?o.checkVisibility():(0,x.isElementVisible)(o)))&&(0,h.activeElement)(e)===e.body){if((0,a.isHTMLElement)(ew)&&(ew.focus(),"popup"===F))return void ex.request(()=>{ew.focus()});let e=ed.current,t=eS(),n=t[e]||t[t.length-1]||ew;(0,a.isHTMLElement)(n)&&n.focus()}if(Q.current.insideReactTree){Q.current.insideReactTree=!1;return}(et||!W)&&n&&c&&!eu.current&&(et||n!==N())&&(el.current=!0,K.setOpen(!1,(0,E.createChangeEventDetails)(w.REASONS.focusOut,t)))})}function o(){ec.current||(Q.current.insideReactTree=!0,eb.start(0,()=>{Q.current.insideReactTree=!1}))}let i=(0,a.isHTMLElement)(X)?X:null,s=[];if(G||i)return i&&(i.addEventListener("focusout",r),i.addEventListener("pointerdown",t),s.push(()=>{i.removeEventListener("focusout",r),i.removeEventListener("pointerdown",t)})),G&&(G.addEventListener("focusin",n),G.addEventListener("focusout",r),es&&(G.addEventListener("focusout",o,!0),s.push(()=>{G.removeEventListener("focusout",o,!0)})),s.push(()=>{G.removeEventListener("focusin",n),G.removeEventListener("focusout",r)})),()=>{s.forEach(e=>{e()})}},[L,X,G,ew,W,ei,es,K,z,F,eS,et,Z,en,Q,eb,ey,ex,V,Y,eC]),r.useEffect(()=>{if(L||!G||!q)return;let e=Array.from(es?.portalNode?.querySelectorAll(`[${(0,S.createAttribute)("portal")}]`)||[]),t=ei?(0,b.getNodeAncestors)(ei.nodesRef.current,Z()):[],n=t.find(e=>(0,h.isTypeableCombobox)(e.context?.elements.domReference||null))?.context?.elements.domReference,r=[G,...e,eg.current,em.current,es?.beforeOutsideRef.current,es?.afterOutsideRef.current,...eC(),n,(0,O.resolveRef)(Y),(0,O.resolveRef)(V),et?X:null].filter(e=>null!=e),o=(0,R.markOthers)(r,{ariaHidden:W||et,mark:!1}),a=[G,...e].filter(e=>null!=e),i=(0,R.markOthers)(a);return()=>{i(),o()}},[q,L,X,G,W,en,es,et,ei,Z,V,Y,eC]),(0,u.useIsoLayoutEffect)(()=>{if(!q||L||!(0,a.isHTMLElement)(ew))return;let e=(0,p.ownerDocument)(ew),t=(0,h.activeElement)(e);queueMicrotask(()=>{let e,n=eR(ew),r=er.current,o="function"==typeof r?r(ea.current||""):r;void 0===o||!1===o||(e=(e=!0===o||null===o?n[0]||ew:(0,O.resolveRef)(o))||n[0]||ew,(0,h.contains)(ew,t)||(0,C.enqueueFocus)(e,{preventScroll:e===ew}))})},[L,q,ew,ee,eR,er,ea]),(0,u.useIsoLayoutEffect)(()=>{var e;if(L||!ew)return;let t=(0,p.ownerDocument)(ew);function n(e){var t,n;let r;if(e.open||(t=e.nativeEvent,n=ep.current,r=(0,g.ownerWindow)(t.target),ef.current=t instanceof r.KeyboardEvent?"keyboard":t instanceof r.FocusEvent?n||"keyboard":"pointerType"in t?t.pointerType||"keyboard":"touches"in t?"touch":t instanceof r.MouseEvent?n||(0===t.detail?"keyboard":"mouse"):""),e.reason===w.REASONS.triggerHover&&"mouseleave"===e.nativeEvent.type&&(el.current=!0),e.reason===w.REASONS.outsidePress)if(e.nested)el.current=!1;else if((0,v.isVirtualClick)(e.nativeEvent)||(0,v.isVirtualPointerEvent)(e.nativeEvent))el.current=!1;else{let e=!1;document.createElement("div").focus({get preventScroll(){return e=!0,!1}}),e?el.current=!1:el.current=!0}}return e=(0,h.activeElement)(t),P(),e&&"body"!==(0,a.getNodeName)(e)&&(A.push(new WeakRef(e)),A.length>20&&(A=A.slice(-20))),J.on("openchange",n),()=>{J.off("openchange",n);let e=(0,h.activeElement)(t),r=eC(),i=(0,h.contains)(G,e)||r.some(t=>t===e||(0,h.contains)(t,e))||ei&&(0,b.getNodeChildren)(ei.nodesRef.current,Z(),!1).some(t=>(0,h.contains)(t.context?.elements.floating,e)),s=function(){let e=eo.current,t="function"==typeof e?e(ef.current):e;if(void 0===t||!1===t)return null;if(null===t&&(t=!0),"boolean"==typeof t){let e=X||N();return e&&e.isConnected?e:null}let n=X||N();return(0,O.resolveRef)(t)||n||null}();queueMicrotask(()=>{let n=function(e){if(!e)return null;let t=(0,y.getTabbableOptions)();return(0,o.isTabbable)(e,t)?e:(0,o.tabbable)(e,t)[0]||e}(s),r="boolean"!=typeof eo.current;eo.current&&!el.current&&(0,a.isHTMLElement)(n)&&(r||n===e||e===t.body||i)&&n.focus({preventScroll:!0}),el.current=!1})}},[L,G,ew,eo,Q,J,ei,X,Z,eC]),(0,u.useIsoLayoutEffect)(()=>{if(!d.isWebKit||q||!G)return;let e=(0,h.activeElement)((0,p.ownerDocument)(G));(0,a.isHTMLElement)(e)&&(0,h.isTypeableElement)(e)&&(0,h.contains)(G,e)&&e.blur()},[q,G]),(0,u.useIsoLayoutEffect)(()=>{if(!L&&es)return es.setFocusManagerState({modal:W,closeOnFocusOut:z,open:q,onOpenChange:K.setOpen,domReference:X}),()=>{es.setFocusManagerState(null)}},[L,es,W,q,K,z,X]),(0,u.useIsoLayoutEffect)(()=>{if(!L&&ew)return M(ew,en),()=>{queueMicrotask(P)}},[L,ew,en]);let eT=!L&&(!W||!et)&&(eE||W);return(0,I.jsxs)(r.Fragment,{children:[eT&&(0,I.jsx)(m.FocusGuard,{"data-type":"inside",ref:eh,onFocus:e=>{if(W){let e=eR();(0,C.enqueueFocus)(e[e.length-1])}else if(es?.portalNode)if(el.current=!1,(0,y.isOutsideEvent)(e,es.portalNode)){let e=(0,y.getNextTabbable)(X);e?.focus()}else(0,O.resolveRef)(Y??es.beforeOutsideRef)?.focus()}}),n,eT&&(0,I.jsx)(m.FocusGuard,{"data-type":"inside",ref:ev,onFocus:e=>{if(W)(0,C.enqueueFocus)(eR()[0]);else if(es?.portalNode)if(z&&(el.current=!0),(0,y.isOutsideEvent)(e,es.portalNode)){let e=(0,y.getPreviousTabbable)(X);e?.focus()}else(0,O.resolveRef)(V??es.afterOutsideRef)?.focus()}})]})}],88306);let L=((t={}).nestedDialogs="--nested-dialogs",t);e.s(["DialogPopupCssVars",0,L],7);var j=e.i(83590);let B=((n={})[n.open=j.CommonPopupDataAttributes.open]="open",n[n.closed=j.CommonPopupDataAttributes.closed]="closed",n[n.startingStyle=j.CommonPopupDataAttributes.startingStyle]="startingStyle",n[n.endingStyle=j.CommonPopupDataAttributes.endingStyle]="endingStyle",n.nested="data-nested",n.nestedDialogOpen="data-nested-dialog-open",n);e.s(["DialogPopupDataAttributes",0,B],82664),e.i(47167);var F=e.i(67805);let W=r.createContext(void 0);e.s(["DialogPortalContext",0,W,"useDialogPortalContext",0,function(){let e=r.useContext(W);if(void 0===e)throw Error((0,F.default)(26));return e}],77681)},89269,77817,e=>{"use strict";var t=e.i(71645),n=e.i(76477),r=e.i(74080),o=e.i(47135),a=e.i(19414),i=e.i(84759);function s(e,t=!1,l=!0){let u=(0,o.useAnimationFrame)();return(0,n.useStableCallback)((n,o=null)=>{function s(){r.flushSync(n)}u.cancel();let c=(0,a.resolveRef)(e);if(null!=c)if("function"!=typeof c.getAnimations||globalThis.BASE_UI_ANIMATIONS_DISABLED)n();else{function d(){Promise.all(c.getAnimations().map(e=>e.finished)).then(()=>{o?.aborted||s()}).catch(()=>{let e=c.getAnimations();if(l){if(o?.aborted)return;s()}else e.length>0&&e.some(e=>e.pending||"finished"!==e.playState)&&d()})}if(t)return void function(){let e=i.TransitionStatusDataAttributes.startingStyle;if(!c.hasAttribute(e))return u.request(d);let t=new MutationObserver(()=>{c.hasAttribute(e)||(t.disconnect(),d())});t.observe(c,{attributes:!0,attributeFilter:[e]}),o?.addEventListener("abort",()=>t.disconnect(),{once:!0})}();u.request(d)}})}e.s(["useAnimationsFinished",0,s],77817),e.s(["useOpenChangeComplete",0,function(e){let{enabled:r=!0,open:o,ref:a,onComplete:i}=e,l=(0,n.useStableCallback)(i),u=s(a,o,!1);t.useEffect(()=>{if(!r)return;let e=new AbortController;return u(l,e.signal),()=>{e.abort()}},[r,o,l,u])}],89269)},55838,(e,t,n)=>{"use strict";var r=e.r(71645),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var c="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,c=r[1];return s(function(){o.value=n,o.getSnapshot=t,u(o)&&c({inst:o})},[e,n,t]),i(function(){return u(o)&&c({inst:o}),e(function(){u(o)&&c({inst:o})})},[e]),l(n),n};n.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},2239,(e,t,n)=>{"use strict";t.exports=e.r(55838)},52822,(e,t,n)=>{"use strict";var r=e.r(71645),o=e.r(2239),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=o.useSyncExternalStore,s=r.useRef,l=r.useEffect,u=r.useMemo,c=r.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var d=s(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var p=i(e,(d=u(function(){function e(e){if(!l){if(l=!0,i=e,e=r(e),void 0!==o&&f.hasValue){var t=f.value;if(o(t,e))return s=t}return s=e}if(t=s,a(i,e))return t;var n=r(e);return void 0!==o&&o(t,n)?(i=e,t):(i=e,s=n)}var i,s,l=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,r,o]))[0],d[1]);return l(function(){f.hasValue=!0,f.value=p},[p]),c(p),p}},30224,(e,t,n)=>{"use strict";t.exports=e.r(52822)},96918,92238,58130,36893,38449,58509,66196,33605,89633,26665,83921,3851,98263,24019,6157,50091,e=>{"use strict";let t;e.i(47167);var n=e.i(71645),r=e.i(88306),o=e.i(13104),a=e.i(27601),i=e.i(83590),s=e.i(84759),l=e.i(7),u=e.i(82664),c=e.i(77681),d=e.i(89269);let f="ArrowUp",p="ArrowDown",g="ArrowLeft",m="ArrowRight";[...new Set([...new Set([g,m]),...new Set([f,p])])];let h=new Set([f,p,g,m,"Home","End"]);e.s(["COMPOSITE_KEYS",0,h],92238);var v=e.i(18050);let b={...i.popupStateMapping,...s.transitionStatusMapping,nestedDialogOpen:e=>e?{[u.DialogPopupDataAttributes.nestedDialogOpen]:""}:null},y=n.forwardRef(function(e,t){let{className:n,finalFocus:i,initialFocus:s,render:u,...f}=e,{store:p}=(0,o.useDialogRootContext)(),g=p.useState("descriptionElementId"),m=p.useState("disablePointerDismissal"),y=p.useState("floatingRootContext"),x=p.useState("popupProps"),E=p.useState("modal"),w=p.useState("mounted"),S=p.useState("nested"),C=p.useState("nestedOpenDialogCount"),R=p.useState("open"),T=p.useState("openMethod"),k=p.useState("titleElementId"),D=p.useState("transitionStatus"),O=p.useState("role");(0,c.useDialogPortalContext)(),(0,d.useOpenChangeComplete)({open:R,ref:p.context.popupRef,onComplete(){R&&p.context.onOpenChangeComplete?.(!0)}});let I=void 0===s?function(e){return"touch"!==e||p.context.popupRef.current}:s,A=(0,a.useRenderElement)("div",e,{state:{open:R,nested:S,transitionStatus:D,nestedDialogOpen:C>0},props:[x,{"aria-labelledby":k??void 0,"aria-describedby":g??void 0,role:O,tabIndex:-1,hidden:!w,onKeyDown(e){h.has(e.key)&&e.stopPropagation()},style:{[l.DialogPopupCssVars.nestedDialogs]:C}},f],ref:[t,p.context.popupRef,p.useStateSetter("popupElement")],stateAttributesMapping:b});return(0,v.jsx)(r.FloatingFocusManager,{context:y,openInteractionType:T,disabled:!w,closeOnFocusOut:!m,initialFocus:I,returnFocus:i,modal:!1!==E,restoreFocus:"popup",children:A})});e.s(["DialogPopup",0,y],96918);var x=e.i(35423);function E(e){return(0,x.isReactVersionAtLeast)(19)?e:e?"true":void 0}e.s(["inertValue",0,E],58130);var w=e.i(37692);let S=n.forwardRef(function(e,t){let n,{cutout:r,...o}=e;if(r){let e=r?.getBoundingClientRect();n=`polygon(
2
- 0% 0%,
3
- 100% 0%,
4
- 100% 100%,
5
- 0% 100%,
6
- 0% 0%,
7
- ${e.left}px ${e.top}px,
8
- ${e.left}px ${e.bottom}px,
9
- ${e.right}px ${e.bottom}px,
10
- ${e.right}px ${e.top}px,
11
- ${e.left}px ${e.top}px
12
- )`}return(0,v.jsx)("div",{ref:t,role:"presentation","data-base-ui-inert":"",...o,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:n}})});e.s(["InternalBackdrop",0,S],36893);let C=n.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:a}=(0,o.useDialogRootContext)(),i=a.useState("mounted"),s=a.useState("modal"),l=a.useState("open");return i||n?(0,v.jsx)(c.DialogPortalContext.Provider,{value:n,children:(0,v.jsxs)(w.FloatingPortal,{ref:t,...r,children:[i&&!0===s&&(0,v.jsx)(S,{ref:a.context.internalBackdropRef,inert:E(!l)}),e.children]})}):null});e.s(["DialogPortal",0,C],38449),e.s(["useOnFirstRender",0,function(e){let t=n.useRef(!0);t.current&&(t.current=!1,e())}],58509);var R=e.i(29315),T=e.i(57666),k=e.i(90219),D=e.i(33848),O=e.i(977),I=e.i(66745),A=e.i(47135),P=e.i(17514);let N={},M={},L="";class j{lockCount=0;restore=null;timeoutLock=I.Timeout.create();timeoutUnlock=I.Timeout.create();acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){let t,n,r,o,a;if(0===this.lockCount||null!==this.restore)return;let i=(0,k.ownerDocument)(e).documentElement,s=(0,D.ownerWindow)(i).getComputedStyle(i).overflowY;if("hidden"===s||"clip"===s){this.restore=P.NOOP;return}let l=T.isIOS||!function(e){if("u"<typeof document)return!1;let t=(0,k.ownerDocument)(e);return(0,D.ownerWindow)(t).innerWidth-t.documentElement.clientWidth>0}(e);this.restore=l?(n=(t=(0,k.ownerDocument)(e)).documentElement,r=t.body,a={overflowY:(o=(0,R.isOverflowElement)(n)?n:r).style.overflowY,overflowX:o.style.overflowX},Object.assign(o.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(o.style,a)}):function(e){let t=(0,k.ownerDocument)(e),n=t.documentElement,r=t.body,o=(0,D.ownerWindow)(n),a=0,i=0,s=!1,l=A.AnimationFrame.create();if(T.isWebKit&&(o.visualViewport?.scale??1)!==1)return()=>{};function u(){let t=o.getComputedStyle(n),l=o.getComputedStyle(r),u=(t.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";a=n.scrollTop,i=n.scrollLeft,N={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},L=n.style.scrollBehavior,M={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let c=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f="scroll"===t.overflowY||"scroll"===l.overflowY,p="scroll"===t.overflowX||"scroll"===l.overflowX,g=Math.max(0,o.innerWidth-r.clientWidth),m=Math.max(0,o.innerHeight-r.clientHeight),h=parseFloat(l.marginTop)+parseFloat(l.marginBottom),v=parseFloat(l.marginLeft)+parseFloat(l.marginRight),b=(0,R.isOverflowElement)(n)?n:r;if(s=function(e){if(!("u">typeof CSS&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||"u"<typeof document)return!1;let t=(0,k.ownerDocument)(e),n=t.documentElement,r=t.body,o=(0,R.isOverflowElement)(n)?n:r,a=o.style.overflowY,i=n.style.scrollbarGutter;n.style.scrollbarGutter="stable",o.style.overflowY="scroll";let s=o.offsetWidth;o.style.overflowY="hidden";let l=o.offsetWidth;return o.style.overflowY=a,n.style.scrollbarGutter=i,s===l}(e)){n.style.scrollbarGutter=u,b.style.overflowY="hidden",b.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:u,overflowY:"hidden",overflowX:"hidden"}),(c||f)&&(n.style.overflowY="scroll"),(d||p)&&(n.style.overflowX="scroll"),Object.assign(r.style,{position:"relative",height:h||m?`calc(100dvh - ${h+m}px)`:"100dvh",width:v||g?`calc(100vw - ${v+g}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),r.scrollTop=a,r.scrollLeft=i,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function c(){Object.assign(n.style,N),Object.assign(r.style,M),s||(n.scrollTop=a,n.scrollLeft=i,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=L)}function d(){c(),l.request(u)}return u(),o.addEventListener("resize",d),()=>{l.cancel(),c(),"function"==typeof o.removeEventListener&&o.removeEventListener("resize",d)}}(e)}}let B=new j;e.s(["useScrollLock",0,function(e=!0,t=null){(0,O.useIsoLayoutEffect)(()=>{if(e)return B.acquire(t)},[e,t])}],66196);var F=e.i(76477),W=e.i(47857),z=e.i(82033),_=e.i(87612),V=e.i(51665),Y=e.i(5963),H=e.i(3404),$=e.i(32652);let U={intentional:"onClick",sloppy:"onPointerDown"};function K(){return!1}e.s(["useDismiss",0,function(e,t={}){let r="rootStore"in e?e.rootStore:e,o=r.useState("open"),a=r.useState("floatingElement"),{dataRef:i}=r.context,{enabled:s=!0,escapeKey:l=!0,outsidePress:u=!0,outsidePressEvent:c="sloppy",referencePress:d=K,referencePressEvent:f="sloppy",bubbles:p,externalTree:g}=t,m=(0,V.useFloatingTree)(g),h=(0,F.useStableCallback)("function"==typeof u?u:()=>!1),v="function"==typeof u?h:u,b=!1!==v,y=(0,F.useStableCallback)(()=>c),x=n.useRef(!1),E=n.useRef(!1),w=n.useRef(!1),{escapeKey:S,outsidePress:C}={escapeKey:"boolean"==typeof p?p:p?.escapeKey??!1,outsidePress:"boolean"==typeof p?p:p?.outsidePress??!0},T=n.useRef(null),D=(0,I.useTimeout)(),O=(0,I.useTimeout)(),A=(0,F.useStableCallback)(()=>{O.clear(),i.current.insideReactTree=!1}),P=n.useRef(!1),N=n.useRef(""),M=(0,F.useStableCallback)(d),L=(0,F.useStableCallback)(e=>{if(!o||!s||!l||"Escape"!==e.key||P.current)return;let t=i.current.floatingContext?.nodeId,n=m?(0,_.getNodeChildren)(m.nodesRef.current,t):[];if(!S&&n.length>0){let e=!0;if(n.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__escapeKeyBubbles&&(e=!1)}),!e)return}let a=(0,z.isReactEvent)(e)?e.nativeEvent:e,u=(0,Y.createChangeEventDetails)(H.REASONS.escapeKey,a);r.setOpen(!1,u),S||u.isPropagationAllowed||e.stopPropagation()}),j=(0,F.useStableCallback)(()=>{i.current.insideReactTree=!0,O.start(0,A)});n.useEffect(()=>{if(!o||!s)return;i.current.__escapeKeyBubbles=S,i.current.__outsidePressBubbles=C;let e=new I.Timeout,t=new I.Timeout;function n(){e.clear(),P.current=!0}function u(){e.start(5*!!(0,R.isWebKit)(),()=>{P.current=!1})}function c(){w.current=!0,t.start(0,()=>{w.current=!1})}function d(){x.current=!1,E.current=!1}function f(){let e=N.current,t=y(),n="function"==typeof t?t():t;return"string"==typeof n?n:n["pen"!==e&&e?e:"mouse"]}function p(e){let t=i.current.floatingContext?.nodeId,n=m&&(0,_.getNodeChildren)(m.nodesRef.current,t).some(t=>(0,W.isEventTargetWithin)(e,t.context?.elements.floating));return(0,W.isEventTargetWithin)(e,r.select("floatingElement"))||(0,W.isEventTargetWithin)(e,r.select("domReferenceElement"))||n}function g(e){let n;if("intentional"===(n=f())&&"click"!==e.type||"sloppy"===n&&"click"===e.type||i.current.insideReactTree)return void A();let o=(0,W.getTarget)(e),a=`[${(0,$.createAttribute)("inert")}]`,s=Array.from((0,k.ownerDocument)(r.select("floatingElement")).querySelectorAll(a)),l=(0,R.isElement)(o)?o.getRootNode():null;(0,R.isShadowRoot)(l)&&(s=s.concat(Array.from(l.querySelectorAll(a))));let u=r.context.triggerElements;if(o&&(u.hasElement(o)||u.hasMatchingElement(e=>(0,W.contains)(e,o))))return;let c=(0,R.isElement)(o)?o:null;for(;c&&!(0,R.isLastTraversableNode)(c);){let e=(0,R.getParentNode)(c);if((0,R.isLastTraversableNode)(e)||!(0,R.isElement)(e))break;c=e}if(s.length&&(0,R.isElement)(o)&&!(0,W.isRootElement)(o)&&!(0,W.contains)(o,r.select("floatingElement"))&&s.every(e=>!(0,W.contains)(c,e)))return;if((0,R.isHTMLElement)(o)&&!("touches"in e)){let t=(0,R.isLastTraversableNode)(o),n=(0,R.getComputedStyle)(o),r=/auto|scroll/,a=t||r.test(n.overflowX),i=t||r.test(n.overflowY),s=a&&o.clientWidth>0&&o.scrollWidth>o.clientWidth,l=i&&o.clientHeight>0&&o.scrollHeight>o.clientHeight,u="rtl"===n.direction,c=l&&(u?e.offsetX<=o.offsetWidth-o.clientWidth:e.offsetX>o.clientWidth),d=s&&e.offsetY>o.clientHeight;if(c||d)return}if(p(e))return;if("intentional"===f()&&w.current){t.clear(),w.current=!1;return}if("function"==typeof v&&!v(e))return;let d=i.current.floatingContext?.nodeId,g=m?(0,_.getNodeChildren)(m.nodesRef.current,d):[];if(g.length>0){let e=!0;if(g.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__outsidePressBubbles&&(e=!1)}),!e)return}r.setOpen(!1,(0,Y.createChangeEventDetails)(H.REASONS.outsidePress,e)),A()}function h(e){N.current="touch";let t=(0,W.getTarget)(e);t?.addEventListener(e.type,function n(){!function(e){if("sloppy"!==f()||!r.select("open")||!s||(0,W.isEventTargetWithin)(e,r.select("floatingElement"))||(0,W.isEventTargetWithin)(e,r.select("domReferenceElement")))return;let t=e.touches[0];t&&(T.current={startTime:Date.now(),startX:t.clientX,startY:t.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},D.start(1e3,()=>{T.current&&(T.current.dismissOnTouchEnd=!1,T.current.dismissOnMouseDown=!1)}))}(e),t?.removeEventListener(e.type,n)})}function O(e){if(D.clear(),"pointerdown"===e.type&&(N.current=e.pointerType),"mousedown"===e.type&&T.current&&!T.current.dismissOnMouseDown)return;let t=(0,W.getTarget)(e);t?.addEventListener(e.type,function n(){if("pointerdown"===e.type)"sloppy"!==f()||"touch"===e.pointerType||!r.select("open")||!s||(0,W.isEventTargetWithin)(e,r.select("floatingElement"))||(0,W.isEventTargetWithin)(e,r.select("domReferenceElement"))||g(e);else g(e);t?.removeEventListener(e.type,n)})}function M(e){if(!x.current)return;let n=E.current;if(d(),"intentional"===f()){if("pointercancel"===e.type){n&&c();return}p(e)||(n?c():("function"!=typeof v||v(e))&&(t.clear(),w.current=!0,A()))}}function j(e){let t=(0,W.getTarget)(e);t?.addEventListener(e.type,function n(){!function(e){if("sloppy"!==f()||!T.current||(0,W.isEventTargetWithin)(e,r.select("floatingElement"))||(0,W.isEventTargetWithin)(e,r.select("domReferenceElement")))return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-T.current.startX),o=Math.abs(t.clientY-T.current.startY),a=Math.sqrt(n*n+o*o);a>5&&(T.current.dismissOnTouchEnd=!0),a>10&&(g(e),D.clear(),T.current=null)}(e),t?.removeEventListener(e.type,n)})}function B(e){let t=(0,W.getTarget)(e);t?.addEventListener(e.type,function n(){"sloppy"!==f()||!T.current||(0,W.isEventTargetWithin)(e,r.select("floatingElement"))||(0,W.isEventTargetWithin)(e,r.select("domReferenceElement"))||(T.current.dismissOnTouchEnd&&g(e),D.clear(),T.current=null),t?.removeEventListener(e.type,n)})}let F=(0,k.ownerDocument)(a);return l&&(F.addEventListener("keydown",L),F.addEventListener("compositionstart",n),F.addEventListener("compositionend",u)),b&&(F.addEventListener("click",O,!0),F.addEventListener("pointerdown",O,!0),F.addEventListener("pointerup",M,!0),F.addEventListener("pointercancel",M,!0),F.addEventListener("mousedown",O,!0),F.addEventListener("mouseup",M,!0),F.addEventListener("touchstart",h,!0),F.addEventListener("touchmove",j,!0),F.addEventListener("touchend",B,!0)),()=>{l&&(F.removeEventListener("keydown",L),F.removeEventListener("compositionstart",n),F.removeEventListener("compositionend",u)),b&&(F.removeEventListener("click",O,!0),F.removeEventListener("pointerdown",O,!0),F.removeEventListener("pointerup",M,!0),F.removeEventListener("pointercancel",M,!0),F.removeEventListener("mousedown",O,!0),F.removeEventListener("mouseup",M,!0),F.removeEventListener("touchstart",h,!0),F.removeEventListener("touchmove",j,!0),F.removeEventListener("touchend",B,!0)),e.clear(),t.clear(),d(),w.current=!1}},[i,a,l,b,v,o,s,S,C,L,A,y,m,r,D]),n.useEffect(A,[v,A]);let B=n.useMemo(()=>({onKeyDown:L,[U[f]]:e=>{M()&&r.setOpen(!1,(0,Y.createChangeEventDetails)(H.REASONS.triggerPress,e.nativeEvent))},..."intentional"!==f&&{onClick(e){M()&&r.setOpen(!1,(0,Y.createChangeEventDetails)(H.REASONS.triggerPress,e.nativeEvent))}}}),[L,r,f,M]),q=(0,F.useStableCallback)(e=>{if(!o||!s||0!==e.button)return;let t=(0,W.getTarget)(e.nativeEvent);(0,W.contains)(r.select("floatingElement"),t)&&(x.current||(x.current=!0,E.current=!1))}),X=(0,F.useStableCallback)(e=>{!o||!s||(e.defaultPrevented||e.nativeEvent.defaultPrevented)&&x.current&&(E.current=!0)}),G=n.useMemo(()=>({onKeyDown:L,onPointerDown:X,onMouseDown:X,onClickCapture:j,onMouseDownCapture(e){j(),q(e)},onPointerDownCapture(e){j(),q(e)},onMouseUpCapture:j,onTouchEndCapture:j,onTouchMoveCapture:j}),[L,j,q,X]);return n.useMemo(()=>s?{reference:B,floating:G,trigger:B}:{},[s,B,G])}],33605);var q=e.i(494);function X(e,t,n){let r=new Map,o="item"===n,a={};for(let t in"floating"===n&&(a.tabIndex=-1,a[q.FOCUSABLE_ATTRIBUTE]=""),e)o&&e&&(t===q.ACTIVE_KEY||t===q.SELECTED_KEY)||(a[t]=e[t]);for(let i=0;i<t.length;i+=1){let s,l=t[i]?.[n];(s="function"==typeof l?e?l(e):null:l)&&G(a,s,o,r)}return G(a,e,o,r),a}function G(e,t,n,r){for(let o in t){let a=t[o];n&&(o===q.ACTIVE_KEY||o===q.SELECTED_KEY)||(o.startsWith("on")?(r.has(o)||r.set(o,[]),"function"==typeof a&&(r.get(o)?.push(a),e[o]=(...e)=>r.get(o)?.map(t=>t(...e)).find(e=>void 0!==e))):e[o]=a)}}e.s(["useInteractions",0,function(e=[]){let t=e.map(e=>e?.reference),r=e.map(e=>e?.floating),o=e.map(e=>e?.item),a=e.map(e=>e?.trigger),i=n.useCallback(t=>X(t,e,"reference"),t),s=n.useCallback(t=>X(t,e,"floating"),r),l=n.useCallback(t=>X(t,e,"item"),o),u=n.useCallback(t=>X(t,e,"trigger"),a);return n.useMemo(()=>({getReferenceProps:i,getFloatingProps:s,getItemProps:l,getTriggerProps:u}),[i,s,l,u])}],89633);var J=e.i(83799);let Q=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);e.s(["useRole",0,function(e,t={}){let r="rootStore"in e?e.rootStore:e,o=r.useState("open"),a=r.useState("floatingId"),i=r.useState("domReferenceElement"),s=r.useState("floatingElement"),{role:l="dialog"}=t,u=(0,J.useId)(),c=i?.id||u,d=n.useMemo(()=>(0,W.getFloatingFocusElement)(s)?.id||a,[s,a]),f=Q.get(l)??l,p=null!=(0,V.useFloatingParentNodeId)(),g=n.useMemo(()=>"tooltip"===f||"label"===l?P.EMPTY_OBJECT:{"aria-haspopup":"alertdialog"===f?"dialog":f,"aria-expanded":"false",..."listbox"===f&&{role:"combobox"},..."menu"===f&&p&&{role:"menuitem"},..."select"===l&&{"aria-autocomplete":"none"},..."combobox"===l&&{"aria-autocomplete":"list"}},[f,p,l]),m=n.useMemo(()=>"tooltip"===f||"label"===l?{[`aria-${"label"===l?"labelledby":"describedby"}`]:o?d:void 0}:{...g,"aria-expanded":o?"true":"false","aria-controls":o?d:void 0,..."menu"===f&&{id:c}},[f,d,o,c,l,g]),h=n.useMemo(()=>{let e={id:d,...f&&{role:f}};return"tooltip"===f||"label"===l?e:{...e,..."menu"===f&&{"aria-labelledby":c}}},[f,d,c,l]),v=n.useCallback(({active:e,selected:t})=>{let n={role:"option",...e&&{id:`${d}-fui-option`}};switch(l){case"select":case"combobox":return{...n,"aria-selected":t}}return{}},[d,l]);return n.useMemo(()=>({reference:m,floating:h,item:v,trigger:g}),[m,h,g,v])}],26665);var Z=e.i(30628),ee=e.i(67805),et=Symbol("NOT_FOUND"),en=e=>Array.isArray(e)?e:[e],er=0,eo=class{revision=er;_value;_lastValue;_isEqual=ea;constructor(e,t=ea){this._value=this._lastValue=e,this._isEqual=t}get value(){return this._value}set value(e){this.value!==e&&(this._value=e,this.revision=++er)}};function ea(e,t){return e===t}function ei(e){return e instanceof eo||console.warn("Not a valid cell! ",e),e.value}var es=(e,t)=>!1;function el(){return function(e=ea){return new eo(null,e)}(es)}var eu=e=>{let t=e.collectionTag;null===t&&(t=e.collectionTag=el()),ei(t)};Symbol();var ec=0,ed=Object.getPrototypeOf({}),ef=class{constructor(e){this.value=e,this.value=e,this.tag.value=e}proxy=new Proxy(this,ep);tag=el();tags={};children={};collectionTag=null;id=ec++},ep={get:(e,t)=>(function(){let{value:n}=e,r=Reflect.get(n,t);if("symbol"==typeof t||t in ed)return r;if("object"==typeof r&&null!==r){var o;let n=e.children[t];return void 0===n&&(n=e.children[t]=Array.isArray(o=r)?new eg(o):new ef(o)),n.tag&&ei(n.tag),n.proxy}{let n=e.tags[t];return void 0===n&&((n=e.tags[t]=el()).value=r),ei(n),r}})(),ownKeys:e=>(eu(e),Reflect.ownKeys(e.value)),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e.value,t),has:(e,t)=>Reflect.has(e.value,t)},eg=class{constructor(e){this.value=e,this.value=e,this.tag.value=e}proxy=new Proxy([this],em);tag=el();tags={};children={};collectionTag=null;id=ec++},em={get:([e],t)=>("length"===t&&eu(e),ep.get(e,t)),ownKeys:([e])=>ep.ownKeys(e),getOwnPropertyDescriptor:([e],t)=>ep.getOwnPropertyDescriptor(e,t),has:([e],t)=>ep.has(e,t)},eh=(e,t)=>e===t,ev="u">typeof WeakRef?WeakRef:class{constructor(e){this.value=e}deref(){return this.value}};function eb(){return{s:0,v:void 0,o:null,p:null}}function ey(e,t={}){let n,r=eb(),{resultEqualityCheck:o}=t,a=0;function i(){let t,i=r,{length:s}=arguments;for(let e=0;e<s;e++){let t=arguments[e];if("function"==typeof t||"object"==typeof t&&null!==t){let e=i.o;null===e&&(i.o=e=new WeakMap);let n=e.get(t);void 0===n?(i=eb(),e.set(t,i)):i=n}else{let e=i.p;null===e&&(i.p=e=new Map);let n=e.get(t);void 0===n?(i=eb(),e.set(t,i)):i=n}}let l=i;if(1===i.s)t=i.v;else if(t=e.apply(null,arguments),a++,o){let e=n?.deref?.()??n;null!=e&&o(e,t)&&(t=e,0!==a&&a--),n="object"==typeof t&&null!==t||"function"==typeof t?new ev(t):t}return l.s=1,l.v=t,t}return i.clearCache=()=>{r=eb(),i.resetResultsCount()},i.resultsCount=()=>a,i.resetResultsCount=()=>{a=0},i}function ex(e,...t){let n="function"==typeof e?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t,r,o=0,a=0,i={},s=e.pop();"object"==typeof s&&(i=s,s=e.pop()),function(e,t=`expected a function, instead received ${typeof e}`){if("function"!=typeof e)throw TypeError(t)}(s,`createSelector expects an output function after the inputs, but received: [${typeof s}]`);let{memoize:l,memoizeOptions:u=[],argsMemoize:c=ey,argsMemoizeOptions:d=[],devModeChecks:f={}}={...n,...i},p=en(u),g=en(d),m=(!function(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(e=>"function"==typeof e)){let n=e.map(e=>"function"==typeof e?`function ${e.name||"unnamed"}()`:typeof e).join(", ");throw TypeError(`${t}[${n}]`)}}(t=Array.isArray(e[0])?e[0]:e,"createSelector expects all input-selectors to be functions, but received the following types: "),t),h=l(function(){return o++,s.apply(null,arguments)},...p);return Object.assign(c(function(){a++;let e=function(e,t){let n=[],{length:r}=e;for(let o=0;o<r;o++)n.push(e[o].apply(null,t));return n}(m,arguments);return r=h.apply(null,e)},...g),{resultFunc:s,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>a,resetDependencyRecomputations:()=>{a=0},lastResult:()=>r,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:l,argsMemoize:c})};return Object.assign(r,{withTypes:()=>r}),r}var eE=ex(ey),ew=Object.assign((e,t=eE)=>{!function(e,t=`expected an object, instead received ${typeof e}`){if("object"!=typeof e)throw TypeError(t)}(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>ew});ex({memoize:function(e,t){let n,{equalityCheck:r=eh,maxSize:o=1,resultEqualityCheck:a}="object"==typeof t?t:{equalityCheck:t},i=function(e,t){if(null===e||null===t||e.length!==t.length)return!1;let{length:n}=e;for(let o=0;o<n;o++)if(!r(e[o],t[o]))return!1;return!0},s=0,l=o<=1?{get:e=>n&&i(n.key,e)?n.value:et,put(e,t){n={key:e,value:t}},getEntries:()=>n?[n]:[],clear(){n=void 0}}:function(e,t){let n=[];function r(e){let r=n.findIndex(n=>t(e,n.key));if(r>-1){let e=n[r];return r>0&&(n.splice(r,1),n.unshift(e)),e.value}return et}return{get:r,put:function(t,o){r(t)===et&&(n.unshift({key:t,value:o}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(o,i);function u(){let t=l.get(arguments);if(t===et){if(t=e.apply(null,arguments),s++,a){let e=l.getEntries().find(e=>a(e.value,t));e&&(t=e.value,0!==s&&s--)}l.put(arguments,t)}return t}return u.clearCache=()=>{l.clear(),u.resetResultsCount()},u.resultsCount=()=>s,u.resetResultsCount=()=>{s=0},u},memoizeOptions:{maxSize:1,equalityCheck:Object.is}});let eS=(e,t,n,r,o,a,...i)=>{let s;if(i.length>0)throw Error((0,ee.default)(1));if(e&&t&&n&&r&&o&&a)s=(i,s,l,u)=>a(e(i,s,l,u),t(i,s,l,u),n(i,s,l,u),r(i,s,l,u),o(i,s,l,u),s,l,u);else if(e&&t&&n&&r&&o)s=(a,i,s,l)=>o(e(a,i,s,l),t(a,i,s,l),n(a,i,s,l),r(a,i,s,l),i,s,l);else if(e&&t&&n&&r)s=(o,a,i,s)=>r(e(o,a,i,s),t(o,a,i,s),n(o,a,i,s),a,i,s);else if(e&&t&&n)s=(r,o,a,i)=>n(e(r,o,a,i),t(r,o,a,i),o,a,i);else if(e&&t)s=(n,r,o,a)=>t(e(n,r,o,a),r,o,a);else if(e)s=e;else throw Error("Missing arguments");return s};e.s(["createSelector",0,eS],83921);var eC=e.i(2239),eR=e.i(30224);let eT=[];function ek(){return t}function eD(e){eT.push(e)}function eO(e){let n=(n,r)=>{let o,a=(0,Z.useRefWithInit)(eI).current;try{for(let e of(t=a,eT))e.before(a);for(let t of(o=e(n,r),eT))t.after(a);a.didInitialize=!0}finally{t=void 0}return o};return n.displayName=e.displayName||e.name,n}function eI(){return{didInitialize:!1}}e.s(["fastComponent",0,eO,"fastComponentRef",0,function(e){return n.forwardRef(eO(e))},"getInstance",0,ek,"register",0,eD],3851);let eA=(0,x.isReactVersionAtLeast)(19)?function(e,t,r,o,a){let i,s=ek();if(!s){let i;return i=n.useCallback(()=>t(e.getSnapshot(),r,o,a),[e,t,r,o,a]),(0,eC.useSyncExternalStore)(e.subscribe,i,i)}let l=s.syncIndex;return s.syncIndex+=1,s.didInitialize?(i=s.syncHooks[l]).store===e&&i.selector===t&&Object.is(i.a1,r)&&Object.is(i.a2,o)&&Object.is(i.a3,a)||(i.store!==e&&(s.didChangeStore=!0),i.store=e,i.selector=t,i.a1=r,i.a2=o,i.a3=a,i.didChange=!0):(i={store:e,selector:t,a1:r,a2:o,a3:a,value:t(e.getSnapshot(),r,o,a),didChange:!1},s.syncHooks.push(i)),i.value}:function(e,t,n,r,o){return(0,eR.useSyncExternalStoreWithSelector)(e.subscribe,e.getSnapshot,e.getSnapshot,e=>t(e,n,r,o))};eD({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let n=0;n<e.syncHooks.length;n+=1){let r=e.syncHooks[n],o=r.selector(r.store.state,r.a1,r.a2,r.a3);(r.didChange||!Object.is(r.value,o))&&(t=!0,r.value=o,r.didChange=!1)}return t&&(e.syncTick+=1),e.syncTick})},after(e){e.syncHooks.length>0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{let n=new Set;for(let t of e.syncHooks)n.add(t.store);let r=[];for(let e of n)r.push(e.subscribe(t));return()=>{for(let e of r)e()}}),(0,eC.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot))}});class eP{constructor(e){this.state=e,this.listeners=new Set,this.updateTick=0}subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.state;setState(e){if(this.state===e)return;this.state=e,this.updateTick+=1;let t=this.updateTick;for(let n of this.listeners){if(t!==this.updateTick)return;n(e)}}update(e){for(let t in e)if(!Object.is(this.state[t],e[t]))return void this.setState({...this.state,...e})}set(e,t){Object.is(this.state[e],t)||this.setState({...this.state,[e]:t})}notifyAll(){let e={...this.state};this.setState(e)}use(e,t,n,r){return eA(this,e,t,n,r)}}class eN extends eP{constructor(e,t={},n){super(e),this.context=t,this.selectors=n}useSyncedValue(e,t){n.useDebugValue(e),(0,O.useIsoLayoutEffect)(()=>{this.state[e]!==t&&this.set(e,t)},[e,t])}useSyncedValueWithCleanup(e,t){let n=this;(0,O.useIsoLayoutEffect)(()=>(n.state[e]!==t&&n.set(e,t),()=>{n.set(e,void 0)}),[n,e,t])}useSyncedValues(e){let t=this,n=Object.values(e);(0,O.useIsoLayoutEffect)(()=>{t.update(e)},[t,...n])}useControlledProp(e,t){n.useDebugValue(e);let r=void 0!==t;(0,O.useIsoLayoutEffect)(()=>{r&&!Object.is(this.state[e],t)&&super.setState({...this.state,[e]:t})},[e,t,r])}select(e,t,n,r){return(0,this.selectors[e])(this.state,t,n,r)}useState(e,t,r,o){return n.useDebugValue(e),eA(this,this.selectors[e],t,r,o)}useContextCallback(e,t){n.useDebugValue(e);let r=(0,F.useStableCallback)(t??P.NOOP);this.context[e]=r}useStateSetter(e){let t=n.useRef(void 0);return void 0===t.current&&(t.current=t=>{this.set(e,t)}),t.current}observe(e,t){let n,r=(n="function"==typeof e?e:this.selectors[e])(this.state);return t(r,r,this),this.subscribe(e=>{let o=n(e);if(!Object.is(r,o)){let e=r;r=o,t(o,e,this)}})}}e.s(["ReactStore",0,eN],98263);var eM=e.i(16385);let eL={open:eS(e=>e.open),domReferenceElement:eS(e=>e.domReferenceElement),referenceElement:eS(e=>e.positionReference??e.referenceElement),floatingElement:eS(e=>e.floatingElement),floatingId:eS(e=>e.floatingId)};class ej extends eN{constructor(e){const{nested:t,noEmit:n,onOpenChange:r,triggerElements:o,...a}=e;super({...a,positionReference:a.referenceElement,domReferenceElement:a.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:(0,eM.createEventEmitter)(),nested:t,noEmit:n,triggerElements:o},eL)}setOpen=(e,t)=>{if((!e||!this.state.open||(0,z.isClickLikeEvent)(t.event))&&(this.context.dataRef.current.openEvent=e?t.event:void 0),!this.context.noEmit){let n={open:e,reason:t.reason,nativeEvent:t.event,nested:this.context.nested,triggerElement:t.trigger};this.context.events.emit("openchange",n)}this.context.onOpenChange?.(e,t)}}e.s(["FloatingRootStore",0,ej],24019),e.s(["useSyncedFloatingRootContext",0,function(e){let{popupStore:t,noEmit:n=!1,treatPopupAsFloatingElement:r=!1,onOpenChange:o}=e,a=(0,J.useId)(),i=null!=(0,V.useFloatingParentNodeId)(),s=t.useState("open"),l=t.useState("activeTriggerElement"),u=t.useState(r?"popupElement":"positionerElement"),c=t.context.triggerElements,d=(0,Z.useRefWithInit)(()=>new ej({open:s,referenceElement:l,floatingElement:u,triggerElements:c,onOpenChange:o,floatingId:a,nested:i,noEmit:n})).current;return(0,O.useIsoLayoutEffect)(()=>{let e={open:s,floatingId:a,referenceElement:l,floatingElement:u};(0,R.isElement)(l)&&(e.domReferenceElement=l),d.state.positionReference===d.state.referenceElement&&(e.positionReference=l),d.update(e)},[s,a,l,u,d]),d.context.onOpenChange=o,d.context.nested=i,d.context.noEmit=n,d}],6157),e.s(["useOpenInteractionType",0,function(e){let t,r,o,a,[i,s]=n.useState(null),l=(0,F.useStableCallback)((t,n)=>{e||s(n||(T.isIOS?"touch":""))});t=n.useRef(e),r=(0,F.useStableCallback)(t=>{t&&!e&&s(null)}),(0,O.useIsoLayoutEffect)(()=>{t.current!==e&&r(t.current)},[e,r]),(0,O.useIsoLayoutEffect)(()=>{t.current=e},[e]);let{onClick:u,onPointerDown:c}=(o=n.useRef(""),a=n.useCallback(e=>{e.defaultPrevented||(o.current=e.pointerType,l(e,e.pointerType))},[l]),{onClick:n.useCallback(e=>{0===e.detail?l(e,"keyboard"):(l(e,"pointerType"in e?e.pointerType:o.current),o.current="")},[l]),onPointerDown:a});return n.useMemo(()=>({openMethod:i,triggerProps:{onClick:u,onPointerDown:c}}),[i,u,c])}],50091)},88841,e=>{"use strict";var t=e.i(71645),n=e.i(977),r=e.i(47135);e.s(["useTransitionStatus",0,function(e,o=!1,a=!1){let[i,s]=t.useState(e&&o?"idle":void 0),[l,u]=t.useState(e);return e&&!l&&(u(!0),s("starting")),e||!l||"ending"===i||a||s("ending"),e||l||"ending"!==i||s(void 0),(0,n.useIsoLayoutEffect)(()=>{if(!e&&l&&"ending"!==i&&a){let e=r.AnimationFrame.request(()=>{s("ending")});return()=>{r.AnimationFrame.cancel(e)}}},[e,l,i,a]),(0,n.useIsoLayoutEffect)(()=>{if(!e||o)return;let t=r.AnimationFrame.request(()=>{s(void 0)});return()=>{r.AnimationFrame.cancel(t)}},[o,e]),(0,n.useIsoLayoutEffect)(()=>{if(!e||!o)return;e&&l&&"idle"!==i&&s("starting");let t=r.AnimationFrame.request(()=>{s("idle")});return()=>{r.AnimationFrame.cancel(t)}},[o,e,l,s,i]),t.useMemo(()=>({mounted:l,setMounted:u,transitionStatus:i}),[l,i])}])},72920,58642,69375,628,4012,e=>{"use strict";e.i(75704);var t,n=e.i(59141),r=e.i(43444),o=e.i(39362),a=e.i(96918),i=e.i(38449),s=e.i(71645),l=e.i(30628),u=e.i(58509),c=e.i(76477),d=e.i(66196),f=e.i(33605),p=e.i(89633),g=e.i(26665),m=e.i(6157),h=e.i(47857),v=e.i(50091),b=e.i(5963),y=e.i(3404),x=e.i(977),E=e.i(88841),w=e.i(89269);function S(e,t){let n=s.useRef(null),r=s.useRef(null);return s.useCallback(o=>{if(void 0!==e){if(null!==n.current){let e=n.current,o=r.current,a=t.context.triggerElements.getById(e);o&&a===o&&t.context.triggerElements.delete(e),n.current=null,r.current=null}null!==o&&(n.current=e,r.current=o,t.context.triggerElements.add(e,o))}},[t,e])}function C(e,t,n,r){let o=n.useState("isMountedByTrigger",e),a=S(e,n),i=(0,c.useStableCallback)(t=>{if(a(t),!t||!n.select("open"))return;let o=n.select("activeTriggerId");o===e?n.update({activeTriggerElement:t,...r}):null==o&&n.update({activeTriggerId:e,activeTriggerElement:t,...r})});return(0,x.useIsoLayoutEffect)(()=>{o&&n.update({activeTriggerElement:t.current,...r})},[o,n,t,...Object.values(r)]),{registerTrigger:i,isMountedByThisTrigger:o}}function R(e){let t=e.useState("open");(0,x.useIsoLayoutEffect)(()=>{if(t&&!e.select("activeTriggerId")&&1===e.context.triggerElements.size){let t=e.context.triggerElements.entries().next();if(!t.done){let[n,r]=t.value;e.update({activeTriggerId:n,activeTriggerElement:r})}}},[t,e])}function T(e,t,n){let{mounted:r,setMounted:o,transitionStatus:a}=(0,E.useTransitionStatus)(e);t.useSyncedValues({mounted:r,transitionStatus:a});let i=(0,c.useStableCallback)(()=>{o(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)}),s=t.useState("preventUnmountingOnClose");return(0,w.useOpenChangeComplete)({enabled:!s,open:e,ref:t.context.popupRef,onComplete(){e||i()}}),{forceUnmount:i,transitionStatus:a}}e.s(["useImplicitActiveTrigger",0,R,"useOpenStateTransitions",0,T,"useTriggerDataForwarding",0,C,"useTriggerRegistration",0,S],58642);var k=e.i(13104),D=e.i(83921),O=e.i(98263);e.i(47167);class I{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(e,t){let n=this.idMap.get(e);n!==t&&(void 0!==n&&this.elementsSet.delete(n),this.elementsSet.add(t),this.idMap.set(e,t))}delete(e){let t=this.idMap.get(e);t&&(this.elementsSet.delete(t),this.idMap.delete(e))}hasElement(e){return this.elementsSet.has(e)}hasMatchingElement(e){for(let t of this.elementsSet)if(e(t))return!0;return!1}getById(e){return this.idMap.get(e)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}e.s(["PopupTriggerMap",0,I],69375);var A=e.i(24019),P=e.i(17514);function N(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:"idle",floatingRootContext:new A.FloatingRootStore({open:!1,floatingElement:null,referenceElement:null,triggerElements:new I,floatingId:"",nested:!1,noEmit:!1,onOpenChange:void 0}),preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:P.EMPTY_OBJECT,inactiveTriggerProps:P.EMPTY_OBJECT,popupProps:P.EMPTY_OBJECT}}let M=(0,D.createSelector)(e=>e.triggerIdProp??e.activeTriggerId),L={open:(0,D.createSelector)(e=>e.openProp??e.open),mounted:(0,D.createSelector)(e=>e.mounted),transitionStatus:(0,D.createSelector)(e=>e.transitionStatus),floatingRootContext:(0,D.createSelector)(e=>e.floatingRootContext),preventUnmountingOnClose:(0,D.createSelector)(e=>e.preventUnmountingOnClose),payload:(0,D.createSelector)(e=>e.payload),activeTriggerId:M,activeTriggerElement:(0,D.createSelector)(e=>e.mounted?e.activeTriggerElement:null),isTriggerActive:(0,D.createSelector)((e,t)=>void 0!==t&&M(e)===t),isOpenedByTrigger:(0,D.createSelector)((e,t)=>void 0!==t&&M(e)===t&&e.open),isMountedByTrigger:(0,D.createSelector)((e,t)=>void 0!==t&&M(e)===t&&e.mounted),triggerProps:(0,D.createSelector)((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),popupProps:(0,D.createSelector)(e=>e.popupProps),popupElement:(0,D.createSelector)(e=>e.popupElement),positionerElement:(0,D.createSelector)(e=>e.positionerElement)};e.s(["createInitialPopupStoreState",0,N,"popupStoreSelectors",0,L],628);let j={...L,modal:(0,D.createSelector)(e=>e.modal),nested:(0,D.createSelector)(e=>e.nested),nestedOpenDialogCount:(0,D.createSelector)(e=>e.nestedOpenDialogCount),disablePointerDismissal:(0,D.createSelector)(e=>e.disablePointerDismissal),openMethod:(0,D.createSelector)(e=>e.openMethod),descriptionElementId:(0,D.createSelector)(e=>e.descriptionElementId),titleElementId:(0,D.createSelector)(e=>e.titleElementId),viewportElement:(0,D.createSelector)(e=>e.viewportElement),role:(0,D.createSelector)(e=>e.role)};class B extends O.ReactStore{constructor(e){super(function(e={}){return{...N(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:"dialog",...e}}(e),{popupRef:s.createRef(),backdropRef:s.createRef(),internalBackdropRef:s.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:new I,onOpenChange:void 0,onOpenChangeComplete:void 0},j)}setOpen=(e,t)=>{if(t.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},e||null!=t.trigger||null==this.state.activeTriggerId||(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;let n={open:e,nativeEvent:t.event,reason:t.reason,nested:this.state.nested};this.state.floatingRootContext.context.events?.emit("openchange",n);let r={open:e},o=t.trigger?.id??null;(o||e)&&(r.activeTriggerId=o,r.activeTriggerElement=t.trigger??null),this.update(r)}}var F=e.i(18050),W=e.i(27601),z=e.i(83590),_=e.i(84759),V=e.i(77681);let Y=((t={})[t.open=z.CommonPopupDataAttributes.open]="open",t[t.closed=z.CommonPopupDataAttributes.closed]="closed",t[t.startingStyle=z.CommonPopupDataAttributes.startingStyle]="startingStyle",t[t.endingStyle=z.CommonPopupDataAttributes.endingStyle]="endingStyle",t.nested="data-nested",t.nestedDialogOpen="data-nested-dialog-open",t),H={...z.popupStateMapping,..._.transitionStatusMapping,nested:e=>e?{[Y.nested]:""}:null,nestedDialogOpen:e=>e?{[Y.nestedDialogOpen]:""}:null},$=s.forwardRef(function(e,t){let{className:n,render:r,children:o,...a}=e,i=(0,V.useDialogPortalContext)(),{store:s}=(0,k.useDialogRootContext)(),l=s.useState("open"),u=s.useState("nested"),c=s.useState("transitionStatus"),d=s.useState("nestedOpenDialogCount"),f=s.useState("mounted");return(0,W.useRenderElement)("div",e,{enabled:i||f,state:{open:l,nested:u,transitionStatus:c,nestedDialogOpen:d>0},ref:[t,s.useStateSetter("viewportElement")],stateAttributesMapping:H,props:[{role:"presentation",hidden:!f,style:{pointerEvents:l?void 0:"none"},children:o},a]})});var U=e.i(89879);let K=s.forwardRef(function(e,t){let{render:n,className:r,id:o,...a}=e,{store:i}=(0,k.useDialogRootContext)(),s=(0,U.useBaseUiId)(o);return i.useSyncedValueWithCleanup("titleElementId",s),(0,W.useRenderElement)("h2",e,{ref:t,props:[{id:s},a]})});var q=e.i(67805),X=e.i(91730),G=e.i(7335),J=e.i(47135),Q=e.i(66745),Z=e.i(82033);function ee(e,t={}){let n="rootStore"in e?e.rootStore:e,r=n.context.dataRef,{enabled:o=!0,event:a="click",toggle:i=!0,ignoreMouse:l=!1,stickIfOpen:u=!0,touchOpenDelay:c=0,reason:d=y.REASONS.triggerPress}=t,f=s.useRef(void 0),p=(0,J.useAnimationFrame)(),g=(0,Q.useTimeout)(),m=s.useMemo(()=>({onPointerDown(e){f.current=e.pointerType},onMouseDown(e){let t=f.current,o=e.nativeEvent,s=n.select("open");if(0!==e.button||"click"===a||(0,Z.isMouseLikePointerType)(t,!0)&&l)return;let m=r.current.openEvent,v=m?.type,y=n.select("domReferenceElement")!==e.currentTarget,x=s&&y||!(s&&i&&(!m||!u||"click"===v||"mousedown"===v));if((0,h.isTypeableElement)(o.target)){let e=(0,b.createChangeEventDetails)(d,o,o.target);x&&"touch"===t&&c>0?g.start(c,()=>{n.setOpen(!0,e)}):n.setOpen(x,e);return}let E=e.currentTarget;p.request(()=>{let e=(0,b.createChangeEventDetails)(d,o,E);x&&"touch"===t&&c>0?g.start(c,()=>{n.setOpen(!0,e)}):n.setOpen(x,e)})},onClick(e){if("mousedown-only"===a)return;let t=f.current;if("mousedown"===a&&t){f.current=void 0;return}if((0,Z.isMouseLikePointerType)(t,!0)&&l)return;let o=n.select("open"),s=r.current.openEvent,p=n.select("domReferenceElement")!==e.currentTarget,m=o&&p||!(o&&i&&(!s||!u||(0,Z.isClickLikeEvent)(s))),h=(0,b.createChangeEventDetails)(d,e.nativeEvent,e.currentTarget);m&&"touch"===t&&c>0?g.start(c,()=>{n.setOpen(!0,h)}):n.setOpen(m,h)},onKeyDown(){f.current=void 0}}),[r,a,l,n,u,i,p,g,c,d]);return s.useMemo(()=>o?{reference:m}:P.EMPTY_OBJECT,[o,m])}e.s(["useClick",0,ee],4012);let et=s.forwardRef(function(e,t){let{render:n,className:r,disabled:o=!1,nativeButton:a=!0,id:i,payload:l,handle:u,...c}=e,d=(0,k.useDialogRootContext)(!0),f=u?.store??d?.store;if(!f)throw Error((0,q.default)(79));let g=(0,U.useBaseUiId)(i),m=f.useState("floatingRootContext"),h=f.useState("isOpenedByTrigger",g),v=s.useRef(null),{registerTrigger:b,isMountedByThisTrigger:y}=C(g,v,f,{payload:l}),{getButtonProps:x,buttonRef:E}=(0,X.useButton)({disabled:o,native:a}),w=ee(m,{enabled:null!=m}),S=(0,p.useInteractions)([w]),R=f.useState("triggerProps",y);return(0,W.useRenderElement)("button",e,{state:{disabled:o,open:h},ref:[E,t,b,v],props:[S.getReferenceProps(),R,{[G.CLICK_TRIGGER_IDENTIFIER]:"",id:g},c,x],stateAttributesMapping:z.triggerOpenStateMapping})});class en{constructor(e){this.store=e??new B}open(e){let t=e?this.store.context.triggerElements.getById(e):void 0;this.store.setOpen(!0,(0,b.createChangeEventDetails)(y.REASONS.imperativeAction,void 0,t))}openWithPayload(e){this.store.set("payload",e),this.store.setOpen(!0,(0,b.createChangeEventDetails)(y.REASONS.imperativeAction,void 0,void 0))}close(){this.store.setOpen(!1,(0,b.createChangeEventDetails)(y.REASONS.imperativeAction,void 0,void 0))}get isOpen(){return this.store.state.open}}e.s(["Backdrop",()=>n.DialogBackdrop,"Close",()=>r.DialogClose,"Description",()=>o.DialogDescription,"Handle",0,en,"Popup",()=>a.DialogPopup,"Portal",()=>i.DialogPortal,"Root",0,function(e){let{children:t,open:n,defaultOpen:r=!1,onOpenChange:o,onOpenChangeComplete:a,disablePointerDismissal:i=!1,modal:x=!0,actionsRef:E,handle:w,triggerId:S,defaultTriggerId:C=null}=e,D=(0,k.useDialogRootContext)(!0),O=!!D,I=(0,l.useRefWithInit)(()=>w?.store??new B({open:r,openProp:n,activeTriggerId:C,triggerIdProp:S,modal:x,disablePointerDismissal:i,nested:O})).current;(0,u.useOnFirstRender)(()=>{void 0===n&&!1===I.state.open&&!0===r&&I.update({open:!0,activeTriggerId:C})}),I.useControlledProp("openProp",n),I.useControlledProp("triggerIdProp",S),I.useSyncedValues({disablePointerDismissal:i,nested:O,modal:x}),I.useContextCallback("onOpenChange",o),I.useContextCallback("onOpenChangeComplete",a);let A=I.useState("payload");!function(e){let{store:t,parentContext:n,actionsRef:r}=e,o=t.useState("open"),a=t.useState("disablePointerDismissal"),i=t.useState("modal"),l=t.useState("popupElement"),{openMethod:u,triggerProps:x}=(0,v.useOpenInteractionType)(o);R(t);let{forceUnmount:E}=T(o,t),w=(0,c.useStableCallback)(e=>{let n=(0,b.createChangeEventDetails)(e);return n.preventUnmountOnClose=()=>{t.set("preventUnmountingOnClose",!0)},n}),S=s.useCallback(()=>{t.setOpen(!1,w(y.REASONS.imperativeAction))},[t,w]);s.useImperativeHandle(r,()=>({unmount:E,close:S}),[E,S]);let C=(0,m.useSyncedFloatingRootContext)({popupStore:t,onOpenChange:t.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[k,D]=s.useState(0),O=0===k,I=(0,g.useRole)(C),A=(0,f.useDismiss)(C,{outsidePressEvent:()=>t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:"trap-focus"===i?"sloppy":"intentional",touch:"sloppy"},outsidePress(e){if(!t.context.outsidePressEnabledRef.current||"button"in e&&0!==e.button||"touches"in e&&1!==e.touches.length)return!1;let n=(0,h.getTarget)(e);return!!O&&!a&&(!i||!t.context.internalBackdropRef.current&&!t.context.backdropRef.current||t.context.internalBackdropRef.current===n||t.context.backdropRef.current===n||(0,h.contains)(n,l)&&!n?.hasAttribute("data-base-ui-portal"))},escapeKey:O});(0,d.useScrollLock)(o&&!0===i,l);let{getReferenceProps:P,getFloatingProps:N,getTriggerProps:M}=(0,p.useInteractions)([I,A]);t.useContextCallback("onNestedDialogOpen",e=>{D(e+1)}),t.useContextCallback("onNestedDialogClose",()=>{D(0)}),s.useEffect(()=>(n?.onNestedDialogOpen&&o&&n.onNestedDialogOpen(k),n?.onNestedDialogClose&&!o&&n.onNestedDialogClose(),()=>{n?.onNestedDialogClose&&o&&n.onNestedDialogClose()}),[o,n,k]);let L=s.useMemo(()=>P(x),[P,x]),j=s.useMemo(()=>M(x),[M,x]),B=s.useMemo(()=>N(),[N]);t.useSyncedValues({openMethod:u,activeTriggerProps:L,inactiveTriggerProps:j,popupProps:B,floatingRootContext:C,nestedOpenDialogCount:k})}({store:I,actionsRef:E,parentContext:D?.store.context,onOpenChange:o,triggerIdProp:S});let P=s.useMemo(()=>({store:I}),[I]);return(0,F.jsx)(k.DialogRootContext.Provider,{value:P,children:"function"==typeof t?t({payload:A}):t})},"Title",0,K,"Trigger",0,et,"Viewport",0,$,"createHandle",0,function(){return new en}],87913);var er=e.i(87913);e.s(["Dialog",0,er],72920)},85902,e=>{"use strict";var t=e.i(18050);e.i(47167);var n=e.i(71645),r=e.i(91730),o=e.i(27601);let a=n.forwardRef(function(e,t){let{render:n,className:a,disabled:i=!1,focusableWhenDisabled:s=!1,nativeButton:l=!0,...u}=e,{getButtonProps:c,buttonRef:d}=(0,r.useButton)({disabled:i,focusableWhenDisabled:s,native:l});return(0,o.useRenderElement)("button",e,{state:{disabled:i},ref:[t,d],props:[u,c]})});var i=e.i(25913),s=e.i(52088);let l=(0,i.cva)("group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-xs/relaxed font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-input/20 shadow-xs text-muted-foreground hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:bg-input/30 dark:text-muted-foreground dark:hover:bg-muted/50 dark:hover:text-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-7 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",xs:"h-5 gap-1 rounded-sm px-2 text-[0.625rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-2.5",sm:"h-6 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",lg:"h-8 gap-1 px-2.5 text-xs/relaxed has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-4",icon:"size-7 [&_svg:not([class*='size-'])]:size-3.5","icon-xs":"size-5 rounded-sm [&_svg:not([class*='size-'])]:size-2.5","icon-sm":"size-6 [&_svg:not([class*='size-'])]:size-3","icon-lg":"size-8 [&_svg:not([class*='size-'])]:size-4"}},defaultVariants:{variant:"default",size:"default"}});e.s(["Button",0,function({className:e,variant:n="default",size:r="default",...o}){return(0,t.jsx)(a,{"data-slot":"button",className:(0,s.cn)(l({variant:n,size:r,className:e})),...o})},"buttonVariants",0,l],85902)},41947,e=>{"use strict";let t=(0,e.i(75254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",0,t])},69068,e=>{"use strict";var t=e.i(18050),n=e.i(72920),r=e.i(52088),o=e.i(85902),a=e.i(41947),a=a;function i({...e}){return(0,t.jsx)(n.Dialog.Portal,{"data-slot":"dialog-portal",...e})}function s({className:e,...o}){return(0,t.jsx)(n.Dialog.Backdrop,{"data-slot":"dialog-overlay",className:(0,r.cn)("fixed inset-0 isolate z-50 bg-black/20 backdrop-blur-sm duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...o})}e.s(["Dialog",0,function({...e}){return(0,t.jsx)(n.Dialog.Root,{"data-slot":"dialog",...e})},"DialogClose",0,function({...e}){return(0,t.jsx)(n.Dialog.Close,{"data-slot":"dialog-close",...e})},"DialogContent",0,function({className:e,children:l,showCloseButton:u=!0,...c}){return(0,t.jsxs)(i,{children:[(0,t.jsx)(s,{}),(0,t.jsxs)(n.Dialog.Popup,{"data-slot":"dialog-content",className:(0,r.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-xs/relaxed text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...c,children:[l,u&&(0,t.jsxs)(n.Dialog.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(o.Button,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(a.default,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:e,...o}){return(0,t.jsx)(n.Dialog.Description,{"data-slot":"dialog-description",className:(0,r.cn)("text-xs/relaxed text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...o})},"DialogFooter",0,function({className:e,showCloseButton:a=!1,children:i,...s}){return(0,t.jsxs)("div",{"data-slot":"dialog-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...s,children:[i,a&&(0,t.jsx)(n.Dialog.Close,{render:(0,t.jsx)(o.Button,{variant:"outline"}),children:"Close"})]})},"DialogHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,r.cn)("flex flex-col gap-1",e),...n})},"DialogTitle",0,function({className:e,...o}){return(0,t.jsx)(n.Dialog.Title,{"data-slot":"dialog-title",className:(0,r.cn)("font-heading text-sm font-medium",e),...o})}],69068)},37727,e=>{"use strict";var t=e.i(41947);e.s(["X",()=>t.default])},68995,e=>{"use strict";var t=e.i(18050),n=e.i(71645),r=e.i(69068),o=e.i(85902),a=e.i(37727),i=e.i(52088);let s={sm:"sm:max-w-sm",md:"sm:max-w-md",lg:"sm:max-w-lg",xl:"sm:max-w-xl","2xl":"sm:max-w-2xl","4xl":"sm:max-w-4xl","6xl":"sm:max-w-6xl"};function l({open:e,onOpenChange:u,title:c,children:d,maxWidth:f="2xl",showCloseButton:p=!0,initialFocusEl:g,dismissOnEsc:m=!0,fullScreen:h=!1}){return(0,n.useEffect)(()=>{if(e&&g){let e=requestAnimationFrame(()=>{let e=g();e&&e.focus()});return()=>cancelAnimationFrame(e)}},[e,g]),(0,t.jsx)(r.Dialog,{open:e,onOpenChange:(e,t)=>{(e||m||"escape-key"!==t.reason)&&u({open:e})},modal:!0,children:(0,t.jsxs)(r.DialogContent,{showCloseButton:!1,className:(0,i.cn)("bg-background rounded-lg border border-border shadow-lg","gap-0 p-0",h?"w-[calc(100%-32px)] !max-w-[calc(100%-32px)] h-[calc(100vh-32px)] max-h-[calc(100vh-32px)] flex flex-col overflow-hidden":(0,i.cn)("max-h-[90vh] overflow-y-auto",s[f])),children:[(c||p)&&(0,t.jsxs)("div",{className:(0,i.cn)("flex items-center justify-between",h?"px-4 pt-4 pb-2":"px-6 pt-6 pb-2"),children:[c&&(0,t.jsx)(r.DialogTitle,{className:"text-lg font-semibold leading-none text-foreground",children:c}),p&&(0,t.jsx)(r.DialogClose,{render:(0,t.jsx)(o.Button,{variant:"ghost",size:"icon",className:"ml-auto text-muted-foreground hover:text-foreground"}),children:(0,t.jsx)(a.X,{className:"size-4"})})]}),(0,t.jsx)("div",{className:(0,i.cn)(h?"px-4 pb-4 pt-2 flex-1 min-h-0 flex flex-col":c||p?"px-6 pb-6 pt-2":"p-6"),children:d})]})})}e.s(["ConfirmDialog",0,function({open:e,onOpenChange:n,title:a,message:i,confirmLabel:s="Confirm",cancelLabel:u="Cancel",onConfirm:c,variant:d="default"}){return(0,t.jsx)(l,{open:e,onOpenChange:n,maxWidth:"md",showCloseButton:!1,children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold leading-none text-foreground",children:a}),(0,t.jsx)("div",{className:"text-sm text-muted-foreground whitespace-pre-line",children:i}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,t.jsx)(r.DialogClose,{render:(0,t.jsx)(o.Button,{variant:"outline",className:"cursor-pointer"}),children:u}),(0,t.jsx)(o.Button,{variant:"danger"===d?"destructive":"default",onClick:()=>{c(),n({open:!1})},className:"cursor-pointer",children:s})]})]})})},"Dialog",0,l])}]);