@ixo/editor 6.33.0 → 6.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-A4CWC4AG.js +0 -374
- package/dist/chunk-A4CWC4AG.js.map +0 -1
- package/dist/chunk-NEOPTPDF.js.map +0 -1
- package/dist/chunk-VRCRDKN5.js +0 -59694
- package/dist/chunk-VRCRDKN5.js.map +0 -1
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useBlocknoteContext
|
|
3
|
+
} from "./chunk-4DGCCXD6.js";
|
|
4
|
+
|
|
5
|
+
// src/mantine/blocks/action/actionTypes/governance/_shared/ProposalOverviewCard.tsx
|
|
6
|
+
import React, { useEffect, useState } from "react";
|
|
7
|
+
import { Accordion, Badge, Card, Code, Group, Loader, Progress, Stack, Text } from "@mantine/core";
|
|
8
|
+
import { IconFileDescription, IconListDetails } from "@tabler/icons-react";
|
|
9
|
+
|
|
10
|
+
// src/mantine/blocks/action/actionTypes/governance/_shared/decodeProposalMsgs.ts
|
|
11
|
+
var STARGATE_LABELS = {
|
|
12
|
+
"/cosmos.authz.v1beta1.MsgGrant": { label: "Grant authorization", summary: "Grants an account authorization to act on behalf of the group" },
|
|
13
|
+
"/cosmos.authz.v1beta1.MsgRevoke": { label: "Revoke authorization", summary: "Revokes a previously granted authorization" },
|
|
14
|
+
"/cosmos.authz.v1beta1.MsgExec": { label: "Execute authorized action", summary: "Executes messages under an authorization granted to the group" },
|
|
15
|
+
"/cosmos.gov.v1beta1.MsgVote": { label: "Chain governance vote", summary: "Casts the POD treasury\u2019s vote on a chain governance proposal" },
|
|
16
|
+
"/cosmwasm.wasm.v1.MsgInstantiateContract": { label: "Instantiate contract", summary: "Deploys a new smart contract instance" },
|
|
17
|
+
"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission": { label: "Withdraw validator commission", summary: "Withdraws accumulated validator commission" },
|
|
18
|
+
"/cosmos.staking.v1beta1.MsgCreateValidator": { label: "Create validator", summary: "Registers a new validator" },
|
|
19
|
+
"/cosmos.staking.v1beta1.MsgEditValidator": { label: "Edit validator", summary: "Updates the validator\u2019s settings" },
|
|
20
|
+
"/cosmos.slashing.v1beta1.MsgUnjail": { label: "Unjail validator", summary: "Releases the validator from jail" },
|
|
21
|
+
"/ixo.iid.v1beta1.MsgAddLinkedEntity": { label: "Join entity", summary: "Links the group as a member of another entity" },
|
|
22
|
+
"/ixo.entity.v1beta1.MsgUpdateEntityVerified": { label: "Accept to marketplace", summary: "Marks an entity as verified on the marketplace" },
|
|
23
|
+
"/ixo.entity.v1beta1.MsgCreateEntity": { label: "Create entity", summary: "Creates a new entity on-chain" }
|
|
24
|
+
};
|
|
25
|
+
function tryParseJson(value) {
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(value);
|
|
28
|
+
} catch {
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function decodeBase64Utf8(value) {
|
|
33
|
+
try {
|
|
34
|
+
if (typeof atob === "function") {
|
|
35
|
+
const bin = atob(value);
|
|
36
|
+
const bytes = Uint8Array.from(bin, (c) => c.charCodeAt(0));
|
|
37
|
+
return new TextDecoder().decode(bytes);
|
|
38
|
+
}
|
|
39
|
+
} catch {
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const nodeBuffer = globalThis.Buffer;
|
|
43
|
+
return nodeBuffer ? nodeBuffer.from(value, "base64").toString("utf8") : void 0;
|
|
44
|
+
} catch {
|
|
45
|
+
return void 0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function shortAddr(addr) {
|
|
49
|
+
const s = String(addr || "");
|
|
50
|
+
return s.length > 16 ? `${s.slice(0, 10)}\u2026${s.slice(-6)}` : s;
|
|
51
|
+
}
|
|
52
|
+
function formatCoin(coin) {
|
|
53
|
+
if (!coin) return "";
|
|
54
|
+
const amount = String(coin.amount ?? "");
|
|
55
|
+
const denom = String(coin.denom ?? "");
|
|
56
|
+
if (denom === "uixo" && /^\d+$/.test(amount)) {
|
|
57
|
+
return `${(Number(amount) / 1e6).toLocaleString()} IXO`;
|
|
58
|
+
}
|
|
59
|
+
return `${amount} ${denom}`;
|
|
60
|
+
}
|
|
61
|
+
function detailsFromObject(obj, prefix = "") {
|
|
62
|
+
return Object.entries(obj || {}).filter(([, v]) => v !== void 0 && v !== null && typeof v !== "object").map(([k, v]) => ({ label: prefix ? `${prefix} ${k}` : k, value: String(v) }));
|
|
63
|
+
}
|
|
64
|
+
function pretty(value) {
|
|
65
|
+
try {
|
|
66
|
+
return JSON.stringify(value, null, 2);
|
|
67
|
+
} catch {
|
|
68
|
+
return String(value);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function percentText(p) {
|
|
72
|
+
if (!p) return "\u2014";
|
|
73
|
+
if (p.majority) return "majority";
|
|
74
|
+
if (p.percent !== void 0) return `${Math.round(Number(p.percent) * 100)}%`;
|
|
75
|
+
return pretty(p);
|
|
76
|
+
}
|
|
77
|
+
function decodeWasmExecute(contractAddr, msg, funds, raw) {
|
|
78
|
+
const method = Object.keys(msg || {})[0] || "execute";
|
|
79
|
+
const body = msg?.[method] || {};
|
|
80
|
+
switch (method) {
|
|
81
|
+
case "update_members": {
|
|
82
|
+
const add = body.add || [];
|
|
83
|
+
const remove = body.remove || [];
|
|
84
|
+
return {
|
|
85
|
+
label: "Update members",
|
|
86
|
+
summary: `Adds ${add.length} and removes ${remove.length} member(s) of the POD`,
|
|
87
|
+
details: [
|
|
88
|
+
...add.map((m) => ({ label: "Add", value: `${m.addr} (voting power ${m.weight})` })),
|
|
89
|
+
...remove.map((addr) => ({ label: "Remove", value: String(typeof addr === "string" ? addr : addr?.addr || "") }))
|
|
90
|
+
],
|
|
91
|
+
raw
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
case "update_config": {
|
|
95
|
+
if (body.threshold || body.max_voting_period) {
|
|
96
|
+
const details = [];
|
|
97
|
+
const threshold = body.threshold || {};
|
|
98
|
+
if (threshold.threshold_quorum) {
|
|
99
|
+
details.push({ label: "Quorum", value: percentText(threshold.threshold_quorum.quorum) });
|
|
100
|
+
details.push({ label: "Pass threshold", value: percentText(threshold.threshold_quorum.threshold) });
|
|
101
|
+
} else if (threshold.absolute_percentage) {
|
|
102
|
+
details.push({ label: "Pass threshold", value: percentText(threshold.absolute_percentage.percentage) });
|
|
103
|
+
} else if (threshold.absolute_count) {
|
|
104
|
+
details.push({ label: "Pass threshold", value: `${threshold.absolute_count.threshold ?? threshold.absolute_count} vote(s)` });
|
|
105
|
+
}
|
|
106
|
+
if (body.max_voting_period?.time) {
|
|
107
|
+
details.push({ label: "Voting period", value: `${Math.round(body.max_voting_period.time / 3600)} hours` });
|
|
108
|
+
}
|
|
109
|
+
details.push({ label: "Revoting", value: body.allow_revoting ? "allowed" : "not allowed" });
|
|
110
|
+
return { label: "Update voting rules", summary: "Changes how this group\u2019s proposals are voted on", details, raw };
|
|
111
|
+
}
|
|
112
|
+
if (body.open_proposal_submission !== void 0 || body.deposit_info !== void 0) {
|
|
113
|
+
const details = [{ label: "Who can propose", value: body.open_proposal_submission ? "anyone" : "members only" }];
|
|
114
|
+
if (body.deposit_info) {
|
|
115
|
+
details.push({ label: "Proposal deposit", value: `${body.deposit_info.amount} (refund: ${body.deposit_info.refund_policy})` });
|
|
116
|
+
} else {
|
|
117
|
+
details.push({ label: "Proposal deposit", value: "none" });
|
|
118
|
+
}
|
|
119
|
+
return { label: "Update proposal submission rules", summary: "Changes who may submit proposals and the required deposit", details, raw };
|
|
120
|
+
}
|
|
121
|
+
if (body.config) {
|
|
122
|
+
return {
|
|
123
|
+
label: "Update DAO info",
|
|
124
|
+
summary: `Renames the group to \u201C${body.config.name || ""}\u201D and updates its details`,
|
|
125
|
+
details: detailsFromObject(body.config),
|
|
126
|
+
raw
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return { label: "Update configuration", summary: `Updates configuration of ${shortAddr(contractAddr)}`, details: detailsFromObject(body), raw };
|
|
130
|
+
}
|
|
131
|
+
case "update_cw20_list":
|
|
132
|
+
return {
|
|
133
|
+
label: "Manage token list",
|
|
134
|
+
summary: "Changes which cw20 tokens the POD treasury tracks",
|
|
135
|
+
details: [
|
|
136
|
+
...(body.to_add || []).map((a) => ({ label: "Track token", value: a })),
|
|
137
|
+
...(body.to_remove || []).map((a) => ({ label: "Untrack token", value: a }))
|
|
138
|
+
],
|
|
139
|
+
raw
|
|
140
|
+
};
|
|
141
|
+
case "update_cw721_list":
|
|
142
|
+
return {
|
|
143
|
+
label: "Manage NFT collection list",
|
|
144
|
+
summary: "Changes which NFT collections the POD treasury tracks",
|
|
145
|
+
details: [
|
|
146
|
+
...(body.to_add || []).map((a) => ({ label: "Track collection", value: a })),
|
|
147
|
+
...(body.to_remove || []).map((a) => ({ label: "Untrack collection", value: a }))
|
|
148
|
+
],
|
|
149
|
+
raw
|
|
150
|
+
};
|
|
151
|
+
case "update_sub_daos":
|
|
152
|
+
return {
|
|
153
|
+
label: "Manage SubDAOs",
|
|
154
|
+
summary: `Adds ${(body.to_add || []).length} and removes ${(body.to_remove || []).length} SubDAO(s)`,
|
|
155
|
+
details: [
|
|
156
|
+
...(body.to_add || []).map((s) => ({ label: "Add SubDAO", value: String(s?.addr || s) })),
|
|
157
|
+
...(body.to_remove || []).map((s) => ({ label: "Remove SubDAO", value: String(s?.addr || s) }))
|
|
158
|
+
],
|
|
159
|
+
raw
|
|
160
|
+
};
|
|
161
|
+
case "set_item":
|
|
162
|
+
return { label: "Set storage item", summary: `Sets \u201C${body.key}\u201D in the DAO\u2019s storage`, details: [{ label: body.key, value: String(body.value) }], raw };
|
|
163
|
+
case "remove_item":
|
|
164
|
+
return { label: "Remove storage item", summary: `Removes \u201C${body.key}\u201D from the DAO\u2019s storage`, details: [{ label: "Key", value: String(body.key) }], raw };
|
|
165
|
+
case "execute_admin_msgs":
|
|
166
|
+
return {
|
|
167
|
+
label: "Admin execute",
|
|
168
|
+
summary: `Executes ${(body.msgs || []).length} message(s) on a SubDAO as its admin`,
|
|
169
|
+
details: [{ label: "Target", value: shortAddr(contractAddr) }],
|
|
170
|
+
raw
|
|
171
|
+
};
|
|
172
|
+
case "mint":
|
|
173
|
+
return {
|
|
174
|
+
label: "Mint tokens",
|
|
175
|
+
summary: `Mints ${body.amount} tokens to ${shortAddr(body.recipient)}`,
|
|
176
|
+
details: [
|
|
177
|
+
{ label: "Recipient", value: String(body.recipient || "") },
|
|
178
|
+
{ label: "Amount", value: String(body.amount || "") }
|
|
179
|
+
],
|
|
180
|
+
raw
|
|
181
|
+
};
|
|
182
|
+
case "burn":
|
|
183
|
+
return { label: "Burn NFT", summary: `Burns NFT #${body.token_id} from ${shortAddr(contractAddr)}`, details: [{ label: "Token ID", value: String(body.token_id) }], raw };
|
|
184
|
+
case "transfer_nft":
|
|
185
|
+
return {
|
|
186
|
+
label: "Transfer NFT",
|
|
187
|
+
summary: `Transfers NFT #${body.token_id} to ${shortAddr(body.recipient)}`,
|
|
188
|
+
details: [
|
|
189
|
+
{ label: "Token ID", value: String(body.token_id) },
|
|
190
|
+
{ label: "Recipient", value: String(body.recipient || "") }
|
|
191
|
+
],
|
|
192
|
+
raw
|
|
193
|
+
};
|
|
194
|
+
case "send_nft":
|
|
195
|
+
return {
|
|
196
|
+
label: "Send NFT to contract",
|
|
197
|
+
summary: `Sends NFT #${body.token_id} to contract ${shortAddr(body.contract)} with an execute message`,
|
|
198
|
+
details: [
|
|
199
|
+
{ label: "Token ID", value: String(body.token_id) },
|
|
200
|
+
{ label: "Contract", value: String(body.contract || "") }
|
|
201
|
+
],
|
|
202
|
+
raw
|
|
203
|
+
};
|
|
204
|
+
case "transfer":
|
|
205
|
+
return {
|
|
206
|
+
label: "Send POD tokens",
|
|
207
|
+
summary: `Transfers ${body.amount} tokens from ${shortAddr(contractAddr)} to ${shortAddr(body.recipient)}`,
|
|
208
|
+
details: [
|
|
209
|
+
{ label: "Token contract", value: contractAddr },
|
|
210
|
+
{ label: "Recipient", value: String(body.recipient || "") },
|
|
211
|
+
{ label: "Amount", value: String(body.amount || "") }
|
|
212
|
+
],
|
|
213
|
+
raw
|
|
214
|
+
};
|
|
215
|
+
case "send": {
|
|
216
|
+
const inner = body.msg ? tryParseJson(decodeBase64Utf8(String(body.msg)) || "") : void 0;
|
|
217
|
+
const innerKey = inner ? Object.keys(inner)[0] : "";
|
|
218
|
+
if (innerKey === "stake") {
|
|
219
|
+
return {
|
|
220
|
+
label: "Stake to POD",
|
|
221
|
+
summary: `Stakes ${body.amount} tokens to ${shortAddr(body.contract)}`,
|
|
222
|
+
details: [
|
|
223
|
+
{ label: "Amount", value: String(body.amount || "") },
|
|
224
|
+
{ label: "Staking contract", value: String(body.contract || "") }
|
|
225
|
+
],
|
|
226
|
+
raw
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
label: "Send tokens to contract",
|
|
231
|
+
summary: `Sends ${body.amount} cw20 tokens to ${shortAddr(body.contract)}${innerKey ? ` (${innerKey})` : ""}`,
|
|
232
|
+
details: [
|
|
233
|
+
{ label: "Amount", value: String(body.amount || "") },
|
|
234
|
+
{ label: "Contract", value: String(body.contract || "") }
|
|
235
|
+
],
|
|
236
|
+
raw
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
case "withdraw":
|
|
240
|
+
return {
|
|
241
|
+
label: "Withdraw token swap",
|
|
242
|
+
summary: `Withdraws the group\u2019s side of token swap ${shortAddr(contractAddr)}`,
|
|
243
|
+
details: [{ label: "Swap contract", value: contractAddr }],
|
|
244
|
+
raw
|
|
245
|
+
};
|
|
246
|
+
case "fund":
|
|
247
|
+
return {
|
|
248
|
+
label: "Fund token swap",
|
|
249
|
+
summary: `Funds token swap ${shortAddr(contractAddr)}${funds?.length ? ` with ${funds.map(formatCoin).join(", ")}` : ""}`,
|
|
250
|
+
details: [{ label: "Swap contract", value: contractAddr }, ...(funds || []).map((c) => ({ label: "Funds", value: formatCoin(c) }))],
|
|
251
|
+
raw
|
|
252
|
+
};
|
|
253
|
+
default:
|
|
254
|
+
return {
|
|
255
|
+
label: "Execute contract",
|
|
256
|
+
summary: `Calls \u201C${method}\u201D on contract ${shortAddr(contractAddr)}`,
|
|
257
|
+
details: [{ label: "Contract", value: contractAddr }, ...detailsFromObject(body)],
|
|
258
|
+
raw
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
function decodeProposalMsg(msg) {
|
|
263
|
+
const raw = pretty(msg);
|
|
264
|
+
try {
|
|
265
|
+
if (msg?.bank?.send) {
|
|
266
|
+
const send = msg.bank.send;
|
|
267
|
+
const amounts = (send.amount || []).map(formatCoin).join(", ");
|
|
268
|
+
return {
|
|
269
|
+
label: "Send funds",
|
|
270
|
+
summary: `Sends ${amounts} from the treasury to ${shortAddr(send.to_address)}`,
|
|
271
|
+
details: [
|
|
272
|
+
{ label: "Recipient", value: String(send.to_address || "") },
|
|
273
|
+
{ label: "Amount", value: amounts }
|
|
274
|
+
],
|
|
275
|
+
raw
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
if (msg?.staking) {
|
|
279
|
+
const op = Object.keys(msg.staking)[0];
|
|
280
|
+
const body = msg.staking[op] || {};
|
|
281
|
+
const labels = { delegate: "Stake", undelegate: "Unstake", redelegate: "Restake" };
|
|
282
|
+
return {
|
|
283
|
+
label: labels[op] || `Staking: ${op}`,
|
|
284
|
+
summary: op === "redelegate" ? `Moves ${formatCoin(body.amount)} from ${shortAddr(body.src_validator)} to ${shortAddr(body.dst_validator)}` : `${labels[op] || op}s ${formatCoin(body.amount)} with validator ${shortAddr(body.validator)}`,
|
|
285
|
+
details: detailsFromObject(body),
|
|
286
|
+
raw
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
if (msg?.distribution?.withdraw_delegator_reward) {
|
|
290
|
+
const v = msg.distribution.withdraw_delegator_reward.validator;
|
|
291
|
+
return {
|
|
292
|
+
label: "Claim staking rewards",
|
|
293
|
+
summary: `Withdraws staking rewards from validator ${shortAddr(v)}`,
|
|
294
|
+
details: [{ label: "Validator", value: String(v || "") }],
|
|
295
|
+
raw
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
if (msg?.wasm?.execute) {
|
|
299
|
+
const exec = msg.wasm.execute;
|
|
300
|
+
const decodedInner = typeof exec.msg === "string" ? tryParseJson(decodeBase64Utf8(exec.msg) || "") : exec.msg;
|
|
301
|
+
const rawWithInner = decodedInner ? pretty({ wasm: { execute: { ...exec, msg: decodedInner } } }) : raw;
|
|
302
|
+
if (decodedInner) return decodeWasmExecute(String(exec.contract_addr || ""), decodedInner, exec.funds || [], rawWithInner);
|
|
303
|
+
return { label: "Execute contract", summary: `Executes a message on ${shortAddr(exec.contract_addr)}`, details: [], raw };
|
|
304
|
+
}
|
|
305
|
+
if (msg?.wasm?.migrate) {
|
|
306
|
+
const m = msg.wasm.migrate;
|
|
307
|
+
return {
|
|
308
|
+
label: "Migrate contract",
|
|
309
|
+
summary: `Migrates ${shortAddr(m.contract_addr)} to code ${m.new_code_id}`,
|
|
310
|
+
details: [
|
|
311
|
+
{ label: "Contract", value: String(m.contract_addr || "") },
|
|
312
|
+
{ label: "New code ID", value: String(m.new_code_id ?? "") }
|
|
313
|
+
],
|
|
314
|
+
raw
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
if (msg?.wasm?.update_admin) {
|
|
318
|
+
const u = msg.wasm.update_admin;
|
|
319
|
+
return {
|
|
320
|
+
label: "Update contract admin",
|
|
321
|
+
summary: `Sets the admin of ${shortAddr(u.contract_addr)} to ${shortAddr(u.admin)}`,
|
|
322
|
+
details: [
|
|
323
|
+
{ label: "Contract", value: String(u.contract_addr || "") },
|
|
324
|
+
{ label: "New admin", value: String(u.admin || "") }
|
|
325
|
+
],
|
|
326
|
+
raw
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
if (msg?.stargate) {
|
|
330
|
+
const typeUrl = String(msg.stargate.type_url || msg.stargate.typeUrl || "");
|
|
331
|
+
const known = STARGATE_LABELS[typeUrl];
|
|
332
|
+
return {
|
|
333
|
+
label: known?.label || "Chain message",
|
|
334
|
+
summary: known?.summary || `Executes ${typeUrl}`,
|
|
335
|
+
details: [{ label: "Message type", value: typeUrl }],
|
|
336
|
+
raw
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
} catch {
|
|
340
|
+
}
|
|
341
|
+
return { label: "Custom message", summary: "Executes a custom on-chain message", details: [], raw };
|
|
342
|
+
}
|
|
343
|
+
function decodeProposalMsgs(msgs) {
|
|
344
|
+
return (msgs || []).map(decodeProposalMsg);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// src/mantine/blocks/action/actionTypes/governance/_shared/ProposalOverviewCard.tsx
|
|
348
|
+
var STATUS_COLORS = {
|
|
349
|
+
open: "blue",
|
|
350
|
+
passed: "green",
|
|
351
|
+
executed: "green",
|
|
352
|
+
rejected: "red",
|
|
353
|
+
closed: "gray",
|
|
354
|
+
execution_failed: "red"
|
|
355
|
+
};
|
|
356
|
+
function expirationText(expiration) {
|
|
357
|
+
if (!expiration || typeof expiration !== "object") return null;
|
|
358
|
+
if ("at_time" in expiration && expiration.at_time) {
|
|
359
|
+
const ms = Number(BigInt(String(expiration.at_time)) / 1000000n);
|
|
360
|
+
if (Number.isFinite(ms) && ms > 0) {
|
|
361
|
+
const date = new Date(ms);
|
|
362
|
+
return `Voting ends ${date.toLocaleString()}`;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
if ("at_height" in expiration && expiration.at_height) {
|
|
366
|
+
return `Voting ends at block ${expiration.at_height}`;
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
var ProposalOverviewCard = ({ proposalContractAddress, proposalId }) => {
|
|
371
|
+
const { fetchSharedProposal } = useBlocknoteContext();
|
|
372
|
+
const [proposal, setProposal] = useState(null);
|
|
373
|
+
const [loading, setLoading] = useState(false);
|
|
374
|
+
const [error, setError] = useState(null);
|
|
375
|
+
useEffect(() => {
|
|
376
|
+
if (!proposalContractAddress || !proposalId || !fetchSharedProposal) return;
|
|
377
|
+
let cancelled = false;
|
|
378
|
+
const load = async () => {
|
|
379
|
+
setLoading(true);
|
|
380
|
+
setError(null);
|
|
381
|
+
try {
|
|
382
|
+
const res = await fetchSharedProposal(proposalId, proposalContractAddress);
|
|
383
|
+
if (!cancelled) setProposal(res);
|
|
384
|
+
} catch (err) {
|
|
385
|
+
if (!cancelled) setError(err instanceof Error ? err.message : "Failed to load the proposal");
|
|
386
|
+
} finally {
|
|
387
|
+
if (!cancelled) setLoading(false);
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
void load();
|
|
391
|
+
return () => {
|
|
392
|
+
cancelled = true;
|
|
393
|
+
};
|
|
394
|
+
}, [proposalContractAddress, proposalId, fetchSharedProposal]);
|
|
395
|
+
if (!proposalContractAddress || !proposalId) return null;
|
|
396
|
+
if (loading && !proposal) {
|
|
397
|
+
return /* @__PURE__ */ React.createElement(Group, { gap: "xs", c: "dimmed" }, /* @__PURE__ */ React.createElement(Loader, { size: "xs" }), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Loading proposal details\u2026"));
|
|
398
|
+
}
|
|
399
|
+
if (error && !proposal) {
|
|
400
|
+
return /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, "Proposal details could not be loaded: ", error);
|
|
401
|
+
}
|
|
402
|
+
if (!proposal?.proposal) return null;
|
|
403
|
+
const { title, description, status, msgs, votes, total_power: totalPower, expiration } = proposal.proposal;
|
|
404
|
+
const decoded = decodeProposalMsgs(msgs || []);
|
|
405
|
+
const yes = Number(votes?.yes || 0);
|
|
406
|
+
const no = Number(votes?.no || 0);
|
|
407
|
+
const abstain = Number(votes?.abstain || 0);
|
|
408
|
+
const power = Number(totalPower || 0);
|
|
409
|
+
const pct = (n) => power > 0 ? Math.round(n / power * 100) : 0;
|
|
410
|
+
const endsText = expirationText(expiration);
|
|
411
|
+
return /* @__PURE__ */ React.createElement(Card, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-default-border)" } }, /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React.createElement(Group, { justify: "space-between", align: "flex-start", wrap: "nowrap" }, /* @__PURE__ */ React.createElement(Group, { gap: 6, wrap: "nowrap" }, /* @__PURE__ */ React.createElement(IconFileDescription, { size: 16, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React.createElement(Text, { fw: 600, size: "sm" }, title || "Untitled proposal")), status && /* @__PURE__ */ React.createElement(Badge, { size: "sm", variant: "light", color: STATUS_COLORS[String(status)] || "gray" }, String(status).replace(/_/g, " "))), /* @__PURE__ */ React.createElement(Text, { size: "sm", style: { whiteSpace: "pre-wrap" } }, description || "No description was provided for this proposal."), power > 0 && /* @__PURE__ */ React.createElement(Stack, { gap: 4 }, /* @__PURE__ */ React.createElement(Group, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Yes ", pct(yes), "% \xB7 No ", pct(no), "% \xB7 Abstain ", pct(abstain), "%"), endsText && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, endsText)), /* @__PURE__ */ React.createElement(Progress.Root, { size: "sm" }, /* @__PURE__ */ React.createElement(Progress.Section, { value: pct(yes), color: "green" }), /* @__PURE__ */ React.createElement(Progress.Section, { value: pct(no), color: "red" }), /* @__PURE__ */ React.createElement(Progress.Section, { value: pct(abstain), color: "gray" }))), /* @__PURE__ */ React.createElement(Group, { gap: 6, c: "dimmed" }, /* @__PURE__ */ React.createElement(IconListDetails, { size: 14, color: "var(--mantine-color-dimmed)" }), /* @__PURE__ */ React.createElement(Text, { size: "xs", fw: 600, c: "dimmed" }, "THIS PROPOSAL WILL ", decoded.length === 0 ? "EXECUTE NO ON-CHAIN MESSAGES" : `EXECUTE ${decoded.length} ACTION${decoded.length === 1 ? "" : "S"}`)), decoded.length > 0 && /* @__PURE__ */ React.createElement(Accordion, { variant: "separated", radius: "md", chevronPosition: "right", multiple: true }, decoded.map((action, i) => /* @__PURE__ */ React.createElement(Accordion.Item, { key: i, value: `action-${i}` }, /* @__PURE__ */ React.createElement(Accordion.Control, null, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500 }, i + 1, ". ", action.label), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, action.summary))), /* @__PURE__ */ React.createElement(Accordion.Panel, null, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, action.details.map((d, j) => /* @__PURE__ */ React.createElement(Group, { key: j, justify: "space-between", wrap: "nowrap", gap: "md" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", style: { flexShrink: 0 } }, d.label), /* @__PURE__ */ React.createElement(Text, { size: "xs", style: { wordBreak: "break-all", textAlign: "right" } }, d.value))), /* @__PURE__ */ React.createElement(Code, { block: true, style: { fontSize: 11, maxHeight: 240, overflow: "auto" } }, action.raw))))))));
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
export {
|
|
415
|
+
ProposalOverviewCard
|
|
416
|
+
};
|
|
417
|
+
//# sourceMappingURL=chunk-BZ7UPUTY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/governance/_shared/ProposalOverviewCard.tsx","../src/mantine/blocks/action/actionTypes/governance/_shared/decodeProposalMsgs.ts"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Accordion, Badge, Card, Code, Group, Loader, Progress, Stack, Text } from '@mantine/core';\nimport { IconFileDescription, IconListDetails } from '@tabler/icons-react';\nimport { useBlocknoteContext } from '@/mantine/context/BlocknoteContext';\nimport type { ProposalResponse } from '@/mantine/context/BlocknoteContext';\nimport { decodeProposalMsgs, type DecodedProposalMsg } from './decodeProposalMsgs';\n\nconst STATUS_COLORS: Record<string, string> = {\n open: 'blue',\n passed: 'green',\n executed: 'green',\n rejected: 'red',\n closed: 'gray',\n execution_failed: 'red',\n};\n\n/** \"Voting ends …\" text from the proposal's expiration (best effort). */\nfunction expirationText(expiration: any): string | null {\n if (!expiration || typeof expiration !== 'object') return null;\n if ('at_time' in expiration && expiration.at_time) {\n // dao_proposal_single expirations are nanosecond timestamps.\n const ms = Number(BigInt(String(expiration.at_time)) / 1000000n);\n if (Number.isFinite(ms) && ms > 0) {\n const date = new Date(ms);\n return `Voting ends ${date.toLocaleString()}`;\n }\n }\n if ('at_height' in expiration && expiration.at_height) {\n return `Voting ends at block ${expiration.at_height}`;\n }\n return null;\n}\n\n/**\n * Human-readable view of an on-chain proposal for anyone voting on it: the\n * proposal name, the proposer's full description, and a decoded breakdown of\n * every message the proposal executes when it passes (with the raw JSON one\n * click away). Fetches through the shared proposal cache in BlocknoteContext.\n */\nexport const ProposalOverviewCard: React.FC<{\n proposalContractAddress: string;\n proposalId: string;\n}> = ({ proposalContractAddress, proposalId }) => {\n const { fetchSharedProposal } = useBlocknoteContext();\n\n const [proposal, setProposal] = useState<ProposalResponse | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!proposalContractAddress || !proposalId || !fetchSharedProposal) return;\n let cancelled = false;\n const load = async () => {\n setLoading(true);\n setError(null);\n try {\n const res = await fetchSharedProposal(proposalId, proposalContractAddress);\n if (!cancelled) setProposal(res);\n } catch (err) {\n if (!cancelled) setError(err instanceof Error ? err.message : 'Failed to load the proposal');\n } finally {\n if (!cancelled) setLoading(false);\n }\n };\n void load();\n return () => {\n cancelled = true;\n };\n }, [proposalContractAddress, proposalId, fetchSharedProposal]);\n\n if (!proposalContractAddress || !proposalId) return null;\n\n if (loading && !proposal) {\n return (\n <Group gap=\"xs\" c=\"dimmed\">\n <Loader size=\"xs\" />\n <Text size=\"sm\">Loading proposal details…</Text>\n </Group>\n );\n }\n\n if (error && !proposal) {\n return (\n <Text size=\"sm\" c=\"dimmed\">\n Proposal details could not be loaded: {error}\n </Text>\n );\n }\n\n if (!proposal?.proposal) return null;\n\n const { title, description, status, msgs, votes, total_power: totalPower, expiration } = proposal.proposal;\n const decoded: DecodedProposalMsg[] = decodeProposalMsgs(msgs || []);\n\n // Live tally as a share of the POD's total voting power.\n const yes = Number(votes?.yes || 0);\n const no = Number(votes?.no || 0);\n const abstain = Number(votes?.abstain || 0);\n const power = Number(totalPower || 0);\n const pct = (n: number) => (power > 0 ? Math.round((n / power) * 100) : 0);\n const endsText = expirationText(expiration);\n\n return (\n <Card padding=\"md\" radius=\"md\" withBorder style={{ borderColor: 'var(--mantine-color-default-border)' }}>\n <Stack gap=\"sm\">\n <Group justify=\"space-between\" align=\"flex-start\" wrap=\"nowrap\">\n <Group gap={6} wrap=\"nowrap\">\n <IconFileDescription size={16} color=\"var(--mantine-color-dimmed)\" />\n <Text fw={600} size=\"sm\">\n {title || 'Untitled proposal'}\n </Text>\n </Group>\n {status && (\n <Badge size=\"sm\" variant=\"light\" color={STATUS_COLORS[String(status)] || 'gray'}>\n {String(status).replace(/_/g, ' ')}\n </Badge>\n )}\n </Group>\n\n <Text size=\"sm\" style={{ whiteSpace: 'pre-wrap' }}>\n {description || 'No description was provided for this proposal.'}\n </Text>\n\n {power > 0 && (\n <Stack gap={4}>\n <Group justify=\"space-between\">\n <Text size=\"xs\" c=\"dimmed\">\n Yes {pct(yes)}% · No {pct(no)}% · Abstain {pct(abstain)}%\n </Text>\n {endsText && (\n <Text size=\"xs\" c=\"dimmed\">\n {endsText}\n </Text>\n )}\n </Group>\n <Progress.Root size=\"sm\">\n <Progress.Section value={pct(yes)} color=\"green\" />\n <Progress.Section value={pct(no)} color=\"red\" />\n <Progress.Section value={pct(abstain)} color=\"gray\" />\n </Progress.Root>\n </Stack>\n )}\n\n <Group gap={6} c=\"dimmed\">\n <IconListDetails size={14} color=\"var(--mantine-color-dimmed)\" />\n <Text size=\"xs\" fw={600} c=\"dimmed\">\n THIS PROPOSAL WILL {decoded.length === 0 ? 'EXECUTE NO ON-CHAIN MESSAGES' : `EXECUTE ${decoded.length} ACTION${decoded.length === 1 ? '' : 'S'}`}\n </Text>\n </Group>\n\n {decoded.length > 0 && (\n <Accordion variant=\"separated\" radius=\"md\" chevronPosition=\"right\" multiple>\n {decoded.map((action, i) => (\n <Accordion.Item key={i} value={`action-${i}`}>\n <Accordion.Control>\n <Stack gap={2}>\n <Text size=\"sm\" fw={500}>\n {i + 1}. {action.label}\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n {action.summary}\n </Text>\n </Stack>\n </Accordion.Control>\n <Accordion.Panel>\n <Stack gap=\"xs\">\n {action.details.map((d, j) => (\n <Group key={j} justify=\"space-between\" wrap=\"nowrap\" gap=\"md\">\n <Text size=\"xs\" c=\"dimmed\" style={{ flexShrink: 0 }}>\n {d.label}\n </Text>\n <Text size=\"xs\" style={{ wordBreak: 'break-all', textAlign: 'right' }}>\n {d.value}\n </Text>\n </Group>\n ))}\n <Code block style={{ fontSize: 11, maxHeight: 240, overflow: 'auto' }}>\n {action.raw}\n </Code>\n </Stack>\n </Accordion.Panel>\n </Accordion.Item>\n ))}\n </Accordion>\n )}\n </Stack>\n </Card>\n );\n};\n","/**\n * Decode on-chain DAO DAO proposal messages (`CosmosMsgForEmpty[]`) back into\n * human-readable summaries so anyone voting on a proposal can see exactly\n * what it will execute — the reverse of the consumer's\n * `transformActionsToMsgs`.\n *\n * Wasm execute payloads are base64-encoded JSON and decode fully. Stargate\n * payloads are base64-encoded protobuf — those get a friendly label from the\n * type URL plus the raw type for transparency, since the editor doesn't ship\n * a proto registry.\n */\n\nexport interface DecodedProposalMsg {\n /** Short human label, e.g. \"Send funds\". */\n label: string;\n /** One-line summary of what executing the message does. */\n summary: string;\n /** Structured field breakdown for the expandable detail view. */\n details: Array<{ label: string; value: string }>;\n /** Pretty-printed JSON of the (decoded, where possible) message. */\n raw: string;\n}\n\nconst STARGATE_LABELS: Record<string, { label: string; summary: string }> = {\n '/cosmos.authz.v1beta1.MsgGrant': { label: 'Grant authorization', summary: 'Grants an account authorization to act on behalf of the group' },\n '/cosmos.authz.v1beta1.MsgRevoke': { label: 'Revoke authorization', summary: 'Revokes a previously granted authorization' },\n '/cosmos.authz.v1beta1.MsgExec': { label: 'Execute authorized action', summary: 'Executes messages under an authorization granted to the group' },\n '/cosmos.gov.v1beta1.MsgVote': { label: 'Chain governance vote', summary: 'Casts the POD treasury’s vote on a chain governance proposal' },\n '/cosmwasm.wasm.v1.MsgInstantiateContract': { label: 'Instantiate contract', summary: 'Deploys a new smart contract instance' },\n '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission': { label: 'Withdraw validator commission', summary: 'Withdraws accumulated validator commission' },\n '/cosmos.staking.v1beta1.MsgCreateValidator': { label: 'Create validator', summary: 'Registers a new validator' },\n '/cosmos.staking.v1beta1.MsgEditValidator': { label: 'Edit validator', summary: 'Updates the validator’s settings' },\n '/cosmos.slashing.v1beta1.MsgUnjail': { label: 'Unjail validator', summary: 'Releases the validator from jail' },\n '/ixo.iid.v1beta1.MsgAddLinkedEntity': { label: 'Join entity', summary: 'Links the group as a member of another entity' },\n '/ixo.entity.v1beta1.MsgUpdateEntityVerified': { label: 'Accept to marketplace', summary: 'Marks an entity as verified on the marketplace' },\n '/ixo.entity.v1beta1.MsgCreateEntity': { label: 'Create entity', summary: 'Creates a new entity on-chain' },\n};\n\nfunction tryParseJson(value: string): any | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nfunction decodeBase64Utf8(value: string): string | undefined {\n try {\n if (typeof atob === 'function') {\n const bin = atob(value);\n const bytes = Uint8Array.from(bin, (c) => c.charCodeAt(0));\n return new TextDecoder().decode(bytes);\n }\n } catch {\n /* fall through */\n }\n try {\n // Node (tests) — reached only when atob is unavailable.\n const nodeBuffer = (globalThis as any).Buffer;\n return nodeBuffer ? nodeBuffer.from(value, 'base64').toString('utf8') : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction shortAddr(addr: unknown): string {\n const s = String(addr || '');\n return s.length > 16 ? `${s.slice(0, 10)}…${s.slice(-6)}` : s;\n}\n\nfunction formatCoin(coin: any): string {\n if (!coin) return '';\n const amount = String(coin.amount ?? '');\n const denom = String(coin.denom ?? '');\n // 1 IXO = 1,000,000 uixo — show display units for the denom users know.\n if (denom === 'uixo' && /^\\d+$/.test(amount)) {\n return `${(Number(amount) / 1e6).toLocaleString()} IXO`;\n }\n return `${amount} ${denom}`;\n}\n\nfunction detailsFromObject(obj: Record<string, any>, prefix = ''): Array<{ label: string; value: string }> {\n return Object.entries(obj || {})\n .filter(([, v]) => v !== undefined && v !== null && typeof v !== 'object')\n .map(([k, v]) => ({ label: prefix ? `${prefix} ${k}` : k, value: String(v) }));\n}\n\nfunction pretty(value: any): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nfunction percentText(p: any): string {\n if (!p) return '—';\n if (p.majority) return 'majority';\n if (p.percent !== undefined) return `${Math.round(Number(p.percent) * 100)}%`;\n return pretty(p);\n}\n\n/** Decode the inner msg of a wasm execute against a known DAO DAO method. */\nfunction decodeWasmExecute(contractAddr: string, msg: Record<string, any>, funds: any[], raw: string): DecodedProposalMsg {\n const method = Object.keys(msg || {})[0] || 'execute';\n const body = msg?.[method] || {};\n\n switch (method) {\n case 'update_members': {\n const add = body.add || [];\n const remove = body.remove || [];\n return {\n label: 'Update members',\n summary: `Adds ${add.length} and removes ${remove.length} member(s) of the POD`,\n details: [\n ...add.map((m: any) => ({ label: 'Add', value: `${m.addr} (voting power ${m.weight})` })),\n ...remove.map((addr: any) => ({ label: 'Remove', value: String(typeof addr === 'string' ? addr : addr?.addr || '') })),\n ],\n raw,\n };\n }\n case 'update_config': {\n // dao_proposal_single (threshold), dao_pre_propose_single\n // (open_proposal_submission) and dao_core ({ config }) all use\n // `update_config` — disambiguate by shape.\n if (body.threshold || body.max_voting_period) {\n const details: Array<{ label: string; value: string }> = [];\n const threshold = body.threshold || {};\n if (threshold.threshold_quorum) {\n details.push({ label: 'Quorum', value: percentText(threshold.threshold_quorum.quorum) });\n details.push({ label: 'Pass threshold', value: percentText(threshold.threshold_quorum.threshold) });\n } else if (threshold.absolute_percentage) {\n details.push({ label: 'Pass threshold', value: percentText(threshold.absolute_percentage.percentage) });\n } else if (threshold.absolute_count) {\n details.push({ label: 'Pass threshold', value: `${threshold.absolute_count.threshold ?? threshold.absolute_count} vote(s)` });\n }\n if (body.max_voting_period?.time) {\n details.push({ label: 'Voting period', value: `${Math.round(body.max_voting_period.time / 3600)} hours` });\n }\n details.push({ label: 'Revoting', value: body.allow_revoting ? 'allowed' : 'not allowed' });\n return { label: 'Update voting rules', summary: 'Changes how this group’s proposals are voted on', details, raw };\n }\n if (body.open_proposal_submission !== undefined || body.deposit_info !== undefined) {\n const details: Array<{ label: string; value: string }> = [{ label: 'Who can propose', value: body.open_proposal_submission ? 'anyone' : 'members only' }];\n if (body.deposit_info) {\n details.push({ label: 'Proposal deposit', value: `${body.deposit_info.amount} (refund: ${body.deposit_info.refund_policy})` });\n } else {\n details.push({ label: 'Proposal deposit', value: 'none' });\n }\n return { label: 'Update proposal submission rules', summary: 'Changes who may submit proposals and the required deposit', details, raw };\n }\n if (body.config) {\n return {\n label: 'Update DAO info',\n summary: `Renames the group to “${body.config.name || ''}” and updates its details`,\n details: detailsFromObject(body.config),\n raw,\n };\n }\n return { label: 'Update configuration', summary: `Updates configuration of ${shortAddr(contractAddr)}`, details: detailsFromObject(body), raw };\n }\n case 'update_cw20_list':\n return {\n label: 'Manage token list',\n summary: 'Changes which cw20 tokens the POD treasury tracks',\n details: [\n ...(body.to_add || []).map((a: string) => ({ label: 'Track token', value: a })),\n ...(body.to_remove || []).map((a: string) => ({ label: 'Untrack token', value: a })),\n ],\n raw,\n };\n case 'update_cw721_list':\n return {\n label: 'Manage NFT collection list',\n summary: 'Changes which NFT collections the POD treasury tracks',\n details: [\n ...(body.to_add || []).map((a: string) => ({ label: 'Track collection', value: a })),\n ...(body.to_remove || []).map((a: string) => ({ label: 'Untrack collection', value: a })),\n ],\n raw,\n };\n case 'update_sub_daos':\n return {\n label: 'Manage SubDAOs',\n summary: `Adds ${(body.to_add || []).length} and removes ${(body.to_remove || []).length} SubDAO(s)`,\n details: [\n ...(body.to_add || []).map((s: any) => ({ label: 'Add SubDAO', value: String(s?.addr || s) })),\n ...(body.to_remove || []).map((s: any) => ({ label: 'Remove SubDAO', value: String(s?.addr || s) })),\n ],\n raw,\n };\n case 'set_item':\n return { label: 'Set storage item', summary: `Sets “${body.key}” in the DAO’s storage`, details: [{ label: body.key, value: String(body.value) }], raw };\n case 'remove_item':\n return { label: 'Remove storage item', summary: `Removes “${body.key}” from the DAO’s storage`, details: [{ label: 'Key', value: String(body.key) }], raw };\n case 'execute_admin_msgs':\n return {\n label: 'Admin execute',\n summary: `Executes ${(body.msgs || []).length} message(s) on a SubDAO as its admin`,\n details: [{ label: 'Target', value: shortAddr(contractAddr) }],\n raw,\n };\n case 'mint':\n return {\n label: 'Mint tokens',\n summary: `Mints ${body.amount} tokens to ${shortAddr(body.recipient)}`,\n details: [\n { label: 'Recipient', value: String(body.recipient || '') },\n { label: 'Amount', value: String(body.amount || '') },\n ],\n raw,\n };\n case 'burn':\n return { label: 'Burn NFT', summary: `Burns NFT #${body.token_id} from ${shortAddr(contractAddr)}`, details: [{ label: 'Token ID', value: String(body.token_id) }], raw };\n case 'transfer_nft':\n return {\n label: 'Transfer NFT',\n summary: `Transfers NFT #${body.token_id} to ${shortAddr(body.recipient)}`,\n details: [\n { label: 'Token ID', value: String(body.token_id) },\n { label: 'Recipient', value: String(body.recipient || '') },\n ],\n raw,\n };\n case 'send_nft':\n return {\n label: 'Send NFT to contract',\n summary: `Sends NFT #${body.token_id} to contract ${shortAddr(body.contract)} with an execute message`,\n details: [\n { label: 'Token ID', value: String(body.token_id) },\n { label: 'Contract', value: String(body.contract || '') },\n ],\n raw,\n };\n case 'transfer':\n return {\n label: 'Send POD tokens',\n summary: `Transfers ${body.amount} tokens from ${shortAddr(contractAddr)} to ${shortAddr(body.recipient)}`,\n details: [\n { label: 'Token contract', value: contractAddr },\n { label: 'Recipient', value: String(body.recipient || '') },\n { label: 'Amount', value: String(body.amount || '') },\n ],\n raw,\n };\n case 'send': {\n // cw20 send with an embedded base64 hook message — used by both\n // stake-to-group and token swaps; the inner msg disambiguates.\n const inner = body.msg ? tryParseJson(decodeBase64Utf8(String(body.msg)) || '') : undefined;\n const innerKey = inner ? Object.keys(inner)[0] : '';\n if (innerKey === 'stake') {\n return {\n label: 'Stake to POD',\n summary: `Stakes ${body.amount} tokens to ${shortAddr(body.contract)}`,\n details: [\n { label: 'Amount', value: String(body.amount || '') },\n { label: 'Staking contract', value: String(body.contract || '') },\n ],\n raw,\n };\n }\n return {\n label: 'Send tokens to contract',\n summary: `Sends ${body.amount} cw20 tokens to ${shortAddr(body.contract)}${innerKey ? ` (${innerKey})` : ''}`,\n details: [\n { label: 'Amount', value: String(body.amount || '') },\n { label: 'Contract', value: String(body.contract || '') },\n ],\n raw,\n };\n }\n case 'withdraw':\n return {\n label: 'Withdraw token swap',\n summary: `Withdraws the group’s side of token swap ${shortAddr(contractAddr)}`,\n details: [{ label: 'Swap contract', value: contractAddr }],\n raw,\n };\n case 'fund':\n return {\n label: 'Fund token swap',\n summary: `Funds token swap ${shortAddr(contractAddr)}${funds?.length ? ` with ${funds.map(formatCoin).join(', ')}` : ''}`,\n details: [{ label: 'Swap contract', value: contractAddr }, ...(funds || []).map((c: any) => ({ label: 'Funds', value: formatCoin(c) }))],\n raw,\n };\n default:\n return {\n label: 'Execute contract',\n summary: `Calls “${method}” on contract ${shortAddr(contractAddr)}`,\n details: [{ label: 'Contract', value: contractAddr }, ...detailsFromObject(body)],\n raw,\n };\n }\n}\n\n/** Decode a single proposal message. Never throws — falls back to raw JSON. */\nexport function decodeProposalMsg(msg: any): DecodedProposalMsg {\n const raw = pretty(msg);\n try {\n if (msg?.bank?.send) {\n const send = msg.bank.send;\n const amounts = (send.amount || []).map(formatCoin).join(', ');\n return {\n label: 'Send funds',\n summary: `Sends ${amounts} from the treasury to ${shortAddr(send.to_address)}`,\n details: [\n { label: 'Recipient', value: String(send.to_address || '') },\n { label: 'Amount', value: amounts },\n ],\n raw,\n };\n }\n if (msg?.staking) {\n const op = Object.keys(msg.staking)[0];\n const body = msg.staking[op] || {};\n const labels: Record<string, string> = { delegate: 'Stake', undelegate: 'Unstake', redelegate: 'Restake' };\n return {\n label: labels[op] || `Staking: ${op}`,\n summary:\n op === 'redelegate'\n ? `Moves ${formatCoin(body.amount)} from ${shortAddr(body.src_validator)} to ${shortAddr(body.dst_validator)}`\n : `${labels[op] || op}s ${formatCoin(body.amount)} with validator ${shortAddr(body.validator)}`,\n details: detailsFromObject(body),\n raw,\n };\n }\n if (msg?.distribution?.withdraw_delegator_reward) {\n const v = msg.distribution.withdraw_delegator_reward.validator;\n return {\n label: 'Claim staking rewards',\n summary: `Withdraws staking rewards from validator ${shortAddr(v)}`,\n details: [{ label: 'Validator', value: String(v || '') }],\n raw,\n };\n }\n if (msg?.wasm?.execute) {\n const exec = msg.wasm.execute;\n const decodedInner = typeof exec.msg === 'string' ? tryParseJson(decodeBase64Utf8(exec.msg) || '') : exec.msg;\n const rawWithInner = decodedInner ? pretty({ wasm: { execute: { ...exec, msg: decodedInner } } }) : raw;\n if (decodedInner) return decodeWasmExecute(String(exec.contract_addr || ''), decodedInner, exec.funds || [], rawWithInner);\n return { label: 'Execute contract', summary: `Executes a message on ${shortAddr(exec.contract_addr)}`, details: [], raw };\n }\n if (msg?.wasm?.migrate) {\n const m = msg.wasm.migrate;\n return {\n label: 'Migrate contract',\n summary: `Migrates ${shortAddr(m.contract_addr)} to code ${m.new_code_id}`,\n details: [\n { label: 'Contract', value: String(m.contract_addr || '') },\n { label: 'New code ID', value: String(m.new_code_id ?? '') },\n ],\n raw,\n };\n }\n if (msg?.wasm?.update_admin) {\n const u = msg.wasm.update_admin;\n return {\n label: 'Update contract admin',\n summary: `Sets the admin of ${shortAddr(u.contract_addr)} to ${shortAddr(u.admin)}`,\n details: [\n { label: 'Contract', value: String(u.contract_addr || '') },\n { label: 'New admin', value: String(u.admin || '') },\n ],\n raw,\n };\n }\n if (msg?.stargate) {\n const typeUrl = String(msg.stargate.type_url || msg.stargate.typeUrl || '');\n const known = STARGATE_LABELS[typeUrl];\n return {\n label: known?.label || 'Chain message',\n summary: known?.summary || `Executes ${typeUrl}`,\n details: [{ label: 'Message type', value: typeUrl }],\n raw,\n };\n }\n } catch {\n /* fall through to the raw fallback */\n }\n return { label: 'Custom message', summary: 'Executes a custom on-chain message', details: [], raw };\n}\n\n/** Decode all messages of a proposal, in execution order. */\nexport function decodeProposalMsgs(msgs: any[]): DecodedProposalMsg[] {\n return (msgs || []).map(decodeProposalMsg);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
icon
|
|
3
|
+
} from "./chunk-YN4CEKCF.js";
|
|
4
|
+
|
|
5
|
+
// src/mantine/components/CollapsibleSection.tsx
|
|
6
|
+
import React, { useState } from "react";
|
|
7
|
+
import { Box, Collapse, Group, Text, UnstyledButton } from "@mantine/core";
|
|
8
|
+
import { IconChevronDown, IconChevronRight } from "@tabler/icons-react";
|
|
9
|
+
function CollapsibleSection({ title, defaultOpen = false, badge, children }) {
|
|
10
|
+
const [opened, setOpened] = useState(defaultOpen);
|
|
11
|
+
return /* @__PURE__ */ React.createElement(
|
|
12
|
+
Box,
|
|
13
|
+
{
|
|
14
|
+
p: "sm",
|
|
15
|
+
style: {
|
|
16
|
+
borderRadius: 16,
|
|
17
|
+
background: "var(--mantine-color-neutralColor-4)"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
/* @__PURE__ */ React.createElement(UnstyledButton, { onClick: () => setOpened((v) => !v), style: { width: "100%" } }, /* @__PURE__ */ React.createElement(Group, { gap: "xs", align: "center" }, opened ? icon(IconChevronDown, 16) : icon(IconChevronRight, 16), /* @__PURE__ */ React.createElement(Text, { fw: 500, size: "sm" }, title), badge)),
|
|
21
|
+
/* @__PURE__ */ React.createElement(Collapse, { in: opened }, /* @__PURE__ */ React.createElement(Box, { mt: "sm" }, children))
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
CollapsibleSection
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=chunk-CGFAICUE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/components/CollapsibleSection.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Box, Collapse, Group, Text, UnstyledButton } from '@mantine/core';\nimport { IconChevronDown, IconChevronRight } from '@tabler/icons-react';\nimport { icon } from './ReusablePanel';\n\ninterface CollapsibleSectionProps {\n title: string;\n defaultOpen?: boolean;\n /** Extra elements rendered after the title text (e.g. badges, icons) */\n badge?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport function CollapsibleSection({ title, defaultOpen = false, badge, children }: CollapsibleSectionProps) {\n const [opened, setOpened] = useState(defaultOpen);\n\n return (\n <Box\n p=\"sm\"\n style={{\n borderRadius: 16,\n background: 'var(--mantine-color-neutralColor-4)',\n }}\n >\n <UnstyledButton onClick={() => setOpened((v) => !v)} style={{ width: '100%' }}>\n <Group gap=\"xs\" align=\"center\">\n {opened ? icon(IconChevronDown, 16) : icon(IconChevronRight, 16)}\n <Text fw={500} size=\"sm\">\n {title}\n </Text>\n {badge}\n </Group>\n </UnstyledButton>\n <Collapse in={opened}>\n <Box mt=\"sm\">{children}</Box>\n </Collapse>\n </Box>\n );\n}\n"],"mappings":";;;;;AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,KAAK,UAAU,OAAO,MAAM,sBAAsB;AAC3D,SAAS,iBAAiB,wBAAwB;AAW3C,SAAS,mBAAmB,EAAE,OAAO,cAAc,OAAO,OAAO,SAAS,GAA4B;AAC3G,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,WAAW;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,OAAO;AAAA,QACL,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA;AAAA,IAEA,oCAAC,kBAAe,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,OAAO,KAC1E,oCAAC,SAAM,KAAI,MAAK,OAAM,YACnB,SAAS,KAAK,iBAAiB,EAAE,IAAI,KAAK,kBAAkB,EAAE,GAC/D,oCAAC,QAAK,IAAI,KAAK,MAAK,QACjB,KACH,GACC,KACH,CACF;AAAA,IACA,oCAAC,YAAS,IAAI,UACZ,oCAAC,OAAI,IAAG,QAAM,QAAS,CACzB;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/governance/memberProposal/types.ts
|
|
2
|
+
var DEFAULT_INPUTS = { coreAddress: "" };
|
|
3
|
+
function parseGovernanceMemberProposalInputs(json) {
|
|
4
|
+
try {
|
|
5
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
6
|
+
return { coreAddress: parsed?.coreAddress || "" };
|
|
7
|
+
} catch {
|
|
8
|
+
return { ...DEFAULT_INPUTS };
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function serializeGovernanceMemberProposalInputs(inputs) {
|
|
12
|
+
return JSON.stringify(inputs);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
parseGovernanceMemberProposalInputs,
|
|
17
|
+
serializeGovernanceMemberProposalInputs
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=chunk-CMCEWQ3C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/governance/memberProposal/types.ts"],"sourcesContent":["/** Shared types for the governance member-proposal action type UI. */\n\nexport type GovernanceMemberOperation = 'add' | 'remove' | 'update-weight';\n\n/** One member targeted by the proposal. `weight` is the cw4 voting power. */\nexport interface GovernanceProposalMember {\n address: string;\n did?: string;\n displayName?: string;\n avatarUrl?: string | null;\n /** cw4 voting power. Ignored for the `remove` operation. */\n weight: number;\n}\n\n/**\n * Template-mode config persisted on `block.props.inputs`.\n *\n * TODO(governance): the only thing captured today is the DAO core address (and\n * even that is optional — empty means \"resolve from the current entity at run\n * time\"). Future config steps: default operation, title/description templating,\n * pre-selected members, voting-rights presets.\n */\nexport interface GovernanceMemberProposalInputs {\n /** DAO core contract address. Empty → derive from current entity in flow mode. */\n coreAddress: string;\n}\n\n/**\n * Runtime inputs the flow detail sends to the executor when the user signs.\n * These are NOT persisted in template config — they are the user's per-run\n * selections.\n */\nexport interface GovernanceMemberProposalRuntimeInputs {\n coreAddress: string;\n operation: GovernanceMemberOperation;\n members: Array<{ address: string; weight?: number; did?: string }>;\n title?: string;\n description?: string;\n}\n\nconst DEFAULT_INPUTS: GovernanceMemberProposalInputs = { coreAddress: '' };\n\nexport function parseGovernanceMemberProposalInputs(json: string): GovernanceMemberProposalInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return { coreAddress: parsed?.coreAddress || '' };\n } catch {\n return { ...DEFAULT_INPUTS };\n }\n}\n\nexport function serializeGovernanceMemberProposalInputs(inputs: GovernanceMemberProposalInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AAwCA,IAAM,iBAAiD,EAAE,aAAa,GAAG;AAElE,SAAS,oCAAoC,MAA8C;AAChG,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO,EAAE,aAAa,QAAQ,eAAe,GAAG;AAAA,EAClD,QAAQ;AACN,WAAO,EAAE,GAAG,eAAe;AAAA,EAC7B;AACF;AAEO,SAAS,wCAAwC,QAAgD;AACtG,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// src/core/lib/actionRegistry/actions/calendar/eventList.types.ts
|
|
2
|
+
var EMPTY = {
|
|
3
|
+
connection: null,
|
|
4
|
+
calendarId: "primary",
|
|
5
|
+
q: "",
|
|
6
|
+
timeMin: "",
|
|
7
|
+
timeMax: "",
|
|
8
|
+
timeZone: "",
|
|
9
|
+
maxResults: "",
|
|
10
|
+
singleEvents: true,
|
|
11
|
+
orderBy: "startTime"
|
|
12
|
+
};
|
|
13
|
+
function parseCalendarEventListInputs(raw) {
|
|
14
|
+
try {
|
|
15
|
+
const parsed = typeof raw === "string" ? JSON.parse(raw || "{}") : raw || {};
|
|
16
|
+
const conn = parsed.connection;
|
|
17
|
+
const connection = conn && typeof conn === "object" && typeof conn.connectedAccountId === "string" && typeof conn.entityDid === "string" ? { connectedAccountId: conn.connectedAccountId, entityDid: conn.entityDid } : null;
|
|
18
|
+
return {
|
|
19
|
+
connection,
|
|
20
|
+
calendarId: typeof parsed.calendarId === "string" && parsed.calendarId ? parsed.calendarId : "primary",
|
|
21
|
+
q: typeof parsed.q === "string" ? parsed.q : "",
|
|
22
|
+
timeMin: typeof parsed.timeMin === "string" ? parsed.timeMin : "",
|
|
23
|
+
timeMax: typeof parsed.timeMax === "string" ? parsed.timeMax : "",
|
|
24
|
+
timeZone: typeof parsed.timeZone === "string" ? parsed.timeZone : "",
|
|
25
|
+
maxResults: typeof parsed.maxResults === "string" ? parsed.maxResults : typeof parsed.maxResults === "number" ? String(parsed.maxResults) : "",
|
|
26
|
+
singleEvents: typeof parsed.singleEvents === "boolean" ? parsed.singleEvents : true,
|
|
27
|
+
orderBy: typeof parsed.orderBy === "string" ? parsed.orderBy : "startTime"
|
|
28
|
+
};
|
|
29
|
+
} catch {
|
|
30
|
+
return { ...EMPTY };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function serializeCalendarEventListInputs(inputs) {
|
|
34
|
+
return JSON.stringify(inputs);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
parseCalendarEventListInputs,
|
|
39
|
+
serializeCalendarEventListInputs
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-CP4UV436.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/lib/actionRegistry/actions/calendar/eventList.types.ts"],"sourcesContent":["import type { PinnedConnection } from '@/mantine/blocks/action/actionTypes/_shared/ConnectionSelector';\n\n/**\n * Template storage shape for `qi/calendar.event.list`.\n * Mirrors the `GOOGLECALENDAR_EVENTS_LIST` schema verbatim. Note that the list\n * tool uses camelCase (calendarId, timeMin, timeMax) while create/update use\n * snake_case — see gotchas §0.\n */\nexport interface CalendarEventListInputs {\n connection: PinnedConnection | null;\n calendarId: string;\n q: string;\n timeMin: string;\n timeMax: string;\n timeZone: string;\n maxResults: string;\n singleEvents: boolean;\n orderBy: string;\n}\n\nconst EMPTY: CalendarEventListInputs = {\n connection: null,\n calendarId: 'primary',\n q: '',\n timeMin: '',\n timeMax: '',\n timeZone: '',\n maxResults: '',\n singleEvents: true,\n orderBy: 'startTime',\n};\n\nexport function parseCalendarEventListInputs(raw: string | Record<string, any> | undefined): CalendarEventListInputs {\n try {\n const parsed: any = typeof raw === 'string' ? JSON.parse(raw || '{}') : raw || {};\n const conn = parsed.connection;\n const connection: PinnedConnection | null =\n conn && typeof conn === 'object' && typeof conn.connectedAccountId === 'string' && typeof conn.entityDid === 'string'\n ? { connectedAccountId: conn.connectedAccountId, entityDid: conn.entityDid }\n : null;\n\n return {\n connection,\n calendarId: typeof parsed.calendarId === 'string' && parsed.calendarId ? parsed.calendarId : 'primary',\n q: typeof parsed.q === 'string' ? parsed.q : '',\n timeMin: typeof parsed.timeMin === 'string' ? parsed.timeMin : '',\n timeMax: typeof parsed.timeMax === 'string' ? parsed.timeMax : '',\n timeZone: typeof parsed.timeZone === 'string' ? parsed.timeZone : '',\n maxResults: typeof parsed.maxResults === 'string' ? parsed.maxResults : typeof parsed.maxResults === 'number' ? String(parsed.maxResults) : '',\n singleEvents: typeof parsed.singleEvents === 'boolean' ? parsed.singleEvents : true,\n orderBy: typeof parsed.orderBy === 'string' ? parsed.orderBy : 'startTime',\n };\n } catch {\n return { ...EMPTY };\n }\n}\n\nexport function serializeCalendarEventListInputs(inputs: CalendarEventListInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AAoBA,IAAM,QAAiC;AAAA,EACrC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,GAAG;AAAA,EACH,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,SAAS;AACX;AAEO,SAAS,6BAA6B,KAAwE;AACnH,MAAI;AACF,UAAM,SAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,OAAO,IAAI,IAAI,OAAO,CAAC;AAChF,UAAM,OAAO,OAAO;AACpB,UAAM,aACJ,QAAQ,OAAO,SAAS,YAAY,OAAO,KAAK,uBAAuB,YAAY,OAAO,KAAK,cAAc,WACzG,EAAE,oBAAoB,KAAK,oBAAoB,WAAW,KAAK,UAAU,IACzE;AAEN,WAAO;AAAA,MACL;AAAA,MACA,YAAY,OAAO,OAAO,eAAe,YAAY,OAAO,aAAa,OAAO,aAAa;AAAA,MAC7F,GAAG,OAAO,OAAO,MAAM,WAAW,OAAO,IAAI;AAAA,MAC7C,SAAS,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU;AAAA,MAC/D,SAAS,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU;AAAA,MAC/D,UAAU,OAAO,OAAO,aAAa,WAAW,OAAO,WAAW;AAAA,MAClE,YAAY,OAAO,OAAO,eAAe,WAAW,OAAO,aAAa,OAAO,OAAO,eAAe,WAAW,OAAO,OAAO,UAAU,IAAI;AAAA,MAC5I,cAAc,OAAO,OAAO,iBAAiB,YAAY,OAAO,eAAe;AAAA,MAC/E,SAAS,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU;AAAA,IACjE;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,GAAG,MAAM;AAAA,EACpB;AACF;AAEO,SAAS,iCAAiC,QAAyC;AACxF,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|