@ixo/editor 6.33.0 → 6.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/dist/BidConfig-YLGSEIOS.js +154 -0
  2. package/dist/BidConfig-YLGSEIOS.js.map +1 -0
  3. package/dist/BidFlowDetail-TJCJBJZZ.js +365 -0
  4. package/dist/BidFlowDetail-TJCJBJZZ.js.map +1 -0
  5. package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
  6. package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
  7. package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
  8. package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
  9. package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
  10. package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
  11. package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
  12. package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
  13. package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
  14. package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
  15. package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
  16. package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
  17. package/dist/ClaimConfig-3HKPGK55.js +200 -0
  18. package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
  19. package/dist/ClaimFlowDetail-UVEQMEI5.js +641 -0
  20. package/dist/ClaimFlowDetail-UVEQMEI5.js.map +1 -0
  21. package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
  22. package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
  23. package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js +647 -0
  24. package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js.map +1 -0
  25. package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
  26. package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
  27. package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js +1276 -0
  28. package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js.map +1 -0
  29. package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
  30. package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
  31. package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
  32. package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
  33. package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
  34. package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
  35. package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
  36. package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
  37. package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
  38. package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
  39. package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
  40. package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
  41. package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
  42. package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
  43. package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
  44. package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
  45. package/dist/DomainSignConfig-XFIXROVK.js +47 -0
  46. package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
  47. package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
  48. package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
  49. package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
  50. package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
  51. package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
  52. package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
  53. package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
  54. package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
  55. package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
  56. package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
  57. package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
  58. package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
  59. package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
  60. package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
  61. package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
  62. package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
  63. package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
  64. package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
  65. package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
  66. package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
  67. package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
  68. package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
  69. package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
  70. package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
  71. package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
  72. package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
  73. package/dist/EvaluateBidFlowDetail-2S2N4YTW.js +564 -0
  74. package/dist/EvaluateBidFlowDetail-2S2N4YTW.js.map +1 -0
  75. package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
  76. package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
  77. package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js +2237 -0
  78. package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js.map +1 -0
  79. package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
  80. package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
  81. package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
  82. package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
  83. package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
  84. package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
  85. package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
  86. package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
  87. package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
  88. package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
  89. package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
  90. package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
  91. package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
  92. package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
  93. package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
  94. package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
  95. package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
  96. package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
  97. package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
  98. package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
  99. package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
  100. package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
  101. package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
  102. package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
  103. package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
  104. package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
  105. package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
  106. package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
  107. package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
  108. package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
  109. package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
  110. package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
  111. package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
  112. package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
  113. package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
  114. package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
  115. package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
  116. package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
  117. package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
  118. package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
  119. package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
  120. package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
  121. package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
  122. package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
  123. package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
  124. package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
  125. package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
  126. package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
  127. package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
  128. package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
  129. package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
  130. package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
  131. package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
  132. package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
  133. package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
  134. package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
  135. package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
  136. package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
  137. package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
  138. package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
  139. package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
  140. package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
  141. package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
  142. package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
  143. package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
  144. package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
  145. package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
  146. package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
  147. package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
  148. package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
  149. package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
  150. package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
  151. package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
  152. package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
  153. package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
  154. package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
  155. package/dist/HarvestConfig-AIGOGBFR.js +56 -0
  156. package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
  157. package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
  158. package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
  159. package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
  160. package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
  161. package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
  162. package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
  163. package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
  164. package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
  165. package/dist/IdentityCreateFlowDetail-WGKO43IH.js +83 -0
  166. package/dist/IdentityCreateFlowDetail-WGKO43IH.js.map +1 -0
  167. package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
  168. package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
  169. package/dist/IidCreateFlowDetail-6M32S6XS.js +57 -0
  170. package/dist/IidCreateFlowDetail-6M32S6XS.js.map +1 -0
  171. package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
  172. package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
  173. package/dist/KycVerifyFlowDetail-EWOMXSD3.js +421 -0
  174. package/dist/KycVerifyFlowDetail-EWOMXSD3.js.map +1 -0
  175. package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
  176. package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
  177. package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
  178. package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
  179. package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
  180. package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
  181. package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
  182. package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
  183. package/dist/MatrixDmConfig-NBII27CS.js +120 -0
  184. package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
  185. package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
  186. package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
  187. package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
  188. package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
  189. package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
  190. package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
  191. package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
  192. package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
  193. package/dist/OracleConfig-R7TDTTKN.js +56 -0
  194. package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
  195. package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
  196. package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
  197. package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js +255 -0
  198. package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js.map +1 -0
  199. package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
  200. package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
  201. package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
  202. package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
  203. package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
  204. package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
  205. package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
  206. package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
  207. package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
  208. package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
  209. package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
  210. package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
  211. package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
  212. package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
  213. package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
  214. package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
  215. package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
  216. package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
  217. package/dist/OraclePromptConfig-YBRESISH.js +39 -0
  218. package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
  219. package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
  220. package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
  221. package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
  222. package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
  223. package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
  224. package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
  225. package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
  226. package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
  227. package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js +220 -0
  228. package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js.map +1 -0
  229. package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
  230. package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
  231. package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js +197 -0
  232. package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js.map +1 -0
  233. package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
  234. package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
  235. package/dist/ProposalCreateFlowDetail-4VZZPAWH.js +235 -0
  236. package/dist/ProposalCreateFlowDetail-4VZZPAWH.js.map +1 -0
  237. package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
  238. package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
  239. package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
  240. package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
  241. package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
  242. package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
  243. package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
  244. package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
  245. package/dist/RetireConfig-MV37WWZ6.js +59 -0
  246. package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
  247. package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
  248. package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
  249. package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
  250. package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
  251. package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
  252. package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
  253. package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
  254. package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
  255. package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
  256. package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
  257. package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
  258. package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
  259. package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
  260. package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
  261. package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
  262. package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
  263. package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
  264. package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
  265. package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
  266. package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
  267. package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
  268. package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
  269. package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
  270. package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
  271. package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
  272. package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
  273. package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
  274. package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
  275. package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
  276. package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
  277. package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
  278. package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
  279. package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
  280. package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
  281. package/dist/action-manifest.json +2091 -393
  282. package/dist/chunk-2GAYKKTL.js +9 -0
  283. package/dist/chunk-2GAYKKTL.js.map +1 -0
  284. package/dist/chunk-2WPEATI7.js +315 -0
  285. package/dist/chunk-2WPEATI7.js.map +1 -0
  286. package/dist/chunk-3O42FYT3.js +3333 -0
  287. package/dist/chunk-3O42FYT3.js.map +1 -0
  288. package/dist/chunk-3TUYY4HK.js +20 -0
  289. package/dist/chunk-3TUYY4HK.js.map +1 -0
  290. package/dist/chunk-3XSLBJYI.js +554 -0
  291. package/dist/chunk-3XSLBJYI.js.map +1 -0
  292. package/dist/chunk-4DGCCXD6.js +710 -0
  293. package/dist/chunk-4DGCCXD6.js.map +1 -0
  294. package/dist/chunk-4NAFQF6V.js +11 -0
  295. package/dist/chunk-4NAFQF6V.js.map +1 -0
  296. package/dist/chunk-4PONO4US.js +799 -0
  297. package/dist/chunk-4PONO4US.js.map +1 -0
  298. package/dist/chunk-4TMOIK5M.js +21 -0
  299. package/dist/chunk-4TMOIK5M.js.map +1 -0
  300. package/dist/chunk-5IH3VC5I.js +102 -0
  301. package/dist/chunk-5IH3VC5I.js.map +1 -0
  302. package/dist/chunk-5NTKDOP6.js +89 -0
  303. package/dist/chunk-5NTKDOP6.js.map +1 -0
  304. package/dist/chunk-5O2SFRGU.js +18 -0
  305. package/dist/chunk-5O2SFRGU.js.map +1 -0
  306. package/dist/chunk-632JLECF.js +55 -0
  307. package/dist/chunk-632JLECF.js.map +1 -0
  308. package/dist/chunk-676HDB7K.js +95 -0
  309. package/dist/chunk-676HDB7K.js.map +1 -0
  310. package/dist/chunk-6ESTNTSH.js +223 -0
  311. package/dist/chunk-6ESTNTSH.js.map +1 -0
  312. package/dist/chunk-6GKJR52N.js +15 -0
  313. package/dist/chunk-6GKJR52N.js.map +1 -0
  314. package/dist/chunk-6L4ZIKYU.js +23 -0
  315. package/dist/chunk-6L4ZIKYU.js.map +1 -0
  316. package/dist/chunk-76YX5R4L.js +11 -0
  317. package/dist/chunk-76YX5R4L.js.map +1 -0
  318. package/dist/chunk-7J3GFMN3.js +32 -0
  319. package/dist/chunk-7J3GFMN3.js.map +1 -0
  320. package/dist/chunk-7LSARC2G.js +102 -0
  321. package/dist/chunk-7LSARC2G.js.map +1 -0
  322. package/dist/chunk-7W7UUUIE.js +609 -0
  323. package/dist/chunk-7W7UUUIE.js.map +1 -0
  324. package/dist/chunk-7ZLW7H37.js +21 -0
  325. package/dist/chunk-7ZLW7H37.js.map +1 -0
  326. package/dist/chunk-AAZHI22G.js +18 -0
  327. package/dist/chunk-AAZHI22G.js.map +1 -0
  328. package/dist/chunk-ACNE455I.js +76 -0
  329. package/dist/chunk-ACNE455I.js.map +1 -0
  330. package/dist/chunk-BKLSSLPZ.js +27 -0
  331. package/dist/chunk-BKLSSLPZ.js.map +1 -0
  332. package/dist/chunk-BZ7UPUTY.js +417 -0
  333. package/dist/chunk-BZ7UPUTY.js.map +1 -0
  334. package/dist/chunk-CGFAICUE.js +28 -0
  335. package/dist/chunk-CGFAICUE.js.map +1 -0
  336. package/dist/chunk-CMCEWQ3C.js +19 -0
  337. package/dist/chunk-CMCEWQ3C.js.map +1 -0
  338. package/dist/chunk-CP4UV436.js +41 -0
  339. package/dist/chunk-CP4UV436.js.map +1 -0
  340. package/dist/chunk-D2CQPNQG.js +27508 -0
  341. package/dist/chunk-D2CQPNQG.js.map +1 -0
  342. package/dist/chunk-DIQRZP7Z.js +51 -0
  343. package/dist/chunk-DIQRZP7Z.js.map +1 -0
  344. package/dist/chunk-EBFFDDAS.js +13 -0
  345. package/dist/chunk-EBFFDDAS.js.map +1 -0
  346. package/dist/chunk-EGVS23DR.js +85 -0
  347. package/dist/chunk-EGVS23DR.js.map +1 -0
  348. package/dist/chunk-EKBQ7K4N.js +15 -0
  349. package/dist/chunk-EKBQ7K4N.js.map +1 -0
  350. package/dist/chunk-EKQCZRAN.js +24 -0
  351. package/dist/chunk-EKQCZRAN.js.map +1 -0
  352. package/dist/chunk-EYKZIZ5J.js +48 -0
  353. package/dist/chunk-EYKZIZ5J.js.map +1 -0
  354. package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
  355. package/dist/chunk-F4PTFXZH.js.map +1 -0
  356. package/dist/chunk-FFYZXA75.js +58 -0
  357. package/dist/chunk-FFYZXA75.js.map +1 -0
  358. package/dist/chunk-GFGDHPZ2.js +22 -0
  359. package/dist/chunk-GFGDHPZ2.js.map +1 -0
  360. package/dist/chunk-GR3CDFID.js +18 -0
  361. package/dist/chunk-GR3CDFID.js.map +1 -0
  362. package/dist/chunk-GR4SIU32.js +104 -0
  363. package/dist/chunk-GR4SIU32.js.map +1 -0
  364. package/dist/chunk-H5E46IIS.js +18 -0
  365. package/dist/chunk-H5E46IIS.js.map +1 -0
  366. package/dist/chunk-HFHVAMZL.js +22 -0
  367. package/dist/chunk-HFHVAMZL.js.map +1 -0
  368. package/dist/chunk-HRRI4BLF.js +4456 -0
  369. package/dist/chunk-HRRI4BLF.js.map +1 -0
  370. package/dist/chunk-HT6L7A5M.js +12 -0
  371. package/dist/chunk-HT6L7A5M.js.map +1 -0
  372. package/dist/chunk-I2FPFISM.js +301 -0
  373. package/dist/chunk-I2FPFISM.js.map +1 -0
  374. package/dist/chunk-IADAQJDH.js +28 -0
  375. package/dist/chunk-IADAQJDH.js.map +1 -0
  376. package/dist/chunk-IBOBCMQQ.js +99 -0
  377. package/dist/chunk-IBOBCMQQ.js.map +1 -0
  378. package/dist/chunk-IFWKRCFF.js +56 -0
  379. package/dist/chunk-IFWKRCFF.js.map +1 -0
  380. package/dist/chunk-IH4T7V4C.js +40 -0
  381. package/dist/chunk-IH4T7V4C.js.map +1 -0
  382. package/dist/chunk-IIIZZ4E4.js +1679 -0
  383. package/dist/chunk-IIIZZ4E4.js.map +1 -0
  384. package/dist/chunk-ILSFU3WD.js +83 -0
  385. package/dist/chunk-ILSFU3WD.js.map +1 -0
  386. package/dist/chunk-IX3VBV3L.js +43 -0
  387. package/dist/chunk-IX3VBV3L.js.map +1 -0
  388. package/dist/chunk-JBBFSORW.js +846 -0
  389. package/dist/chunk-JBBFSORW.js.map +1 -0
  390. package/dist/chunk-JIDTNKKL.js +1183 -0
  391. package/dist/chunk-JIDTNKKL.js.map +1 -0
  392. package/dist/chunk-JSPE6NGZ.js +22 -0
  393. package/dist/chunk-JSPE6NGZ.js.map +1 -0
  394. package/dist/chunk-JVROGQ7Q.js +150 -0
  395. package/dist/chunk-JVROGQ7Q.js.map +1 -0
  396. package/dist/chunk-K4WUMWNJ.js +32 -0
  397. package/dist/chunk-K4WUMWNJ.js.map +1 -0
  398. package/dist/chunk-K74XQ4Q5.js +11 -0
  399. package/dist/chunk-K74XQ4Q5.js.map +1 -0
  400. package/dist/chunk-KLLMJ4U3.js +22 -0
  401. package/dist/chunk-KLLMJ4U3.js.map +1 -0
  402. package/dist/chunk-LTKVCJ2E.js +27 -0
  403. package/dist/chunk-LTKVCJ2E.js.map +1 -0
  404. package/dist/chunk-M36DJTFZ.js +34 -0
  405. package/dist/chunk-M36DJTFZ.js.map +1 -0
  406. package/dist/chunk-MHM52LCJ.js +154 -0
  407. package/dist/chunk-MHM52LCJ.js.map +1 -0
  408. package/dist/chunk-MQCDMHRZ.js +59 -0
  409. package/dist/chunk-MQCDMHRZ.js.map +1 -0
  410. package/dist/chunk-N3ORMGAI.js +348 -0
  411. package/dist/chunk-N3ORMGAI.js.map +1 -0
  412. package/dist/chunk-NCSGIRRQ.js +28 -0
  413. package/dist/chunk-NCSGIRRQ.js.map +1 -0
  414. package/dist/chunk-NIXT2SBH.js +1423 -0
  415. package/dist/chunk-NIXT2SBH.js.map +1 -0
  416. package/dist/chunk-NJAII6CO.js +148 -0
  417. package/dist/chunk-NJAII6CO.js.map +1 -0
  418. package/dist/chunk-NKE4TL43.js +92 -0
  419. package/dist/chunk-NKE4TL43.js.map +1 -0
  420. package/dist/chunk-NZ7AXA7B.js +1 -0
  421. package/dist/chunk-NZ7AXA7B.js.map +1 -0
  422. package/dist/chunk-OCAYEGI2.js +26 -0
  423. package/dist/chunk-OCAYEGI2.js.map +1 -0
  424. package/dist/chunk-OMLI45ER.js +90 -0
  425. package/dist/chunk-OMLI45ER.js.map +1 -0
  426. package/dist/chunk-P7OBLJAG.js +88 -0
  427. package/dist/chunk-P7OBLJAG.js.map +1 -0
  428. package/dist/chunk-PAY3CBWL.js +2321 -0
  429. package/dist/chunk-PAY3CBWL.js.map +1 -0
  430. package/dist/chunk-PFF6VY35.js +257 -0
  431. package/dist/chunk-PFF6VY35.js.map +1 -0
  432. package/dist/chunk-PYNDJDWZ.js +1758 -0
  433. package/dist/chunk-PYNDJDWZ.js.map +1 -0
  434. package/dist/chunk-QDQ6UMMN.js +53 -0
  435. package/dist/chunk-QDQ6UMMN.js.map +1 -0
  436. package/dist/chunk-QGT3G2XG.js +24 -0
  437. package/dist/chunk-QGT3G2XG.js.map +1 -0
  438. package/dist/chunk-QZYCJ2GZ.js +55 -0
  439. package/dist/chunk-QZYCJ2GZ.js.map +1 -0
  440. package/dist/chunk-REZ7RFSA.js +124 -0
  441. package/dist/chunk-REZ7RFSA.js.map +1 -0
  442. package/dist/chunk-RRYBAE6E.js +2449 -0
  443. package/dist/chunk-RRYBAE6E.js.map +1 -0
  444. package/dist/chunk-RWUZOB62.js +34 -0
  445. package/dist/chunk-RWUZOB62.js.map +1 -0
  446. package/dist/chunk-SB5UCPZH.js +116 -0
  447. package/dist/chunk-SB5UCPZH.js.map +1 -0
  448. package/dist/chunk-SEJJ7CRI.js +99 -0
  449. package/dist/chunk-SEJJ7CRI.js.map +1 -0
  450. package/dist/chunk-SHBFGRPV.js +45 -0
  451. package/dist/chunk-SHBFGRPV.js.map +1 -0
  452. package/dist/chunk-SOFJ4GC5.js +45 -0
  453. package/dist/chunk-SOFJ4GC5.js.map +1 -0
  454. package/dist/chunk-STH2HPZK.js +44 -0
  455. package/dist/chunk-STH2HPZK.js.map +1 -0
  456. package/dist/chunk-TK3JNKME.js +28 -0
  457. package/dist/chunk-TK3JNKME.js.map +1 -0
  458. package/dist/chunk-TMONHFE3.js +46 -0
  459. package/dist/chunk-TMONHFE3.js.map +1 -0
  460. package/dist/chunk-TR4KO3AG.js +44 -0
  461. package/dist/chunk-TR4KO3AG.js.map +1 -0
  462. package/dist/chunk-TS2LNBF2.js +68 -0
  463. package/dist/chunk-TS2LNBF2.js.map +1 -0
  464. package/dist/chunk-UZUMBFPP.js +26 -0
  465. package/dist/chunk-UZUMBFPP.js.map +1 -0
  466. package/dist/chunk-VRZ5LMOW.js +176 -0
  467. package/dist/chunk-VRZ5LMOW.js.map +1 -0
  468. package/dist/chunk-WLGGY6Z6.js +75 -0
  469. package/dist/chunk-WLGGY6Z6.js.map +1 -0
  470. package/dist/chunk-WO7V6ZNC.js +11 -0
  471. package/dist/chunk-WO7V6ZNC.js.map +1 -0
  472. package/dist/chunk-WXSENSRP.js +64 -0
  473. package/dist/chunk-WXSENSRP.js.map +1 -0
  474. package/dist/chunk-XEKBZ2SA.js +19 -0
  475. package/dist/chunk-XEKBZ2SA.js.map +1 -0
  476. package/dist/chunk-XPBKU3JX.js +61 -0
  477. package/dist/chunk-XPBKU3JX.js.map +1 -0
  478. package/dist/chunk-XRYXBXWH.js +24 -0
  479. package/dist/chunk-XRYXBXWH.js.map +1 -0
  480. package/dist/chunk-XVA7QRVH.js +22 -0
  481. package/dist/chunk-XVA7QRVH.js.map +1 -0
  482. package/dist/chunk-YCTHHBSS.js +37 -0
  483. package/dist/chunk-YCTHHBSS.js.map +1 -0
  484. package/dist/chunk-YHPWD5NE.js +70 -0
  485. package/dist/chunk-YHPWD5NE.js.map +1 -0
  486. package/dist/chunk-YLNEKJQ5.js +126 -0
  487. package/dist/chunk-YLNEKJQ5.js.map +1 -0
  488. package/dist/chunk-YN4CEKCF.js +73 -0
  489. package/dist/chunk-YN4CEKCF.js.map +1 -0
  490. package/dist/chunk-YYNMESIF.js +17 -0
  491. package/dist/chunk-YYNMESIF.js.map +1 -0
  492. package/dist/chunk-Z6PRMCV6.js +1 -0
  493. package/dist/chunk-Z6PRMCV6.js.map +1 -0
  494. package/dist/chunk-ZDNW6VQG.js +11 -0
  495. package/dist/chunk-ZDNW6VQG.js.map +1 -0
  496. package/dist/chunk-ZP4D73DO.js +36 -0
  497. package/dist/chunk-ZP4D73DO.js.map +1 -0
  498. package/dist/chunk-ZUATADUV.js +26 -0
  499. package/dist/chunk-ZUATADUV.js.map +1 -0
  500. package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
  501. package/dist/core/index.cjs +14041 -6973
  502. package/dist/core/index.cjs.map +1 -1
  503. package/dist/core/index.d.ts +422 -138
  504. package/dist/core/index.js +425 -183
  505. package/dist/core/index.js.map +1 -1
  506. package/dist/flow-vnext/index.cjs +2842 -0
  507. package/dist/flow-vnext/index.cjs.map +1 -0
  508. package/dist/flow-vnext/index.d.ts +3 -0
  509. package/dist/flow-vnext/index.js +119 -0
  510. package/dist/flow-vnext/index.js.map +1 -0
  511. package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
  512. package/dist/index-b9xxXGFs.d.ts +1230 -0
  513. package/dist/index.d.ts +5 -3
  514. package/dist/index.js +202 -37
  515. package/dist/index.js.map +1 -1
  516. package/dist/legacy-BpgIqaQ5.d.ts +14 -0
  517. package/dist/mantine/index.d.ts +7 -4
  518. package/dist/mantine/index.js +84 -30
  519. package/dist/mantine/index.js.map +1 -1
  520. package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
  521. package/package.json +12 -2
  522. package/dist/chunk-A4CWC4AG.js +0 -374
  523. package/dist/chunk-A4CWC4AG.js.map +0 -1
  524. package/dist/chunk-NEOPTPDF.js.map +0 -1
  525. package/dist/chunk-VRCRDKN5.js +0 -59694
  526. package/dist/chunk-VRCRDKN5.js.map +0 -1
@@ -0,0 +1,2321 @@
1
+ import {
2
+ BaseNumberInput
3
+ } from "./chunk-76YX5R4L.js";
4
+ import {
5
+ AuthzExecActionTypes,
6
+ StakeType
7
+ } from "./chunk-TK3JNKME.js";
8
+ import {
9
+ BaseSelect
10
+ } from "./chunk-4NAFQF6V.js";
11
+ import {
12
+ BaseTextArea
13
+ } from "./chunk-ZDNW6VQG.js";
14
+ import {
15
+ BaseTextInput
16
+ } from "./chunk-WO7V6ZNC.js";
17
+
18
+ // src/mantine/blocks/proposal/flow/ActionsTab.tsx
19
+ import React33, { useCallback, useEffect as useEffect3, useState as useState8 } from "react";
20
+ import { Alert as Alert4, Button as Button7, Card as Card8, Stack as Stack33, Text as Text11 } from "@mantine/core";
21
+
22
+ // src/mantine/blocks/proposal/actions-components/ActionsCard.tsx
23
+ import React from "react";
24
+ import { Card, Group, Text, Badge, Stack, ActionIcon, ScrollArea } from "@mantine/core";
25
+ var getActionSummary = (action) => {
26
+ switch (action.type) {
27
+ case "Spend":
28
+ const spendData = action.data;
29
+ return `${spendData.amount} ${spendData.denom} to ${spendData.to.slice(0, 8)}...`;
30
+ case "UpdateMembers":
31
+ const membersData = action.data;
32
+ return `Add ${membersData.add.length}, Remove ${membersData.remove.length} members`;
33
+ default:
34
+ return "Unknown action";
35
+ }
36
+ };
37
+ var getActionTypeColor = (type) => {
38
+ switch (type) {
39
+ case "Spend":
40
+ return "#4dabf7";
41
+ case "UpdateMembers":
42
+ return "#ffd43b";
43
+ default:
44
+ return "var(--mantine-color-dimmed)";
45
+ }
46
+ };
47
+ var ActionsCard = ({ actions, isSelected, onClick, onEditAction, onRemoveAction, disabled = false }) => {
48
+ const handleCardClick = (e) => {
49
+ if (e.target.closest(".action-button")) {
50
+ return;
51
+ }
52
+ onClick();
53
+ };
54
+ return /* @__PURE__ */ React.createElement(
55
+ Card,
56
+ {
57
+ shadow: "sm",
58
+ padding: "lg",
59
+ radius: "md",
60
+ withBorder: true,
61
+ style: {
62
+ width: "100%",
63
+ cursor: "pointer",
64
+ backgroundColor: "var(--mantine-color-neutralColor-3)",
65
+ borderColor: isSelected ? "var(--mantine-color-accent-5)" : "var(--mantine-color-neutralColor-5)",
66
+ borderWidth: isSelected ? 2 : 1,
67
+ transition: "all 0.2s ease"
68
+ },
69
+ onClick: handleCardClick
70
+ },
71
+ /* @__PURE__ */ React.createElement(Group, { justify: "space-between", align: "flex-start" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React.createElement(Text, { size: "md", fw: 600 }, "Proposal Actions (", actions.length, ")"), actions.length === 0 ? /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, "No actions added yet.") : /* @__PURE__ */ React.createElement(ScrollArea, { h: actions.length > 3 ? 150 : void 0, style: { marginTop: 8 } }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, actions.map((action, index) => /* @__PURE__ */ React.createElement(
72
+ Card,
73
+ {
74
+ key: index,
75
+ withBorder: true,
76
+ padding: "xs",
77
+ style: {
78
+ backgroundColor: "var(--mantine-color-neutralColor-2)",
79
+ borderColor: "var(--mantine-color-neutralColor-5)"
80
+ }
81
+ },
82
+ /* @__PURE__ */ React.createElement(Group, { justify: "space-between", align: "center" }, /* @__PURE__ */ React.createElement(Group, { gap: "xs", style: { flex: 1 } }, /* @__PURE__ */ React.createElement(
83
+ Badge,
84
+ {
85
+ size: "sm",
86
+ variant: "light",
87
+ style: {
88
+ backgroundColor: `${getActionTypeColor(action.type)}20`,
89
+ color: getActionTypeColor(action.type)
90
+ }
91
+ },
92
+ action.type
93
+ ), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, getActionSummary(action))), !disabled && /* @__PURE__ */ React.createElement(Group, { gap: 4 }, /* @__PURE__ */ React.createElement(
94
+ ActionIcon,
95
+ {
96
+ size: "sm",
97
+ variant: "subtle",
98
+ className: "action-button",
99
+ onClick: (e) => {
100
+ e.stopPropagation();
101
+ onEditAction(index);
102
+ },
103
+ style: { color: "var(--mantine-color-accent-5)" }
104
+ },
105
+ "\u270F\uFE0F"
106
+ ), /* @__PURE__ */ React.createElement(
107
+ ActionIcon,
108
+ {
109
+ size: "sm",
110
+ variant: "subtle",
111
+ className: "action-button",
112
+ onClick: (e) => {
113
+ e.stopPropagation();
114
+ onRemoveAction(index);
115
+ },
116
+ style: { color: "var(--mantine-color-red-5)" }
117
+ },
118
+ "\u{1F5D1}\uFE0F"
119
+ )))
120
+ ))))))
121
+ );
122
+ };
123
+
124
+ // src/mantine/blocks/proposal/ActionsPanel.tsx
125
+ import React32, { useState as useState7, useEffect as useEffect2, useMemo } from "react";
126
+ import { Stack as Stack32, Button as Button6, Group as Group12, Text as Text10, Card as Card7, Badge as Badge4, Divider as Divider2, ScrollArea as ScrollArea3, Alert as Alert3, Tabs, SimpleGrid, Paper } from "@mantine/core";
127
+
128
+ // src/mantine/blocks/proposal/actions-components/SpendActionForm.tsx
129
+ import React2 from "react";
130
+ import { Stack as Stack2, Text as Text2 } from "@mantine/core";
131
+ var IXO_DENOM = "uixo";
132
+ var IXO_EXPONENT = 6;
133
+ var SpendActionForm = ({ data, onChange }) => {
134
+ const isIxo = data.denom === IXO_DENOM;
135
+ const displayAmount = isIxo && data.amount !== "" ? Number(data.amount) / 10 ** IXO_EXPONENT : data.amount;
136
+ return /* @__PURE__ */ React2.createElement(Stack2, null, /* @__PURE__ */ React2.createElement(
137
+ BaseTextInput,
138
+ {
139
+ label: "Recipient address",
140
+ description: "The account that will receive the funds",
141
+ placeholder: "ixo1...",
142
+ value: data.to,
143
+ onChange: (e) => onChange({ ...data, to: e.currentTarget.value }),
144
+ required: true
145
+ }
146
+ ), /* @__PURE__ */ React2.createElement(
147
+ BaseTextInput,
148
+ {
149
+ label: "Token",
150
+ description: "Which token to send from the group treasury. Keep uixo to send IXO.",
151
+ placeholder: "uixo",
152
+ value: data.denom,
153
+ onChange: (e) => onChange({ ...data, denom: e.currentTarget.value, amount: "" }),
154
+ required: true
155
+ }
156
+ ), isIxo ? /* @__PURE__ */ React2.createElement(
157
+ BaseNumberInput,
158
+ {
159
+ label: "Amount (IXO)",
160
+ description: "How much IXO to send",
161
+ placeholder: "10",
162
+ value: displayAmount === "" ? "" : Number(displayAmount),
163
+ onChange: (value) => {
164
+ const n = typeof value === "number" ? value : parseFloat(String(value));
165
+ onChange({ ...data, amount: Number.isFinite(n) && n > 0 ? String(Math.round(n * 10 ** IXO_EXPONENT)) : "" });
166
+ },
167
+ min: 0
168
+ }
169
+ ) : /* @__PURE__ */ React2.createElement(Stack2, { gap: 4 }, /* @__PURE__ */ React2.createElement(
170
+ BaseTextInput,
171
+ {
172
+ label: "Amount",
173
+ description: "Enter the amount in the token's smallest unit",
174
+ placeholder: "1000000",
175
+ value: data.amount,
176
+ onChange: (e) => onChange({ ...data, amount: e.currentTarget.value }),
177
+ required: true
178
+ }
179
+ ), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, "Tokens are counted in their smallest unit on-chain. Double-check the amount before submitting.")));
180
+ };
181
+
182
+ // src/mantine/blocks/proposal/actions-components/UpdateMembersActionForm.tsx
183
+ import React3, { useState } from "react";
184
+ import { Stack as Stack3, Button, Group as Group2, Text as Text3, Card as Card2, Badge as Badge2, ActionIcon as ActionIcon2, Divider, ScrollArea as ScrollArea2 } from "@mantine/core";
185
+ var UpdateMembersActionForm = ({ data, onChange }) => {
186
+ const [newMember, setNewMember] = useState({ addr: "", weight: 1 });
187
+ const [newRemoveAddress, setNewRemoveAddress] = useState("");
188
+ const handleAddMember = () => {
189
+ if (!newMember.addr) return;
190
+ onChange({
191
+ ...data,
192
+ add: [...data.add || [], { ...newMember }]
193
+ });
194
+ setNewMember({ addr: "", weight: 1 });
195
+ };
196
+ const handleRemoveMember = (index) => {
197
+ onChange({
198
+ ...data,
199
+ add: (data.add || []).filter((_, i) => i !== index)
200
+ });
201
+ };
202
+ const handleAddRemoveAddress = () => {
203
+ if (!newRemoveAddress) return;
204
+ onChange({
205
+ ...data,
206
+ remove: [...data.remove || [], { addr: newRemoveAddress }]
207
+ });
208
+ setNewRemoveAddress("");
209
+ };
210
+ const handleRemoveRemoveAddress = (index) => {
211
+ onChange({
212
+ ...data,
213
+ remove: (data.remove || []).filter((_, i) => i !== index)
214
+ });
215
+ };
216
+ return /* @__PURE__ */ React3.createElement(Stack3, null, /* @__PURE__ */ React3.createElement(Stack3, { gap: "xs" }, /* @__PURE__ */ React3.createElement(Text3, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Members to Add"), /* @__PURE__ */ React3.createElement(ScrollArea2, { h: 150 }, /* @__PURE__ */ React3.createElement(Stack3, { gap: "xs" }, (data.add || []).map((member, index) => /* @__PURE__ */ React3.createElement(
217
+ Card2,
218
+ {
219
+ key: index,
220
+ withBorder: true,
221
+ padding: "xs",
222
+ style: {
223
+ backgroundColor: "var(--mantine-color-neutralColor-2)",
224
+ borderColor: "var(--mantine-color-neutralColor-5)"
225
+ }
226
+ },
227
+ /* @__PURE__ */ React3.createElement(Group2, { justify: "space-between" }, /* @__PURE__ */ React3.createElement("div", null, /* @__PURE__ */ React3.createElement(Text3, { size: "sm", fw: 500, style: { color: "var(--mantine-color-text)" } }, member.addr.slice(0, 20), "..."), /* @__PURE__ */ React3.createElement(
228
+ Badge2,
229
+ {
230
+ size: "sm",
231
+ style: {
232
+ backgroundColor: "#ffd43b20",
233
+ color: "#ffd43b"
234
+ }
235
+ },
236
+ "Weight: ",
237
+ member.weight
238
+ )), /* @__PURE__ */ React3.createElement(ActionIcon2, { size: "sm", variant: "subtle", onClick: () => handleRemoveMember(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
239
+ )))), /* @__PURE__ */ React3.createElement(Group2, { grow: true }, /* @__PURE__ */ React3.createElement(BaseTextInput, { placeholder: "Member address", value: newMember.addr, onChange: (e) => setNewMember({ ...newMember, addr: e.currentTarget.value }) }), /* @__PURE__ */ React3.createElement(BaseNumberInput, { placeholder: "Weight", value: newMember.weight, onChange: (value) => setNewMember({ ...newMember, weight: Number(value) || 1 }), min: 1 }), /* @__PURE__ */ React3.createElement(
240
+ Button,
241
+ {
242
+ size: "sm",
243
+ onClick: handleAddMember,
244
+ style: {
245
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
246
+ "&:hover": {
247
+ backgroundColor: "var(--mantine-color-accent-5)"
248
+ }
249
+ }
250
+ },
251
+ "\u2795 Add"
252
+ ))), /* @__PURE__ */ React3.createElement(Divider, { color: "#333" }), /* @__PURE__ */ React3.createElement(Stack3, { gap: "xs" }, /* @__PURE__ */ React3.createElement(Text3, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Members to Remove"), /* @__PURE__ */ React3.createElement(ScrollArea2, { h: 100 }, /* @__PURE__ */ React3.createElement(Stack3, { gap: "xs" }, (data.remove || []).map((item, index) => /* @__PURE__ */ React3.createElement(
253
+ Card2,
254
+ {
255
+ key: index,
256
+ withBorder: true,
257
+ padding: "xs",
258
+ style: {
259
+ backgroundColor: "var(--mantine-color-neutralColor-2)",
260
+ borderColor: "var(--mantine-color-neutralColor-5)"
261
+ }
262
+ },
263
+ /* @__PURE__ */ React3.createElement(Group2, { justify: "space-between" }, /* @__PURE__ */ React3.createElement(Text3, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, item.addr.slice(0, 30), "..."), /* @__PURE__ */ React3.createElement(ActionIcon2, { size: "sm", variant: "subtle", onClick: () => handleRemoveRemoveAddress(index), style: { color: "var(--mantine-color-red-5)" } }, "\u{1F5D1}\uFE0F"))
264
+ )))), /* @__PURE__ */ React3.createElement(Group2, { grow: true }, /* @__PURE__ */ React3.createElement(BaseTextInput, { placeholder: "Address to remove", value: newRemoveAddress, onChange: (e) => setNewRemoveAddress(e.currentTarget.value) }), /* @__PURE__ */ React3.createElement(
265
+ Button,
266
+ {
267
+ size: "sm",
268
+ onClick: handleAddRemoveAddress,
269
+ style: {
270
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
271
+ "&:hover": {
272
+ backgroundColor: "var(--mantine-color-accent-5)"
273
+ }
274
+ }
275
+ },
276
+ "\u2795 Add"
277
+ ))));
278
+ };
279
+
280
+ // src/mantine/blocks/proposal/actions-components/StakeActionForm.tsx
281
+ import React4 from "react";
282
+ import { Stack as Stack4 } from "@mantine/core";
283
+ var stakeTypeOptions = [
284
+ { value: StakeType.Delegate, label: "Delegate" },
285
+ { value: StakeType.Undelegate, label: "Undelegate" },
286
+ { value: StakeType.Redelegate, label: "Redelegate" },
287
+ { value: StakeType.WithdrawDelegatorReward, label: "Withdraw Delegator Reward" }
288
+ ];
289
+ var StakeActionForm = ({ data, onChange }) => {
290
+ const isRedelegate = data.stakeType === StakeType.Redelegate;
291
+ const needsAmount = data.stakeType !== StakeType.WithdrawDelegatorReward;
292
+ return /* @__PURE__ */ React4.createElement(Stack4, { gap: "md" }, /* @__PURE__ */ React4.createElement(BaseSelect, { label: "Stake Type", value: data.stakeType, onChange: (value) => onChange({ ...data, stakeType: value }), data: stakeTypeOptions, required: true }), /* @__PURE__ */ React4.createElement(
293
+ BaseTextInput,
294
+ {
295
+ label: "Validator Address",
296
+ placeholder: isRedelegate ? "Source validator address" : "Validator address",
297
+ value: data.validator,
298
+ onChange: (e) => onChange({ ...data, validator: e.target.value }),
299
+ required: true
300
+ }
301
+ ), isRedelegate && /* @__PURE__ */ React4.createElement(
302
+ BaseTextInput,
303
+ {
304
+ label: "Destination Validator Address",
305
+ placeholder: "Destination validator address",
306
+ value: data.toValidator,
307
+ onChange: (e) => onChange({ ...data, toValidator: e.target.value }),
308
+ required: true
309
+ }
310
+ ), needsAmount && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(
311
+ BaseNumberInput,
312
+ {
313
+ label: "Amount",
314
+ placeholder: "Enter amount",
315
+ value: data.amount,
316
+ onChange: (value) => onChange({ ...data, amount: String(value || "") }),
317
+ min: 0,
318
+ hideControls: true,
319
+ required: true
320
+ }
321
+ ), /* @__PURE__ */ React4.createElement(
322
+ BaseSelect,
323
+ {
324
+ label: "Denomination",
325
+ value: data.denom,
326
+ onChange: (value) => onChange({ ...data, denom: value || "uixo" }),
327
+ data: [
328
+ { value: "uixo", label: "uIXO" },
329
+ { value: "ixo", label: "IXO" }
330
+ ],
331
+ required: true
332
+ }
333
+ )));
334
+ };
335
+
336
+ // src/mantine/blocks/proposal/actions-components/JoinActionForm.tsx
337
+ import React5 from "react";
338
+ import { Stack as Stack5 } from "@mantine/core";
339
+ var JoinActionForm = ({ data, onChange }) => {
340
+ return /* @__PURE__ */ React5.createElement(Stack5, { gap: "md" }, /* @__PURE__ */ React5.createElement(BaseTextInput, { label: "ID", placeholder: "did:ixo:entity:abc123...", value: data.id, onChange: (e) => onChange({ ...data, id: e.target.value }), required: true }), /* @__PURE__ */ React5.createElement(BaseTextInput, { label: "Core Address", placeholder: "ixo1...", value: data.coreAddress, onChange: (e) => onChange({ ...data, coreAddress: e.target.value }), required: true }), /* @__PURE__ */ React5.createElement(BaseTextInput, { label: "Address", placeholder: "ixo1...", value: data.address, onChange: (e) => onChange({ ...data, address: e.target.value }), required: true }));
341
+ };
342
+
343
+ // src/mantine/blocks/proposal/actions-components/forms/MintActionForm.tsx
344
+ import React6 from "react";
345
+ import { Stack as Stack6 } from "@mantine/core";
346
+ var MintActionForm = ({ data, onChange }) => {
347
+ return /* @__PURE__ */ React6.createElement(Stack6, { gap: "md" }, /* @__PURE__ */ React6.createElement(BaseTextInput, { label: "Recipient Address", placeholder: "ixo1...", value: data.to, onChange: (e) => onChange({ ...data, to: e.currentTarget.value }), required: true }), /* @__PURE__ */ React6.createElement(
348
+ BaseNumberInput,
349
+ {
350
+ label: "Amount",
351
+ placeholder: "Enter amount to mint",
352
+ value: data.amount,
353
+ onChange: (value) => onChange({ ...data, amount: Number(value) || 0 }),
354
+ min: 0,
355
+ hideControls: true,
356
+ required: true
357
+ }
358
+ ));
359
+ };
360
+
361
+ // src/mantine/blocks/proposal/actions-components/forms/ExecuteActionForm.tsx
362
+ import React7, { useState as useState2 } from "react";
363
+ import { Stack as Stack7, Button as Button2, Group as Group3, Text as Text4, Card as Card3 } from "@mantine/core";
364
+ var ExecuteActionForm = ({ data, onChange }) => {
365
+ const [newFund, setNewFund] = useState2({ denom: "uixo", amount: "" });
366
+ const handleAddFund = () => {
367
+ if (newFund.amount && newFund.denom) {
368
+ onChange({
369
+ ...data,
370
+ funds: [...data.funds || [], { ...newFund }]
371
+ });
372
+ setNewFund({ denom: "uixo", amount: "" });
373
+ }
374
+ };
375
+ const handleRemoveFund = (index) => {
376
+ onChange({
377
+ ...data,
378
+ funds: (data.funds || []).filter((_, i) => i !== index)
379
+ });
380
+ };
381
+ const formatMessage = () => {
382
+ try {
383
+ const parsed = JSON.parse(data.message);
384
+ return JSON.stringify(parsed, null, 2);
385
+ } catch {
386
+ return data.message;
387
+ }
388
+ };
389
+ return /* @__PURE__ */ React7.createElement(Stack7, { gap: "md" }, /* @__PURE__ */ React7.createElement(BaseTextInput, { label: "Contract Address", placeholder: "ixo1...", value: data.address, onChange: (e) => onChange({ ...data, address: e.currentTarget.value }), required: true }), /* @__PURE__ */ React7.createElement(
390
+ BaseTextArea,
391
+ {
392
+ label: "Message (JSON)",
393
+ placeholder: '{"method": "execute", "params": {}}',
394
+ value: formatMessage(),
395
+ onChange: (e) => onChange({ ...data, message: e.currentTarget.value }),
396
+ minRows: 4,
397
+ required: true
398
+ }
399
+ ), /* @__PURE__ */ React7.createElement(Stack7, { gap: "xs" }, /* @__PURE__ */ React7.createElement(Text4, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Funds (Optional)"), (data.funds || []).map((fund, index) => /* @__PURE__ */ React7.createElement(Card3, { key: index, withBorder: true, padding: "xs", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" } }, /* @__PURE__ */ React7.createElement(Group3, { justify: "space-between" }, /* @__PURE__ */ React7.createElement(Text4, { size: "sm", style: { color: "var(--mantine-color-text)" } }, fund.amount, " ", fund.denom), /* @__PURE__ */ React7.createElement(Button2, { size: "xs", variant: "subtle", onClick: () => handleRemoveFund(index), style: { color: "var(--mantine-color-red-5)" } }, "Remove")))), /* @__PURE__ */ React7.createElement(Group3, { grow: true }, /* @__PURE__ */ React7.createElement(BaseTextInput, { placeholder: "Amount", value: newFund.amount, onChange: (e) => setNewFund({ ...newFund, amount: e.currentTarget.value }) }), /* @__PURE__ */ React7.createElement(BaseTextInput, { placeholder: "Denom (e.g., uixo)", value: newFund.denom, onChange: (e) => setNewFund({ ...newFund, denom: e.currentTarget.value }) }), /* @__PURE__ */ React7.createElement(
400
+ Button2,
401
+ {
402
+ size: "sm",
403
+ onClick: handleAddFund,
404
+ style: {
405
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
406
+ "&:hover": { backgroundColor: "var(--mantine-color-accent-5)" }
407
+ }
408
+ },
409
+ "Add Fund"
410
+ ))));
411
+ };
412
+
413
+ // src/mantine/blocks/proposal/actions-components/forms/CustomActionForm.tsx
414
+ import React8, { useState as useState3, useEffect } from "react";
415
+ import { Stack as Stack8, Alert, Group as Group4, Text as Text5, Badge as Badge3 } from "@mantine/core";
416
+ var CustomActionForm = ({ data, onChange }) => {
417
+ const [isValid, setIsValid] = useState3(true);
418
+ const [error, setError] = useState3("");
419
+ useEffect(() => {
420
+ try {
421
+ if (data.message) {
422
+ JSON.parse(data.message);
423
+ setIsValid(true);
424
+ setError("");
425
+ }
426
+ } catch (e) {
427
+ setIsValid(false);
428
+ setError(e.message);
429
+ }
430
+ }, [data.message]);
431
+ const formatMessage = () => {
432
+ try {
433
+ const parsed = JSON.parse(data.message);
434
+ return JSON.stringify(parsed, null, 2);
435
+ } catch {
436
+ return data.message;
437
+ }
438
+ };
439
+ return /* @__PURE__ */ React8.createElement(Stack8, { gap: "md" }, /* @__PURE__ */ React8.createElement(Alert, { color: "yellow" }, /* @__PURE__ */ React8.createElement(Text5, { size: "sm" }, "\u26A0\uFE0F Custom actions require valid JSON messages. Supports both Wasm and Stargate message formats.")), /* @__PURE__ */ React8.createElement("div", null, /* @__PURE__ */ React8.createElement(Group4, { gap: "xs", mb: "xs" }, /* @__PURE__ */ React8.createElement(Text5, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Custom Message (JSON)"), /* @__PURE__ */ React8.createElement(
440
+ Badge3,
441
+ {
442
+ size: "sm",
443
+ style: {
444
+ backgroundColor: isValid ? "#51cf6620" : "#ff6b6b20",
445
+ color: isValid ? "var(--mantine-color-accent-5)" : "var(--mantine-color-red-5)"
446
+ }
447
+ },
448
+ isValid ? "Valid JSON" : "Invalid JSON"
449
+ )), /* @__PURE__ */ React8.createElement(
450
+ BaseTextArea,
451
+ {
452
+ placeholder: `Example Wasm message:
453
+ {
454
+ "wasm": {
455
+ "execute": {
456
+ "contract_addr": "ixo1...",
457
+ "funds": [],
458
+ "msg": { "method": "value" }
459
+ }
460
+ }
461
+ }
462
+
463
+ Example Stargate message:
464
+ {
465
+ "stargate": {
466
+ "type_url": "/cosmos.bank.v1beta1.MsgSend",
467
+ "value": { ... }
468
+ }
469
+ }`,
470
+ value: formatMessage(),
471
+ onChange: (e) => onChange({ ...data, message: e.currentTarget.value }),
472
+ minRows: 10,
473
+ maxRows: 20,
474
+ required: true,
475
+ error
476
+ }
477
+ )));
478
+ };
479
+
480
+ // src/mantine/blocks/proposal/actions-components/forms/AuthzExecActionForm.tsx
481
+ import React9 from "react";
482
+ import { Stack as Stack9 } from "@mantine/core";
483
+ var AuthzExecActionForm = ({ data, onChange }) => {
484
+ const actionTypeOptions = [
485
+ { value: AuthzExecActionTypes.Delegate, label: "Delegate" },
486
+ { value: AuthzExecActionTypes.Undelegate, label: "Undelegate" },
487
+ { value: AuthzExecActionTypes.Redelegate, label: "Redelegate" },
488
+ { value: AuthzExecActionTypes.ClaimRewards, label: "Claim Rewards" },
489
+ { value: AuthzExecActionTypes.Custom, label: "Custom" }
490
+ ];
491
+ const formatMessage = (message) => {
492
+ try {
493
+ return JSON.stringify(message, null, 2);
494
+ } catch {
495
+ return typeof message === "string" ? message : "{}";
496
+ }
497
+ };
498
+ const handleMessageChange = (field, value) => {
499
+ try {
500
+ const parsed = JSON.parse(value);
501
+ onChange({ ...data, [field]: parsed });
502
+ } catch {
503
+ onChange({ ...data, [field]: value });
504
+ }
505
+ };
506
+ return /* @__PURE__ */ React9.createElement(Stack9, { gap: "md" }, /* @__PURE__ */ React9.createElement(
507
+ BaseSelect,
508
+ {
509
+ label: "Action Type",
510
+ placeholder: "Select action type",
511
+ value: data.authzExecActionType,
512
+ onChange: (value) => onChange({ ...data, authzExecActionType: value }),
513
+ data: actionTypeOptions,
514
+ required: true
515
+ }
516
+ ), data.authzExecActionType === AuthzExecActionTypes.Delegate && /* @__PURE__ */ React9.createElement(
517
+ BaseTextArea,
518
+ {
519
+ label: "Delegate Message (JSON)",
520
+ placeholder: '{"delegator_address": "", "validator_address": "", "amount": {"denom": "uixo", "amount": ""}}',
521
+ value: formatMessage(data.delegate),
522
+ onChange: (e) => handleMessageChange("delegate", e.currentTarget.value),
523
+ minRows: 4
524
+ }
525
+ ), data.authzExecActionType === AuthzExecActionTypes.Undelegate && /* @__PURE__ */ React9.createElement(
526
+ BaseTextArea,
527
+ {
528
+ label: "Undelegate Message (JSON)",
529
+ placeholder: '{"delegator_address": "", "validator_address": "", "amount": {"denom": "uixo", "amount": ""}}',
530
+ value: formatMessage(data.undelegate),
531
+ onChange: (e) => handleMessageChange("undelegate", e.currentTarget.value),
532
+ minRows: 4
533
+ }
534
+ ), data.authzExecActionType === AuthzExecActionTypes.Redelegate && /* @__PURE__ */ React9.createElement(
535
+ BaseTextArea,
536
+ {
537
+ label: "Redelegate Message (JSON)",
538
+ placeholder: '{"delegator_address": "", "validator_src_address": "", "validator_dst_address": "", "amount": {"denom": "uixo", "amount": ""}}',
539
+ value: formatMessage(data.redelegate),
540
+ onChange: (e) => handleMessageChange("redelegate", e.currentTarget.value),
541
+ minRows: 4
542
+ }
543
+ ), data.authzExecActionType === AuthzExecActionTypes.ClaimRewards && /* @__PURE__ */ React9.createElement(
544
+ BaseTextArea,
545
+ {
546
+ label: "Claim Rewards Message (JSON)",
547
+ placeholder: '{"delegator_address": "", "validator_address": ""}',
548
+ value: formatMessage(data.claimRewards),
549
+ onChange: (e) => handleMessageChange("claimRewards", e.currentTarget.value),
550
+ minRows: 3
551
+ }
552
+ ), data.authzExecActionType === AuthzExecActionTypes.Custom && /* @__PURE__ */ React9.createElement(BaseTextInput, { label: "Custom Message", placeholder: "Enter custom message", value: data.custom, onChange: (e) => onChange({ ...data, custom: e.currentTarget.value }) }));
553
+ };
554
+
555
+ // src/mantine/blocks/proposal/actions-components/forms/AuthzGrantActionForm.tsx
556
+ import React10 from "react";
557
+ import { Stack as Stack10 } from "@mantine/core";
558
+ var AuthzGrantActionForm = ({ data, onChange }) => {
559
+ return /* @__PURE__ */ React10.createElement(Stack10, { gap: "md" }, /* @__PURE__ */ React10.createElement(
560
+ BaseTextInput,
561
+ {
562
+ label: "Type URL",
563
+ placeholder: "/cosmos.authz.v1beta1.MsgGrant",
564
+ value: data.typeUrl,
565
+ onChange: (e) => onChange({ ...data, typeUrl: e.currentTarget.value }),
566
+ required: true
567
+ }
568
+ ), /* @__PURE__ */ React10.createElement(
569
+ BaseTextInput,
570
+ {
571
+ label: "Grantee Address",
572
+ placeholder: "ixo1...",
573
+ value: data.value?.grantee || "",
574
+ onChange: (e) => onChange({
575
+ ...data,
576
+ value: { ...data.value || {}, grantee: e.currentTarget.value }
577
+ }),
578
+ required: true
579
+ }
580
+ ), /* @__PURE__ */ React10.createElement(
581
+ BaseTextInput,
582
+ {
583
+ label: "Message Type URL",
584
+ placeholder: "/cosmos.staking.v1beta1.MsgDelegate",
585
+ value: data.value?.msgTypeUrl || "",
586
+ onChange: (e) => onChange({
587
+ ...data,
588
+ value: { ...data.value || {}, msgTypeUrl: e.currentTarget.value }
589
+ }),
590
+ required: true
591
+ }
592
+ ));
593
+ };
594
+
595
+ // src/mantine/blocks/proposal/actions-components/forms/BurnNftActionForm.tsx
596
+ import React11 from "react";
597
+ import { Stack as Stack11 } from "@mantine/core";
598
+ var BurnNftActionForm = ({ data, onChange }) => {
599
+ return /* @__PURE__ */ React11.createElement(Stack11, { gap: "md" }, /* @__PURE__ */ React11.createElement(BaseTextInput, { label: "Collection Address", placeholder: "ixo1...", value: data.collection, onChange: (e) => onChange({ ...data, collection: e.currentTarget.value }), required: true }), /* @__PURE__ */ React11.createElement(BaseTextInput, { label: "Token ID", placeholder: "1", value: data.tokenId, onChange: (e) => onChange({ ...data, tokenId: e.currentTarget.value }), required: true }));
600
+ };
601
+
602
+ // src/mantine/blocks/proposal/actions-components/forms/TransferNftActionForm.tsx
603
+ import React12 from "react";
604
+ import { Stack as Stack12, Checkbox } from "@mantine/core";
605
+ var TransferNftActionForm = ({ data, onChange }) => {
606
+ return /* @__PURE__ */ React12.createElement(Stack12, { gap: "md" }, /* @__PURE__ */ React12.createElement(BaseTextInput, { label: "Collection Address", placeholder: "ixo1...", value: data.collection, onChange: (e) => onChange({ ...data, collection: e.currentTarget.value }), required: true }), /* @__PURE__ */ React12.createElement(BaseTextInput, { label: "Token ID", placeholder: "1", value: data.tokenId, onChange: (e) => onChange({ ...data, tokenId: e.currentTarget.value }), required: true }), /* @__PURE__ */ React12.createElement(BaseTextInput, { label: "Recipient Address", placeholder: "ixo1...", value: data.recipient, onChange: (e) => onChange({ ...data, recipient: e.currentTarget.value }), required: true }), /* @__PURE__ */ React12.createElement(
607
+ Checkbox,
608
+ {
609
+ label: "Execute Smart Contract",
610
+ checked: data.executeSmartContract,
611
+ onChange: (e) => onChange({ ...data, executeSmartContract: e.currentTarget.checked }),
612
+ styles: {
613
+ label: { color: "var(--mantine-color-dimmed)" },
614
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
615
+ }
616
+ }
617
+ ), data.executeSmartContract && /* @__PURE__ */ React12.createElement(
618
+ BaseTextArea,
619
+ {
620
+ label: "Smart Contract Message (JSON)",
621
+ placeholder: '{"method": "execute", "params": {}}',
622
+ value: data.smartContractMsg,
623
+ onChange: (e) => onChange({ ...data, smartContractMsg: e.currentTarget.value }),
624
+ minRows: 3
625
+ }
626
+ ));
627
+ };
628
+
629
+ // src/mantine/blocks/proposal/actions-components/forms/ManageCw721ActionForm.tsx
630
+ import React13 from "react";
631
+ import { Stack as Stack13, Radio, Group as Group5 } from "@mantine/core";
632
+ var ManageCw721ActionForm = ({ data, onChange }) => {
633
+ return /* @__PURE__ */ React13.createElement(Stack13, { gap: "md" }, /* @__PURE__ */ React13.createElement(Radio.Group, { label: "Action", value: data.adding ? "add" : "remove", onChange: (value) => onChange({ ...data, adding: value === "add" }) }, /* @__PURE__ */ React13.createElement(Group5, { mt: "xs" }, /* @__PURE__ */ React13.createElement(
634
+ Radio,
635
+ {
636
+ value: "add",
637
+ label: "Add CW721 Contract",
638
+ styles: {
639
+ label: { color: "var(--mantine-color-dimmed)" },
640
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
641
+ }
642
+ }
643
+ ), /* @__PURE__ */ React13.createElement(
644
+ Radio,
645
+ {
646
+ value: "remove",
647
+ label: "Remove CW721 Contract",
648
+ styles: {
649
+ label: { color: "var(--mantine-color-dimmed)" },
650
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
651
+ }
652
+ }
653
+ ))), /* @__PURE__ */ React13.createElement(BaseTextInput, { label: "NFT Contract Address", placeholder: "ixo1...", value: data.address, onChange: (e) => onChange({ ...data, address: e.currentTarget.value }), required: true }));
654
+ };
655
+
656
+ // src/mantine/blocks/proposal/actions-components/forms/InstantiateActionForm.tsx
657
+ import React14, { useState as useState4 } from "react";
658
+ import { Stack as Stack14, Button as Button3, Group as Group6, Text as Text6, Card as Card4 } from "@mantine/core";
659
+ var InstantiateActionForm = ({ data, onChange }) => {
660
+ const [newFund, setNewFund] = useState4({ denom: "uixo", amount: "" });
661
+ const handleAddFund = () => {
662
+ if (newFund.amount && newFund.denom) {
663
+ onChange({
664
+ ...data,
665
+ funds: [...data.funds || [], { ...newFund }]
666
+ });
667
+ setNewFund({ denom: "uixo", amount: "" });
668
+ }
669
+ };
670
+ const handleRemoveFund = (index) => {
671
+ onChange({
672
+ ...data,
673
+ funds: (data.funds || []).filter((_, i) => i !== index)
674
+ });
675
+ };
676
+ const formatMessage = () => {
677
+ try {
678
+ const parsed = JSON.parse(data.message);
679
+ return JSON.stringify(parsed, null, 2);
680
+ } catch {
681
+ return data.message;
682
+ }
683
+ };
684
+ return /* @__PURE__ */ React14.createElement(Stack14, { gap: "md" }, /* @__PURE__ */ React14.createElement(BaseTextInput, { label: "Admin Address", placeholder: "ixo1...", value: data.admin, onChange: (e) => onChange({ ...data, admin: e.currentTarget.value }), required: true }), /* @__PURE__ */ React14.createElement(BaseNumberInput, { label: "Code ID", placeholder: "123", value: data.codeId, onChange: (value) => onChange({ ...data, codeId: Number(value) || 0 }), min: 1, required: true }), /* @__PURE__ */ React14.createElement(BaseTextInput, { label: "Label", placeholder: "My Contract", value: data.label, onChange: (e) => onChange({ ...data, label: e.currentTarget.value }), required: true }), /* @__PURE__ */ React14.createElement(
685
+ BaseTextArea,
686
+ {
687
+ label: "Instantiate Message (JSON)",
688
+ placeholder: '{"owner": "ixo1...", "config": {}}',
689
+ value: formatMessage(),
690
+ onChange: (e) => onChange({ ...data, message: e.currentTarget.value }),
691
+ minRows: 4,
692
+ required: true
693
+ }
694
+ ), /* @__PURE__ */ React14.createElement(Stack14, { gap: "xs" }, /* @__PURE__ */ React14.createElement(Text6, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Funds (Optional)"), (data.funds || []).map((fund, index) => /* @__PURE__ */ React14.createElement(Card4, { key: index, withBorder: true, padding: "xs", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" } }, /* @__PURE__ */ React14.createElement(Group6, { justify: "space-between" }, /* @__PURE__ */ React14.createElement(Text6, { size: "sm", style: { color: "var(--mantine-color-text)" } }, fund.amount, " ", fund.denom), /* @__PURE__ */ React14.createElement(Button3, { size: "xs", variant: "subtle", onClick: () => handleRemoveFund(index), style: { color: "var(--mantine-color-red-5)" } }, "Remove")))), /* @__PURE__ */ React14.createElement(Group6, { grow: true }, /* @__PURE__ */ React14.createElement(BaseTextInput, { placeholder: "Amount", value: newFund.amount, onChange: (e) => setNewFund({ ...newFund, amount: e.currentTarget.value }) }), /* @__PURE__ */ React14.createElement(BaseTextInput, { placeholder: "Denom (e.g., uixo)", value: newFund.denom, onChange: (e) => setNewFund({ ...newFund, denom: e.currentTarget.value }) }), /* @__PURE__ */ React14.createElement(
695
+ Button3,
696
+ {
697
+ size: "sm",
698
+ onClick: handleAddFund,
699
+ style: {
700
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
701
+ "&:hover": { backgroundColor: "var(--mantine-color-accent-5)" }
702
+ }
703
+ },
704
+ "Add Fund"
705
+ ))));
706
+ };
707
+
708
+ // src/mantine/blocks/proposal/actions-components/forms/MigrateActionForm.tsx
709
+ import React15 from "react";
710
+ import { Stack as Stack15 } from "@mantine/core";
711
+ var MigrateActionForm = ({ data, onChange }) => {
712
+ const formatMessage = () => {
713
+ try {
714
+ const parsed = JSON.parse(data.msg);
715
+ return JSON.stringify(parsed, null, 2);
716
+ } catch {
717
+ return data.msg;
718
+ }
719
+ };
720
+ return /* @__PURE__ */ React15.createElement(Stack15, { gap: "md" }, /* @__PURE__ */ React15.createElement(BaseTextInput, { label: "Contract Address", placeholder: "ixo1...", value: data.contract, onChange: (e) => onChange({ ...data, contract: e.currentTarget.value }), required: true }), /* @__PURE__ */ React15.createElement(BaseNumberInput, { label: "New Code ID", placeholder: "456", value: data.codeId, onChange: (value) => onChange({ ...data, codeId: Number(value) || 0 }), min: 1, required: true }), /* @__PURE__ */ React15.createElement(
721
+ BaseTextArea,
722
+ {
723
+ label: "Migration Message (JSON)",
724
+ placeholder: '{"migrate": {"new_param": "value"}}',
725
+ value: formatMessage(),
726
+ onChange: (e) => onChange({ ...data, msg: e.currentTarget.value }),
727
+ minRows: 4,
728
+ required: true
729
+ }
730
+ ));
731
+ };
732
+
733
+ // src/mantine/blocks/proposal/actions-components/forms/UpdateAdminActionForm.tsx
734
+ import React16 from "react";
735
+ import { Stack as Stack16 } from "@mantine/core";
736
+ var UpdateAdminActionForm = ({ data, onChange }) => {
737
+ return /* @__PURE__ */ React16.createElement(Stack16, { gap: "md" }, /* @__PURE__ */ React16.createElement(BaseTextInput, { label: "Contract Address", placeholder: "ixo1...", value: data.contract, onChange: (e) => onChange({ ...data, contract: e.currentTarget.value }), required: true }), /* @__PURE__ */ React16.createElement(BaseTextInput, { label: "New Admin Address", placeholder: "ixo1...", value: data.newAdmin, onChange: (e) => onChange({ ...data, newAdmin: e.currentTarget.value }), required: true }));
738
+ };
739
+
740
+ // src/mantine/blocks/proposal/actions-components/forms/ManageCw20ActionForm.tsx
741
+ import React17 from "react";
742
+ import { Stack as Stack17, Radio as Radio2, Group as Group7 } from "@mantine/core";
743
+ var ManageCw20ActionForm = ({ data, onChange }) => {
744
+ return /* @__PURE__ */ React17.createElement(Stack17, { gap: "md" }, /* @__PURE__ */ React17.createElement(Radio2.Group, { label: "Action", value: data.adding ? "add" : "remove", onChange: (value) => onChange({ ...data, adding: value === "add" }) }, /* @__PURE__ */ React17.createElement(Group7, { mt: "xs" }, /* @__PURE__ */ React17.createElement(
745
+ Radio2,
746
+ {
747
+ value: "add",
748
+ label: "Add CW20 Contract",
749
+ styles: {
750
+ label: { color: "var(--mantine-color-dimmed)" },
751
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
752
+ }
753
+ }
754
+ ), /* @__PURE__ */ React17.createElement(
755
+ Radio2,
756
+ {
757
+ value: "remove",
758
+ label: "Remove CW20 Contract",
759
+ styles: {
760
+ label: { color: "var(--mantine-color-dimmed)" },
761
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
762
+ }
763
+ }
764
+ ))), /* @__PURE__ */ React17.createElement(BaseTextInput, { label: "Token Contract Address", placeholder: "ixo1...", value: data.address, onChange: (e) => onChange({ ...data, address: e.currentTarget.value }), required: true }));
765
+ };
766
+
767
+ // src/mantine/blocks/proposal/actions-components/forms/ManageSubDaosActionForm.tsx
768
+ import React18, { useState as useState5 } from "react";
769
+ import { Stack as Stack18, Button as Button4, Group as Group8, Text as Text7, Card as Card5 } from "@mantine/core";
770
+ var ManageSubDaosActionForm = ({ data, onChange }) => {
771
+ const [newSubDao, setNewSubDao] = useState5({ addr: "", charter: "" });
772
+ const [newRemoveAddress, setNewRemoveAddress] = useState5("");
773
+ const handleAddSubDao = () => {
774
+ if (newSubDao.addr) {
775
+ onChange({
776
+ ...data,
777
+ toAdd: [...data.toAdd || [], { ...newSubDao }]
778
+ });
779
+ setNewSubDao({ addr: "", charter: "" });
780
+ }
781
+ };
782
+ const handleRemoveFromAddList = (index) => {
783
+ onChange({
784
+ ...data,
785
+ toAdd: (data.toAdd || []).filter((_, i) => i !== index)
786
+ });
787
+ };
788
+ const handleAddToRemoveList = () => {
789
+ if (newRemoveAddress) {
790
+ onChange({
791
+ ...data,
792
+ toRemove: [...data.toRemove || [], { address: newRemoveAddress }]
793
+ });
794
+ setNewRemoveAddress("");
795
+ }
796
+ };
797
+ const handleRemoveFromRemoveList = (index) => {
798
+ onChange({
799
+ ...data,
800
+ toRemove: (data.toRemove || []).filter((_, i) => i !== index)
801
+ });
802
+ };
803
+ return /* @__PURE__ */ React18.createElement(Stack18, { gap: "md" }, /* @__PURE__ */ React18.createElement(Stack18, { gap: "xs" }, /* @__PURE__ */ React18.createElement(Text7, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "SubDAOs to Add"), (data.toAdd || []).map((subDao, index) => /* @__PURE__ */ React18.createElement(Card5, { key: index, withBorder: true, padding: "xs", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" } }, /* @__PURE__ */ React18.createElement(Stack18, { gap: "xs" }, /* @__PURE__ */ React18.createElement(Group8, { justify: "space-between" }, /* @__PURE__ */ React18.createElement(Text7, { size: "sm", style: { color: "var(--mantine-color-text)" } }, subDao.addr), /* @__PURE__ */ React18.createElement(Button4, { size: "xs", variant: "subtle", onClick: () => handleRemoveFromAddList(index), style: { color: "var(--mantine-color-red-5)" } }, "Remove")), subDao.charter && /* @__PURE__ */ React18.createElement(Text7, { size: "xs", style: { color: "var(--mantine-color-dimmed)" } }, "Charter: ", subDao.charter)))), /* @__PURE__ */ React18.createElement(Stack18, { gap: "xs" }, /* @__PURE__ */ React18.createElement(BaseTextInput, { placeholder: "SubDAO Address", value: newSubDao.addr, onChange: (e) => setNewSubDao({ ...newSubDao, addr: e.currentTarget.value }) }), /* @__PURE__ */ React18.createElement(
804
+ BaseTextArea,
805
+ {
806
+ placeholder: "Charter (optional)",
807
+ value: newSubDao.charter || "",
808
+ onChange: (e) => setNewSubDao({ ...newSubDao, charter: e.currentTarget.value }),
809
+ minRows: 2
810
+ }
811
+ ), /* @__PURE__ */ React18.createElement(
812
+ Button4,
813
+ {
814
+ size: "sm",
815
+ onClick: handleAddSubDao,
816
+ style: {
817
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
818
+ "&:hover": { backgroundColor: "var(--mantine-color-accent-5)" }
819
+ }
820
+ },
821
+ "Add SubDAO"
822
+ ))), /* @__PURE__ */ React18.createElement(Stack18, { gap: "xs" }, /* @__PURE__ */ React18.createElement(Text7, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "SubDAOs to Remove"), (data.toRemove || []).map((subDao, index) => /* @__PURE__ */ React18.createElement(Card5, { key: index, withBorder: true, padding: "xs", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" } }, /* @__PURE__ */ React18.createElement(Group8, { justify: "space-between" }, /* @__PURE__ */ React18.createElement(Text7, { size: "sm", style: { color: "var(--mantine-color-text)" } }, subDao.address), /* @__PURE__ */ React18.createElement(Button4, { size: "xs", variant: "subtle", onClick: () => handleRemoveFromRemoveList(index), style: { color: "var(--mantine-color-red-5)" } }, "Remove")))), /* @__PURE__ */ React18.createElement(Group8, { grow: true }, /* @__PURE__ */ React18.createElement(BaseTextInput, { placeholder: "SubDAO Address to Remove", value: newRemoveAddress, onChange: (e) => setNewRemoveAddress(e.currentTarget.value) }), /* @__PURE__ */ React18.createElement(
823
+ Button4,
824
+ {
825
+ size: "sm",
826
+ onClick: handleAddToRemoveList,
827
+ style: {
828
+ backgroundColor: "var(--mantine-color-red-5)",
829
+ "&:hover": { backgroundColor: "var(--mantine-color-red-5)" }
830
+ }
831
+ },
832
+ "Add to Remove List"
833
+ ))));
834
+ };
835
+
836
+ // src/mantine/blocks/proposal/actions-components/forms/UpdateInfoActionForm.tsx
837
+ import React19 from "react";
838
+ import { Stack as Stack19, Checkbox as Checkbox2 } from "@mantine/core";
839
+ var UpdateInfoActionForm = ({ data, onChange }) => {
840
+ return /* @__PURE__ */ React19.createElement(Stack19, { gap: "md" }, /* @__PURE__ */ React19.createElement(BaseTextInput, { label: "DAO Name", placeholder: "My DAO", value: data.name, onChange: (e) => onChange({ ...data, name: e.currentTarget.value }), required: true }), /* @__PURE__ */ React19.createElement(
841
+ BaseTextArea,
842
+ {
843
+ label: "Description",
844
+ placeholder: "Describe your DAO",
845
+ value: data.description,
846
+ onChange: (e) => onChange({ ...data, description: e.currentTarget.value }),
847
+ minRows: 3
848
+ }
849
+ ), /* @__PURE__ */ React19.createElement(
850
+ BaseTextInput,
851
+ {
852
+ label: "Image URL (Optional)",
853
+ placeholder: "https://example.com/image.png",
854
+ value: data.image_url || "",
855
+ onChange: (e) => onChange({ ...data, image_url: e.currentTarget.value || null })
856
+ }
857
+ ), /* @__PURE__ */ React19.createElement(
858
+ BaseTextInput,
859
+ {
860
+ label: "DAO URI (Optional)",
861
+ placeholder: "https://example.com/dao-info",
862
+ value: data.dao_uri || "",
863
+ onChange: (e) => onChange({ ...data, dao_uri: e.currentTarget.value || null })
864
+ }
865
+ ), /* @__PURE__ */ React19.createElement(
866
+ Checkbox2,
867
+ {
868
+ label: "Automatically add CW20 tokens",
869
+ checked: data.automatically_add_cw20s,
870
+ onChange: (e) => onChange({ ...data, automatically_add_cw20s: e.currentTarget.checked }),
871
+ styles: {
872
+ label: { color: "var(--mantine-color-dimmed)" },
873
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
874
+ }
875
+ }
876
+ ), /* @__PURE__ */ React19.createElement(
877
+ Checkbox2,
878
+ {
879
+ label: "Automatically add CW721 NFTs",
880
+ checked: data.automatically_add_cw721s,
881
+ onChange: (e) => onChange({ ...data, automatically_add_cw721s: e.currentTarget.checked }),
882
+ styles: {
883
+ label: { color: "var(--mantine-color-dimmed)" },
884
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
885
+ }
886
+ }
887
+ ));
888
+ };
889
+
890
+ // src/mantine/blocks/proposal/actions-components/forms/ManageStorageItemsActionForm.tsx
891
+ import React20 from "react";
892
+ import { Stack as Stack20, Radio as Radio3, Group as Group9 } from "@mantine/core";
893
+ var ManageStorageItemsActionForm = ({ data, onChange }) => {
894
+ return /* @__PURE__ */ React20.createElement(Stack20, { gap: "md" }, /* @__PURE__ */ React20.createElement(Radio3.Group, { label: "Action", value: data.setting ? "set" : "remove", onChange: (value) => onChange({ ...data, setting: value === "set" }) }, /* @__PURE__ */ React20.createElement(Group9, { mt: "xs" }, /* @__PURE__ */ React20.createElement(
895
+ Radio3,
896
+ {
897
+ value: "set",
898
+ label: "Set Storage Item",
899
+ styles: {
900
+ label: { color: "var(--mantine-color-dimmed)" },
901
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
902
+ }
903
+ }
904
+ ), /* @__PURE__ */ React20.createElement(
905
+ Radio3,
906
+ {
907
+ value: "remove",
908
+ label: "Remove Storage Item",
909
+ styles: {
910
+ label: { color: "var(--mantine-color-dimmed)" },
911
+ radio: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
912
+ }
913
+ }
914
+ ))), /* @__PURE__ */ React20.createElement(BaseTextInput, { label: "Storage Key", placeholder: "config_key", value: data.key, onChange: (e) => onChange({ ...data, key: e.currentTarget.value }), required: true }), data.setting && /* @__PURE__ */ React20.createElement(
915
+ BaseTextArea,
916
+ {
917
+ label: "Storage Value",
918
+ placeholder: "Value to store",
919
+ value: data.value,
920
+ onChange: (e) => onChange({ ...data, value: e.currentTarget.value }),
921
+ minRows: 3,
922
+ required: true
923
+ }
924
+ ));
925
+ };
926
+
927
+ // src/mantine/blocks/proposal/actions-components/forms/DaoAdminExecActionForm.tsx
928
+ import React21, { useState as useState6 } from "react";
929
+ import { Stack as Stack21, Button as Button5, Group as Group10, Text as Text8, Card as Card6 } from "@mantine/core";
930
+ var DaoAdminExecActionForm = ({ data, onChange }) => {
931
+ const [newMsg, setNewMsg] = useState6("");
932
+ const handleAddMessage = () => {
933
+ if (newMsg) {
934
+ try {
935
+ const parsed = JSON.parse(newMsg);
936
+ onChange({
937
+ ...data,
938
+ msgs: [...data.msgs || [], parsed]
939
+ });
940
+ setNewMsg("");
941
+ } catch {
942
+ }
943
+ }
944
+ };
945
+ const handleRemoveMessage = (index) => {
946
+ onChange({
947
+ ...data,
948
+ msgs: (data.msgs || []).filter((_, i) => i !== index)
949
+ });
950
+ };
951
+ return /* @__PURE__ */ React21.createElement(Stack21, { gap: "md" }, /* @__PURE__ */ React21.createElement(BaseTextInput, { label: "Core Address", placeholder: "ixo1...", value: data.coreAddress, onChange: (e) => onChange({ ...data, coreAddress: e.currentTarget.value }), required: true }), /* @__PURE__ */ React21.createElement(Stack21, { gap: "xs" }, /* @__PURE__ */ React21.createElement(Text8, { size: "sm", fw: 500, style: { color: "var(--mantine-color-dimmed)" } }, "Messages to Execute"), (data.msgs || []).map((msg, index) => /* @__PURE__ */ React21.createElement(Card6, { key: index, withBorder: true, padding: "xs", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" } }, /* @__PURE__ */ React21.createElement(Group10, { justify: "space-between" }, /* @__PURE__ */ React21.createElement(Text8, { size: "sm", style: { color: "var(--mantine-color-text)" } }, "Message ", index + 1), /* @__PURE__ */ React21.createElement(Button5, { size: "xs", variant: "subtle", onClick: () => handleRemoveMessage(index), style: { color: "var(--mantine-color-red-5)" } }, "Remove")), /* @__PURE__ */ React21.createElement(Text8, { size: "xs", style: { color: "var(--mantine-color-dimmed)", fontFamily: "monospace" } }, JSON.stringify(msg, null, 2).substring(0, 100), "..."))), /* @__PURE__ */ React21.createElement(
952
+ BaseTextArea,
953
+ {
954
+ placeholder: 'Add cosmos message as JSON:\\n{"bank": {"send": {"to_address": "ixo1...", "amount": [{"denom": "uixo", "amount": "1000"}]}}}',
955
+ value: newMsg,
956
+ onChange: (e) => setNewMsg(e.currentTarget.value),
957
+ minRows: 4
958
+ }
959
+ ), /* @__PURE__ */ React21.createElement(
960
+ Button5,
961
+ {
962
+ size: "sm",
963
+ onClick: handleAddMessage,
964
+ style: {
965
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
966
+ "&:hover": { backgroundColor: "var(--mantine-color-accent-5)" }
967
+ }
968
+ },
969
+ "Add Message"
970
+ )));
971
+ };
972
+
973
+ // src/mantine/blocks/proposal/actions-components/forms/AcceptToMarketplaceActionForm.tsx
974
+ import React22 from "react";
975
+ import { Stack as Stack22 } from "@mantine/core";
976
+ var AcceptToMarketplaceActionForm = ({ data, onChange }) => {
977
+ return /* @__PURE__ */ React22.createElement(Stack22, { gap: "md" }, /* @__PURE__ */ React22.createElement(BaseTextInput, { label: "DID", placeholder: "did:ixo:...", value: data.did, onChange: (e) => onChange({ ...data, did: e.currentTarget.value }), required: true }), /* @__PURE__ */ React22.createElement(
978
+ BaseTextInput,
979
+ {
980
+ label: "Relayer Node DID",
981
+ placeholder: "did:ixo:...",
982
+ value: data.relayerNodeDid,
983
+ onChange: (e) => onChange({ ...data, relayerNodeDid: e.currentTarget.value }),
984
+ required: true
985
+ }
986
+ ), /* @__PURE__ */ React22.createElement(
987
+ BaseTextInput,
988
+ {
989
+ label: "Relayer Node Address",
990
+ placeholder: "ixo1...",
991
+ value: data.relayerNodeAddress,
992
+ onChange: (e) => onChange({ ...data, relayerNodeAddress: e.currentTarget.value }),
993
+ required: true
994
+ }
995
+ ));
996
+ };
997
+
998
+ // src/mantine/blocks/proposal/actions-components/forms/CreateEntityActionForm.tsx
999
+ import React23 from "react";
1000
+ import { Stack as Stack23, Alert as Alert2, Text as Text9 } from "@mantine/core";
1001
+ var CreateEntityActionForm = ({ data, onChange }) => {
1002
+ const handleJsonChange = (value) => {
1003
+ try {
1004
+ const parsed = JSON.parse(value);
1005
+ onChange(parsed);
1006
+ } catch {
1007
+ }
1008
+ };
1009
+ return /* @__PURE__ */ React23.createElement(Stack23, { gap: "md" }, /* @__PURE__ */ React23.createElement(Alert2, { color: "blue", style: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-accent-5)" } }, /* @__PURE__ */ React23.createElement(Text9, { size: "sm", style: { color: "var(--mantine-color-accent-5)" } }, "This is a complex entity creation action. Please provide the complete entity data as JSON.")), /* @__PURE__ */ React23.createElement(
1010
+ BaseTextArea,
1011
+ {
1012
+ label: "Entity Data (JSON)",
1013
+ placeholder: "Enter entity creation data as JSON",
1014
+ value: JSON.stringify(data, null, 2),
1015
+ onChange: (e) => handleJsonChange(e.currentTarget.value),
1016
+ minRows: 8,
1017
+ maxRows: 20
1018
+ }
1019
+ ));
1020
+ };
1021
+
1022
+ // src/mantine/blocks/proposal/actions-components/forms/UpdateVotingConfigActionForm.tsx
1023
+ import React24 from "react";
1024
+ import { Stack as Stack24, Checkbox as Checkbox3, Group as Group11 } from "@mantine/core";
1025
+ var UpdateVotingConfigActionForm = ({ data, onChange }) => {
1026
+ return /* @__PURE__ */ React24.createElement(Stack24, { gap: "md" }, /* @__PURE__ */ React24.createElement(
1027
+ Checkbox3,
1028
+ {
1029
+ label: "Only members can execute passed proposals",
1030
+ description: "When off, anyone can trigger the execution of a proposal that already passed",
1031
+ checked: data.onlyMembersExecute,
1032
+ onChange: (e) => onChange({ ...data, onlyMembersExecute: e.currentTarget.checked }),
1033
+ styles: {
1034
+ label: { color: "var(--mantine-color-dimmed)" },
1035
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1036
+ }
1037
+ }
1038
+ ), /* @__PURE__ */ React24.createElement(
1039
+ BaseSelect,
1040
+ {
1041
+ label: "Passing threshold",
1042
+ description: "How many of the votes cast must be 'yes' for a proposal to pass",
1043
+ value: data.thresholdType,
1044
+ onChange: (value) => onChange({ ...data, thresholdType: value }),
1045
+ data: [
1046
+ { value: "majority", label: "More than half of the votes" },
1047
+ { value: "%", label: "A custom percentage" }
1048
+ ]
1049
+ }
1050
+ ), data.thresholdType === "%" && /* @__PURE__ */ React24.createElement(
1051
+ BaseNumberInput,
1052
+ {
1053
+ label: "Passing threshold percentage",
1054
+ placeholder: "51",
1055
+ value: data.thresholdPercentage || 0,
1056
+ onChange: (value) => onChange({ ...data, thresholdPercentage: Number(value) || 0 }),
1057
+ min: 0,
1058
+ max: 100,
1059
+ suffix: "%"
1060
+ }
1061
+ ), /* @__PURE__ */ React24.createElement(
1062
+ Checkbox3,
1063
+ {
1064
+ label: "Require a quorum",
1065
+ description: "A minimum share of the group's voting power must take part for the vote to count",
1066
+ checked: data.quorumEnabled,
1067
+ onChange: (e) => onChange({ ...data, quorumEnabled: e.currentTarget.checked }),
1068
+ styles: {
1069
+ label: { color: "var(--mantine-color-dimmed)" },
1070
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1071
+ }
1072
+ }
1073
+ ), data.quorumEnabled && /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(
1074
+ BaseSelect,
1075
+ {
1076
+ label: "Quorum",
1077
+ value: data.quorumType,
1078
+ onChange: (value) => onChange({ ...data, quorumType: value }),
1079
+ data: [
1080
+ { value: "majority", label: "More than half of the voting power" },
1081
+ { value: "%", label: "A custom percentage" }
1082
+ ]
1083
+ }
1084
+ ), data.quorumType === "%" && /* @__PURE__ */ React24.createElement(
1085
+ BaseNumberInput,
1086
+ {
1087
+ label: "Quorum percentage",
1088
+ placeholder: "20",
1089
+ value: data.quorumPercentage || 0,
1090
+ onChange: (value) => onChange({ ...data, quorumPercentage: Number(value) || 0 }),
1091
+ min: 0,
1092
+ max: 100,
1093
+ suffix: "%"
1094
+ }
1095
+ )), /* @__PURE__ */ React24.createElement(Group11, { grow: true }, /* @__PURE__ */ React24.createElement(
1096
+ BaseNumberInput,
1097
+ {
1098
+ label: "Voting duration",
1099
+ description: "How long proposals stay open for voting",
1100
+ placeholder: "7",
1101
+ value: data.proposalDuration,
1102
+ onChange: (value) => onChange({ ...data, proposalDuration: Number(value) || 1 }),
1103
+ min: 1
1104
+ }
1105
+ ), /* @__PURE__ */ React24.createElement(
1106
+ BaseSelect,
1107
+ {
1108
+ label: "Unit",
1109
+ value: data.proposalDurationUnits,
1110
+ onChange: (value) => onChange({ ...data, proposalDurationUnits: value }),
1111
+ data: [
1112
+ { value: "minutes", label: "Minutes" },
1113
+ { value: "hours", label: "Hours" },
1114
+ { value: "days", label: "Days" },
1115
+ { value: "weeks", label: "Weeks" }
1116
+ ]
1117
+ }
1118
+ )), /* @__PURE__ */ React24.createElement(
1119
+ Checkbox3,
1120
+ {
1121
+ label: "Allow vote switching",
1122
+ description: "Members can change their vote until voting closes",
1123
+ checked: data.allowRevoting,
1124
+ onChange: (e) => onChange({ ...data, allowRevoting: e.currentTarget.checked }),
1125
+ styles: {
1126
+ label: { color: "var(--mantine-color-dimmed)" },
1127
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1128
+ }
1129
+ }
1130
+ ));
1131
+ };
1132
+
1133
+ // src/mantine/blocks/proposal/actions-components/forms/UpdatePreProposeConfigActionForm.tsx
1134
+ import React25 from "react";
1135
+ import { Stack as Stack25, Checkbox as Checkbox4 } from "@mantine/core";
1136
+ var IXO_EXPONENT2 = 6;
1137
+ var UpdatePreProposeConfigActionForm = ({ data, onChange }) => {
1138
+ const isIxoDeposit = data.depositInfo.type === "native" && data.depositInfo.denomOrAddress === "uixo";
1139
+ const displayAmount = isIxoDeposit && data.depositInfo.amount !== "" ? String(Number(data.depositInfo.amount) / 10 ** IXO_EXPONENT2) : data.depositInfo.amount;
1140
+ return /* @__PURE__ */ React25.createElement(Stack25, { gap: "md" }, /* @__PURE__ */ React25.createElement(
1141
+ Checkbox4,
1142
+ {
1143
+ label: "Anyone can submit proposals",
1144
+ description: "When off, only group members can submit proposals",
1145
+ checked: data.anyoneCanPropose,
1146
+ onChange: (e) => onChange({ ...data, anyoneCanPropose: e.currentTarget.checked }),
1147
+ styles: {
1148
+ label: { color: "var(--mantine-color-dimmed)" },
1149
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1150
+ }
1151
+ }
1152
+ ), /* @__PURE__ */ React25.createElement(
1153
+ Checkbox4,
1154
+ {
1155
+ label: "Require a deposit to submit a proposal",
1156
+ description: "A deposit discourages spam. It can be refunded depending on the policy below.",
1157
+ checked: data.depositRequired,
1158
+ onChange: (e) => onChange({ ...data, depositRequired: e.currentTarget.checked }),
1159
+ styles: {
1160
+ label: { color: "var(--mantine-color-dimmed)" },
1161
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1162
+ }
1163
+ }
1164
+ ), data.depositRequired && /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(
1165
+ BaseSelect,
1166
+ {
1167
+ label: "Deposit token",
1168
+ description: "Which token the deposit is paid in",
1169
+ value: data.depositInfo.type,
1170
+ onChange: (value) => onChange({
1171
+ ...data,
1172
+ depositInfo: {
1173
+ ...data.depositInfo,
1174
+ type: value,
1175
+ denomOrAddress: value === "native" ? "uixo" : "",
1176
+ amount: ""
1177
+ }
1178
+ }),
1179
+ data: [
1180
+ { value: "native", label: "IXO" },
1181
+ { value: "cw20", label: "A custom token (contract address)" },
1182
+ { value: "voting_module_token", label: "The group's own token" }
1183
+ ]
1184
+ }
1185
+ ), data.depositInfo.type === "cw20" && /* @__PURE__ */ React25.createElement(
1186
+ BaseTextInput,
1187
+ {
1188
+ label: "Token contract address",
1189
+ placeholder: "ixo1...",
1190
+ value: data.depositInfo.denomOrAddress,
1191
+ onChange: (e) => onChange({
1192
+ ...data,
1193
+ depositInfo: { ...data.depositInfo, denomOrAddress: e.currentTarget.value }
1194
+ }),
1195
+ required: true
1196
+ }
1197
+ ), /* @__PURE__ */ React25.createElement(
1198
+ BaseTextInput,
1199
+ {
1200
+ label: isIxoDeposit ? "Deposit amount (IXO)" : "Deposit amount",
1201
+ description: isIxoDeposit ? "How much IXO must be deposited with each proposal" : "Enter the amount in the token's smallest unit",
1202
+ placeholder: isIxoDeposit ? "10" : "1000000",
1203
+ value: displayAmount,
1204
+ onChange: (e) => {
1205
+ const raw = e.currentTarget.value;
1206
+ const n = parseFloat(raw);
1207
+ const amount = isIxoDeposit ? Number.isFinite(n) && n > 0 ? String(Math.round(n * 10 ** IXO_EXPONENT2)) : "" : raw;
1208
+ onChange({
1209
+ ...data,
1210
+ depositInfo: { ...data.depositInfo, amount }
1211
+ });
1212
+ },
1213
+ required: true
1214
+ }
1215
+ ), /* @__PURE__ */ React25.createElement(
1216
+ BaseSelect,
1217
+ {
1218
+ label: "Refund policy",
1219
+ description: "What happens to the deposit after voting ends",
1220
+ value: data.depositInfo.refundPolicy,
1221
+ onChange: (value) => onChange({
1222
+ ...data,
1223
+ depositInfo: { ...data.depositInfo, refundPolicy: value || "always" }
1224
+ }),
1225
+ data: [
1226
+ { value: "always", label: "Always refund the deposit" },
1227
+ { value: "only_passed", label: "Refund only if the proposal passes" },
1228
+ { value: "never", label: "Never refund the deposit" }
1229
+ ]
1230
+ }
1231
+ )));
1232
+ };
1233
+
1234
+ // src/mantine/blocks/proposal/actions-components/forms/GovernanceVoteActionForm.tsx
1235
+ import React26 from "react";
1236
+ import { Stack as Stack26 } from "@mantine/core";
1237
+ var GovernanceVoteActionForm = ({ data, onChange }) => {
1238
+ const voteOptions = [
1239
+ { value: "1", label: "Yes" },
1240
+ { value: "2", label: "Abstain" },
1241
+ { value: "3", label: "No" },
1242
+ { value: "4", label: "No with Veto" }
1243
+ ];
1244
+ return /* @__PURE__ */ React26.createElement(Stack26, { gap: "md" }, /* @__PURE__ */ React26.createElement(BaseTextInput, { label: "Proposal ID", placeholder: "123", value: data.proposalId, onChange: (e) => onChange({ ...data, proposalId: e.currentTarget.value }), required: true }), /* @__PURE__ */ React26.createElement(BaseSelect, { label: "Vote Option", value: data.vote?.toString() || "1", onChange: (value) => onChange({ ...data, vote: parseInt(value || "1") }), data: voteOptions, required: true }));
1245
+ };
1246
+
1247
+ // src/mantine/blocks/proposal/actions-components/forms/WithdrawTokenSwapActionForm.tsx
1248
+ import React27 from "react";
1249
+ import { Stack as Stack27, Checkbox as Checkbox5 } from "@mantine/core";
1250
+ var WithdrawTokenSwapActionForm = ({ data, onChange }) => {
1251
+ return /* @__PURE__ */ React27.createElement(Stack27, { gap: "md" }, /* @__PURE__ */ React27.createElement(
1252
+ Checkbox5,
1253
+ {
1254
+ label: "Contract chosen",
1255
+ checked: data.contractChosen,
1256
+ onChange: (e) => onChange({ ...data, contractChosen: e.currentTarget.checked }),
1257
+ styles: {
1258
+ label: { color: "var(--mantine-color-dimmed)" },
1259
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1260
+ }
1261
+ }
1262
+ ), data.contractChosen && /* @__PURE__ */ React27.createElement(
1263
+ BaseTextInput,
1264
+ {
1265
+ label: "Token Swap Contract Address",
1266
+ placeholder: "ixo1...",
1267
+ value: data.tokenSwapContractAddress || "",
1268
+ onChange: (e) => onChange({ ...data, tokenSwapContractAddress: e.currentTarget.value }),
1269
+ required: true
1270
+ }
1271
+ ));
1272
+ };
1273
+
1274
+ // src/mantine/blocks/proposal/actions-components/forms/PerformTokenSwapActionForm.tsx
1275
+ import React28 from "react";
1276
+ import { Stack as Stack28, Checkbox as Checkbox6 } from "@mantine/core";
1277
+ var PerformTokenSwapActionForm = ({ data, onChange }) => {
1278
+ return /* @__PURE__ */ React28.createElement(Stack28, { gap: "md" }, /* @__PURE__ */ React28.createElement(
1279
+ Checkbox6,
1280
+ {
1281
+ label: "Contract chosen",
1282
+ checked: data.contractChosen,
1283
+ onChange: (e) => onChange({ ...data, contractChosen: e.currentTarget.checked }),
1284
+ styles: {
1285
+ label: { color: "var(--mantine-color-dimmed)" },
1286
+ input: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" }
1287
+ }
1288
+ }
1289
+ ), data.contractChosen && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
1290
+ BaseTextInput,
1291
+ {
1292
+ label: "Token Swap Contract Address",
1293
+ placeholder: "ixo1...",
1294
+ value: data.tokenSwapContractAddress || "",
1295
+ onChange: (e) => onChange({ ...data, tokenSwapContractAddress: e.currentTarget.value }),
1296
+ required: true
1297
+ }
1298
+ ), /* @__PURE__ */ React28.createElement(
1299
+ BaseTextArea,
1300
+ {
1301
+ label: "Self Party Information (JSON)",
1302
+ placeholder: '{"tokens": [{"denom": "uixo", "amount": "1000"}]}',
1303
+ value: JSON.stringify(data.selfParty || {}, null, 2),
1304
+ onChange: (e) => {
1305
+ try {
1306
+ const parsed = JSON.parse(e.currentTarget.value);
1307
+ onChange({ ...data, selfParty: parsed });
1308
+ } catch {
1309
+ }
1310
+ },
1311
+ minRows: 4
1312
+ }
1313
+ ), /* @__PURE__ */ React28.createElement(
1314
+ BaseTextArea,
1315
+ {
1316
+ label: "Counterparty Information (JSON)",
1317
+ placeholder: '{"address": "ixo1...", "tokens": [{"denom": "token", "amount": "500"}]}',
1318
+ value: JSON.stringify(data.counterparty || {}, null, 2),
1319
+ onChange: (e) => {
1320
+ try {
1321
+ const parsed = JSON.parse(e.currentTarget.value);
1322
+ onChange({ ...data, counterparty: parsed });
1323
+ } catch {
1324
+ }
1325
+ },
1326
+ minRows: 4
1327
+ }
1328
+ )));
1329
+ };
1330
+
1331
+ // src/mantine/blocks/proposal/actions-components/forms/StakeToGroupActionForm.tsx
1332
+ import React29 from "react";
1333
+ import { Stack as Stack29 } from "@mantine/core";
1334
+ var StakeToGroupActionForm = ({ data, onChange }) => {
1335
+ return /* @__PURE__ */ React29.createElement(Stack29, { gap: "md" }, /* @__PURE__ */ React29.createElement(
1336
+ BaseTextInput,
1337
+ {
1338
+ label: "Token Contract Address",
1339
+ placeholder: "ixo1...",
1340
+ value: data.tokenContract,
1341
+ onChange: (e) => onChange({ ...data, tokenContract: e.currentTarget.value }),
1342
+ required: true
1343
+ }
1344
+ ), /* @__PURE__ */ React29.createElement(
1345
+ BaseTextInput,
1346
+ {
1347
+ label: "Staking Contract Address",
1348
+ placeholder: "ixo1...",
1349
+ value: data.stakingContract,
1350
+ onChange: (e) => onChange({ ...data, stakingContract: e.currentTarget.value }),
1351
+ required: true
1352
+ }
1353
+ ), /* @__PURE__ */ React29.createElement(BaseTextInput, { label: "Amount", placeholder: "1000", value: data.amount, onChange: (e) => onChange({ ...data, amount: e.currentTarget.value }), required: true }));
1354
+ };
1355
+
1356
+ // src/mantine/blocks/proposal/actions-components/forms/SendGroupTokenActionForm.tsx
1357
+ import React30 from "react";
1358
+ import { Stack as Stack30 } from "@mantine/core";
1359
+ var SendGroupTokenActionForm = ({ data, onChange }) => {
1360
+ return /* @__PURE__ */ React30.createElement(Stack30, { gap: "md" }, /* @__PURE__ */ React30.createElement(BaseTextInput, { label: "Contract Address", placeholder: "ixo1...", value: data.contract, onChange: (e) => onChange({ ...data, contract: e.currentTarget.value }), required: true }), /* @__PURE__ */ React30.createElement(BaseTextInput, { label: "Recipient Address", placeholder: "ixo1...", value: data.toAddress, onChange: (e) => onChange({ ...data, toAddress: e.currentTarget.value }), required: true }), /* @__PURE__ */ React30.createElement(BaseTextInput, { label: "Amount", placeholder: "1000", value: data.amount, onChange: (e) => onChange({ ...data, amount: e.currentTarget.value }), required: true }));
1361
+ };
1362
+
1363
+ // src/mantine/blocks/proposal/actions-components/forms/ValidatorActionsActionForm.tsx
1364
+ import React31 from "react";
1365
+ import { Stack as Stack31 } from "@mantine/core";
1366
+ var ValidatorActionsActionForm = ({ data, onChange }) => {
1367
+ const actionTypeOptions = [
1368
+ { value: "/cosmos.staking.v1beta1.MsgCreateValidator" /* CreateValidator */, label: "Create Validator" },
1369
+ { value: "/cosmos.staking.v1beta1.MsgEditValidator" /* EditValidator */, label: "Edit Validator" },
1370
+ { value: "/cosmos.slashing.v1beta1.MsgUnjail" /* UnjailValidator */, label: "Unjail Validator" },
1371
+ { value: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission" /* WithdrawValidatorCommission */, label: "Withdraw Commission" }
1372
+ ];
1373
+ return /* @__PURE__ */ React31.createElement(Stack31, { gap: "md" }, /* @__PURE__ */ React31.createElement(
1374
+ BaseSelect,
1375
+ {
1376
+ label: "Validator Action Type",
1377
+ value: data.validatorActionType,
1378
+ onChange: (value) => onChange({ ...data, validatorActionType: value }),
1379
+ data: actionTypeOptions,
1380
+ required: true
1381
+ }
1382
+ ), data.validatorActionType === "/cosmos.staking.v1beta1.MsgCreateValidator" /* CreateValidator */ && /* @__PURE__ */ React31.createElement(
1383
+ BaseTextArea,
1384
+ {
1385
+ label: "Create Validator Message (JSON)",
1386
+ placeholder: '{"description": {"moniker": "My Validator", "identity": "", "website": "", "security_contact": "", "details": ""}, "commission": {"rate": "0.10", "max_rate": "0.20", "max_change_rate": "0.01"}, "min_self_delegation": "1", "delegator_address": "ixo1...", "validator_address": "ixovaloper1...", "pubkey": {"@type": "/cosmos.crypto.ed25519.PubKey", "key": "..."}, "value": {"denom": "uixo", "amount": "1000000"}}',
1387
+ value: data.createMsg,
1388
+ onChange: (e) => onChange({ ...data, createMsg: e.currentTarget.value }),
1389
+ minRows: 8,
1390
+ required: true
1391
+ }
1392
+ ), data.validatorActionType === "/cosmos.staking.v1beta1.MsgEditValidator" /* EditValidator */ && /* @__PURE__ */ React31.createElement(
1393
+ BaseTextArea,
1394
+ {
1395
+ label: "Edit Validator Message (JSON)",
1396
+ placeholder: '{"description": {"moniker": "Updated Validator", "identity": "", "website": "", "security_contact": "", "details": ""}, "validator_address": "ixovaloper1...", "commission_rate": "0.15", "min_self_delegation": "1"}',
1397
+ value: data.editMsg,
1398
+ onChange: (e) => onChange({ ...data, editMsg: e.currentTarget.value }),
1399
+ minRows: 6,
1400
+ required: true
1401
+ }
1402
+ ));
1403
+ };
1404
+
1405
+ // src/mantine/blocks/proposal/registry/actionRegistry.ts
1406
+ var createActionConfig = (label, value, category, FormComponent, getDefaultData, validateData, getSummary, description) => ({
1407
+ label,
1408
+ value,
1409
+ category,
1410
+ description,
1411
+ FormComponent,
1412
+ getDefaultData,
1413
+ validateData,
1414
+ getSummary
1415
+ });
1416
+ var actionRegistry = /* @__PURE__ */ new Map([
1417
+ // Treasury Actions
1418
+ [
1419
+ "Spend",
1420
+ createActionConfig(
1421
+ "Spend",
1422
+ "Spend",
1423
+ "treasury",
1424
+ SpendActionForm,
1425
+ () => ({ to: "", denom: "uixo", amount: "" }),
1426
+ (data) => ({
1427
+ isValid: !!data.to && !!data.amount && !!data.denom,
1428
+ errors: [!data.to && "Recipient address is required", !data.amount && "Amount is required", !data.denom && "Denomination is required"].filter(Boolean)
1429
+ }),
1430
+ (data) => `Send ${data.amount} ${data.denom} to ${data.to.slice(0, 8)}...`,
1431
+ "Send funds from treasury"
1432
+ )
1433
+ ],
1434
+ [
1435
+ "SendGroupToken",
1436
+ createActionConfig(
1437
+ "Send Group Token",
1438
+ "SendGroupToken",
1439
+ "treasury",
1440
+ SendGroupTokenActionForm,
1441
+ () => ({ contract: "", toAddress: "", amount: "" }),
1442
+ (data) => ({
1443
+ isValid: !!data.contract && !!data.toAddress && !!data.amount,
1444
+ errors: [!data.contract && "Contract address is required", !data.toAddress && "Recipient address is required", !data.amount && "Amount is required"].filter(
1445
+ Boolean
1446
+ )
1447
+ }),
1448
+ (data) => `Send ${data.amount} tokens to ${data.toAddress.slice(0, 8)}...`,
1449
+ "Transfer group tokens"
1450
+ )
1451
+ ],
1452
+ [
1453
+ "Mint",
1454
+ createActionConfig(
1455
+ "Mint Tokens",
1456
+ "Mint",
1457
+ "treasury",
1458
+ MintActionForm,
1459
+ () => ({ to: "", amount: 0 }),
1460
+ (data) => ({
1461
+ isValid: !!data.to && data.amount > 0,
1462
+ errors: [!data.to && "Recipient address is required", data.amount <= 0 && "Amount must be greater than 0"].filter(Boolean)
1463
+ }),
1464
+ (data) => `Mint ${data.amount} tokens to ${data.to.slice(0, 8)}...`,
1465
+ "Mint new tokens"
1466
+ )
1467
+ ],
1468
+ [
1469
+ "WithdrawTokenSwap",
1470
+ createActionConfig(
1471
+ "Withdraw Token Swap",
1472
+ "WithdrawTokenSwap",
1473
+ "treasury",
1474
+ WithdrawTokenSwapActionForm,
1475
+ () => ({ contractChosen: false }),
1476
+ (data) => ({
1477
+ isValid: data.contractChosen && !!data.tokenSwapContractAddress,
1478
+ errors: [!data.contractChosen && "Contract must be selected", !data.tokenSwapContractAddress && "Token swap contract address is required"].filter(Boolean)
1479
+ }),
1480
+ (_data) => `Withdraw from token swap contract`,
1481
+ "Withdraw funds from token swap"
1482
+ )
1483
+ ],
1484
+ [
1485
+ "PerformTokenSwap",
1486
+ createActionConfig(
1487
+ "Perform Token Swap",
1488
+ "PerformTokenSwap",
1489
+ "treasury",
1490
+ PerformTokenSwapActionForm,
1491
+ () => ({ contractChosen: false }),
1492
+ (data) => ({
1493
+ isValid: data.contractChosen && !!data.tokenSwapContractAddress && !!data.selfParty,
1494
+ errors: [
1495
+ !data.contractChosen && "Contract must be selected",
1496
+ !data.tokenSwapContractAddress && "Token swap contract address is required",
1497
+ !data.selfParty && "Self party details are required"
1498
+ ].filter(Boolean)
1499
+ }),
1500
+ (_data) => `Perform token swap`,
1501
+ "Execute a token swap"
1502
+ )
1503
+ ],
1504
+ // Governance Actions
1505
+ [
1506
+ "UpdateMembers",
1507
+ createActionConfig(
1508
+ "Update Members",
1509
+ "UpdateMembers",
1510
+ "governance",
1511
+ UpdateMembersActionForm,
1512
+ () => ({ add: [], remove: [] }),
1513
+ (data) => ({
1514
+ isValid: data.add.length > 0 || data.remove.length > 0,
1515
+ errors: [data.add.length === 0 && data.remove.length === 0 && "Add or remove at least one member"].filter(Boolean)
1516
+ }),
1517
+ (data) => `Add ${data.add.length}, Remove ${data.remove.length} members`,
1518
+ "Add or remove DAO members"
1519
+ )
1520
+ ],
1521
+ [
1522
+ "GovernanceVote",
1523
+ createActionConfig(
1524
+ "Governance Vote",
1525
+ "GovernanceVote",
1526
+ "governance",
1527
+ GovernanceVoteActionForm,
1528
+ () => ({ proposalId: "", vote: 1 }),
1529
+ (data) => ({
1530
+ isValid: !!data.proposalId && data.vote >= 0,
1531
+ errors: [!data.proposalId && "Proposal ID is required", data.vote < 0 && "Vote option is required"].filter(Boolean)
1532
+ }),
1533
+ (data) => `Vote on proposal #${data.proposalId}`,
1534
+ "Vote on a governance proposal"
1535
+ )
1536
+ ],
1537
+ [
1538
+ "UpdateVotingConfig",
1539
+ createActionConfig(
1540
+ "Update Voting Rules",
1541
+ "UpdateVotingConfig",
1542
+ "governance",
1543
+ UpdateVotingConfigActionForm,
1544
+ () => ({
1545
+ // Group creation instantiates dao_proposal_single with
1546
+ // only_members_execute: true — default updates to the same policy.
1547
+ onlyMembersExecute: true,
1548
+ thresholdType: "majority",
1549
+ quorumEnabled: false,
1550
+ quorumType: "majority",
1551
+ proposalDuration: 7,
1552
+ proposalDurationUnits: "days",
1553
+ allowRevoting: false
1554
+ }),
1555
+ (data) => ({
1556
+ isValid: (data.thresholdType !== "%" || Number(data.thresholdPercentage) > 0 && Number(data.thresholdPercentage) <= 100) && (!data.quorumEnabled || data.quorumType !== "%" || Number(data.quorumPercentage) > 0 && Number(data.quorumPercentage) <= 100) && Number(data.proposalDuration) > 0,
1557
+ errors: [
1558
+ data.thresholdType === "%" && !(Number(data.thresholdPercentage) > 0 && Number(data.thresholdPercentage) <= 100) && "Enter a passing threshold between 1 and 100%",
1559
+ data.quorumEnabled && data.quorumType === "%" && !(Number(data.quorumPercentage) > 0 && Number(data.quorumPercentage) <= 100) && "Enter a quorum between 1 and 100%",
1560
+ !(Number(data.proposalDuration) > 0) && "Enter a voting duration greater than 0"
1561
+ ].filter(Boolean)
1562
+ }),
1563
+ (_data) => `Update the group's voting rules`,
1564
+ "Change how this group's proposals are voted on"
1565
+ )
1566
+ ],
1567
+ [
1568
+ "UpdatePreProposeConfig",
1569
+ createActionConfig(
1570
+ "Update Proposal Submission Rules",
1571
+ "UpdatePreProposeConfig",
1572
+ "governance",
1573
+ UpdatePreProposeConfigActionForm,
1574
+ () => ({
1575
+ depositRequired: false,
1576
+ depositInfo: {
1577
+ amount: "0",
1578
+ type: "native",
1579
+ denomOrAddress: "uixo",
1580
+ refundPolicy: "always"
1581
+ },
1582
+ // Groups are created members-only; default the update form to the
1583
+ // same policy so updating the deposit doesn't silently open
1584
+ // submission to everyone (the on-chain update replaces both fields).
1585
+ anyoneCanPropose: false
1586
+ }),
1587
+ (data) => ({
1588
+ isValid: !data.depositRequired || Number(data.depositInfo?.amount) > 0 && !!data.depositInfo?.denomOrAddress,
1589
+ errors: [
1590
+ data.depositRequired && !(Number(data.depositInfo?.amount) > 0) && "Enter a deposit amount greater than 0",
1591
+ data.depositRequired && !data.depositInfo?.denomOrAddress && "Choose which token the deposit is paid in"
1592
+ ].filter(Boolean)
1593
+ }),
1594
+ (data) => data.anyoneCanPropose ? "Let anyone submit proposals" : "Only members may submit proposals",
1595
+ "Change who may submit proposals and whether a deposit is required"
1596
+ )
1597
+ ],
1598
+ // Staking Actions
1599
+ [
1600
+ "Stake",
1601
+ createActionConfig(
1602
+ "Stake",
1603
+ "Stake",
1604
+ "staking",
1605
+ StakeActionForm,
1606
+ () => ({
1607
+ stakeType: StakeType.Delegate,
1608
+ validator: "",
1609
+ toValidator: "",
1610
+ amount: "",
1611
+ denom: "uixo"
1612
+ }),
1613
+ (data) => ({
1614
+ isValid: !!data.validator && (data.stakeType === StakeType.WithdrawDelegatorReward || !!data.amount && !!data.denom),
1615
+ errors: [
1616
+ !data.validator && "Validator is required",
1617
+ data.stakeType === StakeType.Redelegate && !data.toValidator && "Destination validator is required",
1618
+ data.stakeType !== StakeType.WithdrawDelegatorReward && !data.amount && "Amount is required"
1619
+ ].filter(Boolean)
1620
+ }),
1621
+ (data) => `${data.stakeType} ${data.stakeType !== StakeType.WithdrawDelegatorReward ? `${data.amount} ${data.denom}` : "rewards"}`,
1622
+ "Manage staking operations"
1623
+ )
1624
+ ],
1625
+ [
1626
+ "StakeToGroup",
1627
+ createActionConfig(
1628
+ "Stake to Group",
1629
+ "StakeToGroup",
1630
+ "staking",
1631
+ StakeToGroupActionForm,
1632
+ () => ({ tokenContract: "", stakingContract: "", amount: "" }),
1633
+ (data) => ({
1634
+ isValid: !!data.tokenContract && !!data.stakingContract && !!data.amount,
1635
+ errors: [!data.tokenContract && "Token contract is required", !data.stakingContract && "Staking contract is required", !data.amount && "Amount is required"].filter(
1636
+ Boolean
1637
+ )
1638
+ }),
1639
+ (data) => `Stake ${data.amount} to group`,
1640
+ "Stake tokens to a group"
1641
+ )
1642
+ ],
1643
+ // DAO Management Actions
1644
+ [
1645
+ "Join",
1646
+ createActionConfig(
1647
+ "Join",
1648
+ "Join",
1649
+ "dao",
1650
+ JoinActionForm,
1651
+ () => ({ id: "", coreAddress: "", address: "" }),
1652
+ (data) => ({
1653
+ isValid: !!data.id && !!data.coreAddress && !!data.address,
1654
+ errors: [!data.id && "ID is required", !data.coreAddress && "Core address is required", !data.address && "Address is required"].filter(Boolean)
1655
+ }),
1656
+ (data) => `Join with ID: ${data.id.slice(0, 20)}...`,
1657
+ "Join a DAO or entity"
1658
+ )
1659
+ ],
1660
+ [
1661
+ "UpdateInfo",
1662
+ createActionConfig(
1663
+ "Update DAO Info",
1664
+ "UpdateInfo",
1665
+ "dao",
1666
+ UpdateInfoActionForm,
1667
+ () => ({
1668
+ automatically_add_cw20s: false,
1669
+ automatically_add_cw721s: false,
1670
+ description: "",
1671
+ name: ""
1672
+ }),
1673
+ (data) => ({
1674
+ isValid: !!data.name,
1675
+ errors: [!data.name && "Name is required"].filter(Boolean)
1676
+ }),
1677
+ (data) => `Update DAO info: ${data.name}`,
1678
+ "Update DAO information"
1679
+ )
1680
+ ],
1681
+ [
1682
+ "ManageSubDaos",
1683
+ createActionConfig(
1684
+ "Manage SubDAOs",
1685
+ "ManageSubDaos",
1686
+ "dao",
1687
+ ManageSubDaosActionForm,
1688
+ () => ({ toAdd: [], toRemove: [] }),
1689
+ (data) => ({
1690
+ isValid: data.toAdd.length > 0 || data.toRemove.length > 0,
1691
+ errors: [data.toAdd.length === 0 && data.toRemove.length === 0 && "Add or remove at least one SubDAO"].filter(Boolean)
1692
+ }),
1693
+ (data) => `Add ${data.toAdd.length}, Remove ${data.toRemove.length} SubDAOs`,
1694
+ "Add or remove SubDAOs"
1695
+ )
1696
+ ],
1697
+ [
1698
+ "ManageStorageItems",
1699
+ createActionConfig(
1700
+ "Manage Storage Items",
1701
+ "ManageStorageItems",
1702
+ "dao",
1703
+ ManageStorageItemsActionForm,
1704
+ () => ({ setting: true, key: "", value: "" }),
1705
+ (data) => ({
1706
+ isValid: !!data.key,
1707
+ errors: [!data.key && "Key is required", data.setting && !data.value && "Value is required when setting"].filter(Boolean)
1708
+ }),
1709
+ (data) => data.setting ? `Set storage: ${data.key}` : `Remove storage: ${data.key}`,
1710
+ "Manage DAO storage items"
1711
+ )
1712
+ ],
1713
+ [
1714
+ "DaoAdminExec",
1715
+ createActionConfig(
1716
+ "DAO Admin Execute",
1717
+ "DaoAdminExec",
1718
+ "dao",
1719
+ DaoAdminExecActionForm,
1720
+ () => ({ coreAddress: "", msgs: [] }),
1721
+ (data) => ({
1722
+ isValid: !!data.coreAddress && data.msgs.length > 0,
1723
+ errors: [!data.coreAddress && "Core address is required", data.msgs.length === 0 && "At least one message is required"].filter(Boolean)
1724
+ }),
1725
+ (data) => `Execute ${data.msgs.length} admin messages`,
1726
+ "Execute admin messages"
1727
+ )
1728
+ ],
1729
+ [
1730
+ "AcceptToMarketplace",
1731
+ createActionConfig(
1732
+ "Accept to Marketplace",
1733
+ "AcceptToMarketplace",
1734
+ "dao",
1735
+ AcceptToMarketplaceActionForm,
1736
+ () => ({ did: "", relayerNodeDid: "", relayerNodeAddress: "" }),
1737
+ (data) => ({
1738
+ isValid: !!data.did && !!data.relayerNodeDid && !!data.relayerNodeAddress,
1739
+ errors: [!data.did && "DID is required", !data.relayerNodeDid && "Relayer node DID is required", !data.relayerNodeAddress && "Relayer node address is required"].filter(
1740
+ Boolean
1741
+ )
1742
+ }),
1743
+ (data) => `Accept ${data.did.slice(0, 10)}... to marketplace`,
1744
+ "Accept entity to marketplace"
1745
+ )
1746
+ ],
1747
+ [
1748
+ "CreateEntity",
1749
+ createActionConfig(
1750
+ "Create Entity",
1751
+ "CreateEntity",
1752
+ "dao",
1753
+ CreateEntityActionForm,
1754
+ () => ({}),
1755
+ (_data) => ({ isValid: true }),
1756
+ (_data) => `Create new entity`,
1757
+ "Create a new entity"
1758
+ )
1759
+ ],
1760
+ // NFT Actions
1761
+ [
1762
+ "BurnNft",
1763
+ createActionConfig(
1764
+ "Burn NFT",
1765
+ "BurnNft",
1766
+ "nft",
1767
+ BurnNftActionForm,
1768
+ () => ({ collection: "", tokenId: "" }),
1769
+ (data) => ({
1770
+ isValid: !!data.collection && !!data.tokenId,
1771
+ errors: [!data.collection && "Collection address is required", !data.tokenId && "Token ID is required"].filter(Boolean)
1772
+ }),
1773
+ (data) => `Burn NFT #${data.tokenId}`,
1774
+ "Burn an NFT"
1775
+ )
1776
+ ],
1777
+ [
1778
+ "TransferNft",
1779
+ createActionConfig(
1780
+ "Transfer NFT",
1781
+ "TransferNft",
1782
+ "nft",
1783
+ TransferNftActionForm,
1784
+ () => ({
1785
+ collection: "",
1786
+ tokenId: "",
1787
+ recipient: "",
1788
+ executeSmartContract: false,
1789
+ smartContractMsg: ""
1790
+ }),
1791
+ (data) => ({
1792
+ isValid: !!data.collection && !!data.tokenId && !!data.recipient,
1793
+ errors: [!data.collection && "Collection address is required", !data.tokenId && "Token ID is required", !data.recipient && "Recipient address is required"].filter(
1794
+ Boolean
1795
+ )
1796
+ }),
1797
+ (data) => `Transfer NFT #${data.tokenId} to ${data.recipient.slice(0, 8)}...`,
1798
+ "Transfer an NFT"
1799
+ )
1800
+ ],
1801
+ [
1802
+ "ManageCw721",
1803
+ createActionConfig(
1804
+ "Manage CW721",
1805
+ "ManageCw721",
1806
+ "nft",
1807
+ ManageCw721ActionForm,
1808
+ () => ({ adding: true, address: "" }),
1809
+ (data) => ({
1810
+ isValid: !!data.address,
1811
+ errors: [!data.address && "NFT contract address is required"].filter(Boolean)
1812
+ }),
1813
+ (data) => `${data.adding ? "Add" : "Remove"} CW721: ${data.address.slice(0, 8)}...`,
1814
+ "Manage CW721 NFT contracts"
1815
+ )
1816
+ ],
1817
+ // Smart Contract Actions
1818
+ [
1819
+ "Execute",
1820
+ createActionConfig(
1821
+ "Execute Contract",
1822
+ "Execute",
1823
+ "contract",
1824
+ ExecuteActionForm,
1825
+ () => ({ address: "", message: "{}", funds: [] }),
1826
+ (data) => ({
1827
+ isValid: !!data.address && !!data.message,
1828
+ errors: [!data.address && "Contract address is required", !data.message && "Message is required"].filter(Boolean)
1829
+ }),
1830
+ (data) => `Execute contract: ${data.address.slice(0, 8)}...`,
1831
+ "Execute a smart contract"
1832
+ )
1833
+ ],
1834
+ [
1835
+ "Instantiate",
1836
+ createActionConfig(
1837
+ "Instantiate Contract",
1838
+ "Instantiate",
1839
+ "contract",
1840
+ InstantiateActionForm,
1841
+ () => ({ admin: "", codeId: 0, label: "", message: "{}", funds: [] }),
1842
+ (data) => ({
1843
+ isValid: !!data.admin && data.codeId > 0 && !!data.label && !!data.message,
1844
+ errors: [
1845
+ !data.admin && "Admin address is required",
1846
+ data.codeId <= 0 && "Valid code ID is required",
1847
+ !data.label && "Label is required",
1848
+ !data.message && "Message is required"
1849
+ ].filter(Boolean)
1850
+ }),
1851
+ (data) => `Instantiate contract from code ${data.codeId}`,
1852
+ "Instantiate a new contract"
1853
+ )
1854
+ ],
1855
+ [
1856
+ "Migrate",
1857
+ createActionConfig(
1858
+ "Migrate Contract",
1859
+ "Migrate",
1860
+ "contract",
1861
+ MigrateActionForm,
1862
+ () => ({ contract: "", codeId: 0, msg: "{}" }),
1863
+ (data) => ({
1864
+ isValid: !!data.contract && data.codeId > 0 && !!data.msg,
1865
+ errors: [!data.contract && "Contract address is required", data.codeId <= 0 && "Valid code ID is required", !data.msg && "Migration message is required"].filter(
1866
+ Boolean
1867
+ )
1868
+ }),
1869
+ (data) => `Migrate contract to code ${data.codeId}`,
1870
+ "Migrate a contract"
1871
+ )
1872
+ ],
1873
+ [
1874
+ "UpdateAdmin",
1875
+ createActionConfig(
1876
+ "Update Contract Admin",
1877
+ "UpdateAdmin",
1878
+ "contract",
1879
+ UpdateAdminActionForm,
1880
+ () => ({ contract: "", newAdmin: "" }),
1881
+ (data) => ({
1882
+ isValid: !!data.contract && !!data.newAdmin,
1883
+ errors: [!data.contract && "Contract address is required", !data.newAdmin && "New admin address is required"].filter(Boolean)
1884
+ }),
1885
+ (data) => `Update admin for ${data.contract.slice(0, 8)}...`,
1886
+ "Change contract admin"
1887
+ )
1888
+ ],
1889
+ [
1890
+ "ManageCw20",
1891
+ createActionConfig(
1892
+ "Manage CW20",
1893
+ "ManageCw20",
1894
+ "contract",
1895
+ ManageCw20ActionForm,
1896
+ () => ({ adding: true, address: "" }),
1897
+ (data) => ({
1898
+ isValid: !!data.address,
1899
+ errors: [!data.address && "Token contract address is required"].filter(Boolean)
1900
+ }),
1901
+ (data) => `${data.adding ? "Add" : "Remove"} CW20: ${data.address.slice(0, 8)}...`,
1902
+ "Manage CW20 token contracts"
1903
+ )
1904
+ ],
1905
+ // Authorization Actions
1906
+ [
1907
+ "AuthzExec",
1908
+ createActionConfig(
1909
+ "Authz Execute",
1910
+ "AuthzExec",
1911
+ "governance",
1912
+ AuthzExecActionForm,
1913
+ () => ({
1914
+ authzExecActionType: AuthzExecActionTypes.Delegate,
1915
+ delegate: {},
1916
+ undelegate: {},
1917
+ redelegate: {},
1918
+ claimRewards: {},
1919
+ custom: ""
1920
+ }),
1921
+ (data) => ({
1922
+ isValid: !!data.authzExecActionType,
1923
+ errors: [!data.authzExecActionType ? "Action type is required" : ""].filter(Boolean)
1924
+ }),
1925
+ (data) => `Execute authorized action: ${data.authzExecActionType}`,
1926
+ "Execute authorized action"
1927
+ )
1928
+ ],
1929
+ [
1930
+ "AuthzGrant",
1931
+ createActionConfig(
1932
+ "Authz Grant",
1933
+ "AuthzGrant",
1934
+ "governance",
1935
+ AuthzGrantActionForm,
1936
+ () => ({ typeUrl: "", value: { grantee: "", msgTypeUrl: "" } }),
1937
+ (data) => ({
1938
+ isValid: !!data.typeUrl && !!data.value.grantee && !!data.value.msgTypeUrl,
1939
+ errors: [!data.typeUrl && "Type URL is required", !data.value.grantee && "Grantee address is required", !data.value.msgTypeUrl && "Message type URL is required"].filter(
1940
+ Boolean
1941
+ )
1942
+ }),
1943
+ (data) => `Grant authorization to ${data.value.grantee.slice(0, 8)}...`,
1944
+ "Grant authorization"
1945
+ )
1946
+ ],
1947
+ [
1948
+ "AuthzRevoke",
1949
+ createActionConfig(
1950
+ "Authz Revoke",
1951
+ "AuthzRevoke",
1952
+ "governance",
1953
+ AuthzGrantActionForm,
1954
+ // Reuse same form
1955
+ () => ({ typeUrl: "", value: { grantee: "", msgTypeUrl: "" } }),
1956
+ (data) => ({
1957
+ isValid: !!data.value.grantee && !!data.value.msgTypeUrl,
1958
+ errors: [!data.value.grantee && "Grantee address is required", !data.value.msgTypeUrl && "Message type URL is required"].filter(Boolean)
1959
+ }),
1960
+ (data) => `Revoke authorization from ${data.value.grantee.slice(0, 8)}...`,
1961
+ "Revoke authorization"
1962
+ )
1963
+ ],
1964
+ // Validator Actions
1965
+ [
1966
+ "ValidatorActions",
1967
+ createActionConfig(
1968
+ "Validator Actions",
1969
+ "ValidatorActions",
1970
+ "validator",
1971
+ ValidatorActionsActionForm,
1972
+ () => ({
1973
+ validatorActionType: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission" /* WithdrawValidatorCommission */,
1974
+ createMsg: "",
1975
+ editMsg: ""
1976
+ }),
1977
+ (data) => ({
1978
+ isValid: !!data.validatorActionType,
1979
+ errors: [
1980
+ !data.validatorActionType && "Action type is required",
1981
+ data.validatorActionType === "/cosmos.staking.v1beta1.MsgCreateValidator" /* CreateValidator */ && !data.createMsg && "Create message is required",
1982
+ data.validatorActionType === "/cosmos.staking.v1beta1.MsgEditValidator" /* EditValidator */ && !data.editMsg && "Edit message is required"
1983
+ ].filter(Boolean)
1984
+ }),
1985
+ (data) => `Validator action: ${data.validatorActionType}`,
1986
+ "Perform validator operations"
1987
+ )
1988
+ ],
1989
+ // Custom Action
1990
+ [
1991
+ "Custom",
1992
+ createActionConfig(
1993
+ "Custom",
1994
+ "Custom",
1995
+ "custom",
1996
+ CustomActionForm,
1997
+ () => ({ message: "{}" }),
1998
+ (data) => {
1999
+ try {
2000
+ JSON.parse(data.message);
2001
+ return { isValid: true };
2002
+ } catch {
2003
+ return { isValid: false, errors: ["Invalid JSON message"] };
2004
+ }
2005
+ },
2006
+ (_data) => `Custom action`,
2007
+ "Execute custom JSON message"
2008
+ )
2009
+ ]
2010
+ ]);
2011
+ var getActionConfig = (type) => {
2012
+ return actionRegistry.get(type);
2013
+ };
2014
+ var getCategorizedActions = () => {
2015
+ const categorized = /* @__PURE__ */ new Map();
2016
+ actionRegistry.forEach((config) => {
2017
+ const categoryActions = categorized.get(config.category) || [];
2018
+ categoryActions.push(config);
2019
+ categorized.set(config.category, categoryActions);
2020
+ });
2021
+ return categorized;
2022
+ };
2023
+
2024
+ // src/mantine/blocks/proposal/registry/categories.ts
2025
+ var ACTION_CATEGORIES = [
2026
+ {
2027
+ id: "treasury",
2028
+ label: "Treasury",
2029
+ description: "Manage funds and tokens",
2030
+ icon: "\u{1F4B0}"
2031
+ },
2032
+ {
2033
+ id: "governance",
2034
+ label: "Governance",
2035
+ description: "Voting and proposals",
2036
+ icon: "\u{1F5F3}\uFE0F"
2037
+ },
2038
+ {
2039
+ id: "staking",
2040
+ label: "Staking",
2041
+ description: "Delegate and manage stakes",
2042
+ icon: "\u{1F512}"
2043
+ },
2044
+ {
2045
+ id: "dao",
2046
+ label: "DAO Management",
2047
+ description: "Manage DAO configuration",
2048
+ icon: "\u{1F3DB}\uFE0F"
2049
+ },
2050
+ {
2051
+ id: "nft",
2052
+ label: "NFTs",
2053
+ description: "NFT operations",
2054
+ icon: "\u{1F3A8}"
2055
+ },
2056
+ {
2057
+ id: "contract",
2058
+ label: "Smart Contracts",
2059
+ description: "Contract interactions",
2060
+ icon: "\u{1F4C4}"
2061
+ },
2062
+ {
2063
+ id: "validator",
2064
+ label: "Validator",
2065
+ description: "Validator operations",
2066
+ icon: "\u26A1"
2067
+ },
2068
+ {
2069
+ id: "custom",
2070
+ label: "Custom",
2071
+ description: "Custom actions",
2072
+ icon: "\u{1F527}"
2073
+ }
2074
+ ];
2075
+
2076
+ // src/mantine/blocks/proposal/ActionsPanel.tsx
2077
+ var ActionsPanel = ({ actions, editingIndex, onSave, onCancel, isTemplateMode = false }) => {
2078
+ const isEditing = editingIndex !== null;
2079
+ const editingAction = isEditing ? actions[editingIndex] : null;
2080
+ const initialActionType = editingAction?.type || "Spend";
2081
+ const [selectedActionType, setSelectedActionType] = useState7(initialActionType);
2082
+ const [actionData, setActionData] = useState7(() => {
2083
+ if (editingAction) {
2084
+ return editingAction.data;
2085
+ }
2086
+ const config = getActionConfig(selectedActionType);
2087
+ return config?.getDefaultData() || {};
2088
+ });
2089
+ const currentActionConfig = getActionConfig(selectedActionType);
2090
+ const categorizedActions = useMemo(() => getCategorizedActions(), []);
2091
+ useEffect2(() => {
2092
+ if (!isEditing) {
2093
+ const config = getActionConfig(selectedActionType);
2094
+ if (config) {
2095
+ setActionData(config.getDefaultData());
2096
+ }
2097
+ }
2098
+ }, [selectedActionType, isEditing]);
2099
+ const handleSave = () => {
2100
+ if (!currentActionConfig) return;
2101
+ const validation = currentActionConfig.validateData(actionData);
2102
+ if (!validation.isValid) {
2103
+ return;
2104
+ }
2105
+ const action = {
2106
+ type: selectedActionType,
2107
+ data: actionData
2108
+ };
2109
+ onSave(action);
2110
+ };
2111
+ const renderActionForm = () => {
2112
+ if (!currentActionConfig) {
2113
+ return /* @__PURE__ */ React32.createElement(Alert3, { color: "red" }, /* @__PURE__ */ React32.createElement(Text10, { size: "sm", c: "red" }, "Unknown action type selected"));
2114
+ }
2115
+ const FormComponent = currentActionConfig.FormComponent;
2116
+ return /* @__PURE__ */ React32.createElement(FormComponent, { data: actionData, onChange: setActionData, isTemplateMode });
2117
+ };
2118
+ const getCategoryColor = (category) => {
2119
+ const colors = {
2120
+ treasury: "#4dabf7",
2121
+ governance: "#ffd43b",
2122
+ staking: "#51cf66",
2123
+ dao: "#ff6b6b",
2124
+ nft: "#a78bfa",
2125
+ contract: "#f97316",
2126
+ validator: "#06b6d4",
2127
+ custom: "#6b7280"
2128
+ };
2129
+ return colors[category] || "#6b7280";
2130
+ };
2131
+ return /* @__PURE__ */ React32.createElement(Stack32, { style: { height: "100%" } }, /* @__PURE__ */ React32.createElement(Text10, { fw: 600 }, isEditing ? "Edit Action" : "Add New Action"), !isEditing ? /* @__PURE__ */ React32.createElement(Stack32, { gap: "md" }, /* @__PURE__ */ React32.createElement(Text10, { size: "sm", fw: 500, c: "dimmed" }, "Select Action Type"), /* @__PURE__ */ React32.createElement(
2132
+ Tabs,
2133
+ {
2134
+ defaultValue: ACTION_CATEGORIES[0].id,
2135
+ styles: {
2136
+ root: { backgroundColor: "transparent" },
2137
+ list: { backgroundColor: "var(--mantine-color-neutralColor-2)", borderColor: "var(--mantine-color-neutralColor-5)" },
2138
+ tab: {
2139
+ color: "var(--mantine-color-dimmed)",
2140
+ "&[data-active]": {
2141
+ backgroundColor: "var(--mantine-color-neutralColor-4)",
2142
+ color: "var(--mantine-color-text)",
2143
+ borderColor: "var(--mantine-color-accent-5)"
2144
+ },
2145
+ "&:hover": {
2146
+ backgroundColor: "var(--mantine-color-neutralColor-3)"
2147
+ }
2148
+ },
2149
+ panel: { paddingTop: "md" }
2150
+ }
2151
+ },
2152
+ /* @__PURE__ */ React32.createElement(Tabs.List, null, ACTION_CATEGORIES.map((category) => /* @__PURE__ */ React32.createElement(Tabs.Tab, { key: category.id, value: category.id }, /* @__PURE__ */ React32.createElement(Group12, { gap: "xs" }, /* @__PURE__ */ React32.createElement("span", null, category.icon), /* @__PURE__ */ React32.createElement("span", null, category.label))))),
2153
+ ACTION_CATEGORIES.map((category) => /* @__PURE__ */ React32.createElement(Tabs.Panel, { key: category.id, value: category.id, mt: 10 }, /* @__PURE__ */ React32.createElement(SimpleGrid, { cols: 2, spacing: "xs" }, (categorizedActions.get(category.id) || []).map((config) => /* @__PURE__ */ React32.createElement(
2154
+ Paper,
2155
+ {
2156
+ key: config.value,
2157
+ withBorder: true,
2158
+ p: "sm",
2159
+ style: {
2160
+ backgroundColor: selectedActionType === config.value ? "var(--mantine-color-neutralColor-4)" : "var(--mantine-color-neutralColor-2)",
2161
+ borderColor: selectedActionType === config.value ? "var(--mantine-color-accent-5)" : "var(--mantine-color-neutralColor-5)",
2162
+ cursor: "pointer",
2163
+ transition: "all 0.2s"
2164
+ },
2165
+ onClick: () => setSelectedActionType(config.value)
2166
+ },
2167
+ /* @__PURE__ */ React32.createElement(Stack32, { gap: "xs" }, /* @__PURE__ */ React32.createElement(Group12, { justify: "space-between" }, /* @__PURE__ */ React32.createElement(Text10, { size: "sm", fw: 500 }, config.label), selectedActionType === config.value && /* @__PURE__ */ React32.createElement(Badge4, { size: "xs", color: "accent" }, "Selected")), config.description && /* @__PURE__ */ React32.createElement(Text10, { size: "xs", c: "dimmed" }, config.description))
2168
+ )))))
2169
+ )) : /* @__PURE__ */ React32.createElement(
2170
+ Card7,
2171
+ {
2172
+ withBorder: true,
2173
+ p: "sm",
2174
+ style: {
2175
+ backgroundColor: "var(--mantine-color-neutralColor-2)",
2176
+ borderColor: "var(--mantine-color-neutralColor-5)"
2177
+ }
2178
+ },
2179
+ /* @__PURE__ */ React32.createElement(Group12, { justify: "space-between" }, /* @__PURE__ */ React32.createElement(Group12, { gap: "xs" }, /* @__PURE__ */ React32.createElement(
2180
+ Badge4,
2181
+ {
2182
+ size: "sm",
2183
+ style: {
2184
+ backgroundColor: getCategoryColor(currentActionConfig?.category || "custom") + "20",
2185
+ color: getCategoryColor(currentActionConfig?.category || "custom")
2186
+ }
2187
+ },
2188
+ currentActionConfig?.label || selectedActionType
2189
+ ), /* @__PURE__ */ React32.createElement(Text10, { size: "sm", c: "dimmed" }, "(Editing)")))
2190
+ ), /* @__PURE__ */ React32.createElement(Divider2, { color: "var(--mantine-color-neutralColor-5)" }), /* @__PURE__ */ React32.createElement(ScrollArea3, { style: { flex: 1 } }, renderActionForm()), /* @__PURE__ */ React32.createElement(Divider2, { color: "var(--mantine-color-neutralColor-5)" }), /* @__PURE__ */ React32.createElement(Stack32, { gap: "xs" }, /* @__PURE__ */ React32.createElement(Text10, { size: "sm", fw: 500, c: "dimmed" }, "Current Actions (", actions.length, ")"), /* @__PURE__ */ React32.createElement(ScrollArea3, { h: 100 }, /* @__PURE__ */ React32.createElement(Stack32, { gap: "xs" }, actions.map((action, index) => {
2191
+ const config = getActionConfig(action.type);
2192
+ return /* @__PURE__ */ React32.createElement(
2193
+ Card7,
2194
+ {
2195
+ key: index,
2196
+ withBorder: true,
2197
+ padding: "xs",
2198
+ style: {
2199
+ backgroundColor: "var(--mantine-color-neutralColor-2)",
2200
+ borderColor: index === editingIndex ? "var(--mantine-color-accent-5)" : "var(--mantine-color-neutralColor-5)",
2201
+ borderWidth: index === editingIndex ? 2 : 1,
2202
+ opacity: index === editingIndex ? 0.7 : 1
2203
+ }
2204
+ },
2205
+ /* @__PURE__ */ React32.createElement(Group12, { gap: "xs" }, /* @__PURE__ */ React32.createElement(
2206
+ Badge4,
2207
+ {
2208
+ size: "sm",
2209
+ style: {
2210
+ backgroundColor: getCategoryColor(config?.category || "custom") + "20",
2211
+ color: getCategoryColor(config?.category || "custom")
2212
+ }
2213
+ },
2214
+ config?.label || action.type
2215
+ ), /* @__PURE__ */ React32.createElement(Text10, { size: "sm", c: "dimmed" }, config?.getSummary(action.data) || "Action"), index === editingIndex && /* @__PURE__ */ React32.createElement(Badge4, { size: "xs", color: "accent" }, "Editing"))
2216
+ );
2217
+ })))), /* @__PURE__ */ React32.createElement(Group12, { justify: "flex-end", mt: "md" }, /* @__PURE__ */ React32.createElement(Button6, { variant: "secondary", onClick: onCancel }, "Cancel"), /* @__PURE__ */ React32.createElement(Button6, { onClick: handleSave, disabled: !currentActionConfig }, isEditing ? "Update Action" : "Add Action")));
2218
+ };
2219
+
2220
+ // src/mantine/blocks/proposal/flow/ActionsTab.tsx
2221
+ var ActionsTab = ({ actions, onActionsChange, isProposalCreated }) => {
2222
+ const [isEditorVisible, setIsEditorVisible] = useState8(false);
2223
+ const [editingIndex, setEditingIndex] = useState8(null);
2224
+ const parseActions = (actionsJson) => {
2225
+ if (!actionsJson) return [];
2226
+ try {
2227
+ return JSON.parse(actionsJson);
2228
+ } catch (error) {
2229
+ return [];
2230
+ }
2231
+ };
2232
+ const currentActions = parseActions(actions);
2233
+ useEffect3(() => {
2234
+ if (!isProposalCreated && currentActions.length === 0 && !isEditorVisible) {
2235
+ setEditingIndex(null);
2236
+ setIsEditorVisible(true);
2237
+ }
2238
+ }, [currentActions.length, isEditorVisible, isProposalCreated]);
2239
+ const handleAddAction = useCallback(() => {
2240
+ if (isProposalCreated) return;
2241
+ setEditingIndex(null);
2242
+ setIsEditorVisible(true);
2243
+ }, [isProposalCreated]);
2244
+ const handleEditAction = useCallback(
2245
+ (index) => {
2246
+ if (isProposalCreated) return;
2247
+ setEditingIndex(index);
2248
+ setIsEditorVisible(true);
2249
+ },
2250
+ [isProposalCreated]
2251
+ );
2252
+ const handleRemoveAction = useCallback(
2253
+ (index) => {
2254
+ if (isProposalCreated) return;
2255
+ const newActions = currentActions.filter((_, i) => i !== index);
2256
+ onActionsChange(newActions);
2257
+ },
2258
+ [currentActions, onActionsChange, isProposalCreated]
2259
+ );
2260
+ const handleSaveAction = useCallback(
2261
+ (action) => {
2262
+ let newActions;
2263
+ if (editingIndex !== null) {
2264
+ newActions = currentActions.map((a, i) => i === editingIndex ? action : a);
2265
+ } else {
2266
+ newActions = [...currentActions, action];
2267
+ }
2268
+ onActionsChange(newActions);
2269
+ setIsEditorVisible(false);
2270
+ setEditingIndex(null);
2271
+ },
2272
+ [editingIndex, currentActions, onActionsChange]
2273
+ );
2274
+ const handleCancelEditor = useCallback(() => {
2275
+ setIsEditorVisible(false);
2276
+ setEditingIndex(null);
2277
+ }, []);
2278
+ return /* @__PURE__ */ React33.createElement(Stack33, { gap: "md" }, isProposalCreated && /* @__PURE__ */ React33.createElement(Alert4, { color: "yellow", title: "Actions Locked" }, /* @__PURE__ */ React33.createElement(Text11, { size: "sm" }, "Actions cannot be edited after the proposal has been created. These actions are now part of the on-chain proposal.")), /* @__PURE__ */ React33.createElement(Stack33, { gap: "sm" }, !isProposalCreated && /* @__PURE__ */ React33.createElement(
2279
+ Button7,
2280
+ {
2281
+ onClick: handleAddAction,
2282
+ style: {
2283
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 50%, transparent)",
2284
+ "&:hover": {
2285
+ backgroundColor: "var(--mantine-color-accent-5)"
2286
+ }
2287
+ }
2288
+ },
2289
+ "Add Action"
2290
+ ), /* @__PURE__ */ React33.createElement(
2291
+ ActionsCard,
2292
+ {
2293
+ actions: currentActions,
2294
+ isSelected: false,
2295
+ onClick: () => {
2296
+ },
2297
+ onEditAction: handleEditAction,
2298
+ onRemoveAction: handleRemoveAction,
2299
+ disabled: isProposalCreated
2300
+ }
2301
+ )), !isProposalCreated && isEditorVisible && /* @__PURE__ */ React33.createElement(
2302
+ Card8,
2303
+ {
2304
+ withBorder: true,
2305
+ padding: "lg",
2306
+ radius: "md",
2307
+ style: {
2308
+ backgroundColor: "var(--mantine-color-neutralColor-3)",
2309
+ borderColor: "var(--mantine-color-neutralColor-5)"
2310
+ }
2311
+ },
2312
+ /* @__PURE__ */ React33.createElement(ActionsPanel, { actions: currentActions, editingIndex, onSave: handleSaveAction, onCancel: handleCancelEditor, isTemplateMode: false })
2313
+ ));
2314
+ };
2315
+
2316
+ export {
2317
+ ActionsCard,
2318
+ ActionsPanel,
2319
+ ActionsTab
2320
+ };
2321
+ //# sourceMappingURL=chunk-PAY3CBWL.js.map