@ixo/editor 6.32.1 → 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.
- package/dist/BidConfig-YLGSEIOS.js +154 -0
- package/dist/BidConfig-YLGSEIOS.js.map +1 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js +365 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js.map +1 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
- package/dist/ClaimConfig-3HKPGK55.js +200 -0
- package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js +641 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js.map +1 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js +647 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js.map +1 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js +1276 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js.map +1 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
- package/dist/DomainSignConfig-XFIXROVK.js +47 -0
- package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js +564 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js.map +1 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js +2237 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js.map +1 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
- package/dist/HarvestConfig-AIGOGBFR.js +56 -0
- package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js +83 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js.map +1 -0
- package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
- package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js +57 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js.map +1 -0
- package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
- package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js +421 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js.map +1 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
- package/dist/MatrixDmConfig-NBII27CS.js +120 -0
- package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
- package/dist/OracleConfig-R7TDTTKN.js +56 -0
- package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js +255 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js.map +1 -0
- package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
- package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
- package/dist/OraclePromptConfig-YBRESISH.js +39 -0
- package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js +220 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js.map +1 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js +197 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js.map +1 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js +235 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js.map +1 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
- package/dist/RetireConfig-MV37WWZ6.js +59 -0
- package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
- package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
- package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
- package/dist/action-manifest.json +2091 -393
- package/dist/chunk-2GAYKKTL.js +9 -0
- package/dist/chunk-2GAYKKTL.js.map +1 -0
- package/dist/chunk-2WPEATI7.js +315 -0
- package/dist/chunk-2WPEATI7.js.map +1 -0
- package/dist/chunk-3O42FYT3.js +3333 -0
- package/dist/chunk-3O42FYT3.js.map +1 -0
- package/dist/chunk-3TUYY4HK.js +20 -0
- package/dist/chunk-3TUYY4HK.js.map +1 -0
- package/dist/chunk-3XSLBJYI.js +554 -0
- package/dist/chunk-3XSLBJYI.js.map +1 -0
- package/dist/chunk-4DGCCXD6.js +710 -0
- package/dist/chunk-4DGCCXD6.js.map +1 -0
- package/dist/chunk-4NAFQF6V.js +11 -0
- package/dist/chunk-4NAFQF6V.js.map +1 -0
- package/dist/chunk-4PONO4US.js +799 -0
- package/dist/chunk-4PONO4US.js.map +1 -0
- package/dist/chunk-4TMOIK5M.js +21 -0
- package/dist/chunk-4TMOIK5M.js.map +1 -0
- package/dist/chunk-5IH3VC5I.js +102 -0
- package/dist/chunk-5IH3VC5I.js.map +1 -0
- package/dist/chunk-5NTKDOP6.js +89 -0
- package/dist/chunk-5NTKDOP6.js.map +1 -0
- package/dist/chunk-5O2SFRGU.js +18 -0
- package/dist/chunk-5O2SFRGU.js.map +1 -0
- package/dist/chunk-632JLECF.js +55 -0
- package/dist/chunk-632JLECF.js.map +1 -0
- package/dist/chunk-676HDB7K.js +95 -0
- package/dist/chunk-676HDB7K.js.map +1 -0
- package/dist/chunk-6ESTNTSH.js +223 -0
- package/dist/chunk-6ESTNTSH.js.map +1 -0
- package/dist/chunk-6GKJR52N.js +15 -0
- package/dist/chunk-6GKJR52N.js.map +1 -0
- package/dist/chunk-6L4ZIKYU.js +23 -0
- package/dist/chunk-6L4ZIKYU.js.map +1 -0
- package/dist/chunk-76YX5R4L.js +11 -0
- package/dist/chunk-76YX5R4L.js.map +1 -0
- package/dist/chunk-7J3GFMN3.js +32 -0
- package/dist/chunk-7J3GFMN3.js.map +1 -0
- package/dist/chunk-7LSARC2G.js +102 -0
- package/dist/chunk-7LSARC2G.js.map +1 -0
- package/dist/chunk-7W7UUUIE.js +609 -0
- package/dist/chunk-7W7UUUIE.js.map +1 -0
- package/dist/chunk-7ZLW7H37.js +21 -0
- package/dist/chunk-7ZLW7H37.js.map +1 -0
- package/dist/chunk-AAZHI22G.js +18 -0
- package/dist/chunk-AAZHI22G.js.map +1 -0
- package/dist/chunk-ACNE455I.js +76 -0
- package/dist/chunk-ACNE455I.js.map +1 -0
- package/dist/chunk-BKLSSLPZ.js +27 -0
- package/dist/chunk-BKLSSLPZ.js.map +1 -0
- package/dist/chunk-BZ7UPUTY.js +417 -0
- package/dist/chunk-BZ7UPUTY.js.map +1 -0
- package/dist/chunk-CGFAICUE.js +28 -0
- package/dist/chunk-CGFAICUE.js.map +1 -0
- package/dist/chunk-CMCEWQ3C.js +19 -0
- package/dist/chunk-CMCEWQ3C.js.map +1 -0
- package/dist/chunk-CP4UV436.js +41 -0
- package/dist/chunk-CP4UV436.js.map +1 -0
- package/dist/chunk-D2CQPNQG.js +27508 -0
- package/dist/chunk-D2CQPNQG.js.map +1 -0
- package/dist/chunk-DIQRZP7Z.js +51 -0
- package/dist/chunk-DIQRZP7Z.js.map +1 -0
- package/dist/chunk-EBFFDDAS.js +13 -0
- package/dist/chunk-EBFFDDAS.js.map +1 -0
- package/dist/chunk-EGVS23DR.js +85 -0
- package/dist/chunk-EGVS23DR.js.map +1 -0
- package/dist/chunk-EKBQ7K4N.js +15 -0
- package/dist/chunk-EKBQ7K4N.js.map +1 -0
- package/dist/chunk-EKQCZRAN.js +24 -0
- package/dist/chunk-EKQCZRAN.js.map +1 -0
- package/dist/chunk-EYKZIZ5J.js +48 -0
- package/dist/chunk-EYKZIZ5J.js.map +1 -0
- package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
- package/dist/chunk-F4PTFXZH.js.map +1 -0
- package/dist/chunk-FFYZXA75.js +58 -0
- package/dist/chunk-FFYZXA75.js.map +1 -0
- package/dist/chunk-GFGDHPZ2.js +22 -0
- package/dist/chunk-GFGDHPZ2.js.map +1 -0
- package/dist/chunk-GR3CDFID.js +18 -0
- package/dist/chunk-GR3CDFID.js.map +1 -0
- package/dist/chunk-GR4SIU32.js +104 -0
- package/dist/chunk-GR4SIU32.js.map +1 -0
- package/dist/chunk-H5E46IIS.js +18 -0
- package/dist/chunk-H5E46IIS.js.map +1 -0
- package/dist/chunk-HFHVAMZL.js +22 -0
- package/dist/chunk-HFHVAMZL.js.map +1 -0
- package/dist/chunk-HRRI4BLF.js +4456 -0
- package/dist/chunk-HRRI4BLF.js.map +1 -0
- package/dist/chunk-HT6L7A5M.js +12 -0
- package/dist/chunk-HT6L7A5M.js.map +1 -0
- package/dist/chunk-I2FPFISM.js +301 -0
- package/dist/chunk-I2FPFISM.js.map +1 -0
- package/dist/chunk-IADAQJDH.js +28 -0
- package/dist/chunk-IADAQJDH.js.map +1 -0
- package/dist/chunk-IBOBCMQQ.js +99 -0
- package/dist/chunk-IBOBCMQQ.js.map +1 -0
- package/dist/chunk-IFWKRCFF.js +56 -0
- package/dist/chunk-IFWKRCFF.js.map +1 -0
- package/dist/chunk-IH4T7V4C.js +40 -0
- package/dist/chunk-IH4T7V4C.js.map +1 -0
- package/dist/chunk-IIIZZ4E4.js +1679 -0
- package/dist/chunk-IIIZZ4E4.js.map +1 -0
- package/dist/chunk-ILSFU3WD.js +83 -0
- package/dist/chunk-ILSFU3WD.js.map +1 -0
- package/dist/chunk-IX3VBV3L.js +43 -0
- package/dist/chunk-IX3VBV3L.js.map +1 -0
- package/dist/chunk-JBBFSORW.js +846 -0
- package/dist/chunk-JBBFSORW.js.map +1 -0
- package/dist/chunk-JIDTNKKL.js +1183 -0
- package/dist/chunk-JIDTNKKL.js.map +1 -0
- package/dist/chunk-JSPE6NGZ.js +22 -0
- package/dist/chunk-JSPE6NGZ.js.map +1 -0
- package/dist/chunk-JVROGQ7Q.js +150 -0
- package/dist/chunk-JVROGQ7Q.js.map +1 -0
- package/dist/chunk-K4WUMWNJ.js +32 -0
- package/dist/chunk-K4WUMWNJ.js.map +1 -0
- package/dist/chunk-K74XQ4Q5.js +11 -0
- package/dist/chunk-K74XQ4Q5.js.map +1 -0
- package/dist/chunk-KLLMJ4U3.js +22 -0
- package/dist/chunk-KLLMJ4U3.js.map +1 -0
- package/dist/chunk-LTKVCJ2E.js +27 -0
- package/dist/chunk-LTKVCJ2E.js.map +1 -0
- package/dist/chunk-M36DJTFZ.js +34 -0
- package/dist/chunk-M36DJTFZ.js.map +1 -0
- package/dist/chunk-MHM52LCJ.js +154 -0
- package/dist/chunk-MHM52LCJ.js.map +1 -0
- package/dist/chunk-MQCDMHRZ.js +59 -0
- package/dist/chunk-MQCDMHRZ.js.map +1 -0
- package/dist/chunk-N3ORMGAI.js +348 -0
- package/dist/chunk-N3ORMGAI.js.map +1 -0
- package/dist/chunk-NCSGIRRQ.js +28 -0
- package/dist/chunk-NCSGIRRQ.js.map +1 -0
- package/dist/chunk-NIXT2SBH.js +1423 -0
- package/dist/chunk-NIXT2SBH.js.map +1 -0
- package/dist/chunk-NJAII6CO.js +148 -0
- package/dist/chunk-NJAII6CO.js.map +1 -0
- package/dist/chunk-NKE4TL43.js +92 -0
- package/dist/chunk-NKE4TL43.js.map +1 -0
- package/dist/chunk-NZ7AXA7B.js +1 -0
- package/dist/chunk-NZ7AXA7B.js.map +1 -0
- package/dist/chunk-OCAYEGI2.js +26 -0
- package/dist/chunk-OCAYEGI2.js.map +1 -0
- package/dist/chunk-OMLI45ER.js +90 -0
- package/dist/chunk-OMLI45ER.js.map +1 -0
- package/dist/chunk-P7OBLJAG.js +88 -0
- package/dist/chunk-P7OBLJAG.js.map +1 -0
- package/dist/chunk-PAY3CBWL.js +2321 -0
- package/dist/chunk-PAY3CBWL.js.map +1 -0
- package/dist/chunk-PFF6VY35.js +257 -0
- package/dist/chunk-PFF6VY35.js.map +1 -0
- package/dist/chunk-PYNDJDWZ.js +1758 -0
- package/dist/chunk-PYNDJDWZ.js.map +1 -0
- package/dist/chunk-QDQ6UMMN.js +53 -0
- package/dist/chunk-QDQ6UMMN.js.map +1 -0
- package/dist/chunk-QGT3G2XG.js +24 -0
- package/dist/chunk-QGT3G2XG.js.map +1 -0
- package/dist/chunk-QZYCJ2GZ.js +55 -0
- package/dist/chunk-QZYCJ2GZ.js.map +1 -0
- package/dist/chunk-REZ7RFSA.js +124 -0
- package/dist/chunk-REZ7RFSA.js.map +1 -0
- package/dist/chunk-RRYBAE6E.js +2449 -0
- package/dist/chunk-RRYBAE6E.js.map +1 -0
- package/dist/chunk-RWUZOB62.js +34 -0
- package/dist/chunk-RWUZOB62.js.map +1 -0
- package/dist/chunk-SB5UCPZH.js +116 -0
- package/dist/chunk-SB5UCPZH.js.map +1 -0
- package/dist/chunk-SEJJ7CRI.js +99 -0
- package/dist/chunk-SEJJ7CRI.js.map +1 -0
- package/dist/chunk-SHBFGRPV.js +45 -0
- package/dist/chunk-SHBFGRPV.js.map +1 -0
- package/dist/chunk-SOFJ4GC5.js +45 -0
- package/dist/chunk-SOFJ4GC5.js.map +1 -0
- package/dist/chunk-STH2HPZK.js +44 -0
- package/dist/chunk-STH2HPZK.js.map +1 -0
- package/dist/chunk-TK3JNKME.js +28 -0
- package/dist/chunk-TK3JNKME.js.map +1 -0
- package/dist/chunk-TMONHFE3.js +46 -0
- package/dist/chunk-TMONHFE3.js.map +1 -0
- package/dist/chunk-TR4KO3AG.js +44 -0
- package/dist/chunk-TR4KO3AG.js.map +1 -0
- package/dist/chunk-TS2LNBF2.js +68 -0
- package/dist/chunk-TS2LNBF2.js.map +1 -0
- package/dist/chunk-UZUMBFPP.js +26 -0
- package/dist/chunk-UZUMBFPP.js.map +1 -0
- package/dist/chunk-VRZ5LMOW.js +176 -0
- package/dist/chunk-VRZ5LMOW.js.map +1 -0
- package/dist/chunk-WLGGY6Z6.js +75 -0
- package/dist/chunk-WLGGY6Z6.js.map +1 -0
- package/dist/chunk-WO7V6ZNC.js +11 -0
- package/dist/chunk-WO7V6ZNC.js.map +1 -0
- package/dist/chunk-WXSENSRP.js +64 -0
- package/dist/chunk-WXSENSRP.js.map +1 -0
- package/dist/chunk-XEKBZ2SA.js +19 -0
- package/dist/chunk-XEKBZ2SA.js.map +1 -0
- package/dist/chunk-XPBKU3JX.js +61 -0
- package/dist/chunk-XPBKU3JX.js.map +1 -0
- package/dist/chunk-XRYXBXWH.js +24 -0
- package/dist/chunk-XRYXBXWH.js.map +1 -0
- package/dist/chunk-XVA7QRVH.js +22 -0
- package/dist/chunk-XVA7QRVH.js.map +1 -0
- package/dist/chunk-YCTHHBSS.js +37 -0
- package/dist/chunk-YCTHHBSS.js.map +1 -0
- package/dist/chunk-YHPWD5NE.js +70 -0
- package/dist/chunk-YHPWD5NE.js.map +1 -0
- package/dist/chunk-YLNEKJQ5.js +126 -0
- package/dist/chunk-YLNEKJQ5.js.map +1 -0
- package/dist/chunk-YN4CEKCF.js +73 -0
- package/dist/chunk-YN4CEKCF.js.map +1 -0
- package/dist/chunk-YYNMESIF.js +17 -0
- package/dist/chunk-YYNMESIF.js.map +1 -0
- package/dist/chunk-Z6PRMCV6.js +1 -0
- package/dist/chunk-Z6PRMCV6.js.map +1 -0
- package/dist/chunk-ZDNW6VQG.js +11 -0
- package/dist/chunk-ZDNW6VQG.js.map +1 -0
- package/dist/chunk-ZP4D73DO.js +36 -0
- package/dist/chunk-ZP4D73DO.js.map +1 -0
- package/dist/chunk-ZUATADUV.js +26 -0
- package/dist/chunk-ZUATADUV.js.map +1 -0
- package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
- package/dist/core/index.cjs +14041 -6973
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +422 -138
- package/dist/core/index.js +425 -183
- package/dist/core/index.js.map +1 -1
- package/dist/flow-vnext/index.cjs +2842 -0
- package/dist/flow-vnext/index.cjs.map +1 -0
- package/dist/flow-vnext/index.d.ts +3 -0
- package/dist/flow-vnext/index.js +119 -0
- package/dist/flow-vnext/index.js.map +1 -0
- package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
- package/dist/index-b9xxXGFs.d.ts +1230 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +202 -37
- package/dist/index.js.map +1 -1
- package/dist/legacy-BpgIqaQ5.d.ts +14 -0
- package/dist/mantine/index.d.ts +7 -4
- package/dist/mantine/index.js +84 -30
- package/dist/mantine/index.js.map +1 -1
- package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
- package/package.json +12 -2
- package/dist/chunk-5JF23UP3.js +0 -59687
- package/dist/chunk-5JF23UP3.js.map +0 -1
- package/dist/chunk-A4CWC4AG.js +0 -374
- package/dist/chunk-A4CWC4AG.js.map +0 -1
- package/dist/chunk-NEOPTPDF.js.map +0 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseProposalCreateInputs,
|
|
3
|
+
serializeProposalCreateInputs
|
|
4
|
+
} from "./chunk-IADAQJDH.js";
|
|
5
|
+
import {
|
|
6
|
+
ActionsTab
|
|
7
|
+
} from "./chunk-PAY3CBWL.js";
|
|
8
|
+
import "./chunk-76YX5R4L.js";
|
|
9
|
+
import {
|
|
10
|
+
DataInput
|
|
11
|
+
} from "./chunk-4PONO4US.js";
|
|
12
|
+
import "./chunk-XPBKU3JX.js";
|
|
13
|
+
import "./chunk-TK3JNKME.js";
|
|
14
|
+
import {
|
|
15
|
+
BaseSelect
|
|
16
|
+
} from "./chunk-4NAFQF6V.js";
|
|
17
|
+
import "./chunk-NZ7AXA7B.js";
|
|
18
|
+
import "./chunk-F4PTFXZH.js";
|
|
19
|
+
import "./chunk-IH4T7V4C.js";
|
|
20
|
+
import "./chunk-PYNDJDWZ.js";
|
|
21
|
+
import "./chunk-NIXT2SBH.js";
|
|
22
|
+
import "./chunk-JIDTNKKL.js";
|
|
23
|
+
import "./chunk-JVROGQ7Q.js";
|
|
24
|
+
import "./chunk-IIIZZ4E4.js";
|
|
25
|
+
import "./chunk-HT6L7A5M.js";
|
|
26
|
+
import "./chunk-N3ORMGAI.js";
|
|
27
|
+
import "./chunk-NCSGIRRQ.js";
|
|
28
|
+
import "./chunk-ZDNW6VQG.js";
|
|
29
|
+
import "./chunk-EBFFDDAS.js";
|
|
30
|
+
import {
|
|
31
|
+
BaseTextInput
|
|
32
|
+
} from "./chunk-WO7V6ZNC.js";
|
|
33
|
+
import {
|
|
34
|
+
useBlocknoteHandlers
|
|
35
|
+
} from "./chunk-4DGCCXD6.js";
|
|
36
|
+
import "./chunk-7W7UUUIE.js";
|
|
37
|
+
import "./chunk-TS2LNBF2.js";
|
|
38
|
+
|
|
39
|
+
// src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateConfig.tsx
|
|
40
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
41
|
+
import { Divider, Loader, SegmentedControl, Stack, Text } from "@mantine/core";
|
|
42
|
+
var ProposalCreateConfig = ({ inputs, onInputsChange, editor, blockId }) => {
|
|
43
|
+
const handlers = useBlocknoteHandlers();
|
|
44
|
+
const [local, setLocal] = useState(() => parseProposalCreateInputs(inputs));
|
|
45
|
+
const [groups, setGroups] = useState([]);
|
|
46
|
+
const [loadingGroups, setLoadingGroups] = useState(false);
|
|
47
|
+
const [inputMode, setInputMode] = useState("select");
|
|
48
|
+
const [manualAddress, setManualAddress] = useState("");
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
setLocal(parseProposalCreateInputs(inputs));
|
|
51
|
+
}, [inputs]);
|
|
52
|
+
const update = useCallback(
|
|
53
|
+
(patch) => {
|
|
54
|
+
const updated = { ...local, ...patch };
|
|
55
|
+
setLocal(updated);
|
|
56
|
+
onInputsChange(serializeProposalCreateInputs(updated));
|
|
57
|
+
},
|
|
58
|
+
[local, onInputsChange]
|
|
59
|
+
);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (local.coreAddress) {
|
|
62
|
+
const matchesGroup = groups.some((g) => g.coreAddress === local.coreAddress);
|
|
63
|
+
if (matchesGroup) {
|
|
64
|
+
setInputMode("select");
|
|
65
|
+
} else {
|
|
66
|
+
setInputMode("manual");
|
|
67
|
+
setManualAddress(local.coreAddress);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}, [local.coreAddress, groups]);
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
const fetchGroups = async () => {
|
|
73
|
+
if (!handlers?.getDAOGroups) return;
|
|
74
|
+
setLoadingGroups(true);
|
|
75
|
+
try {
|
|
76
|
+
const daoGroups = await handlers.getDAOGroups();
|
|
77
|
+
setGroups(daoGroups);
|
|
78
|
+
} catch {
|
|
79
|
+
} finally {
|
|
80
|
+
setLoadingGroups(false);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
fetchGroups();
|
|
84
|
+
}, [handlers]);
|
|
85
|
+
const handleActionsChange = useCallback(
|
|
86
|
+
(newActions) => {
|
|
87
|
+
update({ governanceActions: JSON.stringify(newActions) });
|
|
88
|
+
},
|
|
89
|
+
[update]
|
|
90
|
+
);
|
|
91
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React.createElement(
|
|
92
|
+
SegmentedControl,
|
|
93
|
+
{
|
|
94
|
+
value: inputMode,
|
|
95
|
+
onChange: (value) => setInputMode(value),
|
|
96
|
+
data: [
|
|
97
|
+
{ label: "Select DAO", value: "select" },
|
|
98
|
+
{ label: "Manual Entry", value: "manual" }
|
|
99
|
+
],
|
|
100
|
+
fullWidth: true
|
|
101
|
+
}
|
|
102
|
+
), inputMode === "select" ? /* @__PURE__ */ React.createElement(
|
|
103
|
+
BaseSelect,
|
|
104
|
+
{
|
|
105
|
+
placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
|
|
106
|
+
value: groups.find((g) => g.coreAddress === local.coreAddress)?.id || null,
|
|
107
|
+
onChange: (value) => {
|
|
108
|
+
if (value) {
|
|
109
|
+
const selectedGroup = groups.find((g) => g.id === value);
|
|
110
|
+
if (selectedGroup) {
|
|
111
|
+
update({ coreAddress: selectedGroup.coreAddress });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
data: groups.map((group) => ({
|
|
116
|
+
value: group.id,
|
|
117
|
+
label: group.name
|
|
118
|
+
})),
|
|
119
|
+
disabled: loadingGroups,
|
|
120
|
+
rightSection: loadingGroups ? /* @__PURE__ */ React.createElement(Loader, { size: "xs" }) : void 0,
|
|
121
|
+
searchable: true
|
|
122
|
+
}
|
|
123
|
+
) : /* @__PURE__ */ React.createElement(
|
|
124
|
+
BaseTextInput,
|
|
125
|
+
{
|
|
126
|
+
placeholder: "Enter DAO core address",
|
|
127
|
+
value: manualAddress,
|
|
128
|
+
onChange: (event) => {
|
|
129
|
+
const newAddress = event.currentTarget.value;
|
|
130
|
+
setManualAddress(newAddress);
|
|
131
|
+
update({ coreAddress: newAddress });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
)), /* @__PURE__ */ React.createElement(Divider, { variant: "dashed" }), /* @__PURE__ */ React.createElement(
|
|
135
|
+
DataInput,
|
|
136
|
+
{
|
|
137
|
+
label: "Proposal Title",
|
|
138
|
+
placeholder: "Enter proposal title",
|
|
139
|
+
value: local.proposalTitle,
|
|
140
|
+
onChange: (value) => update({ proposalTitle: value }),
|
|
141
|
+
editorDocument: editor?.document || [],
|
|
142
|
+
currentBlockId: blockId,
|
|
143
|
+
required: true
|
|
144
|
+
}
|
|
145
|
+
), /* @__PURE__ */ React.createElement(
|
|
146
|
+
DataInput,
|
|
147
|
+
{
|
|
148
|
+
label: "Proposal Description",
|
|
149
|
+
placeholder: "Describe what this proposal will do",
|
|
150
|
+
value: local.proposalDescription,
|
|
151
|
+
onChange: (value) => update({ proposalDescription: value }),
|
|
152
|
+
editorDocument: editor?.document || [],
|
|
153
|
+
currentBlockId: blockId,
|
|
154
|
+
required: true
|
|
155
|
+
}
|
|
156
|
+
), /* @__PURE__ */ React.createElement(Divider, { variant: "dashed" }), /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Governance Actions"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Actions to execute on-chain if the proposal passes."), /* @__PURE__ */ React.createElement(ActionsTab, { actions: local.governanceActions, onActionsChange: handleActionsChange, isProposalCreated: false }));
|
|
157
|
+
};
|
|
158
|
+
export {
|
|
159
|
+
ProposalCreateConfig
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=ProposalCreateConfig-U5IHZNT7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Divider, Loader, SegmentedControl, Stack, Text } from '@mantine/core';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport type { ActionTypeConfigProps } from '../../actionTypeUI';\nimport { parseProposalCreateInputs, serializeProposalCreateInputs, type ProposalCreateInputs } from './types';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport type { DAOGroup } from '@/mantine/context/BlocknoteContext';\nimport { ActionsTab } from '@/mantine/blocks/proposal/flow/ActionsTab';\nimport type { ProposalAction } from '@/mantine/context/types';\n\nexport const ProposalCreateConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange, editor, blockId }) => {\n const handlers = useBlocknoteHandlers();\n const [local, setLocal] = useState<ProposalCreateInputs>(() => parseProposalCreateInputs(inputs));\n const [groups, setGroups] = useState<DAOGroup[]>([]);\n const [loadingGroups, setLoadingGroups] = useState(false);\n const [inputMode, setInputMode] = useState<'select' | 'manual'>('select');\n const [manualAddress, setManualAddress] = useState('');\n\n useEffect(() => {\n setLocal(parseProposalCreateInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<ProposalCreateInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeProposalCreateInputs(updated));\n },\n [local, onInputsChange]\n );\n\n // Initialize input mode based on existing coreAddress\n useEffect(() => {\n if (local.coreAddress) {\n const matchesGroup = groups.some((g) => g.coreAddress === local.coreAddress);\n if (matchesGroup) {\n setInputMode('select');\n } else {\n setInputMode('manual');\n setManualAddress(local.coreAddress);\n }\n }\n }, [local.coreAddress, groups]);\n\n // Fetch DAO groups on mount\n useEffect(() => {\n const fetchGroups = async () => {\n if (!handlers?.getDAOGroups) return;\n\n setLoadingGroups(true);\n try {\n const daoGroups = await handlers.getDAOGroups();\n setGroups(daoGroups);\n } catch {\n // Error handled silently\n } finally {\n setLoadingGroups(false);\n }\n };\n\n fetchGroups();\n }, [handlers]);\n\n const handleActionsChange = useCallback(\n (newActions: ProposalAction[]) => {\n update({ governanceActions: JSON.stringify(newActions) });\n },\n [update]\n );\n\n return (\n <Stack gap=\"lg\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n DAO Group\n </Text>\n <SegmentedControl\n value={inputMode}\n onChange={(value) => setInputMode(value as 'select' | 'manual')}\n data={[\n { label: 'Select DAO', value: 'select' },\n { label: 'Manual Entry', value: 'manual' },\n ]}\n fullWidth\n />\n {inputMode === 'select' ? (\n <BaseSelect\n placeholder={loadingGroups ? 'Loading groups...' : 'Select a DAO group'}\n value={groups.find((g) => g.coreAddress === local.coreAddress)?.id || null}\n onChange={(value) => {\n if (value) {\n const selectedGroup = groups.find((g) => g.id === value);\n if (selectedGroup) {\n update({ coreAddress: selectedGroup.coreAddress });\n }\n }\n }}\n data={groups.map((group) => ({\n value: group.id,\n label: group.name,\n }))}\n disabled={loadingGroups}\n rightSection={loadingGroups ? <Loader size=\"xs\" /> : undefined}\n searchable\n />\n ) : (\n <BaseTextInput\n placeholder=\"Enter DAO core address\"\n value={manualAddress}\n onChange={(event) => {\n const newAddress = event.currentTarget.value;\n setManualAddress(newAddress);\n update({ coreAddress: newAddress });\n }}\n />\n )}\n </Stack>\n\n <Divider variant=\"dashed\" />\n\n <DataInput\n label=\"Proposal Title\"\n placeholder=\"Enter proposal title\"\n value={local.proposalTitle}\n onChange={(value) => update({ proposalTitle: value })}\n editorDocument={editor?.document || []}\n currentBlockId={blockId}\n required\n />\n\n <DataInput\n label=\"Proposal Description\"\n placeholder=\"Describe what this proposal will do\"\n value={local.proposalDescription}\n onChange={(value) => update({ proposalDescription: value })}\n editorDocument={editor?.document || []}\n currentBlockId={blockId}\n required\n />\n\n <Divider variant=\"dashed\" />\n\n <Text size=\"sm\" fw={600}>\n Governance Actions\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Actions to execute on-chain if the proposal passes.\n </Text>\n\n <ActionsTab actions={local.governanceActions} onActionsChange={handleActionsChange} isProposalCreated={false} />\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useResolvedInputs
|
|
3
|
+
} from "./chunk-MQCDMHRZ.js";
|
|
4
|
+
import {
|
|
5
|
+
parseProposalCreateInputs
|
|
6
|
+
} from "./chunk-IADAQJDH.js";
|
|
7
|
+
import {
|
|
8
|
+
useSharedProposal
|
|
9
|
+
} from "./chunk-ZP4D73DO.js";
|
|
10
|
+
import {
|
|
11
|
+
ActionsTab
|
|
12
|
+
} from "./chunk-PAY3CBWL.js";
|
|
13
|
+
import "./chunk-76YX5R4L.js";
|
|
14
|
+
import "./chunk-TK3JNKME.js";
|
|
15
|
+
import "./chunk-4NAFQF6V.js";
|
|
16
|
+
import "./chunk-FFYZXA75.js";
|
|
17
|
+
import "./chunk-HRRI4BLF.js";
|
|
18
|
+
import "./chunk-F4PTFXZH.js";
|
|
19
|
+
import "./chunk-IH4T7V4C.js";
|
|
20
|
+
import "./chunk-PYNDJDWZ.js";
|
|
21
|
+
import "./chunk-NIXT2SBH.js";
|
|
22
|
+
import "./chunk-JIDTNKKL.js";
|
|
23
|
+
import "./chunk-JVROGQ7Q.js";
|
|
24
|
+
import "./chunk-IIIZZ4E4.js";
|
|
25
|
+
import {
|
|
26
|
+
warnOnce
|
|
27
|
+
} from "./chunk-HT6L7A5M.js";
|
|
28
|
+
import "./chunk-RRYBAE6E.js";
|
|
29
|
+
import "./chunk-N3ORMGAI.js";
|
|
30
|
+
import "./chunk-NCSGIRRQ.js";
|
|
31
|
+
import "./chunk-ZDNW6VQG.js";
|
|
32
|
+
import {
|
|
33
|
+
DismissibleAlert
|
|
34
|
+
} from "./chunk-IFWKRCFF.js";
|
|
35
|
+
import {
|
|
36
|
+
actionAlertStyles
|
|
37
|
+
} from "./chunk-6GKJR52N.js";
|
|
38
|
+
import "./chunk-EBFFDDAS.js";
|
|
39
|
+
import "./chunk-WO7V6ZNC.js";
|
|
40
|
+
import {
|
|
41
|
+
useBlocknoteHandlers
|
|
42
|
+
} from "./chunk-4DGCCXD6.js";
|
|
43
|
+
import "./chunk-7W7UUUIE.js";
|
|
44
|
+
import "./chunk-TS2LNBF2.js";
|
|
45
|
+
|
|
46
|
+
// src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateFlowDetail.tsx
|
|
47
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
48
|
+
import { Badge, Button, Card, Group, Loader, Stack, Text } from "@mantine/core";
|
|
49
|
+
import { IconPlus, IconPlayerPlay } from "@tabler/icons-react";
|
|
50
|
+
var CHAIN_STATUSES = ["open", "passed", "rejected", "executed", "closed", "execution_failed", "veto_timelock"];
|
|
51
|
+
var isChainStatus = (value) => CHAIN_STATUSES.includes(value);
|
|
52
|
+
var parseStatus = (value) => {
|
|
53
|
+
if (typeof value !== "string") return null;
|
|
54
|
+
return isChainStatus(value) ? value : null;
|
|
55
|
+
};
|
|
56
|
+
var statusColor = {
|
|
57
|
+
open: "#4dabf7",
|
|
58
|
+
passed: "var(--mantine-color-accent-5)",
|
|
59
|
+
rejected: "var(--mantine-color-red-5)",
|
|
60
|
+
executed: "#ffd43b",
|
|
61
|
+
closed: "var(--mantine-color-dimmed)",
|
|
62
|
+
execution_failed: "#ffa94d",
|
|
63
|
+
veto_timelock: "#9775fa"
|
|
64
|
+
};
|
|
65
|
+
var ProposalCreateFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {
|
|
66
|
+
const handlers = useBlocknoteHandlers();
|
|
67
|
+
const parsed = useMemo(() => parseProposalCreateInputs(inputs), [inputs]);
|
|
68
|
+
const { resolvedInputs } = useResolvedInputs(editor, inputs, { fields: ["coreAddress", "proposalTitle", "proposalDescription"] }, block?.id);
|
|
69
|
+
const coreAddress = resolvedInputs.coreAddress;
|
|
70
|
+
const proposalTitle = resolvedInputs.proposalTitle;
|
|
71
|
+
const proposalDescription = resolvedInputs.proposalDescription;
|
|
72
|
+
const [isCreating, setIsCreating] = useState(false);
|
|
73
|
+
const [isExecuting, setIsExecuting] = useState(false);
|
|
74
|
+
const [error, setError] = useState(null);
|
|
75
|
+
const [proposalContractAddress, setProposalContractAddress] = useState(null);
|
|
76
|
+
const proposalId = runtime.output?.proposalId || "";
|
|
77
|
+
const currentStatus = parseStatus(runtime.output?.status);
|
|
78
|
+
const isProposalCreated = !!proposalId;
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (!handlers || !coreAddress || !proposalId) {
|
|
81
|
+
setProposalContractAddress(null);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
let isCancelled = false;
|
|
85
|
+
const loadProposalContract = async () => {
|
|
86
|
+
try {
|
|
87
|
+
const { proposalContractAddress: resolvedAddress } = await handlers.getProposalContractAddress({ coreAddress });
|
|
88
|
+
if (!isCancelled) {
|
|
89
|
+
setProposalContractAddress(resolvedAddress);
|
|
90
|
+
}
|
|
91
|
+
} catch {
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
void loadProposalContract();
|
|
95
|
+
return () => {
|
|
96
|
+
isCancelled = true;
|
|
97
|
+
};
|
|
98
|
+
}, [handlers, coreAddress, proposalId]);
|
|
99
|
+
const shouldFetch = !!proposalId && !!currentStatus && !!proposalContractAddress;
|
|
100
|
+
const {
|
|
101
|
+
proposal,
|
|
102
|
+
loading: isFetching,
|
|
103
|
+
error: fetchError,
|
|
104
|
+
refetch,
|
|
105
|
+
invalidate
|
|
106
|
+
} = useSharedProposal({
|
|
107
|
+
proposalId,
|
|
108
|
+
contractAddress: proposalContractAddress || "",
|
|
109
|
+
autoFetch: shouldFetch
|
|
110
|
+
});
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
if (!proposal) return;
|
|
113
|
+
const chainStatus = proposal.proposal.status;
|
|
114
|
+
const parsedStatus = parseStatus(chainStatus);
|
|
115
|
+
if (parsedStatus && parsedStatus !== currentStatus) {
|
|
116
|
+
updateRuntime({
|
|
117
|
+
output: { ...runtime.output, status: parsedStatus }
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}, [proposal, currentStatus]);
|
|
121
|
+
let governanceActions = [];
|
|
122
|
+
try {
|
|
123
|
+
const actionsJson = parsed.governanceActions;
|
|
124
|
+
if (actionsJson) {
|
|
125
|
+
governanceActions = JSON.parse(actionsJson);
|
|
126
|
+
}
|
|
127
|
+
} catch {
|
|
128
|
+
warnOnce(`proposal-actions-parse:${block?.id}`, `[flow-config] block ${block?.id}: governance actions JSON is invalid; ignoring`);
|
|
129
|
+
}
|
|
130
|
+
const handleCreateProposal = useCallback(async () => {
|
|
131
|
+
if (isDisabled || isCreating || isProposalCreated) return;
|
|
132
|
+
if (!coreAddress) {
|
|
133
|
+
setError("DAO core address is required");
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (!proposalTitle) {
|
|
137
|
+
setError("Proposal title is required");
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (!proposalDescription) {
|
|
141
|
+
setError("Proposal description is required");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (!executeAction) {
|
|
145
|
+
setError("Shared action executor is unavailable");
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
setIsCreating(true);
|
|
149
|
+
setError(null);
|
|
150
|
+
try {
|
|
151
|
+
const outcome = await executeAction({
|
|
152
|
+
runtimeInputs: {
|
|
153
|
+
coreAddress,
|
|
154
|
+
title: proposalTitle,
|
|
155
|
+
description: proposalDescription,
|
|
156
|
+
actions: governanceActions
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
if (!outcome.success) {
|
|
160
|
+
throw new Error(outcome.error || "Proposal creation failed");
|
|
161
|
+
}
|
|
162
|
+
} catch (err) {
|
|
163
|
+
const message = err instanceof Error ? err.message : "Failed to create proposal";
|
|
164
|
+
setError(message);
|
|
165
|
+
} finally {
|
|
166
|
+
setIsCreating(false);
|
|
167
|
+
}
|
|
168
|
+
}, [coreAddress, executeAction, governanceActions, isCreating, isDisabled, isProposalCreated, proposalDescription, proposalTitle]);
|
|
169
|
+
const handleExecuteProposal = useCallback(async () => {
|
|
170
|
+
if (!handlers || !proposalContractAddress || !proposalId) return;
|
|
171
|
+
setIsExecuting(true);
|
|
172
|
+
setError(null);
|
|
173
|
+
try {
|
|
174
|
+
await handlers.executeProposal({
|
|
175
|
+
proposalId: parseInt(proposalId, 10),
|
|
176
|
+
proposalContractAddress
|
|
177
|
+
});
|
|
178
|
+
invalidate();
|
|
179
|
+
await refetch();
|
|
180
|
+
} catch (err) {
|
|
181
|
+
const message = err instanceof Error ? err.message : "Failed to execute proposal";
|
|
182
|
+
setError(message);
|
|
183
|
+
} finally {
|
|
184
|
+
setIsExecuting(false);
|
|
185
|
+
}
|
|
186
|
+
}, [handlers, proposalContractAddress, proposalId, invalidate, refetch]);
|
|
187
|
+
useEffect(() => {
|
|
188
|
+
if (currentStatus === "executed" && runtime.state !== "completed") {
|
|
189
|
+
updateRuntime({
|
|
190
|
+
state: "completed",
|
|
191
|
+
executedAt: Date.now(),
|
|
192
|
+
output: { ...runtime.output, status: "executed", ...proposalContractAddress ? { proposalContractAddress } : {} },
|
|
193
|
+
error: void 0
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}, [currentStatus, runtime.state, runtime.output, proposalContractAddress, updateRuntime]);
|
|
197
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, block?.props?.title || "Create Proposal"), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, block?.props?.description || "Create and manage an on-chain governance proposal.")), !coreAddress ? /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "yellow", styles: actionAlertStyles }, "Configure DAO core address in template mode before running this action.") : /* @__PURE__ */ React.createElement(React.Fragment, null, isProposalCreated && currentStatus && /* @__PURE__ */ React.createElement(
|
|
198
|
+
Card,
|
|
199
|
+
{
|
|
200
|
+
padding: "md",
|
|
201
|
+
radius: "md",
|
|
202
|
+
style: {
|
|
203
|
+
backgroundColor: "var(--mantine-color-neutralColor-2)",
|
|
204
|
+
border: `1px solid ${statusColor[currentStatus] || "var(--mantine-color-neutralColor-5)"}`
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
/* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Group, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500, style: { color: "var(--mantine-color-text)" } }, "Proposal #", proposalId), /* @__PURE__ */ React.createElement(Badge, { color: statusColor[currentStatus], variant: "filled", size: "sm", radius: "sm" }, currentStatus.replace(/_/g, " ").toUpperCase())), proposalTitle && /* @__PURE__ */ React.createElement(Text, { size: "sm", style: { color: "var(--mantine-color-dimmed)" } }, proposalTitle))
|
|
208
|
+
), isProposalCreated && /* @__PURE__ */ React.createElement(Card, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-green-6)" } }, /* @__PURE__ */ React.createElement(Text, { fw: 500, size: "sm", c: "green" }, "Proposal Created Successfully"), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, "Your proposal has been created and is now open for voting.")), currentStatus === "passed" && /* @__PURE__ */ React.createElement(
|
|
209
|
+
Button,
|
|
210
|
+
{
|
|
211
|
+
fullWidth: true,
|
|
212
|
+
color: "green",
|
|
213
|
+
leftSection: isExecuting ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconPlayerPlay, { size: 14 }),
|
|
214
|
+
onClick: handleExecuteProposal,
|
|
215
|
+
disabled: isExecuting,
|
|
216
|
+
loading: isExecuting
|
|
217
|
+
},
|
|
218
|
+
"Execute Proposal"
|
|
219
|
+
), /* @__PURE__ */ React.createElement(ActionsTab, { actions: parsed.governanceActions, onActionsChange: () => {
|
|
220
|
+
}, isProposalCreated }), !isProposalCreated && /* @__PURE__ */ React.createElement(
|
|
221
|
+
Button,
|
|
222
|
+
{
|
|
223
|
+
fullWidth: true,
|
|
224
|
+
leftSection: isCreating ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconPlus, { size: 14 }),
|
|
225
|
+
onClick: handleCreateProposal,
|
|
226
|
+
disabled: isDisabled || isCreating || !proposalTitle || !proposalDescription,
|
|
227
|
+
loading: isCreating
|
|
228
|
+
},
|
|
229
|
+
"Create Proposal"
|
|
230
|
+
)), isFetching && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: "xs" }), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Fetching proposal status...")), error && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, error), fetchError && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, typeof fetchError === "string" ? fetchError : "Failed to fetch proposal data"), runtime.error?.message && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, runtime.error.message));
|
|
231
|
+
};
|
|
232
|
+
export {
|
|
233
|
+
ProposalCreateFlowDetail
|
|
234
|
+
};
|
|
235
|
+
//# sourceMappingURL=ProposalCreateFlowDetail-4VZZPAWH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/proposalCreate/ProposalCreateFlowDetail.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Badge, Button, Card, Group, Loader, Stack, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconPlus, IconPlayerPlay } from '@tabler/icons-react';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport { useSharedProposal } from '@/mantine/context';\nimport { warnOnce } from '@/core/lib/flowEngine';\nimport type { ActionTypeFlowProps } from '../../actionTypeUI';\nimport { useResolvedInputs } from '../../hooks/useResolvedInputs';\nimport { parseProposalCreateInputs } from './types';\nimport { actionAlertStyles } from '../../alertStyles';\nimport { ActionsTab } from '@/mantine/blocks/proposal/flow/ActionsTab';\nimport type { ProposalAction } from '@/mantine/context/types';\n\ntype ChainProposalStatus = 'open' | 'passed' | 'rejected' | 'executed' | 'closed' | 'execution_failed' | 'veto_timelock';\n\nconst CHAIN_STATUSES: ChainProposalStatus[] = ['open', 'passed', 'rejected', 'executed', 'closed', 'execution_failed', 'veto_timelock'];\n\nconst isChainStatus = (value: string): value is ChainProposalStatus => CHAIN_STATUSES.includes(value as ChainProposalStatus);\n\nconst parseStatus = (value: unknown): ChainProposalStatus | null => {\n if (typeof value !== 'string') return null;\n return isChainStatus(value) ? value : null;\n};\n\nconst statusColor: Record<ChainProposalStatus, string> = {\n open: '#4dabf7',\n passed: 'var(--mantine-color-accent-5)',\n rejected: 'var(--mantine-color-red-5)',\n executed: '#ffd43b',\n closed: 'var(--mantine-color-dimmed)',\n execution_failed: '#ffa94d',\n veto_timelock: '#9775fa',\n};\n\nexport const ProposalCreateFlowDetail: React.FC<ActionTypeFlowProps> = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {\n const handlers = useBlocknoteHandlers();\n\n // Typed parser kept for governanceActions (defaults to '[]', not resolved).\n const parsed = useMemo(() => parseProposalCreateInputs(inputs), [inputs]);\n const { resolvedInputs } = useResolvedInputs(editor, inputs, { fields: ['coreAddress', 'proposalTitle', 'proposalDescription'] }, block?.id);\n const coreAddress = resolvedInputs.coreAddress;\n const proposalTitle = resolvedInputs.proposalTitle;\n const proposalDescription = resolvedInputs.proposalDescription;\n\n const [isCreating, setIsCreating] = useState(false);\n const [isExecuting, setIsExecuting] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [proposalContractAddress, setProposalContractAddress] = useState<string | null>(null);\n\n // Read proposal state from runtime output\n const proposalId = runtime.output?.proposalId || '';\n const currentStatus = parseStatus(runtime.output?.status);\n const isProposalCreated = !!proposalId;\n\n // Load proposal contract address when we have coreAddress + proposalId\n useEffect(() => {\n if (!handlers || !coreAddress || !proposalId) {\n setProposalContractAddress(null);\n return;\n }\n\n let isCancelled = false;\n\n const loadProposalContract = async () => {\n try {\n const { proposalContractAddress: resolvedAddress } = await handlers.getProposalContractAddress({ coreAddress });\n if (!isCancelled) {\n setProposalContractAddress(resolvedAddress);\n }\n } catch {\n // Error handled silently\n }\n };\n\n void loadProposalContract();\n\n return () => {\n isCancelled = true;\n };\n }, [handlers, coreAddress, proposalId]);\n\n // Use shared proposal state for chain polling\n const shouldFetch = !!proposalId && !!currentStatus && !!proposalContractAddress;\n const {\n proposal,\n loading: isFetching,\n error: fetchError,\n refetch,\n invalidate,\n } = useSharedProposal({\n proposalId,\n contractAddress: proposalContractAddress || '',\n autoFetch: shouldFetch,\n });\n\n // Sync chain status back to runtime output\n useEffect(() => {\n if (!proposal) return;\n\n const chainStatus = proposal.proposal.status;\n const parsedStatus = parseStatus(chainStatus);\n\n if (parsedStatus && parsedStatus !== currentStatus) {\n updateRuntime({\n output: { ...runtime.output, status: parsedStatus },\n });\n }\n }, [proposal, currentStatus]);\n\n // Parse governance actions from inputs\n let governanceActions: ProposalAction[] = [];\n try {\n const actionsJson = parsed.governanceActions;\n if (actionsJson) {\n governanceActions = JSON.parse(actionsJson);\n }\n } catch {\n warnOnce(`proposal-actions-parse:${block?.id}`, `[flow-config] block ${block?.id}: governance actions JSON is invalid; ignoring`);\n }\n\n const handleCreateProposal = useCallback(async () => {\n if (isDisabled || isCreating || isProposalCreated) return;\n if (!coreAddress) {\n setError('DAO core address is required');\n return;\n }\n if (!proposalTitle) {\n setError('Proposal title is required');\n return;\n }\n if (!proposalDescription) {\n setError('Proposal description is required');\n return;\n }\n\n if (!executeAction) {\n setError('Shared action executor is unavailable');\n return;\n }\n\n setIsCreating(true);\n setError(null);\n\n try {\n const outcome = await executeAction({\n runtimeInputs: {\n coreAddress,\n title: proposalTitle,\n description: proposalDescription,\n actions: governanceActions,\n },\n });\n\n if (!outcome.success) {\n throw new Error(outcome.error || 'Proposal creation failed');\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to create proposal';\n setError(message);\n } finally {\n setIsCreating(false);\n }\n }, [coreAddress, executeAction, governanceActions, isCreating, isDisabled, isProposalCreated, proposalDescription, proposalTitle]);\n\n const handleExecuteProposal = useCallback(async () => {\n if (!handlers || !proposalContractAddress || !proposalId) return;\n\n setIsExecuting(true);\n setError(null);\n\n try {\n await handlers.executeProposal({\n proposalId: parseInt(proposalId, 10),\n proposalContractAddress,\n });\n\n invalidate();\n await refetch();\n\n // Status will be updated via the chain polling effect\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to execute proposal';\n setError(message);\n } finally {\n setIsExecuting(false);\n }\n }, [handlers, proposalContractAddress, proposalId, invalidate, refetch]);\n\n // Mark as completed when proposal reaches a terminal state\n useEffect(() => {\n if (currentStatus === 'executed' && runtime.state !== 'completed') {\n updateRuntime({\n state: 'completed',\n executedAt: Date.now(),\n output: { ...runtime.output, status: 'executed', ...(proposalContractAddress ? { proposalContractAddress } : {}) },\n error: undefined,\n });\n }\n }, [currentStatus, runtime.state, runtime.output, proposalContractAddress, updateRuntime]);\n\n return (\n <Stack gap=\"md\">\n <Stack gap={2}>\n <Text fw={600}>{block?.props?.title || 'Create Proposal'}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {block?.props?.description || 'Create and manage an on-chain governance proposal.'}\n </Text>\n </Stack>\n\n {!coreAddress ? (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n Configure DAO core address in template mode before running this action.\n </Alert>\n ) : (\n <>\n {/* Proposal Status Card */}\n {isProposalCreated && currentStatus && (\n <Card\n padding=\"md\"\n radius=\"md\"\n style={{\n backgroundColor: 'var(--mantine-color-neutralColor-2)',\n border: `1px solid ${statusColor[currentStatus] || 'var(--mantine-color-neutralColor-5)'}`,\n }}\n >\n <Stack gap=\"xs\">\n <Group justify=\"space-between\">\n <Text size=\"sm\" fw={500} style={{ color: 'var(--mantine-color-text)' }}>\n Proposal #{proposalId}\n </Text>\n <Badge color={statusColor[currentStatus]} variant=\"filled\" size=\"sm\" radius=\"sm\">\n {currentStatus.replace(/_/g, ' ').toUpperCase()}\n </Badge>\n </Group>\n {proposalTitle && (\n <Text size=\"sm\" style={{ color: 'var(--mantine-color-dimmed)' }}>\n {proposalTitle}\n </Text>\n )}\n </Stack>\n </Card>\n )}\n\n {/* Creation success */}\n {isProposalCreated && (\n <Card padding=\"md\" radius=\"md\" withBorder style={{ borderColor: 'var(--mantine-color-green-6)' }}>\n <Text fw={500} size=\"sm\" c=\"green\">\n Proposal Created Successfully\n </Text>\n <Text size=\"sm\" c=\"dimmed\">\n Your proposal has been created and is now open for voting.\n </Text>\n </Card>\n )}\n\n {/* Execute button for passed proposals */}\n {currentStatus === 'passed' && (\n <Button\n fullWidth\n color=\"green\"\n leftSection={isExecuting ? <Loader size={14} /> : <IconPlayerPlay size={14} />}\n onClick={handleExecuteProposal}\n disabled={isExecuting}\n loading={isExecuting}\n >\n Execute Proposal\n </Button>\n )}\n\n {/* Governance Actions (read-only after creation) */}\n <ActionsTab actions={parsed.governanceActions} onActionsChange={() => {}} isProposalCreated={isProposalCreated} />\n\n {/* Create button */}\n {!isProposalCreated && (\n <Button\n fullWidth\n leftSection={isCreating ? <Loader size={14} /> : <IconPlus size={14} />}\n onClick={handleCreateProposal}\n disabled={isDisabled || isCreating || !proposalTitle || !proposalDescription}\n loading={isCreating}\n >\n Create Proposal\n </Button>\n )}\n </>\n )}\n\n {isFetching && (\n <Group gap=\"xs\">\n <Loader size=\"xs\" />\n <Text size=\"xs\" c=\"dimmed\">\n Fetching proposal status...\n </Text>\n </Group>\n )}\n\n {error && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {error}\n </Alert>\n )}\n {fetchError && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {typeof fetchError === 'string' ? fetchError : 'Failed to fetch proposal data'}\n </Alert>\n )}\n {runtime.error?.message && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {runtime.error.message}\n </Alert>\n )}\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseProposalVoteInputs,
|
|
3
|
+
serializeProposalVoteInputs
|
|
4
|
+
} from "./chunk-UZUMBFPP.js";
|
|
5
|
+
import {
|
|
6
|
+
DataInput
|
|
7
|
+
} from "./chunk-4PONO4US.js";
|
|
8
|
+
import "./chunk-XPBKU3JX.js";
|
|
9
|
+
import {
|
|
10
|
+
BaseSelect
|
|
11
|
+
} from "./chunk-4NAFQF6V.js";
|
|
12
|
+
import "./chunk-NZ7AXA7B.js";
|
|
13
|
+
import "./chunk-F4PTFXZH.js";
|
|
14
|
+
import "./chunk-IH4T7V4C.js";
|
|
15
|
+
import "./chunk-PYNDJDWZ.js";
|
|
16
|
+
import "./chunk-NIXT2SBH.js";
|
|
17
|
+
import "./chunk-JIDTNKKL.js";
|
|
18
|
+
import "./chunk-JVROGQ7Q.js";
|
|
19
|
+
import "./chunk-IIIZZ4E4.js";
|
|
20
|
+
import "./chunk-HT6L7A5M.js";
|
|
21
|
+
import "./chunk-N3ORMGAI.js";
|
|
22
|
+
import "./chunk-NCSGIRRQ.js";
|
|
23
|
+
import "./chunk-EBFFDDAS.js";
|
|
24
|
+
import {
|
|
25
|
+
BaseTextInput
|
|
26
|
+
} from "./chunk-WO7V6ZNC.js";
|
|
27
|
+
import {
|
|
28
|
+
useBlocknoteHandlers
|
|
29
|
+
} from "./chunk-4DGCCXD6.js";
|
|
30
|
+
import "./chunk-7W7UUUIE.js";
|
|
31
|
+
import "./chunk-TS2LNBF2.js";
|
|
32
|
+
|
|
33
|
+
// src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteConfig.tsx
|
|
34
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
35
|
+
import { Divider, Loader, SegmentedControl, Stack, Text } from "@mantine/core";
|
|
36
|
+
var ProposalVoteConfig = ({ inputs, onInputsChange, editor, blockId }) => {
|
|
37
|
+
const handlers = useBlocknoteHandlers();
|
|
38
|
+
const [local, setLocal] = useState(() => parseProposalVoteInputs(inputs));
|
|
39
|
+
const [groups, setGroups] = useState([]);
|
|
40
|
+
const [loadingGroups, setLoadingGroups] = useState(false);
|
|
41
|
+
const [inputMode, setInputMode] = useState("select");
|
|
42
|
+
const [manualAddress, setManualAddress] = useState("");
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
setLocal(parseProposalVoteInputs(inputs));
|
|
45
|
+
}, [inputs]);
|
|
46
|
+
const update = useCallback(
|
|
47
|
+
(patch) => {
|
|
48
|
+
const updated = { ...local, ...patch };
|
|
49
|
+
setLocal(updated);
|
|
50
|
+
onInputsChange(serializeProposalVoteInputs(updated));
|
|
51
|
+
},
|
|
52
|
+
[local, onInputsChange]
|
|
53
|
+
);
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (local.coreAddress) {
|
|
56
|
+
const matchesGroup = groups.some((g) => g.coreAddress === local.coreAddress);
|
|
57
|
+
if (matchesGroup) {
|
|
58
|
+
setInputMode("select");
|
|
59
|
+
} else {
|
|
60
|
+
setInputMode("manual");
|
|
61
|
+
setManualAddress(local.coreAddress);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}, [local.coreAddress, groups]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
const fetchGroups = async () => {
|
|
67
|
+
if (!handlers?.getDAOGroups) return;
|
|
68
|
+
setLoadingGroups(true);
|
|
69
|
+
try {
|
|
70
|
+
const daoGroups = await handlers.getDAOGroups();
|
|
71
|
+
setGroups(daoGroups);
|
|
72
|
+
} catch {
|
|
73
|
+
} finally {
|
|
74
|
+
setLoadingGroups(false);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
fetchGroups();
|
|
78
|
+
}, [handlers]);
|
|
79
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "DAO Group"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "The DAO group whose proposal to vote on. Used to resolve the proposal contract address."), /* @__PURE__ */ React.createElement(
|
|
80
|
+
SegmentedControl,
|
|
81
|
+
{
|
|
82
|
+
value: inputMode,
|
|
83
|
+
onChange: (value) => setInputMode(value),
|
|
84
|
+
data: [
|
|
85
|
+
{ label: "Select DAO", value: "select" },
|
|
86
|
+
{ label: "Manual Entry", value: "manual" }
|
|
87
|
+
],
|
|
88
|
+
fullWidth: true
|
|
89
|
+
}
|
|
90
|
+
), inputMode === "select" ? /* @__PURE__ */ React.createElement(
|
|
91
|
+
BaseSelect,
|
|
92
|
+
{
|
|
93
|
+
placeholder: loadingGroups ? "Loading groups..." : "Select a DAO group",
|
|
94
|
+
value: groups.find((g) => g.coreAddress === local.coreAddress)?.id || null,
|
|
95
|
+
onChange: (value) => {
|
|
96
|
+
if (value) {
|
|
97
|
+
const selectedGroup = groups.find((g) => g.id === value);
|
|
98
|
+
if (selectedGroup) {
|
|
99
|
+
update({ coreAddress: selectedGroup.coreAddress });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
data: groups.map((group) => ({
|
|
104
|
+
value: group.id,
|
|
105
|
+
label: group.name
|
|
106
|
+
})),
|
|
107
|
+
disabled: loadingGroups,
|
|
108
|
+
rightSection: loadingGroups ? /* @__PURE__ */ React.createElement(Loader, { size: "xs" }) : void 0,
|
|
109
|
+
searchable: true
|
|
110
|
+
}
|
|
111
|
+
) : /* @__PURE__ */ React.createElement(
|
|
112
|
+
BaseTextInput,
|
|
113
|
+
{
|
|
114
|
+
placeholder: "Enter DAO core address",
|
|
115
|
+
value: manualAddress,
|
|
116
|
+
onChange: (event) => {
|
|
117
|
+
const newAddress = event.currentTarget.value;
|
|
118
|
+
setManualAddress(newAddress);
|
|
119
|
+
update({ coreAddress: newAddress });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
)), /* @__PURE__ */ React.createElement(Divider, { variant: "dashed" }), /* @__PURE__ */ React.createElement(
|
|
123
|
+
DataInput,
|
|
124
|
+
{
|
|
125
|
+
label: "Proposal ID",
|
|
126
|
+
placeholder: "Enter proposal ID or use {{blockId.proposalId}} reference",
|
|
127
|
+
description: "The on-chain proposal ID to vote on. Can reference the output of a proposal.create action.",
|
|
128
|
+
value: local.proposalId,
|
|
129
|
+
onChange: (value) => update({ proposalId: value }),
|
|
130
|
+
editorDocument: editor?.document || [],
|
|
131
|
+
currentBlockId: blockId,
|
|
132
|
+
required: true
|
|
133
|
+
}
|
|
134
|
+
), /* @__PURE__ */ React.createElement(
|
|
135
|
+
DataInput,
|
|
136
|
+
{
|
|
137
|
+
label: "Proposal Contract Address",
|
|
138
|
+
placeholder: "Auto-resolved from DAO group, or enter manually",
|
|
139
|
+
description: "The proposal module contract address. Usually auto-resolved from the DAO core address.",
|
|
140
|
+
value: local.proposalContractAddress,
|
|
141
|
+
onChange: (value) => update({ proposalContractAddress: value }),
|
|
142
|
+
editorDocument: editor?.document || [],
|
|
143
|
+
currentBlockId: blockId
|
|
144
|
+
}
|
|
145
|
+
));
|
|
146
|
+
};
|
|
147
|
+
export {
|
|
148
|
+
ProposalVoteConfig
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=ProposalVoteConfig-MH4MU7SL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/proposalVote/ProposalVoteConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Divider, Loader, SegmentedControl, Stack, Text } from '@mantine/core';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport type { ActionTypeConfigProps } from '../../actionTypeUI';\nimport { parseProposalVoteInputs, serializeProposalVoteInputs, type ProposalVoteInputs } from './types';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport type { DAOGroup } from '@/mantine/context/BlocknoteContext';\n\nexport const ProposalVoteConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange, editor, blockId }) => {\n const handlers = useBlocknoteHandlers();\n const [local, setLocal] = useState<ProposalVoteInputs>(() => parseProposalVoteInputs(inputs));\n const [groups, setGroups] = useState<DAOGroup[]>([]);\n const [loadingGroups, setLoadingGroups] = useState(false);\n const [inputMode, setInputMode] = useState<'select' | 'manual'>('select');\n const [manualAddress, setManualAddress] = useState('');\n\n useEffect(() => {\n setLocal(parseProposalVoteInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<ProposalVoteInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeProposalVoteInputs(updated));\n },\n [local, onInputsChange]\n );\n\n // Initialize input mode based on existing coreAddress\n useEffect(() => {\n if (local.coreAddress) {\n const matchesGroup = groups.some((g) => g.coreAddress === local.coreAddress);\n if (matchesGroup) {\n setInputMode('select');\n } else {\n setInputMode('manual');\n setManualAddress(local.coreAddress);\n }\n }\n }, [local.coreAddress, groups]);\n\n // Fetch DAO groups on mount\n useEffect(() => {\n const fetchGroups = async () => {\n if (!handlers?.getDAOGroups) return;\n\n setLoadingGroups(true);\n try {\n const daoGroups = await handlers.getDAOGroups();\n setGroups(daoGroups);\n } catch {\n // Error handled silently\n } finally {\n setLoadingGroups(false);\n }\n };\n\n fetchGroups();\n }, [handlers]);\n\n return (\n <Stack gap=\"lg\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n DAO Group\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n The DAO group whose proposal to vote on. Used to resolve the proposal contract address.\n </Text>\n <SegmentedControl\n value={inputMode}\n onChange={(value) => setInputMode(value as 'select' | 'manual')}\n data={[\n { label: 'Select DAO', value: 'select' },\n { label: 'Manual Entry', value: 'manual' },\n ]}\n fullWidth\n />\n {inputMode === 'select' ? (\n <BaseSelect\n placeholder={loadingGroups ? 'Loading groups...' : 'Select a DAO group'}\n value={groups.find((g) => g.coreAddress === local.coreAddress)?.id || null}\n onChange={(value) => {\n if (value) {\n const selectedGroup = groups.find((g) => g.id === value);\n if (selectedGroup) {\n update({ coreAddress: selectedGroup.coreAddress });\n }\n }\n }}\n data={groups.map((group) => ({\n value: group.id,\n label: group.name,\n }))}\n disabled={loadingGroups}\n rightSection={loadingGroups ? <Loader size=\"xs\" /> : undefined}\n searchable\n />\n ) : (\n <BaseTextInput\n placeholder=\"Enter DAO core address\"\n value={manualAddress}\n onChange={(event) => {\n const newAddress = event.currentTarget.value;\n setManualAddress(newAddress);\n update({ coreAddress: newAddress });\n }}\n />\n )}\n </Stack>\n\n <Divider variant=\"dashed\" />\n\n <DataInput\n label=\"Proposal ID\"\n placeholder=\"Enter proposal ID or use {{blockId.proposalId}} reference\"\n description=\"The on-chain proposal ID to vote on. Can reference the output of a proposal.create action.\"\n value={local.proposalId}\n onChange={(value) => update({ proposalId: value })}\n editorDocument={editor?.document || []}\n currentBlockId={blockId}\n required\n />\n\n <DataInput\n label=\"Proposal Contract Address\"\n placeholder=\"Auto-resolved from DAO group, or enter manually\"\n description=\"The proposal module contract address. Usually auto-resolved from the DAO core address.\"\n value={local.proposalContractAddress}\n onChange={(value) => update({ proposalContractAddress: value })}\n editorDocument={editor?.document || []}\n currentBlockId={blockId}\n />\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
|