@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,309 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildDesignPodPhasePrompt,
|
|
3
|
+
readDesignPodDefinition,
|
|
4
|
+
readDesignPodState
|
|
5
|
+
} from "./chunk-JIDTNKKL.js";
|
|
6
|
+
import "./chunk-IIIZZ4E4.js";
|
|
7
|
+
import "./chunk-HT6L7A5M.js";
|
|
8
|
+
import "./chunk-NCSGIRRQ.js";
|
|
9
|
+
import {
|
|
10
|
+
useBlocknoteContext
|
|
11
|
+
} from "./chunk-4DGCCXD6.js";
|
|
12
|
+
import "./chunk-7W7UUUIE.js";
|
|
13
|
+
import "./chunk-TS2LNBF2.js";
|
|
14
|
+
|
|
15
|
+
// src/mantine/blocks/action/actionTypes/designPod/DesignPodFlowDetail.tsx
|
|
16
|
+
import React2, { useCallback, useEffect, useMemo, useState } from "react";
|
|
17
|
+
import { Alert, Box as Box2, Button, Code, Collapse, Group as Group2, Loader, Select, Stack as Stack2, Text as Text2, TextInput, UnstyledButton } from "@mantine/core";
|
|
18
|
+
import { IconChevronDown, IconChevronUp, IconPlayerPlay, IconSparkles } from "@tabler/icons-react";
|
|
19
|
+
|
|
20
|
+
// src/mantine/blocks/action/actionTypes/designPod/DesignPodValueView.tsx
|
|
21
|
+
import React from "react";
|
|
22
|
+
import { Box, Group, Stack, Text } from "@mantine/core";
|
|
23
|
+
function humanizeKey(key) {
|
|
24
|
+
const spaced = key.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ");
|
|
25
|
+
return spaced.charAt(0).toUpperCase() + spaced.slice(1);
|
|
26
|
+
}
|
|
27
|
+
function isRecord(value) {
|
|
28
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
29
|
+
}
|
|
30
|
+
function Primitive({ value }) {
|
|
31
|
+
if (value === null || value === void 0 || value === "") {
|
|
32
|
+
return /* @__PURE__ */ React.createElement(Text, { fz: 12, c: "dimmed", fs: "italic", component: "span" }, "\u2014");
|
|
33
|
+
}
|
|
34
|
+
return /* @__PURE__ */ React.createElement(Text, { fz: 12, c: "dimmed", component: "span", style: { overflowWrap: "anywhere" } }, typeof value === "boolean" ? value ? "Yes" : "No" : String(value));
|
|
35
|
+
}
|
|
36
|
+
var DesignPodValueView = ({ value, depth = 0 }) => {
|
|
37
|
+
if (Array.isArray(value)) {
|
|
38
|
+
if (value.length === 0) return /* @__PURE__ */ React.createElement(Primitive, { value: "" });
|
|
39
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: 2, pl: depth > 0 ? 10 : 4 }, value.map((item, index) => /* @__PURE__ */ React.createElement(Group, { key: index, gap: 6, wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React.createElement(Text, { fz: 12, c: "dimmed", component: "span", lh: 1.5 }, "\u2022"), /* @__PURE__ */ React.createElement(Box, { flex: 1, miw: 0 }, isRecord(item) || Array.isArray(item) ? /* @__PURE__ */ React.createElement(DesignPodValueView, { value: item, depth: depth + 1 }) : /* @__PURE__ */ React.createElement(Primitive, { value: item })))));
|
|
40
|
+
}
|
|
41
|
+
if (isRecord(value)) {
|
|
42
|
+
const entries = Object.entries(value);
|
|
43
|
+
if (entries.length === 0) return /* @__PURE__ */ React.createElement(Primitive, { value: "" });
|
|
44
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: 6, pl: depth > 0 ? 10 : 0, style: depth > 0 ? { borderLeft: "1px solid var(--mantine-color-default-border)" } : void 0 }, entries.map(([key, entry]) => {
|
|
45
|
+
const nested = isRecord(entry) || Array.isArray(entry);
|
|
46
|
+
return /* @__PURE__ */ React.createElement(Box, { key }, /* @__PURE__ */ React.createElement(Text, { fz: 12, fw: 600, component: "span" }, humanizeKey(key), nested ? "" : ": "), nested ? /* @__PURE__ */ React.createElement(Box, { mt: 2 }, /* @__PURE__ */ React.createElement(DesignPodValueView, { value: entry, depth: depth + 1 })) : /* @__PURE__ */ React.createElement(Primitive, { value: entry }));
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
return /* @__PURE__ */ React.createElement(Primitive, { value });
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// src/mantine/blocks/action/actionTypes/designPod/DesignPodFlowDetail.tsx
|
|
53
|
+
function getDoc(editor) {
|
|
54
|
+
return editor?._yDoc;
|
|
55
|
+
}
|
|
56
|
+
function parseInputs(inputs) {
|
|
57
|
+
try {
|
|
58
|
+
const parsed = JSON.parse(inputs || "{}");
|
|
59
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
|
|
60
|
+
} catch {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
var LABELS = {
|
|
65
|
+
"qi/blueprint.checklist-update": "Save signed checklist decision",
|
|
66
|
+
"qi/blueprint.phase-commit": "Yes, continue",
|
|
67
|
+
"qi/blueprint.reviewer-assign": "Assign reviewer",
|
|
68
|
+
"qi/blueprint.review-submit": "Submit for independent review",
|
|
69
|
+
"qi/blueprint.review-respond": "Record review decision",
|
|
70
|
+
"qi/blueprint.release-compile": "Compile reviewed blueprint",
|
|
71
|
+
"qi/blueprint.publish": "Publish verified blueprint",
|
|
72
|
+
"qi/blueprint.protocol-mint": "Mint protocol"
|
|
73
|
+
};
|
|
74
|
+
function buildReviewPlayback(definition, state) {
|
|
75
|
+
return definition.phases.flatMap((phase) => {
|
|
76
|
+
const commitment = state.phaseCommitments[phase.id];
|
|
77
|
+
return phase.controls.map((controlId) => {
|
|
78
|
+
const revision = state.controls[controlId];
|
|
79
|
+
const submittedDigest = commitment?.controlDigests[controlId];
|
|
80
|
+
return {
|
|
81
|
+
phase: phase.title,
|
|
82
|
+
controlId,
|
|
83
|
+
title: definition.controls[controlId].title,
|
|
84
|
+
submittedDigest,
|
|
85
|
+
currentDigest: revision?.digest,
|
|
86
|
+
matchesSubmittedDigest: commitment?.status === "current" && Boolean(submittedDigest) && revision?.status === "current" && revision.digest === submittedDigest,
|
|
87
|
+
content: revision?.content
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
var DesignPodFlowDetail = ({ inputs, editor, block, runtime, isDisabled, executeAction }) => {
|
|
93
|
+
const doc = getDoc(editor);
|
|
94
|
+
const actionType = String(block?.props?.actionType || "");
|
|
95
|
+
const { handlers } = useBlocknoteContext();
|
|
96
|
+
const currentUserDid = useMemo(() => {
|
|
97
|
+
try {
|
|
98
|
+
const user = handlers?.getCurrentUser?.();
|
|
99
|
+
return user?.did || (user?.address ? `did:ixo:${user.address}` : "");
|
|
100
|
+
} catch {
|
|
101
|
+
return "";
|
|
102
|
+
}
|
|
103
|
+
}, [handlers]);
|
|
104
|
+
const savedInputs = useMemo(() => parseInputs(inputs), [inputs]);
|
|
105
|
+
const [reviewerDid, setReviewerDid] = useState("");
|
|
106
|
+
const [decision, setDecision] = useState("approved");
|
|
107
|
+
const [checklistItemId, setChecklistItemId] = useState("");
|
|
108
|
+
const [checklistDisposition, setChecklistDisposition] = useState("resolved");
|
|
109
|
+
const [executing, setExecuting] = useState(false);
|
|
110
|
+
const [localError, setLocalError] = useState(null);
|
|
111
|
+
const [expandedPlayback, setExpandedPlayback] = useState(() => /* @__PURE__ */ new Set());
|
|
112
|
+
const togglePlayback = (id) => setExpandedPlayback((prev) => {
|
|
113
|
+
const next = new Set(prev);
|
|
114
|
+
if (next.has(id)) next.delete(id);
|
|
115
|
+
else next.add(id);
|
|
116
|
+
return next;
|
|
117
|
+
});
|
|
118
|
+
const [, refresh] = useState(0);
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
if (!doc) return;
|
|
121
|
+
const update = () => refresh((value) => value + 1);
|
|
122
|
+
doc.getMap("designPodDefinition").observeDeep(update);
|
|
123
|
+
doc.getMap("designPodState").observeDeep(update);
|
|
124
|
+
doc.getMap("delegations").observeDeep(update);
|
|
125
|
+
return () => {
|
|
126
|
+
doc.getMap("designPodDefinition").unobserveDeep(update);
|
|
127
|
+
doc.getMap("designPodState").unobserveDeep(update);
|
|
128
|
+
doc.getMap("delegations").unobserveDeep(update);
|
|
129
|
+
};
|
|
130
|
+
}, [doc]);
|
|
131
|
+
const definition = doc ? readDesignPodDefinition(doc) : void 0;
|
|
132
|
+
const state = doc ? readDesignPodState(doc) : void 0;
|
|
133
|
+
const phase = savedInputs.phase;
|
|
134
|
+
const phaseDefinition = phase && definition ? definition.phases.find((candidate) => candidate.id === phase) : void 0;
|
|
135
|
+
const hasRootCapability = Boolean(editor?.getRootCapability?.()?.delegation);
|
|
136
|
+
const reviewPlayback = useMemo(() => definition && state ? buildReviewPlayback(definition, state) : [], [definition, state]);
|
|
137
|
+
const reviewPlaybackIsCurrent = reviewPlayback.length > 0 && reviewPlayback.every((control) => control.matchesSubmittedDigest);
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
if (actionType !== "qi/blueprint.checklist-update" || !definition || checklistItemId) return;
|
|
140
|
+
const firstMissing = definition.publicationRules.checklistItems.find((item) => !state?.checklistRecords[item.id]);
|
|
141
|
+
const initialItemId = firstMissing?.id || definition.publicationRules.checklistItems[0]?.id || "";
|
|
142
|
+
setChecklistItemId(initialItemId);
|
|
143
|
+
setChecklistDisposition(state?.checklistRecords[initialItemId]?.disposition || "resolved");
|
|
144
|
+
}, [actionType, checklistItemId, definition, state]);
|
|
145
|
+
const runtimeInputs = useMemo(() => {
|
|
146
|
+
if (!definition || !state) return {};
|
|
147
|
+
switch (actionType) {
|
|
148
|
+
case "qi/blueprint.checklist-update":
|
|
149
|
+
return { itemId: checklistItemId, disposition: checklistDisposition };
|
|
150
|
+
case "qi/blueprint.phase-commit": {
|
|
151
|
+
const phaseDefinition2 = definition.phases.find((candidate) => candidate.id === phase);
|
|
152
|
+
const expectedControlDigests = Object.fromEntries((phaseDefinition2?.controls ?? []).map((controlId) => [controlId, state.controls[controlId]?.digest]));
|
|
153
|
+
return { phase, decision: "Yes, continue", expectedControlDigests };
|
|
154
|
+
}
|
|
155
|
+
case "qi/blueprint.reviewer-assign":
|
|
156
|
+
return { reviewerDid: reviewerDid.trim() };
|
|
157
|
+
case "qi/blueprint.review-submit":
|
|
158
|
+
case "qi/blueprint.release-compile":
|
|
159
|
+
return {};
|
|
160
|
+
case "qi/blueprint.review-respond":
|
|
161
|
+
return {
|
|
162
|
+
revisionSetDigest: state.reviewRequest?.revisionSetDigest,
|
|
163
|
+
decision,
|
|
164
|
+
assignmentDigest: state.reviewAssignment?.digest,
|
|
165
|
+
reviewRequestDigest: state.reviewRequest?.digest
|
|
166
|
+
};
|
|
167
|
+
case "qi/blueprint.publish":
|
|
168
|
+
case "qi/blueprint.protocol-mint":
|
|
169
|
+
return { releaseDigest: state.release?.digest };
|
|
170
|
+
default:
|
|
171
|
+
return {};
|
|
172
|
+
}
|
|
173
|
+
}, [actionType, checklistDisposition, checklistItemId, decision, definition, phase, reviewerDid, state]);
|
|
174
|
+
const blockedReason = useMemo(() => {
|
|
175
|
+
if (!definition || !state) return "This Flow is not an initialized Design POD project.";
|
|
176
|
+
if (actionType === "qi/blueprint.checklist-update") {
|
|
177
|
+
if (!definition.publicationRules.checklistItems.some((item) => item.id === checklistItemId)) {
|
|
178
|
+
return "Select a governed publication checklist item.";
|
|
179
|
+
}
|
|
180
|
+
const record = state.checklistRecords[checklistItemId];
|
|
181
|
+
if (record && record.disposition === checklistDisposition) {
|
|
182
|
+
const allSigned = definition.publicationRules.checklistItems.every((item) => state.checklistRecords[item.id]);
|
|
183
|
+
return allSigned ? "All checklist decisions are signed. Change a disposition only to revise it." : "This item is already signed with this disposition \u2014 pick the next unsigned item or change the disposition.";
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (actionType === "qi/blueprint.phase-commit") {
|
|
187
|
+
const phaseDefinition2 = definition.phases.find((candidate) => candidate.id === phase);
|
|
188
|
+
if (!phaseDefinition2) return "This block is not bound to a valid Design POD phase.";
|
|
189
|
+
const missing = phaseDefinition2.controls.filter((controlId) => state.controls[controlId]?.status !== "current");
|
|
190
|
+
if (missing.length > 0) return `Complete the current revisions for: ${missing.join(", ")}.`;
|
|
191
|
+
if (state.phaseCommitments[phase]?.status === "current") {
|
|
192
|
+
return "This phase is already committed for the current control revisions. Accept a new control revision to enable a governed re-commit.";
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (actionType === "qi/blueprint.reviewer-assign" && !reviewerDid.trim()) return "Enter the independent reviewer IXO DID.";
|
|
196
|
+
if (actionType === "qi/blueprint.review-submit") {
|
|
197
|
+
if (!state.reviewAssignment) return "Assign the independent reviewer first.";
|
|
198
|
+
if (Object.values(state.phaseCommitments).filter((commitment) => commitment?.status === "current").length !== 5) return "Commit all five phases first.";
|
|
199
|
+
}
|
|
200
|
+
if (actionType === "qi/blueprint.review-respond") {
|
|
201
|
+
if (!state.reviewAssignment || state.reviewRequest?.status !== "current") return "A current assignment and review request are required.";
|
|
202
|
+
if (currentUserDid && state.reviewAssignment.reviewerDid !== currentUserDid) {
|
|
203
|
+
return `Only the assigned independent reviewer (${state.reviewAssignment.reviewerDid}) can record this decision.`;
|
|
204
|
+
}
|
|
205
|
+
if (!reviewPlaybackIsCurrent) return "The submitted controls no longer match the current committed blueprint. Submit a fresh revision set for review.";
|
|
206
|
+
}
|
|
207
|
+
if (actionType === "qi/blueprint.release-compile") {
|
|
208
|
+
if (state.release?.status === "published") return "This blueprint release is already published and verified \u2014 there is nothing left to compile.";
|
|
209
|
+
if (state.review?.status !== "current" || state.review.decision !== "approved") return "The exact revision set must pass independent review first.";
|
|
210
|
+
}
|
|
211
|
+
if (actionType === "qi/blueprint.publish" && !["compiled", "publishing"].includes(state.release?.status || "")) {
|
|
212
|
+
return state.release?.status === "published" ? "This blueprint release is published and verified \u2014 mint its protocol to finish the journey." : "Compile the current reviewed blueprint first.";
|
|
213
|
+
}
|
|
214
|
+
if (actionType === "qi/blueprint.protocol-mint") {
|
|
215
|
+
if (state.protocol) return `This design project already minted ${state.protocol.entityDid}.`;
|
|
216
|
+
if (state.release?.status !== "published") return "Publish the verified blueprint release first.";
|
|
217
|
+
}
|
|
218
|
+
return null;
|
|
219
|
+
}, [actionType, checklistDisposition, checklistItemId, currentUserDid, definition, phase, reviewerDid, reviewPlaybackIsCurrent, state]);
|
|
220
|
+
const handleExecute = useCallback(async () => {
|
|
221
|
+
if (!executeAction || blockedReason || isDisabled || executing) return;
|
|
222
|
+
setExecuting(true);
|
|
223
|
+
setLocalError(null);
|
|
224
|
+
try {
|
|
225
|
+
const outcome = await executeAction({ runtimeInputs });
|
|
226
|
+
if (!outcome.success) throw new Error(outcome.error || "Design POD action failed");
|
|
227
|
+
if (actionType === "qi/blueprint.checklist-update" && definition && doc) {
|
|
228
|
+
const nextState = readDesignPodState(doc);
|
|
229
|
+
const nextMissing = definition.publicationRules.checklistItems.find((item) => !nextState?.checklistRecords[item.id]);
|
|
230
|
+
if (nextMissing) {
|
|
231
|
+
setChecklistItemId(nextMissing.id);
|
|
232
|
+
setChecklistDisposition("resolved");
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
} catch (error) {
|
|
236
|
+
setLocalError(error instanceof Error ? error.message : "Design POD action failed");
|
|
237
|
+
} finally {
|
|
238
|
+
setExecuting(false);
|
|
239
|
+
}
|
|
240
|
+
}, [actionType, blockedReason, definition, doc, executeAction, executing, isDisabled, runtimeInputs]);
|
|
241
|
+
return /* @__PURE__ */ React2.createElement(Stack2, { gap: "md" }, actionType === "qi/blueprint.phase-commit" && definition && state && phaseDefinition && /* @__PURE__ */ React2.createElement(Stack2, { gap: "sm" }, /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, phaseDefinition.description), phaseDefinition.controls.map((controlId) => {
|
|
242
|
+
const control = state.controls[controlId];
|
|
243
|
+
const expanded = expandedPlayback.has(controlId);
|
|
244
|
+
const status = control?.status ?? "missing";
|
|
245
|
+
return /* @__PURE__ */ React2.createElement(Box2, { key: controlId, style: { border: "1px solid var(--mantine-color-default-border)", borderRadius: 8 } }, /* @__PURE__ */ React2.createElement(UnstyledButton, { onClick: () => control && togglePlayback(controlId), p: "sm", w: "100%", style: { cursor: control ? "pointer" : "default" } }, /* @__PURE__ */ React2.createElement(Group2, { justify: "space-between", wrap: "nowrap", gap: 8 }, /* @__PURE__ */ React2.createElement(Box2, { miw: 0 }, /* @__PURE__ */ React2.createElement(Text2, { fz: 12, fw: 600, truncate: true }, definition.controls[controlId].title), /* @__PURE__ */ React2.createElement(Text2, { fz: 11, c: status === "current" ? "teal" : status === "stale" ? "orange" : "dimmed" }, status, control ? ` \xB7 r${control.revision}` : "")), control && (expanded ? /* @__PURE__ */ React2.createElement(IconChevronUp, { size: 14 }) : /* @__PURE__ */ React2.createElement(IconChevronDown, { size: 14 })))), control && /* @__PURE__ */ React2.createElement(Collapse, { in: expanded }, /* @__PURE__ */ React2.createElement(Box2, { p: "sm", pt: 0, style: { maxHeight: 260, overflowY: "auto" } }, /* @__PURE__ */ React2.createElement(DesignPodValueView, { value: control.content }))));
|
|
246
|
+
}), handlers?.openCompanionPrompt && hasRootCapability && /* @__PURE__ */ React2.createElement(
|
|
247
|
+
Button,
|
|
248
|
+
{
|
|
249
|
+
variant: "light",
|
|
250
|
+
size: "compact-sm",
|
|
251
|
+
leftSection: /* @__PURE__ */ React2.createElement(IconSparkles, { size: 14 }),
|
|
252
|
+
onClick: () => void handlers.openCompanionPrompt?.({ prompt: buildDesignPodPhasePrompt(definition, state, phaseDefinition), title: phaseDefinition.title })
|
|
253
|
+
},
|
|
254
|
+
"Ask Oxi to fill this phase"
|
|
255
|
+
)), actionType === "qi/blueprint.checklist-update" && definition && /* @__PURE__ */ React2.createElement(Stack2, { gap: "sm" }, /* @__PURE__ */ React2.createElement(
|
|
256
|
+
Select,
|
|
257
|
+
{
|
|
258
|
+
label: "Publication checklist item",
|
|
259
|
+
description: definition.publicationRules.checklistItems.find((item) => item.id === checklistItemId)?.description,
|
|
260
|
+
value: checklistItemId,
|
|
261
|
+
onChange: (value) => {
|
|
262
|
+
const itemId = value || "";
|
|
263
|
+
setChecklistItemId(itemId);
|
|
264
|
+
setChecklistDisposition(state?.checklistRecords[itemId]?.disposition || "resolved");
|
|
265
|
+
},
|
|
266
|
+
data: definition.publicationRules.checklistItems.map((item) => ({ value: item.id, label: `${state?.checklistRecords[item.id] ? "\u2713 " : ""}${item.title}` })),
|
|
267
|
+
allowDeselect: false
|
|
268
|
+
}
|
|
269
|
+
), /* @__PURE__ */ React2.createElement(
|
|
270
|
+
Select,
|
|
271
|
+
{
|
|
272
|
+
label: "Governed disposition",
|
|
273
|
+
value: checklistDisposition,
|
|
274
|
+
onChange: (value) => setChecklistDisposition(value || "resolved"),
|
|
275
|
+
data: [
|
|
276
|
+
{ value: "resolved", label: "Resolved" },
|
|
277
|
+
{ value: "accepted_for_later", label: "Accepted for later" },
|
|
278
|
+
{ value: "blocking", label: "Blocking publication" }
|
|
279
|
+
],
|
|
280
|
+
allowDeselect: false
|
|
281
|
+
}
|
|
282
|
+
), state?.checklistRecords[checklistItemId] && /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, "Current signed decision: ", state.checklistRecords[checklistItemId].disposition.replace(/_/g, " "), " by ", state.checklistRecords[checklistItemId].updatedByDid)), actionType === "qi/blueprint.reviewer-assign" && /* @__PURE__ */ React2.createElement(TextInput, { label: "Independent reviewer IXO DID", placeholder: "did:ixo:...", value: reviewerDid, onChange: (event) => setReviewerDid(event.currentTarget.value) }), actionType === "qi/blueprint.review-respond" && /* @__PURE__ */ React2.createElement(Stack2, { gap: "sm" }, /* @__PURE__ */ React2.createElement(Text2, { fw: 700 }, "Submitted blueprint playback"), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, "Review all 17 controls bound to this submitted revision-set digest before recording a decision."), /* @__PURE__ */ React2.createElement(Code, { block: true, style: { fontSize: 11, overflowWrap: "anywhere" } }, state?.reviewRequest?.revisionSetDigest || "No current submitted revision set"), reviewPlayback.map((control) => {
|
|
283
|
+
const expanded = expandedPlayback.has(control.controlId);
|
|
284
|
+
return /* @__PURE__ */ React2.createElement(Box2, { key: control.controlId, style: { border: "1px solid var(--mantine-color-default-border)", borderRadius: 8 } }, /* @__PURE__ */ React2.createElement(UnstyledButton, { onClick: () => togglePlayback(control.controlId), p: "sm", w: "100%" }, /* @__PURE__ */ React2.createElement(Group2, { justify: "space-between", wrap: "nowrap", gap: 8 }, /* @__PURE__ */ React2.createElement(Box2, { miw: 0 }, /* @__PURE__ */ React2.createElement(Text2, { fz: 12, fw: 600, truncate: true }, control.title), /* @__PURE__ */ React2.createElement(Text2, { fz: 11, c: "dimmed" }, control.phase, " \xB7 ", control.controlId)), /* @__PURE__ */ React2.createElement(Group2, { gap: 6, wrap: "nowrap" }, /* @__PURE__ */ React2.createElement(Text2, { fz: 11, c: control.matchesSubmittedDigest ? "dimmed" : "red" }, control.matchesSubmittedDigest ? "Matches submission" : "Changed since submission"), expanded ? /* @__PURE__ */ React2.createElement(IconChevronUp, { size: 14 }) : /* @__PURE__ */ React2.createElement(IconChevronDown, { size: 14 })))), /* @__PURE__ */ React2.createElement(Collapse, { in: expanded }, /* @__PURE__ */ React2.createElement(Box2, { p: "sm", pt: 0, mah: 280, style: { overflow: "auto" } }, /* @__PURE__ */ React2.createElement(DesignPodValueView, { value: control }))));
|
|
285
|
+
}), /* @__PURE__ */ React2.createElement(
|
|
286
|
+
Select,
|
|
287
|
+
{
|
|
288
|
+
label: "Review decision",
|
|
289
|
+
value: decision,
|
|
290
|
+
onChange: (value) => setDecision(value || "approved"),
|
|
291
|
+
data: [
|
|
292
|
+
{ value: "approved", label: "Approve exact revision set" },
|
|
293
|
+
{ value: "changes_required", label: "Changes required" }
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
)), blockedReason && /* @__PURE__ */ React2.createElement(Alert, { color: "yellow" }, blockedReason), (localError || runtime.error?.message) && /* @__PURE__ */ React2.createElement(Alert, { color: "red" }, localError || runtime.error?.message), runtime.state === "completed" && runtime.output && /* @__PURE__ */ React2.createElement(Stack2, { gap: 4, p: "sm", mah: 240, style: { overflow: "auto", border: "1px solid var(--mantine-color-default-border)", borderRadius: 8 } }, /* @__PURE__ */ React2.createElement(DesignPodValueView, { value: runtime.output })), /* @__PURE__ */ React2.createElement(
|
|
297
|
+
Button,
|
|
298
|
+
{
|
|
299
|
+
leftSection: executing ? /* @__PURE__ */ React2.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React2.createElement(IconPlayerPlay, { size: 14 }),
|
|
300
|
+
onClick: handleExecute,
|
|
301
|
+
disabled: Boolean(blockedReason) || isDisabled || executing || !executeAction
|
|
302
|
+
},
|
|
303
|
+
executing ? "Authorizing\u2026" : LABELS[actionType] || "Execute"
|
|
304
|
+
), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, "The action is signed for this Flow block, canonical input digest, and active session run before governed state changes."));
|
|
305
|
+
};
|
|
306
|
+
export {
|
|
307
|
+
DesignPodFlowDetail
|
|
308
|
+
};
|
|
309
|
+
//# sourceMappingURL=DesignPodFlowDetail-JHJWGNVY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/designPod/DesignPodFlowDetail.tsx","../src/mantine/blocks/action/actionTypes/designPod/DesignPodValueView.tsx"],"sourcesContent":["import {\n buildDesignPodPhasePrompt,\n readDesignPodDefinition,\n readDesignPodState,\n type DesignPodControlId,\n type DesignPodFlowStateV1,\n type DesignPodMethodManifestV1,\n type DesignPodPhaseId,\n} from '@/core/lib/designPod';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useBlocknoteContext } from '@/mantine/context/BlocknoteContext';\nimport { Alert, Box, Button, Code, Collapse, Group, Loader, Select, Stack, Text, TextInput, UnstyledButton } from '@mantine/core';\nimport { IconChevronDown, IconChevronUp, IconPlayerPlay, IconSparkles } from '@tabler/icons-react';\nimport type * as Y from 'yjs';\nimport type { ActionTypeFlowProps } from '../../actionTypeUI';\nimport { DesignPodValueView } from './DesignPodValueView';\n\nfunction getDoc(editor: any): Y.Doc | undefined {\n return editor?._yDoc as Y.Doc | undefined;\n}\n\nfunction parseInputs(inputs: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(inputs || '{}');\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};\n } catch {\n return {};\n }\n}\n\nconst LABELS: Record<string, string> = {\n 'qi/blueprint.checklist-update': 'Save signed checklist decision',\n 'qi/blueprint.phase-commit': 'Yes, continue',\n 'qi/blueprint.reviewer-assign': 'Assign reviewer',\n 'qi/blueprint.review-submit': 'Submit for independent review',\n 'qi/blueprint.review-respond': 'Record review decision',\n 'qi/blueprint.release-compile': 'Compile reviewed blueprint',\n 'qi/blueprint.publish': 'Publish verified blueprint',\n 'qi/blueprint.protocol-mint': 'Mint protocol',\n};\n\nfunction buildReviewPlayback(definition: DesignPodMethodManifestV1, state: DesignPodFlowStateV1) {\n return definition.phases.flatMap((phase) => {\n const commitment = state.phaseCommitments[phase.id];\n return phase.controls.map((controlId) => {\n const revision = state.controls[controlId];\n const submittedDigest = commitment?.controlDigests[controlId];\n return {\n phase: phase.title,\n controlId,\n title: definition.controls[controlId].title,\n submittedDigest,\n currentDigest: revision?.digest,\n matchesSubmittedDigest: commitment?.status === 'current' && Boolean(submittedDigest) && revision?.status === 'current' && revision.digest === submittedDigest,\n content: revision?.content,\n };\n });\n });\n}\n\nexport const DesignPodFlowDetail: React.FC<ActionTypeFlowProps> = ({ inputs, editor, block, runtime, isDisabled, executeAction }) => {\n const doc = getDoc(editor);\n const actionType = String(block?.props?.actionType || '');\n const { handlers } = useBlocknoteContext();\n const currentUserDid = useMemo(() => {\n try {\n const user = handlers?.getCurrentUser?.();\n return user?.did || (user?.address ? `did:ixo:${user.address}` : '');\n } catch {\n return '';\n }\n }, [handlers]);\n const savedInputs = useMemo(() => parseInputs(inputs), [inputs]);\n const [reviewerDid, setReviewerDid] = useState('');\n const [decision, setDecision] = useState<'approved' | 'changes_required'>('approved');\n const [checklistItemId, setChecklistItemId] = useState('');\n const [checklistDisposition, setChecklistDisposition] = useState<'resolved' | 'accepted_for_later' | 'blocking'>('resolved');\n const [executing, setExecuting] = useState(false);\n const [localError, setLocalError] = useState<string | null>(null);\n const [expandedPlayback, setExpandedPlayback] = useState<Set<string>>(() => new Set());\n const togglePlayback = (id: string) =>\n setExpandedPlayback((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n const [, refresh] = useState(0);\n\n useEffect(() => {\n if (!doc) return;\n const update = () => refresh((value) => value + 1);\n doc.getMap('designPodDefinition').observeDeep(update);\n doc.getMap('designPodState').observeDeep(update);\n // Delegations too: the Ask-Oxi affordance appears the moment the flow\n // owner signs the root capability, without a reload.\n doc.getMap('delegations').observeDeep(update);\n return () => {\n doc.getMap('designPodDefinition').unobserveDeep(update);\n doc.getMap('designPodState').unobserveDeep(update);\n doc.getMap('delegations').unobserveDeep(update);\n };\n }, [doc]);\n\n const definition = doc ? readDesignPodDefinition(doc) : undefined;\n const state = doc ? readDesignPodState(doc) : undefined;\n const phase = savedInputs.phase as DesignPodPhaseId | undefined;\n const phaseDefinition = phase && definition ? definition.phases.find((candidate) => candidate.id === phase) : undefined;\n // Without the root capability nothing Oxi proposes can ever be accepted into\n // signed state, so the ask-Oxi affordance would only invite spam.\n const hasRootCapability = Boolean((editor as any)?.getRootCapability?.()?.delegation);\n const reviewPlayback = useMemo(() => (definition && state ? buildReviewPlayback(definition, state) : []), [definition, state]);\n const reviewPlaybackIsCurrent = reviewPlayback.length > 0 && reviewPlayback.every((control) => control.matchesSubmittedDigest);\n\n useEffect(() => {\n if (actionType !== 'qi/blueprint.checklist-update' || !definition || checklistItemId) return;\n const firstMissing = definition.publicationRules.checklistItems.find((item) => !state?.checklistRecords[item.id]);\n const initialItemId = firstMissing?.id || definition.publicationRules.checklistItems[0]?.id || '';\n setChecklistItemId(initialItemId);\n setChecklistDisposition(state?.checklistRecords[initialItemId]?.disposition || 'resolved');\n }, [actionType, checklistItemId, definition, state]);\n\n const runtimeInputs = useMemo<Record<string, unknown>>(() => {\n if (!definition || !state) return {};\n switch (actionType) {\n case 'qi/blueprint.checklist-update':\n return { itemId: checklistItemId, disposition: checklistDisposition };\n case 'qi/blueprint.phase-commit': {\n const phaseDefinition = definition.phases.find((candidate) => candidate.id === phase);\n const expectedControlDigests = Object.fromEntries((phaseDefinition?.controls ?? []).map((controlId) => [controlId, state.controls[controlId]?.digest])) as Partial<\n Record<DesignPodControlId, string | undefined>\n >;\n return { phase, decision: 'Yes, continue', expectedControlDigests };\n }\n case 'qi/blueprint.reviewer-assign':\n return { reviewerDid: reviewerDid.trim() };\n case 'qi/blueprint.review-submit':\n case 'qi/blueprint.release-compile':\n return {};\n case 'qi/blueprint.review-respond':\n return {\n revisionSetDigest: state.reviewRequest?.revisionSetDigest,\n decision,\n assignmentDigest: state.reviewAssignment?.digest,\n reviewRequestDigest: state.reviewRequest?.digest,\n };\n case 'qi/blueprint.publish':\n case 'qi/blueprint.protocol-mint':\n return { releaseDigest: state.release?.digest };\n default:\n return {};\n }\n }, [actionType, checklistDisposition, checklistItemId, decision, definition, phase, reviewerDid, state]);\n\n const blockedReason = useMemo(() => {\n if (!definition || !state) return 'This Flow is not an initialized Design POD project.';\n if (actionType === 'qi/blueprint.checklist-update') {\n if (!definition.publicationRules.checklistItems.some((item) => item.id === checklistItemId)) {\n return 'Select a governed publication checklist item.';\n }\n const record = state.checklistRecords[checklistItemId];\n if (record && record.disposition === checklistDisposition) {\n const allSigned = definition.publicationRules.checklistItems.every((item) => state.checklistRecords[item.id]);\n return allSigned\n ? 'All checklist decisions are signed. Change a disposition only to revise it.'\n : 'This item is already signed with this disposition — pick the next unsigned item or change the disposition.';\n }\n }\n if (actionType === 'qi/blueprint.phase-commit') {\n const phaseDefinition = definition.phases.find((candidate) => candidate.id === phase);\n if (!phaseDefinition) return 'This block is not bound to a valid Design POD phase.';\n const missing = phaseDefinition.controls.filter((controlId) => state.controls[controlId]?.status !== 'current');\n if (missing.length > 0) return `Complete the current revisions for: ${missing.join(', ')}.`;\n if (state.phaseCommitments[phase as DesignPodPhaseId]?.status === 'current') {\n return 'This phase is already committed for the current control revisions. Accept a new control revision to enable a governed re-commit.';\n }\n }\n if (actionType === 'qi/blueprint.reviewer-assign' && !reviewerDid.trim()) return 'Enter the independent reviewer IXO DID.';\n if (actionType === 'qi/blueprint.review-submit') {\n if (!state.reviewAssignment) return 'Assign the independent reviewer first.';\n if (Object.values(state.phaseCommitments).filter((commitment) => commitment?.status === 'current').length !== 5) return 'Commit all five phases first.';\n }\n if (actionType === 'qi/blueprint.review-respond') {\n if (!state.reviewAssignment || state.reviewRequest?.status !== 'current') return 'A current assignment and review request are required.';\n if (currentUserDid && state.reviewAssignment.reviewerDid !== currentUserDid) {\n return `Only the assigned independent reviewer (${state.reviewAssignment.reviewerDid}) can record this decision.`;\n }\n if (!reviewPlaybackIsCurrent) return 'The submitted controls no longer match the current committed blueprint. Submit a fresh revision set for review.';\n }\n if (actionType === 'qi/blueprint.release-compile') {\n if (state.release?.status === 'published') return 'This blueprint release is already published and verified — there is nothing left to compile.';\n if (state.review?.status !== 'current' || state.review.decision !== 'approved') return 'The exact revision set must pass independent review first.';\n }\n if (actionType === 'qi/blueprint.publish' && !['compiled', 'publishing'].includes(state.release?.status || '')) {\n return state.release?.status === 'published'\n ? 'This blueprint release is published and verified — mint its protocol to finish the journey.'\n : 'Compile the current reviewed blueprint first.';\n }\n if (actionType === 'qi/blueprint.protocol-mint') {\n if (state.protocol) return `This design project already minted ${state.protocol.entityDid}.`;\n if (state.release?.status !== 'published') return 'Publish the verified blueprint release first.';\n }\n return null;\n }, [actionType, checklistDisposition, checklistItemId, currentUserDid, definition, phase, reviewerDid, reviewPlaybackIsCurrent, state]);\n\n const handleExecute = useCallback(async () => {\n if (!executeAction || blockedReason || isDisabled || executing) return;\n setExecuting(true);\n setLocalError(null);\n try {\n const outcome = await executeAction({ runtimeInputs });\n if (!outcome.success) throw new Error(outcome.error || 'Design POD action failed');\n if (actionType === 'qi/blueprint.checklist-update' && definition && doc) {\n const nextState = readDesignPodState(doc);\n const nextMissing = definition.publicationRules.checklistItems.find((item) => !nextState?.checklistRecords[item.id]);\n if (nextMissing) {\n setChecklistItemId(nextMissing.id);\n setChecklistDisposition('resolved');\n }\n }\n } catch (error) {\n setLocalError(error instanceof Error ? error.message : 'Design POD action failed');\n } finally {\n setExecuting(false);\n }\n }, [actionType, blockedReason, definition, doc, executeAction, executing, isDisabled, runtimeInputs]);\n\n return (\n <Stack gap=\"md\">\n {actionType === 'qi/blueprint.phase-commit' && definition && state && phaseDefinition && (\n <Stack gap=\"sm\">\n <Text size=\"xs\" c=\"dimmed\">\n {phaseDefinition.description}\n </Text>\n {phaseDefinition.controls.map((controlId) => {\n const control = state.controls[controlId];\n const expanded = expandedPlayback.has(controlId);\n const status = control?.status ?? 'missing';\n return (\n <Box key={controlId} style={{ border: '1px solid var(--mantine-color-default-border)', borderRadius: 8 }}>\n <UnstyledButton onClick={() => control && togglePlayback(controlId)} p=\"sm\" w=\"100%\" style={{ cursor: control ? 'pointer' : 'default' }}>\n <Group justify=\"space-between\" wrap=\"nowrap\" gap={8}>\n <Box miw={0}>\n <Text fz={12} fw={600} truncate>\n {definition.controls[controlId].title}\n </Text>\n <Text fz={11} c={status === 'current' ? 'teal' : status === 'stale' ? 'orange' : 'dimmed'}>\n {status}\n {control ? ` · r${control.revision}` : ''}\n </Text>\n </Box>\n {control && (expanded ? <IconChevronUp size={14} /> : <IconChevronDown size={14} />)}\n </Group>\n </UnstyledButton>\n {control && (\n <Collapse in={expanded}>\n <Box p=\"sm\" pt={0} style={{ maxHeight: 260, overflowY: 'auto' }}>\n <DesignPodValueView value={control.content} />\n </Box>\n </Collapse>\n )}\n </Box>\n );\n })}\n {handlers?.openCompanionPrompt && hasRootCapability && (\n <Button\n variant=\"light\"\n size=\"compact-sm\"\n leftSection={<IconSparkles size={14} />}\n onClick={() => void handlers.openCompanionPrompt?.({ prompt: buildDesignPodPhasePrompt(definition, state, phaseDefinition), title: phaseDefinition.title })}\n >\n Ask Oxi to fill this phase\n </Button>\n )}\n </Stack>\n )}\n {actionType === 'qi/blueprint.checklist-update' && definition && (\n <Stack gap=\"sm\">\n <Select\n label=\"Publication checklist item\"\n description={definition.publicationRules.checklistItems.find((item) => item.id === checklistItemId)?.description}\n value={checklistItemId}\n onChange={(value) => {\n const itemId = value || '';\n setChecklistItemId(itemId);\n setChecklistDisposition(state?.checklistRecords[itemId]?.disposition || 'resolved');\n }}\n data={definition.publicationRules.checklistItems.map((item) => ({ value: item.id, label: `${state?.checklistRecords[item.id] ? '✓ ' : ''}${item.title}` }))}\n allowDeselect={false}\n />\n <Select\n label=\"Governed disposition\"\n value={checklistDisposition}\n onChange={(value) => setChecklistDisposition((value as 'resolved' | 'accepted_for_later' | 'blocking') || 'resolved')}\n data={[\n { value: 'resolved', label: 'Resolved' },\n { value: 'accepted_for_later', label: 'Accepted for later' },\n { value: 'blocking', label: 'Blocking publication' },\n ]}\n allowDeselect={false}\n />\n {state?.checklistRecords[checklistItemId] && (\n <Text size=\"xs\" c=\"dimmed\">\n Current signed decision: {state.checklistRecords[checklistItemId].disposition.replace(/_/g, ' ')} by {state.checklistRecords[checklistItemId].updatedByDid}\n </Text>\n )}\n </Stack>\n )}\n {actionType === 'qi/blueprint.reviewer-assign' && (\n <TextInput label=\"Independent reviewer IXO DID\" placeholder=\"did:ixo:...\" value={reviewerDid} onChange={(event) => setReviewerDid(event.currentTarget.value)} />\n )}\n {actionType === 'qi/blueprint.review-respond' && (\n <Stack gap=\"sm\">\n <Text fw={700}>Submitted blueprint playback</Text>\n <Text size=\"xs\" c=\"dimmed\">\n Review all 17 controls bound to this submitted revision-set digest before recording a decision.\n </Text>\n <Code block style={{ fontSize: 11, overflowWrap: 'anywhere' }}>\n {state?.reviewRequest?.revisionSetDigest || 'No current submitted revision set'}\n </Code>\n {reviewPlayback.map((control) => {\n const expanded = expandedPlayback.has(control.controlId);\n return (\n <Box key={control.controlId} style={{ border: '1px solid var(--mantine-color-default-border)', borderRadius: 8 }}>\n <UnstyledButton onClick={() => togglePlayback(control.controlId)} p=\"sm\" w=\"100%\">\n <Group justify=\"space-between\" wrap=\"nowrap\" gap={8}>\n <Box miw={0}>\n <Text fz={12} fw={600} truncate>\n {control.title}\n </Text>\n <Text fz={11} c=\"dimmed\">\n {control.phase} · {control.controlId}\n </Text>\n </Box>\n <Group gap={6} wrap=\"nowrap\">\n <Text fz={11} c={control.matchesSubmittedDigest ? 'dimmed' : 'red'}>\n {control.matchesSubmittedDigest ? 'Matches submission' : 'Changed since submission'}\n </Text>\n {expanded ? <IconChevronUp size={14} /> : <IconChevronDown size={14} />}\n </Group>\n </Group>\n </UnstyledButton>\n <Collapse in={expanded}>\n <Box p=\"sm\" pt={0} mah={280} style={{ overflow: 'auto' }}>\n <DesignPodValueView value={control} />\n </Box>\n </Collapse>\n </Box>\n );\n })}\n <Select\n label=\"Review decision\"\n value={decision}\n onChange={(value) => setDecision((value as 'approved' | 'changes_required') || 'approved')}\n data={[\n { value: 'approved', label: 'Approve exact revision set' },\n { value: 'changes_required', label: 'Changes required' },\n ]}\n />\n </Stack>\n )}\n {blockedReason && <Alert color=\"yellow\">{blockedReason}</Alert>}\n {(localError || runtime.error?.message) && <Alert color=\"red\">{localError || runtime.error?.message}</Alert>}\n {runtime.state === 'completed' && runtime.output && (\n <Stack gap={4} p=\"sm\" mah={240} style={{ overflow: 'auto', border: '1px solid var(--mantine-color-default-border)', borderRadius: 8 }}>\n <DesignPodValueView value={runtime.output} />\n </Stack>\n )}\n <Button\n leftSection={executing ? <Loader size={14} /> : <IconPlayerPlay size={14} />}\n onClick={handleExecute}\n disabled={Boolean(blockedReason) || isDisabled || executing || !executeAction}\n >\n {executing ? 'Authorizing…' : LABELS[actionType] || 'Execute'}\n </Button>\n <Text size=\"xs\" c=\"dimmed\">\n The action is signed for this Flow block, canonical input digest, and active session run before governed state changes.\n </Text>\n </Stack>\n );\n};\n","import React from 'react';\nimport { Box, Group, Stack, Text } from '@mantine/core';\n\ntype Props = {\n value: unknown;\n depth?: number;\n};\n\nfunction humanizeKey(key: string): string {\n const spaced = key.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/[_-]+/g, ' ');\n return spaced.charAt(0).toUpperCase() + spaced.slice(1);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction Primitive({ value }: { value: unknown }) {\n if (value === null || value === undefined || value === '') {\n return (\n <Text fz={12} c=\"dimmed\" fs=\"italic\" component=\"span\">\n —\n </Text>\n );\n }\n return (\n <Text fz={12} c=\"dimmed\" component=\"span\" style={{ overflowWrap: 'anywhere' }}>\n {typeof value === 'boolean' ? (value ? 'Yes' : 'No') : String(value)}\n </Text>\n );\n}\n\nexport const DesignPodValueView: React.FC<Props> = ({ value, depth = 0 }) => {\n if (Array.isArray(value)) {\n if (value.length === 0) return <Primitive value=\"\" />;\n return (\n <Stack gap={2} pl={depth > 0 ? 10 : 4}>\n {value.map((item, index) => (\n <Group key={index} gap={6} wrap=\"nowrap\" align=\"flex-start\">\n <Text fz={12} c=\"dimmed\" component=\"span\" lh={1.5}>\n •\n </Text>\n <Box flex={1} miw={0}>\n {isRecord(item) || Array.isArray(item) ? <DesignPodValueView value={item} depth={depth + 1} /> : <Primitive value={item} />}\n </Box>\n </Group>\n ))}\n </Stack>\n );\n }\n\n if (isRecord(value)) {\n const entries = Object.entries(value);\n if (entries.length === 0) return <Primitive value=\"\" />;\n return (\n <Stack gap={6} pl={depth > 0 ? 10 : 0} style={depth > 0 ? { borderLeft: '1px solid var(--mantine-color-default-border)' } : undefined}>\n {entries.map(([key, entry]) => {\n const nested = isRecord(entry) || Array.isArray(entry);\n return (\n <Box key={key}>\n <Text fz={12} fw={600} component=\"span\">\n {humanizeKey(key)}\n {nested ? '' : ': '}\n </Text>\n {nested ? (\n <Box mt={2}>\n <DesignPodValueView value={entry} depth={depth + 1} />\n </Box>\n ) : (\n <Primitive value={entry} />\n )}\n </Box>\n );\n })}\n </Stack>\n );\n }\n\n return <Primitive value={value} />;\n};\n"],"mappings":"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","names":["React","Box","Group","Stack","Text","phaseDefinition","React","Stack","Text","Box","Group"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseDomainCardPreviewInputs,
|
|
3
|
+
serializeDomainCardPreviewInputs
|
|
4
|
+
} from "./chunk-632JLECF.js";
|
|
5
|
+
|
|
6
|
+
// src/mantine/blocks/action/actionTypes/domainCardPreview/DomainCardPreviewConfig.tsx
|
|
7
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
8
|
+
import { Stack, Text, Textarea } from "@mantine/core";
|
|
9
|
+
var DomainCardPreviewConfig = ({ inputs, onInputsChange }) => {
|
|
10
|
+
const [local, setLocal] = useState(() => parseDomainCardPreviewInputs(inputs));
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setLocal(parseDomainCardPreviewInputs(inputs));
|
|
13
|
+
}, [inputs]);
|
|
14
|
+
const update = useCallback(
|
|
15
|
+
(patch) => {
|
|
16
|
+
const updated = { ...local, ...patch };
|
|
17
|
+
setLocal(updated);
|
|
18
|
+
onInputsChange(serializeDomainCardPreviewInputs(updated));
|
|
19
|
+
},
|
|
20
|
+
[local, onInputsChange]
|
|
21
|
+
);
|
|
22
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "lg" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Domain Card Data"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Reference to the domain card data. The oracle writes this into ", /* @__PURE__ */ React.createElement("code", null, "runtime.output.domainCardData"), "."), /* @__PURE__ */ React.createElement(
|
|
23
|
+
Textarea,
|
|
24
|
+
{
|
|
25
|
+
placeholder: "{{block.<id>.output.domainCardData}}",
|
|
26
|
+
value: local.domainCardData,
|
|
27
|
+
onChange: (event) => update({ domainCardData: event.currentTarget.value }),
|
|
28
|
+
minRows: 3,
|
|
29
|
+
autosize: true,
|
|
30
|
+
styles: { input: { fontFamily: "monospace", fontSize: 12 } }
|
|
31
|
+
}
|
|
32
|
+
)));
|
|
33
|
+
};
|
|
34
|
+
export {
|
|
35
|
+
DomainCardPreviewConfig
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=DomainCardPreviewConfig-Q3X5M4WF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/domainCardPreview/DomainCardPreviewConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Stack, Text, Textarea } from '@mantine/core';\nimport type { ActionTypeConfigProps } from '../../actionTypeUI';\nimport { parseDomainCardPreviewInputs, serializeDomainCardPreviewInputs, type DomainCardPreviewInputs } from './types';\n\nexport const DomainCardPreviewConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange }) => {\n const [local, setLocal] = useState<DomainCardPreviewInputs>(() => parseDomainCardPreviewInputs(inputs));\n\n useEffect(() => {\n setLocal(parseDomainCardPreviewInputs(inputs));\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<DomainCardPreviewInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(serializeDomainCardPreviewInputs(updated));\n },\n [local, onInputsChange]\n );\n\n return (\n <Stack gap=\"lg\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Domain Card Data\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Reference to the domain card data. The oracle writes this into <code>runtime.output.domainCardData</code>.\n </Text>\n <Textarea\n placeholder=\"{{block.<id>.output.domainCardData}}\"\n value={local.domainCardData}\n onChange={(event) => update({ domainCardData: event.currentTarget.value })}\n minRows={3}\n autosize\n styles={{ input: { fontFamily: 'monospace', fontSize: 12 } }}\n />\n </Stack>\n </Stack>\n );\n};\n"],"mappings":";;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,OAAO,MAAM,gBAAgB;AAI/B,IAAM,0BAA2D,CAAC,EAAE,QAAQ,eAAe,MAAM;AACtG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAkC,MAAM,6BAA6B,MAAM,CAAC;AAEtG,YAAU,MAAM;AACd,aAAS,6BAA6B,MAAM,CAAC;AAAA,EAC/C,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAA4C;AAC3C,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,iCAAiC,OAAO,CAAC;AAAA,IAC1D;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,SACE,oCAAC,SAAM,KAAI,QACT,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,kBAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,mEACsC,oCAAC,cAAK,+BAA6B,GAAO,GAC3G,GACA;AAAA,IAAC;AAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,UAAU,OAAO,EAAE,gBAAgB,MAAM,cAAc,MAAM,CAAC;AAAA,MACzE,SAAS;AAAA,MACT,UAAQ;AAAA,MACR,QAAQ,EAAE,OAAO,EAAE,YAAY,aAAa,UAAU,GAAG,EAAE;AAAA;AAAA,EAC7D,CACF,CACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildCardDataFromInputs,
|
|
3
|
+
buildPreviewFromInputs,
|
|
4
|
+
parseDomainCardPreviewInputs
|
|
5
|
+
} from "./chunk-632JLECF.js";
|
|
6
|
+
import {
|
|
7
|
+
useRunRuntimeReader
|
|
8
|
+
} from "./chunk-FFYZXA75.js";
|
|
9
|
+
import "./chunk-NZ7AXA7B.js";
|
|
10
|
+
import {
|
|
11
|
+
resolveReferences
|
|
12
|
+
} from "./chunk-JVROGQ7Q.js";
|
|
13
|
+
import "./chunk-IIIZZ4E4.js";
|
|
14
|
+
import "./chunk-HT6L7A5M.js";
|
|
15
|
+
import "./chunk-NCSGIRRQ.js";
|
|
16
|
+
import {
|
|
17
|
+
DismissibleAlert
|
|
18
|
+
} from "./chunk-IFWKRCFF.js";
|
|
19
|
+
import {
|
|
20
|
+
actionAlertStyles
|
|
21
|
+
} from "./chunk-6GKJR52N.js";
|
|
22
|
+
import {
|
|
23
|
+
useBlocknoteContext,
|
|
24
|
+
useBlocknoteHandlers
|
|
25
|
+
} from "./chunk-4DGCCXD6.js";
|
|
26
|
+
import "./chunk-7W7UUUIE.js";
|
|
27
|
+
import "./chunk-TS2LNBF2.js";
|
|
28
|
+
|
|
29
|
+
// src/mantine/blocks/action/actionTypes/domainCardPreview/DomainCardPreviewFlowDetail.tsx
|
|
30
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
31
|
+
import { Badge, Box, Button, Code, Group, Loader, ScrollArea, Stack, Text } from "@mantine/core";
|
|
32
|
+
import { IconAlertCircle, IconCheck, IconSparkles } from "@tabler/icons-react";
|
|
33
|
+
var JsonViewer = ({ data }) => /* @__PURE__ */ React.createElement(ScrollArea.Autosize, { mah: 360, offsetScrollbars: true }, /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, data.name && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Name"), /* @__PURE__ */ React.createElement(Text, { size: "lg", fw: 600 }, data.name)), data.summary && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Summary"), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, data.summary)), data.description && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Description"), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, data.description)), data.entity_type && data.entity_type.length > 0 && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Type"), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, data.entity_type.join(", "))), data.keywords && data.keywords.length > 0 && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600 }, "Keywords"), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, data.keywords.join(", "))), data.faq && data.faq.length > 0 && /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "FAQ"), /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, data.faq.map((item, index) => /* @__PURE__ */ React.createElement(Box, { key: index, p: "sm", style: { borderRadius: 8, backgroundColor: "var(--mantine-color-dark-6)" } }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 500, mb: 4 }, item.question), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, item.answer))))), /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", tt: "uppercase", fw: 600, mb: "xs" }, "Raw Data"), /* @__PURE__ */ React.createElement(Code, { block: true, style: { fontSize: 11, maxHeight: 200, overflow: "auto" } }, JSON.stringify(data, null, 2)))));
|
|
34
|
+
var STATUS_BADGE = {
|
|
35
|
+
approved: { color: "green", text: "Approved" },
|
|
36
|
+
error: { color: "red", text: "Error" },
|
|
37
|
+
loading: { color: "blue", text: "Generating..." },
|
|
38
|
+
ready: { color: "teal", text: "Ready to Review" },
|
|
39
|
+
pending: { color: "gray", text: "Waiting" }
|
|
40
|
+
};
|
|
41
|
+
function coerce(value, fallback) {
|
|
42
|
+
if (value === void 0 || value === null) return fallback;
|
|
43
|
+
if (typeof value === "string") {
|
|
44
|
+
if (!value) return fallback;
|
|
45
|
+
try {
|
|
46
|
+
return JSON.parse(value);
|
|
47
|
+
} catch {
|
|
48
|
+
return fallback;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
var DomainCardPreviewFlowDetail = ({ inputs, editor, block, runtime, isDisabled, executeAction }) => {
|
|
54
|
+
const { domainCardRenderer } = useBlocknoteContext();
|
|
55
|
+
const handlers = useBlocknoteHandlers();
|
|
56
|
+
const [isAskingCompanion, setIsAskingCompanion] = useState(false);
|
|
57
|
+
const [companionError, setCompanionError] = useState(null);
|
|
58
|
+
const parsed = useMemo(() => parseDomainCardPreviewInputs(inputs), [inputs]);
|
|
59
|
+
const editorDocument = editor?.document || [];
|
|
60
|
+
const runtimeReader = useRunRuntimeReader(editor);
|
|
61
|
+
const resolveOpts = useMemo(() => ({ yRuntime: runtimeReader }), [runtimeReader]);
|
|
62
|
+
const upstreamCardData = useMemo(() => {
|
|
63
|
+
if (!parsed.domainCardData) return void 0;
|
|
64
|
+
const resolved = resolveReferences(parsed.domainCardData, editorDocument, resolveOpts);
|
|
65
|
+
return coerce(resolved, void 0);
|
|
66
|
+
}, [parsed.domainCardData, editorDocument, resolveOpts]);
|
|
67
|
+
const inputsPreview = useMemo(() => buildPreviewFromInputs(parsed), [parsed]);
|
|
68
|
+
const inputsCardData = useMemo(() => buildCardDataFromInputs(parsed), [parsed]);
|
|
69
|
+
const loadingMessage = runtime.output?.loadingMessage || "Agents are analyzing your domain information...";
|
|
70
|
+
const errorMessage = runtime.output?.errorMessage || "An error occurred while generating the domain data.";
|
|
71
|
+
const domainPreviewData = coerce(runtime.output?.domainPreviewData, null) || inputsPreview;
|
|
72
|
+
const domainCardData = coerce(runtime.output?.domainCardData, upstreamCardData) || inputsCardData;
|
|
73
|
+
const status = useMemo(() => {
|
|
74
|
+
const runtimeStatus = runtime.output?.status;
|
|
75
|
+
if (runtimeStatus) return runtimeStatus;
|
|
76
|
+
if (domainPreviewData || domainCardData) return "ready";
|
|
77
|
+
return "pending";
|
|
78
|
+
}, [runtime.output?.status, domainPreviewData, domainCardData]);
|
|
79
|
+
const hasPreview = Boolean(domainPreviewData && (domainPreviewData.name || domainPreviewData.summary || domainPreviewData.description));
|
|
80
|
+
const badge = STATUS_BADGE[status];
|
|
81
|
+
const handleAskCompanion = useCallback(async () => {
|
|
82
|
+
if (isDisabled || isAskingCompanion) return;
|
|
83
|
+
if (typeof handlers?.askCompanion !== "function") {
|
|
84
|
+
setCompanionError("Agent is not available.");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
setIsAskingCompanion(true);
|
|
88
|
+
setCompanionError(null);
|
|
89
|
+
try {
|
|
90
|
+
await handlers.askCompanion("Help me generate a domain card and ask me the relevant questions needed to set it up.");
|
|
91
|
+
} catch (err) {
|
|
92
|
+
const message = err instanceof Error ? err.message : "Failed to ask Agent";
|
|
93
|
+
setCompanionError(message);
|
|
94
|
+
} finally {
|
|
95
|
+
setIsAskingCompanion(false);
|
|
96
|
+
}
|
|
97
|
+
}, [handlers, isAskingCompanion, isDisabled]);
|
|
98
|
+
const handleApprove = useCallback(async () => {
|
|
99
|
+
if (isDisabled) return;
|
|
100
|
+
if (!domainCardData) return;
|
|
101
|
+
if (!executeAction) {
|
|
102
|
+
setCompanionError("Shared action executor is unavailable.");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
setCompanionError(null);
|
|
106
|
+
const outcome = await executeAction({
|
|
107
|
+
runtimeInputs: {
|
|
108
|
+
domainPreviewData: domainPreviewData ?? runtime.output?.domainPreviewData,
|
|
109
|
+
domainCardData
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
if (!outcome.success) {
|
|
113
|
+
setCompanionError(outcome.error || "Failed to approve domain card.");
|
|
114
|
+
}
|
|
115
|
+
}, [isDisabled, domainCardData, executeAction, domainPreviewData, runtime.output]);
|
|
116
|
+
return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Group, { gap: "xs", align: "center" }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, block?.props?.title || "Preview Domain Card"), /* @__PURE__ */ React.createElement(Badge, { size: "xs", variant: "filled", color: badge.color }, badge.text)), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, block?.props?.description || "Review the oracle-enriched domain card before signing.")), status === "loading" && /* @__PURE__ */ React.createElement(Stack, { align: "center", py: "lg", gap: "md" }, /* @__PURE__ */ React.createElement(Loader, { size: "lg", color: "blue" }), /* @__PURE__ */ React.createElement(Stack, { align: "center", gap: "xs" }, /* @__PURE__ */ React.createElement(IconSparkles, { size: 22, color: "var(--mantine-color-blue-5)" }), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed", ta: "center" }, loadingMessage))), status === "error" && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), title: "Preview error", color: "red", variant: "light", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, errorMessage), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Ask the oracle agent to regenerate, or rebuild the card upstream."))), (status === "ready" || status === "approved") && hasPreview && domainPreviewData && /* @__PURE__ */ React.createElement(Box, { p: "md", style: { backgroundColor: "var(--mantine-color-dark-6)", borderRadius: 8 } }, domainCardRenderer ? domainCardRenderer(domainPreviewData) : /* @__PURE__ */ React.createElement(JsonViewer, { data: domainPreviewData })), (status === "ready" || status === "approved") && !hasPreview && domainCardData && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "yellow", variant: "light", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "No human-facing preview was published by the oracle. You can still approve the underlying card, but consider asking the oracle agent to publish", " ", /* @__PURE__ */ React.createElement("code", null, "domainPreviewData"), ".")), status === "pending" && /* @__PURE__ */ React.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "gray", variant: "light", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "No preview yet. Ask your Agent to generate a domain card and gather the setup details.")), /* @__PURE__ */ React.createElement(
|
|
117
|
+
Button,
|
|
118
|
+
{
|
|
119
|
+
leftSection: isAskingCompanion ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconSparkles, { size: 16 }),
|
|
120
|
+
onClick: handleAskCompanion,
|
|
121
|
+
disabled: isDisabled || isAskingCompanion,
|
|
122
|
+
variant: "light",
|
|
123
|
+
fullWidth: true
|
|
124
|
+
},
|
|
125
|
+
isAskingCompanion ? "Asking your Agent..." : "Ask your Agent to Generate Domain Card"
|
|
126
|
+
), companionError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", variant: "light", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, companionError))), status === "ready" && domainCardData && /* @__PURE__ */ React.createElement(Button, { color: "teal", leftSection: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), onClick: handleApprove, disabled: isDisabled, fullWidth: true }, "Approve Domain Card"), status === "approved" && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "green", variant: "light", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, "Domain card approved. Ready to sign and create the domain.")), runtime.error?.message && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "red", styles: actionAlertStyles }, runtime.error.message));
|
|
127
|
+
};
|
|
128
|
+
export {
|
|
129
|
+
DomainCardPreviewFlowDetail
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map
|