@sureshdsk/devflow-mcp 3.0.0 → 3.0.1

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 (504) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +4 -4
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  6. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  16. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.rsc +14 -13
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -13
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -4
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/api/projects/[id]/route.js +2 -2
  28. package/.next/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
  30. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js +2 -2
  32. package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js +2 -2
  34. package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js +2 -2
  36. package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/specs/[name]/route.js +2 -2
  38. package/.next/standalone/.next/server/app/api/specs/[name]/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/specs/route.js +2 -2
  40. package/.next/standalone/.next/server/app/api/specs/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/tasks/[id]/route.js +2 -2
  42. package/.next/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/tasks/route.js +2 -2
  44. package/.next/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/index.html +1 -1
  46. package/.next/standalone/.next/server/app/index.rsc +15 -14
  47. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  48. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -14
  49. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  50. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -4
  51. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  52. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  53. package/.next/standalone/.next/server/app/page.js +2 -2
  54. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/specs/[name]/page/build-manifest.json +2 -2
  57. package/.next/standalone/.next/server/app/specs/[name]/page.js +2 -2
  58. package/.next/standalone/.next/server/app/specs/[name]/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/specs/[name]/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0be0eb8b._.js +3 -0
  61. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a9d478ee._.js → [root-of-the-server]__160c54ca._.js} +2 -2
  62. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17ac51e3._.js +3 -0
  63. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bb083e9._.js +3 -0
  64. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dc1e944._.js +3 -0
  65. package/.next/standalone/.next/server/chunks/[root-of-the-server]__22ecfa2c._.js +3 -0
  66. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__13a93eb6._.js → [root-of-the-server]__64710c0d._.js} +2 -2
  67. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2b7e5f2._.js +3 -0
  68. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf302bda._.js +3 -0
  69. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d85482cd._.js +3 -0
  70. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dfa21757._.js +3 -0
  71. package/.next/standalone/.next/server/chunks/_3f452afe._.js +2 -2
  72. package/.next/standalone/.next/server/chunks/src_db_index_ts_a71f50f0._.js +3 -0
  73. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__023e2c69._.js +3 -0
  74. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0a1a1435._.js +3 -0
  75. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c49a387._.js +3 -0
  76. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1be1fc5f._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3a2f2efb._.js +3 -0
  78. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4693399c._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__937c9212._.js → [root-of-the-server]__72a14301._.js} +2 -2
  80. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8064ca06._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8b786d48._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8c052461._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8d306066._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9532fd59._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a119dd75._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7fb6ef14._.js → [root-of-the-server]__a57b312b._.js} +2 -2
  87. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a80bd0ea._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__abe095b3._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ad3bd783._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1e05fe0e._.js → [root-of-the-server]__ae9f05d6._.js} +2 -2
  91. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8781469._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8a25070._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e8c1e595._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/ssr/_0ff3de19._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/node_modules_01a5cd4b._.js +3 -0
  96. package/.next/standalone/.next/server/chunks/ssr/node_modules_05c6819f._.js +31 -0
  97. package/.next/standalone/.next/server/chunks/ssr/node_modules_06c2c30a._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/ssr/node_modules_09efe605._.js +3 -0
  99. package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_ef601841._.js → node_modules_0a439e3b._.js} +2 -2
  100. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3507b41a._.js → node_modules_0e73ad6c._.js} +3 -3
  101. package/.next/standalone/.next/server/chunks/ssr/node_modules_0e7ff06d._.js +3 -0
  102. package/.next/standalone/.next/server/chunks/ssr/node_modules_0f73e25c._.js +3 -0
  103. package/.next/standalone/.next/server/chunks/ssr/node_modules_14cf9cea._.js +3 -0
  104. package/.next/standalone/.next/server/chunks/ssr/node_modules_19801f01._.js +3 -0
  105. package/.next/standalone/.next/server/chunks/ssr/node_modules_2235b8cf._.js +17 -0
  106. package/.next/standalone/.next/server/chunks/ssr/node_modules_23096c6d._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/ssr/node_modules_23db4cf7._.js +17 -0
  108. package/.next/standalone/.next/server/chunks/ssr/node_modules_24381e95._.js +3 -0
  109. package/.next/standalone/.next/server/chunks/ssr/node_modules_24ca0eb6._.js +17 -0
  110. package/.next/standalone/.next/server/chunks/ssr/node_modules_27525793._.js +17 -0
  111. package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_4cfa6360._.js → node_modules_27c20382._.js} +2 -2
  112. package/.next/standalone/.next/server/chunks/ssr/node_modules_2c901b92._.js +3 -0
  113. package/.next/standalone/.next/server/chunks/ssr/node_modules_33b818b7._.js +45 -0
  114. package/.next/standalone/.next/server/chunks/ssr/node_modules_345d7791._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/node_modules_36185c24._.js +45 -0
  116. package/.next/standalone/.next/server/chunks/ssr/node_modules_3ac7ce09._.js +3 -0
  117. package/.next/standalone/.next/server/chunks/ssr/node_modules_41b77cc7._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/{node_modules_ed317ff6._.js → node_modules_42acd8db._.js} +2 -2
  119. package/.next/standalone/.next/server/chunks/ssr/node_modules_434aa5ec._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/ssr/node_modules_54a9e72d._.js +17 -0
  121. package/.next/standalone/.next/server/chunks/ssr/node_modules_54f1273a._.js +26 -0
  122. package/.next/standalone/.next/server/chunks/ssr/node_modules_58d64491._.js +3 -0
  123. package/.next/standalone/.next/server/chunks/ssr/node_modules_5e012e3d._.js +3 -0
  124. package/.next/standalone/.next/server/chunks/ssr/node_modules_5ea9e4cf._.js +3 -0
  125. package/.next/standalone/.next/server/chunks/ssr/node_modules_5ecf8270._.js +26 -0
  126. package/.next/standalone/.next/server/chunks/ssr/node_modules_611c99b5._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/{node_modules_d3-scale_src_e02ef77f._.js → node_modules_6629853d._.js} +2 -2
  128. package/.next/standalone/.next/server/chunks/ssr/node_modules_6fe2661c._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ssr/node_modules_7fe65a84._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/ssr/node_modules_860f971a._.js +3 -0
  131. package/.next/standalone/.next/server/chunks/ssr/node_modules_882f3743._.js +3 -0
  132. package/.next/standalone/.next/server/chunks/ssr/node_modules_8e047938._.js +3 -0
  133. package/.next/standalone/.next/server/chunks/ssr/node_modules_9268cdc4._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/node_modules_942541c9._.js +3 -0
  135. package/.next/standalone/.next/server/chunks/ssr/node_modules_9d52c0d6._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/node_modules_@tanstack_query-core_build_modern_21ece5ea._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/ssr/node_modules_ae6841d2._.js +17 -0
  138. package/.next/standalone/.next/server/chunks/ssr/node_modules_ba280bb0._.js +31 -0
  139. package/.next/standalone/.next/server/chunks/ssr/node_modules_bffdb8ec._.js +3 -0
  140. package/.next/standalone/.next/server/chunks/ssr/node_modules_c00f1821._.js +17 -0
  141. package/.next/standalone/.next/server/chunks/ssr/node_modules_c142ba86._.js +3 -0
  142. package/.next/standalone/.next/server/chunks/ssr/node_modules_d1a47cde._.js +17 -0
  143. package/.next/standalone/.next/server/chunks/ssr/node_modules_d9b454fe._.js +3 -0
  144. package/.next/standalone/.next/server/chunks/ssr/node_modules_dbe36b1d._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/ssr/node_modules_ddbe26b7._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/ssr/node_modules_e76b8bf2._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/ssr/node_modules_e945b74d._.js +3 -0
  148. package/.next/standalone/.next/server/chunks/ssr/node_modules_fbd8a2ee._.js +17 -0
  149. package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_31d456ba._.js +3 -0
  150. package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_e1edc676._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_33e24dce._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_159fba97._.js +1 -1
  153. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_dbeeb277._.js +1 -1
  154. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_a11916de._.js +9 -0
  155. package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/ssr/src_components_kanban-board_tsx_7b875e8e._.js +1 -1
  157. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  158. package/.next/standalone/.next/server/pages/404.html +1 -1
  159. package/.next/standalone/.next/server/pages/500.html +2 -2
  160. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  162. package/.next/standalone/AGENTS.md +13 -7
  163. package/.next/standalone/CONTRIBUTING.md +42 -26
  164. package/.next/standalone/README.md +166 -25
  165. package/.next/standalone/bin/devflow.js +12 -5
  166. package/.next/standalone/bun.lock +78 -24
  167. package/.next/standalone/devflow/project-config.json +4 -0
  168. package/.next/standalone/devflow/schemas/api-first/schema.yaml +39 -0
  169. package/.next/standalone/devflow/schemas/api-first/templates/api-design.md +41 -0
  170. package/.next/standalone/devflow/schemas/api-first/templates/db-design.md +28 -0
  171. package/.next/standalone/devflow/schemas/api-first/templates/final-architecture.md +31 -0
  172. package/.next/standalone/devflow/schemas/api-first/templates/proposal.md +22 -0
  173. package/.next/standalone/devflow/schemas/api-first/templates/tasks.md +16 -0
  174. package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.approvals.json +1 -1
  175. package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.meta.json +1 -1
  176. package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/design.md +11 -0
  177. package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/proposal.md +3 -0
  178. package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/tasks.md +34 -2
  179. package/.next/standalone/devflow/specs/precommit/.approvals.json +26 -0
  180. package/.next/standalone/devflow/specs/precommit/.meta.json +7 -0
  181. package/.next/standalone/devflow/specs/precommit/design.md +105 -0
  182. package/.next/standalone/devflow/specs/precommit/proposal.md +43 -0
  183. package/.next/standalone/devflow/specs/precommit/specs.md +89 -0
  184. package/.next/standalone/devflow/specs/precommit/tasks.md +283 -0
  185. package/.next/standalone/docs/custom-schemas.md +117 -0
  186. package/.next/standalone/docs/local-dev-guide.md +73 -0
  187. package/.next/standalone/drizzle.config.ts +7 -7
  188. package/.next/standalone/eslint.config.mjs +2 -2
  189. package/.next/standalone/instrumentation.ts +3 -5
  190. package/.next/standalone/next.config.ts +11 -2
  191. package/.next/standalone/node_modules/{sharp → libsql}/node_modules/detect-libc/package.json +4 -8
  192. package/.next/standalone/package-lock.json +5257 -2085
  193. package/.next/standalone/package.json +16 -7
  194. package/.next/standalone/postcss.config.mjs +1 -1
  195. package/.next/standalone/scripts/init-db.js +3 -5
  196. package/.next/standalone/scripts/init-db.test.js +6 -6
  197. package/.next/standalone/scripts/init-schema.js +22 -22
  198. package/.next/standalone/scripts/init-schema.test.js +45 -45
  199. package/.next/standalone/scripts/install-environments.js +27 -8
  200. package/.next/standalone/scripts/install-environments.test.js +19 -10
  201. package/.next/standalone/scripts/install-skills.js +104 -31
  202. package/.next/standalone/scripts/install-skills.test.js +6 -6
  203. package/.next/standalone/server.js +1 -1
  204. package/.next/standalone/src/app/api/agents/route.ts +2 -2
  205. package/.next/standalone/src/app/api/projects/[id]/route.ts +10 -19
  206. package/.next/standalone/src/app/api/projects/route.ts +4 -10
  207. package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
  208. package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
  209. package/.next/standalone/src/app/api/specs/[name]/promote/route.ts +17 -23
  210. package/.next/standalone/src/app/api/specs/[name]/route.ts +34 -36
  211. package/.next/standalone/src/app/api/specs/route.ts +10 -10
  212. package/.next/standalone/src/app/api/tasks/[id]/route.ts +11 -33
  213. package/.next/standalone/src/app/api/tasks/route.ts +3 -6
  214. package/.next/standalone/src/app/globals.css +3 -3
  215. package/.next/standalone/src/app/layout.tsx +9 -5
  216. package/.next/standalone/src/app/page.tsx +1 -1
  217. package/.next/standalone/src/app/specs/[name]/page.tsx +26 -68
  218. package/.next/standalone/src/components/kanban-board.tsx +78 -157
  219. package/.next/standalone/src/components/kanban-column.tsx +10 -12
  220. package/.next/standalone/src/components/markdown-preview.tsx +36 -19
  221. package/.next/standalone/src/components/providers.tsx +20 -0
  222. package/.next/standalone/src/components/specs/artifact-dag-status.tsx +12 -14
  223. package/.next/standalone/src/components/specs/artifact-editor.tsx +55 -26
  224. package/.next/standalone/src/components/specs/spec-detail.tsx +48 -40
  225. package/.next/standalone/src/components/specs/spec-kanban-column.tsx +49 -68
  226. package/.next/standalone/src/components/specs/spec-modal.tsx +119 -83
  227. package/.next/standalone/src/components/task-card.tsx +34 -38
  228. package/.next/standalone/src/components/task-dialog.tsx +16 -31
  229. package/.next/standalone/src/components/ui/badge.tsx +12 -18
  230. package/.next/standalone/src/components/ui/button.tsx +23 -28
  231. package/.next/standalone/src/components/ui/card.tsx +42 -62
  232. package/.next/standalone/src/components/ui/dialog.tsx +17 -35
  233. package/.next/standalone/src/db/index.ts +10 -10
  234. package/.next/standalone/src/db/schema.ts +37 -37
  235. package/.next/standalone/src/hooks/use-queries.ts +81 -0
  236. package/.next/standalone/src/hooks/use-websocket.ts +74 -0
  237. package/.next/standalone/src/lib/schema.test.ts +37 -37
  238. package/.next/standalone/src/lib/schema.ts +77 -31
  239. package/.next/standalone/src/lib/specs-dir.ts +8 -8
  240. package/.next/standalone/src/lib/specs.ts +98 -92
  241. package/.next/standalone/src/lib/utils.ts +2 -2
  242. package/.next/standalone/src/mcp/server.ts +556 -349
  243. package/.next/standalone/src/mcp/websocket.ts +26 -23
  244. package/.next/standalone/src/schemas/backend-api/templates/proposal.md +6 -4
  245. package/.next/standalone/src/schemas/backend-api/templates/tasks.md +6 -0
  246. package/.next/standalone/src/schemas/data-engineering/templates/proposal.md +6 -4
  247. package/.next/standalone/src/schemas/data-engineering/templates/tasks.md +6 -0
  248. package/.next/standalone/src/schemas/devops-platform/templates/proposal.md +6 -4
  249. package/.next/standalone/src/schemas/devops-platform/templates/tasks.md +6 -0
  250. package/.next/standalone/src/schemas/frontend-product/templates/proposal.md +6 -4
  251. package/.next/standalone/src/schemas/frontend-product/templates/tasks.md +6 -0
  252. package/.next/standalone/src/schemas/spec-driven/templates/proposal.md +6 -4
  253. package/.next/standalone/src/schemas/spec-driven/templates/tasks.md +26 -0
  254. package/.next/standalone/src/websocket/server.ts +20 -18
  255. package/.next/standalone/tsconfig.json +3 -12
  256. package/.next/standalone/tsconfig.tsbuildinfo +1 -1
  257. package/.next/static/chunks/4f23f64d46848f57.js +1 -0
  258. package/.next/static/chunks/53081dcdcad4f31e.js +1 -0
  259. package/.next/static/chunks/{6a3d582315f1c214.js → 701cfcbb41e0ab47.js} +1 -1
  260. package/.next/static/chunks/ac4b6b4d5b7e486e.css +1 -0
  261. package/.next/static/chunks/d0309ea872db5d9f.js +1 -0
  262. package/.next/static/chunks/d4cf8893a018e965.js +1 -0
  263. package/.next/static/chunks/e6c0233269a4bd69.js +13 -0
  264. package/.next/static/chunks/{7e65cfa9841f66a5.js → e7d83ce855afe416.js} +2 -2
  265. package/.next/static/chunks/ee7035560fc9e5e9.js +1 -0
  266. package/.next/static/chunks/{turbopack-f4d3806ab575051d.js → turbopack-8b3b66a22a5e0fb4.js} +2 -2
  267. package/README.md +166 -25
  268. package/bin/devflow.js +12 -5
  269. package/drizzle.config.ts +7 -7
  270. package/next.config.ts +11 -2
  271. package/package.json +16 -7
  272. package/scripts/init-db.js +3 -5
  273. package/scripts/init-db.test.js +6 -6
  274. package/scripts/init-schema.js +22 -22
  275. package/scripts/init-schema.test.js +45 -45
  276. package/scripts/install-environments.js +27 -8
  277. package/scripts/install-environments.test.js +19 -10
  278. package/scripts/install-skills.js +104 -31
  279. package/scripts/install-skills.test.js +6 -6
  280. package/src/app/api/agents/route.ts +2 -2
  281. package/src/app/api/projects/[id]/route.ts +10 -19
  282. package/src/app/api/projects/route.ts +4 -10
  283. package/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
  284. package/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
  285. package/src/app/api/specs/[name]/promote/route.ts +17 -23
  286. package/src/app/api/specs/[name]/route.ts +34 -36
  287. package/src/app/api/specs/route.ts +10 -10
  288. package/src/app/api/tasks/[id]/route.ts +11 -33
  289. package/src/app/api/tasks/route.ts +3 -6
  290. package/src/app/globals.css +3 -3
  291. package/src/app/layout.tsx +9 -5
  292. package/src/app/page.tsx +1 -1
  293. package/src/app/specs/[name]/page.tsx +26 -68
  294. package/src/components/kanban-board.tsx +78 -157
  295. package/src/components/kanban-column.tsx +10 -12
  296. package/src/components/markdown-preview.tsx +36 -19
  297. package/src/components/providers.tsx +20 -0
  298. package/src/components/specs/artifact-dag-status.tsx +12 -14
  299. package/src/components/specs/artifact-editor.tsx +55 -26
  300. package/src/components/specs/spec-detail.tsx +48 -40
  301. package/src/components/specs/spec-kanban-column.tsx +49 -68
  302. package/src/components/specs/spec-modal.tsx +119 -83
  303. package/src/components/task-card.tsx +34 -38
  304. package/src/components/task-dialog.tsx +16 -31
  305. package/src/components/ui/badge.tsx +12 -18
  306. package/src/components/ui/button.tsx +23 -28
  307. package/src/components/ui/card.tsx +42 -62
  308. package/src/components/ui/dialog.tsx +17 -35
  309. package/src/db/index.ts +10 -10
  310. package/src/db/schema.ts +37 -37
  311. package/src/hooks/use-queries.ts +81 -0
  312. package/src/hooks/use-websocket.ts +74 -0
  313. package/src/lib/schema.test.ts +37 -37
  314. package/src/lib/schema.ts +77 -31
  315. package/src/lib/specs-dir.ts +8 -8
  316. package/src/lib/specs.ts +98 -92
  317. package/src/lib/utils.ts +2 -2
  318. package/src/mcp/server.ts +556 -349
  319. package/src/mcp/websocket.ts +26 -23
  320. package/src/schemas/backend-api/templates/proposal.md +6 -4
  321. package/src/schemas/backend-api/templates/tasks.md +6 -0
  322. package/src/schemas/data-engineering/templates/proposal.md +6 -4
  323. package/src/schemas/data-engineering/templates/tasks.md +6 -0
  324. package/src/schemas/devops-platform/templates/proposal.md +6 -4
  325. package/src/schemas/devops-platform/templates/tasks.md +6 -0
  326. package/src/schemas/frontend-product/templates/proposal.md +6 -4
  327. package/src/schemas/frontend-product/templates/tasks.md +6 -0
  328. package/src/schemas/spec-driven/templates/proposal.md +6 -4
  329. package/src/schemas/spec-driven/templates/tasks.md +26 -0
  330. package/src/types/bun-sqlite.d.ts +1 -1
  331. package/src/websocket/server.ts +20 -18
  332. package/tsconfig.json +3 -12
  333. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1be4e4b6._.js +0 -3
  334. package/.next/standalone/.next/server/chunks/[root-of-the-server]__492a4a24._.js +0 -3
  335. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c59ae1._.js +0 -3
  336. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cc7aecd._.js +0 -3
  337. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a77b07._.js +0 -3
  338. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88d91cb5._.js +0 -3
  339. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9e095e8._.js +0 -3
  340. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b367d327._.js +0 -3
  341. package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb413bbc._.js +0 -3
  342. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b8c072a._.js +0 -3
  343. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12b2191f._.js +0 -3
  344. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15316462._.js +0 -3
  345. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19c9c409._.js +0 -3
  346. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19e5e22f._.js +0 -3
  347. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__25b5ccb3._.js +0 -3
  348. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2f78c3da._.js +0 -3
  349. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3160b3f4._.js +0 -9
  350. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__319559be._.js +0 -3
  351. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__34f7cbcb._.js +0 -31
  352. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3abab94b._.js +0 -3
  353. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b3d8930._.js +0 -3
  354. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4250799b._.js +0 -3
  355. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4c29cbc3._.js +0 -26
  356. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4e0bb6eb._.js +0 -9
  357. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5678d2e3._.js +0 -3
  358. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__673445e0._.js +0 -31
  359. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__934de06b._.js +0 -3
  360. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9b6c6f09._.js +0 -3
  361. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a1b83a98._.js +0 -3
  362. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b00a15c5._.js +0 -3
  363. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8567be3._.js +0 -26
  364. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce64536e._.js +0 -45
  365. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e96d33d2._.js +0 -45
  366. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fd7ec054._.js +0 -3
  367. package/.next/standalone/.next/server/chunks/ssr/node_modules_16a3f9e7._.js +0 -17
  368. package/.next/standalone/.next/server/chunks/ssr/node_modules_45bce0e1._.js +0 -3
  369. package/.next/standalone/.next/server/chunks/ssr/node_modules_5e5a372d._.js +0 -17
  370. package/.next/standalone/.next/server/chunks/ssr/node_modules_6ece6f1e._.js +0 -3
  371. package/.next/standalone/.next/server/chunks/ssr/node_modules_d173e749._.js +0 -3
  372. package/.next/standalone/.next/server/chunks/ssr/node_modules_d3-shape_src_arc_fb1ac087.js +0 -3
  373. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1f73a830._.js +0 -3
  374. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_663ac803._.js +0 -3
  375. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_4f485529._.js +0 -17
  376. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TZMSLE5B_mjs_8436a62a._.js +0 -3
  377. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_f78d2dc4._.js +0 -3
  378. package/.next/standalone/.next/server/chunks/ssr/src_app_layout_tsx_cc8184fa._.js +0 -3
  379. package/.next/standalone/devflow/specs/add-default-schema-template-selection/.approvals.json +0 -26
  380. package/.next/standalone/devflow/specs/add-default-schema-template-selection/.meta.json +0 -8
  381. package/.next/standalone/devflow/specs/add-default-schema-template-selection/design.md +0 -126
  382. package/.next/standalone/devflow/specs/add-default-schema-template-selection/proposal.md +0 -65
  383. package/.next/standalone/devflow/specs/add-default-schema-template-selection/specs.md +0 -107
  384. package/.next/standalone/devflow/specs/add-default-schema-template-selection/tasks.md +0 -235
  385. package/.next/standalone/devflow/specs/test-no-project/.approvals.json +0 -17
  386. package/.next/standalone/devflow/specs/test-no-project/.meta.json +0 -6
  387. package/.next/standalone/devflow/specs/ui-cleanup/.approvals.json +0 -29
  388. package/.next/standalone/devflow/specs/ui-cleanup/.meta.json +0 -6
  389. package/.next/standalone/devflow/specs/ui-cleanup/design.md +0 -49
  390. package/.next/standalone/devflow/specs/ui-cleanup/proposal.md +0 -34
  391. package/.next/standalone/devflow/specs/ui-cleanup/specs.md +0 -55
  392. package/.next/standalone/devflow/specs/ui-cleanup/tasks.md +0 -28
  393. package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
  394. package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
  395. package/.next/standalone/node_modules/@img/colour/package.json +0 -45
  396. package/.next/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  397. package/.next/standalone/node_modules/@img/sharp-darwin-arm64/package.json +0 -40
  398. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/README.md +0 -46
  399. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +0 -220
  400. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
  401. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
  402. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -36
  403. package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
  404. package/.next/standalone/node_modules/buffer-from/index.js +0 -72
  405. package/.next/standalone/node_modules/buffer-from/package.json +0 -19
  406. package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
  407. package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
  408. package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
  409. package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
  410. package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
  411. package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
  412. package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
  413. package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
  414. package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
  415. package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
  416. package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
  417. package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
  418. package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
  419. package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/detect-libc.js +0 -313
  420. package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/elf.js +0 -39
  421. package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/filesystem.js +0 -51
  422. package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/process.js +0 -24
  423. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
  424. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
  425. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
  426. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
  427. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
  428. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
  429. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
  430. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
  431. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
  432. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
  433. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
  434. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
  435. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
  436. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
  437. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
  438. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
  439. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
  440. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
  441. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
  442. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
  443. package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
  444. package/.next/standalone/node_modules/sharp/package.json +0 -202
  445. package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
  446. package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
  447. package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
  448. package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
  449. package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
  450. package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
  451. package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  452. package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
  453. package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
  454. package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
  455. package/.next/standalone/node_modules/source-map/package.json +0 -73
  456. package/.next/standalone/node_modules/source-map/source-map.js +0 -8
  457. package/.next/standalone/node_modules/source-map-support/LICENSE.md +0 -21
  458. package/.next/standalone/node_modules/source-map-support/README.md +0 -284
  459. package/.next/standalone/node_modules/source-map-support/browser-source-map-support.js +0 -114
  460. package/.next/standalone/node_modules/source-map-support/package.json +0 -31
  461. package/.next/standalone/node_modules/source-map-support/register-hook-require.js +0 -1
  462. package/.next/standalone/node_modules/source-map-support/register.js +0 -1
  463. package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
  464. package/.next/standalone/node_modules/typescript/lib/_tsc.js +0 -133818
  465. package/.next/standalone/node_modules/typescript/lib/_tsserver.js +0 -659
  466. package/.next/standalone/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  467. package/.next/standalone/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  468. package/.next/standalone/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  469. package/.next/standalone/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  470. package/.next/standalone/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  471. package/.next/standalone/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  472. package/.next/standalone/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  473. package/.next/standalone/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  474. package/.next/standalone/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  475. package/.next/standalone/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  476. package/.next/standalone/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  477. package/.next/standalone/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  478. package/.next/standalone/node_modules/typescript/lib/tsc.js +0 -8
  479. package/.next/standalone/node_modules/typescript/lib/tsserver.js +0 -8
  480. package/.next/standalone/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  481. package/.next/standalone/node_modules/typescript/lib/typesMap.json +0 -497
  482. package/.next/standalone/node_modules/typescript/lib/typescript.js +0 -200276
  483. package/.next/standalone/node_modules/typescript/lib/typingsInstaller.js +0 -8
  484. package/.next/standalone/node_modules/typescript/lib/watchGuard.js +0 -53
  485. package/.next/standalone/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  486. package/.next/standalone/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  487. package/.next/standalone/node_modules/typescript/package.json +0 -120
  488. package/.next/standalone/src/components/ui/collapsible.tsx +0 -12
  489. package/.next/standalone/src/components/ui/sheet.tsx +0 -130
  490. package/.next/standalone/src/components/ui/tabs.tsx +0 -58
  491. package/.next/static/chunks/0177331b8adf7346.js +0 -7
  492. package/.next/static/chunks/06af74e2f3e207c5.js +0 -7
  493. package/.next/static/chunks/1748d5cd2443723b.css +0 -1
  494. package/.next/static/chunks/7ae917cb100be2b9.js +0 -7
  495. package/.next/static/chunks/7c4b901b394c3a8c.js +0 -7
  496. package/src/components/ui/collapsible.tsx +0 -12
  497. package/src/components/ui/sheet.tsx +0 -130
  498. package/src/components/ui/tabs.tsx +0 -58
  499. /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/detect-libc.js +0 -0
  500. /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/filesystem.js +0 -0
  501. /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/process.js +0 -0
  502. /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_buildManifest.js +0 -0
  503. /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_clientMiddlewareManifest.json +0 -0
  504. /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7088,e=>{"use strict";let t,r,n,a,l,i,o;var s,c,u,d,f,p,h,m,g,v,x,b,y,w,j,N,k,E,C,S,D,R,M,T,O,A,P,L,_=e.i(18050),I=e.i(71645),F=e.i(74080);let $="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function W(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function B(e){return"nodeType"in e}function z(e){var t,r;return e?W(e)?e:B(e)&&null!=(t=null==(r=e.ownerDocument)?void 0:r.defaultView)?t:window:window}function U(e){let{Document:t}=z(e);return e instanceof t}function K(e){return!W(e)&&e instanceof z(e).HTMLElement}function X(e){return e instanceof z(e).SVGElement}function Y(e){return e?W(e)?e.document:B(e)?U(e)?e:K(e)||X(e)?e.ownerDocument:document:document:document}let H=$?I.useLayoutEffect:I.useEffect;function V(e){let t=(0,I.useRef)(e);return H(()=>{t.current=e}),(0,I.useCallback)(function(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];return null==t.current?void 0:t.current(...r)},[])}function q(e,t){void 0===t&&(t=[e]);let r=(0,I.useRef)(e);return H(()=>{r.current!==e&&(r.current=e)},t),r}function J(e,t){let r=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(r.current);return r.current=t,t},[...t])}function Z(e){let t=V(e),r=(0,I.useRef)(null),n=(0,I.useCallback)(e=>{e!==r.current&&(null==t||t(e,r.current)),r.current=e},[]);return[r,n]}function G(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}let Q={};function ee(e,t){return(0,I.useMemo)(()=>{if(t)return t;let r=null==Q[e]?0:Q[e]+1;return Q[e]=r,e+"-"+r},[e,t])}function et(e){return function(t){for(var r=arguments.length,n=Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];return n.reduce((t,r)=>{for(let[n,a]of Object.entries(r)){let r=t[n];null!=r&&(t[n]=r+e*a)}return t},{...t})}}let er=et(1),en=et(-1);function ea(e){if(!e)return!1;let{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function el(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=z(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:r}=e.touches[0];return{x:t,y:r}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:r}=e.changedTouches[0];return{x:t,y:r}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let ei=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:r}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(r?Math.round(r):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:r}=e;return"scaleX("+t+") scaleY("+r+")"}},Transform:{toString(e){if(e)return[ei.Translate.toString(e),ei.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:r,easing:n}=e;return t+" "+r+"ms "+n}}}),eo="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",es={display:"none"};function ec(e){let{id:t,value:r}=e;return I.default.createElement("div",{id:t,style:es},r)}function eu(e){let{id:t,announcement:r,ariaLiveType:n="assertive"}=e;return I.default.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":n,"aria-atomic":!0},r)}let ed=(0,I.createContext)(null),ef={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},ep={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:r}=e;return r?"Draggable item "+t.id+" was moved over droppable area "+r.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:r}=e;return r?"Draggable item "+t.id+" was dropped over droppable area "+r.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function eh(e){var t;let r,{announcements:n=ep,container:a,hiddenTextDescribedById:l,screenReaderInstructions:i=ef}=e,{announce:o,announcement:s}=function(){let[e,t]=(0,I.useState)("");return{announce:(0,I.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),c=ee("DndLiveRegion"),[u,d]=(0,I.useState)(!1);if((0,I.useEffect)(()=>{d(!0)},[]),t=(0,I.useMemo)(()=>({onDragStart(e){let{active:t}=e;o(n.onDragStart({active:t}))},onDragMove(e){let{active:t,over:r}=e;n.onDragMove&&o(n.onDragMove({active:t,over:r}))},onDragOver(e){let{active:t,over:r}=e;o(n.onDragOver({active:t,over:r}))},onDragEnd(e){let{active:t,over:r}=e;o(n.onDragEnd({active:t,over:r}))},onDragCancel(e){let{active:t,over:r}=e;o(n.onDragCancel({active:t,over:r}))}}),[o,n]),r=(0,I.useContext)(ed),(0,I.useEffect)(()=>{if(!r)throw Error("useDndMonitor must be used within a children of <DndContext>");return r(t)},[t,r]),!u)return null;let f=I.default.createElement(I.default.Fragment,null,I.default.createElement(ec,{id:l,value:i.draggable}),I.default.createElement(eu,{id:c,announcement:s}));return a?(0,F.createPortal)(f,a):f}function em(){}(s=k||(k={})).DragStart="dragStart",s.DragMove="dragMove",s.DragEnd="dragEnd",s.DragCancel="dragCancel",s.DragOver="dragOver",s.RegisterDroppable="registerDroppable",s.SetDroppableDisabled="setDroppableDisabled",s.UnregisterDroppable="unregisterDroppable";let eg=Object.freeze({x:0,y:0});function ev(e,t){let{data:{value:r}}=e,{data:{value:n}}=t;return n-r}let ex=e=>{let{collisionRect:t,droppableRects:r,droppableContainers:n}=e,a=[];for(let e of n){let{id:n}=e,l=r.get(n);if(l){let r=function(e,t){let r=Math.max(t.top,e.top),n=Math.max(t.left,e.left),a=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height);if(n<a&&r<l){let i=t.width*t.height,o=e.width*e.height,s=(a-n)*(l-r);return Number((s/(i+o-s)).toFixed(4))}return 0}(l,t);r>0&&a.push({id:n,data:{droppableContainer:e,value:r}})}}return a.sort(ev)};function eb(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:eg}let ey=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return r.reduce((e,t)=>({...e,top:e.top+ +t.y,bottom:e.bottom+ +t.y,left:e.left+ +t.x,right:e.right+ +t.x}),{...e})};function ew(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}let ej={ignoreTransform:!1};function eN(e,t){void 0===t&&(t=ej);let r=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:n}=z(e).getComputedStyle(e);t&&(r=function(e,t,r){let n=ew(t);if(!n)return e;let{scaleX:a,scaleY:l,x:i,y:o}=n,s=e.left-i-(1-a)*parseFloat(r),c=e.top-o-(1-l)*parseFloat(r.slice(r.indexOf(" ")+1)),u=a?e.width/a:e.width,d=l?e.height/l:e.height;return{width:u,height:d,top:c,right:s+u,bottom:c+d,left:s}}(r,t,n))}let{top:n,left:a,width:l,height:i,bottom:o,right:s}=r;return{top:n,left:a,width:l,height:i,bottom:o,right:s}}function ek(e){return eN(e,{ignoreTransform:!0})}function eE(e,t){let r=[];return e?function n(a){var l,i;let o;if(null!=t&&r.length>=t||!a)return r;if(U(a)&&null!=a.scrollingElement&&!r.includes(a.scrollingElement))return r.push(a.scrollingElement),r;if(!K(a)||X(a)||r.includes(a))return r;let s=z(e).getComputedStyle(a);return(a!==e&&(void 0===(l=s)&&(l=z(a).getComputedStyle(a)),o=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let t=l[e];return"string"==typeof t&&o.test(t)}))&&r.push(a),void 0===(i=s)&&(i=z(a).getComputedStyle(a)),"fixed"===i.position)?r:n(a.parentNode)}(e):r}function eC(e){let[t]=eE(e,1);return null!=t?t:null}function eS(e){return $&&e?W(e)?e:B(e)?U(e)||e===Y(e).scrollingElement?window:K(e)?e:null:null:null}function eD(e){return W(e)?e.scrollX:e.scrollLeft}function eR(e){return W(e)?e.scrollY:e.scrollTop}function eM(e){return{x:eD(e),y:eR(e)}}function eT(e){return!!$&&!!e&&e===document.scrollingElement}function eO(e){let t={x:0,y:0},r=eT(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},n={x:e.scrollWidth-r.width,y:e.scrollHeight-r.height},a=e.scrollTop<=t.y,l=e.scrollLeft<=t.x;return{isTop:a,isLeft:l,isBottom:e.scrollTop>=n.y,isRight:e.scrollLeft>=n.x,maxScroll:n,minScroll:t}}(c=E||(E={}))[c.Forward=1]="Forward",c[c.Backward=-1]="Backward";let eA={x:.2,y:.2};function eP(e){return e.reduce((e,t)=>er(e,eM(t)),eg)}function eL(e,t){if(void 0===t&&(t=eN),!e)return;let{top:r,left:n,bottom:a,right:l}=t(e);eC(e)&&(a<=0||l<=0||r>=window.innerHeight||n>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}let e_=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+eD(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+eR(t),0)}]];class eI{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=eE(t),n=eP(r);for(const[t,a,l]of(this.rect={...e},this.width=e.width,this.height=e.height,e_))for(const e of a)Object.defineProperty(this,e,{get:()=>{let a=l(r),i=n[t]-a;return this.rect[e]+i},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class eF{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,r){var n;null==(n=this.target)||n.addEventListener(e,t,r),this.listeners.push([e,t,r])}}function e$(e,t){let r=Math.abs(e.x),n=Math.abs(e.y);return"number"==typeof t?Math.sqrt(r**2+n**2)>t:"x"in t&&"y"in t?r>t.x&&n>t.y:"x"in t?r>t.x:"y"in t&&n>t.y}function eW(e){e.preventDefault()}function eB(e){e.stopPropagation()}(u=C||(C={})).Click="click",u.DragStart="dragstart",u.Keydown="keydown",u.ContextMenu="contextmenu",u.Resize="resize",u.SelectionChange="selectionchange",u.VisibilityChange="visibilitychange",(d=S||(S={})).Space="Space",d.Down="ArrowDown",d.Right="ArrowRight",d.Left="ArrowLeft",d.Up="ArrowUp",d.Esc="Escape",d.Enter="Enter",d.Tab="Tab";let ez={start:[S.Space,S.Enter],cancel:[S.Esc],end:[S.Space,S.Enter,S.Tab]},eU=(e,t)=>{let{currentCoordinates:r}=t;switch(e.code){case S.Right:return{...r,x:r.x+25};case S.Left:return{...r,x:r.x-25};case S.Down:return{...r,y:r.y+25};case S.Up:return{...r,y:r.y-25}}};class eK{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new eF(Y(t)),this.windowListeners=new eF(z(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(C.Resize,this.handleCancel),this.windowListeners.add(C.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(C.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,r=e.node.current;r&&eL(r),t(eg)}handleKeyDown(e){if(ea(e)){let{active:t,context:r,options:n}=this.props,{keyboardCodes:a=ez,coordinateGetter:l=eU,scrollBehavior:i="smooth"}=n,{code:o}=e;if(a.end.includes(o))return void this.handleEnd(e);if(a.cancel.includes(o))return void this.handleCancel(e);let{collisionRect:s}=r.current,c=s?{x:s.left,y:s.top}:eg;this.referenceCoordinates||(this.referenceCoordinates=c);let u=l(e,{active:t,context:r.current,currentCoordinates:c});if(u){let t=en(u,c),n={x:0,y:0},{scrollableAncestors:a}=r.current;for(let r of a){let a=e.code,{isTop:l,isRight:o,isLeft:s,isBottom:c,maxScroll:d,minScroll:f}=eO(r),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:r,right:n,bottom:a}=e.getBoundingClientRect();return{top:t,left:r,right:n,bottom:a,width:e.clientWidth,height:e.clientHeight}}(r),h={x:Math.min(a===S.Right?p.right-p.width/2:p.right,Math.max(a===S.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(a===S.Down?p.bottom-p.height/2:p.bottom,Math.max(a===S.Down?p.top:p.top+p.height/2,u.y))},m=a===S.Right&&!o||a===S.Left&&!s,g=a===S.Down&&!c||a===S.Up&&!l;if(m&&h.x!==u.x){let e=r.scrollLeft+t.x,l=a===S.Right&&e<=d.x||a===S.Left&&e>=f.x;if(l&&!t.y)return void r.scrollTo({left:e,behavior:i});l?n.x=r.scrollLeft-e:n.x=a===S.Right?r.scrollLeft-d.x:r.scrollLeft-f.x,n.x&&r.scrollBy({left:-n.x,behavior:i});break}if(g&&h.y!==u.y){let e=r.scrollTop+t.y,l=a===S.Down&&e<=d.y||a===S.Up&&e>=f.y;if(l&&!t.x)return void r.scrollTo({top:e,behavior:i});l?n.y=r.scrollTop-e:n.y=a===S.Down?r.scrollTop-d.y:r.scrollTop-f.y,n.y&&r.scrollBy({top:-n.y,behavior:i});break}}this.handleMove(e,er(en(u,this.referenceCoordinates),n))}}}handleMove(e,t){let{onMove:r}=this.props;e.preventDefault(),r(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function eX(e){return!!(e&&"distance"in e)}function eY(e){return!!(e&&"delay"in e)}eK.activators=[{eventName:"onKeyDown",handler:(e,t,r)=>{let{keyboardCodes:n=ez,onActivation:a}=t,{active:l}=r,{code:i}=e.nativeEvent;if(n.start.includes(i)){let t=l.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==a||a({event:e.nativeEvent}),!0)}return!1}}];class eH{constructor(e,t,r){var n;void 0===r&&(r=function(e){let{EventTarget:t}=z(e);return e instanceof t?e:Y(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:a}=e,{target:l}=a;this.props=e,this.events=t,this.document=Y(l),this.documentListeners=new eF(this.document),this.listeners=new eF(r),this.windowListeners=new eF(z(l)),this.initialCoordinates=null!=(n=el(a))?n:eg,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(C.Resize,this.handleCancel),this.windowListeners.add(C.DragStart,eW),this.windowListeners.add(C.VisibilityChange,this.handleCancel),this.windowListeners.add(C.ContextMenu,eW),this.documentListeners.add(C.Keydown,this.handleKeydown),t){if(null!=r&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eY(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(eX(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:r,onPending:n}=this.props;n(r,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(C.Click,eB,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(C.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:r,initialCoordinates:n,props:a}=this,{onMove:l,options:{activationConstraint:i}}=a;if(!n)return;let o=null!=(t=el(e))?t:eg,s=en(n,o);if(!r&&i){if(eX(i)){if(null!=i.tolerance&&e$(s,i.tolerance))return this.handleCancel();if(e$(s,i.distance))return this.handleStart()}return eY(i)&&e$(s,i.tolerance)?this.handleCancel():void this.handlePending(i,s)}e.cancelable&&e.preventDefault(),l(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===S.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let eV={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class eq extends eH{constructor(e){const{event:t}=e;super(e,eV,Y(t.target))}}eq.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:r}=e,{onActivation:n}=t;return!!r.isPrimary&&0===r.button&&(null==n||n({event:r}),!0)}}];(f=D||(D={}))[f.RightClick=2]="RightClick";(p=R||(R={}))[p.Pointer=0]="Pointer",p[p.DraggableRect=1]="DraggableRect",(h=M||(M={}))[h.TreeOrder=0]="TreeOrder",h[h.ReversedTreeOrder=1]="ReversedTreeOrder";let eJ={x:{[E.Backward]:!1,[E.Forward]:!1},y:{[E.Backward]:!1,[E.Forward]:!1}};(m=T||(T={}))[m.Always=0]="Always",m[m.BeforeDragging=1]="BeforeDragging",m[m.WhileDragging=2]="WhileDragging",(O||(O={})).Optimized="optimized";let eZ=new Map;function eG(e,t){return J(r=>e?r||("function"==typeof t?t(e):e):null,[t,e])}function eQ(e){let{callback:t,disabled:r}=e,n=V(t),a=(0,I.useMemo)(()=>{if(r||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(n)},[r]);return(0,I.useEffect)(()=>()=>null==a?void 0:a.disconnect(),[a]),a}function e0(e){return new eI(eN(e),e)}function e1(e,t,r){void 0===t&&(t=e0);let[n,a]=(0,I.useState)(null);function l(){a(n=>{if(!e)return null;if(!1===e.isConnected){var a;return null!=(a=null!=n?n:r)?a:null}let l=t(e);return JSON.stringify(n)===JSON.stringify(l)?n:l})}let i=function(e){let{callback:t,disabled:r}=e,n=V(t),a=(0,I.useMemo)(()=>{if(r||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(n)},[n,r]);return(0,I.useEffect)(()=>()=>null==a?void 0:a.disconnect(),[a]),a}({callback(t){if(e)for(let r of t){let{type:t,target:n}=r;if("childList"===t&&n instanceof HTMLElement&&n.contains(e)){l();break}}}}),o=eQ({callback:l});return H(()=>{l(),e?(null==o||o.observe(e),null==i||i.observe(document.body,{childList:!0,subtree:!0})):(null==o||o.disconnect(),null==i||i.disconnect())},[e]),n}let e2=[];function e4(e,t){void 0===t&&(t=[]);let r=(0,I.useRef)(null);return(0,I.useEffect)(()=>{r.current=null},t),(0,I.useEffect)(()=>{let t=e!==eg;t&&!r.current&&(r.current=e),!t&&r.current&&(r.current=null)},[e]),r.current?en(e,r.current):eg}function e3(e){return(0,I.useMemo)(()=>{let t,r;return e?(t=e.innerWidth,{top:0,left:0,right:t,bottom:r=e.innerHeight,width:t,height:r}):null},[e])}let e5=[];function e6(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return K(t)?t:e}let e8=[{sensor:eq,options:{}},{sensor:eK,options:{}}],e7={current:{}},e9={draggable:{measure:ek},droppable:{measure:ek,strategy:T.WhileDragging,frequency:O.Optimized},dragOverlay:{measure:eN}};class te extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,r;return null!=(t=null==(r=this.get(e))?void 0:r.node.current)?t:void 0}}let tt={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new te,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:em},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:e9,measureDroppableContainers:em,windowRect:null,measuringScheduled:!1},tr={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:em,draggableNodes:new Map,over:null,measureDroppableContainers:em},tn=(0,I.createContext)(tr),ta=(0,I.createContext)(tt);function tl(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new te}}}function ti(e,t){switch(t.type){case k.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case k.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case k.DragEnd:case k.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case k.RegisterDroppable:{let{element:r}=t,{id:n}=r,a=new te(e.droppable.containers);return a.set(n,r),{...e,droppable:{...e.droppable,containers:a}}}case k.SetDroppableDisabled:{let{id:r,key:n,disabled:a}=t,l=e.droppable.containers.get(r);if(!l||n!==l.key)return e;let i=new te(e.droppable.containers);return i.set(r,{...l,disabled:a}),{...e,droppable:{...e.droppable,containers:i}}}case k.UnregisterDroppable:{let{id:r,key:n}=t,a=e.droppable.containers.get(r);if(!a||n!==a.key)return e;let l=new te(e.droppable.containers);return l.delete(r),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function to(e){let{disabled:t}=e,{active:r,activatorEvent:n,draggableNodes:a}=(0,I.useContext)(tn),l=G(n),i=G(null==r?void 0:r.id);return(0,I.useEffect)(()=>{if(!t&&!n&&l&&null!=i){if(!ea(l)||document.activeElement===l.target)return;let e=a.get(i);if(!e)return;let{activatorNode:t,node:r}=e;(t.current||r.current)&&requestAnimationFrame(()=>{for(let e of[t.current,r.current]){if(!e)continue;let t=e.matches(eo)?e:e.querySelector(eo);if(t){t.focus();break}}})}},[n,t,a,i,l]),null}function ts(e,t){let{transform:r,...n}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...n}),r):r}let tc=(0,I.createContext)({...eg,scaleX:1,scaleY:1});(g=A||(A={}))[g.Uninitialized=0]="Uninitialized",g[g.Initializing=1]="Initializing",g[g.Initialized=2]="Initialized";let tu=(0,I.memo)(function(e){var t,r,n,a,l,i,o,s;let c,u,d,f,p,h,m,g,{id:v,accessibility:x,autoScroll:b=!0,children:y,sensors:w=e8,collisionDetection:j=ex,measuring:N,modifiers:C,...S}=e,[D,O]=(0,I.useReducer)(ti,void 0,tl),[P,L]=function(){let[e]=(0,I.useState)(()=>new Set),t=(0,I.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,I.useCallback)(t=>{let{type:r,event:n}=t;e.forEach(e=>{var t;return null==(t=e[r])?void 0:t.call(e,n)})},[e]),t]}(),[_,W]=(0,I.useState)(A.Uninitialized),B=_===A.Initialized,{draggable:{active:U,nodes:X,translate:Y},droppable:{containers:V}}=D,Q=null!=U?X.get(U):null,et=(0,I.useRef)({initial:null,translated:null}),en=(0,I.useMemo)(()=>{var e;return null!=U?{id:U,data:null!=(e=null==Q?void 0:Q.data)?e:e7,rect:et}:null},[U,Q]),ea=(0,I.useRef)(null),[ei,eo]=(0,I.useState)(null),[es,ec]=(0,I.useState)(null),eu=q(S,Object.values(S)),ef=ee("DndDescribedBy",v),ep=(0,I.useMemo)(()=>V.getEnabled(),[V]),em=(0,I.useMemo)(()=>({draggable:{...e9.draggable,...null==N?void 0:N.draggable},droppable:{...e9.droppable,...null==N?void 0:N.droppable},dragOverlay:{...e9.dragOverlay,...null==N?void 0:N.dragOverlay}}),[null==N?void 0:N.draggable,null==N?void 0:N.droppable,null==N?void 0:N.dragOverlay]),{droppableRects:ev,measureDroppableContainers:ew,measuringScheduled:ej}=function(e,t){let{dragging:r,dependencies:n,config:a}=t,[l,i]=(0,I.useState)(null),{frequency:o,measure:s,strategy:c}=a,u=(0,I.useRef)(e),d=function(){switch(c){case T.Always:return!1;case T.BeforeDragging:return r;default:return!r}}(),f=q(d),p=(0,I.useCallback)(function(e){void 0===e&&(e=[]),f.current||i(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),h=(0,I.useRef)(null),m=J(t=>{if(d&&!r)return eZ;if(!t||t===eZ||u.current!==e||null!=l){let t=new Map;for(let r of e){if(!r)continue;if(l&&l.length>0&&!l.includes(r.id)&&r.rect.current){t.set(r.id,r.rect.current);continue}let e=r.node.current,n=e?new eI(s(e),e):null;r.rect.current=n,n&&t.set(r.id,n)}return t}return t},[e,l,r,d,s]);return(0,I.useEffect)(()=>{u.current=e},[e]),(0,I.useEffect)(()=>{d||p()},[r,d]),(0,I.useEffect)(()=>{l&&l.length>0&&i(null)},[JSON.stringify(l)]),(0,I.useEffect)(()=>{d||"number"!=typeof o||null!==h.current||(h.current=setTimeout(()=>{p(),h.current=null},o))},[o,d,p,...n]),{droppableRects:m,measureDroppableContainers:p,measuringScheduled:null!=l}}(ep,{dragging:B,dependencies:[Y.x,Y.y],config:em.droppable}),ek=J(e=>{var t;return null==U?null:null!=(t=null!=p?p:e)?t:null},[p=(f=null!=U?X.get(U):void 0)?f.node.current:null,U]),eD=(0,I.useMemo)(()=>es?el(es):null,[es]),eR=(c=(null==ei?void 0:ei.autoScrollEnabled)===!1,u="object"==typeof b?!1===b.enabled:!1===b,d=B&&!c&&!u,"object"==typeof b?{...b,enabled:d}:{enabled:d}),eL=eG(ek,em.draggable.measure);!function(e){let{activeNode:t,measure:r,initialRect:n,config:a=!0}=e,l=(0,I.useRef)(!1),{x:i,y:o}="boolean"==typeof a?{x:a,y:a}:a;H(()=>{if(!i&&!o||!t){l.current=!1;return}if(l.current||!n)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let a=eb(r(e),n);if(i||(a.x=0),o||(a.y=0),l.current=!0,Math.abs(a.x)>0||Math.abs(a.y)>0){let t=eC(e);t&&t.scrollBy({top:a.y,left:a.x})}},[t,i,o,n,r])}({activeNode:null!=U?X.get(U):null,config:eR.layoutShiftCompensation,initialRect:eL,measure:em.draggable.measure});let e_=e1(ek,em.draggable.measure,eL),eF=e1(ek?ek.parentElement:null),e$=(0,I.useRef)({activatorEvent:null,active:null,activeNode:ek,collisionRect:null,collisions:null,droppableRects:ev,draggableNodes:X,draggingNode:null,draggingNodeRect:null,droppableContainers:V,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eW=V.getNodeFor(null==(t=e$.current.over)?void 0:t.id),eB=function(e){let{measure:t}=e,[r,n]=(0,I.useState)(null),a=eQ({callback:(0,I.useCallback)(e=>{for(let{target:r}of e)if(K(r)){n(e=>{let n=t(r);return e?{...e,width:n.width,height:n.height}:n});break}},[t])}),[l,i]=Z((0,I.useCallback)(e=>{let r=e6(e);null==a||a.disconnect(),r&&(null==a||a.observe(r)),n(r?t(r):null)},[t,a]));return(0,I.useMemo)(()=>({nodeRef:l,rect:r,setRef:i}),[r,l,i])}({measure:em.dragOverlay.measure}),ez=null!=(r=eB.nodeRef.current)?r:ek,eU=B?null!=(n=eB.rect)?n:e_:null,eK=!!(eB.nodeRef.current&&eB.rect),eX=(h=eG(l=eK?null:e_),eb(l,h)),eY=e3(ez?z(ez):null),eH=(i=B?null!=eW?eW:ek:null,m=(0,I.useRef)(i),g=J(e=>i?e&&e!==e2&&i&&m.current&&i.parentNode===m.current.parentNode?e:eE(i):e2,[i]),(0,I.useEffect)(()=>{m.current=i},[i]),g),eV=function(e,t){void 0===t&&(t=eN);let[r]=e,n=e3(r?z(r):null),[a,l]=(0,I.useState)(e5);function i(){l(()=>e.length?e.map(e=>eT(e)?n:new eI(t(e),e)):e5)}let o=eQ({callback:i});return H(()=>{null==o||o.disconnect(),i(),e.forEach(e=>null==o?void 0:o.observe(e))},[e]),a}(eH),eq=ts(C,{transform:{x:Y.x-eX.x,y:Y.y-eX.y,scaleX:1,scaleY:1},activatorEvent:es,active:en,activeNodeRect:e_,containerNodeRect:eF,draggingNodeRect:eU,over:e$.current.over,overlayNodeRect:eB.rect,scrollableAncestors:eH,scrollableAncestorRects:eV,windowRect:eY}),e0=eD?er(eD,Y):null,te=function(e){let[t,r]=(0,I.useState)(null),n=(0,I.useRef)(e),a=(0,I.useCallback)(e=>{let t=eS(e.target);t&&r(e=>e?(e.set(t,eM(t)),new Map(e)):null)},[]);return(0,I.useEffect)(()=>{let t=n.current;if(e!==t){l(t);let i=e.map(e=>{let t=eS(e);return t?(t.addEventListener("scroll",a,{passive:!0}),[t,eM(t)]):null}).filter(e=>null!=e);r(i.length?new Map(i):null),n.current=e}return()=>{l(e),l(t)};function l(e){e.forEach(e=>{let t=eS(e);null==t||t.removeEventListener("scroll",a)})}},[a,e]),(0,I.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>er(e,t),eg):eP(e):eg,[e,t])}(eH),tt=e4(te),tr=e4(te,[e_]),tu=er(eq,tt),td=eU?ey(eU,eq):null,tf=en&&td?j({active:en,collisionRect:td,droppableRects:ev,droppableContainers:ep,pointerCoordinates:e0}):null,tp=function(e,t){if(!e||0===e.length)return null;let[r]=e;return r.id}(tf,0),[th,tm]=(0,I.useState)(null),tg=(o=eK?eq:er(eq,tr),s=null!=(a=null==th?void 0:th.rect)?a:null,{...o,scaleX:s&&e_?s.width/e_.width:1,scaleY:s&&e_?s.height/e_.height:1}),tv=(0,I.useRef)(null),tx=(0,I.useCallback)((e,t)=>{let{sensor:r,options:n}=t;if(null==ea.current)return;let a=X.get(ea.current);if(!a)return;let l=e.nativeEvent,i=new r({active:ea.current,activeNode:a,event:l,options:n,context:e$,onAbort(e){if(!X.get(e))return;let{onDragAbort:t}=eu.current,r={id:e};null==t||t(r),P({type:"onDragAbort",event:r})},onPending(e,t,r,n){if(!X.get(e))return;let{onDragPending:a}=eu.current,l={id:e,constraint:t,initialCoordinates:r,offset:n};null==a||a(l),P({type:"onDragPending",event:l})},onStart(e){let t=ea.current;if(null==t)return;let r=X.get(t);if(!r)return;let{onDragStart:n}=eu.current,a={activatorEvent:l,active:{id:t,data:r.data,rect:et}};(0,F.unstable_batchedUpdates)(()=>{null==n||n(a),W(A.Initializing),O({type:k.DragStart,initialCoordinates:e,active:t}),P({type:"onDragStart",event:a}),eo(tv.current),ec(l)})},onMove(e){O({type:k.DragMove,coordinates:e})},onEnd:o(k.DragEnd),onCancel:o(k.DragCancel)});function o(e){return async function(){let{active:t,collisions:r,over:n,scrollAdjustedTranslate:a}=e$.current,i=null;if(t&&a){let{cancelDrop:o}=eu.current;i={activatorEvent:l,active:t,collisions:r,delta:a,over:n},e===k.DragEnd&&"function"==typeof o&&await Promise.resolve(o(i))&&(e=k.DragCancel)}ea.current=null,(0,F.unstable_batchedUpdates)(()=>{O({type:e}),W(A.Uninitialized),tm(null),eo(null),ec(null),tv.current=null;let t=e===k.DragEnd?"onDragEnd":"onDragCancel";if(i){let e=eu.current[t];null==e||e(i),P({type:t,event:i})}})}}tv.current=i},[X]),tb=(0,I.useCallback)((e,t)=>(r,n)=>{let a=r.nativeEvent,l=X.get(n);null!==ea.current||!l||a.dndKit||a.defaultPrevented||!0===e(r,t.options,{active:l})&&(a.dndKit={capturedBy:t.sensor},ea.current=n,tx(r,t))},[X,tx]),ty=(0,I.useMemo)(()=>w.reduce((e,t)=>{let{sensor:r}=t;return[...e,...r.activators.map(e=>({eventName:e.eventName,handler:tb(e.handler,t)}))]},[]),[w,tb]);(0,I.useEffect)(()=>{if(!$)return;let e=w.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},w.map(e=>{let{sensor:t}=e;return t})),H(()=>{e_&&_===A.Initializing&&W(A.Initialized)},[e_,_]),(0,I.useEffect)(()=>{let{onDragMove:e}=eu.current,{active:t,activatorEvent:r,collisions:n,over:a}=e$.current;if(!t||!r)return;let l={active:t,activatorEvent:r,collisions:n,delta:{x:tu.x,y:tu.y},over:a};(0,F.unstable_batchedUpdates)(()=>{null==e||e(l),P({type:"onDragMove",event:l})})},[tu.x,tu.y]),(0,I.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:r,droppableContainers:n,scrollAdjustedTranslate:a}=e$.current;if(!e||null==ea.current||!t||!a)return;let{onDragOver:l}=eu.current,i=n.get(tp),o=i&&i.rect.current?{id:i.id,rect:i.rect.current,data:i.data,disabled:i.disabled}:null,s={active:e,activatorEvent:t,collisions:r,delta:{x:a.x,y:a.y},over:o};(0,F.unstable_batchedUpdates)(()=>{tm(o),null==l||l(s),P({type:"onDragOver",event:s})})},[tp]),H(()=>{e$.current={activatorEvent:es,active:en,activeNode:ek,collisionRect:td,collisions:tf,droppableRects:ev,draggableNodes:X,draggingNode:ez,draggingNodeRect:eU,droppableContainers:V,over:th,scrollableAncestors:eH,scrollAdjustedTranslate:tu},et.current={initial:eU,translated:td}},[en,ek,tf,td,X,ez,eU,ev,V,th,eH,tu]),function(e){let t,{acceleration:r,activator:n=R.Pointer,canScroll:a,draggingRect:l,enabled:i,interval:o=5,order:s=M.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e,h=function(e){let{delta:t,disabled:r}=e,n=G(t);return J(e=>{if(r||!n||!e)return eJ;let a={x:Math.sign(t.x-n.x),y:Math.sign(t.y-n.y)};return{x:{[E.Backward]:e.x[E.Backward]||-1===a.x,[E.Forward]:e.x[E.Forward]||1===a.x},y:{[E.Backward]:e.y[E.Backward]||-1===a.y,[E.Forward]:e.y[E.Forward]||1===a.y}}},[r,t,n])}({delta:f,disabled:!i}),[m,g]=(t=(0,I.useRef)(null),[(0,I.useCallback)((e,r)=>{t.current=setInterval(e,r)},[]),(0,I.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]),v=(0,I.useRef)({x:0,y:0}),x=(0,I.useRef)({x:0,y:0}),b=(0,I.useMemo)(()=>{switch(n){case R.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case R.DraggableRect:return l}},[n,l,c]),y=(0,I.useRef)(null),w=(0,I.useCallback)(()=>{let e=y.current;if(!e)return;let t=v.current.x*x.current.x,r=v.current.y*x.current.y;e.scrollBy(t,r)},[]),j=(0,I.useMemo)(()=>s===M.TreeOrder?[...u].reverse():u,[s,u]);(0,I.useEffect)(()=>{if(!i||!u.length||!b)return void g();for(let e of j){if((null==a?void 0:a(e))===!1)continue;let t=d[u.indexOf(e)];if(!t)continue;let{direction:n,speed:l}=function(e,t,r,n,a){let{top:l,left:i,right:o,bottom:s}=r;void 0===n&&(n=10),void 0===a&&(a=eA);let{isTop:c,isBottom:u,isLeft:d,isRight:f}=eO(e),p={x:0,y:0},h={x:0,y:0},m={height:t.height*a.y,width:t.width*a.x};return!c&&l<=t.top+m.height?(p.y=E.Backward,h.y=n*Math.abs((t.top+m.height-l)/m.height)):!u&&s>=t.bottom-m.height&&(p.y=E.Forward,h.y=n*Math.abs((t.bottom-m.height-s)/m.height)),!f&&o>=t.right-m.width?(p.x=E.Forward,h.x=n*Math.abs((t.right-m.width-o)/m.width)):!d&&i<=t.left+m.width&&(p.x=E.Backward,h.x=n*Math.abs((t.left+m.width-i)/m.width)),{direction:p,speed:h}}(e,t,b,r,p);for(let e of["x","y"])h[e][n[e]]||(l[e]=0,n[e]=0);if(l.x>0||l.y>0){g(),y.current=e,m(w,o),v.current=l,x.current=n;return}}v.current={x:0,y:0},x.current={x:0,y:0},g()},[r,w,a,g,i,o,JSON.stringify(b),JSON.stringify(h),m,u,j,d,JSON.stringify(p)])}({...eR,delta:Y,draggingRect:td,pointerCoordinates:e0,scrollableAncestors:eH,scrollableAncestorRects:eV});let tw=(0,I.useMemo)(()=>({active:en,activeNode:ek,activeNodeRect:e_,activatorEvent:es,collisions:tf,containerNodeRect:eF,dragOverlay:eB,draggableNodes:X,droppableContainers:V,droppableRects:ev,over:th,measureDroppableContainers:ew,scrollableAncestors:eH,scrollableAncestorRects:eV,measuringConfiguration:em,measuringScheduled:ej,windowRect:eY}),[en,ek,e_,es,tf,eF,eB,X,V,ev,th,ew,eH,eV,em,ej,eY]),tj=(0,I.useMemo)(()=>({activatorEvent:es,activators:ty,active:en,activeNodeRect:e_,ariaDescribedById:{draggable:ef},dispatch:O,draggableNodes:X,over:th,measureDroppableContainers:ew}),[es,ty,en,e_,O,ef,X,th,ew]);return I.default.createElement(ed.Provider,{value:L},I.default.createElement(tn.Provider,{value:tj},I.default.createElement(ta.Provider,{value:tw},I.default.createElement(tc.Provider,{value:tg},y)),I.default.createElement(to,{disabled:(null==x?void 0:x.restoreFocus)===!1})),I.default.createElement(eh,{...x,hiddenTextDescribedById:ef}))}),td=(0,I.createContext)(null),tf="button";function tp(){return(0,I.useContext)(ta)}let th={timeout:25};function tm(e){let{data:t,disabled:r=!1,id:n,resizeObserverConfig:a}=e,l=ee("Droppable"),{active:i,dispatch:o,over:s,measureDroppableContainers:c}=(0,I.useContext)(tn),u=(0,I.useRef)({disabled:r}),d=(0,I.useRef)(!1),f=(0,I.useRef)(null),p=(0,I.useRef)(null),{disabled:h,updateMeasurementsFor:m,timeout:g}={...th,...a},v=q(null!=m?m:n),x=eQ({callback:(0,I.useCallback)(()=>{if(!d.current){d.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{c(Array.isArray(v.current)?v.current:[v.current]),p.current=null},g)},[g]),disabled:h||!i}),[b,y]=Z((0,I.useCallback)((e,t)=>{x&&(t&&(x.unobserve(t),d.current=!1),e&&x.observe(e))},[x])),w=q(t);return(0,I.useEffect)(()=>{x&&b.current&&(x.disconnect(),d.current=!1,x.observe(b.current))},[b,x]),(0,I.useEffect)(()=>(o({type:k.RegisterDroppable,element:{id:n,key:l,disabled:r,node:b,rect:f,data:w}}),()=>o({type:k.UnregisterDroppable,key:l,id:n})),[n]),(0,I.useEffect)(()=>{r!==u.current.disabled&&(o({type:k.SetDroppableDisabled,id:n,key:l,disabled:r}),u.current.disabled=r)},[n,l,r,o]),{active:i,rect:f,isOver:(null==s?void 0:s.id)===n,node:b,over:s,setNodeRef:y}}function tg(e){let{animation:t,children:r}=e,[n,a]=(0,I.useState)(null),[l,i]=(0,I.useState)(null),o=G(r);return r||n||!o||a(o),H(()=>{if(!l)return;let e=null==n?void 0:n.key,r=null==n?void 0:n.props.id;null==e||null==r?a(null):Promise.resolve(t(r,l)).then(()=>{a(null)})},[t,n,l]),I.default.createElement(I.default.Fragment,null,r,n?(0,I.cloneElement)(n,{ref:i}):null)}let tv={x:0,y:0,scaleX:1,scaleY:1};function tx(e){let{children:t}=e;return I.default.createElement(tn.Provider,{value:tr},I.default.createElement(tc.Provider,{value:tv},t))}let tb={position:"fixed",touchAction:"none"},ty=e=>ea(e)?"transform 250ms ease":void 0,tw=(0,I.forwardRef)((e,t)=>{let{as:r,activatorEvent:n,adjustScale:a,children:l,className:i,rect:o,style:s,transform:c,transition:u=ty}=e;if(!o)return null;let d=a?c:{...c,scaleX:1,scaleY:1},f={...tb,width:o.width,height:o.height,top:o.top,left:o.left,transform:ei.Transform.toString(d),transformOrigin:a&&n?function(e,t){let r=el(e);if(!r)return"0 0";let n={x:(r.x-t.left)/t.width*100,y:(r.y-t.top)/t.height*100};return n.x+"% "+n.y+"%"}(n,o):void 0,transition:"function"==typeof u?u(n):u,...s};return I.default.createElement(r,{className:i,style:f,ref:t},l)}),tj={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:r}}=e;return[{transform:ei.Transform.toString(t)},{transform:ei.Transform.toString(r)}]},sideEffects:(t={styles:{active:{opacity:"0"}}},e=>{let{active:r,dragOverlay:n}=e,a={},{styles:l,className:i}=t;if(null!=l&&l.active)for(let[e,t]of Object.entries(l.active))void 0!==t&&(a[e]=r.node.style.getPropertyValue(e),r.node.style.setProperty(e,t));if(null!=l&&l.dragOverlay)for(let[e,t]of Object.entries(l.dragOverlay))void 0!==t&&n.node.style.setProperty(e,t);return null!=i&&i.active&&r.node.classList.add(i.active),null!=i&&i.dragOverlay&&n.node.classList.add(i.dragOverlay),function(){for(let[e,t]of Object.entries(a))r.node.style.setProperty(e,t);null!=i&&i.active&&r.node.classList.remove(i.active)}})},tN=0,tk=I.default.memo(e=>{var t;let{adjustScale:r=!1,children:n,dropAnimation:a,style:l,transition:i,modifiers:o,wrapperElement:s="div",className:c,zIndex:u=999}=e,{activatorEvent:d,active:f,activeNodeRect:p,containerNodeRect:h,draggableNodes:m,droppableContainers:g,dragOverlay:v,over:x,measuringConfiguration:b,scrollableAncestors:y,scrollableAncestorRects:w,windowRect:j}=tp(),N=(0,I.useContext)(tc),k=(t=null==f?void 0:f.id,(0,I.useMemo)(()=>{if(null!=t)return++tN},[t])),E=ts(o,{activatorEvent:d,active:f,activeNodeRect:p,containerNodeRect:h,draggingNodeRect:v.rect,over:x,overlayNodeRect:v.rect,scrollableAncestors:y,scrollableAncestorRects:w,transform:N,windowRect:j}),C=eG(p),S=function(e){let{config:t,draggableNodes:r,droppableContainers:n,measuringConfiguration:a}=e;return V((e,l)=>{if(null===t)return;let i=r.get(e);if(!i)return;let o=i.node.current;if(!o)return;let s=e6(l);if(!s)return;let{transform:c}=z(l).getComputedStyle(l),u=ew(c);if(!u)return;let d="function"==typeof t?t:function(e){let{duration:t,easing:r,sideEffects:n,keyframes:a}={...tj,...e};return e=>{let{active:l,dragOverlay:i,transform:o,...s}=e;if(!t)return;let c={x:i.rect.left-l.rect.left,y:i.rect.top-l.rect.top},u={scaleX:1!==o.scaleX?l.rect.width*o.scaleX/i.rect.width:1,scaleY:1!==o.scaleY?l.rect.height*o.scaleY/i.rect.height:1},d={x:o.x-c.x,y:o.y-c.y,...u},f=a({...s,active:l,dragOverlay:i,transform:{initial:o,final:d}}),[p]=f,h=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(h))return;let m=null==n?void 0:n({active:l,dragOverlay:i,...s}),g=i.node.animate(f,{duration:t,easing:r,fill:"forwards"});return new Promise(e=>{g.onfinish=()=>{null==m||m(),e()}})}}(t);return eL(o,a.draggable.measure),d({active:{id:e,data:i.data,node:o,rect:a.draggable.measure(o)},draggableNodes:r,dragOverlay:{node:l,rect:a.dragOverlay.measure(s)},droppableContainers:n,measuringConfiguration:a,transform:u})})}({config:a,draggableNodes:m,droppableContainers:g,measuringConfiguration:b}),D=C?v.setRef:void 0;return I.default.createElement(tx,null,I.default.createElement(tg,{animation:S},f&&k?I.default.createElement(tw,{key:k,id:f.id,ref:D,as:s,activatorEvent:d,adjustScale:r,className:c,transition:i,rect:C,style:{zIndex:u,...l},transform:E},n):null))});function tE(e,t,r){let n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n}function tC(e){return null!==e&&e>=0}let tS=e=>{let{rects:t,activeIndex:r,overIndex:n,index:a}=e,l=tE(t,n,r),i=t[a],o=l[a];return o&&i?{x:o.left-i.left,y:o.top-i.top,scaleX:o.width/i.width,scaleY:o.height/i.height}:null},tD={scaleX:1,scaleY:1},tR=e=>{var t,r,n,a;let l,i,o,{activeIndex:s,activeNodeRect:c,index:u,rects:d,overIndex:f}=e,p=null!=(t=d[s])?t:c;if(!p)return null;if(u===s){let e=d[f];return e?{x:0,y:s<f?e.top+e.height-(p.top+p.height):e.top-p.top,...tD}:null}let h=(r=d,n=u,a=s,l=r[n],i=r[n-1],o=r[n+1],l?a<n?i?l.top-(i.top+i.height):o?o.top-(l.top+l.height):0:o?o.top-(l.top+l.height):i?l.top-(i.top+i.height):0:0);return u>s&&u<=f?{x:0,y:-p.height-h,...tD}:u<s&&u>=f?{x:0,y:p.height+h,...tD}:{x:0,y:0,...tD}},tM="Sortable",tT=I.default.createContext({activeIndex:-1,containerId:tM,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:tS,disabled:{draggable:!1,droppable:!1}});function tO(e){let{children:t,id:r,items:n,strategy:a=tS,disabled:l=!1}=e,{active:i,dragOverlay:o,droppableRects:s,over:c,measureDroppableContainers:u}=tp(),d=ee(tM,r),f=null!==o.rect,p=(0,I.useMemo)(()=>n.map(e=>"object"==typeof e&&"id"in e?e.id:e),[n]),h=null!=i,m=i?p.indexOf(i.id):-1,g=c?p.indexOf(c.id):-1,v=(0,I.useRef)(p),x=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(p,v.current),b=-1!==g&&-1===m||x,y="boolean"==typeof l?{draggable:l,droppable:l}:l;H(()=>{x&&h&&u(p)},[x,p,h,u]),(0,I.useEffect)(()=>{v.current=p},[p]);let w=(0,I.useMemo)(()=>({activeIndex:m,containerId:d,disabled:y,disableTransforms:b,items:p,overIndex:g,useDragOverlay:f,sortedRects:p.reduce((e,t,r)=>{let n=s.get(t);return n&&(e[r]=n),e},Array(p.length)),strategy:a}),[m,d,y.draggable,y.droppable,b,p,g,s,f,a]);return I.default.createElement(tT.Provider,{value:w},t)}let tA=e=>{let{id:t,items:r,activeIndex:n,overIndex:a}=e;return tE(r,n,a).indexOf(t)},tP=e=>{let{containerId:t,isSorting:r,wasDragging:n,index:a,items:l,newIndex:i,previousItems:o,previousContainerId:s,transition:c}=e;return!!c&&!!n&&(o===l||a!==i)&&(!!r||i!==a&&t===s)},tL={duration:200,easing:"ease"},t_="transform",tI=ei.Transition.toString({property:t_,duration:0,easing:"linear"}),tF={roleDescription:"sortable"};S.Down,S.Right,S.Up,S.Left;var t$=e.i(75157);let tW=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("div",{ref:r,className:(0,t$.cn)("border-3 border-black bg-white neubrutalism-shadow",e),...t}));tW.displayName="Card";let tB=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("div",{ref:r,className:(0,t$.cn)("flex flex-col space-y-1.5 p-6",e),...t}));tB.displayName="CardHeader";let tz=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("h3",{ref:r,className:(0,t$.cn)("font-bold uppercase tracking-wide leading-none",e),...t}));tz.displayName="CardTitle",I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("p",{ref:r,className:(0,t$.cn)("text-sm text-muted-foreground",e),...t})).displayName="CardDescription";let tU=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("div",{ref:r,className:(0,t$.cn)("p-6 pt-0",e),...t}));tU.displayName="CardContent",I.forwardRef(({className:e,...t},r)=>(0,_.jsx)("div",{ref:r,className:(0,t$.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter";let tK=(0,e.i(25913).cva)("inline-flex items-center border-2 border-black px-3 py-1 text-xs font-bold uppercase tracking-wide shadow-[2px_2px_0px_0px_rgba(0,0,0,1)]",{variants:{variant:{default:"bg-[--color-primary] text-black",secondary:"bg-[--color-secondary] text-black",destructive:"bg-[--color-accent] text-black",outline:"bg-white text-black"}},defaultVariants:{variant:"default"}});function tX({className:e,variant:t,...r}){return(0,_.jsx)("div",{className:(0,t$.cn)(tK({variant:t}),e),...r})}var tY=e.i(19455);let tH=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),tV=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var tq={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let tJ=(0,I.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:l,iconNode:i,...o},s)=>(0,I.createElement)("svg",{ref:s,...tq,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:tH("lucide",a),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(o)&&{"aria-hidden":"true"},...o},[...i.map(([e,t])=>(0,I.createElement)(e,t)),...Array.isArray(l)?l:[l]])),tZ=(e,t)=>{let r=(0,I.forwardRef)(({className:r,...n},a)=>(0,I.createElement)(tJ,{ref:a,iconNode:t,className:tH(`lucide-${tV(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...n}));return r.displayName=tV(e),r},tG=tZ("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),tQ=tZ("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),t0=tZ("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),t1=tZ("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),t2=tZ("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);function t4(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}"u">typeof window&&window.document&&window.document.createElement;var t3=e.i(20783),t5=globalThis?.document?I.useLayoutEffect:()=>{},t6=I[" useId ".trim().toString()]||(()=>void 0),t8=0;function t7(e){let[t,r]=I.useState(t6());return t5(()=>{e||r(e=>e??String(t8++))},[e]),e||(t?`radix-${t}`:"")}I[" useEffectEvent ".trim().toString()],I[" useInsertionEffect ".trim().toString()];var t9=I[" useInsertionEffect ".trim().toString()]||t5;Symbol("RADIX:SYNC_STATE");var re=Symbol("radix.slottable");function rt(e){return I.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===re}var rr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var r,n;let a,l,i,o=(n=r=`Primitive.${t}`,(a=I.forwardRef((e,t)=>{let{children:r,...n}=e;if(I.isValidElement(r)){var a;let e,l,i=(a=r,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let r={...t};for(let n in t){let a=e[n],l=t[n];/^on[A-Z]/.test(n)?a&&l?r[n]=(...e)=>{let t=l(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...l}:"className"===n&&(r[n]=[a,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==I.Fragment&&(o.ref=t?(0,t3.composeRefs)(t,i):i),I.cloneElement(r,o)}return I.Children.count(r)>1?I.Children.only(null):null})).displayName=`${n}.SlotClone`,l=a,(i=I.forwardRef((e,t)=>{let{children:r,...n}=e,a=I.Children.toArray(r),i=a.find(rt);if(i){let e=i.props.children,r=a.map(t=>t!==i?t:I.Children.count(e)>1?I.Children.only(null):I.isValidElement(e)?e.props.children:null);return(0,_.jsx)(l,{...n,ref:t,children:I.isValidElement(e)?I.cloneElement(e,void 0,r):null})}return(0,_.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),s=I.forwardRef((e,r)=>{let{asChild:n,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,_.jsx)(n?o:t,{...a,ref:r})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{});function rn(e){let t=I.useRef(e);return I.useEffect(()=>{t.current=e}),I.useMemo(()=>(...e)=>t.current?.(...e),[])}var ra="dismissableLayer.update",rl=I.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ri=I.forwardRef((e,t)=>{let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:a,onFocusOutside:l,onInteractOutside:i,onDismiss:o,...s}=e,c=I.useContext(rl),[u,d]=I.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=I.useState({}),h=(0,t3.useComposedRefs)(t,e=>d(e)),m=Array.from(c.layers),[g]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),v=m.indexOf(g),x=u?m.indexOf(u):-1,b=c.layersWithOutsidePointerEventsDisabled.size>0,y=x>=v,w=function(e,t=globalThis?.document){let r=rn(e),n=I.useRef(!1),a=I.useRef(()=>{});return I.useEffect(()=>{let e=e=>{if(e.target&&!n.current){let n=function(){rs("dismissableLayer.pointerDownOutside",r,l,{discrete:!0})},l={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=n,t.addEventListener("click",a.current,{once:!0})):n()}else t.removeEventListener("click",a.current);n.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,r=[...c.branches].some(e=>e.contains(t));y&&!r&&(a?.(e),i?.(e),e.defaultPrevented||o?.())},f),j=function(e,t=globalThis?.document){let r=rn(e),n=I.useRef(!1);return I.useEffect(()=>{let e=e=>{e.target&&!n.current&&rs("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;![...c.branches].some(e=>e.contains(t))&&(l?.(e),i?.(e),e.defaultPrevented||o?.())},f);return!function(e,t=globalThis?.document){let r=rn(e);I.useEffect(()=>{let e=e=>{"Escape"===e.key&&r(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[r,t])}(e=>{x===c.layers.size-1&&(n?.(e),!e.defaultPrevented&&o&&(e.preventDefault(),o()))},f),I.useEffect(()=>{if(u)return r&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(P=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),ro(),()=>{r&&1===c.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=P)}},[u,f,r,c]),I.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),ro())},[u,c]),I.useEffect(()=>{let e=()=>p({});return document.addEventListener(ra,e),()=>document.removeEventListener(ra,e)},[]),(0,_.jsx)(rr.div,{...s,ref:h,style:{pointerEvents:b?y?"auto":"none":void 0,...e.style},onFocusCapture:t4(e.onFocusCapture,j.onFocusCapture),onBlurCapture:t4(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:t4(e.onPointerDownCapture,w.onPointerDownCapture)})});function ro(){let e=new CustomEvent(ra);document.dispatchEvent(e)}function rs(e,t,r,{discrete:n}){let a=r.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});if(t&&a.addEventListener(e,t,{once:!0}),n)a&&F.flushSync(()=>a.dispatchEvent(l));else a.dispatchEvent(l)}ri.displayName="DismissableLayer",I.forwardRef((e,t)=>{let r=I.useContext(rl),n=I.useRef(null),a=(0,t3.useComposedRefs)(t,n);return I.useEffect(()=>{let e=n.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,_.jsx)(rr.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var rc="focusScope.autoFocusOnMount",ru="focusScope.autoFocusOnUnmount",rd={bubbles:!1,cancelable:!0},rf=I.forwardRef((e,t)=>{let{loop:r=!1,trapped:n=!1,onMountAutoFocus:a,onUnmountAutoFocus:l,...i}=e,[o,s]=I.useState(null),c=rn(a),u=rn(l),d=I.useRef(null),f=(0,t3.useComposedRefs)(t,e=>s(e)),p=I.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;I.useEffect(()=>{if(n){let e=function(e){if(p.paused||!o)return;let t=e.target;o.contains(t)?d.current=t:rm(d.current,{select:!0})},t=function(e){if(p.paused||!o)return;let t=e.relatedTarget;null!==t&&(o.contains(t)||rm(d.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&rm(o)});return o&&r.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[n,o,p.paused]),I.useEffect(()=>{if(o){rg.add(p);let e=document.activeElement;if(!o.contains(e)){let t=new CustomEvent(rc,rd);o.addEventListener(rc,c),o.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let r=document.activeElement;for(let n of e)if(rm(n,{select:t}),document.activeElement!==r)return}(rp(o).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&rm(o))}return()=>{o.removeEventListener(rc,c),setTimeout(()=>{let t=new CustomEvent(ru,rd);o.addEventListener(ru,u),o.dispatchEvent(t),t.defaultPrevented||rm(e??document.body,{select:!0}),o.removeEventListener(ru,u),rg.remove(p)},0)}}},[o,c,u,p]);let h=I.useCallback(e=>{if(!r&&!n||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){var l;let t,n=e.currentTarget,[i,o]=[rh(t=rp(l=n),l),rh(t.reverse(),l)];i&&o?e.shiftKey||a!==o?e.shiftKey&&a===i&&(e.preventDefault(),r&&rm(o,{select:!0})):(e.preventDefault(),r&&rm(i,{select:!0})):a===n&&e.preventDefault()}},[r,n,p.paused]);return(0,_.jsx)(rr.div,{tabIndex:-1,...i,ref:f,onKeyDown:h})});function rp(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function rh(e,t){for(let r of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(r,{upTo:t}))return r}function rm(e,{select:t=!1}={}){if(e&&e.focus){var r;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(r=e)instanceof HTMLInputElement&&"select"in r&&t&&e.select()}}rf.displayName="FocusScope";var rg=(i=[],{add(e){let t=i[0];e!==t&&t?.pause(),(i=rv(i,e)).unshift(e)},remove(e){i=rv(i,e),i[0]?.resume()}});function rv(e,t){let r=[...e],n=r.indexOf(t);return -1!==n&&r.splice(n,1),r}var rx=I.forwardRef((e,t)=>{let{container:r,...n}=e,[a,l]=I.useState(!1);t5(()=>l(!0),[]);let i=r||a&&globalThis?.document?.body;return i?F.default.createPortal((0,_.jsx)(rr.div,{...n,ref:t}),i):null});rx.displayName="Portal";var rb=e=>{var t;let r,n,{present:a,children:l}=e,i=function(e){var t,r;let[n,a]=I.useState(),l=I.useRef(null),i=I.useRef(e),o=I.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},I.useReducer((e,t)=>r[e][t]??e,t));return I.useEffect(()=>{let e=ry(l.current);o.current="mounted"===s?e:"none"},[s]),t5(()=>{let t=l.current,r=i.current;if(r!==e){let n=o.current,a=ry(t);e?c("MOUNT"):"none"===a||t?.display==="none"?c("UNMOUNT"):r&&n!==a?c("ANIMATION_OUT"):c("UNMOUNT"),i.current=e}},[e,c]),t5(()=>{if(n){let e,t=n.ownerDocument.defaultView??window,r=r=>{let a=ry(l.current).includes(CSS.escape(r.animationName));if(r.target===n&&a&&(c("ANIMATION_END"),!i.current)){let r=n.style.animationFillMode;n.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=r)})}},a=e=>{e.target===n&&(o.current=ry(l.current))};return n.addEventListener("animationstart",a),n.addEventListener("animationcancel",r),n.addEventListener("animationend",r),()=>{t.clearTimeout(e),n.removeEventListener("animationstart",a),n.removeEventListener("animationcancel",r),n.removeEventListener("animationend",r)}}c("ANIMATION_END")},[n,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:I.useCallback(e=>{l.current=e?getComputedStyle(e):null,a(e)},[])}}(a),o="function"==typeof l?l({present:i.isPresent}):I.Children.only(l),s=(0,t3.useComposedRefs)(i.ref,(t=o,(n=(r=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?t.ref:(n=(r=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof l||i.isPresent?I.cloneElement(o,{ref:s}):null};function ry(e){return e?.animationName||"none"}rb.displayName="Presence";var rw=0;function rj(){let 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 rN=function(){return(rN=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function rk(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)0>t.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}var rE=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),rC="width-before-scroll-bar";function rS(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var rD="u">typeof window?I.useLayoutEffect:I.useEffect,rR=new WeakMap,rM=(void 0===v&&(v={}),(void 0===x&&(x=function(e){return e}),b=[],y=!1,w={read:function(){if(y)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return b.length?b[b.length-1]:null},useMedium:function(e){var t=x(e,y);return b.push(t),function(){b=b.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(y=!0;b.length;){var t=b;b=[],t.forEach(e)}b={push:function(t){return e(t)},filter:function(){return b}}},assignMedium:function(e){y=!0;var t=[];if(b.length){var r=b;b=[],r.forEach(e),t=b}var n=function(){var r=t;t=[],r.forEach(e)},a=function(){return Promise.resolve().then(n)};a(),b={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),b}}}}).options=rN({async:!0,ssr:!1},v),w),rT=function(){},rO=I.forwardRef(function(e,t){var r,n,a,l,i=I.useRef(null),o=I.useState({onScrollCapture:rT,onWheelCapture:rT,onTouchMoveCapture:rT}),s=o[0],c=o[1],u=e.forwardProps,d=e.children,f=e.className,p=e.removeScrollBar,h=e.enabled,m=e.shards,g=e.sideCar,v=e.noRelative,x=e.noIsolation,b=e.inert,y=e.allowPinchZoom,w=e.as,j=e.gapMode,N=rk(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),k=(r=[i,t],n=function(e){return r.forEach(function(t){return rS(t,e)})},(a=(0,I.useState)(function(){return{value:null,callback:n,facade:{get current(){return a.value},set current(value){var e=a.value;e!==value&&(a.value=value,a.callback(value,e))}}}})[0]).callback=n,l=a.facade,rD(function(){var e=rR.get(l);if(e){var t=new Set(e),n=new Set(r),a=l.current;t.forEach(function(e){n.has(e)||rS(e,null)}),n.forEach(function(e){t.has(e)||rS(e,a)})}rR.set(l,r)},[r]),l),E=rN(rN({},N),s);return I.createElement(I.Fragment,null,h&&I.createElement(g,{sideCar:rM,removeScrollBar:p,shards:m,noRelative:v,noIsolation:x,inert:b,setCallbacks:c,allowPinchZoom:!!y,lockRef:i,gapMode:j}),u?I.cloneElement(I.Children.only(d),rN(rN({},E),{ref:k})):I.createElement(void 0===w?"div":w,rN({},E,{className:f,ref:k}),d))});rO.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},rO.classNames={fullWidth:rC,zeroRight:rE};var rA=function(e){var t=e.sideCar,r=rk(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return I.createElement(n,rN({},r))};rA.isSideCarExport=!0;var rP=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=L||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,a;(n=t).styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},rL=function(){var e=rP();return function(t,r){I.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},r_=function(){var e=rL();return function(t){return e(t.styles,t.dynamic),null}},rI={left:0,top:0,right:0,gap:0},rF=function(e){return parseInt(e||"",10)||0},r$=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[rF(r),rF(n),rF(a)]},rW=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return rI;var t=r$(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},rB=r_(),rz="data-scroll-locked",rU=function(e,t,r,n){var a=e.left,l=e.top,i=e.right,o=e.gap;return void 0===r&&(r="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(o,"px ").concat(n,";\n }\n body[").concat(rz,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===r&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(l,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(o,"px ").concat(n,";\n "),"padding"===r&&"padding-right: ".concat(o,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(rE," {\n right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(rC," {\n margin-right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(rE," .").concat(rE," {\n right: 0 ").concat(n,";\n }\n \n .").concat(rC," .").concat(rC," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(rz,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(o,"px;\n }\n")},rK=function(){var e=parseInt(document.body.getAttribute(rz)||"0",10);return isFinite(e)?e:0},rX=function(){I.useEffect(function(){return document.body.setAttribute(rz,(rK()+1).toString()),function(){var e=rK()-1;e<=0?document.body.removeAttribute(rz):document.body.setAttribute(rz,e.toString())}},[])},rY=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,a=void 0===n?"margin":n;rX();var l=I.useMemo(function(){return rW(a)},[a]);return I.createElement(rB,{styles:rU(l,!t,a,r?"":"!important")})},rH=!1;if("u">typeof window)try{var rV=Object.defineProperty({},"passive",{get:function(){return rH=!0,!0}});window.addEventListener("test",rV,rV),window.removeEventListener("test",rV,rV)}catch(e){rH=!1}var rq=!!rH&&{passive:!1},rJ=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return"hidden"!==r[t]&&(r.overflowY!==r.overflowX||"TEXTAREA"===e.tagName||"visible"!==r[t])},rZ=function(e,t){var r=t.ownerDocument,n=t;do{if("u">typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),rG(e,n)){var a=rQ(e,n);if(a[1]>a[2])return!0}n=n.parentNode}while(n&&n!==r.body)return!1},rG=function(e,t){return"v"===e?rJ(t,"overflowY"):rJ(t,"overflowX")},rQ=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},r0=function(e,t,r,n,a){var l,i=(l=window.getComputedStyle(t).direction,"h"===e&&"rtl"===l?-1:1),o=i*n,s=r.target,c=t.contains(s),u=!1,d=o>0,f=0,p=0;do{if(!s)break;var h=rQ(e,s),m=h[0],g=h[1]-h[2]-i*m;(m||g)&&rG(e,s)&&(f+=g,p+=m);var v=s.parentNode;s=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!c&&s!==document.body||c&&(t.contains(s)||t===s))return d&&(a&&1>Math.abs(f)||!a&&o>f)?u=!0:!d&&(a&&1>Math.abs(p)||!a&&-o>p)&&(u=!0),u},r1=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},r2=function(e){return[e.deltaX,e.deltaY]},r4=function(e){return e&&"current"in e?e.current:e},r3=0,r5=[];let r6=(j=function(e){var t=I.useRef([]),r=I.useRef([0,0]),n=I.useRef(),a=I.useState(r3++)[0],l=I.useState(r_)[0],i=I.useRef(e);I.useEffect(function(){i.current=e},[e]),I.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=(function(e,t,r){if(r||2==arguments.length)for(var n,a=0,l=t.length;a<l;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(r4),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var o=I.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var a,l=r1(e),o=r.current,s="deltaX"in e?e.deltaX:o[0]-l[0],c="deltaY"in e?e.deltaY:o[1]-l[1],u=e.target,d=Math.abs(s)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var h=rZ(d,u);if(!h)return!0;if(h?a=d:(a="v"===d?"h":"v",h=rZ(d,u)),!h)return!1;if(!n.current&&"changedTouches"in e&&(s||c)&&(n.current=a),!a)return!0;var m=n.current||a;return r0(m,t,e,"h"===m?s:c,!0)},[]),s=I.useCallback(function(e){if(r5.length&&r5[r5.length-1]===l){var r="deltaY"in e?r2(e):r1(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===r[0]&&n[1]===r[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var a=(i.current.shards||[]).map(r4).filter(Boolean).filter(function(t){return t.contains(e.target)});(a.length>0?o(e,a[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=I.useCallback(function(e,r,n,a){var l={name:e,delta:r,target:n,should:a,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(l),setTimeout(function(){t.current=t.current.filter(function(e){return e!==l})},1)},[]),u=I.useCallback(function(e){r.current=r1(e),n.current=void 0},[]),d=I.useCallback(function(t){c(t.type,r2(t),t.target,o(t,e.lockRef.current))},[]),f=I.useCallback(function(t){c(t.type,r1(t),t.target,o(t,e.lockRef.current))},[]);I.useEffect(function(){return r5.push(l),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,rq),document.addEventListener("touchmove",s,rq),document.addEventListener("touchstart",u,rq),function(){r5=r5.filter(function(e){return e!==l}),document.removeEventListener("wheel",s,rq),document.removeEventListener("touchmove",s,rq),document.removeEventListener("touchstart",u,rq)}},[]);var p=e.removeScrollBar,h=e.inert;return I.createElement(I.Fragment,null,h?I.createElement(l,{styles:"\n .block-interactivity-".concat(a," {pointer-events: none;}\n .allow-interactivity-").concat(a," {pointer-events: all;}\n")}):null,p?I.createElement(rY,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},rM.useMedium(j),rA);var r8=I.forwardRef(function(e,t){return I.createElement(rO,rN({},e,{ref:t,sideCar:r6}))});r8.classNames=rO.classNames;var r7=new WeakMap,r9=new WeakMap,ne={},nt=0,nr=function(e){return e&&(e.host||nr(e.parentNode))},nn=function(e,t,r,n){var a=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var r=nr(e);return r&&t.contains(r)?r:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});ne[r]||(ne[r]=new WeakMap);var l=ne[r],i=[],o=new Set,s=new Set(a),c=function(e){!e||o.has(e)||(o.add(e),c(e.parentNode))};a.forEach(c);var u=function(e){!e||s.has(e)||Array.prototype.forEach.call(e.children,function(e){if(o.has(e))u(e);else try{var t=e.getAttribute(n),a=null!==t&&"false"!==t,s=(r7.get(e)||0)+1,c=(l.get(e)||0)+1;r7.set(e,s),l.set(e,c),i.push(e),1===s&&a&&r9.set(e,!0),1===c&&e.setAttribute(r,"true"),a||e.setAttribute(n,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return u(t),o.clear(),nt++,function(){i.forEach(function(e){var t=r7.get(e)-1,a=l.get(e)-1;r7.set(e,t),l.set(e,a),t||(r9.has(e)||e.removeAttribute(n),r9.delete(e)),a||e.removeAttribute(r)}),--nt||(r7=new WeakMap,r7=new WeakMap,r9=new WeakMap,ne={})}},na=function(e,t,r){void 0===r&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),a=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return a?(n.push.apply(n,Array.from(a.querySelectorAll("[aria-live], script"))),nn(n,a,r,"aria-hidden")):function(){return null}},nl=Symbol("radix.slottable");function ni(e){return I.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===nl}var no="Dialog",[ns,nc]=function(e,t=[]){let r=[],n=()=>{let t=r.map(e=>I.createContext(e));return function(r){let n=r?.[e]||t;return I.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let a=I.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,o=r?.[e]?.[l]||a,s=I.useMemo(()=>i,Object.values(i));return(0,_.jsx)(o.Provider,{value:s,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let o=i?.[e]?.[l]||a,s=I.useContext(o);if(s)return s;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let a=r(e)[`__scope${n}`];return{...t,...a}},{});return I.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}(no),[nu,nd]=ns(no),nf=e=>{let{__scopeDialog:t,children:r,open:n,defaultOpen:a,onOpenChange:l,modal:i=!0}=e,o=I.useRef(null),s=I.useRef(null),[c,u]=function({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[a,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=I.useState(e),a=I.useRef(r),l=I.useRef(t);return t9(()=>{l.current=t},[t]),I.useEffect(()=>{a.current!==r&&(l.current?.(r),a.current=r)},[r,a]),[r,n,l]}({defaultProp:t,onChange:r}),o=void 0!==e,s=o?e:a;{let t=I.useRef(void 0!==e);I.useEffect(()=>{let e=t.current;if(e!==o){let t=o?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. 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.`)}t.current=o},[o,n])}return[s,I.useCallback(t=>{if(o){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[o,e,l,i])]}({prop:n,defaultProp:a??!1,onChange:l,caller:no});return(0,_.jsx)(nu,{scope:t,triggerRef:o,contentRef:s,contentId:t7(),titleId:t7(),descriptionId:t7(),open:c,onOpenChange:u,onOpenToggle:I.useCallback(()=>u(e=>!e),[u]),modal:i,children:r})};nf.displayName=no;var np="DialogTrigger";I.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(np,r),l=(0,t3.useComposedRefs)(t,a.triggerRef);return(0,_.jsx)(rr.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":nA(a.open),...n,ref:l,onClick:t4(e.onClick,a.onOpenToggle)})}).displayName=np;var nh="DialogPortal",[nm,ng]=ns(nh,{forceMount:void 0}),nv=e=>{let{__scopeDialog:t,forceMount:r,children:n,container:a}=e,l=nd(nh,t);return(0,_.jsx)(nm,{scope:t,forceMount:r,children:I.Children.map(n,e=>(0,_.jsx)(rb,{present:r||l.open,children:(0,_.jsx)(rx,{asChild:!0,container:a,children:e})}))})};nv.displayName=nh;var nx="DialogOverlay",nb=I.forwardRef((e,t)=>{let r=ng(nx,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,l=nd(nx,e.__scopeDialog);return l.modal?(0,_.jsx)(rb,{present:n||l.open,children:(0,_.jsx)(nw,{...a,ref:t})}):null});nb.displayName=nx;var ny=((o=I.forwardRef((e,t)=>{let{children:r,...n}=e;if(I.isValidElement(r)){var a;let e,l,i=(a=r,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let r={...t};for(let n in t){let a=e[n],l=t[n];/^on[A-Z]/.test(n)?a&&l?r[n]=(...e)=>{let t=l(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...l}:"className"===n&&(r[n]=[a,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==I.Fragment&&(o.ref=t?(0,t3.composeRefs)(t,i):i),I.cloneElement(r,o)}return I.Children.count(r)>1?I.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",r=o,(n=I.forwardRef((e,t)=>{let{children:n,...a}=e,l=I.Children.toArray(n),i=l.find(ni);if(i){let e=i.props.children,n=l.map(t=>t!==i?t:I.Children.count(e)>1?I.Children.only(null):I.isValidElement(e)?e.props.children:null);return(0,_.jsx)(r,{...a,ref:t,children:I.isValidElement(e)?I.cloneElement(e,void 0,n):null})}return(0,_.jsx)(r,{...a,ref:t,children:n})})).displayName="DialogOverlay.RemoveScroll.Slot",n),nw=I.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nx,r);return(0,_.jsx)(r8,{as:ny,allowPinchZoom:!0,shards:[a.contentRef],children:(0,_.jsx)(rr.div,{"data-state":nA(a.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),nj="DialogContent",nN=I.forwardRef((e,t)=>{let r=ng(nj,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,l=nd(nj,e.__scopeDialog);return(0,_.jsx)(rb,{present:n||l.open,children:l.modal?(0,_.jsx)(nk,{...a,ref:t}):(0,_.jsx)(nE,{...a,ref:t})})});nN.displayName=nj;var nk=I.forwardRef((e,t)=>{let r=nd(nj,e.__scopeDialog),n=I.useRef(null),a=(0,t3.useComposedRefs)(t,r.contentRef,n);return I.useEffect(()=>{let e=n.current;if(e)return na(e)},[]),(0,_.jsx)(nC,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:t4(e.onCloseAutoFocus,e=>{e.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:t4(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:t4(e.onFocusOutside,e=>e.preventDefault())})}),nE=I.forwardRef((e,t)=>{let r=nd(nj,e.__scopeDialog),n=I.useRef(!1),a=I.useRef(!1);return(0,_.jsx)(nC,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||r.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let l=t.target;r.triggerRef.current?.contains(l)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),nC=I.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:a,onCloseAutoFocus:l,...i}=e,o=nd(nj,r),s=I.useRef(null),c=(0,t3.useComposedRefs)(t,s);return I.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??rj()),document.body.insertAdjacentElement("beforeend",e[1]??rj()),rw++,()=>{1===rw&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),rw--}},[]),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(rf,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:a,onUnmountAutoFocus:l,children:(0,_.jsx)(ri,{role:"dialog",id:o.contentId,"aria-describedby":o.descriptionId,"aria-labelledby":o.titleId,"data-state":nA(o.open),...i,ref:c,onDismiss:()=>o.onOpenChange(!1)})}),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(nI,{titleId:o.titleId}),(0,_.jsx)(nF,{contentRef:s,descriptionId:o.descriptionId})]})]})}),nS="DialogTitle",nD=I.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nS,r);return(0,_.jsx)(rr.h2,{id:a.titleId,...n,ref:t})});nD.displayName=nS;var nR="DialogDescription",nM=I.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nR,r);return(0,_.jsx)(rr.p,{id:a.descriptionId,...n,ref:t})});nM.displayName=nR;var nT="DialogClose",nO=I.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nT,r);return(0,_.jsx)(rr.button,{type:"button",...n,ref:t,onClick:t4(e.onClick,()=>a.onOpenChange(!1))})});function nA(e){return e?"open":"closed"}nO.displayName=nT;var nP="DialogTitleWarning",[nL,n_]=(N={contentName:nj,titleName:nS,docsSlug:"dialog"},a=I.createContext(N),(l=e=>{let{children:t,...r}=e,n=I.useMemo(()=>r,Object.values(r));return(0,_.jsx)(a.Provider,{value:n,children:t})}).displayName=nP+"Provider",[l,function(e){let t=I.useContext(a);if(t)return t;if(void 0!==N)return N;throw Error(`\`${e}\` must be used within \`${nP}\``)}]),nI=({titleId:e})=>{let t=n_(nP),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7088,e=>{"use strict";let t,r,n,a,l,i,o;var s,c,u,d,f,p,h,m,g,v,x,b,y,w,N,j,k,E,C,S,D,R,M,T,O,A,P,L,I=e.i(18050),_=e.i(71645),F=e.i(74080);let $="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function B(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function W(e){return"nodeType"in e}function z(e){var t,r;return e?B(e)?e:W(e)&&null!=(t=null==(r=e.ownerDocument)?void 0:r.defaultView)?t:window:window}function U(e){let{Document:t}=z(e);return e instanceof t}function K(e){return!B(e)&&e instanceof z(e).HTMLElement}function X(e){return e instanceof z(e).SVGElement}function Y(e){return e?B(e)?e.document:W(e)?U(e)?e:K(e)||X(e)?e.ownerDocument:document:document:document}let H=$?_.useLayoutEffect:_.useEffect;function V(e){let t=(0,_.useRef)(e);return H(()=>{t.current=e}),(0,_.useCallback)(function(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];return null==t.current?void 0:t.current(...r)},[])}function q(e,t){void 0===t&&(t=[e]);let r=(0,_.useRef)(e);return H(()=>{r.current!==e&&(r.current=e)},t),r}function J(e,t){let r=(0,_.useRef)();return(0,_.useMemo)(()=>{let t=e(r.current);return r.current=t,t},[...t])}function Z(e){let t=V(e),r=(0,_.useRef)(null),n=(0,_.useCallback)(e=>{e!==r.current&&(null==t||t(e,r.current)),r.current=e},[]);return[r,n]}function G(e){let t=(0,_.useRef)();return(0,_.useEffect)(()=>{t.current=e},[e]),t.current}let Q={};function ee(e,t){return(0,_.useMemo)(()=>{if(t)return t;let r=null==Q[e]?0:Q[e]+1;return Q[e]=r,e+"-"+r},[e,t])}function et(e){return function(t){for(var r=arguments.length,n=Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];return n.reduce((t,r)=>{for(let[n,a]of Object.entries(r)){let r=t[n];null!=r&&(t[n]=r+e*a)}return t},{...t})}}let er=et(1),en=et(-1);function ea(e){if(!e)return!1;let{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function el(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=z(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:r}=e.touches[0];return{x:t,y:r}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:r}=e.changedTouches[0];return{x:t,y:r}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let ei=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:r}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(r?Math.round(r):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:r}=e;return"scaleX("+t+") scaleY("+r+")"}},Transform:{toString(e){if(e)return[ei.Translate.toString(e),ei.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:r,easing:n}=e;return t+" "+r+"ms "+n}}}),eo="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",es={display:"none"};function ec(e){let{id:t,value:r}=e;return _.default.createElement("div",{id:t,style:es},r)}function eu(e){let{id:t,announcement:r,ariaLiveType:n="assertive"}=e;return _.default.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":n,"aria-atomic":!0},r)}let ed=(0,_.createContext)(null),ef={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},ep={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:r}=e;return r?"Draggable item "+t.id+" was moved over droppable area "+r.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:r}=e;return r?"Draggable item "+t.id+" was dropped over droppable area "+r.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function eh(e){var t;let r,{announcements:n=ep,container:a,hiddenTextDescribedById:l,screenReaderInstructions:i=ef}=e,{announce:o,announcement:s}=function(){let[e,t]=(0,_.useState)("");return{announce:(0,_.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),c=ee("DndLiveRegion"),[u,d]=(0,_.useState)(!1);if((0,_.useEffect)(()=>{d(!0)},[]),t=(0,_.useMemo)(()=>({onDragStart(e){let{active:t}=e;o(n.onDragStart({active:t}))},onDragMove(e){let{active:t,over:r}=e;n.onDragMove&&o(n.onDragMove({active:t,over:r}))},onDragOver(e){let{active:t,over:r}=e;o(n.onDragOver({active:t,over:r}))},onDragEnd(e){let{active:t,over:r}=e;o(n.onDragEnd({active:t,over:r}))},onDragCancel(e){let{active:t,over:r}=e;o(n.onDragCancel({active:t,over:r}))}}),[o,n]),r=(0,_.useContext)(ed),(0,_.useEffect)(()=>{if(!r)throw Error("useDndMonitor must be used within a children of <DndContext>");return r(t)},[t,r]),!u)return null;let f=_.default.createElement(_.default.Fragment,null,_.default.createElement(ec,{id:l,value:i.draggable}),_.default.createElement(eu,{id:c,announcement:s}));return a?(0,F.createPortal)(f,a):f}function em(){}(s=k||(k={})).DragStart="dragStart",s.DragMove="dragMove",s.DragEnd="dragEnd",s.DragCancel="dragCancel",s.DragOver="dragOver",s.RegisterDroppable="registerDroppable",s.SetDroppableDisabled="setDroppableDisabled",s.UnregisterDroppable="unregisterDroppable";let eg=Object.freeze({x:0,y:0});function ev(e,t){let{data:{value:r}}=e,{data:{value:n}}=t;return n-r}let ex=e=>{let{collisionRect:t,droppableRects:r,droppableContainers:n}=e,a=[];for(let e of n){let{id:n}=e,l=r.get(n);if(l){let r=function(e,t){let r=Math.max(t.top,e.top),n=Math.max(t.left,e.left),a=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height);if(n<a&&r<l){let i=t.width*t.height,o=e.width*e.height,s=(a-n)*(l-r);return Number((s/(i+o-s)).toFixed(4))}return 0}(l,t);r>0&&a.push({id:n,data:{droppableContainer:e,value:r}})}}return a.sort(ev)};function eb(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:eg}let ey=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return r.reduce((e,t)=>({...e,top:e.top+ +t.y,bottom:e.bottom+ +t.y,left:e.left+ +t.x,right:e.right+ +t.x}),{...e})};function ew(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}let eN={ignoreTransform:!1};function ej(e,t){void 0===t&&(t=eN);let r=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:n}=z(e).getComputedStyle(e);t&&(r=function(e,t,r){let n=ew(t);if(!n)return e;let{scaleX:a,scaleY:l,x:i,y:o}=n,s=e.left-i-(1-a)*parseFloat(r),c=e.top-o-(1-l)*parseFloat(r.slice(r.indexOf(" ")+1)),u=a?e.width/a:e.width,d=l?e.height/l:e.height;return{width:u,height:d,top:c,right:s+u,bottom:c+d,left:s}}(r,t,n))}let{top:n,left:a,width:l,height:i,bottom:o,right:s}=r;return{top:n,left:a,width:l,height:i,bottom:o,right:s}}function ek(e){return ej(e,{ignoreTransform:!0})}function eE(e,t){let r=[];return e?function n(a){var l,i;let o;if(null!=t&&r.length>=t||!a)return r;if(U(a)&&null!=a.scrollingElement&&!r.includes(a.scrollingElement))return r.push(a.scrollingElement),r;if(!K(a)||X(a)||r.includes(a))return r;let s=z(e).getComputedStyle(a);return(a!==e&&(void 0===(l=s)&&(l=z(a).getComputedStyle(a)),o=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let t=l[e];return"string"==typeof t&&o.test(t)}))&&r.push(a),void 0===(i=s)&&(i=z(a).getComputedStyle(a)),"fixed"===i.position)?r:n(a.parentNode)}(e):r}function eC(e){let[t]=eE(e,1);return null!=t?t:null}function eS(e){return $&&e?B(e)?e:W(e)?U(e)||e===Y(e).scrollingElement?window:K(e)?e:null:null:null}function eD(e){return B(e)?e.scrollX:e.scrollLeft}function eR(e){return B(e)?e.scrollY:e.scrollTop}function eM(e){return{x:eD(e),y:eR(e)}}function eT(e){return!!$&&!!e&&e===document.scrollingElement}function eO(e){let t={x:0,y:0},r=eT(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},n={x:e.scrollWidth-r.width,y:e.scrollHeight-r.height},a=e.scrollTop<=t.y,l=e.scrollLeft<=t.x;return{isTop:a,isLeft:l,isBottom:e.scrollTop>=n.y,isRight:e.scrollLeft>=n.x,maxScroll:n,minScroll:t}}(c=E||(E={}))[c.Forward=1]="Forward",c[c.Backward=-1]="Backward";let eA={x:.2,y:.2};function eP(e){return e.reduce((e,t)=>er(e,eM(t)),eg)}function eL(e,t){if(void 0===t&&(t=ej),!e)return;let{top:r,left:n,bottom:a,right:l}=t(e);eC(e)&&(a<=0||l<=0||r>=window.innerHeight||n>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}let eI=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+eD(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+eR(t),0)}]];class e_{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=eE(t),n=eP(r);for(const[t,a,l]of(this.rect={...e},this.width=e.width,this.height=e.height,eI))for(const e of a)Object.defineProperty(this,e,{get:()=>{let a=l(r),i=n[t]-a;return this.rect[e]+i},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class eF{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,r){var n;null==(n=this.target)||n.addEventListener(e,t,r),this.listeners.push([e,t,r])}}function e$(e,t){let r=Math.abs(e.x),n=Math.abs(e.y);return"number"==typeof t?Math.sqrt(r**2+n**2)>t:"x"in t&&"y"in t?r>t.x&&n>t.y:"x"in t?r>t.x:"y"in t&&n>t.y}function eB(e){e.preventDefault()}function eW(e){e.stopPropagation()}(u=C||(C={})).Click="click",u.DragStart="dragstart",u.Keydown="keydown",u.ContextMenu="contextmenu",u.Resize="resize",u.SelectionChange="selectionchange",u.VisibilityChange="visibilitychange",(d=S||(S={})).Space="Space",d.Down="ArrowDown",d.Right="ArrowRight",d.Left="ArrowLeft",d.Up="ArrowUp",d.Esc="Escape",d.Enter="Enter",d.Tab="Tab";let ez={start:[S.Space,S.Enter],cancel:[S.Esc],end:[S.Space,S.Enter,S.Tab]},eU=(e,t)=>{let{currentCoordinates:r}=t;switch(e.code){case S.Right:return{...r,x:r.x+25};case S.Left:return{...r,x:r.x-25};case S.Down:return{...r,y:r.y+25};case S.Up:return{...r,y:r.y-25}}};class eK{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new eF(Y(t)),this.windowListeners=new eF(z(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(C.Resize,this.handleCancel),this.windowListeners.add(C.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(C.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,r=e.node.current;r&&eL(r),t(eg)}handleKeyDown(e){if(ea(e)){let{active:t,context:r,options:n}=this.props,{keyboardCodes:a=ez,coordinateGetter:l=eU,scrollBehavior:i="smooth"}=n,{code:o}=e;if(a.end.includes(o))return void this.handleEnd(e);if(a.cancel.includes(o))return void this.handleCancel(e);let{collisionRect:s}=r.current,c=s?{x:s.left,y:s.top}:eg;this.referenceCoordinates||(this.referenceCoordinates=c);let u=l(e,{active:t,context:r.current,currentCoordinates:c});if(u){let t=en(u,c),n={x:0,y:0},{scrollableAncestors:a}=r.current;for(let r of a){let a=e.code,{isTop:l,isRight:o,isLeft:s,isBottom:c,maxScroll:d,minScroll:f}=eO(r),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:r,right:n,bottom:a}=e.getBoundingClientRect();return{top:t,left:r,right:n,bottom:a,width:e.clientWidth,height:e.clientHeight}}(r),h={x:Math.min(a===S.Right?p.right-p.width/2:p.right,Math.max(a===S.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(a===S.Down?p.bottom-p.height/2:p.bottom,Math.max(a===S.Down?p.top:p.top+p.height/2,u.y))},m=a===S.Right&&!o||a===S.Left&&!s,g=a===S.Down&&!c||a===S.Up&&!l;if(m&&h.x!==u.x){let e=r.scrollLeft+t.x,l=a===S.Right&&e<=d.x||a===S.Left&&e>=f.x;if(l&&!t.y)return void r.scrollTo({left:e,behavior:i});l?n.x=r.scrollLeft-e:n.x=a===S.Right?r.scrollLeft-d.x:r.scrollLeft-f.x,n.x&&r.scrollBy({left:-n.x,behavior:i});break}if(g&&h.y!==u.y){let e=r.scrollTop+t.y,l=a===S.Down&&e<=d.y||a===S.Up&&e>=f.y;if(l&&!t.x)return void r.scrollTo({top:e,behavior:i});l?n.y=r.scrollTop-e:n.y=a===S.Down?r.scrollTop-d.y:r.scrollTop-f.y,n.y&&r.scrollBy({top:-n.y,behavior:i});break}}this.handleMove(e,er(en(u,this.referenceCoordinates),n))}}}handleMove(e,t){let{onMove:r}=this.props;e.preventDefault(),r(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function eX(e){return!!(e&&"distance"in e)}function eY(e){return!!(e&&"delay"in e)}eK.activators=[{eventName:"onKeyDown",handler:(e,t,r)=>{let{keyboardCodes:n=ez,onActivation:a}=t,{active:l}=r,{code:i}=e.nativeEvent;if(n.start.includes(i)){let t=l.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==a||a({event:e.nativeEvent}),!0)}return!1}}];class eH{constructor(e,t,r){var n;void 0===r&&(r=function(e){let{EventTarget:t}=z(e);return e instanceof t?e:Y(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:a}=e,{target:l}=a;this.props=e,this.events=t,this.document=Y(l),this.documentListeners=new eF(this.document),this.listeners=new eF(r),this.windowListeners=new eF(z(l)),this.initialCoordinates=null!=(n=el(a))?n:eg,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(C.Resize,this.handleCancel),this.windowListeners.add(C.DragStart,eB),this.windowListeners.add(C.VisibilityChange,this.handleCancel),this.windowListeners.add(C.ContextMenu,eB),this.documentListeners.add(C.Keydown,this.handleKeydown),t){if(null!=r&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eY(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(eX(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:r,onPending:n}=this.props;n(r,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(C.Click,eW,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(C.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:r,initialCoordinates:n,props:a}=this,{onMove:l,options:{activationConstraint:i}}=a;if(!n)return;let o=null!=(t=el(e))?t:eg,s=en(n,o);if(!r&&i){if(eX(i)){if(null!=i.tolerance&&e$(s,i.tolerance))return this.handleCancel();if(e$(s,i.distance))return this.handleStart()}return eY(i)&&e$(s,i.tolerance)?this.handleCancel():void this.handlePending(i,s)}e.cancelable&&e.preventDefault(),l(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===S.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let eV={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class eq extends eH{constructor(e){const{event:t}=e;super(e,eV,Y(t.target))}}eq.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:r}=e,{onActivation:n}=t;return!!r.isPrimary&&0===r.button&&(null==n||n({event:r}),!0)}}];(f=D||(D={}))[f.RightClick=2]="RightClick";(p=R||(R={}))[p.Pointer=0]="Pointer",p[p.DraggableRect=1]="DraggableRect",(h=M||(M={}))[h.TreeOrder=0]="TreeOrder",h[h.ReversedTreeOrder=1]="ReversedTreeOrder";let eJ={x:{[E.Backward]:!1,[E.Forward]:!1},y:{[E.Backward]:!1,[E.Forward]:!1}};(m=T||(T={}))[m.Always=0]="Always",m[m.BeforeDragging=1]="BeforeDragging",m[m.WhileDragging=2]="WhileDragging",(O||(O={})).Optimized="optimized";let eZ=new Map;function eG(e,t){return J(r=>e?r||("function"==typeof t?t(e):e):null,[t,e])}function eQ(e){let{callback:t,disabled:r}=e,n=V(t),a=(0,_.useMemo)(()=>{if(r||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(n)},[r]);return(0,_.useEffect)(()=>()=>null==a?void 0:a.disconnect(),[a]),a}function e0(e){return new e_(ej(e),e)}function e1(e,t,r){void 0===t&&(t=e0);let[n,a]=(0,_.useState)(null);function l(){a(n=>{if(!e)return null;if(!1===e.isConnected){var a;return null!=(a=null!=n?n:r)?a:null}let l=t(e);return JSON.stringify(n)===JSON.stringify(l)?n:l})}let i=function(e){let{callback:t,disabled:r}=e,n=V(t),a=(0,_.useMemo)(()=>{if(r||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(n)},[n,r]);return(0,_.useEffect)(()=>()=>null==a?void 0:a.disconnect(),[a]),a}({callback(t){if(e)for(let r of t){let{type:t,target:n}=r;if("childList"===t&&n instanceof HTMLElement&&n.contains(e)){l();break}}}}),o=eQ({callback:l});return H(()=>{l(),e?(null==o||o.observe(e),null==i||i.observe(document.body,{childList:!0,subtree:!0})):(null==o||o.disconnect(),null==i||i.disconnect())},[e]),n}let e2=[];function e4(e,t){void 0===t&&(t=[]);let r=(0,_.useRef)(null);return(0,_.useEffect)(()=>{r.current=null},t),(0,_.useEffect)(()=>{let t=e!==eg;t&&!r.current&&(r.current=e),!t&&r.current&&(r.current=null)},[e]),r.current?en(e,r.current):eg}function e3(e){return(0,_.useMemo)(()=>{let t,r;return e?(t=e.innerWidth,{top:0,left:0,right:t,bottom:r=e.innerHeight,width:t,height:r}):null},[e])}let e5=[];function e6(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return K(t)?t:e}let e8=[{sensor:eq,options:{}},{sensor:eK,options:{}}],e7={current:{}},e9={draggable:{measure:ek},droppable:{measure:ek,strategy:T.WhileDragging,frequency:O.Optimized},dragOverlay:{measure:ej}};class te extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,r;return null!=(t=null==(r=this.get(e))?void 0:r.node.current)?t:void 0}}let tt={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new te,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:em},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:e9,measureDroppableContainers:em,windowRect:null,measuringScheduled:!1},tr={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:em,draggableNodes:new Map,over:null,measureDroppableContainers:em},tn=(0,_.createContext)(tr),ta=(0,_.createContext)(tt);function tl(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new te}}}function ti(e,t){switch(t.type){case k.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case k.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case k.DragEnd:case k.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case k.RegisterDroppable:{let{element:r}=t,{id:n}=r,a=new te(e.droppable.containers);return a.set(n,r),{...e,droppable:{...e.droppable,containers:a}}}case k.SetDroppableDisabled:{let{id:r,key:n,disabled:a}=t,l=e.droppable.containers.get(r);if(!l||n!==l.key)return e;let i=new te(e.droppable.containers);return i.set(r,{...l,disabled:a}),{...e,droppable:{...e.droppable,containers:i}}}case k.UnregisterDroppable:{let{id:r,key:n}=t,a=e.droppable.containers.get(r);if(!a||n!==a.key)return e;let l=new te(e.droppable.containers);return l.delete(r),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function to(e){let{disabled:t}=e,{active:r,activatorEvent:n,draggableNodes:a}=(0,_.useContext)(tn),l=G(n),i=G(null==r?void 0:r.id);return(0,_.useEffect)(()=>{if(!t&&!n&&l&&null!=i){if(!ea(l)||document.activeElement===l.target)return;let e=a.get(i);if(!e)return;let{activatorNode:t,node:r}=e;(t.current||r.current)&&requestAnimationFrame(()=>{for(let e of[t.current,r.current]){if(!e)continue;let t=e.matches(eo)?e:e.querySelector(eo);if(t){t.focus();break}}})}},[n,t,a,i,l]),null}function ts(e,t){let{transform:r,...n}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...n}),r):r}let tc=(0,_.createContext)({...eg,scaleX:1,scaleY:1});(g=A||(A={}))[g.Uninitialized=0]="Uninitialized",g[g.Initializing=1]="Initializing",g[g.Initialized=2]="Initialized";let tu=(0,_.memo)(function(e){var t,r,n,a,l,i,o,s;let c,u,d,f,p,h,m,g,{id:v,accessibility:x,autoScroll:b=!0,children:y,sensors:w=e8,collisionDetection:N=ex,measuring:j,modifiers:C,...S}=e,[D,O]=(0,_.useReducer)(ti,void 0,tl),[P,L]=function(){let[e]=(0,_.useState)(()=>new Set),t=(0,_.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,_.useCallback)(t=>{let{type:r,event:n}=t;e.forEach(e=>{var t;return null==(t=e[r])?void 0:t.call(e,n)})},[e]),t]}(),[I,B]=(0,_.useState)(A.Uninitialized),W=I===A.Initialized,{draggable:{active:U,nodes:X,translate:Y},droppable:{containers:V}}=D,Q=null!=U?X.get(U):null,et=(0,_.useRef)({initial:null,translated:null}),en=(0,_.useMemo)(()=>{var e;return null!=U?{id:U,data:null!=(e=null==Q?void 0:Q.data)?e:e7,rect:et}:null},[U,Q]),ea=(0,_.useRef)(null),[ei,eo]=(0,_.useState)(null),[es,ec]=(0,_.useState)(null),eu=q(S,Object.values(S)),ef=ee("DndDescribedBy",v),ep=(0,_.useMemo)(()=>V.getEnabled(),[V]),em=(0,_.useMemo)(()=>({draggable:{...e9.draggable,...null==j?void 0:j.draggable},droppable:{...e9.droppable,...null==j?void 0:j.droppable},dragOverlay:{...e9.dragOverlay,...null==j?void 0:j.dragOverlay}}),[null==j?void 0:j.draggable,null==j?void 0:j.droppable,null==j?void 0:j.dragOverlay]),{droppableRects:ev,measureDroppableContainers:ew,measuringScheduled:eN}=function(e,t){let{dragging:r,dependencies:n,config:a}=t,[l,i]=(0,_.useState)(null),{frequency:o,measure:s,strategy:c}=a,u=(0,_.useRef)(e),d=function(){switch(c){case T.Always:return!1;case T.BeforeDragging:return r;default:return!r}}(),f=q(d),p=(0,_.useCallback)(function(e){void 0===e&&(e=[]),f.current||i(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),h=(0,_.useRef)(null),m=J(t=>{if(d&&!r)return eZ;if(!t||t===eZ||u.current!==e||null!=l){let t=new Map;for(let r of e){if(!r)continue;if(l&&l.length>0&&!l.includes(r.id)&&r.rect.current){t.set(r.id,r.rect.current);continue}let e=r.node.current,n=e?new e_(s(e),e):null;r.rect.current=n,n&&t.set(r.id,n)}return t}return t},[e,l,r,d,s]);return(0,_.useEffect)(()=>{u.current=e},[e]),(0,_.useEffect)(()=>{d||p()},[r,d]),(0,_.useEffect)(()=>{l&&l.length>0&&i(null)},[JSON.stringify(l)]),(0,_.useEffect)(()=>{d||"number"!=typeof o||null!==h.current||(h.current=setTimeout(()=>{p(),h.current=null},o))},[o,d,p,...n]),{droppableRects:m,measureDroppableContainers:p,measuringScheduled:null!=l}}(ep,{dragging:W,dependencies:[Y.x,Y.y],config:em.droppable}),ek=J(e=>{var t;return null==U?null:null!=(t=null!=p?p:e)?t:null},[p=(f=null!=U?X.get(U):void 0)?f.node.current:null,U]),eD=(0,_.useMemo)(()=>es?el(es):null,[es]),eR=(c=(null==ei?void 0:ei.autoScrollEnabled)===!1,u="object"==typeof b?!1===b.enabled:!1===b,d=W&&!c&&!u,"object"==typeof b?{...b,enabled:d}:{enabled:d}),eL=eG(ek,em.draggable.measure);!function(e){let{activeNode:t,measure:r,initialRect:n,config:a=!0}=e,l=(0,_.useRef)(!1),{x:i,y:o}="boolean"==typeof a?{x:a,y:a}:a;H(()=>{if(!i&&!o||!t){l.current=!1;return}if(l.current||!n)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let a=eb(r(e),n);if(i||(a.x=0),o||(a.y=0),l.current=!0,Math.abs(a.x)>0||Math.abs(a.y)>0){let t=eC(e);t&&t.scrollBy({top:a.y,left:a.x})}},[t,i,o,n,r])}({activeNode:null!=U?X.get(U):null,config:eR.layoutShiftCompensation,initialRect:eL,measure:em.draggable.measure});let eI=e1(ek,em.draggable.measure,eL),eF=e1(ek?ek.parentElement:null),e$=(0,_.useRef)({activatorEvent:null,active:null,activeNode:ek,collisionRect:null,collisions:null,droppableRects:ev,draggableNodes:X,draggingNode:null,draggingNodeRect:null,droppableContainers:V,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eB=V.getNodeFor(null==(t=e$.current.over)?void 0:t.id),eW=function(e){let{measure:t}=e,[r,n]=(0,_.useState)(null),a=eQ({callback:(0,_.useCallback)(e=>{for(let{target:r}of e)if(K(r)){n(e=>{let n=t(r);return e?{...e,width:n.width,height:n.height}:n});break}},[t])}),[l,i]=Z((0,_.useCallback)(e=>{let r=e6(e);null==a||a.disconnect(),r&&(null==a||a.observe(r)),n(r?t(r):null)},[t,a]));return(0,_.useMemo)(()=>({nodeRef:l,rect:r,setRef:i}),[r,l,i])}({measure:em.dragOverlay.measure}),ez=null!=(r=eW.nodeRef.current)?r:ek,eU=W?null!=(n=eW.rect)?n:eI:null,eK=!!(eW.nodeRef.current&&eW.rect),eX=(h=eG(l=eK?null:eI),eb(l,h)),eY=e3(ez?z(ez):null),eH=(i=W?null!=eB?eB:ek:null,m=(0,_.useRef)(i),g=J(e=>i?e&&e!==e2&&i&&m.current&&i.parentNode===m.current.parentNode?e:eE(i):e2,[i]),(0,_.useEffect)(()=>{m.current=i},[i]),g),eV=function(e,t){void 0===t&&(t=ej);let[r]=e,n=e3(r?z(r):null),[a,l]=(0,_.useState)(e5);function i(){l(()=>e.length?e.map(e=>eT(e)?n:new e_(t(e),e)):e5)}let o=eQ({callback:i});return H(()=>{null==o||o.disconnect(),i(),e.forEach(e=>null==o?void 0:o.observe(e))},[e]),a}(eH),eq=ts(C,{transform:{x:Y.x-eX.x,y:Y.y-eX.y,scaleX:1,scaleY:1},activatorEvent:es,active:en,activeNodeRect:eI,containerNodeRect:eF,draggingNodeRect:eU,over:e$.current.over,overlayNodeRect:eW.rect,scrollableAncestors:eH,scrollableAncestorRects:eV,windowRect:eY}),e0=eD?er(eD,Y):null,te=function(e){let[t,r]=(0,_.useState)(null),n=(0,_.useRef)(e),a=(0,_.useCallback)(e=>{let t=eS(e.target);t&&r(e=>e?(e.set(t,eM(t)),new Map(e)):null)},[]);return(0,_.useEffect)(()=>{let t=n.current;if(e!==t){l(t);let i=e.map(e=>{let t=eS(e);return t?(t.addEventListener("scroll",a,{passive:!0}),[t,eM(t)]):null}).filter(e=>null!=e);r(i.length?new Map(i):null),n.current=e}return()=>{l(e),l(t)};function l(e){e.forEach(e=>{let t=eS(e);null==t||t.removeEventListener("scroll",a)})}},[a,e]),(0,_.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>er(e,t),eg):eP(e):eg,[e,t])}(eH),tt=e4(te),tr=e4(te,[eI]),tu=er(eq,tt),td=eU?ey(eU,eq):null,tf=en&&td?N({active:en,collisionRect:td,droppableRects:ev,droppableContainers:ep,pointerCoordinates:e0}):null,tp=function(e,t){if(!e||0===e.length)return null;let[r]=e;return r.id}(tf,0),[th,tm]=(0,_.useState)(null),tg=(o=eK?eq:er(eq,tr),s=null!=(a=null==th?void 0:th.rect)?a:null,{...o,scaleX:s&&eI?s.width/eI.width:1,scaleY:s&&eI?s.height/eI.height:1}),tv=(0,_.useRef)(null),tx=(0,_.useCallback)((e,t)=>{let{sensor:r,options:n}=t;if(null==ea.current)return;let a=X.get(ea.current);if(!a)return;let l=e.nativeEvent,i=new r({active:ea.current,activeNode:a,event:l,options:n,context:e$,onAbort(e){if(!X.get(e))return;let{onDragAbort:t}=eu.current,r={id:e};null==t||t(r),P({type:"onDragAbort",event:r})},onPending(e,t,r,n){if(!X.get(e))return;let{onDragPending:a}=eu.current,l={id:e,constraint:t,initialCoordinates:r,offset:n};null==a||a(l),P({type:"onDragPending",event:l})},onStart(e){let t=ea.current;if(null==t)return;let r=X.get(t);if(!r)return;let{onDragStart:n}=eu.current,a={activatorEvent:l,active:{id:t,data:r.data,rect:et}};(0,F.unstable_batchedUpdates)(()=>{null==n||n(a),B(A.Initializing),O({type:k.DragStart,initialCoordinates:e,active:t}),P({type:"onDragStart",event:a}),eo(tv.current),ec(l)})},onMove(e){O({type:k.DragMove,coordinates:e})},onEnd:o(k.DragEnd),onCancel:o(k.DragCancel)});function o(e){return async function(){let{active:t,collisions:r,over:n,scrollAdjustedTranslate:a}=e$.current,i=null;if(t&&a){let{cancelDrop:o}=eu.current;i={activatorEvent:l,active:t,collisions:r,delta:a,over:n},e===k.DragEnd&&"function"==typeof o&&await Promise.resolve(o(i))&&(e=k.DragCancel)}ea.current=null,(0,F.unstable_batchedUpdates)(()=>{O({type:e}),B(A.Uninitialized),tm(null),eo(null),ec(null),tv.current=null;let t=e===k.DragEnd?"onDragEnd":"onDragCancel";if(i){let e=eu.current[t];null==e||e(i),P({type:t,event:i})}})}}tv.current=i},[X]),tb=(0,_.useCallback)((e,t)=>(r,n)=>{let a=r.nativeEvent,l=X.get(n);null!==ea.current||!l||a.dndKit||a.defaultPrevented||!0===e(r,t.options,{active:l})&&(a.dndKit={capturedBy:t.sensor},ea.current=n,tx(r,t))},[X,tx]),ty=(0,_.useMemo)(()=>w.reduce((e,t)=>{let{sensor:r}=t;return[...e,...r.activators.map(e=>({eventName:e.eventName,handler:tb(e.handler,t)}))]},[]),[w,tb]);(0,_.useEffect)(()=>{if(!$)return;let e=w.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},w.map(e=>{let{sensor:t}=e;return t})),H(()=>{eI&&I===A.Initializing&&B(A.Initialized)},[eI,I]),(0,_.useEffect)(()=>{let{onDragMove:e}=eu.current,{active:t,activatorEvent:r,collisions:n,over:a}=e$.current;if(!t||!r)return;let l={active:t,activatorEvent:r,collisions:n,delta:{x:tu.x,y:tu.y},over:a};(0,F.unstable_batchedUpdates)(()=>{null==e||e(l),P({type:"onDragMove",event:l})})},[tu.x,tu.y]),(0,_.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:r,droppableContainers:n,scrollAdjustedTranslate:a}=e$.current;if(!e||null==ea.current||!t||!a)return;let{onDragOver:l}=eu.current,i=n.get(tp),o=i&&i.rect.current?{id:i.id,rect:i.rect.current,data:i.data,disabled:i.disabled}:null,s={active:e,activatorEvent:t,collisions:r,delta:{x:a.x,y:a.y},over:o};(0,F.unstable_batchedUpdates)(()=>{tm(o),null==l||l(s),P({type:"onDragOver",event:s})})},[tp]),H(()=>{e$.current={activatorEvent:es,active:en,activeNode:ek,collisionRect:td,collisions:tf,droppableRects:ev,draggableNodes:X,draggingNode:ez,draggingNodeRect:eU,droppableContainers:V,over:th,scrollableAncestors:eH,scrollAdjustedTranslate:tu},et.current={initial:eU,translated:td}},[en,ek,tf,td,X,ez,eU,ev,V,th,eH,tu]),function(e){let t,{acceleration:r,activator:n=R.Pointer,canScroll:a,draggingRect:l,enabled:i,interval:o=5,order:s=M.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e,h=function(e){let{delta:t,disabled:r}=e,n=G(t);return J(e=>{if(r||!n||!e)return eJ;let a={x:Math.sign(t.x-n.x),y:Math.sign(t.y-n.y)};return{x:{[E.Backward]:e.x[E.Backward]||-1===a.x,[E.Forward]:e.x[E.Forward]||1===a.x},y:{[E.Backward]:e.y[E.Backward]||-1===a.y,[E.Forward]:e.y[E.Forward]||1===a.y}}},[r,t,n])}({delta:f,disabled:!i}),[m,g]=(t=(0,_.useRef)(null),[(0,_.useCallback)((e,r)=>{t.current=setInterval(e,r)},[]),(0,_.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]),v=(0,_.useRef)({x:0,y:0}),x=(0,_.useRef)({x:0,y:0}),b=(0,_.useMemo)(()=>{switch(n){case R.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case R.DraggableRect:return l}},[n,l,c]),y=(0,_.useRef)(null),w=(0,_.useCallback)(()=>{let e=y.current;if(!e)return;let t=v.current.x*x.current.x,r=v.current.y*x.current.y;e.scrollBy(t,r)},[]),N=(0,_.useMemo)(()=>s===M.TreeOrder?[...u].reverse():u,[s,u]);(0,_.useEffect)(()=>{if(!i||!u.length||!b)return void g();for(let e of N){if((null==a?void 0:a(e))===!1)continue;let t=d[u.indexOf(e)];if(!t)continue;let{direction:n,speed:l}=function(e,t,r,n,a){let{top:l,left:i,right:o,bottom:s}=r;void 0===n&&(n=10),void 0===a&&(a=eA);let{isTop:c,isBottom:u,isLeft:d,isRight:f}=eO(e),p={x:0,y:0},h={x:0,y:0},m={height:t.height*a.y,width:t.width*a.x};return!c&&l<=t.top+m.height?(p.y=E.Backward,h.y=n*Math.abs((t.top+m.height-l)/m.height)):!u&&s>=t.bottom-m.height&&(p.y=E.Forward,h.y=n*Math.abs((t.bottom-m.height-s)/m.height)),!f&&o>=t.right-m.width?(p.x=E.Forward,h.x=n*Math.abs((t.right-m.width-o)/m.width)):!d&&i<=t.left+m.width&&(p.x=E.Backward,h.x=n*Math.abs((t.left+m.width-i)/m.width)),{direction:p,speed:h}}(e,t,b,r,p);for(let e of["x","y"])h[e][n[e]]||(l[e]=0,n[e]=0);if(l.x>0||l.y>0){g(),y.current=e,m(w,o),v.current=l,x.current=n;return}}v.current={x:0,y:0},x.current={x:0,y:0},g()},[r,w,a,g,i,o,JSON.stringify(b),JSON.stringify(h),m,u,N,d,JSON.stringify(p)])}({...eR,delta:Y,draggingRect:td,pointerCoordinates:e0,scrollableAncestors:eH,scrollableAncestorRects:eV});let tw=(0,_.useMemo)(()=>({active:en,activeNode:ek,activeNodeRect:eI,activatorEvent:es,collisions:tf,containerNodeRect:eF,dragOverlay:eW,draggableNodes:X,droppableContainers:V,droppableRects:ev,over:th,measureDroppableContainers:ew,scrollableAncestors:eH,scrollableAncestorRects:eV,measuringConfiguration:em,measuringScheduled:eN,windowRect:eY}),[en,ek,eI,es,tf,eF,eW,X,V,ev,th,ew,eH,eV,em,eN,eY]),tN=(0,_.useMemo)(()=>({activatorEvent:es,activators:ty,active:en,activeNodeRect:eI,ariaDescribedById:{draggable:ef},dispatch:O,draggableNodes:X,over:th,measureDroppableContainers:ew}),[es,ty,en,eI,O,ef,X,th,ew]);return _.default.createElement(ed.Provider,{value:L},_.default.createElement(tn.Provider,{value:tN},_.default.createElement(ta.Provider,{value:tw},_.default.createElement(tc.Provider,{value:tg},y)),_.default.createElement(to,{disabled:(null==x?void 0:x.restoreFocus)===!1})),_.default.createElement(eh,{...x,hiddenTextDescribedById:ef}))}),td=(0,_.createContext)(null),tf="button";function tp(){return(0,_.useContext)(ta)}let th={timeout:25};function tm(e){let{data:t,disabled:r=!1,id:n,resizeObserverConfig:a}=e,l=ee("Droppable"),{active:i,dispatch:o,over:s,measureDroppableContainers:c}=(0,_.useContext)(tn),u=(0,_.useRef)({disabled:r}),d=(0,_.useRef)(!1),f=(0,_.useRef)(null),p=(0,_.useRef)(null),{disabled:h,updateMeasurementsFor:m,timeout:g}={...th,...a},v=q(null!=m?m:n),x=eQ({callback:(0,_.useCallback)(()=>{if(!d.current){d.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{c(Array.isArray(v.current)?v.current:[v.current]),p.current=null},g)},[g]),disabled:h||!i}),[b,y]=Z((0,_.useCallback)((e,t)=>{x&&(t&&(x.unobserve(t),d.current=!1),e&&x.observe(e))},[x])),w=q(t);return(0,_.useEffect)(()=>{x&&b.current&&(x.disconnect(),d.current=!1,x.observe(b.current))},[b,x]),(0,_.useEffect)(()=>(o({type:k.RegisterDroppable,element:{id:n,key:l,disabled:r,node:b,rect:f,data:w}}),()=>o({type:k.UnregisterDroppable,key:l,id:n})),[n]),(0,_.useEffect)(()=>{r!==u.current.disabled&&(o({type:k.SetDroppableDisabled,id:n,key:l,disabled:r}),u.current.disabled=r)},[n,l,r,o]),{active:i,rect:f,isOver:(null==s?void 0:s.id)===n,node:b,over:s,setNodeRef:y}}function tg(e){let{animation:t,children:r}=e,[n,a]=(0,_.useState)(null),[l,i]=(0,_.useState)(null),o=G(r);return r||n||!o||a(o),H(()=>{if(!l)return;let e=null==n?void 0:n.key,r=null==n?void 0:n.props.id;null==e||null==r?a(null):Promise.resolve(t(r,l)).then(()=>{a(null)})},[t,n,l]),_.default.createElement(_.default.Fragment,null,r,n?(0,_.cloneElement)(n,{ref:i}):null)}let tv={x:0,y:0,scaleX:1,scaleY:1};function tx(e){let{children:t}=e;return _.default.createElement(tn.Provider,{value:tr},_.default.createElement(tc.Provider,{value:tv},t))}let tb={position:"fixed",touchAction:"none"},ty=e=>ea(e)?"transform 250ms ease":void 0,tw=(0,_.forwardRef)((e,t)=>{let{as:r,activatorEvent:n,adjustScale:a,children:l,className:i,rect:o,style:s,transform:c,transition:u=ty}=e;if(!o)return null;let d=a?c:{...c,scaleX:1,scaleY:1},f={...tb,width:o.width,height:o.height,top:o.top,left:o.left,transform:ei.Transform.toString(d),transformOrigin:a&&n?function(e,t){let r=el(e);if(!r)return"0 0";let n={x:(r.x-t.left)/t.width*100,y:(r.y-t.top)/t.height*100};return n.x+"% "+n.y+"%"}(n,o):void 0,transition:"function"==typeof u?u(n):u,...s};return _.default.createElement(r,{className:i,style:f,ref:t},l)}),tN={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:r}}=e;return[{transform:ei.Transform.toString(t)},{transform:ei.Transform.toString(r)}]},sideEffects:(t={styles:{active:{opacity:"0"}}},e=>{let{active:r,dragOverlay:n}=e,a={},{styles:l,className:i}=t;if(null!=l&&l.active)for(let[e,t]of Object.entries(l.active))void 0!==t&&(a[e]=r.node.style.getPropertyValue(e),r.node.style.setProperty(e,t));if(null!=l&&l.dragOverlay)for(let[e,t]of Object.entries(l.dragOverlay))void 0!==t&&n.node.style.setProperty(e,t);return null!=i&&i.active&&r.node.classList.add(i.active),null!=i&&i.dragOverlay&&n.node.classList.add(i.dragOverlay),function(){for(let[e,t]of Object.entries(a))r.node.style.setProperty(e,t);null!=i&&i.active&&r.node.classList.remove(i.active)}})},tj=0,tk=_.default.memo(e=>{var t;let{adjustScale:r=!1,children:n,dropAnimation:a,style:l,transition:i,modifiers:o,wrapperElement:s="div",className:c,zIndex:u=999}=e,{activatorEvent:d,active:f,activeNodeRect:p,containerNodeRect:h,draggableNodes:m,droppableContainers:g,dragOverlay:v,over:x,measuringConfiguration:b,scrollableAncestors:y,scrollableAncestorRects:w,windowRect:N}=tp(),j=(0,_.useContext)(tc),k=(t=null==f?void 0:f.id,(0,_.useMemo)(()=>{if(null!=t)return++tj},[t])),E=ts(o,{activatorEvent:d,active:f,activeNodeRect:p,containerNodeRect:h,draggingNodeRect:v.rect,over:x,overlayNodeRect:v.rect,scrollableAncestors:y,scrollableAncestorRects:w,transform:j,windowRect:N}),C=eG(p),S=function(e){let{config:t,draggableNodes:r,droppableContainers:n,measuringConfiguration:a}=e;return V((e,l)=>{if(null===t)return;let i=r.get(e);if(!i)return;let o=i.node.current;if(!o)return;let s=e6(l);if(!s)return;let{transform:c}=z(l).getComputedStyle(l),u=ew(c);if(!u)return;let d="function"==typeof t?t:function(e){let{duration:t,easing:r,sideEffects:n,keyframes:a}={...tN,...e};return e=>{let{active:l,dragOverlay:i,transform:o,...s}=e;if(!t)return;let c={x:i.rect.left-l.rect.left,y:i.rect.top-l.rect.top},u={scaleX:1!==o.scaleX?l.rect.width*o.scaleX/i.rect.width:1,scaleY:1!==o.scaleY?l.rect.height*o.scaleY/i.rect.height:1},d={x:o.x-c.x,y:o.y-c.y,...u},f=a({...s,active:l,dragOverlay:i,transform:{initial:o,final:d}}),[p]=f,h=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(h))return;let m=null==n?void 0:n({active:l,dragOverlay:i,...s}),g=i.node.animate(f,{duration:t,easing:r,fill:"forwards"});return new Promise(e=>{g.onfinish=()=>{null==m||m(),e()}})}}(t);return eL(o,a.draggable.measure),d({active:{id:e,data:i.data,node:o,rect:a.draggable.measure(o)},draggableNodes:r,dragOverlay:{node:l,rect:a.dragOverlay.measure(s)},droppableContainers:n,measuringConfiguration:a,transform:u})})}({config:a,draggableNodes:m,droppableContainers:g,measuringConfiguration:b}),D=C?v.setRef:void 0;return _.default.createElement(tx,null,_.default.createElement(tg,{animation:S},f&&k?_.default.createElement(tw,{key:k,id:f.id,ref:D,as:s,activatorEvent:d,adjustScale:r,className:c,transition:i,rect:C,style:{zIndex:u,...l},transform:E},n):null))});function tE(e,t,r){let n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n}function tC(e){return null!==e&&e>=0}let tS=e=>{let{rects:t,activeIndex:r,overIndex:n,index:a}=e,l=tE(t,n,r),i=t[a],o=l[a];return o&&i?{x:o.left-i.left,y:o.top-i.top,scaleX:o.width/i.width,scaleY:o.height/i.height}:null},tD={scaleX:1,scaleY:1},tR=e=>{var t,r,n,a;let l,i,o,{activeIndex:s,activeNodeRect:c,index:u,rects:d,overIndex:f}=e,p=null!=(t=d[s])?t:c;if(!p)return null;if(u===s){let e=d[f];return e?{x:0,y:s<f?e.top+e.height-(p.top+p.height):e.top-p.top,...tD}:null}let h=(r=d,n=u,a=s,l=r[n],i=r[n-1],o=r[n+1],l?a<n?i?l.top-(i.top+i.height):o?o.top-(l.top+l.height):0:o?o.top-(l.top+l.height):i?l.top-(i.top+i.height):0:0);return u>s&&u<=f?{x:0,y:-p.height-h,...tD}:u<s&&u>=f?{x:0,y:p.height+h,...tD}:{x:0,y:0,...tD}},tM="Sortable",tT=_.default.createContext({activeIndex:-1,containerId:tM,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:tS,disabled:{draggable:!1,droppable:!1}});function tO(e){let{children:t,id:r,items:n,strategy:a=tS,disabled:l=!1}=e,{active:i,dragOverlay:o,droppableRects:s,over:c,measureDroppableContainers:u}=tp(),d=ee(tM,r),f=null!==o.rect,p=(0,_.useMemo)(()=>n.map(e=>"object"==typeof e&&"id"in e?e.id:e),[n]),h=null!=i,m=i?p.indexOf(i.id):-1,g=c?p.indexOf(c.id):-1,v=(0,_.useRef)(p),x=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(p,v.current),b=-1!==g&&-1===m||x,y="boolean"==typeof l?{draggable:l,droppable:l}:l;H(()=>{x&&h&&u(p)},[x,p,h,u]),(0,_.useEffect)(()=>{v.current=p},[p]);let w=(0,_.useMemo)(()=>({activeIndex:m,containerId:d,disabled:y,disableTransforms:b,items:p,overIndex:g,useDragOverlay:f,sortedRects:p.reduce((e,t,r)=>{let n=s.get(t);return n&&(e[r]=n),e},Array(p.length)),strategy:a}),[m,d,y.draggable,y.droppable,b,p,g,s,f,a]);return _.default.createElement(tT.Provider,{value:w},t)}let tA=e=>{let{id:t,items:r,activeIndex:n,overIndex:a}=e;return tE(r,n,a).indexOf(t)},tP=e=>{let{containerId:t,isSorting:r,wasDragging:n,index:a,items:l,newIndex:i,previousItems:o,previousContainerId:s,transition:c}=e;return!!c&&!!n&&(o===l||a!==i)&&(!!r||i!==a&&t===s)},tL={duration:200,easing:"ease"},tI="transform",t_=ei.Transition.toString({property:tI,duration:0,easing:"linear"}),tF={roleDescription:"sortable"};S.Down,S.Right,S.Up,S.Left;var t$=e.i(75157);let tB=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("div",{ref:r,className:(0,t$.cn)("border-3 border-black bg-white neubrutalism-shadow",e),...t}));tB.displayName="Card";let tW=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("div",{ref:r,className:(0,t$.cn)("flex flex-col space-y-1.5 p-6",e),...t}));tW.displayName="CardHeader";let tz=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("h3",{ref:r,className:(0,t$.cn)("font-bold uppercase tracking-wide leading-none",e),...t}));tz.displayName="CardTitle",_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("p",{ref:r,className:(0,t$.cn)("text-sm text-muted-foreground",e),...t})).displayName="CardDescription";let tU=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("div",{ref:r,className:(0,t$.cn)("p-6 pt-0",e),...t}));tU.displayName="CardContent",_.forwardRef(({className:e,...t},r)=>(0,I.jsx)("div",{ref:r,className:(0,t$.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter";let tK=(0,e.i(25913).cva)("inline-flex items-center border-2 border-black px-3 py-1 text-xs font-bold uppercase tracking-wide shadow-[2px_2px_0px_0px_rgba(0,0,0,1)]",{variants:{variant:{default:"bg-[--color-primary] text-black",secondary:"bg-[--color-secondary] text-black",destructive:"bg-[--color-accent] text-black",outline:"bg-white text-black"}},defaultVariants:{variant:"default"}});function tX({className:e,variant:t,...r}){return(0,I.jsx)("div",{className:(0,t$.cn)(tK({variant:t}),e),...r})}var tY=e.i(19455);let tH=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),tV=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var tq={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let tJ=(0,_.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:l,iconNode:i,...o},s)=>(0,_.createElement)("svg",{ref:s,...tq,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:tH("lucide",a),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(o)&&{"aria-hidden":"true"},...o},[...i.map(([e,t])=>(0,_.createElement)(e,t)),...Array.isArray(l)?l:[l]])),tZ=(e,t)=>{let r=(0,_.forwardRef)(({className:r,...n},a)=>(0,_.createElement)(tJ,{ref:a,iconNode:t,className:tH(`lucide-${tV(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...n}));return r.displayName=tV(e),r},tG=tZ("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),tQ=tZ("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),t0=tZ("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),t1=tZ("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),t2=tZ("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);function t4(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}"u">typeof window&&window.document&&window.document.createElement;var t3=e.i(20783),t5=globalThis?.document?_.useLayoutEffect:()=>{},t6=_[" useId ".trim().toString()]||(()=>void 0),t8=0;function t7(e){let[t,r]=_.useState(t6());return t5(()=>{e||r(e=>e??String(t8++))},[e]),e||(t?`radix-${t}`:"")}_[" useEffectEvent ".trim().toString()],_[" useInsertionEffect ".trim().toString()];var t9=_[" useInsertionEffect ".trim().toString()]||t5;Symbol("RADIX:SYNC_STATE");var re=Symbol("radix.slottable");function rt(e){return _.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===re}var rr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var r,n;let a,l,i,o=(n=r=`Primitive.${t}`,(a=_.forwardRef((e,t)=>{let{children:r,...n}=e;if(_.isValidElement(r)){var a;let e,l,i=(a=r,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let r={...t};for(let n in t){let a=e[n],l=t[n];/^on[A-Z]/.test(n)?a&&l?r[n]=(...e)=>{let t=l(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...l}:"className"===n&&(r[n]=[a,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==_.Fragment&&(o.ref=t?(0,t3.composeRefs)(t,i):i),_.cloneElement(r,o)}return _.Children.count(r)>1?_.Children.only(null):null})).displayName=`${n}.SlotClone`,l=a,(i=_.forwardRef((e,t)=>{let{children:r,...n}=e,a=_.Children.toArray(r),i=a.find(rt);if(i){let e=i.props.children,r=a.map(t=>t!==i?t:_.Children.count(e)>1?_.Children.only(null):_.isValidElement(e)?e.props.children:null);return(0,I.jsx)(l,{...n,ref:t,children:_.isValidElement(e)?_.cloneElement(e,void 0,r):null})}return(0,I.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),s=_.forwardRef((e,r)=>{let{asChild:n,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,I.jsx)(n?o:t,{...a,ref:r})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{});function rn(e){let t=_.useRef(e);return _.useEffect(()=>{t.current=e}),_.useMemo(()=>(...e)=>t.current?.(...e),[])}var ra="dismissableLayer.update",rl=_.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ri=_.forwardRef((e,t)=>{let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:a,onFocusOutside:l,onInteractOutside:i,onDismiss:o,...s}=e,c=_.useContext(rl),[u,d]=_.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=_.useState({}),h=(0,t3.useComposedRefs)(t,e=>d(e)),m=Array.from(c.layers),[g]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),v=m.indexOf(g),x=u?m.indexOf(u):-1,b=c.layersWithOutsidePointerEventsDisabled.size>0,y=x>=v,w=function(e,t=globalThis?.document){let r=rn(e),n=_.useRef(!1),a=_.useRef(()=>{});return _.useEffect(()=>{let e=e=>{if(e.target&&!n.current){let n=function(){rs("dismissableLayer.pointerDownOutside",r,l,{discrete:!0})},l={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=n,t.addEventListener("click",a.current,{once:!0})):n()}else t.removeEventListener("click",a.current);n.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,r=[...c.branches].some(e=>e.contains(t));y&&!r&&(a?.(e),i?.(e),e.defaultPrevented||o?.())},f),N=function(e,t=globalThis?.document){let r=rn(e),n=_.useRef(!1);return _.useEffect(()=>{let e=e=>{e.target&&!n.current&&rs("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;![...c.branches].some(e=>e.contains(t))&&(l?.(e),i?.(e),e.defaultPrevented||o?.())},f);return!function(e,t=globalThis?.document){let r=rn(e);_.useEffect(()=>{let e=e=>{"Escape"===e.key&&r(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[r,t])}(e=>{x===c.layers.size-1&&(n?.(e),!e.defaultPrevented&&o&&(e.preventDefault(),o()))},f),_.useEffect(()=>{if(u)return r&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(P=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),ro(),()=>{r&&1===c.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=P)}},[u,f,r,c]),_.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),ro())},[u,c]),_.useEffect(()=>{let e=()=>p({});return document.addEventListener(ra,e),()=>document.removeEventListener(ra,e)},[]),(0,I.jsx)(rr.div,{...s,ref:h,style:{pointerEvents:b?y?"auto":"none":void 0,...e.style},onFocusCapture:t4(e.onFocusCapture,N.onFocusCapture),onBlurCapture:t4(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:t4(e.onPointerDownCapture,w.onPointerDownCapture)})});function ro(){let e=new CustomEvent(ra);document.dispatchEvent(e)}function rs(e,t,r,{discrete:n}){let a=r.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});if(t&&a.addEventListener(e,t,{once:!0}),n)a&&F.flushSync(()=>a.dispatchEvent(l));else a.dispatchEvent(l)}ri.displayName="DismissableLayer",_.forwardRef((e,t)=>{let r=_.useContext(rl),n=_.useRef(null),a=(0,t3.useComposedRefs)(t,n);return _.useEffect(()=>{let e=n.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,I.jsx)(rr.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var rc="focusScope.autoFocusOnMount",ru="focusScope.autoFocusOnUnmount",rd={bubbles:!1,cancelable:!0},rf=_.forwardRef((e,t)=>{let{loop:r=!1,trapped:n=!1,onMountAutoFocus:a,onUnmountAutoFocus:l,...i}=e,[o,s]=_.useState(null),c=rn(a),u=rn(l),d=_.useRef(null),f=(0,t3.useComposedRefs)(t,e=>s(e)),p=_.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;_.useEffect(()=>{if(n){let e=function(e){if(p.paused||!o)return;let t=e.target;o.contains(t)?d.current=t:rm(d.current,{select:!0})},t=function(e){if(p.paused||!o)return;let t=e.relatedTarget;null!==t&&(o.contains(t)||rm(d.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&rm(o)});return o&&r.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[n,o,p.paused]),_.useEffect(()=>{if(o){rg.add(p);let e=document.activeElement;if(!o.contains(e)){let t=new CustomEvent(rc,rd);o.addEventListener(rc,c),o.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let r=document.activeElement;for(let n of e)if(rm(n,{select:t}),document.activeElement!==r)return}(rp(o).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&rm(o))}return()=>{o.removeEventListener(rc,c),setTimeout(()=>{let t=new CustomEvent(ru,rd);o.addEventListener(ru,u),o.dispatchEvent(t),t.defaultPrevented||rm(e??document.body,{select:!0}),o.removeEventListener(ru,u),rg.remove(p)},0)}}},[o,c,u,p]);let h=_.useCallback(e=>{if(!r&&!n||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){var l;let t,n=e.currentTarget,[i,o]=[rh(t=rp(l=n),l),rh(t.reverse(),l)];i&&o?e.shiftKey||a!==o?e.shiftKey&&a===i&&(e.preventDefault(),r&&rm(o,{select:!0})):(e.preventDefault(),r&&rm(i,{select:!0})):a===n&&e.preventDefault()}},[r,n,p.paused]);return(0,I.jsx)(rr.div,{tabIndex:-1,...i,ref:f,onKeyDown:h})});function rp(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function rh(e,t){for(let r of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(r,{upTo:t}))return r}function rm(e,{select:t=!1}={}){if(e&&e.focus){var r;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(r=e)instanceof HTMLInputElement&&"select"in r&&t&&e.select()}}rf.displayName="FocusScope";var rg=(i=[],{add(e){let t=i[0];e!==t&&t?.pause(),(i=rv(i,e)).unshift(e)},remove(e){i=rv(i,e),i[0]?.resume()}});function rv(e,t){let r=[...e],n=r.indexOf(t);return -1!==n&&r.splice(n,1),r}var rx=_.forwardRef((e,t)=>{let{container:r,...n}=e,[a,l]=_.useState(!1);t5(()=>l(!0),[]);let i=r||a&&globalThis?.document?.body;return i?F.default.createPortal((0,I.jsx)(rr.div,{...n,ref:t}),i):null});rx.displayName="Portal";var rb=e=>{var t;let r,n,{present:a,children:l}=e,i=function(e){var t,r;let[n,a]=_.useState(),l=_.useRef(null),i=_.useRef(e),o=_.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},_.useReducer((e,t)=>r[e][t]??e,t));return _.useEffect(()=>{let e=ry(l.current);o.current="mounted"===s?e:"none"},[s]),t5(()=>{let t=l.current,r=i.current;if(r!==e){let n=o.current,a=ry(t);e?c("MOUNT"):"none"===a||t?.display==="none"?c("UNMOUNT"):r&&n!==a?c("ANIMATION_OUT"):c("UNMOUNT"),i.current=e}},[e,c]),t5(()=>{if(n){let e,t=n.ownerDocument.defaultView??window,r=r=>{let a=ry(l.current).includes(CSS.escape(r.animationName));if(r.target===n&&a&&(c("ANIMATION_END"),!i.current)){let r=n.style.animationFillMode;n.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=r)})}},a=e=>{e.target===n&&(o.current=ry(l.current))};return n.addEventListener("animationstart",a),n.addEventListener("animationcancel",r),n.addEventListener("animationend",r),()=>{t.clearTimeout(e),n.removeEventListener("animationstart",a),n.removeEventListener("animationcancel",r),n.removeEventListener("animationend",r)}}c("ANIMATION_END")},[n,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:_.useCallback(e=>{l.current=e?getComputedStyle(e):null,a(e)},[])}}(a),o="function"==typeof l?l({present:i.isPresent}):_.Children.only(l),s=(0,t3.useComposedRefs)(i.ref,(t=o,(n=(r=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?t.ref:(n=(r=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof l||i.isPresent?_.cloneElement(o,{ref:s}):null};function ry(e){return e?.animationName||"none"}rb.displayName="Presence";var rw=0;function rN(){let 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 rj=function(){return(rj=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function rk(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)0>t.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}var rE=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),rC="width-before-scroll-bar";function rS(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var rD="u">typeof window?_.useLayoutEffect:_.useEffect,rR=new WeakMap,rM=(void 0===v&&(v={}),(void 0===x&&(x=function(e){return e}),b=[],y=!1,w={read:function(){if(y)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return b.length?b[b.length-1]:null},useMedium:function(e){var t=x(e,y);return b.push(t),function(){b=b.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(y=!0;b.length;){var t=b;b=[],t.forEach(e)}b={push:function(t){return e(t)},filter:function(){return b}}},assignMedium:function(e){y=!0;var t=[];if(b.length){var r=b;b=[],r.forEach(e),t=b}var n=function(){var r=t;t=[],r.forEach(e)},a=function(){return Promise.resolve().then(n)};a(),b={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),b}}}}).options=rj({async:!0,ssr:!1},v),w),rT=function(){},rO=_.forwardRef(function(e,t){var r,n,a,l,i=_.useRef(null),o=_.useState({onScrollCapture:rT,onWheelCapture:rT,onTouchMoveCapture:rT}),s=o[0],c=o[1],u=e.forwardProps,d=e.children,f=e.className,p=e.removeScrollBar,h=e.enabled,m=e.shards,g=e.sideCar,v=e.noRelative,x=e.noIsolation,b=e.inert,y=e.allowPinchZoom,w=e.as,N=e.gapMode,j=rk(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),k=(r=[i,t],n=function(e){return r.forEach(function(t){return rS(t,e)})},(a=(0,_.useState)(function(){return{value:null,callback:n,facade:{get current(){return a.value},set current(value){var e=a.value;e!==value&&(a.value=value,a.callback(value,e))}}}})[0]).callback=n,l=a.facade,rD(function(){var e=rR.get(l);if(e){var t=new Set(e),n=new Set(r),a=l.current;t.forEach(function(e){n.has(e)||rS(e,null)}),n.forEach(function(e){t.has(e)||rS(e,a)})}rR.set(l,r)},[r]),l),E=rj(rj({},j),s);return _.createElement(_.Fragment,null,h&&_.createElement(g,{sideCar:rM,removeScrollBar:p,shards:m,noRelative:v,noIsolation:x,inert:b,setCallbacks:c,allowPinchZoom:!!y,lockRef:i,gapMode:N}),u?_.cloneElement(_.Children.only(d),rj(rj({},E),{ref:k})):_.createElement(void 0===w?"div":w,rj({},E,{className:f,ref:k}),d))});rO.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},rO.classNames={fullWidth:rC,zeroRight:rE};var rA=function(e){var t=e.sideCar,r=rk(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return _.createElement(n,rj({},r))};rA.isSideCarExport=!0;var rP=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=L||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,a;(n=t).styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},rL=function(){var e=rP();return function(t,r){_.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},rI=function(){var e=rL();return function(t){return e(t.styles,t.dynamic),null}},r_={left:0,top:0,right:0,gap:0},rF=function(e){return parseInt(e||"",10)||0},r$=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[rF(r),rF(n),rF(a)]},rB=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return r_;var t=r$(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},rW=rI(),rz="data-scroll-locked",rU=function(e,t,r,n){var a=e.left,l=e.top,i=e.right,o=e.gap;return void 0===r&&(r="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(o,"px ").concat(n,";\n }\n body[").concat(rz,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===r&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(l,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(o,"px ").concat(n,";\n "),"padding"===r&&"padding-right: ".concat(o,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(rE," {\n right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(rC," {\n margin-right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(rE," .").concat(rE," {\n right: 0 ").concat(n,";\n }\n \n .").concat(rC," .").concat(rC," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(rz,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(o,"px;\n }\n")},rK=function(){var e=parseInt(document.body.getAttribute(rz)||"0",10);return isFinite(e)?e:0},rX=function(){_.useEffect(function(){return document.body.setAttribute(rz,(rK()+1).toString()),function(){var e=rK()-1;e<=0?document.body.removeAttribute(rz):document.body.setAttribute(rz,e.toString())}},[])},rY=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,a=void 0===n?"margin":n;rX();var l=_.useMemo(function(){return rB(a)},[a]);return _.createElement(rW,{styles:rU(l,!t,a,r?"":"!important")})},rH=!1;if("u">typeof window)try{var rV=Object.defineProperty({},"passive",{get:function(){return rH=!0,!0}});window.addEventListener("test",rV,rV),window.removeEventListener("test",rV,rV)}catch(e){rH=!1}var rq=!!rH&&{passive:!1},rJ=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return"hidden"!==r[t]&&(r.overflowY!==r.overflowX||"TEXTAREA"===e.tagName||"visible"!==r[t])},rZ=function(e,t){var r=t.ownerDocument,n=t;do{if("u">typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),rG(e,n)){var a=rQ(e,n);if(a[1]>a[2])return!0}n=n.parentNode}while(n&&n!==r.body)return!1},rG=function(e,t){return"v"===e?rJ(t,"overflowY"):rJ(t,"overflowX")},rQ=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},r0=function(e,t,r,n,a){var l,i=(l=window.getComputedStyle(t).direction,"h"===e&&"rtl"===l?-1:1),o=i*n,s=r.target,c=t.contains(s),u=!1,d=o>0,f=0,p=0;do{if(!s)break;var h=rQ(e,s),m=h[0],g=h[1]-h[2]-i*m;(m||g)&&rG(e,s)&&(f+=g,p+=m);var v=s.parentNode;s=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!c&&s!==document.body||c&&(t.contains(s)||t===s))return d&&(a&&1>Math.abs(f)||!a&&o>f)?u=!0:!d&&(a&&1>Math.abs(p)||!a&&-o>p)&&(u=!0),u},r1=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},r2=function(e){return[e.deltaX,e.deltaY]},r4=function(e){return e&&"current"in e?e.current:e},r3=0,r5=[];let r6=(N=function(e){var t=_.useRef([]),r=_.useRef([0,0]),n=_.useRef(),a=_.useState(r3++)[0],l=_.useState(rI)[0],i=_.useRef(e);_.useEffect(function(){i.current=e},[e]),_.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=(function(e,t,r){if(r||2==arguments.length)for(var n,a=0,l=t.length;a<l;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(r4),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var o=_.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var a,l=r1(e),o=r.current,s="deltaX"in e?e.deltaX:o[0]-l[0],c="deltaY"in e?e.deltaY:o[1]-l[1],u=e.target,d=Math.abs(s)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var h=rZ(d,u);if(!h)return!0;if(h?a=d:(a="v"===d?"h":"v",h=rZ(d,u)),!h)return!1;if(!n.current&&"changedTouches"in e&&(s||c)&&(n.current=a),!a)return!0;var m=n.current||a;return r0(m,t,e,"h"===m?s:c,!0)},[]),s=_.useCallback(function(e){if(r5.length&&r5[r5.length-1]===l){var r="deltaY"in e?r2(e):r1(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===r[0]&&n[1]===r[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var a=(i.current.shards||[]).map(r4).filter(Boolean).filter(function(t){return t.contains(e.target)});(a.length>0?o(e,a[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=_.useCallback(function(e,r,n,a){var l={name:e,delta:r,target:n,should:a,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(l),setTimeout(function(){t.current=t.current.filter(function(e){return e!==l})},1)},[]),u=_.useCallback(function(e){r.current=r1(e),n.current=void 0},[]),d=_.useCallback(function(t){c(t.type,r2(t),t.target,o(t,e.lockRef.current))},[]),f=_.useCallback(function(t){c(t.type,r1(t),t.target,o(t,e.lockRef.current))},[]);_.useEffect(function(){return r5.push(l),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,rq),document.addEventListener("touchmove",s,rq),document.addEventListener("touchstart",u,rq),function(){r5=r5.filter(function(e){return e!==l}),document.removeEventListener("wheel",s,rq),document.removeEventListener("touchmove",s,rq),document.removeEventListener("touchstart",u,rq)}},[]);var p=e.removeScrollBar,h=e.inert;return _.createElement(_.Fragment,null,h?_.createElement(l,{styles:"\n .block-interactivity-".concat(a," {pointer-events: none;}\n .allow-interactivity-").concat(a," {pointer-events: all;}\n")}):null,p?_.createElement(rY,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},rM.useMedium(N),rA);var r8=_.forwardRef(function(e,t){return _.createElement(rO,rj({},e,{ref:t,sideCar:r6}))});r8.classNames=rO.classNames;var r7=new WeakMap,r9=new WeakMap,ne={},nt=0,nr=function(e){return e&&(e.host||nr(e.parentNode))},nn=function(e,t,r,n){var a=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var r=nr(e);return r&&t.contains(r)?r:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});ne[r]||(ne[r]=new WeakMap);var l=ne[r],i=[],o=new Set,s=new Set(a),c=function(e){!e||o.has(e)||(o.add(e),c(e.parentNode))};a.forEach(c);var u=function(e){!e||s.has(e)||Array.prototype.forEach.call(e.children,function(e){if(o.has(e))u(e);else try{var t=e.getAttribute(n),a=null!==t&&"false"!==t,s=(r7.get(e)||0)+1,c=(l.get(e)||0)+1;r7.set(e,s),l.set(e,c),i.push(e),1===s&&a&&r9.set(e,!0),1===c&&e.setAttribute(r,"true"),a||e.setAttribute(n,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return u(t),o.clear(),nt++,function(){i.forEach(function(e){var t=r7.get(e)-1,a=l.get(e)-1;r7.set(e,t),l.set(e,a),t||(r9.has(e)||e.removeAttribute(n),r9.delete(e)),a||e.removeAttribute(r)}),--nt||(r7=new WeakMap,r7=new WeakMap,r9=new WeakMap,ne={})}},na=function(e,t,r){void 0===r&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),a=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return a?(n.push.apply(n,Array.from(a.querySelectorAll("[aria-live], script"))),nn(n,a,r,"aria-hidden")):function(){return null}},nl=Symbol("radix.slottable");function ni(e){return _.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===nl}var no="Dialog",[ns,nc]=function(e,t=[]){let r=[],n=()=>{let t=r.map(e=>_.createContext(e));return function(r){let n=r?.[e]||t;return _.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let a=_.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,o=r?.[e]?.[l]||a,s=_.useMemo(()=>i,Object.values(i));return(0,I.jsx)(o.Provider,{value:s,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let o=i?.[e]?.[l]||a,s=_.useContext(o);if(s)return s;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let a=r(e)[`__scope${n}`];return{...t,...a}},{});return _.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}(no),[nu,nd]=ns(no),nf=e=>{let{__scopeDialog:t,children:r,open:n,defaultOpen:a,onOpenChange:l,modal:i=!0}=e,o=_.useRef(null),s=_.useRef(null),[c,u]=function({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[a,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=_.useState(e),a=_.useRef(r),l=_.useRef(t);return t9(()=>{l.current=t},[t]),_.useEffect(()=>{a.current!==r&&(l.current?.(r),a.current=r)},[r,a]),[r,n,l]}({defaultProp:t,onChange:r}),o=void 0!==e,s=o?e:a;{let t=_.useRef(void 0!==e);_.useEffect(()=>{let e=t.current;if(e!==o){let t=o?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. 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.`)}t.current=o},[o,n])}return[s,_.useCallback(t=>{if(o){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[o,e,l,i])]}({prop:n,defaultProp:a??!1,onChange:l,caller:no});return(0,I.jsx)(nu,{scope:t,triggerRef:o,contentRef:s,contentId:t7(),titleId:t7(),descriptionId:t7(),open:c,onOpenChange:u,onOpenToggle:_.useCallback(()=>u(e=>!e),[u]),modal:i,children:r})};nf.displayName=no;var np="DialogTrigger";_.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(np,r),l=(0,t3.useComposedRefs)(t,a.triggerRef);return(0,I.jsx)(rr.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":nA(a.open),...n,ref:l,onClick:t4(e.onClick,a.onOpenToggle)})}).displayName=np;var nh="DialogPortal",[nm,ng]=ns(nh,{forceMount:void 0}),nv=e=>{let{__scopeDialog:t,forceMount:r,children:n,container:a}=e,l=nd(nh,t);return(0,I.jsx)(nm,{scope:t,forceMount:r,children:_.Children.map(n,e=>(0,I.jsx)(rb,{present:r||l.open,children:(0,I.jsx)(rx,{asChild:!0,container:a,children:e})}))})};nv.displayName=nh;var nx="DialogOverlay",nb=_.forwardRef((e,t)=>{let r=ng(nx,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,l=nd(nx,e.__scopeDialog);return l.modal?(0,I.jsx)(rb,{present:n||l.open,children:(0,I.jsx)(nw,{...a,ref:t})}):null});nb.displayName=nx;var ny=((o=_.forwardRef((e,t)=>{let{children:r,...n}=e;if(_.isValidElement(r)){var a;let e,l,i=(a=r,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let r={...t};for(let n in t){let a=e[n],l=t[n];/^on[A-Z]/.test(n)?a&&l?r[n]=(...e)=>{let t=l(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...l}:"className"===n&&(r[n]=[a,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==_.Fragment&&(o.ref=t?(0,t3.composeRefs)(t,i):i),_.cloneElement(r,o)}return _.Children.count(r)>1?_.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",r=o,(n=_.forwardRef((e,t)=>{let{children:n,...a}=e,l=_.Children.toArray(n),i=l.find(ni);if(i){let e=i.props.children,n=l.map(t=>t!==i?t:_.Children.count(e)>1?_.Children.only(null):_.isValidElement(e)?e.props.children:null);return(0,I.jsx)(r,{...a,ref:t,children:_.isValidElement(e)?_.cloneElement(e,void 0,n):null})}return(0,I.jsx)(r,{...a,ref:t,children:n})})).displayName="DialogOverlay.RemoveScroll.Slot",n),nw=_.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nx,r);return(0,I.jsx)(r8,{as:ny,allowPinchZoom:!0,shards:[a.contentRef],children:(0,I.jsx)(rr.div,{"data-state":nA(a.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),nN="DialogContent",nj=_.forwardRef((e,t)=>{let r=ng(nN,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,l=nd(nN,e.__scopeDialog);return(0,I.jsx)(rb,{present:n||l.open,children:l.modal?(0,I.jsx)(nk,{...a,ref:t}):(0,I.jsx)(nE,{...a,ref:t})})});nj.displayName=nN;var nk=_.forwardRef((e,t)=>{let r=nd(nN,e.__scopeDialog),n=_.useRef(null),a=(0,t3.useComposedRefs)(t,r.contentRef,n);return _.useEffect(()=>{let e=n.current;if(e)return na(e)},[]),(0,I.jsx)(nC,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:t4(e.onCloseAutoFocus,e=>{e.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:t4(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:t4(e.onFocusOutside,e=>e.preventDefault())})}),nE=_.forwardRef((e,t)=>{let r=nd(nN,e.__scopeDialog),n=_.useRef(!1),a=_.useRef(!1);return(0,I.jsx)(nC,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||r.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let l=t.target;r.triggerRef.current?.contains(l)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),nC=_.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:a,onCloseAutoFocus:l,...i}=e,o=nd(nN,r),s=_.useRef(null),c=(0,t3.useComposedRefs)(t,s);return _.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??rN()),document.body.insertAdjacentElement("beforeend",e[1]??rN()),rw++,()=>{1===rw&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),rw--}},[]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(rf,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:a,onUnmountAutoFocus:l,children:(0,I.jsx)(ri,{role:"dialog",id:o.contentId,"aria-describedby":o.descriptionId,"aria-labelledby":o.titleId,"data-state":nA(o.open),...i,ref:c,onDismiss:()=>o.onOpenChange(!1)})}),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(n_,{titleId:o.titleId}),(0,I.jsx)(nF,{contentRef:s,descriptionId:o.descriptionId})]})]})}),nS="DialogTitle",nD=_.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nS,r);return(0,I.jsx)(rr.h2,{id:a.titleId,...n,ref:t})});nD.displayName=nS;var nR="DialogDescription",nM=_.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nR,r);return(0,I.jsx)(rr.p,{id:a.descriptionId,...n,ref:t})});nM.displayName=nR;var nT="DialogClose",nO=_.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=nd(nT,r);return(0,I.jsx)(rr.button,{type:"button",...n,ref:t,onClick:t4(e.onClick,()=>a.onOpenChange(!1))})});function nA(e){return e?"open":"closed"}nO.displayName=nT;var nP="DialogTitleWarning",[nL,nI]=(j={contentName:nN,titleName:nS,docsSlug:"dialog"},a=_.createContext(j),(l=e=>{let{children:t,...r}=e,n=_.useMemo(()=>r,Object.values(r));return(0,I.jsx)(a.Provider,{value:n,children:t})}).displayName=nP+"Provider",[l,function(e){let t=_.useContext(a);if(t)return t;if(void 0!==j)return j;throw Error(`\`${e}\` must be used within \`${nP}\``)}]),n_=({titleId:e})=>{let t=nI(nP),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
2
 
3
3
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
4
 
5
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return I.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},nF=({contentRef:e,descriptionId:t})=>{let r=n_("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r.contentName}}.`;return I.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null};let n$=tZ("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),nW=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)(nb,{ref:r,className:(0,t$.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));nW.displayName=nb.displayName;let nB=I.forwardRef(({className:e,children:t,...r},n)=>(0,_.jsxs)(nv,{children:[(0,_.jsx)(nW,{}),(0,_.jsxs)(nN,{ref:n,className:(0,t$.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-4 border-black bg-white p-6 neubrutalism-shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",e),...r,children:[t,(0,_.jsxs)(nO,{className:"absolute right-4 top-4 border-2 border-black bg-white p-1 hover:bg-gray-100 focus:outline-none",children:[(0,_.jsx)(n$,{className:"h-4 w-4"}),(0,_.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));nB.displayName=nN.displayName;let nz=({className:e,...t})=>(0,_.jsx)("div",{className:(0,t$.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});nz.displayName="DialogHeader";let nU=I.forwardRef(({className:e,...t},r)=>(0,_.jsx)(nD,{ref:r,className:(0,t$.cn)("text-2xl font-bold uppercase tracking-wide leading-none",e),...t}));nU.displayName=nD.displayName,I.forwardRef(({className:e,...t},r)=>(0,_.jsx)(nM,{ref:r,className:(0,t$.cn)("text-sm text-muted-foreground",e),...t})).displayName=nM.displayName;let nK=tZ("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var nX=e.i(82574);function nY({task:e,open:t,onOpenChange:r,onRefresh:n}){let[a,l]=(0,I.useState)(e.title),[i,o]=(0,I.useState)(e.priority),[s,c]=(0,I.useState)(e.status),[u,d]=(0,I.useState)(e.body),[f,p]=(0,I.useState)(!1);async function h(){p(!0);try{await fetch(`/api/tasks/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,priority:i,status:s})}),n(),r(!1)}catch(e){console.error("Failed to update task:",e)}finally{p(!1)}}return(0,I.useEffect)(()=>{t&&fetch(`/api/tasks/${e.id}`).then(e=>e.json()).then(e=>{l(e.title),o(e.priority),c(e.status),d(e.body)}).catch(()=>{l(e.title),o(e.priority),c(e.status),d(e.body)})},[t,e.id]),(0,_.jsx)(nf,{open:t,onOpenChange:r,children:(0,_.jsxs)(nB,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,_.jsx)(nz,{children:(0,_.jsx)(nU,{children:"Edit Task"})}),(0,_.jsxs)("div",{className:"space-y-4",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Title"}),(0,_.jsx)("input",{type:"text",value:a,onChange:e=>l(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",placeholder:"Task title"})]}),(0,_.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Priority"}),(0,_.jsxs)("select",{value:i,onChange:e=>o(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold uppercase focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,_.jsx)("option",{value:"low",children:"Low"}),(0,_.jsx)("option",{value:"medium",children:"Medium"}),(0,_.jsx)("option",{value:"high",children:"High"}),(0,_.jsx)("option",{value:"urgent",children:"Urgent"})]})]}),(0,_.jsxs)("div",{children:[(0,_.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Status"}),(0,_.jsxs)("select",{value:s,onChange:e=>c(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold uppercase focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,_.jsx)("option",{value:"backlog",children:"Backlog"}),(0,_.jsx)("option",{value:"todo",children:"To Do"}),(0,_.jsx)("option",{value:"in_progress",children:"In Progress"}),(0,_.jsx)("option",{value:"interrupted",children:"Interrupted"}),(0,_.jsx)("option",{value:"done",children:"Done"})]})]})]}),e.specName&&(0,_.jsxs)("div",{children:[(0,_.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Spec"}),(0,_.jsx)("div",{className:"px-4 py-2 border-2 border-black bg-gray-50 font-mono text-sm",children:e.specName})]}),u&&(0,_.jsxs)("div",{children:[(0,_.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Task Card"}),(0,_.jsx)("div",{className:"w-full px-4 py-3 border-2 border-black bg-gray-50 min-h-[100px] text-sm overflow-auto max-h-[300px]",children:(0,_.jsx)(nX.MarkdownPreview,{content:u})})]}),(0,_.jsxs)("div",{className:"flex flex-wrap gap-3 pt-4 border-t-3 border-black",children:[e.assignedAgent&&(0,_.jsxs)(tX,{variant:"secondary",className:"gap-1",children:[(0,_.jsx)(tQ,{className:"h-3 w-3"}),e.assignedAgent]}),(0,_.jsxs)(tX,{variant:"outline",className:"gap-1",children:[(0,_.jsx)(nK,{className:"h-3 w-3"}),"Created: ",new Date(e.createdAt).toLocaleDateString()]}),e.updatedAt&&e.updatedAt!==e.createdAt&&(0,_.jsxs)(tX,{variant:"outline",className:"gap-1",children:[(0,_.jsx)(nK,{className:"h-3 w-3"}),"Updated: ",new Date(e.updatedAt).toLocaleDateString()]})]}),(0,_.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t-3 border-black",children:[(0,_.jsx)(tY.Button,{variant:"outline",onClick:()=>r(!1),disabled:f,children:"Cancel"}),(0,_.jsx)(tY.Button,{onClick:h,disabled:f,children:f?"Saving...":"Save Changes"})]})]})]})})}let nH={low:"bg-[--color-primary] text-black",medium:"bg-[--color-secondary] text-black",high:"bg-orange-300 text-black",urgent:"bg-[--color-accent] text-black"};function nV({task:e,onRefresh:t}){let[r,n]=(0,I.useState)(!1),{attributes:a,listeners:l,setNodeRef:i,transform:o,transition:s,isDragging:c}=function(e){var t,r,n,a;let{animateLayoutChanges:l=tP,attributes:i,disabled:o,data:s,getNewIndex:c=tA,id:u,strategy:d,resizeObserverConfig:f,transition:p=tL}=e,{items:h,containerId:m,activeIndex:g,disabled:v,disableTransforms:x,sortedRects:b,overIndex:y,useDragOverlay:w,strategy:j}=(0,I.useContext)(tT),N=(t=o,r=v,"boolean"==typeof t?{draggable:t,droppable:!1}:{draggable:null!=(n=null==t?void 0:t.draggable)?n:r.draggable,droppable:null!=(a=null==t?void 0:t.droppable)?a:r.droppable}),k=h.indexOf(u),E=(0,I.useMemo)(()=>({sortable:{containerId:m,index:k,items:h},...s}),[m,s,k,h]),C=(0,I.useMemo)(()=>h.slice(h.indexOf(u)),[h,u]),{rect:S,node:D,isOver:R,setNodeRef:M}=tm({id:u,data:E,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...f}}),{active:T,activatorEvent:O,activeNodeRect:A,attributes:P,setNodeRef:L,listeners:_,isDragging:F,over:$,setActivatorNodeRef:W,transform:B}=function(e){let{id:t,data:r,disabled:n=!1,attributes:a}=e,l=ee("Draggable"),{activators:i,activatorEvent:o,active:s,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:f}=(0,I.useContext)(tn),{role:p=tf,roleDescription:h="draggable",tabIndex:m=0}=null!=a?a:{},g=(null==s?void 0:s.id)===t,v=(0,I.useContext)(g?tc:td),[x,b]=Z(),[y,w]=Z(),j=(0,I.useMemo)(()=>i.reduce((e,r)=>{let{eventName:n,handler:a}=r;return e[n]=e=>{a(e,t)},e},{}),[i,t]),N=q(r);return H(()=>(d.set(t,{id:t,key:l,node:x,activatorNode:y,data:N}),()=>{let e=d.get(t);e&&e.key===l&&d.delete(t)}),[d,t]),{active:s,activatorEvent:o,activeNodeRect:c,attributes:(0,I.useMemo)(()=>({role:p,tabIndex:m,"aria-disabled":n,"aria-pressed":!!g&&p===tf||void 0,"aria-roledescription":h,"aria-describedby":u.draggable}),[n,p,m,g,h,u.draggable]),isDragging:g,listeners:n?void 0:j,node:x,over:f,setNodeRef:b,setActivatorNodeRef:w,transform:v}}({id:u,data:E,attributes:{...tF,...i},disabled:N.draggable}),z=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,I.useMemo)(()=>e=>{t.forEach(t=>t(e))},t)}(M,L),U=!!T,K=U&&!x&&tC(g)&&tC(y),X=!w&&F,Y=X&&K?B:null,V=K?null!=Y?Y:(null!=d?d:j)({rects:b,activeNodeRect:A,activeIndex:g,overIndex:y,index:k}):null,J=tC(g)&&tC(y)?c({id:u,items:h,activeIndex:g,overIndex:y}):k,G=null==T?void 0:T.id,Q=(0,I.useRef)({activeId:G,items:h,newIndex:J,containerId:m}),et=h!==Q.current.items,er=l({active:T,containerId:m,isDragging:F,isSorting:U,id:u,index:k,items:h,newIndex:Q.current.newIndex,previousItems:Q.current.items,previousContainerId:Q.current.containerId,transition:p,wasDragging:null!=Q.current.activeId}),en=function(e){let{disabled:t,index:r,node:n,rect:a}=e,[l,i]=(0,I.useState)(null),o=(0,I.useRef)(r);return H(()=>{if(!t&&r!==o.current&&n.current){let e=a.current;if(e){let t=eN(n.current,{ignoreTransform:!0}),r={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(r.x||r.y)&&i(r)}}r!==o.current&&(o.current=r)},[t,r,n,a]),(0,I.useEffect)(()=>{l&&i(null)},[l]),l}({disabled:!er,index:k,node:D,rect:S});return(0,I.useEffect)(()=>{U&&Q.current.newIndex!==J&&(Q.current.newIndex=J),m!==Q.current.containerId&&(Q.current.containerId=m),h!==Q.current.items&&(Q.current.items=h)},[U,J,m,h]),(0,I.useEffect)(()=>{if(G===Q.current.activeId)return;if(null!=G&&null==Q.current.activeId){Q.current.activeId=G;return}let e=setTimeout(()=>{Q.current.activeId=G},50);return()=>clearTimeout(e)},[G]),{active:T,activeIndex:g,attributes:P,data:E,rect:S,index:k,newIndex:J,items:h,isOver:R,isSorting:U,isDragging:F,listeners:_,node:D,overIndex:y,over:$,setNodeRef:z,setActivatorNodeRef:W,setDroppableNodeRef:M,setDraggableNodeRef:L,transform:null!=en?en:V,transition:en||et&&Q.current.newIndex===k?tI:(!X||ea(O))&&p&&(U||er)?ei.Transition.toString({...p,property:t_}):void 0}}({id:e.id}),u={transform:ei.Transform.toString(o),transition:s};async function d(r){if(r.stopPropagation(),confirm("Are you sure you want to delete this task?"))try{await fetch(`/api/tasks/${e.id}`,{method:"DELETE"}),t()}catch(e){console.error("Failed to delete task:",e)}}return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("div",{ref:i,style:u,className:(0,t$.cn)("cursor-pointer transition-opacity",c&&"opacity-50"),children:(0,_.jsxs)(tW,{className:(0,t$.cn)("hover:translate-x-0.5 hover:translate-y-0.5 transition-transform cursor-pointer","interrupted"===e.status&&"border-amber-500 bg-amber-50"),onClick:()=>n(!0),children:[(0,_.jsx)(tB,{className:"pb-3",children:(0,_.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,_.jsx)("div",{className:"flex-1 min-w-0",children:(0,_.jsx)(tz,{className:"text-sm line-clamp-2",children:e.title})}),(0,_.jsxs)("div",{className:"flex items-center gap-1",children:[(0,_.jsx)(tY.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-grab active:cursor-grabbing border-2 border-black",...a,...l,onClick:e=>e.stopPropagation(),children:(0,_.jsx)(tG,{className:"h-4 w-4"})}),(0,_.jsx)(tY.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 border-2 border-black bg-[--color-accent] hover:bg-red-400",onClick:d,children:(0,_.jsx)(t1,{className:"h-3 w-3"})})]})]})}),(0,_.jsx)(tU,{className:"space-y-2",children:(0,_.jsxs)("div",{className:"flex flex-wrap gap-2",children:["interrupted"===e.status&&(0,_.jsxs)(tX,{variant:"outline",className:"text-xs gap-1 border-amber-500 text-amber-700 bg-amber-50",children:[(0,_.jsx)(t2,{className:"h-3 w-3"}),"Interrupted"]}),e.specName&&(0,_.jsx)(tX,{variant:"outline",className:"text-xs font-mono",children:e.specName}),(0,_.jsx)(tX,{variant:"outline",className:(0,t$.cn)("text-xs",nH[e.priority]),children:e.priority}),e.assignedAgent&&(0,_.jsxs)(tX,{variant:"secondary",className:"text-xs gap-1",children:[(0,_.jsx)(tQ,{className:"h-3 w-3"}),e.assignedAgent]}),e.body&&(0,_.jsxs)(tX,{variant:"outline",className:"text-xs gap-1",children:[(0,_.jsx)(t0,{className:"h-3 w-3"}),"Notes"]})]})})]})}),(0,_.jsx)(nY,{task:e,features:[],open:r,onOpenChange:n,onRefresh:t})]})}function nq({id:e,title:t,color:r,tasks:n,onRefresh:a}){let{setNodeRef:l,isOver:i}=tm({id:e});return(0,_.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,_.jsx)("div",{className:(0,t$.cn)("px-4 py-3 border-3 border-black border-b-0",r),children:(0,_.jsxs)("h2",{className:"font-black uppercase tracking-wide text-black flex items-center justify-between",children:[(0,_.jsx)("span",{children:t}),(0,_.jsx)("span",{className:"text-sm font-bold bg-black text-white px-2 py-1",children:n.length})]})}),(0,_.jsxs)("div",{ref:l,className:(0,t$.cn)("flex-1 overflow-y-auto p-4 space-y-3 bg-white border-3 border-black transition-colors",i&&"bg-gray-100"),children:[(0,_.jsx)(tO,{items:n.map(e=>e.id),strategy:tR,children:n.map(e=>(0,_.jsx)(nV,{task:e,feature:void 0,features:[],onRefresh:a},e.id))}),0===n.length&&(0,_.jsx)("div",{className:"text-center text-gray-500 font-bold text-sm py-8 uppercase",children:"Drop tasks here"})]})]})}let nJ=tZ("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),nZ=tZ("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),nG=tZ("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),nQ=tZ("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),n0={blocked:"bg-gray-300",ready:"bg-blue-400",in_review:"bg-yellow-400",in_progress:"bg-orange-400",done:"bg-green-500"},n1={done:(0,_.jsx)(nZ,{className:"h-3 w-3 text-green-600"}),in_review:(0,_.jsx)(nK,{className:"h-3 w-3 text-yellow-500"}),in_progress:(0,_.jsx)(nK,{className:"h-3 w-3 text-orange-500"}),ready:(0,_.jsx)(nG,{className:"h-3 w-3 text-blue-500"}),blocked:(0,_.jsx)(nQ,{className:"h-3 w-3 text-gray-400"})},n2={done:"done",in_review:"in review",in_progress:"in progress",ready:"ready",blocked:"blocked"};function n4({spec:e,selected:t,onClick:r}){let n,a=e.statuses?0===(n=e.statuses.filter(e=>"development"!==e.id)).length?"ready":n.every(e=>"done"===e.state)?"done":n.some(e=>"in_review"===e.state||"in_progress"===e.state)?"in_review":n.some(e=>"ready"===e.state)?"ready":"blocked":"ready",l=e.statuses?.filter(e=>"development"!==e.id)??[];return(0,_.jsxs)("button",{onClick:r,className:`w-full text-left p-3 border-4 transition-all ${t?"border-black bg-black text-white shadow-none translate-x-[2px] translate-y-[2px]":"border-black bg-white shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-none"}`,children:[(0,_.jsxs)("div",{className:"flex items-start justify-between gap-1 mb-2",children:[(0,_.jsx)("span",{className:`font-black text-xs uppercase leading-tight line-clamp-2 flex-1 ${t?"text-white":""}`,children:e.title||e.name}),(0,_.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:n1[a]})]}),(0,_.jsx)("p",{className:`font-mono text-[10px] mb-2 truncate ${t?"text-gray-300":"text-gray-400"}`,children:e.name}),l.length>0&&(0,_.jsxs)("div",{className:"flex gap-1 items-center",children:[l.map(e=>(0,_.jsx)("div",{title:`${e.id}: ${e.state}`,className:`w-2 h-2 rounded-full border border-black ${t?"border-gray-400":""} ${n0[e.state]}`},e.id)),(0,_.jsx)("span",{className:`text-[10px] font-bold uppercase ml-1 ${t?"text-gray-300":"text-gray-400"}`,children:n2[a]})]})]})}function n3({selectedSpecName:e,onSelectSpec:t}){let[r,n]=(0,I.useState)([]),[a,l]=(0,I.useState)(!0);return(0,I.useEffect)(()=>{!async function(){try{let e=await fetch("/api/specs"),t=await e.json(),r=await Promise.all(t.map(async e=>{try{let t=await fetch(`/api/specs/${e.name}`),r=await t.json();return{...e,statuses:r.statuses}}catch{return e}}));n(r)}catch(e){console.error(e)}finally{l(!1)}}()},[]),(0,_.jsxs)("div",{className:"flex flex-col h-full min-h-0 border-r-4 border-black bg-[--color-bg]",style:{width:220,flexShrink:0},children:[(0,_.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b-4 border-black bg-[--color-secondary] flex-shrink-0",children:[(0,_.jsx)("h2",{className:"font-black uppercase text-sm tracking-wide",children:"Specs"}),(0,_.jsxs)("span",{className:"text-xs font-bold opacity-60",children:["(",r.length,")"]})]}),(0,_.jsxs)("div",{className:"flex-1 overflow-y-auto p-3 flex flex-col gap-2",children:[a&&(0,_.jsx)("p",{className:"text-xs text-gray-400 font-mono px-1",children:"Loading..."}),!a&&0===r.length&&(0,_.jsx)("p",{className:"text-xs text-gray-400 font-mono px-1",children:"No specs yet."}),r.map(r=>(0,_.jsx)(n4,{spec:r,selected:e===r.name,onClick:()=>t(r.name)},r.name))]})]})}let n5=tZ("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var n6=e.i(11143),n8=e.i(73238);let n7={blocked:(0,_.jsx)(nQ,{className:"h-3 w-3 text-gray-400 flex-shrink-0"}),ready:(0,_.jsx)(nG,{className:"h-3 w-3 text-blue-500 flex-shrink-0"}),in_review:(0,_.jsx)(nK,{className:"h-3 w-3 text-yellow-500 flex-shrink-0"}),in_progress:(0,_.jsx)(nK,{className:"h-3 w-3 text-orange-500 flex-shrink-0"}),done:(0,_.jsx)(nZ,{className:"h-3 w-3 text-green-600 flex-shrink-0"})},n9={backlog:"bg-gray-100 border-gray-400 text-gray-600",todo:"bg-blue-100 border-blue-400 text-blue-700",in_progress:"bg-orange-100 border-orange-400 text-orange-700",interrupted:"bg-red-100 border-red-400 text-red-700",done:"bg-green-100 border-green-500 text-green-700"},ae={urgent:"text-red-600",high:"text-orange-500",medium:"text-gray-500",low:"text-gray-400"};function at({tasks:e,status:t}){let r=e.length,n=e.filter(e=>"done"===e.status).length,a=e.filter(e=>"in_progress"===e.status).length;return t?.state==="blocked"?(0,_.jsxs)("div",{className:"p-6 bg-gray-100 border-4 border-gray-300 text-center",children:[(0,_.jsx)("p",{className:"font-bold text-gray-600 uppercase",children:"Blocked — approve and promote tasks first"}),(0,_.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Approve all artifacts, then click “Promote to Tasks”"})]}):0===e.length?(0,_.jsxs)("div",{className:"p-6 bg-blue-50 border-4 border-blue-300 text-center",children:[(0,_.jsx)("p",{className:"font-bold text-blue-700 uppercase",children:"Ready to promote"}),(0,_.jsx)("p",{className:"text-sm text-blue-600 mt-1",children:"All artifacts approved. Promote tasks to start development."})]}):(0,_.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,_.jsxs)("div",{className:"flex items-center gap-3",children:[(0,_.jsx)("div",{className:"flex-1 h-3 bg-gray-200 border-2 border-black overflow-hidden",children:(0,_.jsx)("div",{className:"h-full bg-green-500 transition-all",style:{width:`${r>0?n/r*100:0}%`}})}),(0,_.jsxs)("span",{className:"font-mono text-sm font-bold whitespace-nowrap",children:[n,"/",r," done",a>0&&(0,_.jsxs)("span",{className:"text-orange-600 ml-2",children:["· ",a," in progress"]})]})]}),(0,_.jsx)("div",{className:"flex flex-col gap-2",children:e.map(e=>(0,_.jsxs)("div",{className:"flex items-center gap-3 p-3 border-4 border-black bg-white",children:[(0,_.jsx)("span",{className:`text-lg ${"done"===e.status?"opacity-100":"opacity-30"}`,children:"done"===e.status?"✓":"in_progress"===e.status?"⟳":"○"}),(0,_.jsx)("span",{className:`flex-1 font-bold text-sm ${"done"===e.status?"line-through text-gray-400":""}`,children:e.title}),(0,_.jsx)("span",{className:`text-xs font-mono uppercase font-bold ${ae[e.priority]||""}`,children:e.priority}),(0,_.jsx)("span",{className:`px-2 py-0.5 border-2 text-xs font-bold uppercase ${n9[e.status]||""}`,children:e.status.replace("_"," ")}),e.assignedAgent&&(0,_.jsxs)("span",{className:"text-xs font-mono text-gray-500 truncate max-w-[120px]",title:e.assignedAgent,children:["@",e.assignedAgent]})]},e.id))})]})}function ar({specName:e,onClose:t}){let[r,n]=(0,I.useState)(null),[a,l]=(0,I.useState)(null),[i,o]=(0,I.useState)(!1);async function s(){let t=await fetch(`/api/specs/${e}`),r=await t.json();n(r),!a&&r.statuses?.length&&l(r.statuses[0].id)}async function c(){o(!0);try{let t=await fetch(`/api/specs/${e}/promote`,{method:"POST"}),r=await t.json();t.ok?(alert(`Promoted ${r.promoted} tasks to Kanban board!`),s()):alert(`Error: ${r.error}`)}finally{o(!1)}}(0,I.useEffect)(()=>{s()},[e]);let u=r?.statuses.filter(e=>"development"!==e.id)??[],d=r?.statuses.find(e=>"development"===e.id),f=u.every(e=>"done"===e.state),p=r?.statuses.find(e=>e.id===a),h="development"===a;return(0,_.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,_.jsxs)("div",{className:"bg-white border-4 border-black shadow-[8px_8px_0px_0px_rgba(0,0,0,1)] flex flex-col",style:{width:"min(1300px, 96vw)",height:"min(920px, 94vh)"},children:[(0,_.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b-4 border-black bg-white flex-shrink-0",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("h2",{className:"text-2xl font-black uppercase leading-tight",children:r?.title||e}),(0,_.jsx)("p",{className:"font-mono text-xs text-gray-500 mt-0.5",children:e})]}),(0,_.jsx)("button",{onClick:t,className:"p-2 border-4 border-black hover:bg-black hover:text-white transition-colors",children:(0,_.jsx)(n$,{className:"h-5 w-5"})})]}),r&&(0,_.jsx)("div",{className:"px-6 py-3 border-b-4 border-black bg-white flex-shrink-0",children:(0,_.jsx)(n8.ArtifactDagStatus,{statuses:r.statuses})}),f&&r?.tasks.length===0&&(0,_.jsxs)("div",{className:"px-6 py-3 border-b-4 border-green-600 bg-green-100 flex-shrink-0 flex items-center justify-between",children:[(0,_.jsx)("p",{className:"font-black text-green-800 uppercase text-sm",children:"All artifacts approved!"}),(0,_.jsx)(tY.Button,{onClick:c,disabled:i,className:"bg-green-600 hover:bg-green-700 text-white",children:i?"Promoting...":"Promote to Tasks"})]}),d?.state==="done"&&(0,_.jsx)("div",{className:"px-6 py-3 border-b-4 border-green-600 bg-green-100 flex-shrink-0",children:(0,_.jsxs)("p",{className:"font-black text-green-800 uppercase text-sm",children:["✓ Spec complete — all ",r?.tasks.length," tasks done"]})}),(0,_.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,_.jsxs)("div",{className:"w-60 border-r-4 border-black bg-white flex flex-col flex-shrink-0 overflow-y-auto",children:[(0,_.jsx)("div",{className:"px-3 py-2 border-b-2 border-gray-200",children:(0,_.jsxs)("span",{className:"font-mono text-[10px] text-gray-400 uppercase tracking-widest",children:[e,"/"]})}),(0,_.jsx)("div",{className:"flex-1 py-1",children:r?(0,_.jsxs)(_.Fragment,{children:[u.map(e=>(0,_.jsxs)("button",{onClick:()=>l(e.id),className:`w-full flex items-center gap-2 px-3 py-2 text-left transition-colors group ${a===e.id?"bg-black text-white":"hover:bg-gray-100"}`,children:[(0,_.jsx)(n5,{className:`h-3 w-3 flex-shrink-0 ${a===e.id?"text-white":"text-gray-300"}`}),(0,_.jsx)(t0,{className:`h-3.5 w-3.5 flex-shrink-0 ${a===e.id?"text-white":"text-gray-400"}`}),(0,_.jsxs)("span",{className:"font-mono text-xs font-bold flex-1 truncate",children:[e.id,".md"]}),(0,_.jsx)("span",{className:a===e.id?"text-white opacity-70":"",children:n7[e.state]})]},e.id)),(f||r.tasks.length>0)&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("div",{className:"mx-3 my-1 border-t border-dashed border-gray-200"}),(0,_.jsxs)("button",{onClick:()=>l("development"),className:`w-full flex items-center gap-2 px-3 py-2 text-left transition-colors ${"development"===a?"bg-black text-white":"hover:bg-gray-100"}`,children:[(0,_.jsx)(n5,{className:`h-3 w-3 flex-shrink-0 ${"development"===a?"text-white":"text-gray-300"}`}),(0,_.jsx)(t0,{className:`h-3.5 w-3.5 flex-shrink-0 ${"development"===a?"text-white":"text-gray-400"}`}),(0,_.jsx)("span",{className:"font-mono text-xs font-bold flex-1",children:"development"}),(0,_.jsx)("span",{className:"development"===a?"text-white opacity-70":"",children:d?n7[d.state]:null})]})]})]}):(0,_.jsx)("div",{className:"px-4 py-3 text-xs text-gray-400 font-mono",children:"Loading..."})})]}),(0,_.jsx)("div",{className:"flex-1 flex flex-col min-h-0 p-6",children:r?a?h?(0,_.jsx)(at,{tasks:r.tasks,status:d}):p?(0,_.jsx)(n6.ArtifactEditor,{specName:e,artifactType:a,content:r.artifacts[a]??null,status:p,onSave:s,defaultMode:"preview"},a):null:null:(0,_.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,_.jsx)("span",{className:"text-gray-400 font-mono text-sm",children:"Loading..."})})})]})]})})}let an=[{id:"backlog",title:"Backlog",color:"bg-gray-200"},{id:"todo",title:"To Do",color:"bg-[--color-primary]"},{id:"in_progress",title:"In Progress",color:"bg-[--color-secondary]"},{id:"done",title:"Done",color:"bg-[--color-success]"}],aa=new Set(an.map(e=>e.id)),al="devflow-selected-project";function ai(){var e;let[t,r]=(0,I.useState)([]),[n,a]=(0,I.useState)([]),[l,i]=(0,I.useState)(null),[o,s]=(0,I.useState)(null),[c,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(null),[p,h]=(0,I.useState)(!0),[m,g]=(0,I.useState)(!1),[v,x]=(0,I.useState)(!1);(0,I.useRef)(null).current=l;let b=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,I.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}((e={activationConstraint:{distance:8}},(0,I.useMemo)(()=>({sensor:eq,options:null!=e?e:{}}),[eq,e])));(0,I.useEffect)(()=>{let e=localStorage.getItem(al);e&&i("all"===e?null:e),x(!0)},[]);let y=(0,I.useCallback)(e=>{i(e),s(null),localStorage.setItem(al,e||"all"),g(!1)},[]);async function w(){try{let e=await fetch("/api/projects"),t=await e.json();a(t),v&&l?!t.some(e=>e.id===l)&&t.length>0&&y(t[0].id):v&&!l&&!localStorage.getItem(al)&&t.length>0&&y(t[0].id)}catch(e){console.error("Failed to fetch projects:",e)}}async function j(){try{let e=await fetch("/api/tasks"),t=await e.json();r(t)}catch(e){console.error("Failed to fetch tasks:",e)}finally{h(!1)}}async function N(e,t){try{await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t})}),await j()}catch(e){console.error("Failed to update task:",e)}}async function k(e,r){let n=t.filter(t=>t.projectId===e).length;if(confirm(n>0?`Delete "${r}" and its ${n} task${1===n?"":"s"}? This cannot be undone.`:`Delete "${r}"? This cannot be undone.`))try{(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok&&(l===e&&y(null),await w(),await j())}catch(e){console.error("Failed to delete project:",e)}}if((0,I.useEffect)(()=>{w(),j();let e=setInterval(()=>{j(),w()},5e3);return()=>clearInterval(e)},[]),(0,I.useEffect)(()=>{let e,t=null,r=!1;return!function n(){if(!r)try{(t=new WebSocket("ws://localhost:3001")).onopen=()=>{console.log("WebSocket connected")},t.onmessage=e=>{let t=JSON.parse(e.data);"agent_count"!==t.type&&(t.type?.includes("project")&&w(),j())},t.onerror=()=>{},t.onclose=()=>{r||(e=setTimeout(n,3e3))}}catch{r||(e=setTimeout(n,3e3))}}(),()=>{r=!0,clearTimeout(e),t?.close()}},[]),p)return(0,_.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,_.jsx)("div",{className:"text-lg",children:"Loading tasks..."})});let E=n.find(e=>e.id===l),C=l?t.filter(e=>e.projectId===l):t,S=(o?C.filter(e=>e.specName===o):C).length;return(0,_.jsxs)("div",{className:"h-screen flex flex-col bg-[--color-bg]",children:[(0,_.jsx)("header",{className:"border-b-4 border-black bg-white neubrutalism-shadow",children:(0,_.jsx)("div",{className:"container mx-auto px-6 py-4",children:(0,_.jsxs)("div",{className:"flex items-center justify-between",children:[(0,_.jsxs)("div",{className:"flex items-center gap-6",children:[(0,_.jsx)("div",{className:"flex items-center gap-4",children:(0,_.jsx)("h1",{className:"text-3xl font-black uppercase tracking-tight",children:"DevFlow"})}),(0,_.jsxs)("div",{className:"relative",children:[(0,_.jsxs)("button",{onClick:()=>g(!m),className:"flex items-center gap-2 px-4 py-2 bg-[--color-primary] border-4 border-black font-bold text-sm uppercase hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-none transition-all shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,_.jsx)("span",{className:"max-w-[200px] truncate",children:E?E.name:"All Projects"}),(0,_.jsxs)("span",{className:"text-xs opacity-70",children:["(",S,")"]}),(0,_.jsx)(nJ,{className:`h-4 w-4 transition-transform ${m?"rotate-180":""}`})]}),m&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("div",{className:"fixed inset-0 z-10",onClick:()=>g(!1)}),(0,_.jsxs)("div",{className:"absolute top-full left-0 mt-2 w-64 bg-white border-4 border-black shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] z-20 max-h-80 overflow-y-auto",children:[(0,_.jsxs)("button",{onClick:()=>y(null),className:`w-full px-4 py-3 text-left font-bold text-sm uppercase border-b-2 border-black hover:bg-gray-100 flex items-center justify-between ${!l?"bg-black text-white hover:bg-gray-800":""}`,children:[(0,_.jsx)("span",{children:"All Projects"}),(0,_.jsxs)("span",{className:"text-xs opacity-70",children:["(",t.length,")"]})]}),n.map(e=>{let r=t.filter(t=>t.projectId===e.id).length;return(0,_.jsxs)("div",{className:`flex items-center border-b border-gray-200 last:border-b-0 ${l===e.id?"bg-[--color-primary]":"hover:bg-gray-100"}`,children:[(0,_.jsxs)("button",{onClick:()=>y(e.id),className:"flex-1 px-4 py-3 text-left font-bold text-sm flex items-center justify-between",children:[(0,_.jsx)("span",{className:"truncate",children:e.name}),(0,_.jsxs)("span",{className:"text-xs opacity-70 ml-2",children:["(",r,")"]})]}),(0,_.jsx)("button",{onClick:t=>{t.stopPropagation(),k(e.id,e.name)},className:"px-3 py-3 text-red-600 hover:bg-red-100 hover:text-red-800 transition-colors",title:"Delete project",children:(0,_.jsx)(t1,{className:"h-4 w-4"})})]},e.id)}),0===n.length&&(0,_.jsx)("div",{className:"px-4 py-3 text-sm text-gray-500",children:"No projects yet"})]})]})]})]}),(0,_.jsx)("div",{})]})})}),E&&(0,_.jsx)("div",{className:"bg-[--color-primary] border-b-4 border-black px-6 py-2",children:(0,_.jsxs)("div",{className:"container mx-auto flex items-center justify-between",children:[(0,_.jsxs)("div",{className:"flex items-center gap-4",children:[(0,_.jsx)("h2",{className:"text-lg font-black uppercase",children:E.name}),E.description&&(0,_.jsxs)("p",{className:"text-sm font-medium opacity-80",children:["— ",E.description]})]}),(0,_.jsxs)("div",{className:"flex items-center gap-4 text-sm font-bold",children:[(0,_.jsxs)("span",{children:[C.filter(e=>"in_progress"===e.status).length," in progress"]}),(0,_.jsxs)("span",{children:[C.filter(e=>"done"===e.status).length," done"]})]})]})}),(0,_.jsxs)("div",{className:"flex-1 min-h-0 overflow-hidden flex",children:[(0,_.jsx)(n3,{selectedSpecName:o,onSelectSpec:e=>{o===e&&c?u(!1):(s(e),u(!0))}}),(0,_.jsx)("main",{className:"flex-1 min-h-0 overflow-hidden",children:(0,_.jsxs)(tu,{sensors:b,onDragStart:function(e){f(t.find(t=>t.id===e.active.id)||null)},onDragEnd:function(e){let r,{active:n,over:a}=e;if(f(null),!a)return;let l=n.id,i=a.id;if(aa.has(i))r=i;else{let e=t.find(e=>e.id===i);if(!e)return;r=e.status}let o=t.find(e=>e.id===l);o&&o.status!==r&&N(l,r)},children:[(0,_.jsx)("div",{className:"h-full px-6 py-6",children:(0,_.jsx)("div",{className:"grid grid-cols-4 gap-6 h-full min-h-0",children:an.map(e=>{var r;return(0,_.jsx)(nq,{id:e.id,title:e.title,color:e.color,tasks:(r=e.id,t.filter(e=>"interrupted"===e.status?"in_progress"===r:e.status===r).filter(e=>!l||e.projectId===l).filter(e=>!o||e.specName===o)),features:[],onRefresh:j},e.id)})})}),(0,_.jsx)(tk,{children:d?(0,_.jsx)("div",{className:"rotate-3 opacity-80",children:(0,_.jsx)(nV,{task:d,feature:void 0,features:[],onRefresh:j})}):null})]})}),c&&o&&(0,_.jsx)(ar,{specName:o,onClose:()=>u(!1)})]})]})}e.s(["KanbanBoard",()=>ai],7088)}]);
5
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return _.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},nF=({contentRef:e,descriptionId:t})=>{let r=nI("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r.contentName}}.`;return _.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null};let n$=tZ("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),nB=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)(nb,{ref:r,className:(0,t$.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));nB.displayName=nb.displayName;let nW=_.forwardRef(({className:e,children:t,...r},n)=>(0,I.jsxs)(nv,{children:[(0,I.jsx)(nB,{}),(0,I.jsxs)(nj,{ref:n,className:(0,t$.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-4 border-black bg-white p-6 neubrutalism-shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",e),...r,children:[t,(0,I.jsxs)(nO,{className:"absolute right-4 top-4 border-2 border-black bg-white p-1 hover:bg-gray-100 focus:outline-none",children:[(0,I.jsx)(n$,{className:"h-4 w-4"}),(0,I.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));nW.displayName=nj.displayName;let nz=({className:e,...t})=>(0,I.jsx)("div",{className:(0,t$.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});nz.displayName="DialogHeader";let nU=_.forwardRef(({className:e,...t},r)=>(0,I.jsx)(nD,{ref:r,className:(0,t$.cn)("text-2xl font-bold uppercase tracking-wide leading-none",e),...t}));nU.displayName=nD.displayName,_.forwardRef(({className:e,...t},r)=>(0,I.jsx)(nM,{ref:r,className:(0,t$.cn)("text-sm text-muted-foreground",e),...t})).displayName=nM.displayName;let nK=tZ("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var nX=e.i(82574);function nY({task:e,open:t,onOpenChange:r,onRefresh:n}){let[a,l]=(0,_.useState)(e.title),[i,o]=(0,_.useState)(e.priority),[s,c]=(0,_.useState)(e.status),[u,d]=(0,_.useState)(e.body),[f,p]=(0,_.useState)(!1);async function h(){p(!0);try{await fetch(`/api/tasks/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,priority:i,status:s})}),n(),r(!1)}catch(e){console.error("Failed to update task:",e)}finally{p(!1)}}return(0,_.useEffect)(()=>{t&&fetch(`/api/tasks/${e.id}`).then(e=>e.json()).then(e=>{l(e.title),o(e.priority),c(e.status),d(e.body)}).catch(()=>{l(e.title),o(e.priority),c(e.status),d(e.body)})},[t,e.id]),(0,I.jsx)(nf,{open:t,onOpenChange:r,children:(0,I.jsxs)(nW,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,I.jsx)(nz,{children:(0,I.jsx)(nU,{children:"Edit Task"})}),(0,I.jsxs)("div",{className:"space-y-4",children:[(0,I.jsxs)("div",{children:[(0,I.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Title"}),(0,I.jsx)("input",{type:"text",value:a,onChange:e=>l(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",placeholder:"Task title"})]}),(0,I.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,I.jsxs)("div",{children:[(0,I.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Priority"}),(0,I.jsxs)("select",{value:i,onChange:e=>o(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold uppercase focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,I.jsx)("option",{value:"low",children:"Low"}),(0,I.jsx)("option",{value:"medium",children:"Medium"}),(0,I.jsx)("option",{value:"high",children:"High"}),(0,I.jsx)("option",{value:"urgent",children:"Urgent"})]})]}),(0,I.jsxs)("div",{children:[(0,I.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Status"}),(0,I.jsxs)("select",{value:s,onChange:e=>c(e.target.value),className:"w-full px-4 py-3 border-3 border-black font-bold uppercase focus:outline-none focus:shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,I.jsx)("option",{value:"backlog",children:"Backlog"}),(0,I.jsx)("option",{value:"todo",children:"To Do"}),(0,I.jsx)("option",{value:"in_progress",children:"In Progress"}),(0,I.jsx)("option",{value:"interrupted",children:"Interrupted"}),(0,I.jsx)("option",{value:"done",children:"Done"})]})]})]}),e.specName&&(0,I.jsxs)("div",{children:[(0,I.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Spec"}),(0,I.jsx)("div",{className:"px-4 py-2 border-2 border-black bg-gray-50 font-mono text-sm",children:e.specName})]}),u&&(0,I.jsxs)("div",{children:[(0,I.jsx)("label",{className:"text-xs font-bold uppercase tracking-wide mb-2 block",children:"Task Card"}),(0,I.jsx)("div",{className:"w-full px-4 py-3 border-2 border-black bg-gray-50 min-h-[100px] text-sm overflow-auto max-h-[300px]",children:(0,I.jsx)(nX.MarkdownPreview,{content:u})})]}),(0,I.jsxs)("div",{className:"flex flex-wrap gap-3 pt-4 border-t-3 border-black",children:[e.assignedAgent&&(0,I.jsxs)(tX,{variant:"secondary",className:"gap-1",children:[(0,I.jsx)(tQ,{className:"h-3 w-3"}),e.assignedAgent]}),(0,I.jsxs)(tX,{variant:"outline",className:"gap-1",children:[(0,I.jsx)(nK,{className:"h-3 w-3"}),"Created: ",new Date(e.createdAt).toLocaleDateString()]}),e.updatedAt&&e.updatedAt!==e.createdAt&&(0,I.jsxs)(tX,{variant:"outline",className:"gap-1",children:[(0,I.jsx)(nK,{className:"h-3 w-3"}),"Updated: ",new Date(e.updatedAt).toLocaleDateString()]})]}),(0,I.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t-3 border-black",children:[(0,I.jsx)(tY.Button,{variant:"outline",onClick:()=>r(!1),disabled:f,children:"Cancel"}),(0,I.jsx)(tY.Button,{onClick:h,disabled:f,children:f?"Saving...":"Save Changes"})]})]})]})})}let nH={low:"bg-[--color-primary] text-black",medium:"bg-[--color-secondary] text-black",high:"bg-orange-300 text-black",urgent:"bg-[--color-accent] text-black"};function nV({task:e,onRefresh:t}){let[r,n]=(0,_.useState)(!1),{attributes:a,listeners:l,setNodeRef:i,transform:o,transition:s,isDragging:c}=function(e){var t,r,n,a;let{animateLayoutChanges:l=tP,attributes:i,disabled:o,data:s,getNewIndex:c=tA,id:u,strategy:d,resizeObserverConfig:f,transition:p=tL}=e,{items:h,containerId:m,activeIndex:g,disabled:v,disableTransforms:x,sortedRects:b,overIndex:y,useDragOverlay:w,strategy:N}=(0,_.useContext)(tT),j=(t=o,r=v,"boolean"==typeof t?{draggable:t,droppable:!1}:{draggable:null!=(n=null==t?void 0:t.draggable)?n:r.draggable,droppable:null!=(a=null==t?void 0:t.droppable)?a:r.droppable}),k=h.indexOf(u),E=(0,_.useMemo)(()=>({sortable:{containerId:m,index:k,items:h},...s}),[m,s,k,h]),C=(0,_.useMemo)(()=>h.slice(h.indexOf(u)),[h,u]),{rect:S,node:D,isOver:R,setNodeRef:M}=tm({id:u,data:E,disabled:j.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...f}}),{active:T,activatorEvent:O,activeNodeRect:A,attributes:P,setNodeRef:L,listeners:I,isDragging:F,over:$,setActivatorNodeRef:B,transform:W}=function(e){let{id:t,data:r,disabled:n=!1,attributes:a}=e,l=ee("Draggable"),{activators:i,activatorEvent:o,active:s,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:f}=(0,_.useContext)(tn),{role:p=tf,roleDescription:h="draggable",tabIndex:m=0}=null!=a?a:{},g=(null==s?void 0:s.id)===t,v=(0,_.useContext)(g?tc:td),[x,b]=Z(),[y,w]=Z(),N=(0,_.useMemo)(()=>i.reduce((e,r)=>{let{eventName:n,handler:a}=r;return e[n]=e=>{a(e,t)},e},{}),[i,t]),j=q(r);return H(()=>(d.set(t,{id:t,key:l,node:x,activatorNode:y,data:j}),()=>{let e=d.get(t);e&&e.key===l&&d.delete(t)}),[d,t]),{active:s,activatorEvent:o,activeNodeRect:c,attributes:(0,_.useMemo)(()=>({role:p,tabIndex:m,"aria-disabled":n,"aria-pressed":!!g&&p===tf||void 0,"aria-roledescription":h,"aria-describedby":u.draggable}),[n,p,m,g,h,u.draggable]),isDragging:g,listeners:n?void 0:N,node:x,over:f,setNodeRef:b,setActivatorNodeRef:w,transform:v}}({id:u,data:E,attributes:{...tF,...i},disabled:j.draggable}),z=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,_.useMemo)(()=>e=>{t.forEach(t=>t(e))},t)}(M,L),U=!!T,K=U&&!x&&tC(g)&&tC(y),X=!w&&F,Y=X&&K?W:null,V=K?null!=Y?Y:(null!=d?d:N)({rects:b,activeNodeRect:A,activeIndex:g,overIndex:y,index:k}):null,J=tC(g)&&tC(y)?c({id:u,items:h,activeIndex:g,overIndex:y}):k,G=null==T?void 0:T.id,Q=(0,_.useRef)({activeId:G,items:h,newIndex:J,containerId:m}),et=h!==Q.current.items,er=l({active:T,containerId:m,isDragging:F,isSorting:U,id:u,index:k,items:h,newIndex:Q.current.newIndex,previousItems:Q.current.items,previousContainerId:Q.current.containerId,transition:p,wasDragging:null!=Q.current.activeId}),en=function(e){let{disabled:t,index:r,node:n,rect:a}=e,[l,i]=(0,_.useState)(null),o=(0,_.useRef)(r);return H(()=>{if(!t&&r!==o.current&&n.current){let e=a.current;if(e){let t=ej(n.current,{ignoreTransform:!0}),r={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(r.x||r.y)&&i(r)}}r!==o.current&&(o.current=r)},[t,r,n,a]),(0,_.useEffect)(()=>{l&&i(null)},[l]),l}({disabled:!er,index:k,node:D,rect:S});return(0,_.useEffect)(()=>{U&&Q.current.newIndex!==J&&(Q.current.newIndex=J),m!==Q.current.containerId&&(Q.current.containerId=m),h!==Q.current.items&&(Q.current.items=h)},[U,J,m,h]),(0,_.useEffect)(()=>{if(G===Q.current.activeId)return;if(null!=G&&null==Q.current.activeId){Q.current.activeId=G;return}let e=setTimeout(()=>{Q.current.activeId=G},50);return()=>clearTimeout(e)},[G]),{active:T,activeIndex:g,attributes:P,data:E,rect:S,index:k,newIndex:J,items:h,isOver:R,isSorting:U,isDragging:F,listeners:I,node:D,overIndex:y,over:$,setNodeRef:z,setActivatorNodeRef:B,setDroppableNodeRef:M,setDraggableNodeRef:L,transform:null!=en?en:V,transition:en||et&&Q.current.newIndex===k?t_:(!X||ea(O))&&p&&(U||er)?ei.Transition.toString({...p,property:tI}):void 0}}({id:e.id}),u={transform:ei.Transform.toString(o),transition:s};async function d(r){if(r.stopPropagation(),confirm("Are you sure you want to delete this task?"))try{await fetch(`/api/tasks/${e.id}`,{method:"DELETE"}),t()}catch(e){console.error("Failed to delete task:",e)}}return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("div",{ref:i,style:u,className:(0,t$.cn)("cursor-pointer transition-opacity",c&&"opacity-50"),children:(0,I.jsxs)(tB,{className:(0,t$.cn)("hover:translate-x-0.5 hover:translate-y-0.5 transition-transform cursor-pointer","interrupted"===e.status&&"border-amber-500 bg-amber-50"),onClick:()=>n(!0),children:[(0,I.jsx)(tW,{className:"pb-3",children:(0,I.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,I.jsx)("div",{className:"flex-1 min-w-0",children:(0,I.jsx)(tz,{className:"text-sm line-clamp-2",children:e.title})}),(0,I.jsxs)("div",{className:"flex items-center gap-1",children:[(0,I.jsx)(tY.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-grab active:cursor-grabbing border-2 border-black",...a,...l,onClick:e=>e.stopPropagation(),children:(0,I.jsx)(tG,{className:"h-4 w-4"})}),(0,I.jsx)(tY.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 border-2 border-black bg-[--color-accent] hover:bg-red-400",onClick:d,children:(0,I.jsx)(t1,{className:"h-3 w-3"})})]})]})}),(0,I.jsx)(tU,{className:"space-y-2",children:(0,I.jsxs)("div",{className:"flex flex-wrap gap-2",children:["interrupted"===e.status&&(0,I.jsxs)(tX,{variant:"outline",className:"text-xs gap-1 border-amber-500 text-amber-700 bg-amber-50",children:[(0,I.jsx)(t2,{className:"h-3 w-3"}),"Interrupted"]}),e.specName&&(0,I.jsx)(tX,{variant:"outline",className:"text-xs font-mono",children:e.specName}),(0,I.jsx)(tX,{variant:"outline",className:(0,t$.cn)("text-xs",nH[e.priority]),children:e.priority}),e.assignedAgent&&(0,I.jsxs)(tX,{variant:"secondary",className:"text-xs gap-1",children:[(0,I.jsx)(tQ,{className:"h-3 w-3"}),e.assignedAgent]}),e.body&&(0,I.jsxs)(tX,{variant:"outline",className:"text-xs gap-1",children:[(0,I.jsx)(t0,{className:"h-3 w-3"}),"Notes"]})]})})]})}),(0,I.jsx)(nY,{task:e,features:[],open:r,onOpenChange:n,onRefresh:t})]})}function nq({id:e,title:t,color:r,tasks:n,onRefresh:a}){let{setNodeRef:l,isOver:i}=tm({id:e});return(0,I.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,I.jsx)("div",{className:(0,t$.cn)("px-4 py-3 border-3 border-black border-b-0",r),children:(0,I.jsxs)("h2",{className:"font-black uppercase tracking-wide text-black flex items-center justify-between",children:[(0,I.jsx)("span",{children:t}),(0,I.jsx)("span",{className:"text-sm font-bold bg-black text-white px-2 py-1",children:n.length})]})}),(0,I.jsxs)("div",{ref:l,className:(0,t$.cn)("flex-1 overflow-y-auto p-4 space-y-3 bg-white border-3 border-black transition-colors",i&&"bg-gray-100"),children:[(0,I.jsx)(tO,{items:n.map(e=>e.id),strategy:tR,children:n.map(e=>(0,I.jsx)(nV,{task:e,feature:void 0,features:[],onRefresh:a},e.id))}),0===n.length&&(0,I.jsx)("div",{className:"text-center text-gray-500 font-bold text-sm py-8 uppercase",children:"Drop tasks here"})]})]})}let nJ=tZ("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),nZ=tZ("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),nG=tZ("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),nQ=tZ("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var n0=e.i(91744);let n1={blocked:"bg-gray-300",ready:"bg-blue-400",in_review:"bg-yellow-400",in_progress:"bg-orange-400",done:"bg-green-500"},n2={done:(0,I.jsx)(nZ,{className:"h-3 w-3 text-green-600"}),in_review:(0,I.jsx)(nK,{className:"h-3 w-3 text-yellow-500"}),in_progress:(0,I.jsx)(nK,{className:"h-3 w-3 text-orange-500"}),ready:(0,I.jsx)(nG,{className:"h-3 w-3 text-blue-500"}),blocked:(0,I.jsx)(nQ,{className:"h-3 w-3 text-gray-400"})},n4={done:"done",in_review:"in review",in_progress:"in progress",ready:"ready",blocked:"blocked"};function n3({spec:e,selected:t,onClick:r}){let n,a=e.statuses?0===(n=e.statuses.filter(e=>"development"!==e.id)).length?"ready":n.every(e=>"done"===e.state)?"done":n.some(e=>"in_review"===e.state||"in_progress"===e.state)?"in_review":n.some(e=>"ready"===e.state)?"ready":"blocked":"ready",l=e.statuses?.filter(e=>"development"!==e.id)??[];return(0,I.jsxs)("button",{onClick:r,className:`w-full text-left p-3 border-4 transition-all ${t?"border-black bg-black text-white shadow-none translate-x-[2px] translate-y-[2px]":"border-black bg-white shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-none"}`,children:[(0,I.jsxs)("div",{className:"flex items-start justify-between gap-1 mb-2",children:[(0,I.jsx)("span",{className:`font-black text-xs uppercase leading-tight line-clamp-2 flex-1 ${t?"text-white":""}`,children:e.title||e.name}),(0,I.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:n2[a]})]}),(0,I.jsx)("p",{className:`font-mono text-[10px] mb-2 truncate ${t?"text-gray-300":"text-gray-400"}`,children:e.name}),l.length>0&&(0,I.jsxs)("div",{className:"flex gap-1 items-center",children:[l.map(e=>(0,I.jsx)("div",{title:`${e.id}: ${e.state}`,className:`w-2 h-2 rounded-full border border-black ${t?"border-gray-400":""} ${n1[e.state]}`},e.id)),(0,I.jsx)("span",{className:`text-[10px] font-bold uppercase ml-1 ${t?"text-gray-300":"text-gray-400"}`,children:n4[a]})]})]})}function n5({selectedSpecName:e,onSelectSpec:t}){let{data:r=[],isLoading:n}=(0,n0.useSpecs)();return(0,I.jsxs)("div",{className:"flex flex-col h-full min-h-0 border-r-4 border-black bg-[--color-bg]",style:{width:220,flexShrink:0},children:[(0,I.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b-4 border-black bg-[--color-secondary] flex-shrink-0",children:[(0,I.jsx)("h2",{className:"font-black uppercase text-sm tracking-wide",children:"Specs"}),(0,I.jsxs)("span",{className:"text-xs font-bold opacity-60",children:["(",r.length,")"]})]}),(0,I.jsxs)("div",{className:"flex-1 overflow-y-auto p-3 flex flex-col gap-2",children:[n&&(0,I.jsx)("p",{className:"text-xs text-gray-400 font-mono px-1",children:"Loading..."}),!n&&0===r.length&&(0,I.jsx)("p",{className:"text-xs text-gray-400 font-mono px-1",children:"No specs yet."}),r.map(r=>(0,I.jsx)(n3,{spec:r,selected:e===r.name,onClick:()=>t(r.name)},r.name))]})]})}let n6=tZ("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var n8=e.i(11143),n7=e.i(73238);let n9={blocked:(0,I.jsx)(nQ,{className:"h-3 w-3 text-gray-400 flex-shrink-0"}),ready:(0,I.jsx)(nG,{className:"h-3 w-3 text-blue-500 flex-shrink-0"}),in_review:(0,I.jsx)(nK,{className:"h-3 w-3 text-yellow-500 flex-shrink-0"}),in_progress:(0,I.jsx)(nK,{className:"h-3 w-3 text-orange-500 flex-shrink-0"}),done:(0,I.jsx)(nZ,{className:"h-3 w-3 text-green-600 flex-shrink-0"})},ae={backlog:"bg-gray-100 border-gray-400 text-gray-600",todo:"bg-blue-100 border-blue-400 text-blue-700",in_progress:"bg-orange-100 border-orange-400 text-orange-700",interrupted:"bg-red-100 border-red-400 text-red-700",done:"bg-green-100 border-green-500 text-green-700"},at={urgent:"text-red-600",high:"text-orange-500",medium:"text-gray-500",low:"text-gray-400"};function ar({tasks:e,status:t}){let r=e.length,n=e.filter(e=>"done"===e.status).length,a=e.filter(e=>"in_progress"===e.status).length;return t?.state==="blocked"?(0,I.jsxs)("div",{className:"p-6 bg-gray-100 border-4 border-gray-300 text-center",children:[(0,I.jsx)("p",{className:"font-bold text-gray-600 uppercase",children:"Blocked — approve and promote tasks first"}),(0,I.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Approve all artifacts, then click “Promote to Tasks”"})]}):0===e.length?(0,I.jsxs)("div",{className:"p-6 bg-blue-50 border-4 border-blue-300 text-center",children:[(0,I.jsx)("p",{className:"font-bold text-blue-700 uppercase",children:"Ready to promote"}),(0,I.jsx)("p",{className:"text-sm text-blue-600 mt-1",children:"All artifacts approved. Promote tasks to start development."})]}):(0,I.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,I.jsxs)("div",{className:"flex items-center gap-3",children:[(0,I.jsx)("div",{className:"flex-1 h-3 bg-gray-200 border-2 border-black overflow-hidden",children:(0,I.jsx)("div",{className:"h-full bg-green-500 transition-all",style:{width:`${r>0?n/r*100:0}%`}})}),(0,I.jsxs)("span",{className:"font-mono text-sm font-bold whitespace-nowrap",children:[n,"/",r," done",a>0&&(0,I.jsxs)("span",{className:"text-orange-600 ml-2",children:["· ",a," in progress"]})]})]}),(0,I.jsx)("div",{className:"flex flex-col gap-2",children:e.map(e=>(0,I.jsxs)("div",{className:"flex items-center gap-3 p-3 border-4 border-black bg-white",children:[(0,I.jsx)("span",{className:`text-lg ${"done"===e.status?"opacity-100":"opacity-30"}`,children:"done"===e.status?"✓":"in_progress"===e.status?"⟳":"○"}),(0,I.jsx)("span",{className:`flex-1 font-bold text-sm ${"done"===e.status?"line-through text-gray-400":""}`,children:e.title}),(0,I.jsx)("span",{className:`text-xs font-mono uppercase font-bold ${at[e.priority]||""}`,children:e.priority}),(0,I.jsx)("span",{className:`px-2 py-0.5 border-2 text-xs font-bold uppercase ${ae[e.status]||""}`,children:e.status.replace("_"," ")}),e.assignedAgent&&(0,I.jsxs)("span",{className:"text-xs font-mono text-gray-500 truncate max-w-[120px]",title:e.assignedAgent,children:["@",e.assignedAgent]})]},e.id))})]})}function an({specName:e,onClose:t}){let{data:r,isLoading:n}=(0,n0.useSpec)(e),{invalidateSpec:a,invalidateSpecs:l,invalidateTasks:i}=(0,n0.useInvalidate)(),[o,s]=(0,_.useState)(null),[c,u]=(0,_.useState)(!1);function d(){a(e),l()}async function f(){u(!0);try{let t=await fetch(`/api/specs/${e}/promote`,{method:"POST"}),r=await t.json();t.ok?(alert(`Promoted ${r.promoted} tasks to Kanban board!`),d(),i()):alert(`Error: ${r.error}`)}finally{u(!1)}}r&&!o&&r.statuses?.length&&s(r.statuses[0].id);let p=r?.statuses.filter(e=>"development"!==e.id)??[],h=r?.statuses.find(e=>"development"===e.id),m=p.every(e=>"done"===e.state),g=r?.statuses.find(e=>e.id===o),v="development"===o;return(0,I.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,I.jsxs)("div",{className:"bg-white border-4 border-black shadow-[8px_8px_0px_0px_rgba(0,0,0,1)] flex flex-col",style:{width:"min(1300px, 96vw)",height:"min(920px, 94vh)"},children:[(0,I.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b-4 border-black bg-white flex-shrink-0",children:[(0,I.jsxs)("div",{children:[(0,I.jsx)("h2",{className:"text-2xl font-black uppercase leading-tight",children:r?.title||e}),(0,I.jsx)("p",{className:"font-mono text-xs text-gray-500 mt-0.5",children:e})]}),(0,I.jsx)("button",{onClick:t,className:"p-2 border-4 border-black hover:bg-black hover:text-white transition-colors",children:(0,I.jsx)(n$,{className:"h-5 w-5"})})]}),r&&(0,I.jsx)("div",{className:"px-6 py-3 border-b-4 border-black bg-white flex-shrink-0",children:(0,I.jsx)(n7.ArtifactDagStatus,{statuses:r.statuses})}),m&&r?.tasks.length===0&&(0,I.jsxs)("div",{className:"px-6 py-3 border-b-4 border-green-600 bg-green-100 flex-shrink-0 flex items-center justify-between",children:[(0,I.jsx)("p",{className:"font-black text-green-800 uppercase text-sm",children:"All artifacts approved!"}),(0,I.jsx)(tY.Button,{onClick:f,disabled:c,className:"bg-green-600 hover:bg-green-700 text-white",children:c?"Promoting...":"Promote to Tasks"})]}),h?.state==="done"&&(0,I.jsx)("div",{className:"px-6 py-3 border-b-4 border-green-600 bg-green-100 flex-shrink-0",children:(0,I.jsxs)("p",{className:"font-black text-green-800 uppercase text-sm",children:["✓ Spec complete — all ",r?.tasks.length," tasks done"]})}),(0,I.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,I.jsxs)("div",{className:"w-60 border-r-4 border-black bg-white flex flex-col flex-shrink-0 overflow-y-auto",children:[(0,I.jsx)("div",{className:"px-3 py-2 border-b-2 border-gray-200",children:(0,I.jsxs)("span",{className:"font-mono text-[10px] text-gray-400 uppercase tracking-widest",children:[e,"/"]})}),(0,I.jsx)("div",{className:"flex-1 py-1",children:r?(0,I.jsxs)(I.Fragment,{children:[p.map(e=>(0,I.jsxs)("button",{onClick:()=>s(e.id),className:`w-full flex items-center gap-2 px-3 py-2 text-left transition-colors group ${o===e.id?"bg-black text-white":"hover:bg-gray-100"}`,children:[(0,I.jsx)(n6,{className:`h-3 w-3 flex-shrink-0 ${o===e.id?"text-white":"text-gray-300"}`}),(0,I.jsx)(t0,{className:`h-3.5 w-3.5 flex-shrink-0 ${o===e.id?"text-white":"text-gray-400"}`}),(0,I.jsxs)("span",{className:"font-mono text-xs font-bold flex-1 truncate",children:[e.id,".md"]}),(0,I.jsx)("span",{className:o===e.id?"text-white opacity-70":"",children:n9[e.state]})]},e.id)),(m||r.tasks.length>0)&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("div",{className:"mx-3 my-1 border-t border-dashed border-gray-200"}),(0,I.jsxs)("button",{onClick:()=>s("development"),className:`w-full flex items-center gap-2 px-3 py-2 text-left transition-colors ${"development"===o?"bg-black text-white":"hover:bg-gray-100"}`,children:[(0,I.jsx)(n6,{className:`h-3 w-3 flex-shrink-0 ${"development"===o?"text-white":"text-gray-300"}`}),(0,I.jsx)(t0,{className:`h-3.5 w-3.5 flex-shrink-0 ${"development"===o?"text-white":"text-gray-400"}`}),(0,I.jsx)("span",{className:"font-mono text-xs font-bold flex-1",children:"development"}),(0,I.jsx)("span",{className:"development"===o?"text-white opacity-70":"",children:h?n9[h.state]:null})]})]})]}):(0,I.jsx)("div",{className:"px-4 py-3 text-xs text-gray-400 font-mono",children:"Loading..."})})]}),(0,I.jsx)("div",{className:"flex-1 flex flex-col min-h-0 p-6",children:n?(0,I.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,I.jsx)("span",{className:"text-gray-400 font-mono text-sm",children:"Loading..."})}):o?v?(0,I.jsx)(ar,{tasks:r?.tasks??[],status:h}):g?(0,I.jsx)(n8.ArtifactEditor,{specName:e,artifactType:o,content:r?.artifacts[o]??null,status:g,onSave:d,defaultMode:"preview"},o):null:null})]})]})})}var aa=e.i(25707);let al=[{id:"backlog",title:"Backlog",color:"bg-gray-200"},{id:"todo",title:"To Do",color:"bg-[--color-primary]"},{id:"in_progress",title:"In Progress",color:"bg-[--color-secondary]"},{id:"done",title:"Done",color:"bg-[--color-success]"}],ai=new Set(al.map(e=>e.id)),ao="devflow-selected-project";function as(){var e;let{data:t=[],isLoading:r}=(0,n0.useProjects)(),{data:n=[],isLoading:a}=(0,n0.useTasks)(),{invalidateTasks:l,invalidateProjects:i}=(0,n0.useInvalidate)();(0,aa.useWebSocket)();let[o,s]=(0,_.useState)(null),[c,u]=(0,_.useState)(null),[d,f]=(0,_.useState)(!1),[p,h]=(0,_.useState)(null),[m,g]=(0,_.useState)(!1),[v,x]=(0,_.useState)(!1),b=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,_.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}((e={activationConstraint:{distance:8}},(0,_.useMemo)(()=>({sensor:eq,options:null!=e?e:{}}),[eq,e])));(0,_.useEffect)(()=>{let e=localStorage.getItem(ao);e&&s("all"===e?null:e),x(!0)},[]),(0,_.useEffect)(()=>{v&&!r&&(o?!t.some(e=>e.id===o)&&t.length>0&&y(t[0].id):!localStorage.getItem(ao)&&t.length>0&&y(t[0].id))},[v,r,t]);let y=(0,_.useCallback)(e=>{s(e),u(null),localStorage.setItem(ao,e||"all"),g(!1)},[]);async function w(e,t){try{await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t})}),l()}catch(e){console.error("Failed to update task:",e)}}async function N(e,t){let r=n.filter(t=>t.projectId===e).length;if(confirm(r>0?`Delete "${t}" and its ${r} task${1===r?"":"s"}? This cannot be undone.`:`Delete "${t}"? This cannot be undone.`))try{(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok&&(o===e&&y(null),i(),l())}catch(e){console.error("Failed to delete project:",e)}}if(a&&!n.length)return(0,I.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,I.jsx)("div",{className:"text-lg",children:"Loading tasks..."})});let j=t.find(e=>e.id===o),k=o?n.filter(e=>e.projectId===o):n,E=(c?k.filter(e=>e.specName===c):k).length;return(0,I.jsxs)("div",{className:"h-screen flex flex-col bg-[--color-bg]",children:[(0,I.jsx)("header",{className:"border-b-4 border-black bg-white neubrutalism-shadow",children:(0,I.jsx)("div",{className:"container mx-auto px-6 py-4",children:(0,I.jsxs)("div",{className:"flex items-center justify-between",children:[(0,I.jsxs)("div",{className:"flex items-center gap-6",children:[(0,I.jsx)("div",{className:"flex items-center gap-4",children:(0,I.jsx)("h1",{className:"text-3xl font-black uppercase tracking-tight",children:"DevFlow"})}),(0,I.jsxs)("div",{className:"relative",children:[(0,I.jsxs)("button",{onClick:()=>g(!m),className:"flex items-center gap-2 px-4 py-2 bg-[--color-primary] border-4 border-black font-bold text-sm uppercase hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-none transition-all shadow-[4px_4px_0px_0px_rgba(0,0,0,1)]",children:[(0,I.jsx)("span",{className:"max-w-[200px] truncate",children:j?j.name:"All Projects"}),(0,I.jsxs)("span",{className:"text-xs opacity-70",children:["(",E,")"]}),(0,I.jsx)(nJ,{className:`h-4 w-4 transition-transform ${m?"rotate-180":""}`})]}),m&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("div",{className:"fixed inset-0 z-10",onClick:()=>g(!1)}),(0,I.jsxs)("div",{className:"absolute top-full left-0 mt-2 w-64 bg-white border-4 border-black shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] z-20 max-h-80 overflow-y-auto",children:[(0,I.jsxs)("button",{onClick:()=>y(null),className:`w-full px-4 py-3 text-left font-bold text-sm uppercase border-b-2 border-black hover:bg-gray-100 flex items-center justify-between ${!o?"bg-black text-white hover:bg-gray-800":""}`,children:[(0,I.jsx)("span",{children:"All Projects"}),(0,I.jsxs)("span",{className:"text-xs opacity-70",children:["(",n.length,")"]})]}),t.map(e=>{let t=n.filter(t=>t.projectId===e.id).length;return(0,I.jsxs)("div",{className:`flex items-center border-b border-gray-200 last:border-b-0 ${o===e.id?"bg-[--color-primary]":"hover:bg-gray-100"}`,children:[(0,I.jsxs)("button",{onClick:()=>y(e.id),className:"flex-1 px-4 py-3 text-left font-bold text-sm flex items-center justify-between",children:[(0,I.jsx)("span",{className:"truncate",children:e.name}),(0,I.jsxs)("span",{className:"text-xs opacity-70 ml-2",children:["(",t,")"]})]}),(0,I.jsx)("button",{onClick:t=>{t.stopPropagation(),N(e.id,e.name)},className:"px-3 py-3 text-red-600 hover:bg-red-100 hover:text-red-800 transition-colors",title:"Delete project",children:(0,I.jsx)(t1,{className:"h-4 w-4"})})]},e.id)}),0===t.length&&(0,I.jsx)("div",{className:"px-4 py-3 text-sm text-gray-500",children:"No projects yet"})]})]})]})]}),(0,I.jsx)("div",{})]})})}),j&&(0,I.jsx)("div",{className:"bg-[--color-primary] border-b-4 border-black px-6 py-2",children:(0,I.jsxs)("div",{className:"container mx-auto flex items-center justify-between",children:[(0,I.jsxs)("div",{className:"flex items-center gap-4",children:[(0,I.jsx)("h2",{className:"text-lg font-black uppercase",children:j.name}),j.description&&(0,I.jsxs)("p",{className:"text-sm font-medium opacity-80",children:["— ",j.description]})]}),(0,I.jsxs)("div",{className:"flex items-center gap-4 text-sm font-bold",children:[(0,I.jsxs)("span",{children:[k.filter(e=>"in_progress"===e.status).length," in progress"]}),(0,I.jsxs)("span",{children:[k.filter(e=>"done"===e.status).length," done"]})]})]})}),(0,I.jsxs)("div",{className:"flex-1 min-h-0 overflow-hidden flex",children:[(0,I.jsx)(n5,{selectedSpecName:c,onSelectSpec:e=>{c===e&&d?f(!1):(u(e),f(!0))}}),(0,I.jsx)("main",{className:"flex-1 min-h-0 overflow-hidden",children:(0,I.jsxs)(tu,{sensors:b,onDragStart:function(e){h(n.find(t=>t.id===e.active.id)||null)},onDragEnd:function(e){let t,{active:r,over:a}=e;if(h(null),!a)return;let l=r.id,i=a.id;if(ai.has(i))t=i;else{let e=n.find(e=>e.id===i);if(!e)return;t=e.status}let o=n.find(e=>e.id===l);o&&o.status!==t&&w(l,t)},children:[(0,I.jsx)("div",{className:"h-full px-6 py-6",children:(0,I.jsx)("div",{className:"grid grid-cols-4 gap-6 h-full min-h-0",children:al.map(e=>{var t;return(0,I.jsx)(nq,{id:e.id,title:e.title,color:e.color,tasks:(t=e.id,n.filter(e=>"interrupted"===e.status?"in_progress"===t:e.status===t).filter(e=>!o||e.projectId===o).filter(e=>!c||e.specName===c)),features:[],onRefresh:()=>l()},e.id)})})}),(0,I.jsx)(tk,{children:p?(0,I.jsx)("div",{className:"rotate-3 opacity-80",children:(0,I.jsx)(nV,{task:p,feature:void 0,features:[],onRefresh:()=>l()})}):null})]})}),d&&c&&(0,I.jsx)(an,{specName:c,onClose:()=>f(!1)})]})]})}e.s(["KanbanBoard",()=>as],7088)}]);