dev3000 0.0.113 → 0.0.115

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 (197) hide show
  1. package/dist/cli.js +32 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/dev-environment.d.ts.map +1 -1
  4. package/dist/dev-environment.js +25 -4
  5. package/dist/dev-environment.js.map +1 -1
  6. package/dist/src/tui-interface-impl.tsx +175 -127
  7. package/dist/tui-interface-impl.d.ts.map +1 -1
  8. package/dist/tui-interface-impl.js +113 -74
  9. package/dist/tui-interface-impl.js.map +1 -1
  10. package/mcp-server/.next/BUILD_ID +1 -1
  11. package/mcp-server/.next/build-manifest.json +2 -2
  12. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  13. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  14. package/mcp-server/.next/next-server.js.nft.json +1 -1
  15. package/mcp-server/.next/prerender-manifest.json +3 -3
  16. package/mcp-server/.next/required-server-files.json +4 -4
  17. package/mcp-server/.next/server/app/.well-known/workflow/v1/flow/route.js +2 -2
  18. package/mcp-server/.next/server/app/.well-known/workflow/v1/flow/route.js.nft.json +1 -1
  19. package/mcp-server/.next/server/app/.well-known/workflow/v1/step/route.js +2 -2
  20. package/mcp-server/.next/server/app/.well-known/workflow/v1/step/route.js.nft.json +1 -1
  21. package/mcp-server/.next/server/app/.well-known/workflow/v1/webhook/[token]/route.js +2 -2
  22. package/mcp-server/.next/server/app/.well-known/workflow/v1/webhook/[token]/route.js.nft.json +1 -1
  23. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  24. package/mcp-server/.next/server/app/_global-error.html +2 -2
  25. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  26. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  27. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  28. package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  29. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  30. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  31. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  32. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/mcp-server/.next/server/app/_not-found.html +1 -1
  34. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  35. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  36. package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  37. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  38. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  39. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  40. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  41. package/mcp-server/.next/server/app/api/auth/authorize/route.js.nft.json +1 -1
  42. package/mcp-server/.next/server/app/api/auth/callback/route.js.nft.json +1 -1
  43. package/mcp-server/.next/server/app/api/auth/signout/route.js.nft.json +1 -1
  44. package/mcp-server/.next/server/app/api/auth/token/route.js.nft.json +1 -1
  45. package/mcp-server/.next/server/app/api/cloud/check-pr/route.js +2 -2
  46. package/mcp-server/.next/server/app/api/cloud/check-pr/route.js.nft.json +1 -1
  47. package/mcp-server/.next/server/app/api/cloud/fix-workflow/health/route.js.nft.json +1 -1
  48. package/mcp-server/.next/server/app/api/cloud/fix-workflow/route.js +2 -2
  49. package/mcp-server/.next/server/app/api/cloud/fix-workflow/route.js.nft.json +1 -1
  50. package/mcp-server/.next/server/app/api/cloud/start-fix/route.js +2 -2
  51. package/mcp-server/.next/server/app/api/cloud/start-fix/route.js.nft.json +1 -1
  52. package/mcp-server/.next/server/app/api/integration/webhook/route.js.nft.json +1 -1
  53. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  54. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  55. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  56. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  57. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  58. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  59. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  60. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  61. package/mcp-server/.next/server/app/api/projects/[projectId]/bypass-token/route.js.nft.json +1 -1
  62. package/mcp-server/.next/server/app/api/projects/branches/route.js.nft.json +1 -1
  63. package/mcp-server/.next/server/app/api/projects/check-protection/route.js.nft.json +1 -1
  64. package/mcp-server/.next/server/app/api/projects/route.js.nft.json +1 -1
  65. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  66. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  67. package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
  68. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  69. package/mcp-server/.next/server/app/api/workflows/route.js.nft.json +1 -1
  70. package/mcp-server/.next/server/app/auth/error/page.js.nft.json +1 -1
  71. package/mcp-server/.next/server/app/auth/error/page_client-reference-manifest.js +1 -1
  72. package/mcp-server/.next/server/app/auth/error.html +1 -1
  73. package/mcp-server/.next/server/app/auth/error.rsc +2 -2
  74. package/mcp-server/.next/server/app/auth/error.segments/_full.segment.rsc +2 -2
  75. package/mcp-server/.next/server/app/auth/error.segments/_head.segment.rsc +1 -1
  76. package/mcp-server/.next/server/app/auth/error.segments/_index.segment.rsc +2 -2
  77. package/mcp-server/.next/server/app/auth/error.segments/_tree.segment.rsc +2 -2
  78. package/mcp-server/.next/server/app/auth/error.segments/auth/error/__PAGE__.segment.rsc +1 -1
  79. package/mcp-server/.next/server/app/auth/error.segments/auth/error.segment.rsc +1 -1
  80. package/mcp-server/.next/server/app/auth/error.segments/auth.segment.rsc +1 -1
  81. package/mcp-server/.next/server/app/index.html +1 -1
  82. package/mcp-server/.next/server/app/index.rsc +3 -3
  83. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  84. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +3 -3
  85. package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +1 -1
  86. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +2 -2
  87. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  88. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  89. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  90. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  91. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  92. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  93. package/mcp-server/.next/server/app/signin/page.js.nft.json +1 -1
  94. package/mcp-server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  95. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  96. package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
  97. package/mcp-server/.next/server/app/workflows/[id]/report/page.js.nft.json +1 -1
  98. package/mcp-server/.next/server/app/workflows/[id]/report/page_client-reference-manifest.js +1 -1
  99. package/mcp-server/.next/server/app/workflows/new/page.js.nft.json +1 -1
  100. package/mcp-server/.next/server/app/workflows/new/page_client-reference-manifest.js +1 -1
  101. package/mcp-server/.next/server/app/workflows/page.js.nft.json +1 -1
  102. package/mcp-server/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  103. package/mcp-server/.next/server/chunks/[root-of-the-server]__157de66b._.js +101 -36
  104. package/mcp-server/.next/server/chunks/[root-of-the-server]__157de66b._.js.map +1 -1
  105. package/mcp-server/.next/server/chunks/{[root-of-the-server]__f99bd75f._.js → [root-of-the-server]__2920484d._.js} +2 -2
  106. package/mcp-server/.next/server/chunks/{[root-of-the-server]__f99bd75f._.js.map → [root-of-the-server]__2920484d._.js.map} +1 -1
  107. package/mcp-server/.next/server/chunks/{[root-of-the-server]__d6a224bc._.js → [root-of-the-server]__71b44a42._.js} +14 -14
  108. package/mcp-server/.next/server/chunks/[root-of-the-server]__71b44a42._.js.map +1 -0
  109. package/mcp-server/.next/server/chunks/[root-of-the-server]__730a8fd0._.js +1 -1
  110. package/mcp-server/.next/server/chunks/[root-of-the-server]__730a8fd0._.js.map +1 -1
  111. package/mcp-server/.next/server/chunks/{[root-of-the-server]__c86876f8._.js → [root-of-the-server]__76031cfc._.js} +2 -2
  112. package/mcp-server/.next/server/chunks/{[root-of-the-server]__c86876f8._.js.map → [root-of-the-server]__76031cfc._.js.map} +1 -1
  113. package/mcp-server/.next/server/chunks/{[root-of-the-server]__c5e6aa23._.js → [root-of-the-server]__832ec618._.js} +2 -2
  114. package/mcp-server/.next/server/chunks/{[root-of-the-server]__c5e6aa23._.js.map → [root-of-the-server]__832ec618._.js.map} +1 -1
  115. package/mcp-server/.next/server/chunks/{[root-of-the-server]__41aa7b20._.js → [root-of-the-server]__b194d4eb._.js} +13 -13
  116. package/mcp-server/.next/server/chunks/[root-of-the-server]__b194d4eb._.js.map +1 -0
  117. package/mcp-server/.next/server/chunks/[root-of-the-server]__c1681338._.js +3 -0
  118. package/mcp-server/.next/server/chunks/[root-of-the-server]__c1681338._.js.map +1 -0
  119. package/mcp-server/.next/server/chunks/{[root-of-the-server]__d37c38d3._.js → [root-of-the-server]__e6808c21._.js} +2 -2
  120. package/mcp-server/.next/server/chunks/{[root-of-the-server]__d37c38d3._.js.map → [root-of-the-server]__e6808c21._.js.map} +1 -1
  121. package/mcp-server/.next/server/chunks/{[root-of-the-server]__446f0436._.js → [root-of-the-server]__ec6a1335._.js} +2 -2
  122. package/mcp-server/.next/server/chunks/[root-of-the-server]__ec6a1335._.js.map +1 -0
  123. package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js +5 -5
  124. package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js.map +1 -1
  125. package/mcp-server/.next/server/chunks/mcp-server_app_api_cloud_fix-workflow_steps_ts_b65f3271._.js +30 -16
  126. package/mcp-server/.next/server/chunks/mcp-server_app_api_cloud_fix-workflow_steps_ts_b65f3271._.js.map +1 -1
  127. package/mcp-server/.next/server/chunks/node_modules__pnpm_85ddbe9c._.js +2 -2
  128. package/mcp-server/.next/server/chunks/node_modules__pnpm_85ddbe9c._.js.map +1 -1
  129. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2e44f0db._.js +3 -0
  130. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2e44f0db._.js.map +1 -0
  131. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__3585c949._.js +3 -0
  132. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__3585c949._.js.map +1 -0
  133. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__477c3bbb._.js +3 -0
  134. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__477c3bbb._.js.map +1 -0
  135. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__570677dc._.js → [root-of-the-server]__880839a0._.js} +2 -2
  136. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__880839a0._.js.map +1 -0
  137. package/mcp-server/.next/server/chunks/ssr/_41b8f993._.js +3 -0
  138. package/mcp-server/.next/server/chunks/ssr/_41b8f993._.js.map +1 -0
  139. package/mcp-server/.next/server/chunks/ssr/_9ba0ef29._.js +3 -0
  140. package/mcp-server/.next/server/chunks/ssr/_9ba0ef29._.js.map +1 -0
  141. package/mcp-server/.next/server/chunks/ssr/_cd4dc25e._.js.map +1 -1
  142. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_workflows_new_new-workflow-client_tsx_1312c046._.js +2 -2
  143. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_workflows_new_new-workflow-client_tsx_1312c046._.js.map +1 -1
  144. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_workflows_workflows-client_tsx_268cfd4a._.js +7 -0
  145. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_workflows_workflows-client_tsx_268cfd4a._.js.map +1 -0
  146. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_961f21c4._.js +3 -0
  147. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_961f21c4._.js.map +1 -0
  148. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_a82244bf._.js +3 -0
  149. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_a82244bf._.js.map +1 -0
  150. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_07527699._.js → node_modules__pnpm_eb98e511._.js} +2 -2
  151. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_eb98e511._.js.map +1 -0
  152. package/mcp-server/.next/server/middleware.js.nft.json +1 -1
  153. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  154. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  155. package/mcp-server/.next/static/chunks/000849a6a897f531.css +1 -0
  156. package/mcp-server/.next/static/chunks/048cee2510ddb1a0.js +1 -0
  157. package/mcp-server/.next/static/chunks/0622bd0e093adee7.js +3 -0
  158. package/mcp-server/.next/static/chunks/{46f60efee5f19794.js → 16359f64918a93f3.js} +1 -1
  159. package/mcp-server/.next/static/chunks/1851a3e70d7efc10.js +1 -0
  160. package/mcp-server/.next/static/chunks/{cc6addc4bb10fa11.js → 2ad16eeb719786f1.js} +1 -1
  161. package/mcp-server/.next/static/chunks/57feca7a4e06545e.js +7 -0
  162. package/mcp-server/.next/static/chunks/93db5737a327ab0c.js +6 -0
  163. package/mcp-server/.next/static/chunks/9fd3c715ecfb4d05.js +1 -0
  164. package/mcp-server/.next/static/chunks/b4b1ec6435790587.js +1 -0
  165. package/mcp-server/.next/static/chunks/cfe150cb2048b7e8.js +1 -0
  166. package/mcp-server/app/api/cloud/fix-workflow/steps.ts +267 -28
  167. package/mcp-server/app/api/cloud/fix-workflow/workflow.ts +16 -8
  168. package/mcp-server/app/api/cloud/start-fix/route.ts +2 -2
  169. package/mcp-server/app/api/workflows/route.ts +45 -1
  170. package/mcp-server/app/workflows/workflows-client.tsx +259 -100
  171. package/mcp-server/package.json +1 -1
  172. package/package.json +3 -3
  173. package/src/tui-interface-impl.tsx +175 -127
  174. package/mcp-server/.next/server/chunks/[root-of-the-server]__41aa7b20._.js.map +0 -1
  175. package/mcp-server/.next/server/chunks/[root-of-the-server]__446f0436._.js.map +0 -1
  176. package/mcp-server/.next/server/chunks/[root-of-the-server]__c508da18._.js +0 -3
  177. package/mcp-server/.next/server/chunks/[root-of-the-server]__c508da18._.js.map +0 -1
  178. package/mcp-server/.next/server/chunks/[root-of-the-server]__d6a224bc._.js.map +0 -1
  179. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__0ff05d72._.js +0 -3
  180. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__0ff05d72._.js.map +0 -1
  181. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27cc5956._.js +0 -3
  182. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27cc5956._.js.map +0 -1
  183. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__570677dc._.js.map +0 -1
  184. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ef510343._.js +0 -3
  185. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ef510343._.js.map +0 -1
  186. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_07527699._.js.map +0 -1
  187. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_7cc36047._.js +0 -3
  188. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_7cc36047._.js.map +0 -1
  189. package/mcp-server/.next/static/chunks/07848f6bd2a7e5f6.js +0 -3
  190. package/mcp-server/.next/static/chunks/637a66565f27572f.js +0 -6
  191. package/mcp-server/.next/static/chunks/aed4fb5252a4bc95.js +0 -3
  192. package/mcp-server/.next/static/chunks/e8d521464b0c96ca.css +0 -1
  193. package/mcp-server/.next/static/chunks/ff53279afa939907.js +0 -1
  194. package/mcp-server/.next/static/chunks/ffa2ecb6845be49c.js +0 -1
  195. /package/mcp-server/.next/static/{UcmWUkU-l9iLeWRnSUybj → 5zfTZk2QSS7WLdL1K8Q5I}/_buildManifest.js +0 -0
  196. /package/mcp-server/.next/static/{UcmWUkU-l9iLeWRnSUybj → 5zfTZk2QSS7WLdL1K8Q5I}/_clientMiddlewareManifest.json +0 -0
  197. /package/mcp-server/.next/static/{UcmWUkU-l9iLeWRnSUybj → 5zfTZk2QSS7WLdL1K8Q5I}/_ssgManifest.js +0 -0
@@ -0,0 +1,7 @@
1
+ module.exports=[24501,a=>{"use strict";var b=a.i(55205),c=a.i(14957),d=a.i(7287),e=a.i(33857),f=a.i(77696),g=a.i(42261),h=a.i(18749);let i=(0,g.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function j({className:a,variant:c,asChild:d=!1,...e}){let g=d?f.Slot:"span";return(0,b.jsx)(g,{"data-slot":"badge",className:(0,h.cn)(i({variant:c}),a),...e})}var k=a.i(60019),l=a.i(25988),m=a.i(15039),n=a.i(59653),o=a.i(72973),p=a.i(90078),q=a.i(35598),r=a.i(64527),s=a.i(6041),t=a.i(9730),u=a.i(39710),v=a.i(31265),w=a.i(20354),x=a.i(41761),y=a.i(75274),z=a.i(16164),A=a.i(56828),B="Dialog",[C,D]=(0,p.createContextScope)(B),[E,F]=C(B),G=a=>{let{__scopeDialog:c,children:d,open:f,defaultOpen:g,onOpenChange:h,modal:i=!0}=a,j=e.useRef(null),k=e.useRef(null),[l,m]=(0,r.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:B});return(0,b.jsx)(E,{scope:c,triggerRef:j,contentRef:k,contentId:(0,q.useId)(),titleId:(0,q.useId)(),descriptionId:(0,q.useId)(),open:l,onOpenChange:m,onOpenToggle:e.useCallback(()=>m(a=>!a),[m]),modal:i,children:d})};G.displayName=B;var H="DialogTrigger";e.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=F(H,d),g=(0,o.useComposedRefs)(c,f.triggerRef);return(0,b.jsx)(w.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":_(f.open),...e,ref:g,onClick:(0,n.composeEventHandlers)(a.onClick,f.onOpenToggle)})}).displayName=H;var I="DialogPortal",[J,K]=C(I,{forceMount:void 0}),L=a=>{let{__scopeDialog:c,forceMount:d,children:f,container:g}=a,h=F(I,c);return(0,b.jsx)(J,{scope:c,forceMount:d,children:e.Children.map(f,a=>(0,b.jsx)(v.Presence,{present:d||h.open,children:(0,b.jsx)(u.Portal,{asChild:!0,container:g,children:a})}))})};L.displayName=I;var M="DialogOverlay",N=e.forwardRef((a,c)=>{let d=K(M,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=F(M,a.__scopeDialog);return g.modal?(0,b.jsx)(v.Presence,{present:e||g.open,children:(0,b.jsx)(P,{...f,ref:c})}):null});N.displayName=M;var O=(0,A.createSlot)("DialogOverlay.RemoveScroll"),P=e.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=F(M,d);return(0,b.jsx)(y.RemoveScroll,{as:O,allowPinchZoom:!0,shards:[f.contentRef],children:(0,b.jsx)(w.Primitive.div,{"data-state":_(f.open),...e,ref:c,style:{pointerEvents:"auto",...e.style}})})}),Q="DialogContent",R=e.forwardRef((a,c)=>{let d=K(Q,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=F(Q,a.__scopeDialog);return(0,b.jsx)(v.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(S,{...f,ref:c}):(0,b.jsx)(T,{...f,ref:c})})});R.displayName=Q;var S=e.forwardRef((a,c)=>{let d=F(Q,a.__scopeDialog),f=e.useRef(null),g=(0,o.useComposedRefs)(c,d.contentRef,f);return e.useEffect(()=>{let a=f.current;if(a)return(0,z.hideOthers)(a)},[]),(0,b.jsx)(U,{...a,ref:g,trapFocus:d.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),d.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,n.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault())})}),T=e.forwardRef((a,c)=>{let d=F(Q,a.__scopeDialog),f=e.useRef(!1),g=e.useRef(!1);return(0,b.jsx)(U,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||d.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;d.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),U=e.forwardRef((a,c)=>{let{__scopeDialog:d,trapFocus:f,onOpenAutoFocus:g,onCloseAutoFocus:h,...i}=a,j=F(Q,d),k=e.useRef(null),l=(0,o.useComposedRefs)(c,k);return(0,x.useFocusGuards)(),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t.FocusScope,{asChild:!0,loop:!0,trapped:f,onMountAutoFocus:g,onUnmountAutoFocus:h,children:(0,b.jsx)(s.DismissableLayer,{role:"dialog",id:j.contentId,"aria-describedby":j.descriptionId,"aria-labelledby":j.titleId,"data-state":_(j.open),...i,ref:l,onDismiss:()=>j.onOpenChange(!1)})}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ad,{titleId:j.titleId}),(0,b.jsx)(ae,{contentRef:k,descriptionId:j.descriptionId})]})]})}),V="DialogTitle",W=e.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=F(V,d);return(0,b.jsx)(w.Primitive.h2,{id:f.titleId,...e,ref:c})});W.displayName=V;var X="DialogDescription",Y=e.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=F(X,d);return(0,b.jsx)(w.Primitive.p,{id:f.descriptionId,...e,ref:c})});Y.displayName=X;var Z="DialogClose",$=e.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=F(Z,d);return(0,b.jsx)(w.Primitive.button,{type:"button",...e,ref:c,onClick:(0,n.composeEventHandlers)(a.onClick,()=>f.onOpenChange(!1))})});function _(a){return a?"open":"closed"}$.displayName=Z;var aa="DialogTitleWarning",[ab,ac]=(0,p.createContext)(aa,{contentName:Q,titleName:V,docsSlug:"dialog"}),ad=({titleId:a})=>{let b=ac(aa),c=`\`${b.contentName}\` requires a \`${b.titleName}\` for the component to be accessible for screen reader users.
2
+
3
+ If you want to hide the \`${b.titleName}\`, you can wrap it with our VisuallyHidden component.
4
+
5
+ For more information, see https://radix-ui.com/primitives/docs/components/${b.docsSlug}`;return e.useEffect(()=>{a&&(document.getElementById(a)||console.error(c))},[c,a]),null},ae=({contentRef:a,descriptionId:b})=>{let c=ac("DialogDescriptionWarning"),d=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${c.contentName}}.`;return e.useEffect(()=>{let c=a.current?.getAttribute("aria-describedby");b&&c&&(document.getElementById(b)||console.warn(d))},[d,a,b]),null};let af=(0,a.i(26268).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function ag({...a}){return(0,b.jsx)(G,{"data-slot":"dialog",...a})}function ah({...a}){return(0,b.jsx)(L,{"data-slot":"dialog-portal",...a})}function ai({...a}){return(0,b.jsx)($,{"data-slot":"dialog-close",...a})}function aj({className:a,...c}){return(0,b.jsx)(N,{"data-slot":"dialog-overlay",className:(0,h.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...c})}function ak({className:a,children:c,showCloseButton:d=!0,...e}){return(0,b.jsxs)(ah,{"data-slot":"dialog-portal",children:[(0,b.jsx)(aj,{}),(0,b.jsxs)(R,{"data-slot":"dialog-content",className:(0,h.cn)("bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...e,children:[c,d&&(0,b.jsxs)($,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,b.jsx)(af,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function al({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,h.cn)("flex flex-col gap-2 text-center sm:text-left",a),...c})}function am({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,h.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...c})}function an({className:a,...c}){return(0,b.jsx)(W,{"data-slot":"dialog-title",className:(0,h.cn)("text-lg leading-none font-semibold",a),...c})}function ao({className:a,...c}){return(0,b.jsx)(Y,{"data-slot":"dialog-description",className:(0,h.cn)("text-muted-foreground text-sm",a),...c})}function ap({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,h.cn)("w-full caption-bottom text-sm",a),...c})})}function aq({className:a,...c}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,h.cn)("[&_tr]:border-b",a),...c})}function ar({className:a,...c}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,h.cn)("[&_tr:last-child]:border-0",a),...c})}function as({className:a,...c}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,h.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",a),...c})}function at({className:a,...c}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,h.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}function au({className:a,...c}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,h.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}function av({user:a,initialRuns:f}){let[g,h]=(0,e.useState)(!1),[i,n]=(0,e.useState)(f),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),u=(0,e.useRef)(null);async function v(){h(!0);try{await fetch("/api/auth/signout",{method:"POST"}),window.location.href="/"}catch(a){console.error("Failed to sign out:",a),h(!1)}}let w=(0,e.useCallback)(a=>{a?p(new Set(i.map(a=>a.id))):p(new Set),u.current=null},[i]),x=(0,e.useCallback)((a,b,c)=>{p(d=>{let e=new Set(d);if(c.shiftKey&&null!==u.current){let a=Math.min(u.current,b),c=Math.max(u.current,b);for(let b=a;b<=c;b++)e.add(i[b].id)}else e.has(a)?e.delete(a):e.add(a);return e}),u.current=b},[i]),y=async()=>{t(!0);try{let b=await fetch("/api/workflows",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:a.id,runIds:Array.from(o)})}),c=await b.json();c.success?(n(a=>a.filter(a=>!o.has(a.id))),p(new Set),r(!1)):(console.error("Failed to delete workflows:",c.error),alert(`Failed to delete workflows: ${c.error}`))}catch(a){console.error("Failed to delete workflows:",a),alert("Failed to delete workflows. Please try again.")}finally{t(!1)}},z=i.length>0&&o.size===i.length,A=o.size>0&&o.size<i.length;return(0,b.jsxs)("div",{className:"h-screen flex flex-col bg-gray-50",children:[(0,b.jsx)("div",{className:"flex-shrink-0 px-4 sm:px-6 lg:px-8 pt-8 pb-4 max-w-7xl mx-auto w-full",children:(0,b.jsxs)("div",{className:"flex justify-between items-start",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-3xl font-bold text-gray-900",children:"d3k Workflow Runs"}),(0,b.jsx)("p",{className:"mt-2 text-gray-600",children:"View all your d3k workflow fix proposals and PRs"}),(0,b.jsxs)("p",{className:"mt-1 text-sm text-gray-500",children:["Signed in as ",a.email]})]}),(0,b.jsxs)("div",{className:"flex gap-3",children:[o.size>0&&(0,b.jsxs)(k.Button,{variant:"destructive",onClick:()=>r(!0),children:["Delete ",o.size," selected"]}),(0,b.jsx)(k.Button,{asChild:!0,children:(0,b.jsx)(d.default,{href:"/workflows/new",children:"New Workflow"})}),(0,b.jsx)(k.Button,{variant:"outline",onClick:v,disabled:g,children:g?"Signing out...":"Sign out"})]})]})}),(0,b.jsx)("div",{className:"flex-1 min-h-0 px-4 sm:px-6 lg:px-8 pb-8 max-w-7xl mx-auto w-full",children:0===i.length?(0,b.jsx)(l.Card,{className:"p-12 text-center",children:(0,b.jsxs)(l.CardContent,{children:[(0,b.jsx)("p",{className:"text-muted-foreground",children:"No workflow runs yet"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground/70 mt-2",children:"Run a workflow from the CLI to see it appear here"})]})}):(0,b.jsx)(l.Card,{className:"h-full flex flex-col overflow-hidden",children:(0,b.jsx)("div",{className:"overflow-auto flex-1 [&_[data-slot=table-container]]:overflow-visible",children:(0,b.jsxs)(ap,{children:[(0,b.jsx)(aq,{className:"sticky top-0 bg-card z-10 shadow-[0_1px_3px_-1px_rgba(0,0,0,0.1)]",children:(0,b.jsxs)(as,{children:[(0,b.jsx)(at,{className:"w-8 pr-0",children:(0,b.jsx)(m.Checkbox,{checked:z,ref:a=>{if(a){let b=a.querySelector("button");b&&(b.dataset.state=A?"indeterminate":z?"checked":"unchecked")}},onCheckedChange:w,"aria-label":"Select all"})}),(0,b.jsxs)(at,{children:["Project (",i.length,")"]}),(0,b.jsx)(at,{children:"Status"}),(0,b.jsx)(at,{children:"Timestamp"}),(0,b.jsx)(at,{children:"Before"}),(0,b.jsx)(at,{children:"After"}),(0,b.jsx)(at,{children:"Report"}),(0,b.jsx)(at,{children:"PR"})]})}),(0,b.jsx)(ar,{children:i.map((a,e)=>(0,b.jsxs)(as,{className:o.has(a.id)?"bg-muted/50":void 0,children:[(0,b.jsx)(au,{className:"pr-0",children:(0,b.jsx)(m.Checkbox,{checked:o.has(a.id),onClick:b=>x(a.id,e,b),onCheckedChange:()=>{},"aria-label":`Select ${a.projectName}`})}),(0,b.jsxs)(au,{children:[(0,b.jsx)("div",{className:"font-medium",children:a.projectName}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a.id})]}),(0,b.jsx)(au,{children:(0,b.jsx)(j,{variant:"done"===a.status?"secondary":"running"===a.status?"default":"destructive",className:"done"===a.status?"bg-green-100 text-green-800 hover:bg-green-100":"running"===a.status?"bg-blue-100 text-blue-800 hover:bg-blue-100":"",children:a.status})}),(0,b.jsx)(au,{className:"text-muted-foreground",children:new Date(a.timestamp).toLocaleString()}),(0,b.jsx)(au,{children:a.beforeScreenshotUrl?(0,b.jsx)("a",{href:a.beforeScreenshotUrl,target:"_blank",rel:"noopener noreferrer",children:(0,b.jsx)(c.default,{src:a.beforeScreenshotUrl,alt:"Before",width:64,height:40,className:"object-cover rounded border hover:opacity-80 transition-opacity",unoptimized:!0})}):(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"-"})}),(0,b.jsx)(au,{children:a.afterScreenshotUrl?(0,b.jsx)("a",{href:a.afterScreenshotUrl,target:"_blank",rel:"noopener noreferrer",children:(0,b.jsx)(c.default,{src:a.afterScreenshotUrl,alt:"After",width:64,height:40,className:"object-cover rounded border hover:opacity-80 transition-opacity",unoptimized:!0})}):(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"-"})}),(0,b.jsx)(au,{children:a.reportBlobUrl?(0,b.jsx)(d.default,{href:`/workflows/${a.id}/report`,className:"text-primary hover:underline",children:"View Report"}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"No report"})}),(0,b.jsx)(au,{children:a.prUrl?(0,b.jsx)("a",{href:a.prUrl,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"View PR"}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"No PR"})})]},`${a.id}-${a.timestamp}`))})]})})})}),(0,b.jsx)(ag,{open:q,onOpenChange:r,children:(0,b.jsxs)(ak,{children:[(0,b.jsxs)(al,{children:[(0,b.jsx)(an,{children:"Delete Workflow Runs"}),(0,b.jsxs)(ao,{children:["Are you sure you want to delete ",o.size," workflow run",1===o.size?"":"s","? This will permanently delete all associated data including screenshots and reports. This action cannot be undone."]})]}),(0,b.jsxs)(am,{children:[(0,b.jsx)(ai,{asChild:!0,children:(0,b.jsx)(k.Button,{variant:"outline",disabled:s,children:"Cancel"})}),(0,b.jsx)(k.Button,{variant:"destructive",onClick:y,disabled:s,children:s?"Deleting...":`Delete ${o.size} run${1===o.size?"":"s"}`})]})]})})]})}a.s(["default",()=>av],24501)}];
6
+
7
+ //# sourceMappingURL=mcp-server_app_workflows_workflows-client_tsx_268cfd4a._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../mcp-server/app/workflows/workflows-client.tsx","../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.15_%40types%2Breact-dom%4019.1.11_%40types%2Breact%4019.1.17__%40types%2Brea_ff20f519624a3c8c857afb428070468f/node_modules/%40radix-ui/react-dialog/dist/index.mjs","../../../../../mcp-server/components/ui/dialog.tsx","../../../../../mcp-server/components/ui/badge.tsx","../../../../../mcp-server/components/ui/table.tsx","../../../../../node_modules/.pnpm/lucide-react%400.544.0_react%4019.3.0-canary-09f05694-20251201/node_modules/lucide-react/src/icons/x.ts","../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.15_%40types%2Breact-dom%4019.1.11_%40types%2Breact%4019.1.17__%40types%2Brea_ff20f519624a3c8c857afb428070468f/node_modules/%40radix-ui/react-dialog/src/dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport Image from \"next/image\"\nimport Link from \"next/link\"\nimport { useCallback, useRef, useState } from \"react\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle\n} from \"@/components/ui/dialog\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\nimport type { WorkflowRun } from \"@/lib/workflow-storage\"\n\ninterface UserInfo {\n id: string\n email: string\n name: string\n username: string\n}\n\ninterface WorkflowsClientProps {\n user: UserInfo\n initialRuns: WorkflowRun[]\n}\n\nexport default function WorkflowsClient({ user, initialRuns }: WorkflowsClientProps) {\n const [isSigningOut, setIsSigningOut] = useState(false)\n const [runs, setRuns] = useState<WorkflowRun[]>(initialRuns)\n const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set())\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false)\n const [isDeleting, setIsDeleting] = useState(false)\n const lastSelectedIndex = useRef<number | null>(null)\n\n async function handleSignOut() {\n setIsSigningOut(true)\n try {\n await fetch(\"/api/auth/signout\", { method: \"POST\" })\n window.location.href = \"/\"\n } catch (error) {\n console.error(\"Failed to sign out:\", error)\n setIsSigningOut(false)\n }\n }\n\n const handleSelectAll = useCallback(\n (checked: boolean) => {\n if (checked) {\n setSelectedIds(new Set(runs.map((run) => run.id)))\n } else {\n setSelectedIds(new Set())\n }\n lastSelectedIndex.current = null\n },\n [runs]\n )\n\n const handleSelectRow = useCallback(\n (runId: string, index: number, event: React.MouseEvent) => {\n setSelectedIds((prev) => {\n const newSelected = new Set(prev)\n\n // Handle shift-click for range selection\n if (event.shiftKey && lastSelectedIndex.current !== null) {\n const start = Math.min(lastSelectedIndex.current, index)\n const end = Math.max(lastSelectedIndex.current, index)\n\n // Select all items in the range\n for (let i = start; i <= end; i++) {\n newSelected.add(runs[i].id)\n }\n } else {\n // Regular click - toggle selection\n if (newSelected.has(runId)) {\n newSelected.delete(runId)\n } else {\n newSelected.add(runId)\n }\n }\n\n return newSelected\n })\n\n lastSelectedIndex.current = index\n },\n [runs]\n )\n\n const handleDelete = async () => {\n setIsDeleting(true)\n try {\n const response = await fetch(\"/api/workflows\", {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n userId: user.id,\n runIds: Array.from(selectedIds)\n })\n })\n\n const result = await response.json()\n\n if (result.success) {\n // Remove deleted runs from state\n setRuns((prev) => prev.filter((run) => !selectedIds.has(run.id)))\n setSelectedIds(new Set())\n setIsDeleteDialogOpen(false)\n } else {\n console.error(\"Failed to delete workflows:\", result.error)\n alert(`Failed to delete workflows: ${result.error}`)\n }\n } catch (error) {\n console.error(\"Failed to delete workflows:\", error)\n alert(\"Failed to delete workflows. Please try again.\")\n } finally {\n setIsDeleting(false)\n }\n }\n\n const allSelected = runs.length > 0 && selectedIds.size === runs.length\n const someSelected = selectedIds.size > 0 && selectedIds.size < runs.length\n\n return (\n <div className=\"h-screen flex flex-col bg-gray-50\">\n <div className=\"flex-shrink-0 px-4 sm:px-6 lg:px-8 pt-8 pb-4 max-w-7xl mx-auto w-full\">\n <div className=\"flex justify-between items-start\">\n <div>\n <h1 className=\"text-3xl font-bold text-gray-900\">d3k Workflow Runs</h1>\n <p className=\"mt-2 text-gray-600\">View all your d3k workflow fix proposals and PRs</p>\n <p className=\"mt-1 text-sm text-gray-500\">Signed in as {user.email}</p>\n </div>\n <div className=\"flex gap-3\">\n {selectedIds.size > 0 && (\n <Button variant=\"destructive\" onClick={() => setIsDeleteDialogOpen(true)}>\n Delete {selectedIds.size} selected\n </Button>\n )}\n <Button asChild>\n <Link href=\"/workflows/new\">New Workflow</Link>\n </Button>\n <Button variant=\"outline\" onClick={handleSignOut} disabled={isSigningOut}>\n {isSigningOut ? \"Signing out...\" : \"Sign out\"}\n </Button>\n </div>\n </div>\n </div>\n\n <div className=\"flex-1 min-h-0 px-4 sm:px-6 lg:px-8 pb-8 max-w-7xl mx-auto w-full\">\n {runs.length === 0 ? (\n <Card className=\"p-12 text-center\">\n <CardContent>\n <p className=\"text-muted-foreground\">No workflow runs yet</p>\n <p className=\"text-sm text-muted-foreground/70 mt-2\">Run a workflow from the CLI to see it appear here</p>\n </CardContent>\n </Card>\n ) : (\n <Card className=\"h-full flex flex-col overflow-hidden\">\n <div className=\"overflow-auto flex-1 [&_[data-slot=table-container]]:overflow-visible\">\n <Table>\n <TableHeader className=\"sticky top-0 bg-card z-10 shadow-[0_1px_3px_-1px_rgba(0,0,0,0.1)]\">\n <TableRow>\n <TableHead className=\"w-8 pr-0\">\n <Checkbox\n checked={allSelected}\n ref={(el) => {\n if (el) {\n // Set indeterminate state for \"some selected\"\n const input = el.querySelector(\"button\") as HTMLButtonElement\n if (input) {\n input.dataset.state = someSelected\n ? \"indeterminate\"\n : allSelected\n ? \"checked\"\n : \"unchecked\"\n }\n }\n }}\n onCheckedChange={handleSelectAll}\n aria-label=\"Select all\"\n />\n </TableHead>\n <TableHead>Project ({runs.length})</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Timestamp</TableHead>\n <TableHead>Before</TableHead>\n <TableHead>After</TableHead>\n <TableHead>Report</TableHead>\n <TableHead>PR</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {runs.map((run, index) => (\n <TableRow\n key={`${run.id}-${run.timestamp}`}\n className={selectedIds.has(run.id) ? \"bg-muted/50\" : undefined}\n >\n <TableCell className=\"pr-0\">\n <Checkbox\n checked={selectedIds.has(run.id)}\n onClick={(e) => handleSelectRow(run.id, index, e)}\n onCheckedChange={() => {}}\n aria-label={`Select ${run.projectName}`}\n />\n </TableCell>\n <TableCell>\n <div className=\"font-medium\">{run.projectName}</div>\n <div className=\"text-xs text-muted-foreground\">{run.id}</div>\n </TableCell>\n <TableCell>\n <Badge\n variant={\n run.status === \"done\" ? \"secondary\" : run.status === \"running\" ? \"default\" : \"destructive\"\n }\n className={\n run.status === \"done\"\n ? \"bg-green-100 text-green-800 hover:bg-green-100\"\n : run.status === \"running\"\n ? \"bg-blue-100 text-blue-800 hover:bg-blue-100\"\n : \"\"\n }\n >\n {run.status}\n </Badge>\n </TableCell>\n <TableCell className=\"text-muted-foreground\">\n {new Date(run.timestamp).toLocaleString()}\n </TableCell>\n <TableCell>\n {run.beforeScreenshotUrl ? (\n <a href={run.beforeScreenshotUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={run.beforeScreenshotUrl}\n alt=\"Before\"\n width={64}\n height={40}\n className=\"object-cover rounded border hover:opacity-80 transition-opacity\"\n unoptimized\n />\n </a>\n ) : (\n <span className=\"text-muted-foreground text-xs\">-</span>\n )}\n </TableCell>\n <TableCell>\n {run.afterScreenshotUrl ? (\n <a href={run.afterScreenshotUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={run.afterScreenshotUrl}\n alt=\"After\"\n width={64}\n height={40}\n className=\"object-cover rounded border hover:opacity-80 transition-opacity\"\n unoptimized\n />\n </a>\n ) : (\n <span className=\"text-muted-foreground text-xs\">-</span>\n )}\n </TableCell>\n <TableCell>\n {run.reportBlobUrl ? (\n <Link href={`/workflows/${run.id}/report`} className=\"text-primary hover:underline\">\n View Report\n </Link>\n ) : (\n <span className=\"text-muted-foreground\">No report</span>\n )}\n </TableCell>\n <TableCell>\n {run.prUrl ? (\n <a\n href={run.prUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline\"\n >\n View PR\n </a>\n ) : (\n <span className=\"text-muted-foreground\">No PR</span>\n )}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </Card>\n )}\n </div>\n\n <Dialog open={isDeleteDialogOpen} onOpenChange={setIsDeleteDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete Workflow Runs</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete {selectedIds.size} workflow run{selectedIds.size === 1 ? \"\" : \"s\"}? This\n will permanently delete all associated data including screenshots and reports. This action cannot be\n undone.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <DialogClose asChild>\n <Button variant=\"outline\" disabled={isDeleting}>\n Cancel\n </Button>\n </DialogClose>\n <Button variant=\"destructive\" onClick={handleDelete} disabled={isDeleting}>\n {isDeleting ? \"Deleting...\" : `Delete ${selectedIds.size} run${selectedIds.size === 1 ? \"\" : \"s\"}`}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n}\n","import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline: \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n)\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\"\n\n return <Comp data-slot=\"badge\" className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport type * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table data-slot=\"table\" className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return <tbody data-slot=\"table-body\" className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption data-slot=\"table-caption\" className={cn(\"text-muted-foreground mt-4 text-sm\", className)} {...props} />\n )\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n"],"names":[],"mappings":"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","ignoreList":[1,5,6]}
@@ -0,0 +1,3 @@
1
+ module.exports=[26268,a=>{"use strict";var b=a.i(33857);let c=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},d=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var e={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 f=(0,b.forwardRef)(({color:a="currentColor",size:c=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:c,height:c,stroke:a,strokeWidth:g?24*Number(f)/Number(c):f,className:d("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:d(`lucide-${c(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=c(a),g};a.s(["default",()=>g],26268)},42261,18749,a=>{"use strict";function b(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}let c=a=>"boolean"==typeof a?`${a}`:0===a?"0":a;a.s(["cva",0,(a,d)=>e=>{var f;if((null==d?void 0:d.variants)==null)return b(a,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:g,defaultVariants:h}=d,i=Object.keys(g).map(a=>{let b=null==e?void 0:e[a],d=null==h?void 0:h[a];if(null===b)return null;let f=c(b)||c(d);return g[a][f]}),j=e&&Object.entries(e).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return b(a,i,null==d||null==(f=d.compoundVariants)?void 0:f.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==e?void 0:e.class,null==e?void 0:e.className)}],42261);let d=(a,b)=>{if(0===a.length)return b.classGroupId;let c=a[0],e=b.nextPart.get(c),f=e?d(a.slice(1),e):void 0;if(f)return f;if(0===b.validators.length)return;let g=a.join("-");return b.validators.find(({validator:a})=>a(g))?.classGroupId},e=/^\[(.+)\]$/,f=(a,b,c,d)=>{a.forEach(a=>{if("string"==typeof a){(""===a?b:g(b,a)).classGroupId=c;return}"function"==typeof a?h(a)?f(a(d),b,c,d):b.validators.push({validator:a,classGroupId:c}):Object.entries(a).forEach(([a,e])=>{f(e,g(b,a),c,d)})})},g=(a,b)=>{let c=a;return b.split("-").forEach(a=>{c.nextPart.has(a)||c.nextPart.set(a,{nextPart:new Map,validators:[]}),c=c.nextPart.get(a)}),c},h=a=>a.isThemeGetter,i=(a,b)=>b?a.map(([a,c])=>[a,c.map(a=>"string"==typeof a?b+a:"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,c])=>[b+a,c])):a)]):a,j=a=>{if(a.length<=1)return a;let b=[],c=[];return a.forEach(a=>{"["===a[0]?(b.push(...c.sort(),a),c=[]):c.push(a)}),b.push(...c.sort()),b},k=/\s+/;function l(){let a,b,c=0,d="";for(;c<arguments.length;)(a=arguments[c++])&&(b=m(a))&&(d&&(d+=" "),d+=b);return d}let m=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=m(a[d]))&&(c&&(c+=" "),c+=b);return c},n=a=>{let b=b=>b[a]||[];return b.isThemeGetter=!0,b},o=/^\[(?:([a-z-]+):)?(.+)\]$/i,p=/^\d+\/\d+$/,q=new Set(["px","full","screen"]),r=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,s=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,t=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,u=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,v=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,w=a=>y(a)||q.has(a)||p.test(a),x=a=>L(a,"length",M),y=a=>!!a&&!Number.isNaN(Number(a)),z=a=>L(a,"number",y),A=a=>!!a&&Number.isInteger(Number(a)),B=a=>a.endsWith("%")&&y(a.slice(0,-1)),C=a=>o.test(a),D=a=>r.test(a),E=new Set(["length","size","percentage"]),F=a=>L(a,E,N),G=a=>L(a,"position",N),H=new Set(["image","url"]),I=a=>L(a,H,P),J=a=>L(a,"",O),K=()=>!0,L=(a,b,c)=>{let d=o.exec(a);return!!d&&(d[1]?"string"==typeof b?d[1]===b:b.has(d[1]):c(d[2]))},M=a=>s.test(a)&&!t.test(a),N=()=>!1,O=a=>u.test(a),P=a=>v.test(a),Q=function(a,...b){let c,g,h,m=function(j){let k;return g=(c={cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=new Map,d=new Map,e=(e,f)=>{c.set(e,f),++b>a&&(b=0,d=c,c=new Map)};return{get(a){let b=c.get(a);return void 0!==b?b:void 0!==(b=d.get(a))?(e(a,b),b):void 0},set(a,b){c.has(a)?c.set(a,b):e(a,b)}}})((k=b.reduce((a,b)=>b(a),a())).cacheSize),parseClassName:(a=>{let{separator:b,experimentalParseClassName:c}=a,d=1===b.length,e=b[0],f=b.length,g=a=>{let c,g=[],h=0,i=0;for(let j=0;j<a.length;j++){let k=a[j];if(0===h){if(k===e&&(d||a.slice(j,j+f)===b)){g.push(a.slice(i,j)),i=j+f;continue}if("/"===k){c=j;continue}}"["===k?h++:"]"===k&&h--}let j=0===g.length?a:a.substring(i),k=j.startsWith("!"),l=k?j.substring(1):j;return{modifiers:g,hasImportantModifier:k,baseClassName:l,maybePostfixModifierPosition:c&&c>i?c-i:void 0}};return c?a=>c({className:a,parseClassName:g}):g})(k),...(a=>{let b=(a=>{let{theme:b,prefix:c}=a,d={nextPart:new Map,validators:[]};return i(Object.entries(a.classGroups),c).forEach(([a,c])=>{f(c,d,a,b)}),d})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:g}=a;return{getClassGroupId:a=>{let c=a.split("-");return""===c[0]&&1!==c.length&&c.shift(),d(c,b)||(a=>{if(e.test(a)){let b=e.exec(a)[1],c=b?.substring(0,b.indexOf(":"));if(c)return"arbitrary.."+c}})(a)},getConflictingClassGroupIds:(a,b)=>{let d=c[a]||[];return b&&g[a]?[...d,...g[a]]:d}}})(k)}).cache.get,h=c.cache.set,m=n,n(j)};function n(a){let b=g(a);if(b)return b;let d=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e}=b,f=[],g=a.trim().split(k),h="";for(let a=g.length-1;a>=0;a-=1){let b=g[a],{modifiers:i,hasImportantModifier:k,baseClassName:l,maybePostfixModifierPosition:m}=c(b),n=!!m,o=d(n?l.substring(0,m):l);if(!o){if(!n||!(o=d(l))){h=b+(h.length>0?" "+h:h);continue}n=!1}let p=j(i).join(":"),q=k?p+"!":p,r=q+o;if(f.includes(r))continue;f.push(r);let s=e(o,n);for(let a=0;a<s.length;++a){let b=s[a];f.push(q+b)}h=b+(h.length>0?" "+h:h)}return h})(a,c);return h(a,d),d}return function(){return m(l.apply(null,arguments))}}(()=>{let a=n("colors"),b=n("spacing"),c=n("blur"),d=n("brightness"),e=n("borderColor"),f=n("borderRadius"),g=n("borderSpacing"),h=n("borderWidth"),i=n("contrast"),j=n("grayscale"),k=n("hueRotate"),l=n("invert"),m=n("gap"),o=n("gradientColorStops"),p=n("gradientColorStopPositions"),q=n("inset"),r=n("margin"),s=n("opacity"),t=n("padding"),u=n("saturate"),v=n("scale"),E=n("sepia"),H=n("skew"),L=n("space"),M=n("translate"),N=()=>["auto","contain","none"],O=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto",C,b],Q=()=>[C,b],R=()=>["",w,x],S=()=>["auto",y,C],T=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],U=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],X=()=>["","0",C],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Z=()=>[y,C];return{cacheSize:500,separator:":",theme:{colors:[K],spacing:[w,x],blur:["none","",D,C],brightness:Z(),borderColor:[a],borderRadius:["none","","full",D,C],borderSpacing:Q(),borderWidth:R(),contrast:Z(),grayscale:X(),hueRotate:Z(),invert:X(),gap:Q(),gradientColorStops:[a],gradientColorStopPositions:[B,x],inset:P(),margin:P(),opacity:Z(),padding:Q(),saturate:Z(),scale:Z(),sepia:X(),skew:Z(),space:Q(),translate:Q()},classGroups:{aspect:[{aspect:["auto","square","video",C]}],container:["container"],columns:[{columns:[D]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...T(),C]}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[q]}],"inset-x":[{"inset-x":[q]}],"inset-y":[{"inset-y":[q]}],start:[{start:[q]}],end:[{end:[q]}],top:[{top:[q]}],right:[{right:[q]}],bottom:[{bottom:[q]}],left:[{left:[q]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",A,C]}],basis:[{basis:P()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",C]}],grow:[{grow:X()}],shrink:[{shrink:X()}],order:[{order:["first","last","none",A,C]}],"grid-cols":[{"grid-cols":[K]}],"col-start-end":[{col:["auto",{span:["full",A,C]},C]}],"col-start":[{"col-start":S()}],"col-end":[{"col-end":S()}],"grid-rows":[{"grid-rows":[K]}],"row-start-end":[{row:["auto",{span:[A,C]},C]}],"row-start":[{"row-start":S()}],"row-end":[{"row-end":S()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",C]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",C]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[t]}],px:[{px:[t]}],py:[{py:[t]}],ps:[{ps:[t]}],pe:[{pe:[t]}],pt:[{pt:[t]}],pr:[{pr:[t]}],pb:[{pb:[t]}],pl:[{pl:[t]}],m:[{m:[r]}],mx:[{mx:[r]}],my:[{my:[r]}],ms:[{ms:[r]}],me:[{me:[r]}],mt:[{mt:[r]}],mr:[{mr:[r]}],mb:[{mb:[r]}],ml:[{ml:[r]}],"space-x":[{"space-x":[L]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[L]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",C,b]}],"min-w":[{"min-w":[C,b,"min","max","fit"]}],"max-w":[{"max-w":[C,b,"none","full","min","max","fit","prose",{screen:[D]},D]}],h:[{h:[C,b,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[C,b,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[C,b,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[C,b,"auto","min","max","fit"]}],"font-size":[{text:["base",D,x]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",z]}],"font-family":[{font:[K]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",C]}],"line-clamp":[{"line-clamp":["none",y,z]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",w,C]}],"list-image":[{"list-image":["none",C]}],"list-style-type":[{list:["none","disc","decimal",C]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[a]}],"placeholder-opacity":[{"placeholder-opacity":[s]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[a]}],"text-opacity":[{"text-opacity":[s]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...U(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",w,x]}],"underline-offset":[{"underline-offset":["auto",w,C]}],"text-decoration-color":[{decoration:[a]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",C]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",C]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[s]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...T(),G]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",F]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},I]}],"bg-color":[{bg:[a]}],"gradient-from-pos":[{from:[p]}],"gradient-via-pos":[{via:[p]}],"gradient-to-pos":[{to:[p]}],"gradient-from":[{from:[o]}],"gradient-via":[{via:[o]}],"gradient-to":[{to:[o]}],rounded:[{rounded:[f]}],"rounded-s":[{"rounded-s":[f]}],"rounded-e":[{"rounded-e":[f]}],"rounded-t":[{"rounded-t":[f]}],"rounded-r":[{"rounded-r":[f]}],"rounded-b":[{"rounded-b":[f]}],"rounded-l":[{"rounded-l":[f]}],"rounded-ss":[{"rounded-ss":[f]}],"rounded-se":[{"rounded-se":[f]}],"rounded-ee":[{"rounded-ee":[f]}],"rounded-es":[{"rounded-es":[f]}],"rounded-tl":[{"rounded-tl":[f]}],"rounded-tr":[{"rounded-tr":[f]}],"rounded-br":[{"rounded-br":[f]}],"rounded-bl":[{"rounded-bl":[f]}],"border-w":[{border:[h]}],"border-w-x":[{"border-x":[h]}],"border-w-y":[{"border-y":[h]}],"border-w-s":[{"border-s":[h]}],"border-w-e":[{"border-e":[h]}],"border-w-t":[{"border-t":[h]}],"border-w-r":[{"border-r":[h]}],"border-w-b":[{"border-b":[h]}],"border-w-l":[{"border-l":[h]}],"border-opacity":[{"border-opacity":[s]}],"border-style":[{border:[...U(),"hidden"]}],"divide-x":[{"divide-x":[h]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[h]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[s]}],"divide-style":[{divide:U()}],"border-color":[{border:[e]}],"border-color-x":[{"border-x":[e]}],"border-color-y":[{"border-y":[e]}],"border-color-s":[{"border-s":[e]}],"border-color-e":[{"border-e":[e]}],"border-color-t":[{"border-t":[e]}],"border-color-r":[{"border-r":[e]}],"border-color-b":[{"border-b":[e]}],"border-color-l":[{"border-l":[e]}],"divide-color":[{divide:[e]}],"outline-style":[{outline:["",...U()]}],"outline-offset":[{"outline-offset":[w,C]}],"outline-w":[{outline:[w,x]}],"outline-color":[{outline:[a]}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[a]}],"ring-opacity":[{"ring-opacity":[s]}],"ring-offset-w":[{"ring-offset":[w,x]}],"ring-offset-color":[{"ring-offset":[a]}],shadow:[{shadow:["","inner","none",D,J]}],"shadow-color":[{shadow:[K]}],opacity:[{opacity:[s]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[c]}],brightness:[{brightness:[d]}],contrast:[{contrast:[i]}],"drop-shadow":[{"drop-shadow":["","none",D,C]}],grayscale:[{grayscale:[j]}],"hue-rotate":[{"hue-rotate":[k]}],invert:[{invert:[l]}],saturate:[{saturate:[u]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[c]}],"backdrop-brightness":[{"backdrop-brightness":[d]}],"backdrop-contrast":[{"backdrop-contrast":[i]}],"backdrop-grayscale":[{"backdrop-grayscale":[j]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[k]}],"backdrop-invert":[{"backdrop-invert":[l]}],"backdrop-opacity":[{"backdrop-opacity":[s]}],"backdrop-saturate":[{"backdrop-saturate":[u]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[g]}],"border-spacing-x":[{"border-spacing-x":[g]}],"border-spacing-y":[{"border-spacing-y":[g]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",C]}],duration:[{duration:Z()}],ease:[{ease:["linear","in","out","in-out",C]}],delay:[{delay:Z()}],animate:[{animate:["none","spin","ping","pulse","bounce",C]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[v]}],"scale-x":[{"scale-x":[v]}],"scale-y":[{"scale-y":[v]}],rotate:[{rotate:[A,C]}],"translate-x":[{"translate-x":[M]}],"translate-y":[{"translate-y":[M]}],"skew-x":[{"skew-x":[H]}],"skew-y":[{"skew-y":[H]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",C]}],accent:[{accent:["auto",a]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",C]}],"caret-color":[{caret:[a]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":Q()}],"scroll-mx":[{"scroll-mx":Q()}],"scroll-my":[{"scroll-my":Q()}],"scroll-ms":[{"scroll-ms":Q()}],"scroll-me":[{"scroll-me":Q()}],"scroll-mt":[{"scroll-mt":Q()}],"scroll-mr":[{"scroll-mr":Q()}],"scroll-mb":[{"scroll-mb":Q()}],"scroll-ml":[{"scroll-ml":Q()}],"scroll-p":[{"scroll-p":Q()}],"scroll-px":[{"scroll-px":Q()}],"scroll-py":[{"scroll-py":Q()}],"scroll-ps":[{"scroll-ps":Q()}],"scroll-pe":[{"scroll-pe":Q()}],"scroll-pt":[{"scroll-pt":Q()}],"scroll-pr":[{"scroll-pr":Q()}],"scroll-pb":[{"scroll-pb":Q()}],"scroll-pl":[{"scroll-pl":Q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",C]}],fill:[{fill:[a,"none"]}],"stroke-w":[{stroke:[w,x,z]}],stroke:[{stroke:[a,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}});function R(...a){return Q(b(a))}a.s(["cn",()=>R],18749)},77696,72973,a=>{"use strict";var b=a.i(33857);function c(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function d(...a){return b=>{let d=!1,e=a.map(a=>{let e=c(a,b);return d||"function"!=typeof e||(d=!0),e});if(d)return()=>{for(let b=0;b<e.length;b++){let d=e[b];"function"==typeof d?d():c(a[b],null)}}}}function e(...a){return b.useCallback(d(...a),a)}a.s(["composeRefs",()=>d,"useComposedRefs",()=>e],72973);var f=a.i(55205),g=Symbol.for("react.lazy"),h=b[" use ".trim().toString()];function i(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===g&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}function j(a){var c;let e,g=(c=a,(e=b.forwardRef((a,c)=>{let{children:e,...f}=a;if(i(e)&&"function"==typeof h&&(e=h(e._payload)),b.isValidElement(e)){var g;let a,h,i=(g=e,(h=(a=Object.getOwnPropertyDescriptor(g.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.ref:(h=(a=Object.getOwnPropertyDescriptor(g,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.props.ref:g.props.ref||g.ref),j=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(f,e.props);return e.type!==b.Fragment&&(j.ref=c?d(c,i):i),b.cloneElement(e,j)}return b.Children.count(e)>1?b.Children.only(null):null})).displayName=`${c}.SlotClone`,e),j=b.forwardRef((a,c)=>{let{children:d,...e}=a;i(d)&&"function"==typeof h&&(d=h(d._payload));let j=b.Children.toArray(d),k=j.find(m);if(k){let a=k.props.children,d=j.map(c=>c!==k?c:b.Children.count(a)>1?b.Children.only(null):b.isValidElement(a)?a.props.children:null);return(0,f.jsx)(g,{...e,ref:c,children:b.isValidElement(a)?b.cloneElement(a,void 0,d):null})}return(0,f.jsx)(g,{...e,ref:c,children:d})});return j.displayName=`${a}.Slot`,j}var k=j("Slot"),l=Symbol("radix.slottable");function m(a){return b.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===l}a.s(["Slot",()=>k,"createSlot",()=>j],77696)}];
2
+
3
+ //# sourceMappingURL=node_modules__pnpm_961f21c4._.js.map