prefect 3.6.14.dev6__py3-none-any.whl → 3.6.14.dev7__py3-none-any.whl

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 (211) hide show
  1. prefect/_build_info.py +3 -3
  2. prefect/server/ui-v2/assets/{artifact-card-fXxwNG3f.js → artifact-card-9Cw_dMVb.js} +2 -2
  3. prefect/server/ui-v2/assets/{artifact-card-fXxwNG3f.js.map → artifact-card-9Cw_dMVb.js.map} +1 -1
  4. prefect/server/ui-v2/assets/{artifact._id-BIyzb0Jb.js → artifact._id-zuZ8P2RD.js} +2 -2
  5. prefect/server/ui-v2/assets/{artifact._id-BIyzb0Jb.js.map → artifact._id-zuZ8P2RD.js.map} +1 -1
  6. prefect/server/ui-v2/assets/{automation-wizard-bDZICLpV.js → automation-wizard-D7nVgckT.js} +2 -2
  7. prefect/server/ui-v2/assets/{automation-wizard-bDZICLpV.js.map → automation-wizard-D7nVgckT.js.map} +1 -1
  8. prefect/server/ui-v2/assets/{automation._id-CmDL_Eta.js → automation._id-BhEFaDc6.js} +2 -2
  9. prefect/server/ui-v2/assets/{automation._id-CmDL_Eta.js.map → automation._id-BhEFaDc6.js.map} +1 -1
  10. prefect/server/ui-v2/assets/{automation_._id.edit-DY7_SAuk.js → automation_._id.edit-CffnUlbj.js} +2 -2
  11. prefect/server/ui-v2/assets/{automation_._id.edit-DY7_SAuk.js.map → automation_._id.edit-CffnUlbj.js.map} +1 -1
  12. prefect/server/ui-v2/assets/{automations-header-CgxOgR53.js → automations-header-qb94agIp.js} +2 -2
  13. prefect/server/ui-v2/assets/{automations-header-CgxOgR53.js.map → automations-header-qb94agIp.js.map} +1 -1
  14. prefect/server/ui-v2/assets/{base-job-template-form-section-DilLn1Ul.js → base-job-template-form-section-DdDSFAJa.js} +2 -2
  15. prefect/server/ui-v2/assets/{base-job-template-form-section-DilLn1Ul.js.map → base-job-template-form-section-DdDSFAJa.js.map} +1 -1
  16. prefect/server/ui-v2/assets/{block-type-details-Cx4npO8Y.js → block-type-details-2rIqbqoZ.js} +2 -2
  17. prefect/server/ui-v2/assets/{block-type-details-Cx4npO8Y.js.map → block-type-details-2rIqbqoZ.js.map} +1 -1
  18. prefect/server/ui-v2/assets/block-type-logo-DV1pSkV0.js +2 -0
  19. prefect/server/ui-v2/assets/{block-type-logo-FrtMLMYr.js.map → block-type-logo-DV1pSkV0.js.map} +1 -1
  20. prefect/server/ui-v2/assets/{block._id-CWi9g5N3.js → block._id-OeCbdPeL.js} +2 -2
  21. prefect/server/ui-v2/assets/{block._id-CWi9g5N3.js.map → block._id-OeCbdPeL.js.map} +1 -1
  22. prefect/server/ui-v2/assets/{block_._id.edit-wf0QVPUL.js → block_._id.edit-CD22VllN.js} +2 -2
  23. prefect/server/ui-v2/assets/{block_._id.edit-wf0QVPUL.js.map → block_._id.edit-CD22VllN.js.map} +1 -1
  24. prefect/server/ui-v2/assets/{catalog-Iv1gLDUd.js → catalog-Dj7lYV7b.js} +2 -2
  25. prefect/server/ui-v2/assets/{catalog-Iv1gLDUd.js.map → catalog-Dj7lYV7b.js.map} +1 -1
  26. prefect/server/ui-v2/assets/{catalog_._slug-DEHFXZzp.js → catalog_._slug-NLgWS8vG.js} +2 -2
  27. prefect/server/ui-v2/assets/{catalog_._slug-DEHFXZzp.js.map → catalog_._slug-NLgWS8vG.js.map} +1 -1
  28. prefect/server/ui-v2/assets/{catalog_._slug_.create-C-vFPUOy.js → catalog_._slug_.create-D0vc1Piy.js} +2 -2
  29. prefect/server/ui-v2/assets/{catalog_._slug_.create-C-vFPUOy.js.map → catalog_._slug_.create-D0vc1Piy.js.map} +1 -1
  30. prefect/server/ui-v2/assets/{collapsible-BlEqjqQu.js → collapsible-Dgk2Qvjj.js} +2 -2
  31. prefect/server/ui-v2/assets/{collapsible-BlEqjqQu.js.map → collapsible-Dgk2Qvjj.js.map} +1 -1
  32. prefect/server/ui-v2/assets/{concurrency-limit._id-VfgyonlO.js → concurrency-limit._id-BZiyM0NT.js} +2 -2
  33. prefect/server/ui-v2/assets/{concurrency-limit._id-VfgyonlO.js.map → concurrency-limit._id-BZiyM0NT.js.map} +1 -1
  34. prefect/server/ui-v2/assets/{create-fSiDZ1kD.js → create-1j1-8yhV.js} +2 -2
  35. prefect/server/ui-v2/assets/{create-fSiDZ1kD.js.map → create-1j1-8yhV.js.map} +1 -1
  36. prefect/server/ui-v2/assets/{create-CC32TiFK.js → create-H21iiYVl.js} +2 -2
  37. prefect/server/ui-v2/assets/{create-CC32TiFK.js.map → create-H21iiYVl.js.map} +1 -1
  38. prefect/server/ui-v2/assets/{data-table-B2NqBPUR.js → data-table-DHlbTUL7.js} +2 -2
  39. prefect/server/ui-v2/assets/{data-table-B2NqBPUR.js.map → data-table-DHlbTUL7.js.map} +1 -1
  40. prefect/server/ui-v2/assets/delete-confirmation-dialog-B9-8JHV7.js +2 -0
  41. prefect/server/ui-v2/assets/{delete-confirmation-dialog-jlBI67Pk.js.map → delete-confirmation-dialog-B9-8JHV7.js.map} +1 -1
  42. prefect/server/ui-v2/assets/{deployment-action-header-C203ndcC.js → deployment-action-header-DlD2GSJB.js} +2 -2
  43. prefect/server/ui-v2/assets/{deployment-action-header-C203ndcC.js.map → deployment-action-header-DlD2GSJB.js.map} +1 -1
  44. prefect/server/ui-v2/assets/{deployment-form-DB4i73UE.js → deployment-form-CFcOIeIi.js} +3 -3
  45. prefect/server/ui-v2/assets/{deployment-form-DB4i73UE.js.map → deployment-form-CFcOIeIi.js.map} +1 -1
  46. prefect/server/ui-v2/assets/{deployment-links-UZYTtmnK.js → deployment-links-DN2Oa0r1.js} +2 -2
  47. prefect/server/ui-v2/assets/{deployment-links-UZYTtmnK.js.map → deployment-links-DN2Oa0r1.js.map} +1 -1
  48. prefect/server/ui-v2/assets/{deployment._id-Drmf70gG.js → deployment._id-C8NPwIIQ.js} +2 -2
  49. prefect/server/ui-v2/assets/{deployment._id-Drmf70gG.js.map → deployment._id-C8NPwIIQ.js.map} +1 -1
  50. prefect/server/ui-v2/assets/{deployment._id-Bk44iuUn.js → deployment._id-DsVQUPNp.js} +2 -2
  51. prefect/server/ui-v2/assets/{deployment._id-Bk44iuUn.js.map → deployment._id-DsVQUPNp.js.map} +1 -1
  52. prefect/server/ui-v2/assets/deployment_._id.duplicate-4uYFgdPg.js +2 -0
  53. prefect/server/ui-v2/assets/{deployment_._id.duplicate-aUHtHuNO.js.map → deployment_._id.duplicate-4uYFgdPg.js.map} +1 -1
  54. prefect/server/ui-v2/assets/deployment_._id.edit-Z859_W76.js +2 -0
  55. prefect/server/ui-v2/assets/{deployment_._id.edit-CPRKkA-W.js.map → deployment_._id.edit-Z859_W76.js.map} +1 -1
  56. prefect/server/ui-v2/assets/{deployment_._id.run-C8EGDJeT.js → deployment_._id.run-MW5q2SRM.js} +2 -2
  57. prefect/server/ui-v2/assets/{deployment_._id.run-C8EGDJeT.js.map → deployment_._id.run-MW5q2SRM.js.map} +1 -1
  58. prefect/server/ui-v2/assets/{dropdown-menu-CT6uZu-V.js → dropdown-menu-DF4QR3Cp.js} +2 -2
  59. prefect/server/ui-v2/assets/{dropdown-menu-CT6uZu-V.js.map → dropdown-menu-DF4QR3Cp.js.map} +1 -1
  60. prefect/server/ui-v2/assets/{event-resource-display-DmCKu0PD.js → event-resource-display-DR3zL_k_.js} +2 -2
  61. prefect/server/ui-v2/assets/{event-resource-display-DmCKu0PD.js.map → event-resource-display-DR3zL_k_.js.map} +1 -1
  62. prefect/server/ui-v2/assets/{event._eventDate._eventId-DqO9viGu.js → event._eventDate._eventId-DfU7SalU.js} +2 -2
  63. prefect/server/ui-v2/assets/{event._eventDate._eventId-DqO9viGu.js.map → event._eventDate._eventId-DfU7SalU.js.map} +1 -1
  64. prefect/server/ui-v2/assets/flow-run-graph-Bf9t75GK.js +2 -0
  65. prefect/server/ui-v2/assets/{flow-run-graph-CIvkp1kl.js.map → flow-run-graph-Bf9t75GK.js.map} +1 -1
  66. prefect/server/ui-v2/assets/flow-run._id-33WKPXsZ.js +4 -0
  67. prefect/server/ui-v2/assets/flow-run._id-33WKPXsZ.js.map +1 -0
  68. prefect/server/ui-v2/assets/{flow-run._id-xahYswsG.js → flow-run._id-DTsj_xO3.js} +2 -2
  69. prefect/server/ui-v2/assets/{flow-run._id-xahYswsG.js.map → flow-run._id-DTsj_xO3.js.map} +1 -1
  70. prefect/server/ui-v2/assets/{flow-run._id-DyUEsBSd.js → flow-run._id-RL0qeSLl.js} +2 -2
  71. prefect/server/ui-v2/assets/{flow-run._id-DyUEsBSd.js.map → flow-run._id-RL0qeSLl.js.map} +1 -1
  72. prefect/server/ui-v2/assets/{flow-runs-pagination--FfnMca3.js → flow-runs-pagination-Bfelp8UO.js} +2 -2
  73. prefect/server/ui-v2/assets/{flow-runs-pagination--FfnMca3.js.map → flow-runs-pagination-Bfelp8UO.js.map} +1 -1
  74. prefect/server/ui-v2/assets/{flow._id-C_ho4p55.js → flow._id-DuQ5AUjj.js} +2 -2
  75. prefect/server/ui-v2/assets/{flow._id-C_ho4p55.js.map → flow._id-DuQ5AUjj.js.map} +1 -1
  76. prefect/server/ui-v2/assets/{form-CxD6-5Qf.js → form-DHWphysD.js} +2 -2
  77. prefect/server/ui-v2/assets/{form-CxD6-5Qf.js.map → form-DHWphysD.js.map} +1 -1
  78. prefect/server/ui-v2/assets/{header-iN9gVtk7.js → header-B9SuuoZx.js} +2 -2
  79. prefect/server/ui-v2/assets/{header-iN9gVtk7.js.map → header-B9SuuoZx.js.map} +1 -1
  80. prefect/server/ui-v2/assets/{header-CYjjmMrB.js → header-BK_NuSng.js} +2 -2
  81. prefect/server/ui-v2/assets/{header-CYjjmMrB.js.map → header-BK_NuSng.js.map} +1 -1
  82. prefect/server/ui-v2/assets/{header-Cjet3B6Z.js → header-nu-ZKuen.js} +2 -2
  83. prefect/server/ui-v2/assets/{header-Cjet3B6Z.js.map → header-nu-ZKuen.js.map} +1 -1
  84. prefect/server/ui-v2/assets/{index-CfMaY6sy.js → index-BCR-yD58.js} +2 -2
  85. prefect/server/ui-v2/assets/{index-CfMaY6sy.js.map → index-BCR-yD58.js.map} +1 -1
  86. prefect/server/ui-v2/assets/{index-ltOkPb3X.js → index-BPXdHXTb.js} +2 -2
  87. prefect/server/ui-v2/assets/{index-ltOkPb3X.js.map → index-BPXdHXTb.js.map} +1 -1
  88. prefect/server/ui-v2/assets/{index-CTeNzxT9.js → index-BqwU5GSv.js} +2 -2
  89. prefect/server/ui-v2/assets/{index-CTeNzxT9.js.map → index-BqwU5GSv.js.map} +1 -1
  90. prefect/server/ui-v2/assets/index-Br7MUvka.css +1 -0
  91. prefect/server/ui-v2/assets/{index-D-yYhKPg.js → index-C0MMjoUe.js} +2 -2
  92. prefect/server/ui-v2/assets/{index-D-yYhKPg.js.map → index-C0MMjoUe.js.map} +1 -1
  93. prefect/server/ui-v2/assets/{index-0opjCZAR.js → index-CPFMHkRh.js} +2 -2
  94. prefect/server/ui-v2/assets/{index-0opjCZAR.js.map → index-CPFMHkRh.js.map} +1 -1
  95. prefect/server/ui-v2/assets/{index-D8SbV2Tp.js → index-CYjH7t93.js} +2 -2
  96. prefect/server/ui-v2/assets/{index-D8SbV2Tp.js.map → index-CYjH7t93.js.map} +1 -1
  97. prefect/server/ui-v2/assets/{index-BF3HB5BS.js → index-Cj5ihRiw.js} +2 -2
  98. prefect/server/ui-v2/assets/{index-BF3HB5BS.js.map → index-Cj5ihRiw.js.map} +1 -1
  99. prefect/server/ui-v2/assets/{index-d9_i_klL.js → index-CqUa3fbN.js} +2 -2
  100. prefect/server/ui-v2/assets/{index-d9_i_klL.js.map → index-CqUa3fbN.js.map} +1 -1
  101. prefect/server/ui-v2/assets/{index-CSQa2wYx.js → index-DFS5GNpT.js} +2 -2
  102. prefect/server/ui-v2/assets/{index-CSQa2wYx.js.map → index-DFS5GNpT.js.map} +1 -1
  103. prefect/server/ui-v2/assets/{index-B5eJQPOP.js → index-DNuhJlQK.js} +2 -2
  104. prefect/server/ui-v2/assets/{index-B5eJQPOP.js.map → index-DNuhJlQK.js.map} +1 -1
  105. prefect/server/ui-v2/assets/{index-DQOPH4Rq.js → index-DSBmxhwG.js} +2 -2
  106. prefect/server/ui-v2/assets/{index-DQOPH4Rq.js.map → index-DSBmxhwG.js.map} +1 -1
  107. prefect/server/ui-v2/assets/{index-CT2kL3dS.js → index-DVsNA4UN.js} +2 -2
  108. prefect/server/ui-v2/assets/{index-CT2kL3dS.js.map → index-DVsNA4UN.js.map} +1 -1
  109. prefect/server/ui-v2/assets/{index-D4df3B9r.js → index-DWGx9irM.js} +2 -2
  110. prefect/server/ui-v2/assets/{index-D4df3B9r.js.map → index-DWGx9irM.js.map} +1 -1
  111. prefect/server/ui-v2/assets/{index-Cwd5Gvad.js → index-DcMpyvW7.js} +2 -2
  112. prefect/server/ui-v2/assets/{index-Cwd5Gvad.js.map → index-DcMpyvW7.js.map} +1 -1
  113. prefect/server/ui-v2/assets/{index-C2ayqOiQ.js → index-Dl_iSX0z.js} +2 -2
  114. prefect/server/ui-v2/assets/{index-C2ayqOiQ.js.map → index-Dl_iSX0z.js.map} +1 -1
  115. prefect/server/ui-v2/assets/{index-DI-aZXNg.js → index-DsK1RlS9.js} +2 -2
  116. prefect/server/ui-v2/assets/{index-DI-aZXNg.js.map → index-DsK1RlS9.js.map} +1 -1
  117. prefect/server/ui-v2/assets/{index-C3A0XavU.js → index-DtrQRjt_.js} +2 -2
  118. prefect/server/ui-v2/assets/{index-C3A0XavU.js.map → index-DtrQRjt_.js.map} +1 -1
  119. prefect/server/ui-v2/assets/{index-nxDkMXcY.js → index-_0OOjqn5.js} +13 -13
  120. prefect/server/ui-v2/assets/index-_0OOjqn5.js.map +1 -0
  121. prefect/server/ui-v2/assets/{index-BfXKkd3I.js → index-mj9GNKt7.js} +2 -2
  122. prefect/server/ui-v2/assets/{index-BfXKkd3I.js.map → index-mj9GNKt7.js.map} +1 -1
  123. prefect/server/ui-v2/assets/{index-D0ANIqVp.js → index-vRbn9rG4.js} +2 -2
  124. prefect/server/ui-v2/assets/{index-D0ANIqVp.js.map → index-vRbn9rG4.js.map} +1 -1
  125. prefect/server/ui-v2/assets/{json-input-BGfZindW.js → json-input-CMZiW5M2.js} +2 -2
  126. prefect/server/ui-v2/assets/{json-input-BGfZindW.js.map → json-input-CMZiW5M2.js.map} +1 -1
  127. prefect/server/ui-v2/assets/{key._key-mnO405kp.js → key._key-CdonPtNh.js} +2 -2
  128. prefect/server/ui-v2/assets/{key._key-mnO405kp.js.map → key._key-CdonPtNh.js.map} +1 -1
  129. prefect/server/ui-v2/assets/{lazy-markdown-CLclUkkd.js → lazy-markdown-CKcd9ksG.js} +2 -2
  130. prefect/server/ui-v2/assets/{lazy-markdown-CLclUkkd.js.map → lazy-markdown-CKcd9ksG.js.map} +1 -1
  131. prefect/server/ui-v2/assets/{login-ST_-h2GY.js → login-Dnd-tV90.js} +2 -2
  132. prefect/server/ui-v2/assets/{login-ST_-h2GY.js.map → login-Dnd-tV90.js.map} +1 -1
  133. prefect/server/ui-v2/assets/{markdown-input-DemuemAs.js → markdown-input-D6rfyTa_.js} +2 -2
  134. prefect/server/ui-v2/assets/{markdown-input-DemuemAs.js.map → markdown-input-D6rfyTa_.js.map} +1 -1
  135. prefect/server/ui-v2/assets/{python-example-snippet-BUllaeTS.js → python-example-snippet-eWuRXCxE.js} +3 -3
  136. prefect/server/ui-v2/assets/{python-example-snippet-BUllaeTS.js.map → python-example-snippet-eWuRXCxE.js.map} +1 -1
  137. prefect/server/ui-v2/assets/{python-input-DTpMdYLs.js → python-input-itfwkkBT.js} +2 -2
  138. prefect/server/ui-v2/assets/{python-input-DTpMdYLs.js.map → python-input-itfwkkBT.js.map} +1 -1
  139. prefect/server/ui-v2/assets/{radio-group-CJhtPDwC.js → radio-group-DeN-_krn.js} +2 -2
  140. prefect/server/ui-v2/assets/{radio-group-CJhtPDwC.js.map → radio-group-DeN-_krn.js.map} +1 -1
  141. prefect/server/ui-v2/assets/{route-error-state-D0wedcpP.js → route-error-state-tYzhKCqH.js} +2 -2
  142. prefect/server/ui-v2/assets/{route-error-state-D0wedcpP.js.map → route-error-state-tYzhKCqH.js.map} +1 -1
  143. prefect/server/ui-v2/assets/{schema-form-Cx-6swYW.js → schema-form-DDUzvjpL.js} +2 -2
  144. prefect/server/ui-v2/assets/{schema-form-Cx-6swYW.js.map → schema-form-DDUzvjpL.js.map} +1 -1
  145. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-CZkUje5U.js → schema-form-input-string-format-datetime-DrpJmvST.js} +4 -4
  146. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-CZkUje5U.js.map → schema-form-input-string-format-datetime-DrpJmvST.js.map} +1 -1
  147. prefect/server/ui-v2/assets/{settings-nHtCkknH.js → settings-OdrJDFrk.js} +2 -2
  148. prefect/server/ui-v2/assets/{settings-nHtCkknH.js.map → settings-OdrJDFrk.js.map} +1 -1
  149. prefect/server/ui-v2/assets/{sort-filter-QjOHFWPI.js → sort-filter-DaBGDmua.js} +2 -2
  150. prefect/server/ui-v2/assets/{sort-filter-QjOHFWPI.js.map → sort-filter-DaBGDmua.js.map} +1 -1
  151. prefect/server/ui-v2/assets/{table-Bx2Ol4j-.js → table-4GUC4YOD.js} +2 -2
  152. prefect/server/ui-v2/assets/{table-Bx2Ol4j-.js.map → table-4GUC4YOD.js.map} +1 -1
  153. prefect/server/ui-v2/assets/{tags-input-C7cxdTyV.js → tags-input-BvH9UY8h.js} +2 -2
  154. prefect/server/ui-v2/assets/{tags-input-C7cxdTyV.js.map → tags-input-BvH9UY8h.js.map} +1 -1
  155. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CG2F0Ufy.js → task-run-concurrency-limits-reset-dialog-CLZz3kwW.js} +2 -2
  156. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CG2F0Ufy.js.map → task-run-concurrency-limits-reset-dialog-CLZz3kwW.js.map} +1 -1
  157. prefect/server/ui-v2/assets/{task-run._id-CapS5wad.js → task-run._id-DHHzTQ9d.js} +2 -2
  158. prefect/server/ui-v2/assets/{task-run._id-CapS5wad.js.map → task-run._id-DHHzTQ9d.js.map} +1 -1
  159. prefect/server/ui-v2/assets/{task-run._id-CevQxX-E.js → task-run._id-DgXFfCuq.js} +2 -2
  160. prefect/server/ui-v2/assets/{task-run._id-CevQxX-E.js.map → task-run._id-DgXFfCuq.js.map} +1 -1
  161. prefect/server/ui-v2/assets/{task-runs-pagination-Dbwa2yPe.js → task-runs-pagination-fR9zqj38.js} +2 -2
  162. prefect/server/ui-v2/assets/{task-runs-pagination-Dbwa2yPe.js.map → task-runs-pagination-fR9zqj38.js.map} +1 -1
  163. prefect/server/ui-v2/assets/{textarea-vy4DM6KG.js → textarea-DL9UCBaB.js} +2 -2
  164. prefect/server/ui-v2/assets/{textarea-vy4DM6KG.js.map → textarea-DL9UCBaB.js.map} +1 -1
  165. prefect/server/ui-v2/assets/{timezone-select-DDUTUy-L.js → timezone-select-qBEoPcyO.js} +2 -2
  166. prefect/server/ui-v2/assets/{timezone-select-DDUTUy-L.js.map → timezone-select-qBEoPcyO.js.map} +1 -1
  167. prefect/server/ui-v2/assets/{toggle-group-Dx_fy9WJ.js → toggle-group-Cf-ZSSDP.js} +2 -2
  168. prefect/server/ui-v2/assets/{toggle-group-Dx_fy9WJ.js.map → toggle-group-Cf-ZSSDP.js.map} +1 -1
  169. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-ClQsotEa.js → use-delete-automation-confirmation-dialog-DRX9Kvie.js} +2 -2
  170. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-ClQsotEa.js.map → use-delete-automation-confirmation-dialog-DRX9Kvie.js.map} +1 -1
  171. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DM0Dy1PL.js → use-delete-block-document-confirmation-dialog-CogrfdiO.js} +2 -2
  172. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DM0Dy1PL.js.map → use-delete-block-document-confirmation-dialog-CogrfdiO.js.map} +1 -1
  173. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-UhMaQqzZ.js → use-flow-runs-selected-rows-CdMKKvm5.js} +2 -2
  174. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-UhMaQqzZ.js.map → use-flow-runs-selected-rows-CdMKKvm5.js.map} +1 -1
  175. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-P8C-ARMZ.js → use-get-artifacts-flow-task-runs-Be1qg-IF.js} +2 -2
  176. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-P8C-ARMZ.js.map → use-get-artifacts-flow-task-runs-Be1qg-IF.js.map} +1 -1
  177. prefect/server/ui-v2/assets/{use-quick-run-DT0VEa9Z.js → use-quick-run-DXDfXpvs.js} +2 -2
  178. prefect/server/ui-v2/assets/{use-quick-run-DT0VEa9Z.js.map → use-quick-run-DXDfXpvs.js.map} +1 -1
  179. prefect/server/ui-v2/assets/{use-state-favicon-DfEAuEQL.js → use-state-favicon-Dhkg1tqx.js} +2 -2
  180. prefect/server/ui-v2/assets/{use-state-favicon-DfEAuEQL.js.map → use-state-favicon-Dhkg1tqx.js.map} +1 -1
  181. prefect/server/ui-v2/assets/{use-stepper-1OG0a_eo.js → use-stepper-jTTsXpho.js} +2 -2
  182. prefect/server/ui-v2/assets/{use-stepper-1OG0a_eo.js.map → use-stepper-jTTsXpho.js.map} +1 -1
  183. prefect/server/ui-v2/assets/{utilities-DabzLyXd.js → utilities-CgJi7g2F.js} +2 -2
  184. prefect/server/ui-v2/assets/{utilities-DabzLyXd.js.map → utilities-CgJi7g2F.js.map} +1 -1
  185. prefect/server/ui-v2/assets/{work-pool-filter-CTTGgdIN.js → work-pool-filter-DLkRAAHz.js} +2 -2
  186. prefect/server/ui-v2/assets/{work-pool-filter-CTTGgdIN.js.map → work-pool-filter-DLkRAAHz.js.map} +1 -1
  187. prefect/server/ui-v2/assets/{work-pool-queue-toggle-B9KQxNdY.js → work-pool-queue-toggle-BFodtXQe.js} +2 -2
  188. prefect/server/ui-v2/assets/{work-pool-queue-toggle-B9KQxNdY.js.map → work-pool-queue-toggle-BFodtXQe.js.map} +1 -1
  189. prefect/server/ui-v2/assets/{work-pool._workPoolName-CGqG95Pv.js → work-pool._workPoolName-Bjh_bO5G.js} +2 -2
  190. prefect/server/ui-v2/assets/{work-pool._workPoolName-CGqG95Pv.js.map → work-pool._workPoolName-Bjh_bO5G.js.map} +1 -1
  191. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CcFrethu.js → work-pool_._workPoolName.edit-B-gnp5dc.js} +2 -2
  192. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CcFrethu.js.map → work-pool_._workPoolName.edit-B-gnp5dc.js.map} +1 -1
  193. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CwPnpSI9.js → work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js} +2 -2
  194. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CwPnpSI9.js.map → work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js.map} +1 -1
  195. prefect/server/ui-v2/assets/{work-queue-icon-text-Bix0rRM1.js → work-queue-icon-text-BK_qfkJJ.js} +2 -2
  196. prefect/server/ui-v2/assets/{work-queue-icon-text-Bix0rRM1.js.map → work-queue-icon-text-BK_qfkJJ.js.map} +1 -1
  197. prefect/server/ui-v2/index.html +2 -2
  198. {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/METADATA +1 -1
  199. {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/RECORD +202 -202
  200. prefect/server/ui-v2/assets/block-type-logo-FrtMLMYr.js +0 -2
  201. prefect/server/ui-v2/assets/delete-confirmation-dialog-jlBI67Pk.js +0 -2
  202. prefect/server/ui-v2/assets/deployment_._id.duplicate-aUHtHuNO.js +0 -2
  203. prefect/server/ui-v2/assets/deployment_._id.edit-CPRKkA-W.js +0 -2
  204. prefect/server/ui-v2/assets/flow-run-graph-CIvkp1kl.js +0 -2
  205. prefect/server/ui-v2/assets/flow-run._id-BT3wztDF.js +0 -4
  206. prefect/server/ui-v2/assets/flow-run._id-BT3wztDF.js.map +0 -1
  207. prefect/server/ui-v2/assets/index-CYc_PWA3.css +0 -1
  208. prefect/server/ui-v2/assets/index-nxDkMXcY.js.map +0 -1
  209. {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/WHEEL +0 -0
  210. {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/entry_points.txt +0 -0
  211. {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/licenses/LICENSE +0 -0
@@ -1,2 +1,2 @@
1
- import{s as n,j as t}from"./vendor-tanstack-BcZfOOfy.js";import{d5 as m,B as l,g as c,h as a,bs as u,bB as d,bD as x,dt as j}from"./index-nxDkMXcY.js";import{D as p}from"./delete-confirmation-dialog-jlBI67Pk.js";import{u as f,A as b,a as g,b as h,c as A,d as D}from"./use-delete-automation-confirmation-dialog-ClQsotEa.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./work-queue-icon-text-Bix0rRM1.js";import"./index-DQOPH4Rq.js";import"./dropdown-menu-CT6uZu-V.js";import"./use-delete-confirmation-dialog-CUdii6Lo.js";const B=({id:s})=>{const[o,i]=f(),{data:e}=n(m(s)),r=()=>i(e,{shouldNavigate:!0});return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col gap-6",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(N,{automation:e}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(b,{automation:e}),t.jsx(g,{id:e.id,onDelete:r})]})]}),t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsx(h,{automation:e}),t.jsx(A,{automation:e}),t.jsx(D,{automation:e})]})]}),t.jsx(p,{...o})]})},N=({automation:s})=>t.jsx(l,{children:t.jsxs(c,{children:[t.jsx(a,{children:t.jsx(u,{to:"/automations",className:"text-xl font-semibold",children:"Automations"})}),t.jsx(d,{}),t.jsx(a,{className:"text-xl font-semibold",children:t.jsx(x,{children:s.name})})]})});function G(){const{id:s}=j.useParams();return t.jsx(B,{id:s})}export{G as component};
2
- //# sourceMappingURL=automation._id-CmDL_Eta.js.map
1
+ import{s as n,j as t}from"./vendor-tanstack-BcZfOOfy.js";import{d7 as m,B as l,g as c,h as a,bs as u,bB as d,bD as x,dv as j}from"./index-_0OOjqn5.js";import{D as p}from"./delete-confirmation-dialog-B9-8JHV7.js";import{u as f,A as b,a as g,b as h,c as A,d as D}from"./use-delete-automation-confirmation-dialog-DRX9Kvie.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./work-queue-icon-text-BK_qfkJJ.js";import"./index-DSBmxhwG.js";import"./dropdown-menu-DF4QR3Cp.js";import"./use-delete-confirmation-dialog-CUdii6Lo.js";const B=({id:s})=>{const[o,i]=f(),{data:e}=n(m(s)),r=()=>i(e,{shouldNavigate:!0});return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col gap-6",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(N,{automation:e}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(b,{automation:e}),t.jsx(g,{id:e.id,onDelete:r})]})]}),t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsx(h,{automation:e}),t.jsx(A,{automation:e}),t.jsx(D,{automation:e})]})]}),t.jsx(p,{...o})]})},N=({automation:s})=>t.jsx(l,{children:t.jsxs(c,{children:[t.jsx(a,{children:t.jsx(u,{to:"/automations",className:"text-xl font-semibold",children:"Automations"})}),t.jsx(d,{}),t.jsx(a,{className:"text-xl font-semibold",children:t.jsx(x,{children:s.name})})]})});function G(){const{id:s}=j.useParams();return t.jsx(B,{id:s})}export{G as component};
2
+ //# sourceMappingURL=automation._id-BhEFaDc6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"automation._id-CmDL_Eta.js","sources":["../../src/components/automations/automation-details-page.tsx","../../src/routes/automations/automation.$id.tsx?tsr-split=component"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { type Automation, buildGetAutomationQuery } from \"@/api/automations\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\nimport {\n\tAutomationActions,\n\tAutomationDescription,\n\tAutomationTrigger,\n} from \"./automation-details\";\nimport { AutomationEnableToggle } from \"./automation-enable-toggle\";\nimport { AutomationsActionsMenu } from \"./automations-actions-menu\";\nimport { useDeleteAutomationConfirmationDialog } from \"./use-delete-automation-confirmation-dialog\";\n\ntype AutomationsDetailsPageProps = {\n\tid: string;\n};\n\nexport const AutomationDetailsPage = ({ id }: AutomationsDetailsPageProps) => {\n\tconst [dialogState, confirmDelete] = useDeleteAutomationConfirmationDialog();\n\tconst { data } = useSuspenseQuery(buildGetAutomationQuery(id));\n\n\tconst handleDelete = () => confirmDelete(data, { shouldNavigate: true });\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<NavHeader automation={data} />\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<AutomationEnableToggle automation={data} />\n\t\t\t\t\t\t<AutomationsActionsMenu id={data.id} onDelete={handleDelete} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t\t<AutomationDescription automation={data} />\n\t\t\t\t\t<AutomationTrigger automation={data} />\n\t\t\t\t\t<AutomationActions automation={data} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<DeleteConfirmationDialog {...dialogState} />\n\t\t</>\n\t);\n};\n\ntype NavHeaderProps = {\n\tautomation: Automation;\n};\nconst NavHeader = ({ automation }: NavHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/automations\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tAutomations\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>{automation.name}</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import { createFileRoute } from \"@tanstack/react-router\";\n\nimport { buildGetAutomationQuery } from \"@/api/automations\";\nimport { AutomationDetailsPage } from \"@/components/automations/automation-details-page\";\n\nexport const Route = createFileRoute(\"/automations/automation/$id\")({\n\tcomponent: RouteComponent,\n\tloader: ({ context, params }) =>\n\t\tcontext.queryClient.ensureQueryData(buildGetAutomationQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\treturn <AutomationDetailsPage id={id} />;\n}\n"],"names":["AutomationDetailsPage","id","dialogState","confirmDelete","useDeleteAutomationConfirmationDialog","data","useSuspenseQuery","buildGetAutomationQuery","handleDelete","jsxs","Fragment","jsx","NavHeader","AutomationEnableToggle","AutomationsActionsMenu","AutomationDescription","AutomationTrigger","AutomationActions","DeleteConfirmationDialog","automation","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","Route","useParams"],"mappings":"opBAwBO,MAAMA,EAAwB,CAAC,CAAE,GAAAC,KAAsC,CAC7E,KAAM,CAACC,EAAaC,CAAa,EAAIC,EAAA,EAC/B,CAAE,KAAAC,CAAA,EAASC,EAAiBC,EAAwBN,CAAE,CAAC,EAEvDO,EAAe,IAAML,EAAcE,EAAM,CAAE,eAAgB,GAAM,EAEvE,OACCI,EAAAA,KAAAC,WAAA,CACC,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAE,EAAAA,IAACC,EAAA,CAAU,WAAYP,CAAA,CAAM,EAC7BI,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAE,EAAAA,IAACE,EAAA,CAAuB,WAAYR,CAAA,CAAM,QACzCS,EAAA,CAAuB,GAAIT,EAAK,GAAI,SAAUG,CAAA,CAAc,CAAA,CAAA,CAC9D,CAAA,EACD,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAE,EAAAA,IAACI,EAAA,CAAsB,WAAYV,CAAA,CAAM,EACzCM,EAAAA,IAACK,EAAA,CAAkB,WAAYX,CAAA,CAAM,EACrCM,EAAAA,IAACM,EAAA,CAAkB,WAAYZ,CAAA,CAAM,CAAA,CAAA,CACtC,CAAA,EACD,EACAM,MAACO,EAAA,CAA0B,GAAGhB,CAAA,CAAa,CAAA,EAC5C,CAEF,EAKMU,EAAY,CAAC,CAAE,WAAAO,KAEnBR,EAAAA,IAACS,EAAA,CACA,SAAAX,EAAAA,KAACY,EAAA,CACA,SAAA,CAAAV,EAAAA,IAACW,EAAA,CACA,eAACC,EAAA,CAAe,GAAG,eAAe,UAAU,wBAAwB,uBAEpE,CAAA,CACD,QACCC,EAAA,EAAoB,EACrBb,EAAAA,IAACW,GAAe,UAAU,wBACzB,eAACG,EAAA,CAAgB,SAAAN,EAAW,KAAK,CAAA,CAClC,CAAA,CAAA,CACD,CAAA,CACD,ECxDF,SAASO,GAAiB,CACzB,KAAM,CAAEzB,GAAAA,CAAAA,EAAO0B,EAAMC,UAAAA,EACrB,OAAOjB,MAACX,GAAsB,GAAAC,EAAO,CACtC"}
1
+ {"version":3,"file":"automation._id-BhEFaDc6.js","sources":["../../src/components/automations/automation-details-page.tsx","../../src/routes/automations/automation.$id.tsx?tsr-split=component"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { type Automation, buildGetAutomationQuery } from \"@/api/automations\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\nimport {\n\tAutomationActions,\n\tAutomationDescription,\n\tAutomationTrigger,\n} from \"./automation-details\";\nimport { AutomationEnableToggle } from \"./automation-enable-toggle\";\nimport { AutomationsActionsMenu } from \"./automations-actions-menu\";\nimport { useDeleteAutomationConfirmationDialog } from \"./use-delete-automation-confirmation-dialog\";\n\ntype AutomationsDetailsPageProps = {\n\tid: string;\n};\n\nexport const AutomationDetailsPage = ({ id }: AutomationsDetailsPageProps) => {\n\tconst [dialogState, confirmDelete] = useDeleteAutomationConfirmationDialog();\n\tconst { data } = useSuspenseQuery(buildGetAutomationQuery(id));\n\n\tconst handleDelete = () => confirmDelete(data, { shouldNavigate: true });\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<NavHeader automation={data} />\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<AutomationEnableToggle automation={data} />\n\t\t\t\t\t\t<AutomationsActionsMenu id={data.id} onDelete={handleDelete} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t\t<AutomationDescription automation={data} />\n\t\t\t\t\t<AutomationTrigger automation={data} />\n\t\t\t\t\t<AutomationActions automation={data} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<DeleteConfirmationDialog {...dialogState} />\n\t\t</>\n\t);\n};\n\ntype NavHeaderProps = {\n\tautomation: Automation;\n};\nconst NavHeader = ({ automation }: NavHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/automations\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tAutomations\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>{automation.name}</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import { createFileRoute } from \"@tanstack/react-router\";\n\nimport { buildGetAutomationQuery } from \"@/api/automations\";\nimport { AutomationDetailsPage } from \"@/components/automations/automation-details-page\";\n\nexport const Route = createFileRoute(\"/automations/automation/$id\")({\n\tcomponent: RouteComponent,\n\tloader: ({ context, params }) =>\n\t\tcontext.queryClient.ensureQueryData(buildGetAutomationQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\treturn <AutomationDetailsPage id={id} />;\n}\n"],"names":["AutomationDetailsPage","id","dialogState","confirmDelete","useDeleteAutomationConfirmationDialog","data","useSuspenseQuery","buildGetAutomationQuery","handleDelete","jsxs","Fragment","jsx","NavHeader","AutomationEnableToggle","AutomationsActionsMenu","AutomationDescription","AutomationTrigger","AutomationActions","DeleteConfirmationDialog","automation","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","Route","useParams"],"mappings":"opBAwBO,MAAMA,EAAwB,CAAC,CAAE,GAAAC,KAAsC,CAC7E,KAAM,CAACC,EAAaC,CAAa,EAAIC,EAAA,EAC/B,CAAE,KAAAC,CAAA,EAASC,EAAiBC,EAAwBN,CAAE,CAAC,EAEvDO,EAAe,IAAML,EAAcE,EAAM,CAAE,eAAgB,GAAM,EAEvE,OACCI,EAAAA,KAAAC,WAAA,CACC,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAE,EAAAA,IAACC,EAAA,CAAU,WAAYP,CAAA,CAAM,EAC7BI,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAE,EAAAA,IAACE,EAAA,CAAuB,WAAYR,CAAA,CAAM,QACzCS,EAAA,CAAuB,GAAIT,EAAK,GAAI,SAAUG,CAAA,CAAc,CAAA,CAAA,CAC9D,CAAA,EACD,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAE,EAAAA,IAACI,EAAA,CAAsB,WAAYV,CAAA,CAAM,EACzCM,EAAAA,IAACK,EAAA,CAAkB,WAAYX,CAAA,CAAM,EACrCM,EAAAA,IAACM,EAAA,CAAkB,WAAYZ,CAAA,CAAM,CAAA,CAAA,CACtC,CAAA,EACD,EACAM,MAACO,EAAA,CAA0B,GAAGhB,CAAA,CAAa,CAAA,EAC5C,CAEF,EAKMU,EAAY,CAAC,CAAE,WAAAO,KAEnBR,EAAAA,IAACS,EAAA,CACA,SAAAX,EAAAA,KAACY,EAAA,CACA,SAAA,CAAAV,EAAAA,IAACW,EAAA,CACA,eAACC,EAAA,CAAe,GAAG,eAAe,UAAU,wBAAwB,uBAEpE,CAAA,CACD,QACCC,EAAA,EAAoB,EACrBb,EAAAA,IAACW,GAAe,UAAU,wBACzB,eAACG,EAAA,CAAgB,SAAAN,EAAW,KAAK,CAAA,CAClC,CAAA,CAAA,CACD,CAAA,CACD,ECxDF,SAASO,GAAiB,CACzB,KAAM,CAAEzB,GAAAA,CAAAA,EAAO0B,EAAMC,UAAAA,EACrB,OAAOjB,MAACX,GAAsB,GAAAC,EAAO,CACtC"}
@@ -1,2 +1,2 @@
1
- import{j as t,s as b,r as w,d as x}from"./vendor-tanstack-BcZfOOfy.js";import{D as _,B as A,g as j,h as d,bs as v,bB as k,bD as g,d5 as S,dO as E,y as p,dP as N}from"./index-nxDkMXcY.js";import{A as I}from"./automation-wizard-bDZICLpV.js";import{U as n}from"./automation-schema-BIBsyp0j.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./zod-Cuos7J7w.js";import"./form-CxD6-5Qf.js";import"./use-stepper-1OG0a_eo.js";import"./textarea-vy4DM6KG.js";import"./index-Cwd5Gvad.js";import"./radio-group-CJhtPDwC.js";import"./collapsible-BlEqjqQu.js";import"./tags-input-C7cxdTyV.js";const q=()=>t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(T,{}),t.jsx(_,{label:"Documentation",id:"automations-guide"})]}),T=()=>t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(A,{children:t.jsxs(j,{children:[t.jsx(d,{children:t.jsx(v,{to:"/automations",className:"text-xl font-semibold",children:"Automations"})}),t.jsx(k,{}),t.jsx(d,{className:"text-xl font-semibold",children:t.jsx(g,{children:"Edit Automation"})})]})})});function B(e){switch(e.type){case"run-deployment":return{type:"run-deployment",deployment_id:e.deployment_id??n,parameters:e.parameters??void 0,job_variables:e.job_variables??void 0};case"pause-deployment":case"resume-deployment":return{type:e.type,deployment_id:e.deployment_id??n};case"pause-work-queue":case"resume-work-queue":return{type:e.type,work_queue_id:e.work_queue_id??n};case"pause-work-pool":case"resume-work-pool":return{type:e.type,work_pool_id:e.work_pool_id??n};case"pause-automation":case"resume-automation":return{type:e.type,automation_id:e.automation_id??n};case"cancel-flow-run":case"suspend-flow-run":case"resume-flow-run":return{type:e.type};case"change-flow-run-state":return{type:"change-flow-run-state",state:e.state,name:e.name??void 0,message:e.message??void 0};case"send-notification":return{type:"send-notification",block_document_id:e.block_document_id,body:e.body,subject:e.subject};case"do-nothing":return{type:"do-nothing"};case"call-webhook":return{type:"do-nothing"};default:return{type:"do-nothing"}}}function c(e){switch(e.type){case"event":return{type:"event",posture:e.posture,threshold:e.threshold,within:e.within,match:e.match,match_related:Array.isArray(e.match_related)?e.match_related[0]:e.match_related,for_each:e.for_each,after:e.after,expect:e.expect};case"compound":return{type:"compound",triggers:e.triggers.map(c),require:e.require,within:e.within??void 0};case"sequence":return{type:"sequence",triggers:e.triggers.map(c),within:e.within??void 0};default:return{type:"event",posture:"Reactive",threshold:1,within:0}}}function V(e){if(e.type!=="event")return"custom";const o=e.match?.["prefect.resource.id"];if(!o)return"custom";const r=Array.isArray(o)?o[0]:o;return r?.startsWith("prefect.flow-run.")?"flow-run-state":r?.startsWith("prefect.deployment.")?"deployment-status":r?.startsWith("prefect.work-pool.")?"work-pool-status":r?.startsWith("prefect.work-queue.")?"work-queue-status":"custom"}function P(e){return{name:e.name,description:e.description||void 0,triggerTemplate:V(e.trigger),trigger:c(e.trigger),actions:e.actions.map(B)}}function F(e){return{name:e.name,description:e.description??"",trigger:e.trigger,actions:e.actions}}const D=e=>{const{automationId:o,onSuccess:r,onError:u}=e,{data:s,isLoading:i}=b(S(o)),a=w.useMemo(()=>{if(s)return P(s)},[s]),{replaceAutomation:l,isPending:f}=E();return{defaultValues:a,isLoading:i,updateAutomation:h=>{const y=F(h);l({id:o,enabled:s?.enabled??!0,...y},{onSuccess:()=>{r?.()},onError:m=>{u?.(m instanceof Error?m:new Error(String(m)))}})},isPending:f}},L=({id:e})=>{const o=x(),{defaultValues:r,updateAutomation:u,isPending:s}=D({automationId:e,onSuccess:()=>{p.success("Automation updated successfully"),o({to:"/automations"})},onError:a=>{p.error(`Failed to update automation: ${a.message}`,{duration:Number.POSITIVE_INFINITY})}}),i=a=>{u(a)};return t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsx(q,{}),t.jsx(I,{defaultValues:r,onSubmit:i,submitLabel:"Save",isSubmitting:s})]})};function oe(){const{id:e}=N.useParams();return t.jsx(L,{id:e})}export{oe as component};
2
- //# sourceMappingURL=automation_._id.edit-DY7_SAuk.js.map
1
+ import{j as t,s as b,r as w,d as x}from"./vendor-tanstack-BcZfOOfy.js";import{D as _,B as A,g as j,h as d,bs as v,bB as k,bD as g,d7 as S,dQ as E,y as p,dR as N}from"./index-_0OOjqn5.js";import{A as I}from"./automation-wizard-D7nVgckT.js";import{U as n}from"./automation-schema-BIBsyp0j.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./zod-Cuos7J7w.js";import"./form-DHWphysD.js";import"./use-stepper-jTTsXpho.js";import"./textarea-DL9UCBaB.js";import"./index-DcMpyvW7.js";import"./radio-group-DeN-_krn.js";import"./collapsible-Dgk2Qvjj.js";import"./tags-input-BvH9UY8h.js";const q=()=>t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(T,{}),t.jsx(_,{label:"Documentation",id:"automations-guide"})]}),T=()=>t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(A,{children:t.jsxs(j,{children:[t.jsx(d,{children:t.jsx(v,{to:"/automations",className:"text-xl font-semibold",children:"Automations"})}),t.jsx(k,{}),t.jsx(d,{className:"text-xl font-semibold",children:t.jsx(g,{children:"Edit Automation"})})]})})});function B(e){switch(e.type){case"run-deployment":return{type:"run-deployment",deployment_id:e.deployment_id??n,parameters:e.parameters??void 0,job_variables:e.job_variables??void 0};case"pause-deployment":case"resume-deployment":return{type:e.type,deployment_id:e.deployment_id??n};case"pause-work-queue":case"resume-work-queue":return{type:e.type,work_queue_id:e.work_queue_id??n};case"pause-work-pool":case"resume-work-pool":return{type:e.type,work_pool_id:e.work_pool_id??n};case"pause-automation":case"resume-automation":return{type:e.type,automation_id:e.automation_id??n};case"cancel-flow-run":case"suspend-flow-run":case"resume-flow-run":return{type:e.type};case"change-flow-run-state":return{type:"change-flow-run-state",state:e.state,name:e.name??void 0,message:e.message??void 0};case"send-notification":return{type:"send-notification",block_document_id:e.block_document_id,body:e.body,subject:e.subject};case"do-nothing":return{type:"do-nothing"};case"call-webhook":return{type:"do-nothing"};default:return{type:"do-nothing"}}}function c(e){switch(e.type){case"event":return{type:"event",posture:e.posture,threshold:e.threshold,within:e.within,match:e.match,match_related:Array.isArray(e.match_related)?e.match_related[0]:e.match_related,for_each:e.for_each,after:e.after,expect:e.expect};case"compound":return{type:"compound",triggers:e.triggers.map(c),require:e.require,within:e.within??void 0};case"sequence":return{type:"sequence",triggers:e.triggers.map(c),within:e.within??void 0};default:return{type:"event",posture:"Reactive",threshold:1,within:0}}}function V(e){if(e.type!=="event")return"custom";const o=e.match?.["prefect.resource.id"];if(!o)return"custom";const r=Array.isArray(o)?o[0]:o;return r?.startsWith("prefect.flow-run.")?"flow-run-state":r?.startsWith("prefect.deployment.")?"deployment-status":r?.startsWith("prefect.work-pool.")?"work-pool-status":r?.startsWith("prefect.work-queue.")?"work-queue-status":"custom"}function F(e){return{name:e.name,description:e.description||void 0,triggerTemplate:V(e.trigger),trigger:c(e.trigger),actions:e.actions.map(B)}}function P(e){return{name:e.name,description:e.description??"",trigger:e.trigger,actions:e.actions}}const R=e=>{const{automationId:o,onSuccess:r,onError:u}=e,{data:s,isLoading:i}=b(S(o)),a=w.useMemo(()=>{if(s)return F(s)},[s]),{replaceAutomation:l,isPending:f}=E();return{defaultValues:a,isLoading:i,updateAutomation:h=>{const y=P(h);l({id:o,enabled:s?.enabled??!0,...y},{onSuccess:()=>{r?.()},onError:m=>{u?.(m instanceof Error?m:new Error(String(m)))}})},isPending:f}},D=({id:e})=>{const o=x(),{defaultValues:r,updateAutomation:u,isPending:s}=R({automationId:e,onSuccess:()=>{p.success("Automation updated successfully"),o({to:"/automations"})},onError:a=>{p.error(`Failed to update automation: ${a.message}`,{duration:Number.POSITIVE_INFINITY})}}),i=a=>{u(a)};return t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsx(q,{}),t.jsx(I,{defaultValues:r,onSubmit:i,submitLabel:"Save",isSubmitting:s})]})};function oe(){const{id:e}=N.useParams();return t.jsx(D,{id:e})}export{oe as component};
2
+ //# sourceMappingURL=automation_._id.edit-CffnUlbj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"automation_._id.edit-DY7_SAuk.js","sources":["../../src/components/automations/automations-edit-header/automations-edit-header.tsx","../../src/components/automations/automations-wizard/use-edit-automation.ts","../../src/components/automations/automation-edit-page.tsx","../../src/routes/automations/automation_.$id.edit.tsx?tsr-split=component"],"sourcesContent":["import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { DocsLink } from \"@/components/ui/docs-link\";\n\nexport const AutomationsEditHeader = () => (\n\t<div className=\"flex items-center justify-between\">\n\t\t<NavHeader />\n\t\t<DocsLink label=\"Documentation\" id=\"automations-guide\" />\n\t</div>\n);\n\nconst NavHeader = () => (\n\t<div className=\"flex items-center gap-2\">\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/automations\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tAutomations\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>Edit Automation</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t</div>\n);\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport {\n\ttype Automation,\n\tbuildGetAutomationQuery,\n\tuseReplaceAutomation,\n} from \"@/api/automations\";\nimport type { components } from \"@/api/prefect\";\nimport {\n\ttype AutomationWizardSchema as AutomationWizardSchemaType,\n\ttype TriggerInput,\n\ttype TriggerTemplate,\n\tUNASSIGNED,\n} from \"./automation-schema\";\n\ntype AutomationAction = Automation[\"actions\"][number];\ntype AutomationTrigger = Automation[\"trigger\"];\ntype AutomationUpdate = components[\"schemas\"][\"AutomationUpdate\"];\n\n/**\n * Input type for the automation wizard form (before Zod transformations).\n * This represents what the form fields accept, not the transformed output.\n */\ntype AutomationWizardFormInput = {\n\tname: string;\n\tdescription?: string;\n\ttriggerTemplate?: TriggerTemplate;\n\ttrigger: TriggerInput;\n\tactions: ActionFormInput[];\n};\n\n/**\n * Input type for actions (before Zod transformations).\n * These types don't have the `source` field - that's added by the transform.\n */\ntype ActionFormInput =\n\t| { type: \"do-nothing\" }\n\t| { type: \"cancel-flow-run\" | \"suspend-flow-run\" | \"resume-flow-run\" }\n\t| {\n\t\t\ttype: \"change-flow-run-state\";\n\t\t\tstate:\n\t\t\t\t| \"COMPLETED\"\n\t\t\t\t| \"RUNNING\"\n\t\t\t\t| \"SCHEDULED\"\n\t\t\t\t| \"PENDING\"\n\t\t\t\t| \"FAILED\"\n\t\t\t\t| \"CANCELLED\"\n\t\t\t\t| \"CANCELLING\"\n\t\t\t\t| \"CRASHED\"\n\t\t\t\t| \"PAUSED\";\n\t\t\tname?: string;\n\t\t\tmessage?: string;\n\t }\n\t| {\n\t\t\ttype: \"run-deployment\";\n\t\t\tdeployment_id: string;\n\t\t\tparameters?: Record<string, unknown>;\n\t\t\tjob_variables?: Record<string, unknown>;\n\t }\n\t| {\n\t\t\ttype: \"pause-deployment\" | \"resume-deployment\";\n\t\t\tdeployment_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-work-queue\" | \"resume-work-queue\";\n\t\t\twork_queue_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-work-pool\" | \"resume-work-pool\";\n\t\t\twork_pool_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-automation\" | \"resume-automation\";\n\t\t\tautomation_id: string;\n\t }\n\t| {\n\t\t\ttype: \"send-notification\";\n\t\t\tblock_document_id: string;\n\t\t\tbody: string;\n\t\t\tsubject: string;\n\t };\n\ntype UseEditAutomationOptions = {\n\tautomationId: string;\n\tonSuccess?: () => void;\n\tonError?: (error: Error) => void;\n};\n\ntype UseEditAutomationReturn = {\n\tdefaultValues: AutomationWizardFormInput | undefined;\n\tisLoading: boolean;\n\tupdateAutomation: (values: AutomationWizardSchemaType) => void;\n\tisPending: boolean;\n};\n\n/**\n * Transforms an API action to form-compatible format.\n * Converts null resource IDs to UNASSIGNED constant and removes source fields.\n */\nfunction transformActionToFormValue(action: AutomationAction): ActionFormInput {\n\tswitch (action.type) {\n\t\tcase \"run-deployment\": {\n\t\t\treturn {\n\t\t\t\ttype: \"run-deployment\",\n\t\t\t\tdeployment_id: action.deployment_id ?? UNASSIGNED,\n\t\t\t\tparameters: action.parameters ?? undefined,\n\t\t\t\tjob_variables: action.job_variables ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-deployment\":\n\t\tcase \"resume-deployment\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\tdeployment_id: action.deployment_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-work-queue\":\n\t\tcase \"resume-work-queue\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\twork_queue_id: action.work_queue_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-work-pool\":\n\t\tcase \"resume-work-pool\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\twork_pool_id: action.work_pool_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-automation\":\n\t\tcase \"resume-automation\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\tautomation_id: action.automation_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"cancel-flow-run\":\n\t\tcase \"suspend-flow-run\":\n\t\tcase \"resume-flow-run\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t};\n\t\t}\n\t\tcase \"change-flow-run-state\": {\n\t\t\treturn {\n\t\t\t\ttype: \"change-flow-run-state\",\n\t\t\t\tstate: action.state,\n\t\t\t\tname: action.name ?? undefined,\n\t\t\t\tmessage: action.message ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"send-notification\": {\n\t\t\treturn {\n\t\t\t\ttype: \"send-notification\",\n\t\t\t\tblock_document_id: action.block_document_id,\n\t\t\t\tbody: action.body,\n\t\t\t\tsubject: action.subject,\n\t\t\t};\n\t\t}\n\t\tcase \"do-nothing\": {\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t\tcase \"call-webhook\": {\n\t\t\t// call-webhook is not supported in the form schema, treat as do-nothing\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\t// Fallback for any unknown action types\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t}\n}\n\n/**\n * Transforms an API trigger to form-compatible format.\n * Handles event triggers, compound triggers, and sequence triggers.\n */\nfunction transformTriggerToFormValue(trigger: AutomationTrigger): TriggerInput {\n\tswitch (trigger.type) {\n\t\tcase \"event\": {\n\t\t\treturn {\n\t\t\t\ttype: \"event\",\n\t\t\t\tposture: trigger.posture,\n\t\t\t\tthreshold: trigger.threshold,\n\t\t\t\twithin: trigger.within,\n\t\t\t\tmatch: trigger.match,\n\t\t\t\tmatch_related: Array.isArray(trigger.match_related)\n\t\t\t\t\t? trigger.match_related[0]\n\t\t\t\t\t: trigger.match_related,\n\t\t\t\tfor_each: trigger.for_each,\n\t\t\t\tafter: trigger.after,\n\t\t\t\texpect: trigger.expect,\n\t\t\t};\n\t\t}\n\t\tcase \"compound\": {\n\t\t\treturn {\n\t\t\t\ttype: \"compound\",\n\t\t\t\ttriggers: trigger.triggers.map(transformTriggerToFormValue),\n\t\t\t\trequire: trigger.require,\n\t\t\t\twithin: trigger.within ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"sequence\": {\n\t\t\treturn {\n\t\t\t\ttype: \"sequence\",\n\t\t\t\ttriggers: trigger.triggers.map(transformTriggerToFormValue),\n\t\t\t\twithin: trigger.within ?? undefined,\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\t// Fallback to a basic event trigger\n\t\t\treturn {\n\t\t\t\ttype: \"event\",\n\t\t\t\tposture: \"Reactive\",\n\t\t\t\tthreshold: 1,\n\t\t\t\twithin: 0,\n\t\t\t};\n\t\t}\n\t}\n}\n\n/**\n * Infers the trigger template from an event trigger's match conditions.\n * Returns \"custom\" if the template cannot be determined.\n */\nfunction inferTriggerTemplate(trigger: AutomationTrigger): TriggerTemplate {\n\tif (trigger.type !== \"event\") {\n\t\treturn \"custom\";\n\t}\n\n\tconst resourceId = trigger.match?.[\"prefect.resource.id\"];\n\tif (!resourceId) {\n\t\treturn \"custom\";\n\t}\n\n\tconst resourceIdStr = Array.isArray(resourceId) ? resourceId[0] : resourceId;\n\n\tif (resourceIdStr?.startsWith(\"prefect.flow-run.\")) {\n\t\treturn \"flow-run-state\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.deployment.\")) {\n\t\treturn \"deployment-status\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.work-pool.\")) {\n\t\treturn \"work-pool-status\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.work-queue.\")) {\n\t\treturn \"work-queue-status\";\n\t}\n\n\treturn \"custom\";\n}\n\n/**\n * Transforms API automation data to form-compatible values.\n * Converts null resource IDs to UNASSIGNED, removes source fields from actions,\n * and handles trigger transformations.\n */\nexport function transformAutomationToFormValues(\n\tautomation: Automation,\n): AutomationWizardFormInput {\n\treturn {\n\t\tname: automation.name,\n\t\tdescription: automation.description || undefined,\n\t\ttriggerTemplate: inferTriggerTemplate(automation.trigger),\n\t\ttrigger: transformTriggerToFormValue(automation.trigger),\n\t\tactions: automation.actions.map(transformActionToFormValue),\n\t};\n}\n\n/**\n * Transforms form values to API update format.\n * The Zod schema transformations handle most of the conversion (UNASSIGNED -> null, adding source fields).\n * This function removes form-only fields and ensures proper typing.\n */\nexport function transformFormValuesToApi(\n\tvalues: AutomationWizardSchemaType,\n): Omit<AutomationUpdate, \"enabled\"> {\n\treturn {\n\t\tname: values.name,\n\t\tdescription: values.description ?? \"\",\n\t\ttrigger: values.trigger,\n\t\tactions: values.actions,\n\t};\n}\n\n/**\n * Hook for editing an automation.\n * Fetches automation data, transforms it for form editing, and handles update submissions.\n */\nexport const useEditAutomation = (\n\toptions: UseEditAutomationOptions,\n): UseEditAutomationReturn => {\n\tconst { automationId, onSuccess, onError } = options;\n\n\tconst { data: automation, isLoading } = useSuspenseQuery(\n\t\tbuildGetAutomationQuery(automationId),\n\t);\n\n\tconst defaultValues = useMemo(() => {\n\t\tif (!automation) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn transformAutomationToFormValues(automation);\n\t}, [automation]);\n\n\tconst { replaceAutomation: replaceAutomationMutation, isPending } =\n\t\tuseReplaceAutomation();\n\n\tconst updateAutomation = (values: AutomationWizardSchemaType) => {\n\t\tconst apiValues = transformFormValuesToApi(values);\n\t\treplaceAutomationMutation(\n\t\t\t{\n\t\t\t\tid: automationId,\n\t\t\t\tenabled: automation?.enabled ?? true,\n\t\t\t\t...apiValues,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tonSuccess?.();\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\tonError?.(error instanceof Error ? error : new Error(String(error)));\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn {\n\t\tdefaultValues,\n\t\tisLoading,\n\t\tupdateAutomation,\n\t\tisPending,\n\t};\n};\n","import { useNavigate } from \"@tanstack/react-router\";\nimport { toast } from \"sonner\";\nimport { AutomationsEditHeader } from \"./automations-edit-header\";\nimport type { AutomationWizardSchema } from \"./automations-wizard/automation-schema\";\nimport { AutomationWizard } from \"./automations-wizard/automation-wizard\";\nimport { useEditAutomation } from \"./automations-wizard/use-edit-automation\";\n\ntype AutomationEditPageProps = {\n\tid: string;\n};\n\nexport const AutomationEditPage = ({ id }: AutomationEditPageProps) => {\n\tconst navigate = useNavigate();\n\n\tconst { defaultValues, updateAutomation, isPending } = useEditAutomation({\n\t\tautomationId: id,\n\t\tonSuccess: () => {\n\t\t\ttoast.success(\"Automation updated successfully\");\n\t\t\tvoid navigate({ to: \"/automations\" });\n\t\t},\n\t\tonError: (error) => {\n\t\t\ttoast.error(`Failed to update automation: ${error.message}`, {\n\t\t\t\tduration: Number.POSITIVE_INFINITY,\n\t\t\t});\n\t\t},\n\t});\n\n\tconst handleSubmit = (values: AutomationWizardSchema) => {\n\t\tupdateAutomation(values);\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<AutomationsEditHeader />\n\t\t\t<AutomationWizard\n\t\t\t\tdefaultValues={defaultValues}\n\t\t\t\tonSubmit={handleSubmit}\n\t\t\t\tsubmitLabel=\"Save\"\n\t\t\t\tisSubmitting={isPending}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","import { createFileRoute } from \"@tanstack/react-router\";\n\nimport { buildGetAutomationQuery } from \"@/api/automations\";\nimport { AutomationEditPage } from \"@/components/automations/automation-edit-page\";\n\nexport const Route = createFileRoute(\"/automations/automation_/$id/edit\")({\n\tcomponent: RouteComponent,\n\tloader: ({ context, params }) =>\n\t\tcontext.queryClient.ensureQueryData(buildGetAutomationQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\treturn <AutomationEditPage id={id} />;\n}\n"],"names":["AutomationsEditHeader","jsxs","jsx","NavHeader","DocsLink","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","transformActionToFormValue","action","UNASSIGNED","transformTriggerToFormValue","trigger","inferTriggerTemplate","resourceId","resourceIdStr","transformAutomationToFormValues","automation","transformFormValuesToApi","values","useEditAutomation","options","automationId","onSuccess","onError","isLoading","useSuspenseQuery","buildGetAutomationQuery","defaultValues","useMemo","replaceAutomationMutation","isPending","useReplaceAutomation","apiValues","error","AutomationEditPage","id","navigate","useNavigate","updateAutomation","toast","handleSubmit","AutomationWizard","RouteComponent","Route","useParams"],"mappings":"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"}
1
+ {"version":3,"file":"automation_._id.edit-CffnUlbj.js","sources":["../../src/components/automations/automations-edit-header/automations-edit-header.tsx","../../src/components/automations/automations-wizard/use-edit-automation.ts","../../src/components/automations/automation-edit-page.tsx","../../src/routes/automations/automation_.$id.edit.tsx?tsr-split=component"],"sourcesContent":["import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { DocsLink } from \"@/components/ui/docs-link\";\n\nexport const AutomationsEditHeader = () => (\n\t<div className=\"flex items-center justify-between\">\n\t\t<NavHeader />\n\t\t<DocsLink label=\"Documentation\" id=\"automations-guide\" />\n\t</div>\n);\n\nconst NavHeader = () => (\n\t<div className=\"flex items-center gap-2\">\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/automations\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tAutomations\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>Edit Automation</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t</div>\n);\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport {\n\ttype Automation,\n\tbuildGetAutomationQuery,\n\tuseReplaceAutomation,\n} from \"@/api/automations\";\nimport type { components } from \"@/api/prefect\";\nimport {\n\ttype AutomationWizardSchema as AutomationWizardSchemaType,\n\ttype TriggerInput,\n\ttype TriggerTemplate,\n\tUNASSIGNED,\n} from \"./automation-schema\";\n\ntype AutomationAction = Automation[\"actions\"][number];\ntype AutomationTrigger = Automation[\"trigger\"];\ntype AutomationUpdate = components[\"schemas\"][\"AutomationUpdate\"];\n\n/**\n * Input type for the automation wizard form (before Zod transformations).\n * This represents what the form fields accept, not the transformed output.\n */\ntype AutomationWizardFormInput = {\n\tname: string;\n\tdescription?: string;\n\ttriggerTemplate?: TriggerTemplate;\n\ttrigger: TriggerInput;\n\tactions: ActionFormInput[];\n};\n\n/**\n * Input type for actions (before Zod transformations).\n * These types don't have the `source` field - that's added by the transform.\n */\ntype ActionFormInput =\n\t| { type: \"do-nothing\" }\n\t| { type: \"cancel-flow-run\" | \"suspend-flow-run\" | \"resume-flow-run\" }\n\t| {\n\t\t\ttype: \"change-flow-run-state\";\n\t\t\tstate:\n\t\t\t\t| \"COMPLETED\"\n\t\t\t\t| \"RUNNING\"\n\t\t\t\t| \"SCHEDULED\"\n\t\t\t\t| \"PENDING\"\n\t\t\t\t| \"FAILED\"\n\t\t\t\t| \"CANCELLED\"\n\t\t\t\t| \"CANCELLING\"\n\t\t\t\t| \"CRASHED\"\n\t\t\t\t| \"PAUSED\";\n\t\t\tname?: string;\n\t\t\tmessage?: string;\n\t }\n\t| {\n\t\t\ttype: \"run-deployment\";\n\t\t\tdeployment_id: string;\n\t\t\tparameters?: Record<string, unknown>;\n\t\t\tjob_variables?: Record<string, unknown>;\n\t }\n\t| {\n\t\t\ttype: \"pause-deployment\" | \"resume-deployment\";\n\t\t\tdeployment_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-work-queue\" | \"resume-work-queue\";\n\t\t\twork_queue_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-work-pool\" | \"resume-work-pool\";\n\t\t\twork_pool_id: string;\n\t }\n\t| {\n\t\t\ttype: \"pause-automation\" | \"resume-automation\";\n\t\t\tautomation_id: string;\n\t }\n\t| {\n\t\t\ttype: \"send-notification\";\n\t\t\tblock_document_id: string;\n\t\t\tbody: string;\n\t\t\tsubject: string;\n\t };\n\ntype UseEditAutomationOptions = {\n\tautomationId: string;\n\tonSuccess?: () => void;\n\tonError?: (error: Error) => void;\n};\n\ntype UseEditAutomationReturn = {\n\tdefaultValues: AutomationWizardFormInput | undefined;\n\tisLoading: boolean;\n\tupdateAutomation: (values: AutomationWizardSchemaType) => void;\n\tisPending: boolean;\n};\n\n/**\n * Transforms an API action to form-compatible format.\n * Converts null resource IDs to UNASSIGNED constant and removes source fields.\n */\nfunction transformActionToFormValue(action: AutomationAction): ActionFormInput {\n\tswitch (action.type) {\n\t\tcase \"run-deployment\": {\n\t\t\treturn {\n\t\t\t\ttype: \"run-deployment\",\n\t\t\t\tdeployment_id: action.deployment_id ?? UNASSIGNED,\n\t\t\t\tparameters: action.parameters ?? undefined,\n\t\t\t\tjob_variables: action.job_variables ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-deployment\":\n\t\tcase \"resume-deployment\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\tdeployment_id: action.deployment_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-work-queue\":\n\t\tcase \"resume-work-queue\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\twork_queue_id: action.work_queue_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-work-pool\":\n\t\tcase \"resume-work-pool\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\twork_pool_id: action.work_pool_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"pause-automation\":\n\t\tcase \"resume-automation\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t\tautomation_id: action.automation_id ?? UNASSIGNED,\n\t\t\t};\n\t\t}\n\t\tcase \"cancel-flow-run\":\n\t\tcase \"suspend-flow-run\":\n\t\tcase \"resume-flow-run\": {\n\t\t\treturn {\n\t\t\t\ttype: action.type,\n\t\t\t};\n\t\t}\n\t\tcase \"change-flow-run-state\": {\n\t\t\treturn {\n\t\t\t\ttype: \"change-flow-run-state\",\n\t\t\t\tstate: action.state,\n\t\t\t\tname: action.name ?? undefined,\n\t\t\t\tmessage: action.message ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"send-notification\": {\n\t\t\treturn {\n\t\t\t\ttype: \"send-notification\",\n\t\t\t\tblock_document_id: action.block_document_id,\n\t\t\t\tbody: action.body,\n\t\t\t\tsubject: action.subject,\n\t\t\t};\n\t\t}\n\t\tcase \"do-nothing\": {\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t\tcase \"call-webhook\": {\n\t\t\t// call-webhook is not supported in the form schema, treat as do-nothing\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\t// Fallback for any unknown action types\n\t\t\treturn {\n\t\t\t\ttype: \"do-nothing\",\n\t\t\t};\n\t\t}\n\t}\n}\n\n/**\n * Transforms an API trigger to form-compatible format.\n * Handles event triggers, compound triggers, and sequence triggers.\n */\nfunction transformTriggerToFormValue(trigger: AutomationTrigger): TriggerInput {\n\tswitch (trigger.type) {\n\t\tcase \"event\": {\n\t\t\treturn {\n\t\t\t\ttype: \"event\",\n\t\t\t\tposture: trigger.posture,\n\t\t\t\tthreshold: trigger.threshold,\n\t\t\t\twithin: trigger.within,\n\t\t\t\tmatch: trigger.match,\n\t\t\t\tmatch_related: Array.isArray(trigger.match_related)\n\t\t\t\t\t? trigger.match_related[0]\n\t\t\t\t\t: trigger.match_related,\n\t\t\t\tfor_each: trigger.for_each,\n\t\t\t\tafter: trigger.after,\n\t\t\t\texpect: trigger.expect,\n\t\t\t};\n\t\t}\n\t\tcase \"compound\": {\n\t\t\treturn {\n\t\t\t\ttype: \"compound\",\n\t\t\t\ttriggers: trigger.triggers.map(transformTriggerToFormValue),\n\t\t\t\trequire: trigger.require,\n\t\t\t\twithin: trigger.within ?? undefined,\n\t\t\t};\n\t\t}\n\t\tcase \"sequence\": {\n\t\t\treturn {\n\t\t\t\ttype: \"sequence\",\n\t\t\t\ttriggers: trigger.triggers.map(transformTriggerToFormValue),\n\t\t\t\twithin: trigger.within ?? undefined,\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\t// Fallback to a basic event trigger\n\t\t\treturn {\n\t\t\t\ttype: \"event\",\n\t\t\t\tposture: \"Reactive\",\n\t\t\t\tthreshold: 1,\n\t\t\t\twithin: 0,\n\t\t\t};\n\t\t}\n\t}\n}\n\n/**\n * Infers the trigger template from an event trigger's match conditions.\n * Returns \"custom\" if the template cannot be determined.\n */\nfunction inferTriggerTemplate(trigger: AutomationTrigger): TriggerTemplate {\n\tif (trigger.type !== \"event\") {\n\t\treturn \"custom\";\n\t}\n\n\tconst resourceId = trigger.match?.[\"prefect.resource.id\"];\n\tif (!resourceId) {\n\t\treturn \"custom\";\n\t}\n\n\tconst resourceIdStr = Array.isArray(resourceId) ? resourceId[0] : resourceId;\n\n\tif (resourceIdStr?.startsWith(\"prefect.flow-run.\")) {\n\t\treturn \"flow-run-state\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.deployment.\")) {\n\t\treturn \"deployment-status\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.work-pool.\")) {\n\t\treturn \"work-pool-status\";\n\t}\n\tif (resourceIdStr?.startsWith(\"prefect.work-queue.\")) {\n\t\treturn \"work-queue-status\";\n\t}\n\n\treturn \"custom\";\n}\n\n/**\n * Transforms API automation data to form-compatible values.\n * Converts null resource IDs to UNASSIGNED, removes source fields from actions,\n * and handles trigger transformations.\n */\nexport function transformAutomationToFormValues(\n\tautomation: Automation,\n): AutomationWizardFormInput {\n\treturn {\n\t\tname: automation.name,\n\t\tdescription: automation.description || undefined,\n\t\ttriggerTemplate: inferTriggerTemplate(automation.trigger),\n\t\ttrigger: transformTriggerToFormValue(automation.trigger),\n\t\tactions: automation.actions.map(transformActionToFormValue),\n\t};\n}\n\n/**\n * Transforms form values to API update format.\n * The Zod schema transformations handle most of the conversion (UNASSIGNED -> null, adding source fields).\n * This function removes form-only fields and ensures proper typing.\n */\nexport function transformFormValuesToApi(\n\tvalues: AutomationWizardSchemaType,\n): Omit<AutomationUpdate, \"enabled\"> {\n\treturn {\n\t\tname: values.name,\n\t\tdescription: values.description ?? \"\",\n\t\ttrigger: values.trigger,\n\t\tactions: values.actions,\n\t};\n}\n\n/**\n * Hook for editing an automation.\n * Fetches automation data, transforms it for form editing, and handles update submissions.\n */\nexport const useEditAutomation = (\n\toptions: UseEditAutomationOptions,\n): UseEditAutomationReturn => {\n\tconst { automationId, onSuccess, onError } = options;\n\n\tconst { data: automation, isLoading } = useSuspenseQuery(\n\t\tbuildGetAutomationQuery(automationId),\n\t);\n\n\tconst defaultValues = useMemo(() => {\n\t\tif (!automation) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn transformAutomationToFormValues(automation);\n\t}, [automation]);\n\n\tconst { replaceAutomation: replaceAutomationMutation, isPending } =\n\t\tuseReplaceAutomation();\n\n\tconst updateAutomation = (values: AutomationWizardSchemaType) => {\n\t\tconst apiValues = transformFormValuesToApi(values);\n\t\treplaceAutomationMutation(\n\t\t\t{\n\t\t\t\tid: automationId,\n\t\t\t\tenabled: automation?.enabled ?? true,\n\t\t\t\t...apiValues,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tonSuccess?.();\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\tonError?.(error instanceof Error ? error : new Error(String(error)));\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn {\n\t\tdefaultValues,\n\t\tisLoading,\n\t\tupdateAutomation,\n\t\tisPending,\n\t};\n};\n","import { useNavigate } from \"@tanstack/react-router\";\nimport { toast } from \"sonner\";\nimport { AutomationsEditHeader } from \"./automations-edit-header\";\nimport type { AutomationWizardSchema } from \"./automations-wizard/automation-schema\";\nimport { AutomationWizard } from \"./automations-wizard/automation-wizard\";\nimport { useEditAutomation } from \"./automations-wizard/use-edit-automation\";\n\ntype AutomationEditPageProps = {\n\tid: string;\n};\n\nexport const AutomationEditPage = ({ id }: AutomationEditPageProps) => {\n\tconst navigate = useNavigate();\n\n\tconst { defaultValues, updateAutomation, isPending } = useEditAutomation({\n\t\tautomationId: id,\n\t\tonSuccess: () => {\n\t\t\ttoast.success(\"Automation updated successfully\");\n\t\t\tvoid navigate({ to: \"/automations\" });\n\t\t},\n\t\tonError: (error) => {\n\t\t\ttoast.error(`Failed to update automation: ${error.message}`, {\n\t\t\t\tduration: Number.POSITIVE_INFINITY,\n\t\t\t});\n\t\t},\n\t});\n\n\tconst handleSubmit = (values: AutomationWizardSchema) => {\n\t\tupdateAutomation(values);\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<AutomationsEditHeader />\n\t\t\t<AutomationWizard\n\t\t\t\tdefaultValues={defaultValues}\n\t\t\t\tonSubmit={handleSubmit}\n\t\t\t\tsubmitLabel=\"Save\"\n\t\t\t\tisSubmitting={isPending}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","import { createFileRoute } from \"@tanstack/react-router\";\n\nimport { buildGetAutomationQuery } from \"@/api/automations\";\nimport { AutomationEditPage } from \"@/components/automations/automation-edit-page\";\n\nexport const Route = createFileRoute(\"/automations/automation_/$id/edit\")({\n\tcomponent: RouteComponent,\n\tloader: ({ context, params }) =>\n\t\tcontext.queryClient.ensureQueryData(buildGetAutomationQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\treturn <AutomationEditPage id={id} />;\n}\n"],"names":["AutomationsEditHeader","jsxs","jsx","NavHeader","DocsLink","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","transformActionToFormValue","action","UNASSIGNED","transformTriggerToFormValue","trigger","inferTriggerTemplate","resourceId","resourceIdStr","transformAutomationToFormValues","automation","transformFormValuesToApi","values","useEditAutomation","options","automationId","onSuccess","onError","isLoading","useSuspenseQuery","buildGetAutomationQuery","defaultValues","useMemo","replaceAutomationMutation","isPending","useReplaceAutomation","apiValues","error","AutomationEditPage","id","navigate","useNavigate","updateAutomation","toast","handleSubmit","AutomationWizard","RouteComponent","Route","useParams"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e,L as s}from"./vendor-tanstack-BcZfOOfy.js";import{D as a,B as t,g as i,h as r,q as n,I as o}from"./index-nxDkMXcY.js";const d=()=>e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(c,{}),e.jsx(a,{id:"automations-guide",label:"Documentation"})]}),c=()=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t,{children:e.jsx(i,{children:e.jsx(r,{className:"text-xl font-semibold",children:"Automations"})})}),e.jsx(s,{to:"/automations/create","aria-label":"create automation",children:e.jsx(n,{size:"icon",className:"size-7",variant:"outline","aria-label":"create automation",children:e.jsx(o,{id:"Plus",className:"size-4"})})})]});export{d as A};
2
- //# sourceMappingURL=automations-header-CgxOgR53.js.map
1
+ import{j as e,L as s}from"./vendor-tanstack-BcZfOOfy.js";import{D as a,B as t,g as i,h as r,q as n,I as o}from"./index-_0OOjqn5.js";const d=()=>e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(c,{}),e.jsx(a,{id:"automations-guide",label:"Documentation"})]}),c=()=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(t,{children:e.jsx(i,{children:e.jsx(r,{className:"text-xl font-semibold",children:"Automations"})})}),e.jsx(s,{to:"/automations/create","aria-label":"create automation",children:e.jsx(n,{size:"icon",className:"size-7",variant:"outline","aria-label":"create automation",children:e.jsx(o,{id:"Plus",className:"size-4"})})})]});export{d as A};
2
+ //# sourceMappingURL=automations-header-qb94agIp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"automations-header-CgxOgR53.js","sources":["../../src/components/automations/automations-header/automations-header.tsx"],"sourcesContent":["import { Link } from \"@tanstack/react-router\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbList,\n} from \"@/components/ui/breadcrumb\";\nimport { Button } from \"@/components/ui/button\";\nimport { DocsLink } from \"@/components/ui/docs-link\";\nimport { Icon } from \"@/components/ui/icons\";\n\nexport const AutomationsHeader = () => {\n\treturn (\n\t\t<div className=\"flex items-center justify-between\">\n\t\t\t<Header />\n\t\t\t<DocsLink id=\"automations-guide\" label=\"Documentation\" />\n\t\t</div>\n\t);\n};\n\nconst Header = () => (\n\t<div className=\"flex items-center gap-2\">\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\tAutomations\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t\t<Link to=\"/automations/create\" aria-label=\"create automation\">\n\t\t\t<Button\n\t\t\t\tsize=\"icon\"\n\t\t\t\tclassName=\"size-7\"\n\t\t\t\tvariant=\"outline\"\n\t\t\t\taria-label=\"create automation\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Plus\" className=\"size-4\" />\n\t\t\t</Button>\n\t\t</Link>\n\t</div>\n);\n"],"names":["AutomationsHeader","jsxs","jsx","Header","DocsLink","Breadcrumb","BreadcrumbList","BreadcrumbItem","Link","Button","Icon"],"mappings":"oIAUO,MAAMA,EAAoB,IAE/BC,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAO,EACRD,EAAAA,IAACE,EAAA,CAAS,GAAG,oBAAoB,MAAM,eAAA,CAAgB,CAAA,EACxD,EAIID,EAAS,IACdF,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAC,EAAAA,IAACG,EAAA,CACA,eAACC,EAAA,CACA,SAAAJ,EAAAA,IAACK,GAAe,UAAU,wBAAwB,SAAA,aAAA,CAElD,CAAA,CACD,EACD,EACAL,EAAAA,IAACM,EAAA,CAAK,GAAG,sBAAsB,aAAW,oBACzC,SAAAN,EAAAA,IAACO,EAAA,CACA,KAAK,OACL,UAAU,SACV,QAAQ,UACR,aAAW,oBAEX,SAAAP,EAAAA,IAACQ,EAAA,CAAK,GAAG,OAAO,UAAU,QAAA,CAAS,CAAA,CAAA,CACpC,CACD,CAAA,EACD"}
1
+ {"version":3,"file":"automations-header-qb94agIp.js","sources":["../../src/components/automations/automations-header/automations-header.tsx"],"sourcesContent":["import { Link } from \"@tanstack/react-router\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbList,\n} from \"@/components/ui/breadcrumb\";\nimport { Button } from \"@/components/ui/button\";\nimport { DocsLink } from \"@/components/ui/docs-link\";\nimport { Icon } from \"@/components/ui/icons\";\n\nexport const AutomationsHeader = () => {\n\treturn (\n\t\t<div className=\"flex items-center justify-between\">\n\t\t\t<Header />\n\t\t\t<DocsLink id=\"automations-guide\" label=\"Documentation\" />\n\t\t</div>\n\t);\n};\n\nconst Header = () => (\n\t<div className=\"flex items-center gap-2\">\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\tAutomations\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t\t<Link to=\"/automations/create\" aria-label=\"create automation\">\n\t\t\t<Button\n\t\t\t\tsize=\"icon\"\n\t\t\t\tclassName=\"size-7\"\n\t\t\t\tvariant=\"outline\"\n\t\t\t\taria-label=\"create automation\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Plus\" className=\"size-4\" />\n\t\t\t</Button>\n\t\t</Link>\n\t</div>\n);\n"],"names":["AutomationsHeader","jsxs","jsx","Header","DocsLink","Breadcrumb","BreadcrumbList","BreadcrumbItem","Link","Button","Icon"],"mappings":"oIAUO,MAAMA,EAAoB,IAE/BC,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAO,EACRD,EAAAA,IAACE,EAAA,CAAS,GAAG,oBAAoB,MAAM,eAAA,CAAgB,CAAA,EACxD,EAIID,EAAS,IACdF,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAC,EAAAA,IAACG,EAAA,CACA,eAACC,EAAA,CACA,SAAAJ,EAAAA,IAACK,GAAe,UAAU,wBAAwB,SAAA,aAAA,CAElD,CAAA,CACD,EACD,EACAL,EAAAA,IAACM,EAAA,CAAK,GAAG,sBAAsB,aAAW,oBACzC,SAAAN,EAAAA,IAACO,EAAA,CACA,KAAK,OACL,UAAU,SACV,QAAQ,UACR,aAAW,oBAEX,SAAAP,EAAAA,IAACQ,EAAA,CAAK,GAAG,OAAO,UAAU,QAAA,CAAS,CAAA,CAAA,CACpC,CACD,CAAA,EACD"}
@@ -1,2 +1,2 @@
1
- import{r as o,j as e}from"./vendor-tanstack-BcZfOOfy.js";import{u as O,a as C}from"./schema-form-input-string-format-datetime-CZkUje5U.js";import{SchemaForm as E}from"./schema-form-Cx-6swYW.js";import{al as V,aw as k,ax as T,ay as j,az as f,C as i,o as d,bw as u,i as F,L as J}from"./index-nxDkMXcY.js";function D({baseJobTemplate:n,onBaseJobTemplateChange:l}){const[x,h]=o.useState(()=>JSON.stringify(n||{},null,2)),[c,m]=o.useState(null),s=o.useMemo(()=>n?.variables,[n?.variables]),b=o.useMemo(()=>s?.properties&&Object.keys(s.properties).length>0,[s?.properties]),v=o.useMemo(()=>{if(!s?.properties)return{};const r={};return Object.entries(s.properties).forEach(([a,t])=>{t&&typeof t=="object"&&"default"in t&&(r[a]=t.default)}),r},[s?.properties]),[S,p]=O(v),[y]=C([]),N=o.useCallback(r=>{if(p(r),!s?.properties)return;const a={...n,variables:{...s,properties:Object.fromEntries(Object.entries(s.properties).map(([t,w])=>[t,{...w,default:r[t]}]))}};l(a),h(JSON.stringify(a,null,2))},[n,s,l,p]),g=o.useCallback(r=>{h(r),m(null);try{const a=JSON.parse(r);l(a)}catch(a){m(a instanceof Error?a.message:"Invalid JSON")}},[l]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx(V,{variant:"h3",children:"Base Job Template"}),e.jsxs(k,{defaultValue:"defaults",className:"w-full",children:[e.jsxs(T,{children:[e.jsx(j,{value:"defaults",children:"Defaults"}),e.jsx(j,{value:"advanced",children:"Advanced"})]}),e.jsx(f,{value:"defaults",className:"space-y-4",children:b?e.jsxs(e.Fragment,{children:[e.jsx(i,{children:e.jsx(d,{children:e.jsx(u,{children:"The fields below control the default values for the base job template. These values can be overridden by deployments."})})}),s&&e.jsx(E,{schema:s,kinds:["json"],values:S,onValuesChange:N,errors:y})]}):e.jsx(i,{children:e.jsx(d,{children:e.jsxs(u,{children:["This work pool's base job template does not have any customizations. To add customizations, edit the base job template directly with the ",e.jsx("strong",{children:"Advanced"})," tab."]})})})}),e.jsxs(f,{value:"advanced",className:"space-y-4",children:[e.jsx(i,{children:e.jsx(d,{children:e.jsxs(u,{children:["This is the JSON representation of the base job template. A work pool's job template controls infrastructure configuration for all flow runs in the work pool, and specifies the configuration that can be overridden by deployments.",e.jsx("br",{}),e.jsx("br",{}),"For more information on the structure of a work pool's base job template, check out the docs."]})})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{children:"Base Job Template JSON"}),e.jsx(J,{value:x,onChange:g,className:c?"border-destructive":""}),c&&e.jsx("p",{className:"text-sm text-destructive",children:c})]})]})]})]})}export{D as B};
2
- //# sourceMappingURL=base-job-template-form-section-DilLn1Ul.js.map
1
+ import{r as o,j as e}from"./vendor-tanstack-BcZfOOfy.js";import{a as O,b as C}from"./schema-form-input-string-format-datetime-DrpJmvST.js";import{SchemaForm as E}from"./schema-form-DDUzvjpL.js";import{al as V,aw as k,ax as T,ay as j,az as f,C as i,o as d,bw as u,i as F,L as J}from"./index-_0OOjqn5.js";function D({baseJobTemplate:n,onBaseJobTemplateChange:l}){const[x,h]=o.useState(()=>JSON.stringify(n||{},null,2)),[c,m]=o.useState(null),s=o.useMemo(()=>n?.variables,[n?.variables]),b=o.useMemo(()=>s?.properties&&Object.keys(s.properties).length>0,[s?.properties]),v=o.useMemo(()=>{if(!s?.properties)return{};const r={};return Object.entries(s.properties).forEach(([a,t])=>{t&&typeof t=="object"&&"default"in t&&(r[a]=t.default)}),r},[s?.properties]),[S,p]=O(v),[y]=C([]),N=o.useCallback(r=>{if(p(r),!s?.properties)return;const a={...n,variables:{...s,properties:Object.fromEntries(Object.entries(s.properties).map(([t,w])=>[t,{...w,default:r[t]}]))}};l(a),h(JSON.stringify(a,null,2))},[n,s,l,p]),g=o.useCallback(r=>{h(r),m(null);try{const a=JSON.parse(r);l(a)}catch(a){m(a instanceof Error?a.message:"Invalid JSON")}},[l]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx(V,{variant:"h3",children:"Base Job Template"}),e.jsxs(k,{defaultValue:"defaults",className:"w-full",children:[e.jsxs(T,{children:[e.jsx(j,{value:"defaults",children:"Defaults"}),e.jsx(j,{value:"advanced",children:"Advanced"})]}),e.jsx(f,{value:"defaults",className:"space-y-4",children:b?e.jsxs(e.Fragment,{children:[e.jsx(i,{children:e.jsx(d,{children:e.jsx(u,{children:"The fields below control the default values for the base job template. These values can be overridden by deployments."})})}),s&&e.jsx(E,{schema:s,kinds:["json"],values:S,onValuesChange:N,errors:y})]}):e.jsx(i,{children:e.jsx(d,{children:e.jsxs(u,{children:["This work pool's base job template does not have any customizations. To add customizations, edit the base job template directly with the ",e.jsx("strong",{children:"Advanced"})," tab."]})})})}),e.jsxs(f,{value:"advanced",className:"space-y-4",children:[e.jsx(i,{children:e.jsx(d,{children:e.jsxs(u,{children:["This is the JSON representation of the base job template. A work pool's job template controls infrastructure configuration for all flow runs in the work pool, and specifies the configuration that can be overridden by deployments.",e.jsx("br",{}),e.jsx("br",{}),"For more information on the structure of a work pool's base job template, check out the docs."]})})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{children:"Base Job Template JSON"}),e.jsx(J,{value:x,onChange:g,className:c?"border-destructive":""}),c&&e.jsx("p",{className:"text-sm text-destructive",children:c})]})]})]})]})}export{D as B};
2
+ //# sourceMappingURL=base-job-template-form-section-DdDSFAJa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-job-template-form-section-DilLn1Ul.js","sources":["../../src/components/work-pools/create/infrastructure-configuration-step/base-job-template-form-section.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useSchemaFormErrors } from \"@/components/schemas/hooks/useSchemaFormErrors\";\nimport { useSchemaFormValues } from \"@/components/schemas/hooks/useSchemaValues\";\nimport { SchemaForm } from \"@/components/schemas/schema-form\";\nimport type { PrefectSchemaObject } from \"@/components/schemas/types/schemas\";\nimport type { SchemaFormValues } from \"@/components/schemas/types/values\";\nimport { Card, CardContent, CardDescription } from \"@/components/ui/card\";\nimport type { JsonInputOnChange } from \"@/components/ui/json-input\";\nimport { LazyJsonInput as JsonInput } from \"@/components/ui/json-input-lazy\";\nimport { Label } from \"@/components/ui/label\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Typography } from \"@/components/ui/typography\";\nimport type { WorkerBaseJobTemplate } from \"./schema\";\n\ntype BaseJobTemplateFormSectionProps = {\n\tbaseJobTemplate?: WorkerBaseJobTemplate;\n\tonBaseJobTemplateChange: (value: WorkerBaseJobTemplate) => void;\n};\n\nexport function BaseJobTemplateFormSection({\n\tbaseJobTemplate,\n\tonBaseJobTemplateChange,\n}: BaseJobTemplateFormSectionProps) {\n\tconst [jsonValue, setJsonValue] = useState(() =>\n\t\tJSON.stringify(baseJobTemplate || {}, null, 2),\n\t);\n\tconst [jsonError, setJsonError] = useState<string | null>(null);\n\n\tconst variablesSchema = useMemo<PrefectSchemaObject | undefined>(() => {\n\t\treturn baseJobTemplate?.variables as PrefectSchemaObject;\n\t}, [baseJobTemplate?.variables]);\n\n\tconst hasSchemaProperties = useMemo(() => {\n\t\treturn (\n\t\t\tvariablesSchema?.properties &&\n\t\t\tObject.keys(variablesSchema.properties).length > 0\n\t\t);\n\t}, [variablesSchema?.properties]);\n\n\t// Get default values from schema properties\n\tconst defaultValues = useMemo<SchemaFormValues>(() => {\n\t\tif (!variablesSchema?.properties) return {};\n\n\t\tconst defaults: SchemaFormValues = {};\n\t\tObject.entries(variablesSchema.properties).forEach(([key, property]) => {\n\t\t\tif (property && typeof property === \"object\" && \"default\" in property) {\n\t\t\t\tdefaults[key] = property.default;\n\t\t\t}\n\t\t});\n\t\treturn defaults;\n\t}, [variablesSchema?.properties]);\n\n\tconst [schemaValues, setSchemaValues] = useSchemaFormValues(defaultValues);\n\tconst [schemaErrors] = useSchemaFormErrors([]);\n\n\tconst handleSchemaValuesChange = useCallback(\n\t\t(values: SchemaFormValues) => {\n\t\t\tsetSchemaValues(values);\n\n\t\t\tif (!variablesSchema?.properties) return;\n\n\t\t\t// Update the base job template with new default values\n\t\t\tconst newTemplate: WorkerBaseJobTemplate = {\n\t\t\t\t...baseJobTemplate,\n\t\t\t\tvariables: {\n\t\t\t\t\t...variablesSchema,\n\t\t\t\t\tproperties: Object.fromEntries(\n\t\t\t\t\t\tObject.entries(variablesSchema.properties).map(\n\t\t\t\t\t\t\t([key, property]) => [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...property,\n\t\t\t\t\t\t\t\t\tdefault: values[key],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tonBaseJobTemplateChange(newTemplate);\n\t\t\tsetJsonValue(JSON.stringify(newTemplate, null, 2));\n\t\t},\n\t\t[\n\t\t\tbaseJobTemplate,\n\t\t\tvariablesSchema,\n\t\t\tonBaseJobTemplateChange,\n\t\t\tsetSchemaValues,\n\t\t],\n\t);\n\n\tconst handleJsonChange = useCallback(\n\t\t(value: string) => {\n\t\t\tsetJsonValue(value);\n\t\t\tsetJsonError(null);\n\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(value) as WorkerBaseJobTemplate;\n\t\t\t\tonBaseJobTemplateChange(parsed);\n\t\t\t} catch (error) {\n\t\t\t\tsetJsonError(error instanceof Error ? error.message : \"Invalid JSON\");\n\t\t\t}\n\t\t},\n\t\t[onBaseJobTemplateChange],\n\t);\n\n\treturn (\n\t\t<div className=\"space-y-4\">\n\t\t\t<Typography variant=\"h3\">Base Job Template</Typography>\n\n\t\t\t<Tabs defaultValue=\"defaults\" className=\"w-full\">\n\t\t\t\t<TabsList>\n\t\t\t\t\t<TabsTrigger value=\"defaults\">Defaults</TabsTrigger>\n\t\t\t\t\t<TabsTrigger value=\"advanced\">Advanced</TabsTrigger>\n\t\t\t\t</TabsList>\n\n\t\t\t\t<TabsContent value=\"defaults\" className=\"space-y-4\">\n\t\t\t\t\t{hasSchemaProperties ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Card>\n\t\t\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\t\t\tThe fields below control the default values for the base job\n\t\t\t\t\t\t\t\t\t\ttemplate. These values can be overridden by deployments.\n\t\t\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t\t</Card>\n\n\t\t\t\t\t\t\t{variablesSchema && (\n\t\t\t\t\t\t\t\t<SchemaForm\n\t\t\t\t\t\t\t\t\tschema={variablesSchema}\n\t\t\t\t\t\t\t\t\tkinds={[\"json\"]}\n\t\t\t\t\t\t\t\t\tvalues={schemaValues}\n\t\t\t\t\t\t\t\t\tonValuesChange={handleSchemaValuesChange}\n\t\t\t\t\t\t\t\t\terrors={schemaErrors}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Card>\n\t\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\t\tThis work pool&apos;s base job template does not have any\n\t\t\t\t\t\t\t\t\tcustomizations. To add customizations, edit the base job\n\t\t\t\t\t\t\t\t\ttemplate directly with the <strong>Advanced</strong> tab.\n\t\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t</Card>\n\t\t\t\t\t)}\n\t\t\t\t</TabsContent>\n\n\t\t\t\t<TabsContent value=\"advanced\" className=\"space-y-4\">\n\t\t\t\t\t<Card>\n\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\tThis is the JSON representation of the base job template. A work\n\t\t\t\t\t\t\t\tpool&apos;s job template controls infrastructure configuration\n\t\t\t\t\t\t\t\tfor all flow runs in the work pool, and specifies the\n\t\t\t\t\t\t\t\tconfiguration that can be overridden by deployments.\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\tFor more information on the structure of a work pool&apos;s base\n\t\t\t\t\t\t\t\tjob template, check out the docs.\n\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t</Card>\n\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Label>Base Job Template JSON</Label>\n\t\t\t\t\t\t<JsonInput\n\t\t\t\t\t\t\tvalue={jsonValue}\n\t\t\t\t\t\t\tonChange={handleJsonChange as JsonInputOnChange}\n\t\t\t\t\t\t\tclassName={jsonError ? \"border-destructive\" : \"\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{jsonError && (\n\t\t\t\t\t\t\t<p className=\"text-sm text-destructive\">{jsonError}</p>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</TabsContent>\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n"],"names":["BaseJobTemplateFormSection","baseJobTemplate","onBaseJobTemplateChange","jsonValue","setJsonValue","useState","jsonError","setJsonError","variablesSchema","useMemo","hasSchemaProperties","defaultValues","defaults","key","property","schemaValues","setSchemaValues","useSchemaFormValues","schemaErrors","useSchemaFormErrors","handleSchemaValuesChange","useCallback","values","newTemplate","handleJsonChange","value","parsed","error","jsxs","jsx","Typography","Tabs","TabsList","TabsTrigger","TabsContent","Fragment","Card","CardContent","CardDescription","SchemaForm","Label","JsonInput"],"mappings":"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"}
1
+ {"version":3,"file":"base-job-template-form-section-DdDSFAJa.js","sources":["../../src/components/work-pools/create/infrastructure-configuration-step/base-job-template-form-section.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useSchemaFormErrors } from \"@/components/schemas/hooks/useSchemaFormErrors\";\nimport { useSchemaFormValues } from \"@/components/schemas/hooks/useSchemaValues\";\nimport { SchemaForm } from \"@/components/schemas/schema-form\";\nimport type { PrefectSchemaObject } from \"@/components/schemas/types/schemas\";\nimport type { SchemaFormValues } from \"@/components/schemas/types/values\";\nimport { Card, CardContent, CardDescription } from \"@/components/ui/card\";\nimport type { JsonInputOnChange } from \"@/components/ui/json-input\";\nimport { LazyJsonInput as JsonInput } from \"@/components/ui/json-input-lazy\";\nimport { Label } from \"@/components/ui/label\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Typography } from \"@/components/ui/typography\";\nimport type { WorkerBaseJobTemplate } from \"./schema\";\n\ntype BaseJobTemplateFormSectionProps = {\n\tbaseJobTemplate?: WorkerBaseJobTemplate;\n\tonBaseJobTemplateChange: (value: WorkerBaseJobTemplate) => void;\n};\n\nexport function BaseJobTemplateFormSection({\n\tbaseJobTemplate,\n\tonBaseJobTemplateChange,\n}: BaseJobTemplateFormSectionProps) {\n\tconst [jsonValue, setJsonValue] = useState(() =>\n\t\tJSON.stringify(baseJobTemplate || {}, null, 2),\n\t);\n\tconst [jsonError, setJsonError] = useState<string | null>(null);\n\n\tconst variablesSchema = useMemo<PrefectSchemaObject | undefined>(() => {\n\t\treturn baseJobTemplate?.variables as PrefectSchemaObject;\n\t}, [baseJobTemplate?.variables]);\n\n\tconst hasSchemaProperties = useMemo(() => {\n\t\treturn (\n\t\t\tvariablesSchema?.properties &&\n\t\t\tObject.keys(variablesSchema.properties).length > 0\n\t\t);\n\t}, [variablesSchema?.properties]);\n\n\t// Get default values from schema properties\n\tconst defaultValues = useMemo<SchemaFormValues>(() => {\n\t\tif (!variablesSchema?.properties) return {};\n\n\t\tconst defaults: SchemaFormValues = {};\n\t\tObject.entries(variablesSchema.properties).forEach(([key, property]) => {\n\t\t\tif (property && typeof property === \"object\" && \"default\" in property) {\n\t\t\t\tdefaults[key] = property.default;\n\t\t\t}\n\t\t});\n\t\treturn defaults;\n\t}, [variablesSchema?.properties]);\n\n\tconst [schemaValues, setSchemaValues] = useSchemaFormValues(defaultValues);\n\tconst [schemaErrors] = useSchemaFormErrors([]);\n\n\tconst handleSchemaValuesChange = useCallback(\n\t\t(values: SchemaFormValues) => {\n\t\t\tsetSchemaValues(values);\n\n\t\t\tif (!variablesSchema?.properties) return;\n\n\t\t\t// Update the base job template with new default values\n\t\t\tconst newTemplate: WorkerBaseJobTemplate = {\n\t\t\t\t...baseJobTemplate,\n\t\t\t\tvariables: {\n\t\t\t\t\t...variablesSchema,\n\t\t\t\t\tproperties: Object.fromEntries(\n\t\t\t\t\t\tObject.entries(variablesSchema.properties).map(\n\t\t\t\t\t\t\t([key, property]) => [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...property,\n\t\t\t\t\t\t\t\t\tdefault: values[key],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tonBaseJobTemplateChange(newTemplate);\n\t\t\tsetJsonValue(JSON.stringify(newTemplate, null, 2));\n\t\t},\n\t\t[\n\t\t\tbaseJobTemplate,\n\t\t\tvariablesSchema,\n\t\t\tonBaseJobTemplateChange,\n\t\t\tsetSchemaValues,\n\t\t],\n\t);\n\n\tconst handleJsonChange = useCallback(\n\t\t(value: string) => {\n\t\t\tsetJsonValue(value);\n\t\t\tsetJsonError(null);\n\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(value) as WorkerBaseJobTemplate;\n\t\t\t\tonBaseJobTemplateChange(parsed);\n\t\t\t} catch (error) {\n\t\t\t\tsetJsonError(error instanceof Error ? error.message : \"Invalid JSON\");\n\t\t\t}\n\t\t},\n\t\t[onBaseJobTemplateChange],\n\t);\n\n\treturn (\n\t\t<div className=\"space-y-4\">\n\t\t\t<Typography variant=\"h3\">Base Job Template</Typography>\n\n\t\t\t<Tabs defaultValue=\"defaults\" className=\"w-full\">\n\t\t\t\t<TabsList>\n\t\t\t\t\t<TabsTrigger value=\"defaults\">Defaults</TabsTrigger>\n\t\t\t\t\t<TabsTrigger value=\"advanced\">Advanced</TabsTrigger>\n\t\t\t\t</TabsList>\n\n\t\t\t\t<TabsContent value=\"defaults\" className=\"space-y-4\">\n\t\t\t\t\t{hasSchemaProperties ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Card>\n\t\t\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\t\t\tThe fields below control the default values for the base job\n\t\t\t\t\t\t\t\t\t\ttemplate. These values can be overridden by deployments.\n\t\t\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t\t</Card>\n\n\t\t\t\t\t\t\t{variablesSchema && (\n\t\t\t\t\t\t\t\t<SchemaForm\n\t\t\t\t\t\t\t\t\tschema={variablesSchema}\n\t\t\t\t\t\t\t\t\tkinds={[\"json\"]}\n\t\t\t\t\t\t\t\t\tvalues={schemaValues}\n\t\t\t\t\t\t\t\t\tonValuesChange={handleSchemaValuesChange}\n\t\t\t\t\t\t\t\t\terrors={schemaErrors}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Card>\n\t\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\t\tThis work pool&apos;s base job template does not have any\n\t\t\t\t\t\t\t\t\tcustomizations. To add customizations, edit the base job\n\t\t\t\t\t\t\t\t\ttemplate directly with the <strong>Advanced</strong> tab.\n\t\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t</Card>\n\t\t\t\t\t)}\n\t\t\t\t</TabsContent>\n\n\t\t\t\t<TabsContent value=\"advanced\" className=\"space-y-4\">\n\t\t\t\t\t<Card>\n\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t<CardDescription>\n\t\t\t\t\t\t\t\tThis is the JSON representation of the base job template. A work\n\t\t\t\t\t\t\t\tpool&apos;s job template controls infrastructure configuration\n\t\t\t\t\t\t\t\tfor all flow runs in the work pool, and specifies the\n\t\t\t\t\t\t\t\tconfiguration that can be overridden by deployments.\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\tFor more information on the structure of a work pool&apos;s base\n\t\t\t\t\t\t\t\tjob template, check out the docs.\n\t\t\t\t\t\t\t</CardDescription>\n\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t</Card>\n\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Label>Base Job Template JSON</Label>\n\t\t\t\t\t\t<JsonInput\n\t\t\t\t\t\t\tvalue={jsonValue}\n\t\t\t\t\t\t\tonChange={handleJsonChange as JsonInputOnChange}\n\t\t\t\t\t\t\tclassName={jsonError ? \"border-destructive\" : \"\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{jsonError && (\n\t\t\t\t\t\t\t<p className=\"text-sm text-destructive\">{jsonError}</p>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</TabsContent>\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n"],"names":["BaseJobTemplateFormSection","baseJobTemplate","onBaseJobTemplateChange","jsonValue","setJsonValue","useState","jsonError","setJsonError","variablesSchema","useMemo","hasSchemaProperties","defaultValues","defaults","key","property","schemaValues","setSchemaValues","useSchemaFormValues","schemaErrors","useSchemaFormErrors","handleSchemaValuesChange","useCallback","values","newTemplate","handleJsonChange","value","parsed","error","jsxs","jsx","Typography","Tabs","TabsList","TabsTrigger","TabsContent","Fragment","Card","CardContent","CardDescription","SchemaForm","Label","JsonInput"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s}from"./vendor-tanstack-BcZfOOfy.js";import{B as o}from"./block-type-logo-FrtMLMYr.js";import{C as a,al as e}from"./index-nxDkMXcY.js";import{L as i}from"./lazy-markdown-CLclUkkd.js";function x({blockType:r}){return s.jsxs(a,{className:"p-6 max-h-60",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(o,{size:"lg",logoUrl:r.logo_url}),s.jsx(e,{variant:"h4",children:r.name})]}),r.description&&s.jsx("div",{className:"prose max-w-none overflow-y-scroll text-sm",children:s.jsx(i,{children:r.description})})]})}export{x as B};
2
- //# sourceMappingURL=block-type-details-Cx4npO8Y.js.map
1
+ import{j as s}from"./vendor-tanstack-BcZfOOfy.js";import{B as o}from"./block-type-logo-DV1pSkV0.js";import{C as a,al as e}from"./index-_0OOjqn5.js";import{L as i}from"./lazy-markdown-CKcd9ksG.js";function x({blockType:r}){return s.jsxs(a,{className:"p-6 max-h-60",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(o,{size:"lg",logoUrl:r.logo_url}),s.jsx(e,{variant:"h4",children:r.name})]}),r.description&&s.jsx("div",{className:"prose max-w-none overflow-y-scroll text-sm",children:s.jsx(i,{children:r.description})})]})}export{x as B};
2
+ //# sourceMappingURL=block-type-details-2rIqbqoZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block-type-details-Cx4npO8Y.js","sources":["../../src/components/blocks/block-type-details.tsx"],"sourcesContent":["import type { BlockType } from \"@/api/block-types\";\nimport { BlockTypeLogo } from \"@/components/block-type-logo/block-type-logo\";\nimport { Card } from \"@/components/ui/card\";\nimport { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype BlockTypeDetailsProps = {\n\tblockType: BlockType;\n};\n\nexport function BlockTypeDetails({ blockType }: BlockTypeDetailsProps) {\n\treturn (\n\t\t<Card className=\"p-6 max-h-60\">\n\t\t\t<div className=\"flex items-center gap-4\">\n\t\t\t\t<BlockTypeLogo size=\"lg\" logoUrl={blockType.logo_url} />\n\t\t\t\t<Typography variant=\"h4\">{blockType.name}</Typography>\n\t\t\t</div>\n\n\t\t\t{blockType.description && (\n\t\t\t\t<div className=\"prose max-w-none overflow-y-scroll text-sm\">\n\t\t\t\t\t<LazyMarkdown>{blockType.description}</LazyMarkdown>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Card>\n\t);\n}\n"],"names":["BlockTypeDetails","blockType","jsxs","Card","jsx","BlockTypeLogo","Typography","LazyMarkdown"],"mappings":"oMAUO,SAASA,EAAiB,CAAE,UAAAC,GAAoC,CACtE,OACCC,EAAAA,KAACC,EAAA,CAAK,UAAU,eACf,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAE,EAAAA,IAACC,EAAA,CAAc,KAAK,KAAK,QAASJ,EAAU,SAAU,EACtDG,EAAAA,IAACE,EAAA,CAAW,QAAQ,KAAM,WAAU,IAAA,CAAK,CAAA,EAC1C,EAECL,EAAU,aACVG,EAAAA,IAAC,MAAA,CAAI,UAAU,6CACd,SAAAA,EAAAA,IAACG,EAAA,CAAc,SAAAN,EAAU,WAAA,CAAY,CAAA,CACtC,CAAA,EAEF,CAEF"}
1
+ {"version":3,"file":"block-type-details-2rIqbqoZ.js","sources":["../../src/components/blocks/block-type-details.tsx"],"sourcesContent":["import type { BlockType } from \"@/api/block-types\";\nimport { BlockTypeLogo } from \"@/components/block-type-logo/block-type-logo\";\nimport { Card } from \"@/components/ui/card\";\nimport { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype BlockTypeDetailsProps = {\n\tblockType: BlockType;\n};\n\nexport function BlockTypeDetails({ blockType }: BlockTypeDetailsProps) {\n\treturn (\n\t\t<Card className=\"p-6 max-h-60\">\n\t\t\t<div className=\"flex items-center gap-4\">\n\t\t\t\t<BlockTypeLogo size=\"lg\" logoUrl={blockType.logo_url} />\n\t\t\t\t<Typography variant=\"h4\">{blockType.name}</Typography>\n\t\t\t</div>\n\n\t\t\t{blockType.description && (\n\t\t\t\t<div className=\"prose max-w-none overflow-y-scroll text-sm\">\n\t\t\t\t\t<LazyMarkdown>{blockType.description}</LazyMarkdown>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Card>\n\t);\n}\n"],"names":["BlockTypeDetails","blockType","jsxs","Card","jsx","BlockTypeLogo","Typography","LazyMarkdown"],"mappings":"oMAUO,SAASA,EAAiB,CAAE,UAAAC,GAAoC,CACtE,OACCC,EAAAA,KAACC,EAAA,CAAK,UAAU,eACf,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAE,EAAAA,IAACC,EAAA,CAAc,KAAK,KAAK,QAASJ,EAAU,SAAU,EACtDG,EAAAA,IAACE,EAAA,CAAW,QAAQ,KAAM,WAAU,IAAA,CAAK,CAAA,EAC1C,EAECL,EAAU,aACVG,EAAAA,IAAC,MAAA,CAAI,UAAU,6CACd,SAAAA,EAAAA,IAACG,EAAA,CAAc,SAAAN,EAAU,WAAA,CAAY,CAAA,CACtC,CAAA,EAEF,CAEF"}
@@ -0,0 +1,2 @@
1
+ import{j as a}from"./vendor-tanstack-BcZfOOfy.js";import{cB as e}from"./index-_0OOjqn5.js";const c=({alt:o,logoUrl:s,size:r="sm"})=>a.jsx("img",{alt:o,src:s??void 0,className:i({size:r})}),i=e("border-4 bg-gray-200 rounded",{variants:{size:{sm:"size-8",lg:"size-14"}}});export{c as B};
2
+ //# sourceMappingURL=block-type-logo-DV1pSkV0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block-type-logo-FrtMLMYr.js","sources":["../../src/components/block-type-logo/block-type-logo.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { BlockType } from \"@/api/block-types\";\n\ntype BlockTypeLogoProps = {\n\talt?: string;\n\tlogoUrl: BlockType[\"logo_url\"];\n\tsize?: \"sm\" | \"lg\";\n};\n\nexport const BlockTypeLogo = ({\n\talt,\n\tlogoUrl,\n\tsize = \"sm\",\n}: BlockTypeLogoProps) => (\n\t<img\n\t\talt={alt}\n\t\tsrc={logoUrl ?? undefined}\n\t\tclassName={blockTypeLogoVariant({ size })}\n\t/>\n);\n\nconst blockTypeLogoVariant = cva(\"border-4 bg-gray-200 rounded\", {\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"size-8\",\n\t\t\tlg: \"size-14\",\n\t\t},\n\t},\n});\n"],"names":["BlockTypeLogo","alt","logoUrl","size","jsx","blockTypeLogoVariant","cva"],"mappings":"2FASO,MAAMA,EAAgB,CAAC,CAC7B,IAAAC,EACA,QAAAC,EACA,KAAAC,EAAO,IACR,IACCC,EAAAA,IAAC,MAAA,CACA,IAAAH,EACA,IAAKC,GAAW,OAChB,UAAWG,EAAqB,CAAE,KAAAF,CAAA,CAAM,CAAA,CACzC,EAGKE,EAAuBC,EAAI,+BAAgC,CAChE,SAAU,CACT,KAAM,CACL,GAAI,SACJ,GAAI,SAAA,CACL,CAEF,CAAC"}
1
+ {"version":3,"file":"block-type-logo-DV1pSkV0.js","sources":["../../src/components/block-type-logo/block-type-logo.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { BlockType } from \"@/api/block-types\";\n\ntype BlockTypeLogoProps = {\n\talt?: string;\n\tlogoUrl: BlockType[\"logo_url\"];\n\tsize?: \"sm\" | \"lg\";\n};\n\nexport const BlockTypeLogo = ({\n\talt,\n\tlogoUrl,\n\tsize = \"sm\",\n}: BlockTypeLogoProps) => (\n\t<img\n\t\talt={alt}\n\t\tsrc={logoUrl ?? undefined}\n\t\tclassName={blockTypeLogoVariant({ size })}\n\t/>\n);\n\nconst blockTypeLogoVariant = cva(\"border-4 bg-gray-200 rounded\", {\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"size-8\",\n\t\t\tlg: \"size-14\",\n\t\t},\n\t},\n});\n"],"names":["BlockTypeLogo","alt","logoUrl","size","jsx","blockTypeLogoVariant","cva"],"mappings":"2FASO,MAAMA,EAAgB,CAAC,CAC7B,IAAAC,EACA,QAAAC,EACA,KAAAC,EAAO,IACR,IACCC,EAAAA,IAAC,MAAA,CACA,IAAAH,EACA,IAAKC,GAAW,OAChB,UAAWG,EAAqB,CAAE,KAAAF,CAAA,CAAM,CAAA,CACzC,EAGKE,EAAuBC,EAAI,+BAAgC,CAChE,SAAU,CACT,KAAM,CACL,GAAI,SACJ,GAAI,SAAA,CACL,CAEF,CAAC"}
@@ -1,2 +1,2 @@
1
- import{j as e,r as n,s as d}from"./vendor-tanstack-BcZfOOfy.js";import{B as x,g as p,h as c,bs as u,bB as h,C as f,al as m,bA as j,ds as B,d4 as N}from"./index-nxDkMXcY.js";import{u as g,B as b}from"./use-delete-block-document-confirmation-dialog-DM0Dy1PL.js";import{B as k}from"./block-type-details-Cx4npO8Y.js";import{D as y}from"./delete-confirmation-dialog-jlBI67Pk.js";import{P as D}from"./python-example-snippet-BUllaeTS.js";import{c as _}from"./vendor-recharts-BAN776s_.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./dropdown-menu-CT6uZu-V.js";import"./use-delete-confirmation-dialog-CUdii6Lo.js";import"./block-type-logo-FrtMLMYr.js";import"./lazy-markdown-CLclUkkd.js";const v=({blockName:s})=>e.jsx(x,{children:e.jsxs(p,{children:[e.jsx(c,{children:e.jsx(u,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),e.jsx(h,{}),e.jsx(c,{className:"text-xl font-semibold",children:s})]})});function S({data:s,fields:t}){const r=n.useMemo(()=>{let l={};return"properties"in t&&(l=t.properties),Object.keys(l).map(a=>{let o=a;const i=l[a];return i.title&&(o=i.title),{label:o,value:s[a]?JSON.stringify(s[a],null,2):null}})},[s,t]);return e.jsx("dl",{className:"flex flex-col gap-2 p-2 text-xs",children:r.map(({label:l,value:a})=>e.jsxs(n.Fragment,{children:[e.jsx("dt",{className:"text-gray-500 text-sm",children:l}),e.jsx("dd",{className:_("text-base",!a&&"text-gray-500 "),children:a??"None"})]},l))})}const C=({blockDocument:s})=>{const[t,r]=g(),l=()=>r(s,{shouldNavigate:!0}),{block_type:a}=s,o=s.name??s.block_type_name??"Block Document";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(v,{blockName:o}),e.jsx(b,{blockDocument:s,onDelete:l})]}),e.jsx(f,{className:"p-4",children:e.jsxs("div",{className:"grid grid-cols-[minmax(0,_1fr)_250px] gap-4 ",children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[(a?.code_example||a?.documentation_url)&&e.jsx(P,{hasCodeExample:!!a?.code_example,hasDocumentationUrl:!!a?.documentation_url}),a?.code_example&&e.jsx(D,{codeExample:a.code_example,name:s.name}),s.data&&s.block_schema?.fields&&e.jsx(S,{data:s.data,fields:s.block_schema?.fields})]}),a&&e.jsx(k,{blockType:a})]})})]}),e.jsx(y,{...t})]})};function P({hasCodeExample:s,hasDocumentationUrl:t}){return e.jsxs("div",{className:"flex items-center gap-1",children:[s&&e.jsxs(m,{variant:"bodySmall",className:"muted",children:["Paste this snippet"," ",e.jsx("span",{className:"font-semibold",children:"into your flows"})," to use this block."]}),t&&e.jsxs(m,{variant:"bodySmall",className:"muted",children:["Need help?"," ",e.jsx("a",{className:"underline text-blue-600 hover:text-blue-800 visited:text-purple-600",href:j["blocks-guide"],children:"View Docs"})]})]})}function K(){const{id:s}=B.useParams(),{data:t}=d(N(s));return e.jsx(C,{blockDocument:t})}export{K as component};
2
- //# sourceMappingURL=block._id-CWi9g5N3.js.map
1
+ import{j as e,r as n,s as d}from"./vendor-tanstack-BcZfOOfy.js";import{B as x,g as p,h as c,bs as u,bB as h,C as f,al as m,bA as j,du as B,d6 as N}from"./index-_0OOjqn5.js";import{u as g,B as b}from"./use-delete-block-document-confirmation-dialog-CogrfdiO.js";import{B as k}from"./block-type-details-2rIqbqoZ.js";import{D as y}from"./delete-confirmation-dialog-B9-8JHV7.js";import{P as D}from"./python-example-snippet-eWuRXCxE.js";import{c as _}from"./vendor-recharts-BAN776s_.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./dropdown-menu-DF4QR3Cp.js";import"./use-delete-confirmation-dialog-CUdii6Lo.js";import"./block-type-logo-DV1pSkV0.js";import"./lazy-markdown-CKcd9ksG.js";const v=({blockName:s})=>e.jsx(x,{children:e.jsxs(p,{children:[e.jsx(c,{children:e.jsx(u,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),e.jsx(h,{}),e.jsx(c,{className:"text-xl font-semibold",children:s})]})});function S({data:s,fields:t}){const r=n.useMemo(()=>{let l={};return"properties"in t&&(l=t.properties),Object.keys(l).map(a=>{let o=a;const i=l[a];return i.title&&(o=i.title),{label:o,value:s[a]?JSON.stringify(s[a],null,2):null}})},[s,t]);return e.jsx("dl",{className:"flex flex-col gap-2 p-2 text-xs",children:r.map(({label:l,value:a})=>e.jsxs(n.Fragment,{children:[e.jsx("dt",{className:"text-gray-500 text-sm",children:l}),e.jsx("dd",{className:_("text-base",!a&&"text-gray-500 "),children:a??"None"})]},l))})}const C=({blockDocument:s})=>{const[t,r]=g(),l=()=>r(s,{shouldNavigate:!0}),{block_type:a}=s,o=s.name??s.block_type_name??"Block Document";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(v,{blockName:o}),e.jsx(b,{blockDocument:s,onDelete:l})]}),e.jsx(f,{className:"p-4",children:e.jsxs("div",{className:"grid grid-cols-[minmax(0,_1fr)_250px] gap-4 ",children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[(a?.code_example||a?.documentation_url)&&e.jsx(P,{hasCodeExample:!!a?.code_example,hasDocumentationUrl:!!a?.documentation_url}),a?.code_example&&e.jsx(D,{codeExample:a.code_example,name:s.name}),s.data&&s.block_schema?.fields&&e.jsx(S,{data:s.data,fields:s.block_schema?.fields})]}),a&&e.jsx(k,{blockType:a})]})})]}),e.jsx(y,{...t})]})};function P({hasCodeExample:s,hasDocumentationUrl:t}){return e.jsxs("div",{className:"flex items-center gap-1",children:[s&&e.jsxs(m,{variant:"bodySmall",className:"muted",children:["Paste this snippet"," ",e.jsx("span",{className:"font-semibold",children:"into your flows"})," to use this block."]}),t&&e.jsxs(m,{variant:"bodySmall",className:"muted",children:["Need help?"," ",e.jsx("a",{className:"underline text-blue-600 hover:text-blue-800 visited:text-purple-600",href:j["blocks-guide"],children:"View Docs"})]})]})}function K(){const{id:s}=B.useParams(),{data:t}=d(N(s));return e.jsx(C,{blockDocument:t})}export{K as component};
2
+ //# sourceMappingURL=block._id-OeCbdPeL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block._id-CWi9g5N3.js","sources":["../../src/components/blocks/block-document-details-page/block-document-details-page-header.tsx","../../src/components/blocks/block-document-details-page/block-document-schema-properties.tsx","../../src/components/blocks/block-document-details-page/block-document-details-page.tsx","../../src/routes/blocks/block.$id.tsx?tsr-split=component"],"sourcesContent":["import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype BlockDocumentDetailsPageHeaderProps = {\n\tblockName: string;\n};\n\nexport const BlockDocumentDetailsPageHeader = ({\n\tblockName,\n}: BlockDocumentDetailsPageHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t{blockName}\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import clsx from \"clsx\";\nimport { Fragment, useMemo } from \"react\";\n\ntype BlockDocumentSchemaProperties = {\n\tdata: { [key: string]: unknown };\n\tfields: { [key: string]: unknown };\n};\nexport function BlockDocumentSchemaProperties({\n\tdata,\n\tfields,\n}: BlockDocumentSchemaProperties) {\n\tconst fieldValues = useMemo(() => {\n\t\tlet properties: { [key: string]: unknown } = {};\n\t\tif (\"properties\" in fields) {\n\t\t\tproperties = fields.properties as { [key: string]: unknown };\n\t\t}\n\n\t\treturn Object.keys(properties).map((property) => {\n\t\t\tlet label = property;\n\t\t\t// nb: expect this type from Prefect Schema\n\t\t\tconst field = properties[property] as {\n\t\t\t\t[key: string]: unknown;\n\t\t\t\ttitle: string;\n\t\t\t};\n\t\t\tif (field.title) {\n\t\t\t\tlabel = field.title;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tvalue: data[property] ? JSON.stringify(data[property], null, 2) : null,\n\t\t\t};\n\t\t});\n\t}, [data, fields]);\n\n\treturn (\n\t\t<dl className=\"flex flex-col gap-2 p-2 text-xs\">\n\t\t\t{fieldValues.map(({ label, value }) => (\n\t\t\t\t<Fragment key={label}>\n\t\t\t\t\t<dt className=\"text-gray-500 text-sm\">{label}</dt>\n\t\t\t\t\t<dd className={clsx(\"text-base\", !value && \"text-gray-500 \")}>\n\t\t\t\t\t\t{value ?? \"None\"}\n\t\t\t\t\t</dd>\n\t\t\t\t</Fragment>\n\t\t\t))}\n\t\t</dl>\n\t);\n}\n","import type { BlockDocument } from \"@/api/block-documents\";\nimport { BlockDocumentActionMenu } from \"@/components/blocks/block-document-action-menu\";\nimport { BlockTypeDetails } from \"@/components/blocks/block-type-details\";\nimport { Card } from \"@/components/ui/card\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\nimport { DOCS_LINKS } from \"@/components/ui/docs-link\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { PythonBlockSnippet } from \"../python-example-snippet\";\nimport { useDeleteBlockDocumentConfirmationDialog } from \"../use-delete-block-document-confirmation-dialog\";\nimport { BlockDocumentDetailsPageHeader } from \"./block-document-details-page-header\";\nimport { BlockDocumentSchemaProperties } from \"./block-document-schema-properties\";\n\ntype BlockDocumentDetailsPageProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentDetailsPage = ({\n\tblockDocument,\n}: BlockDocumentDetailsPageProps) => {\n\tconst [dialogState, handleConfirmDelete] =\n\t\tuseDeleteBlockDocumentConfirmationDialog();\n\n\tconst handleDeleteBlock = () =>\n\t\thandleConfirmDelete(blockDocument, { shouldNavigate: true });\n\n\tconst { block_type } = blockDocument;\n\n\tconst blockName =\n\t\tblockDocument.name ?? blockDocument.block_type_name ?? \"Block Document\";\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<BlockDocumentDetailsPageHeader blockName={blockName} />\n\t\t\t\t\t<BlockDocumentActionMenu\n\t\t\t\t\t\tblockDocument={blockDocument}\n\t\t\t\t\t\tonDelete={handleDeleteBlock}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<Card className=\"p-4\">\n\t\t\t\t\t<div className=\"grid grid-cols-[minmax(0,_1fr)_250px] gap-4 \">\n\t\t\t\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t\t\t\t{(block_type?.code_example || block_type?.documentation_url) && (\n\t\t\t\t\t\t\t\t<NeedHelpDocsLink\n\t\t\t\t\t\t\t\t\thasCodeExample={Boolean(block_type?.code_example)}\n\t\t\t\t\t\t\t\t\thasDocumentationUrl={Boolean(block_type?.documentation_url)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{block_type?.code_example && (\n\t\t\t\t\t\t\t\t<PythonBlockSnippet\n\t\t\t\t\t\t\t\t\tcodeExample={block_type.code_example}\n\t\t\t\t\t\t\t\t\tname={blockDocument.name}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{blockDocument.data && blockDocument.block_schema?.fields && (\n\t\t\t\t\t\t\t\t<BlockDocumentSchemaProperties\n\t\t\t\t\t\t\t\t\tdata={blockDocument.data}\n\t\t\t\t\t\t\t\t\tfields={blockDocument.block_schema?.fields}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{block_type && <BlockTypeDetails blockType={block_type} />}\n\t\t\t\t\t</div>\n\t\t\t\t</Card>\n\t\t\t</div>\n\t\t\t<DeleteConfirmationDialog {...dialogState} />\n\t\t</>\n\t);\n};\n\ntype NeedHelpDocsLinkProps = {\n\thasCodeExample: boolean;\n\thasDocumentationUrl: boolean;\n};\nfunction NeedHelpDocsLink({\n\thasCodeExample,\n\thasDocumentationUrl,\n}: NeedHelpDocsLinkProps) {\n\treturn (\n\t\t<div className=\"flex items-center gap-1\">\n\t\t\t{hasCodeExample && (\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"muted\">\n\t\t\t\t\tPaste this snippet{\" \"}\n\t\t\t\t\t<span className=\"font-semibold\">into your flows</span> to use this\n\t\t\t\t\tblock.\n\t\t\t\t</Typography>\n\t\t\t)}\n\t\t\t{hasDocumentationUrl && (\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"muted\">\n\t\t\t\t\tNeed help?{\" \"}\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName=\"underline text-blue-600 hover:text-blue-800 visited:text-purple-600\"\n\t\t\t\t\t\thref={DOCS_LINKS[\"blocks-guide\"]}\n\t\t\t\t\t>\n\t\t\t\t\t\tView Docs\n\t\t\t\t\t</a>\n\t\t\t\t</Typography>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetBlockDocumentQuery } from \"@/api/block-documents\";\nimport { BlockDocumentDetailsPage } from \"@/components/blocks/block-document-details-page/block-document-details-page\";\n\nexport const Route = createFileRoute(\"/blocks/block/$id\")({\n\tcomponent: RouteComponent,\n\tloader: ({ params, context: { queryClient } }) =>\n\t\tqueryClient.ensureQueryData(buildGetBlockDocumentQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\tconst { data } = useSuspenseQuery(buildGetBlockDocumentQuery(id));\n\treturn <BlockDocumentDetailsPage blockDocument={data} />;\n}\n"],"names":["BlockDocumentDetailsPageHeader","blockName","jsx","Breadcrumb","jsxs","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BlockDocumentSchemaProperties","data","fields","fieldValues","useMemo","properties","property","label","field","value","Fragment","clsx","BlockDocumentDetailsPage","blockDocument","dialogState","handleConfirmDelete","useDeleteBlockDocumentConfirmationDialog","handleDeleteBlock","block_type","BlockDocumentActionMenu","Card","NeedHelpDocsLink","PythonBlockSnippet","BlockTypeDetails","DeleteConfirmationDialog","hasCodeExample","hasDocumentationUrl","Typography","DOCS_LINKS","RouteComponent","id","Route","useParams","useSuspenseQuery","buildGetBlockDocumentQuery"],"mappings":"+wBAYO,MAAMA,EAAiC,CAAC,CAC9C,UAAAC,CACD,IAEEC,EAAAA,IAACC,EAAA,CACA,SAAAC,EAAAA,KAACC,EAAA,CACA,SAAA,CAAAH,EAAAA,IAACI,EAAA,CACA,eAACC,EAAA,CAAe,GAAG,UAAU,UAAU,wBAAwB,kBAE/D,CAAA,CACD,QACCC,EAAA,EAAoB,EAErBN,EAAAA,IAACI,EAAA,CAAe,UAAU,wBACxB,SAAAL,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CACD,ECtBK,SAASQ,EAA8B,CAC7C,KAAAC,EACA,OAAAC,CACD,EAAkC,CACjC,MAAMC,EAAcC,EAAAA,QAAQ,IAAM,CACjC,IAAIC,EAAyC,CAAA,EAC7C,MAAI,eAAgBH,IACnBG,EAAaH,EAAO,YAGd,OAAO,KAAKG,CAAU,EAAE,IAAKC,GAAa,CAChD,IAAIC,EAAQD,EAEZ,MAAME,EAAQH,EAAWC,CAAQ,EAIjC,OAAIE,EAAM,QACTD,EAAQC,EAAM,OAGR,CACN,MAAAD,EACA,MAAON,EAAKK,CAAQ,EAAI,KAAK,UAAUL,EAAKK,CAAQ,EAAG,KAAM,CAAC,EAAI,IAAA,CAEpE,CAAC,CACF,EAAG,CAACL,EAAMC,CAAM,CAAC,EAEjB,OACCT,EAAAA,IAAC,KAAA,CAAG,UAAU,kCACZ,SAAAU,EAAY,IAAI,CAAC,CAAE,MAAAI,EAAO,MAAAE,CAAA,IAC1Bd,EAAAA,KAACe,EAAAA,SAAA,CACA,SAAA,CAAAjB,EAAAA,IAAC,KAAA,CAAG,UAAU,wBAAyB,SAAAc,EAAM,EAC7Cd,EAAAA,IAAC,KAAA,CAAG,UAAWkB,EAAK,YAAa,CAACF,GAAS,gBAAgB,EACzD,SAAAA,GAAS,MAAA,CACX,CAAA,GAJcF,CAKf,CACA,EACF,CAEF,CC/BO,MAAMK,EAA2B,CAAC,CACxC,cAAAC,CACD,IAAqC,CACpC,KAAM,CAACC,EAAaC,CAAmB,EACtCC,EAAA,EAEKC,EAAoB,IACzBF,EAAoBF,EAAe,CAAE,eAAgB,GAAM,EAEtD,CAAE,WAAAK,GAAeL,EAEjBrB,EACLqB,EAAc,MAAQA,EAAc,iBAAmB,iBAExD,OACClB,EAAAA,KAAAe,WAAA,CACC,SAAA,CAAAf,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAF,MAACF,GAA+B,UAAAC,EAAsB,EACtDC,EAAAA,IAAC0B,EAAA,CACA,cAAAN,EACA,SAAUI,CAAA,CAAA,CACX,EACD,QACCG,EAAA,CAAK,UAAU,MACf,SAAAzB,EAAAA,KAAC,MAAA,CAAI,UAAU,+CACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,EAAAuB,GAAY,cAAgBA,GAAY,oBACzCzB,EAAAA,IAAC4B,EAAA,CACA,eAAgB,EAAQH,GAAY,aACpC,oBAAqB,EAAQA,GAAY,iBAAiB,CAAA,EAG3DA,GAAY,cACZzB,EAAAA,IAAC6B,EAAA,CACA,YAAaJ,EAAW,aACxB,KAAML,EAAc,IAAA,CAAA,EAGrBA,EAAc,MAAQA,EAAc,cAAc,QAClDpB,EAAAA,IAACO,EAAA,CACA,KAAMa,EAAc,KACpB,OAAQA,EAAc,cAAc,MAAA,CAAA,CACrC,EAEF,EACCK,GAAczB,EAAAA,IAAC8B,EAAA,CAAiB,UAAWL,CAAA,CAAY,CAAA,CAAA,CACzD,CAAA,CACD,CAAA,EACD,EACAzB,MAAC+B,EAAA,CAA0B,GAAGV,CAAA,CAAa,CAAA,EAC5C,CAEF,EAMA,SAASO,EAAiB,CACzB,eAAAI,EACA,oBAAAC,CACD,EAA0B,CACzB,OACC/B,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAA8B,GACA9B,EAAAA,KAACgC,EAAA,CAAW,QAAQ,YAAY,UAAU,QAAQ,SAAA,CAAA,qBAC9B,IACnBlC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAgB,SAAA,kBAAe,EAAO,qBAAA,EAEvD,EAEAiC,GACA/B,EAAAA,KAACgC,EAAA,CAAW,QAAQ,YAAY,UAAU,QAAQ,SAAA,CAAA,aACtC,IACXlC,EAAAA,IAAC,IAAA,CACA,UAAU,sEACV,KAAMmC,EAAW,cAAc,EAC/B,SAAA,WAAA,CAAA,CAED,CAAA,CACD,CAAA,EAEF,CAEF,CCzFA,SAASC,GAAiB,CACzB,KAAM,CAAEC,GAAAA,CAAAA,EAAOC,EAAMC,UAAAA,EACf,CAAE/B,KAAAA,CAAAA,EAASgC,EAAiBC,EAA2BJ,CAAE,CAAC,EAChE,OAAOrC,EAAAA,IAACmB,EAAA,CAAyB,cAAeX,CAAAA,CAAK,CACtD"}
1
+ {"version":3,"file":"block._id-OeCbdPeL.js","sources":["../../src/components/blocks/block-document-details-page/block-document-details-page-header.tsx","../../src/components/blocks/block-document-details-page/block-document-schema-properties.tsx","../../src/components/blocks/block-document-details-page/block-document-details-page.tsx","../../src/routes/blocks/block.$id.tsx?tsr-split=component"],"sourcesContent":["import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype BlockDocumentDetailsPageHeaderProps = {\n\tblockName: string;\n};\n\nexport const BlockDocumentDetailsPageHeader = ({\n\tblockName,\n}: BlockDocumentDetailsPageHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t{blockName}\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import clsx from \"clsx\";\nimport { Fragment, useMemo } from \"react\";\n\ntype BlockDocumentSchemaProperties = {\n\tdata: { [key: string]: unknown };\n\tfields: { [key: string]: unknown };\n};\nexport function BlockDocumentSchemaProperties({\n\tdata,\n\tfields,\n}: BlockDocumentSchemaProperties) {\n\tconst fieldValues = useMemo(() => {\n\t\tlet properties: { [key: string]: unknown } = {};\n\t\tif (\"properties\" in fields) {\n\t\t\tproperties = fields.properties as { [key: string]: unknown };\n\t\t}\n\n\t\treturn Object.keys(properties).map((property) => {\n\t\t\tlet label = property;\n\t\t\t// nb: expect this type from Prefect Schema\n\t\t\tconst field = properties[property] as {\n\t\t\t\t[key: string]: unknown;\n\t\t\t\ttitle: string;\n\t\t\t};\n\t\t\tif (field.title) {\n\t\t\t\tlabel = field.title;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tvalue: data[property] ? JSON.stringify(data[property], null, 2) : null,\n\t\t\t};\n\t\t});\n\t}, [data, fields]);\n\n\treturn (\n\t\t<dl className=\"flex flex-col gap-2 p-2 text-xs\">\n\t\t\t{fieldValues.map(({ label, value }) => (\n\t\t\t\t<Fragment key={label}>\n\t\t\t\t\t<dt className=\"text-gray-500 text-sm\">{label}</dt>\n\t\t\t\t\t<dd className={clsx(\"text-base\", !value && \"text-gray-500 \")}>\n\t\t\t\t\t\t{value ?? \"None\"}\n\t\t\t\t\t</dd>\n\t\t\t\t</Fragment>\n\t\t\t))}\n\t\t</dl>\n\t);\n}\n","import type { BlockDocument } from \"@/api/block-documents\";\nimport { BlockDocumentActionMenu } from \"@/components/blocks/block-document-action-menu\";\nimport { BlockTypeDetails } from \"@/components/blocks/block-type-details\";\nimport { Card } from \"@/components/ui/card\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\nimport { DOCS_LINKS } from \"@/components/ui/docs-link\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { PythonBlockSnippet } from \"../python-example-snippet\";\nimport { useDeleteBlockDocumentConfirmationDialog } from \"../use-delete-block-document-confirmation-dialog\";\nimport { BlockDocumentDetailsPageHeader } from \"./block-document-details-page-header\";\nimport { BlockDocumentSchemaProperties } from \"./block-document-schema-properties\";\n\ntype BlockDocumentDetailsPageProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentDetailsPage = ({\n\tblockDocument,\n}: BlockDocumentDetailsPageProps) => {\n\tconst [dialogState, handleConfirmDelete] =\n\t\tuseDeleteBlockDocumentConfirmationDialog();\n\n\tconst handleDeleteBlock = () =>\n\t\thandleConfirmDelete(blockDocument, { shouldNavigate: true });\n\n\tconst { block_type } = blockDocument;\n\n\tconst blockName =\n\t\tblockDocument.name ?? blockDocument.block_type_name ?? \"Block Document\";\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<BlockDocumentDetailsPageHeader blockName={blockName} />\n\t\t\t\t\t<BlockDocumentActionMenu\n\t\t\t\t\t\tblockDocument={blockDocument}\n\t\t\t\t\t\tonDelete={handleDeleteBlock}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<Card className=\"p-4\">\n\t\t\t\t\t<div className=\"grid grid-cols-[minmax(0,_1fr)_250px] gap-4 \">\n\t\t\t\t\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t\t\t\t\t{(block_type?.code_example || block_type?.documentation_url) && (\n\t\t\t\t\t\t\t\t<NeedHelpDocsLink\n\t\t\t\t\t\t\t\t\thasCodeExample={Boolean(block_type?.code_example)}\n\t\t\t\t\t\t\t\t\thasDocumentationUrl={Boolean(block_type?.documentation_url)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{block_type?.code_example && (\n\t\t\t\t\t\t\t\t<PythonBlockSnippet\n\t\t\t\t\t\t\t\t\tcodeExample={block_type.code_example}\n\t\t\t\t\t\t\t\t\tname={blockDocument.name}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{blockDocument.data && blockDocument.block_schema?.fields && (\n\t\t\t\t\t\t\t\t<BlockDocumentSchemaProperties\n\t\t\t\t\t\t\t\t\tdata={blockDocument.data}\n\t\t\t\t\t\t\t\t\tfields={blockDocument.block_schema?.fields}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{block_type && <BlockTypeDetails blockType={block_type} />}\n\t\t\t\t\t</div>\n\t\t\t\t</Card>\n\t\t\t</div>\n\t\t\t<DeleteConfirmationDialog {...dialogState} />\n\t\t</>\n\t);\n};\n\ntype NeedHelpDocsLinkProps = {\n\thasCodeExample: boolean;\n\thasDocumentationUrl: boolean;\n};\nfunction NeedHelpDocsLink({\n\thasCodeExample,\n\thasDocumentationUrl,\n}: NeedHelpDocsLinkProps) {\n\treturn (\n\t\t<div className=\"flex items-center gap-1\">\n\t\t\t{hasCodeExample && (\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"muted\">\n\t\t\t\t\tPaste this snippet{\" \"}\n\t\t\t\t\t<span className=\"font-semibold\">into your flows</span> to use this\n\t\t\t\t\tblock.\n\t\t\t\t</Typography>\n\t\t\t)}\n\t\t\t{hasDocumentationUrl && (\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"muted\">\n\t\t\t\t\tNeed help?{\" \"}\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName=\"underline text-blue-600 hover:text-blue-800 visited:text-purple-600\"\n\t\t\t\t\t\thref={DOCS_LINKS[\"blocks-guide\"]}\n\t\t\t\t\t>\n\t\t\t\t\t\tView Docs\n\t\t\t\t\t</a>\n\t\t\t\t</Typography>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetBlockDocumentQuery } from \"@/api/block-documents\";\nimport { BlockDocumentDetailsPage } from \"@/components/blocks/block-document-details-page/block-document-details-page\";\n\nexport const Route = createFileRoute(\"/blocks/block/$id\")({\n\tcomponent: RouteComponent,\n\tloader: ({ params, context: { queryClient } }) =>\n\t\tqueryClient.ensureQueryData(buildGetBlockDocumentQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\tconst { data } = useSuspenseQuery(buildGetBlockDocumentQuery(id));\n\treturn <BlockDocumentDetailsPage blockDocument={data} />;\n}\n"],"names":["BlockDocumentDetailsPageHeader","blockName","jsx","Breadcrumb","jsxs","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BlockDocumentSchemaProperties","data","fields","fieldValues","useMemo","properties","property","label","field","value","Fragment","clsx","BlockDocumentDetailsPage","blockDocument","dialogState","handleConfirmDelete","useDeleteBlockDocumentConfirmationDialog","handleDeleteBlock","block_type","BlockDocumentActionMenu","Card","NeedHelpDocsLink","PythonBlockSnippet","BlockTypeDetails","DeleteConfirmationDialog","hasCodeExample","hasDocumentationUrl","Typography","DOCS_LINKS","RouteComponent","id","Route","useParams","useSuspenseQuery","buildGetBlockDocumentQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s,d as g,r as b,L as B,s as k}from"./vendor-tanstack-BcZfOOfy.js";import{B as y,g as v,h as c,bs as l,bB as m,bD as N,dM as _,C as S,q as p,y as n,dN as E,d4 as L}from"./index-nxDkMXcY.js";import{B as w}from"./block-type-details-Cx4npO8Y.js";import{l as C,L as P}from"./schema-form-input-string-format-datetime-CZkUje5U.js";import"./toggle-group-Dx_fy9WJ.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./block-type-logo-FrtMLMYr.js";import"./lazy-markdown-CLclUkkd.js";import"./zod-Cuos7J7w.js";import"./use-debounce-callback-CSs1BjLI.js";import"./timezone-select-DDUTUy-L.js";import"./dropdown-menu-CT6uZu-V.js";import"./form-CxD6-5Qf.js";const F=({blockDocument:e})=>s.jsx(y,{children:s.jsxs(v,{children:[s.jsx(c,{children:s.jsx(l,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(m,{}),s.jsx(c,{children:s.jsx(l,{to:"/blocks/block/$id",params:{id:e.id},className:"text-xl font-semibold",children:e.name??e.block_type_name??e.id})}),s.jsx(m,{}),s.jsx(c,{className:"text-xl font-semibold",children:s.jsx(N,{children:"Edit"})})]})}),R=({blockDocument:e})=>{const r=g(),{values:t,setValues:o,errors:x,validateForm:u}=C(),{updateBlockDocument:h,isPending:j}=_();b.useEffect(()=>{e.data&&o(e.data)},[e.data,o]);const f=async i=>{i.preventDefault();try{await u({schema:t}),h({id:e.id,data:t,merge_existing_data:!1},{onSuccess:()=>{n.success("Block updated successfully"),r({to:"/blocks/block/$id",params:{id:e.id}})},onError:d=>{const a="Unknown error while updating block.";n.error(a),console.error(a,d)}})}catch(d){const a="Unknown error while validating block data.";n.error(a),console.error(a,d)}};return s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(F,{blockDocument:e}),s.jsxs(S,{className:" p-6 grid grid-cols-[minmax(0,_1fr)_250px] gap-4 ",children:[s.jsxs("form",{className:"flex flex-col gap-4",onSubmit:i=>{f(i)},children:[s.jsx(P,{values:t,onValuesChange:o,errors:x,kinds:["json"],schema:e?.block_schema?.fields??{}}),s.jsxs("div",{className:"flex gap-3 justify-end",children:[s.jsx(p,{variant:"secondary",children:s.jsx(B,{to:"/blocks/block/$id",params:{id:e.id},children:"Cancel"})}),s.jsx(p,{loading:j,type:"submit",children:"Save"})]})]}),e.block_type&&s.jsx(w,{blockType:e.block_type})]})]})};function Y(){const{id:e}=E.useParams(),{data:r}=k(L(e));return s.jsx(R,{blockDocument:r})}export{Y as component};
2
- //# sourceMappingURL=block_._id.edit-wf0QVPUL.js.map
1
+ import{j as s,d as g,r as b,L as B,s as k}from"./vendor-tanstack-BcZfOOfy.js";import{B as y,g as v,h as c,bs as l,bB as m,bD as _,dO as N,C as S,q as p,y as n,dP as E,d6 as L}from"./index-_0OOjqn5.js";import{B as P}from"./block-type-details-2rIqbqoZ.js";import{u as w,L as C}from"./schema-form-input-string-format-datetime-DrpJmvST.js";import"./toggle-group-Cf-ZSSDP.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";import"./block-type-logo-DV1pSkV0.js";import"./lazy-markdown-CKcd9ksG.js";import"./zod-Cuos7J7w.js";import"./use-debounce-callback-CSs1BjLI.js";import"./timezone-select-qBEoPcyO.js";import"./dropdown-menu-DF4QR3Cp.js";import"./form-DHWphysD.js";const F=({blockDocument:e})=>s.jsx(y,{children:s.jsxs(v,{children:[s.jsx(c,{children:s.jsx(l,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(m,{}),s.jsx(c,{children:s.jsx(l,{to:"/blocks/block/$id",params:{id:e.id},className:"text-xl font-semibold",children:e.name??e.block_type_name??e.id})}),s.jsx(m,{}),s.jsx(c,{className:"text-xl font-semibold",children:s.jsx(_,{children:"Edit"})})]})}),R=({blockDocument:e})=>{const r=g(),{values:t,setValues:o,errors:x,validateForm:u}=w(),{updateBlockDocument:h,isPending:j}=N();b.useEffect(()=>{e.data&&o(e.data)},[e.data,o]);const f=async i=>{i.preventDefault();try{await u({schema:t}),h({id:e.id,data:t,merge_existing_data:!1},{onSuccess:()=>{n.success("Block updated successfully"),r({to:"/blocks/block/$id",params:{id:e.id}})},onError:d=>{const a="Unknown error while updating block.";n.error(a),console.error(a,d)}})}catch(d){const a="Unknown error while validating block data.";n.error(a),console.error(a,d)}};return s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(F,{blockDocument:e}),s.jsxs(S,{className:" p-6 grid grid-cols-[minmax(0,_1fr)_250px] gap-4 ",children:[s.jsxs("form",{className:"flex flex-col gap-4",onSubmit:i=>{f(i)},children:[s.jsx(C,{values:t,onValuesChange:o,errors:x,kinds:["json"],schema:e?.block_schema?.fields??{}}),s.jsxs("div",{className:"flex gap-3 justify-end",children:[s.jsx(p,{variant:"secondary",children:s.jsx(B,{to:"/blocks/block/$id",params:{id:e.id},children:"Cancel"})}),s.jsx(p,{loading:j,type:"submit",children:"Save"})]})]}),e.block_type&&s.jsx(P,{blockType:e.block_type})]})]})};function Y(){const{id:e}=E.useParams(),{data:r}=k(L(e));return s.jsx(R,{blockDocument:r})}export{Y as component};
2
+ //# sourceMappingURL=block_._id.edit-CD22VllN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_._id.edit-wf0QVPUL.js","sources":["../../src/components/blocks/block-document-edit-page/block-document-edit-page-header.tsx","../../src/components/blocks/block-document-edit-page/block-document-edit-page.tsx","../../src/routes/blocks/block_.$id.edit.tsx?tsr-split=component"],"sourcesContent":["import type { BlockDocument } from \"@/api/block-documents\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype BlockDocumentEditPageHeaderProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentEditPageHeader = ({\n\tblockDocument,\n}: BlockDocumentEditPageHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\tto=\"/blocks/block/$id\"\n\t\t\t\t\t\tparams={{ id: blockDocument.id }}\n\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{blockDocument.name ??\n\t\t\t\t\t\t\tblockDocument.block_type_name ??\n\t\t\t\t\t\t\tblockDocument.id}\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import { Link, useNavigate } from \"@tanstack/react-router\";\nimport { type FormEvent, useEffect } from \"react\";\nimport { toast } from \"sonner\";\nimport {\n\ttype BlockDocument,\n\tuseUpdateBlockDocument,\n} from \"@/api/block-documents\";\nimport { BlockTypeDetails } from \"@/components/blocks/block-type-details\";\nimport {\n\tLazySchemaForm,\n\ttype PrefectSchemaObject,\n\tuseSchemaForm,\n} from \"@/components/schemas\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { BlockDocumentEditPageHeader } from \"./block-document-edit-page-header\";\n\ntype BlockDocumentEditPageProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentEditPage = ({\n\tblockDocument,\n}: BlockDocumentEditPageProps) => {\n\tconst navigate = useNavigate();\n\tconst { values, setValues, errors, validateForm } = useSchemaForm();\n\tconst { updateBlockDocument, isPending } = useUpdateBlockDocument();\n\n\t// sync up values with block document values\n\tuseEffect(() => {\n\t\tif (blockDocument.data) {\n\t\t\tsetValues(blockDocument.data);\n\t\t}\n\t}, [blockDocument.data, setValues]);\n\n\tconst handleSubmit = async (event: FormEvent) => {\n\t\tevent.preventDefault();\n\t\ttry {\n\t\t\tawait validateForm({ schema: values });\n\t\t\tupdateBlockDocument(\n\t\t\t\t{\n\t\t\t\t\tid: blockDocument.id,\n\t\t\t\t\tdata: values,\n\t\t\t\t\tmerge_existing_data: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Block updated successfully\");\n\t\t\t\t\t\tvoid navigate({\n\t\t\t\t\t\t\tto: \"/blocks/block/$id\",\n\t\t\t\t\t\t\tparams: { id: blockDocument.id },\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonError: (err) => {\n\t\t\t\t\t\tconst message = \"Unknown error while updating block.\";\n\t\t\t\t\t\ttoast.error(message);\n\t\t\t\t\t\tconsole.error(message, err);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (err) {\n\t\t\tconst message = \"Unknown error while validating block data.\";\n\t\t\ttoast.error(message);\n\t\t\tconsole.error(message, err);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t<BlockDocumentEditPageHeader blockDocument={blockDocument} />\n\t\t\t<Card className=\" p-6 grid grid-cols-[minmax(0,_1fr)_250px] gap-4 \">\n\t\t\t\t<form\n\t\t\t\t\tclassName=\"flex flex-col gap-4\"\n\t\t\t\t\tonSubmit={(e) => void handleSubmit(e)}\n\t\t\t\t>\n\t\t\t\t\t<LazySchemaForm\n\t\t\t\t\t\tvalues={values}\n\t\t\t\t\t\tonValuesChange={setValues}\n\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\tkinds={[\"json\"]}\n\t\t\t\t\t\tschema={\n\t\t\t\t\t\t\t(blockDocument?.block_schema?.fields ??\n\t\t\t\t\t\t\t\t{}) as unknown as PrefectSchemaObject\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex gap-3 justify-end\">\n\t\t\t\t\t\t<Button variant=\"secondary\">\n\t\t\t\t\t\t\t<Link to=\"/blocks/block/$id\" params={{ id: blockDocument.id }}>\n\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button loading={isPending} type=\"submit\">\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\n\t\t\t\t{blockDocument.block_type && (\n\t\t\t\t\t<BlockTypeDetails blockType={blockDocument.block_type} />\n\t\t\t\t)}\n\t\t\t</Card>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetBlockDocumentQuery } from \"@/api/block-documents\";\nimport { BlockDocumentEditPage } from \"@/components/blocks/block-document-edit-page\";\n\nexport const Route = createFileRoute(\"/blocks/block_/$id/edit\")({\n\tcomponent: RouteComponent,\n\tloader: ({ params, context: { queryClient } }) =>\n\t\tqueryClient.ensureQueryData(buildGetBlockDocumentQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\tconst { data } = useSuspenseQuery(buildGetBlockDocumentQuery(id));\n\treturn <BlockDocumentEditPage blockDocument={data} />;\n}\n"],"names":["BlockDocumentEditPageHeader","blockDocument","jsx","Breadcrumb","jsxs","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","BlockDocumentEditPage","navigate","useNavigate","values","setValues","errors","validateForm","useSchemaForm","updateBlockDocument","isPending","useUpdateBlockDocument","useEffect","handleSubmit","event","toast","err","message","Card","e","LazySchemaForm","Button","Link","BlockTypeDetails","RouteComponent","id","Route","useParams","data","useSuspenseQuery","buildGetBlockDocumentQuery"],"mappings":"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"}
1
+ {"version":3,"file":"block_._id.edit-CD22VllN.js","sources":["../../src/components/blocks/block-document-edit-page/block-document-edit-page-header.tsx","../../src/components/blocks/block-document-edit-page/block-document-edit-page.tsx","../../src/routes/blocks/block_.$id.edit.tsx?tsr-split=component"],"sourcesContent":["import type { BlockDocument } from \"@/api/block-documents\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype BlockDocumentEditPageHeaderProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentEditPageHeader = ({\n\tblockDocument,\n}: BlockDocumentEditPageHeaderProps) => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\tto=\"/blocks/block/$id\"\n\t\t\t\t\t\tparams={{ id: blockDocument.id }}\n\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{blockDocument.name ??\n\t\t\t\t\t\t\tblockDocument.block_type_name ??\n\t\t\t\t\t\t\tblockDocument.id}\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import { Link, useNavigate } from \"@tanstack/react-router\";\nimport { type FormEvent, useEffect } from \"react\";\nimport { toast } from \"sonner\";\nimport {\n\ttype BlockDocument,\n\tuseUpdateBlockDocument,\n} from \"@/api/block-documents\";\nimport { BlockTypeDetails } from \"@/components/blocks/block-type-details\";\nimport {\n\tLazySchemaForm,\n\ttype PrefectSchemaObject,\n\tuseSchemaForm,\n} from \"@/components/schemas\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { BlockDocumentEditPageHeader } from \"./block-document-edit-page-header\";\n\ntype BlockDocumentEditPageProps = {\n\tblockDocument: BlockDocument;\n};\n\nexport const BlockDocumentEditPage = ({\n\tblockDocument,\n}: BlockDocumentEditPageProps) => {\n\tconst navigate = useNavigate();\n\tconst { values, setValues, errors, validateForm } = useSchemaForm();\n\tconst { updateBlockDocument, isPending } = useUpdateBlockDocument();\n\n\t// sync up values with block document values\n\tuseEffect(() => {\n\t\tif (blockDocument.data) {\n\t\t\tsetValues(blockDocument.data);\n\t\t}\n\t}, [blockDocument.data, setValues]);\n\n\tconst handleSubmit = async (event: FormEvent) => {\n\t\tevent.preventDefault();\n\t\ttry {\n\t\t\tawait validateForm({ schema: values });\n\t\t\tupdateBlockDocument(\n\t\t\t\t{\n\t\t\t\t\tid: blockDocument.id,\n\t\t\t\t\tdata: values,\n\t\t\t\t\tmerge_existing_data: false,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Block updated successfully\");\n\t\t\t\t\t\tvoid navigate({\n\t\t\t\t\t\t\tto: \"/blocks/block/$id\",\n\t\t\t\t\t\t\tparams: { id: blockDocument.id },\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tonError: (err) => {\n\t\t\t\t\t\tconst message = \"Unknown error while updating block.\";\n\t\t\t\t\t\ttoast.error(message);\n\t\t\t\t\t\tconsole.error(message, err);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (err) {\n\t\t\tconst message = \"Unknown error while validating block data.\";\n\t\t\ttoast.error(message);\n\t\t\tconsole.error(message, err);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t<BlockDocumentEditPageHeader blockDocument={blockDocument} />\n\t\t\t<Card className=\" p-6 grid grid-cols-[minmax(0,_1fr)_250px] gap-4 \">\n\t\t\t\t<form\n\t\t\t\t\tclassName=\"flex flex-col gap-4\"\n\t\t\t\t\tonSubmit={(e) => void handleSubmit(e)}\n\t\t\t\t>\n\t\t\t\t\t<LazySchemaForm\n\t\t\t\t\t\tvalues={values}\n\t\t\t\t\t\tonValuesChange={setValues}\n\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\tkinds={[\"json\"]}\n\t\t\t\t\t\tschema={\n\t\t\t\t\t\t\t(blockDocument?.block_schema?.fields ??\n\t\t\t\t\t\t\t\t{}) as unknown as PrefectSchemaObject\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex gap-3 justify-end\">\n\t\t\t\t\t\t<Button variant=\"secondary\">\n\t\t\t\t\t\t\t<Link to=\"/blocks/block/$id\" params={{ id: blockDocument.id }}>\n\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button loading={isPending} type=\"submit\">\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\n\t\t\t\t{blockDocument.block_type && (\n\t\t\t\t\t<BlockTypeDetails blockType={blockDocument.block_type} />\n\t\t\t\t)}\n\t\t\t</Card>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetBlockDocumentQuery } from \"@/api/block-documents\";\nimport { BlockDocumentEditPage } from \"@/components/blocks/block-document-edit-page\";\n\nexport const Route = createFileRoute(\"/blocks/block_/$id/edit\")({\n\tcomponent: RouteComponent,\n\tloader: ({ params, context: { queryClient } }) =>\n\t\tqueryClient.ensureQueryData(buildGetBlockDocumentQuery(params.id)),\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { id } = Route.useParams();\n\tconst { data } = useSuspenseQuery(buildGetBlockDocumentQuery(id));\n\treturn <BlockDocumentEditPage blockDocument={data} />;\n}\n"],"names":["BlockDocumentEditPageHeader","blockDocument","jsx","Breadcrumb","jsxs","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","BlockDocumentEditPage","navigate","useNavigate","values","setValues","errors","validateForm","useSchemaForm","updateBlockDocument","isPending","useUpdateBlockDocument","useEffect","handleSubmit","event","toast","err","message","Card","e","LazySchemaForm","Button","Link","BlockTypeDetails","RouteComponent","id","Route","useParams","data","useSuspenseQuery","buildGetBlockDocumentQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s,L as o,s as h,r as c}from"./vendor-tanstack-BcZfOOfy.js";import{C as m,al as t,q as i,N as g,O as j,bA as p,B as f,g as v,h as n,bs as b,bB as N,bm as B,bC as d}from"./index-nxDkMXcY.js";import{B as k}from"./block-type-logo-FrtMLMYr.js";import{L as C}from"./lazy-markdown-CLclUkkd.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";function S({blockType:e}){return s.jsxs(m,{className:"p-6",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(k,{size:"lg",logoUrl:e.logo_url}),s.jsx(t,{variant:"h4",children:e.name})]}),e.description&&s.jsx("div",{className:"prose max-w-none h-32 overflow-y-scroll text-sm",children:s.jsx(C,{children:e.description})}),s.jsxs("div",{className:"flex justify-end gap-4",children:[s.jsx(i,{variant:"secondary",size:"sm",children:s.jsx(o,{to:"/blocks/catalog/$slug",params:{slug:e.slug},children:"Details"})}),s.jsx(i,{size:"sm",children:s.jsx(o,{to:"/blocks/catalog/$slug/create",params:{slug:e.slug},children:"Create"})})]})]})}const y=({blockTypes:e,search:a,onSearch:r})=>s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs("div",{className:"flex justify-between items-center",children:[s.jsxs(t,{variant:"bodySmall",className:"text-muted-foreground",children:[e.length," ",g(e.length,"Block")]}),s.jsx("div",{className:"min-w-40",children:s.jsx(j,{value:a,placeholder:"Search blocks",onChange:l=>r(l.target.value)})})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:e.map(l=>s.jsx(S,{blockType:l},l.id))})]}),L=()=>s.jsx(m,{className:"p-4",children:s.jsxs(t,{variant:"bodySmall",children:["Can't find a block for your service? Check out the"," ",s.jsx("a",{className:"underline text-blue-600 hover:text-blue-800 visited:text-purple-600",href:p["integrations-guide"],children:"docs"})," ","for a full list of integrations in the SDK"]})}),w=()=>s.jsx(f,{children:s.jsxs(v,{children:[s.jsx(n,{children:s.jsx(b,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(N,{}),s.jsx(n,{className:"text-xl font-semibold",children:"Catalog"})]})}),z=({blockTypes:e,search:a,onSearch:r})=>s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(w,{}),s.jsx(L,{}),s.jsx(y,{blockTypes:e,search:a,onSearch:r})]});function $(){const[e,a]=_(),{data:r}=h(B({block_types:{name:{like_:e}},offset:0}));return s.jsx(z,{blockTypes:r,search:e,onSearch:a})}function _(){const{blockName:e}=d.useSearch(),a=d.useNavigate(),r=c.useCallback(u=>{a({to:".",search:x=>({...x,blockName:u}),replace:!0})},[a]);return[c.useMemo(()=>e??"",[e]),r]}export{$ as component};
2
- //# sourceMappingURL=catalog-Iv1gLDUd.js.map
1
+ import{j as s,L as o,s as h,r as c}from"./vendor-tanstack-BcZfOOfy.js";import{C as m,al as t,q as i,N as g,O as j,bA as p,B as f,g as v,h as n,bs as b,bB as N,bm as B,bC as d}from"./index-_0OOjqn5.js";import{B as k}from"./block-type-logo-DV1pSkV0.js";import{L as C}from"./lazy-markdown-CKcd9ksG.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";function S({blockType:e}){return s.jsxs(m,{className:"p-6",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(k,{size:"lg",logoUrl:e.logo_url}),s.jsx(t,{variant:"h4",children:e.name})]}),e.description&&s.jsx("div",{className:"prose max-w-none h-32 overflow-y-scroll text-sm",children:s.jsx(C,{children:e.description})}),s.jsxs("div",{className:"flex justify-end gap-4",children:[s.jsx(i,{variant:"secondary",size:"sm",children:s.jsx(o,{to:"/blocks/catalog/$slug",params:{slug:e.slug},children:"Details"})}),s.jsx(i,{size:"sm",children:s.jsx(o,{to:"/blocks/catalog/$slug/create",params:{slug:e.slug},children:"Create"})})]})]})}const y=({blockTypes:e,search:a,onSearch:r})=>s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs("div",{className:"flex justify-between items-center",children:[s.jsxs(t,{variant:"bodySmall",className:"text-muted-foreground",children:[e.length," ",g(e.length,"Block")]}),s.jsx("div",{className:"min-w-40",children:s.jsx(j,{value:a,placeholder:"Search blocks",onChange:l=>r(l.target.value)})})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:e.map(l=>s.jsx(S,{blockType:l},l.id))})]}),L=()=>s.jsx(m,{className:"p-4",children:s.jsxs(t,{variant:"bodySmall",children:["Can't find a block for your service? Check out the"," ",s.jsx("a",{className:"underline text-blue-600 hover:text-blue-800 visited:text-purple-600",href:p["integrations-guide"],children:"docs"})," ","for a full list of integrations in the SDK"]})}),w=()=>s.jsx(f,{children:s.jsxs(v,{children:[s.jsx(n,{children:s.jsx(b,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(N,{}),s.jsx(n,{className:"text-xl font-semibold",children:"Catalog"})]})}),z=({blockTypes:e,search:a,onSearch:r})=>s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(w,{}),s.jsx(L,{}),s.jsx(y,{blockTypes:e,search:a,onSearch:r})]});function $(){const[e,a]=_(),{data:r}=h(B({block_types:{name:{like_:e}},offset:0}));return s.jsx(z,{blockTypes:r,search:e,onSearch:a})}function _(){const{blockName:e}=d.useSearch(),a=d.useNavigate(),r=c.useCallback(u=>{a({to:".",search:x=>({...x,blockName:u}),replace:!0})},[a]);return[c.useMemo(()=>e??"",[e]),r]}export{$ as component};
2
+ //# sourceMappingURL=catalog-Dj7lYV7b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-Iv1gLDUd.js","sources":["../../src/components/blocks/blocks-catalog-page/block-type-card.tsx","../../src/components/blocks/blocks-catalog-page/block-types-grid.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-message.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-page-header.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-page.tsx","../../src/routes/blocks/catalog.tsx?tsr-split=component"],"sourcesContent":["import { Link } from \"@tanstack/react-router\";\nimport type { BlockType } from \"@/api/block-types\";\nimport { BlockTypeLogo } from \"@/components/block-type-logo/block-type-logo\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype BlockTypeCardProps = {\n\tblockType: BlockType;\n};\n\nexport function BlockTypeCard({ blockType }: BlockTypeCardProps) {\n\treturn (\n\t\t<Card className=\"p-6\">\n\t\t\t<div className=\"flex items-center gap-4\">\n\t\t\t\t<BlockTypeLogo size=\"lg\" logoUrl={blockType.logo_url} />\n\t\t\t\t<Typography variant=\"h4\">{blockType.name}</Typography>\n\t\t\t</div>\n\n\t\t\t{blockType.description && (\n\t\t\t\t<div className=\"prose max-w-none h-32 overflow-y-scroll text-sm\">\n\t\t\t\t\t<LazyMarkdown>{blockType.description}</LazyMarkdown>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex justify-end gap-4\">\n\t\t\t\t<Button variant=\"secondary\" size=\"sm\">\n\t\t\t\t\t<Link to=\"/blocks/catalog/$slug\" params={{ slug: blockType.slug }}>\n\t\t\t\t\t\tDetails\n\t\t\t\t\t</Link>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button size=\"sm\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/blocks/catalog/$slug/create\"\n\t\t\t\t\t\tparams={{ slug: blockType.slug }}\n\t\t\t\t\t>\n\t\t\t\t\t\tCreate\n\t\t\t\t\t</Link>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Card>\n\t);\n}\n","import type { BlockType } from \"@/api/block-types\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { pluralize } from \"@/utils\";\nimport { BlockTypeCard } from \"./block-type-card\";\n\ntype BlockTypesGridProps = {\n\tblockTypes: Array<BlockType>;\n\tsearch: string;\n\tonSearch: (value?: string) => void;\n};\n\nexport const BlockTypesGrid = ({\n\tblockTypes,\n\tsearch,\n\tonSearch,\n}: BlockTypesGridProps) => {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex justify-between items-center\">\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"text-muted-foreground\">\n\t\t\t\t\t{blockTypes.length} {pluralize(blockTypes.length, \"Block\")}\n\t\t\t\t</Typography>\n\t\t\t\t<div className=\"min-w-40\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tvalue={search}\n\t\t\t\t\t\tplaceholder=\"Search blocks\"\n\t\t\t\t\t\tonChange={(e) => onSearch(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n\t\t\t\t{blockTypes.map((blockType) => (\n\t\t\t\t\t<BlockTypeCard key={blockType.id} blockType={blockType} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { Card } from \"@/components/ui/card\";\nimport { DOCS_LINKS } from \"@/components/ui/docs-link\";\nimport { Typography } from \"@/components/ui/typography\";\n\nexport const BlocksCatalogMessage = () => {\n\treturn (\n\t\t<Card className=\"p-4\">\n\t\t\t<Typography variant=\"bodySmall\">\n\t\t\t\tCan&apos;t find a block for your service? Check out the{\" \"}\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"underline text-blue-600 hover:text-blue-800 visited:text-purple-600\"\n\t\t\t\t\thref={DOCS_LINKS[\"integrations-guide\"]}\n\t\t\t\t>\n\t\t\t\t\tdocs\n\t\t\t\t</a>{\" \"}\n\t\t\t\tfor a full list of integrations in the SDK\n\t\t\t</Typography>\n\t\t</Card>\n\t);\n};\n","import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\nexport const BlocksCatalogPageHeader = () => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\tCatalog\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import type { BlockType } from \"@/api/block-types\";\nimport { BlockTypesGrid } from \"./block-types-grid\";\nimport { BlocksCatalogMessage } from \"./blocks-catalog-message\";\nimport { BlocksCatalogPageHeader } from \"./blocks-catalog-page-header\";\n\ntype BlocksCatalogPageProps = {\n\tblockTypes: Array<BlockType>;\n\tsearch: string;\n\tonSearch: (value?: string) => void;\n};\n\nexport const BlocksCatalogPage = ({\n\tblockTypes,\n\tsearch,\n\tonSearch,\n}: BlocksCatalogPageProps) => {\n\treturn (\n\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t<BlocksCatalogPageHeader />\n\t\t\t<BlocksCatalogMessage />\n\t\t\t<BlockTypesGrid\n\t\t\t\tblockTypes={blockTypes}\n\t\t\t\tsearch={search}\n\t\t\t\tonSearch={onSearch}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport { buildListFilterBlockTypesQuery } from \"@/api/block-types\";\nimport { BlocksCatalogPage } from \"@/components/blocks/blocks-catalog-page/blocks-catalog-page\";\n\nconst searchParams = z.object({\n\tblockName: z.string().optional(),\n});\n\nexport const Route = createFileRoute(\"/blocks/catalog\")({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloaderDeps: ({ search: { blockName } }) => ({\n\t\tblockName,\n\t}),\n\tloader: ({ deps, context: { queryClient } }) => {\n\t\treturn queryClient.ensureQueryData(\n\t\t\tbuildListFilterBlockTypesQuery({\n\t\t\t\tblock_types: { name: { like_: deps.blockName } },\n\t\t\t\toffset: 0,\n\t\t\t}),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst [search, onSearch] = useSearch();\n\tconst { data: blockTypes } = useSuspenseQuery(\n\t\tbuildListFilterBlockTypesQuery({\n\t\t\tblock_types: { name: { like_: search } },\n\t\t\toffset: 0,\n\t\t}),\n\t);\n\n\treturn (\n\t\t<BlocksCatalogPage\n\t\t\tblockTypes={blockTypes}\n\t\t\tsearch={search}\n\t\t\tonSearch={onSearch}\n\t\t/>\n\t);\n}\n\nfunction useSearch() {\n\tconst { blockName } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\n\tconst onSearch = useCallback(\n\t\t(value?: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: (prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tblockName: value,\n\t\t\t\t}),\n\t\t\t\treplace: true,\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\tconst search = useMemo(() => blockName ?? \"\", [blockName]);\n\treturn [search, onSearch] as const;\n}\n"],"names":["BlockTypeCard","blockType","jsxs","Card","jsx","BlockTypeLogo","Typography","LazyMarkdown","Button","Link","BlockTypesGrid","blockTypes","search","onSearch","pluralize","SearchInput","e","BlocksCatalogMessage","DOCS_LINKS","BlocksCatalogPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BlocksCatalogPage","RouteComponent","useSearch","data","useSuspenseQuery","buildListFilterBlockTypesQuery","block_types","name","like_","offset","blockName","Route","navigate","useNavigate","useCallback","value","to","prev","replace","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"catalog-Dj7lYV7b.js","sources":["../../src/components/blocks/blocks-catalog-page/block-type-card.tsx","../../src/components/blocks/blocks-catalog-page/block-types-grid.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-message.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-page-header.tsx","../../src/components/blocks/blocks-catalog-page/blocks-catalog-page.tsx","../../src/routes/blocks/catalog.tsx?tsr-split=component"],"sourcesContent":["import { Link } from \"@tanstack/react-router\";\nimport type { BlockType } from \"@/api/block-types\";\nimport { BlockTypeLogo } from \"@/components/block-type-logo/block-type-logo\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { LazyMarkdown } from \"@/components/ui/lazy-markdown\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype BlockTypeCardProps = {\n\tblockType: BlockType;\n};\n\nexport function BlockTypeCard({ blockType }: BlockTypeCardProps) {\n\treturn (\n\t\t<Card className=\"p-6\">\n\t\t\t<div className=\"flex items-center gap-4\">\n\t\t\t\t<BlockTypeLogo size=\"lg\" logoUrl={blockType.logo_url} />\n\t\t\t\t<Typography variant=\"h4\">{blockType.name}</Typography>\n\t\t\t</div>\n\n\t\t\t{blockType.description && (\n\t\t\t\t<div className=\"prose max-w-none h-32 overflow-y-scroll text-sm\">\n\t\t\t\t\t<LazyMarkdown>{blockType.description}</LazyMarkdown>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex justify-end gap-4\">\n\t\t\t\t<Button variant=\"secondary\" size=\"sm\">\n\t\t\t\t\t<Link to=\"/blocks/catalog/$slug\" params={{ slug: blockType.slug }}>\n\t\t\t\t\t\tDetails\n\t\t\t\t\t</Link>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button size=\"sm\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"/blocks/catalog/$slug/create\"\n\t\t\t\t\t\tparams={{ slug: blockType.slug }}\n\t\t\t\t\t>\n\t\t\t\t\t\tCreate\n\t\t\t\t\t</Link>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Card>\n\t);\n}\n","import type { BlockType } from \"@/api/block-types\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport { Typography } from \"@/components/ui/typography\";\nimport { pluralize } from \"@/utils\";\nimport { BlockTypeCard } from \"./block-type-card\";\n\ntype BlockTypesGridProps = {\n\tblockTypes: Array<BlockType>;\n\tsearch: string;\n\tonSearch: (value?: string) => void;\n};\n\nexport const BlockTypesGrid = ({\n\tblockTypes,\n\tsearch,\n\tonSearch,\n}: BlockTypesGridProps) => {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex justify-between items-center\">\n\t\t\t\t<Typography variant=\"bodySmall\" className=\"text-muted-foreground\">\n\t\t\t\t\t{blockTypes.length} {pluralize(blockTypes.length, \"Block\")}\n\t\t\t\t</Typography>\n\t\t\t\t<div className=\"min-w-40\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tvalue={search}\n\t\t\t\t\t\tplaceholder=\"Search blocks\"\n\t\t\t\t\t\tonChange={(e) => onSearch(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n\t\t\t\t{blockTypes.map((blockType) => (\n\t\t\t\t\t<BlockTypeCard key={blockType.id} blockType={blockType} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { Card } from \"@/components/ui/card\";\nimport { DOCS_LINKS } from \"@/components/ui/docs-link\";\nimport { Typography } from \"@/components/ui/typography\";\n\nexport const BlocksCatalogMessage = () => {\n\treturn (\n\t\t<Card className=\"p-4\">\n\t\t\t<Typography variant=\"bodySmall\">\n\t\t\t\tCan&apos;t find a block for your service? Check out the{\" \"}\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"underline text-blue-600 hover:text-blue-800 visited:text-purple-600\"\n\t\t\t\t\thref={DOCS_LINKS[\"integrations-guide\"]}\n\t\t\t\t>\n\t\t\t\t\tdocs\n\t\t\t\t</a>{\" \"}\n\t\t\t\tfor a full list of integrations in the SDK\n\t\t\t</Typography>\n\t\t</Card>\n\t);\n};\n","import {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\nexport const BlocksCatalogPageHeader = () => {\n\treturn (\n\t\t<Breadcrumb>\n\t\t\t<BreadcrumbList>\n\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbLink to=\"/blocks\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\tBlocks\n\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t</BreadcrumbItem>\n\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\tCatalog\n\t\t\t\t</BreadcrumbItem>\n\t\t\t</BreadcrumbList>\n\t\t</Breadcrumb>\n\t);\n};\n","import type { BlockType } from \"@/api/block-types\";\nimport { BlockTypesGrid } from \"./block-types-grid\";\nimport { BlocksCatalogMessage } from \"./blocks-catalog-message\";\nimport { BlocksCatalogPageHeader } from \"./blocks-catalog-page-header\";\n\ntype BlocksCatalogPageProps = {\n\tblockTypes: Array<BlockType>;\n\tsearch: string;\n\tonSearch: (value?: string) => void;\n};\n\nexport const BlocksCatalogPage = ({\n\tblockTypes,\n\tsearch,\n\tonSearch,\n}: BlocksCatalogPageProps) => {\n\treturn (\n\t\t<div className=\"flex flex-col gap-6\">\n\t\t\t<BlocksCatalogPageHeader />\n\t\t\t<BlocksCatalogMessage />\n\t\t\t<BlockTypesGrid\n\t\t\t\tblockTypes={blockTypes}\n\t\t\t\tsearch={search}\n\t\t\t\tonSearch={onSearch}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport { buildListFilterBlockTypesQuery } from \"@/api/block-types\";\nimport { BlocksCatalogPage } from \"@/components/blocks/blocks-catalog-page/blocks-catalog-page\";\n\nconst searchParams = z.object({\n\tblockName: z.string().optional(),\n});\n\nexport const Route = createFileRoute(\"/blocks/catalog\")({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloaderDeps: ({ search: { blockName } }) => ({\n\t\tblockName,\n\t}),\n\tloader: ({ deps, context: { queryClient } }) => {\n\t\treturn queryClient.ensureQueryData(\n\t\t\tbuildListFilterBlockTypesQuery({\n\t\t\t\tblock_types: { name: { like_: deps.blockName } },\n\t\t\t\toffset: 0,\n\t\t\t}),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst [search, onSearch] = useSearch();\n\tconst { data: blockTypes } = useSuspenseQuery(\n\t\tbuildListFilterBlockTypesQuery({\n\t\t\tblock_types: { name: { like_: search } },\n\t\t\toffset: 0,\n\t\t}),\n\t);\n\n\treturn (\n\t\t<BlocksCatalogPage\n\t\t\tblockTypes={blockTypes}\n\t\t\tsearch={search}\n\t\t\tonSearch={onSearch}\n\t\t/>\n\t);\n}\n\nfunction useSearch() {\n\tconst { blockName } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\n\tconst onSearch = useCallback(\n\t\t(value?: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: (prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tblockName: value,\n\t\t\t\t}),\n\t\t\t\treplace: true,\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\tconst search = useMemo(() => blockName ?? \"\", [blockName]);\n\treturn [search, onSearch] as const;\n}\n"],"names":["BlockTypeCard","blockType","jsxs","Card","jsx","BlockTypeLogo","Typography","LazyMarkdown","Button","Link","BlockTypesGrid","blockTypes","search","onSearch","pluralize","SearchInput","e","BlocksCatalogMessage","DOCS_LINKS","BlocksCatalogPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BlocksCatalogPage","RouteComponent","useSearch","data","useSuspenseQuery","buildListFilterBlockTypesQuery","block_types","name","like_","offset","blockName","Route","navigate","useNavigate","useCallback","value","to","prev","replace","useMemo"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s,L as l,s as c}from"./vendor-tanstack-BcZfOOfy.js";import{B as d,g as m,h as o,bs as t,bB as n,C as x,al as i,q as u,dr as p,dd as j}from"./index-nxDkMXcY.js";import{B as h}from"./block-type-logo-FrtMLMYr.js";import{P as f}from"./python-example-snippet-BUllaeTS.js";import{L as g}from"./lazy-markdown-CLclUkkd.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";const B=({blockType:e})=>s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(N,{blockType:e}),s.jsx(v,{blockType:e})]});function N({blockType:e}){return s.jsx(d,{children:s.jsxs(m,{children:[s.jsx(o,{children:s.jsx(t,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(n,{}),s.jsx(o,{children:s.jsx(t,{to:"/blocks/catalog",className:"text-xl font-semibold",children:"Catalog"})}),s.jsx(n,{}),s.jsx(o,{className:"text-xl font-semibold",children:e.slug})]})})}function v({blockType:e}){return s.jsx("div",{children:s.jsxs(x,{className:"p-6",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(h,{size:"lg",logoUrl:e.logo_url}),s.jsx(i,{variant:"h3",children:e.name})]}),e.description&&s.jsx(L,{description:e.description,documentationUrl:e.documentation_url}),e.code_example&&s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsx(i,{variant:"h4",children:"Example"}),s.jsx(f,{codeExample:e.code_example,name:e.name})]}),s.jsx("div",{className:"flex justify-end",children:s.jsx(u,{children:s.jsx(l,{to:"/blocks/catalog/$slug/create",params:{slug:e.slug},children:"Create"})})})]})})}function L({description:e,documentationUrl:a}){let r=e;return a&&(r=`${r} [Documentation](${a})`),s.jsx("div",{className:"prose max-w-none",children:s.jsx(g,{children:r})})}function $(){const{slug:e}=p.useParams(),{data:a}=c(j(e));return s.jsx(B,{blockType:a})}export{$ as component};
2
- //# sourceMappingURL=catalog_._slug-DEHFXZzp.js.map
1
+ import{j as s,L as l,s as c}from"./vendor-tanstack-BcZfOOfy.js";import{B as d,g as m,h as t,bs as o,bB as n,C as x,al as i,q as u,dt as p,df as j}from"./index-_0OOjqn5.js";import{B as h}from"./block-type-logo-DV1pSkV0.js";import{P as f}from"./python-example-snippet-eWuRXCxE.js";import{L as g}from"./lazy-markdown-CKcd9ksG.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-forms-ClCIacbh.js";import"./vendor-date-wwuDAncJ.js";const B=({blockType:e})=>s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(N,{blockType:e}),s.jsx(v,{blockType:e})]});function N({blockType:e}){return s.jsx(d,{children:s.jsxs(m,{children:[s.jsx(t,{children:s.jsx(o,{to:"/blocks",className:"text-xl font-semibold",children:"Blocks"})}),s.jsx(n,{}),s.jsx(t,{children:s.jsx(o,{to:"/blocks/catalog",className:"text-xl font-semibold",children:"Catalog"})}),s.jsx(n,{}),s.jsx(t,{className:"text-xl font-semibold",children:e.slug})]})})}function v({blockType:e}){return s.jsx("div",{children:s.jsxs(x,{className:"p-6",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(h,{size:"lg",logoUrl:e.logo_url}),s.jsx(i,{variant:"h3",children:e.name})]}),e.description&&s.jsx(L,{description:e.description,documentationUrl:e.documentation_url}),e.code_example&&s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsx(i,{variant:"h4",children:"Example"}),s.jsx(f,{codeExample:e.code_example,name:e.name})]}),s.jsx("div",{className:"flex justify-end",children:s.jsx(u,{children:s.jsx(l,{to:"/blocks/catalog/$slug/create",params:{slug:e.slug},children:"Create"})})})]})})}function L({description:e,documentationUrl:a}){let r=e;return a&&(r=`${r} [Documentation](${a})`),s.jsx("div",{className:"prose max-w-none",children:s.jsx(g,{children:r})})}function $(){const{slug:e}=p.useParams(),{data:a}=c(j(e));return s.jsx(B,{blockType:a})}export{$ as component};
2
+ //# sourceMappingURL=catalog_._slug-NLgWS8vG.js.map