@chenpu17/cc-gw 0.8.8 → 0.8.10

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 (90) hide show
  1. package/README.md +61 -16
  2. package/package.json +17 -7
  3. package/src/web/dist/assets/About-C_IouOGj.js +1 -0
  4. package/src/web/dist/assets/ApiKeys-Dz-M_uW5.js +1 -0
  5. package/src/web/dist/assets/ConfirmDialog-COgrXiJw.js +1 -0
  6. package/src/web/dist/assets/Dashboard-81R9MI8r.js +1 -0
  7. package/src/web/dist/assets/DialogShell-blgQezT9.js +1 -0
  8. package/src/web/dist/assets/Events-B1zBaQzl.js +1 -0
  9. package/src/web/dist/assets/Help-DM0vXHor.js +5 -0
  10. package/src/web/dist/assets/Login-ygiPlEBP.js +1 -0
  11. package/src/web/dist/assets/Logs-DKh46bsP.js +1 -0
  12. package/src/web/dist/assets/ModelManagement-71W1a6n9.js +1 -0
  13. package/src/web/dist/assets/PageHeader-C01S2XTN.js +1 -0
  14. package/src/web/dist/assets/PageSection-CPPskzEi.js +1 -0
  15. package/src/web/dist/assets/PageState-Cntv0Sf4.js +1 -0
  16. package/src/web/dist/assets/Profiler-l9K8vLHs.js +1 -0
  17. package/src/web/dist/assets/RoutingManagement-CYdcFS8f.js +1 -0
  18. package/src/web/dist/assets/Settings-DJp6w85X.js +1 -0
  19. package/src/web/dist/assets/Skeleton-DgZEIS_E.js +1 -0
  20. package/src/web/dist/assets/app-C09yoSxh.js +61 -0
  21. package/src/web/dist/assets/card-BMPheH9g.js +1 -0
  22. package/src/web/dist/assets/{charts-core-D_rRW-0W.js → charts-core-D9OugzV_.js} +1 -1
  23. package/src/web/dist/assets/{charts-engine-BXnGh0aE.js → charts-engine-DleyglMn.js} +1 -1
  24. package/src/web/dist/assets/{charts-react-t97X9Vfc.js → charts-react-BqhUp1x_.js} +1 -1
  25. package/src/web/dist/assets/gateway-Bf1h2eFf.js +1 -0
  26. package/src/web/dist/assets/global-B_AcmMvG.js +1 -0
  27. package/src/web/dist/assets/global-DOpF330e.css +1 -0
  28. package/src/web/dist/assets/{i18n-dgCQR_PB.js → i18n-B3N4Df3E.js} +1 -1
  29. package/src/web/dist/assets/input-1_zNDnlx.js +1 -0
  30. package/src/web/dist/assets/label-B5W3eu-E.js +1 -0
  31. package/src/web/dist/assets/landing-BF3DRAr3.js +5 -0
  32. package/src/web/dist/assets/live-api-keys-CJUuaCev.png +0 -0
  33. package/src/web/dist/assets/live-dashboard-B7vLOY_S.png +0 -0
  34. package/src/web/dist/assets/live-events-D_njD291.png +0 -0
  35. package/src/web/dist/assets/live-logs-PRpgTV6S.png +0 -0
  36. package/src/web/dist/assets/live-model-management-xkBDeuLk.png +0 -0
  37. package/src/web/dist/assets/package-anTRKkYU.js +1 -0
  38. package/src/web/dist/assets/popover-UGE5kTdI.js +1 -0
  39. package/src/web/dist/assets/{query-Db16w3tH.js → query-Cpxr1dul.js} +1 -1
  40. package/src/web/dist/assets/queryKeys-DDTfNI_C.js +1 -0
  41. package/src/web/dist/assets/{radix-D08JKSgz.js → radix-bG5h1Ymq.js} +2 -2
  42. package/src/web/dist/assets/{router-BURlSZbt.js → router-DspBTS8b.js} +1 -1
  43. package/src/web/dist/assets/select-DJFQztdh.js +1 -0
  44. package/src/web/dist/assets/switch-BqheRBDw.js +1 -0
  45. package/src/web/dist/assets/table-C5nemz39.js +1 -0
  46. package/src/web/dist/assets/useApiQuery-828HesQD.js +1 -0
  47. package/src/web/dist/assets/useAppMutation-Com8yWoS.js +1 -0
  48. package/src/web/dist/assets/useModelManagementState-DY72pEhZ.js +1 -0
  49. package/src/web/dist/assets/utils-DSaa7c6v.js +1 -0
  50. package/src/web/dist/assets/{vendor-DfnQOGOQ.js → vendor-LWJeAdU1.js} +114 -74
  51. package/src/web/dist/cc-gw-mark.svg +27 -0
  52. package/src/web/dist/cc-gw-social-card.png +0 -0
  53. package/src/web/dist/cc-gw-social-card.svg +143 -0
  54. package/src/web/dist/index.html +11 -7
  55. package/src/web/dist/landing.html +55 -0
  56. package/src/web/dist/robots.txt +3 -0
  57. package/src/web/dist/site.webmanifest +18 -0
  58. package/src/web/dist/assets/About-DL-kRONi.js +0 -1
  59. package/src/web/dist/assets/ApiKeys-B8z3u4IT.js +0 -1
  60. package/src/web/dist/assets/ConfirmDialog-BOlSnrzw.js +0 -1
  61. package/src/web/dist/assets/Dashboard-oP_O6VHo.js +0 -1
  62. package/src/web/dist/assets/DialogShell-CIfpW2Dh.js +0 -1
  63. package/src/web/dist/assets/EChart-B2VLuu4H.js +0 -1
  64. package/src/web/dist/assets/Events-CV2keu3U.js +0 -1
  65. package/src/web/dist/assets/Help-CsDD4R4j.js +0 -8
  66. package/src/web/dist/assets/Login-CBDYephM.js +0 -1
  67. package/src/web/dist/assets/Logs-DGKWZwT6.js +0 -1
  68. package/src/web/dist/assets/ModelManagement-DwXLeUHU.js +0 -1
  69. package/src/web/dist/assets/PageHeader-CXZYQQD4.js +0 -1
  70. package/src/web/dist/assets/PageSection-DVUeDf43.js +0 -1
  71. package/src/web/dist/assets/PageState-BQHM_52P.js +0 -1
  72. package/src/web/dist/assets/Profiler-DMGK-XFA.js +0 -1
  73. package/src/web/dist/assets/RoutingManagement-u1VryAxe.js +0 -1
  74. package/src/web/dist/assets/Settings-EhwD6Y4g.js +0 -1
  75. package/src/web/dist/assets/Skeleton-Go6kbxGz.js +0 -1
  76. package/src/web/dist/assets/badge-CJGSNmZk.js +0 -1
  77. package/src/web/dist/assets/card-1Yb5z5wa.js +0 -1
  78. package/src/web/dist/assets/gateway-BngR7DkG.js +0 -1
  79. package/src/web/dist/assets/index--7y4K3jp.css +0 -1
  80. package/src/web/dist/assets/index-GHIvOfHn.js +0 -61
  81. package/src/web/dist/assets/input-C-ScmIz9.js +0 -1
  82. package/src/web/dist/assets/label-Dg9f6DDv.js +0 -1
  83. package/src/web/dist/assets/popover-DmaWzvZZ.js +0 -1
  84. package/src/web/dist/assets/queryKeys-BMvyDTQS.js +0 -1
  85. package/src/web/dist/assets/select-C8ErmS7h.js +0 -1
  86. package/src/web/dist/assets/switch-B2WWdhr1.js +0 -1
  87. package/src/web/dist/assets/useApiQuery-qs2heY2G.js +0 -1
  88. package/src/web/dist/assets/useAppMutation-DHIZ_u7B.js +0 -1
  89. package/src/web/dist/assets/useModelManagementState-BXSC17d4.js +0 -1
  90. package/src/web/dist/assets/utils-COMB3wUn.js +0 -1
@@ -0,0 +1,5 @@
1
+ import{B as A,c as x}from"./global-B_AcmMvG.js";import{r as m,j as e,aa as C,ab as c,ac as f,ad as j,T as u,ae as h,O as I,af as S,ag as w,a9 as K,q as P}from"./vendor-LWJeAdU1.js";import{c as v}from"./clipboard-CALi6bTW.js";import{p as D}from"./package-anTRKkYU.js";const p="/assets/live-dashboard-B7vLOY_S.png",R="/assets/live-logs-PRpgTV6S.png",L="/assets/live-model-management-xkBDeuLk.png",O="/assets/live-api-keys-CJUuaCev.png",T="/assets/live-events-D_njD291.png",N=D.version,g=[{href:"#architecture",label:"痛点"},{href:"#features",label:"收益"},{href:"#quickstart",label:"开始"},{href:"#console",label:"控制台"},{href:"#fit",label:"适合谁"},{href:"#faq",label:"FAQ"}],q=["OpenAI SDK","Anthropic SDK","Claude Code","cURL","LangChain","Vercel AI SDK"],B=[{value:"1 个",label:"团队统一入口"},{value:"少改",label:"业务代码少被打扰"},{value:"可查",label:"日志链路可追踪"},{value:"本地",label:"轻量自托管优先"}],F=["不用在每个项目里重复配置 baseURL 和 API Key","出问题先看日志、链路和 Profiler,不再靠猜","换 provider、模型和路由时,尽量不打扰业务代码"],U=[{title:"个人开发者",body:"你同时在用 Claude Code、OpenAI SDK 和几个脚本工具,已经不想再维护多套 Key 与地址。"},{title:"AI 产品小队",body:"团队开始共享模型调用,想统一入口、路由和日志,但还不想先上复杂平台。"},{title:"1-100 人研发团队",body:"需要给多个环境、多个客户端和不同成员分配调用权限,同时保留轻量自托管的灵活性。"}],W=[{icon:u,title:"换模型,不再到处改配置",body:"客户端继续请求同一个入口,模型映射、Provider 切换和路由策略交给网关处理。"},{icon:I,title:"排查问题,不再只能靠猜",body:"请求日志、上游链路、TTFT/TPOT、Token usage 和事件记录都能在控制台看到。"},{icon:j,title:"Key 管理,不再散落在脚本里",body:"为不同客户端、环境或成员创建独立 Key,方便审计、停用和隔离风险。"},{icon:c,title:"先本地跑,再给团队共享",body:"npm 安装即可启动,个人先试,团队需要时再迁到共享机器或轻量自托管实例。"}],E=[{icon:f,eyebrow:"01",title:"先接一个你已经在用的客户端",body:"从 Claude Code、OpenAI SDK 或 Anthropic SDK 里挑一个,不需要先迁所有项目。",detail:"目标是让第一个真实请求先跑通,并进入控制台可观测范围。"},{icon:j,eyebrow:"02",title:"把密钥和访问范围收回来",body:"给不同成员、环境或工具分开 API Key,避免继续共享同一个万能 Key。",detail:"这样做之后,停用、排查和审计都会轻很多。"},{icon:u,eyebrow:"03",title:"开始通过路由和日志持续调优",body:"模型切换、Provider 替换和请求追踪都逐步从业务代码外迁到网关层。",detail:"一旦流量和协作变复杂,价值会明显放大。"}],M=["客户端开始只认一个统一入口,而不是多套 base URL","调用问题能先在控制台定位,而不是在客户端里盲猜","模型和 Provider 的演进不必每次都打扰业务代码"],z=[{title:"先在本地跑起来",body:"不用先改团队流程,也不要求大家安装 Rust。先让一个统一入口可用。",code:`npm install -g @chenpu17/cc-gw
2
+ cc-gw start --foreground --port 4100`},{title:"接入一个现有客户端",body:"先选 Claude Code、OpenAI SDK 或 Anthropic SDK 中的一个,把 base URL 指到 cc-gw。",code:`baseURL = 'http://127.0.0.1:4100/openai/v1'
3
+ # 或 http://127.0.0.1:4100/anthropic`},{title:"开始用控制台接管日常",body:"请求进来后,再慢慢管理路由、日志、API Keys、事件和 Profiler。",code:`Product site: http://127.0.0.1:4100/
4
+ Console: http://127.0.0.1:4100/ui/`}],G=[{question:"我只有一个人用,也需要 cc-gw 吗?",answer:"如果你只有一个脚本、一个 provider,可能暂时不需要。但只要你同时用 Claude Code、OpenAI SDK、Anthropic SDK,或者经常切模型和 Key,一个统一入口就会省很多维护成本。"},{question:"它会不会绑死某个模型供应商?",answer:"不会。cc-gw 的价值正是把 Provider 和客户端解耦。客户端面对 cc-gw,背后的 OpenAI / Anthropic 兼容 Provider、模型映射和路由规则都可以继续调整。"},{question:"它是企业级 AI 平台吗?",answer:"不是。它更适合个人开发者、AI 产品小队和 1-100 人研发团队,用轻量方式先解决入口、日志、路由、Key 管理和排查问题,而不是做大型治理平台。"}],b=[{id:"dashboard",label:"Dashboard",shot:p},{id:"logs",label:"Logs",shot:R},{id:"models",label:"Models & Routing",shot:L},{id:"apikeys",label:"API Keys",shot:O},{id:"events",label:"Events",shot:T}];function o({id:a,eyebrow:l,title:r,description:d,children:i,className:s}){return e.jsxs("section",{id:a,className:x("mx-auto w-full max-w-6xl px-6 py-14 sm:px-8 lg:px-10",s),children:[e.jsxs("div",{className:"max-w-3xl",children:[e.jsx("div",{className:"text-sm font-semibold uppercase tracking-[0.16em] text-indigo-600",children:l}),e.jsx("h2",{className:"mt-3 text-2xl font-semibold tracking-tight text-slate-950 sm:text-3xl",children:r}),e.jsx("p",{className:"mt-4 text-base leading-8 text-slate-600 sm:text-lg",children:d})]}),e.jsx("div",{className:"mt-8",children:i})]})}function Q({href:a,children:l}){return e.jsx("a",{href:a,className:"rounded-full px-3 py-2 text-sm font-medium text-slate-600 transition hover:bg-slate-100 hover:text-slate-950",children:l})}function $(a){if(a.trimStart().startsWith("#"))return e.jsx("span",{className:"text-slate-400",children:a});const l=a.match(/^(\w+)(\s*=\s*)(.+)$/);if(l){const i=l[1]??"",s=l[2]??"",t=l[3]??"",n=t.startsWith("'")||t.startsWith('"');return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-indigo-300",children:i}),e.jsx("span",{className:"text-slate-100",children:s}),e.jsx("span",{className:n?"text-emerald-400":"text-slate-100",children:t})]})}const r=a.match(/^([A-Za-z][A-Za-z\s]*:\s+)(.+)$/);if(r)return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-indigo-300",children:r[1]}),e.jsx("span",{className:"text-emerald-400",children:r[2]})]});const d=a.split(/(--[\w-]+)/g);return d.length>1?e.jsx(e.Fragment,{children:d.map((i,s)=>i.startsWith("--")?e.jsx("span",{className:"text-indigo-300",children:i},s):e.jsx("span",{className:"text-slate-100",children:i},s))}):e.jsx("span",{className:"text-slate-100",children:a})}function H({code:a,label:l,className:r}){const[d,i]=m.useState(!1);async function s(){await v(a),i(!0),window.setTimeout(()=>i(!1),1800)}return e.jsxs("div",{className:x("relative min-w-0",r),children:[e.jsxs("button",{type:"button","aria-label":`复制 ${l}`,onClick:s,className:"absolute right-3 top-3 inline-flex items-center gap-1.5 rounded-xl border border-white/10 bg-white/10 px-2.5 py-1 text-[11px] font-semibold text-slate-100 transition hover:bg-white/15 sm:px-3 sm:py-1.5 sm:text-xs",children:[d?e.jsx(c,{className:"h-3.5 w-3.5"}):e.jsx(w,{className:"h-3.5 w-3.5"}),d?"已复制":"复制"]}),e.jsx("pre",{className:"max-w-full overflow-x-auto rounded-2xl bg-slate-950 p-4 text-xs leading-6 sm:p-5 sm:text-sm sm:leading-7",children:e.jsx("code",{children:a.split(`
5
+ `).map((t,n)=>e.jsx("span",{className:"block",children:$(t)},n))})})]})}function J(){const[a,l]=m.useState(!1),r="npm install -g @chenpu17/cc-gw";async function d(){await v(r),l(!0),window.setTimeout(()=>l(!1),1800)}return e.jsxs("div",{className:"inline-flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 pl-4 pr-2 py-2",children:[e.jsx("span",{className:"select-all font-mono text-sm text-slate-700",children:r}),e.jsxs("span",{className:"rounded-full bg-slate-100 px-2 py-1 text-xs font-medium text-slate-500",children:["v",N]}),e.jsx("button",{type:"button","aria-label":"复制安装命令",onClick:d,className:"inline-flex h-7 w-7 items-center justify-center rounded-xl bg-white text-slate-500 shadow-sm transition hover:bg-slate-100 hover:text-slate-700",children:a?e.jsx(c,{className:"h-3.5 w-3.5 text-emerald-500"}):e.jsx(w,{className:"h-3.5 w-3.5"})})]})}function V(){var i;const[a,l]=m.useState("dashboard"),[r,d]=m.useState(null);return e.jsxs("div",{className:"min-h-screen bg-[radial-gradient(circle_at_top,#eef4ff_0%,#f8fbff_26%,#ffffff_62%)] text-slate-950",children:[e.jsxs("header",{className:"sticky top-0 z-20 border-b border-white/70 bg-white/88 backdrop-blur-xl",children:[e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl items-center justify-between px-6 py-4 sm:px-8 lg:px-10",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(A,{className:"h-11 w-11 shadow-[0_18px_40px_-24px_rgba(79,70,229,0.55)]",title:"cc-gw"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-semibold tracking-tight",children:"cc-gw"}),e.jsx("div",{className:"text-xs text-slate-500",children:"AI gateway for builders"})]})]}),e.jsx("nav",{className:"hidden items-center gap-1 md:flex",children:g.map(s=>e.jsx(Q,{href:s.href,children:s.label},s.href))}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("a",{href:"/ui/",className:"hidden rounded-full border border-slate-300 bg-white px-4 py-2 text-sm font-medium text-slate-700 transition hover:border-slate-400 hover:text-slate-950 sm:inline-flex",children:"打开控制台"}),e.jsxs("a",{href:"https://github.com/chenpu17/cc-gw2",className:"inline-flex items-center gap-2 rounded-full bg-indigo-600 px-4 py-2 text-sm font-medium text-white transition hover:bg-indigo-500",children:["GitHub",e.jsx(C,{className:"h-4 w-4"})]})]})]}),e.jsx("nav",{"aria-label":"移动端页面导航",className:"flex gap-2 overflow-x-auto border-t border-slate-200/70 px-4 py-2 md:hidden",children:[...g,{href:"/ui/",label:"打开控制台"}].map(s=>e.jsx("a",{href:s.href,className:"shrink-0 rounded-full bg-slate-100 px-3 py-1.5 text-sm font-medium text-slate-700",children:s.label},s.href))})]}),e.jsxs("main",{children:[e.jsx("section",{className:"mx-auto w-full max-w-6xl px-6 py-12 sm:px-8 lg:px-10 lg:py-14",children:e.jsx("div",{className:"overflow-hidden rounded-[2rem] border border-white/70 bg-white/78 px-6 py-8 shadow-[0_30px_80px_-44px_rgba(15,23,42,0.24)] ring-1 ring-slate-900/5 backdrop-blur xl:px-8 xl:py-9",children:e.jsxs("div",{className:"grid gap-8 xl:grid-cols-[minmax(0,1.04fr)_minmax(420px,0.96fr)] xl:items-center",children:[e.jsxs("div",{children:[e.jsx("div",{className:"inline-flex items-center rounded-full border border-indigo-100 bg-indigo-50/80 px-4 py-2 text-sm font-semibold text-indigo-700 shadow-sm",children:"Local-first · Open Source · Rust-powered"}),e.jsxs("h1",{className:"mt-5 max-w-4xl text-[2.25rem] font-bold tracking-[-0.04em] text-slate-950 sm:text-[2.75rem] xl:text-[3rem] xl:leading-[1.05]",children:["别再让 AI 配置",e.jsx("span",{className:"block bg-gradient-to-r from-indigo-700 via-violet-600 to-cyan-600 bg-clip-text text-transparent",children:"散落在每个项目里"})]}),e.jsx("p",{className:"mt-5 max-w-2xl text-[1.02rem] leading-8 text-slate-600 xl:text-[1.08rem]",children:"cc-gw 帮你把 Claude Code、OpenAI SDK、Anthropic SDK 和内部工具统一到一个本地优先入口。Key、路由、日志和排查都回到控制台里管理。"}),e.jsx("div",{className:"mt-5 hidden gap-2.5 md:grid md:max-w-xl",children:F.map(s=>e.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 text-sm text-slate-700 shadow-[0_10px_30px_-24px_rgba(15,23,42,0.18)]",children:[e.jsx(c,{className:"h-4 w-4 shrink-0 text-emerald-500"}),e.jsx("span",{children:s})]},s))}),e.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[e.jsxs("a",{href:"https://www.npmjs.com/package/@chenpu17/cc-gw",className:"inline-flex items-center justify-center gap-2 rounded-2xl bg-gradient-to-r from-indigo-600 to-violet-600 px-5 py-3 text-sm font-semibold text-white shadow-[0_18px_36px_-20px_rgba(79,70,229,0.6)] transition hover:from-indigo-500 hover:to-violet-500",children:[e.jsx(f,{className:"h-4 w-4"}),"3 分钟开始接入"]}),e.jsx("a",{href:"/ui/",className:"inline-flex items-center justify-center rounded-2xl border border-slate-300 bg-white px-5 py-3 text-sm font-semibold text-slate-800 transition hover:border-slate-400",children:"先看控制台 →"})]}),e.jsx("p",{className:"mt-3 text-sm text-slate-500",children:"不用先改团队流程。先接一个客户端,看到价值后再慢慢迁移。"}),e.jsx("div",{className:"mt-5",children:e.jsx(J,{})}),e.jsxs("div",{className:"mt-5",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-slate-400",children:"Works with"}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:q.map(s=>e.jsx("div",{className:"rounded-full border border-slate-200 bg-slate-50/88 px-3 py-1.5 text-sm text-slate-700",children:s},s))})]})]}),e.jsxs("div",{className:"relative xl:pl-4",children:[e.jsx("div",{className:"absolute inset-x-6 top-0 h-36 rounded-full bg-gradient-to-r from-indigo-200/60 via-violet-200/45 to-cyan-200/55 blur-3xl"}),e.jsxs("div",{className:"relative rounded-[2rem] border border-white/80 bg-gradient-to-b from-white to-slate-50 p-3 shadow-[0_32px_80px_-40px_rgba(15,23,42,0.34)] ring-1 ring-slate-900/5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 border-b border-slate-100 px-4 py-3",children:[e.jsx("div",{className:"h-3 w-3 rounded-full bg-slate-200"}),e.jsx("div",{className:"h-3 w-3 rounded-full bg-slate-200"}),e.jsx("div",{className:"h-3 w-3 rounded-full bg-slate-200"}),e.jsx("div",{className:"ml-3 flex-1 rounded-md bg-slate-100 px-3 py-1 text-xs text-slate-400",children:"http://127.0.0.1:4100/ui/"})]}),e.jsx("img",{src:p,alt:"cc-gw dashboard screenshot",className:"max-h-[340px] w-full rounded-[1.25rem] object-cover object-top sm:max-h-[440px] xl:max-h-none"})]}),e.jsxs("div",{className:"mt-4 hidden gap-3 sm:grid sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-white/80 bg-white/88 p-4 shadow-[0_18px_40px_-30px_rgba(15,23,42,0.28)]",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-slate-400",children:"Live Ops"}),e.jsx("div",{className:"mt-2 text-3xl font-bold tracking-tight text-slate-950",children:"12"}),e.jsx("div",{className:"mt-1 text-sm text-slate-600",children:"Active Requests right now"})]}),e.jsxs("div",{className:"rounded-2xl border border-white/80 bg-gradient-to-br from-indigo-50 via-white to-cyan-50 p-4 shadow-[0_18px_40px_-30px_rgba(15,23,42,0.22)]",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-slate-400",children:"Included"}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-slate-900",children:"Logs · Routing · API Keys · Profiler"}),e.jsx("div",{className:"mt-1 text-sm text-slate-600",children:"不是单纯转发,而是可管理的团队入口。"})]})]})]})]})})}),e.jsx("div",{className:"py-6",children:e.jsx("div",{className:"mx-auto grid max-w-6xl gap-4 px-6 sm:grid-cols-2 sm:px-8 xl:grid-cols-4 xl:px-10",children:B.map(({value:s,label:t})=>e.jsxs("div",{className:"rounded-[1.4rem] border border-white/75 bg-white/82 px-6 py-5 shadow-[0_20px_50px_-36px_rgba(15,23,42,0.26)] ring-1 ring-slate-900/5",children:[e.jsx("div",{className:"text-3xl font-bold tracking-tight text-slate-950",children:s}),e.jsx("div",{className:"mt-1 text-sm text-slate-500",children:t})]},t))})}),e.jsx(o,{eyebrow:"Day One",title:"从用户视角看,cc-gw 的第一天应该是轻量、可见、可回退的",description:"不是先重构整套 AI 平台,而是先让一个客户端进来、一个入口稳定下来、一次排查变得更简单。",className:"pt-4",children:e.jsxs("div",{className:"grid gap-5 lg:grid-cols-[minmax(0,1.2fr)_minmax(300px,0.8fr)]",children:[e.jsx("div",{className:"grid gap-4",children:E.map(({icon:s,eyebrow:t,title:n,body:_,detail:k})=>e.jsxs("div",{className:"grid gap-4 rounded-[1.6rem] border border-white/80 bg-white/88 p-5 shadow-[0_18px_48px_-36px_rgba(15,23,42,0.22)] sm:grid-cols-[auto_minmax(0,1fr)] sm:items-start",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-100 to-cyan-100 text-indigo-600",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-indigo-500",children:t}),e.jsx("h3",{className:"mt-2 text-lg font-semibold text-slate-950",children:n}),e.jsx("p",{className:"mt-2 text-sm leading-7 text-slate-600",children:_}),e.jsx("div",{className:"mt-3 rounded-2xl bg-slate-50 px-4 py-3 text-sm leading-6 text-slate-500 ring-1 ring-slate-200/70",children:k})]})]},n))}),e.jsxs("div",{className:"rounded-[1.8rem] border border-slate-900/10 bg-slate-950 px-6 py-6 text-white shadow-[0_24px_64px_-38px_rgba(15,23,42,0.5)]",children:[e.jsx("div",{className:"inline-flex items-center rounded-full border border-white/10 bg-white/5 px-3 py-1 text-[11px] font-semibold uppercase tracking-[0.16em] text-indigo-200",children:"What You Get"}),e.jsx("h3",{className:"mt-4 text-2xl font-semibold tracking-tight",children:"不是更重的治理系统,而是更顺手的 AI 工作台"}),e.jsx("p",{className:"mt-3 text-sm leading-7 text-slate-300",children:"对个人开发者和小团队来说,价值不是“功能全”,而是接入当天就能少踩坑、少改配置、少猜问题。"}),e.jsx("div",{className:"mt-5 space-y-3",children:M.map(s=>e.jsxs("div",{className:"flex items-start gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3",children:[e.jsx(c,{className:"mt-0.5 h-4 w-4 shrink-0 text-emerald-300"}),e.jsx("span",{className:"text-sm leading-6 text-slate-200",children:s})]},s))}),e.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-3 lg:grid-cols-1",children:[{value:"3-10 分钟",label:"通常能完成第一次接入"},{value:"1 个入口",label:"客户端开始收口到同一地址"},{value:"先本地",label:"看到价值后再考虑共享部署"}].map(s=>e.jsxs("div",{className:"rounded-2xl bg-white/6 px-4 py-3 ring-1 ring-white/10",children:[e.jsx("div",{className:"text-lg font-semibold text-white",children:s.value}),e.jsx("div",{className:"mt-1 text-xs text-slate-300",children:s.label})]},s.label))})]})]})}),e.jsx(o,{id:"architecture",eyebrow:"Why",title:"AI 接入一多,最先乱的不是模型,而是日常维护",description:"用户真正遇到的问题,通常不是“能不能调通”,而是调通之后配置散落、Key 难管、日志难查、模型切换牵一发动全身。",children:e.jsxs("div",{className:"grid gap-5 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-[1.6rem] border border-rose-100 bg-white/88 p-6 shadow-[0_18px_44px_-34px_rgba(15,23,42,0.22)]",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-rose-50 text-rose-500",children:e.jsx(h,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-rose-500",children:"Before"}),e.jsx("h3",{className:"text-lg font-semibold text-slate-950",children:"没有统一入口时"})]})]}),e.jsx("div",{className:"mt-5 space-y-4",children:[{title:"配置到处复制",body:"每个项目、脚本、客户端都有自己的 base URL、Key 和模型名,时间一久没人敢动。"},{title:"报错难以定位",body:"到底是客户端 payload、协议转换、上游模型,还是 Key 权限问题?没有统一日志就只能猜。"},{title:"切换成本太高",body:"想换 Provider、改默认模型或拆环境,经常要动业务代码、环境变量和多人本地配置。"}].map(s=>e.jsxs("div",{className:"rounded-2xl border border-rose-100/80 bg-rose-50/50 px-4 py-4",children:[e.jsx("h4",{className:"text-sm font-semibold text-slate-950",children:s.title}),e.jsx("p",{className:"mt-1.5 text-sm leading-7 text-slate-600",children:s.body})]},s.title))})]}),e.jsxs("div",{className:"rounded-[1.6rem] border border-emerald-100 bg-white/88 p-6 shadow-[0_18px_44px_-34px_rgba(15,23,42,0.22)]",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-emerald-50 text-emerald-500",children:e.jsx(c,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-emerald-500",children:"After"}),e.jsx("h3",{className:"text-lg font-semibold text-slate-950",children:"有了 cc-gw 之后"})]})]}),e.jsx("div",{className:"mt-5 space-y-4",children:[{title:"客户端只认一个入口",body:"Claude Code、OpenAI SDK、Anthropic SDK 和内部工具都先接到 cc-gw,配置明显收敛。"},{title:"日志和链路有地方看",body:"请求是否进来、打到了哪里、哪里慢、哪里错,都可以先从控制台开始排查。"},{title:"路由演进不打扰业务",body:"改默认模型、切 Provider、拆 endpoint 或按客户端分 Key,都尽量留在网关层完成。"}].map(s=>e.jsxs("div",{className:"rounded-2xl border border-emerald-100/80 bg-emerald-50/50 px-4 py-4",children:[e.jsx("h4",{className:"text-sm font-semibold text-slate-950",children:s.title}),e.jsx("p",{className:"mt-1.5 text-sm leading-7 text-slate-600",children:s.body})]},s.title))})]})]})}),e.jsx(o,{id:"features",eyebrow:"Benefits",title:"它先解决的是接入后的维护成本,不是再发明一套平台流程",description:"当你已经开始同时接多个模型、多个客户端和多个环境时,cc-gw 的价值体现在收口入口、保留观测性,并把变更尽量留在网关层。",children:e.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:W.map(({icon:s,title:t,body:n})=>e.jsxs("div",{className:"rounded-[1.5rem] border border-white/80 bg-white/88 p-6 shadow-[0_18px_44px_-34px_rgba(15,23,42,0.26)] transition-shadow hover:shadow-[0_24px_54px_-34px_rgba(15,23,42,0.3)]",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-100 to-cyan-100 text-indigo-600",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("div",{className:"mt-4 text-lg font-semibold text-slate-950",children:t}),e.jsx("p",{className:"mt-2 text-sm leading-7 text-slate-600",children:n})]},t))})}),e.jsx(o,{id:"quickstart",eyebrow:"Quick Start",title:"先接一个客户端,马上看到价值",description:"不用一次性迁完整个团队。先从一个常用客户端开始,把请求、日志和路由接进控制台。",className:"pt-2",children:e.jsx("div",{className:"space-y-4",children:z.map((s,t)=>e.jsxs("div",{className:"grid gap-5 rounded-[1.6rem] border border-white/80 bg-white/88 p-5 shadow-[0_18px_48px_-36px_rgba(15,23,42,0.26)] lg:grid-cols-[80px_minmax(0,0.8fr)_minmax(0,1.1fr)] lg:items-start",children:[e.jsxs("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-100 to-violet-100 text-lg font-semibold text-indigo-700",children:["0",t+1]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-semibold text-slate-950",children:s.title}),e.jsx("p",{className:"mt-3 text-sm leading-7 text-slate-600",children:s.body})]}),e.jsx(H,{label:`${s.title}代码`,code:s.code})]},s.title))})}),e.jsx(o,{id:"console",eyebrow:"Console",title:"控制台不是摆设,是你每天排查和切换的地方",description:"请求进来之后,你能看到趋势、过滤日志、调整路由、管理 API Keys,并用 Profiler 追踪慢请求和异常。",children:e.jsxs("div",{className:"overflow-hidden rounded-[1.7rem] border border-white/80 bg-white/88 shadow-[0_22px_56px_-38px_rgba(15,23,42,0.28)] ring-1 ring-slate-900/5",children:[e.jsx("div",{className:"flex flex-wrap gap-1 border-b border-slate-100 px-4 pt-4",children:b.map(s=>e.jsx("button",{type:"button",onClick:()=>l(s.id),className:x("rounded-t-lg px-4 py-2 text-sm font-medium transition-colors",a===s.id?"border-b-2 border-indigo-600 bg-indigo-50 text-indigo-700":"text-slate-500 hover:text-slate-900"),children:s.label},s.id))}),e.jsx("div",{className:"p-4",children:e.jsx("img",{src:((i=b.find(s=>s.id===a))==null?void 0:i.shot)??p,alt:a,className:"w-full rounded-xl border border-slate-100"})}),e.jsx("div",{className:"grid gap-3 px-4 pb-4 md:grid-cols-3",children:["先看请求有没有进来,再看它去了哪个上游、用了多少 Token、哪里慢。","业务代码只面对一个入口,协议兼容和模型路由留给网关慢慢演进。","更像小团队自己的 AI 调用工作台,而不是只会转发请求的代理。"].map(s=>e.jsx("div",{className:"rounded-xl border border-slate-100 bg-gradient-to-br from-slate-50 to-white px-4 py-3 text-sm leading-6 text-slate-600",children:s},s))})]})}),e.jsxs(o,{id:"fit",eyebrow:"Fit",title:"什么时候它会明显省事,什么时候你其实还不需要它",description:"如果你的 AI 接入已经开始扩张,但又没到要上组织级治理平台的程度,cc-gw 往往正好卡在那个合适的区间。",children:[e.jsx("div",{className:"mb-5 grid gap-4 lg:grid-cols-3",children:U.map(s=>e.jsxs("div",{className:"rounded-[1.45rem] border border-white/80 bg-white/88 p-5 shadow-[0_18px_40px_-34px_rgba(15,23,42,0.18)]",children:[e.jsx("p",{className:"text-sm font-semibold text-slate-950",children:s.title}),e.jsx("p",{className:"mt-2 text-sm leading-7 text-slate-600",children:s.body})]},s.title))}),e.jsxs("div",{className:"grid gap-5 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-[1.6rem] border border-emerald-100 bg-emerald-50/72 p-7 shadow-[0_18px_46px_-34px_rgba(16,185,129,0.22)]",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-emerald-100",children:e.jsx(c,{className:"h-4 w-4 text-emerald-600"})}),e.jsx("h3",{className:"text-base font-semibold text-slate-900",children:"适合谁"})]}),e.jsx("ul",{className:"space-y-2.5",children:["个人开发者、AI 产品小队","1-100 人的软件研发团队","正在用多个 AI provider 的团队","觉得 key、baseURL 和模型配置越来越乱","想要先收口再慢慢治理的团队"].map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-slate-700",children:[e.jsx(c,{className:"mt-0.5 h-4 w-4 shrink-0 text-emerald-500"}),s]},s))})]}),e.jsxs("div",{className:"rounded-[1.6rem] border border-slate-200 bg-white/78 p-7 shadow-[0_18px_46px_-34px_rgba(15,23,42,0.16)]",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-slate-200",children:e.jsx(h,{className:"h-4 w-4 text-slate-500"})}),e.jsx("h3",{className:"text-base font-semibold text-slate-900",children:"不适合谁"})]}),e.jsx("ul",{className:"space-y-2.5",children:["需要跨 BU 统一治理的大企业","需要复杂审批流程和审计流转","企业 SSO 与组织级策略中台","需要 HA/高可用集群部署","Compliance-first 的金融/医疗场景"].map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-slate-700",children:[e.jsx(h,{className:"mt-0.5 h-4 w-4 shrink-0 text-slate-400"}),s]},s))})]})]})]}),e.jsxs(o,{id:"faq",eyebrow:"FAQ",title:"常见问题",description:"从是否值得试、是否会绑死、是否过重这几个用户关心的问题开始。",className:"pb-24",children:[e.jsx("div",{className:"grid gap-4",children:G.map((s,t)=>e.jsxs("div",{className:"overflow-hidden rounded-[1.35rem] border border-white/80 bg-white/88 shadow-[0_16px_40px_-34px_rgba(15,23,42,0.2)]",children:[e.jsxs("button",{type:"button",onClick:()=>d(r===t?null:t),className:"flex w-full items-center justify-between px-6 py-5 text-left",children:[e.jsx("span",{className:"text-base font-semibold text-slate-900",children:s.question}),e.jsx(S,{className:x("h-5 w-5 text-slate-400 transition-transform",r===t&&"rotate-180")})]}),r===t&&e.jsx("div",{className:"px-6 pb-5 text-sm leading-7 text-slate-600",children:s.answer})]},s.question))}),e.jsx("div",{className:"relative mt-8 overflow-hidden rounded-[1.8rem] border border-slate-800/20 bg-slate-950 px-8 py-10 text-white shadow-[0_28px_80px_-44px_rgba(15,23,42,0.5)]",style:{backgroundImage:"radial-gradient(circle at top left, rgba(129,140,248,0.2), transparent 32%), radial-gradient(circle at bottom right, rgba(34,211,238,0.12), transparent 28%), radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1px)",backgroundSize:"auto, auto, 24px 24px"},children:e.jsxs("div",{className:"relative grid gap-8 lg:grid-cols-[1fr_auto] lg:items-end",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-3xl font-semibold tracking-tight",children:"先把 AI 调用管顺,再慢慢扩展团队协作。"}),e.jsx("p",{className:"mt-4 max-w-3xl text-base leading-8 text-slate-300",children:"不需要一开始就建设企业级平台。先用 cc-gw 把入口、路由、日志和 Key 管理收回来,今天就能开始。"})]}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row lg:flex-col",children:[e.jsx("a",{href:"https://www.npmjs.com/package/@chenpu17/cc-gw",className:"inline-flex items-center justify-center rounded-2xl bg-white px-5 py-3 text-sm font-semibold text-slate-950 transition hover:bg-slate-100",children:"npm 安装"}),e.jsx("a",{href:"/ui/",className:"inline-flex items-center justify-center rounded-2xl border border-white/20 bg-white/5 px-5 py-3 text-sm font-semibold text-white transition hover:bg-white/10",children:"打开控制台"})]})]})})]})]}),e.jsx("footer",{className:"border-t border-white/80 bg-white/70",children:e.jsxs("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-6 py-8 text-sm text-slate-500 sm:px-8 lg:flex-row lg:items-center lg:justify-between lg:px-10",children:[e.jsxs("div",{children:[e.jsx("div",{children:"cc-gw · Local-first AI gateway for personal developers and small software teams."}),e.jsxs("div",{className:"mt-1 text-xs",children:["v",N]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsx("a",{href:"/ui/",className:"hover:text-slate-900",children:"控制台"}),e.jsx("a",{href:"https://www.npmjs.com/package/@chenpu17/cc-gw",className:"hover:text-slate-900",children:"npm"}),e.jsx("a",{href:"https://github.com/chenpu17/cc-gw2",className:"hover:text-slate-900",children:"GitHub"}),e.jsx("a",{href:"https://github.com/chenpu17/cc-gw2/releases",className:"hover:text-slate-900",children:"Changelog"})]})]})})]})}const y=document.getElementById("landing-root");if(!y)throw new Error("Root element #landing-root not found");K.createRoot(y).render(e.jsx(P.StrictMode,{children:e.jsx(V,{})}));
@@ -0,0 +1 @@
1
+ const o="0.8.10",s={version:o};export{s as p};
@@ -0,0 +1 @@
1
+ import{r as i,j as o}from"./vendor-LWJeAdU1.js";import{l as n,m,n as p,o as a}from"./radix-bG5h1Ymq.js";import{c as l}from"./global-B_AcmMvG.js";const g=n,v=m,c=i.forwardRef(({className:t,align:e="center",sideOffset:r=4,...s},d)=>o.jsx(p,{children:o.jsx(a,{ref:d,align:e,sideOffset:r,className:l("z-50 w-72 rounded-[1.1rem] border border-[color:var(--surface-border)] bg-popover/96 p-4 text-popover-foreground shadow-[var(--surface-shadow-lg)] backdrop-blur outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...s})}));c.displayName=a.displayName;export{g as P,v as a,c as b};
@@ -1 +1 @@
1
- import{r as o,j as w,s as m,n as v,a as C,i as Q,Q as I,M as T}from"./vendor-DfnQOGOQ.js";var b=o.createContext(void 0),x=e=>{const s=o.useContext(b);if(!s)throw new Error("No QueryClient set, use QueryClientProvider to set one");return s},L=({client:e,children:s})=>(o.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),w.jsx(b.Provider,{value:e,children:s})),p=o.createContext(!1),O=()=>o.useContext(p);p.Provider;function P(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var N=o.createContext(P()),d=()=>o.useContext(N),B=(e,s,a)=>{const r=a!=null&&a.state.error&&typeof e.throwOnError=="function"?m(e.throwOnError,[a.state.error,a]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(s.isReset()||(e.retryOnMount=!1))},k=e=>{o.useEffect(()=>{e.clearReset()},[e])},U=({result:e,errorResetBoundary:s,throwOnError:a,query:r,suspense:n})=>e.isError&&!s.isReset()&&!e.isFetching&&r&&(n&&e.data===void 0||m(a,[e.error,r])),j=e=>{if(e.suspense){const a=n=>n==="static"?n:Math.max(n??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...n)=>a(r(...n)):a(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},F=(e,s)=>e.isLoading&&e.isFetching&&!s,H=(e,s)=>(e==null?void 0:e.suspense)&&s.isPending,g=(e,s,a)=>s.fetchOptimistic(e).catch(()=>{a.clearReset()});function D(e,s,a){var E,R,h,S;const r=O(),n=d(),i=x(),t=i.defaultQueryOptions(e);(R=(E=i.getDefaultOptions().queries)==null?void 0:E._experimental_beforeQuery)==null||R.call(E,t);const c=i.getQueryCache().get(t.queryHash);t._optimisticResults=r?"isRestoring":"optimistic",j(t),B(t,n,c),k(n);const M=!i.getQueryCache().get(t.queryHash),[u]=o.useState(()=>new s(i,t)),l=u.getOptimisticResult(t),y=!r&&e.subscribed!==!1;if(o.useSyncExternalStore(o.useCallback(f=>{const _=y?u.subscribe(v.batchCalls(f)):C;return u.updateResult(),_},[u,y]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),o.useEffect(()=>{u.setOptions(t)},[t,u]),H(t,l))throw g(t,u,n);if(U({result:l,errorResetBoundary:n,throwOnError:t.throwOnError,query:c,suspense:t.suspense}))throw l.error;if((S=(h=i.getDefaultOptions().queries)==null?void 0:h._experimental_afterQuery)==null||S.call(h,t,l),t.experimental_prefetchInRender&&!Q&&F(l,r)){const f=M?g(t,u,n):c==null?void 0:c.promise;f==null||f.catch(C).finally(()=>{u.updateResult()})}return t.notifyOnChangeProps?l:u.trackResult(l)}function V(e,s){return D(e,I)}function q(e,s){const a=x(),[r]=o.useState(()=>new T(a,e));o.useEffect(()=>{r.setOptions(e)},[r,e]);const n=o.useSyncExternalStore(o.useCallback(t=>r.subscribe(v.batchCalls(t)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),i=o.useCallback((t,c)=>{r.mutate(t,c).catch(C)},[r]);if(n.error&&m(r.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:i,mutateAsync:n.mutate}}export{L as Q,V as a,q as b,x as u};
1
+ import{r as o,j as w,s as m,n as v,a as C,i as Q,Q as I,M as T}from"./vendor-LWJeAdU1.js";var b=o.createContext(void 0),x=e=>{const s=o.useContext(b);if(!s)throw new Error("No QueryClient set, use QueryClientProvider to set one");return s},L=({client:e,children:s})=>(o.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),w.jsx(b.Provider,{value:e,children:s})),p=o.createContext(!1),O=()=>o.useContext(p);p.Provider;function P(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var N=o.createContext(P()),d=()=>o.useContext(N),B=(e,s,a)=>{const r=a!=null&&a.state.error&&typeof e.throwOnError=="function"?m(e.throwOnError,[a.state.error,a]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(s.isReset()||(e.retryOnMount=!1))},k=e=>{o.useEffect(()=>{e.clearReset()},[e])},U=({result:e,errorResetBoundary:s,throwOnError:a,query:r,suspense:n})=>e.isError&&!s.isReset()&&!e.isFetching&&r&&(n&&e.data===void 0||m(a,[e.error,r])),j=e=>{if(e.suspense){const a=n=>n==="static"?n:Math.max(n??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...n)=>a(r(...n)):a(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},F=(e,s)=>e.isLoading&&e.isFetching&&!s,H=(e,s)=>(e==null?void 0:e.suspense)&&s.isPending,g=(e,s,a)=>s.fetchOptimistic(e).catch(()=>{a.clearReset()});function D(e,s,a){var E,R,h,S;const r=O(),n=d(),i=x(),t=i.defaultQueryOptions(e);(R=(E=i.getDefaultOptions().queries)==null?void 0:E._experimental_beforeQuery)==null||R.call(E,t);const c=i.getQueryCache().get(t.queryHash);t._optimisticResults=r?"isRestoring":"optimistic",j(t),B(t,n,c),k(n);const M=!i.getQueryCache().get(t.queryHash),[u]=o.useState(()=>new s(i,t)),l=u.getOptimisticResult(t),y=!r&&e.subscribed!==!1;if(o.useSyncExternalStore(o.useCallback(f=>{const _=y?u.subscribe(v.batchCalls(f)):C;return u.updateResult(),_},[u,y]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),o.useEffect(()=>{u.setOptions(t)},[t,u]),H(t,l))throw g(t,u,n);if(U({result:l,errorResetBoundary:n,throwOnError:t.throwOnError,query:c,suspense:t.suspense}))throw l.error;if((S=(h=i.getDefaultOptions().queries)==null?void 0:h._experimental_afterQuery)==null||S.call(h,t,l),t.experimental_prefetchInRender&&!Q&&F(l,r)){const f=M?g(t,u,n):c==null?void 0:c.promise;f==null||f.catch(C).finally(()=>{u.updateResult()})}return t.notifyOnChangeProps?l:u.trackResult(l)}function V(e,s){return D(e,I)}function q(e,s){const a=x(),[r]=o.useState(()=>new T(a,e));o.useEffect(()=>{r.setOptions(e)},[r,e]);const n=o.useSyncExternalStore(o.useCallback(t=>r.subscribe(v.batchCalls(t)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),i=o.useCallback((t,c)=>{r.mutate(t,c).catch(C)},[r]);if(n.error&&m(r.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:i,mutateAsync:n.mutate}}export{L as Q,V as a,q as b,x as u};
@@ -0,0 +1 @@
1
+ import{j as a,$ as s}from"./vendor-LWJeAdU1.js";import{c as o}from"./global-B_AcmMvG.js";const i=s("inline-flex items-center rounded-md border-0 px-2 py-0.5 text-[11px] font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"bg-primary/10 text-primary",secondary:"border-transparent bg-secondary text-muted-foreground",destructive:"bg-red-100 text-red-700 dark:bg-red-950/40 dark:text-red-400",outline:"border border-border bg-transparent text-muted-foreground",success:"gap-1.5 bg-emerald-100 text-emerald-800 before:h-1.5 before:w-1.5 before:rounded-full before:bg-emerald-500 dark:bg-emerald-950/40 dark:text-emerald-400",warning:"bg-amber-100 text-amber-800 dark:bg-amber-950/40 dark:text-amber-400",info:"bg-indigo-100 text-indigo-700 dark:bg-indigo-950/40 dark:text-indigo-400",purple:"bg-violet-100 text-violet-700 dark:bg-violet-950/40 dark:text-violet-400",pink:"bg-pink-100 text-pink-700 dark:bg-pink-950/40 dark:text-pink-400"}},defaultVariants:{variant:"default"}});function l({className:e,variant:t,...r}){return a.jsx("div",{className:o(i({variant:t}),e),...r})}const g={auth:{session:()=>["auth","session"],web:()=>["auth","web"]},config:{full:()=>["config","full"],info:()=>["config","info"],exportTimeout:()=>["config","export-timeout"]},customEndpoints:{all:()=>["custom-endpoints"]},providers:{all:()=>["providers","all"]},stats:{overview:(e="all")=>["stats","overview",e],daily:(e,t="all")=>["stats","daily",e,t],model:(e,t,r="all")=>["stats","model",e,t,r]},status:{byEndpoint:(e="all")=>["status",e],gateway:()=>["status","gateway"]},db:{info:()=>["db","info"]},logs:{list:e=>["logs",e],recent:(e="all")=>["logs","recent",e],detail:e=>["logs","detail",e]},events:{list:e=>["events",e]},apiKeys:{all:()=>["api-keys"],overview:e=>["api-keys","overview",e],usage:e=>["api-keys","usage",e]},profiler:{status:()=>["profiler","status"],sessions:e=>["profiler","sessions",e],session:e=>["profiler","session",e]}};export{l as B,g as q};
@@ -1,5 +1,5 @@
1
- import{r as s,j as u,R as It,o as Mt,q as ge,u as Mr,t as Nr,v as Ar,w as Or,x as Dr,y as jr,z as Lr,B as Fr,C as kr,D as $r,E as Je,F as Qe}from"./vendor-DfnQOGOQ.js";function Xt(e,n){if(typeof e=="function")return e(n);e!=null&&(e.current=n)}function Fe(...e){return n=>{let t=!1;const o=e.map(r=>{const a=Xt(r,n);return!t&&typeof a=="function"&&(t=!0),a});if(t)return()=>{for(let r=0;r<o.length;r++){const a=o[r];typeof a=="function"?a():Xt(e[r],null)}}}}function M(...e){return s.useCallback(Fe(...e),e)}var Br=Symbol.for("react.lazy"),ze=It[" use ".trim().toString()];function Ur(e){return typeof e=="object"&&e!==null&&"then"in e}function sn(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Br&&"_payload"in e&&Ur(e._payload)}function Hr(e){const n=Wr(e),t=s.forwardRef((o,r)=>{let{children:a,...c}=o;sn(a)&&typeof ze=="function"&&(a=ze(a._payload));const i=s.Children.toArray(a),l=i.find(Gr);if(l){const d=l.props.children,f=i.map(p=>p===l?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return u.jsx(n,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return u.jsx(n,{...c,ref:r,children:a})});return t.displayName=`${e}.Slot`,t}var li=Hr("Slot");function Wr(e){const n=s.forwardRef((t,o)=>{let{children:r,...a}=t;if(sn(r)&&typeof ze=="function"&&(r=ze(r._payload)),s.isValidElement(r)){const c=zr(r),i=Vr(a,r.props);return r.type!==s.Fragment&&(i.ref=o?Fe(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var Kr=Symbol("radix.slottable");function Gr(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Kr}function Vr(e,n){const t={...n};for(const o in n){const r=e[o],a=n[o];/^on[A-Z]/.test(o)?r&&a?t[o]=(...i)=>{const l=a(...i);return r(...i),l}:r&&(t[o]=r):o==="style"?t[o]={...r,...a}:o==="className"&&(t[o]=[r,a].filter(Boolean).join(" "))}return{...e,...t}}function zr(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function E(e,n,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e==null||e(r),t===!1||!r.defaultPrevented)return n==null?void 0:n(r)}}function Yr(e,n){const t=s.createContext(n),o=a=>{const{children:c,...i}=a,l=s.useMemo(()=>i,Object.values(i));return u.jsx(t.Provider,{value:l,children:c})};o.displayName=e+"Provider";function r(a){const c=s.useContext(t);if(c)return c;if(n!==void 0)return n;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[o,r]}function ie(e,n=[]){let t=[];function o(a,c){const i=s.createContext(c),l=t.length;t=[...t,c];const d=p=>{var y;const{scope:m,children:h,...C}=p,v=((y=m==null?void 0:m[e])==null?void 0:y[l])||i,g=s.useMemo(()=>C,Object.values(C));return u.jsx(v.Provider,{value:g,children:h})};d.displayName=a+"Provider";function f(p,m){var v;const h=((v=m==null?void 0:m[e])==null?void 0:v[l])||i,C=s.useContext(h);if(C)return C;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[d,f]}const r=()=>{const a=t.map(c=>s.createContext(c));return function(i){const l=(i==null?void 0:i[e])||a;return s.useMemo(()=>({[`__scope${e}`]:{...i,[e]:l}}),[i,l])}};return r.scopeName=e,[o,Xr(r,...n)]}function Xr(...e){const n=e[0];if(e.length===1)return n;const t=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(a){const c=o.reduce((i,{useScope:l,scopeName:d})=>{const p=l(a)[`__scope${d}`];return{...i,...p}},{});return s.useMemo(()=>({[`__scope${n.scopeName}`]:c}),[c])}};return t.scopeName=n.scopeName,t}var X=globalThis!=null&&globalThis.document?s.useLayoutEffect:()=>{},qr=It[" useInsertionEffect ".trim().toString()]||X;function fe({prop:e,defaultProp:n,onChange:t=()=>{},caller:o}){const[r,a,c]=Zr({defaultProp:n,onChange:t}),i=e!==void 0,l=i?e:r;{const f=s.useRef(e!==void 0);s.useEffect(()=>{const p=f.current;p!==i&&console.warn(`${o} is changing from ${p?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,o])}const d=s.useCallback(f=>{var p;if(i){const m=Jr(f)?f(e):f;m!==e&&((p=c.current)==null||p.call(c,m))}else a(f)},[i,e,a,c]);return[l,d]}function Zr({defaultProp:e,onChange:n}){const[t,o]=s.useState(e),r=s.useRef(t),a=s.useRef(n);return qr(()=>{a.current=n},[n]),s.useEffect(()=>{var c;r.current!==t&&((c=a.current)==null||c.call(a,t),r.current=t)},[t,r]),[t,o,a]}function Jr(e){return typeof e=="function"}function xe(e){const n=Qr(e),t=s.forwardRef((o,r)=>{const{children:a,...c}=o,i=s.Children.toArray(a),l=i.find(ts);if(l){const d=l.props.children,f=i.map(p=>p===l?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return u.jsx(n,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return u.jsx(n,{...c,ref:r,children:a})});return t.displayName=`${e}.Slot`,t}function Qr(e){const n=s.forwardRef((t,o)=>{const{children:r,...a}=t;if(s.isValidElement(r)){const c=os(r),i=ns(a,r.props);return r.type!==s.Fragment&&(i.ref=o?Fe(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var an=Symbol("radix.slottable");function es(e){const n=({children:t})=>u.jsx(u.Fragment,{children:t});return n.displayName=`${e}.Slottable`,n.__radixId=an,n}function ts(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===an}function ns(e,n){const t={...n};for(const o in n){const r=e[o],a=n[o];/^on[A-Z]/.test(o)?r&&a?t[o]=(...i)=>{const l=a(...i);return r(...i),l}:r&&(t[o]=r):o==="style"?t[o]={...r,...a}:o==="className"&&(t[o]=[r,a].filter(Boolean).join(" "))}return{...e,...t}}function os(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var rs=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_=rs.reduce((e,n)=>{const t=xe(`Primitive.${n}`),o=s.forwardRef((r,a)=>{const{asChild:c,...i}=r,l=c?t:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...i,ref:a})});return o.displayName=`Primitive.${n}`,{...e,[n]:o}},{});function cn(e,n){e&&Mt.flushSync(()=>e.dispatchEvent(n))}function Nt(e){const n=e+"CollectionProvider",[t,o]=ie(n),[r,a]=t(n,{collectionRef:{current:null},itemMap:new Map}),c=v=>{const{scope:g,children:y}=v,x=ge.useRef(null),w=ge.useRef(new Map).current;return u.jsx(r,{scope:g,itemMap:w,collectionRef:x,children:y})};c.displayName=n;const i=e+"CollectionSlot",l=xe(i),d=ge.forwardRef((v,g)=>{const{scope:y,children:x}=v,w=a(i,y),S=M(g,w.collectionRef);return u.jsx(l,{ref:S,children:x})});d.displayName=i;const f=e+"CollectionItemSlot",p="data-radix-collection-item",m=xe(f),h=ge.forwardRef((v,g)=>{const{scope:y,children:x,...w}=v,S=ge.useRef(null),I=M(g,S),A=a(f,y);return ge.useEffect(()=>(A.itemMap.set(S,{ref:S,...w}),()=>void A.itemMap.delete(S))),u.jsx(m,{[p]:"",ref:I,children:x})});h.displayName=f;function C(v){const g=a(e+"CollectionConsumer",v);return ge.useCallback(()=>{const x=g.collectionRef.current;if(!x)return[];const w=Array.from(x.querySelectorAll(`[${p}]`));return Array.from(g.itemMap.values()).sort((A,b)=>w.indexOf(A.ref.current)-w.indexOf(b.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:c,Slot:d,ItemSlot:h},C,o]}var ss=s.createContext(void 0);function At(e){const n=s.useContext(ss);return e||n||"ltr"}function ce(e){const n=s.useRef(e);return s.useEffect(()=>{n.current=e}),s.useMemo(()=>(...t)=>{var o;return(o=n.current)==null?void 0:o.call(n,...t)},[])}function as(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e);s.useEffect(()=>{const o=r=>{r.key==="Escape"&&t(r)};return n.addEventListener("keydown",o,{capture:!0}),()=>n.removeEventListener("keydown",o,{capture:!0})},[t,n])}var cs="DismissableLayer",wt="dismissableLayer.update",is="dismissableLayer.pointerDownOutside",ls="dismissableLayer.focusOutside",qt,ln=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),be=s.forwardRef((e,n)=>{const{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:c,onDismiss:i,...l}=e,d=s.useContext(ln),[f,p]=s.useState(null),m=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=s.useState({}),C=M(n,b=>p(b)),v=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=v.indexOf(g),x=f?v.indexOf(f):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,S=x>=y,I=fs(b=>{const T=b.target,B=[...d.branches].some($=>$.contains(T));!S||B||(r==null||r(b),c==null||c(b),b.defaultPrevented||i==null||i())},m),A=ps(b=>{const T=b.target;[...d.branches].some($=>$.contains(T))||(a==null||a(b),c==null||c(b),b.defaultPrevented||i==null||i())},m);return as(b=>{x===d.layers.size-1&&(o==null||o(b),!b.defaultPrevented&&i&&(b.preventDefault(),i()))},m),s.useEffect(()=>{if(f)return t&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(qt=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Zt(),()=>{t&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=qt)}},[f,m,t,d]),s.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Zt())},[f,d]),s.useEffect(()=>{const b=()=>h({});return document.addEventListener(wt,b),()=>document.removeEventListener(wt,b)},[]),u.jsx(_.div,{...l,ref:C,style:{pointerEvents:w?S?"auto":"none":void 0,...e.style},onFocusCapture:E(e.onFocusCapture,A.onFocusCapture),onBlurCapture:E(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,I.onPointerDownCapture)})});be.displayName=cs;var us="DismissableLayerBranch",ds=s.forwardRef((e,n)=>{const t=s.useContext(ln),o=s.useRef(null),r=M(n,o);return s.useEffect(()=>{const a=o.current;if(a)return t.branches.add(a),()=>{t.branches.delete(a)}},[t.branches]),u.jsx(_.div,{...e,ref:r})});ds.displayName=us;function fs(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e),o=s.useRef(!1),r=s.useRef(()=>{});return s.useEffect(()=>{const a=i=>{if(i.target&&!o.current){let l=function(){un(is,t,d,{discrete:!0})};const d={originalEvent:i};i.pointerType==="touch"?(n.removeEventListener("click",r.current),r.current=l,n.addEventListener("click",r.current,{once:!0})):l()}else n.removeEventListener("click",r.current);o.current=!1},c=window.setTimeout(()=>{n.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(c),n.removeEventListener("pointerdown",a),n.removeEventListener("click",r.current)}},[n,t]),{onPointerDownCapture:()=>o.current=!0}}function ps(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e),o=s.useRef(!1);return s.useEffect(()=>{const r=a=>{a.target&&!o.current&&un(ls,t,{originalEvent:a},{discrete:!1})};return n.addEventListener("focusin",r),()=>n.removeEventListener("focusin",r)},[n,t]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Zt(){const e=new CustomEvent(wt);document.dispatchEvent(e)}function un(e,n,t,{discrete:o}){const r=t.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});n&&r.addEventListener(e,n,{once:!0}),o?cn(r,a):r.dispatchEvent(a)}var mt=0;function et(){s.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Jt()),document.body.insertAdjacentElement("beforeend",e[1]??Jt()),mt++,()=>{mt===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),mt--}},[])}function Jt(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ht="focusScope.autoFocusOnMount",gt="focusScope.autoFocusOnUnmount",Qt={bubbles:!1,cancelable:!0},vs="FocusScope",ke=s.forwardRef((e,n)=>{const{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...c}=e,[i,l]=s.useState(null),d=ce(r),f=ce(a),p=s.useRef(null),m=M(n,v=>l(v)),h=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(o){let v=function(w){if(h.paused||!i)return;const S=w.target;i.contains(S)?p.current=S:de(p.current,{select:!0})},g=function(w){if(h.paused||!i)return;const S=w.relatedTarget;S!==null&&(i.contains(S)||de(p.current,{select:!0}))},y=function(w){if(document.activeElement===document.body)for(const I of w)I.removedNodes.length>0&&de(i)};document.addEventListener("focusin",v),document.addEventListener("focusout",g);const x=new MutationObserver(y);return i&&x.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",g),x.disconnect()}}},[o,i,h.paused]),s.useEffect(()=>{if(i){tn.add(h);const v=document.activeElement;if(!i.contains(v)){const y=new CustomEvent(ht,Qt);i.addEventListener(ht,d),i.dispatchEvent(y),y.defaultPrevented||(ms(Cs(dn(i)),{select:!0}),document.activeElement===v&&de(i))}return()=>{i.removeEventListener(ht,d),setTimeout(()=>{const y=new CustomEvent(gt,Qt);i.addEventListener(gt,f),i.dispatchEvent(y),y.defaultPrevented||de(v??document.body,{select:!0}),i.removeEventListener(gt,f),tn.remove(h)},0)}}},[i,d,f,h]);const C=s.useCallback(v=>{if(!t&&!o||h.paused)return;const g=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,y=document.activeElement;if(g&&y){const x=v.currentTarget,[w,S]=hs(x);w&&S?!v.shiftKey&&y===S?(v.preventDefault(),t&&de(w,{select:!0})):v.shiftKey&&y===w&&(v.preventDefault(),t&&de(S,{select:!0})):y===x&&v.preventDefault()}},[t,o,h.paused]);return u.jsx(_.div,{tabIndex:-1,...c,ref:m,onKeyDown:C})});ke.displayName=vs;function ms(e,{select:n=!1}={}){const t=document.activeElement;for(const o of e)if(de(o,{select:n}),document.activeElement!==t)return}function hs(e){const n=dn(e),t=en(n,e),o=en(n.reverse(),e);return[t,o]}function dn(e){const n=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)n.push(t.currentNode);return n}function en(e,n){for(const t of e)if(!gs(t,{upTo:n}))return t}function gs(e,{upTo:n}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n!==void 0&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function xs(e){return e instanceof HTMLInputElement&&"select"in e}function de(e,{select:n=!1}={}){if(e&&e.focus){const t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&xs(e)&&n&&e.select()}}var tn=ws();function ws(){let e=[];return{add(n){const t=e[0];n!==t&&(t==null||t.pause()),e=nn(e,n),e.unshift(n)},remove(n){var t;e=nn(e,n),(t=e[0])==null||t.resume()}}}function nn(e,n){const t=[...e],o=t.indexOf(n);return o!==-1&&t.splice(o,1),t}function Cs(e){return e.filter(n=>n.tagName!=="A")}var ys=It[" useId ".trim().toString()]||(()=>{}),Es=0;function re(e){const[n,t]=s.useState(ys());return X(()=>{t(o=>o??String(Es++))},[e]),e||(n?`radix-${n}`:"")}var Ss="Arrow",fn=s.forwardRef((e,n)=>{const{children:t,width:o=10,height:r=5,...a}=e;return u.jsx(_.svg,{...a,ref:n,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?t:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});fn.displayName=Ss;var Ps=fn;function pn(e){const[n,t]=s.useState(void 0);return X(()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const a=r[0];let c,i;if("borderBoxSize"in a){const l=a.borderBoxSize,d=Array.isArray(l)?l[0]:l;c=d.inlineSize,i=d.blockSize}else c=e.offsetWidth,i=e.offsetHeight;t({width:c,height:i})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else t(void 0)},[e]),n}var Ot="Popper",[vn,pe]=ie(Ot),[Rs,mn]=vn(Ot),hn=e=>{const{__scopePopper:n,children:t}=e,[o,r]=s.useState(null);return u.jsx(Rs,{scope:n,anchor:o,onAnchorChange:r,children:t})};hn.displayName=Ot;var gn="PopperAnchor",xn=s.forwardRef((e,n)=>{const{__scopePopper:t,virtualRef:o,...r}=e,a=mn(gn,t),c=s.useRef(null),i=M(n,c),l=s.useRef(null);return s.useEffect(()=>{const d=l.current;l.current=(o==null?void 0:o.current)||c.current,d!==l.current&&a.onAnchorChange(l.current)}),o?null:u.jsx(_.div,{...r,ref:i})});xn.displayName=gn;var Dt="PopperContent",[bs,_s]=vn(Dt),wn=s.forwardRef((e,n)=>{var R,O,F,N,D,j;const{__scopePopper:t,side:o="bottom",sideOffset:r=0,align:a="center",alignOffset:c=0,arrowPadding:i=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:m=!1,updatePositionStrategy:h="optimized",onPlaced:C,...v}=e,g=mn(Dt,t),[y,x]=s.useState(null),w=M(n,Q=>x(Q)),[S,I]=s.useState(null),A=pn(S),b=(A==null?void 0:A.width)??0,T=(A==null?void 0:A.height)??0,B=o+(a!=="center"?"-"+a:""),$=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},H=Array.isArray(d)?d:[d],G=H.length>0,W={padding:$,boundary:H.filter(Is),altBoundary:G},{refs:z,floatingStyles:Y,placement:L,isPositioned:V,middlewareData:k}=Mr({strategy:"fixed",placement:B,whileElementsMounted:(...Q)=>Fr(...Q,{animationFrame:h==="always"}),elements:{reference:g.anchor},middleware:[Nr({mainAxis:r+T,alignmentAxis:c}),l&&Ar({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?kr():void 0,...W}),l&&Or({...W}),Dr({...W,apply:({elements:Q,rects:ae,availableWidth:Ie,availableHeight:Me})=>{const{width:Ne,height:Ir}=ae.reference,Ge=Q.floating.style;Ge.setProperty("--radix-popper-available-width",`${Ie}px`),Ge.setProperty("--radix-popper-available-height",`${Me}px`),Ge.setProperty("--radix-popper-anchor-width",`${Ne}px`),Ge.setProperty("--radix-popper-anchor-height",`${Ir}px`)}}),S&&jr({element:S,padding:i}),Ms({arrowWidth:b,arrowHeight:T}),m&&Lr({strategy:"referenceHidden",...W})]}),[P,K]=En(L),U=ce(C);X(()=>{V&&(U==null||U())},[V,U]);const Z=(R=k.arrow)==null?void 0:R.x,le=(O=k.arrow)==null?void 0:O.y,ee=((F=k.arrow)==null?void 0:F.centerOffset)!==0,[ue,J]=s.useState();return X(()=>{y&&J(window.getComputedStyle(y).zIndex)},[y]),u.jsx("div",{ref:z.setFloating,"data-radix-popper-content-wrapper":"",style:{...Y,transform:V?Y.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ue,"--radix-popper-transform-origin":[(N=k.transformOrigin)==null?void 0:N.x,(D=k.transformOrigin)==null?void 0:D.y].join(" "),...((j=k.hide)==null?void 0:j.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(bs,{scope:t,placedSide:P,onArrowChange:I,arrowX:Z,arrowY:le,shouldHideArrow:ee,children:u.jsx(_.div,{"data-side":P,"data-align":K,...v,ref:w,style:{...v.style,animation:V?void 0:"none"}})})})});wn.displayName=Dt;var Cn="PopperArrow",Ts={top:"bottom",right:"left",bottom:"top",left:"right"},yn=s.forwardRef(function(n,t){const{__scopePopper:o,...r}=n,a=_s(Cn,o),c=Ts[a.placedSide];return u.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:u.jsx(Ps,{...r,ref:t,style:{...r.style,display:"block"}})})});yn.displayName=Cn;function Is(e){return e!==null}var Ms=e=>({name:"transformOrigin",options:e,fn(n){var g,y,x;const{placement:t,rects:o,middlewareData:r}=n,c=((g=r.arrow)==null?void 0:g.centerOffset)!==0,i=c?0:e.arrowWidth,l=c?0:e.arrowHeight,[d,f]=En(t),p={start:"0%",center:"50%",end:"100%"}[f],m=(((y=r.arrow)==null?void 0:y.x)??0)+i/2,h=(((x=r.arrow)==null?void 0:x.y)??0)+l/2;let C="",v="";return d==="bottom"?(C=c?p:`${m}px`,v=`${-l}px`):d==="top"?(C=c?p:`${m}px`,v=`${o.floating.height+l}px`):d==="right"?(C=`${-l}px`,v=c?p:`${h}px`):d==="left"&&(C=`${o.floating.width+l}px`,v=c?p:`${h}px`),{data:{x:C,y:v}}}});function En(e){const[n,t="center"]=e.split("-");return[n,t]}var tt=hn,$e=xn,nt=wn,ot=yn,Ns="Portal",_e=s.forwardRef((e,n)=>{var i;const{container:t,...o}=e,[r,a]=s.useState(!1);X(()=>a(!0),[]);const c=t||r&&((i=globalThis==null?void 0:globalThis.document)==null?void 0:i.body);return c?$r.createPortal(u.jsx(_.div,{...o,ref:n}),c):null});_e.displayName=Ns;function As(e,n){return s.useReducer((t,o)=>n[t][o]??t,e)}var ne=e=>{const{present:n,children:t}=e,o=Os(n),r=typeof t=="function"?t({present:o.isPresent}):s.Children.only(t),a=M(o.ref,Ds(r));return typeof t=="function"||o.isPresent?s.cloneElement(r,{ref:a}):null};ne.displayName="Presence";function Os(e){const[n,t]=s.useState(),o=s.useRef(null),r=s.useRef(e),a=s.useRef("none"),c=e?"mounted":"unmounted",[i,l]=As(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return s.useEffect(()=>{const d=Ve(o.current);a.current=i==="mounted"?d:"none"},[i]),X(()=>{const d=o.current,f=r.current;if(f!==e){const m=a.current,h=Ve(d);e?l("MOUNT"):h==="none"||(d==null?void 0:d.display)==="none"?l("UNMOUNT"):l(f&&m!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),X(()=>{if(n){let d;const f=n.ownerDocument.defaultView??window,p=h=>{const v=Ve(o.current).includes(CSS.escape(h.animationName));if(h.target===n&&v&&(l("ANIMATION_END"),!r.current)){const g=n.style.animationFillMode;n.style.animationFillMode="forwards",d=f.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=g)})}},m=h=>{h.target===n&&(a.current=Ve(o.current))};return n.addEventListener("animationstart",m),n.addEventListener("animationcancel",p),n.addEventListener("animationend",p),()=>{f.clearTimeout(d),n.removeEventListener("animationstart",m),n.removeEventListener("animationcancel",p),n.removeEventListener("animationend",p)}}else l("ANIMATION_END")},[n,l]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:s.useCallback(d=>{o.current=d?getComputedStyle(d):null,t(d)},[])}}function Ve(e){return(e==null?void 0:e.animationName)||"none"}function Ds(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var xt="rovingFocusGroup.onEntryFocus",js={bubbles:!1,cancelable:!0},Be="RovingFocusGroup",[Ct,Sn,Ls]=Nt(Be),[Fs,Pn]=ie(Be,[Ls]),[ks,$s]=Fs(Be),Rn=s.forwardRef((e,n)=>u.jsx(Ct.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(Ct.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(Bs,{...e,ref:n})})}));Rn.displayName=Be;var Bs=s.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:t,orientation:o,loop:r=!1,dir:a,currentTabStopId:c,defaultCurrentTabStopId:i,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,m=s.useRef(null),h=M(n,m),C=At(a),[v,g]=fe({prop:c,defaultProp:i??null,onChange:l,caller:Be}),[y,x]=s.useState(!1),w=ce(d),S=Sn(t),I=s.useRef(!1),[A,b]=s.useState(0);return s.useEffect(()=>{const T=m.current;if(T)return T.addEventListener(xt,w),()=>T.removeEventListener(xt,w)},[w]),u.jsx(ks,{scope:t,orientation:o,dir:C,loop:r,currentTabStopId:v,onItemFocus:s.useCallback(T=>g(T),[g]),onItemShiftTab:s.useCallback(()=>x(!0),[]),onFocusableItemAdd:s.useCallback(()=>b(T=>T+1),[]),onFocusableItemRemove:s.useCallback(()=>b(T=>T-1),[]),children:u.jsx(_.div,{tabIndex:y||A===0?-1:0,"data-orientation":o,...p,ref:h,style:{outline:"none",...e.style},onMouseDown:E(e.onMouseDown,()=>{I.current=!0}),onFocus:E(e.onFocus,T=>{const B=!I.current;if(T.target===T.currentTarget&&B&&!y){const $=new CustomEvent(xt,js);if(T.currentTarget.dispatchEvent($),!$.defaultPrevented){const H=S().filter(L=>L.focusable),G=H.find(L=>L.active),W=H.find(L=>L.id===v),Y=[G,W,...H].filter(Boolean).map(L=>L.ref.current);Tn(Y,f)}}I.current=!1}),onBlur:E(e.onBlur,()=>x(!1))})})}),bn="RovingFocusGroupItem",_n=s.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:t,focusable:o=!0,active:r=!1,tabStopId:a,children:c,...i}=e,l=re(),d=a||l,f=$s(bn,t),p=f.currentTabStopId===d,m=Sn(t),{onFocusableItemAdd:h,onFocusableItemRemove:C,currentTabStopId:v}=f;return s.useEffect(()=>{if(o)return h(),()=>C()},[o,h,C]),u.jsx(Ct.ItemSlot,{scope:t,id:d,focusable:o,active:r,children:u.jsx(_.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:n,onMouseDown:E(e.onMouseDown,g=>{o?f.onItemFocus(d):g.preventDefault()}),onFocus:E(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:E(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){f.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const y=Ws(g,f.orientation,f.dir);if(y!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let w=m().filter(S=>S.focusable).map(S=>S.ref.current);if(y==="last")w.reverse();else if(y==="prev"||y==="next"){y==="prev"&&w.reverse();const S=w.indexOf(g.currentTarget);w=f.loop?Ks(w,S+1):w.slice(S+1)}setTimeout(()=>Tn(w))}}),children:typeof c=="function"?c({isCurrentTabStop:p,hasTabStop:v!=null}):c})})});_n.displayName=bn;var Us={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Hs(e,n){return n!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Ws(e,n,t){const o=Hs(e.key,t);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Us[o]}function Tn(e,n=!1){const t=document.activeElement;for(const o of e)if(o===t||(o.focus({preventScroll:n}),document.activeElement!==t))return}function Ks(e,n){return e.map((t,o)=>e[(n+o)%e.length])}var Gs=Rn,Vs=_n,yt=["Enter"," "],zs=["ArrowDown","PageUp","Home"],In=["ArrowUp","PageDown","End"],Ys=[...zs,...In],Xs={ltr:[...yt,"ArrowRight"],rtl:[...yt,"ArrowLeft"]},qs={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Ue="Menu",[De,Zs,Js]=Nt(Ue),[Ee,Mn]=ie(Ue,[Js,pe,Pn]),rt=pe(),Nn=Pn(),[Qs,Se]=Ee(Ue),[ea,He]=Ee(Ue),An=e=>{const{__scopeMenu:n,open:t=!1,children:o,dir:r,onOpenChange:a,modal:c=!0}=e,i=rt(n),[l,d]=s.useState(null),f=s.useRef(!1),p=ce(a),m=At(r);return s.useEffect(()=>{const h=()=>{f.current=!0,document.addEventListener("pointerdown",C,{capture:!0,once:!0}),document.addEventListener("pointermove",C,{capture:!0,once:!0})},C=()=>f.current=!1;return document.addEventListener("keydown",h,{capture:!0}),()=>{document.removeEventListener("keydown",h,{capture:!0}),document.removeEventListener("pointerdown",C,{capture:!0}),document.removeEventListener("pointermove",C,{capture:!0})}},[]),u.jsx(tt,{...i,children:u.jsx(Qs,{scope:n,open:t,onOpenChange:p,content:l,onContentChange:d,children:u.jsx(ea,{scope:n,onClose:s.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:c,children:o})})})};An.displayName=Ue;var ta="MenuAnchor",jt=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,r=rt(t);return u.jsx($e,{...r,...o,ref:n})});jt.displayName=ta;var Lt="MenuPortal",[na,On]=Ee(Lt,{forceMount:void 0}),Dn=e=>{const{__scopeMenu:n,forceMount:t,children:o,container:r}=e,a=Se(Lt,n);return u.jsx(na,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};Dn.displayName=Lt;var te="MenuContent",[oa,Ft]=Ee(te),jn=s.forwardRef((e,n)=>{const t=On(te,e.__scopeMenu),{forceMount:o=t.forceMount,...r}=e,a=Se(te,e.__scopeMenu),c=He(te,e.__scopeMenu);return u.jsx(De.Provider,{scope:e.__scopeMenu,children:u.jsx(ne,{present:o||a.open,children:u.jsx(De.Slot,{scope:e.__scopeMenu,children:c.modal?u.jsx(ra,{...r,ref:n}):u.jsx(sa,{...r,ref:n})})})})}),ra=s.forwardRef((e,n)=>{const t=Se(te,e.__scopeMenu),o=s.useRef(null),r=M(n,o);return s.useEffect(()=>{const a=o.current;if(a)return Qe(a)},[]),u.jsx(kt,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),sa=s.forwardRef((e,n)=>{const t=Se(te,e.__scopeMenu);return u.jsx(kt,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),aa=xe("MenuContent.ScrollLock"),kt=s.forwardRef((e,n)=>{const{__scopeMenu:t,loop:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:i,onEntryFocus:l,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:h,disableOutsideScroll:C,...v}=e,g=Se(te,t),y=He(te,t),x=rt(t),w=Nn(t),S=Zs(t),[I,A]=s.useState(null),b=s.useRef(null),T=M(n,b,g.onContentChange),B=s.useRef(0),$=s.useRef(""),H=s.useRef(0),G=s.useRef(null),W=s.useRef("right"),z=s.useRef(0),Y=C?Je:s.Fragment,L=C?{as:aa,allowPinchZoom:!0}:void 0,V=P=>{var R,O;const K=$.current+P,U=S().filter(F=>!F.disabled),Z=document.activeElement,le=(R=U.find(F=>F.ref.current===Z))==null?void 0:R.textValue,ee=U.map(F=>F.textValue),ue=xa(ee,K,le),J=(O=U.find(F=>F.textValue===ue))==null?void 0:O.ref.current;(function F(N){$.current=N,window.clearTimeout(B.current),N!==""&&(B.current=window.setTimeout(()=>F(""),1e3))})(K),J&&setTimeout(()=>J.focus())};s.useEffect(()=>()=>window.clearTimeout(B.current),[]),et();const k=s.useCallback(P=>{var U,Z;return W.current===((U=G.current)==null?void 0:U.side)&&Ca(P,(Z=G.current)==null?void 0:Z.area)},[]);return u.jsx(oa,{scope:t,searchRef:$,onItemEnter:s.useCallback(P=>{k(P)&&P.preventDefault()},[k]),onItemLeave:s.useCallback(P=>{var K;k(P)||((K=b.current)==null||K.focus(),A(null))},[k]),onTriggerLeave:s.useCallback(P=>{k(P)&&P.preventDefault()},[k]),pointerGraceTimerRef:H,onPointerGraceIntentChange:s.useCallback(P=>{G.current=P},[]),children:u.jsx(Y,{...L,children:u.jsx(ke,{asChild:!0,trapped:r,onMountAutoFocus:E(a,P=>{var K;P.preventDefault(),(K=b.current)==null||K.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:i,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:h,children:u.jsx(Gs,{asChild:!0,...w,dir:y.dir,orientation:"vertical",loop:o,currentTabStopId:I,onCurrentTabStopIdChange:A,onEntryFocus:E(l,P=>{y.isUsingKeyboardRef.current||P.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(nt,{role:"menu","aria-orientation":"vertical","data-state":Zn(g.open),"data-radix-menu-content":"",dir:y.dir,...x,...v,ref:T,style:{outline:"none",...v.style},onKeyDown:E(v.onKeyDown,P=>{const U=P.target.closest("[data-radix-menu-content]")===P.currentTarget,Z=P.ctrlKey||P.altKey||P.metaKey,le=P.key.length===1;U&&(P.key==="Tab"&&P.preventDefault(),!Z&&le&&V(P.key));const ee=b.current;if(P.target!==ee||!Ys.includes(P.key))return;P.preventDefault();const J=S().filter(R=>!R.disabled).map(R=>R.ref.current);In.includes(P.key)&&J.reverse(),ha(J)}),onBlur:E(e.onBlur,P=>{P.currentTarget.contains(P.target)||(window.clearTimeout(B.current),$.current="")}),onPointerMove:E(e.onPointerMove,je(P=>{const K=P.target,U=z.current!==P.clientX;if(P.currentTarget.contains(K)&&U){const Z=P.clientX>z.current?"right":"left";W.current=Z,z.current=P.clientX}}))})})})})})})});jn.displayName=te;var ca="MenuGroup",$t=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{role:"group",...o,ref:n})});$t.displayName=ca;var ia="MenuLabel",Ln=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{...o,ref:n})});Ln.displayName=ia;var Ye="MenuItem",on="menu.itemSelect",st=s.forwardRef((e,n)=>{const{disabled:t=!1,onSelect:o,...r}=e,a=s.useRef(null),c=He(Ye,e.__scopeMenu),i=Ft(Ye,e.__scopeMenu),l=M(n,a),d=s.useRef(!1),f=()=>{const p=a.current;if(!t&&p){const m=new CustomEvent(on,{bubbles:!0,cancelable:!0});p.addEventListener(on,h=>o==null?void 0:o(h),{once:!0}),cn(p,m),m.defaultPrevented?d.current=!1:c.onClose()}};return u.jsx(Fn,{...r,ref:l,disabled:t,onClick:E(e.onClick,f),onPointerDown:p=>{var m;(m=e.onPointerDown)==null||m.call(e,p),d.current=!0},onPointerUp:E(e.onPointerUp,p=>{var m;d.current||(m=p.currentTarget)==null||m.click()}),onKeyDown:E(e.onKeyDown,p=>{const m=i.searchRef.current!=="";t||m&&p.key===" "||yt.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});st.displayName=Ye;var Fn=s.forwardRef((e,n)=>{const{__scopeMenu:t,disabled:o=!1,textValue:r,...a}=e,c=Ft(Ye,t),i=Nn(t),l=s.useRef(null),d=M(n,l),[f,p]=s.useState(!1),[m,h]=s.useState("");return s.useEffect(()=>{const C=l.current;C&&h((C.textContent??"").trim())},[a.children]),u.jsx(De.ItemSlot,{scope:t,disabled:o,textValue:r??m,children:u.jsx(Vs,{asChild:!0,...i,focusable:!o,children:u.jsx(_.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:d,onPointerMove:E(e.onPointerMove,je(C=>{o?c.onItemLeave(C):(c.onItemEnter(C),C.defaultPrevented||C.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:E(e.onPointerLeave,je(C=>c.onItemLeave(C))),onFocus:E(e.onFocus,()=>p(!0)),onBlur:E(e.onBlur,()=>p(!1))})})})}),la="MenuCheckboxItem",kn=s.forwardRef((e,n)=>{const{checked:t=!1,onCheckedChange:o,...r}=e;return u.jsx(Wn,{scope:e.__scopeMenu,checked:t,children:u.jsx(st,{role:"menuitemcheckbox","aria-checked":Xe(t)?"mixed":t,...r,ref:n,"data-state":Ut(t),onSelect:E(r.onSelect,()=>o==null?void 0:o(Xe(t)?!0:!t),{checkForDefaultPrevented:!1})})})});kn.displayName=la;var $n="MenuRadioGroup",[ua,da]=Ee($n,{value:void 0,onValueChange:()=>{}}),Bn=s.forwardRef((e,n)=>{const{value:t,onValueChange:o,...r}=e,a=ce(o);return u.jsx(ua,{scope:e.__scopeMenu,value:t,onValueChange:a,children:u.jsx($t,{...r,ref:n})})});Bn.displayName=$n;var Un="MenuRadioItem",Hn=s.forwardRef((e,n)=>{const{value:t,...o}=e,r=da(Un,e.__scopeMenu),a=t===r.value;return u.jsx(Wn,{scope:e.__scopeMenu,checked:a,children:u.jsx(st,{role:"menuitemradio","aria-checked":a,...o,ref:n,"data-state":Ut(a),onSelect:E(o.onSelect,()=>{var c;return(c=r.onValueChange)==null?void 0:c.call(r,t)},{checkForDefaultPrevented:!1})})})});Hn.displayName=Un;var Bt="MenuItemIndicator",[Wn,fa]=Ee(Bt,{checked:!1}),Kn=s.forwardRef((e,n)=>{const{__scopeMenu:t,forceMount:o,...r}=e,a=fa(Bt,t);return u.jsx(ne,{present:o||Xe(a.checked)||a.checked===!0,children:u.jsx(_.span,{...r,ref:n,"data-state":Ut(a.checked)})})});Kn.displayName=Bt;var pa="MenuSeparator",Gn=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{role:"separator","aria-orientation":"horizontal",...o,ref:n})});Gn.displayName=pa;var va="MenuArrow",Vn=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,r=rt(t);return u.jsx(ot,{...r,...o,ref:n})});Vn.displayName=va;var ma="MenuSub",[ui,zn]=Ee(ma),Ae="MenuSubTrigger",Yn=s.forwardRef((e,n)=>{const t=Se(Ae,e.__scopeMenu),o=He(Ae,e.__scopeMenu),r=zn(Ae,e.__scopeMenu),a=Ft(Ae,e.__scopeMenu),c=s.useRef(null),{pointerGraceTimerRef:i,onPointerGraceIntentChange:l}=a,d={__scopeMenu:e.__scopeMenu},f=s.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return s.useEffect(()=>f,[f]),s.useEffect(()=>{const p=i.current;return()=>{window.clearTimeout(p),l(null)}},[i,l]),u.jsx(jt,{asChild:!0,...d,children:u.jsx(Fn,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":r.contentId,"data-state":Zn(t.open),...e,ref:Fe(n,r.onTriggerChange),onClick:p=>{var m;(m=e.onClick)==null||m.call(e,p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:E(e.onPointerMove,je(p=>{a.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!t.open&&!c.current&&(a.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{t.onOpenChange(!0),f()},100))})),onPointerLeave:E(e.onPointerLeave,je(p=>{var h,C;f();const m=(h=t.content)==null?void 0:h.getBoundingClientRect();if(m){const v=(C=t.content)==null?void 0:C.dataset.side,g=v==="right",y=g?-5:5,x=m[g?"left":"right"],w=m[g?"right":"left"];a.onPointerGraceIntentChange({area:[{x:p.clientX+y,y:p.clientY},{x,y:m.top},{x:w,y:m.top},{x:w,y:m.bottom},{x,y:m.bottom}],side:v}),window.clearTimeout(i.current),i.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(p),p.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:E(e.onKeyDown,p=>{var h;const m=a.searchRef.current!=="";e.disabled||m&&p.key===" "||Xs[o.dir].includes(p.key)&&(t.onOpenChange(!0),(h=t.content)==null||h.focus(),p.preventDefault())})})})});Yn.displayName=Ae;var Xn="MenuSubContent",qn=s.forwardRef((e,n)=>{const t=On(te,e.__scopeMenu),{forceMount:o=t.forceMount,...r}=e,a=Se(te,e.__scopeMenu),c=He(te,e.__scopeMenu),i=zn(Xn,e.__scopeMenu),l=s.useRef(null),d=M(n,l);return u.jsx(De.Provider,{scope:e.__scopeMenu,children:u.jsx(ne,{present:o||a.open,children:u.jsx(De.Slot,{scope:e.__scopeMenu,children:u.jsx(kt,{id:i.contentId,"aria-labelledby":i.triggerId,...r,ref:d,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{var p;c.isUsingKeyboardRef.current&&((p=l.current)==null||p.focus()),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:E(e.onFocusOutside,f=>{f.target!==i.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:E(e.onEscapeKeyDown,f=>{c.onClose(),f.preventDefault()}),onKeyDown:E(e.onKeyDown,f=>{var h;const p=f.currentTarget.contains(f.target),m=qs[c.dir].includes(f.key);p&&m&&(a.onOpenChange(!1),(h=i.trigger)==null||h.focus(),f.preventDefault())})})})})})});qn.displayName=Xn;function Zn(e){return e?"open":"closed"}function Xe(e){return e==="indeterminate"}function Ut(e){return Xe(e)?"indeterminate":e?"checked":"unchecked"}function ha(e){const n=document.activeElement;for(const t of e)if(t===n||(t.focus(),document.activeElement!==n))return}function ga(e,n){return e.map((t,o)=>e[(n+o)%e.length])}function xa(e,n,t){const r=n.length>1&&Array.from(n).every(d=>d===n[0])?n[0]:n,a=t?e.indexOf(t):-1;let c=ga(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==t));const l=c.find(d=>d.toLowerCase().startsWith(r.toLowerCase()));return l!==t?l:void 0}function wa(e,n){const{x:t,y:o}=e;let r=!1;for(let a=0,c=n.length-1;a<n.length;c=a++){const i=n[a],l=n[c],d=i.x,f=i.y,p=l.x,m=l.y;f>o!=m>o&&t<(p-d)*(o-f)/(m-f)+d&&(r=!r)}return r}function Ca(e,n){if(!n)return!1;const t={x:e.clientX,y:e.clientY};return wa(t,n)}function je(e){return n=>n.pointerType==="mouse"?e(n):void 0}var ya=An,Ea=jt,Sa=Dn,Pa=jn,Ra=$t,ba=Ln,_a=st,Ta=kn,Ia=Bn,Ma=Hn,Na=Kn,Aa=Gn,Oa=Vn,Da=Yn,ja=qn,at="DropdownMenu",[La]=ie(at,[Mn]),q=Mn(),[Fa,Jn]=La(at),Qn=e=>{const{__scopeDropdownMenu:n,children:t,dir:o,open:r,defaultOpen:a,onOpenChange:c,modal:i=!0}=e,l=q(n),d=s.useRef(null),[f,p]=fe({prop:r,defaultProp:a??!1,onChange:c,caller:at});return u.jsx(Fa,{scope:n,triggerId:re(),triggerRef:d,contentId:re(),open:f,onOpenChange:p,onOpenToggle:s.useCallback(()=>p(m=>!m),[p]),modal:i,children:u.jsx(ya,{...l,open:f,onOpenChange:p,dir:o,modal:i,children:t})})};Qn.displayName=at;var eo="DropdownMenuTrigger",to=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,disabled:o=!1,...r}=e,a=Jn(eo,t),c=q(t);return u.jsx(Ea,{asChild:!0,...c,children:u.jsx(_.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:Fe(n,a.triggerRef),onPointerDown:E(e.onPointerDown,i=>{!o&&i.button===0&&i.ctrlKey===!1&&(a.onOpenToggle(),a.open||i.preventDefault())}),onKeyDown:E(e.onKeyDown,i=>{o||(["Enter"," "].includes(i.key)&&a.onOpenToggle(),i.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(i.key)&&i.preventDefault())})})})});to.displayName=eo;var ka="DropdownMenuPortal",no=e=>{const{__scopeDropdownMenu:n,...t}=e,o=q(n);return u.jsx(Sa,{...o,...t})};no.displayName=ka;var oo="DropdownMenuContent",ro=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=Jn(oo,t),a=q(t),c=s.useRef(!1);return u.jsx(Pa,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:n,onCloseAutoFocus:E(e.onCloseAutoFocus,i=>{var l;c.current||(l=r.triggerRef.current)==null||l.focus(),c.current=!1,i.preventDefault()}),onInteractOutside:E(e.onInteractOutside,i=>{const l=i.detail.originalEvent,d=l.button===0&&l.ctrlKey===!0,f=l.button===2||d;(!r.modal||f)&&(c.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ro.displayName=oo;var $a="DropdownMenuGroup",Ba=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ra,{...r,...o,ref:n})});Ba.displayName=$a;var Ua="DropdownMenuLabel",so=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(ba,{...r,...o,ref:n})});so.displayName=Ua;var Ha="DropdownMenuItem",ao=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(_a,{...r,...o,ref:n})});ao.displayName=Ha;var Wa="DropdownMenuCheckboxItem",co=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ta,{...r,...o,ref:n})});co.displayName=Wa;var Ka="DropdownMenuRadioGroup",Ga=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ia,{...r,...o,ref:n})});Ga.displayName=Ka;var Va="DropdownMenuRadioItem",io=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ma,{...r,...o,ref:n})});io.displayName=Va;var za="DropdownMenuItemIndicator",lo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Na,{...r,...o,ref:n})});lo.displayName=za;var Ya="DropdownMenuSeparator",uo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Aa,{...r,...o,ref:n})});uo.displayName=Ya;var Xa="DropdownMenuArrow",qa=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Oa,{...r,...o,ref:n})});qa.displayName=Xa;var Za="DropdownMenuSubTrigger",fo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Da,{...r,...o,ref:n})});fo.displayName=Za;var Ja="DropdownMenuSubContent",po=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(ja,{...r,...o,ref:n,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});po.displayName=Ja;var di=Qn,fi=to,pi=no,vi=ro,mi=so,hi=ao,gi=co,xi=io,wi=lo,Ci=uo,yi=fo,Ei=po,vo=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qa="VisuallyHidden",mo=s.forwardRef((e,n)=>u.jsx(_.span,{...e,ref:n,style:{...vo,...e.style}}));mo.displayName=Qa;var ec=mo,[ct]=ie("Tooltip",[pe]),it=pe(),ho="TooltipProvider",tc=700,Et="tooltip.open",[nc,Ht]=ct(ho),go=e=>{const{__scopeTooltip:n,delayDuration:t=tc,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:a}=e,c=s.useRef(!0),i=s.useRef(!1),l=s.useRef(0);return s.useEffect(()=>{const d=l.current;return()=>window.clearTimeout(d)},[]),u.jsx(nc,{scope:n,isOpenDelayedRef:c,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(l.current),c.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>c.current=!0,o)},[o]),isPointerInTransitRef:i,onPointerInTransitChange:s.useCallback(d=>{i.current=d},[]),disableHoverableContent:r,children:a})};go.displayName=ho;var Le="Tooltip",[oc,We]=ct(Le),xo=e=>{const{__scopeTooltip:n,children:t,open:o,defaultOpen:r,onOpenChange:a,disableHoverableContent:c,delayDuration:i}=e,l=Ht(Le,e.__scopeTooltip),d=it(n),[f,p]=s.useState(null),m=re(),h=s.useRef(0),C=c??l.disableHoverableContent,v=i??l.delayDuration,g=s.useRef(!1),[y,x]=fe({prop:o,defaultProp:r??!1,onChange:b=>{b?(l.onOpen(),document.dispatchEvent(new CustomEvent(Et))):l.onClose(),a==null||a(b)},caller:Le}),w=s.useMemo(()=>y?g.current?"delayed-open":"instant-open":"closed",[y]),S=s.useCallback(()=>{window.clearTimeout(h.current),h.current=0,g.current=!1,x(!0)},[x]),I=s.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x(!1)},[x]),A=s.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{g.current=!0,x(!0),h.current=0},v)},[v,x]);return s.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),u.jsx(tt,{...d,children:u.jsx(oc,{scope:n,contentId:m,open:y,stateAttribute:w,trigger:f,onTriggerChange:p,onTriggerEnter:s.useCallback(()=>{l.isOpenDelayedRef.current?A():S()},[l.isOpenDelayedRef,A,S]),onTriggerLeave:s.useCallback(()=>{C?I():(window.clearTimeout(h.current),h.current=0)},[I,C]),onOpen:S,onClose:I,disableHoverableContent:C,children:t})})};xo.displayName=Le;var St="TooltipTrigger",wo=s.forwardRef((e,n)=>{const{__scopeTooltip:t,...o}=e,r=We(St,t),a=Ht(St,t),c=it(t),i=s.useRef(null),l=M(n,i,r.onTriggerChange),d=s.useRef(!1),f=s.useRef(!1),p=s.useCallback(()=>d.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),u.jsx($e,{asChild:!0,...c,children:u.jsx(_.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:l,onPointerMove:E(e.onPointerMove,m=>{m.pointerType!=="touch"&&!f.current&&!a.isPointerInTransitRef.current&&(r.onTriggerEnter(),f.current=!0)}),onPointerLeave:E(e.onPointerLeave,()=>{r.onTriggerLeave(),f.current=!1}),onPointerDown:E(e.onPointerDown,()=>{r.open&&r.onClose(),d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:E(e.onFocus,()=>{d.current||r.onOpen()}),onBlur:E(e.onBlur,r.onClose),onClick:E(e.onClick,r.onClose)})})});wo.displayName=St;var Wt="TooltipPortal",[rc,sc]=ct(Wt,{forceMount:void 0}),Co=e=>{const{__scopeTooltip:n,forceMount:t,children:o,container:r}=e,a=We(Wt,n);return u.jsx(rc,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};Co.displayName=Wt;var Pe="TooltipContent",yo=s.forwardRef((e,n)=>{const t=sc(Pe,e.__scopeTooltip),{forceMount:o=t.forceMount,side:r="top",...a}=e,c=We(Pe,e.__scopeTooltip);return u.jsx(ne,{present:o||c.open,children:c.disableHoverableContent?u.jsx(Eo,{side:r,...a,ref:n}):u.jsx(ac,{side:r,...a,ref:n})})}),ac=s.forwardRef((e,n)=>{const t=We(Pe,e.__scopeTooltip),o=Ht(Pe,e.__scopeTooltip),r=s.useRef(null),a=M(n,r),[c,i]=s.useState(null),{trigger:l,onClose:d}=t,f=r.current,{onPointerInTransitChange:p}=o,m=s.useCallback(()=>{i(null),p(!1)},[p]),h=s.useCallback((C,v)=>{const g=C.currentTarget,y={x:C.clientX,y:C.clientY},x=dc(y,g.getBoundingClientRect()),w=fc(y,x),S=pc(v.getBoundingClientRect()),I=mc([...w,...S]);i(I),p(!0)},[p]);return s.useEffect(()=>()=>m(),[m]),s.useEffect(()=>{if(l&&f){const C=g=>h(g,f),v=g=>h(g,l);return l.addEventListener("pointerleave",C),f.addEventListener("pointerleave",v),()=>{l.removeEventListener("pointerleave",C),f.removeEventListener("pointerleave",v)}}},[l,f,h,m]),s.useEffect(()=>{if(c){const C=v=>{const g=v.target,y={x:v.clientX,y:v.clientY},x=(l==null?void 0:l.contains(g))||(f==null?void 0:f.contains(g)),w=!vc(y,c);x?m():w&&(m(),d())};return document.addEventListener("pointermove",C),()=>document.removeEventListener("pointermove",C)}},[l,f,c,d,m]),u.jsx(Eo,{...e,ref:a})}),[cc,ic]=ct(Le,{isInside:!1}),lc=es("TooltipContent"),Eo=s.forwardRef((e,n)=>{const{__scopeTooltip:t,children:o,"aria-label":r,onEscapeKeyDown:a,onPointerDownOutside:c,...i}=e,l=We(Pe,t),d=it(t),{onClose:f}=l;return s.useEffect(()=>(document.addEventListener(Et,f),()=>document.removeEventListener(Et,f)),[f]),s.useEffect(()=>{if(l.trigger){const p=m=>{const h=m.target;h!=null&&h.contains(l.trigger)&&f()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[l.trigger,f]),u.jsx(be,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:p=>p.preventDefault(),onDismiss:f,children:u.jsxs(nt,{"data-state":l.stateAttribute,...d,...i,ref:n,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(lc,{children:o}),u.jsx(cc,{scope:t,isInside:!0,children:u.jsx(ec,{id:l.contentId,role:"tooltip",children:r||o})})]})})});yo.displayName=Pe;var So="TooltipArrow",uc=s.forwardRef((e,n)=>{const{__scopeTooltip:t,...o}=e,r=it(t);return ic(So,t).isInside?null:u.jsx(ot,{...r,...o,ref:n})});uc.displayName=So;function dc(e,n){const t=Math.abs(n.top-e.y),o=Math.abs(n.bottom-e.y),r=Math.abs(n.right-e.x),a=Math.abs(n.left-e.x);switch(Math.min(t,o,r,a)){case a:return"left";case r:return"right";case t:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function fc(e,n,t=5){const o=[];switch(n){case"top":o.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":o.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":o.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":o.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return o}function pc(e){const{top:n,right:t,bottom:o,left:r}=e;return[{x:r,y:n},{x:t,y:n},{x:t,y:o},{x:r,y:o}]}function vc(e,n){const{x:t,y:o}=e;let r=!1;for(let a=0,c=n.length-1;a<n.length;c=a++){const i=n[a],l=n[c],d=i.x,f=i.y,p=l.x,m=l.y;f>o!=m>o&&t<(p-d)*(o-f)/(m-f)+d&&(r=!r)}return r}function mc(e){const n=e.slice();return n.sort((t,o)=>t.x<o.x?-1:t.x>o.x?1:t.y<o.y?-1:t.y>o.y?1:0),hc(n)}function hc(e){if(e.length<=1)return e.slice();const n=[];for(let o=0;o<e.length;o++){const r=e[o];for(;n.length>=2;){const a=n[n.length-1],c=n[n.length-2];if((a.x-c.x)*(r.y-c.y)>=(a.y-c.y)*(r.x-c.x))n.pop();else break}n.push(r)}n.pop();const t=[];for(let o=e.length-1;o>=0;o--){const r=e[o];for(;t.length>=2;){const a=t[t.length-1],c=t[t.length-2];if((a.x-c.x)*(r.y-c.y)>=(a.y-c.y)*(r.x-c.x))t.pop();else break}t.push(r)}return t.pop(),n.length===1&&t.length===1&&n[0].x===t[0].x&&n[0].y===t[0].y?n:n.concat(t)}var Si=go,Pi=xo,Ri=wo,bi=Co,_i=yo;function rn(e,[n,t]){return Math.min(t,Math.max(n,e))}function Po(e){const n=s.useRef({value:e,previous:e});return s.useMemo(()=>(n.current.value!==e&&(n.current.previous=n.current.value,n.current.value=e),n.current.previous),[e])}var gc=[" ","Enter","ArrowUp","ArrowDown"],xc=[" ","Enter"],we="Select",[lt,ut,wc]=Nt(we),[Te]=ie(we,[wc,pe]),dt=pe(),[Cc,ve]=Te(we),[yc,Ec]=Te(we),Ro=e=>{const{__scopeSelect:n,children:t,open:o,defaultOpen:r,onOpenChange:a,value:c,defaultValue:i,onValueChange:l,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:C}=e,v=dt(n),[g,y]=s.useState(null),[x,w]=s.useState(null),[S,I]=s.useState(!1),A=At(d),[b,T]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:we}),[B,$]=fe({prop:c,defaultProp:i,onChange:l,caller:we}),H=s.useRef(null),G=g?C||!!g.closest("form"):!0,[W,z]=s.useState(new Set),Y=Array.from(W).map(L=>L.props.value).join(";");return u.jsx(tt,{...v,children:u.jsxs(Cc,{required:h,scope:n,trigger:g,onTriggerChange:y,valueNode:x,onValueNodeChange:w,valueNodeHasChildren:S,onValueNodeHasChildrenChange:I,contentId:re(),value:B,onValueChange:$,open:b,onOpenChange:T,dir:A,triggerPointerDownPosRef:H,disabled:m,children:[u.jsx(lt.Provider,{scope:n,children:u.jsx(yc,{scope:e.__scopeSelect,onNativeOptionAdd:s.useCallback(L=>{z(V=>new Set(V).add(L))},[]),onNativeOptionRemove:s.useCallback(L=>{z(V=>{const k=new Set(V);return k.delete(L),k})},[]),children:t})}),G?u.jsxs(Xo,{"aria-hidden":!0,required:h,tabIndex:-1,name:f,autoComplete:p,value:B,onChange:L=>$(L.target.value),disabled:m,form:C,children:[B===void 0?u.jsx("option",{value:""}):null,Array.from(W)]},Y):null]})})};Ro.displayName=we;var bo="SelectTrigger",_o=s.forwardRef((e,n)=>{const{__scopeSelect:t,disabled:o=!1,...r}=e,a=dt(t),c=ve(bo,t),i=c.disabled||o,l=M(n,c.onTriggerChange),d=ut(t),f=s.useRef("touch"),[p,m,h]=Zo(v=>{const g=d().filter(w=>!w.disabled),y=g.find(w=>w.value===c.value),x=Jo(g,v,y);x!==void 0&&c.onValueChange(x.value)}),C=v=>{i||(c.onOpenChange(!0),h()),v&&(c.triggerPointerDownPosRef.current={x:Math.round(v.pageX),y:Math.round(v.pageY)})};return u.jsx($e,{asChild:!0,...a,children:u.jsx(_.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:i,"data-disabled":i?"":void 0,"data-placeholder":qo(c.value)?"":void 0,...r,ref:l,onClick:E(r.onClick,v=>{v.currentTarget.focus(),f.current!=="mouse"&&C(v)}),onPointerDown:E(r.onPointerDown,v=>{f.current=v.pointerType;const g=v.target;g.hasPointerCapture(v.pointerId)&&g.releasePointerCapture(v.pointerId),v.button===0&&v.ctrlKey===!1&&v.pointerType==="mouse"&&(C(v),v.preventDefault())}),onKeyDown:E(r.onKeyDown,v=>{const g=p.current!=="";!(v.ctrlKey||v.altKey||v.metaKey)&&v.key.length===1&&m(v.key),!(g&&v.key===" ")&&gc.includes(v.key)&&(C(),v.preventDefault())})})})});_o.displayName=bo;var To="SelectValue",Io=s.forwardRef((e,n)=>{const{__scopeSelect:t,className:o,style:r,children:a,placeholder:c="",...i}=e,l=ve(To,t),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,p=M(n,l.onValueNodeChange);return X(()=>{d(f)},[d,f]),u.jsx(_.span,{...i,ref:p,style:{pointerEvents:"none"},children:qo(l.value)?u.jsx(u.Fragment,{children:c}):a})});Io.displayName=To;var Sc="SelectIcon",Mo=s.forwardRef((e,n)=>{const{__scopeSelect:t,children:o,...r}=e;return u.jsx(_.span,{"aria-hidden":!0,...r,ref:n,children:o||"▼"})});Mo.displayName=Sc;var Pc="SelectPortal",No=e=>u.jsx(_e,{asChild:!0,...e});No.displayName=Pc;var Ce="SelectContent",Ao=s.forwardRef((e,n)=>{const t=ve(Ce,e.__scopeSelect),[o,r]=s.useState();if(X(()=>{r(new DocumentFragment)},[]),!t.open){const a=o;return a?Mt.createPortal(u.jsx(Oo,{scope:e.__scopeSelect,children:u.jsx(lt.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),a):null}return u.jsx(Do,{...e,ref:n})});Ao.displayName=Ce;var oe=10,[Oo,me]=Te(Ce),Rc="SelectContentImpl",bc=xe("SelectContent.RemoveScroll"),Do=s.forwardRef((e,n)=>{const{__scopeSelect:t,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:a,onPointerDownOutside:c,side:i,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:C,hideWhenDetached:v,avoidCollisions:g,...y}=e,x=ve(Ce,t),[w,S]=s.useState(null),[I,A]=s.useState(null),b=M(n,R=>S(R)),[T,B]=s.useState(null),[$,H]=s.useState(null),G=ut(t),[W,z]=s.useState(!1),Y=s.useRef(!1);s.useEffect(()=>{if(w)return Qe(w)},[w]),et();const L=s.useCallback(R=>{const[O,...F]=G().map(j=>j.ref.current),[N]=F.slice(-1),D=document.activeElement;for(const j of R)if(j===D||(j==null||j.scrollIntoView({block:"nearest"}),j===O&&I&&(I.scrollTop=0),j===N&&I&&(I.scrollTop=I.scrollHeight),j==null||j.focus(),document.activeElement!==D))return},[G,I]),V=s.useCallback(()=>L([T,w]),[L,T,w]);s.useEffect(()=>{W&&V()},[W,V]);const{onOpenChange:k,triggerPointerDownPosRef:P}=x;s.useEffect(()=>{if(w){let R={x:0,y:0};const O=N=>{var D,j;R={x:Math.abs(Math.round(N.pageX)-(((D=P.current)==null?void 0:D.x)??0)),y:Math.abs(Math.round(N.pageY)-(((j=P.current)==null?void 0:j.y)??0))}},F=N=>{R.x<=10&&R.y<=10?N.preventDefault():w.contains(N.target)||k(!1),document.removeEventListener("pointermove",O),P.current=null};return P.current!==null&&(document.addEventListener("pointermove",O),document.addEventListener("pointerup",F,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",O),document.removeEventListener("pointerup",F,{capture:!0})}}},[w,k,P]),s.useEffect(()=>{const R=()=>k(!1);return window.addEventListener("blur",R),window.addEventListener("resize",R),()=>{window.removeEventListener("blur",R),window.removeEventListener("resize",R)}},[k]);const[K,U]=Zo(R=>{const O=G().filter(D=>!D.disabled),F=O.find(D=>D.ref.current===document.activeElement),N=Jo(O,R,F);N&&setTimeout(()=>N.ref.current.focus())}),Z=s.useCallback((R,O,F)=>{const N=!Y.current&&!F;(x.value!==void 0&&x.value===O||N)&&(B(R),N&&(Y.current=!0))},[x.value]),le=s.useCallback(()=>w==null?void 0:w.focus(),[w]),ee=s.useCallback((R,O,F)=>{const N=!Y.current&&!F;(x.value!==void 0&&x.value===O||N)&&H(R)},[x.value]),ue=o==="popper"?Pt:jo,J=ue===Pt?{side:i,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:C,hideWhenDetached:v,avoidCollisions:g}:{};return u.jsx(Oo,{scope:t,content:w,viewport:I,onViewportChange:A,itemRefCallback:Z,selectedItem:T,onItemLeave:le,itemTextRefCallback:ee,focusSelectedItem:V,selectedItemText:$,position:o,isPositioned:W,searchRef:K,children:u.jsx(Je,{as:bc,allowPinchZoom:!0,children:u.jsx(ke,{asChild:!0,trapped:x.open,onMountAutoFocus:R=>{R.preventDefault()},onUnmountAutoFocus:E(r,R=>{var O;(O=x.trigger)==null||O.focus({preventScroll:!0}),R.preventDefault()}),children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:R=>R.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(ue,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:R=>R.preventDefault(),...y,...J,onPlaced:()=>z(!0),ref:b,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:E(y.onKeyDown,R=>{const O=R.ctrlKey||R.altKey||R.metaKey;if(R.key==="Tab"&&R.preventDefault(),!O&&R.key.length===1&&U(R.key),["ArrowUp","ArrowDown","Home","End"].includes(R.key)){let N=G().filter(D=>!D.disabled).map(D=>D.ref.current);if(["ArrowUp","End"].includes(R.key)&&(N=N.slice().reverse()),["ArrowUp","ArrowDown"].includes(R.key)){const D=R.target,j=N.indexOf(D);N=N.slice(j+1)}setTimeout(()=>L(N)),R.preventDefault()}})})})})})})});Do.displayName=Rc;var _c="SelectItemAlignedPosition",jo=s.forwardRef((e,n)=>{const{__scopeSelect:t,onPlaced:o,...r}=e,a=ve(Ce,t),c=me(Ce,t),[i,l]=s.useState(null),[d,f]=s.useState(null),p=M(n,b=>f(b)),m=ut(t),h=s.useRef(!1),C=s.useRef(!0),{viewport:v,selectedItem:g,selectedItemText:y,focusSelectedItem:x}=c,w=s.useCallback(()=>{if(a.trigger&&a.valueNode&&i&&d&&v&&g&&y){const b=a.trigger.getBoundingClientRect(),T=d.getBoundingClientRect(),B=a.valueNode.getBoundingClientRect(),$=y.getBoundingClientRect();if(a.dir!=="rtl"){const D=$.left-T.left,j=B.left-D,Q=b.left-j,ae=b.width+Q,Ie=Math.max(ae,T.width),Me=window.innerWidth-oe,Ne=rn(j,[oe,Math.max(oe,Me-Ie)]);i.style.minWidth=ae+"px",i.style.left=Ne+"px"}else{const D=T.right-$.right,j=window.innerWidth-B.right-D,Q=window.innerWidth-b.right-j,ae=b.width+Q,Ie=Math.max(ae,T.width),Me=window.innerWidth-oe,Ne=rn(j,[oe,Math.max(oe,Me-Ie)]);i.style.minWidth=ae+"px",i.style.right=Ne+"px"}const H=m(),G=window.innerHeight-oe*2,W=v.scrollHeight,z=window.getComputedStyle(d),Y=parseInt(z.borderTopWidth,10),L=parseInt(z.paddingTop,10),V=parseInt(z.borderBottomWidth,10),k=parseInt(z.paddingBottom,10),P=Y+L+W+k+V,K=Math.min(g.offsetHeight*5,P),U=window.getComputedStyle(v),Z=parseInt(U.paddingTop,10),le=parseInt(U.paddingBottom,10),ee=b.top+b.height/2-oe,ue=G-ee,J=g.offsetHeight/2,R=g.offsetTop+J,O=Y+L+R,F=P-O;if(O<=ee){const D=H.length>0&&g===H[H.length-1].ref.current;i.style.bottom="0px";const j=d.clientHeight-v.offsetTop-v.offsetHeight,Q=Math.max(ue,J+(D?le:0)+j+V),ae=O+Q;i.style.height=ae+"px"}else{const D=H.length>0&&g===H[0].ref.current;i.style.top="0px";const Q=Math.max(ee,Y+v.offsetTop+(D?Z:0)+J)+F;i.style.height=Q+"px",v.scrollTop=O-ee+v.offsetTop}i.style.margin=`${oe}px 0`,i.style.minHeight=K+"px",i.style.maxHeight=G+"px",o==null||o(),requestAnimationFrame(()=>h.current=!0)}},[m,a.trigger,a.valueNode,i,d,v,g,y,a.dir,o]);X(()=>w(),[w]);const[S,I]=s.useState();X(()=>{d&&I(window.getComputedStyle(d).zIndex)},[d]);const A=s.useCallback(b=>{b&&C.current===!0&&(w(),x==null||x(),C.current=!1)},[w,x]);return u.jsx(Ic,{scope:t,contentWrapper:i,shouldExpandOnScrollRef:h,onScrollButtonChange:A,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:S},children:u.jsx(_.div,{...r,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});jo.displayName=_c;var Tc="SelectPopperPosition",Pt=s.forwardRef((e,n)=>{const{__scopeSelect:t,align:o="start",collisionPadding:r=oe,...a}=e,c=dt(t);return u.jsx(nt,{...c,...a,ref:n,align:o,collisionPadding:r,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Pt.displayName=Tc;var[Ic,Kt]=Te(Ce,{}),Rt="SelectViewport",Lo=s.forwardRef((e,n)=>{const{__scopeSelect:t,nonce:o,...r}=e,a=me(Rt,t),c=Kt(Rt,t),i=M(n,a.onViewportChange),l=s.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),u.jsx(lt.Slot,{scope:t,children:u.jsx(_.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:i,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:E(r.onScroll,d=>{const f=d.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:m}=c;if(m!=null&&m.current&&p){const h=Math.abs(l.current-f.scrollTop);if(h>0){const C=window.innerHeight-oe*2,v=parseFloat(p.style.minHeight),g=parseFloat(p.style.height),y=Math.max(v,g);if(y<C){const x=y+h,w=Math.min(C,x),S=x-w;p.style.height=w+"px",p.style.bottom==="0px"&&(f.scrollTop=S>0?S:0,p.style.justifyContent="flex-end")}}}l.current=f.scrollTop})})})]})});Lo.displayName=Rt;var Fo="SelectGroup",[Mc,Nc]=Te(Fo),Ac=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=re();return u.jsx(Mc,{scope:t,id:r,children:u.jsx(_.div,{role:"group","aria-labelledby":r,...o,ref:n})})});Ac.displayName=Fo;var ko="SelectLabel",$o=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=Nc(ko,t);return u.jsx(_.div,{id:r.id,...o,ref:n})});$o.displayName=ko;var qe="SelectItem",[Oc,Bo]=Te(qe),Uo=s.forwardRef((e,n)=>{const{__scopeSelect:t,value:o,disabled:r=!1,textValue:a,...c}=e,i=ve(qe,t),l=me(qe,t),d=i.value===o,[f,p]=s.useState(a??""),[m,h]=s.useState(!1),C=M(n,x=>{var w;return(w=l.itemRefCallback)==null?void 0:w.call(l,x,o,r)}),v=re(),g=s.useRef("touch"),y=()=>{r||(i.onValueChange(o),i.onOpenChange(!1))};if(o==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(Oc,{scope:t,value:o,disabled:r,textId:v,isSelected:d,onItemTextChange:s.useCallback(x=>{p(w=>w||((x==null?void 0:x.textContent)??"").trim())},[]),children:u.jsx(lt.ItemSlot,{scope:t,value:o,disabled:r,textValue:f,children:u.jsx(_.div,{role:"option","aria-labelledby":v,"data-highlighted":m?"":void 0,"aria-selected":d&&m,"data-state":d?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...c,ref:C,onFocus:E(c.onFocus,()=>h(!0)),onBlur:E(c.onBlur,()=>h(!1)),onClick:E(c.onClick,()=>{g.current!=="mouse"&&y()}),onPointerUp:E(c.onPointerUp,()=>{g.current==="mouse"&&y()}),onPointerDown:E(c.onPointerDown,x=>{g.current=x.pointerType}),onPointerMove:E(c.onPointerMove,x=>{var w;g.current=x.pointerType,r?(w=l.onItemLeave)==null||w.call(l):g.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:E(c.onPointerLeave,x=>{var w;x.currentTarget===document.activeElement&&((w=l.onItemLeave)==null||w.call(l))}),onKeyDown:E(c.onKeyDown,x=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&x.key===" "||(xc.includes(x.key)&&y(),x.key===" "&&x.preventDefault())})})})})});Uo.displayName=qe;var Oe="SelectItemText",Ho=s.forwardRef((e,n)=>{const{__scopeSelect:t,className:o,style:r,...a}=e,c=ve(Oe,t),i=me(Oe,t),l=Bo(Oe,t),d=Ec(Oe,t),[f,p]=s.useState(null),m=M(n,y=>p(y),l.onItemTextChange,y=>{var x;return(x=i.itemTextRefCallback)==null?void 0:x.call(i,y,l.value,l.disabled)}),h=f==null?void 0:f.textContent,C=s.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:h},l.value),[l.disabled,l.value,h]),{onNativeOptionAdd:v,onNativeOptionRemove:g}=d;return X(()=>(v(C),()=>g(C)),[v,g,C]),u.jsxs(u.Fragment,{children:[u.jsx(_.span,{id:l.textId,...a,ref:m}),l.isSelected&&c.valueNode&&!c.valueNodeHasChildren?Mt.createPortal(a.children,c.valueNode):null]})});Ho.displayName=Oe;var Wo="SelectItemIndicator",Ko=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e;return Bo(Wo,t).isSelected?u.jsx(_.span,{"aria-hidden":!0,...o,ref:n}):null});Ko.displayName=Wo;var bt="SelectScrollUpButton",Go=s.forwardRef((e,n)=>{const t=me(bt,e.__scopeSelect),o=Kt(bt,e.__scopeSelect),[r,a]=s.useState(!1),c=M(n,o.onScrollButtonChange);return X(()=>{if(t.viewport&&t.isPositioned){let i=function(){const d=l.scrollTop>0;a(d)};const l=t.viewport;return i(),l.addEventListener("scroll",i),()=>l.removeEventListener("scroll",i)}},[t.viewport,t.isPositioned]),r?u.jsx(zo,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:l}=t;i&&l&&(i.scrollTop=i.scrollTop-l.offsetHeight)}}):null});Go.displayName=bt;var _t="SelectScrollDownButton",Vo=s.forwardRef((e,n)=>{const t=me(_t,e.__scopeSelect),o=Kt(_t,e.__scopeSelect),[r,a]=s.useState(!1),c=M(n,o.onScrollButtonChange);return X(()=>{if(t.viewport&&t.isPositioned){let i=function(){const d=l.scrollHeight-l.clientHeight,f=Math.ceil(l.scrollTop)<d;a(f)};const l=t.viewport;return i(),l.addEventListener("scroll",i),()=>l.removeEventListener("scroll",i)}},[t.viewport,t.isPositioned]),r?u.jsx(zo,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:l}=t;i&&l&&(i.scrollTop=i.scrollTop+l.offsetHeight)}}):null});Vo.displayName=_t;var zo=s.forwardRef((e,n)=>{const{__scopeSelect:t,onAutoScroll:o,...r}=e,a=me("SelectScrollButton",t),c=s.useRef(null),i=ut(t),l=s.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return s.useEffect(()=>()=>l(),[l]),X(()=>{var f;const d=i().find(p=>p.ref.current===document.activeElement);(f=d==null?void 0:d.ref.current)==null||f.scrollIntoView({block:"nearest"})},[i]),u.jsx(_.div,{"aria-hidden":!0,...r,ref:n,style:{flexShrink:0,...r.style},onPointerDown:E(r.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(o,50))}),onPointerMove:E(r.onPointerMove,()=>{var d;(d=a.onItemLeave)==null||d.call(a),c.current===null&&(c.current=window.setInterval(o,50))}),onPointerLeave:E(r.onPointerLeave,()=>{l()})})}),Dc="SelectSeparator",Yo=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e;return u.jsx(_.div,{"aria-hidden":!0,...o,ref:n})});Yo.displayName=Dc;var Tt="SelectArrow",jc=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=dt(t),a=ve(Tt,t),c=me(Tt,t);return a.open&&c.position==="popper"?u.jsx(ot,{...r,...o,ref:n}):null});jc.displayName=Tt;var Lc="SelectBubbleInput",Xo=s.forwardRef(({__scopeSelect:e,value:n,...t},o)=>{const r=s.useRef(null),a=M(o,r),c=Po(n);return s.useEffect(()=>{const i=r.current;if(!i)return;const l=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(l,"value").set;if(c!==n&&f){const p=new Event("change",{bubbles:!0});f.call(i,n),i.dispatchEvent(p)}},[c,n]),u.jsx(_.select,{...t,style:{...vo,...t.style},ref:a,defaultValue:n})});Xo.displayName=Lc;function qo(e){return e===""||e===void 0}function Zo(e){const n=ce(e),t=s.useRef(""),o=s.useRef(0),r=s.useCallback(c=>{const i=t.current+c;n(i),function l(d){t.current=d,window.clearTimeout(o.current),d!==""&&(o.current=window.setTimeout(()=>l(""),1e3))}(i)},[n]),a=s.useCallback(()=>{t.current="",window.clearTimeout(o.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(o.current),[]),[t,r,a]}function Jo(e,n,t){const r=n.length>1&&Array.from(n).every(d=>d===n[0])?n[0]:n,a=t?e.indexOf(t):-1;let c=Fc(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==t));const l=c.find(d=>d.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==t?l:void 0}function Fc(e,n){return e.map((t,o)=>e[(n+o)%e.length])}var Ti=Ro,Ii=_o,Mi=Io,Ni=Mo,Ai=No,Oi=Ao,Di=Lo,ji=$o,Li=Uo,Fi=Ho,ki=Ko,$i=Go,Bi=Vo,Ui=Yo,ft="Dialog",[Qo]=ie(ft),[kc,se]=Qo(ft),er=e=>{const{__scopeDialog:n,children:t,open:o,defaultOpen:r,onOpenChange:a,modal:c=!0}=e,i=s.useRef(null),l=s.useRef(null),[d,f]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:ft});return u.jsx(kc,{scope:n,triggerRef:i,contentRef:l,contentId:re(),titleId:re(),descriptionId:re(),open:d,onOpenChange:f,onOpenToggle:s.useCallback(()=>f(p=>!p),[f]),modal:c,children:t})};er.displayName=ft;var tr="DialogTrigger",$c=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(tr,t),a=M(n,r.triggerRef);return u.jsx(_.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":zt(r.open),...o,ref:a,onClick:E(e.onClick,r.onOpenToggle)})});$c.displayName=tr;var Gt="DialogPortal",[Bc,nr]=Qo(Gt,{forceMount:void 0}),or=e=>{const{__scopeDialog:n,forceMount:t,children:o,container:r}=e,a=se(Gt,n);return u.jsx(Bc,{scope:n,forceMount:t,children:s.Children.map(o,c=>u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:c})}))})};or.displayName=Gt;var Ze="DialogOverlay",rr=s.forwardRef((e,n)=>{const t=nr(Ze,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,a=se(Ze,e.__scopeDialog);return a.modal?u.jsx(ne,{present:o||a.open,children:u.jsx(Hc,{...r,ref:n})}):null});rr.displayName=Ze;var Uc=xe("DialogOverlay.RemoveScroll"),Hc=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(Ze,t);return u.jsx(Je,{as:Uc,allowPinchZoom:!0,shards:[r.contentRef],children:u.jsx(_.div,{"data-state":zt(r.open),...o,ref:n,style:{pointerEvents:"auto",...o.style}})})}),ye="DialogContent",sr=s.forwardRef((e,n)=>{const t=nr(ye,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,a=se(ye,e.__scopeDialog);return u.jsx(ne,{present:o||a.open,children:a.modal?u.jsx(Wc,{...r,ref:n}):u.jsx(Kc,{...r,ref:n})})});sr.displayName=ye;var Wc=s.forwardRef((e,n)=>{const t=se(ye,e.__scopeDialog),o=s.useRef(null),r=M(n,t.contentRef,o);return s.useEffect(()=>{const a=o.current;if(a)return Qe(a)},[]),u.jsx(ar,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,a=>{var c;a.preventDefault(),(c=t.triggerRef.current)==null||c.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,i=c.button===0&&c.ctrlKey===!0;(c.button===2||i)&&a.preventDefault()}),onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault())})}),Kc=s.forwardRef((e,n)=>{const t=se(ye,e.__scopeDialog),o=s.useRef(!1),r=s.useRef(!1);return u.jsx(ar,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,i;(c=e.onCloseAutoFocus)==null||c.call(e,a),a.defaultPrevented||(o.current||(i=t.triggerRef.current)==null||i.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{var l,d;(l=e.onInteractOutside)==null||l.call(e,a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;((d=t.triggerRef.current)==null?void 0:d.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),ar=s.forwardRef((e,n)=>{const{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,...c}=e,i=se(ye,t),l=s.useRef(null),d=M(n,l);return et(),u.jsxs(u.Fragment,{children:[u.jsx(ke,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:u.jsx(be,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":zt(i.open),...c,ref:d,onDismiss:()=>i.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(Gc,{titleId:i.titleId}),u.jsx(zc,{contentRef:l,descriptionId:i.descriptionId})]})]})}),Vt="DialogTitle",cr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(Vt,t);return u.jsx(_.h2,{id:r.titleId,...o,ref:n})});cr.displayName=Vt;var ir="DialogDescription",lr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(ir,t);return u.jsx(_.p,{id:r.descriptionId,...o,ref:n})});lr.displayName=ir;var ur="DialogClose",dr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(ur,t);return u.jsx(_.button,{type:"button",...o,ref:n,onClick:E(e.onClick,()=>r.onOpenChange(!1))})});dr.displayName=ur;function zt(e){return e?"open":"closed"}var fr="DialogTitleWarning",[Hi,pr]=Yr(fr,{contentName:ye,titleName:Vt,docsSlug:"dialog"}),Gc=({titleId:e})=>{const n=pr(fr),t=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users.
1
+ import{r as s,j as u,R as It,o as Mt,q as ge,u as Mr,t as Nr,v as Ar,w as Or,x as Dr,y as jr,z as Lr,B as Fr,C as kr,D as $r,E as Je,F as Qe}from"./vendor-LWJeAdU1.js";function Xt(e,n){if(typeof e=="function")return e(n);e!=null&&(e.current=n)}function Fe(...e){return n=>{let t=!1;const o=e.map(r=>{const a=Xt(r,n);return!t&&typeof a=="function"&&(t=!0),a});if(t)return()=>{for(let r=0;r<o.length;r++){const a=o[r];typeof a=="function"?a():Xt(e[r],null)}}}}function M(...e){return s.useCallback(Fe(...e),e)}var Br=Symbol.for("react.lazy"),ze=It[" use ".trim().toString()];function Ur(e){return typeof e=="object"&&e!==null&&"then"in e}function sn(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Br&&"_payload"in e&&Ur(e._payload)}function Hr(e){const n=Wr(e),t=s.forwardRef((o,r)=>{let{children:a,...c}=o;sn(a)&&typeof ze=="function"&&(a=ze(a._payload));const i=s.Children.toArray(a),l=i.find(Gr);if(l){const d=l.props.children,f=i.map(p=>p===l?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return u.jsx(n,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return u.jsx(n,{...c,ref:r,children:a})});return t.displayName=`${e}.Slot`,t}var li=Hr("Slot");function Wr(e){const n=s.forwardRef((t,o)=>{let{children:r,...a}=t;if(sn(r)&&typeof ze=="function"&&(r=ze(r._payload)),s.isValidElement(r)){const c=zr(r),i=Vr(a,r.props);return r.type!==s.Fragment&&(i.ref=o?Fe(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var Kr=Symbol("radix.slottable");function Gr(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Kr}function Vr(e,n){const t={...n};for(const o in n){const r=e[o],a=n[o];/^on[A-Z]/.test(o)?r&&a?t[o]=(...i)=>{const l=a(...i);return r(...i),l}:r&&(t[o]=r):o==="style"?t[o]={...r,...a}:o==="className"&&(t[o]=[r,a].filter(Boolean).join(" "))}return{...e,...t}}function zr(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function E(e,n,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e==null||e(r),t===!1||!r.defaultPrevented)return n==null?void 0:n(r)}}function Yr(e,n){const t=s.createContext(n),o=a=>{const{children:c,...i}=a,l=s.useMemo(()=>i,Object.values(i));return u.jsx(t.Provider,{value:l,children:c})};o.displayName=e+"Provider";function r(a){const c=s.useContext(t);if(c)return c;if(n!==void 0)return n;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[o,r]}function ie(e,n=[]){let t=[];function o(a,c){const i=s.createContext(c),l=t.length;t=[...t,c];const d=p=>{var y;const{scope:m,children:h,...C}=p,v=((y=m==null?void 0:m[e])==null?void 0:y[l])||i,g=s.useMemo(()=>C,Object.values(C));return u.jsx(v.Provider,{value:g,children:h})};d.displayName=a+"Provider";function f(p,m){var v;const h=((v=m==null?void 0:m[e])==null?void 0:v[l])||i,C=s.useContext(h);if(C)return C;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[d,f]}const r=()=>{const a=t.map(c=>s.createContext(c));return function(i){const l=(i==null?void 0:i[e])||a;return s.useMemo(()=>({[`__scope${e}`]:{...i,[e]:l}}),[i,l])}};return r.scopeName=e,[o,Xr(r,...n)]}function Xr(...e){const n=e[0];if(e.length===1)return n;const t=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(a){const c=o.reduce((i,{useScope:l,scopeName:d})=>{const p=l(a)[`__scope${d}`];return{...i,...p}},{});return s.useMemo(()=>({[`__scope${n.scopeName}`]:c}),[c])}};return t.scopeName=n.scopeName,t}var X=globalThis!=null&&globalThis.document?s.useLayoutEffect:()=>{},qr=It[" useInsertionEffect ".trim().toString()]||X;function fe({prop:e,defaultProp:n,onChange:t=()=>{},caller:o}){const[r,a,c]=Zr({defaultProp:n,onChange:t}),i=e!==void 0,l=i?e:r;{const f=s.useRef(e!==void 0);s.useEffect(()=>{const p=f.current;p!==i&&console.warn(`${o} is changing from ${p?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,o])}const d=s.useCallback(f=>{var p;if(i){const m=Jr(f)?f(e):f;m!==e&&((p=c.current)==null||p.call(c,m))}else a(f)},[i,e,a,c]);return[l,d]}function Zr({defaultProp:e,onChange:n}){const[t,o]=s.useState(e),r=s.useRef(t),a=s.useRef(n);return qr(()=>{a.current=n},[n]),s.useEffect(()=>{var c;r.current!==t&&((c=a.current)==null||c.call(a,t),r.current=t)},[t,r]),[t,o,a]}function Jr(e){return typeof e=="function"}function xe(e){const n=Qr(e),t=s.forwardRef((o,r)=>{const{children:a,...c}=o,i=s.Children.toArray(a),l=i.find(ts);if(l){const d=l.props.children,f=i.map(p=>p===l?s.Children.count(d)>1?s.Children.only(null):s.isValidElement(d)?d.props.children:null:p);return u.jsx(n,{...c,ref:r,children:s.isValidElement(d)?s.cloneElement(d,void 0,f):null})}return u.jsx(n,{...c,ref:r,children:a})});return t.displayName=`${e}.Slot`,t}function Qr(e){const n=s.forwardRef((t,o)=>{const{children:r,...a}=t;if(s.isValidElement(r)){const c=os(r),i=ns(a,r.props);return r.type!==s.Fragment&&(i.ref=o?Fe(o,c):c),s.cloneElement(r,i)}return s.Children.count(r)>1?s.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var an=Symbol("radix.slottable");function es(e){const n=({children:t})=>u.jsx(u.Fragment,{children:t});return n.displayName=`${e}.Slottable`,n.__radixId=an,n}function ts(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===an}function ns(e,n){const t={...n};for(const o in n){const r=e[o],a=n[o];/^on[A-Z]/.test(o)?r&&a?t[o]=(...i)=>{const l=a(...i);return r(...i),l}:r&&(t[o]=r):o==="style"?t[o]={...r,...a}:o==="className"&&(t[o]=[r,a].filter(Boolean).join(" "))}return{...e,...t}}function os(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var rs=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_=rs.reduce((e,n)=>{const t=xe(`Primitive.${n}`),o=s.forwardRef((r,a)=>{const{asChild:c,...i}=r,l=c?t:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...i,ref:a})});return o.displayName=`Primitive.${n}`,{...e,[n]:o}},{});function cn(e,n){e&&Mt.flushSync(()=>e.dispatchEvent(n))}function Nt(e){const n=e+"CollectionProvider",[t,o]=ie(n),[r,a]=t(n,{collectionRef:{current:null},itemMap:new Map}),c=v=>{const{scope:g,children:y}=v,x=ge.useRef(null),w=ge.useRef(new Map).current;return u.jsx(r,{scope:g,itemMap:w,collectionRef:x,children:y})};c.displayName=n;const i=e+"CollectionSlot",l=xe(i),d=ge.forwardRef((v,g)=>{const{scope:y,children:x}=v,w=a(i,y),S=M(g,w.collectionRef);return u.jsx(l,{ref:S,children:x})});d.displayName=i;const f=e+"CollectionItemSlot",p="data-radix-collection-item",m=xe(f),h=ge.forwardRef((v,g)=>{const{scope:y,children:x,...w}=v,S=ge.useRef(null),I=M(g,S),A=a(f,y);return ge.useEffect(()=>(A.itemMap.set(S,{ref:S,...w}),()=>void A.itemMap.delete(S))),u.jsx(m,{[p]:"",ref:I,children:x})});h.displayName=f;function C(v){const g=a(e+"CollectionConsumer",v);return ge.useCallback(()=>{const x=g.collectionRef.current;if(!x)return[];const w=Array.from(x.querySelectorAll(`[${p}]`));return Array.from(g.itemMap.values()).sort((A,b)=>w.indexOf(A.ref.current)-w.indexOf(b.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:c,Slot:d,ItemSlot:h},C,o]}var ss=s.createContext(void 0);function At(e){const n=s.useContext(ss);return e||n||"ltr"}function ce(e){const n=s.useRef(e);return s.useEffect(()=>{n.current=e}),s.useMemo(()=>(...t)=>{var o;return(o=n.current)==null?void 0:o.call(n,...t)},[])}function as(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e);s.useEffect(()=>{const o=r=>{r.key==="Escape"&&t(r)};return n.addEventListener("keydown",o,{capture:!0}),()=>n.removeEventListener("keydown",o,{capture:!0})},[t,n])}var cs="DismissableLayer",wt="dismissableLayer.update",is="dismissableLayer.pointerDownOutside",ls="dismissableLayer.focusOutside",qt,ln=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),be=s.forwardRef((e,n)=>{const{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:c,onDismiss:i,...l}=e,d=s.useContext(ln),[f,p]=s.useState(null),m=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=s.useState({}),C=M(n,b=>p(b)),v=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=v.indexOf(g),x=f?v.indexOf(f):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,S=x>=y,I=fs(b=>{const T=b.target,B=[...d.branches].some($=>$.contains(T));!S||B||(r==null||r(b),c==null||c(b),b.defaultPrevented||i==null||i())},m),A=ps(b=>{const T=b.target;[...d.branches].some($=>$.contains(T))||(a==null||a(b),c==null||c(b),b.defaultPrevented||i==null||i())},m);return as(b=>{x===d.layers.size-1&&(o==null||o(b),!b.defaultPrevented&&i&&(b.preventDefault(),i()))},m),s.useEffect(()=>{if(f)return t&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(qt=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Zt(),()=>{t&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=qt)}},[f,m,t,d]),s.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Zt())},[f,d]),s.useEffect(()=>{const b=()=>h({});return document.addEventListener(wt,b),()=>document.removeEventListener(wt,b)},[]),u.jsx(_.div,{...l,ref:C,style:{pointerEvents:w?S?"auto":"none":void 0,...e.style},onFocusCapture:E(e.onFocusCapture,A.onFocusCapture),onBlurCapture:E(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:E(e.onPointerDownCapture,I.onPointerDownCapture)})});be.displayName=cs;var us="DismissableLayerBranch",ds=s.forwardRef((e,n)=>{const t=s.useContext(ln),o=s.useRef(null),r=M(n,o);return s.useEffect(()=>{const a=o.current;if(a)return t.branches.add(a),()=>{t.branches.delete(a)}},[t.branches]),u.jsx(_.div,{...e,ref:r})});ds.displayName=us;function fs(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e),o=s.useRef(!1),r=s.useRef(()=>{});return s.useEffect(()=>{const a=i=>{if(i.target&&!o.current){let l=function(){un(is,t,d,{discrete:!0})};const d={originalEvent:i};i.pointerType==="touch"?(n.removeEventListener("click",r.current),r.current=l,n.addEventListener("click",r.current,{once:!0})):l()}else n.removeEventListener("click",r.current);o.current=!1},c=window.setTimeout(()=>{n.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(c),n.removeEventListener("pointerdown",a),n.removeEventListener("click",r.current)}},[n,t]),{onPointerDownCapture:()=>o.current=!0}}function ps(e,n=globalThis==null?void 0:globalThis.document){const t=ce(e),o=s.useRef(!1);return s.useEffect(()=>{const r=a=>{a.target&&!o.current&&un(ls,t,{originalEvent:a},{discrete:!1})};return n.addEventListener("focusin",r),()=>n.removeEventListener("focusin",r)},[n,t]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Zt(){const e=new CustomEvent(wt);document.dispatchEvent(e)}function un(e,n,t,{discrete:o}){const r=t.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});n&&r.addEventListener(e,n,{once:!0}),o?cn(r,a):r.dispatchEvent(a)}var mt=0;function et(){s.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Jt()),document.body.insertAdjacentElement("beforeend",e[1]??Jt()),mt++,()=>{mt===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),mt--}},[])}function Jt(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ht="focusScope.autoFocusOnMount",gt="focusScope.autoFocusOnUnmount",Qt={bubbles:!1,cancelable:!0},vs="FocusScope",ke=s.forwardRef((e,n)=>{const{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...c}=e,[i,l]=s.useState(null),d=ce(r),f=ce(a),p=s.useRef(null),m=M(n,v=>l(v)),h=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(o){let v=function(w){if(h.paused||!i)return;const S=w.target;i.contains(S)?p.current=S:de(p.current,{select:!0})},g=function(w){if(h.paused||!i)return;const S=w.relatedTarget;S!==null&&(i.contains(S)||de(p.current,{select:!0}))},y=function(w){if(document.activeElement===document.body)for(const I of w)I.removedNodes.length>0&&de(i)};document.addEventListener("focusin",v),document.addEventListener("focusout",g);const x=new MutationObserver(y);return i&&x.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",g),x.disconnect()}}},[o,i,h.paused]),s.useEffect(()=>{if(i){tn.add(h);const v=document.activeElement;if(!i.contains(v)){const y=new CustomEvent(ht,Qt);i.addEventListener(ht,d),i.dispatchEvent(y),y.defaultPrevented||(ms(Cs(dn(i)),{select:!0}),document.activeElement===v&&de(i))}return()=>{i.removeEventListener(ht,d),setTimeout(()=>{const y=new CustomEvent(gt,Qt);i.addEventListener(gt,f),i.dispatchEvent(y),y.defaultPrevented||de(v??document.body,{select:!0}),i.removeEventListener(gt,f),tn.remove(h)},0)}}},[i,d,f,h]);const C=s.useCallback(v=>{if(!t&&!o||h.paused)return;const g=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,y=document.activeElement;if(g&&y){const x=v.currentTarget,[w,S]=hs(x);w&&S?!v.shiftKey&&y===S?(v.preventDefault(),t&&de(w,{select:!0})):v.shiftKey&&y===w&&(v.preventDefault(),t&&de(S,{select:!0})):y===x&&v.preventDefault()}},[t,o,h.paused]);return u.jsx(_.div,{tabIndex:-1,...c,ref:m,onKeyDown:C})});ke.displayName=vs;function ms(e,{select:n=!1}={}){const t=document.activeElement;for(const o of e)if(de(o,{select:n}),document.activeElement!==t)return}function hs(e){const n=dn(e),t=en(n,e),o=en(n.reverse(),e);return[t,o]}function dn(e){const n=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)n.push(t.currentNode);return n}function en(e,n){for(const t of e)if(!gs(t,{upTo:n}))return t}function gs(e,{upTo:n}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n!==void 0&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function xs(e){return e instanceof HTMLInputElement&&"select"in e}function de(e,{select:n=!1}={}){if(e&&e.focus){const t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&xs(e)&&n&&e.select()}}var tn=ws();function ws(){let e=[];return{add(n){const t=e[0];n!==t&&(t==null||t.pause()),e=nn(e,n),e.unshift(n)},remove(n){var t;e=nn(e,n),(t=e[0])==null||t.resume()}}}function nn(e,n){const t=[...e],o=t.indexOf(n);return o!==-1&&t.splice(o,1),t}function Cs(e){return e.filter(n=>n.tagName!=="A")}var ys=It[" useId ".trim().toString()]||(()=>{}),Es=0;function re(e){const[n,t]=s.useState(ys());return X(()=>{t(o=>o??String(Es++))},[e]),e||(n?`radix-${n}`:"")}var Ss="Arrow",fn=s.forwardRef((e,n)=>{const{children:t,width:o=10,height:r=5,...a}=e;return u.jsx(_.svg,{...a,ref:n,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?t:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});fn.displayName=Ss;var Ps=fn;function pn(e){const[n,t]=s.useState(void 0);return X(()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const a=r[0];let c,i;if("borderBoxSize"in a){const l=a.borderBoxSize,d=Array.isArray(l)?l[0]:l;c=d.inlineSize,i=d.blockSize}else c=e.offsetWidth,i=e.offsetHeight;t({width:c,height:i})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else t(void 0)},[e]),n}var Ot="Popper",[vn,pe]=ie(Ot),[Rs,mn]=vn(Ot),hn=e=>{const{__scopePopper:n,children:t}=e,[o,r]=s.useState(null);return u.jsx(Rs,{scope:n,anchor:o,onAnchorChange:r,children:t})};hn.displayName=Ot;var gn="PopperAnchor",xn=s.forwardRef((e,n)=>{const{__scopePopper:t,virtualRef:o,...r}=e,a=mn(gn,t),c=s.useRef(null),i=M(n,c),l=s.useRef(null);return s.useEffect(()=>{const d=l.current;l.current=(o==null?void 0:o.current)||c.current,d!==l.current&&a.onAnchorChange(l.current)}),o?null:u.jsx(_.div,{...r,ref:i})});xn.displayName=gn;var Dt="PopperContent",[bs,_s]=vn(Dt),wn=s.forwardRef((e,n)=>{var R,O,F,N,D,j;const{__scopePopper:t,side:o="bottom",sideOffset:r=0,align:a="center",alignOffset:c=0,arrowPadding:i=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:m=!1,updatePositionStrategy:h="optimized",onPlaced:C,...v}=e,g=mn(Dt,t),[y,x]=s.useState(null),w=M(n,Q=>x(Q)),[S,I]=s.useState(null),A=pn(S),b=(A==null?void 0:A.width)??0,T=(A==null?void 0:A.height)??0,B=o+(a!=="center"?"-"+a:""),$=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},H=Array.isArray(d)?d:[d],G=H.length>0,W={padding:$,boundary:H.filter(Is),altBoundary:G},{refs:z,floatingStyles:Y,placement:L,isPositioned:V,middlewareData:k}=Mr({strategy:"fixed",placement:B,whileElementsMounted:(...Q)=>Fr(...Q,{animationFrame:h==="always"}),elements:{reference:g.anchor},middleware:[Nr({mainAxis:r+T,alignmentAxis:c}),l&&Ar({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?kr():void 0,...W}),l&&Or({...W}),Dr({...W,apply:({elements:Q,rects:ae,availableWidth:Ie,availableHeight:Me})=>{const{width:Ne,height:Ir}=ae.reference,Ge=Q.floating.style;Ge.setProperty("--radix-popper-available-width",`${Ie}px`),Ge.setProperty("--radix-popper-available-height",`${Me}px`),Ge.setProperty("--radix-popper-anchor-width",`${Ne}px`),Ge.setProperty("--radix-popper-anchor-height",`${Ir}px`)}}),S&&jr({element:S,padding:i}),Ms({arrowWidth:b,arrowHeight:T}),m&&Lr({strategy:"referenceHidden",...W})]}),[P,K]=En(L),U=ce(C);X(()=>{V&&(U==null||U())},[V,U]);const Z=(R=k.arrow)==null?void 0:R.x,le=(O=k.arrow)==null?void 0:O.y,ee=((F=k.arrow)==null?void 0:F.centerOffset)!==0,[ue,J]=s.useState();return X(()=>{y&&J(window.getComputedStyle(y).zIndex)},[y]),u.jsx("div",{ref:z.setFloating,"data-radix-popper-content-wrapper":"",style:{...Y,transform:V?Y.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ue,"--radix-popper-transform-origin":[(N=k.transformOrigin)==null?void 0:N.x,(D=k.transformOrigin)==null?void 0:D.y].join(" "),...((j=k.hide)==null?void 0:j.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(bs,{scope:t,placedSide:P,onArrowChange:I,arrowX:Z,arrowY:le,shouldHideArrow:ee,children:u.jsx(_.div,{"data-side":P,"data-align":K,...v,ref:w,style:{...v.style,animation:V?void 0:"none"}})})})});wn.displayName=Dt;var Cn="PopperArrow",Ts={top:"bottom",right:"left",bottom:"top",left:"right"},yn=s.forwardRef(function(n,t){const{__scopePopper:o,...r}=n,a=_s(Cn,o),c=Ts[a.placedSide];return u.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:u.jsx(Ps,{...r,ref:t,style:{...r.style,display:"block"}})})});yn.displayName=Cn;function Is(e){return e!==null}var Ms=e=>({name:"transformOrigin",options:e,fn(n){var g,y,x;const{placement:t,rects:o,middlewareData:r}=n,c=((g=r.arrow)==null?void 0:g.centerOffset)!==0,i=c?0:e.arrowWidth,l=c?0:e.arrowHeight,[d,f]=En(t),p={start:"0%",center:"50%",end:"100%"}[f],m=(((y=r.arrow)==null?void 0:y.x)??0)+i/2,h=(((x=r.arrow)==null?void 0:x.y)??0)+l/2;let C="",v="";return d==="bottom"?(C=c?p:`${m}px`,v=`${-l}px`):d==="top"?(C=c?p:`${m}px`,v=`${o.floating.height+l}px`):d==="right"?(C=`${-l}px`,v=c?p:`${h}px`):d==="left"&&(C=`${o.floating.width+l}px`,v=c?p:`${h}px`),{data:{x:C,y:v}}}});function En(e){const[n,t="center"]=e.split("-");return[n,t]}var tt=hn,$e=xn,nt=wn,ot=yn,Ns="Portal",_e=s.forwardRef((e,n)=>{var i;const{container:t,...o}=e,[r,a]=s.useState(!1);X(()=>a(!0),[]);const c=t||r&&((i=globalThis==null?void 0:globalThis.document)==null?void 0:i.body);return c?$r.createPortal(u.jsx(_.div,{...o,ref:n}),c):null});_e.displayName=Ns;function As(e,n){return s.useReducer((t,o)=>n[t][o]??t,e)}var ne=e=>{const{present:n,children:t}=e,o=Os(n),r=typeof t=="function"?t({present:o.isPresent}):s.Children.only(t),a=M(o.ref,Ds(r));return typeof t=="function"||o.isPresent?s.cloneElement(r,{ref:a}):null};ne.displayName="Presence";function Os(e){const[n,t]=s.useState(),o=s.useRef(null),r=s.useRef(e),a=s.useRef("none"),c=e?"mounted":"unmounted",[i,l]=As(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return s.useEffect(()=>{const d=Ve(o.current);a.current=i==="mounted"?d:"none"},[i]),X(()=>{const d=o.current,f=r.current;if(f!==e){const m=a.current,h=Ve(d);e?l("MOUNT"):h==="none"||(d==null?void 0:d.display)==="none"?l("UNMOUNT"):l(f&&m!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),X(()=>{if(n){let d;const f=n.ownerDocument.defaultView??window,p=h=>{const v=Ve(o.current).includes(CSS.escape(h.animationName));if(h.target===n&&v&&(l("ANIMATION_END"),!r.current)){const g=n.style.animationFillMode;n.style.animationFillMode="forwards",d=f.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=g)})}},m=h=>{h.target===n&&(a.current=Ve(o.current))};return n.addEventListener("animationstart",m),n.addEventListener("animationcancel",p),n.addEventListener("animationend",p),()=>{f.clearTimeout(d),n.removeEventListener("animationstart",m),n.removeEventListener("animationcancel",p),n.removeEventListener("animationend",p)}}else l("ANIMATION_END")},[n,l]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:s.useCallback(d=>{o.current=d?getComputedStyle(d):null,t(d)},[])}}function Ve(e){return(e==null?void 0:e.animationName)||"none"}function Ds(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var xt="rovingFocusGroup.onEntryFocus",js={bubbles:!1,cancelable:!0},Be="RovingFocusGroup",[Ct,Sn,Ls]=Nt(Be),[Fs,Pn]=ie(Be,[Ls]),[ks,$s]=Fs(Be),Rn=s.forwardRef((e,n)=>u.jsx(Ct.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(Ct.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(Bs,{...e,ref:n})})}));Rn.displayName=Be;var Bs=s.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:t,orientation:o,loop:r=!1,dir:a,currentTabStopId:c,defaultCurrentTabStopId:i,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,m=s.useRef(null),h=M(n,m),C=At(a),[v,g]=fe({prop:c,defaultProp:i??null,onChange:l,caller:Be}),[y,x]=s.useState(!1),w=ce(d),S=Sn(t),I=s.useRef(!1),[A,b]=s.useState(0);return s.useEffect(()=>{const T=m.current;if(T)return T.addEventListener(xt,w),()=>T.removeEventListener(xt,w)},[w]),u.jsx(ks,{scope:t,orientation:o,dir:C,loop:r,currentTabStopId:v,onItemFocus:s.useCallback(T=>g(T),[g]),onItemShiftTab:s.useCallback(()=>x(!0),[]),onFocusableItemAdd:s.useCallback(()=>b(T=>T+1),[]),onFocusableItemRemove:s.useCallback(()=>b(T=>T-1),[]),children:u.jsx(_.div,{tabIndex:y||A===0?-1:0,"data-orientation":o,...p,ref:h,style:{outline:"none",...e.style},onMouseDown:E(e.onMouseDown,()=>{I.current=!0}),onFocus:E(e.onFocus,T=>{const B=!I.current;if(T.target===T.currentTarget&&B&&!y){const $=new CustomEvent(xt,js);if(T.currentTarget.dispatchEvent($),!$.defaultPrevented){const H=S().filter(L=>L.focusable),G=H.find(L=>L.active),W=H.find(L=>L.id===v),Y=[G,W,...H].filter(Boolean).map(L=>L.ref.current);Tn(Y,f)}}I.current=!1}),onBlur:E(e.onBlur,()=>x(!1))})})}),bn="RovingFocusGroupItem",_n=s.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:t,focusable:o=!0,active:r=!1,tabStopId:a,children:c,...i}=e,l=re(),d=a||l,f=$s(bn,t),p=f.currentTabStopId===d,m=Sn(t),{onFocusableItemAdd:h,onFocusableItemRemove:C,currentTabStopId:v}=f;return s.useEffect(()=>{if(o)return h(),()=>C()},[o,h,C]),u.jsx(Ct.ItemSlot,{scope:t,id:d,focusable:o,active:r,children:u.jsx(_.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:n,onMouseDown:E(e.onMouseDown,g=>{o?f.onItemFocus(d):g.preventDefault()}),onFocus:E(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:E(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){f.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const y=Ws(g,f.orientation,f.dir);if(y!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let w=m().filter(S=>S.focusable).map(S=>S.ref.current);if(y==="last")w.reverse();else if(y==="prev"||y==="next"){y==="prev"&&w.reverse();const S=w.indexOf(g.currentTarget);w=f.loop?Ks(w,S+1):w.slice(S+1)}setTimeout(()=>Tn(w))}}),children:typeof c=="function"?c({isCurrentTabStop:p,hasTabStop:v!=null}):c})})});_n.displayName=bn;var Us={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Hs(e,n){return n!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Ws(e,n,t){const o=Hs(e.key,t);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Us[o]}function Tn(e,n=!1){const t=document.activeElement;for(const o of e)if(o===t||(o.focus({preventScroll:n}),document.activeElement!==t))return}function Ks(e,n){return e.map((t,o)=>e[(n+o)%e.length])}var Gs=Rn,Vs=_n,yt=["Enter"," "],zs=["ArrowDown","PageUp","Home"],In=["ArrowUp","PageDown","End"],Ys=[...zs,...In],Xs={ltr:[...yt,"ArrowRight"],rtl:[...yt,"ArrowLeft"]},qs={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Ue="Menu",[De,Zs,Js]=Nt(Ue),[Ee,Mn]=ie(Ue,[Js,pe,Pn]),rt=pe(),Nn=Pn(),[Qs,Se]=Ee(Ue),[ea,He]=Ee(Ue),An=e=>{const{__scopeMenu:n,open:t=!1,children:o,dir:r,onOpenChange:a,modal:c=!0}=e,i=rt(n),[l,d]=s.useState(null),f=s.useRef(!1),p=ce(a),m=At(r);return s.useEffect(()=>{const h=()=>{f.current=!0,document.addEventListener("pointerdown",C,{capture:!0,once:!0}),document.addEventListener("pointermove",C,{capture:!0,once:!0})},C=()=>f.current=!1;return document.addEventListener("keydown",h,{capture:!0}),()=>{document.removeEventListener("keydown",h,{capture:!0}),document.removeEventListener("pointerdown",C,{capture:!0}),document.removeEventListener("pointermove",C,{capture:!0})}},[]),u.jsx(tt,{...i,children:u.jsx(Qs,{scope:n,open:t,onOpenChange:p,content:l,onContentChange:d,children:u.jsx(ea,{scope:n,onClose:s.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:c,children:o})})})};An.displayName=Ue;var ta="MenuAnchor",jt=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,r=rt(t);return u.jsx($e,{...r,...o,ref:n})});jt.displayName=ta;var Lt="MenuPortal",[na,On]=Ee(Lt,{forceMount:void 0}),Dn=e=>{const{__scopeMenu:n,forceMount:t,children:o,container:r}=e,a=Se(Lt,n);return u.jsx(na,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};Dn.displayName=Lt;var te="MenuContent",[oa,Ft]=Ee(te),jn=s.forwardRef((e,n)=>{const t=On(te,e.__scopeMenu),{forceMount:o=t.forceMount,...r}=e,a=Se(te,e.__scopeMenu),c=He(te,e.__scopeMenu);return u.jsx(De.Provider,{scope:e.__scopeMenu,children:u.jsx(ne,{present:o||a.open,children:u.jsx(De.Slot,{scope:e.__scopeMenu,children:c.modal?u.jsx(ra,{...r,ref:n}):u.jsx(sa,{...r,ref:n})})})})}),ra=s.forwardRef((e,n)=>{const t=Se(te,e.__scopeMenu),o=s.useRef(null),r=M(n,o);return s.useEffect(()=>{const a=o.current;if(a)return Qe(a)},[]),u.jsx(kt,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),sa=s.forwardRef((e,n)=>{const t=Se(te,e.__scopeMenu);return u.jsx(kt,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),aa=xe("MenuContent.ScrollLock"),kt=s.forwardRef((e,n)=>{const{__scopeMenu:t,loop:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:i,onEntryFocus:l,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:h,disableOutsideScroll:C,...v}=e,g=Se(te,t),y=He(te,t),x=rt(t),w=Nn(t),S=Zs(t),[I,A]=s.useState(null),b=s.useRef(null),T=M(n,b,g.onContentChange),B=s.useRef(0),$=s.useRef(""),H=s.useRef(0),G=s.useRef(null),W=s.useRef("right"),z=s.useRef(0),Y=C?Je:s.Fragment,L=C?{as:aa,allowPinchZoom:!0}:void 0,V=P=>{var R,O;const K=$.current+P,U=S().filter(F=>!F.disabled),Z=document.activeElement,le=(R=U.find(F=>F.ref.current===Z))==null?void 0:R.textValue,ee=U.map(F=>F.textValue),ue=xa(ee,K,le),J=(O=U.find(F=>F.textValue===ue))==null?void 0:O.ref.current;(function F(N){$.current=N,window.clearTimeout(B.current),N!==""&&(B.current=window.setTimeout(()=>F(""),1e3))})(K),J&&setTimeout(()=>J.focus())};s.useEffect(()=>()=>window.clearTimeout(B.current),[]),et();const k=s.useCallback(P=>{var U,Z;return W.current===((U=G.current)==null?void 0:U.side)&&Ca(P,(Z=G.current)==null?void 0:Z.area)},[]);return u.jsx(oa,{scope:t,searchRef:$,onItemEnter:s.useCallback(P=>{k(P)&&P.preventDefault()},[k]),onItemLeave:s.useCallback(P=>{var K;k(P)||((K=b.current)==null||K.focus(),A(null))},[k]),onTriggerLeave:s.useCallback(P=>{k(P)&&P.preventDefault()},[k]),pointerGraceTimerRef:H,onPointerGraceIntentChange:s.useCallback(P=>{G.current=P},[]),children:u.jsx(Y,{...L,children:u.jsx(ke,{asChild:!0,trapped:r,onMountAutoFocus:E(a,P=>{var K;P.preventDefault(),(K=b.current)==null||K.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:i,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:h,children:u.jsx(Gs,{asChild:!0,...w,dir:y.dir,orientation:"vertical",loop:o,currentTabStopId:I,onCurrentTabStopIdChange:A,onEntryFocus:E(l,P=>{y.isUsingKeyboardRef.current||P.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(nt,{role:"menu","aria-orientation":"vertical","data-state":Zn(g.open),"data-radix-menu-content":"",dir:y.dir,...x,...v,ref:T,style:{outline:"none",...v.style},onKeyDown:E(v.onKeyDown,P=>{const U=P.target.closest("[data-radix-menu-content]")===P.currentTarget,Z=P.ctrlKey||P.altKey||P.metaKey,le=P.key.length===1;U&&(P.key==="Tab"&&P.preventDefault(),!Z&&le&&V(P.key));const ee=b.current;if(P.target!==ee||!Ys.includes(P.key))return;P.preventDefault();const J=S().filter(R=>!R.disabled).map(R=>R.ref.current);In.includes(P.key)&&J.reverse(),ha(J)}),onBlur:E(e.onBlur,P=>{P.currentTarget.contains(P.target)||(window.clearTimeout(B.current),$.current="")}),onPointerMove:E(e.onPointerMove,je(P=>{const K=P.target,U=z.current!==P.clientX;if(P.currentTarget.contains(K)&&U){const Z=P.clientX>z.current?"right":"left";W.current=Z,z.current=P.clientX}}))})})})})})})});jn.displayName=te;var ca="MenuGroup",$t=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{role:"group",...o,ref:n})});$t.displayName=ca;var ia="MenuLabel",Ln=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{...o,ref:n})});Ln.displayName=ia;var Ye="MenuItem",on="menu.itemSelect",st=s.forwardRef((e,n)=>{const{disabled:t=!1,onSelect:o,...r}=e,a=s.useRef(null),c=He(Ye,e.__scopeMenu),i=Ft(Ye,e.__scopeMenu),l=M(n,a),d=s.useRef(!1),f=()=>{const p=a.current;if(!t&&p){const m=new CustomEvent(on,{bubbles:!0,cancelable:!0});p.addEventListener(on,h=>o==null?void 0:o(h),{once:!0}),cn(p,m),m.defaultPrevented?d.current=!1:c.onClose()}};return u.jsx(Fn,{...r,ref:l,disabled:t,onClick:E(e.onClick,f),onPointerDown:p=>{var m;(m=e.onPointerDown)==null||m.call(e,p),d.current=!0},onPointerUp:E(e.onPointerUp,p=>{var m;d.current||(m=p.currentTarget)==null||m.click()}),onKeyDown:E(e.onKeyDown,p=>{const m=i.searchRef.current!=="";t||m&&p.key===" "||yt.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});st.displayName=Ye;var Fn=s.forwardRef((e,n)=>{const{__scopeMenu:t,disabled:o=!1,textValue:r,...a}=e,c=Ft(Ye,t),i=Nn(t),l=s.useRef(null),d=M(n,l),[f,p]=s.useState(!1),[m,h]=s.useState("");return s.useEffect(()=>{const C=l.current;C&&h((C.textContent??"").trim())},[a.children]),u.jsx(De.ItemSlot,{scope:t,disabled:o,textValue:r??m,children:u.jsx(Vs,{asChild:!0,...i,focusable:!o,children:u.jsx(_.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:d,onPointerMove:E(e.onPointerMove,je(C=>{o?c.onItemLeave(C):(c.onItemEnter(C),C.defaultPrevented||C.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:E(e.onPointerLeave,je(C=>c.onItemLeave(C))),onFocus:E(e.onFocus,()=>p(!0)),onBlur:E(e.onBlur,()=>p(!1))})})})}),la="MenuCheckboxItem",kn=s.forwardRef((e,n)=>{const{checked:t=!1,onCheckedChange:o,...r}=e;return u.jsx(Wn,{scope:e.__scopeMenu,checked:t,children:u.jsx(st,{role:"menuitemcheckbox","aria-checked":Xe(t)?"mixed":t,...r,ref:n,"data-state":Ut(t),onSelect:E(r.onSelect,()=>o==null?void 0:o(Xe(t)?!0:!t),{checkForDefaultPrevented:!1})})})});kn.displayName=la;var $n="MenuRadioGroup",[ua,da]=Ee($n,{value:void 0,onValueChange:()=>{}}),Bn=s.forwardRef((e,n)=>{const{value:t,onValueChange:o,...r}=e,a=ce(o);return u.jsx(ua,{scope:e.__scopeMenu,value:t,onValueChange:a,children:u.jsx($t,{...r,ref:n})})});Bn.displayName=$n;var Un="MenuRadioItem",Hn=s.forwardRef((e,n)=>{const{value:t,...o}=e,r=da(Un,e.__scopeMenu),a=t===r.value;return u.jsx(Wn,{scope:e.__scopeMenu,checked:a,children:u.jsx(st,{role:"menuitemradio","aria-checked":a,...o,ref:n,"data-state":Ut(a),onSelect:E(o.onSelect,()=>{var c;return(c=r.onValueChange)==null?void 0:c.call(r,t)},{checkForDefaultPrevented:!1})})})});Hn.displayName=Un;var Bt="MenuItemIndicator",[Wn,fa]=Ee(Bt,{checked:!1}),Kn=s.forwardRef((e,n)=>{const{__scopeMenu:t,forceMount:o,...r}=e,a=fa(Bt,t);return u.jsx(ne,{present:o||Xe(a.checked)||a.checked===!0,children:u.jsx(_.span,{...r,ref:n,"data-state":Ut(a.checked)})})});Kn.displayName=Bt;var pa="MenuSeparator",Gn=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return u.jsx(_.div,{role:"separator","aria-orientation":"horizontal",...o,ref:n})});Gn.displayName=pa;var va="MenuArrow",Vn=s.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,r=rt(t);return u.jsx(ot,{...r,...o,ref:n})});Vn.displayName=va;var ma="MenuSub",[ui,zn]=Ee(ma),Ae="MenuSubTrigger",Yn=s.forwardRef((e,n)=>{const t=Se(Ae,e.__scopeMenu),o=He(Ae,e.__scopeMenu),r=zn(Ae,e.__scopeMenu),a=Ft(Ae,e.__scopeMenu),c=s.useRef(null),{pointerGraceTimerRef:i,onPointerGraceIntentChange:l}=a,d={__scopeMenu:e.__scopeMenu},f=s.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return s.useEffect(()=>f,[f]),s.useEffect(()=>{const p=i.current;return()=>{window.clearTimeout(p),l(null)}},[i,l]),u.jsx(jt,{asChild:!0,...d,children:u.jsx(Fn,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":r.contentId,"data-state":Zn(t.open),...e,ref:Fe(n,r.onTriggerChange),onClick:p=>{var m;(m=e.onClick)==null||m.call(e,p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:E(e.onPointerMove,je(p=>{a.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!t.open&&!c.current&&(a.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{t.onOpenChange(!0),f()},100))})),onPointerLeave:E(e.onPointerLeave,je(p=>{var h,C;f();const m=(h=t.content)==null?void 0:h.getBoundingClientRect();if(m){const v=(C=t.content)==null?void 0:C.dataset.side,g=v==="right",y=g?-5:5,x=m[g?"left":"right"],w=m[g?"right":"left"];a.onPointerGraceIntentChange({area:[{x:p.clientX+y,y:p.clientY},{x,y:m.top},{x:w,y:m.top},{x:w,y:m.bottom},{x,y:m.bottom}],side:v}),window.clearTimeout(i.current),i.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(p),p.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:E(e.onKeyDown,p=>{var h;const m=a.searchRef.current!=="";e.disabled||m&&p.key===" "||Xs[o.dir].includes(p.key)&&(t.onOpenChange(!0),(h=t.content)==null||h.focus(),p.preventDefault())})})})});Yn.displayName=Ae;var Xn="MenuSubContent",qn=s.forwardRef((e,n)=>{const t=On(te,e.__scopeMenu),{forceMount:o=t.forceMount,...r}=e,a=Se(te,e.__scopeMenu),c=He(te,e.__scopeMenu),i=zn(Xn,e.__scopeMenu),l=s.useRef(null),d=M(n,l);return u.jsx(De.Provider,{scope:e.__scopeMenu,children:u.jsx(ne,{present:o||a.open,children:u.jsx(De.Slot,{scope:e.__scopeMenu,children:u.jsx(kt,{id:i.contentId,"aria-labelledby":i.triggerId,...r,ref:d,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{var p;c.isUsingKeyboardRef.current&&((p=l.current)==null||p.focus()),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:E(e.onFocusOutside,f=>{f.target!==i.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:E(e.onEscapeKeyDown,f=>{c.onClose(),f.preventDefault()}),onKeyDown:E(e.onKeyDown,f=>{var h;const p=f.currentTarget.contains(f.target),m=qs[c.dir].includes(f.key);p&&m&&(a.onOpenChange(!1),(h=i.trigger)==null||h.focus(),f.preventDefault())})})})})})});qn.displayName=Xn;function Zn(e){return e?"open":"closed"}function Xe(e){return e==="indeterminate"}function Ut(e){return Xe(e)?"indeterminate":e?"checked":"unchecked"}function ha(e){const n=document.activeElement;for(const t of e)if(t===n||(t.focus(),document.activeElement!==n))return}function ga(e,n){return e.map((t,o)=>e[(n+o)%e.length])}function xa(e,n,t){const r=n.length>1&&Array.from(n).every(d=>d===n[0])?n[0]:n,a=t?e.indexOf(t):-1;let c=ga(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==t));const l=c.find(d=>d.toLowerCase().startsWith(r.toLowerCase()));return l!==t?l:void 0}function wa(e,n){const{x:t,y:o}=e;let r=!1;for(let a=0,c=n.length-1;a<n.length;c=a++){const i=n[a],l=n[c],d=i.x,f=i.y,p=l.x,m=l.y;f>o!=m>o&&t<(p-d)*(o-f)/(m-f)+d&&(r=!r)}return r}function Ca(e,n){if(!n)return!1;const t={x:e.clientX,y:e.clientY};return wa(t,n)}function je(e){return n=>n.pointerType==="mouse"?e(n):void 0}var ya=An,Ea=jt,Sa=Dn,Pa=jn,Ra=$t,ba=Ln,_a=st,Ta=kn,Ia=Bn,Ma=Hn,Na=Kn,Aa=Gn,Oa=Vn,Da=Yn,ja=qn,at="DropdownMenu",[La]=ie(at,[Mn]),q=Mn(),[Fa,Jn]=La(at),Qn=e=>{const{__scopeDropdownMenu:n,children:t,dir:o,open:r,defaultOpen:a,onOpenChange:c,modal:i=!0}=e,l=q(n),d=s.useRef(null),[f,p]=fe({prop:r,defaultProp:a??!1,onChange:c,caller:at});return u.jsx(Fa,{scope:n,triggerId:re(),triggerRef:d,contentId:re(),open:f,onOpenChange:p,onOpenToggle:s.useCallback(()=>p(m=>!m),[p]),modal:i,children:u.jsx(ya,{...l,open:f,onOpenChange:p,dir:o,modal:i,children:t})})};Qn.displayName=at;var eo="DropdownMenuTrigger",to=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,disabled:o=!1,...r}=e,a=Jn(eo,t),c=q(t);return u.jsx(Ea,{asChild:!0,...c,children:u.jsx(_.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:Fe(n,a.triggerRef),onPointerDown:E(e.onPointerDown,i=>{!o&&i.button===0&&i.ctrlKey===!1&&(a.onOpenToggle(),a.open||i.preventDefault())}),onKeyDown:E(e.onKeyDown,i=>{o||(["Enter"," "].includes(i.key)&&a.onOpenToggle(),i.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(i.key)&&i.preventDefault())})})})});to.displayName=eo;var ka="DropdownMenuPortal",no=e=>{const{__scopeDropdownMenu:n,...t}=e,o=q(n);return u.jsx(Sa,{...o,...t})};no.displayName=ka;var oo="DropdownMenuContent",ro=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=Jn(oo,t),a=q(t),c=s.useRef(!1);return u.jsx(Pa,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:n,onCloseAutoFocus:E(e.onCloseAutoFocus,i=>{var l;c.current||(l=r.triggerRef.current)==null||l.focus(),c.current=!1,i.preventDefault()}),onInteractOutside:E(e.onInteractOutside,i=>{const l=i.detail.originalEvent,d=l.button===0&&l.ctrlKey===!0,f=l.button===2||d;(!r.modal||f)&&(c.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ro.displayName=oo;var $a="DropdownMenuGroup",Ba=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ra,{...r,...o,ref:n})});Ba.displayName=$a;var Ua="DropdownMenuLabel",so=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(ba,{...r,...o,ref:n})});so.displayName=Ua;var Ha="DropdownMenuItem",ao=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(_a,{...r,...o,ref:n})});ao.displayName=Ha;var Wa="DropdownMenuCheckboxItem",co=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ta,{...r,...o,ref:n})});co.displayName=Wa;var Ka="DropdownMenuRadioGroup",Ga=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ia,{...r,...o,ref:n})});Ga.displayName=Ka;var Va="DropdownMenuRadioItem",io=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Ma,{...r,...o,ref:n})});io.displayName=Va;var za="DropdownMenuItemIndicator",lo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Na,{...r,...o,ref:n})});lo.displayName=za;var Ya="DropdownMenuSeparator",uo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Aa,{...r,...o,ref:n})});uo.displayName=Ya;var Xa="DropdownMenuArrow",qa=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Oa,{...r,...o,ref:n})});qa.displayName=Xa;var Za="DropdownMenuSubTrigger",fo=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(Da,{...r,...o,ref:n})});fo.displayName=Za;var Ja="DropdownMenuSubContent",po=s.forwardRef((e,n)=>{const{__scopeDropdownMenu:t,...o}=e,r=q(t);return u.jsx(ja,{...r,...o,ref:n,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});po.displayName=Ja;var di=Qn,fi=to,pi=no,vi=ro,mi=so,hi=ao,gi=co,xi=io,wi=lo,Ci=uo,yi=fo,Ei=po,vo=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qa="VisuallyHidden",mo=s.forwardRef((e,n)=>u.jsx(_.span,{...e,ref:n,style:{...vo,...e.style}}));mo.displayName=Qa;var ec=mo,[ct]=ie("Tooltip",[pe]),it=pe(),ho="TooltipProvider",tc=700,Et="tooltip.open",[nc,Ht]=ct(ho),go=e=>{const{__scopeTooltip:n,delayDuration:t=tc,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:a}=e,c=s.useRef(!0),i=s.useRef(!1),l=s.useRef(0);return s.useEffect(()=>{const d=l.current;return()=>window.clearTimeout(d)},[]),u.jsx(nc,{scope:n,isOpenDelayedRef:c,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(l.current),c.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>c.current=!0,o)},[o]),isPointerInTransitRef:i,onPointerInTransitChange:s.useCallback(d=>{i.current=d},[]),disableHoverableContent:r,children:a})};go.displayName=ho;var Le="Tooltip",[oc,We]=ct(Le),xo=e=>{const{__scopeTooltip:n,children:t,open:o,defaultOpen:r,onOpenChange:a,disableHoverableContent:c,delayDuration:i}=e,l=Ht(Le,e.__scopeTooltip),d=it(n),[f,p]=s.useState(null),m=re(),h=s.useRef(0),C=c??l.disableHoverableContent,v=i??l.delayDuration,g=s.useRef(!1),[y,x]=fe({prop:o,defaultProp:r??!1,onChange:b=>{b?(l.onOpen(),document.dispatchEvent(new CustomEvent(Et))):l.onClose(),a==null||a(b)},caller:Le}),w=s.useMemo(()=>y?g.current?"delayed-open":"instant-open":"closed",[y]),S=s.useCallback(()=>{window.clearTimeout(h.current),h.current=0,g.current=!1,x(!0)},[x]),I=s.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x(!1)},[x]),A=s.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{g.current=!0,x(!0),h.current=0},v)},[v,x]);return s.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),u.jsx(tt,{...d,children:u.jsx(oc,{scope:n,contentId:m,open:y,stateAttribute:w,trigger:f,onTriggerChange:p,onTriggerEnter:s.useCallback(()=>{l.isOpenDelayedRef.current?A():S()},[l.isOpenDelayedRef,A,S]),onTriggerLeave:s.useCallback(()=>{C?I():(window.clearTimeout(h.current),h.current=0)},[I,C]),onOpen:S,onClose:I,disableHoverableContent:C,children:t})})};xo.displayName=Le;var St="TooltipTrigger",wo=s.forwardRef((e,n)=>{const{__scopeTooltip:t,...o}=e,r=We(St,t),a=Ht(St,t),c=it(t),i=s.useRef(null),l=M(n,i,r.onTriggerChange),d=s.useRef(!1),f=s.useRef(!1),p=s.useCallback(()=>d.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),u.jsx($e,{asChild:!0,...c,children:u.jsx(_.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:l,onPointerMove:E(e.onPointerMove,m=>{m.pointerType!=="touch"&&!f.current&&!a.isPointerInTransitRef.current&&(r.onTriggerEnter(),f.current=!0)}),onPointerLeave:E(e.onPointerLeave,()=>{r.onTriggerLeave(),f.current=!1}),onPointerDown:E(e.onPointerDown,()=>{r.open&&r.onClose(),d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:E(e.onFocus,()=>{d.current||r.onOpen()}),onBlur:E(e.onBlur,r.onClose),onClick:E(e.onClick,r.onClose)})})});wo.displayName=St;var Wt="TooltipPortal",[rc,sc]=ct(Wt,{forceMount:void 0}),Co=e=>{const{__scopeTooltip:n,forceMount:t,children:o,container:r}=e,a=We(Wt,n);return u.jsx(rc,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};Co.displayName=Wt;var Pe="TooltipContent",yo=s.forwardRef((e,n)=>{const t=sc(Pe,e.__scopeTooltip),{forceMount:o=t.forceMount,side:r="top",...a}=e,c=We(Pe,e.__scopeTooltip);return u.jsx(ne,{present:o||c.open,children:c.disableHoverableContent?u.jsx(Eo,{side:r,...a,ref:n}):u.jsx(ac,{side:r,...a,ref:n})})}),ac=s.forwardRef((e,n)=>{const t=We(Pe,e.__scopeTooltip),o=Ht(Pe,e.__scopeTooltip),r=s.useRef(null),a=M(n,r),[c,i]=s.useState(null),{trigger:l,onClose:d}=t,f=r.current,{onPointerInTransitChange:p}=o,m=s.useCallback(()=>{i(null),p(!1)},[p]),h=s.useCallback((C,v)=>{const g=C.currentTarget,y={x:C.clientX,y:C.clientY},x=dc(y,g.getBoundingClientRect()),w=fc(y,x),S=pc(v.getBoundingClientRect()),I=mc([...w,...S]);i(I),p(!0)},[p]);return s.useEffect(()=>()=>m(),[m]),s.useEffect(()=>{if(l&&f){const C=g=>h(g,f),v=g=>h(g,l);return l.addEventListener("pointerleave",C),f.addEventListener("pointerleave",v),()=>{l.removeEventListener("pointerleave",C),f.removeEventListener("pointerleave",v)}}},[l,f,h,m]),s.useEffect(()=>{if(c){const C=v=>{const g=v.target,y={x:v.clientX,y:v.clientY},x=(l==null?void 0:l.contains(g))||(f==null?void 0:f.contains(g)),w=!vc(y,c);x?m():w&&(m(),d())};return document.addEventListener("pointermove",C),()=>document.removeEventListener("pointermove",C)}},[l,f,c,d,m]),u.jsx(Eo,{...e,ref:a})}),[cc,ic]=ct(Le,{isInside:!1}),lc=es("TooltipContent"),Eo=s.forwardRef((e,n)=>{const{__scopeTooltip:t,children:o,"aria-label":r,onEscapeKeyDown:a,onPointerDownOutside:c,...i}=e,l=We(Pe,t),d=it(t),{onClose:f}=l;return s.useEffect(()=>(document.addEventListener(Et,f),()=>document.removeEventListener(Et,f)),[f]),s.useEffect(()=>{if(l.trigger){const p=m=>{const h=m.target;h!=null&&h.contains(l.trigger)&&f()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[l.trigger,f]),u.jsx(be,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:p=>p.preventDefault(),onDismiss:f,children:u.jsxs(nt,{"data-state":l.stateAttribute,...d,...i,ref:n,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(lc,{children:o}),u.jsx(cc,{scope:t,isInside:!0,children:u.jsx(ec,{id:l.contentId,role:"tooltip",children:r||o})})]})})});yo.displayName=Pe;var So="TooltipArrow",uc=s.forwardRef((e,n)=>{const{__scopeTooltip:t,...o}=e,r=it(t);return ic(So,t).isInside?null:u.jsx(ot,{...r,...o,ref:n})});uc.displayName=So;function dc(e,n){const t=Math.abs(n.top-e.y),o=Math.abs(n.bottom-e.y),r=Math.abs(n.right-e.x),a=Math.abs(n.left-e.x);switch(Math.min(t,o,r,a)){case a:return"left";case r:return"right";case t:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function fc(e,n,t=5){const o=[];switch(n){case"top":o.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":o.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":o.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":o.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return o}function pc(e){const{top:n,right:t,bottom:o,left:r}=e;return[{x:r,y:n},{x:t,y:n},{x:t,y:o},{x:r,y:o}]}function vc(e,n){const{x:t,y:o}=e;let r=!1;for(let a=0,c=n.length-1;a<n.length;c=a++){const i=n[a],l=n[c],d=i.x,f=i.y,p=l.x,m=l.y;f>o!=m>o&&t<(p-d)*(o-f)/(m-f)+d&&(r=!r)}return r}function mc(e){const n=e.slice();return n.sort((t,o)=>t.x<o.x?-1:t.x>o.x?1:t.y<o.y?-1:t.y>o.y?1:0),hc(n)}function hc(e){if(e.length<=1)return e.slice();const n=[];for(let o=0;o<e.length;o++){const r=e[o];for(;n.length>=2;){const a=n[n.length-1],c=n[n.length-2];if((a.x-c.x)*(r.y-c.y)>=(a.y-c.y)*(r.x-c.x))n.pop();else break}n.push(r)}n.pop();const t=[];for(let o=e.length-1;o>=0;o--){const r=e[o];for(;t.length>=2;){const a=t[t.length-1],c=t[t.length-2];if((a.x-c.x)*(r.y-c.y)>=(a.y-c.y)*(r.x-c.x))t.pop();else break}t.push(r)}return t.pop(),n.length===1&&t.length===1&&n[0].x===t[0].x&&n[0].y===t[0].y?n:n.concat(t)}var Si=go,Pi=xo,Ri=wo,bi=Co,_i=yo;function rn(e,[n,t]){return Math.min(t,Math.max(n,e))}function Po(e){const n=s.useRef({value:e,previous:e});return s.useMemo(()=>(n.current.value!==e&&(n.current.previous=n.current.value,n.current.value=e),n.current.previous),[e])}var gc=[" ","Enter","ArrowUp","ArrowDown"],xc=[" ","Enter"],we="Select",[lt,ut,wc]=Nt(we),[Te]=ie(we,[wc,pe]),dt=pe(),[Cc,ve]=Te(we),[yc,Ec]=Te(we),Ro=e=>{const{__scopeSelect:n,children:t,open:o,defaultOpen:r,onOpenChange:a,value:c,defaultValue:i,onValueChange:l,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:C}=e,v=dt(n),[g,y]=s.useState(null),[x,w]=s.useState(null),[S,I]=s.useState(!1),A=At(d),[b,T]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:we}),[B,$]=fe({prop:c,defaultProp:i,onChange:l,caller:we}),H=s.useRef(null),G=g?C||!!g.closest("form"):!0,[W,z]=s.useState(new Set),Y=Array.from(W).map(L=>L.props.value).join(";");return u.jsx(tt,{...v,children:u.jsxs(Cc,{required:h,scope:n,trigger:g,onTriggerChange:y,valueNode:x,onValueNodeChange:w,valueNodeHasChildren:S,onValueNodeHasChildrenChange:I,contentId:re(),value:B,onValueChange:$,open:b,onOpenChange:T,dir:A,triggerPointerDownPosRef:H,disabled:m,children:[u.jsx(lt.Provider,{scope:n,children:u.jsx(yc,{scope:e.__scopeSelect,onNativeOptionAdd:s.useCallback(L=>{z(V=>new Set(V).add(L))},[]),onNativeOptionRemove:s.useCallback(L=>{z(V=>{const k=new Set(V);return k.delete(L),k})},[]),children:t})}),G?u.jsxs(Xo,{"aria-hidden":!0,required:h,tabIndex:-1,name:f,autoComplete:p,value:B,onChange:L=>$(L.target.value),disabled:m,form:C,children:[B===void 0?u.jsx("option",{value:""}):null,Array.from(W)]},Y):null]})})};Ro.displayName=we;var bo="SelectTrigger",_o=s.forwardRef((e,n)=>{const{__scopeSelect:t,disabled:o=!1,...r}=e,a=dt(t),c=ve(bo,t),i=c.disabled||o,l=M(n,c.onTriggerChange),d=ut(t),f=s.useRef("touch"),[p,m,h]=Zo(v=>{const g=d().filter(w=>!w.disabled),y=g.find(w=>w.value===c.value),x=Jo(g,v,y);x!==void 0&&c.onValueChange(x.value)}),C=v=>{i||(c.onOpenChange(!0),h()),v&&(c.triggerPointerDownPosRef.current={x:Math.round(v.pageX),y:Math.round(v.pageY)})};return u.jsx($e,{asChild:!0,...a,children:u.jsx(_.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:i,"data-disabled":i?"":void 0,"data-placeholder":qo(c.value)?"":void 0,...r,ref:l,onClick:E(r.onClick,v=>{v.currentTarget.focus(),f.current!=="mouse"&&C(v)}),onPointerDown:E(r.onPointerDown,v=>{f.current=v.pointerType;const g=v.target;g.hasPointerCapture(v.pointerId)&&g.releasePointerCapture(v.pointerId),v.button===0&&v.ctrlKey===!1&&v.pointerType==="mouse"&&(C(v),v.preventDefault())}),onKeyDown:E(r.onKeyDown,v=>{const g=p.current!=="";!(v.ctrlKey||v.altKey||v.metaKey)&&v.key.length===1&&m(v.key),!(g&&v.key===" ")&&gc.includes(v.key)&&(C(),v.preventDefault())})})})});_o.displayName=bo;var To="SelectValue",Io=s.forwardRef((e,n)=>{const{__scopeSelect:t,className:o,style:r,children:a,placeholder:c="",...i}=e,l=ve(To,t),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,p=M(n,l.onValueNodeChange);return X(()=>{d(f)},[d,f]),u.jsx(_.span,{...i,ref:p,style:{pointerEvents:"none"},children:qo(l.value)?u.jsx(u.Fragment,{children:c}):a})});Io.displayName=To;var Sc="SelectIcon",Mo=s.forwardRef((e,n)=>{const{__scopeSelect:t,children:o,...r}=e;return u.jsx(_.span,{"aria-hidden":!0,...r,ref:n,children:o||"▼"})});Mo.displayName=Sc;var Pc="SelectPortal",No=e=>u.jsx(_e,{asChild:!0,...e});No.displayName=Pc;var Ce="SelectContent",Ao=s.forwardRef((e,n)=>{const t=ve(Ce,e.__scopeSelect),[o,r]=s.useState();if(X(()=>{r(new DocumentFragment)},[]),!t.open){const a=o;return a?Mt.createPortal(u.jsx(Oo,{scope:e.__scopeSelect,children:u.jsx(lt.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),a):null}return u.jsx(Do,{...e,ref:n})});Ao.displayName=Ce;var oe=10,[Oo,me]=Te(Ce),Rc="SelectContentImpl",bc=xe("SelectContent.RemoveScroll"),Do=s.forwardRef((e,n)=>{const{__scopeSelect:t,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:a,onPointerDownOutside:c,side:i,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:C,hideWhenDetached:v,avoidCollisions:g,...y}=e,x=ve(Ce,t),[w,S]=s.useState(null),[I,A]=s.useState(null),b=M(n,R=>S(R)),[T,B]=s.useState(null),[$,H]=s.useState(null),G=ut(t),[W,z]=s.useState(!1),Y=s.useRef(!1);s.useEffect(()=>{if(w)return Qe(w)},[w]),et();const L=s.useCallback(R=>{const[O,...F]=G().map(j=>j.ref.current),[N]=F.slice(-1),D=document.activeElement;for(const j of R)if(j===D||(j==null||j.scrollIntoView({block:"nearest"}),j===O&&I&&(I.scrollTop=0),j===N&&I&&(I.scrollTop=I.scrollHeight),j==null||j.focus(),document.activeElement!==D))return},[G,I]),V=s.useCallback(()=>L([T,w]),[L,T,w]);s.useEffect(()=>{W&&V()},[W,V]);const{onOpenChange:k,triggerPointerDownPosRef:P}=x;s.useEffect(()=>{if(w){let R={x:0,y:0};const O=N=>{var D,j;R={x:Math.abs(Math.round(N.pageX)-(((D=P.current)==null?void 0:D.x)??0)),y:Math.abs(Math.round(N.pageY)-(((j=P.current)==null?void 0:j.y)??0))}},F=N=>{R.x<=10&&R.y<=10?N.preventDefault():w.contains(N.target)||k(!1),document.removeEventListener("pointermove",O),P.current=null};return P.current!==null&&(document.addEventListener("pointermove",O),document.addEventListener("pointerup",F,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",O),document.removeEventListener("pointerup",F,{capture:!0})}}},[w,k,P]),s.useEffect(()=>{const R=()=>k(!1);return window.addEventListener("blur",R),window.addEventListener("resize",R),()=>{window.removeEventListener("blur",R),window.removeEventListener("resize",R)}},[k]);const[K,U]=Zo(R=>{const O=G().filter(D=>!D.disabled),F=O.find(D=>D.ref.current===document.activeElement),N=Jo(O,R,F);N&&setTimeout(()=>N.ref.current.focus())}),Z=s.useCallback((R,O,F)=>{const N=!Y.current&&!F;(x.value!==void 0&&x.value===O||N)&&(B(R),N&&(Y.current=!0))},[x.value]),le=s.useCallback(()=>w==null?void 0:w.focus(),[w]),ee=s.useCallback((R,O,F)=>{const N=!Y.current&&!F;(x.value!==void 0&&x.value===O||N)&&H(R)},[x.value]),ue=o==="popper"?Pt:jo,J=ue===Pt?{side:i,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:C,hideWhenDetached:v,avoidCollisions:g}:{};return u.jsx(Oo,{scope:t,content:w,viewport:I,onViewportChange:A,itemRefCallback:Z,selectedItem:T,onItemLeave:le,itemTextRefCallback:ee,focusSelectedItem:V,selectedItemText:$,position:o,isPositioned:W,searchRef:K,children:u.jsx(Je,{as:bc,allowPinchZoom:!0,children:u.jsx(ke,{asChild:!0,trapped:x.open,onMountAutoFocus:R=>{R.preventDefault()},onUnmountAutoFocus:E(r,R=>{var O;(O=x.trigger)==null||O.focus({preventScroll:!0}),R.preventDefault()}),children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:R=>R.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(ue,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:R=>R.preventDefault(),...y,...J,onPlaced:()=>z(!0),ref:b,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:E(y.onKeyDown,R=>{const O=R.ctrlKey||R.altKey||R.metaKey;if(R.key==="Tab"&&R.preventDefault(),!O&&R.key.length===1&&U(R.key),["ArrowUp","ArrowDown","Home","End"].includes(R.key)){let N=G().filter(D=>!D.disabled).map(D=>D.ref.current);if(["ArrowUp","End"].includes(R.key)&&(N=N.slice().reverse()),["ArrowUp","ArrowDown"].includes(R.key)){const D=R.target,j=N.indexOf(D);N=N.slice(j+1)}setTimeout(()=>L(N)),R.preventDefault()}})})})})})})});Do.displayName=Rc;var _c="SelectItemAlignedPosition",jo=s.forwardRef((e,n)=>{const{__scopeSelect:t,onPlaced:o,...r}=e,a=ve(Ce,t),c=me(Ce,t),[i,l]=s.useState(null),[d,f]=s.useState(null),p=M(n,b=>f(b)),m=ut(t),h=s.useRef(!1),C=s.useRef(!0),{viewport:v,selectedItem:g,selectedItemText:y,focusSelectedItem:x}=c,w=s.useCallback(()=>{if(a.trigger&&a.valueNode&&i&&d&&v&&g&&y){const b=a.trigger.getBoundingClientRect(),T=d.getBoundingClientRect(),B=a.valueNode.getBoundingClientRect(),$=y.getBoundingClientRect();if(a.dir!=="rtl"){const D=$.left-T.left,j=B.left-D,Q=b.left-j,ae=b.width+Q,Ie=Math.max(ae,T.width),Me=window.innerWidth-oe,Ne=rn(j,[oe,Math.max(oe,Me-Ie)]);i.style.minWidth=ae+"px",i.style.left=Ne+"px"}else{const D=T.right-$.right,j=window.innerWidth-B.right-D,Q=window.innerWidth-b.right-j,ae=b.width+Q,Ie=Math.max(ae,T.width),Me=window.innerWidth-oe,Ne=rn(j,[oe,Math.max(oe,Me-Ie)]);i.style.minWidth=ae+"px",i.style.right=Ne+"px"}const H=m(),G=window.innerHeight-oe*2,W=v.scrollHeight,z=window.getComputedStyle(d),Y=parseInt(z.borderTopWidth,10),L=parseInt(z.paddingTop,10),V=parseInt(z.borderBottomWidth,10),k=parseInt(z.paddingBottom,10),P=Y+L+W+k+V,K=Math.min(g.offsetHeight*5,P),U=window.getComputedStyle(v),Z=parseInt(U.paddingTop,10),le=parseInt(U.paddingBottom,10),ee=b.top+b.height/2-oe,ue=G-ee,J=g.offsetHeight/2,R=g.offsetTop+J,O=Y+L+R,F=P-O;if(O<=ee){const D=H.length>0&&g===H[H.length-1].ref.current;i.style.bottom="0px";const j=d.clientHeight-v.offsetTop-v.offsetHeight,Q=Math.max(ue,J+(D?le:0)+j+V),ae=O+Q;i.style.height=ae+"px"}else{const D=H.length>0&&g===H[0].ref.current;i.style.top="0px";const Q=Math.max(ee,Y+v.offsetTop+(D?Z:0)+J)+F;i.style.height=Q+"px",v.scrollTop=O-ee+v.offsetTop}i.style.margin=`${oe}px 0`,i.style.minHeight=K+"px",i.style.maxHeight=G+"px",o==null||o(),requestAnimationFrame(()=>h.current=!0)}},[m,a.trigger,a.valueNode,i,d,v,g,y,a.dir,o]);X(()=>w(),[w]);const[S,I]=s.useState();X(()=>{d&&I(window.getComputedStyle(d).zIndex)},[d]);const A=s.useCallback(b=>{b&&C.current===!0&&(w(),x==null||x(),C.current=!1)},[w,x]);return u.jsx(Ic,{scope:t,contentWrapper:i,shouldExpandOnScrollRef:h,onScrollButtonChange:A,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:S},children:u.jsx(_.div,{...r,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});jo.displayName=_c;var Tc="SelectPopperPosition",Pt=s.forwardRef((e,n)=>{const{__scopeSelect:t,align:o="start",collisionPadding:r=oe,...a}=e,c=dt(t);return u.jsx(nt,{...c,...a,ref:n,align:o,collisionPadding:r,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Pt.displayName=Tc;var[Ic,Kt]=Te(Ce,{}),Rt="SelectViewport",Lo=s.forwardRef((e,n)=>{const{__scopeSelect:t,nonce:o,...r}=e,a=me(Rt,t),c=Kt(Rt,t),i=M(n,a.onViewportChange),l=s.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),u.jsx(lt.Slot,{scope:t,children:u.jsx(_.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:i,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:E(r.onScroll,d=>{const f=d.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:m}=c;if(m!=null&&m.current&&p){const h=Math.abs(l.current-f.scrollTop);if(h>0){const C=window.innerHeight-oe*2,v=parseFloat(p.style.minHeight),g=parseFloat(p.style.height),y=Math.max(v,g);if(y<C){const x=y+h,w=Math.min(C,x),S=x-w;p.style.height=w+"px",p.style.bottom==="0px"&&(f.scrollTop=S>0?S:0,p.style.justifyContent="flex-end")}}}l.current=f.scrollTop})})})]})});Lo.displayName=Rt;var Fo="SelectGroup",[Mc,Nc]=Te(Fo),Ac=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=re();return u.jsx(Mc,{scope:t,id:r,children:u.jsx(_.div,{role:"group","aria-labelledby":r,...o,ref:n})})});Ac.displayName=Fo;var ko="SelectLabel",$o=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=Nc(ko,t);return u.jsx(_.div,{id:r.id,...o,ref:n})});$o.displayName=ko;var qe="SelectItem",[Oc,Bo]=Te(qe),Uo=s.forwardRef((e,n)=>{const{__scopeSelect:t,value:o,disabled:r=!1,textValue:a,...c}=e,i=ve(qe,t),l=me(qe,t),d=i.value===o,[f,p]=s.useState(a??""),[m,h]=s.useState(!1),C=M(n,x=>{var w;return(w=l.itemRefCallback)==null?void 0:w.call(l,x,o,r)}),v=re(),g=s.useRef("touch"),y=()=>{r||(i.onValueChange(o),i.onOpenChange(!1))};if(o==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(Oc,{scope:t,value:o,disabled:r,textId:v,isSelected:d,onItemTextChange:s.useCallback(x=>{p(w=>w||((x==null?void 0:x.textContent)??"").trim())},[]),children:u.jsx(lt.ItemSlot,{scope:t,value:o,disabled:r,textValue:f,children:u.jsx(_.div,{role:"option","aria-labelledby":v,"data-highlighted":m?"":void 0,"aria-selected":d&&m,"data-state":d?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...c,ref:C,onFocus:E(c.onFocus,()=>h(!0)),onBlur:E(c.onBlur,()=>h(!1)),onClick:E(c.onClick,()=>{g.current!=="mouse"&&y()}),onPointerUp:E(c.onPointerUp,()=>{g.current==="mouse"&&y()}),onPointerDown:E(c.onPointerDown,x=>{g.current=x.pointerType}),onPointerMove:E(c.onPointerMove,x=>{var w;g.current=x.pointerType,r?(w=l.onItemLeave)==null||w.call(l):g.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:E(c.onPointerLeave,x=>{var w;x.currentTarget===document.activeElement&&((w=l.onItemLeave)==null||w.call(l))}),onKeyDown:E(c.onKeyDown,x=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&x.key===" "||(xc.includes(x.key)&&y(),x.key===" "&&x.preventDefault())})})})})});Uo.displayName=qe;var Oe="SelectItemText",Ho=s.forwardRef((e,n)=>{const{__scopeSelect:t,className:o,style:r,...a}=e,c=ve(Oe,t),i=me(Oe,t),l=Bo(Oe,t),d=Ec(Oe,t),[f,p]=s.useState(null),m=M(n,y=>p(y),l.onItemTextChange,y=>{var x;return(x=i.itemTextRefCallback)==null?void 0:x.call(i,y,l.value,l.disabled)}),h=f==null?void 0:f.textContent,C=s.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:h},l.value),[l.disabled,l.value,h]),{onNativeOptionAdd:v,onNativeOptionRemove:g}=d;return X(()=>(v(C),()=>g(C)),[v,g,C]),u.jsxs(u.Fragment,{children:[u.jsx(_.span,{id:l.textId,...a,ref:m}),l.isSelected&&c.valueNode&&!c.valueNodeHasChildren?Mt.createPortal(a.children,c.valueNode):null]})});Ho.displayName=Oe;var Wo="SelectItemIndicator",Ko=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e;return Bo(Wo,t).isSelected?u.jsx(_.span,{"aria-hidden":!0,...o,ref:n}):null});Ko.displayName=Wo;var bt="SelectScrollUpButton",Go=s.forwardRef((e,n)=>{const t=me(bt,e.__scopeSelect),o=Kt(bt,e.__scopeSelect),[r,a]=s.useState(!1),c=M(n,o.onScrollButtonChange);return X(()=>{if(t.viewport&&t.isPositioned){let i=function(){const d=l.scrollTop>0;a(d)};const l=t.viewport;return i(),l.addEventListener("scroll",i),()=>l.removeEventListener("scroll",i)}},[t.viewport,t.isPositioned]),r?u.jsx(zo,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:l}=t;i&&l&&(i.scrollTop=i.scrollTop-l.offsetHeight)}}):null});Go.displayName=bt;var _t="SelectScrollDownButton",Vo=s.forwardRef((e,n)=>{const t=me(_t,e.__scopeSelect),o=Kt(_t,e.__scopeSelect),[r,a]=s.useState(!1),c=M(n,o.onScrollButtonChange);return X(()=>{if(t.viewport&&t.isPositioned){let i=function(){const d=l.scrollHeight-l.clientHeight,f=Math.ceil(l.scrollTop)<d;a(f)};const l=t.viewport;return i(),l.addEventListener("scroll",i),()=>l.removeEventListener("scroll",i)}},[t.viewport,t.isPositioned]),r?u.jsx(zo,{...e,ref:c,onAutoScroll:()=>{const{viewport:i,selectedItem:l}=t;i&&l&&(i.scrollTop=i.scrollTop+l.offsetHeight)}}):null});Vo.displayName=_t;var zo=s.forwardRef((e,n)=>{const{__scopeSelect:t,onAutoScroll:o,...r}=e,a=me("SelectScrollButton",t),c=s.useRef(null),i=ut(t),l=s.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return s.useEffect(()=>()=>l(),[l]),X(()=>{var f;const d=i().find(p=>p.ref.current===document.activeElement);(f=d==null?void 0:d.ref.current)==null||f.scrollIntoView({block:"nearest"})},[i]),u.jsx(_.div,{"aria-hidden":!0,...r,ref:n,style:{flexShrink:0,...r.style},onPointerDown:E(r.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(o,50))}),onPointerMove:E(r.onPointerMove,()=>{var d;(d=a.onItemLeave)==null||d.call(a),c.current===null&&(c.current=window.setInterval(o,50))}),onPointerLeave:E(r.onPointerLeave,()=>{l()})})}),Dc="SelectSeparator",Yo=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e;return u.jsx(_.div,{"aria-hidden":!0,...o,ref:n})});Yo.displayName=Dc;var Tt="SelectArrow",jc=s.forwardRef((e,n)=>{const{__scopeSelect:t,...o}=e,r=dt(t),a=ve(Tt,t),c=me(Tt,t);return a.open&&c.position==="popper"?u.jsx(ot,{...r,...o,ref:n}):null});jc.displayName=Tt;var Lc="SelectBubbleInput",Xo=s.forwardRef(({__scopeSelect:e,value:n,...t},o)=>{const r=s.useRef(null),a=M(o,r),c=Po(n);return s.useEffect(()=>{const i=r.current;if(!i)return;const l=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(l,"value").set;if(c!==n&&f){const p=new Event("change",{bubbles:!0});f.call(i,n),i.dispatchEvent(p)}},[c,n]),u.jsx(_.select,{...t,style:{...vo,...t.style},ref:a,defaultValue:n})});Xo.displayName=Lc;function qo(e){return e===""||e===void 0}function Zo(e){const n=ce(e),t=s.useRef(""),o=s.useRef(0),r=s.useCallback(c=>{const i=t.current+c;n(i),function l(d){t.current=d,window.clearTimeout(o.current),d!==""&&(o.current=window.setTimeout(()=>l(""),1e3))}(i)},[n]),a=s.useCallback(()=>{t.current="",window.clearTimeout(o.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(o.current),[]),[t,r,a]}function Jo(e,n,t){const r=n.length>1&&Array.from(n).every(d=>d===n[0])?n[0]:n,a=t?e.indexOf(t):-1;let c=Fc(e,Math.max(a,0));r.length===1&&(c=c.filter(d=>d!==t));const l=c.find(d=>d.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==t?l:void 0}function Fc(e,n){return e.map((t,o)=>e[(n+o)%e.length])}var Ti=Ro,Ii=_o,Mi=Io,Ni=Mo,Ai=No,Oi=Ao,Di=Lo,ji=$o,Li=Uo,Fi=Ho,ki=Ko,$i=Go,Bi=Vo,Ui=Yo,ft="Dialog",[Qo]=ie(ft),[kc,se]=Qo(ft),er=e=>{const{__scopeDialog:n,children:t,open:o,defaultOpen:r,onOpenChange:a,modal:c=!0}=e,i=s.useRef(null),l=s.useRef(null),[d,f]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:ft});return u.jsx(kc,{scope:n,triggerRef:i,contentRef:l,contentId:re(),titleId:re(),descriptionId:re(),open:d,onOpenChange:f,onOpenToggle:s.useCallback(()=>f(p=>!p),[f]),modal:c,children:t})};er.displayName=ft;var tr="DialogTrigger",$c=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(tr,t),a=M(n,r.triggerRef);return u.jsx(_.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":zt(r.open),...o,ref:a,onClick:E(e.onClick,r.onOpenToggle)})});$c.displayName=tr;var Gt="DialogPortal",[Bc,nr]=Qo(Gt,{forceMount:void 0}),or=e=>{const{__scopeDialog:n,forceMount:t,children:o,container:r}=e,a=se(Gt,n);return u.jsx(Bc,{scope:n,forceMount:t,children:s.Children.map(o,c=>u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:c})}))})};or.displayName=Gt;var Ze="DialogOverlay",rr=s.forwardRef((e,n)=>{const t=nr(Ze,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,a=se(Ze,e.__scopeDialog);return a.modal?u.jsx(ne,{present:o||a.open,children:u.jsx(Hc,{...r,ref:n})}):null});rr.displayName=Ze;var Uc=xe("DialogOverlay.RemoveScroll"),Hc=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(Ze,t);return u.jsx(Je,{as:Uc,allowPinchZoom:!0,shards:[r.contentRef],children:u.jsx(_.div,{"data-state":zt(r.open),...o,ref:n,style:{pointerEvents:"auto",...o.style}})})}),ye="DialogContent",sr=s.forwardRef((e,n)=>{const t=nr(ye,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,a=se(ye,e.__scopeDialog);return u.jsx(ne,{present:o||a.open,children:a.modal?u.jsx(Wc,{...r,ref:n}):u.jsx(Kc,{...r,ref:n})})});sr.displayName=ye;var Wc=s.forwardRef((e,n)=>{const t=se(ye,e.__scopeDialog),o=s.useRef(null),r=M(n,t.contentRef,o);return s.useEffect(()=>{const a=o.current;if(a)return Qe(a)},[]),u.jsx(ar,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,a=>{var c;a.preventDefault(),(c=t.triggerRef.current)==null||c.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,i=c.button===0&&c.ctrlKey===!0;(c.button===2||i)&&a.preventDefault()}),onFocusOutside:E(e.onFocusOutside,a=>a.preventDefault())})}),Kc=s.forwardRef((e,n)=>{const t=se(ye,e.__scopeDialog),o=s.useRef(!1),r=s.useRef(!1);return u.jsx(ar,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,i;(c=e.onCloseAutoFocus)==null||c.call(e,a),a.defaultPrevented||(o.current||(i=t.triggerRef.current)==null||i.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{var l,d;(l=e.onInteractOutside)==null||l.call(e,a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;((d=t.triggerRef.current)==null?void 0:d.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),ar=s.forwardRef((e,n)=>{const{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,...c}=e,i=se(ye,t),l=s.useRef(null),d=M(n,l);return et(),u.jsxs(u.Fragment,{children:[u.jsx(ke,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:u.jsx(be,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":zt(i.open),...c,ref:d,onDismiss:()=>i.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(Gc,{titleId:i.titleId}),u.jsx(zc,{contentRef:l,descriptionId:i.descriptionId})]})]})}),Vt="DialogTitle",cr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(Vt,t);return u.jsx(_.h2,{id:r.titleId,...o,ref:n})});cr.displayName=Vt;var ir="DialogDescription",lr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(ir,t);return u.jsx(_.p,{id:r.descriptionId,...o,ref:n})});lr.displayName=ir;var ur="DialogClose",dr=s.forwardRef((e,n)=>{const{__scopeDialog:t,...o}=e,r=se(ur,t);return u.jsx(_.button,{type:"button",...o,ref:n,onClick:E(e.onClick,()=>r.onOpenChange(!1))})});dr.displayName=ur;function zt(e){return e?"open":"closed"}var fr="DialogTitleWarning",[Hi,pr]=Yr(fr,{contentName:ye,titleName:Vt,docsSlug:"dialog"}),Gc=({titleId:e})=>{const n=pr(fr),t=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users.
2
2
 
3
3
  If you want to hide the \`${n.titleName}\`, you can wrap it with our VisuallyHidden component.
4
4
 
5
- For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},Vc="DialogDescriptionWarning",zc=({contentRef:e,descriptionId:n})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${pr(Vc).contentName}}.`;return s.useEffect(()=>{var a;const r=(a=e.current)==null?void 0:a.getAttribute("aria-describedby");n&&r&&(document.getElementById(n)||console.warn(o))},[o,e,n]),null},Wi=er,Ki=or,Gi=rr,Vi=sr,zi=cr,Yi=lr,Xi=dr,pt="Popover",[vr]=ie(pt,[pe]),Ke=pe(),[Yc,he]=vr(pt),mr=e=>{const{__scopePopover:n,children:t,open:o,defaultOpen:r,onOpenChange:a,modal:c=!1}=e,i=Ke(n),l=s.useRef(null),[d,f]=s.useState(!1),[p,m]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:pt});return u.jsx(tt,{...i,children:u.jsx(Yc,{scope:n,contentId:re(),triggerRef:l,open:p,onOpenChange:m,onOpenToggle:s.useCallback(()=>m(h=>!h),[m]),hasCustomAnchor:d,onCustomAnchorAdd:s.useCallback(()=>f(!0),[]),onCustomAnchorRemove:s.useCallback(()=>f(!1),[]),modal:c,children:t})})};mr.displayName=pt;var hr="PopoverAnchor",Xc=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(hr,t),a=Ke(t),{onCustomAnchorAdd:c,onCustomAnchorRemove:i}=r;return s.useEffect(()=>(c(),()=>i()),[c,i]),u.jsx($e,{...a,...o,ref:n})});Xc.displayName=hr;var gr="PopoverTrigger",xr=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(gr,t),a=Ke(t),c=M(n,r.triggerRef),i=u.jsx(_.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Sr(r.open),...o,ref:c,onClick:E(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?i:u.jsx($e,{asChild:!0,...a,children:i})});xr.displayName=gr;var Yt="PopoverPortal",[qc,Zc]=vr(Yt,{forceMount:void 0}),wr=e=>{const{__scopePopover:n,forceMount:t,children:o,container:r}=e,a=he(Yt,n);return u.jsx(qc,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};wr.displayName=Yt;var Re="PopoverContent",Cr=s.forwardRef((e,n)=>{const t=Zc(Re,e.__scopePopover),{forceMount:o=t.forceMount,...r}=e,a=he(Re,e.__scopePopover);return u.jsx(ne,{present:o||a.open,children:a.modal?u.jsx(Qc,{...r,ref:n}):u.jsx(ei,{...r,ref:n})})});Cr.displayName=Re;var Jc=xe("PopoverContent.RemoveScroll"),Qc=s.forwardRef((e,n)=>{const t=he(Re,e.__scopePopover),o=s.useRef(null),r=M(n,o),a=s.useRef(!1);return s.useEffect(()=>{const c=o.current;if(c)return Qe(c)},[]),u.jsx(Je,{as:Jc,allowPinchZoom:!0,children:u.jsx(yr,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,c=>{var i;c.preventDefault(),a.current||(i=t.triggerRef.current)==null||i.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,c=>{const i=c.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0,d=i.button===2||l;a.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:E(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1})})})}),ei=s.forwardRef((e,n)=>{const t=he(Re,e.__scopePopover),o=s.useRef(!1),r=s.useRef(!1);return u.jsx(yr,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,i;(c=e.onCloseAutoFocus)==null||c.call(e,a),a.defaultPrevented||(o.current||(i=t.triggerRef.current)==null||i.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{var l,d;(l=e.onInteractOutside)==null||l.call(e,a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;((d=t.triggerRef.current)==null?void 0:d.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),yr=s.forwardRef((e,n)=>{const{__scopePopover:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,disableOutsidePointerEvents:c,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:d,onInteractOutside:f,...p}=e,m=he(Re,t),h=Ke(t);return et(),u.jsx(ke,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:c,onInteractOutside:f,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:d,onDismiss:()=>m.onOpenChange(!1),children:u.jsx(nt,{"data-state":Sr(m.open),role:"dialog",id:m.contentId,...h,...p,ref:n,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Er="PopoverClose",ti=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(Er,t);return u.jsx(_.button,{type:"button",...o,ref:n,onClick:E(e.onClick,()=>r.onOpenChange(!1))})});ti.displayName=Er;var ni="PopoverArrow",oi=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=Ke(t);return u.jsx(ot,{...r,...o,ref:n})});oi.displayName=ni;function Sr(e){return e?"open":"closed"}var qi=mr,Zi=xr,Ji=wr,Qi=Cr,vt="Switch",[ri]=ie(vt),[si,ai]=ri(vt),Pr=s.forwardRef((e,n)=>{const{__scopeSwitch:t,name:o,checked:r,defaultChecked:a,required:c,disabled:i,value:l="on",onCheckedChange:d,form:f,...p}=e,[m,h]=s.useState(null),C=M(n,w=>h(w)),v=s.useRef(!1),g=m?f||!!m.closest("form"):!0,[y,x]=fe({prop:r,defaultProp:a??!1,onChange:d,caller:vt});return u.jsxs(si,{scope:t,checked:y,disabled:i,children:[u.jsx(_.button,{type:"button",role:"switch","aria-checked":y,"aria-required":c,"data-state":Tr(y),"data-disabled":i?"":void 0,disabled:i,value:l,...p,ref:C,onClick:E(e.onClick,w=>{x(S=>!S),g&&(v.current=w.isPropagationStopped(),v.current||w.stopPropagation())})}),g&&u.jsx(_r,{control:m,bubbles:!v.current,name:o,value:l,checked:y,required:c,disabled:i,form:f,style:{transform:"translateX(-100%)"}})]})});Pr.displayName=vt;var Rr="SwitchThumb",br=s.forwardRef((e,n)=>{const{__scopeSwitch:t,...o}=e,r=ai(Rr,t);return u.jsx(_.span,{"data-state":Tr(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:n})});br.displayName=Rr;var ci="SwitchBubbleInput",_r=s.forwardRef(({__scopeSwitch:e,control:n,checked:t,bubbles:o=!0,...r},a)=>{const c=s.useRef(null),i=M(c,a),l=Po(t),d=pn(n);return s.useEffect(()=>{const f=c.current;if(!f)return;const p=window.HTMLInputElement.prototype,h=Object.getOwnPropertyDescriptor(p,"checked").set;if(l!==t&&h){const C=new Event("click",{bubbles:o});h.call(f,t),f.dispatchEvent(C)}},[l,t,o]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:t,...r,tabIndex:-1,ref:i,style:{...r.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_r.displayName=ci;function Tr(e){return e?"checked":"unchecked"}var el=Pr,tl=br;export{$i as A,Bi as B,vi as C,ji as D,Ui as E,Wi as F,zi as G,Yi as H,hi as I,Ki as J,Vi as K,mi as L,Xi as M,Gi as O,pi as P,xi as R,li as S,fi as T,Mi as V,yi as a,Ei as b,gi as c,wi as d,Ci as e,di as f,Si as g,Pi as h,Ri as i,bi as j,_i as k,qi as l,Zi as m,Ji as n,Qi as o,el as p,tl as q,Ti as r,Ii as s,Ni as t,Ai as u,Oi as v,Di as w,Li as x,ki as y,Fi as z};
5
+ For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},Vc="DialogDescriptionWarning",zc=({contentRef:e,descriptionId:n})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${pr(Vc).contentName}}.`;return s.useEffect(()=>{var a;const r=(a=e.current)==null?void 0:a.getAttribute("aria-describedby");n&&r&&(document.getElementById(n)||console.warn(o))},[o,e,n]),null},Wi=er,Ki=or,Gi=rr,Vi=sr,zi=cr,Yi=lr,Xi=dr,pt="Popover",[vr]=ie(pt,[pe]),Ke=pe(),[Yc,he]=vr(pt),mr=e=>{const{__scopePopover:n,children:t,open:o,defaultOpen:r,onOpenChange:a,modal:c=!1}=e,i=Ke(n),l=s.useRef(null),[d,f]=s.useState(!1),[p,m]=fe({prop:o,defaultProp:r??!1,onChange:a,caller:pt});return u.jsx(tt,{...i,children:u.jsx(Yc,{scope:n,contentId:re(),triggerRef:l,open:p,onOpenChange:m,onOpenToggle:s.useCallback(()=>m(h=>!h),[m]),hasCustomAnchor:d,onCustomAnchorAdd:s.useCallback(()=>f(!0),[]),onCustomAnchorRemove:s.useCallback(()=>f(!1),[]),modal:c,children:t})})};mr.displayName=pt;var hr="PopoverAnchor",Xc=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(hr,t),a=Ke(t),{onCustomAnchorAdd:c,onCustomAnchorRemove:i}=r;return s.useEffect(()=>(c(),()=>i()),[c,i]),u.jsx($e,{...a,...o,ref:n})});Xc.displayName=hr;var gr="PopoverTrigger",xr=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(gr,t),a=Ke(t),c=M(n,r.triggerRef),i=u.jsx(_.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Sr(r.open),...o,ref:c,onClick:E(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?i:u.jsx($e,{asChild:!0,...a,children:i})});xr.displayName=gr;var Yt="PopoverPortal",[qc,Zc]=vr(Yt,{forceMount:void 0}),wr=e=>{const{__scopePopover:n,forceMount:t,children:o,container:r}=e,a=he(Yt,n);return u.jsx(qc,{scope:n,forceMount:t,children:u.jsx(ne,{present:t||a.open,children:u.jsx(_e,{asChild:!0,container:r,children:o})})})};wr.displayName=Yt;var Re="PopoverContent",Cr=s.forwardRef((e,n)=>{const t=Zc(Re,e.__scopePopover),{forceMount:o=t.forceMount,...r}=e,a=he(Re,e.__scopePopover);return u.jsx(ne,{present:o||a.open,children:a.modal?u.jsx(Qc,{...r,ref:n}):u.jsx(ei,{...r,ref:n})})});Cr.displayName=Re;var Jc=xe("PopoverContent.RemoveScroll"),Qc=s.forwardRef((e,n)=>{const t=he(Re,e.__scopePopover),o=s.useRef(null),r=M(n,o),a=s.useRef(!1);return s.useEffect(()=>{const c=o.current;if(c)return Qe(c)},[]),u.jsx(Je,{as:Jc,allowPinchZoom:!0,children:u.jsx(yr,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:E(e.onCloseAutoFocus,c=>{var i;c.preventDefault(),a.current||(i=t.triggerRef.current)==null||i.focus()}),onPointerDownOutside:E(e.onPointerDownOutside,c=>{const i=c.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0,d=i.button===2||l;a.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:E(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1})})})}),ei=s.forwardRef((e,n)=>{const t=he(Re,e.__scopePopover),o=s.useRef(!1),r=s.useRef(!1);return u.jsx(yr,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,i;(c=e.onCloseAutoFocus)==null||c.call(e,a),a.defaultPrevented||(o.current||(i=t.triggerRef.current)==null||i.focus(),a.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:a=>{var l,d;(l=e.onInteractOutside)==null||l.call(e,a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=a.target;((d=t.triggerRef.current)==null?void 0:d.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&r.current&&a.preventDefault()}})}),yr=s.forwardRef((e,n)=>{const{__scopePopover:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:a,disableOutsidePointerEvents:c,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:d,onInteractOutside:f,...p}=e,m=he(Re,t),h=Ke(t);return et(),u.jsx(ke,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:a,children:u.jsx(be,{asChild:!0,disableOutsidePointerEvents:c,onInteractOutside:f,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:d,onDismiss:()=>m.onOpenChange(!1),children:u.jsx(nt,{"data-state":Sr(m.open),role:"dialog",id:m.contentId,...h,...p,ref:n,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Er="PopoverClose",ti=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=he(Er,t);return u.jsx(_.button,{type:"button",...o,ref:n,onClick:E(e.onClick,()=>r.onOpenChange(!1))})});ti.displayName=Er;var ni="PopoverArrow",oi=s.forwardRef((e,n)=>{const{__scopePopover:t,...o}=e,r=Ke(t);return u.jsx(ot,{...r,...o,ref:n})});oi.displayName=ni;function Sr(e){return e?"open":"closed"}var qi=mr,Zi=xr,Ji=wr,Qi=Cr,vt="Switch",[ri]=ie(vt),[si,ai]=ri(vt),Pr=s.forwardRef((e,n)=>{const{__scopeSwitch:t,name:o,checked:r,defaultChecked:a,required:c,disabled:i,value:l="on",onCheckedChange:d,form:f,...p}=e,[m,h]=s.useState(null),C=M(n,w=>h(w)),v=s.useRef(!1),g=m?f||!!m.closest("form"):!0,[y,x]=fe({prop:r,defaultProp:a??!1,onChange:d,caller:vt});return u.jsxs(si,{scope:t,checked:y,disabled:i,children:[u.jsx(_.button,{type:"button",role:"switch","aria-checked":y,"aria-required":c,"data-state":Tr(y),"data-disabled":i?"":void 0,disabled:i,value:l,...p,ref:C,onClick:E(e.onClick,w=>{x(S=>!S),g&&(v.current=w.isPropagationStopped(),v.current||w.stopPropagation())})}),g&&u.jsx(_r,{control:m,bubbles:!v.current,name:o,value:l,checked:y,required:c,disabled:i,form:f,style:{transform:"translateX(-100%)"}})]})});Pr.displayName=vt;var Rr="SwitchThumb",br=s.forwardRef((e,n)=>{const{__scopeSwitch:t,...o}=e,r=ai(Rr,t);return u.jsx(_.span,{"data-state":Tr(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:n})});br.displayName=Rr;var ci="SwitchBubbleInput",_r=s.forwardRef(({__scopeSwitch:e,control:n,checked:t,bubbles:o=!0,...r},a)=>{const c=s.useRef(null),i=M(c,a),l=Po(t),d=pn(n);return s.useEffect(()=>{const f=c.current;if(!f)return;const p=window.HTMLInputElement.prototype,h=Object.getOwnPropertyDescriptor(p,"checked").set;if(l!==t&&h){const C=new Event("click",{bubbles:o});h.call(f,t),f.dispatchEvent(C)}},[l,t,o]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:t,...r,tabIndex:-1,ref:i,style:{...r.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_r.displayName=ci;function Tr(e){return e?"checked":"unchecked"}var el=Pr,tl=br;export{ji as A,Ui as B,vi as C,el as D,tl as E,Wi as F,zi as G,Yi as H,hi as I,Ki as J,Vi as K,mi as L,Xi as M,Gi as O,pi as P,xi as R,li as S,fi as T,Mi as V,yi as a,Ei as b,gi as c,wi as d,Ci as e,di as f,Si as g,Pi as h,Ri as i,bi as j,_i as k,qi as l,Zi as m,Ji as n,Qi as o,Ti as p,Ii as q,Ni as r,Ai as s,Oi as t,Di as u,Li as v,ki as w,Fi as x,$i as y,Bi as z};
@@ -1,4 +1,4 @@
1
- import{r as a,b as g,c as S,g as D,d as J,A as X,p as q,e as N,m as le,f as ie,h as A,k as se,R as ue,l as z}from"./vendor-DfnQOGOQ.js";/**
1
+ import{r as a,b as g,c as S,g as D,d as J,A as X,p as q,e as N,m as le,f as ie,h as A,k as se,R as ue,l as z}from"./vendor-LWJeAdU1.js";/**
2
2
  * React Router v6.30.3
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
@@ -0,0 +1 @@
1
+ import{r as o,j as e,af as d,a1 as g,au as w}from"./vendor-LWJeAdU1.js";import{p as N,V as b,q as n,r as j,s as S,t as i,u as v,v as c,w as R,x as C,y as m,z as p,A as f,B as u}from"./radix-bG5h1Ymq.js";import{c as r}from"./global-B_AcmMvG.js";const E=N,L=b,I=o.forwardRef(({className:s,children:t,...a},l)=>e.jsxs(n,{ref:l,className:r("flex h-9 w-full items-center justify-between rounded-lg border border-border bg-card px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...a,children:[t,e.jsx(j,{asChild:!0,children:e.jsx(d,{className:"h-4 w-4 opacity-50"})})]}));I.displayName=n.displayName;const x=o.forwardRef(({className:s,...t},a)=>e.jsx(m,{ref:a,className:r("flex cursor-default items-center justify-center py-1",s),...t,children:e.jsx(w,{className:"h-4 w-4"})}));x.displayName=m.displayName;const h=o.forwardRef(({className:s,...t},a)=>e.jsx(p,{ref:a,className:r("flex cursor-default items-center justify-center py-1",s),...t,children:e.jsx(d,{className:"h-4 w-4"})}));h.displayName=p.displayName;const B=o.forwardRef(({className:s,children:t,position:a="popper",...l},y)=>e.jsx(S,{children:e.jsxs(i,{ref:y,className:r("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-[var(--surface-shadow-lg)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",s),position:a,...l,children:[e.jsx(x,{}),e.jsx(v,{className:r("p-2",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),e.jsx(h,{})]})}));B.displayName=i.displayName;const z=o.forwardRef(({className:s,...t},a)=>e.jsx(f,{ref:a,className:r("py-1.5 pl-8 pr-2 text-sm font-semibold",s),...t}));z.displayName=f.displayName;const V=o.forwardRef(({className:s,children:t,...a},l)=>e.jsxs(c,{ref:l,className:r("relative flex w-full cursor-default select-none items-center rounded-md py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(R,{children:e.jsx(g,{className:"h-4 w-4"})})}),e.jsx(C,{children:t})]}));V.displayName=c.displayName;const D=o.forwardRef(({className:s,...t},a)=>e.jsx(u,{ref:a,className:r("-mx-1 my-1 h-px bg-border",s),...t}));D.displayName=u.displayName;export{E as S,I as a,L as b,B as c,V as d};
@@ -0,0 +1 @@
1
+ import{r as i,j as e}from"./vendor-LWJeAdU1.js";import{D as r,E as n}from"./radix-bG5h1Ymq.js";import{c as s}from"./global-B_AcmMvG.js";const c=i.forwardRef(({className:a,...t},o)=>e.jsx(r,{className:s("peer inline-flex h-7 w-12 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-[inset_0_0_0_1px_rgba(15,23,42,0.06)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...t,ref:o,children:e.jsx(n,{className:s("pointer-events-none block h-6 w-6 rounded-full bg-background shadow-[0_3px_10px_rgba(15,23,42,0.18)] ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));c.displayName=r.displayName;export{c as S};