@cogentic-co/ds 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/dist/animations/animation-ai-analysis.js +4 -3
  2. package/dist/animations/animation-ai-analysis.js.map +1 -1
  3. package/dist/animations/animation-audit-trail.js +2 -1
  4. package/dist/animations/animation-audit-trail.js.map +1 -1
  5. package/dist/animations/animation-compliance-reports.js +4 -3
  6. package/dist/animations/animation-compliance-reports.js.map +1 -1
  7. package/dist/animations/animation-custom-rules.js +4 -3
  8. package/dist/animations/animation-custom-rules.js.map +1 -1
  9. package/dist/animations/animation-jira-ticket.js +3 -2
  10. package/dist/animations/animation-jira-ticket.js.map +1 -1
  11. package/dist/animations/animation-jurisdiction-detection.js +4 -3
  12. package/dist/animations/animation-jurisdiction-detection.js.map +1 -1
  13. package/dist/animations/animation-multi-protocol.js +2 -1
  14. package/dist/animations/animation-multi-protocol.js.map +1 -1
  15. package/dist/animations/animation-pricing-preview.js +4 -3
  16. package/dist/animations/animation-pricing-preview.js.map +1 -1
  17. package/dist/animations/animation-realtime-updates.js +5 -4
  18. package/dist/animations/animation-realtime-updates.js.map +1 -1
  19. package/dist/animations/animation-rest-api.js +2 -1
  20. package/dist/animations/animation-rest-api.js.map +1 -1
  21. package/dist/animations/animation-risk-scoring.js +5 -4
  22. package/dist/animations/animation-risk-scoring.js.map +1 -1
  23. package/dist/animations/animation-sandbox.js +2 -1
  24. package/dist/animations/animation-sandbox.js.map +1 -1
  25. package/dist/animations/animation-scheduled-reports.js +4 -3
  26. package/dist/animations/animation-scheduled-reports.js.map +1 -1
  27. package/dist/animations/animation-secure-messaging.js +3 -2
  28. package/dist/animations/animation-secure-messaging.js.map +1 -1
  29. package/dist/animations/animation-slack-notification.js +3 -2
  30. package/dist/animations/animation-slack-notification.js.map +1 -1
  31. package/dist/animations/animation-sop-mapping.js +2 -1
  32. package/dist/animations/animation-sop-mapping.js.map +1 -1
  33. package/dist/animations/animation-team-routing.js +4 -3
  34. package/dist/animations/animation-team-routing.js.map +1 -1
  35. package/dist/animations/animation-teams-notification.js +3 -2
  36. package/dist/animations/animation-teams-notification.js.map +1 -1
  37. package/dist/animations/animation-vasp-identification.js +4 -3
  38. package/dist/animations/animation-vasp-identification.js.map +1 -1
  39. package/dist/animations/animation-webhooks.js +3 -2
  40. package/dist/animations/animation-webhooks.js.map +1 -1
  41. package/dist/blocks/auth-form.d.ts +1 -1
  42. package/dist/blocks/auth-form.js +7 -4
  43. package/dist/blocks/feature-section.js +3 -2
  44. package/dist/blocks/hero-section.js +3 -2
  45. package/dist/blocks/pricing-table.js +6 -3
  46. package/dist/blocks/stat-card.d.ts +1 -1
  47. package/dist/blocks/stat-card.js +4 -3
  48. package/dist/charts.d.ts +1 -1
  49. package/dist/charts.js +3 -2
  50. package/dist/charts.js.map +1 -1
  51. package/dist/chatbot.js +2 -1
  52. package/dist/chatbot.js.map +1 -1
  53. package/dist/chunk-2BIKWTWM.js +53 -0
  54. package/dist/chunk-2BIKWTWM.js.map +1 -0
  55. package/dist/{chunk-GZNLQE3I.js → chunk-2NMEKWO5.js} +3 -22
  56. package/dist/chunk-2NMEKWO5.js.map +1 -0
  57. package/dist/chunk-2TRJUH3V.js +104 -0
  58. package/dist/chunk-2TRJUH3V.js.map +1 -0
  59. package/dist/chunk-2X37XLH2.js +143 -0
  60. package/dist/chunk-2X37XLH2.js.map +1 -0
  61. package/dist/chunk-37V55OP6.js +191 -0
  62. package/dist/chunk-37V55OP6.js.map +1 -0
  63. package/dist/{chunk-GJAWCIGE.js → chunk-3IXL43BU.js} +4 -3
  64. package/dist/chunk-3IXL43BU.js.map +1 -0
  65. package/dist/chunk-3T2NATO3.js +50 -0
  66. package/dist/chunk-3T2NATO3.js.map +1 -0
  67. package/dist/chunk-455KJGDL.js +185 -0
  68. package/dist/chunk-455KJGDL.js.map +1 -0
  69. package/dist/chunk-466GQKGZ.js +311 -0
  70. package/dist/chunk-466GQKGZ.js.map +1 -0
  71. package/dist/chunk-46UBZI4D.js +119 -0
  72. package/dist/chunk-46UBZI4D.js.map +1 -0
  73. package/dist/chunk-4BLD6BKF.js +53 -0
  74. package/dist/chunk-4BLD6BKF.js.map +1 -0
  75. package/dist/chunk-4FJIJXG4.js +45 -0
  76. package/dist/chunk-4FJIJXG4.js.map +1 -0
  77. package/dist/chunk-4FVHSHHI.js +89 -0
  78. package/dist/chunk-4FVHSHHI.js.map +1 -0
  79. package/dist/chunk-4J2PVZ33.js +43 -0
  80. package/dist/chunk-4J2PVZ33.js.map +1 -0
  81. package/dist/chunk-4VREYXB4.js +136 -0
  82. package/dist/chunk-4VREYXB4.js.map +1 -0
  83. package/dist/chunk-5KYZ5PI5.js +12 -0
  84. package/dist/chunk-5KYZ5PI5.js.map +1 -0
  85. package/dist/{chunk-VWSX75RB.js → chunk-5OVGEXTO.js} +9 -65
  86. package/dist/chunk-5OVGEXTO.js.map +1 -0
  87. package/dist/chunk-5OYIXT3N.js +141 -0
  88. package/dist/chunk-5OYIXT3N.js.map +1 -0
  89. package/dist/chunk-5Q4NJ7WO.js +119 -0
  90. package/dist/chunk-5Q4NJ7WO.js.map +1 -0
  91. package/dist/chunk-5U5NBPQE.js +33 -0
  92. package/dist/chunk-5U5NBPQE.js.map +1 -0
  93. package/dist/chunk-667PB7XR.js +200 -0
  94. package/dist/chunk-667PB7XR.js.map +1 -0
  95. package/dist/chunk-6G52CCDH.js +76 -0
  96. package/dist/chunk-6G52CCDH.js.map +1 -0
  97. package/dist/chunk-6HL4ZHBG.js +16 -0
  98. package/dist/chunk-6HL4ZHBG.js.map +1 -0
  99. package/dist/chunk-6NGFSBVR.js +19 -0
  100. package/dist/chunk-6NGFSBVR.js.map +1 -0
  101. package/dist/chunk-7HOGEYHD.js +99 -0
  102. package/dist/chunk-7HOGEYHD.js.map +1 -0
  103. package/dist/chunk-7IUV2ARF.js +29 -0
  104. package/dist/chunk-7IUV2ARF.js.map +1 -0
  105. package/dist/chunk-7KDR2RWZ.js +121 -0
  106. package/dist/chunk-7KDR2RWZ.js.map +1 -0
  107. package/dist/chunk-7Q7O5LKS.js +155 -0
  108. package/dist/chunk-7Q7O5LKS.js.map +1 -0
  109. package/dist/chunk-7U72AXXX.js +172 -0
  110. package/dist/chunk-7U72AXXX.js.map +1 -0
  111. package/dist/{chunk-LW6GAWZM.js → chunk-AX7QXZKM.js} +10 -35
  112. package/dist/chunk-AX7QXZKM.js.map +1 -0
  113. package/dist/{chunk-XQYFQ6PU.js → chunk-B62UTODY.js} +4 -3
  114. package/dist/chunk-B62UTODY.js.map +1 -0
  115. package/dist/chunk-BB7XG36P.js +98 -0
  116. package/dist/chunk-BB7XG36P.js.map +1 -0
  117. package/dist/chunk-BEU3AQZQ.js +78 -0
  118. package/dist/chunk-BEU3AQZQ.js.map +1 -0
  119. package/dist/chunk-BSKXC3ZQ.js +504 -0
  120. package/dist/chunk-BSKXC3ZQ.js.map +1 -0
  121. package/dist/chunk-BU3PTFMI.js +99 -0
  122. package/dist/chunk-BU3PTFMI.js.map +1 -0
  123. package/dist/chunk-BWCIJWG4.js +20 -0
  124. package/dist/chunk-BWCIJWG4.js.map +1 -0
  125. package/dist/chunk-BYBN4NTY.js +284 -0
  126. package/dist/chunk-BYBN4NTY.js.map +1 -0
  127. package/dist/chunk-CIGS6SLR.js +261 -0
  128. package/dist/chunk-CIGS6SLR.js.map +1 -0
  129. package/dist/{chunk-TAPJEVUA.js → chunk-D3KGHRRC.js} +2 -2
  130. package/dist/{chunk-TAPJEVUA.js.map → chunk-D3KGHRRC.js.map} +1 -1
  131. package/dist/chunk-D75EQCUR.js +81 -0
  132. package/dist/chunk-D75EQCUR.js.map +1 -0
  133. package/dist/chunk-DF7TNBDD.js +84 -0
  134. package/dist/chunk-DF7TNBDD.js.map +1 -0
  135. package/dist/chunk-DO5JNX44.js +123 -0
  136. package/dist/chunk-DO5JNX44.js.map +1 -0
  137. package/dist/chunk-EALF3HQS.js +64 -0
  138. package/dist/chunk-EALF3HQS.js.map +1 -0
  139. package/dist/chunk-EDESQ6HE.js +24 -0
  140. package/dist/chunk-EDESQ6HE.js.map +1 -0
  141. package/dist/{chunk-BNFSXNP2.js → chunk-EN6GS7O4.js} +4 -3
  142. package/dist/chunk-EN6GS7O4.js.map +1 -0
  143. package/dist/chunk-EUAZ42RE.js +32 -0
  144. package/dist/chunk-EUAZ42RE.js.map +1 -0
  145. package/dist/chunk-FDLCCVWI.js +56 -0
  146. package/dist/chunk-FDLCCVWI.js.map +1 -0
  147. package/dist/chunk-FGSFWKIJ.js +60 -0
  148. package/dist/chunk-FGSFWKIJ.js.map +1 -0
  149. package/dist/chunk-FOCJAO6Y.js +167 -0
  150. package/dist/chunk-FOCJAO6Y.js.map +1 -0
  151. package/dist/chunk-FRAFAAPK.js +3 -0
  152. package/dist/chunk-FRAFAAPK.js.map +1 -0
  153. package/dist/chunk-GF3A7RZS.js +118 -0
  154. package/dist/chunk-GF3A7RZS.js.map +1 -0
  155. package/dist/chunk-GHZL6VY5.js +216 -0
  156. package/dist/chunk-GHZL6VY5.js.map +1 -0
  157. package/dist/chunk-GQTDZUUX.js +38 -0
  158. package/dist/chunk-GQTDZUUX.js.map +1 -0
  159. package/dist/chunk-GR6J7HQK.js +24 -0
  160. package/dist/chunk-GR6J7HQK.js.map +1 -0
  161. package/dist/chunk-GV7JJHY5.js +21 -0
  162. package/dist/chunk-GV7JJHY5.js.map +1 -0
  163. package/dist/chunk-H4PJG7O3.js +193 -0
  164. package/dist/chunk-H4PJG7O3.js.map +1 -0
  165. package/dist/chunk-H4T5OTVO.js +83 -0
  166. package/dist/chunk-H4T5OTVO.js.map +1 -0
  167. package/dist/chunk-H5JU3APN.js +36 -0
  168. package/dist/chunk-H5JU3APN.js.map +1 -0
  169. package/dist/chunk-H6BQJNUX.js +39 -0
  170. package/dist/chunk-H6BQJNUX.js.map +1 -0
  171. package/dist/chunk-HK73AOFX.js +646 -0
  172. package/dist/chunk-HK73AOFX.js.map +1 -0
  173. package/dist/chunk-IKY6E2H6.js +38 -0
  174. package/dist/chunk-IKY6E2H6.js.map +1 -0
  175. package/dist/chunk-IVPZ37VC.js +95 -0
  176. package/dist/chunk-IVPZ37VC.js.map +1 -0
  177. package/dist/chunk-J7CT7LH6.js +22 -0
  178. package/dist/chunk-J7CT7LH6.js.map +1 -0
  179. package/dist/chunk-JCJCCQLD.js +182 -0
  180. package/dist/chunk-JCJCCQLD.js.map +1 -0
  181. package/dist/chunk-K4H74FZT.js +43 -0
  182. package/dist/chunk-K4H74FZT.js.map +1 -0
  183. package/dist/chunk-KB665WXG.js +62 -0
  184. package/dist/chunk-KB665WXG.js.map +1 -0
  185. package/dist/chunk-KCPMWAQJ.js +71 -0
  186. package/dist/chunk-KCPMWAQJ.js.map +1 -0
  187. package/dist/chunk-KI4SRSCR.js +83 -0
  188. package/dist/chunk-KI4SRSCR.js.map +1 -0
  189. package/dist/chunk-KKKVOC6T.js +68 -0
  190. package/dist/chunk-KKKVOC6T.js.map +1 -0
  191. package/dist/chunk-KLOBSEH3.js +32 -0
  192. package/dist/chunk-KLOBSEH3.js.map +1 -0
  193. package/dist/{chunk-4NEQV6H2.js → chunk-KX3W7BKP.js} +4 -3
  194. package/dist/chunk-KX3W7BKP.js.map +1 -0
  195. package/dist/chunk-L52PKRST.js +15 -0
  196. package/dist/chunk-L52PKRST.js.map +1 -0
  197. package/dist/chunk-LZ7QCH6T.js +151 -0
  198. package/dist/chunk-LZ7QCH6T.js.map +1 -0
  199. package/dist/chunk-MEQYYN4D.js +22 -0
  200. package/dist/chunk-MEQYYN4D.js.map +1 -0
  201. package/dist/chunk-MHRCB42B.js +24 -0
  202. package/dist/chunk-MHRCB42B.js.map +1 -0
  203. package/dist/chunk-N4YLACF7.js +95 -0
  204. package/dist/chunk-N4YLACF7.js.map +1 -0
  205. package/dist/chunk-NDC2EAYA.js +28 -0
  206. package/dist/chunk-NDC2EAYA.js.map +1 -0
  207. package/dist/chunk-NN2YBLVZ.js +38 -0
  208. package/dist/chunk-NN2YBLVZ.js.map +1 -0
  209. package/dist/chunk-NPIDODOZ.js +100 -0
  210. package/dist/chunk-NPIDODOZ.js.map +1 -0
  211. package/dist/chunk-NSRUYLBC.js +65 -0
  212. package/dist/chunk-NSRUYLBC.js.map +1 -0
  213. package/dist/chunk-NUZM7GDQ.js +49 -0
  214. package/dist/chunk-NUZM7GDQ.js.map +1 -0
  215. package/dist/chunk-O6QB2KVL.js +86 -0
  216. package/dist/chunk-O6QB2KVL.js.map +1 -0
  217. package/dist/chunk-OAVWHBUD.js +250 -0
  218. package/dist/chunk-OAVWHBUD.js.map +1 -0
  219. package/dist/chunk-OG7CCUKC.js +45 -0
  220. package/dist/chunk-OG7CCUKC.js.map +1 -0
  221. package/dist/chunk-PKGKB7JG.js +20 -0
  222. package/dist/chunk-PKGKB7JG.js.map +1 -0
  223. package/dist/chunk-QCY3TBJU.js +130 -0
  224. package/dist/chunk-QCY3TBJU.js.map +1 -0
  225. package/dist/chunk-QTHRRLHF.js +89 -0
  226. package/dist/chunk-QTHRRLHF.js.map +1 -0
  227. package/dist/chunk-REBDYEZX.js +67 -0
  228. package/dist/chunk-REBDYEZX.js.map +1 -0
  229. package/dist/chunk-RI7KG3TF.js +87 -0
  230. package/dist/chunk-RI7KG3TF.js.map +1 -0
  231. package/dist/{chunk-RXV2XUDZ.js → chunk-SLSJ6OOL.js} +2 -2
  232. package/dist/{chunk-RXV2XUDZ.js.map → chunk-SLSJ6OOL.js.map} +1 -1
  233. package/dist/chunk-ST22RZYN.js +122 -0
  234. package/dist/chunk-ST22RZYN.js.map +1 -0
  235. package/dist/chunk-SZFIXV43.js +3 -0
  236. package/dist/chunk-SZFIXV43.js.map +1 -0
  237. package/dist/chunk-TJVE6LDU.js +205 -0
  238. package/dist/chunk-TJVE6LDU.js.map +1 -0
  239. package/dist/chunk-TVGQEQOW.js +83 -0
  240. package/dist/chunk-TVGQEQOW.js.map +1 -0
  241. package/dist/chunk-U37L3S2U.js +22 -0
  242. package/dist/chunk-U37L3S2U.js.map +1 -0
  243. package/dist/chunk-UAFRUBYX.js +42 -0
  244. package/dist/chunk-UAFRUBYX.js.map +1 -0
  245. package/dist/chunk-UAXOFYFR.js +37 -0
  246. package/dist/chunk-UAXOFYFR.js.map +1 -0
  247. package/dist/{chunk-7HRPF2N2.js → chunk-UIDMLHT7.js} +5 -4
  248. package/dist/chunk-UIDMLHT7.js.map +1 -0
  249. package/dist/chunk-V43Q47PK.js +28 -0
  250. package/dist/chunk-V43Q47PK.js.map +1 -0
  251. package/dist/chunk-VUKVUFHU.js +237 -0
  252. package/dist/chunk-VUKVUFHU.js.map +1 -0
  253. package/dist/{chunk-CG5JA7FM.js → chunk-VWZTLFXK.js} +4 -3
  254. package/dist/chunk-VWZTLFXK.js.map +1 -0
  255. package/dist/chunk-VY2ZHEY2.js +170 -0
  256. package/dist/chunk-VY2ZHEY2.js.map +1 -0
  257. package/dist/chunk-WGFU2D4A.js +63 -0
  258. package/dist/chunk-WGFU2D4A.js.map +1 -0
  259. package/dist/chunk-WJRJBMFN.js +22 -0
  260. package/dist/chunk-WJRJBMFN.js.map +1 -0
  261. package/dist/chunk-X5R5H4TO.js +36 -0
  262. package/dist/chunk-X5R5H4TO.js.map +1 -0
  263. package/dist/{chunk-6RWCZUAD.js → chunk-XAIRLU4F.js} +3 -3
  264. package/dist/{chunk-6RWCZUAD.js.map → chunk-XAIRLU4F.js.map} +1 -1
  265. package/dist/chunk-XCZNB4NP.js +86 -0
  266. package/dist/chunk-XCZNB4NP.js.map +1 -0
  267. package/dist/chunk-XWCSV3E4.js +263 -0
  268. package/dist/chunk-XWCSV3E4.js.map +1 -0
  269. package/dist/chunk-XX6UWWUW.js +197 -0
  270. package/dist/chunk-XX6UWWUW.js.map +1 -0
  271. package/dist/chunk-YCBEMVM7.js +145 -0
  272. package/dist/chunk-YCBEMVM7.js.map +1 -0
  273. package/dist/chunk-YEV262XN.js +172 -0
  274. package/dist/chunk-YEV262XN.js.map +1 -0
  275. package/dist/chunk-YJHTT2YB.js +178 -0
  276. package/dist/chunk-YJHTT2YB.js.map +1 -0
  277. package/dist/chunk-YS7M4GKW.js +117 -0
  278. package/dist/chunk-YS7M4GKW.js.map +1 -0
  279. package/dist/chunk-Z2IWEIXF.js +43 -0
  280. package/dist/chunk-Z2IWEIXF.js.map +1 -0
  281. package/dist/chunk-Z3FYDYSM.js +32 -0
  282. package/dist/chunk-Z3FYDYSM.js.map +1 -0
  283. package/dist/chunk-Z3XX65K6.js +84 -0
  284. package/dist/chunk-Z3XX65K6.js.map +1 -0
  285. package/dist/chunk-Z5EHDRCT.js +39 -0
  286. package/dist/chunk-Z5EHDRCT.js.map +1 -0
  287. package/dist/chunk-ZJ7UBKLA.js +21 -0
  288. package/dist/chunk-ZJ7UBKLA.js.map +1 -0
  289. package/dist/components/accordion.d.ts +9 -0
  290. package/dist/components/accordion.js +5 -0
  291. package/dist/components/accordion.js.map +1 -0
  292. package/dist/components/alert-dialog.d.ts +24 -0
  293. package/dist/components/alert-dialog.js +6 -0
  294. package/dist/components/alert-dialog.js.map +1 -0
  295. package/dist/components/alert.d.ts +14 -0
  296. package/dist/components/alert.js +5 -0
  297. package/dist/components/alert.js.map +1 -0
  298. package/dist/components/animated-counter.d.ts +18 -0
  299. package/dist/components/animated-counter.js +4 -0
  300. package/dist/components/animated-counter.js.map +1 -0
  301. package/dist/components/approval-actions.d.ts +30 -0
  302. package/dist/components/approval-actions.js +8 -0
  303. package/dist/components/approval-actions.js.map +1 -0
  304. package/dist/components/ascii-shader.d.ts +8 -0
  305. package/dist/components/ascii-shader.js +5 -0
  306. package/dist/components/ascii-shader.js.map +1 -0
  307. package/dist/components/aspect-ratio.d.ts +7 -0
  308. package/dist/components/aspect-ratio.js +5 -0
  309. package/dist/components/aspect-ratio.js.map +1 -0
  310. package/dist/components/audit-log.d.ts +17 -0
  311. package/dist/components/audit-log.js +5 -0
  312. package/dist/components/audit-log.js.map +1 -0
  313. package/dist/components/avatar.d.ts +14 -0
  314. package/dist/components/avatar.js +5 -0
  315. package/dist/components/avatar.js.map +1 -0
  316. package/dist/components/badge.d.ts +13 -0
  317. package/dist/components/badge.js +5 -0
  318. package/dist/components/badge.js.map +1 -0
  319. package/dist/components/bg-shader.d.ts +18 -0
  320. package/dist/components/bg-shader.js +5 -0
  321. package/dist/components/bg-shader.js.map +1 -0
  322. package/dist/components/blocky-shader.d.ts +8 -0
  323. package/dist/components/blocky-shader.js +5 -0
  324. package/dist/components/blocky-shader.js.map +1 -0
  325. package/dist/components/breadcrumb.d.ts +13 -0
  326. package/dist/components/breadcrumb.js +5 -0
  327. package/dist/components/breadcrumb.js.map +1 -0
  328. package/dist/components/button-group.d.ts +16 -0
  329. package/dist/components/button-group.js +6 -0
  330. package/dist/components/button-group.js.map +1 -0
  331. package/dist/components/button.d.ts +13 -0
  332. package/dist/components/button.js +5 -0
  333. package/dist/components/button.js.map +1 -0
  334. package/dist/components/calendar.d.ts +16 -0
  335. package/dist/components/calendar.js +6 -0
  336. package/dist/components/calendar.js.map +1 -0
  337. package/dist/components/callout.d.ts +12 -0
  338. package/dist/components/callout.js +5 -0
  339. package/dist/components/callout.js.map +1 -0
  340. package/dist/{card-Cumdyf_G.d.ts → components/card.d.ts} +1 -1
  341. package/dist/components/card.js +5 -0
  342. package/dist/components/card.js.map +1 -0
  343. package/dist/components/carousel.d.ts +34 -0
  344. package/dist/components/carousel.js +6 -0
  345. package/dist/components/carousel.js.map +1 -0
  346. package/dist/components/case-card.d.ts +36 -0
  347. package/dist/components/case-card.js +10 -0
  348. package/dist/components/case-card.js.map +1 -0
  349. package/dist/{chart-DkwdRX-i.d.ts → components/chart.d.ts} +1 -1
  350. package/dist/components/chart.js +5 -0
  351. package/dist/components/chart.js.map +1 -0
  352. package/dist/components/checkbox.d.ts +6 -0
  353. package/dist/components/checkbox.js +5 -0
  354. package/dist/components/checkbox.js.map +1 -0
  355. package/dist/components/code-block.d.ts +16 -0
  356. package/dist/components/code-block.js +5 -0
  357. package/dist/components/code-block.js.map +1 -0
  358. package/dist/components/collapsible.d.ts +8 -0
  359. package/dist/components/collapsible.js +4 -0
  360. package/dist/components/collapsible.js.map +1 -0
  361. package/dist/components/combobox.d.ts +27 -0
  362. package/dist/components/combobox.js +9 -0
  363. package/dist/components/combobox.js.map +1 -0
  364. package/dist/components/command.d.ts +23 -0
  365. package/dist/components/command.js +10 -0
  366. package/dist/components/command.js.map +1 -0
  367. package/dist/components/comment-thread.d.ts +18 -0
  368. package/dist/components/comment-thread.js +5 -0
  369. package/dist/components/comment-thread.js.map +1 -0
  370. package/dist/components/compliance-score.d.ts +20 -0
  371. package/dist/components/compliance-score.js +5 -0
  372. package/dist/components/compliance-score.js.map +1 -0
  373. package/dist/components/context-menu.d.ts +32 -0
  374. package/dist/components/context-menu.js +5 -0
  375. package/dist/components/context-menu.js.map +1 -0
  376. package/dist/components/copy-button.d.ts +16 -0
  377. package/dist/components/copy-button.js +6 -0
  378. package/dist/components/copy-button.js.map +1 -0
  379. package/dist/components/data-table.d.ts +84 -0
  380. package/dist/components/data-table.js +18 -0
  381. package/dist/components/data-table.js.map +1 -0
  382. package/dist/components/date-picker.d.ts +58 -0
  383. package/dist/components/date-picker.js +9 -0
  384. package/dist/components/date-picker.js.map +1 -0
  385. package/dist/components/deadline-countdown.d.ts +26 -0
  386. package/dist/components/deadline-countdown.js +5 -0
  387. package/dist/components/deadline-countdown.js.map +1 -0
  388. package/dist/components/description-list.d.ts +9 -0
  389. package/dist/components/description-list.js +5 -0
  390. package/dist/components/description-list.js.map +1 -0
  391. package/dist/components/dialog.d.ts +20 -0
  392. package/dist/components/dialog.js +6 -0
  393. package/dist/components/dialog.js.map +1 -0
  394. package/dist/components/direction.d.ts +2 -0
  395. package/dist/components/direction.js +4 -0
  396. package/dist/components/direction.js.map +1 -0
  397. package/dist/components/drawer.d.ts +16 -0
  398. package/dist/components/drawer.js +5 -0
  399. package/dist/components/drawer.js.map +1 -0
  400. package/dist/components/dropdown-menu.d.ts +32 -0
  401. package/dist/components/dropdown-menu.js +5 -0
  402. package/dist/components/dropdown-menu.js.map +1 -0
  403. package/dist/components/empty.d.ts +15 -0
  404. package/dist/components/empty.js +5 -0
  405. package/dist/components/empty.js.map +1 -0
  406. package/dist/components/entity-header.d.ts +26 -0
  407. package/dist/components/entity-header.js +5 -0
  408. package/dist/components/entity-header.js.map +1 -0
  409. package/dist/components/fade-in.d.ts +11 -0
  410. package/dist/components/fade-in.js +5 -0
  411. package/dist/components/fade-in.js.map +1 -0
  412. package/dist/components/field.d.ts +30 -0
  413. package/dist/components/field.js +7 -0
  414. package/dist/components/field.js.map +1 -0
  415. package/dist/components/file-upload.d.ts +18 -0
  416. package/dist/components/file-upload.js +5 -0
  417. package/dist/components/file-upload.js.map +1 -0
  418. package/dist/components/filter-bar.d.ts +11 -0
  419. package/dist/components/filter-bar.js +5 -0
  420. package/dist/components/filter-bar.js.map +1 -0
  421. package/dist/components/form.d.ts +1 -0
  422. package/dist/components/form.js +4 -0
  423. package/dist/components/form.js.map +1 -0
  424. package/dist/components/grid.d.ts +58 -0
  425. package/dist/components/grid.js +5 -0
  426. package/dist/components/grid.js.map +1 -0
  427. package/dist/components/hover-card.d.ts +8 -0
  428. package/dist/components/hover-card.js +5 -0
  429. package/dist/components/hover-card.js.map +1 -0
  430. package/dist/components/inline-edit.d.ts +16 -0
  431. package/dist/components/inline-edit.js +5 -0
  432. package/dist/components/inline-edit.js.map +1 -0
  433. package/dist/components/input-group.d.ts +23 -0
  434. package/dist/components/input-group.js +8 -0
  435. package/dist/components/input-group.js.map +1 -0
  436. package/dist/components/input-otp.d.ts +14 -0
  437. package/dist/components/input-otp.js +5 -0
  438. package/dist/components/input-otp.js.map +1 -0
  439. package/dist/components/input.d.ts +6 -0
  440. package/dist/components/input.js +5 -0
  441. package/dist/components/input.js.map +1 -0
  442. package/dist/components/item.d.ts +27 -0
  443. package/dist/components/item.js +6 -0
  444. package/dist/components/item.js.map +1 -0
  445. package/dist/components/kbd.d.ts +6 -0
  446. package/dist/components/kbd.js +5 -0
  447. package/dist/components/kbd.js.map +1 -0
  448. package/dist/components/label.d.ts +6 -0
  449. package/dist/components/label.js +5 -0
  450. package/dist/components/label.js.map +1 -0
  451. package/dist/components/loading-overlay.d.ts +12 -0
  452. package/dist/components/loading-overlay.js +6 -0
  453. package/dist/components/loading-overlay.js.map +1 -0
  454. package/dist/components/logo-vasp.d.ts +11 -0
  455. package/dist/components/logo-vasp.js +5 -0
  456. package/dist/components/logo-vasp.js.map +1 -0
  457. package/dist/components/marquee.d.ts +17 -0
  458. package/dist/components/marquee.js +5 -0
  459. package/dist/components/marquee.js.map +1 -0
  460. package/dist/components/menubar.d.ts +32 -0
  461. package/dist/components/menubar.js +6 -0
  462. package/dist/components/menubar.js.map +1 -0
  463. package/dist/components/native-select.d.ts +11 -0
  464. package/dist/components/native-select.js +5 -0
  465. package/dist/components/native-select.js.map +1 -0
  466. package/dist/components/navigation-menu.d.ts +15 -0
  467. package/dist/components/navigation-menu.js +5 -0
  468. package/dist/components/navigation-menu.js.map +1 -0
  469. package/dist/components/number-input.d.ts +14 -0
  470. package/dist/components/number-input.js +7 -0
  471. package/dist/components/number-input.js.map +1 -0
  472. package/dist/components/pagination.d.ts +23 -0
  473. package/dist/components/pagination.js +6 -0
  474. package/dist/components/pagination.js.map +1 -0
  475. package/dist/components/policy-banner.d.ts +21 -0
  476. package/dist/components/policy-banner.js +5 -0
  477. package/dist/components/policy-banner.js.map +1 -0
  478. package/dist/components/popover.d.ts +12 -0
  479. package/dist/components/popover.js +5 -0
  480. package/dist/components/popover.js.map +1 -0
  481. package/dist/components/progress.d.ts +17 -0
  482. package/dist/components/progress.js +5 -0
  483. package/dist/components/progress.js.map +1 -0
  484. package/dist/components/radio-group.d.ts +8 -0
  485. package/dist/components/radio-group.js +5 -0
  486. package/dist/components/radio-group.js.map +1 -0
  487. package/dist/components/resizable.d.ts +10 -0
  488. package/dist/components/resizable.js +5 -0
  489. package/dist/components/resizable.js.map +1 -0
  490. package/dist/components/risk-gauge.d.ts +20 -0
  491. package/dist/components/risk-gauge.js +5 -0
  492. package/dist/components/risk-gauge.js.map +1 -0
  493. package/dist/components/scroll-area.d.ts +7 -0
  494. package/dist/components/scroll-area.js +5 -0
  495. package/dist/components/scroll-area.js.map +1 -0
  496. package/dist/components/search-input.d.ts +17 -0
  497. package/dist/components/search-input.js +7 -0
  498. package/dist/components/search-input.js.map +1 -0
  499. package/dist/components/segmented-control.d.ts +15 -0
  500. package/dist/components/segmented-control.js +5 -0
  501. package/dist/components/segmented-control.js.map +1 -0
  502. package/dist/components/select.d.ts +18 -0
  503. package/dist/components/select.js +5 -0
  504. package/dist/components/select.js.map +1 -0
  505. package/dist/components/separator.d.ts +6 -0
  506. package/dist/components/separator.js +5 -0
  507. package/dist/components/separator.js.map +1 -0
  508. package/dist/components/shadow-root-host.d.ts +16 -0
  509. package/dist/components/shadow-root-host.js +51 -0
  510. package/dist/components/shadow-root-host.js.map +1 -0
  511. package/dist/components/sheet.d.ts +17 -0
  512. package/dist/components/sheet.js +6 -0
  513. package/dist/components/sheet.js.map +1 -0
  514. package/dist/components/sidebar.d.ts +70 -0
  515. package/dist/components/sidebar.js +12 -0
  516. package/dist/components/sidebar.js.map +1 -0
  517. package/dist/components/skeleton.d.ts +5 -0
  518. package/dist/components/skeleton.js +5 -0
  519. package/dist/components/skeleton.js.map +1 -0
  520. package/dist/components/slider.d.ts +6 -0
  521. package/dist/components/slider.js +5 -0
  522. package/dist/components/slider.js.map +1 -0
  523. package/dist/components/sonner.d.ts +6 -0
  524. package/dist/components/sonner.js +4 -0
  525. package/dist/components/sonner.js.map +1 -0
  526. package/dist/components/spinner.d.ts +9 -0
  527. package/dist/components/spinner.js +5 -0
  528. package/dist/components/spinner.js.map +1 -0
  529. package/dist/components/split-pane.d.ts +21 -0
  530. package/dist/components/split-pane.js +6 -0
  531. package/dist/components/split-pane.js.map +1 -0
  532. package/dist/components/stat.d.ts +15 -0
  533. package/dist/components/stat.js +5 -0
  534. package/dist/components/stat.js.map +1 -0
  535. package/dist/components/status-indicator.d.ts +16 -0
  536. package/dist/components/status-indicator.js +5 -0
  537. package/dist/components/status-indicator.js.map +1 -0
  538. package/dist/components/step-progress.d.ts +26 -0
  539. package/dist/components/step-progress.js +5 -0
  540. package/dist/components/step-progress.js.map +1 -0
  541. package/dist/components/streaming-cards.d.ts +16 -0
  542. package/dist/components/streaming-cards.js +66 -0
  543. package/dist/components/streaming-cards.js.map +1 -0
  544. package/dist/components/striped-bar.d.ts +20 -0
  545. package/dist/components/striped-bar.js +6 -0
  546. package/dist/components/striped-bar.js.map +1 -0
  547. package/dist/components/subtle-shader.d.ts +10 -0
  548. package/dist/components/subtle-shader.js +5 -0
  549. package/dist/components/subtle-shader.js.map +1 -0
  550. package/dist/components/switch.d.ts +8 -0
  551. package/dist/components/switch.js +5 -0
  552. package/dist/components/switch.js.map +1 -0
  553. package/dist/components/table.d.ts +13 -0
  554. package/dist/components/table.js +5 -0
  555. package/dist/components/table.js.map +1 -0
  556. package/dist/components/tabs.d.ts +14 -0
  557. package/dist/components/tabs.js +5 -0
  558. package/dist/components/tabs.js.map +1 -0
  559. package/dist/components/tag.d.ts +15 -0
  560. package/dist/components/tag.js +5 -0
  561. package/dist/components/tag.js.map +1 -0
  562. package/dist/components/textarea.d.ts +6 -0
  563. package/dist/components/textarea.js +5 -0
  564. package/dist/components/textarea.js.map +1 -0
  565. package/dist/components/theme-script.d.ts +26 -0
  566. package/dist/components/theme-script.js +4 -0
  567. package/dist/components/theme-script.js.map +1 -0
  568. package/dist/components/timeline.d.ts +13 -0
  569. package/dist/components/timeline.js +5 -0
  570. package/dist/components/timeline.js.map +1 -0
  571. package/dist/components/toggle-group.d.ts +14 -0
  572. package/dist/components/toggle-group.js +6 -0
  573. package/dist/components/toggle-group.js.map +1 -0
  574. package/dist/components/toggle.d.ts +12 -0
  575. package/dist/components/toggle.js +5 -0
  576. package/dist/components/toggle.js.map +1 -0
  577. package/dist/components/tooltip.d.ts +9 -0
  578. package/dist/components/tooltip.js +5 -0
  579. package/dist/components/tooltip.js.map +1 -0
  580. package/dist/components/typewriter.d.ts +25 -0
  581. package/dist/components/typewriter.js +5 -0
  582. package/dist/components/typewriter.js.map +1 -0
  583. package/dist/components/typography.d.ts +26 -0
  584. package/dist/components/typography.js +5 -0
  585. package/dist/components/typography.js.map +1 -0
  586. package/dist/components/visually-hidden.d.ts +6 -0
  587. package/dist/components/visually-hidden.js +5 -0
  588. package/dist/components/visually-hidden.js.map +1 -0
  589. package/dist/components/waffle-chart.d.ts +46 -0
  590. package/dist/components/waffle-chart.js +5 -0
  591. package/dist/components/waffle-chart.js.map +1 -0
  592. package/dist/hooks/use-animation-timer.d.ts +11 -0
  593. package/dist/hooks/use-animation-timer.js +4 -0
  594. package/dist/hooks/use-animation-timer.js.map +1 -0
  595. package/dist/hooks/use-carousel.d.ts +22 -0
  596. package/dist/hooks/use-carousel.js +4 -0
  597. package/dist/hooks/use-carousel.js.map +1 -0
  598. package/dist/hooks/use-clipboard.d.ts +10 -0
  599. package/dist/hooks/use-clipboard.js +4 -0
  600. package/dist/hooks/use-clipboard.js.map +1 -0
  601. package/dist/hooks/use-cycle-index.d.ts +13 -0
  602. package/dist/hooks/use-cycle-index.js +5 -0
  603. package/dist/hooks/use-cycle-index.js.map +1 -0
  604. package/dist/hooks/use-debounce.d.ts +3 -0
  605. package/dist/hooks/use-debounce.js +4 -0
  606. package/dist/hooks/use-debounce.js.map +1 -0
  607. package/dist/hooks/use-disclosure.d.ts +9 -0
  608. package/dist/hooks/use-disclosure.js +4 -0
  609. package/dist/hooks/use-disclosure.js.map +1 -0
  610. package/dist/hooks/use-intersection-observer.d.ts +15 -0
  611. package/dist/hooks/use-intersection-observer.js +4 -0
  612. package/dist/hooks/use-intersection-observer.js.map +1 -0
  613. package/dist/hooks/use-local-storage.d.ts +3 -0
  614. package/dist/hooks/use-local-storage.js +4 -0
  615. package/dist/hooks/use-local-storage.js.map +1 -0
  616. package/dist/hooks/use-media-query.d.ts +3 -0
  617. package/dist/hooks/use-media-query.js +4 -0
  618. package/dist/hooks/use-media-query.js.map +1 -0
  619. package/dist/hooks/use-mobile.d.ts +3 -0
  620. package/dist/hooks/use-mobile.js +4 -0
  621. package/dist/hooks/use-mobile.js.map +1 -0
  622. package/dist/index.d.ts +150 -1499
  623. package/dist/index.js +125 -9475
  624. package/dist/index.js.map +1 -1
  625. package/dist/lib/animation.d.ts +63 -0
  626. package/dist/lib/animation.js +4 -0
  627. package/dist/lib/animation.js.map +1 -0
  628. package/dist/lib/utils.d.ts +6 -0
  629. package/dist/lib/utils.js +4 -0
  630. package/dist/lib/utils.js.map +1 -0
  631. package/dist/shells/app-shell.d.ts +60 -0
  632. package/dist/shells/app-shell.js +18 -0
  633. package/dist/shells/app-shell.js.map +1 -0
  634. package/dist/workflow.js +2 -1
  635. package/dist/workflow.js.map +1 -1
  636. package/package.json +685 -1
  637. package/dist/chunk-4NEQV6H2.js.map +0 -1
  638. package/dist/chunk-7HRPF2N2.js.map +0 -1
  639. package/dist/chunk-BNFSXNP2.js.map +0 -1
  640. package/dist/chunk-CG5JA7FM.js.map +0 -1
  641. package/dist/chunk-GJAWCIGE.js.map +0 -1
  642. package/dist/chunk-GZNLQE3I.js.map +0 -1
  643. package/dist/chunk-LW6GAWZM.js.map +0 -1
  644. package/dist/chunk-VWSX75RB.js.map +0 -1
  645. package/dist/chunk-XQYFQ6PU.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ /** Shared animation constants — keeps motion usage consistent across projects. */
2
+ /** Standard ease curve used for all fade/slide transitions. */
3
+ declare const EASE_OUT: [number, number, number, number];
4
+ /** Default whileInView viewport config. */
5
+ declare const VIEWPORT_ONCE: {
6
+ readonly once: true;
7
+ readonly margin: "-80px";
8
+ };
9
+ /** Standard fade-up transition (matches CSS @keyframes fade-up). */
10
+ declare const FADE_UP: {
11
+ readonly initial: {
12
+ readonly opacity: 0;
13
+ readonly y: 24;
14
+ };
15
+ readonly whileInView: {
16
+ readonly opacity: 1;
17
+ readonly y: 0;
18
+ };
19
+ readonly viewport: {
20
+ readonly once: true;
21
+ readonly margin: "-80px";
22
+ };
23
+ readonly transition: {
24
+ readonly duration: 0.5;
25
+ readonly ease: [number, number, number, number];
26
+ };
27
+ };
28
+ /** Default transition timing. */
29
+ declare const TRANSITION_DEFAULT: {
30
+ readonly duration: 0.5;
31
+ readonly ease: [number, number, number, number];
32
+ };
33
+ /** Faster transition for micro-interactions. */
34
+ declare const TRANSITION_FAST: {
35
+ readonly duration: 0.35;
36
+ readonly ease: [number, number, number, number];
37
+ };
38
+ /** Stagger children container variant (use with motion variants API). */
39
+ declare const STAGGER_CHILDREN: {
40
+ readonly hidden: {};
41
+ readonly visible: {
42
+ readonly transition: {
43
+ readonly staggerChildren: 0.1;
44
+ };
45
+ };
46
+ };
47
+ /** Individual item variant for use inside stagger containers. */
48
+ declare const SLIDE_UP_VARIANT: {
49
+ readonly hidden: {
50
+ readonly opacity: 0;
51
+ readonly y: 24;
52
+ };
53
+ readonly visible: {
54
+ readonly opacity: 1;
55
+ readonly y: 0;
56
+ readonly transition: {
57
+ readonly duration: 0.5;
58
+ readonly ease: [number, number, number, number];
59
+ };
60
+ };
61
+ };
62
+
63
+ export { EASE_OUT, FADE_UP, SLIDE_UP_VARIANT, STAGGER_CHILDREN, TRANSITION_DEFAULT, TRANSITION_FAST, VIEWPORT_ONCE };
@@ -0,0 +1,4 @@
1
+ export { EASE_OUT, FADE_UP, SLIDE_UP_VARIANT, STAGGER_CHILDREN, TRANSITION_DEFAULT, TRANSITION_FAST, VIEWPORT_ONCE } from '../chunk-D3KGHRRC.js';
2
+ import '../chunk-2NMEKWO5.js';
3
+ //# sourceMappingURL=animation.js.map
4
+ //# sourceMappingURL=animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"animation.js"}
@@ -0,0 +1,6 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+ declare function timeAgo(date: string): string;
5
+
6
+ export { cn, timeAgo };
@@ -0,0 +1,4 @@
1
+ export { cn, timeAgo } from '../chunk-MHRCB42B.js';
2
+ import '../chunk-2NMEKWO5.js';
3
+ //# sourceMappingURL=utils.js.map
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.js"}
@@ -0,0 +1,60 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type NavItem = {
5
+ label: string;
6
+ icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>;
7
+ href: string;
8
+ isActive?: boolean;
9
+ children?: NavItem[];
10
+ /** Optional badge rendered after the label */
11
+ badge?: React.ReactNode;
12
+ };
13
+ type NavGroup = {
14
+ title: string;
15
+ items: NavItem[];
16
+ defaultOpen?: boolean;
17
+ };
18
+ type AppShellUser = {
19
+ name: string;
20
+ email: string;
21
+ avatar?: string;
22
+ };
23
+ type BreadcrumbSegment = {
24
+ label: string;
25
+ href?: string;
26
+ };
27
+ type AppShellLogo = {
28
+ icon?: React.ReactNode;
29
+ title: string;
30
+ subtitle?: string;
31
+ href?: string;
32
+ };
33
+ interface AppShellProps {
34
+ /** Logo/branding for the sidebar header */
35
+ logo: AppShellLogo;
36
+ /** Main navigation groups rendered in the sidebar body */
37
+ nav: NavGroup[];
38
+ /** Optional footer navigation group (e.g. Help, Settings) */
39
+ footerNav?: NavGroup;
40
+ /** User data — renders a user menu in the sidebar footer */
41
+ user?: AppShellUser;
42
+ /** Breadcrumb segments for the header */
43
+ breadcrumbs?: BreadcrumbSegment[];
44
+ /** Extra content rendered on the right side of the header */
45
+ headerActions?: React.ReactNode;
46
+ /** Custom user menu items rendered before the logout item */
47
+ userMenuItems?: React.ReactNode;
48
+ /** Called when the user clicks "Log out" */
49
+ onLogout?: () => void;
50
+ /** Component to use for links (e.g. Next.js Link). Defaults to `"a"`. */
51
+ linkComponent?: React.ElementType;
52
+ /** Extra content rendered below the logo in the sidebar header */
53
+ sidebarHeaderExtra?: React.ReactNode;
54
+ /** Page content */
55
+ children: React.ReactNode;
56
+ className?: string;
57
+ }
58
+ declare function AppShell({ logo, nav, footerNav, user, breadcrumbs, headerActions, userMenuItems, onLogout, sidebarHeaderExtra, linkComponent: Link, children, className, }: AppShellProps): react_jsx_runtime.JSX.Element;
59
+
60
+ export { AppShell, type AppShellLogo, type AppShellProps, type AppShellUser, type BreadcrumbSegment, type NavGroup, type NavItem };
@@ -0,0 +1,18 @@
1
+ export { AppShell } from '../chunk-7U72AXXX.js';
2
+ import '../chunk-HK73AOFX.js';
3
+ import '../chunk-WJRJBMFN.js';
4
+ import '../chunk-EALF3HQS.js';
5
+ import '../chunk-DO5JNX44.js';
6
+ import '../chunk-6NGFSBVR.js';
7
+ import '../chunk-KB665WXG.js';
8
+ import '../chunk-GV7JJHY5.js';
9
+ import '../chunk-XWCSV3E4.js';
10
+ import '../chunk-GR6J7HQK.js';
11
+ import '../chunk-N4YLACF7.js';
12
+ import '../chunk-BU3PTFMI.js';
13
+ import '../chunk-EDESQ6HE.js';
14
+ import '../chunk-EN6GS7O4.js';
15
+ import '../chunk-MHRCB42B.js';
16
+ import '../chunk-2NMEKWO5.js';
17
+ //# sourceMappingURL=app-shell.js.map
18
+ //# sourceMappingURL=app-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"app-shell.js"}
package/dist/workflow.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { cn, __objRest, __spreadProps, __spreadValues } from './chunk-GZNLQE3I.js';
2
+ import { cn } from './chunk-MHRCB42B.js';
3
+ import { __objRest, __spreadProps, __spreadValues } from './chunk-2NMEKWO5.js';
3
4
  import { ReactFlow, Background, Controls, getBezierPath, BaseEdge, getSimpleBezierPath, Handle, Position, MiniMap, Panel, NodeToolbar } from '@xyflow/react';
4
5
  import '@xyflow/react/dist/style.css';
5
6
  import { createContext, Component, useState, useContext } from 'react';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/workflow/workflow-context.tsx","../src/workflow/canvas.tsx","../src/workflow/workflow-connection.tsx","../src/workflow/workflow-controls.tsx","../src/workflow/workflow-edge.tsx","../src/workflow/workflow-gate.tsx","../src/workflow/workflow-group.tsx","../src/workflow/workflow-handle.tsx","../src/workflow/workflow-label.tsx","../src/workflow/workflow-minimap.tsx","../src/workflow/workflow-node.tsx","../src/workflow/workflow-panel.tsx","../src/workflow/workflow-toolbar.tsx"],"names":["jsxs","jsx","ControlsPrimitive","cva","HandleBoundary","Component","Position","Handle","Fragment","PanelPrimitive"],"mappings":";;;;;;;;AAMA,IAAM,eAAA,GAAkB,cAA8B,UAAU,CAAA;AAEhE,SAAS,iBAAA,GAAoB;AAC3B,EAAA,OAAO,WAAW,eAAe,CAAA;AACnC;ACMA,IAAM,aAAA,GAAgB,CAAC,WAAA,EAAa,QAAQ,CAAA;AAE5C,SAAS,OAAO,EAAA,EAAqE;AAArE,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,QAAA,EAAU,SAAA,EAAW,MAAA,GAAS,UAAA,EAlBhD,GAkBgB,IAA+C,KAAA,GAAA,SAAA,CAA/C,EAAA,EAA+C,CAA7C,UAAA,EAAU,WAAA,EAAW,QAAA,CAAA,CAAA;AACrC,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,MAAA,EACtB,QAAA,kBAAA,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,aAAA;AAAA,MACA,OAAA,EAAO,IAAA;AAAA,MACP,SAAA,EAAW,KAAA;AAAA,MACX,WAAA,EAAW,IAAA;AAAA,MACX,eAAA,EAAiB,IAAA;AAAA,MACjB,iBAAA,EAAmB,KAAA;AAAA,MACnB,SAAA,EAAW,EAAA,CAAG,EAAA,EAAI,SAAS;AAAA,KAAA,EACvB,KAAA,CAAA,EATL;AAAA,MAWC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,sBAAA,EAAuB,CAAA;AAAA,QAC1C;AAAA;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AC5BA,IAAM,0BAAA,GAA6B,IAAI,EAAA,EAAI;AAAA,EACzC,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,EAAA;AAAA,MACT,MAAA,EAAQ,EAAA;AAAA,MACR,MAAA,EAAQ,EAAA;AAAA,MACR,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA;AAC9B,CAAC;AAOD,IAAM,UAAA,GAAoE;AAAA,EACxE,OAAA,EAAS,MAAA;AAAA,EACT,MAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAQ,OAAA;AAAA,EACR,QAAA,EAAU;AACZ,CAAA;AAMA,SAAS,qBAAqB,OAAA,EAA6D;AACzF,EAAA,MAAM,iBAA0C,CAAC,EAAE,OAAO,KAAA,EAAO,GAAA,EAAK,KAAI,KAAM;AAC9E,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,GAAA,GAAM,KAAK,CAAA;AAC/B,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,GAAA,GAAM,KAAK,CAAA;AAC/B,IAAA,MAAM,aAAa,EAAA,GAAK,EAAA;AAExB,IAAA,MAAM,IAAA,GAAO,aACT,CAAA,CAAA,EAAI,KAAK,IAAI,KAAK,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,EAAI,KAAA,GAAA,CAAS,MAAM,KAAA,IAAS,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,SAAS,GAAA,GAAM,KAAA,IAAS,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,GAChH,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,KAAK,MAAM,KAAA,GAAA,CAAS,GAAA,GAAM,SAAS,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,KAAA,GAAA,CAAS,MAAM,KAAA,IAAS,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA;AAEpH,IAAA,uBACEA,KAAC,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAC,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,CAAA,EAAG,IAAA;AAAA,UACH,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,mBAAA;AAAA,UACP,WAAA,EAAa,CAAA;AAAA,UACb,eAAA,EAAiB,WAAW,OAAO,CAAA;AAAA,UACnC,aAAA,EAAe,OAAA,KAAY,QAAA,GAAW,OAAA,GAAU;AAAA;AAAA,OAClD;AAAA,MACC,YAAY,UAAA,oBACXA,GAAAA,CAAC,QAAA,EAAA,EAAO,MAAK,sBAAA,EAAuB,CAAA,EAAG,CAAA,EACrC,QAAA,kBAAAA,IAAC,eAAA,EAAA,EAAc,GAAA,EAAI,MAAK,IAAA,EAAY,WAAA,EAAY,cAAa,CAAA,EAC/D,CAAA;AAAA,sBAEFA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,GAAA;AAAA,UACJ,EAAA,EAAI,GAAA;AAAA,UACJ,IAAA,EAAK,mBAAA;AAAA,UACL,CAAA,EAAG,CAAA;AAAA,UACH,MAAA,EAAO,mBAAA;AAAA,UACP,WAAA,EAAa;AAAA;AAAA;AACf,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AACA,EAAA,OAAO,cAAA;AACT;AAMA,IAAM,kBAAA,GAAqB,qBAAqB,SAAS;AACzD,IAAM,wBAAA,GAA2B,qBAAqB,QAAQ;AAC9D,IAAM,wBAAA,GAA2B,qBAAqB,QAAQ;AAC9D,IAAM,0BAAA,GAA6B,qBAAqB,UAAU;AC3ElE,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAR5B,GAQ0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,uBACEA,GAAAA;AAAA,IAACC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mEAAA;AAAA,QACA,yGAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACKA,IAAM,aAAA,GAAkE;AAAA,EACtE,OAAO,EAAC;AAAA,EACR,MAAA,EAAQ,EAAE,eAAA,EAAiB,MAAA,EAAQ,eAAe,OAAA,EAAQ;AAAA,EAC1D,MAAA,EAAQ,EAAE,eAAA,EAAiB,MAAA,EAAO;AAAA,EAClC,UAAU;AACZ,CAAA;AAMA,SAAS,SAAA,CAAU;AAAA,EACjB,EAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAsB;AA/CtB,EAAA,IAAA,EAAA;AAgDE,EAAA,MAAM,OAAA,GAAA,CAAU,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,OAAA,KAAN,IAAA,GAAA,EAAA,GAAiB,OAAA;AACjC,EAAA,MAAM,QAAQ,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA;AACpB,EAAA,MAAM,cAAc,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,+BAAA;AAC7B,EAAA,MAAM,QAAA,GAAW,SAAS,EAAE,CAAA,CAAA;AAC5B,EAAA,MAAM,iBAAA,GAAA,CAAoB,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,IAAQ,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAA,CAAA,GAAM,SAAA;AAE9D,EAAA,MAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,MAAM,IAAI,aAAA,CAAc;AAAA,IAC/C,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBACEF,KAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,qBACLC,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,QAAA;AAAA,QACJ,WAAA,EAAY,IAAA;AAAA,QACZ,YAAA,EAAa,IAAA;AAAA,QACb,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,EAAK,GAAA;AAAA,QACL,MAAA,EAAO,MAAA;AAAA,QACP,WAAA,EAAY,gBAAA;AAAA,QAEZ,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAqB,MAAM,WAAA,EAAa;AAAA;AAAA,KAClD,EACF,CAAA;AAAA,oBAEFA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EAAW,iBAAA;AAAA,QACX,SAAA,EAAU,6BAAA;AAAA,QACV,KAAA,EAAO,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA;AAAA,UACL,WAAA,EAAa;AAAA,SAAA,EACV,aAAA,CAAc,OAAO,CAAA,CAAA,EACpB,KAAA,GAAQ,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,EAAC,CAAA,EAC9B,KAAA;AAAA;AAAA,KAEP;AAAA,IAAA,CACC,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,0BACLA,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAG,MAAA,GAAS,EAAA;AAAA,QACZ,GAAG,MAAA,GAAS,EAAA;AAAA,QACZ,KAAA,EAAO,EAAA;AAAA,QACP,MAAA,EAAQ,EAAA;AAAA,QACR,SAAA,EAAU,qBAAA;AAAA,QAEV,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oIAAA,EACb,eAAK,KAAA,EACR;AAAA;AAAA;AACF,GAAA,EAEJ,CAAA;AAEJ;AAMA,SAAS,WAAW,KAAA,EAA0B;AAC5C,EAAA,uBAAOA,GAAAA,CAAC,SAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAc,KAAA,CAAA,EAAd,EAAqB,IAAA,EAAM,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,KAAA,CAAM,IAAA,CAAA,EAAX,EAAiB,OAAA,EAAS,QAAA,EAAS,CAAA,EAAA,CAAG,CAAA;AAC3E;AAMA,SAAS,WAAW,KAAA,EAA0B;AAC5C,EAAA,uBAAOA,GAAAA,CAAC,SAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAc,KAAA,CAAA,EAAd,EAAqB,IAAA,EAAM,aAAA,CAAA,cAAA,CAAA,EAAA,EAAK,KAAA,CAAM,IAAA,CAAA,EAAX,EAAiB,OAAA,EAAS,QAAA,EAAS,CAAA,EAAA,CAAG,CAAA;AAC3E;AAMA,SAAS,aAAA,CAAc;AAAA,EACrB,EAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAc;AACZ,EAAA,MAAM,CAAC,QAAQ,CAAA,GAAI,mBAAA,CAAoB;AAAA,IACrC,cAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,cAAA;AAAA,MACV,EAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,EAAE,WAAA,EAAa,CAAA,EAAG,iBAAiB,MAAA;AAAO;AAAA,GACnD;AAEJ;AAMA,SAAS,YAAA,CAAa;AAAA,EACpB,EAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,QAAQ,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA;AACpB,EAAA,MAAM,cAAc,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,sBAAA;AAC7B,EAAA,MAAM,QAAA,GAAW,SAAS,EAAE,CAAA,CAAA;AAC5B,EAAA,MAAM,iBAAA,GAAA,CAAoB,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,IAAQ,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAA,CAAA,GAAM,SAAA;AAE9D,EAAA,MAAM,CAAC,QAAQ,CAAA,GAAI,aAAA,CAAc;AAAA,IAC/B,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBACED,KAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,qBACLC,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,QAAA;AAAA,QACJ,WAAA,EAAY,IAAA;AAAA,QACZ,YAAA,EAAa,IAAA;AAAA,QACb,IAAA,EAAK,IAAA;AAAA,QACL,IAAA,EAAK,GAAA;AAAA,QACL,MAAA,EAAO,MAAA;AAAA,QACP,WAAA,EAAY,gBAAA;AAAA,QAEZ,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAqB,MAAM,WAAA,EAAa;AAAA;AAAA,KAClD,EACF,CAAA;AAAA,oBAEFA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EAAU,oBAAA;AAAA,QACV,KAAA,EAAO,cAAA,CAAA,cAAA,CAAA,EAAE,WAAA,EAAa,CAAA,EAAA,EAAO,KAAA,GAAQ,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,EAAC,CAAA,EAAO,KAAA;AAAA;AAAA,KACnE;AAAA,oBACAA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAM,WAAA,EAAa,GAAE,GAAA,EAC3B,QAAA,kBAAAA,GAAAA,CAAC,eAAA,EAAA,EAAc,KAAI,IAAA,EAAK,IAAA,EAAM,QAAA,EAAU,WAAA,EAAY,cAAa,CAAA,EACnE;AAAA,GAAA,EACF,CAAA;AAEJ;AAMA,IAAM,YAAA,GAAe;AAAA,EACnB,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,MAAA,EAAQ,UAAA;AAAA,EACR,QAAA,EAAU,YAAA;AAAA,EACV,SAAA,EAAW;AACb;AC3NA,IAAM,cAAA,GAAN,cAA6B,SAAA,CAA0D;AAAA,EAAvF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACE,IAAA,IAAA,CAAA,KAAA,GAAQ,EAAE,UAAU,KAAA,EAAM;AAAA,EAAA;AAAA,EAC1B,OAAO,wBAAA,GAA2B;AAChC,IAAA,OAAO,EAAE,UAAU,IAAA,EAAK;AAAA,EAC1B;AAAA,EACA,iBAAA,CAAkB,GAAU,EAAA,EAAe;AAAA,EAAC;AAAA,EAC5C,MAAA,GAAS;AACP,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,OAAO,IAAA;AAChC,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF,CAAA;AAMA,IAAM,oBAAA,GAAuBE,GAAAA;AAAA,EAC3B;AAAA,IACE,sDAAA;AAAA,IACA,0BAAA;AAAA,IACA;AAAA,GACF,CAAE,KAAK,GAAG,CAAA;AAAA,EACV;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,wEAAA;AAAA,QACX,MAAA,EAAQ,0EAAA;AAAA,QACR,KAAA,EAAO,oEAAA;AAAA,QACP,KAAA,EAAO,kEAAA;AAAA,QACP,GAAA,EAAK;AAAA,OACP;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,mCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,KAAA;AAAM;AAExD;AAGA,IAAM,SAAA,GAAoC;AAAA,EACxC,SAAA,EAAW,oCAAA;AAAA,EACX,MAAA,EAAQ,sCAAA;AAAA,EACR,KAAA,EAAO,gCAAA;AAAA,EACP,KAAA,EAAO,sCAAA;AAAA,EACP,GAAA,EAAK;AACP,CAAA;AAGA,IAAM,gBAAA,GAA2C;AAAA,EAC/C,SAAA,EACE,wHAAA;AAAA,EACF,MAAA,EACE,kHAAA;AAAA,EACF,KAAA,EACE,gGAAA;AAAA,EACF,KAAA,EACE,kHAAA;AAAA,EACF,GAAA,EAAK;AACP,CAAA;AA8BA,SAAS,WAAA,CAAY;AAAA,EACnB,QAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAIG;AA3GH,EAAA,IAAA,EAAA;AA4GE,EAAA,uBACEF,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,qDAAA;AAAA,QACA,yDAAA;AAAA,QAAA,CACA,EAAA,GAAA,gBAAA,CAAiB,IAAI,CAAA,KAArB,IAAA,GAAA,EAAA,GAA0B,iBAAiB,SAAS,CAAA;AAAA,QACpD,IAAA,KAAS,SAAS,iBAAA,GAAoB;AAAA,OACxC;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAMA,IAAM,eAAA,GAAkB,EAAA;AAAA,EACtB,8EAAA;AAAA,EACA;AACF,CAAA;AAMA,SAAS,aAAa,EAAA,EASA;AATA,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,IAAA,GAAO,SAAA;AAAA,IACP,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GA9IF,GAuIsB,EAAA,EAQjB,KAAA,GAAA,SAAA,CARiB,EAAA,EAQjB;AAAA,IAPH,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,SAAA,GAAY,IAAA,KAAS,SAAA,IAAa,IAAA,KAAS,YAAY,IAAA,KAAS,OAAA;AACtE,EAAA,MAAM,WAAW,IAAA,IAAA,IAAA,GAAA,IAAA,GAAQ,SAAA;AAEzB,EAAA,IAAI,MAAA,GAAoC,UAAA;AACxC,EAAA,IAAI;AAEF,IAAA,MAAA,GAAS,iBAAA,EAAkB;AAAA,EAC7B,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,EAER;AAEA,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,gBAAA,EAAgB,QAAA;AAAA,MAChB,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS;AAAA,KAAA,EAChE,KAAA,CAAA,EAJL;AAAA,MAOC,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,IAAA,EAAM,QAAA,EAAU,CAAC,CAAA,EAEzD,QAAA,kBAAAD,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,mDAAA;AAAA,cACA,SAAA,IAAa;AAAA,aACf;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,oBAAQC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,kBAAkB,SAAA,CAAU,QAAQ,CAAC,CAAA,EAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,cAC1E,KAAA,IAAS,CAAC,IAAA,oBACTA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA,CAAG,+CAAA,EAAiD,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,kBAEjF,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,SAEJ,EACF,CAAA;AAAA,QAAA,CAGC,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,IAAA,qBACTA,GAAAA,CAAC,WAAA,EAAA,EAAY,MAAK,MAAA,EAAO,IAAA,EAAM,QAAA,EAC5B,QAAA,EAAA,QAAA,CAAS,IAAA,EACZ,CAAA;AAAA,QAAA,CAED,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,KAAA,qBACTA,GAAAA,CAAC,WAAA,EAAA,EAAY,MAAK,OAAA,EAAQ,IAAA,EAAM,QAAA,EAC7B,QAAA,EAAA,QAAA,CAAS,KAAA,EACZ,CAAA;AAAA,QAAA,CAID,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,GAAA,qBACRA,GAAAA,CAAC,kBACC,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,MAAA,KAAW,YAAA,GAAe,QAAA,CAAS,OAAO,QAAA,CAAS,GAAA;AAAA,YAC7D,SAAA,EAAW;AAAA;AAAA,SACb,EACF,CAAA;AAAA,QAAA,CAED,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MAAA,qBACRA,GAAAA,CAAC,kBACC,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,MAAA,KAAW,YAAA,GAAe,QAAA,CAAS,QAAQ,QAAA,CAAS,MAAA;AAAA,YAC9D,SAAA,EAAW;AAAA;AAAA,SACb,EACF,CAAA;AAAA,QAAA,CAED,mCAAS,IAAA,qBACRA,GAAAA,CAAC,cAAA,EAAA,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,UAAU,QAAA,CAAS,IAAA,EAAM,IAAG,MAAA,EAAO,SAAA,EAAW,iBAAiB,CAAA,EACvF,CAAA;AAAA,QAAA,CAED,mCAAS,KAAA,qBACRA,GAAAA,CAAC,cAAA,EAAA,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,UAAU,QAAA,CAAS,KAAA,EAAO,IAAG,OAAA,EAAQ,SAAA,EAAW,iBAAiB,CAAA,EACzF;AAAA;AAAA,KAAA;AAAA,GAEJ;AAEJ;AC5NA,IAAM,qBAAA,GAAwBE,GAAAA;AAAA,EAC5B,CAAC,sDAAA,EAAwD,gCAAgC,CAAA,CAAE,IAAA;AAAA,IACzF;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8BAAA;AAAA,QACT,OAAA,EAAS,gCAAA;AAAA,QACT,OAAA,EAAS,+DAAA;AAAA,QACT,OAAA,EAAS;AAAA,OACX;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,6BAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,UAAU,KAAA;AAAM;AAE3D;AAUA,SAAS,cAAc,EAAA,EAQA;AARA,EAAA,IAAA,EAAA,GAAA,EAAA,EACrB;AAAA,IAAA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GAzCF,GAmCuB,EAAA,EAOlB,KAAA,GAAA,SAAA,CAPkB,EAAA,EAOlB;AAAA,IANH,SAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEH,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,GAAG,qBAAA,CAAsB,EAAE,SAAS,QAAA,EAAU,GAAG,SAAS;AAAA,KAAA,EACjE,KAAA,CAAA,EAHL;AAAA,MAKG,QAAA,EAAA;AAAA,QAAA,CAAA,KAAA,IAAS,IAAA,qBACTA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iKAAA,EACZ,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAQC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UACjD;AAAA,SAAA,EACH,CAAA;AAAA,QAED;AAAA;AAAA,KAAA;AAAA,GACH;AAEJ;ACnDA,IAAMG,eAAAA,GAAN,cAA6BC,SAAAA,CAA0D;AAAA,EAAvF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACE,IAAA,IAAA,CAAA,KAAA,GAAQ,EAAE,UAAU,KAAA,EAAM;AAAA,EAAA;AAAA,EAC1B,OAAO,wBAAA,GAA2B;AAChC,IAAA,OAAO,EAAE,UAAU,IAAA,EAAK;AAAA,EAC1B;AAAA,EACA,iBAAA,CAAkB,GAAU,EAAA,EAAe;AAAA,EAAC;AAAA,EAC5C,MAAA,GAAS;AACP,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,OAAO,IAAA;AAChC,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF;AAQA,IAAM,UAAA,GACJ;AAEF,SAAS,eAAe,EAAA,EAA8D;AAA9D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,IAAA,EAAM,UAAU,SAAA,EA7B1C,GA6BwB,IAAgC,KAAA,GAAA,SAAA,CAAhC,EAAA,EAAgC,CAA9B,MAAA,EAAM,UAAA,EAAU,WAAA,CAAA,CAAA;AACxC,EAAA,IAAI,MAAA,GAAoC,UAAA;AACxC,EAAA,IAAI;AAEF,IAAA,MAAA,GAAS,iBAAA,EAAkB;AAAA,EAC7B,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,EAER;AAEA,EAAA,MAAM,gBAAA,GACJ,QAAA,IAAA,IAAA,GAAA,QAAA,GACC,IAAA,KAAS,QAAA,GACN,WAAW,YAAA,GACTC,QAAAA,CAAS,KAAA,GACTA,QAAAA,CAAS,MAAA,GACX,MAAA,KAAW,YAAA,GACTA,QAAAA,CAAS,OACTA,QAAAA,CAAS,GAAA;AAEjB,EAAA,uBACEL,GAAAA,CAACG,eAAAA,EAAA,EACC,QAAA,kBAAAH,GAAAA;AAAA,IAACM,MAAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAA;AAAA,MACA,QAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS;AAAA,KAAA,EAC/B,KAAA;AAAA,GACN,EACF,CAAA;AAEJ;AC7CA,IAAM,cAAA,GAA6E;AAAA,EACjF,OAAA,EAAS,qCAAA;AAAA,EACT,OAAA,EACE,oHAAA;AAAA,EACF,OAAA,EACE,wGAAA;AAAA,EACF,KAAA,EACE,4FAAA;AAAA,EACF,KAAA,EAAO;AACT,CAAA;AAEA,SAAS,cAAc,EAAA,EAAkE;AAAlE,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,OAAA,GAAU,WAAW,SAAA,EAxB9C,GAwBuB,IAAqC,KAAA,GAAA,SAAA,CAArC,EAAA,EAAqC,CAAnC,SAAA,EAAqB,WAAA,CAAA,CAAA;AAC5C,EAAA,uBACEN,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oGAAA;AAAA,QACA,eAAe,OAAO,CAAA;AAAA,QACtB;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AC5BA,SAAS,gBAAgB,EAAA,EAA+C;AAA/C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAR3B,GAQyB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wDAAA,EAA0D,SAAS,CAAA;AAAA,MACjF,SAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAU,sBAAA;AAAA,MACV,eAAA,EAAgB,qBAAA;AAAA,MAChB,gBAAA,EAAkB;AAAA,KAAA,EACd,KAAA;AAAA,GACN;AAEJ;ACVA,IAAMG,eAAAA,GAAN,cAA6BC,SAAAA,CAA0D;AAAA,EAAvF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACE,IAAA,IAAA,CAAA,KAAA,GAAQ,EAAE,UAAU,KAAA,EAAM;AAAA,EAAA;AAAA,EAC1B,OAAO,wBAAA,GAA2B;AAChC,IAAA,OAAO,EAAE,UAAU,IAAA,EAAK;AAAA,EAC1B;AAAA,EACA,iBAAA,CAAkB,GAAU,EAAA,EAAe;AAAA,EAE3C;AAAA,EACA,MAAA,GAAS;AACP,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,OAAO,IAAA;AAChC,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF,CAAA;AAMA,IAAM,oBAAA,GAAuBF,GAAAA;AAAA,EAC3B;AAAA,IACE,gEAAA;AAAA,IACA,6CAAA;AAAA,IACA;AAAA,GACF,CAAE,KAAK,GAAG,CAAA;AAAA,EACV;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,uBAAA;AAAA,QACT,QAAA,EAAU,mCAAA;AAAA,QACV,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,KAAA,EAAO,SAAA;AAAU;AAExC;AAgCA,SAAS,UAAA,CAAW,EAAE,IAAA,EAAK,EAAkC;AAC3D,EAAA,IAAI,MAAA,GAAoC,UAAA;AACxC,EAAA,IAAI;AAEF,IAAA,MAAA,GAAS,iBAAA,EAAkB;AAAA,EAC7B,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,EAER;AAIA,EAAA,MAAM,QAAA,GACJ,MAAA,KAAW,YAAA,GACP,IAAA,KAAS,QAAA,GACPG,QAAAA,CAAS,IAAA,GACTA,QAAAA,CAAS,KAAA,GACX,IAAA,KAAS,QAAA,GACPA,QAAAA,CAAS,MACTA,QAAAA,CAAS,MAAA;AAEjB,EAAA,uBACEL,GAAAA;AAAA,IAACM,MAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,qCAAA;AAAA,QACA,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAN,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC;AAAA;AAAA,GAC3D;AAEJ;AAMA,SAAS,mBAAmB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAnH9B,GAmH4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC5B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,qCAAA,EAAuC,SAAS;AAAA,KAAA,EAC1D,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,kBAAkB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA7H7B,GA6H2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS;AAAA,KAAA,EAC9E,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,wBAAwB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAvInC,GAuIiC,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACjC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,2BAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS;AAAA,KAAA,EACpD,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAjJ9B,GAiJ4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC5B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS;AAAA,KAAA,EACvC,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,oBAAoB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA/J/B,GA+J6B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC7B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS;AAAA,KAAA,EAC5C,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,mBAAmB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA7K9B,GA6K4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC5B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sDAAA;AAAA,QACA,6CAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,sBAAsB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA/LjC,GA+L+B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC/B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wDAAA,EAA0D,SAAS;AAAA,KAAA,EAC7E,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,gBAAgB,EAAA,EAUtB;AAVsB,EAAA,IAAA,EAAA,GAAA,EAAA,EACvB;AAAA,IAAA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GAjNF,GA6MyB,EAAA,EAKpB,KAAA,GAAA,SAAA,CALoB,EAAA,EAKpB;AAAA,IAJH,OAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4EAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQC,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACvDD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sDAAA,EACb,QAAA,EAAA;AAAA,UAAA,IAAA,oBACCC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+DACb,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,UAED;AAAA,SAAA,EACH;AAAA;AAAA,KAAA;AAAA,GACF;AAEJ;AAMA,SAAS,aAAa,EAAA,EAcA;AAdA,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,KAAA;AAAA,IACA,SAAA,EAAW,cAAA;AAAA,IACX,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAA,GAAmB,KAAA;AAAA,IACnB,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GA9PF,GAkPsB,EAAA,EAajB,KAAA,GAAA,SAAA,CAbiB,EAAA,EAajB;AAAA,IAZH,OAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,gBAAgB,CAAA;AAE3D,EAAA,MAAM,SAAA,GAAY,IAAA,IAAQ,KAAA,IAAS,MAAA,IAAU,cAAA;AAC7C,EAAA,MAAM,UAAA,GAAa,CAAC,CAAC,QAAA;AACrB,EAAA,MAAM,YAAY,MAAA,IAAU,WAAA;AAE5B,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,cAAY,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,SAAA;AAAA,MACrB,WAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,KAAA,EAAO,GAAG,SAAS;AAAA,KAAA,EACpD,KAAA,CAAA,EAJL;AAAA,MAOE,QAAA,EAAA;AAAA,QAAA,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MAAA,qBACRC,GAAAA,CAACG,eAAAA,EAAA,EACC,0BAAAH,GAAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,QAAA,EAAS,CAAA,EAC5B,CAAA;AAAA,QAID,SAAA,oBACCD,IAAAA,CAAC,kBAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,cAAA,oBACCC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oHAAA,EACd,0BAAAA,GAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS,CAAA,EACnC,CAAA;AAAA,UAED,IAAA,oBACCD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oEAAA,EACb,QAAA,EAAA;AAAA,YAAA,IAAA;AAAA,YACA,SAAS,IAAA,oBACRC,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uMACb,QAAA,EAAA,KAAA,EACH;AAAA,WAAA,EAEJ,CAAA;AAAA,UAED,KAAA,oBAASA,GAAAA,CAAC,iBAAA,EAAA,EAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACnC,MAAA,oBACCD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oLAAA,EACd,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YACjC;AAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAID,cAAc,CAAC,SAAA,oBACdD,IAAAA,CAAAQ,UAAA,EACG,QAAA,EAAA;AAAA,UAAA,SAAA,oBAAaP,IAAC,qBAAA,EAAA,EAAsB,CAAA;AAAA,0BACrCA,GAAAA,CAAC,mBAAA,EAAA,EAAqB,QAAA,EAAS;AAAA,SAAA,EACjC,CAAA;AAAA,QAID,SAAA,oBACCD,IAAAA,CAAAQ,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAAP,IAAC,qBAAA,EAAA,EAAsB,CAAA;AAAA,0BACvBA,GAAAA,CAAC,kBAAA,EAAA,EACE,QAAA,EAAA,WAAA,mBACCA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAS,MAAM,YAAA,CAAa,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,cACrC,SAAA,EAAU,sHAAA;AAAA,cAET,QAAA,EAAA,SAAA,mBACCD,IAAAA,CAAAQ,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAAP,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,gBAAE;AAAA,eAAA,EAEtC,CAAA,mBAEAD,IAAAA,CAAAQ,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAAP,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,gBAAE;AAAA,eAAA,EAEpC;AAAA;AAAA,cAIJ,MAAA,EAEJ;AAAA,SAAA,EACF,CAAA;AAAA,QAAA,CAID,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MAAA,qBACRA,GAAAA,CAACG,eAAAA,EAAA,EACC,QAAA,kBAAAH,GAAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,QAAA,EAAS,CAAA,EAC5B;AAAA;AAAA,KAAA;AAAA,GAEJ;AAEJ;ACzVA,SAAS,cAAc,EAAA,EAA6C;AAA7C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EANzB,GAMuB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACvB,EAAA,uBACEA,GAAAA;AAAA,IAACQ,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mDAAA,EAAqD,SAAS;AAAA,KAAA,EACxE,KAAA;AAAA,GACN;AAEJ;ACRA,SAAS,gBAAgB,EAAA,EAA+C;AAA/C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAN3B,GAMyB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBACER,GAAAA;AAAA,IAAC,WAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+DAAA,EAAiE,SAAS,CAAA;AAAA,MACxF,UAAUK,QAAAA,CAAS;AAAA,KAAA,EACf,KAAA;AAAA,GACN;AAEJ","file":"workflow.js","sourcesContent":["\"use client\"\n\nimport { createContext, useContext } from \"react\"\n\ntype WorkflowLayout = \"vertical\" | \"horizontal\"\n\nconst WorkflowContext = createContext<WorkflowLayout>(\"vertical\")\n\nfunction useWorkflowLayout() {\n return useContext(WorkflowContext)\n}\n\nexport { WorkflowContext, useWorkflowLayout }\nexport type { WorkflowLayout }\n","\"use client\"\n\nimport type { ReactFlowProps } from \"@xyflow/react\"\nimport { Background, ReactFlow } from \"@xyflow/react\"\nimport type { ReactNode } from \"react\"\nimport \"@xyflow/react/dist/style.css\"\nimport { cn } from \"../lib/utils\"\nimport { WorkflowContext, type WorkflowLayout } from \"./workflow-context\"\n\ntype CanvasProps = ReactFlowProps & {\n children?: ReactNode\n className?: string\n /** Flow direction — \"vertical\" (top→bottom) or \"horizontal\" (left→right). Default: \"vertical\" */\n layout?: WorkflowLayout\n}\n\nconst deleteKeyCode = [\"Backspace\", \"Delete\"]\n\nfunction Canvas({ children, className, layout = \"vertical\", ...props }: CanvasProps) {\n return (\n <WorkflowContext value={layout}>\n <ReactFlow\n data-slot=\"canvas\"\n deleteKeyCode={deleteKeyCode}\n fitView\n panOnDrag={false}\n panOnScroll\n selectionOnDrag={true}\n zoomOnDoubleClick={false}\n className={cn(\"\", className)}\n {...props}\n >\n <Background bgColor=\"var(--color-sidebar)\" />\n {children}\n </ReactFlow>\n </WorkflowContext>\n )\n}\n\nexport { Canvas }\nexport type { CanvasProps }\n","\"use client\"\n\nimport type { ConnectionLineComponent } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n// ---------------------------------------------------------------------------\n// CVA variants for connection line style\n// ---------------------------------------------------------------------------\n\nconst workflowConnectionVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"\",\n dotted: \"\",\n dashed: \"\",\n animated: \"\",\n },\n },\n defaultVariants: { variant: \"default\" },\n})\n\ntype WorkflowConnectionVariant = NonNullable<\n VariantProps<typeof workflowConnectionVariants>[\"variant\"]\n>\n\n// Stroke dash patterns per variant\nconst strokeDash: Record<WorkflowConnectionVariant, string | undefined> = {\n default: undefined,\n dotted: \"2, 6\",\n dashed: \"12, 6\",\n animated: undefined,\n}\n\n// ---------------------------------------------------------------------------\n// Factory — create a ConnectionLineComponent for a given variant\n// ---------------------------------------------------------------------------\n\nfunction createConnectionLine(variant: WorkflowConnectionVariant): ConnectionLineComponent {\n const ConnectionLine: ConnectionLineComponent = ({ fromX, fromY, toX, toY }) => {\n const dx = Math.abs(toX - fromX)\n const dy = Math.abs(toY - fromY)\n const isVertical = dy > dx\n\n const path = isVertical\n ? `M${fromX},${fromY} C ${fromX},${fromY + (toY - fromY) * 0.5} ${toX},${fromY + (toY - fromY) * 0.5} ${toX},${toY}`\n : `M${fromX},${fromY} C ${fromX + (toX - fromX) * 0.5},${fromY} ${fromX + (toX - fromX) * 0.5},${toY} ${toX},${toY}`\n\n return (\n <g>\n <path\n d={path}\n fill=\"none\"\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n strokeDasharray={strokeDash[variant]}\n strokeLinecap={variant === \"dotted\" ? \"round\" : undefined}\n />\n {variant === \"animated\" && (\n <circle fill=\"var(--color-primary)\" r={3}>\n <animateMotion dur=\"1s\" path={path} repeatCount=\"indefinite\" />\n </circle>\n )}\n <circle\n cx={toX}\n cy={toY}\n fill=\"var(--color-card)\"\n r={4}\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n />\n </g>\n )\n }\n return ConnectionLine\n}\n\n// ---------------------------------------------------------------------------\n// Pre-built connection lines\n// ---------------------------------------------------------------------------\n\nconst WorkflowConnection = createConnectionLine(\"default\")\nconst WorkflowConnectionDotted = createConnectionLine(\"dotted\")\nconst WorkflowConnectionDashed = createConnectionLine(\"dashed\")\nconst WorkflowConnectionAnimated = createConnectionLine(\"animated\")\n\nexport {\n WorkflowConnection,\n WorkflowConnectionDotted,\n WorkflowConnectionDashed,\n WorkflowConnectionAnimated,\n workflowConnectionVariants,\n createConnectionLine,\n}\nexport type { WorkflowConnectionVariant }\n","\"use client\"\n\nimport { Controls as ControlsPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowControlsProps = ComponentProps<typeof ControlsPrimitive>\n\nfunction WorkflowControls({ className, ...props }: WorkflowControlsProps) {\n return (\n <ControlsPrimitive\n data-slot=\"workflow-controls\"\n className={cn(\n \"gap-px overflow-hidden rounded-md border bg-card p-1 shadow-none!\",\n \"[&>button]:rounded-md [&>button]:border-none! [&>button]:bg-transparent! [&>button]:hover:bg-secondary!\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowControls }\nexport type { WorkflowControlsProps }\n","\"use client\"\n\nimport type { EdgeProps } from \"@xyflow/react\"\nimport { BaseEdge, getBezierPath, getSimpleBezierPath } from \"@xyflow/react\"\n\n// ---------------------------------------------------------------------------\n// Edge variant type\n// ---------------------------------------------------------------------------\n\ntype WorkflowEdgeVariant = \"solid\" | \"dotted\" | \"animated\" | \"dashed\"\n\ntype WorkflowEdgeProps = EdgeProps & {\n data?: {\n variant?: WorkflowEdgeVariant\n color?: string\n label?: string\n /** Show a directional arrow at the target end */\n arrow?: boolean\n }\n}\n\n// ---------------------------------------------------------------------------\n// Stroke styles per variant\n// ---------------------------------------------------------------------------\n\nconst variantStyles: Record<WorkflowEdgeVariant, React.CSSProperties> = {\n solid: {},\n dotted: { strokeDasharray: \"3, 6\", strokeLinecap: \"round\" },\n dashed: { strokeDasharray: \"8, 4\" },\n animated: {},\n}\n\n// ---------------------------------------------------------------------------\n// SolidEdge — basic bezier with props-based path computation\n// ---------------------------------------------------------------------------\n\nfunction SolidEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n data,\n markerEnd,\n style,\n}: WorkflowEdgeProps) {\n const variant = data?.variant ?? \"solid\"\n const color = data?.color\n const strokeColor = color ?? \"var(--color-muted-foreground)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath, labelX, labelY] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n path={edgePath}\n markerEnd={resolvedMarkerEnd}\n className=\"!stroke-muted-foreground/50\"\n style={{\n strokeWidth: 2,\n ...variantStyles[variant],\n ...(color ? { stroke: color } : {}),\n ...style,\n }}\n />\n {data?.label && (\n <foreignObject\n x={labelX - 40}\n y={labelY - 10}\n width={80}\n height={20}\n className=\"pointer-events-none\"\n >\n <span className=\"flex items-center justify-center rounded-full bg-card px-2 py-0.5 font-medium text-[10px] text-muted-foreground ring-1 ring-border\">\n {data.label}\n </span>\n </foreignObject>\n )}\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// DottedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DottedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dotted\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// DashedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DashedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dashed\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// TemporaryEdge — used while user is dragging a new connection\n// ---------------------------------------------------------------------------\n\nfunction TemporaryEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n}: EdgeProps) {\n const [edgePath] = getSimpleBezierPath({\n sourcePosition,\n sourceX,\n sourceY,\n targetPosition,\n targetX,\n targetY,\n })\n\n return (\n <BaseEdge\n className=\"!stroke-ring\"\n id={id}\n path={edgePath}\n style={{ strokeWidth: 2, strokeDasharray: \"5, 5\" }}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// AnimatedEdge — path with a travelling dot\n// ---------------------------------------------------------------------------\n\nfunction AnimatedEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n markerEnd,\n style,\n data,\n}: WorkflowEdgeProps) {\n const color = data?.color\n const strokeColor = color ?? \"var(--color-primary)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n markerEnd={resolvedMarkerEnd}\n path={edgePath}\n className=\"!stroke-primary/40\"\n style={{ strokeWidth: 2, ...(color ? { stroke: color } : {}), ...style }}\n />\n <circle fill={strokeColor} r=\"4\">\n <animateMotion dur=\"2s\" path={edgePath} repeatCount=\"indefinite\" />\n </circle>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Convenience namespace + exports\n// ---------------------------------------------------------------------------\n\nconst WorkflowEdge = {\n Solid: SolidEdge,\n Dotted: DottedEdge,\n Dashed: DashedEdge,\n Animated: AnimatedEdge,\n Temporary: TemporaryEdge,\n}\n\nexport { WorkflowEdge, SolidEdge, DottedEdge, DashedEdge, AnimatedEdge, TemporaryEdge }\nexport type { WorkflowEdgeProps, WorkflowEdgeVariant }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — gate type drives the shape/colour accent\n// ---------------------------------------------------------------------------\n\nconst workflowGateVariants = cva(\n [\n \"group/gate relative flex items-center justify-center\",\n \"bg-card overflow-visible\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n type: {\n \"if-else\": \"size-14 rotate-45 rounded-lg ring-2 ring-amber-400 dark:ring-amber-500\",\n switch: \"size-14 rotate-45 rounded-lg ring-2 ring-violet-400 dark:ring-violet-500\",\n merge: \"size-14 rotate-45 rounded-lg ring-2 ring-sky-400 dark:ring-sky-500\",\n delay: \"size-14 rounded-full ring-2 ring-orange-400 dark:ring-orange-500\",\n end: \"size-10 rounded-full ring-2 ring-red-400 dark:ring-red-500\",\n },\n selected: {\n true: \"ring-[3px] ring-primary shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { type: \"if-else\", selected: false },\n },\n)\n\n// Icon accent colour per type\nconst iconColor: Record<string, string> = {\n \"if-else\": \"text-amber-500 dark:text-amber-400\",\n switch: \"text-violet-500 dark:text-violet-400\",\n merge: \"text-sky-500 dark:text-sky-400\",\n delay: \"text-orange-500 dark:text-orange-400\",\n end: \"text-red-500 dark:text-red-400\",\n}\n\n// Branch label colour per type\nconst branchLabelColor: Record<string, string> = {\n \"if-else\":\n \"border-emerald-300 bg-emerald-50 text-emerald-700 dark:border-emerald-600 dark:bg-emerald-950/40 dark:text-emerald-400\",\n switch:\n \"border-violet-300 bg-violet-50 text-violet-700 dark:border-violet-600 dark:bg-violet-950/40 dark:text-violet-400\",\n merge:\n \"border-sky-300 bg-sky-50 text-sky-700 dark:border-sky-600 dark:bg-sky-950/40 dark:text-sky-400\",\n delay:\n \"border-orange-300 bg-orange-50 text-orange-700 dark:border-orange-600 dark:bg-orange-950/40 dark:text-orange-400\",\n end: \"border-red-300 bg-red-50 text-red-700 dark:border-red-600 dark:bg-red-950/40 dark:text-red-400\",\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowGateProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGateVariants> & {\n /** Label shown inside the diamond/circle */\n label?: ReactNode\n /** Icon shown inside the gate shape */\n icon?: ReactNode\n /** Handle configuration */\n handles?: {\n top?: boolean\n bottom?: boolean\n left?: boolean\n right?: boolean\n }\n /** Labels for left and right branches (displayed as pills beside the gate) */\n branches?: {\n left?: string\n right?: string\n }\n }\n\n// ---------------------------------------------------------------------------\n// Branch label pill — positioned beside the gate\n// ---------------------------------------------------------------------------\n\nfunction BranchLabel({\n children,\n side,\n type,\n}: {\n children: ReactNode\n side: \"left\" | \"right\"\n type: string\n}) {\n return (\n <span\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 whitespace-nowrap\",\n \"rounded-md border px-2.5 py-1 font-semibold text-[11px]\",\n branchLabelColor[type] ?? branchLabelColor[\"if-else\"],\n side === \"left\" ? \"right-full mr-4\" : \"left-full ml-4\",\n )}\n >\n {children}\n </span>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Handle dot — small, clean\n// ---------------------------------------------------------------------------\n\nconst handleClassName = cn(\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60\",\n \"hover:!bg-primary !transition-colors\",\n)\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowGate({\n type = \"if-else\",\n selected,\n label,\n icon,\n handles,\n branches,\n className,\n ...props\n}: WorkflowGateProps) {\n const isRotated = type === \"if-else\" || type === \"switch\" || type === \"merge\"\n const gateType = type ?? \"if-else\"\n\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n return (\n <div\n data-slot=\"workflow-gate\"\n data-gate-type={gateType}\n className={cn(\"relative flex items-center justify-center\", className)}\n {...props}\n >\n {/* The diamond / circle shape */}\n <div className={cn(workflowGateVariants({ type, selected }))}>\n {/* Inner content counter-rotated so icon reads normally */}\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-0.5\",\n isRotated && \"-rotate-45\",\n )}\n >\n {icon && <span className={cn(\"[&>svg]:size-5\", iconColor[gateType])}>{icon}</span>}\n {label && !icon && (\n <span\n className={cn(\"font-bold text-[9px] uppercase tracking-wider\", iconColor[gateType])}\n >\n {label}\n </span>\n )}\n </div>\n </div>\n\n {/* Branch labels */}\n {branches?.left && (\n <BranchLabel side=\"left\" type={gateType}>\n {branches.left}\n </BranchLabel>\n )}\n {branches?.right && (\n <BranchLabel side=\"right\" type={gateType}>\n {branches.right}\n </BranchLabel>\n )}\n\n {/* Handles */}\n {handles?.top && (\n <HandleBoundary>\n <Handle\n type=\"target\"\n position={layout === \"horizontal\" ? Position.Left : Position.Top}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.bottom && (\n <HandleBoundary>\n <Handle\n type=\"source\"\n position={layout === \"horizontal\" ? Position.Right : Position.Bottom}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.left && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Left} id=\"left\" className={handleClassName} />\n </HandleBoundary>\n )}\n {handles?.right && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Right} id=\"right\" className={handleClassName} />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport { WorkflowGate, workflowGateVariants }\nexport type { WorkflowGateProps }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst workflowGroupVariants = cva(\n [\"relative rounded-2xl border-2 border-dashed p-4 pt-8\", \"transition-shadow duration-150\"].join(\n \" \",\n ),\n {\n variants: {\n variant: {\n default: \"border-border/50 bg-muted/20\",\n primary: \"border-primary/30 bg-primary/5\",\n success: \"border-emerald-400/30 bg-emerald-50/30 dark:bg-emerald-950/10\",\n warning: \"border-amber-400/30 bg-amber-50/30 dark:bg-amber-950/10\",\n },\n selected: {\n true: \"border-primary/60 shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { variant: \"default\", selected: false },\n },\n)\n\ntype WorkflowGroupProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGroupVariants> & {\n /** Title shown at the top of the group */\n label?: ReactNode\n /** Icon shown before the label */\n icon?: ReactNode\n }\n\nfunction WorkflowGroup({\n variant,\n selected,\n label,\n icon,\n className,\n children,\n ...props\n}: WorkflowGroupProps) {\n return (\n <div\n data-slot=\"workflow-group\"\n className={cn(workflowGroupVariants({ variant, selected }), className)}\n {...props}\n >\n {(label || icon) && (\n <div className=\"absolute -top-3 left-4 inline-flex items-center gap-1.5 rounded-md bg-card px-2.5 py-1 font-semibold text-muted-foreground text-xs shadow-sm ring-1 ring-border\">\n {icon && <span className=\"[&>svg]:size-3.5\">{icon}</span>}\n {label}\n </div>\n )}\n {children}\n </div>\n )\n}\n\nexport { WorkflowGroup, workflowGroupVariants }\nexport type { WorkflowGroupProps }\n","\"use client\"\n\nimport { Handle, type HandleProps, Position } from \"@xyflow/react\"\nimport { Component, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\ntype WorkflowHandleProps = Omit<HandleProps, \"position\"> & {\n /** Override position. If omitted, auto-detects based on layout context and type (source→bottom/right, target→top/left) */\n position?: Position\n className?: string\n}\n\nconst handleBase =\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60 hover:!bg-primary !transition-colors\"\n\nfunction WorkflowHandle({ type, position, className, ...props }: WorkflowHandleProps) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n const resolvedPosition =\n position ??\n (type === \"source\"\n ? layout === \"horizontal\"\n ? Position.Right\n : Position.Bottom\n : layout === \"horizontal\"\n ? Position.Left\n : Position.Top)\n\n return (\n <HandleBoundary>\n <Handle\n type={type}\n position={resolvedPosition}\n className={cn(handleBase, className)}\n {...props}\n />\n </HandleBoundary>\n )\n}\n\nexport { WorkflowHandle, HandleBoundary, handleBase }\nexport type { WorkflowHandleProps }\n","\"use client\"\n\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// WorkflowLabel — floating annotation for edges or canvas areas\n// ---------------------------------------------------------------------------\n\ntype WorkflowLabelProps = ComponentProps<\"div\"> & {\n variant?: \"default\" | \"success\" | \"warning\" | \"error\" | \"muted\"\n}\n\nconst variantClasses: Record<NonNullable<WorkflowLabelProps[\"variant\"]>, string> = {\n default: \"bg-card text-foreground ring-border\",\n success:\n \"bg-emerald-50 text-emerald-700 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-300 dark:ring-emerald-800\",\n warning:\n \"bg-amber-50 text-amber-700 ring-amber-200 dark:bg-amber-950/40 dark:text-amber-300 dark:ring-amber-800\",\n error:\n \"bg-red-50 text-red-700 ring-red-200 dark:bg-red-950/40 dark:text-red-300 dark:ring-red-800\",\n muted: \"bg-muted text-muted-foreground ring-border\",\n}\n\nfunction WorkflowLabel({ variant = \"default\", className, ...props }: WorkflowLabelProps) {\n return (\n <div\n data-slot=\"workflow-label\"\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full px-3 py-1 font-semibold text-[11px] shadow-sm ring-1\",\n variantClasses[variant],\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowLabel }\nexport type { WorkflowLabelProps }\n","\"use client\"\n\nimport { MiniMap } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowMinimapProps = ComponentProps<typeof MiniMap>\n\nfunction WorkflowMinimap({ className, ...props }: WorkflowMinimapProps) {\n return (\n <MiniMap\n data-slot=\"workflow-minimap\"\n className={cn(\"!rounded-lg !border !border-border !bg-card !shadow-sm\", className)}\n maskColor=\"var(--color-muted)\"\n nodeColor=\"var(--color-primary)\"\n nodeStrokeColor=\"var(--color-border)\"\n nodeBorderRadius={8}\n {...props}\n />\n )\n}\n\nexport { WorkflowMinimap }\nexport type { WorkflowMinimapProps }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown, ChevronUp, GripVertical, Plus } from \"lucide-react\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Silently swallow Handle errors when rendered outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {\n // Intentionally silent — handles are optional outside a canvas\n }\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — state drives the ring/border treatment\n// ---------------------------------------------------------------------------\n\nconst workflowNodeVariants = cva(\n [\n \"group/node relative flex flex-col bg-card text-card-foreground\",\n \"rounded-2xl shadow-sm overflow-visible w-80\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n state: {\n default: \"ring-1 ring-border/70\",\n selected: \"ring-[3px] ring-primary shadow-md\",\n dotted: \"border-2 border-dashed border-muted-foreground/30 shadow-none\",\n },\n },\n defaultVariants: { state: \"default\" },\n },\n)\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowNodeProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowNodeVariants> & {\n /** Show the 6-dot drag grip in the header */\n draggable?: boolean\n /** Icon rendered before the title — wrap in a coloured square for the best look */\n icon?: React.ReactNode\n /** Node title text */\n title?: React.ReactNode\n /** Status badge (e.g. \"TRIGGER\") shown at the trailing edge of the header */\n status?: React.ReactNode\n /** Notification badge count rendered on the icon */\n badge?: number | string\n /** Make the body collapsible with an expand/close footer toggle */\n collapsible?: boolean\n /** Start collapsed when collapsible is true */\n defaultCollapsed?: boolean\n /** Custom footer content (ignored when collapsible is true) */\n footer?: React.ReactNode\n /** Configure source/target handles at the top and bottom edges */\n handles?: { target?: boolean; source?: boolean }\n }\n\n// ---------------------------------------------------------------------------\n// Handle connector — circle with a subtle plus icon\n// ---------------------------------------------------------------------------\n\nfunction NodeHandle({ type }: { type: \"source\" | \"target\" }) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n // vertical: target=Top, source=Bottom\n // horizontal: target=Left, source=Right\n const position =\n layout === \"horizontal\"\n ? type === \"target\"\n ? Position.Left\n : Position.Right\n : type === \"target\"\n ? Position.Top\n : Position.Bottom\n\n return (\n <Handle\n type={type}\n position={position}\n className={cn(\n \"!flex !items-center !justify-center\",\n \"!size-5 !rounded-full !border-2 !border-card !bg-muted-foreground/70\",\n \"hover:!bg-primary hover:!border-primary/20 !transition-colors\",\n )}\n >\n <Plus className=\"pointer-events-none size-2.5 text-card\" />\n </Handle>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Header — drag grip ·· icon · title · status pill\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-header\"\n className={cn(\"flex items-center gap-3 px-4 py-3.5\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-title\"\n className={cn(\"min-w-0 flex-1 truncate font-bold text-sm leading-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-description\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeAction({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-action\"\n className={cn(\"ml-auto shrink-0\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content area — sits between dotted separators\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-content\"\n className={cn(\"space-y-2.5 px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Footer\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-footer\"\n className={cn(\n \"flex items-center justify-center gap-1.5 px-4 py-2.5\",\n \"font-semibold text-muted-foreground text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Dotted separator\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeSeparator({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-separator\"\n className={cn(\"mx-3 border-muted-foreground/20 border-t border-dashed\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Row — a label/value pair rendered as a rounded grey chip (like in the image)\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeRow({\n label,\n value,\n icon,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n label: string\n value: React.ReactNode\n icon?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"workflow-node-row\"\n className={cn(\n \"flex items-center justify-between gap-3 rounded-xl bg-muted/60 px-4 py-2.5\",\n className,\n )}\n {...props}\n >\n <span className=\"text-muted-foreground text-sm\">{label}</span>\n <span className=\"inline-flex items-center gap-2 font-semibold text-sm\">\n {icon && (\n <span className=\"shrink-0 [&>img]:size-6 [&>img]:rounded-full [&>svg]:size-4\">\n {icon}\n </span>\n )}\n {value}\n </span>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Main component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNode({\n state,\n draggable: showDragHandle,\n icon,\n title,\n status,\n badge,\n collapsible,\n defaultCollapsed = false,\n footer,\n handles,\n className,\n children,\n ...props\n}: WorkflowNodeProps) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed)\n\n const hasHeader = icon || title || status || showDragHandle\n const hasContent = !!children\n const hasFooter = footer || collapsible\n\n return (\n <div\n data-slot=\"workflow-node\"\n data-state={state ?? \"default\"}\n className={cn(workflowNodeVariants({ state }), className)}\n {...props}\n >\n {/* Target handle */}\n {handles?.target && (\n <HandleBoundary>\n <NodeHandle type=\"target\" />\n </HandleBoundary>\n )}\n\n {/* Header */}\n {hasHeader && (\n <WorkflowNodeHeader>\n {showDragHandle && (\n <span className=\"shrink-0 cursor-grab text-muted-foreground/40 transition-colors hover:text-muted-foreground active:cursor-grabbing\">\n <GripVertical className=\"size-4\" />\n </span>\n )}\n {icon && (\n <span className=\"relative shrink-0 [&>img]:size-8 [&>img]:rounded-lg [&>svg]:size-7\">\n {icon}\n {badge != null && (\n <span className=\"absolute -top-1.5 -right-1.5 inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 font-bold text-[10px] text-primary-foreground leading-none ring-2 ring-card\">\n {badge}\n </span>\n )}\n </span>\n )}\n {title && <WorkflowNodeTitle>{title}</WorkflowNodeTitle>}\n {status && (\n <span className=\"ml-auto inline-flex shrink-0 items-center gap-1 rounded-full border border-border/80 bg-muted/40 px-2.5 py-1 font-bold text-[10px] text-muted-foreground uppercase tracking-widest\">\n <ChevronDown className=\"size-2.5\" />\n {status}\n </span>\n )}\n </WorkflowNodeHeader>\n )}\n\n {/* Body (collapsible) */}\n {hasContent && !collapsed && (\n <>\n {hasHeader && <WorkflowNodeSeparator />}\n <WorkflowNodeContent>{children}</WorkflowNodeContent>\n </>\n )}\n\n {/* Footer */}\n {hasFooter && (\n <>\n <WorkflowNodeSeparator />\n <WorkflowNodeFooter>\n {collapsible ? (\n <button\n type=\"button\"\n onClick={() => setCollapsed((c) => !c)}\n className=\"inline-flex items-center gap-1.5 font-semibold text-muted-foreground text-xs transition-colors hover:text-foreground\"\n >\n {collapsed ? (\n <>\n <ChevronDown className=\"size-3.5\" />\n Expand\n </>\n ) : (\n <>\n <ChevronUp className=\"size-3.5\" />\n Close\n </>\n )}\n </button>\n ) : (\n footer\n )}\n </WorkflowNodeFooter>\n </>\n )}\n\n {/* Source handle */}\n {handles?.source && (\n <HandleBoundary>\n <NodeHandle type=\"source\" />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport {\n WorkflowNode,\n WorkflowNodeHeader,\n WorkflowNodeTitle,\n WorkflowNodeDescription,\n WorkflowNodeAction,\n WorkflowNodeContent,\n WorkflowNodeFooter,\n WorkflowNodeSeparator,\n WorkflowNodeRow,\n workflowNodeVariants,\n}\nexport type { WorkflowNodeProps }\n","import { Panel as PanelPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowPanelProps = ComponentProps<typeof PanelPrimitive>\n\nfunction WorkflowPanel({ className, ...props }: WorkflowPanelProps) {\n return (\n <PanelPrimitive\n data-slot=\"workflow-panel\"\n className={cn(\"m-4 overflow-hidden rounded-md border bg-card p-1\", className)}\n {...props}\n />\n )\n}\n\nexport { WorkflowPanel }\nexport type { WorkflowPanelProps }\n","import { NodeToolbar, Position } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowToolbarProps = ComponentProps<typeof NodeToolbar>\n\nfunction WorkflowToolbar({ className, ...props }: WorkflowToolbarProps) {\n return (\n <NodeToolbar\n data-slot=\"workflow-toolbar\"\n className={cn(\"flex items-center gap-1 rounded-sm border bg-background p-1.5\", className)}\n position={Position.Bottom}\n {...props}\n />\n )\n}\n\nexport { WorkflowToolbar }\nexport type { WorkflowToolbarProps }\n"]}
1
+ {"version":3,"sources":["../src/workflow/workflow-context.tsx","../src/workflow/canvas.tsx","../src/workflow/workflow-connection.tsx","../src/workflow/workflow-controls.tsx","../src/workflow/workflow-edge.tsx","../src/workflow/workflow-gate.tsx","../src/workflow/workflow-group.tsx","../src/workflow/workflow-handle.tsx","../src/workflow/workflow-label.tsx","../src/workflow/workflow-minimap.tsx","../src/workflow/workflow-node.tsx","../src/workflow/workflow-panel.tsx","../src/workflow/workflow-toolbar.tsx"],"names":["jsxs","jsx","ControlsPrimitive","cva","HandleBoundary","Component","Position","Handle","Fragment","PanelPrimitive"],"mappings":"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","file":"workflow.js","sourcesContent":["\"use client\"\n\nimport { createContext, useContext } from \"react\"\n\ntype WorkflowLayout = \"vertical\" | \"horizontal\"\n\nconst WorkflowContext = createContext<WorkflowLayout>(\"vertical\")\n\nfunction useWorkflowLayout() {\n return useContext(WorkflowContext)\n}\n\nexport { WorkflowContext, useWorkflowLayout }\nexport type { WorkflowLayout }\n","\"use client\"\n\nimport type { ReactFlowProps } from \"@xyflow/react\"\nimport { Background, ReactFlow } from \"@xyflow/react\"\nimport type { ReactNode } from \"react\"\nimport \"@xyflow/react/dist/style.css\"\nimport { cn } from \"../lib/utils\"\nimport { WorkflowContext, type WorkflowLayout } from \"./workflow-context\"\n\ntype CanvasProps = ReactFlowProps & {\n children?: ReactNode\n className?: string\n /** Flow direction — \"vertical\" (top→bottom) or \"horizontal\" (left→right). Default: \"vertical\" */\n layout?: WorkflowLayout\n}\n\nconst deleteKeyCode = [\"Backspace\", \"Delete\"]\n\nfunction Canvas({ children, className, layout = \"vertical\", ...props }: CanvasProps) {\n return (\n <WorkflowContext value={layout}>\n <ReactFlow\n data-slot=\"canvas\"\n deleteKeyCode={deleteKeyCode}\n fitView\n panOnDrag={false}\n panOnScroll\n selectionOnDrag={true}\n zoomOnDoubleClick={false}\n className={cn(\"\", className)}\n {...props}\n >\n <Background bgColor=\"var(--color-sidebar)\" />\n {children}\n </ReactFlow>\n </WorkflowContext>\n )\n}\n\nexport { Canvas }\nexport type { CanvasProps }\n","\"use client\"\n\nimport type { ConnectionLineComponent } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n// ---------------------------------------------------------------------------\n// CVA variants for connection line style\n// ---------------------------------------------------------------------------\n\nconst workflowConnectionVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"\",\n dotted: \"\",\n dashed: \"\",\n animated: \"\",\n },\n },\n defaultVariants: { variant: \"default\" },\n})\n\ntype WorkflowConnectionVariant = NonNullable<\n VariantProps<typeof workflowConnectionVariants>[\"variant\"]\n>\n\n// Stroke dash patterns per variant\nconst strokeDash: Record<WorkflowConnectionVariant, string | undefined> = {\n default: undefined,\n dotted: \"2, 6\",\n dashed: \"12, 6\",\n animated: undefined,\n}\n\n// ---------------------------------------------------------------------------\n// Factory — create a ConnectionLineComponent for a given variant\n// ---------------------------------------------------------------------------\n\nfunction createConnectionLine(variant: WorkflowConnectionVariant): ConnectionLineComponent {\n const ConnectionLine: ConnectionLineComponent = ({ fromX, fromY, toX, toY }) => {\n const dx = Math.abs(toX - fromX)\n const dy = Math.abs(toY - fromY)\n const isVertical = dy > dx\n\n const path = isVertical\n ? `M${fromX},${fromY} C ${fromX},${fromY + (toY - fromY) * 0.5} ${toX},${fromY + (toY - fromY) * 0.5} ${toX},${toY}`\n : `M${fromX},${fromY} C ${fromX + (toX - fromX) * 0.5},${fromY} ${fromX + (toX - fromX) * 0.5},${toY} ${toX},${toY}`\n\n return (\n <g>\n <path\n d={path}\n fill=\"none\"\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n strokeDasharray={strokeDash[variant]}\n strokeLinecap={variant === \"dotted\" ? \"round\" : undefined}\n />\n {variant === \"animated\" && (\n <circle fill=\"var(--color-primary)\" r={3}>\n <animateMotion dur=\"1s\" path={path} repeatCount=\"indefinite\" />\n </circle>\n )}\n <circle\n cx={toX}\n cy={toY}\n fill=\"var(--color-card)\"\n r={4}\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n />\n </g>\n )\n }\n return ConnectionLine\n}\n\n// ---------------------------------------------------------------------------\n// Pre-built connection lines\n// ---------------------------------------------------------------------------\n\nconst WorkflowConnection = createConnectionLine(\"default\")\nconst WorkflowConnectionDotted = createConnectionLine(\"dotted\")\nconst WorkflowConnectionDashed = createConnectionLine(\"dashed\")\nconst WorkflowConnectionAnimated = createConnectionLine(\"animated\")\n\nexport {\n WorkflowConnection,\n WorkflowConnectionDotted,\n WorkflowConnectionDashed,\n WorkflowConnectionAnimated,\n workflowConnectionVariants,\n createConnectionLine,\n}\nexport type { WorkflowConnectionVariant }\n","\"use client\"\n\nimport { Controls as ControlsPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowControlsProps = ComponentProps<typeof ControlsPrimitive>\n\nfunction WorkflowControls({ className, ...props }: WorkflowControlsProps) {\n return (\n <ControlsPrimitive\n data-slot=\"workflow-controls\"\n className={cn(\n \"gap-px overflow-hidden rounded-md border bg-card p-1 shadow-none!\",\n \"[&>button]:rounded-md [&>button]:border-none! [&>button]:bg-transparent! [&>button]:hover:bg-secondary!\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowControls }\nexport type { WorkflowControlsProps }\n","\"use client\"\n\nimport type { EdgeProps } from \"@xyflow/react\"\nimport { BaseEdge, getBezierPath, getSimpleBezierPath } from \"@xyflow/react\"\n\n// ---------------------------------------------------------------------------\n// Edge variant type\n// ---------------------------------------------------------------------------\n\ntype WorkflowEdgeVariant = \"solid\" | \"dotted\" | \"animated\" | \"dashed\"\n\ntype WorkflowEdgeProps = EdgeProps & {\n data?: {\n variant?: WorkflowEdgeVariant\n color?: string\n label?: string\n /** Show a directional arrow at the target end */\n arrow?: boolean\n }\n}\n\n// ---------------------------------------------------------------------------\n// Stroke styles per variant\n// ---------------------------------------------------------------------------\n\nconst variantStyles: Record<WorkflowEdgeVariant, React.CSSProperties> = {\n solid: {},\n dotted: { strokeDasharray: \"3, 6\", strokeLinecap: \"round\" },\n dashed: { strokeDasharray: \"8, 4\" },\n animated: {},\n}\n\n// ---------------------------------------------------------------------------\n// SolidEdge — basic bezier with props-based path computation\n// ---------------------------------------------------------------------------\n\nfunction SolidEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n data,\n markerEnd,\n style,\n}: WorkflowEdgeProps) {\n const variant = data?.variant ?? \"solid\"\n const color = data?.color\n const strokeColor = color ?? \"var(--color-muted-foreground)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath, labelX, labelY] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n path={edgePath}\n markerEnd={resolvedMarkerEnd}\n className=\"!stroke-muted-foreground/50\"\n style={{\n strokeWidth: 2,\n ...variantStyles[variant],\n ...(color ? { stroke: color } : {}),\n ...style,\n }}\n />\n {data?.label && (\n <foreignObject\n x={labelX - 40}\n y={labelY - 10}\n width={80}\n height={20}\n className=\"pointer-events-none\"\n >\n <span className=\"flex items-center justify-center rounded-full bg-card px-2 py-0.5 font-medium text-[10px] text-muted-foreground ring-1 ring-border\">\n {data.label}\n </span>\n </foreignObject>\n )}\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// DottedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DottedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dotted\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// DashedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DashedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dashed\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// TemporaryEdge — used while user is dragging a new connection\n// ---------------------------------------------------------------------------\n\nfunction TemporaryEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n}: EdgeProps) {\n const [edgePath] = getSimpleBezierPath({\n sourcePosition,\n sourceX,\n sourceY,\n targetPosition,\n targetX,\n targetY,\n })\n\n return (\n <BaseEdge\n className=\"!stroke-ring\"\n id={id}\n path={edgePath}\n style={{ strokeWidth: 2, strokeDasharray: \"5, 5\" }}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// AnimatedEdge — path with a travelling dot\n// ---------------------------------------------------------------------------\n\nfunction AnimatedEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n markerEnd,\n style,\n data,\n}: WorkflowEdgeProps) {\n const color = data?.color\n const strokeColor = color ?? \"var(--color-primary)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n markerEnd={resolvedMarkerEnd}\n path={edgePath}\n className=\"!stroke-primary/40\"\n style={{ strokeWidth: 2, ...(color ? { stroke: color } : {}), ...style }}\n />\n <circle fill={strokeColor} r=\"4\">\n <animateMotion dur=\"2s\" path={edgePath} repeatCount=\"indefinite\" />\n </circle>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Convenience namespace + exports\n// ---------------------------------------------------------------------------\n\nconst WorkflowEdge = {\n Solid: SolidEdge,\n Dotted: DottedEdge,\n Dashed: DashedEdge,\n Animated: AnimatedEdge,\n Temporary: TemporaryEdge,\n}\n\nexport { WorkflowEdge, SolidEdge, DottedEdge, DashedEdge, AnimatedEdge, TemporaryEdge }\nexport type { WorkflowEdgeProps, WorkflowEdgeVariant }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — gate type drives the shape/colour accent\n// ---------------------------------------------------------------------------\n\nconst workflowGateVariants = cva(\n [\n \"group/gate relative flex items-center justify-center\",\n \"bg-card overflow-visible\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n type: {\n \"if-else\": \"size-14 rotate-45 rounded-lg ring-2 ring-amber-400 dark:ring-amber-500\",\n switch: \"size-14 rotate-45 rounded-lg ring-2 ring-violet-400 dark:ring-violet-500\",\n merge: \"size-14 rotate-45 rounded-lg ring-2 ring-sky-400 dark:ring-sky-500\",\n delay: \"size-14 rounded-full ring-2 ring-orange-400 dark:ring-orange-500\",\n end: \"size-10 rounded-full ring-2 ring-red-400 dark:ring-red-500\",\n },\n selected: {\n true: \"ring-[3px] ring-primary shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { type: \"if-else\", selected: false },\n },\n)\n\n// Icon accent colour per type\nconst iconColor: Record<string, string> = {\n \"if-else\": \"text-amber-500 dark:text-amber-400\",\n switch: \"text-violet-500 dark:text-violet-400\",\n merge: \"text-sky-500 dark:text-sky-400\",\n delay: \"text-orange-500 dark:text-orange-400\",\n end: \"text-red-500 dark:text-red-400\",\n}\n\n// Branch label colour per type\nconst branchLabelColor: Record<string, string> = {\n \"if-else\":\n \"border-emerald-300 bg-emerald-50 text-emerald-700 dark:border-emerald-600 dark:bg-emerald-950/40 dark:text-emerald-400\",\n switch:\n \"border-violet-300 bg-violet-50 text-violet-700 dark:border-violet-600 dark:bg-violet-950/40 dark:text-violet-400\",\n merge:\n \"border-sky-300 bg-sky-50 text-sky-700 dark:border-sky-600 dark:bg-sky-950/40 dark:text-sky-400\",\n delay:\n \"border-orange-300 bg-orange-50 text-orange-700 dark:border-orange-600 dark:bg-orange-950/40 dark:text-orange-400\",\n end: \"border-red-300 bg-red-50 text-red-700 dark:border-red-600 dark:bg-red-950/40 dark:text-red-400\",\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowGateProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGateVariants> & {\n /** Label shown inside the diamond/circle */\n label?: ReactNode\n /** Icon shown inside the gate shape */\n icon?: ReactNode\n /** Handle configuration */\n handles?: {\n top?: boolean\n bottom?: boolean\n left?: boolean\n right?: boolean\n }\n /** Labels for left and right branches (displayed as pills beside the gate) */\n branches?: {\n left?: string\n right?: string\n }\n }\n\n// ---------------------------------------------------------------------------\n// Branch label pill — positioned beside the gate\n// ---------------------------------------------------------------------------\n\nfunction BranchLabel({\n children,\n side,\n type,\n}: {\n children: ReactNode\n side: \"left\" | \"right\"\n type: string\n}) {\n return (\n <span\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 whitespace-nowrap\",\n \"rounded-md border px-2.5 py-1 font-semibold text-[11px]\",\n branchLabelColor[type] ?? branchLabelColor[\"if-else\"],\n side === \"left\" ? \"right-full mr-4\" : \"left-full ml-4\",\n )}\n >\n {children}\n </span>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Handle dot — small, clean\n// ---------------------------------------------------------------------------\n\nconst handleClassName = cn(\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60\",\n \"hover:!bg-primary !transition-colors\",\n)\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowGate({\n type = \"if-else\",\n selected,\n label,\n icon,\n handles,\n branches,\n className,\n ...props\n}: WorkflowGateProps) {\n const isRotated = type === \"if-else\" || type === \"switch\" || type === \"merge\"\n const gateType = type ?? \"if-else\"\n\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n return (\n <div\n data-slot=\"workflow-gate\"\n data-gate-type={gateType}\n className={cn(\"relative flex items-center justify-center\", className)}\n {...props}\n >\n {/* The diamond / circle shape */}\n <div className={cn(workflowGateVariants({ type, selected }))}>\n {/* Inner content counter-rotated so icon reads normally */}\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-0.5\",\n isRotated && \"-rotate-45\",\n )}\n >\n {icon && <span className={cn(\"[&>svg]:size-5\", iconColor[gateType])}>{icon}</span>}\n {label && !icon && (\n <span\n className={cn(\"font-bold text-[9px] uppercase tracking-wider\", iconColor[gateType])}\n >\n {label}\n </span>\n )}\n </div>\n </div>\n\n {/* Branch labels */}\n {branches?.left && (\n <BranchLabel side=\"left\" type={gateType}>\n {branches.left}\n </BranchLabel>\n )}\n {branches?.right && (\n <BranchLabel side=\"right\" type={gateType}>\n {branches.right}\n </BranchLabel>\n )}\n\n {/* Handles */}\n {handles?.top && (\n <HandleBoundary>\n <Handle\n type=\"target\"\n position={layout === \"horizontal\" ? Position.Left : Position.Top}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.bottom && (\n <HandleBoundary>\n <Handle\n type=\"source\"\n position={layout === \"horizontal\" ? Position.Right : Position.Bottom}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.left && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Left} id=\"left\" className={handleClassName} />\n </HandleBoundary>\n )}\n {handles?.right && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Right} id=\"right\" className={handleClassName} />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport { WorkflowGate, workflowGateVariants }\nexport type { WorkflowGateProps }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst workflowGroupVariants = cva(\n [\"relative rounded-2xl border-2 border-dashed p-4 pt-8\", \"transition-shadow duration-150\"].join(\n \" \",\n ),\n {\n variants: {\n variant: {\n default: \"border-border/50 bg-muted/20\",\n primary: \"border-primary/30 bg-primary/5\",\n success: \"border-emerald-400/30 bg-emerald-50/30 dark:bg-emerald-950/10\",\n warning: \"border-amber-400/30 bg-amber-50/30 dark:bg-amber-950/10\",\n },\n selected: {\n true: \"border-primary/60 shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { variant: \"default\", selected: false },\n },\n)\n\ntype WorkflowGroupProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGroupVariants> & {\n /** Title shown at the top of the group */\n label?: ReactNode\n /** Icon shown before the label */\n icon?: ReactNode\n }\n\nfunction WorkflowGroup({\n variant,\n selected,\n label,\n icon,\n className,\n children,\n ...props\n}: WorkflowGroupProps) {\n return (\n <div\n data-slot=\"workflow-group\"\n className={cn(workflowGroupVariants({ variant, selected }), className)}\n {...props}\n >\n {(label || icon) && (\n <div className=\"absolute -top-3 left-4 inline-flex items-center gap-1.5 rounded-md bg-card px-2.5 py-1 font-semibold text-muted-foreground text-xs shadow-sm ring-1 ring-border\">\n {icon && <span className=\"[&>svg]:size-3.5\">{icon}</span>}\n {label}\n </div>\n )}\n {children}\n </div>\n )\n}\n\nexport { WorkflowGroup, workflowGroupVariants }\nexport type { WorkflowGroupProps }\n","\"use client\"\n\nimport { Handle, type HandleProps, Position } from \"@xyflow/react\"\nimport { Component, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\ntype WorkflowHandleProps = Omit<HandleProps, \"position\"> & {\n /** Override position. If omitted, auto-detects based on layout context and type (source→bottom/right, target→top/left) */\n position?: Position\n className?: string\n}\n\nconst handleBase =\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60 hover:!bg-primary !transition-colors\"\n\nfunction WorkflowHandle({ type, position, className, ...props }: WorkflowHandleProps) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n const resolvedPosition =\n position ??\n (type === \"source\"\n ? layout === \"horizontal\"\n ? Position.Right\n : Position.Bottom\n : layout === \"horizontal\"\n ? Position.Left\n : Position.Top)\n\n return (\n <HandleBoundary>\n <Handle\n type={type}\n position={resolvedPosition}\n className={cn(handleBase, className)}\n {...props}\n />\n </HandleBoundary>\n )\n}\n\nexport { WorkflowHandle, HandleBoundary, handleBase }\nexport type { WorkflowHandleProps }\n","\"use client\"\n\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// WorkflowLabel — floating annotation for edges or canvas areas\n// ---------------------------------------------------------------------------\n\ntype WorkflowLabelProps = ComponentProps<\"div\"> & {\n variant?: \"default\" | \"success\" | \"warning\" | \"error\" | \"muted\"\n}\n\nconst variantClasses: Record<NonNullable<WorkflowLabelProps[\"variant\"]>, string> = {\n default: \"bg-card text-foreground ring-border\",\n success:\n \"bg-emerald-50 text-emerald-700 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-300 dark:ring-emerald-800\",\n warning:\n \"bg-amber-50 text-amber-700 ring-amber-200 dark:bg-amber-950/40 dark:text-amber-300 dark:ring-amber-800\",\n error:\n \"bg-red-50 text-red-700 ring-red-200 dark:bg-red-950/40 dark:text-red-300 dark:ring-red-800\",\n muted: \"bg-muted text-muted-foreground ring-border\",\n}\n\nfunction WorkflowLabel({ variant = \"default\", className, ...props }: WorkflowLabelProps) {\n return (\n <div\n data-slot=\"workflow-label\"\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full px-3 py-1 font-semibold text-[11px] shadow-sm ring-1\",\n variantClasses[variant],\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowLabel }\nexport type { WorkflowLabelProps }\n","\"use client\"\n\nimport { MiniMap } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowMinimapProps = ComponentProps<typeof MiniMap>\n\nfunction WorkflowMinimap({ className, ...props }: WorkflowMinimapProps) {\n return (\n <MiniMap\n data-slot=\"workflow-minimap\"\n className={cn(\"!rounded-lg !border !border-border !bg-card !shadow-sm\", className)}\n maskColor=\"var(--color-muted)\"\n nodeColor=\"var(--color-primary)\"\n nodeStrokeColor=\"var(--color-border)\"\n nodeBorderRadius={8}\n {...props}\n />\n )\n}\n\nexport { WorkflowMinimap }\nexport type { WorkflowMinimapProps }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown, ChevronUp, GripVertical, Plus } from \"lucide-react\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Silently swallow Handle errors when rendered outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {\n // Intentionally silent — handles are optional outside a canvas\n }\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — state drives the ring/border treatment\n// ---------------------------------------------------------------------------\n\nconst workflowNodeVariants = cva(\n [\n \"group/node relative flex flex-col bg-card text-card-foreground\",\n \"rounded-2xl shadow-sm overflow-visible w-80\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n state: {\n default: \"ring-1 ring-border/70\",\n selected: \"ring-[3px] ring-primary shadow-md\",\n dotted: \"border-2 border-dashed border-muted-foreground/30 shadow-none\",\n },\n },\n defaultVariants: { state: \"default\" },\n },\n)\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowNodeProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowNodeVariants> & {\n /** Show the 6-dot drag grip in the header */\n draggable?: boolean\n /** Icon rendered before the title — wrap in a coloured square for the best look */\n icon?: React.ReactNode\n /** Node title text */\n title?: React.ReactNode\n /** Status badge (e.g. \"TRIGGER\") shown at the trailing edge of the header */\n status?: React.ReactNode\n /** Notification badge count rendered on the icon */\n badge?: number | string\n /** Make the body collapsible with an expand/close footer toggle */\n collapsible?: boolean\n /** Start collapsed when collapsible is true */\n defaultCollapsed?: boolean\n /** Custom footer content (ignored when collapsible is true) */\n footer?: React.ReactNode\n /** Configure source/target handles at the top and bottom edges */\n handles?: { target?: boolean; source?: boolean }\n }\n\n// ---------------------------------------------------------------------------\n// Handle connector — circle with a subtle plus icon\n// ---------------------------------------------------------------------------\n\nfunction NodeHandle({ type }: { type: \"source\" | \"target\" }) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n // vertical: target=Top, source=Bottom\n // horizontal: target=Left, source=Right\n const position =\n layout === \"horizontal\"\n ? type === \"target\"\n ? Position.Left\n : Position.Right\n : type === \"target\"\n ? Position.Top\n : Position.Bottom\n\n return (\n <Handle\n type={type}\n position={position}\n className={cn(\n \"!flex !items-center !justify-center\",\n \"!size-5 !rounded-full !border-2 !border-card !bg-muted-foreground/70\",\n \"hover:!bg-primary hover:!border-primary/20 !transition-colors\",\n )}\n >\n <Plus className=\"pointer-events-none size-2.5 text-card\" />\n </Handle>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Header — drag grip ·· icon · title · status pill\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-header\"\n className={cn(\"flex items-center gap-3 px-4 py-3.5\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-title\"\n className={cn(\"min-w-0 flex-1 truncate font-bold text-sm leading-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-description\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeAction({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-action\"\n className={cn(\"ml-auto shrink-0\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content area — sits between dotted separators\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-content\"\n className={cn(\"space-y-2.5 px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Footer\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-footer\"\n className={cn(\n \"flex items-center justify-center gap-1.5 px-4 py-2.5\",\n \"font-semibold text-muted-foreground text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Dotted separator\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeSeparator({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-separator\"\n className={cn(\"mx-3 border-muted-foreground/20 border-t border-dashed\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Row — a label/value pair rendered as a rounded grey chip (like in the image)\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeRow({\n label,\n value,\n icon,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n label: string\n value: React.ReactNode\n icon?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"workflow-node-row\"\n className={cn(\n \"flex items-center justify-between gap-3 rounded-xl bg-muted/60 px-4 py-2.5\",\n className,\n )}\n {...props}\n >\n <span className=\"text-muted-foreground text-sm\">{label}</span>\n <span className=\"inline-flex items-center gap-2 font-semibold text-sm\">\n {icon && (\n <span className=\"shrink-0 [&>img]:size-6 [&>img]:rounded-full [&>svg]:size-4\">\n {icon}\n </span>\n )}\n {value}\n </span>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Main component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNode({\n state,\n draggable: showDragHandle,\n icon,\n title,\n status,\n badge,\n collapsible,\n defaultCollapsed = false,\n footer,\n handles,\n className,\n children,\n ...props\n}: WorkflowNodeProps) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed)\n\n const hasHeader = icon || title || status || showDragHandle\n const hasContent = !!children\n const hasFooter = footer || collapsible\n\n return (\n <div\n data-slot=\"workflow-node\"\n data-state={state ?? \"default\"}\n className={cn(workflowNodeVariants({ state }), className)}\n {...props}\n >\n {/* Target handle */}\n {handles?.target && (\n <HandleBoundary>\n <NodeHandle type=\"target\" />\n </HandleBoundary>\n )}\n\n {/* Header */}\n {hasHeader && (\n <WorkflowNodeHeader>\n {showDragHandle && (\n <span className=\"shrink-0 cursor-grab text-muted-foreground/40 transition-colors hover:text-muted-foreground active:cursor-grabbing\">\n <GripVertical className=\"size-4\" />\n </span>\n )}\n {icon && (\n <span className=\"relative shrink-0 [&>img]:size-8 [&>img]:rounded-lg [&>svg]:size-7\">\n {icon}\n {badge != null && (\n <span className=\"absolute -top-1.5 -right-1.5 inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 font-bold text-[10px] text-primary-foreground leading-none ring-2 ring-card\">\n {badge}\n </span>\n )}\n </span>\n )}\n {title && <WorkflowNodeTitle>{title}</WorkflowNodeTitle>}\n {status && (\n <span className=\"ml-auto inline-flex shrink-0 items-center gap-1 rounded-full border border-border/80 bg-muted/40 px-2.5 py-1 font-bold text-[10px] text-muted-foreground uppercase tracking-widest\">\n <ChevronDown className=\"size-2.5\" />\n {status}\n </span>\n )}\n </WorkflowNodeHeader>\n )}\n\n {/* Body (collapsible) */}\n {hasContent && !collapsed && (\n <>\n {hasHeader && <WorkflowNodeSeparator />}\n <WorkflowNodeContent>{children}</WorkflowNodeContent>\n </>\n )}\n\n {/* Footer */}\n {hasFooter && (\n <>\n <WorkflowNodeSeparator />\n <WorkflowNodeFooter>\n {collapsible ? (\n <button\n type=\"button\"\n onClick={() => setCollapsed((c) => !c)}\n className=\"inline-flex items-center gap-1.5 font-semibold text-muted-foreground text-xs transition-colors hover:text-foreground\"\n >\n {collapsed ? (\n <>\n <ChevronDown className=\"size-3.5\" />\n Expand\n </>\n ) : (\n <>\n <ChevronUp className=\"size-3.5\" />\n Close\n </>\n )}\n </button>\n ) : (\n footer\n )}\n </WorkflowNodeFooter>\n </>\n )}\n\n {/* Source handle */}\n {handles?.source && (\n <HandleBoundary>\n <NodeHandle type=\"source\" />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport {\n WorkflowNode,\n WorkflowNodeHeader,\n WorkflowNodeTitle,\n WorkflowNodeDescription,\n WorkflowNodeAction,\n WorkflowNodeContent,\n WorkflowNodeFooter,\n WorkflowNodeSeparator,\n WorkflowNodeRow,\n workflowNodeVariants,\n}\nexport type { WorkflowNodeProps }\n","import { Panel as PanelPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowPanelProps = ComponentProps<typeof PanelPrimitive>\n\nfunction WorkflowPanel({ className, ...props }: WorkflowPanelProps) {\n return (\n <PanelPrimitive\n data-slot=\"workflow-panel\"\n className={cn(\"m-4 overflow-hidden rounded-md border bg-card p-1\", className)}\n {...props}\n />\n )\n}\n\nexport { WorkflowPanel }\nexport type { WorkflowPanelProps }\n","import { NodeToolbar, Position } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowToolbarProps = ComponentProps<typeof NodeToolbar>\n\nfunction WorkflowToolbar({ className, ...props }: WorkflowToolbarProps) {\n return (\n <NodeToolbar\n data-slot=\"workflow-toolbar\"\n className={cn(\"flex items-center gap-1 rounded-sm border bg-background p-1.5\", className)}\n position={Position.Bottom}\n {...props}\n />\n )\n}\n\nexport { WorkflowToolbar }\nexport type { WorkflowToolbarProps }\n"]}