@georgedong32/ccs 7.67.0 → 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 (1902) 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 +51 -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 -29
  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 -20
  661. package/dist/commands/cursor-command.js.map +1 -1
  662. package/dist/commands/cursor-usage-display.d.ts +29 -0
  663. package/dist/commands/cursor-usage-display.d.ts.map +1 -0
  664. package/dist/commands/cursor-usage-display.js +107 -0
  665. package/dist/commands/cursor-usage-display.js.map +1 -0
  666. package/dist/commands/docker/up-subcommand.js +1 -1
  667. package/dist/commands/docker/up-subcommand.js.map +1 -1
  668. package/dist/commands/doctor-command.d.ts.map +1 -1
  669. package/dist/commands/doctor-command.js +9 -0
  670. package/dist/commands/doctor-command.js.map +1 -1
  671. package/dist/commands/env-command.d.ts.map +1 -1
  672. package/dist/commands/env-command.js +2 -2
  673. package/dist/commands/env-command.js.map +1 -1
  674. package/dist/commands/help-command.d.ts +2 -0
  675. package/dist/commands/help-command.d.ts.map +1 -1
  676. package/dist/commands/help-command.js +126 -5
  677. package/dist/commands/help-command.js.map +1 -1
  678. package/dist/commands/index.d.ts +1 -0
  679. package/dist/commands/index.d.ts.map +1 -1
  680. package/dist/commands/index.js +3 -1
  681. package/dist/commands/index.js.map +1 -1
  682. package/dist/commands/migrate-command.d.ts.map +1 -1
  683. package/dist/commands/migrate-command.js +2 -2
  684. package/dist/commands/migrate-command.js.map +1 -1
  685. package/dist/commands/proxy-command.d.ts +3 -0
  686. package/dist/commands/proxy-command.d.ts.map +1 -0
  687. package/dist/commands/proxy-command.js +237 -0
  688. package/dist/commands/proxy-command.js.map +1 -0
  689. package/dist/commands/root-command-router.d.ts.map +1 -1
  690. package/dist/commands/root-command-router.js +14 -0
  691. package/dist/commands/root-command-router.js.map +1 -1
  692. package/dist/commands/setup-command.d.ts.map +1 -1
  693. package/dist/commands/setup-command.js +6 -7
  694. package/dist/commands/setup-command.js.map +1 -1
  695. package/dist/commands/sync-command.d.ts.map +1 -1
  696. package/dist/commands/sync-command.js +3 -2
  697. package/dist/commands/sync-command.js.map +1 -1
  698. package/dist/commands/tokens-command.d.ts.map +1 -1
  699. package/dist/commands/tokens-command.js +27 -38
  700. package/dist/commands/tokens-command.js.map +1 -1
  701. package/dist/commands/update-command.d.ts +22 -5
  702. package/dist/commands/update-command.d.ts.map +1 -1
  703. package/dist/commands/update-command.js +211 -159
  704. package/dist/commands/update-command.js.map +1 -1
  705. package/dist/commands/version-command.d.ts.map +1 -1
  706. package/dist/commands/version-command.js +2 -1
  707. package/dist/commands/version-command.js.map +1 -1
  708. package/dist/config/config-loader-facade.d.ts +57 -0
  709. package/dist/config/config-loader-facade.d.ts.map +1 -0
  710. package/dist/config/config-loader-facade.js +131 -0
  711. package/dist/config/config-loader-facade.js.map +1 -0
  712. package/dist/config/loader/config-getters.d.ts +121 -0
  713. package/dist/config/loader/config-getters.d.ts.map +1 -0
  714. package/dist/config/loader/config-getters.js +260 -0
  715. package/dist/config/loader/config-getters.js.map +1 -0
  716. package/dist/config/loader/defaults-merger.d.ts +21 -0
  717. package/dist/config/loader/defaults-merger.d.ts.map +1 -0
  718. package/dist/config/loader/defaults-merger.js +278 -0
  719. package/dist/config/loader/defaults-merger.js.map +1 -0
  720. package/dist/config/loader/io-locks.d.ts +76 -0
  721. package/dist/config/loader/io-locks.d.ts.map +1 -0
  722. package/dist/config/loader/io-locks.js +297 -0
  723. package/dist/config/loader/io-locks.js.map +1 -0
  724. package/dist/config/loader/normalizers.d.ts +40 -0
  725. package/dist/config/loader/normalizers.d.ts.map +1 -0
  726. package/dist/config/loader/normalizers.js +172 -0
  727. package/dist/config/loader/normalizers.js.map +1 -0
  728. package/dist/config/loader/yaml-serializer.d.ts +19 -0
  729. package/dist/config/loader/yaml-serializer.d.ts.map +1 -0
  730. package/dist/config/loader/yaml-serializer.js +301 -0
  731. package/dist/config/loader/yaml-serializer.js.map +1 -0
  732. package/dist/config/migration-manager.d.ts.map +1 -1
  733. package/dist/config/migration-manager.js +14 -1
  734. package/dist/config/migration-manager.js.map +1 -1
  735. package/dist/config/reserved-names.d.ts +1 -1
  736. package/dist/config/reserved-names.d.ts.map +1 -1
  737. package/dist/config/reserved-names.js +10 -0
  738. package/dist/config/reserved-names.js.map +1 -1
  739. package/dist/config/schemas/auth.d.ts +99 -0
  740. package/dist/config/schemas/auth.d.ts.map +1 -0
  741. package/dist/config/schemas/auth.js +25 -0
  742. package/dist/config/schemas/auth.js.map +1 -0
  743. package/dist/config/schemas/browser.d.ts +53 -0
  744. package/dist/config/schemas/browser.d.ts.map +1 -0
  745. package/dist/config/schemas/browser.js +27 -0
  746. package/dist/config/schemas/browser.js.map +1 -0
  747. package/dist/config/schemas/channels.d.ts +27 -0
  748. package/dist/config/schemas/channels.d.ts.map +1 -0
  749. package/dist/config/schemas/channels.js +19 -0
  750. package/dist/config/schemas/channels.js.map +1 -0
  751. package/dist/config/schemas/cliproxy.d.ts +142 -0
  752. package/dist/config/schemas/cliproxy.d.ts.map +1 -0
  753. package/dist/config/schemas/cliproxy.js +18 -0
  754. package/dist/config/schemas/cliproxy.js.map +1 -0
  755. package/dist/config/schemas/copilot-cursor.d.ts +75 -0
  756. package/dist/config/schemas/copilot-cursor.d.ts.map +1 -0
  757. package/dist/config/schemas/copilot-cursor.js +36 -0
  758. package/dist/config/schemas/copilot-cursor.js.map +1 -0
  759. package/dist/config/schemas/index.d.ts +28 -0
  760. package/dist/config/schemas/index.d.ts.map +1 -0
  761. package/dist/config/schemas/index.js +51 -0
  762. package/dist/config/schemas/index.js.map +1 -0
  763. package/dist/config/schemas/logging.d.ts +43 -0
  764. package/dist/config/schemas/logging.d.ts.map +1 -0
  765. package/dist/config/schemas/logging.js +23 -0
  766. package/dist/config/schemas/logging.js.map +1 -0
  767. package/dist/config/schemas/providers.d.ts +14 -0
  768. package/dist/config/schemas/providers.d.ts.map +1 -0
  769. package/dist/config/schemas/providers.js +21 -0
  770. package/dist/config/schemas/providers.js.map +1 -0
  771. package/dist/config/schemas/proxy-server.d.ts +141 -0
  772. package/dist/config/schemas/proxy-server.d.ts.map +1 -0
  773. package/dist/config/schemas/proxy-server.js +71 -0
  774. package/dist/config/schemas/proxy-server.js.map +1 -0
  775. package/dist/config/schemas/quota.d.ts +88 -0
  776. package/dist/config/schemas/quota.d.ts.map +1 -0
  777. package/dist/config/schemas/quota.js +47 -0
  778. package/dist/config/schemas/quota.js.map +1 -0
  779. package/dist/config/schemas/thinking.d.ts +50 -0
  780. package/dist/config/schemas/thinking.d.ts.map +1 -0
  781. package/dist/config/schemas/thinking.js +26 -0
  782. package/dist/config/schemas/thinking.js.map +1 -0
  783. package/dist/config/schemas/unified-config.d.ts +74 -0
  784. package/dist/config/schemas/unified-config.d.ts.map +1 -0
  785. package/dist/config/schemas/unified-config.js +131 -0
  786. package/dist/config/schemas/unified-config.js.map +1 -0
  787. package/dist/config/schemas/version.d.ts +23 -0
  788. package/dist/config/schemas/version.d.ts.map +1 -0
  789. package/dist/config/schemas/version.js +26 -0
  790. package/dist/config/schemas/version.js.map +1 -0
  791. package/dist/config/schemas/websearch.d.ts +138 -0
  792. package/dist/config/schemas/websearch.d.ts.map +1 -0
  793. package/dist/config/schemas/websearch.js +12 -0
  794. package/dist/config/schemas/websearch.js.map +1 -0
  795. package/dist/config/unified-config-loader.d.ts +21 -113
  796. package/dist/config/unified-config-loader.d.ts.map +1 -1
  797. package/dist/config/unified-config-loader.js +104 -935
  798. package/dist/config/unified-config-loader.js.map +1 -1
  799. package/dist/config/unified-config-types.d.ts +3 -723
  800. package/dist/config/unified-config-types.d.ts.map +1 -1
  801. package/dist/config/unified-config-types.js +19 -268
  802. package/dist/config/unified-config-types.js.map +1 -1
  803. package/dist/copilot/copilot-auth.d.ts.map +1 -1
  804. package/dist/copilot/copilot-auth.js +22 -0
  805. package/dist/copilot/copilot-auth.js.map +1 -1
  806. package/dist/copilot/copilot-daemon.d.ts.map +1 -1
  807. package/dist/copilot/copilot-daemon.js +28 -2
  808. package/dist/copilot/copilot-daemon.js.map +1 -1
  809. package/dist/copilot/copilot-executor.d.ts +1 -1
  810. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  811. package/dist/copilot/copilot-executor.js +31 -12
  812. package/dist/copilot/copilot-executor.js.map +1 -1
  813. package/dist/copilot/copilot-package-manager.js +2 -2
  814. package/dist/copilot/copilot-package-manager.js.map +1 -1
  815. package/dist/cursor/constants.d.ts +4 -1
  816. package/dist/cursor/constants.d.ts.map +1 -1
  817. package/dist/cursor/constants.js +28 -1
  818. package/dist/cursor/constants.js.map +1 -1
  819. package/dist/cursor/cursor-anthropic-response.d.ts +1 -5
  820. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
  821. package/dist/cursor/cursor-anthropic-response.js +3 -186
  822. package/dist/cursor/cursor-anthropic-response.js.map +1 -1
  823. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -1
  824. package/dist/cursor/cursor-anthropic-translator.js +17 -3
  825. package/dist/cursor/cursor-anthropic-translator.js.map +1 -1
  826. package/dist/cursor/cursor-anthropic-types.d.ts +3 -0
  827. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -1
  828. package/dist/cursor/cursor-auth.d.ts +1 -0
  829. package/dist/cursor/cursor-auth.d.ts.map +1 -1
  830. package/dist/cursor/cursor-auth.js +156 -34
  831. package/dist/cursor/cursor-auth.js.map +1 -1
  832. package/dist/cursor/cursor-daemon-entry.js +2 -2
  833. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  834. package/dist/cursor/cursor-daemon-pid.js +2 -2
  835. package/dist/cursor/cursor-daemon-pid.js.map +1 -1
  836. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  837. package/dist/cursor/cursor-daemon.js +28 -1
  838. package/dist/cursor/cursor-daemon.js.map +1 -1
  839. package/dist/cursor/cursor-default-models.d.ts +1 -1
  840. package/dist/cursor/cursor-default-models.d.ts.map +1 -1
  841. package/dist/cursor/cursor-default-models.js +11 -1
  842. package/dist/cursor/cursor-default-models.js.map +1 -1
  843. package/dist/cursor/cursor-executor.d.ts +2 -1
  844. package/dist/cursor/cursor-executor.d.ts.map +1 -1
  845. package/dist/cursor/cursor-executor.js +312 -161
  846. package/dist/cursor/cursor-executor.js.map +1 -1
  847. package/dist/cursor/cursor-models.d.ts.map +1 -1
  848. package/dist/cursor/cursor-models.js +26 -4
  849. package/dist/cursor/cursor-models.js.map +1 -1
  850. package/dist/cursor/cursor-profile-executor.d.ts +10 -1
  851. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  852. package/dist/cursor/cursor-profile-executor.js +14 -10
  853. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  854. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -1
  855. package/dist/cursor/cursor-protobuf-decoder.js +1 -3
  856. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
  857. package/dist/cursor/cursor-protobuf-schema.d.ts +12 -3
  858. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
  859. package/dist/cursor/cursor-protobuf-schema.js +23 -5
  860. package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
  861. package/dist/cursor/cursor-protobuf.d.ts +1 -1
  862. package/dist/cursor/cursor-protobuf.d.ts.map +1 -1
  863. package/dist/cursor/cursor-protobuf.js +2 -4
  864. package/dist/cursor/cursor-protobuf.js.map +1 -1
  865. package/dist/cursor/cursor-runtime-probe.d.ts +12 -0
  866. package/dist/cursor/cursor-runtime-probe.d.ts.map +1 -0
  867. package/dist/cursor/cursor-runtime-probe.js +220 -0
  868. package/dist/cursor/cursor-runtime-probe.js.map +1 -0
  869. package/dist/cursor/cursor-stream-parser.d.ts +10 -0
  870. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -1
  871. package/dist/cursor/cursor-stream-parser.js +106 -10
  872. package/dist/cursor/cursor-stream-parser.js.map +1 -1
  873. package/dist/cursor/index.d.ts +1 -0
  874. package/dist/cursor/index.d.ts.map +1 -1
  875. package/dist/cursor/index.js +3 -1
  876. package/dist/cursor/index.js.map +1 -1
  877. package/dist/cursor/types.d.ts +6 -0
  878. package/dist/cursor/types.d.ts.map +1 -1
  879. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  880. package/dist/delegation/delegation-handler.js +113 -36
  881. package/dist/delegation/delegation-handler.js.map +1 -1
  882. package/dist/delegation/headless-executor.d.ts.map +1 -1
  883. package/dist/delegation/headless-executor.js +67 -22
  884. package/dist/delegation/headless-executor.js.map +1 -1
  885. package/dist/delegation/session-manager.js +2 -2
  886. package/dist/delegation/session-manager.js.map +1 -1
  887. package/dist/dispatcher/cli-argument-parser.d.ts +70 -0
  888. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -0
  889. package/dist/dispatcher/cli-argument-parser.js +285 -0
  890. package/dist/dispatcher/cli-argument-parser.js.map +1 -0
  891. package/dist/dispatcher/dispatcher-context.d.ts +24 -0
  892. package/dist/dispatcher/dispatcher-context.d.ts.map +1 -0
  893. package/dist/dispatcher/dispatcher-context.js +11 -0
  894. package/dist/dispatcher/dispatcher-context.js.map +1 -0
  895. package/dist/dispatcher/environment-builder.d.ts +20 -0
  896. package/dist/dispatcher/environment-builder.d.ts.map +1 -0
  897. package/dist/dispatcher/environment-builder.js +95 -0
  898. package/dist/dispatcher/environment-builder.js.map +1 -0
  899. package/dist/dispatcher/flows/account-flow.d.ts +9 -0
  900. package/dist/dispatcher/flows/account-flow.d.ts.map +1 -0
  901. package/dist/dispatcher/flows/account-flow.js +50 -0
  902. package/dist/dispatcher/flows/account-flow.js.map +1 -0
  903. package/dist/dispatcher/flows/cliproxy-flow.d.ts +8 -0
  904. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -0
  905. package/dist/dispatcher/flows/cliproxy-flow.js +165 -0
  906. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -0
  907. package/dist/dispatcher/flows/copilot-flow.d.ts +8 -0
  908. package/dist/dispatcher/flows/copilot-flow.d.ts.map +1 -0
  909. package/dist/dispatcher/flows/copilot-flow.js +72 -0
  910. package/dist/dispatcher/flows/copilot-flow.js.map +1 -0
  911. package/dist/dispatcher/flows/cursor-flow.d.ts +8 -0
  912. package/dist/dispatcher/flows/cursor-flow.d.ts.map +1 -0
  913. package/dist/dispatcher/flows/cursor-flow.js +62 -0
  914. package/dist/dispatcher/flows/cursor-flow.js.map +1 -0
  915. package/dist/dispatcher/flows/default-flow.d.ts +10 -0
  916. package/dist/dispatcher/flows/default-flow.d.ts.map +1 -0
  917. package/dist/dispatcher/flows/default-flow.js +99 -0
  918. package/dist/dispatcher/flows/default-flow.js.map +1 -0
  919. package/dist/dispatcher/flows/settings-flow.d.ts +9 -0
  920. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -0
  921. package/dist/dispatcher/flows/settings-flow.js +329 -0
  922. package/dist/dispatcher/flows/settings-flow.js.map +1 -0
  923. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts +28 -0
  924. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts.map +1 -0
  925. package/dist/dispatcher/flows/settings-image-analysis-prep.js +81 -0
  926. package/dist/dispatcher/flows/settings-image-analysis-prep.js.map +1 -0
  927. package/dist/dispatcher/pre-dispatch.d.ts +23 -0
  928. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -0
  929. package/dist/dispatcher/pre-dispatch.js +156 -0
  930. package/dist/dispatcher/pre-dispatch.js.map +1 -0
  931. package/dist/dispatcher/profile-resolver.d.ts +65 -0
  932. package/dist/dispatcher/profile-resolver.d.ts.map +1 -0
  933. package/dist/dispatcher/profile-resolver.js +303 -0
  934. package/dist/dispatcher/profile-resolver.js.map +1 -0
  935. package/dist/dispatcher/target-executor.d.ts +26 -0
  936. package/dist/dispatcher/target-executor.d.ts.map +1 -0
  937. package/dist/dispatcher/target-executor.js +81 -0
  938. package/dist/dispatcher/target-executor.js.map +1 -0
  939. package/dist/docker/docker-assets.d.ts.map +1 -1
  940. package/dist/docker/docker-assets.js +2 -2
  941. package/dist/docker/docker-assets.js.map +1 -1
  942. package/dist/docker/docker-bootstrap.js +1 -1
  943. package/dist/docker/docker-bootstrap.js.map +1 -1
  944. package/dist/docker/docker-executor.d.ts +1 -0
  945. package/dist/docker/docker-executor.d.ts.map +1 -1
  946. package/dist/docker/supervisord-lifecycle.d.ts +17 -0
  947. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -0
  948. package/dist/docker/supervisord-lifecycle.js +58 -0
  949. package/dist/docker/supervisord-lifecycle.js.map +1 -0
  950. package/dist/errors/error-handler.d.ts.map +1 -1
  951. package/dist/errors/error-handler.js +13 -0
  952. package/dist/errors/error-handler.js.map +1 -1
  953. package/dist/errors/error-types.d.ts +9 -0
  954. package/dist/errors/error-types.d.ts.map +1 -1
  955. package/dist/errors/error-types.js +15 -1
  956. package/dist/errors/error-types.js.map +1 -1
  957. package/dist/errors/index.d.ts +1 -1
  958. package/dist/errors/index.d.ts.map +1 -1
  959. package/dist/errors/index.js +3 -1
  960. package/dist/errors/index.js.map +1 -1
  961. package/dist/glmt/delta-accumulator.d.ts +4 -0
  962. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  963. package/dist/glmt/delta-accumulator.js +17 -5
  964. package/dist/glmt/delta-accumulator.js.map +1 -1
  965. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  966. package/dist/glmt/glmt-proxy.js +7 -0
  967. package/dist/glmt/glmt-proxy.js.map +1 -1
  968. package/dist/glmt/glmt-transformer.d.ts +1 -0
  969. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  970. package/dist/glmt/glmt-transformer.js +9 -2
  971. package/dist/glmt/glmt-transformer.js.map +1 -1
  972. package/dist/glmt/pipeline/stream-parser.d.ts +0 -3
  973. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  974. package/dist/glmt/pipeline/stream-parser.js +20 -27
  975. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  976. package/dist/glmt/pipeline/tool-call-handler.d.ts +0 -7
  977. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  978. package/dist/glmt/pipeline/tool-call-handler.js +15 -24
  979. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  980. package/dist/glmt/sse-parser.d.ts.map +1 -1
  981. package/dist/glmt/sse-parser.js +46 -41
  982. package/dist/glmt/sse-parser.js.map +1 -1
  983. package/dist/management/checks/config-check.d.ts.map +1 -1
  984. package/dist/management/checks/config-check.js +2 -2
  985. package/dist/management/checks/config-check.js.map +1 -1
  986. package/dist/management/checks/env-check.d.ts.map +1 -1
  987. package/dist/management/checks/env-check.js +2 -1
  988. package/dist/management/checks/env-check.js.map +1 -1
  989. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  990. package/dist/management/checks/image-analysis-check.js +25 -7
  991. package/dist/management/checks/image-analysis-check.js.map +1 -1
  992. package/dist/management/checks/profile-check.d.ts.map +1 -1
  993. package/dist/management/checks/profile-check.js +6 -7
  994. package/dist/management/checks/profile-check.js.map +1 -1
  995. package/dist/management/checks/symlink-check.d.ts.map +1 -1
  996. package/dist/management/checks/symlink-check.js +4 -5
  997. package/dist/management/checks/symlink-check.js.map +1 -1
  998. package/dist/management/checks/system-check.d.ts.map +1 -1
  999. package/dist/management/checks/system-check.js +3 -3
  1000. package/dist/management/checks/system-check.js.map +1 -1
  1001. package/dist/management/instance-directory.d.ts +4 -0
  1002. package/dist/management/instance-directory.d.ts.map +1 -0
  1003. package/dist/management/instance-directory.js +54 -0
  1004. package/dist/management/instance-directory.js.map +1 -0
  1005. package/dist/management/instance-manager.d.ts.map +1 -1
  1006. package/dist/management/instance-manager.js +18 -13
  1007. package/dist/management/instance-manager.js.map +1 -1
  1008. package/dist/management/plugin-path-normalizer.d.ts +7 -0
  1009. package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
  1010. package/dist/management/plugin-path-normalizer.js +82 -0
  1011. package/dist/management/plugin-path-normalizer.js.map +1 -0
  1012. package/dist/management/recovery-manager.d.ts +6 -0
  1013. package/dist/management/recovery-manager.d.ts.map +1 -1
  1014. package/dist/management/recovery-manager.js +77 -7
  1015. package/dist/management/recovery-manager.js.map +1 -1
  1016. package/dist/management/repair/auto-repair.d.ts.map +1 -1
  1017. package/dist/management/repair/auto-repair.js +2 -2
  1018. package/dist/management/repair/auto-repair.js.map +1 -1
  1019. package/dist/management/shared-manager.d.ts +3 -2
  1020. package/dist/management/shared-manager.d.ts.map +1 -1
  1021. package/dist/management/shared-manager.js +41 -84
  1022. package/dist/management/shared-manager.js.map +1 -1
  1023. package/dist/proxy/index.d.ts +9 -0
  1024. package/dist/proxy/index.d.ts.map +1 -0
  1025. package/dist/proxy/index.js +25 -0
  1026. package/dist/proxy/index.js.map +1 -0
  1027. package/dist/proxy/profile-router.d.ts +28 -0
  1028. package/dist/proxy/profile-router.d.ts.map +1 -0
  1029. package/dist/proxy/profile-router.js +43 -0
  1030. package/dist/proxy/profile-router.js.map +1 -0
  1031. package/dist/proxy/proxy-daemon-entry.d.ts +2 -0
  1032. package/dist/proxy/proxy-daemon-entry.d.ts.map +1 -0
  1033. package/dist/proxy/proxy-daemon-entry.js +112 -0
  1034. package/dist/proxy/proxy-daemon-entry.js.map +1 -0
  1035. package/dist/proxy/proxy-daemon-paths.d.ts +12 -0
  1036. package/dist/proxy/proxy-daemon-paths.d.ts.map +1 -0
  1037. package/dist/proxy/proxy-daemon-paths.js +58 -0
  1038. package/dist/proxy/proxy-daemon-paths.js.map +1 -0
  1039. package/dist/proxy/proxy-daemon-state.d.ts +25 -0
  1040. package/dist/proxy/proxy-daemon-state.d.ts.map +1 -0
  1041. package/dist/proxy/proxy-daemon-state.js +199 -0
  1042. package/dist/proxy/proxy-daemon-state.js.map +1 -0
  1043. package/dist/proxy/proxy-daemon.d.ts +27 -0
  1044. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  1045. package/dist/proxy/proxy-daemon.js +614 -0
  1046. package/dist/proxy/proxy-daemon.js.map +1 -0
  1047. package/dist/proxy/proxy-env.d.ts +3 -0
  1048. package/dist/proxy/proxy-env.d.ts.map +1 -0
  1049. package/dist/proxy/proxy-env.js +26 -0
  1050. package/dist/proxy/proxy-env.js.map +1 -0
  1051. package/dist/proxy/proxy-port-resolver.d.ts +9 -0
  1052. package/dist/proxy/proxy-port-resolver.d.ts.map +1 -0
  1053. package/dist/proxy/proxy-port-resolver.js +62 -0
  1054. package/dist/proxy/proxy-port-resolver.js.map +1 -0
  1055. package/dist/proxy/request-router.d.ts +12 -0
  1056. package/dist/proxy/request-router.d.ts.map +1 -0
  1057. package/dist/proxy/request-router.js +163 -0
  1058. package/dist/proxy/request-router.js.map +1 -0
  1059. package/dist/proxy/routing-config.d.ts +10 -0
  1060. package/dist/proxy/routing-config.d.ts.map +1 -0
  1061. package/dist/proxy/routing-config.js +79 -0
  1062. package/dist/proxy/routing-config.js.map +1 -0
  1063. package/dist/proxy/server/http-helpers.d.ts +8 -0
  1064. package/dist/proxy/server/http-helpers.d.ts.map +1 -0
  1065. package/dist/proxy/server/http-helpers.js +73 -0
  1066. package/dist/proxy/server/http-helpers.js.map +1 -0
  1067. package/dist/proxy/server/messages-route.d.ts +12 -0
  1068. package/dist/proxy/server/messages-route.d.ts.map +1 -0
  1069. package/dist/proxy/server/messages-route.js +244 -0
  1070. package/dist/proxy/server/messages-route.js.map +1 -0
  1071. package/dist/proxy/server/proxy-server.d.ts +12 -0
  1072. package/dist/proxy/server/proxy-server.d.ts.map +1 -0
  1073. package/dist/proxy/server/proxy-server.js +140 -0
  1074. package/dist/proxy/server/proxy-server.js.map +1 -0
  1075. package/dist/proxy/transformers/request-transformer.d.ts +60 -0
  1076. package/dist/proxy/transformers/request-transformer.d.ts.map +1 -0
  1077. package/dist/proxy/transformers/request-transformer.js +452 -0
  1078. package/dist/proxy/transformers/request-transformer.js.map +1 -0
  1079. package/dist/proxy/transformers/sse-stream-transformer.d.ts +11 -0
  1080. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -0
  1081. package/dist/proxy/transformers/sse-stream-transformer.js +200 -0
  1082. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -0
  1083. package/dist/proxy/upstream-url.d.ts +3 -0
  1084. package/dist/proxy/upstream-url.d.ts.map +1 -0
  1085. package/dist/proxy/upstream-url.js +43 -0
  1086. package/dist/proxy/upstream-url.js.map +1 -0
  1087. package/dist/services/logging/index.d.ts +12 -0
  1088. package/dist/services/logging/index.d.ts.map +1 -0
  1089. package/dist/services/logging/index.js +37 -0
  1090. package/dist/services/logging/index.js.map +1 -0
  1091. package/dist/services/logging/log-buffer.d.ts +5 -0
  1092. package/dist/services/logging/log-buffer.d.ts.map +1 -0
  1093. package/dist/services/logging/log-buffer.js +20 -0
  1094. package/dist/services/logging/log-buffer.js.map +1 -0
  1095. package/dist/services/logging/log-config.d.ts +4 -0
  1096. package/dist/services/logging/log-config.d.ts.map +1 -0
  1097. package/dist/services/logging/log-config.js +68 -0
  1098. package/dist/services/logging/log-config.js.map +1 -0
  1099. package/dist/services/logging/log-context.d.ts +41 -0
  1100. package/dist/services/logging/log-context.d.ts.map +1 -0
  1101. package/dist/services/logging/log-context.js +51 -0
  1102. package/dist/services/logging/log-context.js.map +1 -0
  1103. package/dist/services/logging/log-paths.d.ts +8 -0
  1104. package/dist/services/logging/log-paths.d.ts.map +1 -0
  1105. package/dist/services/logging/log-paths.js +66 -0
  1106. package/dist/services/logging/log-paths.js.map +1 -0
  1107. package/dist/services/logging/log-reader.d.ts +5 -0
  1108. package/dist/services/logging/log-reader.d.ts.map +1 -0
  1109. package/dist/services/logging/log-reader.js +124 -0
  1110. package/dist/services/logging/log-reader.js.map +1 -0
  1111. package/dist/services/logging/log-redaction.d.ts +10 -0
  1112. package/dist/services/logging/log-redaction.d.ts.map +1 -0
  1113. package/dist/services/logging/log-redaction.js +90 -0
  1114. package/dist/services/logging/log-redaction.js.map +1 -0
  1115. package/dist/services/logging/log-storage.d.ts +4 -0
  1116. package/dist/services/logging/log-storage.d.ts.map +1 -0
  1117. package/dist/services/logging/log-storage.js +109 -0
  1118. package/dist/services/logging/log-storage.js.map +1 -0
  1119. package/dist/services/logging/log-types.d.ts +60 -0
  1120. package/dist/services/logging/log-types.d.ts.map +1 -0
  1121. package/dist/services/logging/log-types.js +33 -0
  1122. package/dist/services/logging/log-types.js.map +1 -0
  1123. package/dist/services/logging/logger.d.ts +26 -0
  1124. package/dist/services/logging/logger.d.ts.map +1 -0
  1125. package/dist/services/logging/logger.js +65 -0
  1126. package/dist/services/logging/logger.js.map +1 -0
  1127. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  1128. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  1129. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  1130. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  1131. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  1132. package/dist/shared/claude-extension-setup.js +7 -3
  1133. package/dist/shared/claude-extension-setup.js.map +1 -1
  1134. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  1135. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  1136. package/dist/shared/cliproxy-model-routing.js +144 -0
  1137. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  1138. package/dist/shared/provider-preset-catalog.d.ts +4 -2
  1139. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  1140. package/dist/shared/provider-preset-catalog.js +17 -1
  1141. package/dist/shared/provider-preset-catalog.js.map +1 -1
  1142. package/dist/shared/toml-object.d.ts.map +1 -1
  1143. package/dist/shared/toml-object.js +6 -2
  1144. package/dist/shared/toml-object.js.map +1 -1
  1145. package/dist/targets/claude-adapter.d.ts +6 -1
  1146. package/dist/targets/claude-adapter.d.ts.map +1 -1
  1147. package/dist/targets/claude-adapter.js +20 -5
  1148. package/dist/targets/claude-adapter.js.map +1 -1
  1149. package/dist/targets/codex-adapter.d.ts +2 -0
  1150. package/dist/targets/codex-adapter.d.ts.map +1 -1
  1151. package/dist/targets/codex-adapter.js +43 -11
  1152. package/dist/targets/codex-adapter.js.map +1 -1
  1153. package/dist/targets/codex-cliproxy-provider-config.d.ts +16 -0
  1154. package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -0
  1155. package/dist/targets/codex-cliproxy-provider-config.js +156 -0
  1156. package/dist/targets/codex-cliproxy-provider-config.js.map +1 -0
  1157. package/dist/targets/codex-detector.d.ts.map +1 -1
  1158. package/dist/targets/codex-detector.js +20 -9
  1159. package/dist/targets/codex-detector.js.map +1 -1
  1160. package/dist/targets/droid-adapter.d.ts +3 -2
  1161. package/dist/targets/droid-adapter.d.ts.map +1 -1
  1162. package/dist/targets/droid-adapter.js +15 -10
  1163. package/dist/targets/droid-adapter.js.map +1 -1
  1164. package/dist/targets/droid-config-manager.d.ts.map +1 -1
  1165. package/dist/targets/droid-config-manager.js +40 -0
  1166. package/dist/targets/droid-config-manager.js.map +1 -1
  1167. package/dist/targets/droid-provider.d.ts.map +1 -1
  1168. package/dist/targets/droid-provider.js +10 -5
  1169. package/dist/targets/droid-provider.js.map +1 -1
  1170. package/dist/targets/target-adapter.d.ts +5 -0
  1171. package/dist/targets/target-adapter.d.ts.map +1 -1
  1172. package/dist/targets/target-metadata.js +1 -1
  1173. package/dist/targets/target-metadata.js.map +1 -1
  1174. package/dist/targets/target-resolver.d.ts.map +1 -1
  1175. package/dist/targets/target-resolver.js +15 -0
  1176. package/dist/targets/target-resolver.js.map +1 -1
  1177. package/dist/targets/target-runtime-compatibility.js +1 -1
  1178. package/dist/targets/target-runtime-compatibility.js.map +1 -1
  1179. package/dist/types/cli.d.ts +1 -0
  1180. package/dist/types/cli.d.ts.map +1 -1
  1181. package/dist/types/config.d.ts +15 -0
  1182. package/dist/types/config.d.ts.map +1 -1
  1183. package/dist/types/config.js.map +1 -1
  1184. package/dist/types/index.d.ts +1 -1
  1185. package/dist/types/index.d.ts.map +1 -1
  1186. package/dist/types/index.js.map +1 -1
  1187. package/dist/ui/assets/accounts-biinrjBy.js +1 -0
  1188. package/dist/ui/assets/alert-dialog-B9kuXS_B.js +1 -0
  1189. package/dist/ui/assets/api-BYTesAyV.js +4 -0
  1190. package/dist/ui/assets/auth-section-BH7Y0zzE.js +1 -0
  1191. package/dist/ui/assets/backups-section-JTiku4fB.js +1 -0
  1192. package/dist/ui/assets/channels-BweRUtu-.js +1 -0
  1193. package/dist/ui/assets/charts-eIPy2oG6.js +64 -0
  1194. package/dist/ui/assets/checkbox-CsTXDim7.js +1 -0
  1195. package/dist/ui/assets/claude-extension-BE4B2NkS.js +1 -0
  1196. package/dist/ui/assets/cliproxy-Fl6HWxZ0.js +4 -0
  1197. package/dist/ui/assets/cliproxy-ai-providers-NMOopK4K.js +15 -0
  1198. package/dist/ui/assets/cliproxy-control-panel-BgiBcyzb.js +1 -0
  1199. package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
  1200. package/dist/ui/assets/codex-BsxF_eKF.js +30 -0
  1201. package/dist/ui/assets/confirm-dialog-iyu6jSnb.js +1 -0
  1202. package/dist/ui/assets/copilot-BSCdzbOk.js +3 -0
  1203. package/dist/ui/assets/cursor-CjGT-EsR.js +1 -0
  1204. package/dist/ui/assets/droid-MR-k0fbU.js +2 -0
  1205. package/dist/ui/assets/form-utils-CuHzLhJZ.js +20 -0
  1206. package/dist/ui/assets/globalenv-section-BGPR-lJN.js +1 -0
  1207. package/dist/ui/assets/health-C7wQUXVn.js +1 -0
  1208. package/dist/ui/assets/icons-bxdfpJdB.js +1 -0
  1209. package/dist/ui/assets/index-7dfuc3Cf.js +56 -0
  1210. package/dist/ui/assets/index-7rknm4m0.js +1 -0
  1211. package/dist/ui/assets/index-BeLNgVQ9.js +1 -0
  1212. package/dist/ui/assets/index-BvMWFZiH.js +1 -0
  1213. package/dist/ui/assets/index-DrEPnpI3.css +1 -0
  1214. package/dist/ui/assets/index-MAUysHQF.js +1 -0
  1215. package/dist/ui/assets/index-nzImYtUK.js +1 -0
  1216. package/dist/ui/assets/index-w9DZ42zc.js +1 -0
  1217. package/dist/ui/assets/logs-Qr4G0AdK.js +1 -0
  1218. package/dist/ui/assets/masked-input-Bl5OoUEZ.js +1 -0
  1219. package/dist/ui/assets/notifications-B4_o8bcr.js +1 -0
  1220. package/dist/ui/assets/providers/codebuddy.png +0 -0
  1221. package/dist/ui/assets/providers/cursor.svg +5 -0
  1222. package/dist/ui/assets/providers/gitlab.svg +22 -0
  1223. package/dist/ui/assets/providers/kilo.png +0 -0
  1224. package/dist/ui/assets/proxy-Br5aAkn0.js +9 -0
  1225. package/dist/ui/assets/proxy-status-widget-703_vH2t.js +1 -0
  1226. package/dist/ui/assets/radix-ui-DvRtHWGI.js +51 -0
  1227. package/dist/ui/assets/raw-json-settings-editor-panel-DWTJY3og.js +1 -0
  1228. package/dist/ui/assets/react-vendor-Bjx91N7w.js +3 -0
  1229. package/dist/ui/assets/searchable-select-C8BA2Q6i.js +1 -0
  1230. package/dist/ui/assets/separator-avUMnKG4.js +1 -0
  1231. package/dist/ui/assets/shared-DsOKYLqq.js +8 -0
  1232. package/dist/ui/assets/table-C6r_OOul.js +1 -0
  1233. package/dist/ui/assets/tanstack-Dg84L5cM.js +4 -0
  1234. package/dist/ui/assets/updates-K6jy3VXq.js +1 -0
  1235. package/dist/ui/assets/use-accounts-ZouK2A2J.js +1 -0
  1236. package/dist/ui/index.html +9 -9
  1237. package/dist/utils/browser/browser-policy.d.ts +22 -0
  1238. package/dist/utils/browser/browser-policy.d.ts.map +1 -0
  1239. package/dist/utils/browser/browser-policy.js +65 -0
  1240. package/dist/utils/browser/browser-policy.js.map +1 -0
  1241. package/dist/utils/browser/browser-settings.d.ts +52 -0
  1242. package/dist/utils/browser/browser-settings.d.ts.map +1 -0
  1243. package/dist/utils/browser/browser-settings.js +257 -0
  1244. package/dist/utils/browser/browser-settings.js.map +1 -0
  1245. package/dist/utils/browser/browser-setup.d.ts +21 -0
  1246. package/dist/utils/browser/browser-setup.d.ts.map +1 -0
  1247. package/dist/utils/browser/browser-setup.js +68 -0
  1248. package/dist/utils/browser/browser-setup.js.map +1 -0
  1249. package/dist/utils/browser/browser-status.d.ts +42 -0
  1250. package/dist/utils/browser/browser-status.d.ts.map +1 -0
  1251. package/dist/utils/browser/browser-status.js +251 -0
  1252. package/dist/utils/browser/browser-status.js.map +1 -0
  1253. package/dist/utils/browser/chrome-reuse.d.ts +18 -0
  1254. package/dist/utils/browser/chrome-reuse.d.ts.map +1 -0
  1255. package/dist/utils/browser/chrome-reuse.js +194 -0
  1256. package/dist/utils/browser/chrome-reuse.js.map +1 -0
  1257. package/dist/utils/browser/claude-tool-args.d.ts +2 -0
  1258. package/dist/utils/browser/claude-tool-args.d.ts.map +1 -0
  1259. package/dist/utils/browser/claude-tool-args.js +22 -0
  1260. package/dist/utils/browser/claude-tool-args.js.map +1 -0
  1261. package/dist/utils/browser/index.d.ts +16 -0
  1262. package/dist/utils/browser/index.d.ts.map +1 -0
  1263. package/dist/utils/browser/index.js +45 -0
  1264. package/dist/utils/browser/index.js.map +1 -0
  1265. package/dist/utils/browser/mcp-installer.d.ts +14 -0
  1266. package/dist/utils/browser/mcp-installer.d.ts.map +1 -0
  1267. package/dist/utils/browser/mcp-installer.js +356 -0
  1268. package/dist/utils/browser/mcp-installer.js.map +1 -0
  1269. package/dist/utils/browser/platform.d.ts +4 -0
  1270. package/dist/utils/browser/platform.d.ts.map +1 -0
  1271. package/dist/utils/browser/platform.js +12 -0
  1272. package/dist/utils/browser/platform.js.map +1 -0
  1273. package/dist/utils/browser-codex-overrides.d.ts +3 -0
  1274. package/dist/utils/browser-codex-overrides.d.ts.map +1 -0
  1275. package/dist/utils/browser-codex-overrides.js +29 -0
  1276. package/dist/utils/browser-codex-overrides.js.map +1 -0
  1277. package/dist/utils/claude-detector.d.ts +1 -0
  1278. package/dist/utils/claude-detector.d.ts.map +1 -1
  1279. package/dist/utils/claude-detector.js +2 -1
  1280. package/dist/utils/claude-detector.js.map +1 -1
  1281. package/dist/utils/claude-spawner.d.ts +1 -0
  1282. package/dist/utils/claude-spawner.d.ts.map +1 -1
  1283. package/dist/utils/claude-spawner.js +1 -1
  1284. package/dist/utils/claude-spawner.js.map +1 -1
  1285. package/dist/utils/claude-subcommand-detector.d.ts +45 -0
  1286. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -0
  1287. package/dist/utils/claude-subcommand-detector.js +179 -0
  1288. package/dist/utils/claude-subcommand-detector.js.map +1 -0
  1289. package/dist/utils/claude-tool-args.d.ts +7 -0
  1290. package/dist/utils/claude-tool-args.d.ts.map +1 -0
  1291. package/dist/utils/claude-tool-args.js +43 -0
  1292. package/dist/utils/claude-tool-args.js.map +1 -0
  1293. package/dist/utils/config-manager.d.ts +5 -0
  1294. package/dist/utils/config-manager.d.ts.map +1 -1
  1295. package/dist/utils/config-manager.js +16 -3
  1296. package/dist/utils/config-manager.js.map +1 -1
  1297. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
  1298. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
  1299. package/dist/utils/hooks/get-image-analysis-hook-env.js +11 -7
  1300. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
  1301. package/dist/utils/hooks/image-analysis-backend-resolver.js +2 -2
  1302. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  1303. package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
  1304. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  1305. package/dist/utils/hooks/image-analysis-runtime-status.js +15 -11
  1306. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  1307. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -1
  1308. package/dist/utils/hooks/image-analyzer-hook-configuration.js +2 -2
  1309. package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -1
  1310. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -1
  1311. package/dist/utils/hooks/image-analyzer-hook-installer.js +2 -2
  1312. package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -1
  1313. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts +21 -0
  1314. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts.map +1 -0
  1315. package/dist/utils/hooks/image-analyzer-hook-utils.js +81 -0
  1316. package/dist/utils/hooks/image-analyzer-hook-utils.js.map +1 -0
  1317. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +1 -0
  1318. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
  1319. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +35 -14
  1320. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
  1321. package/dist/utils/hooks/index.d.ts +1 -0
  1322. package/dist/utils/hooks/index.d.ts.map +1 -1
  1323. package/dist/utils/hooks/index.js +3 -1
  1324. package/dist/utils/hooks/index.js.map +1 -1
  1325. package/dist/utils/image-analysis/claude-tool-args.d.ts +3 -0
  1326. package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
  1327. package/dist/utils/image-analysis/claude-tool-args.js +25 -47
  1328. package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
  1329. package/dist/utils/image-analysis/index.d.ts +1 -0
  1330. package/dist/utils/image-analysis/index.d.ts.map +1 -1
  1331. package/dist/utils/image-analysis/index.js +6 -1
  1332. package/dist/utils/image-analysis/index.js.map +1 -1
  1333. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  1334. package/dist/utils/image-analysis/mcp-installer.js +5 -5
  1335. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  1336. package/dist/utils/image-analysis/repair.d.ts +12 -0
  1337. package/dist/utils/image-analysis/repair.d.ts.map +1 -0
  1338. package/dist/utils/image-analysis/repair.js +105 -0
  1339. package/dist/utils/image-analysis/repair.js.map +1 -0
  1340. package/dist/utils/openai-compat-launch-settings.d.ts +7 -0
  1341. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -0
  1342. package/dist/utils/openai-compat-launch-settings.js +61 -0
  1343. package/dist/utils/openai-compat-launch-settings.js.map +1 -0
  1344. package/dist/utils/package-manager-detector.d.ts +31 -4
  1345. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  1346. package/dist/utils/package-manager-detector.js +249 -60
  1347. package/dist/utils/package-manager-detector.js.map +1 -1
  1348. package/dist/utils/prompt-injection-strategy.d.ts +54 -0
  1349. package/dist/utils/prompt-injection-strategy.d.ts.map +1 -0
  1350. package/dist/utils/prompt-injection-strategy.js +128 -0
  1351. package/dist/utils/prompt-injection-strategy.js.map +1 -0
  1352. package/dist/utils/retry-strategy.d.ts +37 -0
  1353. package/dist/utils/retry-strategy.d.ts.map +1 -0
  1354. package/dist/utils/retry-strategy.js +99 -0
  1355. package/dist/utils/retry-strategy.js.map +1 -0
  1356. package/dist/utils/shell-executor.d.ts +32 -1
  1357. package/dist/utils/shell-executor.d.ts.map +1 -1
  1358. package/dist/utils/shell-executor.js +193 -30
  1359. package/dist/utils/shell-executor.js.map +1 -1
  1360. package/dist/utils/update-checker.d.ts +1 -1
  1361. package/dist/utils/update-checker.d.ts.map +1 -1
  1362. package/dist/utils/websearch/claude-tool-args.d.ts +7 -0
  1363. package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
  1364. package/dist/utils/websearch/claude-tool-args.js +32 -50
  1365. package/dist/utils/websearch/claude-tool-args.js.map +1 -1
  1366. package/dist/utils/websearch/hook-config.d.ts.map +1 -1
  1367. package/dist/utils/websearch/hook-config.js +3 -3
  1368. package/dist/utils/websearch/hook-config.js.map +1 -1
  1369. package/dist/utils/websearch/hook-env.d.ts.map +1 -1
  1370. package/dist/utils/websearch/hook-env.js +21 -3
  1371. package/dist/utils/websearch/hook-env.js.map +1 -1
  1372. package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
  1373. package/dist/utils/websearch/hook-installer.js +2 -2
  1374. package/dist/utils/websearch/hook-installer.js.map +1 -1
  1375. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  1376. package/dist/utils/websearch/mcp-installer.js +5 -5
  1377. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  1378. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
  1379. package/dist/utils/websearch/profile-hook-injector.js +3 -3
  1380. package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
  1381. package/dist/utils/websearch/provider-secrets.js +2 -2
  1382. package/dist/utils/websearch/provider-secrets.js.map +1 -1
  1383. package/dist/utils/websearch/status.d.ts +1 -1
  1384. package/dist/utils/websearch/status.d.ts.map +1 -1
  1385. package/dist/utils/websearch/status.js +37 -16
  1386. package/dist/utils/websearch/status.js.map +1 -1
  1387. package/dist/utils/websearch/trace.d.ts +1 -0
  1388. package/dist/utils/websearch/trace.d.ts.map +1 -1
  1389. package/dist/utils/websearch/trace.js +27 -5
  1390. package/dist/utils/websearch/trace.js.map +1 -1
  1391. package/dist/utils/websearch/types.d.ts +12 -2
  1392. package/dist/utils/websearch/types.d.ts.map +1 -1
  1393. package/dist/utils/websearch/types.js +38 -0
  1394. package/dist/utils/websearch/types.js.map +1 -1
  1395. package/dist/web-server/file-watcher.js +2 -2
  1396. package/dist/web-server/file-watcher.js.map +1 -1
  1397. package/dist/web-server/health/cliproxy-checks.js +2 -2
  1398. package/dist/web-server/health/cliproxy-checks.js.map +1 -1
  1399. package/dist/web-server/health/config-checks.d.ts.map +1 -1
  1400. package/dist/web-server/health/config-checks.js +3 -3
  1401. package/dist/web-server/health/config-checks.js.map +1 -1
  1402. package/dist/web-server/health/profile-checks.d.ts.map +1 -1
  1403. package/dist/web-server/health/profile-checks.js +5 -6
  1404. package/dist/web-server/health/profile-checks.js.map +1 -1
  1405. package/dist/web-server/health/symlink-checks.d.ts.map +1 -1
  1406. package/dist/web-server/health/symlink-checks.js +2 -3
  1407. package/dist/web-server/health/symlink-checks.js.map +1 -1
  1408. package/dist/web-server/health/websearch-checks.js +1 -1
  1409. package/dist/web-server/health/websearch-checks.js.map +1 -1
  1410. package/dist/web-server/health-service.d.ts.map +1 -1
  1411. package/dist/web-server/health-service.js +7 -6
  1412. package/dist/web-server/health-service.js.map +1 -1
  1413. package/dist/web-server/index.d.ts.map +1 -1
  1414. package/dist/web-server/index.js +102 -18
  1415. package/dist/web-server/index.js.map +1 -1
  1416. package/dist/web-server/jsonl-parser.d.ts.map +1 -1
  1417. package/dist/web-server/jsonl-parser.js +22 -4
  1418. package/dist/web-server/jsonl-parser.js.map +1 -1
  1419. package/dist/web-server/middleware/auth-middleware.d.ts +7 -3
  1420. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
  1421. package/dist/web-server/middleware/auth-middleware.js +103 -8
  1422. package/dist/web-server/middleware/auth-middleware.js.map +1 -1
  1423. package/dist/web-server/middleware/request-logging-middleware.d.ts +3 -0
  1424. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -0
  1425. package/dist/web-server/middleware/request-logging-middleware.js +30 -0
  1426. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -0
  1427. package/dist/web-server/model-pricing.d.ts +8 -6
  1428. package/dist/web-server/model-pricing.d.ts.map +1 -1
  1429. package/dist/web-server/model-pricing.js +202 -54
  1430. package/dist/web-server/model-pricing.js.map +1 -1
  1431. package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
  1432. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
  1433. package/dist/web-server/models-dev/pricing-resolver.js +160 -0
  1434. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
  1435. package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
  1436. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
  1437. package/dist/web-server/models-dev/registry-cache.js +165 -0
  1438. package/dist/web-server/models-dev/registry-cache.js.map +1 -0
  1439. package/dist/web-server/models-dev/types.d.ts +39 -0
  1440. package/dist/web-server/models-dev/types.d.ts.map +1 -0
  1441. package/dist/web-server/models-dev/types.js +3 -0
  1442. package/dist/web-server/models-dev/types.js.map +1 -0
  1443. package/dist/web-server/overview-routes.d.ts.map +1 -1
  1444. package/dist/web-server/overview-routes.js +3 -3
  1445. package/dist/web-server/overview-routes.js.map +1 -1
  1446. package/dist/web-server/routes/account-route-helpers.d.ts +3 -0
  1447. package/dist/web-server/routes/account-route-helpers.d.ts.map +1 -1
  1448. package/dist/web-server/routes/account-route-helpers.js.map +1 -1
  1449. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  1450. package/dist/web-server/routes/account-routes.js +105 -12
  1451. package/dist/web-server/routes/account-routes.js.map +1 -1
  1452. package/dist/web-server/routes/auth-routes.d.ts +10 -0
  1453. package/dist/web-server/routes/auth-routes.d.ts.map +1 -1
  1454. package/dist/web-server/routes/auth-routes.js +37 -10
  1455. package/dist/web-server/routes/auth-routes.js.map +1 -1
  1456. package/dist/web-server/routes/browser-routes.d.ts +3 -0
  1457. package/dist/web-server/routes/browser-routes.d.ts.map +1 -0
  1458. package/dist/web-server/routes/browser-routes.js +182 -0
  1459. package/dist/web-server/routes/browser-routes.js.map +1 -0
  1460. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  1461. package/dist/web-server/routes/catalog-routes.js +9 -8
  1462. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  1463. package/dist/web-server/routes/channels-routes.d.ts.map +1 -1
  1464. package/dist/web-server/routes/channels-routes.js +4 -4
  1465. package/dist/web-server/routes/channels-routes.js.map +1 -1
  1466. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  1467. package/dist/web-server/routes/claude-extension-routes.js +5 -0
  1468. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  1469. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
  1470. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  1471. package/dist/web-server/routes/cliproxy-auth-routes.js +281 -89
  1472. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  1473. package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -1
  1474. package/dist/web-server/routes/cliproxy-local-proxy.js +27 -17
  1475. package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -1
  1476. package/dist/web-server/routes/cliproxy-routing-routes.d.ts +3 -0
  1477. package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -0
  1478. package/dist/web-server/routes/cliproxy-routing-routes.js +69 -0
  1479. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -0
  1480. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +35 -0
  1481. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  1482. package/dist/web-server/routes/cliproxy-stats-routes.js +86 -42
  1483. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  1484. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  1485. package/dist/web-server/routes/cliproxy-sync-routes.js +2 -2
  1486. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  1487. package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
  1488. package/dist/web-server/routes/codex-routes.js +7 -0
  1489. package/dist/web-server/routes/codex-routes.js.map +1 -1
  1490. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  1491. package/dist/web-server/routes/config-routes.js +9 -6
  1492. package/dist/web-server/routes/config-routes.js.map +1 -1
  1493. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -1
  1494. package/dist/web-server/routes/copilot-routes.js +3 -3
  1495. package/dist/web-server/routes/copilot-routes.js.map +1 -1
  1496. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  1497. package/dist/web-server/routes/copilot-settings-routes.js +6 -7
  1498. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  1499. package/dist/web-server/routes/cursor-routes.d.ts +2 -0
  1500. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  1501. package/dist/web-server/routes/cursor-routes.js +48 -6
  1502. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  1503. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -1
  1504. package/dist/web-server/routes/cursor-settings-routes.js +8 -9
  1505. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -1
  1506. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  1507. package/dist/web-server/routes/image-analysis-routes.js +7 -17
  1508. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  1509. package/dist/web-server/routes/index.d.ts.map +1 -1
  1510. package/dist/web-server/routes/index.js +25 -0
  1511. package/dist/web-server/routes/index.js.map +1 -1
  1512. package/dist/web-server/routes/logs-routes.d.ts +3 -0
  1513. package/dist/web-server/routes/logs-routes.d.ts.map +1 -0
  1514. package/dist/web-server/routes/logs-routes.js +75 -0
  1515. package/dist/web-server/routes/logs-routes.js.map +1 -0
  1516. package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
  1517. package/dist/web-server/routes/misc-routes.js +10 -11
  1518. package/dist/web-server/routes/misc-routes.js.map +1 -1
  1519. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  1520. package/dist/web-server/routes/profile-routes.js +21 -3
  1521. package/dist/web-server/routes/profile-routes.js.map +1 -1
  1522. package/dist/web-server/routes/provider-routes.js +1 -1
  1523. package/dist/web-server/routes/provider-routes.js.map +1 -1
  1524. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  1525. package/dist/web-server/routes/proxy-routes.js +42 -12
  1526. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  1527. package/dist/web-server/routes/route-helpers.d.ts +1 -0
  1528. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  1529. package/dist/web-server/routes/route-helpers.js +19 -7
  1530. package/dist/web-server/routes/route-helpers.js.map +1 -1
  1531. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  1532. package/dist/web-server/routes/settings-routes.js +110 -23
  1533. package/dist/web-server/routes/settings-routes.js.map +1 -1
  1534. package/dist/web-server/routes/variant-routes.js +1 -1
  1535. package/dist/web-server/routes/variant-routes.js.map +1 -1
  1536. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -1
  1537. package/dist/web-server/routes/websearch-routes.js +41 -4
  1538. package/dist/web-server/routes/websearch-routes.js.map +1 -1
  1539. package/dist/web-server/services/claude-extension-binding-service.js +2 -2
  1540. package/dist/web-server/services/claude-extension-binding-service.js.map +1 -1
  1541. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  1542. package/dist/web-server/services/cliproxy-dashboard-install-service.js +22 -6
  1543. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  1544. package/dist/web-server/services/codex-dashboard-service.d.ts +1 -0
  1545. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  1546. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -1
  1547. package/dist/web-server/services/compatible-cli-docs-registry.js +1 -0
  1548. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -1
  1549. package/dist/web-server/services/droid-dashboard-service.d.ts +1 -0
  1550. package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -1
  1551. package/dist/web-server/services/logs-dashboard-service.d.ts +7 -0
  1552. package/dist/web-server/services/logs-dashboard-service.d.ts.map +1 -0
  1553. package/dist/web-server/services/logs-dashboard-service.js +33 -0
  1554. package/dist/web-server/services/logs-dashboard-service.js.map +1 -0
  1555. package/dist/web-server/shared-routes-collections.d.ts +13 -0
  1556. package/dist/web-server/shared-routes-collections.d.ts.map +1 -0
  1557. package/dist/web-server/shared-routes-collections.js +170 -0
  1558. package/dist/web-server/shared-routes-collections.js.map +1 -0
  1559. package/dist/web-server/shared-routes-content.d.ts +16 -0
  1560. package/dist/web-server/shared-routes-content.d.ts.map +1 -0
  1561. package/dist/web-server/shared-routes-content.js +152 -0
  1562. package/dist/web-server/shared-routes-content.js.map +1 -0
  1563. package/dist/web-server/shared-routes-markdown-walker.d.ts +12 -0
  1564. package/dist/web-server/shared-routes-markdown-walker.d.ts.map +1 -0
  1565. package/dist/web-server/shared-routes-markdown-walker.js +97 -0
  1566. package/dist/web-server/shared-routes-markdown-walker.js.map +1 -0
  1567. package/dist/web-server/shared-routes-markdown.d.ts +18 -0
  1568. package/dist/web-server/shared-routes-markdown.d.ts.map +1 -0
  1569. package/dist/web-server/shared-routes-markdown.js +167 -0
  1570. package/dist/web-server/shared-routes-markdown.js.map +1 -0
  1571. package/dist/web-server/shared-routes-path-guards.d.ts +16 -0
  1572. package/dist/web-server/shared-routes-path-guards.d.ts.map +1 -0
  1573. package/dist/web-server/shared-routes-path-guards.js +93 -0
  1574. package/dist/web-server/shared-routes-path-guards.js.map +1 -0
  1575. package/dist/web-server/shared-routes-plugin-registry-content.d.ts +12 -0
  1576. package/dist/web-server/shared-routes-plugin-registry-content.d.ts.map +1 -0
  1577. package/dist/web-server/shared-routes-plugin-registry-content.js +93 -0
  1578. package/dist/web-server/shared-routes-plugin-registry-content.js.map +1 -0
  1579. package/dist/web-server/shared-routes-plugins.d.ts +21 -0
  1580. package/dist/web-server/shared-routes-plugins.d.ts.map +1 -0
  1581. package/dist/web-server/shared-routes-plugins.js +197 -0
  1582. package/dist/web-server/shared-routes-plugins.js.map +1 -0
  1583. package/dist/web-server/shared-routes-symlink-status.d.ts +27 -0
  1584. package/dist/web-server/shared-routes-symlink-status.d.ts.map +1 -0
  1585. package/dist/web-server/shared-routes-symlink-status.js +135 -0
  1586. package/dist/web-server/shared-routes-symlink-status.js.map +1 -0
  1587. package/dist/web-server/shared-routes-types.d.ts +23 -0
  1588. package/dist/web-server/shared-routes-types.d.ts.map +1 -0
  1589. package/dist/web-server/shared-routes-types.js +15 -0
  1590. package/dist/web-server/shared-routes-types.js.map +1 -0
  1591. package/dist/web-server/shared-routes.d.ts +2 -1
  1592. package/dist/web-server/shared-routes.d.ts.map +1 -1
  1593. package/dist/web-server/shared-routes.js +50 -456
  1594. package/dist/web-server/shared-routes.js.map +1 -1
  1595. package/dist/web-server/usage/aggregator.d.ts +14 -7
  1596. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  1597. package/dist/web-server/usage/aggregator.js +254 -47
  1598. package/dist/web-server/usage/aggregator.js.map +1 -1
  1599. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -16
  1600. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  1601. package/dist/web-server/usage/cliproxy-usage-syncer.js +186 -61
  1602. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  1603. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +22 -7
  1604. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  1605. package/dist/web-server/usage/cliproxy-usage-transformer.js +278 -28
  1606. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  1607. package/dist/web-server/usage/codex-native-usage-collector.d.ts +13 -0
  1608. package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -0
  1609. package/dist/web-server/usage/codex-native-usage-collector.js +291 -0
  1610. package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -0
  1611. package/dist/web-server/usage/cursor-csv-parser.d.ts +68 -0
  1612. package/dist/web-server/usage/cursor-csv-parser.d.ts.map +1 -0
  1613. package/dist/web-server/usage/cursor-csv-parser.js +238 -0
  1614. package/dist/web-server/usage/cursor-csv-parser.js.map +1 -0
  1615. package/dist/web-server/usage/cursor-data-store.d.ts +55 -0
  1616. package/dist/web-server/usage/cursor-data-store.d.ts.map +1 -0
  1617. package/dist/web-server/usage/cursor-data-store.js +240 -0
  1618. package/dist/web-server/usage/cursor-data-store.js.map +1 -0
  1619. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  1620. package/dist/web-server/usage/data-aggregator.js +45 -46
  1621. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  1622. package/dist/web-server/usage/disk-cache.js +2 -2
  1623. package/dist/web-server/usage/disk-cache.js.map +1 -1
  1624. package/dist/web-server/usage/droid-native-usage-collector.d.ts +14 -0
  1625. package/dist/web-server/usage/droid-native-usage-collector.d.ts.map +1 -0
  1626. package/dist/web-server/usage/droid-native-usage-collector.js +201 -0
  1627. package/dist/web-server/usage/droid-native-usage-collector.js.map +1 -0
  1628. package/dist/web-server/usage/handlers.d.ts +16 -0
  1629. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  1630. package/dist/web-server/usage/handlers.js +291 -64
  1631. package/dist/web-server/usage/handlers.js.map +1 -1
  1632. package/dist/web-server/usage/model-identity.d.ts +16 -0
  1633. package/dist/web-server/usage/model-identity.d.ts.map +1 -0
  1634. package/dist/web-server/usage/model-identity.js +70 -0
  1635. package/dist/web-server/usage/model-identity.js.map +1 -0
  1636. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  1637. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  1638. package/dist/web-server/usage/profile-filter.js +35 -0
  1639. package/dist/web-server/usage/profile-filter.js.map +1 -0
  1640. package/dist/web-server/usage/routes.d.ts.map +1 -1
  1641. package/dist/web-server/usage/routes.js +26 -0
  1642. package/dist/web-server/usage/routes.js.map +1 -1
  1643. package/dist/web-server/usage/sqlite-cli.d.ts +27 -0
  1644. package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -0
  1645. package/dist/web-server/usage/sqlite-cli.js +186 -0
  1646. package/dist/web-server/usage/sqlite-cli.js.map +1 -0
  1647. package/dist/web-server/usage/types.d.ts +14 -0
  1648. package/dist/web-server/usage/types.d.ts.map +1 -1
  1649. package/dist/web-server/websocket.d.ts.map +1 -1
  1650. package/dist/web-server/websocket.js +25 -16
  1651. package/dist/web-server/websocket.js.map +1 -1
  1652. package/lib/hooks/image-analyzer-transformer.cjs +54 -3
  1653. package/lib/hooks/websearch-transformer.cjs +136 -0
  1654. package/lib/mcp/ccs-browser-server.cjs +6769 -0
  1655. package/lib/mcp/ccs-websearch-server.cjs +1 -1
  1656. package/package.json +8 -6
  1657. package/scripts/ci-parity-gate.sh +22 -3
  1658. package/scripts/dev-release.sh +4 -2
  1659. package/scripts/ensure-deps.sh +18 -0
  1660. package/scripts/run-test-bucket.js +188 -0
  1661. package/scripts/verify-bundle.js +4 -1
  1662. package/dist/cliproxy/account-manager.d.ts +0 -16
  1663. package/dist/cliproxy/account-manager.d.ts.map +0 -1
  1664. package/dist/cliproxy/account-manager.js +0 -51
  1665. package/dist/cliproxy/account-manager.js.map +0 -1
  1666. package/dist/cliproxy/account-safety.d.ts +0 -92
  1667. package/dist/cliproxy/account-safety.d.ts.map +0 -1
  1668. package/dist/cliproxy/account-safety.js +0 -496
  1669. package/dist/cliproxy/account-safety.js.map +0 -1
  1670. package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
  1671. package/dist/cliproxy/account-stats-key.js.map +0 -1
  1672. package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
  1673. package/dist/cliproxy/antigravity-responsibility.js +0 -171
  1674. package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
  1675. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +0 -40
  1676. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +0 -1
  1677. package/dist/cliproxy/auth/gemini-token-refresh.js +0 -371
  1678. package/dist/cliproxy/auth/gemini-token-refresh.js.map +0 -1
  1679. package/dist/cliproxy/auth-handler.d.ts +0 -31
  1680. package/dist/cliproxy/auth-handler.d.ts.map +0 -1
  1681. package/dist/cliproxy/auth-handler.js +0 -60
  1682. package/dist/cliproxy/auth-handler.js.map +0 -1
  1683. package/dist/cliproxy/auth-session-manager.d.ts +0 -51
  1684. package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
  1685. package/dist/cliproxy/auth-session-manager.js +0 -134
  1686. package/dist/cliproxy/auth-session-manager.js.map +0 -1
  1687. package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
  1688. package/dist/cliproxy/auth-token-manager.js +0 -184
  1689. package/dist/cliproxy/auth-token-manager.js.map +0 -1
  1690. package/dist/cliproxy/auth-utils.d.ts +0 -16
  1691. package/dist/cliproxy/auth-utils.d.ts.map +0 -1
  1692. package/dist/cliproxy/auth-utils.js +0 -33
  1693. package/dist/cliproxy/auth-utils.js.map +0 -1
  1694. package/dist/cliproxy/base-config-loader.d.ts +0 -42
  1695. package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
  1696. package/dist/cliproxy/base-config-loader.js +0 -123
  1697. package/dist/cliproxy/base-config-loader.js.map +0 -1
  1698. package/dist/cliproxy/catalog-cache.d.ts +0 -39
  1699. package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
  1700. package/dist/cliproxy/catalog-cache.js +0 -254
  1701. package/dist/cliproxy/catalog-cache.js.map +0 -1
  1702. package/dist/cliproxy/cliproxy-executor.d.ts +0 -16
  1703. package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
  1704. package/dist/cliproxy/cliproxy-executor.js +0 -27
  1705. package/dist/cliproxy/cliproxy-executor.js.map +0 -1
  1706. package/dist/cliproxy/codex-plan-compatibility.d.ts +0 -39
  1707. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
  1708. package/dist/cliproxy/codex-plan-compatibility.js +0 -134
  1709. package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
  1710. package/dist/cliproxy/codex-reasoning-proxy.d.ts +0 -61
  1711. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
  1712. package/dist/cliproxy/codex-reasoning-proxy.js +0 -495
  1713. package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
  1714. package/dist/cliproxy/composite-validator.d.ts.map +0 -1
  1715. package/dist/cliproxy/composite-validator.js +0 -94
  1716. package/dist/cliproxy/composite-validator.js.map +0 -1
  1717. package/dist/cliproxy/config-generator.d.ts +0 -15
  1718. package/dist/cliproxy/config-generator.d.ts.map +0 -1
  1719. package/dist/cliproxy/config-generator.js +0 -32
  1720. package/dist/cliproxy/config-generator.js.map +0 -1
  1721. package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
  1722. package/dist/cliproxy/device-code-handler.js.map +0 -1
  1723. package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
  1724. package/dist/cliproxy/gemini-cli-quota-normalizer.js +0 -122
  1725. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
  1726. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
  1727. package/dist/cliproxy/https-tunnel-proxy.js +0 -224
  1728. package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
  1729. package/dist/cliproxy/management-api-client.d.ts +0 -81
  1730. package/dist/cliproxy/management-api-client.d.ts.map +0 -1
  1731. package/dist/cliproxy/management-api-client.js +0 -381
  1732. package/dist/cliproxy/management-api-client.js.map +0 -1
  1733. package/dist/cliproxy/management-api-types.d.ts.map +0 -1
  1734. package/dist/cliproxy/management-api-types.js.map +0 -1
  1735. package/dist/cliproxy/model-config.d.ts +0 -31
  1736. package/dist/cliproxy/model-config.d.ts.map +0 -1
  1737. package/dist/cliproxy/model-config.js +0 -271
  1738. package/dist/cliproxy/model-config.js.map +0 -1
  1739. package/dist/cliproxy/model-id-normalizer.d.ts +0 -105
  1740. package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
  1741. package/dist/cliproxy/model-id-normalizer.js +0 -241
  1742. package/dist/cliproxy/model-id-normalizer.js.map +0 -1
  1743. package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
  1744. package/dist/cliproxy/openai-compat-manager.js +0 -191
  1745. package/dist/cliproxy/openai-compat-manager.js.map +0 -1
  1746. package/dist/cliproxy/platform-detector.d.ts +0 -99
  1747. package/dist/cliproxy/platform-detector.d.ts.map +0 -1
  1748. package/dist/cliproxy/platform-detector.js +0 -174
  1749. package/dist/cliproxy/platform-detector.js.map +0 -1
  1750. package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
  1751. package/dist/cliproxy/project-selection-handler.js.map +0 -1
  1752. package/dist/cliproxy/proxy-config-resolver.d.ts +0 -87
  1753. package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
  1754. package/dist/cliproxy/proxy-config-resolver.js +0 -254
  1755. package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
  1756. package/dist/cliproxy/proxy-detector.d.ts +0 -72
  1757. package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
  1758. package/dist/cliproxy/proxy-detector.js +0 -196
  1759. package/dist/cliproxy/proxy-detector.js.map +0 -1
  1760. package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
  1761. package/dist/cliproxy/proxy-target-resolver.js +0 -108
  1762. package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
  1763. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +0 -18
  1764. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
  1765. package/dist/cliproxy/quota-fetcher-claude-normalizer.js +0 -291
  1766. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
  1767. package/dist/cliproxy/quota-fetcher-claude.d.ts +0 -21
  1768. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
  1769. package/dist/cliproxy/quota-fetcher-claude.js +0 -306
  1770. package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
  1771. package/dist/cliproxy/quota-fetcher-codex.d.ts +0 -69
  1772. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
  1773. package/dist/cliproxy/quota-fetcher-codex.js +0 -599
  1774. package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
  1775. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
  1776. package/dist/cliproxy/quota-fetcher-gemini-cli.js +0 -661
  1777. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
  1778. package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
  1779. package/dist/cliproxy/quota-fetcher-ghcp.js +0 -207
  1780. package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
  1781. package/dist/cliproxy/quota-fetcher.d.ts +0 -107
  1782. package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
  1783. package/dist/cliproxy/quota-fetcher.js +0 -657
  1784. package/dist/cliproxy/quota-fetcher.js.map +0 -1
  1785. package/dist/cliproxy/quota-manager.d.ts +0 -105
  1786. package/dist/cliproxy/quota-manager.d.ts.map +0 -1
  1787. package/dist/cliproxy/quota-manager.js +0 -485
  1788. package/dist/cliproxy/quota-manager.js.map +0 -1
  1789. package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
  1790. package/dist/cliproxy/quota-response-cache.js.map +0 -1
  1791. package/dist/cliproxy/quota-types.d.ts +0 -245
  1792. package/dist/cliproxy/quota-types.d.ts.map +0 -1
  1793. package/dist/cliproxy/quota-types.js.map +0 -1
  1794. package/dist/cliproxy/remote-auth-fetcher.d.ts +0 -30
  1795. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
  1796. package/dist/cliproxy/remote-auth-fetcher.js +0 -177
  1797. package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
  1798. package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
  1799. package/dist/cliproxy/remote-proxy-client.js +0 -281
  1800. package/dist/cliproxy/remote-proxy-client.js.map +0 -1
  1801. package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
  1802. package/dist/cliproxy/remote-token-uploader.js +0 -178
  1803. package/dist/cliproxy/remote-token-uploader.js.map +0 -1
  1804. package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
  1805. package/dist/cliproxy/schema-sanitizer.js.map +0 -1
  1806. package/dist/cliproxy/startup-lock.d.ts.map +0 -1
  1807. package/dist/cliproxy/startup-lock.js +0 -216
  1808. package/dist/cliproxy/startup-lock.js.map +0 -1
  1809. package/dist/cliproxy/stats-fetcher.d.ts +0 -158
  1810. package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
  1811. package/dist/cliproxy/stats-fetcher.js +0 -246
  1812. package/dist/cliproxy/stats-fetcher.js.map +0 -1
  1813. package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
  1814. package/dist/cliproxy/stats-transformer.js +0 -152
  1815. package/dist/cliproxy/stats-transformer.js.map +0 -1
  1816. package/dist/cliproxy/tool-name-mapper.d.ts +0 -103
  1817. package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
  1818. package/dist/cliproxy/tool-name-mapper.js +0 -149
  1819. package/dist/cliproxy/tool-name-mapper.js.map +0 -1
  1820. package/dist/cliproxy/tool-name-sanitizer.d.ts +0 -65
  1821. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
  1822. package/dist/cliproxy/tool-name-sanitizer.js +0 -118
  1823. package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
  1824. package/dist/cliproxy/tool-sanitization-proxy.d.ts +0 -77
  1825. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
  1826. package/dist/cliproxy/tool-sanitization-proxy.js +0 -643
  1827. package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
  1828. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts +0 -9
  1829. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts.map +0 -1
  1830. package/dist/commands/cliproxy/resolve-lifecycle-port.js +0 -14
  1831. package/dist/commands/cliproxy/resolve-lifecycle-port.js.map +0 -1
  1832. package/dist/ui/assets/accounts-Cvu7FuLd.js +0 -1
  1833. package/dist/ui/assets/alert-dialog-DudTubF8.js +0 -1
  1834. package/dist/ui/assets/api-B_SQnrmH.js +0 -4
  1835. package/dist/ui/assets/auth-section-CHSm0Pb6.js +0 -1
  1836. package/dist/ui/assets/backups-section-wajt9dzX.js +0 -1
  1837. package/dist/ui/assets/channels-CHran6QE.js +0 -1
  1838. package/dist/ui/assets/charts-BBPXh0Ar.js +0 -64
  1839. package/dist/ui/assets/checkbox-DvR--eRI.js +0 -1
  1840. package/dist/ui/assets/claude-extension-EUfubgK-.js +0 -1
  1841. package/dist/ui/assets/cliproxy-CMcQRlMQ.js +0 -3
  1842. package/dist/ui/assets/cliproxy-ai-providers-CjKicdzR.js +0 -21
  1843. package/dist/ui/assets/cliproxy-control-panel-Dw9Q1OoX.js +0 -1
  1844. package/dist/ui/assets/code-highlight-BRUf_pqB.js +0 -3
  1845. package/dist/ui/assets/codex-D3mdE9ZJ.js +0 -27
  1846. package/dist/ui/assets/confirm-dialog-C5COcZYh.js +0 -1
  1847. package/dist/ui/assets/copilot-C_bkjtNE.js +0 -3
  1848. package/dist/ui/assets/cursor-CwFdpjUZ.js +0 -1
  1849. package/dist/ui/assets/droid-BRV6w--c.js +0 -2
  1850. package/dist/ui/assets/form-utils-Bcoyqxpq.js +0 -20
  1851. package/dist/ui/assets/globalenv-section-D3NP1kLr.js +0 -1
  1852. package/dist/ui/assets/health-D9LnJ4lp.js +0 -1
  1853. package/dist/ui/assets/icons-DhBsHU-U.js +0 -1
  1854. package/dist/ui/assets/index-A9ZK234F.js +0 -1
  1855. package/dist/ui/assets/index-B8R9vAE9.js +0 -1
  1856. package/dist/ui/assets/index-BCpf7__M.js +0 -1
  1857. package/dist/ui/assets/index-BYrPCHr6.js +0 -1
  1858. package/dist/ui/assets/index-Bb2CPQik.css +0 -1
  1859. package/dist/ui/assets/index-CKNvmYLR.js +0 -69
  1860. package/dist/ui/assets/index-DtD1WuHr.js +0 -1
  1861. package/dist/ui/assets/masked-input-CcbDAxug.js +0 -1
  1862. package/dist/ui/assets/notifications-B2HqRBj7.js +0 -1
  1863. package/dist/ui/assets/proxy-status-widget-DhIJtL48.js +0 -1
  1864. package/dist/ui/assets/radix-ui-Zb8sVEtn.js +0 -51
  1865. package/dist/ui/assets/raw-json-settings-editor-panel-BJetiLxV.js +0 -1
  1866. package/dist/ui/assets/react-vendor-CNOkPC89.js +0 -3
  1867. package/dist/ui/assets/searchable-select-DNmazsgI.js +0 -1
  1868. package/dist/ui/assets/separator-vdIGU0ab.js +0 -1
  1869. package/dist/ui/assets/shared-IFLNQqyt.js +0 -8
  1870. package/dist/ui/assets/table-C8wlucHc.js +0 -1
  1871. package/dist/ui/assets/tanstack-DWm6aJ-G.js +0 -4
  1872. package/dist/ui/assets/updates-BtnxoQcx.js +0 -1
  1873. package/scripts/github/build-ai-review-packet.mjs +0 -242
  1874. package/scripts/github/normalize-ai-review-output.mjs +0 -934
  1875. package/scripts/github/prepare-ai-review-scope.mjs +0 -324
  1876. package/scripts/github/run-ai-review-direct.mjs +0 -349
  1877. /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
  1878. /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
  1879. /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
  1880. /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
  1881. /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
  1882. /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
  1883. /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
  1884. /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
  1885. /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
  1886. /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
  1887. /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
  1888. /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
  1889. /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
  1890. /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
  1891. /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
  1892. /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
  1893. /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
  1894. /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
  1895. /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
  1896. /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
  1897. /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
  1898. /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
  1899. /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
  1900. /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
  1901. /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
  1902. /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
@@ -0,0 +1,51 @@
1
+ import{r as i,R as Gn,a as Bt,f as Oa,E as je}from"./react-vendor-Bjx91N7w.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};
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-DvRtHWGI.js";import{r as k}from"./react-vendor-Bjx91N7w.js";import{t as R}from"./notifications-B4_o8bcr.js";import{B as E,e as a,c as z,bc as S,a0 as B}from"./index-7dfuc3Cf.js";import{aX as L,L as m,av as P,n as T,R as F}from"./icons-bxdfpJdB.js";function H({title:c,pathLabel:x,loading:t,parseWarning:r,readWarning:i,value:s,dirty:n,readOnly:f=!1,saving:h,saveDisabled:j,onChange:p,onSave:u,onRefresh:b,onDiscard:l,language:v="json",exactText:N=!1,loadingLabel:g="Loading settings.json...",parseWarningLabel:w="Parse warning",ownershipNotice:d}){const[C,o]=k.useState(!1),y=async()=>{s&&(await navigator.clipboard.writeText(s),o(!0),R.success(B.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(L,{className:"h-4 w-4 text-primary"}),c,n&&e.jsx(E,{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:[h?e.jsx(m,{className:"h-4 w-4 mr-1 animate-spin"}):e.jsx(P,{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:y,disabled:!s,children:[e.jsx(T,{className:"h-4 w-4 mr-1"}),C?"Copied":"Copy"]}),e.jsx(a,{variant:"outline",size:"sm",onClick:b,"aria-label":"Refresh raw config",children:e.jsx(F,{className:z("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"}),g]}):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:[w,": ",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(S,{value:s,onChange:p,language:v,readonly:f,exactText:N,minHeight:"100%",heightMode:"fill-parent"})})})]})})]})}const A=H;export{H as R,A as a};
@@ -0,0 +1,3 @@
1
+ function at(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in e)){const u=Object.getOwnPropertyDescriptor(n,i);u&&Object.defineProperty(e,i,u.get?u:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Mr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ie(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ce={exports:{}},R={};var be;function ot(){if(be)return R;be=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),a=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),m=Symbol.iterator;function v(o){return o===null||typeof o!="object"?null:(o=m&&o[m]||o["@@iterator"],typeof o=="function"?o:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,y={};function g(o,p,_){this.props=o,this.context=p,this.refs=y,this.updater=_||w}g.prototype.isReactComponent={},g.prototype.setState=function(o,p){if(typeof o!="object"&&typeof o!="function"&&o!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,o,p,"setState")},g.prototype.forceUpdate=function(o){this.updater.enqueueForceUpdate(this,o,"forceUpdate")};function E(){}E.prototype=g.prototype;function P(o,p,_){this.props=o,this.context=p,this.refs=y,this.updater=_||w}var $=P.prototype=new E;$.constructor=P,S($,g.prototype),$.isPureReactComponent=!0;var A=Array.isArray;function U(){}var x={H:null,A:null,T:null,S:null},q=Object.prototype.hasOwnProperty;function F(o,p,_){var C=_.ref;return{$$typeof:e,type:o,key:p,ref:C!==void 0?C:null,props:_}}function I(o,p){return F(o.type,p,o.props)}function z(o){return typeof o=="object"&&o!==null&&o.$$typeof===e}function te(o){var p={"=":"=0",":":"=2"};return"$"+o.replace(/[=:]/g,function(_){return p[_]})}var Pe=/\/+/g;function se(o,p){return typeof o=="object"&&o!==null&&o.key!=null?te(""+o.key):p.toString(36)}function et(o){switch(o.status){case"fulfilled":return o.value;case"rejected":throw o.reason;default:switch(typeof o.status=="string"?o.then(U,U):(o.status="pending",o.then(function(p){o.status==="pending"&&(o.status="fulfilled",o.value=p)},function(p){o.status==="pending"&&(o.status="rejected",o.reason=p)})),o.status){case"fulfilled":return o.value;case"rejected":throw o.reason}}throw o}function K(o,p,_,C,b){var T=typeof o;(T==="undefined"||T==="boolean")&&(o=null);var L=!1;if(o===null)L=!0;else switch(T){case"bigint":case"string":case"number":L=!0;break;case"object":switch(o.$$typeof){case e:case t:L=!0;break;case d:return L=o._init,K(L(o._payload),p,_,C,b)}}if(L)return b=b(o),L=C===""?"."+se(o,0):C,A(b)?(_="",L!=null&&(_=L.replace(Pe,"$&/")+"/"),K(b,p,_,"",function(nt){return nt})):b!=null&&(z(b)&&(b=I(b,_+(b.key==null||o&&o.key===b.key?"":(""+b.key).replace(Pe,"$&/")+"/")+L)),p.push(b)),1;L=0;var j=C===""?".":C+":";if(A(o))for(var N=0;N<o.length;N++)C=o[N],T=j+se(C,N),L+=K(C,p,_,T,b);else if(N=v(o),typeof N=="function")for(o=N.call(o),N=0;!(C=o.next()).done;)C=C.value,T=j+se(C,N++),L+=K(C,p,_,T,b);else if(T==="object"){if(typeof o.then=="function")return K(et(o),p,_,C,b);throw p=String(o),Error("Objects are not valid as a React child (found: "+(p==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":p)+"). If you meant to render a collection of children, use an array instead.")}return L}function re(o,p,_){if(o==null)return o;var C=[],b=0;return K(o,C,"","",function(T){return p.call(_,T,b++)}),C}function tt(o){if(o._status===-1){var p=o._result;p=p(),p.then(function(_){(o._status===0||o._status===-1)&&(o._status=1,o._result=_)},function(_){(o._status===0||o._status===-1)&&(o._status=2,o._result=_)}),o._status===-1&&(o._status=0,o._result=p)}if(o._status===1)return o._result.default;throw o._result}var xe=typeof reportError=="function"?reportError:function(o){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var p=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof o=="object"&&o!==null&&typeof o.message=="string"?String(o.message):String(o),error:o});if(!window.dispatchEvent(p))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",o);return}console.error(o)},rt={map:re,forEach:function(o,p,_){re(o,function(){p.apply(this,arguments)},_)},count:function(o){var p=0;return re(o,function(){p++}),p},toArray:function(o){return re(o,function(p){return p})||[]},only:function(o){if(!z(o))throw Error("React.Children.only expected to receive a single React element child.");return o}};return R.Activity=h,R.Children=rt,R.Component=g,R.Fragment=r,R.Profiler=i,R.PureComponent=P,R.StrictMode=n,R.Suspense=l,R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=x,R.__COMPILER_RUNTIME={__proto__:null,c:function(o){return x.H.useMemoCache(o)}},R.cache=function(o){return function(){return o.apply(null,arguments)}},R.cacheSignal=function(){return null},R.cloneElement=function(o,p,_){if(o==null)throw Error("The argument must be a React element, but you passed "+o+".");var C=S({},o.props),b=o.key;if(p!=null)for(T in p.key!==void 0&&(b=""+p.key),p)!q.call(p,T)||T==="key"||T==="__self"||T==="__source"||T==="ref"&&p.ref===void 0||(C[T]=p[T]);var T=arguments.length-2;if(T===1)C.children=_;else if(1<T){for(var L=Array(T),j=0;j<T;j++)L[j]=arguments[j+2];C.children=L}return F(o.type,b,C)},R.createContext=function(o){return o={$$typeof:s,_currentValue:o,_currentValue2:o,_threadCount:0,Provider:null,Consumer:null},o.Provider=o,o.Consumer={$$typeof:u,_context:o},o},R.createElement=function(o,p,_){var C,b={},T=null;if(p!=null)for(C in p.key!==void 0&&(T=""+p.key),p)q.call(p,C)&&C!=="key"&&C!=="__self"&&C!=="__source"&&(b[C]=p[C]);var L=arguments.length-2;if(L===1)b.children=_;else if(1<L){for(var j=Array(L),N=0;N<L;N++)j[N]=arguments[N+2];b.children=j}if(o&&o.defaultProps)for(C in L=o.defaultProps,L)b[C]===void 0&&(b[C]=L[C]);return F(o,T,b)},R.createRef=function(){return{current:null}},R.forwardRef=function(o){return{$$typeof:f,render:o}},R.isValidElement=z,R.lazy=function(o){return{$$typeof:d,_payload:{_status:-1,_result:o},_init:tt}},R.memo=function(o,p){return{$$typeof:a,type:o,compare:p===void 0?null:p}},R.startTransition=function(o){var p=x.T,_={};x.T=_;try{var C=o(),b=x.S;b!==null&&b(_,C),typeof C=="object"&&C!==null&&typeof C.then=="function"&&C.then(U,xe)}catch(T){xe(T)}finally{p!==null&&_.types!==null&&(p.types=_.types),x.T=p}},R.unstable_useCacheRefresh=function(){return x.H.useCacheRefresh()},R.use=function(o){return x.H.use(o)},R.useActionState=function(o,p,_){return x.H.useActionState(o,p,_)},R.useCallback=function(o,p){return x.H.useCallback(o,p)},R.useContext=function(o){return x.H.useContext(o)},R.useDebugValue=function(){},R.useDeferredValue=function(o,p){return x.H.useDeferredValue(o,p)},R.useEffect=function(o,p){return x.H.useEffect(o,p)},R.useEffectEvent=function(o){return x.H.useEffectEvent(o)},R.useId=function(){return x.H.useId()},R.useImperativeHandle=function(o,p,_){return x.H.useImperativeHandle(o,p,_)},R.useInsertionEffect=function(o,p){return x.H.useInsertionEffect(o,p)},R.useLayoutEffect=function(o,p){return x.H.useLayoutEffect(o,p)},R.useMemo=function(o,p){return x.H.useMemo(o,p)},R.useOptimistic=function(o,p){return x.H.useOptimistic(o,p)},R.useReducer=function(o,p,_){return x.H.useReducer(o,p,_)},R.useRef=function(o){return x.H.useRef(o)},R.useState=function(o){return x.H.useState(o)},R.useSyncExternalStore=function(o,p,_){return x.H.useSyncExternalStore(o,p,_)},R.useTransition=function(){return x.H.useTransition()},R.version="19.2.1",R}var Te;function He(){return Te||(Te=1,ce.exports=ot()),ce.exports}var c=He();const it=Ie(c),Ir=at({__proto__:null,default:it},[c]);var fe={exports:{}},k={};var Le;function ut(){if(Le)return k;Le=1;var e=He();function t(l){var a="https://react.dev/errors/"+l;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)a+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+l+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var n={d:{f:r,r:function(){throw Error(t(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},i=Symbol.for("react.portal");function u(l,a,d){var h=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:i,key:h==null?null:""+h,children:l,containerInfo:a,implementation:d}}var s=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(l,a){if(l==="font")return"";if(typeof a=="string")return a==="use-credentials"?a:""}return k.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=n,k.createPortal=function(l,a){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!a||a.nodeType!==1&&a.nodeType!==9&&a.nodeType!==11)throw Error(t(299));return u(l,a,null,d)},k.flushSync=function(l){var a=s.T,d=n.p;try{if(s.T=null,n.p=2,l)return l()}finally{s.T=a,n.p=d,n.d.f()}},k.preconnect=function(l,a){typeof l=="string"&&(a?(a=a.crossOrigin,a=typeof a=="string"?a==="use-credentials"?a:"":void 0):a=null,n.d.C(l,a))},k.prefetchDNS=function(l){typeof l=="string"&&n.d.D(l)},k.preinit=function(l,a){if(typeof l=="string"&&a&&typeof a.as=="string"){var d=a.as,h=f(d,a.crossOrigin),m=typeof a.integrity=="string"?a.integrity:void 0,v=typeof a.fetchPriority=="string"?a.fetchPriority:void 0;d==="style"?n.d.S(l,typeof a.precedence=="string"?a.precedence:void 0,{crossOrigin:h,integrity:m,fetchPriority:v}):d==="script"&&n.d.X(l,{crossOrigin:h,integrity:m,fetchPriority:v,nonce:typeof a.nonce=="string"?a.nonce:void 0})}},k.preinitModule=function(l,a){if(typeof l=="string")if(typeof a=="object"&&a!==null){if(a.as==null||a.as==="script"){var d=f(a.as,a.crossOrigin);n.d.M(l,{crossOrigin:d,integrity:typeof a.integrity=="string"?a.integrity:void 0,nonce:typeof a.nonce=="string"?a.nonce:void 0})}}else a==null&&n.d.M(l)},k.preload=function(l,a){if(typeof l=="string"&&typeof a=="object"&&a!==null&&typeof a.as=="string"){var d=a.as,h=f(d,a.crossOrigin);n.d.L(l,d,{crossOrigin:h,integrity:typeof a.integrity=="string"?a.integrity:void 0,nonce:typeof a.nonce=="string"?a.nonce:void 0,type:typeof a.type=="string"?a.type:void 0,fetchPriority:typeof a.fetchPriority=="string"?a.fetchPriority:void 0,referrerPolicy:typeof a.referrerPolicy=="string"?a.referrerPolicy:void 0,imageSrcSet:typeof a.imageSrcSet=="string"?a.imageSrcSet:void 0,imageSizes:typeof a.imageSizes=="string"?a.imageSizes:void 0,media:typeof a.media=="string"?a.media:void 0})}},k.preloadModule=function(l,a){if(typeof l=="string")if(a){var d=f(a.as,a.crossOrigin);n.d.m(l,{as:typeof a.as=="string"&&a.as!=="script"?a.as:void 0,crossOrigin:d,integrity:typeof a.integrity=="string"?a.integrity:void 0})}else n.d.m(l)},k.requestFormReset=function(l){n.d.r(l)},k.unstable_batchedUpdates=function(l,a){return l(a)},k.useFormState=function(l,a,d){return s.H.useFormState(l,a,d)},k.useFormStatus=function(){return s.H.useHostTransitionStatus()},k.version="19.2.1",k}var Oe;function lt(){if(Oe)return fe.exports;Oe=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),fe.exports=ut(),fe.exports}var $e="popstate";function st(e={}){function t(n,i){let{pathname:u,search:s,hash:f}=n.location;return pe("",{pathname:u,search:s,hash:f},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function r(n,i){return typeof i=="string"?i:Q(i)}return ft(t,r,null,e)}function O(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function D(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function ct(){return Math.random().toString(36).substring(2,10)}function ke(e,t){return{usr:e.state,key:e.key,idx:t}}function pe(e,t,r=null,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?V(t):t,state:r,key:t&&t.key||n||ct()}}function Q({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function V(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function ft(e,t,r,n={}){let{window:i=document.defaultView,v5Compat:u=!1}=n,s=i.history,f="POP",l=null,a=d();a==null&&(a=0,s.replaceState({...s.state,idx:a},""));function d(){return(s.state||{idx:null}).idx}function h(){f="POP";let y=d(),g=y==null?null:y-a;a=y,l&&l({action:f,location:S.location,delta:g})}function m(y,g){f="PUSH";let E=pe(S.location,y,g);a=d()+1;let P=ke(E,a),$=S.createHref(E);try{s.pushState(P,"",$)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;i.location.assign($)}u&&l&&l({action:f,location:S.location,delta:1})}function v(y,g){f="REPLACE";let E=pe(S.location,y,g);a=d();let P=ke(E,a),$=S.createHref(E);s.replaceState(P,"",$),u&&l&&l({action:f,location:S.location,delta:0})}function w(y){return dt(y)}let S={get action(){return f},get location(){return e(i,s)},listen(y){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener($e,h),l=y,()=>{i.removeEventListener($e,h),l=null}},createHref(y){return t(i,y)},createURL:w,encodeLocation(y){let g=w(y);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:m,replace:v,go(y){return s.go(y)}};return S}function dt(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),O(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:Q(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}function Ue(e,t,r="/"){return ht(e,t,r,!1)}function ht(e,t,r,n){let i=typeof t=="string"?V(t):t,u=W(i.pathname||"/",r);if(u==null)return null;let s=Fe(e);pt(s);let f=null;for(let l=0;f==null&&l<s.length;++l){let a=Pt(u);f=_t(s[l],a,n)}return f}function Fe(e,t=[],r=[],n="",i=!1){let u=(s,f,l=i,a)=>{let d={relativePath:a===void 0?s.path||"":a,caseSensitive:s.caseSensitive===!0,childrenIndex:f,route:s};if(d.relativePath.startsWith("/")){if(!d.relativePath.startsWith(n)&&l)return;O(d.relativePath.startsWith(n),`Absolute route path "${d.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(n.length)}let h=B([n,d.relativePath]),m=r.concat(d);s.children&&s.children.length>0&&(O(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),Fe(s.children,t,m,h,l)),!(s.path==null&&!s.index)&&t.push({path:h,score:wt(h,s.index),routesMeta:m})};return e.forEach((s,f)=>{if(s.path===""||!s.path?.includes("?"))u(s,f);else for(let l of je(s.path))u(s,f,!0,l)}),t}function je(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,i=r.endsWith("?"),u=r.replace(/\?$/,"");if(n.length===0)return i?[u,""]:[u];let s=je(n.join("/")),f=[];return f.push(...s.map(l=>l===""?u:[u,l].join("/"))),i&&f.push(...s),f.map(l=>e.startsWith("/")&&l===""?"/":l)}function pt(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Ct(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var mt=/^:[\w-]+$/,yt=3,gt=2,vt=1,Et=10,Rt=-2,Ae=e=>e==="*";function wt(e,t){let r=e.split("/"),n=r.length;return r.some(Ae)&&(n+=Rt),t&&(n+=gt),r.filter(i=>!Ae(i)).reduce((i,u)=>i+(mt.test(u)?yt:u===""?vt:Et),n)}function Ct(e,t){return e.length===t.length&&e.slice(0,-1).every((n,i)=>n===t[i])?e[e.length-1]-t[t.length-1]:0}function _t(e,t,r=!1){let{routesMeta:n}=e,i={},u="/",s=[];for(let f=0;f<n.length;++f){let l=n[f],a=f===n.length-1,d=u==="/"?t:t.slice(u.length)||"/",h=ie({path:l.relativePath,caseSensitive:l.caseSensitive,end:a},d),m=l.route;if(!h&&a&&r&&!n[n.length-1].route.index&&(h=ie({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},d)),!h)return null;Object.assign(i,h.params),s.push({params:i,pathname:B([u,h.pathname]),pathnameBase:Ot(B([u,h.pathnameBase])),route:m}),h.pathnameBase!=="/"&&(u=B([u,h.pathnameBase]))}return s}function ie(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=St(e.path,e.caseSensitive,e.end),i=t.match(r);if(!i)return null;let u=i[0],s=u.replace(/(.)\/+$/,"$1"),f=i.slice(1);return{params:n.reduce((a,{paramName:d,isOptional:h},m)=>{if(d==="*"){let w=f[m]||"";s=u.slice(0,u.length-w.length).replace(/(.)\/+$/,"$1")}const v=f[m];return h&&!v?a[d]=void 0:a[d]=(v||"").replace(/%2F/g,"/"),a},{}),pathname:u,pathnameBase:s,pattern:e}}function St(e,t=!1,r=!0){D(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,f,l)=>(n.push({paramName:f,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),n]}function Pt(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return D(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function W(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}var xt=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bt=e=>xt.test(e);function Tt(e,t="/"){let{pathname:r,search:n="",hash:i=""}=typeof e=="string"?V(e):e,u;if(r)if(bt(r))u=r;else{if(r.includes("//")){let s=r;r=r.replace(/\/\/+/g,"/"),D(!1,`Pathnames cannot have embedded double slashes - normalizing ${s} -> ${r}`)}r.startsWith("/")?u=Ne(r.substring(1),"/"):u=Ne(r,t)}else u=t;return{pathname:u,search:$t(n),hash:kt(i)}}function Ne(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function de(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Lt(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function ge(e){let t=Lt(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function ve(e,t,r,n=!1){let i;typeof e=="string"?i=V(e):(i={...e},O(!i.pathname||!i.pathname.includes("?"),de("?","pathname","search",i)),O(!i.pathname||!i.pathname.includes("#"),de("#","pathname","hash",i)),O(!i.search||!i.search.includes("#"),de("#","search","hash",i)));let u=e===""||i.pathname==="",s=u?"/":i.pathname,f;if(s==null)f=r;else{let h=t.length-1;if(!n&&s.startsWith("..")){let m=s.split("/");for(;m[0]==="..";)m.shift(),h-=1;i.pathname=m.join("/")}f=h>=0?t[h]:"/"}let l=Tt(i,f),a=s&&s!=="/"&&s.endsWith("/"),d=(u||s===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(a||d)&&(l.pathname+="/"),l}var B=e=>e.join("/").replace(/\/\/+/g,"/"),Ot=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),$t=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,kt=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function At(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Nt(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Be=["POST","PUT","PATCH","DELETE"];new Set(Be);var Dt=["GET",...Be];new Set(Dt);var G=c.createContext(null);G.displayName="DataRouter";var ue=c.createContext(null);ue.displayName="DataRouterState";c.createContext(!1);var We=c.createContext({isTransitioning:!1});We.displayName="ViewTransition";var Mt=c.createContext(new Map);Mt.displayName="Fetchers";var It=c.createContext(null);It.displayName="Await";var M=c.createContext(null);M.displayName="Navigation";var Z=c.createContext(null);Z.displayName="Location";var H=c.createContext({outlet:null,matches:[],isDataRoute:!1});H.displayName="Route";var Ee=c.createContext(null);Ee.displayName="RouteError";function Ht(e,{relative:t}={}){O(J(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=c.useContext(M),{hash:i,pathname:u,search:s}=ee(e,{relative:t}),f=u;return r!=="/"&&(f=u==="/"?r:B([r,u])),n.createHref({pathname:f,search:s,hash:i})}function J(){return c.useContext(Z)!=null}function Y(){return O(J(),"useLocation() may be used only in the context of a <Router> component."),c.useContext(Z).location}var Ye="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ze(e){c.useContext(M).static||c.useLayoutEffect(e)}function Re(){let{isDataRoute:e}=c.useContext(H);return e?Zt():Ut()}function Ut(){O(J(),"useNavigate() may be used only in the context of a <Router> component.");let e=c.useContext(G),{basename:t,navigator:r}=c.useContext(M),{matches:n}=c.useContext(H),{pathname:i}=Y(),u=JSON.stringify(ge(n)),s=c.useRef(!1);return ze(()=>{s.current=!0}),c.useCallback((l,a={})=>{if(D(s.current,Ye),!s.current)return;if(typeof l=="number"){r.go(l);return}let d=ve(l,JSON.parse(u),i,a.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:B([t,d.pathname])),(a.replace?r.replace:r.push)(d,a.state,a)},[t,r,u,i,e])}var Ft=c.createContext(null);function jt(e){let t=c.useContext(H).outlet;return c.useMemo(()=>t&&c.createElement(Ft.Provider,{value:e},t),[t,e])}function ee(e,{relative:t}={}){let{matches:r}=c.useContext(H),{pathname:n}=Y(),i=JSON.stringify(ge(r));return c.useMemo(()=>ve(e,JSON.parse(i),n,t==="path"),[e,i,n,t])}function Bt(e,t){return qe(e,t)}function qe(e,t,r,n,i){O(J(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:u}=c.useContext(M),{matches:s}=c.useContext(H),f=s[s.length-1],l=f?f.params:{},a=f?f.pathname:"/",d=f?f.pathnameBase:"/",h=f&&f.route;{let E=h&&h.path||"";Ke(a,!h||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${a}" (under <Route path="${E}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
2
+
3
+ Please change the parent <Route path="${E}"> to <Route path="${E==="/"?"*":`${E}/*`}">.`)}let m=Y(),v;if(t){let E=typeof t=="string"?V(t):t;O(d==="/"||E.pathname?.startsWith(d),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${d}" but pathname "${E.pathname}" was given in the \`location\` prop.`),v=E}else v=m;let w=v.pathname||"/",S=w;if(d!=="/"){let E=d.replace(/^\//,"").split("/");S="/"+w.replace(/^\//,"").split("/").slice(E.length).join("/")}let y=Ue(e,{pathname:S});D(h||y!=null,`No routes matched location "${v.pathname}${v.search}${v.hash}" `),D(y==null||y[y.length-1].route.element!==void 0||y[y.length-1].route.Component!==void 0||y[y.length-1].route.lazy!==void 0,`Matched leaf route at location "${v.pathname}${v.search}${v.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let g=Kt(y&&y.map(E=>Object.assign({},E,{params:Object.assign({},l,E.params),pathname:B([d,u.encodeLocation?u.encodeLocation(E.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?d:B([d,u.encodeLocation?u.encodeLocation(E.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathnameBase])})),s,r,n,i);return t&&g?c.createElement(Z.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...v},navigationType:"POP"}},g):g}function Wt(){let e=Qt(),t=At(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:n},u={padding:"2px 4px",backgroundColor:n},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=c.createElement(c.Fragment,null,c.createElement("p",null,"💿 Hey developer 👋"),c.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",c.createElement("code",{style:u},"ErrorBoundary")," or"," ",c.createElement("code",{style:u},"errorElement")," prop on your route.")),c.createElement(c.Fragment,null,c.createElement("h2",null,"Unexpected Application Error!"),c.createElement("h3",{style:{fontStyle:"italic"}},t),r?c.createElement("pre",{style:i},r):null,s)}var Yt=c.createElement(Wt,null),zt=class extends c.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?c.createElement(H.Provider,{value:this.props.routeContext},c.createElement(Ee.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function qt({routeContext:e,match:t,children:r}){let n=c.useContext(G);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),c.createElement(H.Provider,{value:e},r)}function Kt(e,t=[],r=null,n=null,i=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let u=e,s=r?.errors;if(s!=null){let d=u.findIndex(h=>h.route.id&&s?.[h.route.id]!==void 0);O(d>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),u=u.slice(0,Math.min(u.length,d+1))}let f=!1,l=-1;if(r)for(let d=0;d<u.length;d++){let h=u[d];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(l=d),h.route.id){let{loaderData:m,errors:v}=r,w=h.route.loader&&!m.hasOwnProperty(h.route.id)&&(!v||v[h.route.id]===void 0);if(h.route.lazy||w){f=!0,l>=0?u=u.slice(0,l+1):u=[u[0]];break}}}let a=r&&n?(d,h)=>{n(d,{location:r.location,params:r.matches?.[0]?.params??{},unstable_pattern:Nt(r.matches),errorInfo:h})}:void 0;return u.reduceRight((d,h,m)=>{let v,w=!1,S=null,y=null;r&&(v=s&&h.route.id?s[h.route.id]:void 0,S=h.route.errorElement||Yt,f&&(l<0&&m===0?(Ke("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),w=!0,y=null):l===m&&(w=!0,y=h.route.hydrateFallbackElement||null)));let g=t.concat(u.slice(0,m+1)),E=()=>{let P;return v?P=S:w?P=y:h.route.Component?P=c.createElement(h.route.Component,null):h.route.element?P=h.route.element:P=d,c.createElement(qt,{match:h,routeContext:{outlet:d,matches:g,isDataRoute:r!=null},children:P})};return r&&(h.route.ErrorBoundary||h.route.errorElement||m===0)?c.createElement(zt,{location:r.location,revalidation:r.revalidation,component:S,error:v,children:E(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:a}):E()},null)}function we(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Vt(e){let t=c.useContext(G);return O(t,we(e)),t}function Gt(e){let t=c.useContext(ue);return O(t,we(e)),t}function Jt(e){let t=c.useContext(H);return O(t,we(e)),t}function Ce(e){let t=Jt(e),r=t.matches[t.matches.length-1];return O(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function Xt(){return Ce("useRouteId")}function Qt(){let e=c.useContext(Ee),t=Gt("useRouteError"),r=Ce("useRouteError");return e!==void 0?e:t.errors?.[r]}function Zt(){let{router:e}=Vt("useNavigate"),t=Ce("useNavigate"),r=c.useRef(!1);return ze(()=>{r.current=!0}),c.useCallback(async(i,u={})=>{D(r.current,Ye),r.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...u}))},[e,t])}var De={};function Ke(e,t,r){!t&&!De[e]&&(De[e]=!0,D(!1,r))}c.memo(er);function er({routes:e,future:t,state:r,unstable_onError:n}){return qe(e,void 0,r,n,t)}function Hr({to:e,replace:t,state:r,relative:n}){O(J(),"<Navigate> may be used only in the context of a <Router> component.");let{static:i}=c.useContext(M);D(!i,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:u}=c.useContext(H),{pathname:s}=Y(),f=Re(),l=ve(e,ge(u),s,n==="path"),a=JSON.stringify(l);return c.useEffect(()=>{f(JSON.parse(a),{replace:t,state:r,relative:n})},[f,a,n,t,r]),null}function Ur(e){return jt(e.context)}function tr(e){O(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rr({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:i,static:u=!1,unstable_useTransitions:s}){O(!J(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let f=e.replace(/^\/*/,"/"),l=c.useMemo(()=>({basename:f,navigator:i,static:u,unstable_useTransitions:s,future:{}}),[f,i,u,s]);typeof r=="string"&&(r=V(r));let{pathname:a="/",search:d="",hash:h="",state:m=null,key:v="default"}=r,w=c.useMemo(()=>{let S=W(a,f);return S==null?null:{location:{pathname:S,search:d,hash:h,state:m,key:v},navigationType:n}},[f,a,d,h,m,v,n]);return D(w!=null,`<Router basename="${f}"> is not able to match the URL "${a}${d}${h}" because it does not start with the basename, so the <Router> won't render anything.`),w==null?null:c.createElement(M.Provider,{value:l},c.createElement(Z.Provider,{children:t,value:w}))}function Fr({children:e,location:t}){return Bt(me(e),t)}function me(e,t=[]){let r=[];return c.Children.forEach(e,(n,i)=>{if(!c.isValidElement(n))return;let u=[...t,i];if(n.type===c.Fragment){r.push.apply(r,me(n.props.children,u));return}O(n.type===tr,`[${typeof n.type=="string"?n.type:n.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),O(!n.props.index||!n.props.children,"An index route cannot have child routes.");let s={id:n.props.id||u.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,middleware:n.props.middleware,loader:n.props.loader,action:n.props.action,hydrateFallbackElement:n.props.hydrateFallbackElement,HydrateFallback:n.props.HydrateFallback,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.hasErrorBoundary===!0||n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(s.children=me(n.props.children,u)),r.push(s)}),r}var ae="get",oe="application/x-www-form-urlencoded";function le(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function nr(e){return le(e)&&e.tagName.toLowerCase()==="button"}function ar(e){return le(e)&&e.tagName.toLowerCase()==="form"}function or(e){return le(e)&&e.tagName.toLowerCase()==="input"}function ir(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ur(e,t){return e.button===0&&(!t||t==="_self")&&!ir(e)}function ye(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(i=>[r,i]):[[r,n]])},[]))}function lr(e,t){let r=ye(e);return t&&t.forEach((n,i)=>{r.has(i)||t.getAll(i).forEach(u=>{r.append(i,u)})}),r}var ne=null;function sr(){if(ne===null)try{new FormData(document.createElement("form"),0),ne=!1}catch{ne=!0}return ne}var cr=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function he(e){return e!=null&&!cr.has(e)?(D(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${oe}"`),null):e}function fr(e,t){let r,n,i,u,s;if(ar(e)){let f=e.getAttribute("action");n=f?W(f,t):null,r=e.getAttribute("method")||ae,i=he(e.getAttribute("enctype"))||oe,u=new FormData(e)}else if(nr(e)||or(e)&&(e.type==="submit"||e.type==="image")){let f=e.form;if(f==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||f.getAttribute("action");if(n=l?W(l,t):null,r=e.getAttribute("formmethod")||f.getAttribute("method")||ae,i=he(e.getAttribute("formenctype"))||he(f.getAttribute("enctype"))||oe,u=new FormData(f,e),!sr()){let{name:a,type:d,value:h}=e;if(d==="image"){let m=a?`${a}.`:"";u.append(`${m}x`,"0"),u.append(`${m}y`,"0")}else a&&u.append(a,h)}}else{if(le(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=ae,n=null,i=oe,s=e}return u&&i==="text/plain"&&(s=u,u=void 0),{action:n,method:r.toLowerCase(),encType:i,formData:u,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function _e(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function dr(e,t,r){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n.pathname==="/"?n.pathname=`_root.${r}`:t&&W(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${r}`,n}async function hr(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function pr(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function mr(e,t,r){let n=await Promise.all(e.map(async i=>{let u=t.routes[i.route.id];if(u){let s=await hr(u,r);return s.links?s.links():[]}return[]}));return Er(n.flat(1).filter(pr).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function Me(e,t,r,n,i,u){let s=(l,a)=>r[a]?l.route.id!==r[a].route.id:!0,f=(l,a)=>r[a].pathname!==l.pathname||r[a].route.path?.endsWith("*")&&r[a].params["*"]!==l.params["*"];return u==="assets"?t.filter((l,a)=>s(l,a)||f(l,a)):u==="data"?t.filter((l,a)=>{let d=n.routes[l.route.id];if(!d||!d.hasLoader)return!1;if(s(l,a)||f(l,a))return!0;if(l.route.shouldRevalidate){let h=l.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if(typeof h=="boolean")return h}return!0}):[]}function yr(e,t,{includeHydrateFallback:r}={}){return gr(e.map(n=>{let i=t.routes[n.route.id];if(!i)return[];let u=[i.module];return i.clientActionModule&&(u=u.concat(i.clientActionModule)),i.clientLoaderModule&&(u=u.concat(i.clientLoaderModule)),r&&i.hydrateFallbackModule&&(u=u.concat(i.hydrateFallbackModule)),i.imports&&(u=u.concat(i.imports)),u}).flat(1))}function gr(e){return[...new Set(e)]}function vr(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function Er(e,t){let r=new Set;return new Set(t),e.reduce((n,i)=>{let u=JSON.stringify(vr(i));return r.has(u)||(r.add(u),n.push({key:u,link:i})),n},[])}function Ve(){let e=c.useContext(G);return _e(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Rr(){let e=c.useContext(ue);return _e(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Se=c.createContext(void 0);Se.displayName="FrameworkContext";function Ge(){let e=c.useContext(Se);return _e(e,"You must render this element inside a <HydratedRouter> element"),e}function wr(e,t){let r=c.useContext(Se),[n,i]=c.useState(!1),[u,s]=c.useState(!1),{onFocus:f,onBlur:l,onMouseEnter:a,onMouseLeave:d,onTouchStart:h}=t,m=c.useRef(null);c.useEffect(()=>{if(e==="render"&&s(!0),e==="viewport"){let S=g=>{g.forEach(E=>{s(E.isIntersecting)})},y=new IntersectionObserver(S,{threshold:.5});return m.current&&y.observe(m.current),()=>{y.disconnect()}}},[e]),c.useEffect(()=>{if(n){let S=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(S)}}},[n]);let v=()=>{i(!0)},w=()=>{i(!1),s(!1)};return r?e!=="intent"?[u,m,{}]:[u,m,{onFocus:X(f,v),onBlur:X(l,w),onMouseEnter:X(a,v),onMouseLeave:X(d,w),onTouchStart:X(h,v)}]:[!1,m,{}]}function X(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Cr({page:e,...t}){let{router:r}=Ve(),n=c.useMemo(()=>Ue(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?c.createElement(Sr,{page:e,matches:n,...t}):null}function _r(e){let{manifest:t,routeModules:r}=Ge(),[n,i]=c.useState([]);return c.useEffect(()=>{let u=!1;return mr(e,t,r).then(s=>{u||i(s)}),()=>{u=!0}},[e,t,r]),n}function Sr({page:e,matches:t,...r}){let n=Y(),{manifest:i,routeModules:u}=Ge(),{basename:s}=Ve(),{loaderData:f,matches:l}=Rr(),a=c.useMemo(()=>Me(e,t,l,i,n,"data"),[e,t,l,i,n]),d=c.useMemo(()=>Me(e,t,l,i,n,"assets"),[e,t,l,i,n]),h=c.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let w=new Set,S=!1;if(t.forEach(g=>{let E=i.routes[g.route.id];!E||!E.hasLoader||(!a.some(P=>P.route.id===g.route.id)&&g.route.id in f&&u[g.route.id]?.shouldRevalidate||E.hasClientLoader?S=!0:w.add(g.route.id))}),w.size===0)return[];let y=dr(e,s,"data");return S&&w.size>0&&y.searchParams.set("_routes",t.filter(g=>w.has(g.route.id)).map(g=>g.route.id).join(",")),[y.pathname+y.search]},[s,f,n,i,a,t,e,u]),m=c.useMemo(()=>yr(d,i),[d,i]),v=_r(d);return c.createElement(c.Fragment,null,h.map(w=>c.createElement("link",{key:w,rel:"prefetch",as:"fetch",href:w,...r})),m.map(w=>c.createElement("link",{key:w,rel:"modulepreload",href:w,...r})),v.map(({key:w,link:S})=>c.createElement("link",{key:w,nonce:r.nonce,...S})))}function Pr(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Je=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Je&&(window.__reactRouterVersion="7.10.1")}catch{}function jr({basename:e,children:t,unstable_useTransitions:r,window:n}){let i=c.useRef();i.current==null&&(i.current=st({window:n,v5Compat:!0}));let u=i.current,[s,f]=c.useState({action:u.action,location:u.location}),l=c.useCallback(a=>{r===!1?f(a):c.startTransition(()=>f(a))},[r]);return c.useLayoutEffect(()=>u.listen(l),[u,l]),c.createElement(rr,{basename:e,children:t,location:s.location,navigationType:s.action,navigator:u,unstable_useTransitions:r===!0})}var Xe=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Qe=c.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:i,reloadDocument:u,replace:s,state:f,target:l,to:a,preventScrollReset:d,viewTransition:h,...m},v){let{basename:w,unstable_useTransitions:S}=c.useContext(M),y=typeof a=="string"&&Xe.test(a),g,E=!1;if(typeof a=="string"&&y&&(g=a,Je))try{let I=new URL(window.location.href),z=a.startsWith("//")?new URL(I.protocol+a):new URL(a),te=W(z.pathname,w);z.origin===I.origin&&te!=null?a=te+z.search+z.hash:E=!0}catch{D(!1,`<Link to="${a}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let P=Ht(a,{relative:i}),[$,A,U]=wr(n,m),x=Lr(a,{replace:s,state:f,target:l,preventScrollReset:d,relative:i,viewTransition:h,unstable_useTransitions:S});function q(I){t&&t(I),I.defaultPrevented||x(I)}let F=c.createElement("a",{...m,...U,href:g||P,onClick:E||u?t:q,ref:Pr(v,A),target:l,"data-discover":!y&&r==="render"?"true":void 0});return $&&!y?c.createElement(c.Fragment,null,F,c.createElement(Cr,{page:P})):F});Qe.displayName="Link";var xr=c.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:i=!1,style:u,to:s,viewTransition:f,children:l,...a},d){let h=ee(s,{relative:a.relative}),m=Y(),v=c.useContext(ue),{navigator:w,basename:S}=c.useContext(M),y=v!=null&&Nr(h)&&f===!0,g=w.encodeLocation?w.encodeLocation(h).pathname:h.pathname,E=m.pathname,P=v&&v.navigation&&v.navigation.location?v.navigation.location.pathname:null;r||(E=E.toLowerCase(),P=P?P.toLowerCase():null,g=g.toLowerCase()),P&&S&&(P=W(P,S)||P);const $=g!=="/"&&g.endsWith("/")?g.length-1:g.length;let A=E===g||!i&&E.startsWith(g)&&E.charAt($)==="/",U=P!=null&&(P===g||!i&&P.startsWith(g)&&P.charAt(g.length)==="/"),x={isActive:A,isPending:U,isTransitioning:y},q=A?t:void 0,F;typeof n=="function"?F=n(x):F=[n,A?"active":null,U?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let I=typeof u=="function"?u(x):u;return c.createElement(Qe,{...a,"aria-current":q,className:F,ref:d,style:I,to:s,viewTransition:f},typeof l=="function"?l(x):l)});xr.displayName="NavLink";var br=c.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:i,state:u,method:s=ae,action:f,onSubmit:l,relative:a,preventScrollReset:d,viewTransition:h,...m},v)=>{let{unstable_useTransitions:w}=c.useContext(M),S=kr(),y=Ar(f,{relative:a}),g=s.toLowerCase()==="get"?"get":"post",E=typeof f=="string"&&Xe.test(f),P=$=>{if(l&&l($),$.defaultPrevented)return;$.preventDefault();let A=$.nativeEvent.submitter,U=A?.getAttribute("formmethod")||s,x=()=>S(A||$.currentTarget,{fetcherKey:t,method:U,navigate:r,replace:i,state:u,relative:a,preventScrollReset:d,viewTransition:h});w&&r!==!1?c.startTransition(()=>x()):x()};return c.createElement("form",{ref:v,method:g,action:y,onSubmit:n?l:P,...m,"data-discover":!E&&e==="render"?"true":void 0})});br.displayName="Form";function Tr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ze(e){let t=c.useContext(G);return O(t,Tr(e)),t}function Lr(e,{target:t,replace:r,state:n,preventScrollReset:i,relative:u,viewTransition:s,unstable_useTransitions:f}={}){let l=Re(),a=Y(),d=ee(e,{relative:u});return c.useCallback(h=>{if(ur(h,t)){h.preventDefault();let m=r!==void 0?r:Q(a)===Q(d),v=()=>l(e,{replace:m,state:n,preventScrollReset:i,relative:u,viewTransition:s});f?c.startTransition(()=>v()):v()}},[a,l,d,r,n,t,e,i,u,s,f])}function Br(e){D(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=c.useRef(ye(e)),r=c.useRef(!1),n=Y(),i=c.useMemo(()=>lr(n.search,r.current?null:t.current),[n.search]),u=Re(),s=c.useCallback((f,l)=>{const a=ye(typeof f=="function"?f(new URLSearchParams(i)):f);r.current=!0,u("?"+a,l)},[u,i]);return[i,s]}var Or=0,$r=()=>`__${String(++Or)}__`;function kr(){let{router:e}=Ze("useSubmit"),{basename:t}=c.useContext(M),r=Xt(),n=e.fetch,i=e.navigate;return c.useCallback(async(u,s={})=>{let{action:f,method:l,encType:a,formData:d,body:h}=fr(u,t);if(s.navigate===!1){let m=s.fetcherKey||$r();await n(m,r,s.action||f,{preventScrollReset:s.preventScrollReset,formData:d,body:h,formMethod:s.method||l,formEncType:s.encType||a,flushSync:s.flushSync})}else await i(s.action||f,{preventScrollReset:s.preventScrollReset,formData:d,body:h,formMethod:s.method||l,formEncType:s.encType||a,replace:s.replace,state:s.state,fromRouteId:r,flushSync:s.flushSync,viewTransition:s.viewTransition})},[n,i,t,r])}function Ar(e,{relative:t}={}){let{basename:r}=c.useContext(M),n=c.useContext(H);O(n,"useFormAction must be used inside a RouteContext");let[i]=n.matches.slice(-1),u={...ee(e||".",{relative:t})},s=Y();if(e==null){u.search=s.search;let f=new URLSearchParams(u.search),l=f.getAll("index");if(l.some(d=>d==="")){f.delete("index"),l.filter(h=>h).forEach(h=>f.append("index",h));let d=f.toString();u.search=d?`?${d}`:""}}return(!e||e===".")&&i.route.index&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(u.pathname=u.pathname==="/"?r:B([r,u.pathname])),Q(u)}function Nr(e,{relative:t}={}){let r=c.useContext(We);O(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=Ze("useViewTransitionState"),i=ee(e,{relative:t});if(!r.isTransitioning)return!1;let u=W(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=W(r.nextLocation.pathname,n)||r.nextLocation.pathname;return ie(i.pathname,s)!=null||ie(i.pathname,u)!=null}var Dr=lt();const Wr=Ie(Dr);export{jr as B,it as E,Qe as L,Hr as N,Ur as O,Ir as R,Dr as a,He as b,Mr as c,lt as d,Re as e,Wr as f,Ie as g,Br as h,Fr as i,tr as j,c as r,Y as u};
@@ -0,0 +1 @@
1
+ import{j as n}from"./radix-ui-DvRtHWGI.js";import{r as a}from"./react-vendor-Bjx91N7w.js";import{f as P,g as Q,e as $,c as w,h as B,I as G}from"./index-7dfuc3Cf.js";import{aR as H,aw as L,l as V}from"./icons-bxdfpJdB.js";function S(o){return o.trim().toLowerCase()}function M(o,h){return`${o}-option-${h.replace(/[^a-z0-9_-]+/gi,"-")}`}function Z({value:o,onChange:h,options:f,groups:g,placeholder:j,searchPlaceholder:k,emptyText:E,disabled:F,className:R,triggerClassName:q,contentClassName:K}){const[l,T]=a.useState(!1),[y,A]=a.useState(""),[i,c]=a.useState(),m=a.useId(),I=a.useRef(null),N=a.useRef({}),O=a.useMemo(()=>f.find(e=>e.value===o),[f,o]),d=a.useMemo(()=>{const e=S(y);return e?f.filter(t=>[t.searchText,...t.keywords??[]].some(u=>S(u).includes(e))):f},[f,y]),z=a.useMemo(()=>{const e=new Map((g??[]).map(r=>[r.key,r])),t=d.filter(r=>!r.groupKey||!e.has(r.groupKey)),u=(g??[]).map(r=>({...r,options:d.filter(x=>x.groupKey===r.key)})).filter(r=>r.options.length>0);return t.length===0?u:[{key:"__default",options:t},...u]},[d,g]),s=a.useMemo(()=>d.filter(e=>!e.disabled),[d]),D=O?.triggerContent??O?.itemContent,v=e=>{T(e),e||(A(""),c(void 0))},b=()=>I.current?.focus();a.useEffect(()=>{if(l){if(s.length===0){c(void 0);return}c(e=>e&&s.some(t=>t.value===e)?e:s.find(t=>t.value===o)?.value??s[0]?.value)}},[s,l,o]),a.useEffect(()=>{!l||!i||N.current[i]?.scrollIntoView({block:"nearest"})},[i,l]);const p=e=>{if(s.length===0)return;if(e==="first"){c(s[0]?.value);return}if(e==="last"){c(s.at(-1)?.value);return}const t=s.findIndex(_=>_.value===i),u=e==="next"?-1:s.length,r=t>=0?t:u,x=e==="next"?Math.min(r+1,s.length-1):Math.max(r-1,0);c(s[x]?.value)},C=e=>{h(e),v(!1)},U=()=>{if(!i)return;const e=s.find(t=>t.value===i);e&&C(e.value)};return n.jsxs(P,{open:l,onOpenChange:v,children:[n.jsx(Q,{asChild:!0,children:n.jsxs($,{type:"button",variant:"outline","aria-expanded":l,"aria-controls":l?m:void 0,"aria-haspopup":"dialog",disabled:F,onKeyDown:e=>{if(e.key!=="ArrowDown"&&e.key!=="ArrowUp")return;e.preventDefault(),v(!0);const t=()=>{b(),p(e.key==="ArrowDown"?"first":"last")};if(typeof requestAnimationFrame=="function"){requestAnimationFrame(t);return}setTimeout(t,0)},className:w("w-full justify-between font-normal",R,q,!D&&"text-muted-foreground"),children:[n.jsx("div",{className:"min-w-0 flex-1 text-left",children:D??n.jsx("span",{children:j})}),n.jsx(H,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),n.jsxs(B,{align:"start",className:w("w-[var(--radix-popover-trigger-width)] p-0",K),onOpenAutoFocus:e=>{if(e.preventDefault(),typeof requestAnimationFrame=="function"){requestAnimationFrame(b);return}setTimeout(b,0)},children:[n.jsx("div",{className:"border-b p-2",children:n.jsxs("div",{className:"relative",children:[n.jsx(L,{className:"text-muted-foreground absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2"}),n.jsx(G,{ref:I,value:y,onChange:e=>A(e.target.value),role:"combobox","aria-label":k,"aria-autocomplete":"list","aria-expanded":l,"aria-controls":m,"aria-activedescendant":i?M(m,i):void 0,onKeyDown:e=>{if(e.key==="ArrowDown"){e.preventDefault(),p("next");return}if(e.key==="ArrowUp"){e.preventDefault(),p("previous");return}if(e.key==="Home"){e.preventDefault(),p("first");return}if(e.key==="End"){e.preventDefault(),p("last");return}if(e.key==="Enter"){e.preventDefault(),U();return}e.key==="Escape"&&(e.preventDefault(),v(!1))},placeholder:k,className:"pl-8"})]})}),n.jsx("div",{"data-slot":"searchable-select-scroll-container","data-testid":"searchable-select-scroll-container",className:"max-h-72 overflow-y-auto overscroll-contain",children:d.length===0?n.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:E}):n.jsx("div",{id:m,role:"listbox","aria-label":j,className:"p-1",children:z.map(e=>n.jsxs("div",{children:[e.label&&n.jsx("div",{className:"px-2 py-1.5 text-xs font-medium text-muted-foreground",children:e.label}),e.options.map(t=>{const u=t.value===i,r=t.value===o;return n.jsxs("button",{id:M(m,t.value),type:"button",role:"option","aria-selected":r,disabled:t.disabled,tabIndex:-1,ref:x=>{N.current[t.value]=x},onMouseMove:()=>{t.disabled||c(t.value)},onFocus:()=>{t.disabled||c(t.value)},onClick:()=>C(t.value),className:w("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none","focus-visible:ring-ring focus-visible:ring-1",u&&"bg-accent text-accent-foreground",r&&"bg-accent text-accent-foreground",t.disabled&&"pointer-events-none opacity-50"),children:[n.jsx("div",{className:"min-w-0 flex-1",children:t.itemContent}),r&&n.jsx(V,{className:"h-4 w-4 shrink-0"})]},t.value)})]},e.key))})})]})]})}export{Z as S};
@@ -0,0 +1 @@
1
+ import{j as i,a1 as n}from"./radix-ui-DvRtHWGI.js";import"./react-vendor-Bjx91N7w.js";import{c as e}from"./index-7dfuc3Cf.js";function m({className:t,orientation:a="horizontal",decorative:o=!0,...r}){return i.jsx(n,{"data-slot":"separator",decorative:o,orientation:a,className:e("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...r})}export{m as S};