@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,9 @@
|
|
|
1
|
+
// src/mantine/components/StableSurvey.tsx
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Survey } from "@ixo/surveys";
|
|
4
|
+
var StableSurvey = React.memo(Survey, (prev, next) => prev.model === next.model);
|
|
5
|
+
|
|
6
|
+
export {
|
|
7
|
+
StableSurvey
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=chunk-2GAYKKTL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/components/StableSurvey.tsx"],"sourcesContent":["import React from 'react';\nimport { Survey } from '@ixo/surveys';\n\n/**\n * Memoized Survey wrapper that only re-renders when the model instance changes.\n * Prevents SurveyJS lifecycle methods (componentDidUpdate → makeBaseElementsReact → afterRerender)\n * from resetting input state during parent re-renders caused by context/awareness updates.\n */\nexport const StableSurvey = React.memo(Survey, (prev, next) => prev.model === next.model);\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,cAAc;AAOhB,IAAM,eAAe,MAAM,KAAK,QAAQ,CAAC,MAAM,SAAS,KAAK,UAAU,KAAK,KAAK;","names":[]}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ProposalMetadataFields,
|
|
3
|
+
proposalMetadataValid
|
|
4
|
+
} from "./chunk-TR4KO3AG.js";
|
|
5
|
+
import {
|
|
6
|
+
ProposalOverviewCard
|
|
7
|
+
} from "./chunk-BZ7UPUTY.js";
|
|
8
|
+
import {
|
|
9
|
+
BaseSelect
|
|
10
|
+
} from "./chunk-4NAFQF6V.js";
|
|
11
|
+
import {
|
|
12
|
+
useRunSessionId
|
|
13
|
+
} from "./chunk-FFYZXA75.js";
|
|
14
|
+
import {
|
|
15
|
+
reconcileActionReadBack
|
|
16
|
+
} from "./chunk-HRRI4BLF.js";
|
|
17
|
+
import {
|
|
18
|
+
actionAlertStyles
|
|
19
|
+
} from "./chunk-6GKJR52N.js";
|
|
20
|
+
import {
|
|
21
|
+
useBlocknoteHandlers
|
|
22
|
+
} from "./chunk-4DGCCXD6.js";
|
|
23
|
+
|
|
24
|
+
// src/mantine/blocks/action/actionTypes/_shared/groupExecution/ActAsGroupSection.tsx
|
|
25
|
+
import React, { useEffect, useMemo, useRef, useState } from "react";
|
|
26
|
+
import { Alert, Group, Loader, SegmentedControl, Stack, Text, Tooltip } from "@mantine/core";
|
|
27
|
+
import { IconInfoCircle, IconUsersGroup } from "@tabler/icons-react";
|
|
28
|
+
function emptyActAsGroupState() {
|
|
29
|
+
return { actAsGroup: false, groupCoreAddress: "", proposalTitle: "", proposalDescription: "" };
|
|
30
|
+
}
|
|
31
|
+
function actAsGroupReady(state) {
|
|
32
|
+
if (!state.actAsGroup) return true;
|
|
33
|
+
return state.groupCoreAddress.trim().length > 0 && proposalMetadataValid(state.proposalTitle, state.proposalDescription);
|
|
34
|
+
}
|
|
35
|
+
function actAsGroupRuntimeInputs(state) {
|
|
36
|
+
if (!state.actAsGroup) return {};
|
|
37
|
+
return {
|
|
38
|
+
actAsGroup: true,
|
|
39
|
+
groupCoreAddress: state.groupCoreAddress.trim(),
|
|
40
|
+
proposalTitle: state.proposalTitle.trim(),
|
|
41
|
+
proposalDescription: state.proposalDescription.trim()
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
var shortPodAddress = (address) => address.length > 20 ? `${address.slice(0, 10)}\u2026${address.slice(-6)}` : address;
|
|
45
|
+
var podFilter = ({ options, search }) => {
|
|
46
|
+
const query = search.toLowerCase().trim();
|
|
47
|
+
if (!query) return options;
|
|
48
|
+
return options.filter((option) => option.label.toLowerCase().includes(query) || option.value.toLowerCase().includes(query));
|
|
49
|
+
};
|
|
50
|
+
var buildPodOptions = (groups) => {
|
|
51
|
+
const labelled = [...groups].map((group) => ({ group, label: group.domainName ? `${group.name} \u2014 ${group.domainName}` : group.name })).sort((a, b) => a.label.localeCompare(b.label));
|
|
52
|
+
const labelCounts = /* @__PURE__ */ new Map();
|
|
53
|
+
for (const { label } of labelled) labelCounts.set(label, (labelCounts.get(label) ?? 0) + 1);
|
|
54
|
+
return labelled.map(({ group, label }) => ({
|
|
55
|
+
value: group.coreAddress,
|
|
56
|
+
label: (labelCounts.get(label) ?? 0) > 1 ? `${label} (${shortPodAddress(group.coreAddress)})` : label
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
var ActAsGroupSection = ({ value, onChange, isDisabled, actionLabel, authzFilter }) => {
|
|
60
|
+
const handlers = useBlocknoteHandlers();
|
|
61
|
+
const handlersRef = useRef(handlers);
|
|
62
|
+
handlersRef.current = handlers;
|
|
63
|
+
const [groups, setGroups] = useState([]);
|
|
64
|
+
const [loading, setLoading] = useState(false);
|
|
65
|
+
const authzFilterKey = JSON.stringify(authzFilter ?? null);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
let cancelled = false;
|
|
68
|
+
const load = async () => {
|
|
69
|
+
const h = handlersRef.current;
|
|
70
|
+
if (!h?.getDAOGroups) return;
|
|
71
|
+
setLoading(true);
|
|
72
|
+
try {
|
|
73
|
+
const filter = authzFilterKey === "null" ? void 0 : JSON.parse(authzFilterKey);
|
|
74
|
+
const res = await h.getDAOGroups(filter);
|
|
75
|
+
if (!cancelled) setGroups(res || []);
|
|
76
|
+
} catch (error) {
|
|
77
|
+
console.warn("[act-as-group] getDAOGroups failed", error);
|
|
78
|
+
} finally {
|
|
79
|
+
if (!cancelled) setLoading(false);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
void load();
|
|
83
|
+
return () => {
|
|
84
|
+
cancelled = true;
|
|
85
|
+
};
|
|
86
|
+
}, [authzFilterKey]);
|
|
87
|
+
const podOptions = useMemo(() => buildPodOptions(groups), [groups]);
|
|
88
|
+
const available = groups.length > 0 && typeof handlers?.createGroupExecutionProposal === "function";
|
|
89
|
+
if (!available) return null;
|
|
90
|
+
const update = (patch) => onChange({ ...value, ...patch });
|
|
91
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React.createElement(Stack, { gap: 4 }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500 }, "Acting as"), /* @__PURE__ */ React.createElement(
|
|
92
|
+
SegmentedControl,
|
|
93
|
+
{
|
|
94
|
+
value: value.actAsGroup ? "group" : "self",
|
|
95
|
+
onChange: (v) => {
|
|
96
|
+
const asGroup = v === "group";
|
|
97
|
+
update({
|
|
98
|
+
actAsGroup: asGroup,
|
|
99
|
+
// Auto-select when the user belongs to exactly one POD.
|
|
100
|
+
groupCoreAddress: asGroup && !value.groupCoreAddress && groups.length === 1 ? groups[0].coreAddress : value.groupCoreAddress
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
data: [
|
|
104
|
+
{ label: "Myself", value: "self" },
|
|
105
|
+
{ label: "My POD", value: "group" }
|
|
106
|
+
],
|
|
107
|
+
disabled: isDisabled || loading,
|
|
108
|
+
size: "sm"
|
|
109
|
+
}
|
|
110
|
+
)), value.actAsGroup && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
111
|
+
BaseSelect,
|
|
112
|
+
{
|
|
113
|
+
label: /* @__PURE__ */ React.createElement(Group, { gap: 4, display: "inline-flex" }, "POD", value.groupCoreAddress && /* @__PURE__ */ React.createElement(Tooltip, { label: value.groupCoreAddress, withArrow: true, multiline: true, maw: 440, events: { hover: true, focus: true, touch: true } }, /* @__PURE__ */ React.createElement(IconInfoCircle, { size: 13, style: { opacity: 0.6, cursor: "help", verticalAlign: "middle" } }))),
|
|
114
|
+
description: "One of your PODs \u2014 the action is performed on its behalf.",
|
|
115
|
+
placeholder: loading ? "Loading your PODs\u2026" : "Search or select a POD",
|
|
116
|
+
value: value.groupCoreAddress || null,
|
|
117
|
+
onChange: (v) => update({ groupCoreAddress: v || "" }),
|
|
118
|
+
data: podOptions,
|
|
119
|
+
filter: podFilter,
|
|
120
|
+
renderOption: ({ option }) => /* @__PURE__ */ React.createElement(Stack, { gap: 0 }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, option.label), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, shortPodAddress(option.value))),
|
|
121
|
+
nothingFoundMessage: "No POD matches your search",
|
|
122
|
+
maxDropdownHeight: 280,
|
|
123
|
+
allowDeselect: false,
|
|
124
|
+
disabled: isDisabled || loading,
|
|
125
|
+
rightSection: loading ? /* @__PURE__ */ React.createElement(Loader, { size: "xs" }) : void 0,
|
|
126
|
+
searchable: true,
|
|
127
|
+
size: "sm"
|
|
128
|
+
}
|
|
129
|
+
), /* @__PURE__ */ React.createElement(Alert, { icon: /* @__PURE__ */ React.createElement(IconUsersGroup, { size: 16 }), color: "blue", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Signing creates a proposal for the POD to vote on", actionLabel ? ` \u2014 \u201C${actionLabel}\u201D` : "", ". The action only happens once the proposal passes, and it happens as the group, not as you.")), /* @__PURE__ */ React.createElement(
|
|
130
|
+
ProposalMetadataFields,
|
|
131
|
+
{
|
|
132
|
+
title: value.proposalTitle,
|
|
133
|
+
description: value.proposalDescription,
|
|
134
|
+
onTitleChange: (proposalTitle) => update({ proposalTitle }),
|
|
135
|
+
onDescriptionChange: (proposalDescription) => update({ proposalDescription }),
|
|
136
|
+
isDisabled
|
|
137
|
+
}
|
|
138
|
+
)));
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
// src/mantine/blocks/action/actionTypes/_shared/groupExecution/GroupProposalStatus.tsx
|
|
142
|
+
import React2, { useCallback, useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
|
|
143
|
+
import { Alert as Alert2, Card, Group as Group2, Loader as Loader2, Stack as Stack2, Text as Text2 } from "@mantine/core";
|
|
144
|
+
import { IconUsersGroup as IconUsersGroup2 } from "@tabler/icons-react";
|
|
145
|
+
var GROUP_PROPOSAL_READBACK_KIND = "group-proposal";
|
|
146
|
+
var POLL_INTERVAL_MS = 15e3;
|
|
147
|
+
var KNOWN_PROPOSAL_STATUSES = /* @__PURE__ */ new Set(["open", "passed", "executed", "rejected", "closed", "execution_failed", "veto_timelock", "vetoed"]);
|
|
148
|
+
var MAX_UNRECOGNIZED_STATUS_POLLS = 8;
|
|
149
|
+
var MAX_COLLECTION_REFRESH_ATTEMPTS = 4;
|
|
150
|
+
async function resolveGroupProposal(handlers, runtime, counters) {
|
|
151
|
+
const readBack = runtime.readBack || {};
|
|
152
|
+
const proposalId = String(readBack.proposalId || "");
|
|
153
|
+
const proposalContractAddress = String(readBack.proposalContractAddress || "");
|
|
154
|
+
if (!proposalId || !proposalContractAddress) {
|
|
155
|
+
return { state: "failed", error: "Group proposal metadata is missing from this block\u2019s runtime." };
|
|
156
|
+
}
|
|
157
|
+
const res = await handlers.getProposal(proposalContractAddress, proposalId);
|
|
158
|
+
const status = String(res?.proposal?.status || "");
|
|
159
|
+
if (KNOWN_PROPOSAL_STATUSES.has(status)) {
|
|
160
|
+
counters.unrecognizedStatusPolls = 0;
|
|
161
|
+
} else {
|
|
162
|
+
counters.unrecognizedStatusPolls += 1;
|
|
163
|
+
if (counters.unrecognizedStatusPolls >= MAX_UNRECOGNIZED_STATUS_POLLS) {
|
|
164
|
+
const statusLabel = status ? `'${status}'` : "an empty status";
|
|
165
|
+
return {
|
|
166
|
+
state: "failed",
|
|
167
|
+
error: `Proposal ended in an unrecognized state ${statusLabel} \u2014 check the proposal in your POD's decisions page.`
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
return { state: "pending" };
|
|
171
|
+
}
|
|
172
|
+
if (status === "open") return { state: "pending" };
|
|
173
|
+
if (status === "passed") {
|
|
174
|
+
try {
|
|
175
|
+
await handlers.executeProposal({ proposalId: Number(proposalId), proposalContractAddress });
|
|
176
|
+
} catch {
|
|
177
|
+
}
|
|
178
|
+
return { state: "pending" };
|
|
179
|
+
}
|
|
180
|
+
if (status === "executed") {
|
|
181
|
+
const baseOutput = { ...runtime.output || {} };
|
|
182
|
+
delete baseOutput.groupExecution;
|
|
183
|
+
const finalize = String(readBack.finalize || "");
|
|
184
|
+
const finalizeParams = readBack.finalizeParams || {};
|
|
185
|
+
let extra = {};
|
|
186
|
+
let collectionRefreshFailed = false;
|
|
187
|
+
if (finalize === "bid.submit") {
|
|
188
|
+
const submission = await handlers.submitBid(finalizeParams);
|
|
189
|
+
const bidId = String(submission?.bidId || submission?.claimId || submission?.id || "");
|
|
190
|
+
if (!bidId) return { state: "failed", error: "The POD approved the bid, but submitting it returned no bid identifier." };
|
|
191
|
+
extra = { bidId };
|
|
192
|
+
} else if (finalize === "bid.approve") {
|
|
193
|
+
await handlers.approveBid(finalizeParams);
|
|
194
|
+
} else if (finalize === "bid.reject") {
|
|
195
|
+
await handlers.rejectBid(finalizeParams);
|
|
196
|
+
} else if (finalize === "collection.refresh") {
|
|
197
|
+
let refreshedState = null;
|
|
198
|
+
try {
|
|
199
|
+
const state = await handlers.collection?.get({ collectionId: finalizeParams.collectionId });
|
|
200
|
+
if (state && typeof state === "object") refreshedState = state;
|
|
201
|
+
} catch {
|
|
202
|
+
}
|
|
203
|
+
if (refreshedState) {
|
|
204
|
+
extra = refreshedState;
|
|
205
|
+
counters.collectionRefreshAttempts = 0;
|
|
206
|
+
} else {
|
|
207
|
+
counters.collectionRefreshAttempts += 1;
|
|
208
|
+
if (counters.collectionRefreshAttempts < MAX_COLLECTION_REFRESH_ATTEMPTS) {
|
|
209
|
+
return {
|
|
210
|
+
state: "pending",
|
|
211
|
+
// Persisted onto runtime.readBack so the component can surface
|
|
212
|
+
// "executed but refreshing" while the retries run.
|
|
213
|
+
readBack: { collectionRefreshAttempts: counters.collectionRefreshAttempts }
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
collectionRefreshFailed = true;
|
|
217
|
+
console.warn(
|
|
218
|
+
`[group-proposal] collection.refresh failed ${counters.collectionRefreshAttempts} times for collection "${String(finalizeParams.collectionId || "")}" \u2014 completing block "${String(readBack.blockId || "")}" with the pre-update collection snapshot.`
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
} else if (finalize === "collection.create-resolve") {
|
|
222
|
+
const resolveCreated = handlers.resolveGroupCreatedCollection;
|
|
223
|
+
if (typeof resolveCreated !== "function") {
|
|
224
|
+
return { state: "failed", error: "The proposal executed, but this host cannot resolve the created collection (resolveGroupCreatedCollection missing)." };
|
|
225
|
+
}
|
|
226
|
+
const resolved = await resolveCreated({
|
|
227
|
+
entityDid: finalizeParams.entityDid,
|
|
228
|
+
protocolDid: finalizeParams.protocolDid,
|
|
229
|
+
priorCollectionIds: Array.isArray(finalizeParams.priorCollectionIds) ? finalizeParams.priorCollectionIds : []
|
|
230
|
+
});
|
|
231
|
+
const newId = String(resolved?.collectionId || "");
|
|
232
|
+
if (!newId) return { state: "pending" };
|
|
233
|
+
extra = { collectionId: newId };
|
|
234
|
+
try {
|
|
235
|
+
const state = await handlers.collection?.get({ collectionId: newId });
|
|
236
|
+
if (state && typeof state === "object") extra = { ...state, collectionId: newId };
|
|
237
|
+
} catch {
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const output = { ...baseOutput, ...extra };
|
|
241
|
+
const completionEvent = String(readBack.completionEvent || "");
|
|
242
|
+
return {
|
|
243
|
+
state: "completed",
|
|
244
|
+
output,
|
|
245
|
+
events: completionEvent ? [{ name: completionEvent, payload: output }] : [],
|
|
246
|
+
...finalize === "collection.refresh" ? {
|
|
247
|
+
readBack: collectionRefreshFailed ? (
|
|
248
|
+
// Recorded in the persisted read-back metadata so the stale
|
|
249
|
+
// snapshot is diagnosable after the fact.
|
|
250
|
+
{ collectionRefreshAttempts: counters.collectionRefreshAttempts, collectionRefreshFailed: true }
|
|
251
|
+
) : { collectionRefreshAttempts: 0 }
|
|
252
|
+
} : {}
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
if (status === "rejected" || status === "closed" || status === "execution_failed" || status === "veto_timelock" || status === "vetoed") {
|
|
256
|
+
let error = `The POD's proposal was ${status.replace(/_/g, " ")} \u2014 the action did not happen.`;
|
|
257
|
+
if (String(readBack.actionType || "") === "qi/claim.submit") {
|
|
258
|
+
error += " The draft claim was already published to the POD's data room, but it was never submitted on-chain. Once the issue is resolved it is safe to run this block again \u2014 no duplicate on-chain claim will be created.";
|
|
259
|
+
}
|
|
260
|
+
return { state: "failed", error };
|
|
261
|
+
}
|
|
262
|
+
return { state: "pending" };
|
|
263
|
+
}
|
|
264
|
+
var GroupProposalStatus = ({ editor, block, runtime, actorDid }) => {
|
|
265
|
+
const handlers = useBlocknoteHandlers();
|
|
266
|
+
const handlersRef = useRef2(handlers);
|
|
267
|
+
handlersRef.current = handlers;
|
|
268
|
+
const sessionRunId = useRunSessionId();
|
|
269
|
+
const readBack = runtime.readBack || {};
|
|
270
|
+
const active = runtime.state === "awaiting_readback" && readBack.kind === GROUP_PROPOSAL_READBACK_KIND;
|
|
271
|
+
const proposalId = String(readBack.proposalId || "");
|
|
272
|
+
const proposalContractAddress = String(readBack.proposalContractAddress || "");
|
|
273
|
+
const [reconciling, setReconciling] = useState2(false);
|
|
274
|
+
const [lastError, setLastError] = useState2(null);
|
|
275
|
+
const inFlightRef = useRef2(false);
|
|
276
|
+
const countersRef = useRef2({ collectionRefreshAttempts: 0, unrecognizedStatusPolls: 0 });
|
|
277
|
+
const reconcile = useCallback(async () => {
|
|
278
|
+
if (inFlightRef.current) return;
|
|
279
|
+
inFlightRef.current = true;
|
|
280
|
+
setReconciling(true);
|
|
281
|
+
try {
|
|
282
|
+
await reconcileActionReadBack({
|
|
283
|
+
editorOrYDoc: editor,
|
|
284
|
+
blockId: block.id,
|
|
285
|
+
actorDid,
|
|
286
|
+
runId: sessionRunId,
|
|
287
|
+
resolver: async ({ runtime: currentRuntime }) => resolveGroupProposal(handlersRef.current, currentRuntime, countersRef.current)
|
|
288
|
+
});
|
|
289
|
+
setLastError(null);
|
|
290
|
+
} catch (err) {
|
|
291
|
+
setLastError(err instanceof Error ? err.message : "Failed to check the proposal status");
|
|
292
|
+
} finally {
|
|
293
|
+
inFlightRef.current = false;
|
|
294
|
+
setReconciling(false);
|
|
295
|
+
}
|
|
296
|
+
}, [editor, block?.id, actorDid, sessionRunId]);
|
|
297
|
+
useEffect2(() => {
|
|
298
|
+
if (!active) return void 0;
|
|
299
|
+
countersRef.current = { collectionRefreshAttempts: 0, unrecognizedStatusPolls: 0 };
|
|
300
|
+
void reconcile();
|
|
301
|
+
const interval = setInterval(() => void reconcile(), POLL_INTERVAL_MS);
|
|
302
|
+
return () => clearInterval(interval);
|
|
303
|
+
}, [active, reconcile]);
|
|
304
|
+
if (!active) return null;
|
|
305
|
+
return /* @__PURE__ */ React2.createElement(Stack2, { gap: "sm" }, /* @__PURE__ */ React2.createElement(Card, { padding: "md", radius: "md", withBorder: true, style: { borderColor: "var(--mantine-color-blue-6)" } }, /* @__PURE__ */ React2.createElement(Group2, { gap: "xs", align: "center" }, /* @__PURE__ */ React2.createElement(IconUsersGroup2, { size: 16, color: "var(--mantine-color-blue-6)" }), /* @__PURE__ */ React2.createElement(Text2, { size: "sm", fw: 600 }, "Waiting for the POD to vote"), reconciling && /* @__PURE__ */ React2.createElement(Loader2, { size: "xs" })), /* @__PURE__ */ React2.createElement(Text2, { size: "sm", c: "dimmed", mt: 4 }, "Proposal #", proposalId, " was created on the POD's behalf. This step completes automatically once the proposal passes and executes \u2014 no further signature from you is needed", readBack.finalize === "bid.submit" ? ", except the bid itself which is sent once the POD approves" : "", "."), Number(readBack.collectionRefreshAttempts || 0) > 0 && /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", mt: 4 }, "The proposal has executed, but the collection's live state could not be refreshed yet \u2014 retrying.")), proposalContractAddress && proposalId && /* @__PURE__ */ React2.createElement(ProposalOverviewCard, { proposalContractAddress, proposalId }), lastError && /* @__PURE__ */ React2.createElement(Alert2, { color: "orange", styles: actionAlertStyles }, /* @__PURE__ */ React2.createElement(Text2, { size: "xs" }, "Status check failed (will retry): ", lastError)));
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
export {
|
|
309
|
+
emptyActAsGroupState,
|
|
310
|
+
actAsGroupReady,
|
|
311
|
+
actAsGroupRuntimeInputs,
|
|
312
|
+
ActAsGroupSection,
|
|
313
|
+
GroupProposalStatus
|
|
314
|
+
};
|
|
315
|
+
//# sourceMappingURL=chunk-2WPEATI7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/_shared/groupExecution/ActAsGroupSection.tsx","../src/mantine/blocks/action/actionTypes/_shared/groupExecution/GroupProposalStatus.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Alert, Group, Loader, SegmentedControl, Stack, Text, Tooltip } from '@mantine/core';\nimport type { ComboboxItem, SelectProps } from '@mantine/core';\nimport { IconInfoCircle, IconUsersGroup } from '@tabler/icons-react';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport type { DAOGroup, DAOGroupAuthzFilter } from '@/mantine/context/BlocknoteContext';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport { ProposalMetadataFields, proposalMetadataValid } from '../../governance/_shared/ProposalMetadataFields';\n\n/**\n * \"Acting as\" selector for work blocks (claim / evaluate / bid / collection):\n * the user runs the action as themselves (default, unchanged behavior) or on\n * behalf of one of the PODs they are a member of — the host's getDAOGroups\n * is membership-scoped, so the list is the same on every domain. Group mode\n * collects the proposal name + description voters will see, and signing\n * creates a governance proposal instead of broadcasting — the block completes\n * when the proposal passes and executes.\n */\nexport interface ActAsGroupState {\n actAsGroup: boolean;\n groupCoreAddress: string;\n proposalTitle: string;\n proposalDescription: string;\n}\n\nexport function emptyActAsGroupState(): ActAsGroupState {\n return { actAsGroup: false, groupCoreAddress: '', proposalTitle: '', proposalDescription: '' };\n}\n\n/** Whether the selection is complete enough to sign. */\nexport function actAsGroupReady(state: ActAsGroupState): boolean {\n if (!state.actAsGroup) return true;\n return state.groupCoreAddress.trim().length > 0 && proposalMetadataValid(state.proposalTitle, state.proposalDescription);\n}\n\n/** The runtime inputs to merge into `executeAction` for the selection. */\nexport function actAsGroupRuntimeInputs(state: ActAsGroupState): Record<string, any> {\n if (!state.actAsGroup) return {};\n return {\n actAsGroup: true,\n groupCoreAddress: state.groupCoreAddress.trim(),\n proposalTitle: state.proposalTitle.trim(),\n proposalDescription: state.proposalDescription.trim(),\n };\n}\n\nconst shortPodAddress = (address: string): string => (address.length > 20 ? `${address.slice(0, 10)}…${address.slice(-6)}` : address);\n\n/** Match on the visible label or the core address, so pasting an address finds the POD. */\nexport const podFilter: SelectProps['filter'] = ({ options, search }) => {\n const query = search.toLowerCase().trim();\n if (!query) return options;\n return (options as ComboboxItem[]).filter((option) => option.label.toLowerCase().includes(query) || option.value.toLowerCase().includes(query));\n};\n\n/**\n * Alphabetical select options labelled \"name — governing domain\" where the\n * host resolved the domain. Duplicate POD names are common (e.g. several\n * \"Custodians\"); any label still ambiguous after the domain suffix gets the\n * core address appended so every option stays tellable apart.\n */\nexport const buildPodOptions = (groups: DAOGroup[]): ComboboxItem[] => {\n const labelled = [...groups]\n .map((group) => ({ group, label: group.domainName ? `${group.name} — ${group.domainName}` : group.name }))\n .sort((a, b) => a.label.localeCompare(b.label));\n\n const labelCounts = new Map<string, number>();\n for (const { label } of labelled) labelCounts.set(label, (labelCounts.get(label) ?? 0) + 1);\n\n return labelled.map(({ group, label }) => ({\n value: group.coreAddress,\n label: (labelCounts.get(label) ?? 0) > 1 ? `${label} (${shortPodAddress(group.coreAddress)})` : label,\n }));\n};\n\nexport const ActAsGroupSection: React.FC<{\n value: ActAsGroupState;\n onChange: (state: ActAsGroupState) => void;\n isDisabled?: boolean;\n /** What the group is about to approve, e.g. \"submit this claim\". */\n actionLabel?: string;\n /**\n * When set, only PODs holding the required claim authorization for the\n * collection are offered — a group without it would pass the vote and then\n * fail at proposal execution with no visible error.\n */\n authzFilter?: DAOGroupAuthzFilter;\n}> = ({ value, onChange, isDisabled, actionLabel, authzFilter }) => {\n const handlers = useBlocknoteHandlers();\n const handlersRef = useRef(handlers);\n handlersRef.current = handlers;\n\n const [groups, setGroups] = useState<DAOGroup[]>([]);\n const [loading, setLoading] = useState(false);\n\n // Serialized so a parent re-render with an identical inline filter object\n // does not refetch; a genuinely different filter (e.g. collection resolved)\n // does.\n const authzFilterKey = JSON.stringify(authzFilter ?? null);\n\n useEffect(() => {\n let cancelled = false;\n const load = async () => {\n const h = handlersRef.current;\n if (!h?.getDAOGroups) return;\n setLoading(true);\n try {\n const filter = authzFilterKey === 'null' ? undefined : (JSON.parse(authzFilterKey) as DAOGroupAuthzFilter);\n const res = await h.getDAOGroups(filter);\n if (!cancelled) setGroups(res || []);\n } catch (error) {\n // No PODs — the selector stays on \"Myself\".\n console.warn('[act-as-group] getDAOGroups failed', error);\n } finally {\n if (!cancelled) setLoading(false);\n }\n };\n void load();\n return () => {\n cancelled = true;\n };\n }, [authzFilterKey]);\n\n const podOptions = useMemo<ComboboxItem[]>(() => buildPodOptions(groups), [groups]);\n\n // The host doesn't implement group execution, or the user is in no PODs —\n // nothing to offer; the block behaves exactly as before. Nothing renders\n // while the membership lookup is in flight either, so a POD-less user never\n // flashes a selector that is about to disappear.\n const available = groups.length > 0 && typeof (handlers as any)?.createGroupExecutionProposal === 'function';\n if (!available) return null;\n\n const update = (patch: Partial<ActAsGroupState>) => onChange({ ...value, ...patch });\n\n return (\n <Stack gap=\"sm\">\n <Stack gap={4}>\n <Text size=\"sm\" fw={500}>\n Acting as\n </Text>\n <SegmentedControl\n value={value.actAsGroup ? 'group' : 'self'}\n onChange={(v) => {\n const asGroup = v === 'group';\n update({\n actAsGroup: asGroup,\n // Auto-select when the user belongs to exactly one POD.\n groupCoreAddress: asGroup && !value.groupCoreAddress && groups.length === 1 ? groups[0].coreAddress : value.groupCoreAddress,\n });\n }}\n data={[\n { label: 'Myself', value: 'self' },\n { label: 'My POD', value: 'group' },\n ]}\n disabled={isDisabled || loading}\n size=\"sm\"\n />\n </Stack>\n\n {value.actAsGroup && (\n <>\n <BaseSelect\n label={\n <Group gap={4} display=\"inline-flex\">\n POD\n {value.groupCoreAddress && (\n <Tooltip label={value.groupCoreAddress} withArrow multiline maw={440} events={{ hover: true, focus: true, touch: true }}>\n <IconInfoCircle size={13} style={{ opacity: 0.6, cursor: 'help', verticalAlign: 'middle' }} />\n </Tooltip>\n )}\n </Group>\n }\n description=\"One of your PODs — the action is performed on its behalf.\"\n placeholder={loading ? 'Loading your PODs…' : 'Search or select a POD'}\n value={value.groupCoreAddress || null}\n onChange={(v) => update({ groupCoreAddress: v || '' })}\n data={podOptions}\n filter={podFilter}\n renderOption={({ option }) => (\n <Stack gap={0}>\n <Text size=\"sm\">{option.label}</Text>\n <Text size=\"xs\" c=\"dimmed\">\n {shortPodAddress(option.value)}\n </Text>\n </Stack>\n )}\n nothingFoundMessage=\"No POD matches your search\"\n maxDropdownHeight={280}\n allowDeselect={false}\n disabled={isDisabled || loading}\n rightSection={loading ? <Loader size=\"xs\" /> : undefined}\n searchable\n size=\"sm\"\n />\n\n <Alert icon={<IconUsersGroup size={16} />} color=\"blue\" styles={actionAlertStyles}>\n <Text size=\"sm\">\n Signing creates a proposal for the POD to vote on{actionLabel ? ` — “${actionLabel}”` : ''}. The action only happens once the proposal passes, and it happens as the\n group, not as you.\n </Text>\n </Alert>\n\n <ProposalMetadataFields\n title={value.proposalTitle}\n description={value.proposalDescription}\n onTitleChange={(proposalTitle) => update({ proposalTitle })}\n onDescriptionChange={(proposalDescription) => update({ proposalDescription })}\n isDisabled={isDisabled}\n />\n </>\n )}\n </Stack>\n );\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Alert, Card, Group, Loader, Stack, Text } from '@mantine/core';\nimport { IconUsersGroup } from '@tabler/icons-react';\nimport { reconcileActionReadBack, type ActionReadBackResolution } from '@/core/lib/flowEngine';\nimport type { FlowNodeRuntimeState } from '@/core/types';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport type { BlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\nimport { useRunSessionId } from '@/mantine/flow/runSessionContext';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport { ProposalOverviewCard } from '../../governance/_shared/ProposalOverviewCard';\n\nconst GROUP_PROPOSAL_READBACK_KIND = 'group-proposal';\nconst POLL_INTERVAL_MS = 15000;\n\n/** Every proposal status this resolver knows how to react to. Anything else\n * is treated as a contract drift and bounded by\n * MAX_UNRECOGNIZED_STATUS_POLLS instead of pending forever. */\nconst KNOWN_PROPOSAL_STATUSES = new Set(['open', 'passed', 'executed', 'rejected', 'closed', 'execution_failed', 'veto_timelock', 'vetoed']);\n\n/** How many consecutive polls may observe an unrecognized proposal status\n * before the block fails with a readable error (~2 min at 15s polls). */\nconst MAX_UNRECOGNIZED_STATUS_POLLS = 8;\n\n/** How many polls may retry a failed `collection.refresh` finalize read\n * before completing with the pre-update snapshot (~1 min at 15s polls). */\nconst MAX_COLLECTION_REFRESH_ATTEMPTS = 4;\n\n/**\n * Per-mount poll counters, owned by the component via a ref (the poll loop\n * lives in the component). Not persisted: a reload restarts the bounds, which\n * only means a few extra polls before the same terminal decision is reached.\n */\ninterface GroupProposalPollCounters {\n collectionRefreshAttempts: number;\n unrecognizedStatusPolls: number;\n}\n\n/**\n * Resolve a group-proposal read-back against the current on-chain proposal\n * status:\n * open → pending (keep waiting)\n * passed → try to execute it, then keep waiting\n * executed → run the finalize step (Matrix side effects\n * a proposal can't execute), then complete\n * with the expected output\n * rejected / closed / failed → failed\n * anything else → pending, bounded — after\n * MAX_UNRECOGNIZED_STATUS_POLLS consecutive\n * sightings the block fails with the raw\n * status in the message\n */\nasync function resolveGroupProposal(handlers: BlocknoteHandlers, runtime: FlowNodeRuntimeState, counters: GroupProposalPollCounters): Promise<ActionReadBackResolution> {\n const readBack = (runtime.readBack || {}) as Record<string, any>;\n const proposalId = String(readBack.proposalId || '');\n const proposalContractAddress = String(readBack.proposalContractAddress || '');\n if (!proposalId || !proposalContractAddress) {\n return { state: 'failed', error: 'Group proposal metadata is missing from this block’s runtime.' };\n }\n\n const res = await handlers.getProposal(proposalContractAddress, proposalId);\n const status = String(res?.proposal?.status || '');\n\n if (KNOWN_PROPOSAL_STATUSES.has(status)) {\n counters.unrecognizedStatusPolls = 0;\n } else {\n // A status this resolver does not know (contract enum drift, or a query\n // that returned no status). Staying pending forever would leave the block\n // awaiting a state transition that will never be recognized — bound it.\n counters.unrecognizedStatusPolls += 1;\n if (counters.unrecognizedStatusPolls >= MAX_UNRECOGNIZED_STATUS_POLLS) {\n const statusLabel = status ? `'${status}'` : 'an empty status';\n return {\n state: 'failed',\n error: `Proposal ended in an unrecognized state ${statusLabel} — check the proposal in your POD's decisions page.`,\n };\n }\n return { state: 'pending' };\n }\n\n if (status === 'open') return { state: 'pending' };\n\n if (status === 'passed') {\n // Passed but not yet executed — execution is permissionless for members;\n // try it so the flow doesn't stall on a manual step.\n try {\n await handlers.executeProposal({ proposalId: Number(proposalId), proposalContractAddress });\n } catch {\n // Someone else may execute it; keep polling either way.\n }\n return { state: 'pending' };\n }\n\n if (status === 'executed') {\n const baseOutput = { ...(runtime.output || {}) } as Record<string, any>;\n delete baseOutput.groupExecution;\n\n // Finalize: off-chain side effects the proposal could not execute.\n const finalize = String(readBack.finalize || '');\n const finalizeParams = (readBack.finalizeParams || {}) as Record<string, any>;\n let extra: Record<string, any> = {};\n let collectionRefreshFailed = false;\n if (finalize === 'bid.submit') {\n const submission = await handlers.submitBid(finalizeParams as any);\n const bidId = String((submission as any)?.bidId || (submission as any)?.claimId || (submission as any)?.id || '');\n if (!bidId) return { state: 'failed', error: 'The POD approved the bid, but submitting it returned no bid identifier.' };\n extra = { bidId };\n } else if (finalize === 'bid.approve') {\n await handlers.approveBid(finalizeParams as any);\n } else if (finalize === 'bid.reject') {\n await handlers.rejectBid(finalizeParams as any);\n } else if (finalize === 'collection.refresh') {\n // The proposal's update already executed on-chain; this read only pulls\n // the post-update collection state so the block's output does not lock\n // in the pre-update snapshot (`expectedOutput` was built before the\n // proposal ran). A failed read must therefore NOT complete the block\n // silently — stay pending and retry on the next polls, bounded so a\n // permanently broken read still terminates.\n let refreshedState: Record<string, any> | null = null;\n try {\n const state = await (handlers as any).collection?.get({ collectionId: finalizeParams.collectionId });\n if (state && typeof state === 'object') refreshedState = state as Record<string, any>;\n } catch {\n // Counted as a failed attempt below, same as an empty read.\n }\n if (refreshedState) {\n extra = refreshedState;\n counters.collectionRefreshAttempts = 0;\n } else {\n counters.collectionRefreshAttempts += 1;\n if (counters.collectionRefreshAttempts < MAX_COLLECTION_REFRESH_ATTEMPTS) {\n return {\n state: 'pending',\n // Persisted onto runtime.readBack so the component can surface\n // \"executed but refreshing\" while the retries run.\n readBack: { collectionRefreshAttempts: counters.collectionRefreshAttempts },\n };\n }\n collectionRefreshFailed = true;\n console.warn(\n `[group-proposal] collection.refresh failed ${counters.collectionRefreshAttempts} times for collection ` +\n `\"${String(finalizeParams.collectionId || '')}\" — completing block \"${String(readBack.blockId || '')}\" with the pre-update collection snapshot.`\n );\n }\n } else if (finalize === 'collection.create-resolve') {\n // The MsgCreateCollection executed inside the proposal, so the new id\n // never passed through this client — resolve it by diffing the entity's\n // live collection list against the prepare-time snapshot.\n const resolveCreated = (handlers as any).resolveGroupCreatedCollection;\n if (typeof resolveCreated !== 'function') {\n return { state: 'failed', error: 'The proposal executed, but this host cannot resolve the created collection (resolveGroupCreatedCollection missing).' };\n }\n const resolved = await resolveCreated({\n entityDid: finalizeParams.entityDid,\n protocolDid: finalizeParams.protocolDid,\n priorCollectionIds: Array.isArray(finalizeParams.priorCollectionIds) ? finalizeParams.priorCollectionIds : [],\n });\n const newId = String(resolved?.collectionId || '');\n // Indexer lag: the collection exists on-chain but isn't queryable yet —\n // stay pending and let the next poll resolve it.\n if (!newId) return { state: 'pending' };\n extra = { collectionId: newId };\n try {\n const state = await (handlers as any).collection?.get({ collectionId: newId });\n if (state && typeof state === 'object') extra = { ...state, collectionId: newId };\n } catch {\n // The create executed and the id is known; full state is best-effort.\n }\n }\n\n const output = { ...baseOutput, ...extra };\n const completionEvent = String(readBack.completionEvent || '');\n return {\n state: 'completed',\n output,\n events: completionEvent ? [{ name: completionEvent, payload: output }] : [],\n ...(finalize === 'collection.refresh'\n ? {\n readBack: collectionRefreshFailed\n ? // Recorded in the persisted read-back metadata so the stale\n // snapshot is diagnosable after the fact.\n { collectionRefreshAttempts: counters.collectionRefreshAttempts, collectionRefreshFailed: true }\n : { collectionRefreshAttempts: 0 },\n }\n : {}),\n };\n }\n\n if (status === 'rejected' || status === 'closed' || status === 'execution_failed' || status === 'veto_timelock' || status === 'vetoed') {\n let error = `The POD's proposal was ${status.replace(/_/g, ' ')} — the action did not happen.`;\n // The claim block publishes the draft claim to the POD's data room at\n // prepare time (prepareGroupClaimSubmission); only the on-chain\n // MsgSubmitClaim rode on the proposal. Spell that split out so the user\n // knows what state they are in and that a re-run cannot double-submit.\n // `readBack.actionType` is stamped by normalizeActionReadBackMetadata\n // when the run enters awaiting_readback.\n if (String(readBack.actionType || '') === 'qi/claim.submit') {\n error +=\n \" The draft claim was already published to the POD's data room, but it was never submitted on-chain.\" +\n ' Once the issue is resolved it is safe to run this block again — no duplicate on-chain claim will be created.';\n }\n return { state: 'failed', error };\n }\n\n return { state: 'pending' };\n}\n\n/**\n * Waiting UI + reconciliation driver for a block whose run is awaiting a\n * group proposal. Render unconditionally from a FlowDetail — it renders\n * nothing unless the block's runtime is in the group-proposal read-back\n * state. While active it polls the proposal, auto-executes it when passed,\n * finalizes off-chain steps, and completes or fails the block via the flow\n * engine's read-back reconciler.\n */\nexport const GroupProposalStatus: React.FC<{\n editor: any;\n block: any;\n runtime: FlowNodeRuntimeState;\n actorDid?: string;\n}> = ({ editor, block, runtime, actorDid }) => {\n const handlers = useBlocknoteHandlers();\n const handlersRef = useRef(handlers);\n handlersRef.current = handlers;\n // Session-based (multi-run) docs refuse execution-side writes without an\n // explicit run id, so the read-back reconciler must be told which session\n // this surface is showing — the advisory active-run fallback only exists\n // for legacy documents.\n const sessionRunId = useRunSessionId();\n\n const readBack = (runtime.readBack || {}) as Record<string, any>;\n const active = runtime.state === 'awaiting_readback' && readBack.kind === GROUP_PROPOSAL_READBACK_KIND;\n const proposalId = String(readBack.proposalId || '');\n const proposalContractAddress = String(readBack.proposalContractAddress || '');\n\n const [reconciling, setReconciling] = useState(false);\n const [lastError, setLastError] = useState<string | null>(null);\n const inFlightRef = useRef(false);\n const countersRef = useRef<GroupProposalPollCounters>({ collectionRefreshAttempts: 0, unrecognizedStatusPolls: 0 });\n\n const reconcile = useCallback(async () => {\n if (inFlightRef.current) return;\n inFlightRef.current = true;\n setReconciling(true);\n try {\n await reconcileActionReadBack({\n editorOrYDoc: editor,\n blockId: block.id,\n actorDid,\n runId: sessionRunId,\n resolver: async ({ runtime: currentRuntime }) => resolveGroupProposal(handlersRef.current, currentRuntime, countersRef.current),\n });\n setLastError(null);\n } catch (err) {\n setLastError(err instanceof Error ? err.message : 'Failed to check the proposal status');\n } finally {\n inFlightRef.current = false;\n setReconciling(false);\n }\n }, [editor, block?.id, actorDid, sessionRunId]);\n\n useEffect(() => {\n if (!active) return undefined;\n // Fresh poll run (new activation, or a different block/actor) → fresh\n // bounds for the unrecognized-status and refresh-retry counters.\n countersRef.current = { collectionRefreshAttempts: 0, unrecognizedStatusPolls: 0 };\n void reconcile();\n const interval = setInterval(() => void reconcile(), POLL_INTERVAL_MS);\n return () => clearInterval(interval);\n }, [active, reconcile]);\n\n if (!active) return null;\n\n return (\n <Stack gap=\"sm\">\n <Card padding=\"md\" radius=\"md\" withBorder style={{ borderColor: 'var(--mantine-color-blue-6)' }}>\n <Group gap=\"xs\" align=\"center\">\n <IconUsersGroup size={16} color=\"var(--mantine-color-blue-6)\" />\n <Text size=\"sm\" fw={600}>\n Waiting for the POD to vote\n </Text>\n {reconciling && <Loader size=\"xs\" />}\n </Group>\n <Text size=\"sm\" c=\"dimmed\" mt={4}>\n Proposal #{proposalId} was created on the POD's behalf. This step completes automatically once the proposal passes and executes — no further signature from you is\n needed{readBack.finalize === 'bid.submit' ? ', except the bid itself which is sent once the POD approves' : ''}.\n </Text>\n {Number(readBack.collectionRefreshAttempts || 0) > 0 && (\n <Text size=\"xs\" c=\"dimmed\" mt={4}>\n The proposal has executed, but the collection's live state could not be refreshed yet — retrying.\n </Text>\n )}\n </Card>\n\n {proposalContractAddress && proposalId && <ProposalOverviewCard proposalContractAddress={proposalContractAddress} proposalId={proposalId} />}\n\n {lastError && (\n <Alert color=\"orange\" styles={actionAlertStyles}>\n <Text size=\"xs\">Status check failed (will retry): {lastError}</Text>\n </Alert>\n )}\n </Stack>\n );\n};\n"],"mappings":"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","names":["React","useEffect","useRef","useState","Alert","Group","Loader","Stack","Text","IconUsersGroup","useRef","useState","useEffect","React","Stack","Group","IconUsersGroup","Text","Loader","Alert"]}
|