@ixo/editor 6.33.0 → 6.35.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-U2SX5M7F.js +365 -0
  4. package/dist/BidFlowDetail-U2SX5M7F.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-I4OQSHAB.js +641 -0
  20. package/dist/ClaimFlowDetail-I4OQSHAB.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-LQHKB227.js +647 -0
  24. package/dist/CollectionLifecycleFlowDetail-LQHKB227.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-LHXVCCPQ.js +1276 -0
  28. package/dist/CollectionUsersFlowDetail-LHXVCCPQ.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-2EXGNBYC.js +564 -0
  74. package/dist/EvaluateBidFlowDetail-2EXGNBYC.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-QKHJVEDE.js +2237 -0
  78. package/dist/EvaluateClaimFlowDetail-QKHJVEDE.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-4TE6UCEB.js +83 -0
  166. package/dist/IdentityCreateFlowDetail-4TE6UCEB.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-HPVZAHVY.js +57 -0
  170. package/dist/IidCreateFlowDetail-HPVZAHVY.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-FEU43HML.js +421 -0
  174. package/dist/KycVerifyFlowDetail-FEU43HML.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-MIBXUEKC.js +255 -0
  198. package/dist/OracleConfigureOracleFlowDetail-MIBXUEKC.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-HQU3UKEB.js +220 -0
  228. package/dist/OracleStoreSecretsAndConfigFlowDetail-HQU3UKEB.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-5RXWQ3KA.js +197 -0
  232. package/dist/OracleStoreSecretsFlowDetail-5RXWQ3KA.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-2FCRCNYV.js +235 -0
  236. package/dist/ProposalCreateFlowDetail-2FCRCNYV.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-3TUYY4HK.js +20 -0
  285. package/dist/chunk-3TUYY4HK.js.map +1 -0
  286. package/dist/chunk-4DGCCXD6.js +710 -0
  287. package/dist/chunk-4DGCCXD6.js.map +1 -0
  288. package/dist/chunk-4NAFQF6V.js +11 -0
  289. package/dist/chunk-4NAFQF6V.js.map +1 -0
  290. package/dist/chunk-4PONO4US.js +799 -0
  291. package/dist/chunk-4PONO4US.js.map +1 -0
  292. package/dist/chunk-4TMOIK5M.js +21 -0
  293. package/dist/chunk-4TMOIK5M.js.map +1 -0
  294. package/dist/chunk-5E6Z6JJN.js +4456 -0
  295. package/dist/chunk-5E6Z6JJN.js.map +1 -0
  296. package/dist/chunk-5IH3VC5I.js +102 -0
  297. package/dist/chunk-5IH3VC5I.js.map +1 -0
  298. package/dist/chunk-5NTKDOP6.js +89 -0
  299. package/dist/chunk-5NTKDOP6.js.map +1 -0
  300. package/dist/chunk-5O2SFRGU.js +18 -0
  301. package/dist/chunk-5O2SFRGU.js.map +1 -0
  302. package/dist/chunk-632JLECF.js +55 -0
  303. package/dist/chunk-632JLECF.js.map +1 -0
  304. package/dist/chunk-676HDB7K.js +95 -0
  305. package/dist/chunk-676HDB7K.js.map +1 -0
  306. package/dist/chunk-6ESTNTSH.js +223 -0
  307. package/dist/chunk-6ESTNTSH.js.map +1 -0
  308. package/dist/chunk-6GKJR52N.js +15 -0
  309. package/dist/chunk-6GKJR52N.js.map +1 -0
  310. package/dist/chunk-6L4ZIKYU.js +23 -0
  311. package/dist/chunk-6L4ZIKYU.js.map +1 -0
  312. package/dist/chunk-76YX5R4L.js +11 -0
  313. package/dist/chunk-76YX5R4L.js.map +1 -0
  314. package/dist/chunk-7J3GFMN3.js +32 -0
  315. package/dist/chunk-7J3GFMN3.js.map +1 -0
  316. package/dist/chunk-7LSARC2G.js +102 -0
  317. package/dist/chunk-7LSARC2G.js.map +1 -0
  318. package/dist/chunk-7W7UUUIE.js +609 -0
  319. package/dist/chunk-7W7UUUIE.js.map +1 -0
  320. package/dist/chunk-7ZLW7H37.js +21 -0
  321. package/dist/chunk-7ZLW7H37.js.map +1 -0
  322. package/dist/chunk-AAZHI22G.js +18 -0
  323. package/dist/chunk-AAZHI22G.js.map +1 -0
  324. package/dist/chunk-ACNE455I.js +76 -0
  325. package/dist/chunk-ACNE455I.js.map +1 -0
  326. package/dist/chunk-BKLSSLPZ.js +27 -0
  327. package/dist/chunk-BKLSSLPZ.js.map +1 -0
  328. package/dist/chunk-BZ7UPUTY.js +417 -0
  329. package/dist/chunk-BZ7UPUTY.js.map +1 -0
  330. package/dist/chunk-CGFAICUE.js +28 -0
  331. package/dist/chunk-CGFAICUE.js.map +1 -0
  332. package/dist/chunk-CMCEWQ3C.js +19 -0
  333. package/dist/chunk-CMCEWQ3C.js.map +1 -0
  334. package/dist/chunk-CP4UV436.js +41 -0
  335. package/dist/chunk-CP4UV436.js.map +1 -0
  336. package/dist/chunk-DIQRZP7Z.js +51 -0
  337. package/dist/chunk-DIQRZP7Z.js.map +1 -0
  338. package/dist/chunk-EBFFDDAS.js +13 -0
  339. package/dist/chunk-EBFFDDAS.js.map +1 -0
  340. package/dist/chunk-EGVS23DR.js +85 -0
  341. package/dist/chunk-EGVS23DR.js.map +1 -0
  342. package/dist/chunk-EKBQ7K4N.js +15 -0
  343. package/dist/chunk-EKBQ7K4N.js.map +1 -0
  344. package/dist/chunk-EKQCZRAN.js +24 -0
  345. package/dist/chunk-EKQCZRAN.js.map +1 -0
  346. package/dist/chunk-EYKZIZ5J.js +48 -0
  347. package/dist/chunk-EYKZIZ5J.js.map +1 -0
  348. package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
  349. package/dist/chunk-F4PTFXZH.js.map +1 -0
  350. package/dist/chunk-F5GTFCYV.js +3333 -0
  351. package/dist/chunk-F5GTFCYV.js.map +1 -0
  352. package/dist/chunk-FFYZXA75.js +58 -0
  353. package/dist/chunk-FFYZXA75.js.map +1 -0
  354. package/dist/chunk-GFGDHPZ2.js +22 -0
  355. package/dist/chunk-GFGDHPZ2.js.map +1 -0
  356. package/dist/chunk-GR3CDFID.js +18 -0
  357. package/dist/chunk-GR3CDFID.js.map +1 -0
  358. package/dist/chunk-GR4SIU32.js +104 -0
  359. package/dist/chunk-GR4SIU32.js.map +1 -0
  360. package/dist/chunk-H5E46IIS.js +18 -0
  361. package/dist/chunk-H5E46IIS.js.map +1 -0
  362. package/dist/chunk-HFHVAMZL.js +22 -0
  363. package/dist/chunk-HFHVAMZL.js.map +1 -0
  364. package/dist/chunk-HT6L7A5M.js +12 -0
  365. package/dist/chunk-HT6L7A5M.js.map +1 -0
  366. package/dist/chunk-I2FPFISM.js +301 -0
  367. package/dist/chunk-I2FPFISM.js.map +1 -0
  368. package/dist/chunk-IADAQJDH.js +28 -0
  369. package/dist/chunk-IADAQJDH.js.map +1 -0
  370. package/dist/chunk-IBOBCMQQ.js +99 -0
  371. package/dist/chunk-IBOBCMQQ.js.map +1 -0
  372. package/dist/chunk-IFWKRCFF.js +56 -0
  373. package/dist/chunk-IFWKRCFF.js.map +1 -0
  374. package/dist/chunk-IH4T7V4C.js +40 -0
  375. package/dist/chunk-IH4T7V4C.js.map +1 -0
  376. package/dist/chunk-IIIZZ4E4.js +1679 -0
  377. package/dist/chunk-IIIZZ4E4.js.map +1 -0
  378. package/dist/chunk-ILSFU3WD.js +83 -0
  379. package/dist/chunk-ILSFU3WD.js.map +1 -0
  380. package/dist/chunk-IX3VBV3L.js +43 -0
  381. package/dist/chunk-IX3VBV3L.js.map +1 -0
  382. package/dist/chunk-JB6ASLUJ.js +315 -0
  383. package/dist/chunk-JB6ASLUJ.js.map +1 -0
  384. package/dist/chunk-JBBFSORW.js +846 -0
  385. package/dist/chunk-JBBFSORW.js.map +1 -0
  386. package/dist/chunk-JIDTNKKL.js +1183 -0
  387. package/dist/chunk-JIDTNKKL.js.map +1 -0
  388. package/dist/chunk-JSPE6NGZ.js +22 -0
  389. package/dist/chunk-JSPE6NGZ.js.map +1 -0
  390. package/dist/chunk-JVROGQ7Q.js +150 -0
  391. package/dist/chunk-JVROGQ7Q.js.map +1 -0
  392. package/dist/chunk-K4WUMWNJ.js +32 -0
  393. package/dist/chunk-K4WUMWNJ.js.map +1 -0
  394. package/dist/chunk-K74XQ4Q5.js +11 -0
  395. package/dist/chunk-K74XQ4Q5.js.map +1 -0
  396. package/dist/chunk-KLLMJ4U3.js +22 -0
  397. package/dist/chunk-KLLMJ4U3.js.map +1 -0
  398. package/dist/chunk-LTKVCJ2E.js +27 -0
  399. package/dist/chunk-LTKVCJ2E.js.map +1 -0
  400. package/dist/chunk-M36DJTFZ.js +34 -0
  401. package/dist/chunk-M36DJTFZ.js.map +1 -0
  402. package/dist/chunk-MHM52LCJ.js +154 -0
  403. package/dist/chunk-MHM52LCJ.js.map +1 -0
  404. package/dist/chunk-MQCDMHRZ.js +59 -0
  405. package/dist/chunk-MQCDMHRZ.js.map +1 -0
  406. package/dist/chunk-MZIBZ5FY.js +554 -0
  407. package/dist/chunk-MZIBZ5FY.js.map +1 -0
  408. package/dist/chunk-N3ORMGAI.js +348 -0
  409. package/dist/chunk-N3ORMGAI.js.map +1 -0
  410. package/dist/chunk-NCSGIRRQ.js +28 -0
  411. package/dist/chunk-NCSGIRRQ.js.map +1 -0
  412. package/dist/chunk-NIXT2SBH.js +1423 -0
  413. package/dist/chunk-NIXT2SBH.js.map +1 -0
  414. package/dist/chunk-NJAII6CO.js +148 -0
  415. package/dist/chunk-NJAII6CO.js.map +1 -0
  416. package/dist/chunk-NKE4TL43.js +92 -0
  417. package/dist/chunk-NKE4TL43.js.map +1 -0
  418. package/dist/chunk-NZ7AXA7B.js +1 -0
  419. package/dist/chunk-NZ7AXA7B.js.map +1 -0
  420. package/dist/chunk-OCAYEGI2.js +26 -0
  421. package/dist/chunk-OCAYEGI2.js.map +1 -0
  422. package/dist/chunk-OMLI45ER.js +90 -0
  423. package/dist/chunk-OMLI45ER.js.map +1 -0
  424. package/dist/chunk-P7OBLJAG.js +88 -0
  425. package/dist/chunk-P7OBLJAG.js.map +1 -0
  426. package/dist/chunk-PAY3CBWL.js +2321 -0
  427. package/dist/chunk-PAY3CBWL.js.map +1 -0
  428. package/dist/chunk-PFF6VY35.js +257 -0
  429. package/dist/chunk-PFF6VY35.js.map +1 -0
  430. package/dist/chunk-PYNDJDWZ.js +1758 -0
  431. package/dist/chunk-PYNDJDWZ.js.map +1 -0
  432. package/dist/chunk-QDQ6UMMN.js +53 -0
  433. package/dist/chunk-QDQ6UMMN.js.map +1 -0
  434. package/dist/chunk-QGT3G2XG.js +24 -0
  435. package/dist/chunk-QGT3G2XG.js.map +1 -0
  436. package/dist/chunk-QZYCJ2GZ.js +55 -0
  437. package/dist/chunk-QZYCJ2GZ.js.map +1 -0
  438. package/dist/chunk-REZ7RFSA.js +124 -0
  439. package/dist/chunk-REZ7RFSA.js.map +1 -0
  440. package/dist/chunk-RRYBAE6E.js +2449 -0
  441. package/dist/chunk-RRYBAE6E.js.map +1 -0
  442. package/dist/chunk-RWUZOB62.js +34 -0
  443. package/dist/chunk-RWUZOB62.js.map +1 -0
  444. package/dist/chunk-SB5UCPZH.js +116 -0
  445. package/dist/chunk-SB5UCPZH.js.map +1 -0
  446. package/dist/chunk-SEJJ7CRI.js +99 -0
  447. package/dist/chunk-SEJJ7CRI.js.map +1 -0
  448. package/dist/chunk-SHBFGRPV.js +45 -0
  449. package/dist/chunk-SHBFGRPV.js.map +1 -0
  450. package/dist/chunk-SOFJ4GC5.js +45 -0
  451. package/dist/chunk-SOFJ4GC5.js.map +1 -0
  452. package/dist/chunk-STH2HPZK.js +44 -0
  453. package/dist/chunk-STH2HPZK.js.map +1 -0
  454. package/dist/chunk-TK3JNKME.js +28 -0
  455. package/dist/chunk-TK3JNKME.js.map +1 -0
  456. package/dist/chunk-TMONHFE3.js +46 -0
  457. package/dist/chunk-TMONHFE3.js.map +1 -0
  458. package/dist/chunk-TR4KO3AG.js +44 -0
  459. package/dist/chunk-TR4KO3AG.js.map +1 -0
  460. package/dist/chunk-TS2LNBF2.js +68 -0
  461. package/dist/chunk-TS2LNBF2.js.map +1 -0
  462. package/dist/chunk-UZUMBFPP.js +26 -0
  463. package/dist/chunk-UZUMBFPP.js.map +1 -0
  464. package/dist/chunk-VRZ5LMOW.js +176 -0
  465. package/dist/chunk-VRZ5LMOW.js.map +1 -0
  466. package/dist/chunk-WLGGY6Z6.js +75 -0
  467. package/dist/chunk-WLGGY6Z6.js.map +1 -0
  468. package/dist/chunk-WO7V6ZNC.js +11 -0
  469. package/dist/chunk-WO7V6ZNC.js.map +1 -0
  470. package/dist/chunk-WXSENSRP.js +64 -0
  471. package/dist/chunk-WXSENSRP.js.map +1 -0
  472. package/dist/chunk-XEKBZ2SA.js +19 -0
  473. package/dist/chunk-XEKBZ2SA.js.map +1 -0
  474. package/dist/chunk-XPBKU3JX.js +61 -0
  475. package/dist/chunk-XPBKU3JX.js.map +1 -0
  476. package/dist/chunk-XRYXBXWH.js +24 -0
  477. package/dist/chunk-XRYXBXWH.js.map +1 -0
  478. package/dist/chunk-XVA7QRVH.js +22 -0
  479. package/dist/chunk-XVA7QRVH.js.map +1 -0
  480. package/dist/chunk-XYXDY72K.js +27508 -0
  481. package/dist/chunk-XYXDY72K.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 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/governance/authzRevoke/GovernanceAuthzRevokeFlowDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Stack, Text } from '@mantine/core';\nimport { IconKeyOff } from '@tabler/icons-react';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { GovernanceProposalShell } from '../_shared/GovernanceProposalShell';\nimport { RecipientInput } from '../_shared/RecipientInput';\nimport { AUTHZ_CUSTOM_MSG_TYPE, AUTHZ_MSG_TYPE_OPTIONS } from '../_shared/authzMsgTypeOptions';\nimport type { GovernanceAuthzRevokeRuntimeInputs } from './types';\n\nexport const GovernanceAuthzRevokeFlowDetail: React.FC<ActionTypeFlowProps<GovernanceAuthzRevokeRuntimeInputs>> = (props) => {\n const { isDisabled } = props;\n\n const [grantee, setGrantee] = useState('');\n const [msgTypeChoice, setMsgTypeChoice] = useState<string | null>(null);\n const [customMsgTypeUrl, setCustomMsgTypeUrl] = useState('');\n\n const msgTypeUrl = msgTypeChoice === AUTHZ_CUSTOM_MSG_TYPE ? customMsgTypeUrl.trim() : msgTypeChoice || '';\n const msgTypeValid = msgTypeUrl.length > 0 && msgTypeUrl.startsWith('/');\n const valid = grantee.trim().length > 0 && msgTypeValid;\n\n return (\n <GovernanceProposalShell\n flow={props}\n icon={IconKeyOff}\n headline=\"Authorization\"\n defaultBlurb=\"Remove a permission the POD previously granted to an account.\"\n successTitle=\"Revoke-authorization proposal created\"\n valid={valid}\n buildRuntimeInputs={() => ({ grantee: grantee.trim(), msgTypeUrl })}\n >\n <Stack gap={4}>\n <Text size=\"sm\" fw={500}>\n Whose permission is removed\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Search for the user, or paste their ixo1… account address.\n </Text>\n <RecipientInput value={grantee} onChange={setGrantee} isDisabled={isDisabled} />\n </Stack>\n <BaseSelect\n label=\"Which permission\"\n description=\"The kind of action the existing grant covers — must match the original grant.\"\n placeholder=\"Select the permission to revoke\"\n data={AUTHZ_MSG_TYPE_OPTIONS}\n value={msgTypeChoice}\n onChange={setMsgTypeChoice}\n disabled={isDisabled}\n searchable\n size=\"sm\"\n />\n {msgTypeChoice === AUTHZ_CUSTOM_MSG_TYPE && (\n <BaseTextInput\n label=\"Message type URL\"\n description=\"For developers: the protobuf type URL of the granted message type.\"\n placeholder=\"/ixo.entity.v1beta1.MsgUpdateEntity\"\n value={customMsgTypeUrl}\n onChange={(e) => setCustomMsgTypeUrl(e.currentTarget.value)}\n error={customMsgTypeUrl.trim() && !customMsgTypeUrl.trim().startsWith('/') ? 'Type URLs start with \"/\"' : undefined}\n disabled={isDisabled}\n size=\"sm\"\n />\n )}\n </GovernanceProposalShell>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,OAAO,YAAY;AAC5B,SAAS,kBAAkB;AASpB,IAAM,kCAAqG,CAAC,UAAU;AAC3H,QAAM,EAAE,WAAW,IAAI;AAEvB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,EAAE;AACzC,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAwB,IAAI;AACtE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,EAAE;AAE3D,QAAM,aAAa,kBAAkB,wBAAwB,iBAAiB,KAAK,IAAI,iBAAiB;AACxG,QAAM,eAAe,WAAW,SAAS,KAAK,WAAW,WAAW,GAAG;AACvE,QAAM,QAAQ,QAAQ,KAAK,EAAE,SAAS,KAAK;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAS;AAAA,MACT,cAAa;AAAA,MACb,cAAa;AAAA,MACb;AAAA,MACA,oBAAoB,OAAO,EAAE,SAAS,QAAQ,KAAK,GAAG,WAAW;AAAA;AAAA,IAEjE,oCAAC,SAAM,KAAK,KACV,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,6BAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,iEAE3B,GACA,oCAAC,kBAAe,OAAO,SAAS,UAAU,YAAY,YAAwB,CAChF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAU;AAAA,QACV,MAAK;AAAA;AAAA,IACP;AAAA,IACC,kBAAkB,yBACjB;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,oBAAoB,EAAE,cAAc,KAAK;AAAA,QAC1D,OAAO,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,KAAK,EAAE,WAAW,GAAG,IAAI,6BAA6B;AAAA,QAC1G,UAAU;AAAA,QACV,MAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AAEJ;","names":[]}
@@ -0,0 +1,83 @@
1
+ import {
2
+ GovernanceProposalShell
3
+ } from "./chunk-5IH3VC5I.js";
4
+ import "./chunk-676HDB7K.js";
5
+ import "./chunk-TR4KO3AG.js";
6
+ import {
7
+ BaseSelect
8
+ } from "./chunk-4NAFQF6V.js";
9
+ import "./chunk-FFYZXA75.js";
10
+ import "./chunk-NZ7AXA7B.js";
11
+ import "./chunk-JVROGQ7Q.js";
12
+ import "./chunk-IIIZZ4E4.js";
13
+ import "./chunk-HT6L7A5M.js";
14
+ import "./chunk-NCSGIRRQ.js";
15
+ import "./chunk-ZDNW6VQG.js";
16
+ import "./chunk-6GKJR52N.js";
17
+ import {
18
+ BaseTextInput
19
+ } from "./chunk-WO7V6ZNC.js";
20
+ import "./chunk-4DGCCXD6.js";
21
+ import "./chunk-7W7UUUIE.js";
22
+ import "./chunk-TS2LNBF2.js";
23
+
24
+ // src/mantine/blocks/action/actionTypes/governance/chainGovernanceVote/GovernanceChainVoteFlowDetail.tsx
25
+ import React, { useState } from "react";
26
+ import { Text } from "@mantine/core";
27
+ import { IconBuildingBank } from "@tabler/icons-react";
28
+ var VOTE_OPTIONS = [
29
+ { value: "1", label: "Yes" },
30
+ { value: "3", label: "No" },
31
+ { value: "4", label: "No with veto" },
32
+ { value: "2", label: "Abstain" }
33
+ ];
34
+ var GovernanceChainVoteFlowDetail = (props) => {
35
+ const { isDisabled } = props;
36
+ const [proposalId, setProposalId] = useState("");
37
+ const [vote, setVote] = useState(null);
38
+ const proposalIdValid = /^\d+$/.test(proposalId.trim());
39
+ const valid = proposalIdValid && !!vote;
40
+ return /* @__PURE__ */ React.createElement(
41
+ GovernanceProposalShell,
42
+ {
43
+ flow: props,
44
+ icon: IconBuildingBank,
45
+ headline: "Chain governance",
46
+ defaultBlurb: "Cast the POD treasury's vote on a chain governance proposal.",
47
+ successTitle: "Chain-vote proposal created",
48
+ valid,
49
+ buildRuntimeInputs: () => ({ proposalId: proposalId.trim(), vote: Number(vote) })
50
+ },
51
+ /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "This votes on a proposal made to the whole blockchain network \u2014 not a proposal inside this POD. It first creates a proposal for your POD; once the POD approves it, the POD's account casts the vote on the network proposal."),
52
+ /* @__PURE__ */ React.createElement(
53
+ BaseTextInput,
54
+ {
55
+ label: "Network proposal number",
56
+ description: "The ID of the governance proposal on the IXO blockchain (e.g. from the block explorer)",
57
+ placeholder: "e.g. 42",
58
+ value: proposalId,
59
+ onChange: (e) => setProposalId(e.currentTarget.value),
60
+ error: proposalId.trim() && !proposalIdValid ? "Enter the proposal number (digits only)" : void 0,
61
+ disabled: isDisabled,
62
+ size: "sm"
63
+ }
64
+ ),
65
+ /* @__PURE__ */ React.createElement(
66
+ BaseSelect,
67
+ {
68
+ label: "Vote option",
69
+ description: "How the POD should vote. 'No with veto' is a stronger No \u2014 it also asks for the proposal to be thrown out and its deposit burned.",
70
+ placeholder: "Select a vote",
71
+ value: vote,
72
+ onChange: setVote,
73
+ allowDeselect: false,
74
+ disabled: isDisabled,
75
+ data: VOTE_OPTIONS
76
+ }
77
+ )
78
+ );
79
+ };
80
+ export {
81
+ GovernanceChainVoteFlowDetail
82
+ };
83
+ //# sourceMappingURL=GovernanceChainVoteFlowDetail-475UDNG6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/governance/chainGovernanceVote/GovernanceChainVoteFlowDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Text } from '@mantine/core';\nimport { IconBuildingBank } from '@tabler/icons-react';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { GovernanceProposalShell } from '../_shared/GovernanceProposalShell';\nimport type { GovernanceChainVoteRuntimeInputs } from './types';\n\n// cosmos.gov vote option numbers, presented in reading order.\nconst VOTE_OPTIONS = [\n { value: '1', label: 'Yes' },\n { value: '3', label: 'No' },\n { value: '4', label: 'No with veto' },\n { value: '2', label: 'Abstain' },\n];\n\nexport const GovernanceChainVoteFlowDetail: React.FC<ActionTypeFlowProps<GovernanceChainVoteRuntimeInputs>> = (props) => {\n const { isDisabled } = props;\n\n const [proposalId, setProposalId] = useState('');\n const [vote, setVote] = useState<string | null>(null);\n\n const proposalIdValid = /^\\d+$/.test(proposalId.trim());\n const valid = proposalIdValid && !!vote;\n\n return (\n <GovernanceProposalShell\n flow={props}\n icon={IconBuildingBank}\n headline=\"Chain governance\"\n defaultBlurb=\"Cast the POD treasury's vote on a chain governance proposal.\"\n successTitle=\"Chain-vote proposal created\"\n valid={valid}\n buildRuntimeInputs={() => ({ proposalId: proposalId.trim(), vote: Number(vote) })}\n >\n <Text size=\"xs\" c=\"dimmed\">\n This votes on a proposal made to the whole blockchain network — not a proposal inside this POD. It first creates a proposal for your POD; once the POD approves it, the\n POD&apos;s account casts the vote on the network proposal.\n </Text>\n <BaseTextInput\n label=\"Network proposal number\"\n description=\"The ID of the governance proposal on the IXO blockchain (e.g. from the block explorer)\"\n placeholder=\"e.g. 42\"\n value={proposalId}\n onChange={(e) => setProposalId(e.currentTarget.value)}\n error={proposalId.trim() && !proposalIdValid ? 'Enter the proposal number (digits only)' : undefined}\n disabled={isDisabled}\n size=\"sm\"\n />\n <BaseSelect\n label=\"Vote option\"\n description=\"How the POD should vote. 'No with veto' is a stronger No — it also asks for the proposal to be thrown out and its deposit burned.\"\n placeholder=\"Select a vote\"\n value={vote}\n onChange={setVote}\n allowDeselect={false}\n disabled={isDisabled}\n data={VOTE_OPTIONS}\n />\n </GovernanceProposalShell>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,YAAY;AACrB,SAAS,wBAAwB;AAQjC,IAAM,eAAe;AAAA,EACnB,EAAE,OAAO,KAAK,OAAO,MAAM;AAAA,EAC3B,EAAE,OAAO,KAAK,OAAO,KAAK;AAAA,EAC1B,EAAE,OAAO,KAAK,OAAO,eAAe;AAAA,EACpC,EAAE,OAAO,KAAK,OAAO,UAAU;AACjC;AAEO,IAAM,gCAAiG,CAAC,UAAU;AACvH,QAAM,EAAE,WAAW,IAAI;AAEvB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,EAAE;AAC/C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAwB,IAAI;AAEpD,QAAM,kBAAkB,QAAQ,KAAK,WAAW,KAAK,CAAC;AACtD,QAAM,QAAQ,mBAAmB,CAAC,CAAC;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAS;AAAA,MACT,cAAa;AAAA,MACb,cAAa;AAAA,MACb;AAAA,MACA,oBAAoB,OAAO,EAAE,YAAY,WAAW,KAAK,GAAG,MAAM,OAAO,IAAI,EAAE;AAAA;AAAA,IAE/E,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,oOAG3B;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,cAAc,EAAE,cAAc,KAAK;AAAA,QACpD,OAAO,WAAW,KAAK,KAAK,CAAC,kBAAkB,4CAA4C;AAAA,QAC3F,UAAU;AAAA,QACV,MAAK;AAAA;AAAA,IACP;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU;AAAA,QACV,eAAe;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA;AAAA,IACR;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,30 @@
1
+ import {
2
+ BaseTextInput
3
+ } from "./chunk-WO7V6ZNC.js";
4
+ import {
5
+ parseJsonSafe
6
+ } from "./chunk-KLLMJ4U3.js";
7
+
8
+ // src/mantine/blocks/action/actionTypes/pod/governanceConfig/GovernanceConfigConfig.tsx
9
+ import React, { useCallback, useEffect, useState } from "react";
10
+ import { Stack, Text } from "@mantine/core";
11
+ var DEFAULT = { kind: "" };
12
+ var GovernanceConfigConfig = ({ inputs, onInputsChange }) => {
13
+ const [local, setLocal] = useState(() => parseJsonSafe(inputs, DEFAULT));
14
+ useEffect(() => {
15
+ setLocal(parseJsonSafe(inputs, DEFAULT));
16
+ }, [inputs]);
17
+ const update = useCallback(
18
+ (patch) => {
19
+ const updated = { ...local, ...patch };
20
+ setLocal(updated);
21
+ onInputsChange(JSON.stringify(updated));
22
+ },
23
+ [local, onInputsChange]
24
+ );
25
+ return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Blueprint Kind"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, 'The blueprint category or type string used to look up governance defaults (e.g. "finance-dao"). Leave blank to use global defaults.'), /* @__PURE__ */ React.createElement(BaseTextInput, { placeholder: "e.g. finance-dao", value: local.kind, onChange: (e) => update({ kind: e.currentTarget.value }) })));
26
+ };
27
+ export {
28
+ GovernanceConfigConfig
29
+ };
30
+ //# sourceMappingURL=GovernanceConfigConfig-V3WM4WBP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/pod/governanceConfig/GovernanceConfigConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Stack, Text } from '@mantine/core';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport type { ActionTypeConfigProps } from '../../../actionTypeUI';\nimport { parseJsonSafe } from '../types';\n\ninterface GovernanceConfigInputs {\n kind: string;\n}\n\nconst DEFAULT: GovernanceConfigInputs = { kind: '' };\n\n/**\n * @description Template-mode config for GovernanceConfig.\n * Sets the blueprint kind used to pre-populate governance defaults.\n */\nexport const GovernanceConfigConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange }) => {\n const [local, setLocal] = useState<GovernanceConfigInputs>(() => parseJsonSafe(inputs, DEFAULT));\n\n useEffect(() => {\n setLocal(parseJsonSafe(inputs, DEFAULT));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<GovernanceConfigInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(JSON.stringify(updated));\n },\n [local, onInputsChange]\n );\n\n return (\n <Stack gap=\"md\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Blueprint Kind\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n The blueprint category or type string used to look up governance defaults (e.g. &quot;finance-dao&quot;). Leave blank to use global defaults.\n </Text>\n <BaseTextInput placeholder=\"e.g. finance-dao\" value={local.kind} onChange={(e) => update({ kind: e.currentTarget.value })} />\n </Stack>\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,OAAO,YAAY;AAS5B,IAAM,UAAkC,EAAE,MAAM,GAAG;AAM5C,IAAM,yBAA0D,CAAC,EAAE,QAAQ,eAAe,MAAM;AACrG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiC,MAAM,cAAc,QAAQ,OAAO,CAAC;AAE/F,YAAU,MAAM;AACd,aAAS,cAAc,QAAQ,OAAO,CAAC;AAAA,EACzC,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAA2C;AAC1C,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,KAAK,UAAU,OAAO,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,SACE,oCAAC,SAAM,KAAI,QACT,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,gBAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,qIAE3B,GACA,oCAAC,iBAAc,aAAY,oBAAmB,OAAO,MAAM,MAAM,UAAU,CAAC,MAAM,OAAO,EAAE,MAAM,EAAE,cAAc,MAAM,CAAC,GAAG,CAC7H,CACF;AAEJ;","names":[]}
@@ -0,0 +1,267 @@
1
+ import {
2
+ DismissibleAlert
3
+ } from "./chunk-IFWKRCFF.js";
4
+ import {
5
+ actionAlertStyles
6
+ } from "./chunk-6GKJR52N.js";
7
+ import "./chunk-4DGCCXD6.js";
8
+ import "./chunk-7W7UUUIE.js";
9
+ import "./chunk-TS2LNBF2.js";
10
+ import {
11
+ DEFAULT_GOVERNANCE
12
+ } from "./chunk-KLLMJ4U3.js";
13
+
14
+ // src/mantine/blocks/action/actionTypes/pod/governanceConfig/GovernanceConfigFlowDetail.tsx
15
+ import React, { useCallback, useMemo, useState } from "react";
16
+ import { Box, Button, Group, NumberInput, Select, Stack, Text, TextInput } from "@mantine/core";
17
+ import { IconCheck, IconAlertCircle, IconArrowLeft, IconUsers, IconWriting, IconPhoto, IconCoin } from "@tabler/icons-react";
18
+ var TIME_UNITS = [
19
+ { value: "minutes", label: "minutes", seconds: 60 },
20
+ { value: "hours", label: "hours", seconds: 60 * 60 },
21
+ { value: "days", label: "days", seconds: 60 * 60 * 24 },
22
+ { value: "weeks", label: "weeks", seconds: 60 * 60 * 24 * 7 },
23
+ { value: "months", label: "months", seconds: 60 * 60 * 24 * 30 }
24
+ ];
25
+ function parseSecondsString(raw) {
26
+ const seconds = parseInt(raw ?? "", 10);
27
+ if (!Number.isFinite(seconds) || seconds <= 0) return { amount: 0, unit: "minutes" };
28
+ for (let i = TIME_UNITS.length - 1; i >= 0; i--) {
29
+ const u = TIME_UNITS[i];
30
+ if (seconds % u.seconds === 0) return { amount: seconds / u.seconds, unit: u.value };
31
+ }
32
+ return { amount: Math.max(1, Math.round(seconds / 60)), unit: "minutes" };
33
+ }
34
+ function toSecondsString(amount, unit) {
35
+ const u = TIME_UNITS.find((t) => t.value === unit);
36
+ const seconds = Math.max(0, Math.round((amount || 0) * (u?.seconds ?? 60)));
37
+ return `${seconds}s`;
38
+ }
39
+ function decimalStringToPercent(raw) {
40
+ const n = parseFloat(raw);
41
+ if (!Number.isFinite(n)) return 0;
42
+ return Math.round(n * 1e4) / 100;
43
+ }
44
+ function percentToDecimalString(percent) {
45
+ if (!Number.isFinite(percent)) return "0";
46
+ const clamped = Math.max(0, Math.min(100, percent));
47
+ return (Math.round(clamped * 100) / 1e4).toString();
48
+ }
49
+ var DurationField = ({ label, description, value, onChange, disabled }) => {
50
+ const parts = useMemo(() => parseSecondsString(value), [value]);
51
+ const unitOptions = useMemo(() => TIME_UNITS.map((u) => ({ value: u.value, label: u.label })), []);
52
+ return /* @__PURE__ */ React.createElement(Stack, { gap: 4 }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500 }, label), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, description), /* @__PURE__ */ React.createElement(Group, { gap: "xs", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React.createElement(
53
+ NumberInput,
54
+ {
55
+ value: parts.amount,
56
+ onChange: (v) => onChange(toSecondsString(typeof v === "number" ? v : parseFloat(String(v)) || 0, parts.unit)),
57
+ min: 0,
58
+ step: 1,
59
+ disabled,
60
+ size: "sm",
61
+ style: { flex: 1 },
62
+ hideControls: true
63
+ }
64
+ ), /* @__PURE__ */ React.createElement(
65
+ Select,
66
+ {
67
+ value: parts.unit,
68
+ onChange: (u) => onChange(toSecondsString(parts.amount, u || parts.unit)),
69
+ data: unitOptions,
70
+ disabled,
71
+ size: "sm",
72
+ allowDeselect: false,
73
+ style: { width: 130 }
74
+ }
75
+ )));
76
+ };
77
+ var GROUP_TYPES = [
78
+ {
79
+ type: "categorical",
80
+ title: "Member Group",
81
+ description: "You choose the members and how much voting power each one has",
82
+ icon: /* @__PURE__ */ React.createElement(IconUsers, { size: 22 })
83
+ },
84
+ {
85
+ type: "multisig",
86
+ title: "Multisig",
87
+ description: "A fixed set of members; a minimum number of them must approve each proposal",
88
+ icon: /* @__PURE__ */ React.createElement(IconWriting, { size: 22 })
89
+ },
90
+ {
91
+ type: "nftStaking",
92
+ title: "NFT Staking",
93
+ description: "Anyone who stakes an NFT from your collection gets a vote",
94
+ icon: /* @__PURE__ */ React.createElement(IconPhoto, { size: 22 })
95
+ },
96
+ {
97
+ type: "tokenStaking",
98
+ title: "Token Staking",
99
+ description: "Voting power comes from how many governance tokens someone stakes",
100
+ icon: /* @__PURE__ */ React.createElement(IconCoin, { size: 22 })
101
+ }
102
+ ];
103
+ function validateGovernance(groupType, g) {
104
+ if (!g.votingPeriod) return "Voting period is required";
105
+ if (groupType === "multisig") {
106
+ const t = parseInt(g.threshold, 10);
107
+ if (isNaN(t) || t < 1) return "Threshold must be a positive integer (minimum signers required)";
108
+ return null;
109
+ }
110
+ const quorum = parseFloat(g.quorum);
111
+ if (isNaN(quorum) || quorum <= 0 || quorum > 1) return "Quorum must be between 0% and 100%";
112
+ const threshold = parseFloat(g.threshold);
113
+ if (isNaN(threshold) || threshold <= 0 || threshold > 1) return "Threshold must be between 0% and 100%";
114
+ return null;
115
+ }
116
+ var GovernanceConfigFlowDetail = ({ block, runtime, isDisabled, executeAction }) => {
117
+ const savedGroupType = runtime.output?.groupType;
118
+ const savedGroupName = runtime.output?.groupName;
119
+ const [groupName, setGroupName] = useState(savedGroupName ?? "");
120
+ const [groupType, setGroupType] = useState(savedGroupType ?? null);
121
+ const [governance, setGovernance] = useState(() => runtime.output?.governance ?? DEFAULT_GOVERNANCE);
122
+ const [validationError, setValidationError] = useState(null);
123
+ const update = useCallback((patch) => {
124
+ setGovernance((prev) => ({ ...prev, ...patch }));
125
+ setValidationError(null);
126
+ }, []);
127
+ const handleSelectType = useCallback(
128
+ (type) => {
129
+ setGroupType(type);
130
+ setValidationError(null);
131
+ if (type === "multisig") {
132
+ setGovernance((prev) => ({ ...prev, threshold: "2" }));
133
+ } else if (governance.threshold === "2") {
134
+ setGovernance((prev) => ({ ...prev, threshold: DEFAULT_GOVERNANCE.threshold }));
135
+ }
136
+ },
137
+ [governance.threshold]
138
+ );
139
+ const handleSave = useCallback(async () => {
140
+ const trimmedName = groupName.trim();
141
+ if (!trimmedName) {
142
+ setValidationError("Group name is required");
143
+ return;
144
+ }
145
+ if (!groupType) {
146
+ setValidationError("Select a governance group type to continue");
147
+ return;
148
+ }
149
+ const err = validateGovernance(groupType, governance);
150
+ if (err) {
151
+ setValidationError(err);
152
+ return;
153
+ }
154
+ setValidationError(null);
155
+ await executeAction?.({ runtimeInputs: { groupName: trimmedName, groupType, governance } });
156
+ }, [executeAction, groupName, groupType, governance]);
157
+ const isStakingType = groupType === "nftStaking" || groupType === "tokenStaking";
158
+ return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, block?.props?.title || "Governance"), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, block?.props?.description || "Choose a governance group type, then configure the decision policy.")), /* @__PURE__ */ React.createElement(
159
+ TextInput,
160
+ {
161
+ label: "Group name",
162
+ description: "A human-readable name for this governance group",
163
+ placeholder: "e.g. Core Stewards",
164
+ value: groupName,
165
+ onChange: (e) => {
166
+ setGroupName(e.currentTarget.value);
167
+ setValidationError(null);
168
+ },
169
+ disabled: isDisabled,
170
+ size: "sm"
171
+ }
172
+ ), /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", fw: 600, c: "dimmed" }, "GOVERNANCE GROUP TYPE"), GROUP_TYPES.map((opt) => {
173
+ const isSelected = groupType === opt.type;
174
+ return /* @__PURE__ */ React.createElement(
175
+ Box,
176
+ {
177
+ key: opt.type,
178
+ onClick: () => !isDisabled && handleSelectType(opt.type),
179
+ style: {
180
+ padding: "12px 16px",
181
+ borderRadius: 10,
182
+ border: isSelected ? "2px solid var(--mantine-primary-color-filled)" : "1px solid var(--mantine-color-dark-4)",
183
+ backgroundColor: isSelected ? "var(--mantine-color-dark-6)" : "var(--mantine-color-dark-7)",
184
+ cursor: isDisabled ? "not-allowed" : "pointer",
185
+ transition: "border-color 0.15s ease, background-color 0.15s ease"
186
+ }
187
+ },
188
+ /* @__PURE__ */ React.createElement(Group, { wrap: "nowrap", gap: "md", align: "center" }, /* @__PURE__ */ React.createElement(Box, { c: isSelected ? "var(--mantine-primary-color-filled)" : "dimmed", style: { flexShrink: 0 } }, opt.icon), /* @__PURE__ */ React.createElement(Stack, { gap: 2, style: { flex: 1 } }, /* @__PURE__ */ React.createElement(Text, { fw: 500, size: "sm" }, opt.title), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, opt.description)), isSelected && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "green.4", fw: 600 }, "Selected"))
189
+ );
190
+ })), groupType && /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React.createElement(Group, { gap: "xs", align: "center" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", fw: 600, c: "dimmed" }, "DECISION POLICY"), /* @__PURE__ */ React.createElement(
191
+ Button,
192
+ {
193
+ variant: "subtle",
194
+ size: "compact-xs",
195
+ color: "gray",
196
+ leftSection: /* @__PURE__ */ React.createElement(IconArrowLeft, { size: 12 }),
197
+ onClick: () => {
198
+ setGroupType(null);
199
+ setValidationError(null);
200
+ },
201
+ disabled: isDisabled
202
+ },
203
+ "Change type"
204
+ )), /* @__PURE__ */ React.createElement(
205
+ DurationField,
206
+ {
207
+ label: "Voting period",
208
+ description: "How long a vote stays open",
209
+ value: governance.votingPeriod,
210
+ onChange: (votingPeriod) => update({ votingPeriod }),
211
+ disabled: isDisabled
212
+ }
213
+ ), groupType === "multisig" ? /* @__PURE__ */ React.createElement(
214
+ NumberInput,
215
+ {
216
+ label: "Signature threshold",
217
+ description: "Minimum number of member signatures required to pass a proposal",
218
+ value: parseInt(governance.threshold, 10) || 0,
219
+ onChange: (v) => update({ threshold: String(typeof v === "number" ? v : parseInt(String(v), 10) || 0) }),
220
+ min: 1,
221
+ step: 1,
222
+ disabled: isDisabled,
223
+ size: "sm"
224
+ }
225
+ ) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
226
+ NumberInput,
227
+ {
228
+ label: "Quorum",
229
+ description: "Percentage of voting power that must participate to make the vote valid",
230
+ value: decimalStringToPercent(governance.quorum),
231
+ onChange: (v) => update({ quorum: percentToDecimalString(typeof v === "number" ? v : parseFloat(String(v)) || 0) }),
232
+ min: 0,
233
+ max: 100,
234
+ step: 1,
235
+ suffix: "%",
236
+ disabled: isDisabled,
237
+ size: "sm"
238
+ }
239
+ ), /* @__PURE__ */ React.createElement(
240
+ NumberInput,
241
+ {
242
+ label: "Threshold",
243
+ description: "Percentage of YES votes needed to pass a proposal",
244
+ value: decimalStringToPercent(governance.threshold),
245
+ onChange: (v) => update({ threshold: percentToDecimalString(typeof v === "number" ? v : parseFloat(String(v)) || 0) }),
246
+ min: 0,
247
+ max: 100,
248
+ step: 1,
249
+ suffix: "%",
250
+ disabled: isDisabled,
251
+ size: "sm"
252
+ }
253
+ )), isStakingType && /* @__PURE__ */ React.createElement(
254
+ DurationField,
255
+ {
256
+ label: "Unstaking duration",
257
+ description: "How long tokens/NFTs are locked after un-staking",
258
+ value: governance.unstakingDuration,
259
+ onChange: (unstakingDuration) => update({ unstakingDuration }),
260
+ disabled: isDisabled
261
+ }
262
+ )), validationError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, validationError)), runtime.state === "completed" && !validationError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "green", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, GROUP_TYPES.find((g) => g.type === savedGroupType)?.title ?? "Governance", " settings confirmed.")), /* @__PURE__ */ React.createElement(Button, { onClick: handleSave, disabled: isDisabled || !groupType || !groupName.trim() }, "Confirm Governance Settings"));
263
+ };
264
+ export {
265
+ GovernanceConfigFlowDetail
266
+ };
267
+ //# sourceMappingURL=GovernanceConfigFlowDetail-SQ5PPDRX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/pod/governanceConfig/GovernanceConfigFlowDetail.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { Box, Button, Group, NumberInput, Select, Stack, Text, TextInput } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconCheck, IconAlertCircle, IconArrowLeft, IconUsers, IconWriting, IconPhoto, IconCoin } from '@tabler/icons-react';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport type { PODGovernance } from '../types';\nimport { DEFAULT_GOVERNANCE } from '../types';\nimport { actionAlertStyles } from '../../../alertStyles';\n\ntype GroupType = 'categorical' | 'multisig' | 'nftStaking' | 'tokenStaking';\n\n// ── Human-friendly input helpers ──────────────────────────────────────────────\n// PODGovernance stores durations as `\"<seconds>s\"` strings and ratios as decimal\n// strings (`\"0.33\"`). The downstream consumers (`domainSign.ts:parseDuration`,\n// the run() validator, the chain-side decision policy builder) all expect those\n// exact shapes, so the humanization here is purely UI: a number+unit pair for\n// durations and a percentage NumberInput for ratios — converted back to the\n// canonical string on every change.\n\nconst TIME_UNITS = [\n { value: 'minutes', label: 'minutes', seconds: 60 },\n { value: 'hours', label: 'hours', seconds: 60 * 60 },\n { value: 'days', label: 'days', seconds: 60 * 60 * 24 },\n { value: 'weeks', label: 'weeks', seconds: 60 * 60 * 24 * 7 },\n { value: 'months', label: 'months', seconds: 60 * 60 * 24 * 30 },\n] as const;\ntype TimeUnit = (typeof TIME_UNITS)[number]['value'];\n\nfunction parseSecondsString(raw: string): { amount: number; unit: TimeUnit } {\n const seconds = parseInt(raw ?? '', 10);\n if (!Number.isFinite(seconds) || seconds <= 0) return { amount: 0, unit: 'minutes' };\n // Pick the largest unit that divides evenly so a stored 604800s round-trips\n // back to \"1 weeks\" rather than \"7 days\" or \"10080 minutes\".\n for (let i = TIME_UNITS.length - 1; i >= 0; i--) {\n const u = TIME_UNITS[i];\n if (seconds % u.seconds === 0) return { amount: seconds / u.seconds, unit: u.value };\n }\n return { amount: Math.max(1, Math.round(seconds / 60)), unit: 'minutes' };\n}\n\nfunction toSecondsString(amount: number, unit: TimeUnit): string {\n const u = TIME_UNITS.find((t) => t.value === unit);\n const seconds = Math.max(0, Math.round((amount || 0) * (u?.seconds ?? 60)));\n return `${seconds}s`;\n}\n\nfunction decimalStringToPercent(raw: string): number {\n const n = parseFloat(raw);\n if (!Number.isFinite(n)) return 0;\n // Round to 2 decimal places of percent (basis-point precision) — enough for\n // governance configs without exposing floating-point noise like 33.00000001.\n return Math.round(n * 10000) / 100;\n}\n\nfunction percentToDecimalString(percent: number): string {\n if (!Number.isFinite(percent)) return '0';\n const clamped = Math.max(0, Math.min(100, percent));\n return (Math.round(clamped * 100) / 10000).toString();\n}\n\ninterface DurationFieldProps {\n label: string;\n description: string;\n value: string;\n onChange: (next: string) => void;\n disabled?: boolean;\n}\n\nconst DurationField: React.FC<DurationFieldProps> = ({ label, description, value, onChange, disabled }) => {\n const parts = useMemo(() => parseSecondsString(value), [value]);\n const unitOptions = useMemo(() => TIME_UNITS.map((u) => ({ value: u.value, label: u.label })), []);\n return (\n <Stack gap={4}>\n <Text size=\"sm\" fw={500}>\n {label}\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n {description}\n </Text>\n <Group gap=\"xs\" align=\"flex-start\" wrap=\"nowrap\">\n <NumberInput\n value={parts.amount}\n onChange={(v) => onChange(toSecondsString(typeof v === 'number' ? v : parseFloat(String(v)) || 0, parts.unit))}\n min={0}\n step={1}\n disabled={disabled}\n size=\"sm\"\n style={{ flex: 1 }}\n hideControls\n />\n <Select\n value={parts.unit}\n onChange={(u) => onChange(toSecondsString(parts.amount, (u as TimeUnit) || parts.unit))}\n data={unitOptions}\n disabled={disabled}\n size=\"sm\"\n allowDeselect={false}\n style={{ width: 130 }}\n />\n </Group>\n </Stack>\n );\n};\n\nconst GROUP_TYPES: Array<{\n type: GroupType;\n title: string;\n description: string;\n icon: React.ReactNode;\n}> = [\n {\n type: 'categorical',\n title: 'Member Group',\n description: 'You choose the members and how much voting power each one has',\n icon: <IconUsers size={22} />,\n },\n {\n type: 'multisig',\n title: 'Multisig',\n description: 'A fixed set of members; a minimum number of them must approve each proposal',\n icon: <IconWriting size={22} />,\n },\n {\n type: 'nftStaking',\n title: 'NFT Staking',\n description: 'Anyone who stakes an NFT from your collection gets a vote',\n icon: <IconPhoto size={22} />,\n },\n {\n type: 'tokenStaking',\n title: 'Token Staking',\n description: 'Voting power comes from how many governance tokens someone stakes',\n icon: <IconCoin size={22} />,\n },\n];\n\n/** Multisig uses an absolute threshold count, not a percentage */\nfunction validateGovernance(groupType: GroupType, g: PODGovernance): string | null {\n if (!g.votingPeriod) return 'Voting period is required';\n if (groupType === 'multisig') {\n const t = parseInt(g.threshold, 10);\n if (isNaN(t) || t < 1) return 'Threshold must be a positive integer (minimum signers required)';\n return null;\n }\n const quorum = parseFloat(g.quorum);\n if (isNaN(quorum) || quorum <= 0 || quorum > 1) return 'Quorum must be between 0% and 100%';\n const threshold = parseFloat(g.threshold);\n if (isNaN(threshold) || threshold <= 0 || threshold > 1) return 'Threshold must be between 0% and 100%';\n return null;\n}\n\n/**\n * @description Flow-mode UI for GovernanceConfig.\n *\n * Phase 1: Group type selection (categorical / multisig / nftStaking / tokenStaking).\n * Phase 2: Decision policy settings relevant to the chosen type.\n *\n * The selected groupType is carried into the Members step via the orchestrator's\n * inputsForStep(), so the member config adapts accordingly.\n *\n * @flowStep 4 — Governance\n */\nexport const GovernanceConfigFlowDetail: React.FC<ActionTypeFlowProps> = ({ block, runtime, isDisabled, executeAction }) => {\n const savedGroupType = runtime.output?.groupType as GroupType | undefined;\n const savedGroupName = runtime.output?.groupName as string | undefined;\n const [groupName, setGroupName] = useState<string>(savedGroupName ?? '');\n const [groupType, setGroupType] = useState<GroupType | null>(savedGroupType ?? null);\n const [governance, setGovernance] = useState<PODGovernance>(() => (runtime.output?.governance as PODGovernance) ?? DEFAULT_GOVERNANCE);\n const [validationError, setValidationError] = useState<string | null>(null);\n\n const update = useCallback((patch: Partial<PODGovernance>) => {\n setGovernance((prev) => ({ ...prev, ...patch }));\n setValidationError(null);\n }, []);\n\n const handleSelectType = useCallback(\n (type: GroupType) => {\n setGroupType(type);\n setValidationError(null);\n // Reset threshold to sensible defaults when switching type\n if (type === 'multisig') {\n setGovernance((prev) => ({ ...prev, threshold: '2' }));\n } else if (governance.threshold === '2') {\n setGovernance((prev) => ({ ...prev, threshold: DEFAULT_GOVERNANCE.threshold }));\n }\n },\n [governance.threshold]\n );\n\n const handleSave = useCallback(async () => {\n const trimmedName = groupName.trim();\n if (!trimmedName) {\n setValidationError('Group name is required');\n return;\n }\n if (!groupType) {\n setValidationError('Select a governance group type to continue');\n return;\n }\n const err = validateGovernance(groupType, governance);\n if (err) {\n setValidationError(err);\n return;\n }\n setValidationError(null);\n await executeAction?.({ runtimeInputs: { groupName: trimmedName, groupType, governance } });\n }, [executeAction, groupName, groupType, governance]);\n\n const isStakingType = groupType === 'nftStaking' || groupType === 'tokenStaking';\n\n return (\n <Stack gap=\"md\">\n <Stack gap={2}>\n <Text fw={600}>{block?.props?.title || 'Governance'}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {block?.props?.description || 'Choose a governance group type, then configure the decision policy.'}\n </Text>\n </Stack>\n\n <TextInput\n label=\"Group name\"\n description=\"A human-readable name for this governance group\"\n placeholder=\"e.g. Core Stewards\"\n value={groupName}\n onChange={(e) => {\n setGroupName(e.currentTarget.value);\n setValidationError(null);\n }}\n disabled={isDisabled}\n size=\"sm\"\n />\n\n {/* ── Phase 1: Group type selection ── */}\n <Stack gap=\"xs\">\n <Text size=\"xs\" fw={600} c=\"dimmed\">\n GOVERNANCE GROUP TYPE\n </Text>\n {GROUP_TYPES.map((opt) => {\n const isSelected = groupType === opt.type;\n return (\n <Box\n key={opt.type}\n onClick={() => !isDisabled && handleSelectType(opt.type)}\n style={{\n padding: '12px 16px',\n borderRadius: 10,\n border: isSelected ? '2px solid var(--mantine-primary-color-filled)' : '1px solid var(--mantine-color-dark-4)',\n backgroundColor: isSelected ? 'var(--mantine-color-dark-6)' : 'var(--mantine-color-dark-7)',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n transition: 'border-color 0.15s ease, background-color 0.15s ease',\n }}\n >\n <Group wrap=\"nowrap\" gap=\"md\" align=\"center\">\n <Box c={isSelected ? 'var(--mantine-primary-color-filled)' : 'dimmed'} style={{ flexShrink: 0 }}>\n {opt.icon}\n </Box>\n <Stack gap={2} style={{ flex: 1 }}>\n <Text fw={500} size=\"sm\">\n {opt.title}\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n {opt.description}\n </Text>\n </Stack>\n {isSelected && (\n <Text size=\"xs\" c=\"green.4\" fw={600}>\n Selected\n </Text>\n )}\n </Group>\n </Box>\n );\n })}\n </Stack>\n\n {/* ── Phase 2: Decision policy settings (shown after type selected) ── */}\n {groupType && (\n <Stack gap=\"sm\">\n <Group gap=\"xs\" align=\"center\">\n <Text size=\"xs\" fw={600} c=\"dimmed\">\n DECISION POLICY\n </Text>\n <Button\n variant=\"subtle\"\n size=\"compact-xs\"\n color=\"gray\"\n leftSection={<IconArrowLeft size={12} />}\n onClick={() => {\n setGroupType(null);\n setValidationError(null);\n }}\n disabled={isDisabled}\n >\n Change type\n </Button>\n </Group>\n\n <DurationField\n label=\"Voting period\"\n description=\"How long a vote stays open\"\n value={governance.votingPeriod}\n onChange={(votingPeriod) => update({ votingPeriod })}\n disabled={isDisabled}\n />\n\n {groupType === 'multisig' ? (\n <NumberInput\n label=\"Signature threshold\"\n description=\"Minimum number of member signatures required to pass a proposal\"\n value={parseInt(governance.threshold, 10) || 0}\n onChange={(v) => update({ threshold: String(typeof v === 'number' ? v : parseInt(String(v), 10) || 0) })}\n min={1}\n step={1}\n disabled={isDisabled}\n size=\"sm\"\n />\n ) : (\n <>\n <NumberInput\n label=\"Quorum\"\n description=\"Percentage of voting power that must participate to make the vote valid\"\n value={decimalStringToPercent(governance.quorum)}\n onChange={(v) => update({ quorum: percentToDecimalString(typeof v === 'number' ? v : parseFloat(String(v)) || 0) })}\n min={0}\n max={100}\n step={1}\n suffix=\"%\"\n disabled={isDisabled}\n size=\"sm\"\n />\n <NumberInput\n label=\"Threshold\"\n description=\"Percentage of YES votes needed to pass a proposal\"\n value={decimalStringToPercent(governance.threshold)}\n onChange={(v) => update({ threshold: percentToDecimalString(typeof v === 'number' ? v : parseFloat(String(v)) || 0) })}\n min={0}\n max={100}\n step={1}\n suffix=\"%\"\n disabled={isDisabled}\n size=\"sm\"\n />\n </>\n )}\n\n {isStakingType && (\n <DurationField\n label=\"Unstaking duration\"\n description=\"How long tokens/NFTs are locked after un-staking\"\n value={governance.unstakingDuration}\n onChange={(unstakingDuration) => update({ unstakingDuration })}\n disabled={isDisabled}\n />\n )}\n </Stack>\n )}\n\n {validationError && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n <Text size=\"sm\">{validationError}</Text>\n </Alert>\n )}\n\n {runtime.state === 'completed' && !validationError && (\n <Alert icon={<IconCheck size={16} />} color=\"green\" styles={actionAlertStyles}>\n <Text size=\"sm\">{GROUP_TYPES.find((g) => g.type === savedGroupType)?.title ?? 'Governance'} settings confirmed.</Text>\n </Alert>\n )}\n\n <Button onClick={handleSave} disabled={isDisabled || !groupType || !groupName.trim()}>\n Confirm Governance Settings\n </Button>\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,113 @@
1
+ import {
2
+ GovernanceProposalShell
3
+ } from "./chunk-5IH3VC5I.js";
4
+ import "./chunk-676HDB7K.js";
5
+ import "./chunk-TR4KO3AG.js";
6
+ import "./chunk-FFYZXA75.js";
7
+ import "./chunk-NZ7AXA7B.js";
8
+ import "./chunk-JVROGQ7Q.js";
9
+ import "./chunk-IIIZZ4E4.js";
10
+ import "./chunk-HT6L7A5M.js";
11
+ import "./chunk-NCSGIRRQ.js";
12
+ import {
13
+ BaseTextArea
14
+ } from "./chunk-ZDNW6VQG.js";
15
+ import {
16
+ DismissibleAlert
17
+ } from "./chunk-IFWKRCFF.js";
18
+ import {
19
+ actionAlertStyles
20
+ } from "./chunk-6GKJR52N.js";
21
+ import {
22
+ BaseTextInput
23
+ } from "./chunk-WO7V6ZNC.js";
24
+ import "./chunk-4DGCCXD6.js";
25
+ import "./chunk-7W7UUUIE.js";
26
+ import "./chunk-TS2LNBF2.js";
27
+
28
+ // src/mantine/blocks/action/actionTypes/governance/contractExecute/GovernanceContractExecuteFlowDetail.tsx
29
+ import React, { useState } from "react";
30
+ import { NumberInput, Text } from "@mantine/core";
31
+ import { IconAlertTriangle, IconTerminal2 } from "@tabler/icons-react";
32
+ var isValidJson = (value) => {
33
+ try {
34
+ JSON.parse(value);
35
+ return true;
36
+ } catch {
37
+ return false;
38
+ }
39
+ };
40
+ var GovernanceContractExecuteFlowDetail = (props) => {
41
+ const { isDisabled } = props;
42
+ const [address, setAddress] = useState("");
43
+ const [message, setMessage] = useState("");
44
+ const [fundsAmount, setFundsAmount] = useState("");
45
+ const messageValid = message.trim().length > 0 && isValidJson(message.trim());
46
+ const fundsAmt = typeof fundsAmount === "number" ? fundsAmount : 0;
47
+ const fundsBaseUnits = BigInt(Math.round(fundsAmt * 1e6));
48
+ const fundsValid = fundsAmount === "" || fundsAmt > 0 && fundsBaseUnits > 0n;
49
+ const valid = address.trim().length > 0 && messageValid && fundsValid;
50
+ return /* @__PURE__ */ React.createElement(
51
+ GovernanceProposalShell,
52
+ {
53
+ flow: props,
54
+ icon: IconTerminal2,
55
+ headline: "Smart contract",
56
+ defaultBlurb: "Execute a message on a smart contract as the DAO.",
57
+ successTitle: "Execute-contract proposal created",
58
+ valid,
59
+ buildRuntimeInputs: () => ({
60
+ address: address.trim(),
61
+ message: message.trim(),
62
+ // Single optional funds row: display IXO → base-unit uixo string.
63
+ funds: fundsBaseUnits > 0n ? [{ denom: "uixo", amount: fundsBaseUnits.toString() }] : []
64
+ })
65
+ },
66
+ /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertTriangle, { size: 16 }), color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Advanced block \u2014 the message must match the contract's execute schema exactly, or the proposal fails when it executes.")),
67
+ /* @__PURE__ */ React.createElement(
68
+ BaseTextInput,
69
+ {
70
+ label: "Contract address",
71
+ placeholder: "ixo1\u2026 smart contract address",
72
+ value: address,
73
+ onChange: (e) => setAddress(e.currentTarget.value),
74
+ disabled: isDisabled,
75
+ size: "sm"
76
+ }
77
+ ),
78
+ /* @__PURE__ */ React.createElement(
79
+ BaseTextArea,
80
+ {
81
+ label: "Message (JSON)",
82
+ placeholder: '{"method": {"param": "value"}}',
83
+ value: message,
84
+ onChange: (e) => setMessage(e.currentTarget.value),
85
+ error: message.trim() && !messageValid ? "Enter a valid JSON object" : void 0,
86
+ minRows: 4,
87
+ disabled: isDisabled,
88
+ size: "sm",
89
+ styles: { input: { fontFamily: "var(--mantine-font-family-monospace)" } }
90
+ }
91
+ ),
92
+ /* @__PURE__ */ React.createElement(
93
+ NumberInput,
94
+ {
95
+ label: "Attached funds (IXO, optional)",
96
+ description: "Whole IXO sent along with the message \u2014 converted to on-chain units automatically.",
97
+ placeholder: "IXO amount to send with the execute",
98
+ value: fundsAmount,
99
+ onChange: (v) => setFundsAmount(typeof v === "number" ? v : ""),
100
+ min: 0,
101
+ decimalScale: 6,
102
+ hideControls: true,
103
+ error: fundsAmount !== "" && !fundsValid ? "Enter an amount of at least 0.000001 IXO (or leave blank)" : void 0,
104
+ disabled: isDisabled,
105
+ size: "sm"
106
+ }
107
+ )
108
+ );
109
+ };
110
+ export {
111
+ GovernanceContractExecuteFlowDetail
112
+ };
113
+ //# sourceMappingURL=GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/governance/contractExecute/GovernanceContractExecuteFlowDetail.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { NumberInput, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconAlertTriangle, IconTerminal2 } from '@tabler/icons-react';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport BaseTextArea from '@/mantine/components/Base/BaseTextArea';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport { GovernanceProposalShell } from '../_shared/GovernanceProposalShell';\nimport type { GovernanceContractExecuteRuntimeInputs } from './types';\n\nconst isValidJson = (value: string): boolean => {\n try {\n JSON.parse(value);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const GovernanceContractExecuteFlowDetail: React.FC<ActionTypeFlowProps<GovernanceContractExecuteRuntimeInputs>> = (props) => {\n const { isDisabled } = props;\n\n const [address, setAddress] = useState('');\n const [message, setMessage] = useState('');\n const [fundsAmount, setFundsAmount] = useState<number | ''>('');\n\n const messageValid = message.trim().length > 0 && isValidJson(message.trim());\n const fundsAmt = typeof fundsAmount === 'number' ? fundsAmount : 0;\n // Amounts under 0.000001 IXO round to zero base units and the core rejects\n // them — gate signing on ≥ 1 base unit when funds are attached.\n const fundsBaseUnits = BigInt(Math.round(fundsAmt * 1e6));\n const fundsValid = fundsAmount === '' || (fundsAmt > 0 && fundsBaseUnits > 0n);\n const valid = address.trim().length > 0 && messageValid && fundsValid;\n\n return (\n <GovernanceProposalShell\n flow={props}\n icon={IconTerminal2}\n headline=\"Smart contract\"\n defaultBlurb=\"Execute a message on a smart contract as the DAO.\"\n successTitle=\"Execute-contract proposal created\"\n valid={valid}\n buildRuntimeInputs={() => ({\n address: address.trim(),\n message: message.trim(),\n // Single optional funds row: display IXO → base-unit uixo string.\n funds: fundsBaseUnits > 0n ? [{ denom: 'uixo', amount: fundsBaseUnits.toString() }] : [],\n })}\n >\n <Alert icon={<IconAlertTriangle size={16} />} color=\"yellow\" styles={actionAlertStyles}>\n <Text size=\"sm\">Advanced block — the message must match the contract&apos;s execute schema exactly, or the proposal fails when it executes.</Text>\n </Alert>\n <BaseTextInput\n label=\"Contract address\"\n placeholder=\"ixo1… smart contract address\"\n value={address}\n onChange={(e) => setAddress(e.currentTarget.value)}\n disabled={isDisabled}\n size=\"sm\"\n />\n <BaseTextArea\n label=\"Message (JSON)\"\n placeholder='{\"method\": {\"param\": \"value\"}}'\n value={message}\n onChange={(e) => setMessage(e.currentTarget.value)}\n error={message.trim() && !messageValid ? 'Enter a valid JSON object' : undefined}\n minRows={4}\n disabled={isDisabled}\n size=\"sm\"\n styles={{ input: { fontFamily: 'var(--mantine-font-family-monospace)' } }}\n />\n <NumberInput\n label=\"Attached funds (IXO, optional)\"\n description=\"Whole IXO sent along with the message — converted to on-chain units automatically.\"\n placeholder=\"IXO amount to send with the execute\"\n value={fundsAmount}\n onChange={(v) => setFundsAmount(typeof v === 'number' ? v : '')}\n min={0}\n decimalScale={6}\n hideControls\n error={fundsAmount !== '' && !fundsValid ? 'Enter an amount of at least 0.000001 IXO (or leave blank)' : undefined}\n disabled={isDisabled}\n size=\"sm\"\n />\n </GovernanceProposalShell>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,aAAa,YAAY;AAElC,SAAS,mBAAmB,qBAAqB;AAQjD,IAAM,cAAc,CAAC,UAA2B;AAC9C,MAAI;AACF,SAAK,MAAM,KAAK;AAChB,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,IAAM,sCAA6G,CAAC,UAAU;AACnI,QAAM,EAAE,WAAW,IAAI;AAEvB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,EAAE;AACzC,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,EAAE;AACzC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAsB,EAAE;AAE9D,QAAM,eAAe,QAAQ,KAAK,EAAE,SAAS,KAAK,YAAY,QAAQ,KAAK,CAAC;AAC5E,QAAM,WAAW,OAAO,gBAAgB,WAAW,cAAc;AAGjE,QAAM,iBAAiB,OAAO,KAAK,MAAM,WAAW,GAAG,CAAC;AACxD,QAAM,aAAa,gBAAgB,MAAO,WAAW,KAAK,iBAAiB;AAC3E,QAAM,QAAQ,QAAQ,KAAK,EAAE,SAAS,KAAK,gBAAgB;AAE3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAS;AAAA,MACT,cAAa;AAAA,MACb,cAAa;AAAA,MACb;AAAA,MACA,oBAAoB,OAAO;AAAA,QACzB,SAAS,QAAQ,KAAK;AAAA,QACtB,SAAS,QAAQ,KAAK;AAAA;AAAA,QAEtB,OAAO,iBAAiB,KAAK,CAAC,EAAE,OAAO,QAAQ,QAAQ,eAAe,SAAS,EAAE,CAAC,IAAI,CAAC;AAAA,MACzF;AAAA;AAAA,IAEA,oCAAC,oBAAM,MAAM,oCAAC,qBAAkB,MAAM,IAAI,GAAI,OAAM,UAAS,QAAQ,qBACnE,oCAAC,QAAK,MAAK,QAAK,6HAA2H,CAC7I;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,WAAW,EAAE,cAAc,KAAK;AAAA,QACjD,UAAU;AAAA,QACV,MAAK;AAAA;AAAA,IACP;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,WAAW,EAAE,cAAc,KAAK;AAAA,QACjD,OAAO,QAAQ,KAAK,KAAK,CAAC,eAAe,8BAA8B;AAAA,QACvE,SAAS;AAAA,QACT,UAAU;AAAA,QACV,MAAK;AAAA,QACL,QAAQ,EAAE,OAAO,EAAE,YAAY,uCAAuC,EAAE;AAAA;AAAA,IAC1E;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,eAAe,OAAO,MAAM,WAAW,IAAI,EAAE;AAAA,QAC9D,KAAK;AAAA,QACL,cAAc;AAAA,QACd,cAAY;AAAA,QACZ,OAAO,gBAAgB,MAAM,CAAC,aAAa,8DAA8D;AAAA,QACzG,UAAU;AAAA,QACV,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAEJ;","names":[]}