@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/matrixDm/MatrixDmConfig.tsx","../src/mantine/blocks/action/actionTypes/matrixDm/types.ts"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Flex, Stack, Text } from '@mantine/core';\nimport BaseSelect from '@/mantine/components/Base/BaseSelect';\nimport BaseTextArea from '@/mantine/components/Base/BaseTextArea';\nimport BaseAvatar from '@/mantine/components/Base/BaseAvatar';\nimport type { ActionTypeConfigProps } from '../../actionTypeUI';\nimport { parseMatrixDmInputs, serializeMatrixDmInputs, type MatrixDmInputs } from './types';\nimport { AwarenessDocActor, useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\n\nexport const MatrixDmConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange, editor }) => {\n const handlers = useBlocknoteHandlers();\n const [local, setLocal] = useState<MatrixDmInputs>(() => parseMatrixDmInputs(inputs));\n const [roomMembers, setRoomMembers] = useState<AwarenessDocActor[]>([]);\n const [searchValue, setSearchValue] = useState('');\n\n const roomId = editor?.getRoomId?.() || null;\n const mx = editor?.getMatrixClient?.() || null;\n\n useEffect(() => {\n setLocal(parseMatrixDmInputs(inputs));\n }, [inputs]);\n\n useEffect(() => {\n (async () => {\n if (!roomId || !mx) return;\n try {\n const members = await handlers.getRoomMembers(roomId, mx);\n setRoomMembers(members);\n } catch (error) {\n console.error('MatrixDmConfig: Failed to fetch room members:', error);\n }\n })();\n }, [roomId, mx]);\n\n const update = useCallback(\n (patch: Partial<MatrixDmInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeMatrixDmInputs(updated));\n },\n [local, onInputsChange]\n );\n\n const selectData = useMemo(() => {\n return roomMembers.map((member) => ({\n value: member.did,\n label: member.name || member.did,\n }));\n }, [roomMembers]);\n\n const memberLookup = useMemo(() => {\n const lookup: Record<string, AwarenessDocActor> = {};\n roomMembers.forEach((member) => {\n lookup[member.did] = member;\n });\n return lookup;\n }, [roomMembers]);\n\n const selectedMember = local.targetDid ? memberLookup[local.targetDid] : undefined;\n\n return (\n <Stack gap=\"md\">\n <BaseSelect\n label=\"Recipient\"\n description=\"Select a person from this flow or search by name\"\n placeholder=\"Search for a recipient...\"\n searchable\n value={local.targetDid || null}\n onChange={(value) => update({ targetDid: value || '' })}\n searchValue={searchValue}\n onSearchChange={setSearchValue}\n data={selectData}\n clearable\n required\n renderOption={({ option, checked }) => {\n const member = memberLookup[option.value];\n if (!member) return <Text size=\"sm\">{option.label}</Text>;\n\n return (\n <Flex align=\"center\" gap=\"sm\">\n <BaseAvatar src={member.src} did={member.did} size={24} />\n <Text size=\"sm\" c={checked ? 'accent' : undefined}>\n {option.label}\n </Text>\n </Flex>\n );\n }}\n leftSection={selectedMember ? <BaseAvatar src={selectedMember.src} did={selectedMember.did} size={20} withCenter /> : null}\n />\n\n <BaseTextArea\n label=\"Message\"\n description=\"The message to send as a direct message\"\n placeholder=\"Enter the message to send...\"\n value={local.message}\n onChange={(event) => update({ message: event.currentTarget.value })}\n minRows={3}\n required\n />\n </Stack>\n );\n};\n","export interface MatrixDmInputs {\n targetDid: string;\n message: string;\n}\n\nexport function parseMatrixDmInputs(json: string): MatrixDmInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n targetDid: parsed?.targetDid || '',\n message: parsed?.message || '',\n };\n } catch {\n return {\n targetDid: '',\n message: '',\n };\n }\n}\n\nexport function serializeMatrixDmInputs(inputs: MatrixDmInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,SAAS,gBAAgB;AACjE,SAAS,MAAM,OAAO,YAAY;;;ACI3B,SAAS,oBAAoB,MAA8B;AAChE,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,WAAW,QAAQ,aAAa;AAAA,MAChC,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEO,SAAS,wBAAwB,QAAgC;AACtE,SAAO,KAAK,UAAU,MAAM;AAC9B;;;ADbO,IAAM,iBAAkD,CAAC,EAAE,QAAQ,gBAAgB,OAAO,MAAM;AACrG,QAAM,WAAW,qBAAqB;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAyB,MAAM,oBAAoB,MAAM,CAAC;AACpF,QAAM,CAAC,aAAa,cAAc,IAAI,SAA8B,CAAC,CAAC;AACtE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AAEjD,QAAM,SAAS,QAAQ,YAAY,KAAK;AACxC,QAAM,KAAK,QAAQ,kBAAkB,KAAK;AAE1C,YAAU,MAAM;AACd,aAAS,oBAAoB,MAAM,CAAC;AAAA,EACtC,GAAG,CAAC,MAAM,CAAC;AAEX,YAAU,MAAM;AACd,KAAC,YAAY;AACX,UAAI,CAAC,UAAU,CAAC,GAAI;AACpB,UAAI;AACF,cAAM,UAAU,MAAM,SAAS,eAAe,QAAQ,EAAE;AACxD,uBAAe,OAAO;AAAA,MACxB,SAAS,OAAO;AACd,gBAAQ,MAAM,iDAAiD,KAAK;AAAA,MACtE;AAAA,IACF,GAAG;AAAA,EACL,GAAG,CAAC,QAAQ,EAAE,CAAC;AAEf,QAAM,SAAS;AAAA,IACb,CAAC,UAAmC;AAClC,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,wBAAwB,OAAO,CAAC;AAAA,IACjD;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,YAAY,IAAI,CAAC,YAAY;AAAA,MAClC,OAAO,OAAO;AAAA,MACd,OAAO,OAAO,QAAQ,OAAO;AAAA,IAC/B,EAAE;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,QAAQ,MAAM;AACjC,UAAM,SAA4C,CAAC;AACnD,gBAAY,QAAQ,CAAC,WAAW;AAC9B,aAAO,OAAO,GAAG,IAAI;AAAA,IACvB,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,iBAAiB,MAAM,YAAY,aAAa,MAAM,SAAS,IAAI;AAEzE,SACE,oCAAC,SAAM,KAAI,QACT;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAU;AAAA,MACV,OAAO,MAAM,aAAa;AAAA,MAC1B,UAAU,CAAC,UAAU,OAAO,EAAE,WAAW,SAAS,GAAG,CAAC;AAAA,MACtD;AAAA,MACA,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,WAAS;AAAA,MACT,UAAQ;AAAA,MACR,cAAc,CAAC,EAAE,QAAQ,QAAQ,MAAM;AACrC,cAAM,SAAS,aAAa,OAAO,KAAK;AACxC,YAAI,CAAC,OAAQ,QAAO,oCAAC,QAAK,MAAK,QAAM,OAAO,KAAM;AAElD,eACE,oCAAC,QAAK,OAAM,UAAS,KAAI,QACvB,oCAAC,cAAW,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,IAAI,GACxD,oCAAC,QAAK,MAAK,MAAK,GAAG,UAAU,WAAW,UACrC,OAAO,KACV,CACF;AAAA,MAEJ;AAAA,MACA,aAAa,iBAAiB,oCAAC,cAAW,KAAK,eAAe,KAAK,KAAK,eAAe,KAAK,MAAM,IAAI,YAAU,MAAC,IAAK;AAAA;AAAA,EACxH,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,SAAS,MAAM,cAAc,MAAM,CAAC;AAAA,MAClE,SAAS;AAAA,MACT,UAAQ;AAAA;AAAA,EACV,CACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseMatrixRegisterInputs,
|
|
3
|
+
serializeMatrixRegisterInputs
|
|
4
|
+
} from "./chunk-7J3GFMN3.js";
|
|
5
|
+
import {
|
|
6
|
+
BaseTextInput
|
|
7
|
+
} from "./chunk-WO7V6ZNC.js";
|
|
8
|
+
|
|
9
|
+
// src/mantine/blocks/action/actionTypes/matrixRegister/MatrixRegisterConfig.tsx
|
|
10
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
11
|
+
import { Stack, Text } from "@mantine/core";
|
|
12
|
+
var MatrixRegisterConfig = ({ inputs, onInputsChange }) => {
|
|
13
|
+
const [local, setLocal] = useState(() => parseMatrixRegisterInputs(inputs));
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setLocal(parseMatrixRegisterInputs(inputs));
|
|
16
|
+
}, [inputs]);
|
|
17
|
+
const update = useCallback(
|
|
18
|
+
(patch) => {
|
|
19
|
+
const updated = { ...local, ...patch };
|
|
20
|
+
setLocal(updated);
|
|
21
|
+
onInputsChange(serializeMatrixRegisterInputs(updated));
|
|
22
|
+
},
|
|
23
|
+
[local, onInputsChange]
|
|
24
|
+
);
|
|
25
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Register Matrix Account"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Registers a new Matrix account, sets up encryption, and creates a default room. Reference upstream block outputs using the ", "{{blockId.output.key}}", " pattern.")), /* @__PURE__ */ React.createElement(
|
|
26
|
+
BaseTextInput,
|
|
27
|
+
{
|
|
28
|
+
label: "Mnemonic reference",
|
|
29
|
+
placeholder: "{{blockId.output.mnemonic}}",
|
|
30
|
+
value: local.mnemonic || "",
|
|
31
|
+
onChange: (event) => update({ mnemonic: event.currentTarget.value })
|
|
32
|
+
}
|
|
33
|
+
), /* @__PURE__ */ React.createElement(
|
|
34
|
+
BaseTextInput,
|
|
35
|
+
{
|
|
36
|
+
label: "Address reference",
|
|
37
|
+
placeholder: "{{blockId.output.address}}",
|
|
38
|
+
value: local.address || "",
|
|
39
|
+
onChange: (event) => update({ address: event.currentTarget.value })
|
|
40
|
+
}
|
|
41
|
+
), /* @__PURE__ */ React.createElement(BaseTextInput, { label: "DID reference", placeholder: "{{blockId.output.did}}", value: local.did || "", onChange: (event) => update({ did: event.currentTarget.value }) }), /* @__PURE__ */ React.createElement(BaseTextInput, { label: "PIN reference", placeholder: "{{formBlockId.output.pin}}", value: local.pin || "", onChange: (event) => update({ pin: event.currentTarget.value }) }), /* @__PURE__ */ React.createElement(
|
|
42
|
+
BaseTextInput,
|
|
43
|
+
{
|
|
44
|
+
label: "Oracle Name",
|
|
45
|
+
placeholder: "Oracle name or {{blockId.output.oracleName}}",
|
|
46
|
+
value: local.oracleName || "",
|
|
47
|
+
onChange: (event) => update({ oracleName: event.currentTarget.value })
|
|
48
|
+
}
|
|
49
|
+
), /* @__PURE__ */ React.createElement(
|
|
50
|
+
BaseTextInput,
|
|
51
|
+
{
|
|
52
|
+
label: "Avatar URL (optional)",
|
|
53
|
+
placeholder: "https://... or {{blockId.output.avatarUrl}}",
|
|
54
|
+
value: local.avatarUrl || "",
|
|
55
|
+
onChange: (event) => update({ avatarUrl: event.currentTarget.value })
|
|
56
|
+
}
|
|
57
|
+
));
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
MatrixRegisterConfig
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=MatrixRegisterConfig-N2U4FBYF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/matrixRegister/MatrixRegisterConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Stack, Text } from '@mantine/core';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport type { ActionTypeConfigProps } from '../../actionTypeUI';\nimport { parseMatrixRegisterInputs, serializeMatrixRegisterInputs, type MatrixRegisterInputs } from './types';\n\nexport const MatrixRegisterConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange }) => {\n const [local, setLocal] = useState<MatrixRegisterInputs>(() => parseMatrixRegisterInputs(inputs));\n\n useEffect(() => {\n setLocal(parseMatrixRegisterInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<MatrixRegisterInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeMatrixRegisterInputs(updated));\n },\n [local, onInputsChange]\n );\n\n return (\n <Stack gap=\"lg\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Register Matrix Account\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Registers a new Matrix account, sets up encryption, and creates a default room. Reference upstream block outputs using the {'{{blockId.output.key}}'} pattern.\n </Text>\n </Stack>\n\n <BaseTextInput\n label=\"Mnemonic reference\"\n placeholder=\"{{blockId.output.mnemonic}}\"\n value={local.mnemonic || ''}\n onChange={(event) => update({ mnemonic: event.currentTarget.value })}\n />\n <BaseTextInput\n label=\"Address reference\"\n placeholder=\"{{blockId.output.address}}\"\n value={local.address || ''}\n onChange={(event) => update({ address: event.currentTarget.value })}\n />\n <BaseTextInput label=\"DID reference\" placeholder=\"{{blockId.output.did}}\" value={local.did || ''} onChange={(event) => update({ did: event.currentTarget.value })} />\n <BaseTextInput label=\"PIN reference\" placeholder=\"{{formBlockId.output.pin}}\" value={local.pin || ''} onChange={(event) => update({ pin: event.currentTarget.value })} />\n <BaseTextInput\n label=\"Oracle Name\"\n placeholder=\"Oracle name or {{blockId.output.oracleName}}\"\n value={local.oracleName || ''}\n onChange={(event) => update({ oracleName: event.currentTarget.value })}\n />\n\n <BaseTextInput\n label=\"Avatar URL (optional)\"\n placeholder=\"https://... or {{blockId.output.avatarUrl}}\"\n value={local.avatarUrl || ''}\n onChange={(event) => update({ avatarUrl: event.currentTarget.value })}\n />\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,OAAO,YAAY;AAKrB,IAAM,uBAAwD,CAAC,EAAE,QAAQ,eAAe,MAAM;AACnG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA+B,MAAM,0BAA0B,MAAM,CAAC;AAEhG,YAAU,MAAM;AACd,aAAS,0BAA0B,MAAM,CAAC;AAAA,EAC5C,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAAyC;AACxC,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,8BAA8B,OAAO,CAAC;AAAA,IACvD;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,SACE,oCAAC,SAAM,KAAI,QACT,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,yBAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,+HACmG,0BAAyB,WACvJ,CACF,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM,YAAY;AAAA,MACzB,UAAU,CAAC,UAAU,OAAO,EAAE,UAAU,MAAM,cAAc,MAAM,CAAC;AAAA;AAAA,EACrE,GACA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM,WAAW;AAAA,MACxB,UAAU,CAAC,UAAU,OAAO,EAAE,SAAS,MAAM,cAAc,MAAM,CAAC;AAAA;AAAA,EACpE,GACA,oCAAC,iBAAc,OAAM,iBAAgB,aAAY,0BAAyB,OAAO,MAAM,OAAO,IAAI,UAAU,CAAC,UAAU,OAAO,EAAE,KAAK,MAAM,cAAc,MAAM,CAAC,GAAG,GACnK,oCAAC,iBAAc,OAAM,iBAAgB,aAAY,8BAA6B,OAAO,MAAM,OAAO,IAAI,UAAU,CAAC,UAAU,OAAO,EAAE,KAAK,MAAM,cAAc,MAAM,CAAC,GAAG,GACvK;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM,cAAc;AAAA,MAC3B,UAAU,CAAC,UAAU,OAAO,EAAE,YAAY,MAAM,cAAc,MAAM,CAAC;AAAA;AAAA,EACvE,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,aAAY;AAAA,MACZ,OAAO,MAAM,aAAa;AAAA,MAC1B,UAAU,CAAC,UAAU,OAAO,EAAE,WAAW,MAAM,cAAc,MAAM,CAAC;AAAA;AAAA,EACtE,CACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseMatrixRegisterInputs
|
|
3
|
+
} from "./chunk-7J3GFMN3.js";
|
|
4
|
+
import {
|
|
5
|
+
useRunRuntimeReader
|
|
6
|
+
} from "./chunk-FFYZXA75.js";
|
|
7
|
+
import "./chunk-NZ7AXA7B.js";
|
|
8
|
+
import {
|
|
9
|
+
resolveReferences
|
|
10
|
+
} from "./chunk-JVROGQ7Q.js";
|
|
11
|
+
import "./chunk-IIIZZ4E4.js";
|
|
12
|
+
import "./chunk-HT6L7A5M.js";
|
|
13
|
+
import "./chunk-NCSGIRRQ.js";
|
|
14
|
+
import {
|
|
15
|
+
DismissibleAlert
|
|
16
|
+
} from "./chunk-IFWKRCFF.js";
|
|
17
|
+
import {
|
|
18
|
+
actionAlertStyles
|
|
19
|
+
} from "./chunk-6GKJR52N.js";
|
|
20
|
+
import "./chunk-4DGCCXD6.js";
|
|
21
|
+
import "./chunk-7W7UUUIE.js";
|
|
22
|
+
import "./chunk-TS2LNBF2.js";
|
|
23
|
+
|
|
24
|
+
// src/mantine/blocks/action/actionTypes/matrixRegister/MatrixRegisterFlowDetail.tsx
|
|
25
|
+
import React, { useCallback, useMemo } from "react";
|
|
26
|
+
import { Button, Group, Loader, Stack, Text } from "@mantine/core";
|
|
27
|
+
import { IconCheck, IconAlertCircle } from "@tabler/icons-react";
|
|
28
|
+
var MatrixRegisterFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {
|
|
29
|
+
const parsed = useMemo(() => parseMatrixRegisterInputs(inputs), [inputs]);
|
|
30
|
+
const editorDocument = editor?.document || [];
|
|
31
|
+
const runtimeReader = useRunRuntimeReader(editor);
|
|
32
|
+
const resolveOpts = useMemo(() => ({ yRuntime: runtimeReader }), [runtimeReader]);
|
|
33
|
+
const resolvedInputs = useMemo(() => {
|
|
34
|
+
const r = (val) => resolveReferences(val || "", editorDocument, resolveOpts).trim();
|
|
35
|
+
return {
|
|
36
|
+
mnemonic: r(parsed.mnemonic),
|
|
37
|
+
address: r(parsed.address),
|
|
38
|
+
did: r(parsed.did),
|
|
39
|
+
pin: r(parsed.pin),
|
|
40
|
+
oracleName: r(parsed.oracleName),
|
|
41
|
+
avatarUrl: r(parsed.avatarUrl)
|
|
42
|
+
};
|
|
43
|
+
}, [parsed, editorDocument, resolveOpts]);
|
|
44
|
+
const inputsReady = !!(resolvedInputs.mnemonic && resolvedInputs.address && resolvedInputs.did && resolvedInputs.pin && resolvedInputs.oracleName);
|
|
45
|
+
const matrixUserId = runtime.output?.matrixUserId || runtime.output?.userId || "";
|
|
46
|
+
const matrixRoomId = runtime.output?.matrixRoomId || runtime.output?.roomId || "";
|
|
47
|
+
const hasProof = !!matrixUserId;
|
|
48
|
+
const isRunning = runtime.state === "running";
|
|
49
|
+
const isCompleted = runtime.state === "completed" && hasProof;
|
|
50
|
+
const isStale = runtime.state === "completed" && !hasProof;
|
|
51
|
+
const isFailed = runtime.state === "failed";
|
|
52
|
+
const errorMessage = runtime.error?.message || null;
|
|
53
|
+
const handleExecute = useCallback(async () => {
|
|
54
|
+
console.log("[matrix.register] handleExecute", { "runtime.state": runtime.state, hasProof, inputsReady });
|
|
55
|
+
if (isDisabled || isRunning) return;
|
|
56
|
+
if (!executeAction) {
|
|
57
|
+
updateRuntime({ state: "failed", error: { message: "Shared action executor is unavailable", at: Date.now() } });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!inputsReady) {
|
|
61
|
+
console.warn("[matrix.register] inputs not ready");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const outcome = await executeAction({ runtimeInputs: resolvedInputs });
|
|
66
|
+
console.log("[matrix.register] outcome", outcome);
|
|
67
|
+
if (!outcome.success) throw new Error(outcome.error || "Matrix registration failed");
|
|
68
|
+
const payload = outcome.output;
|
|
69
|
+
if (!payload?.matrixUserId) {
|
|
70
|
+
throw new Error("Action returned success without a matrixUserId. Check the [oracle:registerMatrixAccount] handler logs.");
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
const message = err instanceof Error ? err.message : "Failed to register Matrix account";
|
|
74
|
+
console.error("[matrix.register] failed", { message, err });
|
|
75
|
+
updateRuntime({ state: "failed", error: { message, at: Date.now() } });
|
|
76
|
+
}
|
|
77
|
+
}, [executeAction, isDisabled, isRunning, hasProof, inputsReady, resolvedInputs, runtime.state, updateRuntime]);
|
|
78
|
+
const handleRetry = useCallback(() => {
|
|
79
|
+
updateRuntime({ state: "idle", error: void 0, output: {} });
|
|
80
|
+
}, [updateRuntime]);
|
|
81
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, block?.props?.title || "Register Matrix Account"), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, block?.props?.description || "Register a Matrix account, set up encryption, and create a default room.")), !isRunning && !isCompleted && !isStale && !isFailed && !inputsReady && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, "Waiting for upstream wallet + form inputs...")), isRunning && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Registering Matrix account...")), isCompleted && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), title: "Matrix Account Registered", color: "green" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Matrix account registered and configured successfully."), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, "User ID: ", matrixUserId), matrixRoomId && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", style: { wordBreak: "break-all" } }, "Room ID: ", matrixRoomId))), isStale && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "yellow", title: "Inconsistent State" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Marked completed but no matrixUserId recorded. Stale state \u2014 reset and re-run."), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "outline", size: "xs", onClick: handleRetry }, "Reset"), /* @__PURE__ */ React.createElement(Button, { variant: "filled", size: "xs", onClick: handleExecute, disabled: !inputsReady }, "Force Run Now")))), isFailed && errorMessage && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, errorMessage), isFailed && /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "outline", onClick: handleRetry }, "Try Again")), !isRunning && !isStale && /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "filled", size: "sm", onClick: handleExecute, disabled: !inputsReady || isDisabled }, isCompleted ? "Re-run" : inputsReady ? "Run Now" : "Waiting for inputs...")));
|
|
82
|
+
};
|
|
83
|
+
export {
|
|
84
|
+
MatrixRegisterFlowDetail
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=MatrixRegisterFlowDetail-D5YNL5QX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/matrixRegister/MatrixRegisterFlowDetail.tsx"],"sourcesContent":["import { useRunRuntimeReader } from '@/mantine/hooks/useRunRuntimeReader';\nimport React, { useCallback, useMemo } from 'react';\nimport { Button, Group, Loader, Stack, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconCheck, IconAlertCircle } from '@tabler/icons-react';\nimport { resolveReferences } from '@/mantine/utils/referenceResolver';\nimport type { ActionTypeFlowProps } from '../../actionTypeUI';\nimport { parseMatrixRegisterInputs } from './types';\nimport { actionAlertStyles } from '../../alertStyles';\n\nexport const MatrixRegisterFlowDetail: React.FC<ActionTypeFlowProps> = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {\n const parsed = useMemo(() => parseMatrixRegisterInputs(inputs), [inputs]);\n const editorDocument = editor?.document || [];\n const runtimeReader = useRunRuntimeReader(editor);\n const resolveOpts = useMemo(() => ({ yRuntime: runtimeReader }), [runtimeReader]);\n const resolvedInputs = useMemo(() => {\n const r = (val: string | undefined) => resolveReferences(val || '', editorDocument, resolveOpts).trim();\n return {\n mnemonic: r(parsed.mnemonic),\n address: r(parsed.address),\n did: r(parsed.did),\n pin: r(parsed.pin),\n oracleName: r(parsed.oracleName),\n avatarUrl: r(parsed.avatarUrl),\n };\n }, [parsed, editorDocument, resolveOpts]);\n const inputsReady = !!(resolvedInputs.mnemonic && resolvedInputs.address && resolvedInputs.did && resolvedInputs.pin && resolvedInputs.oracleName);\n\n // Derived from runtime — single source of truth.\n const matrixUserId: string = runtime.output?.matrixUserId || runtime.output?.userId || '';\n const matrixRoomId: string = runtime.output?.matrixRoomId || runtime.output?.roomId || '';\n const hasProof = !!matrixUserId;\n const isRunning = runtime.state === 'running';\n const isCompleted = runtime.state === 'completed' && hasProof;\n const isStale = runtime.state === 'completed' && !hasProof;\n const isFailed = runtime.state === 'failed';\n const errorMessage = runtime.error?.message || null;\n\n const handleExecute = useCallback(async () => {\n console.log('[matrix.register] handleExecute', { 'runtime.state': runtime.state, hasProof, inputsReady });\n if (isDisabled || isRunning) return;\n\n if (!executeAction) {\n updateRuntime({ state: 'failed', error: { message: 'Shared action executor is unavailable', at: Date.now() } });\n return;\n }\n\n if (!inputsReady) {\n console.warn('[matrix.register] inputs not ready');\n return;\n }\n\n try {\n const outcome = await executeAction({ runtimeInputs: resolvedInputs });\n\n console.log('[matrix.register] outcome', outcome);\n if (!outcome.success) throw new Error(outcome.error || 'Matrix registration failed');\n\n const payload = outcome.output as { matrixUserId?: string } | undefined;\n if (!payload?.matrixUserId) {\n throw new Error('Action returned success without a matrixUserId. Check the [oracle:registerMatrixAccount] handler logs.');\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to register Matrix account';\n console.error('[matrix.register] failed', { message, err });\n updateRuntime({ state: 'failed', error: { message, at: Date.now() } });\n }\n }, [executeAction, isDisabled, isRunning, hasProof, inputsReady, resolvedInputs, runtime.state, updateRuntime]);\n\n const handleRetry = useCallback(() => {\n updateRuntime({ state: 'idle', error: undefined, output: {} });\n }, [updateRuntime]);\n\n return (\n <Stack gap=\"md\">\n <Stack gap={2}>\n <Text fw={600}>{block?.props?.title || 'Register Matrix Account'}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {block?.props?.description || 'Register a Matrix account, set up encryption, and create a default room.'}\n </Text>\n </Stack>\n\n {!isRunning && !isCompleted && !isStale && !isFailed && !inputsReady && (\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"sm\" c=\"dimmed\">\n Waiting for upstream wallet + form inputs...\n </Text>\n </Group>\n )}\n\n {isRunning && (\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"sm\">Registering Matrix account...</Text>\n </Group>\n )}\n\n {isCompleted && (\n <Alert icon={<IconCheck size={16} />} title=\"Matrix Account Registered\" color=\"green\">\n <Stack gap=\"xs\">\n <Text size=\"sm\">Matrix account registered and configured successfully.</Text>\n <Text size=\"xs\" c=\"dimmed\" style={{ wordBreak: 'break-all' }}>\n User ID: {matrixUserId}\n </Text>\n {matrixRoomId && (\n <Text size=\"xs\" c=\"dimmed\" style={{ wordBreak: 'break-all' }}>\n Room ID: {matrixRoomId}\n </Text>\n )}\n </Stack>\n </Alert>\n )}\n\n {isStale && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"yellow\" title=\"Inconsistent State\">\n <Stack gap=\"xs\">\n <Text size=\"sm\">Marked completed but no matrixUserId recorded. Stale state — reset and re-run.</Text>\n <Group>\n <Button variant=\"outline\" size=\"xs\" onClick={handleRetry}>\n Reset\n </Button>\n <Button variant=\"filled\" size=\"xs\" onClick={handleExecute} disabled={!inputsReady}>\n Force Run Now\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n\n {isFailed && errorMessage && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n {errorMessage}\n </Alert>\n )}\n {isFailed && (\n <Group>\n <Button variant=\"outline\" onClick={handleRetry}>\n Try Again\n </Button>\n </Group>\n )}\n\n {!isRunning && !isStale && (\n <Group>\n <Button variant=\"filled\" size=\"sm\" onClick={handleExecute} disabled={!inputsReady || isDisabled}>\n {isCompleted ? 'Re-run' : inputsReady ? 'Run Now' : 'Waiting for inputs...'}\n </Button>\n </Group>\n )}\n </Stack>\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseTextInput
|
|
3
|
+
} from "./chunk-WO7V6ZNC.js";
|
|
4
|
+
import {
|
|
5
|
+
parseJsonSafe
|
|
6
|
+
} from "./chunk-KLLMJ4U3.js";
|
|
7
|
+
|
|
8
|
+
// src/mantine/blocks/action/actionTypes/pod/memberMultiSelect/MemberMultiSelectConfig.tsx
|
|
9
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
10
|
+
import { Stack, Text } from "@mantine/core";
|
|
11
|
+
var DEFAULT = { entity: "", group: "" };
|
|
12
|
+
var MemberMultiSelectConfig = ({ inputs, onInputsChange }) => {
|
|
13
|
+
const [local, setLocal] = useState(() => parseJsonSafe(inputs, DEFAULT));
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setLocal(parseJsonSafe(inputs, DEFAULT));
|
|
16
|
+
}, [inputs]);
|
|
17
|
+
const update = useCallback(
|
|
18
|
+
(patch) => {
|
|
19
|
+
const updated = { ...local, ...patch };
|
|
20
|
+
setLocal(updated);
|
|
21
|
+
onInputsChange(JSON.stringify(updated));
|
|
22
|
+
},
|
|
23
|
+
[local, onInputsChange]
|
|
24
|
+
);
|
|
25
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Entity DID"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "DID of the Subscription Deed or POD used to resolve available members."), /* @__PURE__ */ React.createElement(BaseTextInput, { placeholder: "did:ixo:...", value: local.entity, onChange: (e) => update({ entity: e.currentTarget.value }) })), /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Group ID (optional)"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Restrict members to a specific group account. Leave blank for all groups."), /* @__PURE__ */ React.createElement(BaseTextInput, { placeholder: "Leave blank for all groups", value: local.group, onChange: (e) => update({ group: e.currentTarget.value }) })));
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
MemberMultiSelectConfig
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=MemberMultiSelectConfig-E7WUB2WD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/pod/memberMultiSelect/MemberMultiSelectConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Stack, Text } from '@mantine/core';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport type { ActionTypeConfigProps } from '../../../actionTypeUI';\nimport { parseJsonSafe } from '../types';\n\ninterface MemberMultiSelectInputs {\n entity: string;\n group: string;\n}\n\nconst DEFAULT: MemberMultiSelectInputs = { entity: '', group: '' };\n\n/**\n * @description Template-mode config for MemberMultiSelect.\n * Sets the entity DID and optional group ID for member discovery.\n */\nexport const MemberMultiSelectConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange }) => {\n const [local, setLocal] = useState<MemberMultiSelectInputs>(() => parseJsonSafe(inputs, DEFAULT));\n\n useEffect(() => {\n setLocal(parseJsonSafe(inputs, DEFAULT));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<MemberMultiSelectInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(JSON.stringify(updated));\n },\n [local, onInputsChange]\n );\n\n return (\n <Stack gap=\"md\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Entity DID\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n DID of the Subscription Deed or POD used to resolve available members.\n </Text>\n <BaseTextInput placeholder=\"did:ixo:...\" value={local.entity} onChange={(e) => update({ entity: e.currentTarget.value })} />\n </Stack>\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Group ID (optional)\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Restrict members to a specific group account. Leave blank for all groups.\n </Text>\n <BaseTextInput placeholder=\"Leave blank for all groups\" value={local.group} onChange={(e) => update({ group: e.currentTarget.value })} />\n </Stack>\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,OAAO,YAAY;AAU5B,IAAM,UAAmC,EAAE,QAAQ,IAAI,OAAO,GAAG;AAM1D,IAAM,0BAA2D,CAAC,EAAE,QAAQ,eAAe,MAAM;AACtG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAkC,MAAM,cAAc,QAAQ,OAAO,CAAC;AAEhG,YAAU,MAAM;AACd,aAAS,cAAc,QAAQ,OAAO,CAAC;AAAA,EACzC,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAA4C;AAC3C,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,KAAK,UAAU,OAAO,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,SACE,oCAAC,SAAM,KAAI,QACT,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,YAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,wEAE3B,GACA,oCAAC,iBAAc,aAAY,eAAc,OAAO,MAAM,QAAQ,UAAU,CAAC,MAAM,OAAO,EAAE,QAAQ,EAAE,cAAc,MAAM,CAAC,GAAG,CAC5H,GACA,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,qBAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,2EAE3B,GACA,oCAAC,iBAAc,aAAY,8BAA6B,OAAO,MAAM,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,OAAO,EAAE,cAAc,MAAM,CAAC,GAAG,CACzI,CACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseAvatar
|
|
3
|
+
} from "./chunk-XVA7QRVH.js";
|
|
4
|
+
import {
|
|
5
|
+
DismissibleAlert
|
|
6
|
+
} from "./chunk-IFWKRCFF.js";
|
|
7
|
+
import {
|
|
8
|
+
actionAlertStyles
|
|
9
|
+
} from "./chunk-6GKJR52N.js";
|
|
10
|
+
import {
|
|
11
|
+
useBlocknoteHandlers
|
|
12
|
+
} from "./chunk-4DGCCXD6.js";
|
|
13
|
+
import "./chunk-7W7UUUIE.js";
|
|
14
|
+
import "./chunk-TS2LNBF2.js";
|
|
15
|
+
import {
|
|
16
|
+
parseJsonSafe
|
|
17
|
+
} from "./chunk-KLLMJ4U3.js";
|
|
18
|
+
|
|
19
|
+
// src/mantine/blocks/action/actionTypes/pod/memberMultiSelect/MemberMultiSelectFlowDetail.tsx
|
|
20
|
+
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
21
|
+
import { ActionIcon, Badge, Button, Flex, Group, Loader, NumberInput, Paper, Select, Stack, Switch, Text, TextInput } from "@mantine/core";
|
|
22
|
+
import { IconSearch, IconAlertCircle, IconCheck, IconX } from "@tabler/icons-react";
|
|
23
|
+
function normalizeMember(m) {
|
|
24
|
+
return {
|
|
25
|
+
did: m.did || "",
|
|
26
|
+
role: m.role || "Member",
|
|
27
|
+
votingPower: typeof m.votingPower === "number" ? m.votingPower : 1,
|
|
28
|
+
displayName: m.displayName || m.did || "Unknown",
|
|
29
|
+
avatarUrl: m.avatarUrl ?? null
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
var ROLE_OPTIONS = [
|
|
33
|
+
{ value: "Admin", label: "Admin" },
|
|
34
|
+
{ value: "Member", label: "Member" },
|
|
35
|
+
{ value: "Observer", label: "Observer" }
|
|
36
|
+
];
|
|
37
|
+
function validateCategorical(list) {
|
|
38
|
+
if (list.length === 0) return "At least one member is required";
|
|
39
|
+
if (!list.some((m) => m.role === "Admin")) return "At least one member must have the Admin role";
|
|
40
|
+
const dids = list.map((m) => m.did);
|
|
41
|
+
if (new Set(dids).size !== dids.length) return "Duplicate member DIDs are not allowed";
|
|
42
|
+
for (const m of list) {
|
|
43
|
+
if (!Number.isInteger(m.votingPower) || m.votingPower <= 0) return `Voting power must be a positive integer (member: ${m.did})`;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function validateMultisig(list, threshold) {
|
|
48
|
+
if (list.length === 0) return "At least one member is required";
|
|
49
|
+
const dids = list.map((m) => m.did);
|
|
50
|
+
if (new Set(dids).size !== dids.length) return "Duplicate member DIDs are not allowed";
|
|
51
|
+
if (!Number.isInteger(threshold) || threshold < 1) return "Threshold must be a positive integer";
|
|
52
|
+
if (threshold > list.length) return `Threshold (${threshold}) cannot exceed member count (${list.length})`;
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
var MemberSearch = ({ members, onAdd, isDisabled }) => {
|
|
56
|
+
const handlers = useBlocknoteHandlers();
|
|
57
|
+
const handlersRef = useRef(handlers);
|
|
58
|
+
handlersRef.current = handlers;
|
|
59
|
+
const [query, setQuery] = useState("");
|
|
60
|
+
const [searching, setSearching] = useState(false);
|
|
61
|
+
const [results, setResults] = useState([]);
|
|
62
|
+
const [searchError, setSearchError] = useState(null);
|
|
63
|
+
const debounceRef = useRef(null);
|
|
64
|
+
const runSearch = useCallback(async (q) => {
|
|
65
|
+
const trimmed = q.trim();
|
|
66
|
+
if (trimmed.length < 2) {
|
|
67
|
+
setResults([]);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
setSearching(true);
|
|
71
|
+
setSearchError(null);
|
|
72
|
+
try {
|
|
73
|
+
const h = handlersRef.current;
|
|
74
|
+
if (h.searchUsers) {
|
|
75
|
+
const res = await h.searchUsers(trimmed);
|
|
76
|
+
if (!Array.isArray(res)) {
|
|
77
|
+
setResults([]);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
setResults(res.map((r) => ({ did: r.did, displayName: r.displayName || r.did, avatarUrl: r.avatarUrl, matrixAddress: r.address })));
|
|
81
|
+
} else if (trimmed.startsWith("@") && trimmed.includes(":")) {
|
|
82
|
+
const profile = await h.getMatrixInfoPerDid(trimmed);
|
|
83
|
+
if (!profile?.did) {
|
|
84
|
+
setSearchError("User not found");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
setResults([{ did: profile.did, displayName: profile.displayname || trimmed, avatarUrl: profile.avatarUrl, matrixAddress: profile.walletAddress }]);
|
|
88
|
+
} else {
|
|
89
|
+
setSearchError("Enter a Matrix ID directly (e.g. @user:matrix.ixo.world)");
|
|
90
|
+
}
|
|
91
|
+
} catch (err) {
|
|
92
|
+
setSearchError(err instanceof Error ? err.message : "Search failed");
|
|
93
|
+
setResults([]);
|
|
94
|
+
} finally {
|
|
95
|
+
setSearching(false);
|
|
96
|
+
}
|
|
97
|
+
}, []);
|
|
98
|
+
const handleQueryChange = useCallback(
|
|
99
|
+
(value) => {
|
|
100
|
+
setQuery(value);
|
|
101
|
+
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
102
|
+
debounceRef.current = setTimeout(() => runSearch(value), 350);
|
|
103
|
+
},
|
|
104
|
+
[runSearch]
|
|
105
|
+
);
|
|
106
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(
|
|
107
|
+
TextInput,
|
|
108
|
+
{
|
|
109
|
+
placeholder: handlers.searchUsers ? "Search by name, or paste a domain DID or ixo1\u2026 address" : "Search by name or @user:matrix.ixo.world",
|
|
110
|
+
leftSection: /* @__PURE__ */ React.createElement(IconSearch, { size: 16 }),
|
|
111
|
+
rightSection: searching ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : null,
|
|
112
|
+
value: query,
|
|
113
|
+
onChange: (e) => handleQueryChange(e.currentTarget.value),
|
|
114
|
+
onKeyDown: (e) => {
|
|
115
|
+
if (e.key === "Enter") {
|
|
116
|
+
e.preventDefault();
|
|
117
|
+
runSearch(query);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
disabled: isDisabled,
|
|
121
|
+
size: "sm"
|
|
122
|
+
}
|
|
123
|
+
), results.length > 0 && /* @__PURE__ */ React.createElement(Paper, { withBorder: true, style: { maxHeight: 200, overflowY: "auto", borderRadius: 8 } }, /* @__PURE__ */ React.createElement(Stack, { gap: 0 }, results.map((user) => {
|
|
124
|
+
const already = members.some((m) => m.did === user.did);
|
|
125
|
+
return /* @__PURE__ */ React.createElement(
|
|
126
|
+
Button,
|
|
127
|
+
{
|
|
128
|
+
key: user.did,
|
|
129
|
+
variant: "subtle",
|
|
130
|
+
justify: "flex-start",
|
|
131
|
+
disabled: already || isDisabled,
|
|
132
|
+
onClick: () => {
|
|
133
|
+
onAdd(user);
|
|
134
|
+
setQuery("");
|
|
135
|
+
setResults([]);
|
|
136
|
+
},
|
|
137
|
+
styles: { root: { borderRadius: 0, height: "auto", padding: "8px 12px" } }
|
|
138
|
+
},
|
|
139
|
+
/* @__PURE__ */ React.createElement(Flex, { align: "center", gap: "sm" }, /* @__PURE__ */ React.createElement(BaseAvatar, { src: user.avatarUrl, did: user.did, size: 26 }), /* @__PURE__ */ React.createElement(Stack, { gap: 0 }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500, c: already ? "dimmed" : void 0 }, user.displayName), user.matrixAddress && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, user.matrixAddress), already && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Already added")))
|
|
140
|
+
);
|
|
141
|
+
}))), searchError && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "orange", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "xs" }, searchError)), query.trim().length >= 2 && !searching && results.length === 0 && !searchError && /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", pl: 4 }, 'No users found matching "', query, '"'));
|
|
142
|
+
};
|
|
143
|
+
var MemberMultiSelectFlowDetail = ({ inputs, block, runtime, isDisabled, executeAction }) => {
|
|
144
|
+
const handlers = useBlocknoteHandlers();
|
|
145
|
+
const handlersRef = useRef(handlers);
|
|
146
|
+
handlersRef.current = handlers;
|
|
147
|
+
const parsed = parseJsonSafe(inputs, { groupType: "categorical" });
|
|
148
|
+
const groupType = parsed.groupType || "categorical";
|
|
149
|
+
const creatorDid = useMemo(() => {
|
|
150
|
+
try {
|
|
151
|
+
return handlers?.getCurrentUser?.()?.address || "";
|
|
152
|
+
} catch {
|
|
153
|
+
return "";
|
|
154
|
+
}
|
|
155
|
+
}, []);
|
|
156
|
+
const [members, setMembers] = useState(() => {
|
|
157
|
+
if (Array.isArray(runtime.output?.members) && runtime.output.members.length > 0) return runtime.output.members.map(normalizeMember);
|
|
158
|
+
if (groupType === "categorical" || groupType === "multisig") {
|
|
159
|
+
return creatorDid ? [{ did: creatorDid, role: "Admin", votingPower: 1, displayName: "You", avatarUrl: null }] : [];
|
|
160
|
+
}
|
|
161
|
+
return [];
|
|
162
|
+
});
|
|
163
|
+
const [multisigThreshold, setMultisigThreshold] = useState(runtime.output?.multisigThreshold ?? 2);
|
|
164
|
+
const [nftContractAddress, setNftContractAddress] = useState(runtime.output?.nftContractAddress ?? "");
|
|
165
|
+
const [isExistingToken, setIsExistingToken] = useState(runtime.output?.tokenConfig ? runtime.output.tokenConfig.isExistingToken : true);
|
|
166
|
+
const [tokenAddress, setTokenAddress] = useState(runtime.output?.tokenConfig?.tokenAddress ?? "");
|
|
167
|
+
const [tokenName, setTokenName] = useState(runtime.output?.tokenConfig?.tokenName ?? "");
|
|
168
|
+
const [tokenSymbol, setTokenSymbol] = useState(runtime.output?.tokenConfig?.tokenSymbol ?? "");
|
|
169
|
+
const [tokenSupply, setTokenSupply] = useState(runtime.output?.tokenConfig?.tokenSupply ?? 1e7);
|
|
170
|
+
const creatorResolvedRef = useRef(false);
|
|
171
|
+
React.useEffect(() => {
|
|
172
|
+
if (creatorResolvedRef.current || !creatorDid) return;
|
|
173
|
+
const h = handlersRef.current;
|
|
174
|
+
if (!h.getMatrixInfoPerDid) return;
|
|
175
|
+
creatorResolvedRef.current = true;
|
|
176
|
+
h.getMatrixInfoPerDid(creatorDid).then((profile) => {
|
|
177
|
+
if (!profile?.displayname) return;
|
|
178
|
+
setMembers(
|
|
179
|
+
(prev) => prev.map((m) => m.did === creatorDid && m.displayName === "You" ? { ...m, displayName: profile.displayname || "You", avatarUrl: profile.avatarUrl ?? null } : m)
|
|
180
|
+
);
|
|
181
|
+
}).catch(() => {
|
|
182
|
+
});
|
|
183
|
+
}, [creatorDid]);
|
|
184
|
+
const [validationError, setValidationError] = useState(null);
|
|
185
|
+
const handleAddMember = useCallback((user) => {
|
|
186
|
+
setMembers((prev) => {
|
|
187
|
+
if (prev.some((m) => m.did === user.did)) return prev;
|
|
188
|
+
return [...prev, { did: user.did, role: "Member", votingPower: 1, displayName: user.displayName, avatarUrl: user.avatarUrl }];
|
|
189
|
+
});
|
|
190
|
+
setValidationError(null);
|
|
191
|
+
}, []);
|
|
192
|
+
const handleRemoveMember = useCallback((index) => {
|
|
193
|
+
setMembers((prev) => prev.filter((_, i) => i !== index));
|
|
194
|
+
setValidationError(null);
|
|
195
|
+
}, []);
|
|
196
|
+
const handleUpdateMember = useCallback((index, patch) => {
|
|
197
|
+
setMembers((prev) => prev.map((m, i) => i === index ? { ...m, ...patch } : m));
|
|
198
|
+
setValidationError(null);
|
|
199
|
+
}, []);
|
|
200
|
+
const handleConfirm = useCallback(async () => {
|
|
201
|
+
let err = null;
|
|
202
|
+
let output = {};
|
|
203
|
+
switch (groupType) {
|
|
204
|
+
case "categorical":
|
|
205
|
+
err = validateCategorical(members);
|
|
206
|
+
if (err) break;
|
|
207
|
+
output = { members: members.map(({ did, role, votingPower }) => ({ did, role, votingPower })) };
|
|
208
|
+
break;
|
|
209
|
+
case "multisig":
|
|
210
|
+
err = validateMultisig(members, multisigThreshold);
|
|
211
|
+
if (err) break;
|
|
212
|
+
output = {
|
|
213
|
+
members: members.map(({ did }) => ({ did, role: "Member", votingPower: 1 })),
|
|
214
|
+
multisigThreshold
|
|
215
|
+
};
|
|
216
|
+
break;
|
|
217
|
+
case "nftStaking":
|
|
218
|
+
if (!nftContractAddress.trim()) {
|
|
219
|
+
err = "NFT contract address is required";
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
output = { nftContractAddress: nftContractAddress.trim() };
|
|
223
|
+
break;
|
|
224
|
+
case "tokenStaking":
|
|
225
|
+
if (isExistingToken) {
|
|
226
|
+
if (!tokenAddress.trim()) {
|
|
227
|
+
err = "Token contract address is required";
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
output = { tokenConfig: { isExistingToken: true, tokenAddress: tokenAddress.trim(), tokenName: "", tokenSymbol: "", tokenSupply: 0 } };
|
|
231
|
+
} else {
|
|
232
|
+
if (!tokenName.trim()) {
|
|
233
|
+
err = "Token name is required";
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
if (!tokenSymbol.trim()) {
|
|
237
|
+
err = "Token symbol is required";
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
if (!tokenSupply || tokenSupply < 1) {
|
|
241
|
+
err = "Token supply must be at least 1";
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
output = { tokenConfig: { isExistingToken: false, tokenAddress: "", tokenName: tokenName.trim(), tokenSymbol: tokenSymbol.trim(), tokenSupply } };
|
|
245
|
+
}
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
if (err) {
|
|
249
|
+
setValidationError(err);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
setValidationError(null);
|
|
253
|
+
await executeAction?.({ runtimeInputs: { groupType, ...output } });
|
|
254
|
+
}, [executeAction, groupType, members, multisigThreshold, nftContractAddress, isExistingToken, tokenAddress, tokenName, tokenSymbol, tokenSupply]);
|
|
255
|
+
const renderCategorical = () => /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(MemberSearch, { members, onAdd: handleAddMember, isDisabled }), members.length > 0 && /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", fw: 600, c: "dimmed" }, "MEMBERS (", members.length, ")"), members.map((m, i) => {
|
|
256
|
+
const isCreator = m.did === creatorDid && i === 0;
|
|
257
|
+
return /* @__PURE__ */ React.createElement(Paper, { key: `${m.did}-${i}`, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React.createElement(Group, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React.createElement(BaseAvatar, { src: m.avatarUrl, did: m.did, size: 32 }), /* @__PURE__ */ React.createElement(Stack, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500, lineClamp: 1 }, m.displayName, isCreator && /* @__PURE__ */ React.createElement(Text, { span: true, size: "xs", c: "dimmed", ml: 6 }, "(you)")), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", lineClamp: 1 }, (m.did || "").length > 40 ? `${m.did.slice(0, 20)}\u2026${m.did.slice(-14)}` : m.did)), /* @__PURE__ */ React.createElement(
|
|
258
|
+
Select,
|
|
259
|
+
{
|
|
260
|
+
value: m.role,
|
|
261
|
+
onChange: (v) => handleUpdateMember(i, { role: v || "Member" }),
|
|
262
|
+
data: ROLE_OPTIONS,
|
|
263
|
+
style: { width: 110 },
|
|
264
|
+
disabled: isDisabled,
|
|
265
|
+
size: "xs",
|
|
266
|
+
withCheckIcon: false,
|
|
267
|
+
comboboxProps: { width: 130 }
|
|
268
|
+
}
|
|
269
|
+
), /* @__PURE__ */ React.createElement(Group, { gap: 4, wrap: "nowrap" }, /* @__PURE__ */ React.createElement(
|
|
270
|
+
Button,
|
|
271
|
+
{
|
|
272
|
+
variant: "subtle",
|
|
273
|
+
size: "compact-xs",
|
|
274
|
+
px: 6,
|
|
275
|
+
disabled: isDisabled || m.votingPower <= 1,
|
|
276
|
+
onClick: () => handleUpdateMember(i, { votingPower: m.votingPower - 1 })
|
|
277
|
+
},
|
|
278
|
+
"\u2212"
|
|
279
|
+
), /* @__PURE__ */ React.createElement(Text, { size: "sm", w: 20, ta: "center" }, m.votingPower), /* @__PURE__ */ React.createElement(Button, { variant: "subtle", size: "compact-xs", px: 6, disabled: isDisabled, onClick: () => handleUpdateMember(i, { votingPower: m.votingPower + 1 }) }, "+")), /* @__PURE__ */ React.createElement(ActionIcon, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React.createElement(IconX, { size: 14 }))));
|
|
280
|
+
})));
|
|
281
|
+
const renderMultisig = () => /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(
|
|
282
|
+
NumberInput,
|
|
283
|
+
{
|
|
284
|
+
label: "Signature threshold",
|
|
285
|
+
description: "Minimum number of members that must sign to pass a proposal",
|
|
286
|
+
value: multisigThreshold,
|
|
287
|
+
onChange: (v) => setMultisigThreshold(typeof v === "number" ? v : 2),
|
|
288
|
+
min: 1,
|
|
289
|
+
max: members.length || 99,
|
|
290
|
+
disabled: isDisabled,
|
|
291
|
+
size: "sm"
|
|
292
|
+
}
|
|
293
|
+
), /* @__PURE__ */ React.createElement(MemberSearch, { members, onAdd: handleAddMember, isDisabled }), members.length > 0 && /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", fw: 600, c: "dimmed" }, "SIGNATORIES (", members.length, ")"), /* @__PURE__ */ React.createElement(Badge, { size: "xs", color: "orange", variant: "light" }, "threshold: ", multisigThreshold, " of ", members.length)), members.map((m, i) => /* @__PURE__ */ React.createElement(Paper, { key: `${m.did}-${i}`, withBorder: true, p: "sm", style: { borderRadius: 10 } }, /* @__PURE__ */ React.createElement(Group, { wrap: "nowrap", gap: "sm", align: "center" }, /* @__PURE__ */ React.createElement(BaseAvatar, { src: m.avatarUrl, did: m.did, size: 32 }), /* @__PURE__ */ React.createElement(Stack, { gap: 0, style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500, lineClamp: 1 }, m.displayName), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", lineClamp: 1 }, (m.did || "").length > 44 ? `${m.did.slice(0, 22)}\u2026${m.did.slice(-16)}` : m.did)), /* @__PURE__ */ React.createElement(ActionIcon, { color: "red", variant: "subtle", size: "sm", onClick: () => handleRemoveMember(i), disabled: isDisabled || members.length === 1 }, /* @__PURE__ */ React.createElement(IconX, { size: 14 })))))));
|
|
294
|
+
const renderNftStaking = () => /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "blue", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "For NFT staking groups, voting power is derived from on-chain NFT holdings. Provide the NFT contract address \u2014 no explicit member list is needed.")), /* @__PURE__ */ React.createElement(
|
|
295
|
+
TextInput,
|
|
296
|
+
{
|
|
297
|
+
label: "NFT contract address",
|
|
298
|
+
description: "The address of the NFT contract used for voting power",
|
|
299
|
+
placeholder: "contract1abc...",
|
|
300
|
+
value: nftContractAddress,
|
|
301
|
+
onChange: (e) => {
|
|
302
|
+
setNftContractAddress(e.currentTarget.value);
|
|
303
|
+
setValidationError(null);
|
|
304
|
+
},
|
|
305
|
+
disabled: isDisabled,
|
|
306
|
+
size: "sm"
|
|
307
|
+
}
|
|
308
|
+
));
|
|
309
|
+
const renderTokenStaking = () => /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "blue", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "For token staking groups, voting power is derived from staked governance tokens. Use an existing token or create a new one.")), /* @__PURE__ */ React.createElement(
|
|
310
|
+
Switch,
|
|
311
|
+
{
|
|
312
|
+
label: isExistingToken ? "Use an existing token" : "Create a new token",
|
|
313
|
+
checked: isExistingToken,
|
|
314
|
+
onChange: (e) => {
|
|
315
|
+
setIsExistingToken(e.currentTarget.checked);
|
|
316
|
+
setValidationError(null);
|
|
317
|
+
},
|
|
318
|
+
disabled: isDisabled
|
|
319
|
+
}
|
|
320
|
+
), isExistingToken ? /* @__PURE__ */ React.createElement(
|
|
321
|
+
TextInput,
|
|
322
|
+
{
|
|
323
|
+
label: "Token contract address",
|
|
324
|
+
description: "CW20 token contract address or native denom",
|
|
325
|
+
placeholder: "contract1abc...",
|
|
326
|
+
value: tokenAddress,
|
|
327
|
+
onChange: (e) => {
|
|
328
|
+
setTokenAddress(e.currentTarget.value);
|
|
329
|
+
setValidationError(null);
|
|
330
|
+
},
|
|
331
|
+
disabled: isDisabled,
|
|
332
|
+
size: "sm"
|
|
333
|
+
}
|
|
334
|
+
) : /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React.createElement(
|
|
335
|
+
TextInput,
|
|
336
|
+
{
|
|
337
|
+
label: "Token name",
|
|
338
|
+
placeholder: "My Governance Token",
|
|
339
|
+
value: tokenName,
|
|
340
|
+
onChange: (e) => {
|
|
341
|
+
setTokenName(e.currentTarget.value);
|
|
342
|
+
setValidationError(null);
|
|
343
|
+
},
|
|
344
|
+
disabled: isDisabled,
|
|
345
|
+
size: "sm"
|
|
346
|
+
}
|
|
347
|
+
), /* @__PURE__ */ React.createElement(
|
|
348
|
+
TextInput,
|
|
349
|
+
{
|
|
350
|
+
label: "Token symbol",
|
|
351
|
+
placeholder: "MGT",
|
|
352
|
+
value: tokenSymbol,
|
|
353
|
+
onChange: (e) => {
|
|
354
|
+
setTokenSymbol(e.currentTarget.value);
|
|
355
|
+
setValidationError(null);
|
|
356
|
+
},
|
|
357
|
+
disabled: isDisabled,
|
|
358
|
+
size: "sm"
|
|
359
|
+
}
|
|
360
|
+
), /* @__PURE__ */ React.createElement(
|
|
361
|
+
NumberInput,
|
|
362
|
+
{
|
|
363
|
+
label: "Total supply",
|
|
364
|
+
description: "Total number of tokens to mint",
|
|
365
|
+
value: tokenSupply,
|
|
366
|
+
onChange: (v) => {
|
|
367
|
+
setTokenSupply(typeof v === "number" ? v : 1e7);
|
|
368
|
+
setValidationError(null);
|
|
369
|
+
},
|
|
370
|
+
min: 1,
|
|
371
|
+
disabled: isDisabled,
|
|
372
|
+
size: "sm",
|
|
373
|
+
thousandSeparator: ","
|
|
374
|
+
}
|
|
375
|
+
)));
|
|
376
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, block?.props?.title || "Members"), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, block?.props?.description || (() => {
|
|
377
|
+
switch (groupType) {
|
|
378
|
+
case "multisig":
|
|
379
|
+
return "Add the signatories for this multisig group and set the approval threshold.";
|
|
380
|
+
case "nftStaking":
|
|
381
|
+
return "Provide the NFT contract address. Voting power comes from staked NFT holdings.";
|
|
382
|
+
case "tokenStaking":
|
|
383
|
+
return "Configure the governance token. Voting power comes from staked token holdings.";
|
|
384
|
+
default:
|
|
385
|
+
return "Search for members by name or Matrix ID. Set roles and voting power.";
|
|
386
|
+
}
|
|
387
|
+
})())), groupType === "categorical" ? renderCategorical() : null, groupType === "multisig" ? renderMultisig() : null, groupType === "nftStaking" ? renderNftStaking() : null, groupType === "tokenStaking" ? renderTokenStaking() : null, validationError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, validationError)), runtime.state === "completed" && !validationError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "green", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, groupType === "nftStaking" && "NFT contract address confirmed.", groupType === "tokenStaking" && "Token configuration confirmed.", groupType === "categorical" && `${members.length} member${members.length !== 1 ? "s" : ""} confirmed.`, groupType === "multisig" && `${members.length} signatories confirmed (threshold: ${multisigThreshold}).`)), /* @__PURE__ */ React.createElement(Button, { onClick: handleConfirm, disabled: isDisabled }, "Confirm Members"));
|
|
388
|
+
};
|
|
389
|
+
export {
|
|
390
|
+
MemberMultiSelectFlowDetail
|
|
391
|
+
};
|
|
392
|
+
//# sourceMappingURL=MemberMultiSelectFlowDetail-6C4ZMSDR.js.map
|