@chenpu17/cc-gw 0.8.13 → 0.8.14

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 (54) hide show
  1. package/package.json +5 -5
  2. package/src/web/dist/assets/{About-BtrUwqVl.js → About-pcECYYVj.js} +1 -1
  3. package/src/web/dist/assets/{ApiKeys-BgtU9Z5t.js → ApiKeys-IDt4ZfLj.js} +1 -1
  4. package/src/web/dist/assets/{ConfirmDialog-BHrsB4gR.js → ConfirmDialog-oYHVEpGJ.js} +1 -1
  5. package/src/web/dist/assets/{Dashboard-DIguazuF.js → Dashboard-BiCTswfM.js} +1 -1
  6. package/src/web/dist/assets/{DialogShell-DcG-SXEV.js → DialogShell-DcOGCV8m.js} +1 -1
  7. package/src/web/dist/assets/{Events-mZNIWc7c.js → Events-CCYCOF1f.js} +1 -1
  8. package/src/web/dist/assets/{Help-BHbnZJeo.js → Help-BW1R1cf1.js} +2 -2
  9. package/src/web/dist/assets/{Login-DugtPFxy.js → Login-Dn8fbfFq.js} +1 -1
  10. package/src/web/dist/assets/{Logs-BJBm-efJ.js → Logs-D2FFPpBP.js} +1 -1
  11. package/src/web/dist/assets/{ModelManagement-C32W7nDe.js → ModelManagement-BHSUJ4Dg.js} +1 -1
  12. package/src/web/dist/assets/{PageHeader--Lg_YQVw.js → PageHeader-DCqHI67a.js} +1 -1
  13. package/src/web/dist/assets/{PageSection-DIAhP18t.js → PageSection-CuZMzA0E.js} +1 -1
  14. package/src/web/dist/assets/{PageState-DKba6Ew1.js → PageState-B03H5AV0.js} +1 -1
  15. package/src/web/dist/assets/{Profiler-DTPqRwx7.js → Profiler-CEpu2dMu.js} +1 -1
  16. package/src/web/dist/assets/{RoutingManagement-B9Z0l4LZ.js → RoutingManagement-DahJxjA7.js} +1 -1
  17. package/src/web/dist/assets/{Settings-Ddx0C5eQ.js → Settings-Vp7jGxIW.js} +1 -1
  18. package/src/web/dist/assets/{Skeleton-cyuMRxwQ.js → Skeleton-i1PjWApN.js} +1 -1
  19. package/src/web/dist/assets/{app-BG16DmZH.js → app-COiQeF3y.js} +3 -3
  20. package/src/web/dist/assets/{card-CwTuH2Iq.js → card-ChFVaqLf.js} +1 -1
  21. package/src/web/dist/assets/{charts-core-D9OugzV_.js → charts-core-DzWzxST6.js} +1 -1
  22. package/src/web/dist/assets/{charts-engine-DleyglMn.js → charts-engine-Ds7lwC51.js} +1 -1
  23. package/src/web/dist/assets/{charts-react-BqhUp1x_.js → charts-react-D0nWbUCA.js} +1 -1
  24. package/src/web/dist/assets/{gateway-CExOTXeI.js → gateway-BU3dR2tm.js} +1 -1
  25. package/src/web/dist/assets/{global-CKvMKvrn.js → global-B-NXh5qD.js} +1 -1
  26. package/src/web/dist/assets/global-B_hBylxt.css +1 -0
  27. package/src/web/dist/assets/{i18n-B3N4Df3E.js → i18n-Bl2BcCDG.js} +1 -1
  28. package/src/web/dist/assets/{input-scp9nKJc.js → input-DW7jGTgj.js} +1 -1
  29. package/src/web/dist/assets/{label-fMXEnAEx.js → label-Ci1io7XA.js} +1 -1
  30. package/src/web/dist/assets/landing-BMe5-cHU.js +17 -0
  31. package/src/web/dist/assets/live-en-api-keys-Bx8N-eoh.png +0 -0
  32. package/src/web/dist/assets/live-en-dashboard-CJoX7IQT.png +0 -0
  33. package/src/web/dist/assets/live-en-events-DJwaP-WW.png +0 -0
  34. package/src/web/dist/assets/live-en-logs-BGGL53ab.png +0 -0
  35. package/src/web/dist/assets/live-en-model-management-BpjNblfR.png +0 -0
  36. package/src/web/dist/assets/package-D5lk1iqk.js +1 -0
  37. package/src/web/dist/assets/{popover-BGSWKBlu.js → popover-CQHCVE2z.js} +1 -1
  38. package/src/web/dist/assets/{query-Cpxr1dul.js → query-BbGWgOFk.js} +1 -1
  39. package/src/web/dist/assets/{queryKeys-DTnZc8Yy.js → queryKeys-ucXCzh0P.js} +1 -1
  40. package/src/web/dist/assets/{radix-bG5h1Ymq.js → radix-mHySgtou.js} +1 -1
  41. package/src/web/dist/assets/{router-DspBTS8b.js → router-CL3rf_uf.js} +1 -1
  42. package/src/web/dist/assets/{select-BjYpeVvo.js → select-BchX45jJ.js} +1 -1
  43. package/src/web/dist/assets/{switch-CgwYcn5P.js → switch-CT24uL_Q.js} +1 -1
  44. package/src/web/dist/assets/{table-BtnjYcvG.js → table-DdvG93mx.js} +1 -1
  45. package/src/web/dist/assets/{useApiQuery-jSeDDFuv.js → useApiQuery-tbd4JJaZ.js} +1 -1
  46. package/src/web/dist/assets/{useAppMutation-ChCrgiP6.js → useAppMutation-SONU2xFC.js} +1 -1
  47. package/src/web/dist/assets/useModelManagementState-DcQ0Ac-x.js +1 -0
  48. package/src/web/dist/assets/{vendor-LWJeAdU1.js → vendor-z22RpOY0.js} +86 -66
  49. package/src/web/dist/index.html +8 -8
  50. package/src/web/dist/landing.html +11 -11
  51. package/src/web/dist/assets/global-CUpRxoFd.css +0 -1
  52. package/src/web/dist/assets/landing-CHY6qfgq.js +0 -5
  53. package/src/web/dist/assets/package-BMIMFcQR.js +0 -1
  54. package/src/web/dist/assets/useModelManagementState-9RhvWh8Y.js +0 -1
@@ -0,0 +1,17 @@
1
+ import{B as v,c as p}from"./global-B-NXh5qD.js";import{r as u,j as e,a6 as O,aa as T,ab as N,ac as g,ad as b,ae as w,P as L,af as P,ag as _,ah as K,ai as R,aj as E,ak as D,al as q,am as k,a9 as U,q as B}from"./vendor-z22RpOY0.js";import{c as A}from"./clipboard-CALi6bTW.js";import{p as F}from"./package-D5lk1iqk.js";const S="/assets/live-dashboard-B7vLOY_S.png",G="/assets/live-logs-PRpgTV6S.png",W="/assets/live-model-management-xkBDeuLk.png",Y="/assets/live-api-keys-CJUuaCev.png",H="/assets/live-events-D_njD291.png",C="/assets/live-en-dashboard-CJoX7IQT.png",$="/assets/live-en-logs-BGGL53ab.png",M="/assets/live-en-model-management-BpjNblfR.png",Q="/assets/live-en-api-keys-Bx8N-eoh.png",J="/assets/live-en-events-DJwaP-WW.png",j=F.version,Z=(l,r)=>r[l],s={nav:{why:{zh:"现状",en:"The mess"},how:{zh:"怎么用",en:"How"},debug:{zh:"排查",en:"Debug"},local:{zh:"本地优先",en:"Local-first"},start:{zh:"开始",en:"Start"},faq:{zh:"FAQ",en:"FAQ"}},ctaConsole:{zh:"打开控制台",en:"Open console"},ctaInstall:{zh:"立即安装",en:"Install now"},ctaPreview:{zh:"看看控制台长什么样",en:"Preview the console"},hero:{badge:{zh:"v"+j+" · Rust 内核 · 完全开源",en:"v"+j+" · Rust core · Open source"},h1Top:{zh:"你的 API Key",en:"Your API key"},h1Bottom:{zh:"不该躺在 30 个 .env 里",en:"shouldn’t live in 30 .env files"},lead:{zh:"cc-gw 在你的机器上跑一个本地网关。Claude Code、OpenAI SDK、Anthropic SDK 全部指向同一个地址。换模型、换 provider、查日志,再也不用翻业务代码。",en:"cc-gw runs a small gateway right on your machine. Point Claude Code, the OpenAI SDK, and the Anthropic SDK at one address — then swap models, switch providers, and trace requests without touching your app code."},note:{zh:"不需要本机有 Rust 环境,npm 自动拉对应平台的预编译二进制。",en:"No Rust toolchain needed — npm pulls the right prebuilt binary for your platform."},proof:[{zh:"一条命令装好,本机就能跑",en:"One command to install, runs on your laptop"},{zh:"客户端只改 baseURL,不动业务逻辑",en:"Clients only change baseURL — your code stays put"},{zh:"所有数据都在 ~/.cc-gw 下,不走云",en:"Everything lives under ~/.cc-gw — nothing leaves your box"}],works:{zh:"已经在以下客户端里跑通",en:"Tested with"}},why:{eyebrow:{zh:"现状",en:"The mess"},title:{zh:"AI 接进来不难,难的是接进来之后",en:"Wiring up AI is easy. Living with it isn’t."},description:{zh:"你大概率已经踩过下面这三件事里的至少两件。这就是为什么有了 cc-gw。",en:"You’ve probably hit at least two of these. That’s why cc-gw exists."},cards:[{title:{zh:"Key 散在各个 .env 里",en:"Keys scattered across .env files"},body:{zh:"每个项目自己一份 baseURL、自己一份 key、自己一份模型名。时间一长,没人敢动,也没人记得清。",en:"Every project keeps its own baseURL, its own key, its own model name. Six months in, nobody dares touch it."},sample:`OPENAI_BASE_URL=https://...
2
+ ANTHROPIC_API_KEY=sk-ant-...
3
+ MODEL=gpt-4o-2024-08-06`},{title:{zh:"出错只能猜",en:"Debugging is just guessing"},body:{zh:"是 payload 错?协议不对?上游挂了?key 被收回了?没有统一日志,只能 curl 一遍试一遍。",en:"Bad payload? Wrong protocol? Upstream down? Key revoked? Without one log to look at, you curl your way through every theory."},sample:`$ curl ... 401
4
+ # 是 key 过期?还是 endpoint 写错了?
5
+ # Or has the key been rotated?`},{title:{zh:"换模型像拆地雷",en:"Swapping models is a minefield"},body:{zh:"想从 GPT-4o 换 Claude Sonnet?要么 grep 30 个文件挨个改,要么改一堆环境变量然后祈祷。",en:"Want to try Claude Sonnet instead of GPT-4o? Either grep 30 files or rotate a pile of env vars and pray."},sample:`- model: gpt-4o
6
+ + model: claude-sonnet-4-5
7
+ // 30 处需要同步修改…`}]},how:{eyebrow:{zh:"怎么解决",en:"The fix"},title:{zh:"一个本地入口,背后什么都能换",en:"One local endpoint. Anything behind it can change."},description:{zh:"客户端只认 cc-gw。模型、provider、路由策略,全都在网关里调,业务代码不动。",en:"Your clients only know cc-gw. Models, providers, routing rules — all live in the gateway. Your code never moves."},diagramLabels:{clients:{zh:"你的客户端",en:"Your clients"},gateway:{zh:"本地网关",en:"Local gateway"},providers:{zh:"上游 Provider",en:"Upstream providers"}},differentiator:{eyebrow:{zh:"一个真正的差异化",en:"A real superpower"},title:{zh:"用 Anthropic 的代码,调 GPT-4o;反过来也行",en:"Write Anthropic code, route to GPT-4o. Or the other way around."},body:{zh:"cc-gw 在网关层完成 Anthropic ↔ OpenAI Chat ↔ OpenAI Responses 三端六方向的协议转换,包括 SSE 流式。所以 Claude Code 里写的代码可以路由到 GPT-4o,OpenAI SDK 写的代码也可以路由到 Claude。",en:"cc-gw does full bidirectional translation across Anthropic, OpenAI Chat, and OpenAI Responses — including SSE streaming. So your Claude Code can run on GPT-4o, and your OpenAI SDK can run on Claude."},example:{zh:"示例:客户端协议 → 上游模型",en:"Example: client protocol → upstream model"}},flowSteps:[{zh:"客户端发起请求",en:"Client sends request"},{zh:"按规则匹配 Provider",en:"Routes to the right provider"},{zh:"协议转换 + 流式透传",en:"Translates protocol + streams through"},{zh:"回包同时落日志",en:"Logs the round-trip on the way back"}]},debug:{eyebrow:{zh:"排查",en:"Observability"},title:{zh:"出了事,能看到一整段对话",en:"When things break, see the whole conversation"},description:{zh:"不只是一条请求的耗时。Profiler 把多轮对话的每一 turn 串成 session,TTFT、TPOT、token 用量全都记下来。",en:"Not just a single request. The Profiler stitches every turn of a multi-turn conversation into one session, with TTFT, TPOT, and token counts all recorded."},payload:{title:{zh:"四段 payload,分开存",en:"Four payloads, stored separately"},body:{zh:"每个请求都会保留:客户端发出的、网关转给上游的、上游回来的、再转回客户端的。跨协议有 bug?两侧对照一下就清楚了。",en:"For every request we keep four blobs: what the client sent, what we sent upstream, what came back, and what the client finally received. Cross-protocol bug? Compare both sides — done."},stages:[{zh:"客户端请求",en:"Client request"},{zh:"上游请求",en:"Upstream request"},{zh:"上游响应",en:"Upstream response"},{zh:"客户端响应",en:"Client response"}],clientSide:{zh:"客户端侧",en:"client side"},upstreamSide:{zh:"上游侧",en:"upstream side"}},pillars:[{icon:L,title:{zh:"Logs",en:"Logs"},body:{zh:"按 endpoint / Key / 状态码筛选,定位失败请求只要几秒。可选保留完整 payload。",en:"Filter by endpoint, key, or status code. Optional full-payload capture."}},{icon:P,title:{zh:"Profiler",en:"Profiler"},body:{zh:"按 session 聚合多轮 turn。每轮 TTFT / TPOT / tokens 一目了然,慢的那 turn 一眼能挑出。",en:"Multi-turn sessions, one row per turn. TTFT, TPOT, tokens — spot the slow turn instantly."}},{icon:_,title:{zh:"Events",en:"Events"},body:{zh:"配置变更、Key 增删、鉴权失败、并发拒绝,全部以事件形式可追溯。",en:"Config changes, key edits, auth failures, concurrency rejects — all auditable as events."}}]},local:{eyebrow:{zh:"本地优先",en:"Local-first"},title:{zh:"所有东西都在你机器的 ~/.cc-gw 下",en:"Everything lives under ~/.cc-gw on your machine"},description:{zh:"没有云端,没有遥测,没有外部依赖。配置可以版本管理,数据库可以直接打开,要离线跑就离线跑。",en:"No cloud. No telemetry. No external dependencies. Version-control your config, open the SQLite file with any tool, run it offline if you want to."},pillars:[{icon:K,title:{zh:"Key 加密落库",en:"Keys encrypted at rest"},body:{zh:"API Key 用 AES-256-GCM 加密存储,索引只走 SHA-256 哈希,明文永不落盘。",en:"API keys encrypted with AES-256-GCM. Lookups go through SHA-256 hashes — plaintext never hits disk."}},{icon:R,title:{zh:"按客户端独立 Key",en:"Per-client API keys"},body:{zh:"为不同客户端、环境、成员发独立 Key。可设并发上限,可配 endpoint 白名单,停用即时生效。",en:"Issue separate keys per client, env, or teammate. Set concurrency caps, restrict to specific endpoints, revoke instantly."}},{icon:E,title:{zh:"配置热改,无需重启",en:"Hot reload — no restart"},body:{zh:"改路由、加自定义 endpoint、调默认模型,控制台保存即生效。Rust 后端常驻,开发机也能长期挂着。",en:"Edit routing, add custom endpoints, change defaults — saves apply live. The Rust process is light enough to leave running on your laptop."}},{icon:D,title:{zh:"老用户数据无痛迁移",en:"Old data just works"},body:{zh:"从旧 Node 版本升级?config.json 和 gateway.db 直接继承,自动做 schema 迁移,历史日志一条不丢。",en:"Upgrading from the old Node build? Your config.json and gateway.db carry over — schema is migrated in place, no log loss."}}],treeCaption:{zh:"一切都在这个目录下,备份它就等于备份了整个 cc-gw。",en:"Back up this folder and you’ve backed up your entire cc-gw setup."}},start:{eyebrow:{zh:"开始",en:"Get started"},title:{zh:"4 步跑起来",en:"Up and running in four steps"},description:{zh:"不用先改团队流程。先让一个客户端走通,看到价值再往后扩。",en:"No team-wide migration. Get one client through first — expand from there."},steps:[{title:{zh:"安装",en:"Install"},body:{zh:"一条命令搞定,npm 会自动拉对应平台的预编译二进制。",en:"One command. npm grabs the prebuilt binary for your platform automatically."},code:"npm install -g @chenpu17/cc-gw"},{title:{zh:"启动",en:"Start"},body:{zh:"前台模式方便观察日志;想常驻就 `--daemon`。默认绑定 127.0.0.1:4100。",en:"Foreground for live logs, or `--daemon` to keep it running. Binds to 127.0.0.1:4100 by default."},code:"cc-gw start --foreground --port 4100"},{title:{zh:"加 Provider",en:"Add a provider"},body:{zh:"打开控制台,把你的 OpenAI / Anthropic / 兼容 provider 填进去。",en:"Open the console and plug in your OpenAI, Anthropic, or any compatible provider."},code:"open http://127.0.0.1:4100/ui"},{title:{zh:"指过去",en:"Point your client"},body:{zh:"客户端只改 baseURL。Anthropic 协议走根路径,OpenAI 协议加 /openai/v1 前缀。",en:"Just change baseURL. Anthropic protocol uses the root path; OpenAI uses /openai/v1."},code:`ANTHROPIC_BASE_URL='http://127.0.0.1:4100'
8
+ OPENAI_BASE_URL='http://127.0.0.1:4100/openai/v1'`}]},console:{eyebrow:{zh:"控制台",en:"Console"},title:{zh:"不是摆设,是你每天用的地方",en:"Not for show — you’ll be in here daily"},description:{zh:"请求进来之后,趋势、日志、路由、Key、Profiler 都在同一个台子里。",en:"Once requests start flowing, trends, logs, routing, keys, and profiler all live under one roof."}},fit:{eyebrow:{zh:"适合谁",en:"Who it’s for"},title:{zh:"诚实地说:它不是为所有人做的",en:"Honestly: it’s not for everyone"},description:{zh:"如果你的 AI 调用已经开始扩张,但又没到要上组织级治理平台的程度,cc-gw 多半正好卡在合适的位置。",en:"If your AI usage is growing but you’re not ready for an enterprise governance platform, cc-gw probably sits right where you need it."},yesTitle:{zh:"适合",en:"Good fit"},noTitle:{zh:"不适合",en:"Not a fit"},yes:[{zh:"同时在用 Claude Code、OpenAI SDK、Anthropic SDK",en:"Already juggling Claude Code, OpenAI SDK, and Anthropic SDK"},{zh:"2-10 人 AI 小队,需要共享入口和日志",en:"A 2–10 person AI team that needs a shared entrypoint and shared logs"},{zh:"10-100 人研发团队,开始多人共享模型调用",en:"A 10–100 dev team starting to share model calls across people"},{zh:"想自托管,对数据归属敏感",en:"You self-host. Data sovereignty matters."},{zh:"受不了把 key、baseURL 散在每个项目里",en:"You’re tired of keys and baseURLs sprinkled across every repo"}],no:[{zh:"需要跨 BU 治理、复杂审批流",en:"You need cross-BU governance and complex approval flows"},{zh:"需要企业 SSO 与组织级策略中台",en:"Enterprise SSO and org-level policy hubs"},{zh:"需要多副本 HA 集群",en:"High-availability multi-replica clusters"},{zh:"强 Compliance 场景(金融、医疗等)",en:"Heavily regulated industries (finance, healthcare)"},{zh:"希望一套大平台囊括所有 AI 成本结算",en:"A single platform to handle all AI cost reconciliation"}]},faq:{eyebrow:{zh:"FAQ",en:"FAQ"},title:{zh:"你可能想问",en:"You probably want to ask"},description:{zh:"从是否值得装、会不会绑死、数据放哪几个最常见的疑问开始。",en:"Starting with the questions people ask most: is it worth it, does it lock me in, where does my data live."},items:[{q:{zh:"我一个人用,也值得装吗?",en:"I’m a solo dev — is it still worth it?"},a:{zh:"只用一个 provider、一个项目,可能不需要。但只要你同时在用 Claude Code 和 OpenAI SDK,或者经常切模型,统一入口能省下来的维护时间会很可观。",en:"If you use one provider and one project, probably not. But the moment you’re juggling Claude Code and the OpenAI SDK — or switching models often — having one entrypoint pays back fast."}},{q:{zh:"会不会被 cc-gw 绑死?",en:"Will I get locked into cc-gw?"},a:{zh:"不会。客户端用的还是 OpenAI / Anthropic 标准协议,不要 cc-gw 也能工作。配置和数据都是 JSON + SQLite,可以直接读、直接迁。",en:"No. Your clients still speak standard OpenAI / Anthropic protocols and work fine without cc-gw. Your config is plain JSON, your data is plain SQLite — read or migrate it any time."}},{q:{zh:"数据存在哪里?会上传吗?",en:"Where does my data live? Does anything get uploaded?"},a:{zh:"全部在本机 ~/.cc-gw/ 下:config.json、SQLite 数据库、加密密钥、日志文件。请求只在你和上游 provider 之间转发,cc-gw 自己不发遥测。",en:"Everything is local under ~/.cc-gw/: config.json, the SQLite database, the encryption key, and log files. Requests flow only between you and the upstream provider — cc-gw sends no telemetry."}},{q:{zh:"它和 LiteLLM、One API 这些有啥区别?",en:"How is it different from LiteLLM or One API?"},a:{zh:"主要三点:(1) 默认本地优先、零云依赖;(2) 跨协议三端六方向真正双向转换,包括 SSE 流式;(3) 内置按 session 聚合的 Profiler 和四段 payload 存储,专门给跨协议排查用。",en:"Three things: (1) local-first by default, zero cloud dependency; (2) true bidirectional translation across Anthropic, OpenAI Chat, and OpenAI Responses — streaming included; (3) a built-in Profiler that groups multi-turn sessions, plus four-segment payload storage purpose-built for cross-protocol debugging."}},{q:{zh:"安装需要本机有 Rust 吗?",en:"Do I need Rust installed?"},a:{zh:"不需要。npm 包通过 optionalDependencies 自动拉对应平台的预编译二进制:macOS arm64、Linux x64/arm64、Windows x64。",en:"No. The npm package uses optionalDependencies to pull the right prebuilt binary for your platform: macOS arm64, Linux x64/arm64, and Windows x64."}}]},cta:{title:{zh:"今天就把这件事处理掉",en:"Take care of this today"},body:{zh:"一条命令就能装好。先在本地跑通一个客户端,看到价值再往后扩。",en:"One command to install. Get one client running locally, see if it pays back, then keep going."}},footer:{tagline:{zh:"cc-gw · 给开发者和小团队的本地优先 AI 网关",en:"cc-gw · A local-first AI gateway for developers and small teams"},console:{zh:"控制台",en:"Console"},changelog:{zh:"更新日志",en:"Changelog"}}},V=["Claude Code","OpenAI SDK","Anthropic SDK","cURL","LangChain","Vercel AI SDK"],X=[{client:"Anthropic SDK",upstream:{zh:"OpenAI · GPT-4o",en:"OpenAI · GPT-4o"},accent:"from-amber-500/20 to-rose-500/20 text-amber-600"},{client:"OpenAI SDK",upstream:{zh:"Anthropic · Claude Sonnet",en:"Anthropic · Claude Sonnet"},accent:"from-cyan-500/20 to-indigo-500/20 text-cyan-600"},{client:"Claude Code",upstream:{zh:"本地 Ollama / 自建模型",en:"Local Ollama / self-hosted"},accent:"from-emerald-500/20 to-teal-500/20 text-emerald-600"}],ee={zh:"兼容 provider · 自建模型",en:"Compatible providers · self-hosted"},z={copy:{zh:"复制",en:"Copy"},copied:{zh:"已复制",en:"Copied"}},te=`~/.cc-gw/
9
+ ├── config.json # 直接编辑也行 / edit by hand if you like
10
+ ├── encryption.key # 自动生成 / auto-generated
11
+ ├── cc-gw.pid
12
+ ├── data/
13
+ │ └── gateway.db # SQLite (WAL) — 直接 sqlite3 打开
14
+ └── logs/
15
+ └── cc-gw.log`,y=[{id:"dashboard",shot:{zh:S,en:C},label:{zh:"总览",en:"Dashboard"},blurb:{zh:"今天的请求量、延迟、健康状态,一屏看完。",en:"Today’s request volume, latency, and health — at a glance."}},{id:"logs",shot:{zh:G,en:$},label:{zh:"请求日志",en:"Logs"},blurb:{zh:"按 endpoint / Key / 状态码筛,几秒定位。",en:"Filter by endpoint, key, or status. Find issues in seconds."}},{id:"routing",shot:{zh:W,en:M},label:{zh:"模型路由",en:"Routing"},blurb:{zh:"别名、通配匹配、fallback 链全在 UI 里维护。",en:"Aliases, wildcards, and fallback chains — all in the UI."}},{id:"keys",shot:{zh:Y,en:Q},label:{zh:"API Keys",en:"API Keys"},blurb:{zh:"按客户端发独立 Key,可设并发上限。",en:"Per-client keys with concurrency caps."}},{id:"profiler",shot:{zh:H,en:J},label:{zh:"Profiler & Events",en:"Profiler & Events"},blurb:{zh:"多轮对话按 session 聚合,事件流可追溯。",en:"Sessions group multi-turn calls. Events keep an audit trail."}}];function se(l){if(l.trim().startsWith("#"))return e.jsx("span",{className:"text-slate-500",children:l});if(l.startsWith("$ "))return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"select-none text-emerald-400",children:"$ "}),e.jsx("span",{className:"text-slate-100",children:l.slice(2)})]});const r=l.match(/^(\s*)([A-Z_][\w]*)(\s*=\s*)(.+)$/);if(r){const[,i,x,m,d]=r,t=d.startsWith("'")||d.startsWith('"');return e.jsxs(e.Fragment,{children:[e.jsx("span",{children:i}),e.jsx("span",{className:"text-indigo-300",children:x}),e.jsx("span",{className:"text-slate-400",children:m}),e.jsx("span",{className:t?"text-emerald-300":"text-slate-100",children:d})]})}return e.jsx("span",{className:"text-slate-100",children:l})}function ae({code:l,label:r,className:i,copyLabel:x,copiedLabel:m}){const[d,t]=u.useState(!1);async function c(){await A(l),t(!0),window.setTimeout(()=>t(!1),1800)}return e.jsxs("div",{className:p("relative min-w-0",i),children:[e.jsxs("button",{type:"button","aria-label":`Copy ${r}`,onClick:c,className:"absolute right-3 top-3 z-10 inline-flex items-center gap-1.5 rounded-lg border border-white/10 bg-white/10 px-2.5 py-1 text-[11px] font-medium text-slate-100 transition hover:bg-white/15",children:[d?e.jsx(b,{className:"h-3.5 w-3.5"}):e.jsx(k,{className:"h-3.5 w-3.5"}),d?m:x]}),e.jsx("pre",{className:"max-w-full overflow-x-auto rounded-2xl bg-slate-950 p-5 font-mono text-[13px] leading-7 text-slate-100 ring-1 ring-white/5 [&_::selection]:bg-blue-500/40 [&_::selection]:text-white",children:e.jsx("code",{children:l.split(`
16
+ `).map((f,a)=>e.jsx("span",{className:"block",children:se(f)??" "},a))})})]})}function ne(){const[l,r]=u.useState(!1),i="npm install -g @chenpu17/cc-gw";async function x(){await A(i),r(!0),window.setTimeout(()=>r(!1),1800)}return e.jsxs("div",{className:"inline-flex w-full max-w-md items-center gap-2 rounded-2xl border border-white/15 bg-white/5 py-2 pl-4 pr-2 backdrop-blur-sm",children:[e.jsx("span",{className:"select-none font-mono text-emerald-400",children:"$"}),e.jsx("span",{className:"select-all truncate font-mono text-sm text-slate-100",children:i}),e.jsx("button",{type:"button","aria-label":"Copy install command",onClick:x,className:"ml-auto inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg bg-white/10 text-slate-200 transition hover:bg-white/20",children:l?e.jsx(b,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(k,{className:"h-3.5 w-3.5"})})]})}function h({eyebrow:l,title:r,description:i}){return e.jsxs("div",{className:"max-w-3xl",children:[e.jsx("div",{className:"font-mono text-xs font-semibold uppercase tracking-[0.22em] text-indigo-600",children:l}),e.jsx("h2",{className:"mt-4 text-3xl font-semibold tracking-[-0.02em] text-slate-950 sm:text-4xl",children:r}),e.jsx("p",{className:"mt-4 text-base leading-8 text-slate-600 sm:text-lg",children:i})]})}function le(){const[l,r]=u.useState("zh"),[i,x]=u.useState(y[0].id),[m,d]=u.useState(0),t=a=>Z(l,a),c=y.find(a=>a.id===i)??y[0],f=[{href:"#why",label:t(s.nav.why)},{href:"#how",label:t(s.nav.how)},{href:"#debug",label:t(s.nav.debug)},{href:"#local",label:t(s.nav.local)},{href:"#start",label:t(s.nav.start)},{href:"#faq",label:t(s.nav.faq)}];return e.jsxs("div",{className:"min-h-screen bg-white text-slate-950 antialiased",children:[e.jsxs("header",{className:"sticky top-0 z-30 border-b border-slate-200/70 bg-white/85 backdrop-blur-xl",children:[e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl items-center justify-between gap-4 px-6 py-3.5 sm:px-8 lg:px-10",children:[e.jsxs("a",{href:"#top",className:"flex items-center gap-2.5",children:[e.jsx(v,{className:"h-9 w-9",title:"cc-gw"}),e.jsxs("div",{className:"leading-tight",children:[e.jsx("div",{className:"text-[15px] font-semibold tracking-tight",children:"cc-gw"}),e.jsx("div",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-slate-500",children:"local-first ai gateway"})]})]}),e.jsx("nav",{className:"hidden items-center gap-1 lg:flex",children:f.map(a=>e.jsx("a",{href:a.href,className:"rounded-lg px-3 py-1.5 text-sm text-slate-600 transition hover:bg-slate-100 hover:text-slate-900",children:a.label},a.href))}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:()=>r(l==="zh"?"en":"zh"),"aria-label":"Toggle language",className:"inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-xs font-semibold text-slate-700 transition hover:border-slate-300",children:[e.jsx(O,{className:"h-3.5 w-3.5"}),l==="zh"?"EN":"中文"]}),e.jsx("a",{href:"/ui/",className:"hidden rounded-lg border border-slate-200 bg-white px-3.5 py-1.5 text-sm font-medium text-slate-700 transition hover:border-slate-300 hover:text-slate-950 sm:inline-flex",children:t(s.ctaConsole)}),e.jsxs("a",{href:"https://github.com/chenpu17/cc-gw2",className:"inline-flex items-center gap-1.5 rounded-lg bg-slate-950 px-3.5 py-1.5 text-sm font-medium text-white transition hover:bg-slate-800",children:[e.jsx(T,{className:"h-4 w-4"}),"GitHub"]})]})]}),e.jsx("nav",{"aria-label":"Mobile section navigation",className:"flex gap-1.5 overflow-x-auto border-t border-slate-200/70 px-4 py-2 lg:hidden",children:[...f,{href:"/ui/",label:t(s.ctaConsole)}].map(a=>e.jsx("a",{href:a.href,className:"shrink-0 rounded-lg bg-slate-100 px-3 py-1 text-xs font-medium text-slate-700",children:a.label},a.href))})]}),e.jsxs("main",{id:"top",children:[e.jsxs("section",{className:"relative overflow-hidden bg-slate-950 text-white [&_::selection]:bg-indigo-400/40 [&_::selection]:text-white",children:[e.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 opacity-[0.18]",style:{backgroundImage:"linear-gradient(to right, rgba(148,163,184,0.18) 1px, transparent 1px), linear-gradient(to bottom, rgba(148,163,184,0.18) 1px, transparent 1px)",backgroundSize:"48px 48px",maskImage:"radial-gradient(ellipse at center top, black 30%, transparent 75%)",WebkitMaskImage:"radial-gradient(ellipse at center top, black 30%, transparent 75%)"}}),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute -top-40 left-1/2 h-[640px] w-[1100px] -translate-x-1/2 rounded-full opacity-60 blur-[120px]",style:{background:"radial-gradient(closest-side, rgba(99,102,241,0.55), transparent 70%), radial-gradient(closest-side at 70% 60%, rgba(34,211,238,0.35), transparent 70%)"}}),e.jsxs("div",{className:"relative mx-auto w-full max-w-6xl px-6 pb-24 pt-20 sm:px-8 lg:px-10 lg:pt-28",children:[e.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/5 px-3.5 py-1 text-xs font-medium text-slate-200 backdrop-blur-sm",children:[e.jsx("span",{className:"inline-flex h-1.5 w-1.5 rounded-full bg-emerald-400 shadow-[0_0_10px_rgba(52,211,153,0.8)]"}),t(s.hero.badge)]}),e.jsxs("h1",{className:"mt-7 text-[2.4rem] font-bold leading-[1.05] tracking-[-0.035em] sm:text-6xl",children:[t(s.hero.h1Top),e.jsx("span",{className:"mt-2 block bg-gradient-to-r from-indigo-300 via-violet-300 to-cyan-300 bg-clip-text text-transparent",children:t(s.hero.h1Bottom)})]}),e.jsx("p",{className:"mx-auto mt-6 max-w-2xl text-base leading-8 text-slate-300 sm:text-lg",children:t(s.hero.lead)}),e.jsxs("div",{className:"mt-9 flex flex-col items-center justify-center gap-3 sm:flex-row",children:[e.jsxs("a",{href:"#start",className:"group inline-flex items-center justify-center gap-2 rounded-xl bg-white px-5 py-3 text-sm font-semibold text-slate-950 shadow-lg shadow-indigo-500/20 transition hover:bg-slate-100",children:[e.jsx(N,{className:"h-4 w-4"}),t(s.ctaInstall),e.jsx(g,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]}),e.jsx("a",{href:"#console",className:"inline-flex items-center justify-center gap-2 rounded-xl border border-white/20 bg-white/5 px-5 py-3 text-sm font-semibold text-white backdrop-blur-sm transition hover:bg-white/10",children:t(s.ctaPreview)})]}),e.jsxs("div",{className:"mt-7 flex flex-col items-center gap-2",children:[e.jsx(ne,{}),e.jsx("p",{className:"font-mono text-[11px] text-slate-400",children:t(s.hero.note)})]}),e.jsx("ul",{className:"mt-10 grid gap-3 text-left sm:grid-cols-3",children:s.hero.proof.map((a,n)=>e.jsxs("li",{className:"flex items-start gap-2 rounded-xl border border-white/10 bg-white/5 px-4 py-3 text-[13px] leading-6 text-slate-200 backdrop-blur-sm",children:[e.jsx(b,{className:"mt-0.5 h-4 w-4 shrink-0 text-emerald-400"}),e.jsx("span",{children:t(a)})]},n))})]}),e.jsxs("div",{className:"relative mx-auto mt-16 max-w-5xl",children:[e.jsx("div",{"aria-hidden":!0,className:"absolute inset-x-10 -top-10 h-40 rounded-full bg-gradient-to-r from-indigo-500/30 via-violet-500/25 to-cyan-500/30 blur-3xl"}),e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border border-white/15 bg-slate-900/60 p-1.5 shadow-[0_40px_120px_-20px_rgba(2,6,23,0.8)] ring-1 ring-white/5 backdrop-blur",children:[e.jsxs("div",{className:"flex items-center gap-1.5 border-b border-white/10 px-4 py-2.5",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-rose-400/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-300/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-emerald-400/70"}),e.jsx("div",{className:"ml-3 flex-1 truncate rounded-md bg-white/5 px-3 py-1 text-center font-mono text-[11px] text-slate-300",children:"127.0.0.1:4100/ui/"})]}),e.jsx("img",{src:l==="en"?C:S,alt:"cc-gw dashboard screenshot",className:"block w-full rounded-b-xl",loading:"eager"})]})]}),e.jsxs("div",{className:"mt-16",children:[e.jsx("p",{className:"text-center font-mono text-[11px] uppercase tracking-[0.22em] text-slate-400",children:t(s.hero.works)}),e.jsx("div",{className:"mt-5 flex flex-wrap items-center justify-center gap-2",children:V.map(a=>e.jsx("span",{className:"rounded-full border border-white/10 bg-white/5 px-3.5 py-1.5 text-sm text-slate-200 backdrop-blur-sm",children:a},a))})]})]})]}),e.jsxs("section",{id:"why",className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.why.eyebrow),title:t(s.why.title),description:t(s.why.description)}),e.jsx("div",{className:"mt-12 grid gap-5 md:grid-cols-3",children:s.why.cards.map(a=>e.jsxs("div",{className:"group relative overflow-hidden rounded-2xl border border-slate-200 bg-white p-6 transition hover:border-slate-300 hover:shadow-[0_20px_50px_-30px_rgba(15,23,42,0.25)]",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(w,{className:"h-4 w-4 text-rose-500"}),e.jsx("h3",{className:"text-base font-semibold text-slate-950",children:t(a.title)})]}),e.jsx("p",{className:"mt-3 text-sm leading-7 text-slate-600",children:t(a.body)}),e.jsx("pre",{className:"mt-5 overflow-hidden rounded-lg bg-slate-50 p-3 font-mono text-[11.5px] leading-6 text-slate-500 ring-1 ring-slate-200",children:a.sample})]},a.title.en))})]}),e.jsx("section",{id:"how",className:"border-y border-slate-200/80 bg-slate-50/60",children:e.jsxs("div",{className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.how.eyebrow),title:t(s.how.title),description:t(s.how.description)}),e.jsxs("div",{className:"mt-12 grid gap-6 lg:grid-cols-[1fr_auto_1fr_auto_1fr] lg:items-stretch",children:[e.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-5",children:[e.jsx("div",{className:"font-mono text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500",children:t(s.how.diagramLabels.clients)}),e.jsxs("ul",{className:"mt-3 space-y-2 text-sm text-slate-700",children:[e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"Claude Code"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"OpenAI SDK"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"Anthropic SDK"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2 text-slate-500",children:"cURL · LangChain · …"})]})]}),e.jsx("div",{className:"hidden flex-col items-center justify-center text-slate-300 lg:flex",children:e.jsx(g,{className:"h-6 w-6"})}),e.jsxs("div",{className:"rounded-2xl border border-indigo-200 bg-gradient-to-br from-indigo-50 via-white to-cyan-50 p-5 ring-1 ring-indigo-100",children:[e.jsx("div",{className:"font-mono text-[11px] font-semibold uppercase tracking-[0.18em] text-indigo-600",children:t(s.how.diagramLabels.gateway)}),e.jsx("div",{className:"mt-3 rounded-xl bg-slate-950 px-4 py-3 font-mono text-[12px] text-slate-100",children:"127.0.0.1:4100"}),e.jsx("ul",{className:"mt-3 space-y-1.5 text-[13px] text-slate-700",children:s.how.flowSteps.map((a,n)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"mt-1 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-indigo-100 font-mono text-[10px] font-semibold text-indigo-700",children:n+1}),e.jsx("span",{children:t(a)})]},n))})]}),e.jsx("div",{className:"hidden flex-col items-center justify-center text-slate-300 lg:flex",children:e.jsx(g,{className:"h-6 w-6"})}),e.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-5",children:[e.jsx("div",{className:"font-mono text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500",children:t(s.how.diagramLabels.providers)}),e.jsxs("ul",{className:"mt-3 space-y-2 text-sm text-slate-700",children:[e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"OpenAI"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"Anthropic"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2",children:"Azure / Bedrock"}),e.jsx("li",{className:"rounded-lg bg-slate-50 px-3 py-2 text-slate-500",children:t(ee)})]})]})]}),e.jsx("div",{className:"mt-14 overflow-hidden rounded-3xl border border-slate-200 bg-white",children:e.jsxs("div",{className:"grid gap-0 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.05fr)]",children:[e.jsxs("div",{className:"border-b border-slate-200 p-8 lg:border-b-0 lg:border-r lg:p-10",children:[e.jsx("div",{className:"font-mono text-[11px] font-semibold uppercase tracking-[0.22em] text-indigo-600",children:t(s.how.differentiator.eyebrow)}),e.jsx("h3",{className:"mt-3 text-2xl font-semibold tracking-[-0.01em] text-slate-950",children:t(s.how.differentiator.title)}),e.jsx("p",{className:"mt-4 text-sm leading-7 text-slate-600",children:t(s.how.differentiator.body)})]}),e.jsxs("div",{className:"bg-slate-50/60 p-8 lg:p-10",children:[e.jsx("div",{className:"font-mono text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500",children:t(s.how.differentiator.example)}),e.jsx("ul",{className:"mt-4 space-y-3",children:X.map(a=>e.jsxs("li",{className:"flex items-center gap-3 rounded-xl bg-white px-4 py-3 ring-1 ring-slate-200",children:[e.jsx("span",{className:"rounded-md bg-slate-100 px-2 py-1 font-mono text-xs text-slate-700",children:a.client}),e.jsx(g,{className:"h-3.5 w-3.5 text-slate-400"}),e.jsx("span",{className:"rounded-md bg-gradient-to-r px-2 py-1 font-mono text-xs ring-1 ring-inset ring-slate-200 bg-slate-950 text-slate-100",children:t(a.upstream)})]},a.client))})]})]})})]})}),e.jsxs("section",{id:"debug",className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.debug.eyebrow),title:t(s.debug.title),description:t(s.debug.description)}),e.jsx("div",{className:"mt-12 grid gap-px overflow-hidden rounded-2xl bg-slate-200 ring-1 ring-slate-200 md:grid-cols-3",children:s.debug.pillars.map(({icon:a,title:n,body:o})=>e.jsxs("div",{className:"bg-white p-7",children:[e.jsx("div",{className:"inline-flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-500/10 to-cyan-500/10 text-indigo-600 ring-1 ring-indigo-500/15",children:e.jsx(a,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mt-5 text-base font-semibold text-slate-950",children:t(n)}),e.jsx("p",{className:"mt-2 text-sm leading-7 text-slate-600",children:t(o)})]},n.en))}),e.jsxs("div",{className:"mt-10 overflow-hidden rounded-2xl border border-slate-200 bg-gradient-to-br from-slate-50 to-white p-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-slate-950",children:t(s.debug.payload.title)}),e.jsx("p",{className:"mt-3 max-w-3xl text-sm leading-7 text-slate-600",children:t(s.debug.payload.body)}),e.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:s.debug.payload.stages.map((a,n)=>{const o=n===0||n===3;return e.jsxs("div",{className:p("rounded-xl border px-4 py-4",o?"border-cyan-200 bg-cyan-50/60":"border-indigo-200 bg-indigo-50/60"),children:[e.jsxs("div",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.18em] text-slate-500",children:["payload [",n+1,"/4]"]}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-slate-900",children:t(a)}),e.jsx("div",{className:"mt-1 font-mono text-[11px] text-slate-500",children:t(o?s.debug.payload.clientSide:s.debug.payload.upstreamSide)})]},n)})})]})]}),e.jsx("section",{id:"local",className:"border-y border-slate-200/80 bg-slate-50/60",children:e.jsxs("div",{className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.local.eyebrow),title:t(s.local.title),description:t(s.local.description)}),e.jsxs("div",{className:"mt-12 grid gap-8 lg:grid-cols-[minmax(0,1.05fr)_minmax(0,0.95fr)] lg:items-start",children:[e.jsx("div",{className:"grid gap-px overflow-hidden rounded-2xl bg-slate-200 ring-1 ring-slate-200 sm:grid-cols-2",children:s.local.pillars.map(({icon:a,title:n,body:o})=>e.jsxs("div",{className:"bg-white p-6",children:[e.jsx("div",{className:"inline-flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-500/10 to-cyan-500/10 text-indigo-600 ring-1 ring-indigo-500/15",children:e.jsx(a,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-slate-950",children:t(n)}),e.jsx("p",{className:"mt-2 text-sm leading-7 text-slate-600",children:t(o)})]},n.en))}),e.jsxs("div",{children:[e.jsxs("div",{className:"overflow-hidden rounded-2xl border border-white/10 bg-slate-950 p-1.5 shadow-[0_30px_80px_-30px_rgba(15,23,42,0.45)]",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-rose-400/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-300/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-emerald-400/70"}),e.jsx("div",{className:"ml-3 flex-1 truncate rounded-md bg-white/5 px-3 py-1 font-mono text-[11px] text-slate-300",children:"~/.cc-gw"})]}),e.jsx("pre",{className:"overflow-x-auto px-5 pb-5 pt-2 font-mono text-[12.5px] leading-7 text-slate-100",children:e.jsx("code",{children:te.split(`
17
+ `).map((a,n)=>e.jsx("span",{className:"block",children:a.includes("#")?e.jsxs(e.Fragment,{children:[e.jsx("span",{children:a.slice(0,a.indexOf("#"))}),e.jsx("span",{className:"text-slate-500",children:a.slice(a.indexOf("#"))})]}):a},n))})})]}),e.jsx("p",{className:"mt-4 px-1 text-sm leading-7 text-slate-600",children:t(s.local.treeCaption)})]})]})]})}),e.jsxs("section",{id:"start",className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.start.eyebrow),title:t(s.start.title),description:t(s.start.description)}),e.jsx("ol",{className:"mt-12 grid gap-5 md:grid-cols-2",children:s.start.steps.map((a,n)=>e.jsxs("li",{className:"flex flex-col rounded-2xl border border-slate-200 bg-white p-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex h-8 min-w-[2rem] items-center justify-center rounded-lg bg-slate-950 px-2 font-mono text-xs font-semibold text-white",children:String(n+1).padStart(2,"0")}),e.jsx("h3",{className:"text-base font-semibold text-slate-950",children:t(a.title)})]}),e.jsx("p",{className:"mt-3 text-sm leading-7 text-slate-600",children:t(a.body)}),e.jsx("div",{className:"mt-5",children:e.jsx(ae,{label:`step ${n+1}: ${a.title.en}`,code:a.code,copyLabel:t(z.copy),copiedLabel:t(z.copied)})})]},a.title.en))})]}),e.jsx("section",{id:"console",className:"border-y border-slate-200/80 bg-slate-50/60",children:e.jsxs("div",{className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.console.eyebrow),title:t(s.console.title),description:t(s.console.description)}),e.jsxs("div",{className:"mt-12 grid gap-8 lg:grid-cols-[280px_minmax(0,1fr)]",children:[e.jsx("div",{role:"tablist","aria-orientation":"vertical",className:"flex flex-col gap-1.5",children:y.map(a=>{const n=a.id===i;return e.jsxs("button",{type:"button",role:"tab",id:`console-tab-${a.id}`,"aria-selected":n,"aria-controls":`console-panel-${a.id}`,onClick:()=>x(a.id),className:p("rounded-xl border px-4 py-3 text-left transition",n?"border-indigo-500/30 bg-white shadow-[0_10px_30px_-18px_rgba(79,70,229,0.4)] ring-1 ring-indigo-500/10":"border-transparent bg-transparent hover:bg-white/70"),children:[e.jsx("div",{className:p("text-sm font-semibold",n?"text-slate-950":"text-slate-700"),children:t(a.label)}),e.jsx("div",{className:p("mt-1 text-xs leading-5",n?"text-slate-600":"text-slate-500"),children:t(a.blurb)})]},a.id)})}),e.jsxs("div",{role:"tabpanel",id:`console-panel-${c.id}`,"aria-labelledby":`console-tab-${c.id}`,className:"overflow-hidden rounded-2xl border border-slate-200 bg-slate-950 p-1.5 shadow-[0_30px_80px_-30px_rgba(15,23,42,0.45)]",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-rose-400/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-300/70"}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-emerald-400/70"}),e.jsxs("div",{className:"ml-3 flex-1 truncate rounded-md bg-white/5 px-3 py-1 font-mono text-[11px] text-slate-300",children:["127.0.0.1:4100/ui/",c.id]})]}),e.jsx("img",{src:t(c.shot),alt:`${t(c.label)} screenshot`,className:"block w-full rounded-b-xl"},c.id+l)]})]})]})}),e.jsxs("section",{id:"fit",className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.fit.eyebrow),title:t(s.fit.title),description:t(s.fit.description)}),e.jsxs("div",{className:"mt-12 grid gap-5 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-emerald-200/70 bg-gradient-to-br from-emerald-50 to-white p-7",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-emerald-500/15 text-emerald-600",children:e.jsx(b,{className:"h-4 w-4"})}),e.jsx("h3",{className:"text-base font-semibold text-slate-950",children:t(s.fit.yesTitle)})]}),e.jsx("ul",{className:"mt-5 space-y-3",children:s.fit.yes.map((a,n)=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-7 text-slate-700",children:[e.jsx(b,{className:"mt-1 h-4 w-4 shrink-0 text-emerald-500"}),t(a)]},n))})]}),e.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-7",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-slate-200/70 text-slate-500",children:e.jsx(w,{className:"h-4 w-4"})}),e.jsx("h3",{className:"text-base font-semibold text-slate-950",children:t(s.fit.noTitle)})]}),e.jsx("ul",{className:"mt-5 space-y-3",children:s.fit.no.map((a,n)=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-7 text-slate-600",children:[e.jsx(w,{className:"mt-1 h-4 w-4 shrink-0 text-slate-400"}),t(a)]},n))})]})]})]}),e.jsx("section",{id:"faq",className:"border-y border-slate-200/80 bg-slate-50/60",children:e.jsxs("div",{className:"mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 lg:px-10 lg:py-24",children:[e.jsx(h,{eyebrow:t(s.faq.eyebrow),title:t(s.faq.title),description:t(s.faq.description)}),e.jsx("div",{className:"mx-auto mt-12 max-w-3xl divide-y divide-slate-200 rounded-2xl border border-slate-200 bg-white",children:s.faq.items.map((a,n)=>{const o=m===n;return e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:()=>d(o?null:n),"aria-expanded":o,className:"flex w-full items-center justify-between gap-6 px-6 py-5 text-left",children:[e.jsx("span",{className:"text-base font-semibold text-slate-900",children:t(a.q)}),e.jsx(q,{className:p("h-5 w-5 shrink-0 text-slate-400 transition-transform",o&&"rotate-180 text-slate-700")})]}),o&&e.jsx("div",{className:"px-6 pb-6 text-sm leading-7 text-slate-600",children:t(a.a)})]},n)})})]})}),e.jsx("section",{className:"px-6 py-24 sm:px-8 lg:px-10",children:e.jsxs("div",{className:"relative mx-auto w-full max-w-6xl overflow-hidden rounded-3xl bg-slate-950 px-8 py-14 text-white shadow-[0_40px_100px_-40px_rgba(15,23,42,0.5)] sm:px-12 [&_::selection]:bg-indigo-400/40 [&_::selection]:text-white",children:[e.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 opacity-25",style:{backgroundImage:"linear-gradient(to right, rgba(148,163,184,0.16) 1px, transparent 1px), linear-gradient(to bottom, rgba(148,163,184,0.16) 1px, transparent 1px)",backgroundSize:"40px 40px",maskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)",WebkitMaskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)"}}),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute -bottom-40 left-1/2 h-[460px] w-[900px] -translate-x-1/2 rounded-full opacity-50 blur-[100px]",style:{background:"radial-gradient(closest-side, rgba(99,102,241,0.6), transparent 70%), radial-gradient(closest-side at 70% 60%, rgba(34,211,238,0.4), transparent 70%)"}}),e.jsxs("div",{className:"relative grid gap-10 lg:grid-cols-[1.2fr_auto] lg:items-end",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-3xl font-semibold tracking-[-0.02em] sm:text-4xl",children:t(s.cta.title)}),e.jsx("p",{className:"mt-5 max-w-xl text-base leading-8 text-slate-300",children:t(s.cta.body)})]}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row lg:flex-col lg:items-end",children:[e.jsxs("a",{href:"https://www.npmjs.com/package/@chenpu17/cc-gw",className:"inline-flex items-center justify-center gap-2 rounded-xl bg-white px-5 py-3 text-sm font-semibold text-slate-950 transition hover:bg-slate-100",children:[e.jsx(N,{className:"h-4 w-4"}),t(s.ctaInstall)]}),e.jsxs("a",{href:"/ui/",className:"inline-flex items-center justify-center gap-2 rounded-xl border border-white/20 bg-white/5 px-5 py-3 text-sm font-semibold text-white transition hover:bg-white/10",children:[t(s.ctaConsole),e.jsx(g,{className:"h-4 w-4"})]})]})]})]})})]}),e.jsx("footer",{className:"border-t border-slate-200 bg-white",children:e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-4 px-6 py-10 text-sm text-slate-500 sm:px-8 lg:flex-row lg:items-center lg:justify-between lg:px-10",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(v,{className:"h-7 w-7",title:"cc-gw"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-slate-700",children:t(s.footer.tagline)}),e.jsxs("div",{className:"font-mono text-[11px] text-slate-400",children:["v",j]})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-5",children:[e.jsx("a",{href:"/ui/",className:"hover:text-slate-900",children:t(s.footer.console)}),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:t(s.footer.changelog)})]})]})})]})}const I=document.getElementById("landing-root");if(!I)throw new Error("Root element #landing-root not found");U.createRoot(I).render(e.jsx(B.StrictMode,{children:e.jsx(le,{})}));
@@ -0,0 +1 @@
1
+ const o="0.8.14",s={version:o};export{s as p};
@@ -1 +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-CKvMKvrn.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
+ import{r as i,j as o}from"./vendor-z22RpOY0.js";import{l as n,m,n as p,o as a}from"./radix-mHySgtou.js";import{c as l}from"./global-B-NXh5qD.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-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};
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-z22RpOY0.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 +1 @@
1
- import{j as a,$ as s}from"./vendor-LWJeAdU1.js";import{c as o}from"./global-CKvMKvrn.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
+ import{j as a,$ as s}from"./vendor-z22RpOY0.js";import{c as o}from"./global-B-NXh5qD.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,4 +1,4 @@
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.
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-z22RpOY0.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