@georgedong32/ccs 7.67.1 → 8.0.0

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 (1890) hide show
  1. package/.claude/commands/opsx/apply.md +152 -0
  2. package/.claude/commands/opsx/archive.md +157 -0
  3. package/.claude/commands/opsx/continue.md +114 -0
  4. package/.claude/commands/opsx/explore.md +173 -0
  5. package/.claude/commands/opsx/ff.md +97 -0
  6. package/.claude/commands/opsx/new.md +69 -0
  7. package/.claude/commands/opsx/propose.md +106 -0
  8. package/.claude/commands/opsx/sync.md +134 -0
  9. package/.claude/commands/opsx/verify.md +164 -0
  10. package/.claude/settings.local.json +47 -1
  11. package/README.md +49 -4
  12. package/config/base-claude.settings.json +1 -1
  13. package/config/base-codebuddy.settings.json +10 -0
  14. package/config/base-codex.settings.json +4 -4
  15. package/config/base-cursor.settings.json +10 -0
  16. package/config/base-gitlab.settings.json +10 -0
  17. package/config/base-kilo.settings.json +10 -0
  18. package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
  19. package/dist/api/services/cliproxy-profile-bridge.js +9 -10
  20. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  21. package/dist/api/services/index.d.ts +1 -0
  22. package/dist/api/services/index.d.ts.map +1 -1
  23. package/dist/api/services/index.js +3 -1
  24. package/dist/api/services/index.js.map +1 -1
  25. package/dist/api/services/local-runtime-readiness.d.ts +14 -0
  26. package/dist/api/services/local-runtime-readiness.d.ts.map +1 -0
  27. package/dist/api/services/local-runtime-readiness.js +89 -0
  28. package/dist/api/services/local-runtime-readiness.js.map +1 -0
  29. package/dist/api/services/openrouter-catalog.js +2 -2
  30. package/dist/api/services/openrouter-catalog.js.map +1 -1
  31. package/dist/api/services/profile-lifecycle-service.d.ts.map +1 -1
  32. package/dist/api/services/profile-lifecycle-service.js +6 -6
  33. package/dist/api/services/profile-lifecycle-service.js.map +1 -1
  34. package/dist/api/services/profile-lifecycle-validation.js +1 -1
  35. package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
  36. package/dist/api/services/profile-reader.d.ts.map +1 -1
  37. package/dist/api/services/profile-reader.js +14 -15
  38. package/dist/api/services/profile-reader.js.map +1 -1
  39. package/dist/api/services/profile-writer.d.ts +1 -1
  40. package/dist/api/services/profile-writer.d.ts.map +1 -1
  41. package/dist/api/services/profile-writer.js +25 -19
  42. package/dist/api/services/profile-writer.js.map +1 -1
  43. package/dist/auth/account-profile-diagnostics.d.ts +21 -0
  44. package/dist/auth/account-profile-diagnostics.d.ts.map +1 -0
  45. package/dist/auth/account-profile-diagnostics.js +130 -0
  46. package/dist/auth/account-profile-diagnostics.js.map +1 -0
  47. package/dist/auth/auth-commands.d.ts +2 -1
  48. package/dist/auth/auth-commands.d.ts.map +1 -1
  49. package/dist/auth/auth-commands.js +30 -12
  50. package/dist/auth/auth-commands.js.map +1 -1
  51. package/dist/auth/commands/backup-command.d.ts.map +1 -1
  52. package/dist/auth/commands/backup-command.js +7 -2
  53. package/dist/auth/commands/backup-command.js.map +1 -1
  54. package/dist/auth/commands/create-command-env.d.ts +1 -0
  55. package/dist/auth/commands/create-command-env.d.ts.map +1 -1
  56. package/dist/auth/commands/create-command.d.ts.map +1 -1
  57. package/dist/auth/commands/create-command.js +23 -19
  58. package/dist/auth/commands/create-command.js.map +1 -1
  59. package/dist/auth/commands/default-command.d.ts +1 -1
  60. package/dist/auth/commands/default-command.d.ts.map +1 -1
  61. package/dist/auth/commands/default-command.js +13 -5
  62. package/dist/auth/commands/default-command.js.map +1 -1
  63. package/dist/auth/commands/index.d.ts +1 -0
  64. package/dist/auth/commands/index.d.ts.map +1 -1
  65. package/dist/auth/commands/index.js +3 -1
  66. package/dist/auth/commands/index.js.map +1 -1
  67. package/dist/auth/commands/list-command.d.ts.map +1 -1
  68. package/dist/auth/commands/list-command.js +16 -3
  69. package/dist/auth/commands/list-command.js.map +1 -1
  70. package/dist/auth/commands/remove-command.d.ts.map +1 -1
  71. package/dist/auth/commands/remove-command.js +7 -3
  72. package/dist/auth/commands/remove-command.js.map +1 -1
  73. package/dist/auth/commands/resources-command.d.ts +3 -0
  74. package/dist/auth/commands/resources-command.d.ts.map +1 -0
  75. package/dist/auth/commands/resources-command.js +115 -0
  76. package/dist/auth/commands/resources-command.js.map +1 -0
  77. package/dist/auth/commands/show-command.d.ts.map +1 -1
  78. package/dist/auth/commands/show-command.js +54 -3
  79. package/dist/auth/commands/show-command.js.map +1 -1
  80. package/dist/auth/commands/types.d.ts +31 -1
  81. package/dist/auth/commands/types.d.ts.map +1 -1
  82. package/dist/auth/commands/types.js +41 -2
  83. package/dist/auth/commands/types.js.map +1 -1
  84. package/dist/auth/profile-continuity-inheritance.d.ts.map +1 -1
  85. package/dist/auth/profile-continuity-inheritance.js +6 -5
  86. package/dist/auth/profile-continuity-inheritance.js.map +1 -1
  87. package/dist/auth/profile-detector.d.ts +2 -3
  88. package/dist/auth/profile-detector.d.ts.map +1 -1
  89. package/dist/auth/profile-detector.js +25 -25
  90. package/dist/auth/profile-detector.js.map +1 -1
  91. package/dist/auth/profile-registry.d.ts +2 -0
  92. package/dist/auth/profile-registry.d.ts.map +1 -1
  93. package/dist/auth/profile-registry.js +29 -17
  94. package/dist/auth/profile-registry.js.map +1 -1
  95. package/dist/auth/resume-lane-diagnostics.d.ts.map +1 -1
  96. package/dist/auth/resume-lane-diagnostics.js +2 -2
  97. package/dist/auth/resume-lane-diagnostics.js.map +1 -1
  98. package/dist/auth/shared-resource-policy.d.ts +20 -0
  99. package/dist/auth/shared-resource-policy.d.ts.map +1 -0
  100. package/dist/auth/shared-resource-policy.js +69 -0
  101. package/dist/auth/shared-resource-policy.js.map +1 -0
  102. package/dist/bin/ccsxp-runtime.d.ts +9 -0
  103. package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
  104. package/dist/bin/ccsxp-runtime.js +62 -3
  105. package/dist/bin/ccsxp-runtime.js.map +1 -1
  106. package/dist/ccs.js +65 -1024
  107. package/dist/ccs.js.map +1 -1
  108. package/dist/channels/official-channels-ids.d.ts +21 -0
  109. package/dist/channels/official-channels-ids.d.ts.map +1 -0
  110. package/dist/channels/official-channels-ids.js +46 -0
  111. package/dist/channels/official-channels-ids.js.map +1 -0
  112. package/dist/channels/official-channels-runtime.d.ts +3 -5
  113. package/dist/channels/official-channels-runtime.d.ts.map +1 -1
  114. package/dist/channels/official-channels-runtime.js +25 -29
  115. package/dist/channels/official-channels-runtime.js.map +1 -1
  116. package/dist/channels/official-channels-store.d.ts +1 -0
  117. package/dist/channels/official-channels-store.d.ts.map +1 -1
  118. package/dist/channels/official-channels-store.js +5 -6
  119. package/dist/channels/official-channels-store.js.map +1 -1
  120. package/dist/cliproxy/accounts/account-manager.d.ts +16 -0
  121. package/dist/cliproxy/accounts/account-manager.d.ts.map +1 -0
  122. package/dist/cliproxy/accounts/account-manager.js +51 -0
  123. package/dist/cliproxy/accounts/account-manager.js.map +1 -0
  124. package/dist/cliproxy/accounts/account-safety.d.ts +103 -0
  125. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -0
  126. package/dist/cliproxy/accounts/account-safety.js +614 -0
  127. package/dist/cliproxy/accounts/account-safety.js.map +1 -0
  128. package/dist/cliproxy/accounts/account-stats-key.d.ts.map +1 -0
  129. package/dist/cliproxy/accounts/account-stats-key.js.map +1 -0
  130. package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -1
  131. package/dist/cliproxy/accounts/email-account-identity.js +22 -2
  132. package/dist/cliproxy/accounts/email-account-identity.js.map +1 -1
  133. package/dist/cliproxy/accounts/registry.js +1 -1
  134. package/dist/cliproxy/accounts/registry.js.map +1 -1
  135. package/dist/cliproxy/accounts/token-file-ops.js +1 -1
  136. package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
  137. package/dist/cliproxy/accounts/types.d.ts +1 -1
  138. package/dist/cliproxy/accounts/types.d.ts.map +1 -1
  139. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts +38 -0
  140. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -0
  141. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +131 -0
  142. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -0
  143. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +71 -0
  144. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -0
  145. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +565 -0
  146. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -0
  147. package/dist/cliproxy/ai-providers/config-store.js +3 -3
  148. package/dist/cliproxy/ai-providers/config-store.js.map +1 -1
  149. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts +7 -0
  150. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts.map +1 -0
  151. package/dist/cliproxy/ai-providers/managed-model-prefixes.js +116 -0
  152. package/dist/cliproxy/ai-providers/managed-model-prefixes.js.map +1 -0
  153. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +108 -0
  154. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -0
  155. package/dist/cliproxy/ai-providers/model-id-normalizer.js +293 -0
  156. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -0
  157. package/dist/cliproxy/ai-providers/openai-compat-manager.d.ts.map +1 -0
  158. package/dist/cliproxy/ai-providers/openai-compat-manager.js +203 -0
  159. package/dist/cliproxy/ai-providers/openai-compat-manager.js.map +1 -0
  160. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -0
  161. package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -0
  162. package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
  163. package/dist/cliproxy/ai-providers/service.js +10 -3
  164. package/dist/cliproxy/ai-providers/service.js.map +1 -1
  165. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts +108 -0
  166. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts.map +1 -0
  167. package/dist/cliproxy/ai-providers/tool-name-mapper.js +163 -0
  168. package/dist/cliproxy/ai-providers/tool-name-mapper.js.map +1 -0
  169. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts +66 -0
  170. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts.map +1 -0
  171. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js +138 -0
  172. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js.map +1 -0
  173. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -0
  174. package/dist/cliproxy/auth/antigravity-responsibility.js +171 -0
  175. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -0
  176. package/dist/cliproxy/auth/auth-handler.d.ts +31 -0
  177. package/dist/cliproxy/auth/auth-handler.d.ts.map +1 -0
  178. package/dist/cliproxy/auth/auth-handler.js +60 -0
  179. package/dist/cliproxy/auth/auth-handler.js.map +1 -0
  180. package/dist/cliproxy/auth/auth-session-manager.d.ts +51 -0
  181. package/dist/cliproxy/auth/auth-session-manager.d.ts.map +1 -0
  182. package/dist/cliproxy/auth/auth-session-manager.js +141 -0
  183. package/dist/cliproxy/auth/auth-session-manager.js.map +1 -0
  184. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -0
  185. package/dist/cliproxy/auth/auth-token-manager.js +184 -0
  186. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -0
  187. package/dist/cliproxy/auth/auth-types.d.ts +40 -7
  188. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  189. package/dist/cliproxy/auth/auth-types.js +90 -10
  190. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  191. package/dist/cliproxy/auth/auth-utils.d.ts +17 -0
  192. package/dist/cliproxy/auth/auth-utils.d.ts.map +1 -0
  193. package/dist/cliproxy/auth/auth-utils.js +58 -0
  194. package/dist/cliproxy/auth/auth-utils.js.map +1 -0
  195. package/dist/cliproxy/auth/device-code-handler.d.ts.map +1 -0
  196. package/dist/cliproxy/auth/device-code-handler.js.map +1 -0
  197. package/dist/cliproxy/auth/gitlab-pat-response.d.ts +9 -0
  198. package/dist/cliproxy/auth/gitlab-pat-response.d.ts.map +1 -0
  199. package/dist/cliproxy/auth/gitlab-pat-response.js +64 -0
  200. package/dist/cliproxy/auth/gitlab-pat-response.js.map +1 -0
  201. package/dist/cliproxy/auth/kiro-import.js +2 -2
  202. package/dist/cliproxy/auth/kiro-import.js.map +1 -1
  203. package/dist/cliproxy/auth/oauth-handler.d.ts +50 -4
  204. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  205. package/dist/cliproxy/auth/oauth-handler.js +443 -51
  206. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  207. package/dist/cliproxy/auth/oauth-process.d.ts +27 -2
  208. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  209. package/dist/cliproxy/auth/oauth-process.js +409 -53
  210. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  211. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts +22 -0
  212. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts.map +1 -0
  213. package/dist/cliproxy/auth/oauth-start-failure-guidance.js +82 -0
  214. package/dist/cliproxy/auth/oauth-start-failure-guidance.js.map +1 -0
  215. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts +24 -0
  216. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts.map +1 -0
  217. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js +159 -0
  218. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js.map +1 -0
  219. package/dist/cliproxy/auth/oauth-trace/index.d.ts +4 -0
  220. package/dist/cliproxy/auth/oauth-trace/index.d.ts.map +1 -0
  221. package/dist/cliproxy/auth/oauth-trace/index.js +14 -0
  222. package/dist/cliproxy/auth/oauth-trace/index.js.map +1 -0
  223. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts +22 -0
  224. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -0
  225. package/dist/cliproxy/auth/oauth-trace/redactor.js +120 -0
  226. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -0
  227. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts +18 -0
  228. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts.map +1 -0
  229. package/dist/cliproxy/auth/oauth-trace/sink-file.js +90 -0
  230. package/dist/cliproxy/auth/oauth-trace/sink-file.js.map +1 -0
  231. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts +13 -0
  232. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts.map +1 -0
  233. package/dist/cliproxy/auth/oauth-trace/sink-memory.js +31 -0
  234. package/dist/cliproxy/auth/oauth-trace/sink-memory.js.map +1 -0
  235. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts +11 -0
  236. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts.map +1 -0
  237. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js +47 -0
  238. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js.map +1 -0
  239. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts +51 -0
  240. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts.map +1 -0
  241. package/dist/cliproxy/auth/oauth-trace/trace-events.js +44 -0
  242. package/dist/cliproxy/auth/oauth-trace/trace-events.js.map +1 -0
  243. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts +34 -0
  244. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts.map +1 -0
  245. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js +83 -0
  246. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js.map +1 -0
  247. package/dist/cliproxy/auth/project-selection-handler.d.ts.map +1 -0
  248. package/dist/cliproxy/auth/project-selection-handler.js.map +1 -0
  249. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts +17 -0
  250. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts.map +1 -0
  251. package/dist/cliproxy/auth/provider-entitlement-evidence.js +55 -0
  252. package/dist/cliproxy/auth/provider-entitlement-evidence.js.map +1 -0
  253. package/dist/cliproxy/auth/provider-entitlement-types.d.ts +16 -0
  254. package/dist/cliproxy/auth/provider-entitlement-types.d.ts.map +1 -0
  255. package/dist/cliproxy/auth/provider-entitlement-types.js +3 -0
  256. package/dist/cliproxy/auth/provider-entitlement-types.js.map +1 -0
  257. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +1 -2
  258. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  259. package/dist/cliproxy/auth/provider-refreshers/index.js +7 -26
  260. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  261. package/dist/cliproxy/auth/token-expiry-checker.js +1 -1
  262. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  263. package/dist/cliproxy/auth/token-manager.d.ts +11 -2
  264. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  265. package/dist/cliproxy/auth/token-manager.js +117 -68
  266. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  267. package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -1
  268. package/dist/cliproxy/auth/token-refresh-config.js +2 -2
  269. package/dist/cliproxy/auth/token-refresh-config.js.map +1 -1
  270. package/dist/cliproxy/binary/extractor.js +1 -1
  271. package/dist/cliproxy/binary/extractor.js.map +1 -1
  272. package/dist/cliproxy/binary/installer.d.ts +1 -1
  273. package/dist/cliproxy/binary/installer.d.ts.map +1 -1
  274. package/dist/cliproxy/binary/installer.js +1 -1
  275. package/dist/cliproxy/binary/installer.js.map +1 -1
  276. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  277. package/dist/cliproxy/binary/lifecycle.js +18 -6
  278. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  279. package/dist/cliproxy/binary/platform-detector.d.ts +106 -0
  280. package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -0
  281. package/dist/cliproxy/binary/platform-detector.js +191 -0
  282. package/dist/cliproxy/binary/platform-detector.js.map +1 -0
  283. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
  284. package/dist/cliproxy/binary/tar-extractor.js +1 -1
  285. package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
  286. package/dist/cliproxy/binary/types.d.ts +3 -3
  287. package/dist/cliproxy/binary/types.d.ts.map +1 -1
  288. package/dist/cliproxy/binary/types.js +3 -3
  289. package/dist/cliproxy/binary/types.js.map +1 -1
  290. package/dist/cliproxy/binary/version-cache.d.ts +10 -0
  291. package/dist/cliproxy/binary/version-cache.d.ts.map +1 -1
  292. package/dist/cliproxy/binary/version-cache.js +31 -9
  293. package/dist/cliproxy/binary/version-cache.js.map +1 -1
  294. package/dist/cliproxy/binary/version-checker.d.ts +14 -3
  295. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -1
  296. package/dist/cliproxy/binary/version-checker.js +66 -37
  297. package/dist/cliproxy/binary/version-checker.js.map +1 -1
  298. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
  299. package/dist/cliproxy/binary/zip-extractor.js +1 -1
  300. package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
  301. package/dist/cliproxy/binary-manager.d.ts +22 -1
  302. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  303. package/dist/cliproxy/binary-manager.js +126 -19
  304. package/dist/cliproxy/binary-manager.js.map +1 -1
  305. package/dist/cliproxy/config/base-config-loader.d.ts +43 -0
  306. package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -0
  307. package/dist/cliproxy/config/base-config-loader.js +123 -0
  308. package/dist/cliproxy/config/base-config-loader.js.map +1 -0
  309. package/dist/cliproxy/config/composite-validator.d.ts.map +1 -0
  310. package/dist/cliproxy/config/composite-validator.js +94 -0
  311. package/dist/cliproxy/config/composite-validator.js.map +1 -0
  312. package/dist/cliproxy/config/config-generator.d.ts +15 -0
  313. package/dist/cliproxy/config/config-generator.d.ts.map +1 -0
  314. package/dist/cliproxy/config/config-generator.js +32 -0
  315. package/dist/cliproxy/config/config-generator.js.map +1 -0
  316. package/dist/cliproxy/config/env-builder.d.ts +6 -0
  317. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  318. package/dist/cliproxy/config/env-builder.js +60 -65
  319. package/dist/cliproxy/config/env-builder.js.map +1 -1
  320. package/dist/cliproxy/config/extended-context-config.d.ts +1 -0
  321. package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
  322. package/dist/cliproxy/config/generator.d.ts +14 -3
  323. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  324. package/dist/cliproxy/config/generator.js +96 -19
  325. package/dist/cliproxy/config/generator.js.map +1 -1
  326. package/dist/cliproxy/config/model-config.d.ts +31 -0
  327. package/dist/cliproxy/config/model-config.d.ts.map +1 -0
  328. package/dist/cliproxy/config/model-config.js +264 -0
  329. package/dist/cliproxy/config/model-config.js.map +1 -0
  330. package/dist/cliproxy/config/path-resolver.d.ts +21 -0
  331. package/dist/cliproxy/config/path-resolver.d.ts.map +1 -1
  332. package/dist/cliproxy/config/path-resolver.js +45 -5
  333. package/dist/cliproxy/config/path-resolver.js.map +1 -1
  334. package/dist/cliproxy/config/port-manager.d.ts +6 -0
  335. package/dist/cliproxy/config/port-manager.d.ts.map +1 -1
  336. package/dist/cliproxy/config/port-manager.js +19 -1
  337. package/dist/cliproxy/config/port-manager.js.map +1 -1
  338. package/dist/cliproxy/config/thinking-config.d.ts +1 -0
  339. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  340. package/dist/cliproxy/config/thinking-config.js +21 -12
  341. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  342. package/dist/cliproxy/executor/account-resolution.d.ts +52 -0
  343. package/dist/cliproxy/executor/account-resolution.d.ts.map +1 -0
  344. package/dist/cliproxy/executor/account-resolution.js +154 -0
  345. package/dist/cliproxy/executor/account-resolution.js.map +1 -0
  346. package/dist/cliproxy/executor/arg-parser.d.ts +96 -0
  347. package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -0
  348. package/dist/cliproxy/executor/arg-parser.js +529 -0
  349. package/dist/cliproxy/executor/arg-parser.js.map +1 -0
  350. package/dist/cliproxy/executor/auth-coordinator.d.ts +96 -0
  351. package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -0
  352. package/dist/cliproxy/executor/auth-coordinator.js +342 -0
  353. package/dist/cliproxy/executor/auth-coordinator.js.map +1 -0
  354. package/dist/cliproxy/executor/browser-launch-setup.d.ts +36 -0
  355. package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -0
  356. package/dist/cliproxy/executor/browser-launch-setup.js +80 -0
  357. package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -0
  358. package/dist/cliproxy/executor/claude-launcher.d.ts +55 -0
  359. package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -0
  360. package/dist/cliproxy/executor/claude-launcher.js +125 -0
  361. package/dist/cliproxy/executor/claude-launcher.js.map +1 -0
  362. package/dist/cliproxy/executor/cliproxy-executor.d.ts +16 -0
  363. package/dist/cliproxy/executor/cliproxy-executor.d.ts.map +1 -0
  364. package/dist/cliproxy/executor/cliproxy-executor.js +27 -0
  365. package/dist/cliproxy/executor/cliproxy-executor.js.map +1 -0
  366. package/dist/cliproxy/executor/env-resolver.d.ts +7 -5
  367. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  368. package/dist/cliproxy/executor/env-resolver.js +7 -6
  369. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  370. package/dist/cliproxy/executor/https-tunnel-policy.d.ts +17 -0
  371. package/dist/cliproxy/executor/https-tunnel-policy.d.ts.map +1 -0
  372. package/dist/cliproxy/executor/https-tunnel-policy.js +20 -0
  373. package/dist/cliproxy/executor/https-tunnel-policy.js.map +1 -0
  374. package/dist/cliproxy/executor/index.d.ts +6 -0
  375. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  376. package/dist/cliproxy/executor/index.js +144 -693
  377. package/dist/cliproxy/executor/index.js.map +1 -1
  378. package/dist/cliproxy/executor/lifecycle-manager.js +1 -1
  379. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  380. package/dist/cliproxy/executor/model-warnings.d.ts +22 -0
  381. package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -0
  382. package/dist/cliproxy/executor/model-warnings.js +67 -0
  383. package/dist/cliproxy/executor/model-warnings.js.map +1 -0
  384. package/dist/cliproxy/executor/proxy-chain-builder.d.ts +71 -0
  385. package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -0
  386. package/dist/cliproxy/executor/proxy-chain-builder.js +143 -0
  387. package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -0
  388. package/dist/cliproxy/executor/proxy-resolver.d.ts +44 -0
  389. package/dist/cliproxy/executor/proxy-resolver.d.ts.map +1 -0
  390. package/dist/cliproxy/executor/proxy-resolver.js +173 -0
  391. package/dist/cliproxy/executor/proxy-resolver.js.map +1 -0
  392. package/dist/cliproxy/executor/retry-handler.js +4 -4
  393. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  394. package/dist/cliproxy/executor/session-bridge.d.ts +16 -1
  395. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  396. package/dist/cliproxy/executor/session-bridge.js +92 -57
  397. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  398. package/dist/cliproxy/index.d.ts +32 -32
  399. package/dist/cliproxy/index.d.ts.map +1 -1
  400. package/dist/cliproxy/index.js +20 -20
  401. package/dist/cliproxy/index.js.map +1 -1
  402. package/dist/cliproxy/management/management-api-client.d.ts +90 -0
  403. package/dist/cliproxy/management/management-api-client.d.ts.map +1 -0
  404. package/dist/cliproxy/management/management-api-client.js +396 -0
  405. package/dist/cliproxy/management/management-api-client.js.map +1 -0
  406. package/dist/cliproxy/management/management-api-types.d.ts.map +1 -0
  407. package/dist/cliproxy/management/management-api-types.js.map +1 -0
  408. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -0
  409. package/dist/cliproxy/management/remote-token-uploader.js +178 -0
  410. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -0
  411. package/dist/cliproxy/model-catalog.d.ts +3 -1
  412. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  413. package/dist/cliproxy/model-catalog.js +60 -59
  414. package/dist/cliproxy/model-catalog.js.map +1 -1
  415. package/dist/cliproxy/provider-capabilities.d.ts +3 -0
  416. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
  417. package/dist/cliproxy/provider-capabilities.js +63 -3
  418. package/dist/cliproxy/provider-capabilities.js.map +1 -1
  419. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -0
  420. package/dist/cliproxy/proxy/https-tunnel-proxy.js +229 -0
  421. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -0
  422. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts +87 -0
  423. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts.map +1 -0
  424. package/dist/cliproxy/proxy/proxy-config-resolver.js +254 -0
  425. package/dist/cliproxy/proxy/proxy-config-resolver.js.map +1 -0
  426. package/dist/cliproxy/proxy/proxy-detector.d.ts +72 -0
  427. package/dist/cliproxy/proxy/proxy-detector.d.ts.map +1 -0
  428. package/dist/cliproxy/proxy/proxy-detector.js +200 -0
  429. package/dist/cliproxy/proxy/proxy-detector.js.map +1 -0
  430. package/dist/cliproxy/proxy/proxy-target-resolver.d.ts.map +1 -0
  431. package/dist/cliproxy/proxy/proxy-target-resolver.js +108 -0
  432. package/dist/cliproxy/proxy/proxy-target-resolver.js.map +1 -0
  433. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +82 -0
  434. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -0
  435. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +668 -0
  436. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -0
  437. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.d.ts.map +1 -0
  438. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js +122 -0
  439. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js.map +1 -0
  440. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts +14 -0
  441. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -0
  442. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js +322 -0
  443. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -0
  444. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +21 -0
  445. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -0
  446. package/dist/cliproxy/quota/quota-fetcher-claude.js +292 -0
  447. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -0
  448. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts +84 -0
  449. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -0
  450. package/dist/cliproxy/quota/quota-fetcher-codex.js +651 -0
  451. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -0
  452. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -0
  453. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +828 -0
  454. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -0
  455. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -0
  456. package/dist/cliproxy/quota/quota-fetcher-ghcp.js +218 -0
  457. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -0
  458. package/dist/cliproxy/quota/quota-fetcher.d.ts +117 -0
  459. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -0
  460. package/dist/cliproxy/quota/quota-fetcher.js +771 -0
  461. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -0
  462. package/dist/cliproxy/quota/quota-manager.d.ts +109 -0
  463. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -0
  464. package/dist/cliproxy/quota/quota-manager.js +672 -0
  465. package/dist/cliproxy/quota/quota-manager.js.map +1 -0
  466. package/dist/cliproxy/quota/quota-response-cache.d.ts.map +1 -0
  467. package/dist/cliproxy/quota/quota-response-cache.js.map +1 -0
  468. package/dist/cliproxy/quota/quota-types.d.ts +262 -0
  469. package/dist/cliproxy/quota/quota-types.d.ts.map +1 -0
  470. package/dist/cliproxy/quota/quota-types.js.map +1 -0
  471. package/dist/cliproxy/routing/routing-strategy-http.d.ts +8 -0
  472. package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -0
  473. package/dist/cliproxy/routing/routing-strategy-http.js +120 -0
  474. package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -0
  475. package/dist/cliproxy/routing/routing-strategy.d.ts +41 -0
  476. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -0
  477. package/dist/cliproxy/routing/routing-strategy.js +272 -0
  478. package/dist/cliproxy/routing/routing-strategy.js.map +1 -0
  479. package/dist/cliproxy/service-manager.d.ts +17 -1
  480. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  481. package/dist/cliproxy/service-manager.js +19 -11
  482. package/dist/cliproxy/service-manager.js.map +1 -1
  483. package/dist/cliproxy/services/binary-service.d.ts.map +1 -1
  484. package/dist/cliproxy/services/binary-service.js +16 -9
  485. package/dist/cliproxy/services/binary-service.js.map +1 -1
  486. package/dist/cliproxy/services/catalog-cache.d.ts +47 -0
  487. package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -0
  488. package/dist/cliproxy/services/catalog-cache.js +347 -0
  489. package/dist/cliproxy/services/catalog-cache.js.map +1 -0
  490. package/dist/cliproxy/services/catalog-routing.d.ts +12 -0
  491. package/dist/cliproxy/services/catalog-routing.d.ts.map +1 -0
  492. package/dist/cliproxy/services/catalog-routing.js +19 -0
  493. package/dist/cliproxy/services/catalog-routing.js.map +1 -0
  494. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts +4 -0
  495. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -0
  496. package/dist/cliproxy/services/oauth-usage-log-transformer.js +162 -0
  497. package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -0
  498. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +1 -0
  499. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
  500. package/dist/cliproxy/services/proxy-lifecycle-service.js +6 -6
  501. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  502. package/dist/cliproxy/services/remote-auth-fetcher.d.ts +30 -0
  503. package/dist/cliproxy/services/remote-auth-fetcher.d.ts.map +1 -0
  504. package/dist/cliproxy/services/remote-auth-fetcher.js +177 -0
  505. package/dist/cliproxy/services/remote-auth-fetcher.js.map +1 -0
  506. package/dist/cliproxy/services/remote-proxy-client.d.ts.map +1 -0
  507. package/dist/cliproxy/services/remote-proxy-client.js +281 -0
  508. package/dist/cliproxy/services/remote-proxy-client.js.map +1 -0
  509. package/dist/cliproxy/services/startup-lock.d.ts.map +1 -0
  510. package/dist/cliproxy/services/startup-lock.js +220 -0
  511. package/dist/cliproxy/services/startup-lock.js.map +1 -0
  512. package/dist/cliproxy/services/stats-fetcher.d.ts +162 -0
  513. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -0
  514. package/dist/cliproxy/services/stats-fetcher.js +354 -0
  515. package/dist/cliproxy/services/stats-fetcher.js.map +1 -0
  516. package/dist/cliproxy/services/stats-transformer.d.ts.map +1 -0
  517. package/dist/cliproxy/services/stats-transformer.js +224 -0
  518. package/dist/cliproxy/services/stats-transformer.js.map +1 -0
  519. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +12 -0
  520. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -0
  521. package/dist/cliproxy/services/usage-compatibility-transformer.js +458 -0
  522. package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -0
  523. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  524. package/dist/cliproxy/services/variant-config-adapter.js +11 -11
  525. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  526. package/dist/cliproxy/services/variant-service.d.ts +2 -1
  527. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  528. package/dist/cliproxy/services/variant-service.js +21 -24
  529. package/dist/cliproxy/services/variant-service.js.map +1 -1
  530. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  531. package/dist/cliproxy/services/variant-settings.js +53 -42
  532. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  533. package/dist/cliproxy/session-tracker.js +2 -2
  534. package/dist/cliproxy/session-tracker.js.map +1 -1
  535. package/dist/cliproxy/sync/auto-sync-watcher.js +3 -4
  536. package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -1
  537. package/dist/cliproxy/sync/local-config-sync.js +1 -1
  538. package/dist/cliproxy/sync/local-config-sync.js.map +1 -1
  539. package/dist/cliproxy/sync/profile-mapper.d.ts +1 -1
  540. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
  541. package/dist/cliproxy/sync/profile-mapper.js +23 -2
  542. package/dist/cliproxy/sync/profile-mapper.js.map +1 -1
  543. package/dist/cliproxy/thinking-validator.d.ts +6 -1
  544. package/dist/cliproxy/thinking-validator.d.ts.map +1 -1
  545. package/dist/cliproxy/thinking-validator.js +22 -2
  546. package/dist/cliproxy/thinking-validator.js.map +1 -1
  547. package/dist/cliproxy/types/binary-types.d.ts +48 -0
  548. package/dist/cliproxy/types/binary-types.d.ts.map +1 -0
  549. package/dist/cliproxy/types/binary-types.js +6 -0
  550. package/dist/cliproxy/types/binary-types.js.map +1 -0
  551. package/dist/cliproxy/types/config-types.d.ts +89 -0
  552. package/dist/cliproxy/types/config-types.d.ts.map +1 -0
  553. package/dist/cliproxy/types/config-types.js +6 -0
  554. package/dist/cliproxy/types/config-types.js.map +1 -0
  555. package/dist/cliproxy/types/index.d.ts +5 -0
  556. package/dist/cliproxy/types/index.d.ts.map +1 -0
  557. package/dist/cliproxy/types/index.js +21 -0
  558. package/dist/cliproxy/types/index.js.map +1 -0
  559. package/dist/cliproxy/types/platform-types.d.ts +17 -0
  560. package/dist/cliproxy/types/platform-types.d.ts.map +1 -0
  561. package/dist/cliproxy/types/platform-types.js +6 -0
  562. package/dist/cliproxy/types/platform-types.js.map +1 -0
  563. package/dist/cliproxy/types/provider-types.d.ts +27 -0
  564. package/dist/cliproxy/types/provider-types.d.ts.map +1 -0
  565. package/dist/cliproxy/types/provider-types.js +16 -0
  566. package/dist/cliproxy/types/provider-types.js.map +1 -0
  567. package/dist/cliproxy/types.d.ts +4 -255
  568. package/dist/cliproxy/types.d.ts.map +1 -1
  569. package/dist/cliproxy/types.js +18 -7
  570. package/dist/cliproxy/types.js.map +1 -1
  571. package/dist/commands/api-command/create-command.d.ts +3 -0
  572. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  573. package/dist/commands/api-command/create-command.js +24 -7
  574. package/dist/commands/api-command/create-command.js.map +1 -1
  575. package/dist/commands/api-command/help.d.ts.map +1 -1
  576. package/dist/commands/api-command/help.js +5 -0
  577. package/dist/commands/api-command/help.js.map +1 -1
  578. package/dist/commands/api-command/shared.d.ts +2 -1
  579. package/dist/commands/api-command/shared.d.ts.map +1 -1
  580. package/dist/commands/api-command/shared.js +9 -0
  581. package/dist/commands/api-command/shared.js.map +1 -1
  582. package/dist/commands/browser-command.d.ts +5 -0
  583. package/dist/commands/browser-command.d.ts.map +1 -0
  584. package/dist/commands/browser-command.js +349 -0
  585. package/dist/commands/browser-command.js.map +1 -0
  586. package/dist/commands/cleanup-command.d.ts +1 -1
  587. package/dist/commands/cleanup-command.d.ts.map +1 -1
  588. package/dist/commands/cleanup-command.js +58 -35
  589. package/dist/commands/cleanup-command.js.map +1 -1
  590. package/dist/commands/cliproxy/auth-subcommand.js +1 -1
  591. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  592. package/dist/commands/cliproxy/catalog-subcommand.d.ts +6 -0
  593. package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
  594. package/dist/commands/cliproxy/catalog-subcommand.js +112 -46
  595. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  596. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  597. package/dist/commands/cliproxy/help-subcommand.js +15 -4
  598. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  599. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  600. package/dist/commands/cliproxy/index.js +35 -7
  601. package/dist/commands/cliproxy/index.js.map +1 -1
  602. package/dist/commands/cliproxy/install-subcommand.js +2 -2
  603. package/dist/commands/cliproxy/install-subcommand.js.map +1 -1
  604. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +6 -6
  605. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  606. package/dist/commands/cliproxy/quota-subcommand.d.ts +3 -1
  607. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  608. package/dist/commands/cliproxy/quota-subcommand.js +95 -32
  609. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  610. package/dist/commands/cliproxy/routing-subcommand.d.ts +7 -0
  611. package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -0
  612. package/dist/commands/cliproxy/routing-subcommand.js +193 -0
  613. package/dist/commands/cliproxy/routing-subcommand.js.map +1 -0
  614. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  615. package/dist/commands/cliproxy/variant-subcommand.js +86 -13
  616. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  617. package/dist/commands/command-catalog.d.ts +6 -5
  618. package/dist/commands/command-catalog.d.ts.map +1 -1
  619. package/dist/commands/command-catalog.js +45 -8
  620. package/dist/commands/command-catalog.js.map +1 -1
  621. package/dist/commands/completion-backend.d.ts.map +1 -1
  622. package/dist/commands/completion-backend.js +62 -1
  623. package/dist/commands/completion-backend.js.map +1 -1
  624. package/dist/commands/config-auth/disable-command.d.ts.map +1 -1
  625. package/dist/commands/config-auth/disable-command.js +3 -3
  626. package/dist/commands/config-auth/disable-command.js.map +1 -1
  627. package/dist/commands/config-auth/setup-command.d.ts.map +1 -1
  628. package/dist/commands/config-auth/setup-command.js +2 -2
  629. package/dist/commands/config-auth/setup-command.js.map +1 -1
  630. package/dist/commands/config-auth/show-command.js +2 -2
  631. package/dist/commands/config-auth/show-command.js.map +1 -1
  632. package/dist/commands/config-channels-command.d.ts.map +1 -1
  633. package/dist/commands/config-channels-command.js +4 -4
  634. package/dist/commands/config-channels-command.js.map +1 -1
  635. package/dist/commands/config-command-options.d.ts.map +1 -1
  636. package/dist/commands/config-command-options.js +4 -2
  637. package/dist/commands/config-command-options.js.map +1 -1
  638. package/dist/commands/config-command.d.ts +1 -1
  639. package/dist/commands/config-command.d.ts.map +1 -1
  640. package/dist/commands/config-command.js +28 -5
  641. package/dist/commands/config-command.js.map +1 -1
  642. package/dist/commands/config-dashboard-host.d.ts +1 -0
  643. package/dist/commands/config-dashboard-host.d.ts.map +1 -1
  644. package/dist/commands/config-dashboard-host.js +16 -3
  645. package/dist/commands/config-dashboard-host.js.map +1 -1
  646. package/dist/commands/config-image-analysis-command.d.ts.map +1 -1
  647. package/dist/commands/config-image-analysis-command.js +4 -4
  648. package/dist/commands/config-image-analysis-command.js.map +1 -1
  649. package/dist/commands/config-thinking-command.d.ts.map +1 -1
  650. package/dist/commands/config-thinking-command.js +5 -5
  651. package/dist/commands/config-thinking-command.js.map +1 -1
  652. package/dist/commands/copilot-command.d.ts.map +1 -1
  653. package/dist/commands/copilot-command.js +7 -5
  654. package/dist/commands/copilot-command.js.map +1 -1
  655. package/dist/commands/cursor-command-display.d.ts +2 -0
  656. package/dist/commands/cursor-command-display.d.ts.map +1 -1
  657. package/dist/commands/cursor-command-display.js +63 -30
  658. package/dist/commands/cursor-command-display.js.map +1 -1
  659. package/dist/commands/cursor-command.d.ts.map +1 -1
  660. package/dist/commands/cursor-command.js +67 -61
  661. package/dist/commands/cursor-command.js.map +1 -1
  662. package/dist/commands/docker/up-subcommand.js +1 -1
  663. package/dist/commands/docker/up-subcommand.js.map +1 -1
  664. package/dist/commands/doctor-command.d.ts.map +1 -1
  665. package/dist/commands/doctor-command.js +9 -0
  666. package/dist/commands/doctor-command.js.map +1 -1
  667. package/dist/commands/env-command.d.ts.map +1 -1
  668. package/dist/commands/env-command.js +2 -2
  669. package/dist/commands/env-command.js.map +1 -1
  670. package/dist/commands/help-command.d.ts +2 -0
  671. package/dist/commands/help-command.d.ts.map +1 -1
  672. package/dist/commands/help-command.js +126 -5
  673. package/dist/commands/help-command.js.map +1 -1
  674. package/dist/commands/index.d.ts +1 -0
  675. package/dist/commands/index.d.ts.map +1 -1
  676. package/dist/commands/index.js +3 -1
  677. package/dist/commands/index.js.map +1 -1
  678. package/dist/commands/migrate-command.d.ts.map +1 -1
  679. package/dist/commands/migrate-command.js +2 -2
  680. package/dist/commands/migrate-command.js.map +1 -1
  681. package/dist/commands/proxy-command.d.ts +3 -0
  682. package/dist/commands/proxy-command.d.ts.map +1 -0
  683. package/dist/commands/proxy-command.js +237 -0
  684. package/dist/commands/proxy-command.js.map +1 -0
  685. package/dist/commands/root-command-router.d.ts.map +1 -1
  686. package/dist/commands/root-command-router.js +14 -0
  687. package/dist/commands/root-command-router.js.map +1 -1
  688. package/dist/commands/setup-command.d.ts.map +1 -1
  689. package/dist/commands/setup-command.js +6 -7
  690. package/dist/commands/setup-command.js.map +1 -1
  691. package/dist/commands/sync-command.d.ts.map +1 -1
  692. package/dist/commands/sync-command.js +3 -2
  693. package/dist/commands/sync-command.js.map +1 -1
  694. package/dist/commands/tokens-command.d.ts.map +1 -1
  695. package/dist/commands/tokens-command.js +27 -38
  696. package/dist/commands/tokens-command.js.map +1 -1
  697. package/dist/commands/update-command.d.ts +22 -5
  698. package/dist/commands/update-command.d.ts.map +1 -1
  699. package/dist/commands/update-command.js +211 -159
  700. package/dist/commands/update-command.js.map +1 -1
  701. package/dist/commands/version-command.d.ts.map +1 -1
  702. package/dist/commands/version-command.js +2 -1
  703. package/dist/commands/version-command.js.map +1 -1
  704. package/dist/config/config-loader-facade.d.ts +57 -0
  705. package/dist/config/config-loader-facade.d.ts.map +1 -0
  706. package/dist/config/config-loader-facade.js +131 -0
  707. package/dist/config/config-loader-facade.js.map +1 -0
  708. package/dist/config/loader/config-getters.d.ts +121 -0
  709. package/dist/config/loader/config-getters.d.ts.map +1 -0
  710. package/dist/config/loader/config-getters.js +260 -0
  711. package/dist/config/loader/config-getters.js.map +1 -0
  712. package/dist/config/loader/defaults-merger.d.ts +21 -0
  713. package/dist/config/loader/defaults-merger.d.ts.map +1 -0
  714. package/dist/config/loader/defaults-merger.js +278 -0
  715. package/dist/config/loader/defaults-merger.js.map +1 -0
  716. package/dist/config/loader/io-locks.d.ts +76 -0
  717. package/dist/config/loader/io-locks.d.ts.map +1 -0
  718. package/dist/config/loader/io-locks.js +297 -0
  719. package/dist/config/loader/io-locks.js.map +1 -0
  720. package/dist/config/loader/normalizers.d.ts +40 -0
  721. package/dist/config/loader/normalizers.d.ts.map +1 -0
  722. package/dist/config/loader/normalizers.js +172 -0
  723. package/dist/config/loader/normalizers.js.map +1 -0
  724. package/dist/config/loader/yaml-serializer.d.ts +19 -0
  725. package/dist/config/loader/yaml-serializer.d.ts.map +1 -0
  726. package/dist/config/loader/yaml-serializer.js +301 -0
  727. package/dist/config/loader/yaml-serializer.js.map +1 -0
  728. package/dist/config/migration-manager.d.ts.map +1 -1
  729. package/dist/config/migration-manager.js +14 -1
  730. package/dist/config/migration-manager.js.map +1 -1
  731. package/dist/config/reserved-names.d.ts +1 -1
  732. package/dist/config/reserved-names.d.ts.map +1 -1
  733. package/dist/config/reserved-names.js +10 -0
  734. package/dist/config/reserved-names.js.map +1 -1
  735. package/dist/config/schemas/auth.d.ts +99 -0
  736. package/dist/config/schemas/auth.d.ts.map +1 -0
  737. package/dist/config/schemas/auth.js +25 -0
  738. package/dist/config/schemas/auth.js.map +1 -0
  739. package/dist/config/schemas/browser.d.ts +53 -0
  740. package/dist/config/schemas/browser.d.ts.map +1 -0
  741. package/dist/config/schemas/browser.js +27 -0
  742. package/dist/config/schemas/browser.js.map +1 -0
  743. package/dist/config/schemas/channels.d.ts +27 -0
  744. package/dist/config/schemas/channels.d.ts.map +1 -0
  745. package/dist/config/schemas/channels.js +19 -0
  746. package/dist/config/schemas/channels.js.map +1 -0
  747. package/dist/config/schemas/cliproxy.d.ts +142 -0
  748. package/dist/config/schemas/cliproxy.d.ts.map +1 -0
  749. package/dist/config/schemas/cliproxy.js +18 -0
  750. package/dist/config/schemas/cliproxy.js.map +1 -0
  751. package/dist/config/schemas/copilot-cursor.d.ts +75 -0
  752. package/dist/config/schemas/copilot-cursor.d.ts.map +1 -0
  753. package/dist/config/schemas/copilot-cursor.js +36 -0
  754. package/dist/config/schemas/copilot-cursor.js.map +1 -0
  755. package/dist/config/schemas/index.d.ts +28 -0
  756. package/dist/config/schemas/index.d.ts.map +1 -0
  757. package/dist/config/schemas/index.js +51 -0
  758. package/dist/config/schemas/index.js.map +1 -0
  759. package/dist/config/schemas/logging.d.ts +43 -0
  760. package/dist/config/schemas/logging.d.ts.map +1 -0
  761. package/dist/config/schemas/logging.js +23 -0
  762. package/dist/config/schemas/logging.js.map +1 -0
  763. package/dist/config/schemas/providers.d.ts +14 -0
  764. package/dist/config/schemas/providers.d.ts.map +1 -0
  765. package/dist/config/schemas/providers.js +21 -0
  766. package/dist/config/schemas/providers.js.map +1 -0
  767. package/dist/config/schemas/proxy-server.d.ts +141 -0
  768. package/dist/config/schemas/proxy-server.d.ts.map +1 -0
  769. package/dist/config/schemas/proxy-server.js +71 -0
  770. package/dist/config/schemas/proxy-server.js.map +1 -0
  771. package/dist/config/schemas/quota.d.ts +88 -0
  772. package/dist/config/schemas/quota.d.ts.map +1 -0
  773. package/dist/config/schemas/quota.js +47 -0
  774. package/dist/config/schemas/quota.js.map +1 -0
  775. package/dist/config/schemas/thinking.d.ts +50 -0
  776. package/dist/config/schemas/thinking.d.ts.map +1 -0
  777. package/dist/config/schemas/thinking.js +26 -0
  778. package/dist/config/schemas/thinking.js.map +1 -0
  779. package/dist/config/schemas/unified-config.d.ts +74 -0
  780. package/dist/config/schemas/unified-config.d.ts.map +1 -0
  781. package/dist/config/schemas/unified-config.js +131 -0
  782. package/dist/config/schemas/unified-config.js.map +1 -0
  783. package/dist/config/schemas/version.d.ts +23 -0
  784. package/dist/config/schemas/version.d.ts.map +1 -0
  785. package/dist/config/schemas/version.js +26 -0
  786. package/dist/config/schemas/version.js.map +1 -0
  787. package/dist/config/schemas/websearch.d.ts +138 -0
  788. package/dist/config/schemas/websearch.d.ts.map +1 -0
  789. package/dist/config/schemas/websearch.js +12 -0
  790. package/dist/config/schemas/websearch.js.map +1 -0
  791. package/dist/config/unified-config-loader.d.ts +21 -113
  792. package/dist/config/unified-config-loader.d.ts.map +1 -1
  793. package/dist/config/unified-config-loader.js +104 -935
  794. package/dist/config/unified-config-loader.js.map +1 -1
  795. package/dist/config/unified-config-types.d.ts +3 -723
  796. package/dist/config/unified-config-types.d.ts.map +1 -1
  797. package/dist/config/unified-config-types.js +19 -268
  798. package/dist/config/unified-config-types.js.map +1 -1
  799. package/dist/copilot/copilot-auth.d.ts.map +1 -1
  800. package/dist/copilot/copilot-auth.js +22 -0
  801. package/dist/copilot/copilot-auth.js.map +1 -1
  802. package/dist/copilot/copilot-daemon.d.ts.map +1 -1
  803. package/dist/copilot/copilot-daemon.js +28 -2
  804. package/dist/copilot/copilot-daemon.js.map +1 -1
  805. package/dist/copilot/copilot-executor.d.ts +1 -1
  806. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  807. package/dist/copilot/copilot-executor.js +31 -12
  808. package/dist/copilot/copilot-executor.js.map +1 -1
  809. package/dist/copilot/copilot-package-manager.js +2 -2
  810. package/dist/copilot/copilot-package-manager.js.map +1 -1
  811. package/dist/cursor/constants.d.ts +4 -1
  812. package/dist/cursor/constants.d.ts.map +1 -1
  813. package/dist/cursor/constants.js +27 -1
  814. package/dist/cursor/constants.js.map +1 -1
  815. package/dist/cursor/cursor-anthropic-response.d.ts +1 -5
  816. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
  817. package/dist/cursor/cursor-anthropic-response.js +3 -186
  818. package/dist/cursor/cursor-anthropic-response.js.map +1 -1
  819. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -1
  820. package/dist/cursor/cursor-anthropic-translator.js +17 -3
  821. package/dist/cursor/cursor-anthropic-translator.js.map +1 -1
  822. package/dist/cursor/cursor-anthropic-types.d.ts +3 -0
  823. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -1
  824. package/dist/cursor/cursor-auth.d.ts +1 -0
  825. package/dist/cursor/cursor-auth.d.ts.map +1 -1
  826. package/dist/cursor/cursor-auth.js +156 -34
  827. package/dist/cursor/cursor-auth.js.map +1 -1
  828. package/dist/cursor/cursor-daemon-entry.js +2 -2
  829. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  830. package/dist/cursor/cursor-daemon-pid.js +2 -2
  831. package/dist/cursor/cursor-daemon-pid.js.map +1 -1
  832. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  833. package/dist/cursor/cursor-daemon.js +28 -1
  834. package/dist/cursor/cursor-daemon.js.map +1 -1
  835. package/dist/cursor/cursor-default-models.d.ts +1 -1
  836. package/dist/cursor/cursor-default-models.d.ts.map +1 -1
  837. package/dist/cursor/cursor-default-models.js +11 -1
  838. package/dist/cursor/cursor-default-models.js.map +1 -1
  839. package/dist/cursor/cursor-executor.d.ts +2 -1
  840. package/dist/cursor/cursor-executor.d.ts.map +1 -1
  841. package/dist/cursor/cursor-executor.js +312 -161
  842. package/dist/cursor/cursor-executor.js.map +1 -1
  843. package/dist/cursor/cursor-models.d.ts.map +1 -1
  844. package/dist/cursor/cursor-models.js +26 -4
  845. package/dist/cursor/cursor-models.js.map +1 -1
  846. package/dist/cursor/cursor-profile-executor.d.ts +10 -1
  847. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  848. package/dist/cursor/cursor-profile-executor.js +14 -10
  849. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  850. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -1
  851. package/dist/cursor/cursor-protobuf-decoder.js +1 -3
  852. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
  853. package/dist/cursor/cursor-protobuf-schema.d.ts +12 -3
  854. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
  855. package/dist/cursor/cursor-protobuf-schema.js +23 -5
  856. package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
  857. package/dist/cursor/cursor-protobuf.d.ts +1 -1
  858. package/dist/cursor/cursor-protobuf.d.ts.map +1 -1
  859. package/dist/cursor/cursor-protobuf.js +2 -4
  860. package/dist/cursor/cursor-protobuf.js.map +1 -1
  861. package/dist/cursor/cursor-runtime-probe.d.ts +12 -0
  862. package/dist/cursor/cursor-runtime-probe.d.ts.map +1 -0
  863. package/dist/cursor/cursor-runtime-probe.js +220 -0
  864. package/dist/cursor/cursor-runtime-probe.js.map +1 -0
  865. package/dist/cursor/cursor-stream-parser.d.ts +10 -0
  866. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -1
  867. package/dist/cursor/cursor-stream-parser.js +106 -10
  868. package/dist/cursor/cursor-stream-parser.js.map +1 -1
  869. package/dist/cursor/index.d.ts +1 -0
  870. package/dist/cursor/index.d.ts.map +1 -1
  871. package/dist/cursor/index.js +3 -1
  872. package/dist/cursor/index.js.map +1 -1
  873. package/dist/cursor/types.d.ts +6 -0
  874. package/dist/cursor/types.d.ts.map +1 -1
  875. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  876. package/dist/delegation/delegation-handler.js +113 -36
  877. package/dist/delegation/delegation-handler.js.map +1 -1
  878. package/dist/delegation/headless-executor.d.ts.map +1 -1
  879. package/dist/delegation/headless-executor.js +67 -22
  880. package/dist/delegation/headless-executor.js.map +1 -1
  881. package/dist/delegation/session-manager.js +2 -2
  882. package/dist/delegation/session-manager.js.map +1 -1
  883. package/dist/dispatcher/cli-argument-parser.d.ts +70 -0
  884. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -0
  885. package/dist/dispatcher/cli-argument-parser.js +285 -0
  886. package/dist/dispatcher/cli-argument-parser.js.map +1 -0
  887. package/dist/dispatcher/dispatcher-context.d.ts +24 -0
  888. package/dist/dispatcher/dispatcher-context.d.ts.map +1 -0
  889. package/dist/dispatcher/dispatcher-context.js +11 -0
  890. package/dist/dispatcher/dispatcher-context.js.map +1 -0
  891. package/dist/dispatcher/environment-builder.d.ts +20 -0
  892. package/dist/dispatcher/environment-builder.d.ts.map +1 -0
  893. package/dist/dispatcher/environment-builder.js +95 -0
  894. package/dist/dispatcher/environment-builder.js.map +1 -0
  895. package/dist/dispatcher/flows/account-flow.d.ts +9 -0
  896. package/dist/dispatcher/flows/account-flow.d.ts.map +1 -0
  897. package/dist/dispatcher/flows/account-flow.js +50 -0
  898. package/dist/dispatcher/flows/account-flow.js.map +1 -0
  899. package/dist/dispatcher/flows/cliproxy-flow.d.ts +8 -0
  900. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -0
  901. package/dist/dispatcher/flows/cliproxy-flow.js +165 -0
  902. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -0
  903. package/dist/dispatcher/flows/copilot-flow.d.ts +8 -0
  904. package/dist/dispatcher/flows/copilot-flow.d.ts.map +1 -0
  905. package/dist/dispatcher/flows/copilot-flow.js +72 -0
  906. package/dist/dispatcher/flows/copilot-flow.js.map +1 -0
  907. package/dist/dispatcher/flows/cursor-flow.d.ts +8 -0
  908. package/dist/dispatcher/flows/cursor-flow.d.ts.map +1 -0
  909. package/dist/dispatcher/flows/cursor-flow.js +62 -0
  910. package/dist/dispatcher/flows/cursor-flow.js.map +1 -0
  911. package/dist/dispatcher/flows/default-flow.d.ts +10 -0
  912. package/dist/dispatcher/flows/default-flow.d.ts.map +1 -0
  913. package/dist/dispatcher/flows/default-flow.js +99 -0
  914. package/dist/dispatcher/flows/default-flow.js.map +1 -0
  915. package/dist/dispatcher/flows/settings-flow.d.ts +9 -0
  916. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -0
  917. package/dist/dispatcher/flows/settings-flow.js +329 -0
  918. package/dist/dispatcher/flows/settings-flow.js.map +1 -0
  919. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts +28 -0
  920. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts.map +1 -0
  921. package/dist/dispatcher/flows/settings-image-analysis-prep.js +81 -0
  922. package/dist/dispatcher/flows/settings-image-analysis-prep.js.map +1 -0
  923. package/dist/dispatcher/pre-dispatch.d.ts +23 -0
  924. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -0
  925. package/dist/dispatcher/pre-dispatch.js +156 -0
  926. package/dist/dispatcher/pre-dispatch.js.map +1 -0
  927. package/dist/dispatcher/profile-resolver.d.ts +65 -0
  928. package/dist/dispatcher/profile-resolver.d.ts.map +1 -0
  929. package/dist/dispatcher/profile-resolver.js +303 -0
  930. package/dist/dispatcher/profile-resolver.js.map +1 -0
  931. package/dist/dispatcher/target-executor.d.ts +26 -0
  932. package/dist/dispatcher/target-executor.d.ts.map +1 -0
  933. package/dist/dispatcher/target-executor.js +81 -0
  934. package/dist/dispatcher/target-executor.js.map +1 -0
  935. package/dist/docker/docker-assets.d.ts.map +1 -1
  936. package/dist/docker/docker-assets.js +2 -2
  937. package/dist/docker/docker-assets.js.map +1 -1
  938. package/dist/docker/docker-bootstrap.js +1 -1
  939. package/dist/docker/docker-bootstrap.js.map +1 -1
  940. package/dist/docker/docker-executor.d.ts +1 -0
  941. package/dist/docker/docker-executor.d.ts.map +1 -1
  942. package/dist/docker/supervisord-lifecycle.d.ts +17 -0
  943. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -0
  944. package/dist/docker/supervisord-lifecycle.js +58 -0
  945. package/dist/docker/supervisord-lifecycle.js.map +1 -0
  946. package/dist/errors/error-handler.d.ts.map +1 -1
  947. package/dist/errors/error-handler.js +13 -0
  948. package/dist/errors/error-handler.js.map +1 -1
  949. package/dist/errors/error-types.d.ts +9 -0
  950. package/dist/errors/error-types.d.ts.map +1 -1
  951. package/dist/errors/error-types.js +15 -1
  952. package/dist/errors/error-types.js.map +1 -1
  953. package/dist/errors/index.d.ts +1 -1
  954. package/dist/errors/index.d.ts.map +1 -1
  955. package/dist/errors/index.js +3 -1
  956. package/dist/errors/index.js.map +1 -1
  957. package/dist/glmt/delta-accumulator.d.ts +4 -0
  958. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  959. package/dist/glmt/delta-accumulator.js +17 -5
  960. package/dist/glmt/delta-accumulator.js.map +1 -1
  961. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  962. package/dist/glmt/glmt-proxy.js +7 -0
  963. package/dist/glmt/glmt-proxy.js.map +1 -1
  964. package/dist/glmt/glmt-transformer.d.ts +1 -0
  965. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  966. package/dist/glmt/glmt-transformer.js +9 -2
  967. package/dist/glmt/glmt-transformer.js.map +1 -1
  968. package/dist/glmt/pipeline/stream-parser.d.ts +0 -3
  969. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  970. package/dist/glmt/pipeline/stream-parser.js +20 -27
  971. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  972. package/dist/glmt/pipeline/tool-call-handler.d.ts +0 -7
  973. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  974. package/dist/glmt/pipeline/tool-call-handler.js +15 -24
  975. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  976. package/dist/glmt/sse-parser.d.ts.map +1 -1
  977. package/dist/glmt/sse-parser.js +46 -41
  978. package/dist/glmt/sse-parser.js.map +1 -1
  979. package/dist/management/checks/config-check.d.ts.map +1 -1
  980. package/dist/management/checks/config-check.js +2 -2
  981. package/dist/management/checks/config-check.js.map +1 -1
  982. package/dist/management/checks/env-check.d.ts.map +1 -1
  983. package/dist/management/checks/env-check.js +2 -1
  984. package/dist/management/checks/env-check.js.map +1 -1
  985. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  986. package/dist/management/checks/image-analysis-check.js +25 -7
  987. package/dist/management/checks/image-analysis-check.js.map +1 -1
  988. package/dist/management/checks/profile-check.d.ts.map +1 -1
  989. package/dist/management/checks/profile-check.js +6 -7
  990. package/dist/management/checks/profile-check.js.map +1 -1
  991. package/dist/management/checks/symlink-check.d.ts.map +1 -1
  992. package/dist/management/checks/symlink-check.js +4 -5
  993. package/dist/management/checks/symlink-check.js.map +1 -1
  994. package/dist/management/checks/system-check.d.ts.map +1 -1
  995. package/dist/management/checks/system-check.js +3 -3
  996. package/dist/management/checks/system-check.js.map +1 -1
  997. package/dist/management/instance-directory.d.ts +4 -0
  998. package/dist/management/instance-directory.d.ts.map +1 -0
  999. package/dist/management/instance-directory.js +54 -0
  1000. package/dist/management/instance-directory.js.map +1 -0
  1001. package/dist/management/instance-manager.d.ts.map +1 -1
  1002. package/dist/management/instance-manager.js +18 -13
  1003. package/dist/management/instance-manager.js.map +1 -1
  1004. package/dist/management/plugin-path-normalizer.d.ts +7 -0
  1005. package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
  1006. package/dist/management/plugin-path-normalizer.js +82 -0
  1007. package/dist/management/plugin-path-normalizer.js.map +1 -0
  1008. package/dist/management/recovery-manager.d.ts +6 -0
  1009. package/dist/management/recovery-manager.d.ts.map +1 -1
  1010. package/dist/management/recovery-manager.js +77 -7
  1011. package/dist/management/recovery-manager.js.map +1 -1
  1012. package/dist/management/repair/auto-repair.d.ts.map +1 -1
  1013. package/dist/management/repair/auto-repair.js +2 -2
  1014. package/dist/management/repair/auto-repair.js.map +1 -1
  1015. package/dist/management/shared-manager.d.ts +3 -2
  1016. package/dist/management/shared-manager.d.ts.map +1 -1
  1017. package/dist/management/shared-manager.js +41 -84
  1018. package/dist/management/shared-manager.js.map +1 -1
  1019. package/dist/proxy/index.d.ts +9 -0
  1020. package/dist/proxy/index.d.ts.map +1 -0
  1021. package/dist/proxy/index.js +25 -0
  1022. package/dist/proxy/index.js.map +1 -0
  1023. package/dist/proxy/profile-router.d.ts +28 -0
  1024. package/dist/proxy/profile-router.d.ts.map +1 -0
  1025. package/dist/proxy/profile-router.js +43 -0
  1026. package/dist/proxy/profile-router.js.map +1 -0
  1027. package/dist/proxy/proxy-daemon-entry.d.ts +2 -0
  1028. package/dist/proxy/proxy-daemon-entry.d.ts.map +1 -0
  1029. package/dist/proxy/proxy-daemon-entry.js +112 -0
  1030. package/dist/proxy/proxy-daemon-entry.js.map +1 -0
  1031. package/dist/proxy/proxy-daemon-paths.d.ts +12 -0
  1032. package/dist/proxy/proxy-daemon-paths.d.ts.map +1 -0
  1033. package/dist/proxy/proxy-daemon-paths.js +58 -0
  1034. package/dist/proxy/proxy-daemon-paths.js.map +1 -0
  1035. package/dist/proxy/proxy-daemon-state.d.ts +25 -0
  1036. package/dist/proxy/proxy-daemon-state.d.ts.map +1 -0
  1037. package/dist/proxy/proxy-daemon-state.js +199 -0
  1038. package/dist/proxy/proxy-daemon-state.js.map +1 -0
  1039. package/dist/proxy/proxy-daemon.d.ts +27 -0
  1040. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  1041. package/dist/proxy/proxy-daemon.js +614 -0
  1042. package/dist/proxy/proxy-daemon.js.map +1 -0
  1043. package/dist/proxy/proxy-env.d.ts +3 -0
  1044. package/dist/proxy/proxy-env.d.ts.map +1 -0
  1045. package/dist/proxy/proxy-env.js +26 -0
  1046. package/dist/proxy/proxy-env.js.map +1 -0
  1047. package/dist/proxy/proxy-port-resolver.d.ts +9 -0
  1048. package/dist/proxy/proxy-port-resolver.d.ts.map +1 -0
  1049. package/dist/proxy/proxy-port-resolver.js +62 -0
  1050. package/dist/proxy/proxy-port-resolver.js.map +1 -0
  1051. package/dist/proxy/request-router.d.ts +12 -0
  1052. package/dist/proxy/request-router.d.ts.map +1 -0
  1053. package/dist/proxy/request-router.js +163 -0
  1054. package/dist/proxy/request-router.js.map +1 -0
  1055. package/dist/proxy/routing-config.d.ts +10 -0
  1056. package/dist/proxy/routing-config.d.ts.map +1 -0
  1057. package/dist/proxy/routing-config.js +79 -0
  1058. package/dist/proxy/routing-config.js.map +1 -0
  1059. package/dist/proxy/server/http-helpers.d.ts +8 -0
  1060. package/dist/proxy/server/http-helpers.d.ts.map +1 -0
  1061. package/dist/proxy/server/http-helpers.js +73 -0
  1062. package/dist/proxy/server/http-helpers.js.map +1 -0
  1063. package/dist/proxy/server/messages-route.d.ts +12 -0
  1064. package/dist/proxy/server/messages-route.d.ts.map +1 -0
  1065. package/dist/proxy/server/messages-route.js +244 -0
  1066. package/dist/proxy/server/messages-route.js.map +1 -0
  1067. package/dist/proxy/server/proxy-server.d.ts +12 -0
  1068. package/dist/proxy/server/proxy-server.d.ts.map +1 -0
  1069. package/dist/proxy/server/proxy-server.js +140 -0
  1070. package/dist/proxy/server/proxy-server.js.map +1 -0
  1071. package/dist/proxy/transformers/request-transformer.d.ts +60 -0
  1072. package/dist/proxy/transformers/request-transformer.d.ts.map +1 -0
  1073. package/dist/proxy/transformers/request-transformer.js +452 -0
  1074. package/dist/proxy/transformers/request-transformer.js.map +1 -0
  1075. package/dist/proxy/transformers/sse-stream-transformer.d.ts +11 -0
  1076. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -0
  1077. package/dist/proxy/transformers/sse-stream-transformer.js +200 -0
  1078. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -0
  1079. package/dist/proxy/upstream-url.d.ts +3 -0
  1080. package/dist/proxy/upstream-url.d.ts.map +1 -0
  1081. package/dist/proxy/upstream-url.js +43 -0
  1082. package/dist/proxy/upstream-url.js.map +1 -0
  1083. package/dist/services/logging/index.d.ts +12 -0
  1084. package/dist/services/logging/index.d.ts.map +1 -0
  1085. package/dist/services/logging/index.js +37 -0
  1086. package/dist/services/logging/index.js.map +1 -0
  1087. package/dist/services/logging/log-buffer.d.ts +5 -0
  1088. package/dist/services/logging/log-buffer.d.ts.map +1 -0
  1089. package/dist/services/logging/log-buffer.js +20 -0
  1090. package/dist/services/logging/log-buffer.js.map +1 -0
  1091. package/dist/services/logging/log-config.d.ts +4 -0
  1092. package/dist/services/logging/log-config.d.ts.map +1 -0
  1093. package/dist/services/logging/log-config.js +68 -0
  1094. package/dist/services/logging/log-config.js.map +1 -0
  1095. package/dist/services/logging/log-context.d.ts +41 -0
  1096. package/dist/services/logging/log-context.d.ts.map +1 -0
  1097. package/dist/services/logging/log-context.js +51 -0
  1098. package/dist/services/logging/log-context.js.map +1 -0
  1099. package/dist/services/logging/log-paths.d.ts +8 -0
  1100. package/dist/services/logging/log-paths.d.ts.map +1 -0
  1101. package/dist/services/logging/log-paths.js +66 -0
  1102. package/dist/services/logging/log-paths.js.map +1 -0
  1103. package/dist/services/logging/log-reader.d.ts +5 -0
  1104. package/dist/services/logging/log-reader.d.ts.map +1 -0
  1105. package/dist/services/logging/log-reader.js +124 -0
  1106. package/dist/services/logging/log-reader.js.map +1 -0
  1107. package/dist/services/logging/log-redaction.d.ts +10 -0
  1108. package/dist/services/logging/log-redaction.d.ts.map +1 -0
  1109. package/dist/services/logging/log-redaction.js +90 -0
  1110. package/dist/services/logging/log-redaction.js.map +1 -0
  1111. package/dist/services/logging/log-storage.d.ts +4 -0
  1112. package/dist/services/logging/log-storage.d.ts.map +1 -0
  1113. package/dist/services/logging/log-storage.js +109 -0
  1114. package/dist/services/logging/log-storage.js.map +1 -0
  1115. package/dist/services/logging/log-types.d.ts +60 -0
  1116. package/dist/services/logging/log-types.d.ts.map +1 -0
  1117. package/dist/services/logging/log-types.js +33 -0
  1118. package/dist/services/logging/log-types.js.map +1 -0
  1119. package/dist/services/logging/logger.d.ts +26 -0
  1120. package/dist/services/logging/logger.d.ts.map +1 -0
  1121. package/dist/services/logging/logger.js +65 -0
  1122. package/dist/services/logging/logger.js.map +1 -0
  1123. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  1124. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  1125. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  1126. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  1127. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  1128. package/dist/shared/claude-extension-setup.js +7 -3
  1129. package/dist/shared/claude-extension-setup.js.map +1 -1
  1130. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  1131. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  1132. package/dist/shared/cliproxy-model-routing.js +144 -0
  1133. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  1134. package/dist/shared/provider-preset-catalog.d.ts +4 -2
  1135. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  1136. package/dist/shared/provider-preset-catalog.js +17 -1
  1137. package/dist/shared/provider-preset-catalog.js.map +1 -1
  1138. package/dist/shared/toml-object.d.ts.map +1 -1
  1139. package/dist/shared/toml-object.js +6 -2
  1140. package/dist/shared/toml-object.js.map +1 -1
  1141. package/dist/targets/claude-adapter.d.ts +6 -1
  1142. package/dist/targets/claude-adapter.d.ts.map +1 -1
  1143. package/dist/targets/claude-adapter.js +20 -5
  1144. package/dist/targets/claude-adapter.js.map +1 -1
  1145. package/dist/targets/codex-adapter.d.ts +2 -0
  1146. package/dist/targets/codex-adapter.d.ts.map +1 -1
  1147. package/dist/targets/codex-adapter.js +43 -11
  1148. package/dist/targets/codex-adapter.js.map +1 -1
  1149. package/dist/targets/codex-cliproxy-provider-config.d.ts +16 -0
  1150. package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -0
  1151. package/dist/targets/codex-cliproxy-provider-config.js +156 -0
  1152. package/dist/targets/codex-cliproxy-provider-config.js.map +1 -0
  1153. package/dist/targets/codex-detector.d.ts.map +1 -1
  1154. package/dist/targets/codex-detector.js +20 -9
  1155. package/dist/targets/codex-detector.js.map +1 -1
  1156. package/dist/targets/droid-adapter.d.ts +3 -2
  1157. package/dist/targets/droid-adapter.d.ts.map +1 -1
  1158. package/dist/targets/droid-adapter.js +15 -10
  1159. package/dist/targets/droid-adapter.js.map +1 -1
  1160. package/dist/targets/droid-config-manager.d.ts.map +1 -1
  1161. package/dist/targets/droid-config-manager.js +40 -0
  1162. package/dist/targets/droid-config-manager.js.map +1 -1
  1163. package/dist/targets/droid-provider.d.ts.map +1 -1
  1164. package/dist/targets/droid-provider.js +10 -5
  1165. package/dist/targets/droid-provider.js.map +1 -1
  1166. package/dist/targets/target-adapter.d.ts +5 -0
  1167. package/dist/targets/target-adapter.d.ts.map +1 -1
  1168. package/dist/targets/target-metadata.js +1 -1
  1169. package/dist/targets/target-metadata.js.map +1 -1
  1170. package/dist/targets/target-resolver.d.ts.map +1 -1
  1171. package/dist/targets/target-resolver.js +15 -0
  1172. package/dist/targets/target-resolver.js.map +1 -1
  1173. package/dist/targets/target-runtime-compatibility.js +1 -1
  1174. package/dist/targets/target-runtime-compatibility.js.map +1 -1
  1175. package/dist/types/cli.d.ts +1 -0
  1176. package/dist/types/cli.d.ts.map +1 -1
  1177. package/dist/types/config.d.ts +15 -0
  1178. package/dist/types/config.d.ts.map +1 -1
  1179. package/dist/types/config.js.map +1 -1
  1180. package/dist/types/index.d.ts +1 -1
  1181. package/dist/types/index.d.ts.map +1 -1
  1182. package/dist/types/index.js.map +1 -1
  1183. package/dist/ui/assets/accounts-biinrjBy.js +1 -0
  1184. package/dist/ui/assets/alert-dialog-B9kuXS_B.js +1 -0
  1185. package/dist/ui/assets/api-BYTesAyV.js +4 -0
  1186. package/dist/ui/assets/auth-section-BH7Y0zzE.js +1 -0
  1187. package/dist/ui/assets/backups-section-JTiku4fB.js +1 -0
  1188. package/dist/ui/assets/channels-BweRUtu-.js +1 -0
  1189. package/dist/ui/assets/charts-eIPy2oG6.js +64 -0
  1190. package/dist/ui/assets/checkbox-CsTXDim7.js +1 -0
  1191. package/dist/ui/assets/claude-extension-BE4B2NkS.js +1 -0
  1192. package/dist/ui/assets/cliproxy-Fl6HWxZ0.js +4 -0
  1193. package/dist/ui/assets/cliproxy-ai-providers-NMOopK4K.js +15 -0
  1194. package/dist/ui/assets/cliproxy-control-panel-BgiBcyzb.js +1 -0
  1195. package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
  1196. package/dist/ui/assets/codex-BsxF_eKF.js +30 -0
  1197. package/dist/ui/assets/confirm-dialog-iyu6jSnb.js +1 -0
  1198. package/dist/ui/assets/copilot-BSCdzbOk.js +3 -0
  1199. package/dist/ui/assets/cursor-CjGT-EsR.js +1 -0
  1200. package/dist/ui/assets/droid-MR-k0fbU.js +2 -0
  1201. package/dist/ui/assets/form-utils-CuHzLhJZ.js +20 -0
  1202. package/dist/ui/assets/globalenv-section-BGPR-lJN.js +1 -0
  1203. package/dist/ui/assets/health-C7wQUXVn.js +1 -0
  1204. package/dist/ui/assets/icons-bxdfpJdB.js +1 -0
  1205. package/dist/ui/assets/index-7dfuc3Cf.js +56 -0
  1206. package/dist/ui/assets/index-7rknm4m0.js +1 -0
  1207. package/dist/ui/assets/index-BeLNgVQ9.js +1 -0
  1208. package/dist/ui/assets/index-BvMWFZiH.js +1 -0
  1209. package/dist/ui/assets/index-DrEPnpI3.css +1 -0
  1210. package/dist/ui/assets/index-MAUysHQF.js +1 -0
  1211. package/dist/ui/assets/index-nzImYtUK.js +1 -0
  1212. package/dist/ui/assets/index-w9DZ42zc.js +1 -0
  1213. package/dist/ui/assets/logs-Qr4G0AdK.js +1 -0
  1214. package/dist/ui/assets/masked-input-Bl5OoUEZ.js +1 -0
  1215. package/dist/ui/assets/notifications-B4_o8bcr.js +1 -0
  1216. package/dist/ui/assets/providers/codebuddy.png +0 -0
  1217. package/dist/ui/assets/providers/cursor.svg +5 -0
  1218. package/dist/ui/assets/providers/gitlab.svg +22 -0
  1219. package/dist/ui/assets/providers/kilo.png +0 -0
  1220. package/dist/ui/assets/proxy-Br5aAkn0.js +9 -0
  1221. package/dist/ui/assets/proxy-status-widget-703_vH2t.js +1 -0
  1222. package/dist/ui/assets/radix-ui-DvRtHWGI.js +51 -0
  1223. package/dist/ui/assets/raw-json-settings-editor-panel-DWTJY3og.js +1 -0
  1224. package/dist/ui/assets/react-vendor-Bjx91N7w.js +3 -0
  1225. package/dist/ui/assets/searchable-select-C8BA2Q6i.js +1 -0
  1226. package/dist/ui/assets/separator-avUMnKG4.js +1 -0
  1227. package/dist/ui/assets/shared-DsOKYLqq.js +8 -0
  1228. package/dist/ui/assets/table-C6r_OOul.js +1 -0
  1229. package/dist/ui/assets/tanstack-Dg84L5cM.js +4 -0
  1230. package/dist/ui/assets/updates-K6jy3VXq.js +1 -0
  1231. package/dist/ui/assets/use-accounts-ZouK2A2J.js +1 -0
  1232. package/dist/ui/index.html +9 -9
  1233. package/dist/utils/browser/browser-policy.d.ts +22 -0
  1234. package/dist/utils/browser/browser-policy.d.ts.map +1 -0
  1235. package/dist/utils/browser/browser-policy.js +65 -0
  1236. package/dist/utils/browser/browser-policy.js.map +1 -0
  1237. package/dist/utils/browser/browser-settings.d.ts +52 -0
  1238. package/dist/utils/browser/browser-settings.d.ts.map +1 -0
  1239. package/dist/utils/browser/browser-settings.js +257 -0
  1240. package/dist/utils/browser/browser-settings.js.map +1 -0
  1241. package/dist/utils/browser/browser-setup.d.ts +21 -0
  1242. package/dist/utils/browser/browser-setup.d.ts.map +1 -0
  1243. package/dist/utils/browser/browser-setup.js +68 -0
  1244. package/dist/utils/browser/browser-setup.js.map +1 -0
  1245. package/dist/utils/browser/browser-status.d.ts +42 -0
  1246. package/dist/utils/browser/browser-status.d.ts.map +1 -0
  1247. package/dist/utils/browser/browser-status.js +251 -0
  1248. package/dist/utils/browser/browser-status.js.map +1 -0
  1249. package/dist/utils/browser/chrome-reuse.d.ts +18 -0
  1250. package/dist/utils/browser/chrome-reuse.d.ts.map +1 -0
  1251. package/dist/utils/browser/chrome-reuse.js +194 -0
  1252. package/dist/utils/browser/chrome-reuse.js.map +1 -0
  1253. package/dist/utils/browser/claude-tool-args.d.ts +2 -0
  1254. package/dist/utils/browser/claude-tool-args.d.ts.map +1 -0
  1255. package/dist/utils/browser/claude-tool-args.js +22 -0
  1256. package/dist/utils/browser/claude-tool-args.js.map +1 -0
  1257. package/dist/utils/browser/index.d.ts +16 -0
  1258. package/dist/utils/browser/index.d.ts.map +1 -0
  1259. package/dist/utils/browser/index.js +45 -0
  1260. package/dist/utils/browser/index.js.map +1 -0
  1261. package/dist/utils/browser/mcp-installer.d.ts +14 -0
  1262. package/dist/utils/browser/mcp-installer.d.ts.map +1 -0
  1263. package/dist/utils/browser/mcp-installer.js +356 -0
  1264. package/dist/utils/browser/mcp-installer.js.map +1 -0
  1265. package/dist/utils/browser/platform.d.ts +4 -0
  1266. package/dist/utils/browser/platform.d.ts.map +1 -0
  1267. package/dist/utils/browser/platform.js +12 -0
  1268. package/dist/utils/browser/platform.js.map +1 -0
  1269. package/dist/utils/browser-codex-overrides.d.ts +3 -0
  1270. package/dist/utils/browser-codex-overrides.d.ts.map +1 -0
  1271. package/dist/utils/browser-codex-overrides.js +29 -0
  1272. package/dist/utils/browser-codex-overrides.js.map +1 -0
  1273. package/dist/utils/claude-detector.d.ts +1 -0
  1274. package/dist/utils/claude-detector.d.ts.map +1 -1
  1275. package/dist/utils/claude-detector.js +2 -1
  1276. package/dist/utils/claude-detector.js.map +1 -1
  1277. package/dist/utils/claude-spawner.d.ts +1 -0
  1278. package/dist/utils/claude-spawner.d.ts.map +1 -1
  1279. package/dist/utils/claude-spawner.js +1 -1
  1280. package/dist/utils/claude-spawner.js.map +1 -1
  1281. package/dist/utils/claude-subcommand-detector.d.ts +45 -0
  1282. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -0
  1283. package/dist/utils/claude-subcommand-detector.js +179 -0
  1284. package/dist/utils/claude-subcommand-detector.js.map +1 -0
  1285. package/dist/utils/claude-tool-args.d.ts +7 -0
  1286. package/dist/utils/claude-tool-args.d.ts.map +1 -0
  1287. package/dist/utils/claude-tool-args.js +43 -0
  1288. package/dist/utils/claude-tool-args.js.map +1 -0
  1289. package/dist/utils/config-manager.d.ts +5 -0
  1290. package/dist/utils/config-manager.d.ts.map +1 -1
  1291. package/dist/utils/config-manager.js +16 -3
  1292. package/dist/utils/config-manager.js.map +1 -1
  1293. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
  1294. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
  1295. package/dist/utils/hooks/get-image-analysis-hook-env.js +11 -7
  1296. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
  1297. package/dist/utils/hooks/image-analysis-backend-resolver.js +2 -2
  1298. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  1299. package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
  1300. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  1301. package/dist/utils/hooks/image-analysis-runtime-status.js +15 -11
  1302. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  1303. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -1
  1304. package/dist/utils/hooks/image-analyzer-hook-configuration.js +2 -2
  1305. package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -1
  1306. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -1
  1307. package/dist/utils/hooks/image-analyzer-hook-installer.js +2 -2
  1308. package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -1
  1309. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts +21 -0
  1310. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts.map +1 -0
  1311. package/dist/utils/hooks/image-analyzer-hook-utils.js +81 -0
  1312. package/dist/utils/hooks/image-analyzer-hook-utils.js.map +1 -0
  1313. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +1 -0
  1314. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
  1315. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +35 -14
  1316. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
  1317. package/dist/utils/hooks/index.d.ts +1 -0
  1318. package/dist/utils/hooks/index.d.ts.map +1 -1
  1319. package/dist/utils/hooks/index.js +3 -1
  1320. package/dist/utils/hooks/index.js.map +1 -1
  1321. package/dist/utils/image-analysis/claude-tool-args.d.ts +3 -0
  1322. package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
  1323. package/dist/utils/image-analysis/claude-tool-args.js +25 -47
  1324. package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
  1325. package/dist/utils/image-analysis/index.d.ts +1 -0
  1326. package/dist/utils/image-analysis/index.d.ts.map +1 -1
  1327. package/dist/utils/image-analysis/index.js +6 -1
  1328. package/dist/utils/image-analysis/index.js.map +1 -1
  1329. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  1330. package/dist/utils/image-analysis/mcp-installer.js +5 -5
  1331. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  1332. package/dist/utils/image-analysis/repair.d.ts +12 -0
  1333. package/dist/utils/image-analysis/repair.d.ts.map +1 -0
  1334. package/dist/utils/image-analysis/repair.js +105 -0
  1335. package/dist/utils/image-analysis/repair.js.map +1 -0
  1336. package/dist/utils/openai-compat-launch-settings.d.ts +7 -0
  1337. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -0
  1338. package/dist/utils/openai-compat-launch-settings.js +61 -0
  1339. package/dist/utils/openai-compat-launch-settings.js.map +1 -0
  1340. package/dist/utils/package-manager-detector.d.ts +31 -4
  1341. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  1342. package/dist/utils/package-manager-detector.js +249 -60
  1343. package/dist/utils/package-manager-detector.js.map +1 -1
  1344. package/dist/utils/prompt-injection-strategy.d.ts +54 -0
  1345. package/dist/utils/prompt-injection-strategy.d.ts.map +1 -0
  1346. package/dist/utils/prompt-injection-strategy.js +128 -0
  1347. package/dist/utils/prompt-injection-strategy.js.map +1 -0
  1348. package/dist/utils/retry-strategy.d.ts +37 -0
  1349. package/dist/utils/retry-strategy.d.ts.map +1 -0
  1350. package/dist/utils/retry-strategy.js +99 -0
  1351. package/dist/utils/retry-strategy.js.map +1 -0
  1352. package/dist/utils/shell-executor.d.ts +32 -1
  1353. package/dist/utils/shell-executor.d.ts.map +1 -1
  1354. package/dist/utils/shell-executor.js +193 -30
  1355. package/dist/utils/shell-executor.js.map +1 -1
  1356. package/dist/utils/update-checker.d.ts +1 -1
  1357. package/dist/utils/update-checker.d.ts.map +1 -1
  1358. package/dist/utils/websearch/claude-tool-args.d.ts +7 -0
  1359. package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
  1360. package/dist/utils/websearch/claude-tool-args.js +32 -50
  1361. package/dist/utils/websearch/claude-tool-args.js.map +1 -1
  1362. package/dist/utils/websearch/hook-config.d.ts.map +1 -1
  1363. package/dist/utils/websearch/hook-config.js +3 -3
  1364. package/dist/utils/websearch/hook-config.js.map +1 -1
  1365. package/dist/utils/websearch/hook-env.d.ts.map +1 -1
  1366. package/dist/utils/websearch/hook-env.js +21 -3
  1367. package/dist/utils/websearch/hook-env.js.map +1 -1
  1368. package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
  1369. package/dist/utils/websearch/hook-installer.js +2 -2
  1370. package/dist/utils/websearch/hook-installer.js.map +1 -1
  1371. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  1372. package/dist/utils/websearch/mcp-installer.js +5 -5
  1373. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  1374. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
  1375. package/dist/utils/websearch/profile-hook-injector.js +3 -3
  1376. package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
  1377. package/dist/utils/websearch/provider-secrets.js +2 -2
  1378. package/dist/utils/websearch/provider-secrets.js.map +1 -1
  1379. package/dist/utils/websearch/status.d.ts +1 -1
  1380. package/dist/utils/websearch/status.d.ts.map +1 -1
  1381. package/dist/utils/websearch/status.js +37 -16
  1382. package/dist/utils/websearch/status.js.map +1 -1
  1383. package/dist/utils/websearch/trace.d.ts +1 -0
  1384. package/dist/utils/websearch/trace.d.ts.map +1 -1
  1385. package/dist/utils/websearch/trace.js +27 -5
  1386. package/dist/utils/websearch/trace.js.map +1 -1
  1387. package/dist/utils/websearch/types.d.ts +12 -2
  1388. package/dist/utils/websearch/types.d.ts.map +1 -1
  1389. package/dist/utils/websearch/types.js +38 -0
  1390. package/dist/utils/websearch/types.js.map +1 -1
  1391. package/dist/web-server/file-watcher.js +2 -2
  1392. package/dist/web-server/file-watcher.js.map +1 -1
  1393. package/dist/web-server/health/cliproxy-checks.js +2 -2
  1394. package/dist/web-server/health/cliproxy-checks.js.map +1 -1
  1395. package/dist/web-server/health/config-checks.d.ts.map +1 -1
  1396. package/dist/web-server/health/config-checks.js +3 -3
  1397. package/dist/web-server/health/config-checks.js.map +1 -1
  1398. package/dist/web-server/health/profile-checks.d.ts.map +1 -1
  1399. package/dist/web-server/health/profile-checks.js +5 -6
  1400. package/dist/web-server/health/profile-checks.js.map +1 -1
  1401. package/dist/web-server/health/symlink-checks.d.ts.map +1 -1
  1402. package/dist/web-server/health/symlink-checks.js +2 -3
  1403. package/dist/web-server/health/symlink-checks.js.map +1 -1
  1404. package/dist/web-server/health/websearch-checks.js +1 -1
  1405. package/dist/web-server/health/websearch-checks.js.map +1 -1
  1406. package/dist/web-server/health-service.d.ts.map +1 -1
  1407. package/dist/web-server/health-service.js +7 -6
  1408. package/dist/web-server/health-service.js.map +1 -1
  1409. package/dist/web-server/index.d.ts.map +1 -1
  1410. package/dist/web-server/index.js +102 -18
  1411. package/dist/web-server/index.js.map +1 -1
  1412. package/dist/web-server/jsonl-parser.d.ts.map +1 -1
  1413. package/dist/web-server/jsonl-parser.js +22 -4
  1414. package/dist/web-server/jsonl-parser.js.map +1 -1
  1415. package/dist/web-server/middleware/auth-middleware.d.ts +7 -3
  1416. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
  1417. package/dist/web-server/middleware/auth-middleware.js +103 -8
  1418. package/dist/web-server/middleware/auth-middleware.js.map +1 -1
  1419. package/dist/web-server/middleware/request-logging-middleware.d.ts +3 -0
  1420. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -0
  1421. package/dist/web-server/middleware/request-logging-middleware.js +30 -0
  1422. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -0
  1423. package/dist/web-server/model-pricing.d.ts +8 -6
  1424. package/dist/web-server/model-pricing.d.ts.map +1 -1
  1425. package/dist/web-server/model-pricing.js +184 -54
  1426. package/dist/web-server/model-pricing.js.map +1 -1
  1427. package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
  1428. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
  1429. package/dist/web-server/models-dev/pricing-resolver.js +160 -0
  1430. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
  1431. package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
  1432. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
  1433. package/dist/web-server/models-dev/registry-cache.js +165 -0
  1434. package/dist/web-server/models-dev/registry-cache.js.map +1 -0
  1435. package/dist/web-server/models-dev/types.d.ts +39 -0
  1436. package/dist/web-server/models-dev/types.d.ts.map +1 -0
  1437. package/dist/web-server/models-dev/types.js +3 -0
  1438. package/dist/web-server/models-dev/types.js.map +1 -0
  1439. package/dist/web-server/overview-routes.d.ts.map +1 -1
  1440. package/dist/web-server/overview-routes.js +3 -3
  1441. package/dist/web-server/overview-routes.js.map +1 -1
  1442. package/dist/web-server/routes/account-route-helpers.d.ts +3 -0
  1443. package/dist/web-server/routes/account-route-helpers.d.ts.map +1 -1
  1444. package/dist/web-server/routes/account-route-helpers.js.map +1 -1
  1445. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  1446. package/dist/web-server/routes/account-routes.js +105 -12
  1447. package/dist/web-server/routes/account-routes.js.map +1 -1
  1448. package/dist/web-server/routes/auth-routes.d.ts +10 -0
  1449. package/dist/web-server/routes/auth-routes.d.ts.map +1 -1
  1450. package/dist/web-server/routes/auth-routes.js +37 -10
  1451. package/dist/web-server/routes/auth-routes.js.map +1 -1
  1452. package/dist/web-server/routes/browser-routes.d.ts +3 -0
  1453. package/dist/web-server/routes/browser-routes.d.ts.map +1 -0
  1454. package/dist/web-server/routes/browser-routes.js +182 -0
  1455. package/dist/web-server/routes/browser-routes.js.map +1 -0
  1456. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  1457. package/dist/web-server/routes/catalog-routes.js +9 -8
  1458. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  1459. package/dist/web-server/routes/channels-routes.d.ts.map +1 -1
  1460. package/dist/web-server/routes/channels-routes.js +4 -4
  1461. package/dist/web-server/routes/channels-routes.js.map +1 -1
  1462. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  1463. package/dist/web-server/routes/claude-extension-routes.js +5 -0
  1464. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  1465. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
  1466. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  1467. package/dist/web-server/routes/cliproxy-auth-routes.js +281 -89
  1468. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  1469. package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -1
  1470. package/dist/web-server/routes/cliproxy-local-proxy.js +27 -17
  1471. package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -1
  1472. package/dist/web-server/routes/cliproxy-routing-routes.d.ts +3 -0
  1473. package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -0
  1474. package/dist/web-server/routes/cliproxy-routing-routes.js +69 -0
  1475. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -0
  1476. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +35 -0
  1477. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  1478. package/dist/web-server/routes/cliproxy-stats-routes.js +86 -42
  1479. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  1480. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  1481. package/dist/web-server/routes/cliproxy-sync-routes.js +2 -2
  1482. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  1483. package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
  1484. package/dist/web-server/routes/codex-routes.js +7 -0
  1485. package/dist/web-server/routes/codex-routes.js.map +1 -1
  1486. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  1487. package/dist/web-server/routes/config-routes.js +9 -6
  1488. package/dist/web-server/routes/config-routes.js.map +1 -1
  1489. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -1
  1490. package/dist/web-server/routes/copilot-routes.js +3 -3
  1491. package/dist/web-server/routes/copilot-routes.js.map +1 -1
  1492. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  1493. package/dist/web-server/routes/copilot-settings-routes.js +6 -7
  1494. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  1495. package/dist/web-server/routes/cursor-routes.d.ts +2 -0
  1496. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  1497. package/dist/web-server/routes/cursor-routes.js +48 -6
  1498. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  1499. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -1
  1500. package/dist/web-server/routes/cursor-settings-routes.js +8 -9
  1501. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -1
  1502. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  1503. package/dist/web-server/routes/image-analysis-routes.js +7 -17
  1504. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  1505. package/dist/web-server/routes/index.d.ts.map +1 -1
  1506. package/dist/web-server/routes/index.js +25 -0
  1507. package/dist/web-server/routes/index.js.map +1 -1
  1508. package/dist/web-server/routes/logs-routes.d.ts +3 -0
  1509. package/dist/web-server/routes/logs-routes.d.ts.map +1 -0
  1510. package/dist/web-server/routes/logs-routes.js +75 -0
  1511. package/dist/web-server/routes/logs-routes.js.map +1 -0
  1512. package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
  1513. package/dist/web-server/routes/misc-routes.js +10 -11
  1514. package/dist/web-server/routes/misc-routes.js.map +1 -1
  1515. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  1516. package/dist/web-server/routes/profile-routes.js +21 -3
  1517. package/dist/web-server/routes/profile-routes.js.map +1 -1
  1518. package/dist/web-server/routes/provider-routes.js +1 -1
  1519. package/dist/web-server/routes/provider-routes.js.map +1 -1
  1520. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  1521. package/dist/web-server/routes/proxy-routes.js +42 -12
  1522. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  1523. package/dist/web-server/routes/route-helpers.d.ts +1 -0
  1524. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  1525. package/dist/web-server/routes/route-helpers.js +19 -7
  1526. package/dist/web-server/routes/route-helpers.js.map +1 -1
  1527. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  1528. package/dist/web-server/routes/settings-routes.js +110 -23
  1529. package/dist/web-server/routes/settings-routes.js.map +1 -1
  1530. package/dist/web-server/routes/variant-routes.js +1 -1
  1531. package/dist/web-server/routes/variant-routes.js.map +1 -1
  1532. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -1
  1533. package/dist/web-server/routes/websearch-routes.js +41 -4
  1534. package/dist/web-server/routes/websearch-routes.js.map +1 -1
  1535. package/dist/web-server/services/claude-extension-binding-service.js +2 -2
  1536. package/dist/web-server/services/claude-extension-binding-service.js.map +1 -1
  1537. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  1538. package/dist/web-server/services/cliproxy-dashboard-install-service.js +22 -6
  1539. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  1540. package/dist/web-server/services/codex-dashboard-service.d.ts +1 -0
  1541. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  1542. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -1
  1543. package/dist/web-server/services/compatible-cli-docs-registry.js +1 -0
  1544. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -1
  1545. package/dist/web-server/services/droid-dashboard-service.d.ts +1 -0
  1546. package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -1
  1547. package/dist/web-server/services/logs-dashboard-service.d.ts +7 -0
  1548. package/dist/web-server/services/logs-dashboard-service.d.ts.map +1 -0
  1549. package/dist/web-server/services/logs-dashboard-service.js +33 -0
  1550. package/dist/web-server/services/logs-dashboard-service.js.map +1 -0
  1551. package/dist/web-server/shared-routes-collections.d.ts +13 -0
  1552. package/dist/web-server/shared-routes-collections.d.ts.map +1 -0
  1553. package/dist/web-server/shared-routes-collections.js +170 -0
  1554. package/dist/web-server/shared-routes-collections.js.map +1 -0
  1555. package/dist/web-server/shared-routes-content.d.ts +16 -0
  1556. package/dist/web-server/shared-routes-content.d.ts.map +1 -0
  1557. package/dist/web-server/shared-routes-content.js +152 -0
  1558. package/dist/web-server/shared-routes-content.js.map +1 -0
  1559. package/dist/web-server/shared-routes-markdown-walker.d.ts +12 -0
  1560. package/dist/web-server/shared-routes-markdown-walker.d.ts.map +1 -0
  1561. package/dist/web-server/shared-routes-markdown-walker.js +97 -0
  1562. package/dist/web-server/shared-routes-markdown-walker.js.map +1 -0
  1563. package/dist/web-server/shared-routes-markdown.d.ts +18 -0
  1564. package/dist/web-server/shared-routes-markdown.d.ts.map +1 -0
  1565. package/dist/web-server/shared-routes-markdown.js +167 -0
  1566. package/dist/web-server/shared-routes-markdown.js.map +1 -0
  1567. package/dist/web-server/shared-routes-path-guards.d.ts +16 -0
  1568. package/dist/web-server/shared-routes-path-guards.d.ts.map +1 -0
  1569. package/dist/web-server/shared-routes-path-guards.js +93 -0
  1570. package/dist/web-server/shared-routes-path-guards.js.map +1 -0
  1571. package/dist/web-server/shared-routes-plugin-registry-content.d.ts +12 -0
  1572. package/dist/web-server/shared-routes-plugin-registry-content.d.ts.map +1 -0
  1573. package/dist/web-server/shared-routes-plugin-registry-content.js +93 -0
  1574. package/dist/web-server/shared-routes-plugin-registry-content.js.map +1 -0
  1575. package/dist/web-server/shared-routes-plugins.d.ts +21 -0
  1576. package/dist/web-server/shared-routes-plugins.d.ts.map +1 -0
  1577. package/dist/web-server/shared-routes-plugins.js +197 -0
  1578. package/dist/web-server/shared-routes-plugins.js.map +1 -0
  1579. package/dist/web-server/shared-routes-symlink-status.d.ts +27 -0
  1580. package/dist/web-server/shared-routes-symlink-status.d.ts.map +1 -0
  1581. package/dist/web-server/shared-routes-symlink-status.js +135 -0
  1582. package/dist/web-server/shared-routes-symlink-status.js.map +1 -0
  1583. package/dist/web-server/shared-routes-types.d.ts +23 -0
  1584. package/dist/web-server/shared-routes-types.d.ts.map +1 -0
  1585. package/dist/web-server/shared-routes-types.js +15 -0
  1586. package/dist/web-server/shared-routes-types.js.map +1 -0
  1587. package/dist/web-server/shared-routes.d.ts +2 -1
  1588. package/dist/web-server/shared-routes.d.ts.map +1 -1
  1589. package/dist/web-server/shared-routes.js +50 -456
  1590. package/dist/web-server/shared-routes.js.map +1 -1
  1591. package/dist/web-server/usage/aggregator.d.ts +14 -7
  1592. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  1593. package/dist/web-server/usage/aggregator.js +164 -55
  1594. package/dist/web-server/usage/aggregator.js.map +1 -1
  1595. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -16
  1596. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  1597. package/dist/web-server/usage/cliproxy-usage-syncer.js +186 -61
  1598. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  1599. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +22 -7
  1600. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  1601. package/dist/web-server/usage/cliproxy-usage-transformer.js +278 -28
  1602. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  1603. package/dist/web-server/usage/codex-native-usage-collector.d.ts +13 -0
  1604. package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -0
  1605. package/dist/web-server/usage/codex-native-usage-collector.js +291 -0
  1606. package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -0
  1607. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  1608. package/dist/web-server/usage/data-aggregator.js +45 -46
  1609. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  1610. package/dist/web-server/usage/disk-cache.js +2 -2
  1611. package/dist/web-server/usage/disk-cache.js.map +1 -1
  1612. package/dist/web-server/usage/droid-native-usage-collector.d.ts +14 -0
  1613. package/dist/web-server/usage/droid-native-usage-collector.d.ts.map +1 -0
  1614. package/dist/web-server/usage/droid-native-usage-collector.js +201 -0
  1615. package/dist/web-server/usage/droid-native-usage-collector.js.map +1 -0
  1616. package/dist/web-server/usage/handlers.d.ts +11 -8
  1617. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  1618. package/dist/web-server/usage/handlers.js +197 -74
  1619. package/dist/web-server/usage/handlers.js.map +1 -1
  1620. package/dist/web-server/usage/model-identity.d.ts +16 -0
  1621. package/dist/web-server/usage/model-identity.d.ts.map +1 -0
  1622. package/dist/web-server/usage/model-identity.js +70 -0
  1623. package/dist/web-server/usage/model-identity.js.map +1 -0
  1624. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  1625. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  1626. package/dist/web-server/usage/profile-filter.js +35 -0
  1627. package/dist/web-server/usage/profile-filter.js.map +1 -0
  1628. package/dist/web-server/usage/routes.d.ts.map +1 -1
  1629. package/dist/web-server/usage/routes.js +19 -6
  1630. package/dist/web-server/usage/routes.js.map +1 -1
  1631. package/dist/web-server/usage/sqlite-cli.d.ts +27 -0
  1632. package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -0
  1633. package/dist/web-server/usage/sqlite-cli.js +186 -0
  1634. package/dist/web-server/usage/sqlite-cli.js.map +1 -0
  1635. package/dist/web-server/usage/types.d.ts +14 -0
  1636. package/dist/web-server/usage/types.d.ts.map +1 -1
  1637. package/dist/web-server/websocket.d.ts.map +1 -1
  1638. package/dist/web-server/websocket.js +25 -16
  1639. package/dist/web-server/websocket.js.map +1 -1
  1640. package/lib/hooks/image-analyzer-transformer.cjs +54 -3
  1641. package/lib/hooks/websearch-transformer.cjs +136 -0
  1642. package/lib/mcp/ccs-browser-server.cjs +6769 -0
  1643. package/lib/mcp/ccs-websearch-server.cjs +1 -1
  1644. package/package.json +6 -6
  1645. package/scripts/ci-parity-gate.sh +22 -3
  1646. package/scripts/dev-release.sh +4 -2
  1647. package/scripts/ensure-deps.sh +18 -0
  1648. package/scripts/run-test-bucket.js +188 -0
  1649. package/scripts/verify-bundle.js +4 -1
  1650. package/dist/cliproxy/account-manager.d.ts +0 -16
  1651. package/dist/cliproxy/account-manager.d.ts.map +0 -1
  1652. package/dist/cliproxy/account-manager.js +0 -51
  1653. package/dist/cliproxy/account-manager.js.map +0 -1
  1654. package/dist/cliproxy/account-safety.d.ts +0 -92
  1655. package/dist/cliproxy/account-safety.d.ts.map +0 -1
  1656. package/dist/cliproxy/account-safety.js +0 -496
  1657. package/dist/cliproxy/account-safety.js.map +0 -1
  1658. package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
  1659. package/dist/cliproxy/account-stats-key.js.map +0 -1
  1660. package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
  1661. package/dist/cliproxy/antigravity-responsibility.js +0 -171
  1662. package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
  1663. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +0 -40
  1664. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +0 -1
  1665. package/dist/cliproxy/auth/gemini-token-refresh.js +0 -371
  1666. package/dist/cliproxy/auth/gemini-token-refresh.js.map +0 -1
  1667. package/dist/cliproxy/auth-handler.d.ts +0 -31
  1668. package/dist/cliproxy/auth-handler.d.ts.map +0 -1
  1669. package/dist/cliproxy/auth-handler.js +0 -60
  1670. package/dist/cliproxy/auth-handler.js.map +0 -1
  1671. package/dist/cliproxy/auth-session-manager.d.ts +0 -51
  1672. package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
  1673. package/dist/cliproxy/auth-session-manager.js +0 -134
  1674. package/dist/cliproxy/auth-session-manager.js.map +0 -1
  1675. package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
  1676. package/dist/cliproxy/auth-token-manager.js +0 -184
  1677. package/dist/cliproxy/auth-token-manager.js.map +0 -1
  1678. package/dist/cliproxy/auth-utils.d.ts +0 -16
  1679. package/dist/cliproxy/auth-utils.d.ts.map +0 -1
  1680. package/dist/cliproxy/auth-utils.js +0 -33
  1681. package/dist/cliproxy/auth-utils.js.map +0 -1
  1682. package/dist/cliproxy/base-config-loader.d.ts +0 -42
  1683. package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
  1684. package/dist/cliproxy/base-config-loader.js +0 -123
  1685. package/dist/cliproxy/base-config-loader.js.map +0 -1
  1686. package/dist/cliproxy/catalog-cache.d.ts +0 -39
  1687. package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
  1688. package/dist/cliproxy/catalog-cache.js +0 -254
  1689. package/dist/cliproxy/catalog-cache.js.map +0 -1
  1690. package/dist/cliproxy/cliproxy-executor.d.ts +0 -16
  1691. package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
  1692. package/dist/cliproxy/cliproxy-executor.js +0 -27
  1693. package/dist/cliproxy/cliproxy-executor.js.map +0 -1
  1694. package/dist/cliproxy/codex-plan-compatibility.d.ts +0 -39
  1695. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
  1696. package/dist/cliproxy/codex-plan-compatibility.js +0 -134
  1697. package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
  1698. package/dist/cliproxy/codex-reasoning-proxy.d.ts +0 -61
  1699. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
  1700. package/dist/cliproxy/codex-reasoning-proxy.js +0 -495
  1701. package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
  1702. package/dist/cliproxy/composite-validator.d.ts.map +0 -1
  1703. package/dist/cliproxy/composite-validator.js +0 -94
  1704. package/dist/cliproxy/composite-validator.js.map +0 -1
  1705. package/dist/cliproxy/config-generator.d.ts +0 -15
  1706. package/dist/cliproxy/config-generator.d.ts.map +0 -1
  1707. package/dist/cliproxy/config-generator.js +0 -32
  1708. package/dist/cliproxy/config-generator.js.map +0 -1
  1709. package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
  1710. package/dist/cliproxy/device-code-handler.js.map +0 -1
  1711. package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
  1712. package/dist/cliproxy/gemini-cli-quota-normalizer.js +0 -122
  1713. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
  1714. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
  1715. package/dist/cliproxy/https-tunnel-proxy.js +0 -224
  1716. package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
  1717. package/dist/cliproxy/management-api-client.d.ts +0 -81
  1718. package/dist/cliproxy/management-api-client.d.ts.map +0 -1
  1719. package/dist/cliproxy/management-api-client.js +0 -381
  1720. package/dist/cliproxy/management-api-client.js.map +0 -1
  1721. package/dist/cliproxy/management-api-types.d.ts.map +0 -1
  1722. package/dist/cliproxy/management-api-types.js.map +0 -1
  1723. package/dist/cliproxy/model-config.d.ts +0 -31
  1724. package/dist/cliproxy/model-config.d.ts.map +0 -1
  1725. package/dist/cliproxy/model-config.js +0 -271
  1726. package/dist/cliproxy/model-config.js.map +0 -1
  1727. package/dist/cliproxy/model-id-normalizer.d.ts +0 -105
  1728. package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
  1729. package/dist/cliproxy/model-id-normalizer.js +0 -241
  1730. package/dist/cliproxy/model-id-normalizer.js.map +0 -1
  1731. package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
  1732. package/dist/cliproxy/openai-compat-manager.js +0 -191
  1733. package/dist/cliproxy/openai-compat-manager.js.map +0 -1
  1734. package/dist/cliproxy/platform-detector.d.ts +0 -99
  1735. package/dist/cliproxy/platform-detector.d.ts.map +0 -1
  1736. package/dist/cliproxy/platform-detector.js +0 -174
  1737. package/dist/cliproxy/platform-detector.js.map +0 -1
  1738. package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
  1739. package/dist/cliproxy/project-selection-handler.js.map +0 -1
  1740. package/dist/cliproxy/proxy-config-resolver.d.ts +0 -87
  1741. package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
  1742. package/dist/cliproxy/proxy-config-resolver.js +0 -254
  1743. package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
  1744. package/dist/cliproxy/proxy-detector.d.ts +0 -72
  1745. package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
  1746. package/dist/cliproxy/proxy-detector.js +0 -196
  1747. package/dist/cliproxy/proxy-detector.js.map +0 -1
  1748. package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
  1749. package/dist/cliproxy/proxy-target-resolver.js +0 -108
  1750. package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
  1751. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +0 -18
  1752. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
  1753. package/dist/cliproxy/quota-fetcher-claude-normalizer.js +0 -291
  1754. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
  1755. package/dist/cliproxy/quota-fetcher-claude.d.ts +0 -21
  1756. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
  1757. package/dist/cliproxy/quota-fetcher-claude.js +0 -306
  1758. package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
  1759. package/dist/cliproxy/quota-fetcher-codex.d.ts +0 -69
  1760. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
  1761. package/dist/cliproxy/quota-fetcher-codex.js +0 -599
  1762. package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
  1763. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
  1764. package/dist/cliproxy/quota-fetcher-gemini-cli.js +0 -661
  1765. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
  1766. package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
  1767. package/dist/cliproxy/quota-fetcher-ghcp.js +0 -207
  1768. package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
  1769. package/dist/cliproxy/quota-fetcher.d.ts +0 -107
  1770. package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
  1771. package/dist/cliproxy/quota-fetcher.js +0 -657
  1772. package/dist/cliproxy/quota-fetcher.js.map +0 -1
  1773. package/dist/cliproxy/quota-manager.d.ts +0 -105
  1774. package/dist/cliproxy/quota-manager.d.ts.map +0 -1
  1775. package/dist/cliproxy/quota-manager.js +0 -485
  1776. package/dist/cliproxy/quota-manager.js.map +0 -1
  1777. package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
  1778. package/dist/cliproxy/quota-response-cache.js.map +0 -1
  1779. package/dist/cliproxy/quota-types.d.ts +0 -245
  1780. package/dist/cliproxy/quota-types.d.ts.map +0 -1
  1781. package/dist/cliproxy/quota-types.js.map +0 -1
  1782. package/dist/cliproxy/remote-auth-fetcher.d.ts +0 -30
  1783. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
  1784. package/dist/cliproxy/remote-auth-fetcher.js +0 -177
  1785. package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
  1786. package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
  1787. package/dist/cliproxy/remote-proxy-client.js +0 -281
  1788. package/dist/cliproxy/remote-proxy-client.js.map +0 -1
  1789. package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
  1790. package/dist/cliproxy/remote-token-uploader.js +0 -178
  1791. package/dist/cliproxy/remote-token-uploader.js.map +0 -1
  1792. package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
  1793. package/dist/cliproxy/schema-sanitizer.js.map +0 -1
  1794. package/dist/cliproxy/startup-lock.d.ts.map +0 -1
  1795. package/dist/cliproxy/startup-lock.js +0 -216
  1796. package/dist/cliproxy/startup-lock.js.map +0 -1
  1797. package/dist/cliproxy/stats-fetcher.d.ts +0 -158
  1798. package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
  1799. package/dist/cliproxy/stats-fetcher.js +0 -246
  1800. package/dist/cliproxy/stats-fetcher.js.map +0 -1
  1801. package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
  1802. package/dist/cliproxy/stats-transformer.js +0 -152
  1803. package/dist/cliproxy/stats-transformer.js.map +0 -1
  1804. package/dist/cliproxy/tool-name-mapper.d.ts +0 -103
  1805. package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
  1806. package/dist/cliproxy/tool-name-mapper.js +0 -149
  1807. package/dist/cliproxy/tool-name-mapper.js.map +0 -1
  1808. package/dist/cliproxy/tool-name-sanitizer.d.ts +0 -65
  1809. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
  1810. package/dist/cliproxy/tool-name-sanitizer.js +0 -118
  1811. package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
  1812. package/dist/cliproxy/tool-sanitization-proxy.d.ts +0 -77
  1813. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
  1814. package/dist/cliproxy/tool-sanitization-proxy.js +0 -643
  1815. package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
  1816. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts +0 -9
  1817. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts.map +0 -1
  1818. package/dist/commands/cliproxy/resolve-lifecycle-port.js +0 -14
  1819. package/dist/commands/cliproxy/resolve-lifecycle-port.js.map +0 -1
  1820. package/dist/ui/assets/accounts-DhtktAIG.js +0 -1
  1821. package/dist/ui/assets/alert-dialog-DQK2Jxfk.js +0 -1
  1822. package/dist/ui/assets/api-Den1YY2d.js +0 -4
  1823. package/dist/ui/assets/auth-section-BQitOLMK.js +0 -1
  1824. package/dist/ui/assets/backups-section-BLGK5re-.js +0 -1
  1825. package/dist/ui/assets/channels-Dop1axTi.js +0 -1
  1826. package/dist/ui/assets/charts-BBPXh0Ar.js +0 -64
  1827. package/dist/ui/assets/checkbox-DDrDuGxi.js +0 -1
  1828. package/dist/ui/assets/claude-extension-6WjTc0o8.js +0 -1
  1829. package/dist/ui/assets/cliproxy-Ch7RdSMG.js +0 -3
  1830. package/dist/ui/assets/cliproxy-ai-providers-DjybBlb5.js +0 -21
  1831. package/dist/ui/assets/cliproxy-control-panel-DDif_QAT.js +0 -1
  1832. package/dist/ui/assets/code-highlight-BRUf_pqB.js +0 -3
  1833. package/dist/ui/assets/codex-DFAV50Ee.js +0 -27
  1834. package/dist/ui/assets/confirm-dialog-CP26_Zko.js +0 -1
  1835. package/dist/ui/assets/copilot-uZuyhqwv.js +0 -3
  1836. package/dist/ui/assets/cursor-CuaM2FmN.js +0 -1
  1837. package/dist/ui/assets/droid-DdjXJ2lF.js +0 -2
  1838. package/dist/ui/assets/form-utils-Bcoyqxpq.js +0 -20
  1839. package/dist/ui/assets/globalenv-section-D5_-EIlf.js +0 -1
  1840. package/dist/ui/assets/health-BHhVKLNR.js +0 -1
  1841. package/dist/ui/assets/icons-CQ3MLSan.js +0 -1
  1842. package/dist/ui/assets/index-B8bAYHAs.js +0 -1
  1843. package/dist/ui/assets/index-Ba-43jCS.js +0 -1
  1844. package/dist/ui/assets/index-Bb2CPQik.css +0 -1
  1845. package/dist/ui/assets/index-Bm09kGOw.js +0 -1
  1846. package/dist/ui/assets/index-DHY37v8a.js +0 -1
  1847. package/dist/ui/assets/index-DLCFe4s3.js +0 -1
  1848. package/dist/ui/assets/index-TSYtCr3K.js +0 -69
  1849. package/dist/ui/assets/masked-input-CTkIqCMg.js +0 -1
  1850. package/dist/ui/assets/notifications-B2HqRBj7.js +0 -1
  1851. package/dist/ui/assets/proxy-status-widget-DPhKjJFl.js +0 -1
  1852. package/dist/ui/assets/radix-ui-BlliRfHq.js +0 -51
  1853. package/dist/ui/assets/raw-json-settings-editor-panel-DQr_y0E4.js +0 -1
  1854. package/dist/ui/assets/react-vendor-CNOkPC89.js +0 -3
  1855. package/dist/ui/assets/searchable-select-C2sP7JW5.js +0 -1
  1856. package/dist/ui/assets/separator-2lt47Sla.js +0 -1
  1857. package/dist/ui/assets/shared-DPKtsiFQ.js +0 -8
  1858. package/dist/ui/assets/table-DbsFACgT.js +0 -1
  1859. package/dist/ui/assets/tanstack-BjiH4QZq.js +0 -4
  1860. package/dist/ui/assets/updates-C5iL4KNn.js +0 -1
  1861. package/scripts/github/build-ai-review-packet.mjs +0 -242
  1862. package/scripts/github/normalize-ai-review-output.mjs +0 -934
  1863. package/scripts/github/prepare-ai-review-scope.mjs +0 -324
  1864. package/scripts/github/run-ai-review-direct.mjs +0 -349
  1865. /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
  1866. /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
  1867. /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
  1868. /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
  1869. /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
  1870. /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
  1871. /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
  1872. /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
  1873. /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
  1874. /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
  1875. /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
  1876. /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
  1877. /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
  1878. /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
  1879. /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
  1880. /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
  1881. /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
  1882. /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
  1883. /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
  1884. /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
  1885. /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
  1886. /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
  1887. /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
  1888. /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
  1889. /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
  1890. /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
@@ -1 +0,0 @@
1
- import{j as s}from"./radix-ui-BlliRfHq.js";import{r}from"./react-vendor-CNOkPC89.js";import{I as i,d as m}from"./index-TSYtCr3K.js";import{E as l,f as n}from"./icons-CQ3MLSan.js";function d({label:e,...a}){const[t,o]=r.useState(!1);return s.jsxs("div",{className:"space-y-1",children:[e&&s.jsx("label",{className:"text-sm font-medium",children:e}),s.jsxs("div",{className:"relative",children:[s.jsx(i,{type:t?"text":"password",className:"pr-10 font-mono",...a}),s.jsx(m,{type:"button",variant:"ghost",size:"sm",className:"absolute right-0 top-0 h-full px-3",onClick:()=>o(!t),tabIndex:-1,children:t?s.jsx(l,{className:"w-4 h-4"}):s.jsx(n,{className:"w-4 h-4"})})]})]})}export{d as M};
@@ -1 +0,0 @@
1
- import{c as a,b as Ut}from"./react-vendor-CNOkPC89.js";function Xt(r){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",o.appendChild(e),e.styleSheet?e.styleSheet.cssText=r:e.appendChild(document.createTextNode(r))}const Wt=r=>{switch(r){case"success":return Gt;case"info":return Jt;case"warning":return Qt;case"error":return Zt;default:return null}},Kt=Array(12).fill(0),qt=({visible:r,className:o})=>a.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},a.createElement("div",{className:"sonner-spinner"},Kt.map((e,s)=>a.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),Gt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Qt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Jt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Zt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),te=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),ee=()=>{const[r,o]=a.useState(document.hidden);return a.useEffect(()=>{const e=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),r};let xt=1;class ae{constructor(){this.subscribe=o=>(this.subscribers.push(o),()=>{const e=this.subscribers.indexOf(o);this.subscribers.splice(e,1)}),this.publish=o=>{this.subscribers.forEach(e=>e(o))},this.addToast=o=>{this.publish(o),this.toasts=[...this.toasts,o]},this.create=o=>{var e;const{message:s,...C}=o,u=typeof o?.id=="number"||((e=o.id)==null?void 0:e.length)>0?o.id:xt++,g=this.toasts.find(b=>b.id===u),_=o.dismissible===void 0?!0:o.dismissible;return this.dismissedToasts.has(u)&&this.dismissedToasts.delete(u),g?this.toasts=this.toasts.map(b=>b.id===u?(this.publish({...b,...o,id:u,title:s}),{...b,...o,id:u,dismissible:_,title:s}):b):this.addToast({title:s,...C,dismissible:_,id:u}),u},this.dismiss=o=>(o?(this.dismissedToasts.add(o),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:o,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(s=>s({id:e.id,dismiss:!0}))}),o),this.message=(o,e)=>this.create({...e,message:o}),this.error=(o,e)=>this.create({...e,message:o,type:"error"}),this.success=(o,e)=>this.create({...e,type:"success",message:o}),this.info=(o,e)=>this.create({...e,type:"info",message:o}),this.warning=(o,e)=>this.create({...e,type:"warning",message:o}),this.loading=(o,e)=>this.create({...e,type:"loading",message:o}),this.promise=(o,e)=>{if(!e)return;let s;e.loading!==void 0&&(s=this.create({...e,promise:o,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));const C=Promise.resolve(o instanceof Function?o():o);let u=s!==void 0,g;const _=C.then(async i=>{if(g=["resolve",i],a.isValidElement(i))u=!1,this.create({id:s,type:"default",message:i});else if(se(i)&&!i.ok){u=!1;const t=typeof e.error=="function"?await e.error(`HTTP error! status: ${i.status}`):e.error,x=typeof e.description=="function"?await e.description(`HTTP error! status: ${i.status}`):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:x,...E})}else if(i instanceof Error){u=!1;const t=typeof e.error=="function"?await e.error(i):e.error,x=typeof e.description=="function"?await e.description(i):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:x,...E})}else if(e.success!==void 0){u=!1;const t=typeof e.success=="function"?await e.success(i):e.success,x=typeof e.description=="function"?await e.description(i):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"success",description:x,...E})}}).catch(async i=>{if(g=["reject",i],e.error!==void 0){u=!1;const T=typeof e.error=="function"?await e.error(i):e.error,t=typeof e.description=="function"?await e.description(i):e.description,O=typeof T=="object"&&!a.isValidElement(T)?T:{message:T};this.create({id:s,type:"error",description:t,...O})}}).finally(()=>{u&&(this.dismiss(s),s=void 0),e.finally==null||e.finally.call(e)}),b=()=>new Promise((i,T)=>_.then(()=>g[0]==="reject"?T(g[1]):i(g[1])).catch(T));return typeof s!="string"&&typeof s!="number"?{unwrap:b}:Object.assign(s,{unwrap:b})},this.custom=(o,e)=>{const s=e?.id||xt++;return this.create({jsx:o(s),id:s,...e}),s},this.getActiveToasts=()=>this.toasts.filter(o=>!this.dismissedToasts.has(o.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const S=new ae,oe=(r,o)=>{const e=o?.id||xt++;return S.addToast({title:r,...o,id:e}),e},se=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",ne=oe,re=()=>S.toasts,ie=()=>S.getActiveToasts(),we=Object.assign(ne,{success:S.success,info:S.info,warning:S.warning,error:S.error,custom:S.custom,message:S.message,promise:S.promise,dismiss:S.dismiss,loading:S.loading},{getHistory:re,getToasts:ie});Xt("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function mt(r){return r.label!==void 0}const le=3,de="24px",ce="16px",Mt=4e3,ue=356,fe=14,me=45,pe=200;function H(...r){return r.filter(Boolean).join(" ")}function ge(r){const[o,e]=r.split("-"),s=[];return o&&s.push(o),e&&s.push(e),s}const he=r=>{var o,e,s,C,u,g,_,b,i;const{invert:T,toast:t,unstyled:x,interacting:O,setHeights:E,visibleToasts:pt,heights:U,index:d,toasts:ot,expanded:X,removeToast:st,defaultRichColors:gt,closeButton:z,style:Z,cancelButtonStyle:Y,actionButtonStyle:ht,className:nt="",descriptionClassName:bt="",duration:tt,position:A,gap:rt,expandByDefault:et,classNames:c,icons:v,closeButtonAriaLabel:j="Close toast"}=r,[$,B]=a.useState(null),[F,it]=a.useState(null),[l,p]=a.useState(!1),[m,D]=a.useState(!1),[W,f]=a.useState(!1),[K,lt]=a.useState(!1),[dt,q]=a.useState(!1),[Ct,vt]=a.useState(0),[At,Et]=a.useState(0),at=a.useRef(t.duration||tt||Mt),Tt=a.useRef(null),P=a.useRef(null),Ht=d===0,Ot=d+1<=pt,N=t.type,G=t.dismissible!==!1,zt=t.className||"",Pt=t.descriptionClassName||"",ct=a.useMemo(()=>U.findIndex(n=>n.toastId===t.id)||0,[U,t.id]),jt=a.useMemo(()=>{var n;return(n=t.closeButton)!=null?n:z},[t.closeButton,z]),St=a.useMemo(()=>t.duration||tt||Mt,[t.duration,tt]),yt=a.useRef(0),Q=a.useRef(0),Nt=a.useRef(0),J=a.useRef(null),[Lt,Yt]=A.split("-"),kt=a.useMemo(()=>U.reduce((n,h,w)=>w>=ct?n:n+h.height,0),[U,ct]),_t=ee(),$t=t.invert||T,wt=N==="loading";Q.current=a.useMemo(()=>ct*rt+kt,[ct,kt]),a.useEffect(()=>{at.current=St},[St]),a.useEffect(()=>{p(!0)},[]),a.useEffect(()=>{const n=P.current;if(n){const h=n.getBoundingClientRect().height;return Et(h),E(w=>[{toastId:t.id,height:h,position:t.position},...w]),()=>E(w=>w.filter(k=>k.toastId!==t.id))}},[E,t.id]),a.useLayoutEffect(()=>{if(!l)return;const n=P.current,h=n.style.height;n.style.height="auto";const w=n.getBoundingClientRect().height;n.style.height=h,Et(w),E(k=>k.find(y=>y.toastId===t.id)?k.map(y=>y.toastId===t.id?{...y,height:w}:y):[{toastId:t.id,height:w,position:t.position},...k])},[l,t.title,t.description,E,t.id,t.jsx,t.action,t.cancel]);const L=a.useCallback(()=>{D(!0),vt(Q.current),E(n=>n.filter(h=>h.toastId!==t.id)),setTimeout(()=>{st(t)},pe)},[t,st,E,Q]);a.useEffect(()=>{if(t.promise&&N==="loading"||t.duration===1/0||t.type==="loading")return;let n;return X||O||_t?(()=>{if(Nt.current<yt.current){const k=new Date().getTime()-yt.current;at.current=at.current-k}Nt.current=new Date().getTime()})():(()=>{at.current!==1/0&&(yt.current=new Date().getTime(),n=setTimeout(()=>{t.onAutoClose==null||t.onAutoClose.call(t,t),L()},at.current))})(),()=>clearTimeout(n)},[X,O,t,N,_t,L]),a.useEffect(()=>{t.delete&&(L(),t.onDismiss==null||t.onDismiss.call(t,t))},[L,t.delete]);function Ft(){var n;if(v?.loading){var h;return a.createElement("div",{className:H(c?.loader,t==null||(h=t.classNames)==null?void 0:h.loader,"sonner-loader"),"data-visible":N==="loading"},v.loading)}return a.createElement(qt,{className:H(c?.loader,t==null||(n=t.classNames)==null?void 0:n.loader),visible:N==="loading"})}const Vt=t.icon||v?.[N]||Wt(N);var Dt,Rt;return a.createElement("li",{tabIndex:0,ref:P,className:H(nt,zt,c?.toast,t==null||(o=t.classNames)==null?void 0:o.toast,c?.default,c?.[N],t==null||(e=t.classNames)==null?void 0:e[N]),"data-sonner-toast":"","data-rich-colors":(Dt=t.richColors)!=null?Dt:gt,"data-styled":!(t.jsx||t.unstyled||x),"data-mounted":l,"data-promise":!!t.promise,"data-swiped":dt,"data-removed":m,"data-visible":Ot,"data-y-position":Lt,"data-x-position":Yt,"data-index":d,"data-front":Ht,"data-swiping":W,"data-dismissible":G,"data-type":N,"data-invert":$t,"data-swipe-out":K,"data-swipe-direction":F,"data-expanded":!!(X||et&&l),"data-testid":t.testId,style:{"--index":d,"--toasts-before":d,"--z-index":ot.length-d,"--offset":`${m?Ct:Q.current}px`,"--initial-height":et?"auto":`${At}px`,...Z,...t.style},onDragEnd:()=>{f(!1),B(null),J.current=null},onPointerDown:n=>{n.button!==2&&(wt||!G||(Tt.current=new Date,vt(Q.current),n.target.setPointerCapture(n.pointerId),n.target.tagName!=="BUTTON"&&(f(!0),J.current={x:n.clientX,y:n.clientY})))},onPointerUp:()=>{var n,h,w;if(K||!G)return;J.current=null;const k=Number(((n=P.current)==null?void 0:n.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),ut=Number(((h=P.current)==null?void 0:h.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),y=new Date().getTime()-((w=Tt.current)==null?void 0:w.getTime()),R=$==="x"?k:ut,ft=Math.abs(R)/y;if(Math.abs(R)>=me||ft>.11){vt(Q.current),t.onDismiss==null||t.onDismiss.call(t,t),it($==="x"?k>0?"right":"left":ut>0?"down":"up"),L(),lt(!0);return}else{var M,I;(M=P.current)==null||M.style.setProperty("--swipe-amount-x","0px"),(I=P.current)==null||I.style.setProperty("--swipe-amount-y","0px")}q(!1),f(!1),B(null)},onPointerMove:n=>{var h,w,k;if(!J.current||!G||((h=window.getSelection())==null?void 0:h.toString().length)>0)return;const y=n.clientY-J.current.y,R=n.clientX-J.current.x;var ft;const M=(ft=r.swipeDirections)!=null?ft:ge(A);!$&&(Math.abs(R)>1||Math.abs(y)>1)&&B(Math.abs(R)>Math.abs(y)?"x":"y");let I={x:0,y:0};const Bt=V=>1/(1.5+Math.abs(V)/20);if($==="y"){if(M.includes("top")||M.includes("bottom"))if(M.includes("top")&&y<0||M.includes("bottom")&&y>0)I.y=y;else{const V=y*Bt(y);I.y=Math.abs(V)<Math.abs(y)?V:y}}else if($==="x"&&(M.includes("left")||M.includes("right")))if(M.includes("left")&&R<0||M.includes("right")&&R>0)I.x=R;else{const V=R*Bt(R);I.x=Math.abs(V)<Math.abs(R)?V:R}(Math.abs(I.x)>0||Math.abs(I.y)>0)&&q(!0),(w=P.current)==null||w.style.setProperty("--swipe-amount-x",`${I.x}px`),(k=P.current)==null||k.style.setProperty("--swipe-amount-y",`${I.y}px`)}},jt&&!t.jsx&&N!=="loading"?a.createElement("button",{"aria-label":j,"data-disabled":wt,"data-close-button":!0,onClick:wt||!G?()=>{}:()=>{L(),t.onDismiss==null||t.onDismiss.call(t,t)},className:H(c?.closeButton,t==null||(s=t.classNames)==null?void 0:s.closeButton)},(Rt=v?.close)!=null?Rt:te):null,(N||t.icon||t.promise)&&t.icon!==null&&(v?.[N]!==null||t.icon)?a.createElement("div",{"data-icon":"",className:H(c?.icon,t==null||(C=t.classNames)==null?void 0:C.icon)},t.promise||t.type==="loading"&&!t.icon?t.icon||Ft():null,t.type!=="loading"?Vt:null):null,a.createElement("div",{"data-content":"",className:H(c?.content,t==null||(u=t.classNames)==null?void 0:u.content)},a.createElement("div",{"data-title":"",className:H(c?.title,t==null||(g=t.classNames)==null?void 0:g.title)},t.jsx?t.jsx:typeof t.title=="function"?t.title():t.title),t.description?a.createElement("div",{"data-description":"",className:H(bt,Pt,c?.description,t==null||(_=t.classNames)==null?void 0:_.description)},typeof t.description=="function"?t.description():t.description):null),a.isValidElement(t.cancel)?t.cancel:t.cancel&&mt(t.cancel)?a.createElement("button",{"data-button":!0,"data-cancel":!0,style:t.cancelButtonStyle||Y,onClick:n=>{mt(t.cancel)&&G&&(t.cancel.onClick==null||t.cancel.onClick.call(t.cancel,n),L())},className:H(c?.cancelButton,t==null||(b=t.classNames)==null?void 0:b.cancelButton)},t.cancel.label):null,a.isValidElement(t.action)?t.action:t.action&&mt(t.action)?a.createElement("button",{"data-button":!0,"data-action":!0,style:t.actionButtonStyle||ht,onClick:n=>{mt(t.action)&&(t.action.onClick==null||t.action.onClick.call(t.action,n),!n.defaultPrevented&&L())},className:H(c?.actionButton,t==null||(i=t.classNames)==null?void 0:i.actionButton)},t.action.label):null)};function It(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function be(r,o){const e={};return[r,o].forEach((s,C)=>{const u=C===1,g=u?"--mobile-offset":"--offset",_=u?ce:de;function b(i){["top","right","bottom","left"].forEach(T=>{e[`${g}-${T}`]=typeof i=="number"?`${i}px`:i})}typeof s=="number"||typeof s=="string"?b(s):typeof s=="object"?["top","right","bottom","left"].forEach(i=>{s[i]===void 0?e[`${g}-${i}`]=_:e[`${g}-${i}`]=typeof s[i]=="number"?`${s[i]}px`:s[i]}):b(_)}),e}const xe=a.forwardRef(function(o,e){const{id:s,invert:C,position:u="bottom-right",hotkey:g=["altKey","KeyT"],expand:_,closeButton:b,className:i,offset:T,mobileOffset:t,theme:x="light",richColors:O,duration:E,style:pt,visibleToasts:U=le,toastOptions:d,dir:ot=It(),gap:X=fe,icons:st,containerAriaLabel:gt="Notifications"}=o,[z,Z]=a.useState([]),Y=a.useMemo(()=>s?z.filter(l=>l.toasterId===s):z.filter(l=>!l.toasterId),[z,s]),ht=a.useMemo(()=>Array.from(new Set([u].concat(Y.filter(l=>l.position).map(l=>l.position)))),[Y,u]),[nt,bt]=a.useState([]),[tt,A]=a.useState(!1),[rt,et]=a.useState(!1),[c,v]=a.useState(x!=="system"?x:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),j=a.useRef(null),$=g.join("+").replace(/Key/g,"").replace(/Digit/g,""),B=a.useRef(null),F=a.useRef(!1),it=a.useCallback(l=>{Z(p=>{var m;return(m=p.find(D=>D.id===l.id))!=null&&m.delete||S.dismiss(l.id),p.filter(({id:D})=>D!==l.id)})},[]);return a.useEffect(()=>S.subscribe(l=>{if(l.dismiss){requestAnimationFrame(()=>{Z(p=>p.map(m=>m.id===l.id?{...m,delete:!0}:m))});return}setTimeout(()=>{Ut.flushSync(()=>{Z(p=>{const m=p.findIndex(D=>D.id===l.id);return m!==-1?[...p.slice(0,m),{...p[m],...l},...p.slice(m+1)]:[l,...p]})})})}),[z]),a.useEffect(()=>{if(x!=="system"){v(x);return}if(x==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?v("dark"):v("light")),typeof window>"u")return;const l=window.matchMedia("(prefers-color-scheme: dark)");try{l.addEventListener("change",({matches:p})=>{v(p?"dark":"light")})}catch{l.addListener(({matches:m})=>{try{v(m?"dark":"light")}catch(D){console.error(D)}})}},[x]),a.useEffect(()=>{z.length<=1&&A(!1)},[z]),a.useEffect(()=>{const l=p=>{var m;if(g.every(f=>p[f]||p.code===f)){var W;A(!0),(W=j.current)==null||W.focus()}p.code==="Escape"&&(document.activeElement===j.current||(m=j.current)!=null&&m.contains(document.activeElement))&&A(!1)};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[g]),a.useEffect(()=>{if(j.current)return()=>{B.current&&(B.current.focus({preventScroll:!0}),B.current=null,F.current=!1)}},[j.current]),a.createElement("section",{ref:e,"aria-label":`${gt} ${$}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},ht.map((l,p)=>{var m;const[D,W]=l.split("-");return Y.length?a.createElement("ol",{key:l,dir:ot==="auto"?It():ot,tabIndex:-1,ref:j,className:i,"data-sonner-toaster":!0,"data-sonner-theme":c,"data-y-position":D,"data-x-position":W,style:{"--front-toast-height":`${((m=nt[0])==null?void 0:m.height)||0}px`,"--width":`${ue}px`,"--gap":`${X}px`,...pt,...be(T,t)},onBlur:f=>{F.current&&!f.currentTarget.contains(f.relatedTarget)&&(F.current=!1,B.current&&(B.current.focus({preventScroll:!0}),B.current=null))},onFocus:f=>{f.target instanceof HTMLElement&&f.target.dataset.dismissible==="false"||F.current||(F.current=!0,B.current=f.relatedTarget)},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{rt||A(!1)},onDragEnd:()=>A(!1),onPointerDown:f=>{f.target instanceof HTMLElement&&f.target.dataset.dismissible==="false"||et(!0)},onPointerUp:()=>et(!1)},Y.filter(f=>!f.position&&p===0||f.position===l).map((f,K)=>{var lt,dt;return a.createElement(he,{key:f.id,icons:st,index:K,toast:f,defaultRichColors:O,duration:(lt=d?.duration)!=null?lt:E,className:d?.className,descriptionClassName:d?.descriptionClassName,invert:C,visibleToasts:U,closeButton:(dt=d?.closeButton)!=null?dt:b,interacting:rt,position:l,style:d?.style,unstyled:d?.unstyled,classNames:d?.classNames,cancelButtonStyle:d?.cancelButtonStyle,actionButtonStyle:d?.actionButtonStyle,closeButtonAriaLabel:d?.closeButtonAriaLabel,removeToast:it,toasts:Y.filter(q=>q.position==f.position),heights:nt.filter(q=>q.position==f.position),setHeights:bt,expandByDefault:_,gap:X,expanded:tt,swipeDirections:o.swipeDirections})})):null}))});export{xe as T,we as t};
@@ -1 +0,0 @@
1
- import{j as s}from"./radix-ui-BlliRfHq.js";import{g as Se,r as j}from"./react-vendor-CNOkPC89.js";import{bo as me,bp as pe,bq as xe,br as Ce,bs as M,bt as J,bu as U,bv as Ae,bw as we,a as Ee,bn as ke,aR as Ve,bx as Te,by as Pe,bz as $e,bA as We,bB as Ie,c as q,B as oe,aE as De,U as Oe,W as Re,v as Fe,w as Le,x as Ue,y as qe,z as _e,d as ne,T as Me,s as ze,t as Be,q as He}from"./index-TSYtCr3K.js";import{A as Ke,a as Ze,b as Qe,c as Xe,d as Je,e as Ye,f as Ge,g as et}from"./alert-dialog-DQK2Jxfk.js";import{u as fe,a as tt,b as st,h as nt}from"./tanstack-BjiH4QZq.js";import{t as Y}from"./notifications-B2HqRBj7.js";import{s as rt,A as at,R as B,b5 as it,b6 as ot,b7 as lt,X as ct,d as ut,b8 as dt,b9 as mt,U as pt,t as xt,k as ft,u as gt,aw as ht,T as G,aI as yt}from"./icons-CQ3MLSan.js";var ee,le;function bt(){return le||(le=1,ee={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),ee}var jt=bt();const Nt=Se(jt);var vt=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function ce(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(Nt[n[1]]||e.charAt(e.length-2)==="/")&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("-->");return{type:"comment",comment:r!==-1?e.slice(4,r):""}}for(var a=new RegExp(vt),i=null;(i=a.exec(e))!==null;)if(i[0].trim())if(i[1]){var o=i[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),t.attrs[c[0]]=c[1],a.lastIndex--}else i[2]&&(t.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return t}var St=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,Ct=/^\s*$/,At=Object.create(null);function ge(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?(function(n){var r=[];for(var a in n)r.push(a+'="'+n[a]+'"');return r.length?" "+r.join(" "):""})(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(ge,"")+"</"+t.name+">";case"comment":return e+"<!--"+t.comment+"-->"}}var wt={parse:function(e,t){t||(t={}),t.components||(t.components=At);var n,r=[],a=[],i=-1,o=!1;if(e.indexOf("<")!==0){var c=e.indexOf("<");r.push({type:"text",content:c===-1?e:e.substring(0,c)})}return e.replace(St,function(d,u){if(o){if(d!=="</"+n.name+">")return;o=!1}var f,E=d.charAt(1)!=="/",V=d.startsWith("<!--"),p=u+d.length,m=e.charAt(p);if(V){var N=ce(d);return i<0?(r.push(N),r):((f=a[i]).children.push(N),r)}if(E&&(i++,(n=ce(d)).type==="tag"&&t.components[n.name]&&(n.type="component",o=!0),n.voidElement||o||!m||m==="<"||n.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),i===0&&r.push(n),(f=a[i-1])&&f.children.push(n),a[i]=n),(!E||n.voidElement)&&(i>-1&&(n.voidElement||n.name===d.slice(2,-1))&&(i--,n=i===-1?r:a[i]),!o&&m!=="<"&&m)){f=i===-1?r:a[i].children;var b=e.indexOf("<",p),P=e.slice(p,b===-1?void 0:b);Ct.test(P)&&(P=" "),(b>-1&&i+f.length>=0||P!==" ")&&f.push({type:"text",content:P})}}),r},stringify:function(e){return e.reduce(function(t,n){return t+ge("",n)},"")}};const K=(e,t)=>{if(!e)return!1;const n=e.props?.children??e.children;return t?n.length>0:!!n},Z=e=>{if(!e)return[];const t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?_(t):t},Et=e=>Array.isArray(e)&&e.every(j.isValidElement),_=e=>Array.isArray(e)?e:[e],kt=(e,t)=>{const n={...t};return n.props={...t.props,...e.props},n},Vt=e=>{const t={};if(!e)return t;const n=r=>{_(r).forEach(i=>{M(i)||(K(i)?n(Z(i)):U(i)&&!j.isValidElement(i)&&Object.assign(t,i))})};return n(e),t},he=(e,t,n,r)=>{if(!e)return"";let a="";const i=_(e),o=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return i.forEach((c,d)=>{if(M(c)){a+=`${c}`;return}if(j.isValidElement(c)){const{props:u,type:f}=c,E=Object.keys(u).length,V=o.indexOf(f)>-1,p=u.children;if(!p&&V&&!E){a+=`<${f}/>`;return}if(!p&&(!V||E)||u.i18nIsDynamicList){a+=`<${d}></${d}>`;return}if(V&&E===1&&M(p)){a+=`<${f}>${p}</${f}>`;return}const m=he(p,t,n,r);a+=`<${d}>${m}</${d}>`;return}if(c===null){J(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:r});return}if(U(c)){const{format:u,...f}=c,E=Object.keys(f);if(E.length===1){const V=u?`${E[0]}, ${u}`:E[0];a+=`{{${V}}}`;return}J(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:r,child:c});return}J(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:r,child:c})}),a},Tt=(e,t=[],n={})=>{if(!e)return e;const r=Object.keys(n),a=[...t,...r];let i="",o=0;for(;o<e.length;)if(e[o]==="<"){let c=!1;const d=e.slice(o).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9_-]*)>/);if(d){const u=d[1];(/^\d+$/.test(u)||a.includes(u))&&(c=!0,i+=d[0],o+=d[0].length)}if(!c){const u=e.slice(o).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9_-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(u){const f=u[1];(/^\d+$/.test(f)||a.includes(f))&&(c=!0,i+=u[0],o+=u[0].length)}}c||(i+="&lt;",o+=1)}else i+=e[o],o+=1;return i},Pt=(e,t,n,r,a,i,o)=>{if(n==="")return[];const c=a.transKeepBasicHtmlNodesFor||[],d=n&&new RegExp(c.map(x=>`<${x}`).join("|")).test(n);if(!e&&!t&&!d&&!o)return[n];const u=t??{},f=x=>{_(x).forEach(g=>{M(g)||(K(g)?f(Z(g)):U(g)&&!j.isValidElement(g)&&Object.assign(u,g))})};f(e);const E=Tt(n,c,u),V=wt.parse(`<0>${E}</0>`),p={...u,...i},m=(x,k,g)=>{const C=Z(x),I=b(C,k.children,g);return Et(C)&&I.length===0||x.props?.i18nIsDynamicList?C:I},N=(x,k,g,C,I)=>{x.dummy?(x.children=k,g.push(j.cloneElement(x,{key:C},I?void 0:k))):g.push(...j.Children.map([x],h=>{const l="data-i18n-is-dynamic-list",A={key:C,[l]:void 0};return h&&h.props&&Object.keys(h.props).forEach(T=>{T==="ref"||T==="children"||T==="i18nIsDynamicList"||T===l||(A[T]=h.props[T])}),j.cloneElement(h,A,I?null:k)}))},b=(x,k,g)=>{const C=_(x);return _(k).reduce((h,l,A)=>{const T=l.children?.[0]?.content&&r.services.interpolator.interpolate(l.children[0].content,p,r.language);if(l.type==="tag"){let v=C[parseInt(l.name,10)];!v&&t&&(v=t[l.name]),g.length===1&&!v&&(v=g[0][l.name]),v||(v={});const W={...l.attrs};o&&Object.keys(W).forEach(y=>{const F=W[y];M(F)&&(W[y]=Ae(F))});const S=Object.keys(W).length!==0?kt({props:W},v):v,$=j.isValidElement(S),R=$&&K(l,!0)&&!l.voidElement,D=d&&U(S)&&S.dummy&&!$,z=U(t)&&Object.hasOwnProperty.call(t,l.name);if(M(S)){const y=r.services.interpolator.interpolate(S,p,r.language);h.push(y)}else if(K(S)||R){const y=m(S,l,g);N(S,y,h,A)}else if(D){const y=b(C,l.children,g);N(S,y,h,A)}else if(Number.isNaN(parseFloat(l.name)))if(z){const y=m(S,l,g);N(S,y,h,A,l.voidElement)}else if(a.transSupportBasicHtmlNodes&&c.indexOf(l.name)>-1)if(l.voidElement)h.push(j.createElement(l.name,{key:`${l.name}-${A}`}));else{const y=b(C,l.children,g);h.push(j.createElement(l.name,{key:`${l.name}-${A}`},y))}else if(l.voidElement)h.push(`<${l.name} />`);else{const y=b(C,l.children,g);h.push(`<${l.name}>${y}</${l.name}>`)}else if(U(S)&&!$){const y=l.children[0]?T:null;y&&h.push(y)}else N(S,T,h,A,l.children.length!==1||!T)}else if(l.type==="text"){const v=a.transWrapTextNodes,W=typeof a.unescape=="function"?a.unescape:xe().unescape,S=o?W(r.services.interpolator.interpolate(l.content,p,r.language)):r.services.interpolator.interpolate(l.content,p,r.language);v?h.push(j.createElement(v,{key:`${l.name}-${A}`},S)):h.push(S)}return h},[])},P=b([{dummy:!0,children:e||[]}],V,_(e||[]));return Z(P[0])},ye=(e,t,n)=>{const r=e.key||t,a=j.cloneElement(e,{key:r});if(!a.props||!a.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return a;function i(){return j.createElement(j.Fragment,null,a)}return j.createElement(i,{key:r})},$t=(e,t)=>e.map((n,r)=>ye(n,r,t)),Wt=(e,t)=>{const n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:ye(e[r],r,t)})}),n},It=(e,t,n,r)=>e?Array.isArray(e)?$t(e,t):U(e)?Wt(e,t):(me(n,"TRANS_INVALID_COMPONENTS",'<Trans /> "components" prop expects an object or array',{i18nKey:r}),null):null,Dt=e=>!U(e)||Array.isArray(e)?!1:Object.keys(e).reduce((t,n)=>t&&Number.isNaN(Number.parseFloat(n)),!0);function Ot({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i={},values:o,defaults:c,components:d,ns:u,i18n:f,t:E,shouldUnescape:V,...p}){const m=f||pe();if(!m)return me(m,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:r}),e;const N=E||m.t.bind(m)||(L=>L),b={...xe(),...m.options?.react};let P=u||N.ns||m.options?.defaultNS;P=M(P)?[P]:P||["translation"];const{transDefaultProps:x}=b,k=x?.tOptions?{...x.tOptions,...i}:i,g=V??x?.shouldUnescape,C=x?.values?{...x.values,...o}:o,I=x?.components?{...x.components,...d}:d,h=he(e,b,m,r),l=c||k?.defaultValue||h||b.transEmptyNodeValue||(typeof r=="function"?Ce(r):r),{hashTransKey:A}=b,T=r||(A?A(h||l):h||l);m.options?.interpolation?.defaultVariables?o=C&&Object.keys(C).length>0?{...C,...m.options.interpolation.defaultVariables}:{...m.options.interpolation.defaultVariables}:o=C;const v=Vt(e);v&&typeof v.count=="number"&&t===void 0&&(t=v.count);const W=o||t!==void 0&&!m.options?.interpolation?.alwaysFormat||!e?k.interpolation:{interpolation:{...k.interpolation,prefix:"#$?",suffix:"?$#"}},S={...k,context:a||k.context,count:t,...o,...W,defaultValue:l,ns:P};let $=T?N(T,S):l;$===T&&l&&($=l);const R=It(I,$,m,r);let D=R||e,z=null;Dt(R)&&(z=R,D=e);const y=Pt(D,z,$,m,b,S,g),F=n??b.defaultTransParent;return F?j.createElement(F,p,y):y}function ue({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i={},values:o,defaults:c,components:d,ns:u,i18n:f,t:E,shouldUnescape:V,...p}){const{i18n:m,defaultNS:N}=j.useContext(we)||{},b=f||m||pe(),P=E||b?.t.bind(b);return Ot({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i,values:o,defaults:c,components:d,ns:u||P?.ns||N||b?.options?.defaultNS,i18n:b,t:E,shouldUnescape:V,...p})}async function Rt(){const e=await fetch("/api/cliproxy/sync/status");if(!e.ok){let t="Failed to fetch sync status";try{const n=await e.json();t=n.error||n.message||t}catch{}throw new Error(t)}return e.json()}async function Ft(){const e=new AbortController,t=setTimeout(()=>e.abort(),3e4);try{const n=await fetch("/api/cliproxy/sync",{method:"POST",headers:{"Content-Type":"application/json"},signal:e.signal});if(!n.ok){let r="Sync failed";try{const a=await n.json();r=a.error||a.message||r}catch{}throw new Error(r)}return n.json()}catch(n){throw n instanceof Error&&n.name==="AbortError"?new Error("Sync request timed out after 30 seconds"):n}finally{clearTimeout(t)}}function Lt(){return fe({queryKey:["cliproxy-sync-status"],queryFn:Rt,refetchInterval:3e4,retry:1,staleTime:1e4})}function Ut(){const e=tt();return st({mutationFn:Ft,onSuccess:t=>{e.invalidateQueries({queryKey:["cliproxy-sync-status"]}),e.invalidateQueries({queryKey:["cliproxy-sync-preview"]}),t.syncedCount===0?Y.info("No profiles to sync"):Y.success(`Synced ${t.syncedCount} profile${t.syncedCount===1?"":"s"} to CLIProxy`)},onError:t=>{Y.error(`Sync failed: ${t.message}`)}})}function de(e){return e.replace(/-\d+$/,"").split(".").map(Number)}function re(e,t){const n=de(e),r=de(t);for(let a=0;a<3;a+=1){const i=n[a]||0,o=r[a]||0;if(i>o)return 1;if(i<o)return-1}return 0}function te(e,t){return re(e,t)>0}function se(e,t,n){return re(e,t)>=0&&re(e,n)<=0}function qt(e){if(!e)return"";const t=new Date(e).getTime(),r=Date.now()-t,a=Math.floor(r/(1e3*60*60)),i=Math.floor(r%(1e3*60*60)/(1e3*60));return a>0?`${a}h ${i}m`:`${i}m`}function _t(e,t){if(!e)return"";const n=Date.now()-e,r=Math.floor(n/(1e3*60)),a=Math.floor(n/(1e3*60*60));return r<1?t("proxyStatusWidget.justNow"):r<60?t("proxyStatusWidget.minutesAgo",{count:r}):t("proxyStatusWidget.hoursAgo",{count:a})}function H({icon:e,tooltip:t,onClick:n,disabled:r,isPending:a,className:i,variant:o="ghost"}){return s.jsxs(Me,{children:[s.jsx(ze,{asChild:!0,children:s.jsx(ne,{variant:o==="destructive-ghost"?"ghost":o,size:"sm",className:q("h-7 w-7 p-0",o==="destructive-ghost"&&"hover:bg-destructive/10 hover:text-destructive hover:border-destructive/30",i),onClick:n,disabled:r,children:a?s.jsx(B,{className:"w-3.5 h-3.5 animate-spin"}):s.jsx(e,{className:"w-3.5 h-3.5"})})}),s.jsx(Be,{side:"bottom",className:"text-xs",children:t})]})}function Xt(){const{t:e}=Ee(),{data:t,isLoading:n}=ke(),{data:r}=Ve(),{data:a,isLoading:i}=Te(),o=Pe(),c=$e(),d=We(),u=Ie(),{data:f}=Lt(),{mutate:E,isPending:V}=Ut(),[p,m]=j.useState(!1),[N,b]=j.useState(""),[P,x]=j.useState(!1),[k,g]=j.useState(null),[C,I]=j.useState(null),{data:h}=fe({queryKey:["cliproxy-server-config"],queryFn:()=>He.cliproxyServer.get(),staleTime:3e4}),l=nt({mutationKey:["update-backend"]})>0,A=h?.remote,T=A?.enabled&&A?.host,v=t?.running??!1,W=o.isPending||c.isPending||d.isPending||u.isPending||l||V,S=r?.hasUpdate??!1,$=r?.isStable===!1,R=r?.currentVersion,D=f?.configured??!1,z=e(D?"proxyStatusWidget.syncReady":"proxyStatusWidget.noConfig"),y=$?r?.maxStableVersion||a?.latestStable:r?.latestVersion,F=a?.maxStableVersion||r?.maxStableVersion||"6.6.80",L=a?.faultyRange,be=L&&`${L.min.replace(/-\d+$/,"")}-${L.max.replace(/-\d+$/,"")}`,Q=(w,O)=>{g(w),I(O),x(!0)},ae=async w=>{if(!w)return;const O=te(w,F);if(L!==void 0&&se(w,L.min,L.max)){Q(w,"faulty");return}if(O){Q(w,"experimental");return}try{const ie=await u.mutateAsync({version:w});ie.requiresConfirmation&&Q(w,ie.isFaulty?"faulty":"experimental")}catch{}},je=()=>{k&&u.mutate({version:k,force:!0}),x(!1),g(null),I(null)},Ne=()=>{x(!1),g(null),I(null)},ve=T?(()=>{const w=A.protocol||"http",O=A.port||(w==="https"?443:80);return w==="https"&&O===443||w==="http"&&O===80?A.host:`${A.host}:${O}`})():null;return T?s.jsxs("div",{className:q("rounded-lg border p-3 transition-colors","border-blue-500/30 bg-blue-500/5"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(rt,{className:"w-4 h-4 text-blue-500"}),s.jsx("span",{className:"text-sm font-medium",children:e("proxyStatusWidget.remoteProxy")}),s.jsx(oe,{variant:"secondary",className:"text-[10px] h-4 px-1.5 bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",children:e("proxyStatusWidget.active")})]}),s.jsx(at,{className:"w-3 h-3 text-blue-600"})]}),s.jsxs("div",{className:"mt-2 text-xs text-muted-foreground",children:[s.jsx("div",{className:"flex items-center gap-1 mb-1",children:s.jsx("span",{className:"font-mono",children:ve})}),s.jsx("p",{className:"text-[10px] text-muted-foreground/70 leading-tight",children:e("proxyStatusWidget.trafficAutoRouted")})]})]}):s.jsx(De,{delayDuration:300,children:s.jsxs("div",{className:q("rounded-lg border p-3 transition-colors",v?"border-green-500/30 bg-green-500/5":"border-muted bg-muted/30"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:q("w-2 h-2 rounded-full",v?"bg-green-500 animate-pulse":"bg-muted-foreground/30")}),s.jsx("span",{className:"text-sm font-medium",children:r?.backendLabel??"CLIProxy"})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[n?s.jsx(B,{className:"w-3 h-3 animate-spin text-muted-foreground"}):v?s.jsxs(s.Fragment,{children:[s.jsx(H,{icon:V?B:it,tooltip:e("proxyStatusWidget.tooltipSync"),onClick:()=>E(),disabled:!D||W,isPending:V}),s.jsx(H,{icon:ot,tooltip:e("proxyStatusWidget.tooltipRestart"),onClick:()=>d.mutate(),disabled:W,isPending:d.isPending}),s.jsx(H,{icon:lt,tooltip:e("proxyStatusWidget.tooltipStop"),onClick:()=>c.mutate(),disabled:W,isPending:c.isPending,variant:"destructive-ghost"})]}):null,s.jsx(H,{icon:p?ct:ut,tooltip:e(p?"proxyStatusWidget.tooltipClose":"proxyStatusWidget.tooltipVersionSettings"),onClick:()=>m(!p),className:p?"bg-muted":void 0})]})]}),R&&s.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[s.jsxs("span",{className:q("text-xs font-mono text-muted-foreground",$&&"text-amber-600 dark:text-amber-400"),children:["v",R]}),(S||$)&&y&&s.jsxs(oe,{variant:"secondary",className:q("text-[10px] h-4 px-1.5 gap-0.5 cursor-pointer transition-colors",$?"bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/30 dark:text-amber-400 dark:hover:bg-amber-900/50":"bg-green-100 text-green-700 hover:bg-green-200 dark:bg-green-900/30 dark:text-green-400 dark:hover:bg-green-900/50"),onClick:()=>void ae(y),title:e($?"proxyStatusWidget.clickToDowngrade":"proxyStatusWidget.clickToUpdate"),children:[$?s.jsx(dt,{className:"w-2.5 h-2.5"}):s.jsx(mt,{className:"w-2.5 h-2.5"}),y]})]}),v&&t&&s.jsxs("div",{className:"mt-2 flex items-center gap-4 text-xs text-muted-foreground",children:[s.jsx("span",{className:"flex items-center gap-1",children:e("proxyStatusWidget.port",{port:t.port})}),t.sessionCount!==void 0&&t.sessionCount>0&&s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(pt,{className:"w-3 h-3"}),e("proxyStatusWidget.sessionCount",{count:t.sessionCount})]}),t.startedAt&&s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(xt,{className:"w-3 h-3"}),qt(t.startedAt)]})]}),s.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-xs",children:[D?s.jsx(ft,{className:"w-3 h-3 text-green-600 dark:text-green-400"}):s.jsx(gt,{className:"w-3 h-3 text-muted-foreground"}),s.jsx("span",{className:q("text-xs",D?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:z})]}),s.jsx(Oe,{open:p,onOpenChange:m,children:s.jsxs(Re,{className:"mt-3 pt-3 border-t border-muted",children:[s.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-3",children:e("proxyStatusWidget.versionManagement")}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs(Fe,{value:N,onValueChange:b,disabled:i,children:[s.jsx(Le,{className:"h-8 text-xs flex-1",children:s.jsx(Ue,{placeholder:e("proxyStatusWidget.selectVersionPlaceholder")})}),s.jsx(qe,{children:a?.versions.slice(0,20).map(w=>{const O=a?.maxStableVersion&&te(w,a.maxStableVersion),X=a?.faultyRange&&se(w,a.faultyRange.min,a.faultyRange.max);return s.jsx(_e,{value:w,className:"text-xs",children:s.jsxs("span",{className:"flex items-center gap-2",children:["v",w,w===a.latestStable&&s.jsx("span",{className:"text-green-600 dark:text-green-400",children:e("proxyStatusWidget.stable")}),(X||O)&&s.jsx("span",{className:"text-amber-600 dark:text-amber-400",children:"⚠"})]})},w)})})]}),s.jsxs(ne,{variant:"outline",size:"sm",className:"h-8 text-xs gap-1.5 px-3",onClick:()=>void ae(N),disabled:u.isPending||!N,children:[u.isPending?s.jsx(B,{className:"w-3.5 h-3.5 animate-spin"}):s.jsx(ht,{className:"w-3.5 h-3.5"}),e("proxyStatusWidget.install")]})]}),N&&a?.maxStableVersion&&te(N,a.maxStableVersion)&&s.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-amber-600 dark:text-amber-400",children:[s.jsx(G,{className:"w-3.5 h-3.5 flex-shrink-0"}),s.jsx("span",{children:e("proxyStatusWidget.versionsAboveUnstable",{version:a.maxStableVersion})})]}),N&&a?.faultyRange&&se(N,a.faultyRange.min,a.faultyRange.max)&&s.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-amber-600 dark:text-amber-400",children:[s.jsx(G,{className:"w-3.5 h-3.5 flex-shrink-0"}),s.jsx("span",{children:e("proxyStatusWidget.versionsKnownIssues",{version:N})})]}),r?.checkedAt&&s.jsx("div",{className:"mt-2 text-[10px] text-muted-foreground/60",children:e("proxyStatusWidget.lastChecked",{time:_t(r.checkedAt,e)})})]})}),!v&&s.jsxs("div",{className:"mt-2 flex items-center justify-between",children:[s.jsx("span",{className:"text-xs text-muted-foreground",children:e("proxyStatusWidget.notRunning")}),s.jsxs(ne,{variant:"outline",size:"sm",className:"h-7 text-xs gap-1",onClick:()=>o.mutate(),disabled:o.isPending,children:[o.isPending?s.jsx(B,{className:"w-3 h-3 animate-spin"}):s.jsx(yt,{className:"w-3 h-3"}),e("proxyStatusWidget.start")]})]}),s.jsx(Ke,{open:P,onOpenChange:x,children:s.jsxs(Ze,{children:[s.jsxs(Qe,{children:[s.jsxs(Xe,{className:"flex items-center gap-2",children:[s.jsx(G,{className:"w-5 h-5 text-amber-500"}),e(C==="faulty"?"proxyStatusWidget.installFaultyTitle":"proxyStatusWidget.installUnstableTitle")]}),s.jsxs(Je,{className:"space-y-2",children:[C==="faulty"?s.jsx("p",{children:s.jsx(ue,{i18nKey:"proxyStatusWidget.installFaultyDesc",values:{version:k??"",range:be||""},components:{strong:s.jsx("strong",{})}})}):s.jsx("p",{children:s.jsx(ue,{i18nKey:"proxyStatusWidget.installUnstableDesc",values:{version:k??"",maxStable:F},components:{strong:s.jsx("strong",{})}})}),s.jsx("p",{className:"text-amber-600 dark:text-amber-400",children:e(C==="faulty"?"proxyStatusWidget.installFaultyWarning":"proxyStatusWidget.installUnstableWarning")}),s.jsx("p",{children:e("proxyStatusWidget.installUnstableConfirm")})]})]}),s.jsxs(Ye,{children:[s.jsx(Ge,{onClick:Ne,children:e("proxyStatusWidget.cancel")}),s.jsx(et,{onClick:je,className:"bg-amber-500 hover:bg-amber-600 text-white",children:e("proxyStatusWidget.installAnyway")})]})]})})]})})}export{Xt as P};
@@ -1,51 +0,0 @@
1
- import{r as i,R as Gn,a as Bt,b as Oa,c as je}from"./react-vendor-CNOkPC89.js";var xn={exports:{}},ot={};var Ao;function Ma(){if(Ao)return ot;Ao=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(o,r,s){var a=null;if(s!==void 0&&(a=""+s),r.key!==void 0&&(a=""+r.key),"key"in r){s={};for(var c in r)c!=="key"&&(s[c]=r[c])}else s=r;return r=s.ref,{$$typeof:e,type:o,key:a,ref:r!==void 0?r:null,props:s}}return ot.Fragment=t,ot.jsx=n,ot.jsxs=n,ot}var To;function Na(){return To||(To=1,xn.exports=Ma()),xn.exports}var p=Na();function _o(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function we(...e){return t=>{let n=!1;const o=e.map(r=>{const s=_o(r,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let r=0;r<o.length;r++){const s=o[r];typeof s=="function"?s():_o(e[r],null)}}}}function j(...e){return i.useCallback(we(...e),e)}var Da=Symbol.for("react.lazy"),It=Gn[" use ".trim().toString()];function ja(e){return typeof e=="object"&&e!==null&&"then"in e}function or(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Da&&"_payload"in e&&ja(e._payload)}function Kn(e){const t=La(e),n=i.forwardRef((o,r)=>{let{children:s,...a}=o;or(s)&&typeof It=="function"&&(s=It(s._payload));const c=i.Children.toArray(s),l=c.find($a);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}var Ih=Kn("Slot");function La(e){const t=i.forwardRef((n,o)=>{let{children:r,...s}=n;if(or(r)&&typeof It=="function"&&(r=It(r._payload)),i.isValidElement(r)){const a=Wa(r),c=Fa(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ka=Symbol("radix.slottable");function $a(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ka}function Fa(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function Wa(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ba=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Va=Ba.reduce((e,t)=>{const n=Kn(`Primitive.${t}`),o=i.forwardRef((r,s)=>{const{asChild:a,...c}=r,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(l,{...c,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),Ha="Separator",Io="horizontal",Ua=["horizontal","vertical"],rr=i.forwardRef((e,t)=>{const{decorative:n,orientation:o=Io,...r}=e,s=Ga(o)?o:Io,c=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return p.jsx(Va.div,{"data-orientation":s,...c,...r,ref:t})});rr.displayName=Ha;function Ga(e){return Ua.includes(e)}var Oh=rr;function R(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function Ka(e,t){const n=i.createContext(t),o=s=>{const{children:a,...c}=s,l=i.useMemo(()=>c,Object.values(c));return p.jsx(n.Provider,{value:l,children:a})};o.displayName=e+"Provider";function r(s){const a=i.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[o,r]}function J(e,t=[]){let n=[];function o(s,a){const c=i.createContext(a),l=n.length;n=[...n,a];const u=f=>{const{scope:h,children:v,...w}=f,m=h?.[e]?.[l]||c,g=i.useMemo(()=>w,Object.values(w));return p.jsx(m.Provider,{value:g,children:v})};u.displayName=s+"Provider";function d(f,h){const v=h?.[e]?.[l]||c,w=i.useContext(v);if(w)return w;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const r=()=>{const s=n.map(a=>i.createContext(a));return function(c){const l=c?.[e]||s;return i.useMemo(()=>({[`__scope${e}`]:{...c,[e]:l}}),[c,l])}};return r.scopeName=e,[o,za(r,...t)]}function za(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(s){const a=o.reduce((c,{useScope:l,scopeName:u})=>{const f=l(s)[`__scope${u}`];return{...c,...f}},{});return i.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var Y=globalThis?.document?i.useLayoutEffect:()=>{},Ya=Gn[" useId ".trim().toString()]||(()=>{}),Xa=0;function ne(e){const[t,n]=i.useState(Ya());return Y(()=>{n(o=>o??String(Xa++))},[e]),t?`radix-${t}`:""}var qa=Gn[" useInsertionEffect ".trim().toString()]||Y;function ue({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,s,a]=Za({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:r;{const d=i.useRef(e!==void 0);i.useEffect(()=>{const f=d.current;f!==c&&console.warn(`${o} is changing from ${f?"controlled":"uncontrolled"} to ${c?"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.`),d.current=c},[c,o])}const u=i.useCallback(d=>{if(c){const f=Ja(d)?d(e):d;f!==e&&a.current?.(f)}else s(d)},[c,e,s,a]);return[l,u]}function Za({defaultProp:e,onChange:t}){const[n,o]=i.useState(e),r=i.useRef(n),s=i.useRef(t);return qa(()=>{s.current=t},[t]),i.useEffect(()=>{r.current!==n&&(s.current?.(n),r.current=n)},[n,r]),[n,o,s]}function Ja(e){return typeof e=="function"}function Qa(e){const t=ec(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(nc);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function ec(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=rc(r),c=oc(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tc=Symbol("radix.slottable");function nc(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tc}function oc(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function rc(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var sc=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],O=sc.reduce((e,t)=>{const n=Qa(`Primitive.${t}`),o=i.forwardRef((r,s)=>{const{asChild:a,...c}=r,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(l,{...c,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function sr(e,t){e&&Bt.flushSync(()=>e.dispatchEvent(t))}function X(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...n)=>t.current?.(...n),[])}function ic(e,t=globalThis?.document){const n=X(e);i.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var ac="DismissableLayer",In="dismissableLayer.update",cc="dismissableLayer.pointerDownOutside",lc="dismissableLayer.focusOutside",Oo,ir=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Je=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:s,onInteractOutside:a,onDismiss:c,...l}=e,u=i.useContext(ir),[d,f]=i.useState(null),h=d?.ownerDocument??globalThis?.document,[,v]=i.useState({}),w=j(t,E=>f(E)),m=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=m.indexOf(g),y=d?m.indexOf(d):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,C=y>=x,S=fc(E=>{const _=E.target,I=[...u.branches].some(M=>M.contains(_));!C||I||(r?.(E),a?.(E),E.defaultPrevented||c?.())},h),A=pc(E=>{const _=E.target;[...u.branches].some(M=>M.contains(_))||(s?.(E),a?.(E),E.defaultPrevented||c?.())},h);return ic(E=>{y===u.layers.size-1&&(o?.(E),!E.defaultPrevented&&c&&(E.preventDefault(),c()))},h),i.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Oo=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Mo(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=Oo)}},[d,h,n,u]),i.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Mo())},[d,u]),i.useEffect(()=>{const E=()=>v({});return document.addEventListener(In,E),()=>document.removeEventListener(In,E)},[]),p.jsx(O.div,{...l,ref:w,style:{pointerEvents:b?C?"auto":"none":void 0,...e.style},onFocusCapture:R(e.onFocusCapture,A.onFocusCapture),onBlurCapture:R(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:R(e.onPointerDownCapture,S.onPointerDownCapture)})});Je.displayName=ac;var uc="DismissableLayerBranch",dc=i.forwardRef((e,t)=>{const n=i.useContext(ir),o=i.useRef(null),r=j(t,o);return i.useEffect(()=>{const s=o.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),p.jsx(O.div,{...e,ref:r})});dc.displayName=uc;function fc(e,t=globalThis?.document){const n=X(e),o=i.useRef(!1),r=i.useRef(()=>{});return i.useEffect(()=>{const s=c=>{if(c.target&&!o.current){let l=function(){ar(cc,n,u,{discrete:!0})};const u={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=l,t.addEventListener("click",r.current,{once:!0})):l()}else t.removeEventListener("click",r.current);o.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",s),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function pc(e,t=globalThis?.document){const n=X(e),o=i.useRef(!1);return i.useEffect(()=>{const r=s=>{s.target&&!o.current&&ar(lc,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Mo(){const e=new CustomEvent(In);document.dispatchEvent(e)}function ar(e,t,n,{discrete:o}){const r=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?sr(r,s):r.dispatchEvent(s)}var yn="focusScope.autoFocusOnMount",bn="focusScope.autoFocusOnUnmount",No={bubbles:!1,cancelable:!0},hc="FocusScope",dt=i.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:s,...a}=e,[c,l]=i.useState(null),u=X(r),d=X(s),f=i.useRef(null),h=j(t,m=>l(m)),v=i.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;i.useEffect(()=>{if(o){let m=function(b){if(v.paused||!c)return;const C=b.target;c.contains(C)?f.current=C:Pe(f.current,{select:!0})},g=function(b){if(v.paused||!c)return;const C=b.relatedTarget;C!==null&&(c.contains(C)||Pe(f.current,{select:!0}))},x=function(b){if(document.activeElement===document.body)for(const S of b)S.removedNodes.length>0&&Pe(c)};document.addEventListener("focusin",m),document.addEventListener("focusout",g);const y=new MutationObserver(x);return c&&y.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",g),y.disconnect()}}},[o,c,v.paused]),i.useEffect(()=>{if(c){jo.add(v);const m=document.activeElement;if(!c.contains(m)){const x=new CustomEvent(yn,No);c.addEventListener(yn,u),c.dispatchEvent(x),x.defaultPrevented||(mc(yc(cr(c)),{select:!0}),document.activeElement===m&&Pe(c))}return()=>{c.removeEventListener(yn,u),setTimeout(()=>{const x=new CustomEvent(bn,No);c.addEventListener(bn,d),c.dispatchEvent(x),x.defaultPrevented||Pe(m??document.body,{select:!0}),c.removeEventListener(bn,d),jo.remove(v)},0)}}},[c,u,d,v]);const w=i.useCallback(m=>{if(!n&&!o||v.paused)return;const g=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,x=document.activeElement;if(g&&x){const y=m.currentTarget,[b,C]=vc(y);b&&C?!m.shiftKey&&x===C?(m.preventDefault(),n&&Pe(b,{select:!0})):m.shiftKey&&x===b&&(m.preventDefault(),n&&Pe(C,{select:!0})):x===y&&m.preventDefault()}},[n,o,v.paused]);return p.jsx(O.div,{tabIndex:-1,...a,ref:h,onKeyDown:w})});dt.displayName=hc;function mc(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(Pe(o,{select:t}),document.activeElement!==n)return}function vc(e){const t=cr(e),n=Do(t,e),o=Do(t.reverse(),e);return[n,o]}function cr(e){const t=[],n=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(;n.nextNode();)t.push(n.currentNode);return t}function Do(e,t){for(const n of e)if(!gc(n,{upTo:t}))return n}function gc(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function wc(e){return e instanceof HTMLInputElement&&"select"in e}function Pe(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&wc(e)&&t&&e.select()}}var jo=xc();function xc(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=Lo(e,t),e.unshift(t)},remove(t){e=Lo(e,t),e[0]?.resume()}}}function Lo(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function yc(e){return e.filter(t=>t.tagName!=="A")}var bc="Portal",Qe=i.forwardRef((e,t)=>{const{container:n,...o}=e,[r,s]=i.useState(!1);Y(()=>s(!0),[]);const a=n||r&&globalThis?.document?.body;return a?Oa.createPortal(p.jsx(O.div,{...o,ref:t}),a):null});Qe.displayName=bc;function Cc(e,t){return i.useReducer((n,o)=>t[n][o]??n,e)}var z=e=>{const{present:t,children:n}=e,o=Sc(t),r=typeof n=="function"?n({present:o.isPresent}):i.Children.only(n),s=j(o.ref,Ec(r));return typeof n=="function"||o.isPresent?i.cloneElement(r,{ref:s}):null};z.displayName="Presence";function Sc(e){const[t,n]=i.useState(),o=i.useRef(null),r=i.useRef(e),s=i.useRef("none"),a=e?"mounted":"unmounted",[c,l]=Cc(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return i.useEffect(()=>{const u=bt(o.current);s.current=c==="mounted"?u:"none"},[c]),Y(()=>{const u=o.current,d=r.current;if(d!==e){const h=s.current,v=bt(u);e?l("MOUNT"):v==="none"||u?.display==="none"?l("UNMOUNT"):l(d&&h!==v?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),Y(()=>{if(t){let u;const d=t.ownerDocument.defaultView??window,f=v=>{const m=bt(o.current).includes(CSS.escape(v.animationName));if(v.target===t&&m&&(l("ANIMATION_END"),!r.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},h=v=>{v.target===t&&(s.current=bt(o.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:i.useCallback(u=>{o.current=u?getComputedStyle(u):null,n(u)},[])}}function bt(e){return e?.animationName||"none"}function Ec(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Cn=0;function Vt(){i.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ko()),document.body.insertAdjacentElement("beforeend",e[1]??ko()),Cn++,()=>{Cn===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Cn--}},[])}function ko(){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 he=function(){return he=Object.assign||function(t){for(var n,o=1,r=arguments.length;o<r;o++){n=arguments[o];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},he.apply(this,arguments)};function lr(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n}function Rc(e,t,n){if(n||arguments.length===2)for(var o=0,r=t.length,s;o<r;o++)(s||!(o in t))&&(s||(s=Array.prototype.slice.call(t,0,o)),s[o]=t[o]);return e.concat(s||Array.prototype.slice.call(t))}var At="right-scroll-bar-position",Tt="width-before-scroll-bar",Pc="with-scroll-bars-hidden",Ac="--removed-body-scroll-bar-size";function Sn(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function Tc(e,t){var n=i.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(o){var r=n.value;r!==o&&(n.value=o,n.callback(o,r))}}}})[0];return n.callback=t,n.facade}var _c=typeof window<"u"?i.useLayoutEffect:i.useEffect,$o=new WeakMap;function Ic(e,t){var n=Tc(null,function(o){return e.forEach(function(r){return Sn(r,o)})});return _c(function(){var o=$o.get(n);if(o){var r=new Set(o),s=new Set(e),a=n.current;r.forEach(function(c){s.has(c)||Sn(c,null)}),s.forEach(function(c){r.has(c)||Sn(c,a)})}$o.set(n,e)},[e]),n}function Oc(e){return e}function Mc(e,t){t===void 0&&(t=Oc);var n=[],o=!1,r={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(s){var a=t(s,o);return n.push(a),function(){n=n.filter(function(c){return c!==a})}},assignSyncMedium:function(s){for(o=!0;n.length;){var a=n;n=[],a.forEach(s)}n={push:function(c){return s(c)},filter:function(){return n}}},assignMedium:function(s){o=!0;var a=[];if(n.length){var c=n;n=[],c.forEach(s),a=n}var l=function(){var d=a;a=[],d.forEach(s)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(d){a.push(d),u()},filter:function(d){return a=a.filter(d),n}}}};return r}function Nc(e){e===void 0&&(e={});var t=Mc(null);return t.options=he({async:!0,ssr:!1},e),t}var ur=function(e){var t=e.sideCar,n=lr(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return i.createElement(o,he({},n))};ur.isSideCarExport=!0;function Dc(e,t){return e.useMedium(t),ur}var dr=Nc(),En=function(){},Ht=i.forwardRef(function(e,t){var n=i.useRef(null),o=i.useState({onScrollCapture:En,onWheelCapture:En,onTouchMoveCapture:En}),r=o[0],s=o[1],a=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,h=e.sideCar,v=e.noRelative,w=e.noIsolation,m=e.inert,g=e.allowPinchZoom,x=e.as,y=x===void 0?"div":x,b=e.gapMode,C=lr(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=h,A=Ic([n,t]),E=he(he({},C),r);return i.createElement(i.Fragment,null,d&&i.createElement(S,{sideCar:dr,removeScrollBar:u,shards:f,noRelative:v,noIsolation:w,inert:m,setCallbacks:s,allowPinchZoom:!!g,lockRef:n,gapMode:b}),a?i.cloneElement(i.Children.only(c),he(he({},E),{ref:A})):i.createElement(y,he({},E,{className:l,ref:A}),c))});Ht.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ht.classNames={fullWidth:Tt,zeroRight:At};var jc=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Lc(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=jc();return t&&e.setAttribute("nonce",t),e}function kc(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function $c(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Fc=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Lc())&&(kc(t,n),$c(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Wc=function(){var e=Fc();return function(t,n){i.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},fr=function(){var e=Wc(),t=function(n){var o=n.styles,r=n.dynamic;return e(o,r),null};return t},Bc={left:0,top:0,right:0,gap:0},Rn=function(e){return parseInt(e||"",10)||0},Vc=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],o=t[e==="padding"?"paddingTop":"marginTop"],r=t[e==="padding"?"paddingRight":"marginRight"];return[Rn(n),Rn(o),Rn(r)]},Hc=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Bc;var t=Vc(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Uc=fr(),Ge="data-scroll-locked",Gc=function(e,t,n,o){var r=e.left,s=e.top,a=e.right,c=e.gap;return n===void 0&&(n="margin"),`
2
- .`.concat(Pc,` {
3
- overflow: hidden `).concat(o,`;
4
- padding-right: `).concat(c,"px ").concat(o,`;
5
- }
6
- body[`).concat(Ge,`] {
7
- overflow: hidden `).concat(o,`;
8
- overscroll-behavior: contain;
9
- `).concat([t&&"position: relative ".concat(o,";"),n==="margin"&&`
10
- padding-left: `.concat(r,`px;
11
- padding-top: `).concat(s,`px;
12
- padding-right: `).concat(a,`px;
13
- margin-left:0;
14
- margin-top:0;
15
- margin-right: `).concat(c,"px ").concat(o,`;
16
- `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(o,";")].filter(Boolean).join(""),`
17
- }
18
-
19
- .`).concat(At,` {
20
- right: `).concat(c,"px ").concat(o,`;
21
- }
22
-
23
- .`).concat(Tt,` {
24
- margin-right: `).concat(c,"px ").concat(o,`;
25
- }
26
-
27
- .`).concat(At," .").concat(At,` {
28
- right: 0 `).concat(o,`;
29
- }
30
-
31
- .`).concat(Tt," .").concat(Tt,` {
32
- margin-right: 0 `).concat(o,`;
33
- }
34
-
35
- body[`).concat(Ge,`] {
36
- `).concat(Ac,": ").concat(c,`px;
37
- }
38
- `)},Fo=function(){var e=parseInt(document.body.getAttribute(Ge)||"0",10);return isFinite(e)?e:0},Kc=function(){i.useEffect(function(){return document.body.setAttribute(Ge,(Fo()+1).toString()),function(){var e=Fo()-1;e<=0?document.body.removeAttribute(Ge):document.body.setAttribute(Ge,e.toString())}},[])},zc=function(e){var t=e.noRelative,n=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;Kc();var s=i.useMemo(function(){return Hc(r)},[r]);return i.createElement(Uc,{styles:Gc(s,!t,r,n?"":"!important")})},On=!1;if(typeof window<"u")try{var Ct=Object.defineProperty({},"passive",{get:function(){return On=!0,!0}});window.addEventListener("test",Ct,Ct),window.removeEventListener("test",Ct,Ct)}catch{On=!1}var Ve=On?{passive:!1}:!1,Yc=function(e){return e.tagName==="TEXTAREA"},pr=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Yc(e)&&n[t]==="visible")},Xc=function(e){return pr(e,"overflowY")},qc=function(e){return pr(e,"overflowX")},Wo=function(e,t){var n=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=hr(e,o);if(r){var s=mr(e,o),a=s[1],c=s[2];if(a>c)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},Zc=function(e){var t=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[t,n,o]},Jc=function(e){var t=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[t,n,o]},hr=function(e,t){return e==="v"?Xc(t):qc(t)},mr=function(e,t){return e==="v"?Zc(t):Jc(t)},Qc=function(e,t){return e==="h"&&t==="rtl"?-1:1},el=function(e,t,n,o,r){var s=Qc(e,window.getComputedStyle(t).direction),a=s*o,c=n.target,l=t.contains(c),u=!1,d=a>0,f=0,h=0;do{if(!c)break;var v=mr(e,c),w=v[0],m=v[1],g=v[2],x=m-g-s*w;(w||x)&&hr(e,c)&&(f+=x,h+=w);var y=c.parentNode;c=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!l&&c!==document.body||l&&(t.contains(c)||t===c));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},St=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Bo=function(e){return[e.deltaX,e.deltaY]},Vo=function(e){return e&&"current"in e?e.current:e},tl=function(e,t){return e[0]===t[0]&&e[1]===t[1]},nl=function(e){return`
39
- .block-interactivity-`.concat(e,` {pointer-events: none;}
40
- .allow-interactivity-`).concat(e,` {pointer-events: all;}
41
- `)},ol=0,He=[];function rl(e){var t=i.useRef([]),n=i.useRef([0,0]),o=i.useRef(),r=i.useState(ol++)[0],s=i.useState(fr)[0],a=i.useRef(e);i.useEffect(function(){a.current=e},[e]),i.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var m=Rc([e.lockRef.current],(e.shards||[]).map(Vo),!0).filter(Boolean);return m.forEach(function(g){return g.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),m.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var c=i.useCallback(function(m,g){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!a.current.allowPinchZoom;var x=St(m),y=n.current,b="deltaX"in m?m.deltaX:y[0]-x[0],C="deltaY"in m?m.deltaY:y[1]-x[1],S,A=m.target,E=Math.abs(b)>Math.abs(C)?"h":"v";if("touches"in m&&E==="h"&&A.type==="range")return!1;var _=window.getSelection(),I=_&&_.anchorNode,M=I?I===A||I.contains(A):!1;if(M)return!1;var L=Wo(E,A);if(!L)return!0;if(L?S=E:(S=E==="v"?"h":"v",L=Wo(E,A)),!L)return!1;if(!o.current&&"changedTouches"in m&&(b||C)&&(o.current=S),!S)return!0;var $=o.current||S;return el($,g,m,$==="h"?b:C)},[]),l=i.useCallback(function(m){var g=m;if(!(!He.length||He[He.length-1]!==s)){var x="deltaY"in g?Bo(g):St(g),y=t.current.filter(function(S){return S.name===g.type&&(S.target===g.target||g.target===S.shadowParent)&&tl(S.delta,x)})[0];if(y&&y.should){g.cancelable&&g.preventDefault();return}if(!y){var b=(a.current.shards||[]).map(Vo).filter(Boolean).filter(function(S){return S.contains(g.target)}),C=b.length>0?c(g,b[0]):!a.current.noIsolation;C&&g.cancelable&&g.preventDefault()}}},[]),u=i.useCallback(function(m,g,x,y){var b={name:m,delta:g,target:x,should:y,shadowParent:sl(x)};t.current.push(b),setTimeout(function(){t.current=t.current.filter(function(C){return C!==b})},1)},[]),d=i.useCallback(function(m){n.current=St(m),o.current=void 0},[]),f=i.useCallback(function(m){u(m.type,Bo(m),m.target,c(m,e.lockRef.current))},[]),h=i.useCallback(function(m){u(m.type,St(m),m.target,c(m,e.lockRef.current))},[]);i.useEffect(function(){return He.push(s),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",l,Ve),document.addEventListener("touchmove",l,Ve),document.addEventListener("touchstart",d,Ve),function(){He=He.filter(function(m){return m!==s}),document.removeEventListener("wheel",l,Ve),document.removeEventListener("touchmove",l,Ve),document.removeEventListener("touchstart",d,Ve)}},[]);var v=e.removeScrollBar,w=e.inert;return i.createElement(i.Fragment,null,w?i.createElement(s,{styles:nl(r)}):null,v?i.createElement(zc,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function sl(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const il=Dc(dr,rl);var ft=i.forwardRef(function(e,t){return i.createElement(Ht,he({},e,{ref:t,sideCar:il}))});ft.classNames=Ht.classNames;var al=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ue=new WeakMap,Et=new WeakMap,Rt={},Pn=0,vr=function(e){return e&&(e.host||vr(e.parentNode))},cl=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=vr(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},ll=function(e,t,n,o){var r=cl(t,Array.isArray(e)?e:[e]);Rt[n]||(Rt[n]=new WeakMap);var s=Rt[n],a=[],c=new Set,l=new Set(r),u=function(f){!f||c.has(f)||(c.add(f),u(f.parentNode))};r.forEach(u);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(h){if(c.has(h))d(h);else try{var v=h.getAttribute(o),w=v!==null&&v!=="false",m=(Ue.get(h)||0)+1,g=(s.get(h)||0)+1;Ue.set(h,m),s.set(h,g),a.push(h),m===1&&w&&Et.set(h,!0),g===1&&h.setAttribute(n,"true"),w||h.setAttribute(o,"true")}catch(x){console.error("aria-hidden: cannot operate on ",h,x)}})};return d(t),c.clear(),Pn++,function(){a.forEach(function(f){var h=Ue.get(f)-1,v=s.get(f)-1;Ue.set(f,h),s.set(f,v),h||(Et.has(f)||f.removeAttribute(o),Et.delete(f)),v||f.removeAttribute(n)}),Pn--,Pn||(Ue=new WeakMap,Ue=new WeakMap,Et=new WeakMap,Rt={})}},Ut=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=al(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),ll(o,r,n,"aria-hidden")):function(){return null}};function ul(e){const t=dl(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(pl);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function dl(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=ml(r),c=hl(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var fl=Symbol("radix.slottable");function pl(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===fl}function hl(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function ml(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Gt="Dialog",[gr,wr]=J(Gt),[vl,pe]=gr(Gt),xr=e=>{const{__scopeDialog:t,children:n,open:o,defaultOpen:r,onOpenChange:s,modal:a=!0}=e,c=i.useRef(null),l=i.useRef(null),[u,d]=ue({prop:o,defaultProp:r??!1,onChange:s,caller:Gt});return p.jsx(vl,{scope:t,triggerRef:c,contentRef:l,contentId:ne(),titleId:ne(),descriptionId:ne(),open:u,onOpenChange:d,onOpenToggle:i.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};xr.displayName=Gt;var yr="DialogTrigger",br=i.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=pe(yr,n),s=j(t,r.triggerRef);return p.jsx(O.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Xn(r.open),...o,ref:s,onClick:R(e.onClick,r.onOpenToggle)})});br.displayName=yr;var zn="DialogPortal",[gl,Cr]=gr(zn,{forceMount:void 0}),Sr=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:r}=e,s=pe(zn,t);return p.jsx(gl,{scope:t,forceMount:n,children:i.Children.map(o,a=>p.jsx(z,{present:n||s.open,children:p.jsx(Qe,{asChild:!0,container:r,children:a})}))})};Sr.displayName=zn;var Ot="DialogOverlay",Er=i.forwardRef((e,t)=>{const n=Cr(Ot,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,s=pe(Ot,e.__scopeDialog);return s.modal?p.jsx(z,{present:o||s.open,children:p.jsx(xl,{...r,ref:t})}):null});Er.displayName=Ot;var wl=ul("DialogOverlay.RemoveScroll"),xl=i.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=pe(Ot,n);return p.jsx(ft,{as:wl,allowPinchZoom:!0,shards:[r.contentRef],children:p.jsx(O.div,{"data-state":Xn(r.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),Le="DialogContent",Rr=i.forwardRef((e,t)=>{const n=Cr(Le,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,s=pe(Le,e.__scopeDialog);return p.jsx(z,{present:o||s.open,children:s.modal?p.jsx(yl,{...r,ref:t}):p.jsx(bl,{...r,ref:t})})});Rr.displayName=Le;var yl=i.forwardRef((e,t)=>{const n=pe(Le,e.__scopeDialog),o=i.useRef(null),r=j(t,n.contentRef,o);return i.useEffect(()=>{const s=o.current;if(s)return Ut(s)},[]),p.jsx(Pr,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:R(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:R(e.onPointerDownOutside,s=>{const a=s.detail.originalEvent,c=a.button===0&&a.ctrlKey===!0;(a.button===2||c)&&s.preventDefault()}),onFocusOutside:R(e.onFocusOutside,s=>s.preventDefault())})}),bl=i.forwardRef((e,t)=>{const n=pe(Le,e.__scopeDialog),o=i.useRef(!1),r=i.useRef(!1);return p.jsx(Pr,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||n.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;n.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})}),Pr=i.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:s,...a}=e,c=pe(Le,n),l=i.useRef(null),u=j(t,l);return Vt(),p.jsxs(p.Fragment,{children:[p.jsx(dt,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:s,children:p.jsx(Je,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Xn(c.open),...a,ref:u,onDismiss:()=>c.onOpenChange(!1)})}),p.jsxs(p.Fragment,{children:[p.jsx(Sl,{titleId:c.titleId}),p.jsx(Rl,{contentRef:l,descriptionId:c.descriptionId})]})]})}),Yn="DialogTitle",Ar=i.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=pe(Yn,n);return p.jsx(O.h2,{id:r.titleId,...o,ref:t})});Ar.displayName=Yn;var Tr="DialogDescription",_r=i.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=pe(Tr,n);return p.jsx(O.p,{id:r.descriptionId,...o,ref:t})});_r.displayName=Tr;var Ir="DialogClose",Or=i.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=pe(Ir,n);return p.jsx(O.button,{type:"button",...o,ref:t,onClick:R(e.onClick,()=>r.onOpenChange(!1))})});Or.displayName=Ir;function Xn(e){return e?"open":"closed"}var Mr="DialogTitleWarning",[Cl,Nr]=Ka(Mr,{contentName:Le,titleName:Yn,docsSlug:"dialog"}),Sl=({titleId:e})=>{const t=Nr(Mr),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
42
-
43
- If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
44
-
45
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return i.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},El="DialogDescriptionWarning",Rl=({contentRef:e,descriptionId:t})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Nr(El).contentName}}.`;return i.useEffect(()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},Pl=xr,Al=br,Tl=Sr,_l=Er,Il=Rr,Ol=Ar,Ml=_r,Dr=Or;const Nl=["top","right","bottom","left"],Te=Math.min,te=Math.max,Mt=Math.round,Pt=Math.floor,ve=e=>({x:e,y:e}),Dl={left:"right",right:"left",bottom:"top",top:"bottom"},jl={start:"end",end:"start"};function Mn(e,t,n){return te(e,Te(t,n))}function Se(e,t){return typeof e=="function"?e(t):e}function Ee(e){return e.split("-")[0]}function et(e){return e.split("-")[1]}function qn(e){return e==="x"?"y":"x"}function Zn(e){return e==="y"?"height":"width"}const Ll=new Set(["top","bottom"]);function me(e){return Ll.has(Ee(e))?"y":"x"}function Jn(e){return qn(me(e))}function kl(e,t,n){n===void 0&&(n=!1);const o=et(e),r=Jn(e),s=Zn(r);let a=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(a=Nt(a)),[a,Nt(a)]}function $l(e){const t=Nt(e);return[Nn(e),t,Nn(t)]}function Nn(e){return e.replace(/start|end/g,t=>jl[t])}const Ho=["left","right"],Uo=["right","left"],Fl=["top","bottom"],Wl=["bottom","top"];function Bl(e,t,n){switch(e){case"top":case"bottom":return n?t?Uo:Ho:t?Ho:Uo;case"left":case"right":return t?Fl:Wl;default:return[]}}function Vl(e,t,n,o){const r=et(e);let s=Bl(Ee(e),n==="start",o);return r&&(s=s.map(a=>a+"-"+r),t&&(s=s.concat(s.map(Nn)))),s}function Nt(e){return e.replace(/left|right|bottom|top/g,t=>Dl[t])}function Hl(e){return{top:0,right:0,bottom:0,left:0,...e}}function jr(e){return typeof e!="number"?Hl(e):{top:e,right:e,bottom:e,left:e}}function Dt(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function Go(e,t,n){let{reference:o,floating:r}=e;const s=me(t),a=Jn(t),c=Zn(a),l=Ee(t),u=s==="y",d=o.x+o.width/2-r.width/2,f=o.y+o.height/2-r.height/2,h=o[c]/2-r[c]/2;let v;switch(l){case"top":v={x:d,y:o.y-r.height};break;case"bottom":v={x:d,y:o.y+o.height};break;case"right":v={x:o.x+o.width,y:f};break;case"left":v={x:o.x-r.width,y:f};break;default:v={x:o.x,y:o.y}}switch(et(t)){case"start":v[a]-=h*(n&&u?-1:1);break;case"end":v[a]+=h*(n&&u?-1:1);break}return v}const Ul=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:s=[],platform:a}=n,c=s.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let u=await a.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:f}=Go(u,o,l),h=o,v={},w=0;for(let m=0;m<c.length;m++){const{name:g,fn:x}=c[m],{x:y,y:b,data:C,reset:S}=await x({x:d,y:f,initialPlacement:o,placement:h,strategy:r,middlewareData:v,rects:u,platform:a,elements:{reference:e,floating:t}});d=y??d,f=b??f,v={...v,[g]:{...v[g],...C}},S&&w<=50&&(w++,typeof S=="object"&&(S.placement&&(h=S.placement),S.rects&&(u=S.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:r}):S.rects),{x:d,y:f}=Go(u,h,l)),m=-1)}return{x:d,y:f,placement:h,strategy:r,middlewareData:v}};async function it(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:s,rects:a,elements:c,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:h=!1,padding:v=0}=Se(t,e),w=jr(v),g=c[h?f==="floating"?"reference":"floating":f],x=Dt(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(g)))==null||n?g:g.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(c.floating)),boundary:u,rootBoundary:d,strategy:l})),y=f==="floating"?{x:o,y:r,width:a.floating.width,height:a.floating.height}:a.reference,b=await(s.getOffsetParent==null?void 0:s.getOffsetParent(c.floating)),C=await(s.isElement==null?void 0:s.isElement(b))?await(s.getScale==null?void 0:s.getScale(b))||{x:1,y:1}:{x:1,y:1},S=Dt(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:y,offsetParent:b,strategy:l}):y);return{top:(x.top-S.top+w.top)/C.y,bottom:(S.bottom-x.bottom+w.bottom)/C.y,left:(x.left-S.left+w.left)/C.x,right:(S.right-x.right+w.right)/C.x}}const Gl=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:s,platform:a,elements:c,middlewareData:l}=t,{element:u,padding:d=0}=Se(e,t)||{};if(u==null)return{};const f=jr(d),h={x:n,y:o},v=Jn(r),w=Zn(v),m=await a.getDimensions(u),g=v==="y",x=g?"top":"left",y=g?"bottom":"right",b=g?"clientHeight":"clientWidth",C=s.reference[w]+s.reference[v]-h[v]-s.floating[w],S=h[v]-s.reference[v],A=await(a.getOffsetParent==null?void 0:a.getOffsetParent(u));let E=A?A[b]:0;(!E||!await(a.isElement==null?void 0:a.isElement(A)))&&(E=c.floating[b]||s.floating[w]);const _=C/2-S/2,I=E/2-m[w]/2-1,M=Te(f[x],I),L=Te(f[y],I),$=M,F=E-m[w]-L,k=E/2-m[w]/2+_,B=Mn($,k,F),D=!l.arrow&&et(r)!=null&&k!==B&&s.reference[w]/2-(k<$?M:L)-m[w]/2<0,W=D?k<$?k-$:k-F:0;return{[v]:h[v]+W,data:{[v]:B,centerOffset:k-B-W,...D&&{alignmentOffset:W}},reset:D}}}),Kl=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:s,rects:a,initialPlacement:c,platform:l,elements:u}=t,{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:h,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:w="none",flipAlignment:m=!0,...g}=Se(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const x=Ee(r),y=me(c),b=Ee(c)===c,C=await(l.isRTL==null?void 0:l.isRTL(u.floating)),S=h||(b||!m?[Nt(c)]:$l(c)),A=w!=="none";!h&&A&&S.push(...Vl(c,m,w,C));const E=[c,...S],_=await it(t,g),I=[];let M=((o=s.flip)==null?void 0:o.overflows)||[];if(d&&I.push(_[x]),f){const k=kl(r,a,C);I.push(_[k[0]],_[k[1]])}if(M=[...M,{placement:r,overflows:I}],!I.every(k=>k<=0)){var L,$;const k=(((L=s.flip)==null?void 0:L.index)||0)+1,B=E[k];if(B&&(!(f==="alignment"?y!==me(B):!1)||M.every(N=>me(N.placement)===y?N.overflows[0]>0:!0)))return{data:{index:k,overflows:M},reset:{placement:B}};let D=($=M.filter(W=>W.overflows[0]<=0).sort((W,N)=>W.overflows[1]-N.overflows[1])[0])==null?void 0:$.placement;if(!D)switch(v){case"bestFit":{var F;const W=(F=M.filter(N=>{if(A){const P=me(N.placement);return P===y||P==="y"}return!0}).map(N=>[N.placement,N.overflows.filter(P=>P>0).reduce((P,G)=>P+G,0)]).sort((N,P)=>N[1]-P[1])[0])==null?void 0:F[0];W&&(D=W);break}case"initialPlacement":D=c;break}if(r!==D)return{reset:{placement:D}}}return{}}}};function Ko(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zo(e){return Nl.some(t=>e[t]>=0)}const zl=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=Se(e,t);switch(o){case"referenceHidden":{const s=await it(t,{...r,elementContext:"reference"}),a=Ko(s,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:zo(a)}}}case"escaped":{const s=await it(t,{...r,altBoundary:!0}),a=Ko(s,n.floating);return{data:{escapedOffsets:a,escaped:zo(a)}}}default:return{}}}}},Lr=new Set(["left","top"]);async function Yl(e,t){const{placement:n,platform:o,elements:r}=e,s=await(o.isRTL==null?void 0:o.isRTL(r.floating)),a=Ee(n),c=et(n),l=me(n)==="y",u=Lr.has(a)?-1:1,d=s&&l?-1:1,f=Se(t,e);let{mainAxis:h,crossAxis:v,alignmentAxis:w}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return c&&typeof w=="number"&&(v=c==="end"?w*-1:w),l?{x:v*d,y:h*u}:{x:h*u,y:v*d}}const Xl=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:s,placement:a,middlewareData:c}=t,l=await Yl(t,e);return a===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:s+l.y,data:{...l,placement:a}}}}},ql=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:s=!0,crossAxis:a=!1,limiter:c={fn:g=>{let{x,y}=g;return{x,y}}},...l}=Se(e,t),u={x:n,y:o},d=await it(t,l),f=me(Ee(r)),h=qn(f);let v=u[h],w=u[f];if(s){const g=h==="y"?"top":"left",x=h==="y"?"bottom":"right",y=v+d[g],b=v-d[x];v=Mn(y,v,b)}if(a){const g=f==="y"?"top":"left",x=f==="y"?"bottom":"right",y=w+d[g],b=w-d[x];w=Mn(y,w,b)}const m=c.fn({...t,[h]:v,[f]:w});return{...m,data:{x:m.x-n,y:m.y-o,enabled:{[h]:s,[f]:a}}}}}},Zl=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:s,middlewareData:a}=t,{offset:c=0,mainAxis:l=!0,crossAxis:u=!0}=Se(e,t),d={x:n,y:o},f=me(r),h=qn(f);let v=d[h],w=d[f];const m=Se(c,t),g=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const b=h==="y"?"height":"width",C=s.reference[h]-s.floating[b]+g.mainAxis,S=s.reference[h]+s.reference[b]-g.mainAxis;v<C?v=C:v>S&&(v=S)}if(u){var x,y;const b=h==="y"?"width":"height",C=Lr.has(Ee(r)),S=s.reference[f]-s.floating[b]+(C&&((x=a.offset)==null?void 0:x[f])||0)+(C?0:g.crossAxis),A=s.reference[f]+s.reference[b]+(C?0:((y=a.offset)==null?void 0:y[f])||0)-(C?g.crossAxis:0);w<S?w=S:w>A&&(w=A)}return{[h]:v,[f]:w}}}},Jl=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:s,platform:a,elements:c}=t,{apply:l=()=>{},...u}=Se(e,t),d=await it(t,u),f=Ee(r),h=et(r),v=me(r)==="y",{width:w,height:m}=s.floating;let g,x;f==="top"||f==="bottom"?(g=f,x=h===(await(a.isRTL==null?void 0:a.isRTL(c.floating))?"start":"end")?"left":"right"):(x=f,g=h==="end"?"top":"bottom");const y=m-d.top-d.bottom,b=w-d.left-d.right,C=Te(m-d[g],y),S=Te(w-d[x],b),A=!t.middlewareData.shift;let E=C,_=S;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(_=b),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(E=y),A&&!h){const M=te(d.left,0),L=te(d.right,0),$=te(d.top,0),F=te(d.bottom,0);v?_=w-2*(M!==0||L!==0?M+L:te(d.left,d.right)):E=m-2*($!==0||F!==0?$+F:te(d.top,d.bottom))}await l({...t,availableWidth:_,availableHeight:E});const I=await a.getDimensions(c.floating);return w!==I.width||m!==I.height?{reset:{rects:!0}}:{}}}};function Kt(){return typeof window<"u"}function tt(e){return kr(e)?(e.nodeName||"").toLowerCase():"#document"}function oe(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function xe(e){var t;return(t=(kr(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function kr(e){return Kt()?e instanceof Node||e instanceof oe(e).Node:!1}function de(e){return Kt()?e instanceof Element||e instanceof oe(e).Element:!1}function ge(e){return Kt()?e instanceof HTMLElement||e instanceof oe(e).HTMLElement:!1}function Yo(e){return!Kt()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof oe(e).ShadowRoot}const Ql=new Set(["inline","contents"]);function pt(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=fe(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!Ql.has(r)}const eu=new Set(["table","td","th"]);function tu(e){return eu.has(tt(e))}const nu=[":popover-open",":modal"];function zt(e){return nu.some(t=>{try{return e.matches(t)}catch{return!1}})}const ou=["transform","translate","scale","rotate","perspective"],ru=["transform","translate","scale","rotate","perspective","filter"],su=["paint","layout","strict","content"];function Qn(e){const t=eo(),n=de(e)?fe(e):e;return ou.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||ru.some(o=>(n.willChange||"").includes(o))||su.some(o=>(n.contain||"").includes(o))}function iu(e){let t=_e(e);for(;ge(t)&&!Ye(t);){if(Qn(t))return t;if(zt(t))return null;t=_e(t)}return null}function eo(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const au=new Set(["html","body","#document"]);function Ye(e){return au.has(tt(e))}function fe(e){return oe(e).getComputedStyle(e)}function Yt(e){return de(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _e(e){if(tt(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Yo(e)&&e.host||xe(e);return Yo(t)?t.host:t}function $r(e){const t=_e(e);return Ye(t)?e.ownerDocument?e.ownerDocument.body:e.body:ge(t)&&pt(t)?t:$r(t)}function at(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=$r(e),s=r===((o=e.ownerDocument)==null?void 0:o.body),a=oe(r);if(s){const c=Dn(a);return t.concat(a,a.visualViewport||[],pt(r)?r:[],c&&n?at(c):[])}return t.concat(r,at(r,[],n))}function Dn(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Fr(e){const t=fe(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=ge(e),s=r?e.offsetWidth:n,a=r?e.offsetHeight:o,c=Mt(n)!==s||Mt(o)!==a;return c&&(n=s,o=a),{width:n,height:o,$:c}}function to(e){return de(e)?e:e.contextElement}function Ke(e){const t=to(e);if(!ge(t))return ve(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:s}=Fr(t);let a=(s?Mt(n.width):n.width)/o,c=(s?Mt(n.height):n.height)/r;return(!a||!Number.isFinite(a))&&(a=1),(!c||!Number.isFinite(c))&&(c=1),{x:a,y:c}}const cu=ve(0);function Wr(e){const t=oe(e);return!eo()||!t.visualViewport?cu:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function lu(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==oe(e)?!1:t}function ke(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),s=to(e);let a=ve(1);t&&(o?de(o)&&(a=Ke(o)):a=Ke(e));const c=lu(s,n,o)?Wr(s):ve(0);let l=(r.left+c.x)/a.x,u=(r.top+c.y)/a.y,d=r.width/a.x,f=r.height/a.y;if(s){const h=oe(s),v=o&&de(o)?oe(o):o;let w=h,m=Dn(w);for(;m&&o&&v!==w;){const g=Ke(m),x=m.getBoundingClientRect(),y=fe(m),b=x.left+(m.clientLeft+parseFloat(y.paddingLeft))*g.x,C=x.top+(m.clientTop+parseFloat(y.paddingTop))*g.y;l*=g.x,u*=g.y,d*=g.x,f*=g.y,l+=b,u+=C,w=oe(m),m=Dn(w)}}return Dt({width:d,height:f,x:l,y:u})}function Xt(e,t){const n=Yt(e).scrollLeft;return t?t.left+n:ke(xe(e)).left+n}function Br(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-Xt(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function uu(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const s=r==="fixed",a=xe(o),c=t?zt(t.floating):!1;if(o===a||c&&s)return n;let l={scrollLeft:0,scrollTop:0},u=ve(1);const d=ve(0),f=ge(o);if((f||!f&&!s)&&((tt(o)!=="body"||pt(a))&&(l=Yt(o)),ge(o))){const v=ke(o);u=Ke(o),d.x=v.x+o.clientLeft,d.y=v.y+o.clientTop}const h=a&&!f&&!s?Br(a,l):ve(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-l.scrollTop*u.y+d.y+h.y}}function du(e){return Array.from(e.getClientRects())}function fu(e){const t=xe(e),n=Yt(e),o=e.ownerDocument.body,r=te(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),s=te(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let a=-n.scrollLeft+Xt(e);const c=-n.scrollTop;return fe(o).direction==="rtl"&&(a+=te(t.clientWidth,o.clientWidth)-r),{width:r,height:s,x:a,y:c}}const Xo=25;function pu(e,t){const n=oe(e),o=xe(e),r=n.visualViewport;let s=o.clientWidth,a=o.clientHeight,c=0,l=0;if(r){s=r.width,a=r.height;const d=eo();(!d||d&&t==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const u=Xt(o);if(u<=0){const d=o.ownerDocument,f=d.body,h=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,w=Math.abs(o.clientWidth-f.clientWidth-v);w<=Xo&&(s-=w)}else u<=Xo&&(s+=u);return{width:s,height:a,x:c,y:l}}const hu=new Set(["absolute","fixed"]);function mu(e,t){const n=ke(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,s=ge(e)?Ke(e):ve(1),a=e.clientWidth*s.x,c=e.clientHeight*s.y,l=r*s.x,u=o*s.y;return{width:a,height:c,x:l,y:u}}function qo(e,t,n){let o;if(t==="viewport")o=pu(e,n);else if(t==="document")o=fu(xe(e));else if(de(t))o=mu(t,n);else{const r=Wr(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Dt(o)}function Vr(e,t){const n=_e(e);return n===t||!de(n)||Ye(n)?!1:fe(n).position==="fixed"||Vr(n,t)}function vu(e,t){const n=t.get(e);if(n)return n;let o=at(e,[],!1).filter(c=>de(c)&&tt(c)!=="body"),r=null;const s=fe(e).position==="fixed";let a=s?_e(e):e;for(;de(a)&&!Ye(a);){const c=fe(a),l=Qn(a);!l&&c.position==="fixed"&&(r=null),(s?!l&&!r:!l&&c.position==="static"&&!!r&&hu.has(r.position)||pt(a)&&!l&&Vr(e,a))?o=o.filter(d=>d!==a):r=c,a=_e(a)}return t.set(e,o),o}function gu(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const a=[...n==="clippingAncestors"?zt(t)?[]:vu(t,this._c):[].concat(n),o],c=a[0],l=a.reduce((u,d)=>{const f=qo(t,d,r);return u.top=te(f.top,u.top),u.right=Te(f.right,u.right),u.bottom=Te(f.bottom,u.bottom),u.left=te(f.left,u.left),u},qo(t,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function wu(e){const{width:t,height:n}=Fr(e);return{width:t,height:n}}function xu(e,t,n){const o=ge(t),r=xe(t),s=n==="fixed",a=ke(e,!0,s,t);let c={scrollLeft:0,scrollTop:0};const l=ve(0);function u(){l.x=Xt(r)}if(o||!o&&!s)if((tt(t)!=="body"||pt(r))&&(c=Yt(t)),o){const v=ke(t,!0,s,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else r&&u();s&&!o&&r&&u();const d=r&&!o&&!s?Br(r,c):ve(0),f=a.left+c.scrollLeft-l.x-d.x,h=a.top+c.scrollTop-l.y-d.y;return{x:f,y:h,width:a.width,height:a.height}}function An(e){return fe(e).position==="static"}function Zo(e,t){if(!ge(e)||fe(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return xe(e)===n&&(n=n.ownerDocument.body),n}function Hr(e,t){const n=oe(e);if(zt(e))return n;if(!ge(e)){let r=_e(e);for(;r&&!Ye(r);){if(de(r)&&!An(r))return r;r=_e(r)}return n}let o=Zo(e,t);for(;o&&tu(o)&&An(o);)o=Zo(o,t);return o&&Ye(o)&&An(o)&&!Qn(o)?n:o||iu(e)||n}const yu=async function(e){const t=this.getOffsetParent||Hr,n=this.getDimensions,o=await n(e.floating);return{reference:xu(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function bu(e){return fe(e).direction==="rtl"}const Cu={convertOffsetParentRelativeRectToViewportRelativeRect:uu,getDocumentElement:xe,getClippingRect:gu,getOffsetParent:Hr,getElementRects:yu,getClientRects:du,getDimensions:wu,getScale:Ke,isElement:de,isRTL:bu};function Ur(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Su(e,t){let n=null,o;const r=xe(e);function s(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function a(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),s();const u=e.getBoundingClientRect(),{left:d,top:f,width:h,height:v}=u;if(c||t(),!h||!v)return;const w=Pt(f),m=Pt(r.clientWidth-(d+h)),g=Pt(r.clientHeight-(f+v)),x=Pt(d),b={rootMargin:-w+"px "+-m+"px "+-g+"px "+-x+"px",threshold:te(0,Te(1,l))||1};let C=!0;function S(A){const E=A[0].intersectionRatio;if(E!==l){if(!C)return a();E?a(!1,E):o=setTimeout(()=>{a(!1,1e-7)},1e3)}E===1&&!Ur(u,e.getBoundingClientRect())&&a(),C=!1}try{n=new IntersectionObserver(S,{...b,root:r.ownerDocument})}catch{n=new IntersectionObserver(S,b)}n.observe(e)}return a(!0),s}function Eu(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,u=to(e),d=r||s?[...u?at(u):[],...at(t)]:[];d.forEach(x=>{r&&x.addEventListener("scroll",n,{passive:!0}),s&&x.addEventListener("resize",n)});const f=u&&c?Su(u,n):null;let h=-1,v=null;a&&(v=new ResizeObserver(x=>{let[y]=x;y&&y.target===u&&v&&(v.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var b;(b=v)==null||b.observe(t)})),n()}),u&&!l&&v.observe(u),v.observe(t));let w,m=l?ke(e):null;l&&g();function g(){const x=ke(e);m&&!Ur(m,x)&&n(),m=x,w=requestAnimationFrame(g)}return n(),()=>{var x;d.forEach(y=>{r&&y.removeEventListener("scroll",n),s&&y.removeEventListener("resize",n)}),f?.(),(x=v)==null||x.disconnect(),v=null,l&&cancelAnimationFrame(w)}}const Ru=Xl,Pu=ql,Au=Kl,Tu=Jl,_u=zl,Jo=Gl,Iu=Zl,Ou=(e,t,n)=>{const o=new Map,r={platform:Cu,...n},s={...r.platform,_c:o};return Ul(e,t,{...r,platform:s})};var Mu=typeof document<"u",Nu=function(){},_t=Mu?i.useLayoutEffect:Nu;function jt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!jt(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const s=r[o];if(!(s==="_owner"&&e.$$typeof)&&!jt(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Gr(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Qo(e,t){const n=Gr(e);return Math.round(t*n)/n}function Tn(e){const t=i.useRef(e);return _t(()=>{t.current=e}),t}function Du(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:s,floating:a}={},transform:c=!0,whileElementsMounted:l,open:u}=e,[d,f]=i.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,v]=i.useState(o);jt(h,o)||v(o);const[w,m]=i.useState(null),[g,x]=i.useState(null),y=i.useCallback(N=>{N!==A.current&&(A.current=N,m(N))},[]),b=i.useCallback(N=>{N!==E.current&&(E.current=N,x(N))},[]),C=s||w,S=a||g,A=i.useRef(null),E=i.useRef(null),_=i.useRef(d),I=l!=null,M=Tn(l),L=Tn(r),$=Tn(u),F=i.useCallback(()=>{if(!A.current||!E.current)return;const N={placement:t,strategy:n,middleware:h};L.current&&(N.platform=L.current),Ou(A.current,E.current,N).then(P=>{const G={...P,isPositioned:$.current!==!1};k.current&&!jt(_.current,G)&&(_.current=G,Bt.flushSync(()=>{f(G)}))})},[h,t,n,L,$]);_t(()=>{u===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,f(N=>({...N,isPositioned:!1})))},[u]);const k=i.useRef(!1);_t(()=>(k.current=!0,()=>{k.current=!1}),[]),_t(()=>{if(C&&(A.current=C),S&&(E.current=S),C&&S){if(M.current)return M.current(C,S,F);F()}},[C,S,F,M,I]);const B=i.useMemo(()=>({reference:A,floating:E,setReference:y,setFloating:b}),[y,b]),D=i.useMemo(()=>({reference:C,floating:S}),[C,S]),W=i.useMemo(()=>{const N={position:n,left:0,top:0};if(!D.floating)return N;const P=Qo(D.floating,d.x),G=Qo(D.floating,d.y);return c?{...N,transform:"translate("+P+"px, "+G+"px)",...Gr(D.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:P,top:G}},[n,c,D.floating,d.x,d.y]);return i.useMemo(()=>({...d,update:F,refs:B,elements:D,floatingStyles:W}),[d,F,B,D,W])}const ju=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Jo({element:o.current,padding:r}).fn(n):{}:o?Jo({element:o,padding:r}).fn(n):{}}}},Lu=(e,t)=>({...Ru(e),options:[e,t]}),ku=(e,t)=>({...Pu(e),options:[e,t]}),$u=(e,t)=>({...Iu(e),options:[e,t]}),Fu=(e,t)=>({...Au(e),options:[e,t]}),Wu=(e,t)=>({...Tu(e),options:[e,t]}),Bu=(e,t)=>({..._u(e),options:[e,t]}),Vu=(e,t)=>({...ju(e),options:[e,t]});var Hu="Arrow",Kr=i.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...s}=e;return p.jsx(O.svg,{...s,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:p.jsx("polygon",{points:"0,0 30,0 15,10"})})});Kr.displayName=Hu;var Uu=Kr;function no(e){const[t,n]=i.useState(void 0);return Y(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const s=r[0];let a,c;if("borderBoxSize"in s){const l=s.borderBoxSize,u=Array.isArray(l)?l[0]:l;a=u.inlineSize,c=u.blockSize}else a=e.offsetWidth,c=e.offsetHeight;n({width:a,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var oo="Popper",[zr,Ie]=J(oo),[Gu,Yr]=zr(oo),Xr=e=>{const{__scopePopper:t,children:n}=e,[o,r]=i.useState(null);return p.jsx(Gu,{scope:t,anchor:o,onAnchorChange:r,children:n})};Xr.displayName=oo;var qr="PopperAnchor",Zr=i.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,s=Yr(qr,n),a=i.useRef(null),c=j(t,a),l=i.useRef(null);return i.useEffect(()=>{const u=l.current;l.current=o?.current||a.current,u!==l.current&&s.onAnchorChange(l.current)}),o?null:p.jsx(O.div,{...r,ref:c})});Zr.displayName=qr;var ro="PopperContent",[Ku,zu]=zr(ro),Jr=i.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:s="center",alignOffset:a=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:v="optimized",onPlaced:w,...m}=e,g=Yr(ro,n),[x,y]=i.useState(null),b=j(t,T=>y(T)),[C,S]=i.useState(null),A=no(C),E=A?.width??0,_=A?.height??0,I=o+(s!=="center"?"-"+s:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},L=Array.isArray(u)?u:[u],$=L.length>0,F={padding:M,boundary:L.filter(Xu),altBoundary:$},{refs:k,floatingStyles:B,placement:D,isPositioned:W,middlewareData:N}=Du({strategy:"fixed",placement:I,whileElementsMounted:(...T)=>Eu(...T,{animationFrame:v==="always"}),elements:{reference:g.anchor},middleware:[Lu({mainAxis:r+_,alignmentAxis:a}),l&&ku({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?$u():void 0,...F}),l&&Fu({...F}),Wu({...F,apply:({elements:T,rects:V,availableWidth:Z,availableHeight:H})=>{const{width:U,height:K}=V.reference,se=T.floating.style;se.setProperty("--radix-popper-available-width",`${Z}px`),se.setProperty("--radix-popper-available-height",`${H}px`),se.setProperty("--radix-popper-anchor-width",`${U}px`),se.setProperty("--radix-popper-anchor-height",`${K}px`)}}),C&&Vu({element:C,padding:c}),qu({arrowWidth:E,arrowHeight:_}),h&&Bu({strategy:"referenceHidden",...F})]}),[P,G]=ts(D),q=X(w);Y(()=>{W&&q?.()},[W,q]);const ce=N.arrow?.x,be=N.arrow?.y,re=N.arrow?.centerOffset!==0,[Ce,ee]=i.useState();return Y(()=>{x&&ee(window.getComputedStyle(x).zIndex)},[x]),p.jsx("div",{ref:k.setFloating,"data-radix-popper-content-wrapper":"",style:{...B,transform:W?B.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ce,"--radix-popper-transform-origin":[N.transformOrigin?.x,N.transformOrigin?.y].join(" "),...N.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:p.jsx(Ku,{scope:n,placedSide:P,onArrowChange:S,arrowX:ce,arrowY:be,shouldHideArrow:re,children:p.jsx(O.div,{"data-side":P,"data-align":G,...m,ref:b,style:{...m.style,animation:W?void 0:"none"}})})})});Jr.displayName=ro;var Qr="PopperArrow",Yu={top:"bottom",right:"left",bottom:"top",left:"right"},es=i.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,s=zu(Qr,o),a=Yu[s.placedSide];return p.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:p.jsx(Uu,{...r,ref:n,style:{...r.style,display:"block"}})})});es.displayName=Qr;function Xu(e){return e!==null}var qu=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,a=r.arrow?.centerOffset!==0,c=a?0:e.arrowWidth,l=a?0:e.arrowHeight,[u,d]=ts(n),f={start:"0%",center:"50%",end:"100%"}[d],h=(r.arrow?.x??0)+c/2,v=(r.arrow?.y??0)+l/2;let w="",m="";return u==="bottom"?(w=a?f:`${h}px`,m=`${-l}px`):u==="top"?(w=a?f:`${h}px`,m=`${o.floating.height+l}px`):u==="right"?(w=`${-l}px`,m=a?f:`${v}px`):u==="left"&&(w=`${o.floating.width+l}px`,m=a?f:`${v}px`),{data:{x:w,y:m}}}});function ts(e){const[t,n="center"]=e.split("-");return[t,n]}var qt=Xr,ht=Zr,Zt=Jr,Jt=es,Zu=Symbol("radix.slottable");function Ju(e){const t=({children:n})=>p.jsx(p.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Zu,t}var ns=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"}),Qu="VisuallyHidden",os=i.forwardRef((e,t)=>p.jsx(O.span,{...e,ref:t,style:{...ns,...e.style}}));os.displayName=Qu;var ed=os,[Qt]=J("Tooltip",[Ie]),en=Ie(),rs="TooltipProvider",td=700,jn="tooltip.open",[nd,so]=Qt(rs),ss=e=>{const{__scopeTooltip:t,delayDuration:n=td,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:s}=e,a=i.useRef(!0),c=i.useRef(!1),l=i.useRef(0);return i.useEffect(()=>{const u=l.current;return()=>window.clearTimeout(u)},[]),p.jsx(nd,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:i.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:i.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,o)},[o]),isPointerInTransitRef:c,onPointerInTransitChange:i.useCallback(u=>{c.current=u},[]),disableHoverableContent:r,children:s})};ss.displayName=rs;var ct="Tooltip",[od,mt]=Qt(ct),is=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r,onOpenChange:s,disableHoverableContent:a,delayDuration:c}=e,l=so(ct,e.__scopeTooltip),u=en(t),[d,f]=i.useState(null),h=ne(),v=i.useRef(0),w=a??l.disableHoverableContent,m=c??l.delayDuration,g=i.useRef(!1),[x,y]=ue({prop:o,defaultProp:r??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(jn))):l.onClose(),s?.(E)},caller:ct}),b=i.useMemo(()=>x?g.current?"delayed-open":"instant-open":"closed",[x]),C=i.useCallback(()=>{window.clearTimeout(v.current),v.current=0,g.current=!1,y(!0)},[y]),S=i.useCallback(()=>{window.clearTimeout(v.current),v.current=0,y(!1)},[y]),A=i.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{g.current=!0,y(!0),v.current=0},m)},[m,y]);return i.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),p.jsx(qt,{...u,children:p.jsx(od,{scope:t,contentId:h,open:x,stateAttribute:b,trigger:d,onTriggerChange:f,onTriggerEnter:i.useCallback(()=>{l.isOpenDelayedRef.current?A():C()},[l.isOpenDelayedRef,A,C]),onTriggerLeave:i.useCallback(()=>{w?S():(window.clearTimeout(v.current),v.current=0)},[S,w]),onOpen:C,onClose:S,disableHoverableContent:w,children:n})})};is.displayName=ct;var Ln="TooltipTrigger",as=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=mt(Ln,n),s=so(Ln,n),a=en(n),c=i.useRef(null),l=j(t,c,r.onTriggerChange),u=i.useRef(!1),d=i.useRef(!1),f=i.useCallback(()=>u.current=!1,[]);return i.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),p.jsx(ht,{asChild:!0,...a,children:p.jsx(O.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:l,onPointerMove:R(e.onPointerMove,h=>{h.pointerType!=="touch"&&!d.current&&!s.isPointerInTransitRef.current&&(r.onTriggerEnter(),d.current=!0)}),onPointerLeave:R(e.onPointerLeave,()=>{r.onTriggerLeave(),d.current=!1}),onPointerDown:R(e.onPointerDown,()=>{r.open&&r.onClose(),u.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:R(e.onFocus,()=>{u.current||r.onOpen()}),onBlur:R(e.onBlur,r.onClose),onClick:R(e.onClick,r.onClose)})})});as.displayName=Ln;var io="TooltipPortal",[rd,sd]=Qt(io,{forceMount:void 0}),cs=e=>{const{__scopeTooltip:t,forceMount:n,children:o,container:r}=e,s=mt(io,t);return p.jsx(rd,{scope:t,forceMount:n,children:p.jsx(z,{present:n||s.open,children:p.jsx(Qe,{asChild:!0,container:r,children:o})})})};cs.displayName=io;var Xe="TooltipContent",ls=i.forwardRef((e,t)=>{const n=sd(Xe,e.__scopeTooltip),{forceMount:o=n.forceMount,side:r="top",...s}=e,a=mt(Xe,e.__scopeTooltip);return p.jsx(z,{present:o||a.open,children:a.disableHoverableContent?p.jsx(us,{side:r,...s,ref:t}):p.jsx(id,{side:r,...s,ref:t})})}),id=i.forwardRef((e,t)=>{const n=mt(Xe,e.__scopeTooltip),o=so(Xe,e.__scopeTooltip),r=i.useRef(null),s=j(t,r),[a,c]=i.useState(null),{trigger:l,onClose:u}=n,d=r.current,{onPointerInTransitChange:f}=o,h=i.useCallback(()=>{c(null),f(!1)},[f]),v=i.useCallback((w,m)=>{const g=w.currentTarget,x={x:w.clientX,y:w.clientY},y=ud(x,g.getBoundingClientRect()),b=dd(x,y),C=fd(m.getBoundingClientRect()),S=hd([...b,...C]);c(S),f(!0)},[f]);return i.useEffect(()=>()=>h(),[h]),i.useEffect(()=>{if(l&&d){const w=g=>v(g,d),m=g=>v(g,l);return l.addEventListener("pointerleave",w),d.addEventListener("pointerleave",m),()=>{l.removeEventListener("pointerleave",w),d.removeEventListener("pointerleave",m)}}},[l,d,v,h]),i.useEffect(()=>{if(a){const w=m=>{const g=m.target,x={x:m.clientX,y:m.clientY},y=l?.contains(g)||d?.contains(g),b=!pd(x,a);y?h():b&&(h(),u())};return document.addEventListener("pointermove",w),()=>document.removeEventListener("pointermove",w)}},[l,d,a,u,h]),p.jsx(us,{...e,ref:s})}),[ad,cd]=Qt(ct,{isInside:!1}),ld=Ju("TooltipContent"),us=i.forwardRef((e,t)=>{const{__scopeTooltip:n,children:o,"aria-label":r,onEscapeKeyDown:s,onPointerDownOutside:a,...c}=e,l=mt(Xe,n),u=en(n),{onClose:d}=l;return i.useEffect(()=>(document.addEventListener(jn,d),()=>document.removeEventListener(jn,d)),[d]),i.useEffect(()=>{if(l.trigger){const f=h=>{h.target?.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),p.jsx(Je,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:p.jsxs(Zt,{"data-state":l.stateAttribute,...u,...c,ref:t,style:{...c.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:[p.jsx(ld,{children:o}),p.jsx(ad,{scope:n,isInside:!0,children:p.jsx(ed,{id:l.contentId,role:"tooltip",children:r||o})})]})})});ls.displayName=Xe;var ds="TooltipArrow",fs=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,r=en(n);return cd(ds,n).isInside?null:p.jsx(Jt,{...r,...o,ref:t})});fs.displayName=ds;function ud(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,o,r,s)){case s:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function dd(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return o}function fd(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function pd(e,t){const{x:n,y:o}=e;let r=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const c=t[s],l=t[a],u=c.x,d=c.y,f=l.x,h=l.y;d>o!=h>o&&n<(f-u)*(o-d)/(h-d)+u&&(r=!r)}return r}function hd(e){const t=e.slice();return t.sort((n,o)=>n.x<o.x?-1:n.x>o.x?1:n.y<o.y?-1:n.y>o.y?1:0),md(t)}function md(e){if(e.length<=1)return e.slice();const t=[];for(let o=0;o<e.length;o++){const r=e[o];for(;t.length>=2;){const s=t[t.length-1],a=t[t.length-2];if((s.x-a.x)*(r.y-a.y)>=(s.y-a.y)*(r.x-a.x))t.pop();else break}t.push(r)}t.pop();const n=[];for(let o=e.length-1;o>=0;o--){const r=e[o];for(;n.length>=2;){const s=n[n.length-1],a=n[n.length-2];if((s.x-a.x)*(r.y-a.y)>=(s.y-a.y)*(r.x-a.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Mh=ss,Nh=is,Dh=as,jh=cs,Lh=ls,kh=fs,tn="Collapsible",[vd]=J(tn),[gd,ao]=vd(tn),ps=i.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:o,defaultOpen:r,disabled:s,onOpenChange:a,...c}=e,[l,u]=ue({prop:o,defaultProp:r??!1,onChange:a,caller:tn});return p.jsx(gd,{scope:n,disabled:s,contentId:ne(),open:l,onOpenToggle:i.useCallback(()=>u(d=>!d),[u]),children:p.jsx(O.div,{"data-state":lo(l),"data-disabled":s?"":void 0,...c,ref:t})})});ps.displayName=tn;var hs="CollapsibleTrigger",wd=i.forwardRef((e,t)=>{const{__scopeCollapsible:n,...o}=e,r=ao(hs,n);return p.jsx(O.button,{type:"button","aria-controls":r.contentId,"aria-expanded":r.open||!1,"data-state":lo(r.open),"data-disabled":r.disabled?"":void 0,disabled:r.disabled,...o,ref:t,onClick:R(e.onClick,r.onOpenToggle)})});wd.displayName=hs;var co="CollapsibleContent",xd=i.forwardRef((e,t)=>{const{forceMount:n,...o}=e,r=ao(co,e.__scopeCollapsible);return p.jsx(z,{present:n||r.open,children:({present:s})=>p.jsx(yd,{...o,ref:t,present:s})})});xd.displayName=co;var yd=i.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:o,children:r,...s}=e,a=ao(co,n),[c,l]=i.useState(o),u=i.useRef(null),d=j(t,u),f=i.useRef(0),h=f.current,v=i.useRef(0),w=v.current,m=a.open||c,g=i.useRef(m),x=i.useRef(void 0);return i.useEffect(()=>{const y=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(y)},[]),Y(()=>{const y=u.current;if(y){x.current=x.current||{transitionDuration:y.style.transitionDuration,animationName:y.style.animationName},y.style.transitionDuration="0s",y.style.animationName="none";const b=y.getBoundingClientRect();f.current=b.height,v.current=b.width,g.current||(y.style.transitionDuration=x.current.transitionDuration,y.style.animationName=x.current.animationName),l(o)}},[a.open,o]),p.jsx(O.div,{"data-state":lo(a.open),"data-disabled":a.disabled?"":void 0,id:a.contentId,hidden:!m,...s,ref:d,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:m&&r})});function lo(e){return e?"open":"closed"}var $h=ps;function er(e){const t=bd(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(Sd);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function bd(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=Rd(r),c=Ed(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Cd=Symbol("radix.slottable");function Sd(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Cd}function Ed(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function Rd(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function uo(e){const t=e+"CollectionProvider",[n,o]=J(t),[r,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=m=>{const{scope:g,children:x}=m,y=je.useRef(null),b=je.useRef(new Map).current;return p.jsx(r,{scope:g,itemMap:b,collectionRef:y,children:x})};a.displayName=t;const c=e+"CollectionSlot",l=er(c),u=je.forwardRef((m,g)=>{const{scope:x,children:y}=m,b=s(c,x),C=j(g,b.collectionRef);return p.jsx(l,{ref:C,children:y})});u.displayName=c;const d=e+"CollectionItemSlot",f="data-radix-collection-item",h=er(d),v=je.forwardRef((m,g)=>{const{scope:x,children:y,...b}=m,C=je.useRef(null),S=j(g,C),A=s(d,x);return je.useEffect(()=>(A.itemMap.set(C,{ref:C,...b}),()=>void A.itemMap.delete(C))),p.jsx(h,{[f]:"",ref:S,children:y})});v.displayName=d;function w(m){const g=s(e+"CollectionConsumer",m);return je.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const b=Array.from(y.querySelectorAll(`[${f}]`));return Array.from(g.itemMap.values()).sort((A,E)=>b.indexOf(A.ref.current)-b.indexOf(E.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:a,Slot:u,ItemSlot:v},w,o]}var Pd=i.createContext(void 0);function vt(e){const t=i.useContext(Pd);return e||t||"ltr"}var _n="rovingFocusGroup.onEntryFocus",Ad={bubbles:!1,cancelable:!0},gt="RovingFocusGroup",[kn,ms,Td]=uo(gt),[_d,nn]=J(gt,[Td]),[Id,Od]=_d(gt),vs=i.forwardRef((e,t)=>p.jsx(kn.Provider,{scope:e.__scopeRovingFocusGroup,children:p.jsx(kn.Slot,{scope:e.__scopeRovingFocusGroup,children:p.jsx(Md,{...e,ref:t})})}));vs.displayName=gt;var Md=i.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:s,currentTabStopId:a,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,h=i.useRef(null),v=j(t,h),w=vt(s),[m,g]=ue({prop:a,defaultProp:c??null,onChange:l,caller:gt}),[x,y]=i.useState(!1),b=X(u),C=ms(n),S=i.useRef(!1),[A,E]=i.useState(0);return i.useEffect(()=>{const _=h.current;if(_)return _.addEventListener(_n,b),()=>_.removeEventListener(_n,b)},[b]),p.jsx(Id,{scope:n,orientation:o,dir:w,loop:r,currentTabStopId:m,onItemFocus:i.useCallback(_=>g(_),[g]),onItemShiftTab:i.useCallback(()=>y(!0),[]),onFocusableItemAdd:i.useCallback(()=>E(_=>_+1),[]),onFocusableItemRemove:i.useCallback(()=>E(_=>_-1),[]),children:p.jsx(O.div,{tabIndex:x||A===0?-1:0,"data-orientation":o,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:R(e.onMouseDown,()=>{S.current=!0}),onFocus:R(e.onFocus,_=>{const I=!S.current;if(_.target===_.currentTarget&&I&&!x){const M=new CustomEvent(_n,Ad);if(_.currentTarget.dispatchEvent(M),!M.defaultPrevented){const L=C().filter(D=>D.focusable),$=L.find(D=>D.active),F=L.find(D=>D.id===m),B=[$,F,...L].filter(Boolean).map(D=>D.ref.current);xs(B,d)}}S.current=!1}),onBlur:R(e.onBlur,()=>y(!1))})})}),gs="RovingFocusGroupItem",ws=i.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:s,children:a,...c}=e,l=ne(),u=s||l,d=Od(gs,n),f=d.currentTabStopId===u,h=ms(n),{onFocusableItemAdd:v,onFocusableItemRemove:w,currentTabStopId:m}=d;return i.useEffect(()=>{if(o)return v(),()=>w()},[o,v,w]),p.jsx(kn.ItemSlot,{scope:n,id:u,focusable:o,active:r,children:p.jsx(O.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...c,ref:t,onMouseDown:R(e.onMouseDown,g=>{o?d.onItemFocus(u):g.preventDefault()}),onFocus:R(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:R(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){d.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const x=jd(g,d.orientation,d.dir);if(x!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let b=h().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")b.reverse();else if(x==="prev"||x==="next"){x==="prev"&&b.reverse();const C=b.indexOf(g.currentTarget);b=d.loop?Ld(b,C+1):b.slice(C+1)}setTimeout(()=>xs(b))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:m!=null}):a})})});ws.displayName=gs;var Nd={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Dd(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function jd(e,t,n){const o=Dd(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Nd[o]}function xs(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function Ld(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var ys=vs,bs=ws;function kd(e){const t=$d(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(Wd);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function $d(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=Vd(r),c=Bd(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Fd=Symbol("radix.slottable");function Wd(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Fd}function Bd(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function Vd(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var $n=["Enter"," "],Hd=["ArrowDown","PageUp","Home"],Cs=["ArrowUp","PageDown","End"],Ud=[...Hd,...Cs],Gd={ltr:[...$n,"ArrowRight"],rtl:[...$n,"ArrowLeft"]},Kd={ltr:["ArrowLeft"],rtl:["ArrowRight"]},wt="Menu",[lt,zd,Yd]=uo(wt),[We,Ss]=J(wt,[Yd,Ie,nn]),on=Ie(),Es=nn(),[Xd,Be]=We(wt),[qd,xt]=We(wt),Rs=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:r,onOpenChange:s,modal:a=!0}=e,c=on(t),[l,u]=i.useState(null),d=i.useRef(!1),f=X(s),h=vt(r);return i.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",w,{capture:!0,once:!0}),document.addEventListener("pointermove",w,{capture:!0,once:!0})},w=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",w,{capture:!0}),document.removeEventListener("pointermove",w,{capture:!0})}},[]),p.jsx(qt,{...c,children:p.jsx(Xd,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:u,children:p.jsx(qd,{scope:t,onClose:i.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:h,modal:a,children:o})})})};Rs.displayName=wt;var Zd="MenuAnchor",fo=i.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=on(n);return p.jsx(ht,{...r,...o,ref:t})});fo.displayName=Zd;var po="MenuPortal",[Jd,Ps]=We(po,{forceMount:void 0}),As=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,s=Be(po,t);return p.jsx(Jd,{scope:t,forceMount:n,children:p.jsx(z,{present:n||s.open,children:p.jsx(Qe,{asChild:!0,container:r,children:o})})})};As.displayName=po;var ie="MenuContent",[Qd,ho]=We(ie),Ts=i.forwardRef((e,t)=>{const n=Ps(ie,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,s=Be(ie,e.__scopeMenu),a=xt(ie,e.__scopeMenu);return p.jsx(lt.Provider,{scope:e.__scopeMenu,children:p.jsx(z,{present:o||s.open,children:p.jsx(lt.Slot,{scope:e.__scopeMenu,children:a.modal?p.jsx(ef,{...r,ref:t}):p.jsx(tf,{...r,ref:t})})})})}),ef=i.forwardRef((e,t)=>{const n=Be(ie,e.__scopeMenu),o=i.useRef(null),r=j(t,o);return i.useEffect(()=>{const s=o.current;if(s)return Ut(s)},[]),p.jsx(mo,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:R(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),tf=i.forwardRef((e,t)=>{const n=Be(ie,e.__scopeMenu);return p.jsx(mo,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),nf=kd("MenuContent.ScrollLock"),mo=i.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:s,onCloseAutoFocus:a,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:v,disableOutsideScroll:w,...m}=e,g=Be(ie,n),x=xt(ie,n),y=on(n),b=Es(n),C=zd(n),[S,A]=i.useState(null),E=i.useRef(null),_=j(t,E,g.onContentChange),I=i.useRef(0),M=i.useRef(""),L=i.useRef(0),$=i.useRef(null),F=i.useRef("right"),k=i.useRef(0),B=w?ft:i.Fragment,D=w?{as:nf,allowPinchZoom:!0}:void 0,W=P=>{const G=M.current+P,q=C().filter(T=>!T.disabled),ce=document.activeElement,be=q.find(T=>T.ref.current===ce)?.textValue,re=q.map(T=>T.textValue),Ce=mf(re,G,be),ee=q.find(T=>T.textValue===Ce)?.ref.current;(function T(V){M.current=V,window.clearTimeout(I.current),V!==""&&(I.current=window.setTimeout(()=>T(""),1e3))})(G),ee&&setTimeout(()=>ee.focus())};i.useEffect(()=>()=>window.clearTimeout(I.current),[]),Vt();const N=i.useCallback(P=>F.current===$.current?.side&&gf(P,$.current?.area),[]);return p.jsx(Qd,{scope:n,searchRef:M,onItemEnter:i.useCallback(P=>{N(P)&&P.preventDefault()},[N]),onItemLeave:i.useCallback(P=>{N(P)||(E.current?.focus(),A(null))},[N]),onTriggerLeave:i.useCallback(P=>{N(P)&&P.preventDefault()},[N]),pointerGraceTimerRef:L,onPointerGraceIntentChange:i.useCallback(P=>{$.current=P},[]),children:p.jsx(B,{...D,children:p.jsx(dt,{asChild:!0,trapped:r,onMountAutoFocus:R(s,P=>{P.preventDefault(),E.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:p.jsx(Je,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:v,children:p.jsx(ys,{asChild:!0,...b,dir:x.dir,orientation:"vertical",loop:o,currentTabStopId:S,onCurrentTabStopIdChange:A,onEntryFocus:R(l,P=>{x.isUsingKeyboardRef.current||P.preventDefault()}),preventScrollOnEntryFocus:!0,children:p.jsx(Zt,{role:"menu","aria-orientation":"vertical","data-state":Us(g.open),"data-radix-menu-content":"",dir:x.dir,...y,...m,ref:_,style:{outline:"none",...m.style},onKeyDown:R(m.onKeyDown,P=>{const q=P.target.closest("[data-radix-menu-content]")===P.currentTarget,ce=P.ctrlKey||P.altKey||P.metaKey,be=P.key.length===1;q&&(P.key==="Tab"&&P.preventDefault(),!ce&&be&&W(P.key));const re=E.current;if(P.target!==re||!Ud.includes(P.key))return;P.preventDefault();const ee=C().filter(T=>!T.disabled).map(T=>T.ref.current);Cs.includes(P.key)&&ee.reverse(),pf(ee)}),onBlur:R(e.onBlur,P=>{P.currentTarget.contains(P.target)||(window.clearTimeout(I.current),M.current="")}),onPointerMove:R(e.onPointerMove,ut(P=>{const G=P.target,q=k.current!==P.clientX;if(P.currentTarget.contains(G)&&q){const ce=P.clientX>k.current?"right":"left";F.current=ce,k.current=P.clientX}}))})})})})})})});Ts.displayName=ie;var of="MenuGroup",vo=i.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return p.jsx(O.div,{role:"group",...o,ref:t})});vo.displayName=of;var rf="MenuLabel",_s=i.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return p.jsx(O.div,{...o,ref:t})});_s.displayName=rf;var Lt="MenuItem",tr="menu.itemSelect",rn=i.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,s=i.useRef(null),a=xt(Lt,e.__scopeMenu),c=ho(Lt,e.__scopeMenu),l=j(t,s),u=i.useRef(!1),d=()=>{const f=s.current;if(!n&&f){const h=new CustomEvent(tr,{bubbles:!0,cancelable:!0});f.addEventListener(tr,v=>o?.(v),{once:!0}),sr(f,h),h.defaultPrevented?u.current=!1:a.onClose()}};return p.jsx(Is,{...r,ref:l,disabled:n,onClick:R(e.onClick,d),onPointerDown:f=>{e.onPointerDown?.(f),u.current=!0},onPointerUp:R(e.onPointerUp,f=>{u.current||f.currentTarget?.click()}),onKeyDown:R(e.onKeyDown,f=>{const h=c.searchRef.current!=="";n||h&&f.key===" "||$n.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});rn.displayName=Lt;var Is=i.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...s}=e,a=ho(Lt,n),c=Es(n),l=i.useRef(null),u=j(t,l),[d,f]=i.useState(!1),[h,v]=i.useState("");return i.useEffect(()=>{const w=l.current;w&&v((w.textContent??"").trim())},[s.children]),p.jsx(lt.ItemSlot,{scope:n,disabled:o,textValue:r??h,children:p.jsx(bs,{asChild:!0,...c,focusable:!o,children:p.jsx(O.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...s,ref:u,onPointerMove:R(e.onPointerMove,ut(w=>{o?a.onItemLeave(w):(a.onItemEnter(w),w.defaultPrevented||w.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:R(e.onPointerLeave,ut(w=>a.onItemLeave(w))),onFocus:R(e.onFocus,()=>f(!0)),onBlur:R(e.onBlur,()=>f(!1))})})})}),sf="MenuCheckboxItem",Os=i.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return p.jsx(Ls,{scope:e.__scopeMenu,checked:n,children:p.jsx(rn,{role:"menuitemcheckbox","aria-checked":kt(n)?"mixed":n,...r,ref:t,"data-state":wo(n),onSelect:R(r.onSelect,()=>o?.(kt(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Os.displayName=sf;var Ms="MenuRadioGroup",[af,cf]=We(Ms,{value:void 0,onValueChange:()=>{}}),Ns=i.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,s=X(o);return p.jsx(af,{scope:e.__scopeMenu,value:n,onValueChange:s,children:p.jsx(vo,{...r,ref:t})})});Ns.displayName=Ms;var Ds="MenuRadioItem",js=i.forwardRef((e,t)=>{const{value:n,...o}=e,r=cf(Ds,e.__scopeMenu),s=n===r.value;return p.jsx(Ls,{scope:e.__scopeMenu,checked:s,children:p.jsx(rn,{role:"menuitemradio","aria-checked":s,...o,ref:t,"data-state":wo(s),onSelect:R(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});js.displayName=Ds;var go="MenuItemIndicator",[Ls,lf]=We(go,{checked:!1}),ks=i.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,s=lf(go,n);return p.jsx(z,{present:o||kt(s.checked)||s.checked===!0,children:p.jsx(O.span,{...r,ref:t,"data-state":wo(s.checked)})})});ks.displayName=go;var uf="MenuSeparator",$s=i.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return p.jsx(O.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});$s.displayName=uf;var df="MenuArrow",Fs=i.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=on(n);return p.jsx(Jt,{...r,...o,ref:t})});Fs.displayName=df;var ff="MenuSub",[Fh,Ws]=We(ff),rt="MenuSubTrigger",Bs=i.forwardRef((e,t)=>{const n=Be(rt,e.__scopeMenu),o=xt(rt,e.__scopeMenu),r=Ws(rt,e.__scopeMenu),s=ho(rt,e.__scopeMenu),a=i.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:l}=s,u={__scopeMenu:e.__scopeMenu},d=i.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return i.useEffect(()=>d,[d]),i.useEffect(()=>{const f=c.current;return()=>{window.clearTimeout(f),l(null)}},[c,l]),p.jsx(fo,{asChild:!0,...u,children:p.jsx(Is,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":Us(n.open),...e,ref:we(t,r.onTriggerChange),onClick:f=>{e.onClick?.(f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:R(e.onPointerMove,ut(f=>{s.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(s.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:R(e.onPointerLeave,ut(f=>{d();const h=n.content?.getBoundingClientRect();if(h){const v=n.content?.dataset.side,w=v==="right",m=w?-5:5,g=h[w?"left":"right"],x=h[w?"right":"left"];s.onPointerGraceIntentChange({area:[{x:f.clientX+m,y:f.clientY},{x:g,y:h.top},{x,y:h.top},{x,y:h.bottom},{x:g,y:h.bottom}],side:v}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(f),f.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:R(e.onKeyDown,f=>{const h=s.searchRef.current!=="";e.disabled||h&&f.key===" "||Gd[o.dir].includes(f.key)&&(n.onOpenChange(!0),n.content?.focus(),f.preventDefault())})})})});Bs.displayName=rt;var Vs="MenuSubContent",Hs=i.forwardRef((e,t)=>{const n=Ps(ie,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,s=Be(ie,e.__scopeMenu),a=xt(ie,e.__scopeMenu),c=Ws(Vs,e.__scopeMenu),l=i.useRef(null),u=j(t,l);return p.jsx(lt.Provider,{scope:e.__scopeMenu,children:p.jsx(z,{present:o||s.open,children:p.jsx(lt.Slot,{scope:e.__scopeMenu,children:p.jsx(mo,{id:c.contentId,"aria-labelledby":c.triggerId,...r,ref:u,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{a.isUsingKeyboardRef.current&&l.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:R(e.onFocusOutside,d=>{d.target!==c.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:R(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:R(e.onKeyDown,d=>{const f=d.currentTarget.contains(d.target),h=Kd[a.dir].includes(d.key);f&&h&&(s.onOpenChange(!1),c.trigger?.focus(),d.preventDefault())})})})})})});Hs.displayName=Vs;function Us(e){return e?"open":"closed"}function kt(e){return e==="indeterminate"}function wo(e){return kt(e)?"indeterminate":e?"checked":"unchecked"}function pf(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function hf(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function mf(e,t,n){const r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let a=hf(e,Math.max(s,0));r.length===1&&(a=a.filter(u=>u!==n));const l=a.find(u=>u.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function vf(e,t){const{x:n,y:o}=e;let r=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const c=t[s],l=t[a],u=c.x,d=c.y,f=l.x,h=l.y;d>o!=h>o&&n<(f-u)*(o-d)/(h-d)+u&&(r=!r)}return r}function gf(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return vf(n,t)}function ut(e){return t=>t.pointerType==="mouse"?e(t):void 0}var wf=Rs,xf=fo,yf=As,bf=Ts,Cf=vo,Sf=_s,Ef=rn,Rf=Os,Pf=Ns,Af=js,Tf=ks,_f=$s,If=Fs,Of=Bs,Mf=Hs,sn="DropdownMenu",[Nf]=J(sn,[Ss]),Q=Ss(),[Df,Gs]=Nf(sn),Ks=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:r,defaultOpen:s,onOpenChange:a,modal:c=!0}=e,l=Q(t),u=i.useRef(null),[d,f]=ue({prop:r,defaultProp:s??!1,onChange:a,caller:sn});return p.jsx(Df,{scope:t,triggerId:ne(),triggerRef:u,contentId:ne(),open:d,onOpenChange:f,onOpenToggle:i.useCallback(()=>f(h=>!h),[f]),modal:c,children:p.jsx(wf,{...l,open:d,onOpenChange:f,dir:o,modal:c,children:n})})};Ks.displayName=sn;var zs="DropdownMenuTrigger",Ys=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,s=Gs(zs,n),a=Q(n);return p.jsx(xf,{asChild:!0,...a,children:p.jsx(O.button,{type:"button",id:s.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:we(t,s.triggerRef),onPointerDown:R(e.onPointerDown,c=>{!o&&c.button===0&&c.ctrlKey===!1&&(s.onOpenToggle(),s.open||c.preventDefault())}),onKeyDown:R(e.onKeyDown,c=>{o||(["Enter"," "].includes(c.key)&&s.onOpenToggle(),c.key==="ArrowDown"&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(c.key)&&c.preventDefault())})})})});Ys.displayName=zs;var jf="DropdownMenuPortal",Xs=e=>{const{__scopeDropdownMenu:t,...n}=e,o=Q(t);return p.jsx(yf,{...o,...n})};Xs.displayName=jf;var qs="DropdownMenuContent",Zs=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Gs(qs,n),s=Q(n),a=i.useRef(!1);return p.jsx(bf,{id:r.contentId,"aria-labelledby":r.triggerId,...s,...o,ref:t,onCloseAutoFocus:R(e.onCloseAutoFocus,c=>{a.current||r.triggerRef.current?.focus(),a.current=!1,c.preventDefault()}),onInteractOutside:R(e.onInteractOutside,c=>{const l=c.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0,d=l.button===2||u;(!r.modal||d)&&(a.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)"}})});Zs.displayName=qs;var Lf="DropdownMenuGroup",kf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Cf,{...r,...o,ref:t})});kf.displayName=Lf;var $f="DropdownMenuLabel",Ff=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Sf,{...r,...o,ref:t})});Ff.displayName=$f;var Wf="DropdownMenuItem",Js=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Ef,{...r,...o,ref:t})});Js.displayName=Wf;var Bf="DropdownMenuCheckboxItem",Vf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Rf,{...r,...o,ref:t})});Vf.displayName=Bf;var Hf="DropdownMenuRadioGroup",Uf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Pf,{...r,...o,ref:t})});Uf.displayName=Hf;var Gf="DropdownMenuRadioItem",Kf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Af,{...r,...o,ref:t})});Kf.displayName=Gf;var zf="DropdownMenuItemIndicator",Yf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Tf,{...r,...o,ref:t})});Yf.displayName=zf;var Xf="DropdownMenuSeparator",qf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(_f,{...r,...o,ref:t})});qf.displayName=Xf;var Zf="DropdownMenuArrow",Jf=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(If,{...r,...o,ref:t})});Jf.displayName=Zf;var Qf="DropdownMenuSubTrigger",ep=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Of,{...r,...o,ref:t})});ep.displayName=Qf;var tp="DropdownMenuSubContent",np=i.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=Q(n);return p.jsx(Mf,{...r,...o,ref:t,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)"}})});np.displayName=tp;var Wh=Ks,Bh=Ys,Vh=Xs,Hh=Zs,Uh=Js;function Fn(e,[t,n]){return Math.min(n,Math.max(t,e))}function op(e){const t=rp(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(ip);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function rp(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=cp(r),c=ap(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var sp=Symbol("radix.slottable");function ip(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===sp}function ap(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function cp(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function xo(e){const t=i.useRef({value:e,previous:e});return i.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var lp=[" ","Enter","ArrowUp","ArrowDown"],up=[" ","Enter"],$e="Select",[an,cn,dp]=uo($e),[nt]=J($e,[dp,Ie]),ln=Ie(),[fp,Oe]=nt($e),[pp,hp]=nt($e),Qs=e=>{const{__scopeSelect:t,children:n,open:o,defaultOpen:r,onOpenChange:s,value:a,defaultValue:c,onValueChange:l,dir:u,name:d,autoComplete:f,disabled:h,required:v,form:w}=e,m=ln(t),[g,x]=i.useState(null),[y,b]=i.useState(null),[C,S]=i.useState(!1),A=vt(u),[E,_]=ue({prop:o,defaultProp:r??!1,onChange:s,caller:$e}),[I,M]=ue({prop:a,defaultProp:c,onChange:l,caller:$e}),L=i.useRef(null),$=g?w||!!g.closest("form"):!0,[F,k]=i.useState(new Set),B=Array.from(F).map(D=>D.props.value).join(";");return p.jsx(qt,{...m,children:p.jsxs(fp,{required:v,scope:t,trigger:g,onTriggerChange:x,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:C,onValueNodeHasChildrenChange:S,contentId:ne(),value:I,onValueChange:M,open:E,onOpenChange:_,dir:A,triggerPointerDownPosRef:L,disabled:h,children:[p.jsx(an.Provider,{scope:t,children:p.jsx(pp,{scope:e.__scopeSelect,onNativeOptionAdd:i.useCallback(D=>{k(W=>new Set(W).add(D))},[]),onNativeOptionRemove:i.useCallback(D=>{k(W=>{const N=new Set(W);return N.delete(D),N})},[]),children:n})}),$?p.jsxs(Si,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:I,onChange:D=>M(D.target.value),disabled:h,form:w,children:[I===void 0?p.jsx("option",{value:""}):null,Array.from(F)]},B):null]})})};Qs.displayName=$e;var ei="SelectTrigger",ti=i.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...r}=e,s=ln(n),a=Oe(ei,n),c=a.disabled||o,l=j(t,a.onTriggerChange),u=cn(n),d=i.useRef("touch"),[f,h,v]=Ri(m=>{const g=u().filter(b=>!b.disabled),x=g.find(b=>b.value===a.value),y=Pi(g,m,x);y!==void 0&&a.onValueChange(y.value)}),w=m=>{c||(a.onOpenChange(!0),v()),m&&(a.triggerPointerDownPosRef.current={x:Math.round(m.pageX),y:Math.round(m.pageY)})};return p.jsx(ht,{asChild:!0,...s,children:p.jsx(O.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":Ei(a.value)?"":void 0,...r,ref:l,onClick:R(r.onClick,m=>{m.currentTarget.focus(),d.current!=="mouse"&&w(m)}),onPointerDown:R(r.onPointerDown,m=>{d.current=m.pointerType;const g=m.target;g.hasPointerCapture(m.pointerId)&&g.releasePointerCapture(m.pointerId),m.button===0&&m.ctrlKey===!1&&m.pointerType==="mouse"&&(w(m),m.preventDefault())}),onKeyDown:R(r.onKeyDown,m=>{const g=f.current!=="";!(m.ctrlKey||m.altKey||m.metaKey)&&m.key.length===1&&h(m.key),!(g&&m.key===" ")&&lp.includes(m.key)&&(w(),m.preventDefault())})})})});ti.displayName=ei;var ni="SelectValue",oi=i.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,children:s,placeholder:a="",...c}=e,l=Oe(ni,n),{onValueNodeHasChildrenChange:u}=l,d=s!==void 0,f=j(t,l.onValueNodeChange);return Y(()=>{u(d)},[u,d]),p.jsx(O.span,{...c,ref:f,style:{pointerEvents:"none"},children:Ei(l.value)?p.jsx(p.Fragment,{children:a}):s})});oi.displayName=ni;var mp="SelectIcon",ri=i.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,...r}=e;return p.jsx(O.span,{"aria-hidden":!0,...r,ref:t,children:o||"▼"})});ri.displayName=mp;var vp="SelectPortal",si=e=>p.jsx(Qe,{asChild:!0,...e});si.displayName=vp;var Fe="SelectContent",ii=i.forwardRef((e,t)=>{const n=Oe(Fe,e.__scopeSelect),[o,r]=i.useState();if(Y(()=>{r(new DocumentFragment)},[]),!n.open){const s=o;return s?Bt.createPortal(p.jsx(ai,{scope:e.__scopeSelect,children:p.jsx(an.Slot,{scope:e.__scopeSelect,children:p.jsx("div",{children:e.children})})}),s):null}return p.jsx(ci,{...e,ref:t})});ii.displayName=Fe;var le=10,[ai,Me]=nt(Fe),gp="SelectContentImpl",wp=op("SelectContent.RemoveScroll"),ci=i.forwardRef((e,t)=>{const{__scopeSelect:n,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:s,onPointerDownOutside:a,side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:h,collisionPadding:v,sticky:w,hideWhenDetached:m,avoidCollisions:g,...x}=e,y=Oe(Fe,n),[b,C]=i.useState(null),[S,A]=i.useState(null),E=j(t,T=>C(T)),[_,I]=i.useState(null),[M,L]=i.useState(null),$=cn(n),[F,k]=i.useState(!1),B=i.useRef(!1);i.useEffect(()=>{if(b)return Ut(b)},[b]),Vt();const D=i.useCallback(T=>{const[V,...Z]=$().map(K=>K.ref.current),[H]=Z.slice(-1),U=document.activeElement;for(const K of T)if(K===U||(K?.scrollIntoView({block:"nearest"}),K===V&&S&&(S.scrollTop=0),K===H&&S&&(S.scrollTop=S.scrollHeight),K?.focus(),document.activeElement!==U))return},[$,S]),W=i.useCallback(()=>D([_,b]),[D,_,b]);i.useEffect(()=>{F&&W()},[F,W]);const{onOpenChange:N,triggerPointerDownPosRef:P}=y;i.useEffect(()=>{if(b){let T={x:0,y:0};const V=H=>{T={x:Math.abs(Math.round(H.pageX)-(P.current?.x??0)),y:Math.abs(Math.round(H.pageY)-(P.current?.y??0))}},Z=H=>{T.x<=10&&T.y<=10?H.preventDefault():b.contains(H.target)||N(!1),document.removeEventListener("pointermove",V),P.current=null};return P.current!==null&&(document.addEventListener("pointermove",V),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",Z,{capture:!0})}}},[b,N,P]),i.useEffect(()=>{const T=()=>N(!1);return window.addEventListener("blur",T),window.addEventListener("resize",T),()=>{window.removeEventListener("blur",T),window.removeEventListener("resize",T)}},[N]);const[G,q]=Ri(T=>{const V=$().filter(U=>!U.disabled),Z=V.find(U=>U.ref.current===document.activeElement),H=Pi(V,T,Z);H&&setTimeout(()=>H.ref.current.focus())}),ce=i.useCallback((T,V,Z)=>{const H=!B.current&&!Z;(y.value!==void 0&&y.value===V||H)&&(I(T),H&&(B.current=!0))},[y.value]),be=i.useCallback(()=>b?.focus(),[b]),re=i.useCallback((T,V,Z)=>{const H=!B.current&&!Z;(y.value!==void 0&&y.value===V||H)&&L(T)},[y.value]),Ce=o==="popper"?Wn:li,ee=Ce===Wn?{side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:h,collisionPadding:v,sticky:w,hideWhenDetached:m,avoidCollisions:g}:{};return p.jsx(ai,{scope:n,content:b,viewport:S,onViewportChange:A,itemRefCallback:ce,selectedItem:_,onItemLeave:be,itemTextRefCallback:re,focusSelectedItem:W,selectedItemText:M,position:o,isPositioned:F,searchRef:G,children:p.jsx(ft,{as:wp,allowPinchZoom:!0,children:p.jsx(dt,{asChild:!0,trapped:y.open,onMountAutoFocus:T=>{T.preventDefault()},onUnmountAutoFocus:R(r,T=>{y.trigger?.focus({preventScroll:!0}),T.preventDefault()}),children:p.jsx(Je,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:T=>T.preventDefault(),onDismiss:()=>y.onOpenChange(!1),children:p.jsx(Ce,{role:"listbox",id:y.contentId,"data-state":y.open?"open":"closed",dir:y.dir,onContextMenu:T=>T.preventDefault(),...x,...ee,onPlaced:()=>k(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:R(x.onKeyDown,T=>{const V=T.ctrlKey||T.altKey||T.metaKey;if(T.key==="Tab"&&T.preventDefault(),!V&&T.key.length===1&&q(T.key),["ArrowUp","ArrowDown","Home","End"].includes(T.key)){let H=$().filter(U=>!U.disabled).map(U=>U.ref.current);if(["ArrowUp","End"].includes(T.key)&&(H=H.slice().reverse()),["ArrowUp","ArrowDown"].includes(T.key)){const U=T.target,K=H.indexOf(U);H=H.slice(K+1)}setTimeout(()=>D(H)),T.preventDefault()}})})})})})})});ci.displayName=gp;var xp="SelectItemAlignedPosition",li=i.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:o,...r}=e,s=Oe(Fe,n),a=Me(Fe,n),[c,l]=i.useState(null),[u,d]=i.useState(null),f=j(t,E=>d(E)),h=cn(n),v=i.useRef(!1),w=i.useRef(!0),{viewport:m,selectedItem:g,selectedItemText:x,focusSelectedItem:y}=a,b=i.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&u&&m&&g&&x){const E=s.trigger.getBoundingClientRect(),_=u.getBoundingClientRect(),I=s.valueNode.getBoundingClientRect(),M=x.getBoundingClientRect();if(s.dir!=="rtl"){const U=M.left-_.left,K=I.left-U,se=E.left-K,De=E.width+se,vn=Math.max(De,_.width),gn=window.innerWidth-le,wn=Fn(K,[le,Math.max(le,gn-vn)]);c.style.minWidth=De+"px",c.style.left=wn+"px"}else{const U=_.right-M.right,K=window.innerWidth-I.right-U,se=window.innerWidth-E.right-K,De=E.width+se,vn=Math.max(De,_.width),gn=window.innerWidth-le,wn=Fn(K,[le,Math.max(le,gn-vn)]);c.style.minWidth=De+"px",c.style.right=wn+"px"}const L=h(),$=window.innerHeight-le*2,F=m.scrollHeight,k=window.getComputedStyle(u),B=parseInt(k.borderTopWidth,10),D=parseInt(k.paddingTop,10),W=parseInt(k.borderBottomWidth,10),N=parseInt(k.paddingBottom,10),P=B+D+F+N+W,G=Math.min(g.offsetHeight*5,P),q=window.getComputedStyle(m),ce=parseInt(q.paddingTop,10),be=parseInt(q.paddingBottom,10),re=E.top+E.height/2-le,Ce=$-re,ee=g.offsetHeight/2,T=g.offsetTop+ee,V=B+D+T,Z=P-V;if(V<=re){const U=L.length>0&&g===L[L.length-1].ref.current;c.style.bottom="0px";const K=u.clientHeight-m.offsetTop-m.offsetHeight,se=Math.max(Ce,ee+(U?be:0)+K+W),De=V+se;c.style.height=De+"px"}else{const U=L.length>0&&g===L[0].ref.current;c.style.top="0px";const se=Math.max(re,B+m.offsetTop+(U?ce:0)+ee)+Z;c.style.height=se+"px",m.scrollTop=V-re+m.offsetTop}c.style.margin=`${le}px 0`,c.style.minHeight=G+"px",c.style.maxHeight=$+"px",o?.(),requestAnimationFrame(()=>v.current=!0)}},[h,s.trigger,s.valueNode,c,u,m,g,x,s.dir,o]);Y(()=>b(),[b]);const[C,S]=i.useState();Y(()=>{u&&S(window.getComputedStyle(u).zIndex)},[u]);const A=i.useCallback(E=>{E&&w.current===!0&&(b(),y?.(),w.current=!1)},[b,y]);return p.jsx(bp,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:v,onScrollButtonChange:A,children:p.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:p.jsx(O.div,{...r,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});li.displayName=xp;var yp="SelectPopperPosition",Wn=i.forwardRef((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:r=le,...s}=e,a=ln(n);return p.jsx(Zt,{...a,...s,ref:t,align:o,collisionPadding:r,style:{boxSizing:"border-box",...s.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)"}})});Wn.displayName=yp;var[bp,yo]=nt(Fe,{}),Bn="SelectViewport",ui=i.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:o,...r}=e,s=Me(Bn,n),a=yo(Bn,n),c=j(t,s.onViewportChange),l=i.useRef(0);return p.jsxs(p.Fragment,{children:[p.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}),p.jsx(an.Slot,{scope:n,children:p.jsx(O.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:R(r.onScroll,u=>{const d=u.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:h}=a;if(h?.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const w=window.innerHeight-le*2,m=parseFloat(f.style.minHeight),g=parseFloat(f.style.height),x=Math.max(m,g);if(x<w){const y=x+v,b=Math.min(w,y),C=y-b;f.style.height=b+"px",f.style.bottom==="0px"&&(d.scrollTop=C>0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});ui.displayName=Bn;var di="SelectGroup",[Cp,Sp]=nt(di),Ep=i.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=ne();return p.jsx(Cp,{scope:n,id:r,children:p.jsx(O.div,{role:"group","aria-labelledby":r,...o,ref:t})})});Ep.displayName=di;var fi="SelectLabel",pi=i.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Sp(fi,n);return p.jsx(O.div,{id:r.id,...o,ref:t})});pi.displayName=fi;var $t="SelectItem",[Rp,hi]=nt($t),mi=i.forwardRef((e,t)=>{const{__scopeSelect:n,value:o,disabled:r=!1,textValue:s,...a}=e,c=Oe($t,n),l=Me($t,n),u=c.value===o,[d,f]=i.useState(s??""),[h,v]=i.useState(!1),w=j(t,y=>l.itemRefCallback?.(y,o,r)),m=ne(),g=i.useRef("touch"),x=()=>{r||(c.onValueChange(o),c.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 p.jsx(Rp,{scope:n,value:o,disabled:r,textId:m,isSelected:u,onItemTextChange:i.useCallback(y=>{f(b=>b||(y?.textContent??"").trim())},[]),children:p.jsx(an.ItemSlot,{scope:n,value:o,disabled:r,textValue:d,children:p.jsx(O.div,{role:"option","aria-labelledby":m,"data-highlighted":h?"":void 0,"aria-selected":u&&h,"data-state":u?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...a,ref:w,onFocus:R(a.onFocus,()=>v(!0)),onBlur:R(a.onBlur,()=>v(!1)),onClick:R(a.onClick,()=>{g.current!=="mouse"&&x()}),onPointerUp:R(a.onPointerUp,()=>{g.current==="mouse"&&x()}),onPointerDown:R(a.onPointerDown,y=>{g.current=y.pointerType}),onPointerMove:R(a.onPointerMove,y=>{g.current=y.pointerType,r?l.onItemLeave?.():g.current==="mouse"&&y.currentTarget.focus({preventScroll:!0})}),onPointerLeave:R(a.onPointerLeave,y=>{y.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:R(a.onKeyDown,y=>{l.searchRef?.current!==""&&y.key===" "||(up.includes(y.key)&&x(),y.key===" "&&y.preventDefault())})})})})});mi.displayName=$t;var st="SelectItemText",vi=i.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,...s}=e,a=Oe(st,n),c=Me(st,n),l=hi(st,n),u=hp(st,n),[d,f]=i.useState(null),h=j(t,x=>f(x),l.onItemTextChange,x=>c.itemTextRefCallback?.(x,l.value,l.disabled)),v=d?.textContent,w=i.useMemo(()=>p.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:m,onNativeOptionRemove:g}=u;return Y(()=>(m(w),()=>g(w)),[m,g,w]),p.jsxs(p.Fragment,{children:[p.jsx(O.span,{id:l.textId,...s,ref:h}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Bt.createPortal(s.children,a.valueNode):null]})});vi.displayName=st;var gi="SelectItemIndicator",wi=i.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return hi(gi,n).isSelected?p.jsx(O.span,{"aria-hidden":!0,...o,ref:t}):null});wi.displayName=gi;var Vn="SelectScrollUpButton",xi=i.forwardRef((e,t)=>{const n=Me(Vn,e.__scopeSelect),o=yo(Vn,e.__scopeSelect),[r,s]=i.useState(!1),a=j(t,o.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let c=function(){const u=l.scrollTop>0;s(u)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?p.jsx(bi,{...e,ref:a,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop-l.offsetHeight)}}):null});xi.displayName=Vn;var Hn="SelectScrollDownButton",yi=i.forwardRef((e,t)=>{const n=Me(Hn,e.__scopeSelect),o=yo(Hn,e.__scopeSelect),[r,s]=i.useState(!1),a=j(t,o.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let c=function(){const u=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)<u;s(d)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?p.jsx(bi,{...e,ref:a,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop+l.offsetHeight)}}):null});yi.displayName=Hn;var bi=i.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...r}=e,s=Me("SelectScrollButton",n),a=i.useRef(null),c=cn(n),l=i.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return i.useEffect(()=>()=>l(),[l]),Y(()=>{c().find(d=>d.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),p.jsx(O.div,{"aria-hidden":!0,...r,ref:t,style:{flexShrink:0,...r.style},onPointerDown:R(r.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(o,50))}),onPointerMove:R(r.onPointerMove,()=>{s.onItemLeave?.(),a.current===null&&(a.current=window.setInterval(o,50))}),onPointerLeave:R(r.onPointerLeave,()=>{l()})})}),Pp="SelectSeparator",Ci=i.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return p.jsx(O.div,{"aria-hidden":!0,...o,ref:t})});Ci.displayName=Pp;var Un="SelectArrow",Ap=i.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=ln(n),s=Oe(Un,n),a=Me(Un,n);return s.open&&a.position==="popper"?p.jsx(Jt,{...r,...o,ref:t}):null});Ap.displayName=Un;var Tp="SelectBubbleInput",Si=i.forwardRef(({__scopeSelect:e,value:t,...n},o)=>{const r=i.useRef(null),s=j(o,r),a=xo(t);return i.useEffect(()=>{const c=r.current;if(!c)return;const l=window.HTMLSelectElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&d){const f=new Event("change",{bubbles:!0});d.call(c,t),c.dispatchEvent(f)}},[a,t]),p.jsx(O.select,{...n,style:{...ns,...n.style},ref:s,defaultValue:t})});Si.displayName=Tp;function Ei(e){return e===""||e===void 0}function Ri(e){const t=X(e),n=i.useRef(""),o=i.useRef(0),r=i.useCallback(a=>{const c=n.current+a;t(c),(function l(u){n.current=u,window.clearTimeout(o.current),u!==""&&(o.current=window.setTimeout(()=>l(""),1e3))})(c)},[t]),s=i.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return i.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,r,s]}function Pi(e,t,n){const r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let a=_p(e,Math.max(s,0));r.length===1&&(a=a.filter(u=>u!==n));const l=a.find(u=>u.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function _p(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Gh=Qs,Kh=ti,zh=oi,Yh=ri,Xh=si,qh=ii,Zh=ui,Jh=pi,Qh=mi,em=vi,tm=wi,nm=xi,om=yi,rm=Ci;function Ip(e,t){return i.useReducer((n,o)=>t[n][o]??n,e)}var bo="ScrollArea",[Ai]=J(bo),[Op,ae]=Ai(bo),Ti=i.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:o="hover",dir:r,scrollHideDelay:s=600,...a}=e,[c,l]=i.useState(null),[u,d]=i.useState(null),[f,h]=i.useState(null),[v,w]=i.useState(null),[m,g]=i.useState(null),[x,y]=i.useState(0),[b,C]=i.useState(0),[S,A]=i.useState(!1),[E,_]=i.useState(!1),I=j(t,L=>l(L)),M=vt(r);return p.jsx(Op,{scope:n,type:o,dir:M,scrollHideDelay:s,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:h,scrollbarX:v,onScrollbarXChange:w,scrollbarXEnabled:S,onScrollbarXEnabledChange:A,scrollbarY:m,onScrollbarYChange:g,scrollbarYEnabled:E,onScrollbarYEnabledChange:_,onCornerWidthChange:y,onCornerHeightChange:C,children:p.jsx(O.div,{dir:M,...a,ref:I,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":b+"px",...e.style}})})});Ti.displayName=bo;var _i="ScrollAreaViewport",Ii=i.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:o,nonce:r,...s}=e,a=ae(_i,n),c=i.useRef(null),l=j(t,c,a.onViewportChange);return p.jsxs(p.Fragment,{children:[p.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),p.jsx(O.div,{"data-radix-scroll-area-viewport":"",...s,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:p.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:o})})]})});Ii.displayName=_i;var ye="ScrollAreaScrollbar",Oi=i.forwardRef((e,t)=>{const{forceMount:n,...o}=e,r=ae(ye,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:a}=r,c=e.orientation==="horizontal";return i.useEffect(()=>(c?s(!0):a(!0),()=>{c?s(!1):a(!1)}),[c,s,a]),r.type==="hover"?p.jsx(Mp,{...o,ref:t,forceMount:n}):r.type==="scroll"?p.jsx(Np,{...o,ref:t,forceMount:n}):r.type==="auto"?p.jsx(Mi,{...o,ref:t,forceMount:n}):r.type==="always"?p.jsx(Co,{...o,ref:t}):null});Oi.displayName=ye;var Mp=i.forwardRef((e,t)=>{const{forceMount:n,...o}=e,r=ae(ye,e.__scopeScrollArea),[s,a]=i.useState(!1);return i.useEffect(()=>{const c=r.scrollArea;let l=0;if(c){const u=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),r.scrollHideDelay)};return c.addEventListener("pointerenter",u),c.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),c.removeEventListener("pointerenter",u),c.removeEventListener("pointerleave",d)}}},[r.scrollArea,r.scrollHideDelay]),p.jsx(z,{present:n||s,children:p.jsx(Mi,{"data-state":s?"visible":"hidden",...o,ref:t})})}),Np=i.forwardRef((e,t)=>{const{forceMount:n,...o}=e,r=ae(ye,e.__scopeScrollArea),s=e.orientation==="horizontal",a=dn(()=>l("SCROLL_END"),100),[c,l]=Ip("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return i.useEffect(()=>{if(c==="idle"){const u=window.setTimeout(()=>l("HIDE"),r.scrollHideDelay);return()=>window.clearTimeout(u)}},[c,r.scrollHideDelay,l]),i.useEffect(()=>{const u=r.viewport,d=s?"scrollLeft":"scrollTop";if(u){let f=u[d];const h=()=>{const v=u[d];f!==v&&(l("SCROLL"),a()),f=v};return u.addEventListener("scroll",h),()=>u.removeEventListener("scroll",h)}},[r.viewport,s,l,a]),p.jsx(z,{present:n||c!=="hidden",children:p.jsx(Co,{"data-state":c==="hidden"?"hidden":"visible",...o,ref:t,onPointerEnter:R(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:R(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),Mi=i.forwardRef((e,t)=>{const n=ae(ye,e.__scopeScrollArea),{forceMount:o,...r}=e,[s,a]=i.useState(!1),c=e.orientation==="horizontal",l=dn(()=>{if(n.viewport){const u=n.viewport.offsetWidth<n.viewport.scrollWidth,d=n.viewport.offsetHeight<n.viewport.scrollHeight;a(c?u:d)}},10);return qe(n.viewport,l),qe(n.content,l),p.jsx(z,{present:o||s,children:p.jsx(Co,{"data-state":s?"visible":"hidden",...r,ref:t})})}),Co=i.forwardRef((e,t)=>{const{orientation:n="vertical",...o}=e,r=ae(ye,e.__scopeScrollArea),s=i.useRef(null),a=i.useRef(0),[c,l]=i.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=ki(c.viewport,c.content),d={...o,sizes:c,onSizesChange:l,hasThumb:u>0&&u<1,onThumbChange:h=>s.current=h,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:h=>a.current=h};function f(h,v){return Fp(h,a.current,c,v)}return n==="horizontal"?p.jsx(Dp,{...d,ref:t,onThumbPositionChange:()=>{if(r.viewport&&s.current){const h=r.viewport.scrollLeft,v=nr(h,c,r.dir);s.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:h=>{r.viewport&&(r.viewport.scrollLeft=h)},onDragScroll:h=>{r.viewport&&(r.viewport.scrollLeft=f(h,r.dir))}}):n==="vertical"?p.jsx(jp,{...d,ref:t,onThumbPositionChange:()=>{if(r.viewport&&s.current){const h=r.viewport.scrollTop,v=nr(h,c);s.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:h=>{r.viewport&&(r.viewport.scrollTop=h)},onDragScroll:h=>{r.viewport&&(r.viewport.scrollTop=f(h))}}):null}),Dp=i.forwardRef((e,t)=>{const{sizes:n,onSizesChange:o,...r}=e,s=ae(ye,e.__scopeScrollArea),[a,c]=i.useState(),l=i.useRef(null),u=j(t,l,s.onScrollbarXChange);return i.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),p.jsx(Di,{"data-orientation":"horizontal",...r,ref:u,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":un(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(s.viewport){const h=s.viewport.scrollLeft+d.deltaX;e.onWheelScroll(h),Fi(h,f)&&d.preventDefault()}},onResize:()=>{l.current&&s.viewport&&a&&o({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:Wt(a.paddingLeft),paddingEnd:Wt(a.paddingRight)}})}})}),jp=i.forwardRef((e,t)=>{const{sizes:n,onSizesChange:o,...r}=e,s=ae(ye,e.__scopeScrollArea),[a,c]=i.useState(),l=i.useRef(null),u=j(t,l,s.onScrollbarYChange);return i.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),p.jsx(Di,{"data-orientation":"vertical",...r,ref:u,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":un(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(s.viewport){const h=s.viewport.scrollTop+d.deltaY;e.onWheelScroll(h),Fi(h,f)&&d.preventDefault()}},onResize:()=>{l.current&&s.viewport&&a&&o({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:Wt(a.paddingTop),paddingEnd:Wt(a.paddingBottom)}})}})}),[Lp,Ni]=Ai(ye),Di=i.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:o,hasThumb:r,onThumbChange:s,onThumbPointerUp:a,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...h}=e,v=ae(ye,n),[w,m]=i.useState(null),g=j(t,I=>m(I)),x=i.useRef(null),y=i.useRef(""),b=v.viewport,C=o.content-o.viewport,S=X(d),A=X(l),E=dn(f,10);function _(I){if(x.current){const M=I.clientX-x.current.left,L=I.clientY-x.current.top;u({x:M,y:L})}}return i.useEffect(()=>{const I=M=>{const L=M.target;w?.contains(L)&&S(M,C)};return document.addEventListener("wheel",I,{passive:!1}),()=>document.removeEventListener("wheel",I,{passive:!1})},[b,w,C,S]),i.useEffect(A,[o,A]),qe(w,E),qe(v.content,E),p.jsx(Lp,{scope:n,scrollbar:w,hasThumb:r,onThumbChange:X(s),onThumbPointerUp:X(a),onThumbPositionChange:A,onThumbPointerDown:X(c),children:p.jsx(O.div,{...h,ref:g,style:{position:"absolute",...h.style},onPointerDown:R(e.onPointerDown,I=>{I.button===0&&(I.target.setPointerCapture(I.pointerId),x.current=w.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),_(I))}),onPointerMove:R(e.onPointerMove,_),onPointerUp:R(e.onPointerUp,I=>{const M=I.target;M.hasPointerCapture(I.pointerId)&&M.releasePointerCapture(I.pointerId),document.body.style.webkitUserSelect=y.current,v.viewport&&(v.viewport.style.scrollBehavior=""),x.current=null})})})}),Ft="ScrollAreaThumb",ji=i.forwardRef((e,t)=>{const{forceMount:n,...o}=e,r=Ni(Ft,e.__scopeScrollArea);return p.jsx(z,{present:n||r.hasThumb,children:p.jsx(kp,{ref:t,...o})})}),kp=i.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:o,...r}=e,s=ae(Ft,n),a=Ni(Ft,n),{onThumbPositionChange:c}=a,l=j(t,f=>a.onThumbChange(f)),u=i.useRef(void 0),d=dn(()=>{u.current&&(u.current(),u.current=void 0)},100);return i.useEffect(()=>{const f=s.viewport;if(f){const h=()=>{if(d(),!u.current){const v=Wp(f,c);u.current=v,c()}};return c(),f.addEventListener("scroll",h),()=>f.removeEventListener("scroll",h)}},[s.viewport,d,c]),p.jsx(O.div,{"data-state":a.hasThumb?"visible":"hidden",...r,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:R(e.onPointerDownCapture,f=>{const v=f.target.getBoundingClientRect(),w=f.clientX-v.left,m=f.clientY-v.top;a.onThumbPointerDown({x:w,y:m})}),onPointerUp:R(e.onPointerUp,a.onThumbPointerUp)})});ji.displayName=Ft;var So="ScrollAreaCorner",Li=i.forwardRef((e,t)=>{const n=ae(So,e.__scopeScrollArea),o=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&o?p.jsx($p,{...e,ref:t}):null});Li.displayName=So;var $p=i.forwardRef((e,t)=>{const{__scopeScrollArea:n,...o}=e,r=ae(So,n),[s,a]=i.useState(0),[c,l]=i.useState(0),u=!!(s&&c);return qe(r.scrollbarX,()=>{const d=r.scrollbarX?.offsetHeight||0;r.onCornerHeightChange(d),l(d)}),qe(r.scrollbarY,()=>{const d=r.scrollbarY?.offsetWidth||0;r.onCornerWidthChange(d),a(d)}),u?p.jsx(O.div,{...o,ref:t,style:{width:s,height:c,position:"absolute",right:r.dir==="ltr"?0:void 0,left:r.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Wt(e){return e?parseInt(e,10):0}function ki(e,t){const n=e/t;return isNaN(n)?0:n}function un(e){const t=ki(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-n)*t;return Math.max(o,18)}function Fp(e,t,n,o="ltr"){const r=un(n),s=r/2,a=t||s,c=r-a,l=n.scrollbar.paddingStart+a,u=n.scrollbar.size-n.scrollbar.paddingEnd-c,d=n.content-n.viewport,f=o==="ltr"?[0,d]:[d*-1,0];return $i([l,u],f)(e)}function nr(e,t,n="ltr"){const o=un(t),r=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-r,a=t.content-t.viewport,c=s-o,l=n==="ltr"?[0,a]:[a*-1,0],u=Fn(e,l);return $i([0,a],[0,c])(u)}function $i(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const o=(t[1]-t[0])/(e[1]-e[0]);return t[0]+o*(n-e[0])}}function Fi(e,t){return e>0&&e<t}var Wp=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},o=0;return(function r(){const s={left:e.scrollLeft,top:e.scrollTop},a=n.left!==s.left,c=n.top!==s.top;(a||c)&&t(),n=s,o=window.requestAnimationFrame(r)})(),()=>window.cancelAnimationFrame(o)};function dn(e,t){const n=X(e),o=i.useRef(0);return i.useEffect(()=>()=>window.clearTimeout(o.current),[]),i.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(n,t)},[n,t])}function qe(e,t){const n=X(t);Y(()=>{let o=0;if(e){const r=new ResizeObserver(()=>{cancelAnimationFrame(o),o=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(o),r.unobserve(e)}}},[e,n])}var sm=Ti,im=Ii,am=Oi,cm=ji,lm=Li,Bp=Symbol("radix.slottable");function Vp(e){const t=({children:n})=>p.jsx(p.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Bp,t}var Wi="AlertDialog",[Hp]=J(Wi,[wr]),Re=wr(),Bi=e=>{const{__scopeAlertDialog:t,...n}=e,o=Re(t);return p.jsx(Pl,{...o,...n,modal:!0})};Bi.displayName=Wi;var Up="AlertDialogTrigger",Gp=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,r=Re(n);return p.jsx(Al,{...r,...o,ref:t})});Gp.displayName=Up;var Kp="AlertDialogPortal",Vi=e=>{const{__scopeAlertDialog:t,...n}=e,o=Re(t);return p.jsx(Tl,{...o,...n})};Vi.displayName=Kp;var zp="AlertDialogOverlay",Hi=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,r=Re(n);return p.jsx(_l,{...r,...o,ref:t})});Hi.displayName=zp;var ze="AlertDialogContent",[Yp,Xp]=Hp(ze),qp=Vp("AlertDialogContent"),Ui=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:o,...r}=e,s=Re(n),a=i.useRef(null),c=j(t,a),l=i.useRef(null);return p.jsx(Cl,{contentName:ze,titleName:Gi,docsSlug:"alert-dialog",children:p.jsx(Yp,{scope:n,cancelRef:l,children:p.jsxs(Il,{role:"alertdialog",...s,...r,ref:c,onOpenAutoFocus:R(r.onOpenAutoFocus,u=>{u.preventDefault(),l.current?.focus({preventScroll:!0})}),onPointerDownOutside:u=>u.preventDefault(),onInteractOutside:u=>u.preventDefault(),children:[p.jsx(qp,{children:o}),p.jsx(Jp,{contentRef:a})]})})})});Ui.displayName=ze;var Gi="AlertDialogTitle",Ki=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,r=Re(n);return p.jsx(Ol,{...r,...o,ref:t})});Ki.displayName=Gi;var zi="AlertDialogDescription",Yi=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,r=Re(n);return p.jsx(Ml,{...r,...o,ref:t})});Yi.displayName=zi;var Zp="AlertDialogAction",Xi=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,r=Re(n);return p.jsx(Dr,{...r,...o,ref:t})});Xi.displayName=Zp;var qi="AlertDialogCancel",Zi=i.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...o}=e,{cancelRef:r}=Xp(qi,n),s=Re(n),a=j(t,r);return p.jsx(Dr,{...s,...o,ref:a})});Zi.displayName=qi;var Jp=({contentRef:e})=>{const t=`\`${ze}\` requires a description for the component to be accessible for screen reader users.
46
-
47
- You can add a description to the \`${ze}\` by passing a \`${zi}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
48
-
49
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${ze}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
50
-
51
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return i.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},um=Bi,dm=Vi,fm=Hi,pm=Ui,hm=Xi,mm=Zi,vm=Ki,gm=Yi,fn="Tabs",[Qp]=J(fn,[nn]),Ji=nn(),[eh,Eo]=Qp(fn),Qi=i.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:r,defaultValue:s,orientation:a="horizontal",dir:c,activationMode:l="automatic",...u}=e,d=vt(c),[f,h]=ue({prop:o,onChange:r,defaultProp:s??"",caller:fn});return p.jsx(eh,{scope:n,baseId:ne(),value:f,onValueChange:h,orientation:a,dir:d,activationMode:l,children:p.jsx(O.div,{dir:d,"data-orientation":a,...u,ref:t})})});Qi.displayName=fn;var ea="TabsList",ta=i.forwardRef((e,t)=>{const{__scopeTabs:n,loop:o=!0,...r}=e,s=Eo(ea,n),a=Ji(n);return p.jsx(ys,{asChild:!0,...a,orientation:s.orientation,dir:s.dir,loop:o,children:p.jsx(O.div,{role:"tablist","aria-orientation":s.orientation,...r,ref:t})})});ta.displayName=ea;var na="TabsTrigger",oa=i.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,disabled:r=!1,...s}=e,a=Eo(na,n),c=Ji(n),l=ia(a.baseId,o),u=aa(a.baseId,o),d=o===a.value;return p.jsx(bs,{asChild:!0,...c,focusable:!r,active:d,children:p.jsx(O.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":u,"data-state":d?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:l,...s,ref:t,onMouseDown:R(e.onMouseDown,f=>{!r&&f.button===0&&f.ctrlKey===!1?a.onValueChange(o):f.preventDefault()}),onKeyDown:R(e.onKeyDown,f=>{[" ","Enter"].includes(f.key)&&a.onValueChange(o)}),onFocus:R(e.onFocus,()=>{const f=a.activationMode!=="manual";!d&&!r&&f&&a.onValueChange(o)})})})});oa.displayName=na;var ra="TabsContent",sa=i.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,forceMount:r,children:s,...a}=e,c=Eo(ra,n),l=ia(c.baseId,o),u=aa(c.baseId,o),d=o===c.value,f=i.useRef(d);return i.useEffect(()=>{const h=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(h)},[]),p.jsx(z,{present:r||d,children:({present:h})=>p.jsx(O.div,{"data-state":d?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":l,hidden:!h,id:u,tabIndex:0,...a,ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0},children:h&&s})})});sa.displayName=ra;function ia(e,t){return`${e}-trigger-${t}`}function aa(e,t){return`${e}-content-${t}`}var wm=Qi,xm=ta,ym=oa,bm=sa,th=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],nh=th.reduce((e,t)=>{const n=Kn(`Primitive.${t}`),o=i.forwardRef((r,s)=>{const{asChild:a,...c}=r,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(l,{...c,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),oh="Label",ca=i.forwardRef((e,t)=>p.jsx(nh.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));ca.displayName=oh;var Cm=ca,pn="Switch",[rh]=J(pn),[sh,ih]=rh(pn),la=i.forwardRef((e,t)=>{const{__scopeSwitch:n,name:o,checked:r,defaultChecked:s,required:a,disabled:c,value:l="on",onCheckedChange:u,form:d,...f}=e,[h,v]=i.useState(null),w=j(t,b=>v(b)),m=i.useRef(!1),g=h?d||!!h.closest("form"):!0,[x,y]=ue({prop:r,defaultProp:s??!1,onChange:u,caller:pn});return p.jsxs(sh,{scope:n,checked:x,disabled:c,children:[p.jsx(O.button,{type:"button",role:"switch","aria-checked":x,"aria-required":a,"data-state":pa(x),"data-disabled":c?"":void 0,disabled:c,value:l,...f,ref:w,onClick:R(e.onClick,b=>{y(C=>!C),g&&(m.current=b.isPropagationStopped(),m.current||b.stopPropagation())})}),g&&p.jsx(fa,{control:h,bubbles:!m.current,name:o,value:l,checked:x,required:a,disabled:c,form:d,style:{transform:"translateX(-100%)"}})]})});la.displayName=pn;var ua="SwitchThumb",da=i.forwardRef((e,t)=>{const{__scopeSwitch:n,...o}=e,r=ih(ua,n);return p.jsx(O.span,{"data-state":pa(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:t})});da.displayName=ua;var ah="SwitchBubbleInput",fa=i.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:o=!0,...r},s)=>{const a=i.useRef(null),c=j(a,s),l=xo(n),u=no(t);return i.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&v){const w=new Event("click",{bubbles:o});v.call(d,n),d.dispatchEvent(w)}},[l,n,o]),p.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...r,tabIndex:-1,ref:c,style:{...r.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});fa.displayName=ah;function pa(e){return e?"checked":"unchecked"}var Sm=la,Em=da,hn="Checkbox",[ch]=J(hn),[lh,Ro]=ch(hn);function uh(e){const{__scopeCheckbox:t,checked:n,children:o,defaultChecked:r,disabled:s,form:a,name:c,onCheckedChange:l,required:u,value:d="on",internal_do_not_use_render:f}=e,[h,v]=ue({prop:n,defaultProp:r??!1,onChange:l,caller:hn}),[w,m]=i.useState(null),[g,x]=i.useState(null),y=i.useRef(!1),b=w?!!a||!!w.closest("form"):!0,C={checked:h,disabled:s,setChecked:v,control:w,setControl:m,name:c,form:a,value:d,hasConsumerStoppedPropagationRef:y,required:u,defaultChecked:Ae(r)?!1:r,isFormControl:b,bubbleInput:g,setBubbleInput:x};return p.jsx(lh,{scope:t,...C,children:ph(f)?f(C):o})}var ha="CheckboxTrigger",ma=i.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...o},r)=>{const{control:s,value:a,disabled:c,checked:l,required:u,setControl:d,setChecked:f,hasConsumerStoppedPropagationRef:h,isFormControl:v,bubbleInput:w}=Ro(ha,e),m=j(r,d),g=i.useRef(l);return i.useEffect(()=>{const x=s?.form;if(x){const y=()=>f(g.current);return x.addEventListener("reset",y),()=>x.removeEventListener("reset",y)}},[s,f]),p.jsx(O.button,{type:"button",role:"checkbox","aria-checked":Ae(l)?"mixed":l,"aria-required":u,"data-state":xa(l),"data-disabled":c?"":void 0,disabled:c,value:a,...o,ref:m,onKeyDown:R(t,x=>{x.key==="Enter"&&x.preventDefault()}),onClick:R(n,x=>{f(y=>Ae(y)?!0:!y),w&&v&&(h.current=x.isPropagationStopped(),h.current||x.stopPropagation())})})});ma.displayName=ha;var dh=i.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:o,checked:r,defaultChecked:s,required:a,disabled:c,value:l,onCheckedChange:u,form:d,...f}=e;return p.jsx(uh,{__scopeCheckbox:n,checked:r,defaultChecked:s,disabled:c,required:a,onCheckedChange:u,name:o,form:d,value:l,internal_do_not_use_render:({isFormControl:h})=>p.jsxs(p.Fragment,{children:[p.jsx(ma,{...f,ref:t,__scopeCheckbox:n}),h&&p.jsx(wa,{__scopeCheckbox:n})]})})});dh.displayName=hn;var va="CheckboxIndicator",fh=i.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:o,...r}=e,s=Ro(va,n);return p.jsx(z,{present:o||Ae(s.checked)||s.checked===!0,children:p.jsx(O.span,{"data-state":xa(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:t,style:{pointerEvents:"none",...e.style}})})});fh.displayName=va;var ga="CheckboxBubbleInput",wa=i.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:o,hasConsumerStoppedPropagationRef:r,checked:s,defaultChecked:a,required:c,disabled:l,name:u,value:d,form:f,bubbleInput:h,setBubbleInput:v}=Ro(ga,e),w=j(n,v),m=xo(s),g=no(o);i.useEffect(()=>{const y=h;if(!y)return;const b=window.HTMLInputElement.prototype,S=Object.getOwnPropertyDescriptor(b,"checked").set,A=!r.current;if(m!==s&&S){const E=new Event("click",{bubbles:A});y.indeterminate=Ae(s),S.call(y,Ae(s)?!1:s),y.dispatchEvent(E)}},[h,m,s,r]);const x=i.useRef(Ae(s)?!1:s);return p.jsx(O.input,{type:"checkbox","aria-hidden":!0,defaultChecked:a??x.current,required:c,disabled:l,name:u,value:d,form:f,...t,tabIndex:-1,ref:w,style:{...t.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});wa.displayName=ga;function ph(e){return typeof e=="function"}function Ae(e){return e==="indeterminate"}function xa(e){return Ae(e)?"indeterminate":e?"checked":"unchecked"}function hh(e){const t=mh(e),n=i.forwardRef((o,r)=>{const{children:s,...a}=o,c=i.Children.toArray(s),l=c.find(gh);if(l){const u=l.props.children,d=c.map(f=>f===l?i.Children.count(u)>1?i.Children.only(null):i.isValidElement(u)?u.props.children:null:f);return p.jsx(t,{...a,ref:r,children:i.isValidElement(u)?i.cloneElement(u,void 0,d):null})}return p.jsx(t,{...a,ref:r,children:s})});return n.displayName=`${e}.Slot`,n}function mh(e){const t=i.forwardRef((n,o)=>{const{children:r,...s}=n;if(i.isValidElement(r)){const a=xh(r),c=wh(s,r.props);return r.type!==i.Fragment&&(c.ref=o?we(o,a):a),i.cloneElement(r,c)}return i.Children.count(r)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var vh=Symbol("radix.slottable");function gh(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===vh}function wh(e,t){const n={...t};for(const o in t){const r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?n[o]=(...c)=>{const l=s(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...s}:o==="className"&&(n[o]=[r,s].filter(Boolean).join(" "))}return{...e,...n}}function xh(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var mn="Popover",[ya]=J(mn,[Ie]),yt=Ie(),[yh,Ne]=ya(mn),ba=e=>{const{__scopePopover:t,children:n,open:o,defaultOpen:r,onOpenChange:s,modal:a=!1}=e,c=yt(t),l=i.useRef(null),[u,d]=i.useState(!1),[f,h]=ue({prop:o,defaultProp:r??!1,onChange:s,caller:mn});return p.jsx(qt,{...c,children:p.jsx(yh,{scope:t,contentId:ne(),triggerRef:l,open:f,onOpenChange:h,onOpenToggle:i.useCallback(()=>h(v=>!v),[h]),hasCustomAnchor:u,onCustomAnchorAdd:i.useCallback(()=>d(!0),[]),onCustomAnchorRemove:i.useCallback(()=>d(!1),[]),modal:a,children:n})})};ba.displayName=mn;var Ca="PopoverAnchor",Sa=i.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=Ne(Ca,n),s=yt(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:c}=r;return i.useEffect(()=>(a(),()=>c()),[a,c]),p.jsx(ht,{...s,...o,ref:t})});Sa.displayName=Ca;var Ea="PopoverTrigger",Ra=i.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=Ne(Ea,n),s=yt(n),a=j(t,r.triggerRef),c=p.jsx(O.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Ia(r.open),...o,ref:a,onClick:R(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?c:p.jsx(ht,{asChild:!0,...s,children:c})});Ra.displayName=Ea;var Po="PopoverPortal",[bh,Ch]=ya(Po,{forceMount:void 0}),Pa=e=>{const{__scopePopover:t,forceMount:n,children:o,container:r}=e,s=Ne(Po,t);return p.jsx(bh,{scope:t,forceMount:n,children:p.jsx(z,{present:n||s.open,children:p.jsx(Qe,{asChild:!0,container:r,children:o})})})};Pa.displayName=Po;var Ze="PopoverContent",Aa=i.forwardRef((e,t)=>{const n=Ch(Ze,e.__scopePopover),{forceMount:o=n.forceMount,...r}=e,s=Ne(Ze,e.__scopePopover);return p.jsx(z,{present:o||s.open,children:s.modal?p.jsx(Eh,{...r,ref:t}):p.jsx(Rh,{...r,ref:t})})});Aa.displayName=Ze;var Sh=hh("PopoverContent.RemoveScroll"),Eh=i.forwardRef((e,t)=>{const n=Ne(Ze,e.__scopePopover),o=i.useRef(null),r=j(t,o),s=i.useRef(!1);return i.useEffect(()=>{const a=o.current;if(a)return Ut(a)},[]),p.jsx(ft,{as:Sh,allowPinchZoom:!0,children:p.jsx(Ta,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:R(e.onCloseAutoFocus,a=>{a.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:R(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,l=c.button===0&&c.ctrlKey===!0,u=c.button===2||l;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:R(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),Rh=i.forwardRef((e,t)=>{const n=Ne(Ze,e.__scopePopover),o=i.useRef(!1),r=i.useRef(!1);return p.jsx(Ta,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||n.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;n.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})}),Ta=i.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,...f}=e,h=Ne(Ze,n),v=yt(n);return Vt(),p.jsx(dt,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:s,children:p.jsx(Je,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),children:p.jsx(Zt,{"data-state":Ia(h.open),role:"dialog",id:h.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),_a="PopoverClose",Ph=i.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=Ne(_a,n);return p.jsx(O.button,{type:"button",...o,ref:t,onClick:R(e.onClick,()=>r.onOpenChange(!1))})});Ph.displayName=_a;var Ah="PopoverArrow",Th=i.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=yt(n);return p.jsx(Jt,{...r,...o,ref:t})});Th.displayName=Ah;function Ia(e){return e?"open":"closed"}var Rm=ba,Pm=Sa,Am=Ra,Tm=Pa,_m=Aa;export{Pm as $,kh as A,zh as B,Il as C,Ml as D,sm as E,im as F,lm as G,am as H,Uh as I,cm as J,xm as K,Jh as L,ym as M,bm as N,_l as O,Tl as P,wm as Q,Pl as R,Ih as S,Ol as T,Cm as U,Zh as V,Sm as W,Em as X,Tm as Y,_m as Z,Rm as _,Dr as a,Am as a0,Oh as a1,dh as a2,fh as a3,um as a4,pm as a5,vm as a6,gm as a7,mm as a8,hm as a9,dm as aa,fm as ab,Mh as b,Nh as c,Dh as d,jh as e,Lh as f,$h as g,xd as h,wd as i,p as j,Al as k,Wh as l,Bh as m,Vh as n,Hh as o,Kh as p,Yh as q,nm as r,om as s,Xh as t,qh as u,Qh as v,tm as w,em as x,rm as y,Gh as z};
@@ -1 +0,0 @@
1
- import{j as e}from"./radix-ui-BlliRfHq.js";import{r as y}from"./react-vendor-CNOkPC89.js";import{t as k}from"./notifications-B2HqRBj7.js";import{B as R,d as a,c as E,b0 as z,$ as S}from"./index-TSYtCr3K.js";import{aQ as B,L as m,ao as L,m as P,R as T}from"./icons-CQ3MLSan.js";function F({title:c,pathLabel:x,loading:t,parseWarning:r,readWarning:i,value:s,dirty:n,readOnly:h=!1,saving:f,saveDisabled:j,onChange:p,onSave:u,onRefresh:b,onDiscard:l,language:v="json",loadingLabel:N="Loading settings.json...",parseWarningLabel:g="Parse warning",ownershipNotice:d}){const[w,o]=y.useState(!1),C=async()=>{s&&(await navigator.clipboard.writeText(s),o(!0),k.success(S.t("commonToast.settingsCopied")),window.setTimeout(()=>o(!1),1500))};return e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"p-4 border-b bg-background flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h2",{className:"font-semibold flex items-center gap-2",children:[e.jsx(B,{className:"h-4 w-4 text-primary"}),c,n&&e.jsx(R,{variant:"secondary",className:"text-[10px]",children:"Unsaved"})]}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:x})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(a,{size:"sm",onClick:u,disabled:j,children:[f?e.jsx(m,{className:"h-4 w-4 mr-1 animate-spin"}):e.jsx(L,{className:"h-4 w-4 mr-1"}),"Save"]}),l?e.jsx(a,{variant:"outline",size:"sm",onClick:l,disabled:!n||t,children:"Discard"}):null,e.jsxs(a,{variant:"outline",size:"sm",onClick:C,disabled:!s,children:[e.jsx(P,{className:"h-4 w-4 mr-1"}),w?"Copied":"Copy"]}),e.jsx(a,{variant:"outline",size:"sm",onClick:b,"aria-label":"Refresh raw config",children:e.jsx(T,{className:E("h-4 w-4",t?"animate-spin":"")})})]})]}),e.jsx("div",{className:"flex-1 overflow-auto",children:t?e.jsxs("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:[e.jsx(m,{className:"h-5 w-5 animate-spin mr-2"}),N]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[d&&e.jsx("div",{className:"mx-4 mt-4",children:d}),r&&e.jsxs("div",{className:"mx-4 mt-4 rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:bg-amber-950/20 dark:text-amber-300",children:[g,": ",r]}),i&&e.jsxs("div",{className:"mx-4 mt-4 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-sm text-destructive",children:["Read-only: ",i]}),e.jsx("div",{className:"min-h-0 flex-1 p-4 pt-3",children:e.jsx("div",{className:"h-full rounded-md border overflow-hidden bg-background",children:e.jsx(z,{value:s,onChange:p,language:v,readonly:h,minHeight:"100%",heightMode:"fill-parent"})})})]})})]})}const $=F;export{F as R,$ as a};