@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/xero/paymentCreate/XeroPaymentCreateFlowDetail.tsx","../src/mantine/blocks/action/actionTypes/xero/_shared/useFlowXeroBinding.ts","../src/mantine/blocks/action/actionTypes/xero/_shared/workItemReview.tsx"],"sourcesContent":["import { useRunRuntimeReader } from '@/mantine/hooks/useRunRuntimeReader';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ActionIcon, Badge, Button, Group, Stack, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconArrowLeft } from '@tabler/icons-react';\nimport { DataInput } from '@/mantine/components/DataInput';\nimport { useBlocknoteHandlers, useTranslate } from '@/mantine/context/BlocknoteContext';\nimport { resolveReferences } from '@/mantine/utils/referenceResolver';\nimport type { ActionTypeFlowProps } from '../../../actionTypeUI';\nimport { actionAlertStyles } from '../../../alertStyles';\nimport { CollapsibleSection } from '@/mantine/components/CollapsibleSection';\nimport { parseXeroPaymentCreateInputs, type XeroPaymentCreateInputs } from '@/core/lib/actionRegistry/actions/xero/paymentCreate.types';\nimport {\n markXeroWorkApprovedForEditor,\n markXeroWorkCompletedForEditor,\n markXeroWorkFailedForEditor,\n updateXeroWorkReviewPayloadForEditor,\n type XeroWorkItem,\n} from '@/core/lib/xeroWorkItems';\nimport { useXeroWorkItems } from '@/mantine/hooks/useXeroWorkItems';\nimport { useFlowXeroBinding } from '../_shared/useFlowXeroBinding';\nimport {\n ClaimantAvatar,\n DetailField,\n MoreField,\n WorkItemRow,\n claimantDidOf,\n claimantNameOf,\n formatDay,\n formatMoney,\n timeAgo,\n truncateId,\n useClaimantProfiles,\n workItemStatusInfo,\n} from '../_shared/workItemReview';\n\ninterface RuntimeInputs {\n InvoiceID: string;\n Amount: string;\n Date: string;\n Reference: string;\n __xeroHasQueuedWork?: boolean;\n __xeroSelectedWorkItemId?: string;\n}\n\ntype ResolveOpts = { yRuntime?: any; scope?: Record<string, any> };\n\nconst STATUS_ORDER: Record<string, number> = { pending: 0, failed: 1, approved: 2, completed: 3, cancelled: 4 };\n\nfunction shortId(value: unknown, length = 10): string {\n const text = String(value || '');\n return text.length > length ? text.slice(0, length) : text;\n}\n\nexport const XeroPaymentCreateFlowDetail: React.FC<ActionTypeFlowProps<RuntimeInputs>> = ({\n inputs,\n editor,\n block,\n runtime,\n isDisabled,\n provideSigningHandler,\n unlockSigning,\n registerRuntimeInputs,\n executeAction,\n}) => {\n const t = useTranslate();\n const handlers = useBlocknoteHandlers();\n const actorDid = useMemo(() => {\n try {\n return handlers?.getCurrentUser?.()?.address || '';\n } catch {\n return '';\n }\n }, [handlers]);\n const entityDid = useMemo(() => handlers?.getEntityDid?.() || '', [handlers]);\n\n // Hosts can hand us a stale `block` snapshot (FlowNodePanel embeds pass the\n // block captured at selection time and never refresh it), so read the live\n // props back from the document rather than trusting the snapshot.\n const editorDocument = (editor?.document as any[]) || [];\n const liveInputs = editorDocument.find((b) => b?.id === block.id)?.props?.inputs;\n const effectiveInputs = typeof liveInputs === 'string' && liveInputs ? liveInputs : inputs;\n const parsed = useMemo(() => parseXeroPaymentCreateInputs(effectiveInputs), [effectiveInputs]);\n const runtimeReader = useRunRuntimeReader(editor);\n const resolveOpts: ResolveOpts = useMemo(() => ({ yRuntime: runtimeReader }), [runtimeReader]);\n\n // Seeds the runtime form from the parsed template inputs. Reads\n // `editor.document` lazily inside so we don't put the unstable array on a\n // dep — putting it there would re-create `resolveStringField` every render\n // and cause an infinite render loop via the seed effect below.\n const seedFromTemplate = useCallback(\n (field: keyof XeroPaymentCreateInputs): string => {\n const v = parsed[field];\n if (typeof v !== 'string') return '';\n const doc = (editor?.document as any[]) || [];\n return resolveReferences(v, doc, resolveOpts);\n },\n [parsed, editor, resolveOpts]\n );\n\n const [local, setLocal] = useState<RuntimeInputs>(() => ({\n InvoiceID: seedFromTemplate('InvoiceID'),\n Amount: seedFromTemplate('Amount'),\n Date: seedFromTemplate('Date'),\n Reference: seedFromTemplate('Reference'),\n }));\n\n // Re-seed only when the template inputs themselves change. `parsed` is\n // memoised on `inputs`, so this fires once per template-input update —\n // not per render. Crucially we do NOT depend on `seedFromTemplate` as a\n // function ref (which would change with the editor instance).\n useEffect(() => {\n setLocal((prev) => {\n const next: RuntimeInputs = {\n InvoiceID: prev.InvoiceID || seedFromTemplate('InvoiceID'),\n Amount: prev.Amount || seedFromTemplate('Amount'),\n Date: prev.Date || seedFromTemplate('Date'),\n Reference: prev.Reference || seedFromTemplate('Reference'),\n };\n // Bail out of the state update if nothing actually changed — this\n // prevents an unnecessary re-render and the cascade that follows.\n if (next.InvoiceID === prev.InvoiceID && next.Amount === prev.Amount && next.Date === prev.Date && next.Reference === prev.Reference) {\n return prev;\n }\n return next;\n });\n }, [parsed]);\n\n const update = useCallback((patch: Partial<RuntimeInputs>) => {\n setLocal((prev) => ({ ...prev, ...patch }));\n }, []);\n\n const managedByOracle = parsed.managedByOracle;\n const workItems = useXeroWorkItems(editor, { kind: 'payment.create', assignedBlockId: block.id, statuses: ['pending', 'approved', 'failed', 'completed'] });\n const [selectedWorkItemId, setSelectedWorkItemId] = useState('');\n const selectedWorkItem = useMemo(() => workItems.find((item) => item.id === selectedWorkItemId) || null, [workItems, selectedWorkItemId]);\n const selectedWorkItemCompleted = selectedWorkItem?.status === 'completed';\n\n // Oracle mode: each payment settles the invoice its work item chained off.\n // The invoice work item carries the full audit trail (receipt result +\n // submitted payload) — surfaced on the detail page so the owner approves\n // both the invoice and the payment from one review.\n const invoiceItems = useXeroWorkItems(editor, { kind: 'invoice.create' });\n const invoiceItemById = useMemo(() => {\n const map = new Map<string, XeroWorkItem>();\n invoiceItems.forEach((item) => map.set(item.id, item));\n return map;\n }, [invoiceItems]);\n const invoiceItemFor = useCallback(\n (item: XeroWorkItem | null): XeroWorkItem | null => {\n const invoiceWorkItemId = item?.source?.invoiceWorkItemId;\n return invoiceWorkItemId ? invoiceItemById.get(invoiceWorkItemId) || null : null;\n },\n [invoiceItemById]\n );\n const attachedInvoice = useMemo(() => invoiceItemFor(selectedWorkItem), [invoiceItemFor, selectedWorkItem]);\n const attachedInvoiceResult = (attachedInvoice?.result || {}) as Record<string, any>;\n const attachedInvoicePayload = (attachedInvoiceResult.submittedPayload || attachedInvoice?.submittedPayload || attachedInvoice?.reviewPayload || {}) as Record<string, any>;\n const attachedInvoiceLineItems: any[] = Array.isArray(attachedInvoicePayload.LineItems) ? attachedInvoicePayload.LineItems : [];\n\n // Claimant names for the list and detail — the whole point of this surface\n // is \"who gets paid\", so resolve DIDs to Matrix profiles up front.\n const profiles = useClaimantProfiles(workItems.map(claimantDidOf));\n\n useEffect(() => {\n if (!selectedWorkItem) return;\n const payload = selectedWorkItem.reviewPayload || {};\n setLocal({\n InvoiceID: String(payload.InvoiceID || ''),\n Amount: String(payload.Amount || ''),\n Date: String(payload.Date || ''),\n Reference: String(payload.Reference || ''),\n });\n }, [selectedWorkItem?.id]);\n\n // Flow-level: the account and bank account are picked once in the flow's\n // connections and are a prerequisite of starting a session, so this block\n // reads them rather than asking for them.\n const binding = useFlowXeroBinding(editor);\n const hasConnection = !!binding?.connectedAccountId;\n const bankAccountId = (binding?.bankAccountId || '').trim();\n const entityMismatch = hasConnection && entityDid && binding!.entityDid && binding!.entityDid !== entityDid;\n const isCompleted = runtime.state === 'completed' && !selectedWorkItem;\n\n const amountNumber = useMemo(() => {\n const trimmed = local.Amount.trim();\n if (!trimmed) return NaN;\n return Number(trimmed);\n }, [local.Amount]);\n const amountValid = Number.isFinite(amountNumber) && amountNumber > 0;\n\n // Oracle mode: the flow's bank account is the one the contracted oracle\n // debits — approval is gated on the flow having one.\n const selectedApprovable = !!selectedWorkItem && (selectedWorkItem.status === 'pending' || selectedWorkItem.status === 'failed');\n\n const readyToSign = managedByOracle\n ? false // oracle approval is the in-page Approve button, not the signing slider\n : hasConnection && !entityMismatch && !!bankAccountId && !!local.InvoiceID.trim() && amountValid && !isCompleted && !selectedWorkItemCompleted;\n\n useEffect(() => {\n unlockSigning?.(readyToSign);\n }, [unlockSigning, readyToSign]);\n\n useEffect(() => {\n registerRuntimeInputs?.({\n ...local,\n __xeroHasQueuedWork: workItems.length > 0,\n // Oracle mode owns its whole detail page (including the Approve action),\n // so never ask the panel for the diff + slider; manual mode still signs\n // through the panel's slide-to-sign.\n __xeroSelectedWorkItemId: !managedByOracle && selectedWorkItem && !selectedWorkItemCompleted ? selectedWorkItem.id : '',\n });\n }, [registerRuntimeInputs, local, managedByOracle, selectedWorkItem?.id, selectedWorkItemCompleted, workItems.length]);\n\n const [error, setError] = useState<string | null>(null);\n const [approving, setApproving] = useState(false);\n\n const execute = useCallback(async () => {\n if (selectedWorkItemCompleted) {\n return;\n }\n\n // Oracle-managed approval: the human gate, not an execution. Recording\n // `approved` hands the item to the flow-manager contractor, which sends\n // the claim material to the xero-oracle — the oracle authorises the DRAFT\n // invoice and records the payment. No Xero call happens editor-side.\n if (managedByOracle) {\n if (!selectedWorkItem || !selectedApprovable) return;\n if (!bankAccountId) {\n setError(\n t('actionTypes.xero.payment.errors.bankAccountBeforeApprove', { defaultValue: \"Pick the bank account in this flow's Xero connection before approving payments.\" })\n );\n return;\n }\n // Stamp the flow's account and organisation onto the approved payload:\n // this is what the contracted oracle settles with, and it is the only\n // place the flow binding reaches the headless side.\n const approvedTenantId = parsed.tenant_id.trim() || (binding?.tenantId || '').trim();\n const approvedPayload = {\n ...(selectedWorkItem.reviewPayload || {}),\n AccountID: bankAccountId,\n ...(approvedTenantId ? { tenant_id: approvedTenantId } : {}),\n };\n setApproving(true);\n try {\n updateXeroWorkReviewPayloadForEditor(editor, selectedWorkItem.id, approvedPayload);\n markXeroWorkApprovedForEditor(editor, selectedWorkItem.id, { byDid: actorDid });\n setError(null);\n } finally {\n setApproving(false);\n }\n return;\n }\n\n if (!hasConnection) {\n setError(\"Connect Xero in this flow's connections before running this action.\");\n return;\n }\n if (!bankAccountId) {\n setError(\"Pick the bank account in this flow's Xero connection before running this action.\");\n return;\n }\n if (!amountValid) {\n setError('Amount must be a positive number.');\n return;\n }\n\n const submittedPayload = {\n ...(selectedWorkItem?.reviewPayload || {}),\n InvoiceID: local.InvoiceID,\n AccountID: bankAccountId,\n Date: local.Date,\n Amount: amountNumber,\n Reference: local.Reference,\n };\n if (selectedWorkItem) updateXeroWorkReviewPayloadForEditor(editor, selectedWorkItem.id, submittedPayload);\n setError(null);\n\n try {\n if (!executeAction) {\n throw new Error('Shared action executor is unavailable');\n }\n\n const editorDoc = (editor?.document as any[]) || [];\n const resolveTemplate = (v: string | undefined) => resolveReferences(v || '', editorDoc, resolveOpts);\n const currencyRateRaw = resolveTemplate(parsed.CurrencyRate).trim();\n const currencyRate = currencyRateRaw ? Number(currencyRateRaw) : undefined;\n const runtimeInputs = {\n ...submittedPayload,\n CurrencyRate: typeof currencyRate === 'number' && Number.isFinite(currencyRate) ? currencyRate : undefined,\n };\n\n const outcome = await executeAction({ runtimeInputs: runtimeInputs as unknown as RuntimeInputs });\n\n if (!outcome.success) {\n throw new Error(outcome.error || 'Xero payment creation failed');\n }\n\n const output = outcome.output || {};\n\n if (selectedWorkItem) {\n markXeroWorkCompletedForEditor(editor, selectedWorkItem.id, { byDid: actorDid, payload: runtimeInputs, result: output });\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Failed to record Xero payment';\n setError(message);\n if (selectedWorkItem) markXeroWorkFailedForEditor(editor, selectedWorkItem.id, { byDid: actorDid, payload: submittedPayload, error: message });\n }\n }, [\n actorDid,\n amountNumber,\n amountValid,\n bankAccountId,\n binding?.tenantId,\n editor,\n executeAction,\n hasConnection,\n local,\n managedByOracle,\n parsed.CurrencyRate,\n parsed.tenant_id,\n resolveOpts,\n selectedApprovable,\n selectedWorkItem,\n selectedWorkItemCompleted,\n t,\n ]);\n\n useEffect(() => {\n if (!provideSigningHandler) return;\n provideSigningHandler(execute);\n }, [provideSigningHandler, execute]);\n\n // Sorted so what needs the human comes first: to-approve, failed, settling, paid.\n const sortedItems = useMemo(\n () =>\n [...workItems].sort((a, b) => {\n const rank = (STATUS_ORDER[a.status] ?? 9) - (STATUS_ORDER[b.status] ?? 9);\n if (rank !== 0) return rank;\n return (b.provenance?.createdAt || 0) - (a.provenance?.createdAt || 0);\n }),\n [workItems]\n );\n\n const connectionWarnings = !selectedWorkItemCompleted && (\n <>\n {(!hasConnection || !bankAccountId) && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n {hasConnection\n ? t('actionTypes.xero.payment.warnings.pickBankAccount', {\n defaultValue: \"Pick the bank account in this flow's Xero connection — every payment from this block debits it.\",\n })\n : t('actionTypes.xero.payment.warnings.connectXero', { defaultValue: \"Connect Xero in this flow's connections before payments can be recorded.\" })}\n </Alert>\n )}\n {entityMismatch && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n {t('actionTypes.xero.payment.warnings.entityMismatch', { defaultValue: 'This flow was connected in a different workspace. Reconnect Xero to use it here.' })}\n </Alert>\n )}\n </>\n );\n\n const errorAlert = error && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {error}\n </Alert>\n );\n\n const disabledNote = isDisabled && !isCompleted && (\n <Text size=\"xs\" c=\"dimmed\">\n {t('actionTypes.xero.payment.blockDisabled', { defaultValue: 'This block is currently disabled.' })}\n </Text>\n );\n\n // ── Detail page (one payment, full canvas) ──\n if (selectedWorkItem) {\n const item = selectedWorkItem;\n const status = workItemStatusInfo(item, t);\n const profile = profiles[claimantDidOf(item)];\n const name = claimantNameOf(item, profiles, attachedInvoicePayload.ContactName);\n const currency = attachedInvoiceResult.currencyCode || attachedInvoicePayload.CurrencyCode || '';\n const paymentDate = String(item.reviewPayload?.Date || '');\n const invoiceStatus = String(attachedInvoiceResult.status || attachedInvoicePayload.Status || 'DRAFT').toUpperCase();\n\n return (\n <Stack gap=\"md\">\n {/* Back header — claim name, back button before it */}\n <Group gap=\"xs\" align=\"center\">\n <ActionIcon\n variant=\"subtle\"\n color=\"gray\"\n size=\"sm\"\n onClick={() => setSelectedWorkItemId('')}\n aria-label={t('actionTypes.xero.payment.backToList', { defaultValue: 'Back to payments' })}\n >\n <IconArrowLeft size={16} />\n </ActionIcon>\n <Text fw={500} size=\"sm\" title={item.source.claimId} truncate style={{ flex: 1, minWidth: 0 }}>\n {t('actionTypes.claim.flow.claimNumber', { id: truncateId(item.source.claimId), defaultValue: `Claim #${truncateId(item.source.claimId)}` })}\n </Text>\n <Text fw={500} size=\"sm\" c={status.color} style={{ flexShrink: 0 }}>\n {status.label}\n </Text>\n </Group>\n\n {/* The three facts that decide an approval: who, how much, when */}\n <Stack\n gap={12}\n p={16}\n style={{\n borderRadius: 16,\n border: '1px solid color-mix(in srgb, var(--mantine-color-text) 6%, transparent)',\n background: 'var(--mantine-color-neutralColor-5)',\n }}\n >\n <DetailField label={t('actionTypes.xero.payment.detail.who', { defaultValue: 'Who' })}>\n <Group gap={8} align=\"center\" wrap=\"nowrap\" style={{ minWidth: 0 }}>\n <ClaimantAvatar profile={profile} label={name} size={24} />\n <Text size=\"sm\" fw={500} truncate style={{ minWidth: 0 }}>\n {name}\n </Text>\n </Group>\n </DetailField>\n <DetailField label={t('actionTypes.xero.payment.detail.amount', { defaultValue: 'Amount' })}>{formatMoney(item.reviewPayload?.Amount, currency)}</DetailField>\n <DetailField label={t('actionTypes.xero.payment.detail.when', { defaultValue: 'When' })}>{formatDay(paymentDate) || timeAgo(item.provenance?.createdAt)}</DetailField>\n </Stack>\n\n {/* Everything technical lives here, out of the decision path */}\n <CollapsibleSection title={t('actionTypes.xero.payment.detail.more', { defaultValue: 'More' })}>\n <Stack gap=\"sm\">\n <MoreField label={t('actionTypes.xero.payment.more.claimId', { defaultValue: 'Claim ID' })} value={String(item.source.claimId || '')} />\n {attachedInvoice ? (\n <MoreField\n label={t('actionTypes.xero.payment.more.invoice', { defaultValue: 'Invoice' })}\n value={\n <Stack gap={4}>\n <Group gap=\"xs\" align=\"center\">\n <Text size=\"xs\" style={{ wordBreak: 'break-all' }}>\n {String(attachedInvoiceResult.invoiceNumber || attachedInvoiceResult.invoiceId || item.reviewPayload?.InvoiceID || '')}\n </Text>\n <Badge size=\"xs\" variant=\"light\" color={invoiceStatus === 'AUTHORISED' ? 'green' : 'yellow'}>\n {invoiceStatus}\n </Badge>\n </Group>\n {attachedInvoiceLineItems.map((line, index) => (\n <Group key={index} justify=\"space-between\" gap=\"md\" wrap=\"nowrap\">\n <Text size=\"xs\" c=\"dimmed\" truncate style={{ minWidth: 0, flex: 1 }}>\n {String(line?.Description || `Line ${index + 1}`)}\n </Text>\n <Text size=\"xs\" c=\"dimmed\" style={{ whiteSpace: 'nowrap' }}>\n {String(line?.Quantity ?? 1)} × {formatMoney(line?.UnitAmount)}\n </Text>\n </Group>\n ))}\n </Stack>\n }\n />\n ) : (\n <MoreField label={t('actionTypes.xero.payment.more.invoiceId', { defaultValue: 'Invoice ID' })} value={String(item.reviewPayload?.InvoiceID || '')} />\n )}\n <MoreField label={t('actionTypes.xero.payment.more.reference', { defaultValue: 'Reference (tx hash)' })} value={String(item.reviewPayload?.Reference || '')} />\n <MoreField\n label={t('actionTypes.xero.payment.more.bankAccount', { defaultValue: 'Bank account' })}\n value={bankAccountId || String(item.reviewPayload?.AccountID || '')}\n />\n <MoreField\n label={t('actionTypes.xero.payment.more.xeroOrg', { defaultValue: 'Xero organisation' })}\n value={String(item.reviewPayload?.tenant_id || binding?.tenantId || '')}\n />\n {item.status === 'completed' && (\n <MoreField label={t('actionTypes.xero.payment.more.paymentId', { defaultValue: 'Payment ID' })} value={String(item.result?.paymentId || '')} />\n )}\n </Stack>\n </CollapsibleSection>\n\n {/* Lifecycle feedback */}\n {item.status === 'approved' && (\n <Alert color=\"blue\" styles={actionAlertStyles}>\n {t('actionTypes.xero.payment.approvedSettling', {\n defaultValue: 'Approved — the Xero oracle is settling this payment. It will show as Paid once the payment is recorded.',\n })}\n </Alert>\n )}\n {item.status === 'completed' && (\n <Alert color=\"green\" styles={actionAlertStyles}>\n {t('actionTypes.xero.payment.recorded', { defaultValue: 'Payment recorded' })}\n {item.result?.paymentId ? ` — ${String(item.result.paymentId)}` : ''}.\n </Alert>\n )}\n {item.status === 'failed' && item.error?.message && (\n <Alert color=\"red\" styles={actionAlertStyles}>\n {item.error.message}\n </Alert>\n )}\n {errorAlert}\n\n {/* Manual mode reviews edit the payload before signing via the panel slider */}\n {!managedByOracle && !selectedWorkItemCompleted && (\n <Stack gap=\"sm\">\n <DataInput label=\"Invoice ID\" value={local.InvoiceID} onChange={(value) => update({ InvoiceID: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput label=\"Amount\" value={local.Amount} onChange={(value) => update({ Amount: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput label=\"Date\" value={local.Date} onChange={(value) => update({ Date: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput\n label=\"Reference (tx hash)\"\n value={local.Reference}\n onChange={(value) => update({ Reference: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n />\n </Stack>\n )}\n\n {/* The action, at the bottom */}\n {managedByOracle && selectedApprovable && (\n <Stack gap=\"xs\">\n {!bankAccountId ? (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n {t('actionTypes.xero.payment.warnings.bankAccountBeforeApprove', {\n defaultValue: \"Pick the bank account in this flow's Xero connection before approving — it applies to every payment in this flow.\",\n })}\n </Alert>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n {t('actionTypes.xero.payment.approveHint', { defaultValue: 'Approving authorises the invoice in Xero and records this payment against it.' })}\n </Text>\n )}\n <Button fullWidth size=\"md\" onClick={() => void execute()} disabled={isDisabled || approving || !bankAccountId} loading={approving}>\n {item.status === 'failed'\n ? t('actionTypes.xero.payment.approveRetry', { defaultValue: 'Approve & retry' })\n : t('actionTypes.xero.payment.approve', { defaultValue: 'Approve' })}\n </Button>\n </Stack>\n )}\n\n {disabledNote}\n </Stack>\n );\n }\n\n // ── List page (all payments in this session) ──\n if (managedByOracle || workItems.length > 0) {\n return (\n <Stack gap=\"md\">\n {connectionWarnings}\n\n {sortedItems.length === 0 ? (\n <Text size=\"sm\" c=\"dimmed\" ta=\"center\" py=\"md\">\n {t('actionTypes.xero.payment.emptyList', { defaultValue: 'No payments yet. Approved claims that queue a payment will appear here.' })}\n </Text>\n ) : (\n <Stack gap={12}>\n {sortedItems.map((item) => {\n const invoice = invoiceItemFor(item);\n const invoicePayload = ((invoice?.result as any)?.submittedPayload || invoice?.submittedPayload || invoice?.reviewPayload || {}) as Record<string, any>;\n const currency = (invoice?.result as any)?.currencyCode || invoicePayload.CurrencyCode || '';\n const name = claimantNameOf(item, profiles, invoicePayload.ContactName);\n return (\n <WorkItemRow\n key={item.id}\n item={item}\n profile={profiles[claimantDidOf(item)]}\n name={name}\n summary={formatMoney(item.reviewPayload?.Amount, currency)}\n t={t}\n onOpen={() => setSelectedWorkItemId(item.id)}\n />\n );\n })}\n </Stack>\n )}\n\n {errorAlert}\n {disabledNote}\n </Stack>\n );\n }\n\n // ── Manual mode with no queued work: plain runtime form ──\n return (\n <Stack gap=\"md\">\n {connectionWarnings}\n\n {hasConnection && bankAccountId && (\n <Text size=\"xs\" c=\"dimmed\">\n {t('actionTypes.xero.payment.debitsAccount', { account: shortId(bankAccountId), defaultValue: `Debits the flow's Xero bank account ${shortId(bankAccountId)}.` })}\n </Text>\n )}\n\n {!isCompleted && (\n <Stack gap=\"sm\">\n <DataInput label=\"Invoice ID\" value={local.InvoiceID} onChange={(value) => update({ InvoiceID: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput label=\"Amount\" value={local.Amount} onChange={(value) => update({ Amount: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput label=\"Date\" value={local.Date} onChange={(value) => update({ Date: value })} editorDocument={editorDocument} currentBlockId={block.id} />\n <DataInput\n label=\"Reference (tx hash)\"\n value={local.Reference}\n onChange={(value) => update({ Reference: value })}\n editorDocument={editorDocument}\n currentBlockId={block.id}\n />\n </Stack>\n )}\n\n {isCompleted && (\n <Alert color=\"green\" styles={actionAlertStyles}>\n {t('actionTypes.xero.payment.recorded', { defaultValue: 'Payment recorded' })}\n {runtime.output?.paymentId ? ` — ${runtime.output.paymentId}` : ''}.\n </Alert>\n )}\n\n {errorAlert}\n {disabledNote}\n </Stack>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { readFlowXeroBinding } from '@/core/lib/actionRegistry/actions/xero/flowBinding';\nimport { FLOW_CONNECTION_BINDINGS_MAP_KEY, type FlowConnectionBinding } from '@/core/lib/flowCompiler/connections';\n\n/**\n * The flow's Xero binding — connection, organisation, bank account — kept live.\n *\n * Read-only by design: the binding is chosen in the flow's connections before a\n * session starts, so a block surfaces it but never edits it. `observeDeep`\n * rather than `observe`, because each toolkit's entry is a nested `Y.Map` and a\n * shallow observer would miss a bank account being picked.\n */\nexport function useFlowXeroBinding(editor: any): FlowConnectionBinding | undefined {\n const yDoc = editor?._yDoc;\n const [binding, setBinding] = useState<FlowConnectionBinding | undefined>(() => readFlowXeroBinding(yDoc));\n\n useEffect(() => {\n if (!yDoc) {\n setBinding(undefined);\n return;\n }\n const map = yDoc.getMap(FLOW_CONNECTION_BINDINGS_MAP_KEY);\n const sync = () => setBinding(readFlowXeroBinding(yDoc));\n map.observeDeep(sync);\n sync();\n return () => map.unobserveDeep(sync);\n }, [yDoc]);\n\n return binding;\n}\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Box, Group, Stack, Text } from '@mantine/core';\nimport { IconCheck } from '@tabler/icons-react';\nimport { useBlocknoteHandlers, type IUserMatrixProfile, type Translate } from '@/mantine/context/BlocknoteContext';\nimport type { XeroWorkItem } from '@/core/lib/xeroWorkItems';\nimport ListItemContainer from '@/mantine/blocks/list/ListItemContainer';\n\n/**\n * Shared presentation layer for the Xero work-item review surfaces (payment\n * approval, invoice queue). Mirrors the list → detail design language of the\n * claim evaluation views: avatar + display name rows, colored status text,\n * relative time on the right, back-header detail pages.\n */\n\nexport function timeAgo(input: string | number | undefined): string {\n if (!input) return '';\n try {\n const date = new Date(input);\n const diffMs = Date.now() - date.getTime();\n const diffMins = Math.floor(diffMs / 60000);\n if (diffMins < 1) return 'just now';\n if (diffMins < 60) return `${diffMins}m ago`;\n const diffHours = Math.floor(diffMins / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n const diffDays = Math.floor(diffHours / 24);\n if (diffDays < 30) return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;\n const diffMonths = Math.floor(diffDays / 30);\n return `${diffMonths} month${diffMonths > 1 ? 's' : ''} ago`;\n } catch {\n return String(input);\n }\n}\n\nexport function truncateId(value: string, start: number = 8, end: number = 6): string {\n if (!value) return '';\n if (value.length <= start + end + 3) return value;\n return `${value.slice(0, start)}...${value.slice(-end)}`;\n}\n\nexport function truncateAddress(address: string): string {\n if (!address) return '';\n if (address.length <= 14) return address;\n return `${address.slice(0, 8)}...${address.slice(-3)}`;\n}\n\nexport function formatMoney(amount: unknown, currency?: unknown): string {\n const n = Number(amount);\n const value = Number.isFinite(n) ? n.toFixed(2) : String(amount || '0.00');\n const code = String(currency || '').trim();\n return code ? `${value} ${code}` : value;\n}\n\n/** Date-only display for payload dates like `2026-08-05` (formatDate would append a midnight time). */\nexport function formatDay(dateString: string | undefined): string {\n if (!dateString) return '';\n try {\n const [y, m, d] = dateString.slice(0, 10).split('-').map(Number);\n if (!y || !m || !d) return dateString;\n return new Date(y, m - 1, d).toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });\n } catch {\n return dateString;\n }\n}\n\n/**\n * Resolve claimant DIDs to Matrix profiles so lists/details show names, not\n * raw DIDs. Each DID is attempted once per mount — a failed lookup falls back\n * to the DID rather than refetching in a loop.\n */\nexport function useClaimantProfiles(dids: Array<string | undefined>): Record<string, IUserMatrixProfile> {\n const handlers = useBlocknoteHandlers();\n const handlersRef = useRef(handlers);\n handlersRef.current = handlers;\n const attemptedRef = useRef<Set<string>>(new Set());\n const [profiles, setProfiles] = useState<Record<string, IUserMatrixProfile>>({});\n\n const key = useMemo(\n () =>\n Array.from(new Set(dids.filter((did): did is string => !!did)))\n .sort()\n .join('|'),\n [dids.join('|')]\n );\n\n useEffect(() => {\n let mounted = true;\n const missing = (key ? key.split('|') : []).filter((did) => !attemptedRef.current.has(did));\n if (missing.length === 0) {\n return () => {\n mounted = false;\n };\n }\n missing.forEach((did) => attemptedRef.current.add(did));\n\n void (async () => {\n const results = await Promise.all(\n missing.map(async (did) => {\n try {\n const profile = await handlersRef.current.getMatrixInfoPerDid(did);\n return [did, profile] as const;\n } catch {\n return [did, null] as const;\n }\n })\n );\n if (!mounted) return;\n setProfiles((prev) => {\n const next = { ...prev };\n results.forEach(([did, profile]) => {\n if (profile) next[did] = profile;\n });\n return next;\n });\n })();\n\n return () => {\n mounted = false;\n };\n }, [key]);\n\n return profiles;\n}\n\nexport function claimantDidOf(item: XeroWorkItem): string {\n return String(item.provenance?.claimSnapshot?.agentDid || '');\n}\n\n/** Best human name for the person this work item pays: Matrix profile → invoice contact → DID → claim id. */\nexport function claimantNameOf(item: XeroWorkItem, profiles: Record<string, IUserMatrixProfile>, fallbackContactName?: string): string {\n const did = claimantDidOf(item);\n return (\n profiles[did]?.displayname ||\n String(fallbackContactName || '').trim() ||\n did ||\n String(item.provenance?.claimSnapshot?.agentAddress || '') ||\n `Claim ${truncateId(item.source.claimId)}`\n );\n}\n\nexport interface WorkItemStatusInfo {\n label: string;\n color: string;\n showCheck?: boolean;\n}\n\nexport function workItemStatusInfo(item: XeroWorkItem, t: Translate): WorkItemStatusInfo {\n switch (item.status) {\n case 'pending':\n return { label: t('actionTypes.xero.work.status.toApprove', { defaultValue: 'To approve' }), color: 'blue' };\n case 'approved':\n return { label: t('actionTypes.xero.work.status.settling', { defaultValue: 'Settling' }), color: 'teal' };\n case 'completed':\n return {\n label:\n item.kind === 'payment.create'\n ? t('actionTypes.xero.work.status.paid', { defaultValue: 'Paid' })\n : t('actionTypes.xero.work.status.completed', { defaultValue: 'Completed' }),\n color: 'green.5',\n showCheck: true,\n };\n case 'failed':\n return { label: t('actionTypes.xero.work.status.failed', { defaultValue: 'Failed' }), color: 'red' };\n case 'cancelled':\n default:\n return { label: t('actionTypes.xero.work.status.cancelled', { defaultValue: 'Cancelled' }), color: 'dimmed' };\n }\n}\n\nexport function ClaimantAvatar({ profile, label, size = 32 }: { profile?: IUserMatrixProfile; label: string; size?: number }) {\n return (\n <Box\n style={{\n width: size,\n height: size,\n borderRadius: '50%',\n background: 'var(--mantine-color-neutralColor-4)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n fontSize: size >= 40 ? 16 : 14,\n fontWeight: 500,\n color: 'var(--mantine-color-dimmed)',\n backgroundImage: profile?.avatarUrl ? `url(${profile.avatarUrl})` : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n }}\n >\n {profile?.avatarUrl ? null : (label || '?')[0]?.toUpperCase()}\n </Box>\n );\n}\n\n/**\n * One work item in the list page: avatar, claimant name + one-line summary,\n * status + relative time on the right. Click opens the detail page.\n */\nexport function WorkItemRow({\n item,\n profile,\n name,\n summary,\n t,\n onOpen,\n}: {\n item: XeroWorkItem;\n profile?: IUserMatrixProfile;\n name: string;\n summary?: string;\n t: Translate;\n onOpen: () => void;\n}) {\n const status = workItemStatusInfo(item, t);\n return (\n <ListItemContainer isChecked={false} onClick={onOpen}>\n <Group gap={16} align=\"center\" style={{ flex: 1, minWidth: 0 }}>\n <ClaimantAvatar profile={profile} label={name} />\n <Stack gap={0} style={{ flex: 1, minWidth: 0 }}>\n <Text fw={500} size=\"md\" truncate style={{ lineHeight: 1.5 }}>\n {name}\n </Text>\n {summary && (\n <Text size=\"xs\" c=\"dimmed\" truncate>\n {summary}\n </Text>\n )}\n </Stack>\n </Group>\n <Stack gap={0} align=\"flex-end\" style={{ flexShrink: 0, minWidth: 80 }}>\n <Text fw={500} size=\"md\" c={status.color} style={{ lineHeight: 1.5, whiteSpace: 'nowrap' }}>\n {status.showCheck && <IconCheck size={14} style={{ verticalAlign: 'middle', marginRight: 2 }} />}\n {status.label}\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n {timeAgo(item.completedAt || item.provenance?.createdAt)}\n </Text>\n </Stack>\n </ListItemContainer>\n );\n}\n\n/** A single label/value line on the detail page (Who / Amount / When). */\nexport function DetailField({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <Group justify=\"space-between\" align=\"center\" gap=\"md\" wrap=\"nowrap\">\n <Text size=\"sm\" c=\"dimmed\" style={{ flexShrink: 0 }}>\n {label}\n </Text>\n {typeof children === 'string' ? (\n <Text size=\"sm\" fw={500} truncate style={{ minWidth: 0 }} ta=\"right\">\n {children}\n </Text>\n ) : (\n children\n )}\n </Group>\n );\n}\n\n/** A technical reference line inside the \"More\" section — full value, breakable, copy-friendly. */\nexport function MoreField({ label, value }: { label: string; value: React.ReactNode }) {\n if (!value) return null;\n return (\n <Stack gap={2}>\n <Text size=\"xs\" c=\"dimmed\">\n {label}\n </Text>\n {typeof value === 'string' ? (\n <Text size=\"xs\" style={{ wordBreak: 'break-all', userSelect: 'all' }}>\n {value}\n </Text>\n ) : (\n value\n )}\n </Stack>\n );\n}\n"],"mappings":"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","names":["React","useEffect","useMemo","useState","Group","Stack","Text","useEffect","useState","useState","useEffect","useMemo","useState","useEffect","React","Text","Stack","Group"]}
|