@ixo/editor 6.33.0 → 6.35.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.
Files changed (526) hide show
  1. package/dist/BidConfig-YLGSEIOS.js +154 -0
  2. package/dist/BidConfig-YLGSEIOS.js.map +1 -0
  3. package/dist/BidFlowDetail-U2SX5M7F.js +365 -0
  4. package/dist/BidFlowDetail-U2SX5M7F.js.map +1 -0
  5. package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
  6. package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
  7. package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
  8. package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
  9. package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
  10. package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
  11. package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
  12. package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
  13. package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
  14. package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
  15. package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
  16. package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
  17. package/dist/ClaimConfig-3HKPGK55.js +200 -0
  18. package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
  19. package/dist/ClaimFlowDetail-I4OQSHAB.js +641 -0
  20. package/dist/ClaimFlowDetail-I4OQSHAB.js.map +1 -0
  21. package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
  22. package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
  23. package/dist/CollectionLifecycleFlowDetail-LQHKB227.js +647 -0
  24. package/dist/CollectionLifecycleFlowDetail-LQHKB227.js.map +1 -0
  25. package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
  26. package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
  27. package/dist/CollectionUsersFlowDetail-LHXVCCPQ.js +1276 -0
  28. package/dist/CollectionUsersFlowDetail-LHXVCCPQ.js.map +1 -0
  29. package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
  30. package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
  31. package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
  32. package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
  33. package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
  34. package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
  35. package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
  36. package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
  37. package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
  38. package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
  39. package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
  40. package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
  41. package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
  42. package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
  43. package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
  44. package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
  45. package/dist/DomainSignConfig-XFIXROVK.js +47 -0
  46. package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
  47. package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
  48. package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
  49. package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
  50. package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
  51. package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
  52. package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
  53. package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
  54. package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
  55. package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
  56. package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
  57. package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
  58. package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
  59. package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
  60. package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
  61. package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
  62. package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
  63. package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
  64. package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
  65. package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
  66. package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
  67. package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
  68. package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
  69. package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
  70. package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
  71. package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
  72. package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
  73. package/dist/EvaluateBidFlowDetail-2EXGNBYC.js +564 -0
  74. package/dist/EvaluateBidFlowDetail-2EXGNBYC.js.map +1 -0
  75. package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
  76. package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
  77. package/dist/EvaluateClaimFlowDetail-QKHJVEDE.js +2237 -0
  78. package/dist/EvaluateClaimFlowDetail-QKHJVEDE.js.map +1 -0
  79. package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
  80. package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
  81. package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
  82. package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
  83. package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
  84. package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
  85. package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
  86. package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
  87. package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
  88. package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
  89. package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
  90. package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
  91. package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
  92. package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
  93. package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
  94. package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
  95. package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
  96. package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
  97. package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
  98. package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
  99. package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
  100. package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
  101. package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
  102. package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
  103. package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
  104. package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
  105. package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
  106. package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
  107. package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
  108. package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
  109. package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
  110. package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
  111. package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
  112. package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
  113. package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
  114. package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
  115. package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
  116. package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
  117. package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
  118. package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
  119. package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
  120. package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
  121. package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
  122. package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
  123. package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
  124. package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
  125. package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
  126. package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
  127. package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
  128. package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
  129. package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
  130. package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
  131. package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
  132. package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
  133. package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
  134. package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
  135. package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
  136. package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
  137. package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
  138. package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
  139. package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
  140. package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
  141. package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
  142. package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
  143. package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
  144. package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
  145. package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
  146. package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
  147. package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
  148. package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
  149. package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
  150. package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
  151. package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
  152. package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
  153. package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
  154. package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
  155. package/dist/HarvestConfig-AIGOGBFR.js +56 -0
  156. package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
  157. package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
  158. package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
  159. package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
  160. package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
  161. package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
  162. package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
  163. package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
  164. package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
  165. package/dist/IdentityCreateFlowDetail-4TE6UCEB.js +83 -0
  166. package/dist/IdentityCreateFlowDetail-4TE6UCEB.js.map +1 -0
  167. package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
  168. package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
  169. package/dist/IidCreateFlowDetail-HPVZAHVY.js +57 -0
  170. package/dist/IidCreateFlowDetail-HPVZAHVY.js.map +1 -0
  171. package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
  172. package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
  173. package/dist/KycVerifyFlowDetail-FEU43HML.js +421 -0
  174. package/dist/KycVerifyFlowDetail-FEU43HML.js.map +1 -0
  175. package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
  176. package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
  177. package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
  178. package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
  179. package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
  180. package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
  181. package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
  182. package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
  183. package/dist/MatrixDmConfig-NBII27CS.js +120 -0
  184. package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
  185. package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
  186. package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
  187. package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
  188. package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
  189. package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
  190. package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
  191. package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
  192. package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
  193. package/dist/OracleConfig-R7TDTTKN.js +56 -0
  194. package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
  195. package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
  196. package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
  197. package/dist/OracleConfigureOracleFlowDetail-MIBXUEKC.js +255 -0
  198. package/dist/OracleConfigureOracleFlowDetail-MIBXUEKC.js.map +1 -0
  199. package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
  200. package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
  201. package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
  202. package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
  203. package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
  204. package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
  205. package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
  206. package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
  207. package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
  208. package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
  209. package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
  210. package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
  211. package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
  212. package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
  213. package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
  214. package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
  215. package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
  216. package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
  217. package/dist/OraclePromptConfig-YBRESISH.js +39 -0
  218. package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
  219. package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
  220. package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
  221. package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
  222. package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
  223. package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
  224. package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
  225. package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
  226. package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
  227. package/dist/OracleStoreSecretsAndConfigFlowDetail-HQU3UKEB.js +220 -0
  228. package/dist/OracleStoreSecretsAndConfigFlowDetail-HQU3UKEB.js.map +1 -0
  229. package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
  230. package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
  231. package/dist/OracleStoreSecretsFlowDetail-5RXWQ3KA.js +197 -0
  232. package/dist/OracleStoreSecretsFlowDetail-5RXWQ3KA.js.map +1 -0
  233. package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
  234. package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
  235. package/dist/ProposalCreateFlowDetail-2FCRCNYV.js +235 -0
  236. package/dist/ProposalCreateFlowDetail-2FCRCNYV.js.map +1 -0
  237. package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
  238. package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
  239. package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
  240. package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
  241. package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
  242. package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
  243. package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
  244. package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
  245. package/dist/RetireConfig-MV37WWZ6.js +59 -0
  246. package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
  247. package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
  248. package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
  249. package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
  250. package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
  251. package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
  252. package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
  253. package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
  254. package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
  255. package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
  256. package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
  257. package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
  258. package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
  259. package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
  260. package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
  261. package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
  262. package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
  263. package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
  264. package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
  265. package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
  266. package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
  267. package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
  268. package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
  269. package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
  270. package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
  271. package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
  272. package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
  273. package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
  274. package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
  275. package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
  276. package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
  277. package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
  278. package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
  279. package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
  280. package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
  281. package/dist/action-manifest.json +2091 -393
  282. package/dist/chunk-2GAYKKTL.js +9 -0
  283. package/dist/chunk-2GAYKKTL.js.map +1 -0
  284. package/dist/chunk-3TUYY4HK.js +20 -0
  285. package/dist/chunk-3TUYY4HK.js.map +1 -0
  286. package/dist/chunk-4DGCCXD6.js +710 -0
  287. package/dist/chunk-4DGCCXD6.js.map +1 -0
  288. package/dist/chunk-4NAFQF6V.js +11 -0
  289. package/dist/chunk-4NAFQF6V.js.map +1 -0
  290. package/dist/chunk-4PONO4US.js +799 -0
  291. package/dist/chunk-4PONO4US.js.map +1 -0
  292. package/dist/chunk-4TMOIK5M.js +21 -0
  293. package/dist/chunk-4TMOIK5M.js.map +1 -0
  294. package/dist/chunk-5E6Z6JJN.js +4456 -0
  295. package/dist/chunk-5E6Z6JJN.js.map +1 -0
  296. package/dist/chunk-5IH3VC5I.js +102 -0
  297. package/dist/chunk-5IH3VC5I.js.map +1 -0
  298. package/dist/chunk-5NTKDOP6.js +89 -0
  299. package/dist/chunk-5NTKDOP6.js.map +1 -0
  300. package/dist/chunk-5O2SFRGU.js +18 -0
  301. package/dist/chunk-5O2SFRGU.js.map +1 -0
  302. package/dist/chunk-632JLECF.js +55 -0
  303. package/dist/chunk-632JLECF.js.map +1 -0
  304. package/dist/chunk-676HDB7K.js +95 -0
  305. package/dist/chunk-676HDB7K.js.map +1 -0
  306. package/dist/chunk-6ESTNTSH.js +223 -0
  307. package/dist/chunk-6ESTNTSH.js.map +1 -0
  308. package/dist/chunk-6GKJR52N.js +15 -0
  309. package/dist/chunk-6GKJR52N.js.map +1 -0
  310. package/dist/chunk-6L4ZIKYU.js +23 -0
  311. package/dist/chunk-6L4ZIKYU.js.map +1 -0
  312. package/dist/chunk-76YX5R4L.js +11 -0
  313. package/dist/chunk-76YX5R4L.js.map +1 -0
  314. package/dist/chunk-7J3GFMN3.js +32 -0
  315. package/dist/chunk-7J3GFMN3.js.map +1 -0
  316. package/dist/chunk-7LSARC2G.js +102 -0
  317. package/dist/chunk-7LSARC2G.js.map +1 -0
  318. package/dist/chunk-7W7UUUIE.js +609 -0
  319. package/dist/chunk-7W7UUUIE.js.map +1 -0
  320. package/dist/chunk-7ZLW7H37.js +21 -0
  321. package/dist/chunk-7ZLW7H37.js.map +1 -0
  322. package/dist/chunk-AAZHI22G.js +18 -0
  323. package/dist/chunk-AAZHI22G.js.map +1 -0
  324. package/dist/chunk-ACNE455I.js +76 -0
  325. package/dist/chunk-ACNE455I.js.map +1 -0
  326. package/dist/chunk-BKLSSLPZ.js +27 -0
  327. package/dist/chunk-BKLSSLPZ.js.map +1 -0
  328. package/dist/chunk-BZ7UPUTY.js +417 -0
  329. package/dist/chunk-BZ7UPUTY.js.map +1 -0
  330. package/dist/chunk-CGFAICUE.js +28 -0
  331. package/dist/chunk-CGFAICUE.js.map +1 -0
  332. package/dist/chunk-CMCEWQ3C.js +19 -0
  333. package/dist/chunk-CMCEWQ3C.js.map +1 -0
  334. package/dist/chunk-CP4UV436.js +41 -0
  335. package/dist/chunk-CP4UV436.js.map +1 -0
  336. package/dist/chunk-DIQRZP7Z.js +51 -0
  337. package/dist/chunk-DIQRZP7Z.js.map +1 -0
  338. package/dist/chunk-EBFFDDAS.js +13 -0
  339. package/dist/chunk-EBFFDDAS.js.map +1 -0
  340. package/dist/chunk-EGVS23DR.js +85 -0
  341. package/dist/chunk-EGVS23DR.js.map +1 -0
  342. package/dist/chunk-EKBQ7K4N.js +15 -0
  343. package/dist/chunk-EKBQ7K4N.js.map +1 -0
  344. package/dist/chunk-EKQCZRAN.js +24 -0
  345. package/dist/chunk-EKQCZRAN.js.map +1 -0
  346. package/dist/chunk-EYKZIZ5J.js +48 -0
  347. package/dist/chunk-EYKZIZ5J.js.map +1 -0
  348. package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
  349. package/dist/chunk-F4PTFXZH.js.map +1 -0
  350. package/dist/chunk-F5GTFCYV.js +3333 -0
  351. package/dist/chunk-F5GTFCYV.js.map +1 -0
  352. package/dist/chunk-FFYZXA75.js +58 -0
  353. package/dist/chunk-FFYZXA75.js.map +1 -0
  354. package/dist/chunk-GFGDHPZ2.js +22 -0
  355. package/dist/chunk-GFGDHPZ2.js.map +1 -0
  356. package/dist/chunk-GR3CDFID.js +18 -0
  357. package/dist/chunk-GR3CDFID.js.map +1 -0
  358. package/dist/chunk-GR4SIU32.js +104 -0
  359. package/dist/chunk-GR4SIU32.js.map +1 -0
  360. package/dist/chunk-H5E46IIS.js +18 -0
  361. package/dist/chunk-H5E46IIS.js.map +1 -0
  362. package/dist/chunk-HFHVAMZL.js +22 -0
  363. package/dist/chunk-HFHVAMZL.js.map +1 -0
  364. package/dist/chunk-HT6L7A5M.js +12 -0
  365. package/dist/chunk-HT6L7A5M.js.map +1 -0
  366. package/dist/chunk-I2FPFISM.js +301 -0
  367. package/dist/chunk-I2FPFISM.js.map +1 -0
  368. package/dist/chunk-IADAQJDH.js +28 -0
  369. package/dist/chunk-IADAQJDH.js.map +1 -0
  370. package/dist/chunk-IBOBCMQQ.js +99 -0
  371. package/dist/chunk-IBOBCMQQ.js.map +1 -0
  372. package/dist/chunk-IFWKRCFF.js +56 -0
  373. package/dist/chunk-IFWKRCFF.js.map +1 -0
  374. package/dist/chunk-IH4T7V4C.js +40 -0
  375. package/dist/chunk-IH4T7V4C.js.map +1 -0
  376. package/dist/chunk-IIIZZ4E4.js +1679 -0
  377. package/dist/chunk-IIIZZ4E4.js.map +1 -0
  378. package/dist/chunk-ILSFU3WD.js +83 -0
  379. package/dist/chunk-ILSFU3WD.js.map +1 -0
  380. package/dist/chunk-IX3VBV3L.js +43 -0
  381. package/dist/chunk-IX3VBV3L.js.map +1 -0
  382. package/dist/chunk-JB6ASLUJ.js +315 -0
  383. package/dist/chunk-JB6ASLUJ.js.map +1 -0
  384. package/dist/chunk-JBBFSORW.js +846 -0
  385. package/dist/chunk-JBBFSORW.js.map +1 -0
  386. package/dist/chunk-JIDTNKKL.js +1183 -0
  387. package/dist/chunk-JIDTNKKL.js.map +1 -0
  388. package/dist/chunk-JSPE6NGZ.js +22 -0
  389. package/dist/chunk-JSPE6NGZ.js.map +1 -0
  390. package/dist/chunk-JVROGQ7Q.js +150 -0
  391. package/dist/chunk-JVROGQ7Q.js.map +1 -0
  392. package/dist/chunk-K4WUMWNJ.js +32 -0
  393. package/dist/chunk-K4WUMWNJ.js.map +1 -0
  394. package/dist/chunk-K74XQ4Q5.js +11 -0
  395. package/dist/chunk-K74XQ4Q5.js.map +1 -0
  396. package/dist/chunk-KLLMJ4U3.js +22 -0
  397. package/dist/chunk-KLLMJ4U3.js.map +1 -0
  398. package/dist/chunk-LTKVCJ2E.js +27 -0
  399. package/dist/chunk-LTKVCJ2E.js.map +1 -0
  400. package/dist/chunk-M36DJTFZ.js +34 -0
  401. package/dist/chunk-M36DJTFZ.js.map +1 -0
  402. package/dist/chunk-MHM52LCJ.js +154 -0
  403. package/dist/chunk-MHM52LCJ.js.map +1 -0
  404. package/dist/chunk-MQCDMHRZ.js +59 -0
  405. package/dist/chunk-MQCDMHRZ.js.map +1 -0
  406. package/dist/chunk-MZIBZ5FY.js +554 -0
  407. package/dist/chunk-MZIBZ5FY.js.map +1 -0
  408. package/dist/chunk-N3ORMGAI.js +348 -0
  409. package/dist/chunk-N3ORMGAI.js.map +1 -0
  410. package/dist/chunk-NCSGIRRQ.js +28 -0
  411. package/dist/chunk-NCSGIRRQ.js.map +1 -0
  412. package/dist/chunk-NIXT2SBH.js +1423 -0
  413. package/dist/chunk-NIXT2SBH.js.map +1 -0
  414. package/dist/chunk-NJAII6CO.js +148 -0
  415. package/dist/chunk-NJAII6CO.js.map +1 -0
  416. package/dist/chunk-NKE4TL43.js +92 -0
  417. package/dist/chunk-NKE4TL43.js.map +1 -0
  418. package/dist/chunk-NZ7AXA7B.js +1 -0
  419. package/dist/chunk-NZ7AXA7B.js.map +1 -0
  420. package/dist/chunk-OCAYEGI2.js +26 -0
  421. package/dist/chunk-OCAYEGI2.js.map +1 -0
  422. package/dist/chunk-OMLI45ER.js +90 -0
  423. package/dist/chunk-OMLI45ER.js.map +1 -0
  424. package/dist/chunk-P7OBLJAG.js +88 -0
  425. package/dist/chunk-P7OBLJAG.js.map +1 -0
  426. package/dist/chunk-PAY3CBWL.js +2321 -0
  427. package/dist/chunk-PAY3CBWL.js.map +1 -0
  428. package/dist/chunk-PFF6VY35.js +257 -0
  429. package/dist/chunk-PFF6VY35.js.map +1 -0
  430. package/dist/chunk-PYNDJDWZ.js +1758 -0
  431. package/dist/chunk-PYNDJDWZ.js.map +1 -0
  432. package/dist/chunk-QDQ6UMMN.js +53 -0
  433. package/dist/chunk-QDQ6UMMN.js.map +1 -0
  434. package/dist/chunk-QGT3G2XG.js +24 -0
  435. package/dist/chunk-QGT3G2XG.js.map +1 -0
  436. package/dist/chunk-QZYCJ2GZ.js +55 -0
  437. package/dist/chunk-QZYCJ2GZ.js.map +1 -0
  438. package/dist/chunk-REZ7RFSA.js +124 -0
  439. package/dist/chunk-REZ7RFSA.js.map +1 -0
  440. package/dist/chunk-RRYBAE6E.js +2449 -0
  441. package/dist/chunk-RRYBAE6E.js.map +1 -0
  442. package/dist/chunk-RWUZOB62.js +34 -0
  443. package/dist/chunk-RWUZOB62.js.map +1 -0
  444. package/dist/chunk-SB5UCPZH.js +116 -0
  445. package/dist/chunk-SB5UCPZH.js.map +1 -0
  446. package/dist/chunk-SEJJ7CRI.js +99 -0
  447. package/dist/chunk-SEJJ7CRI.js.map +1 -0
  448. package/dist/chunk-SHBFGRPV.js +45 -0
  449. package/dist/chunk-SHBFGRPV.js.map +1 -0
  450. package/dist/chunk-SOFJ4GC5.js +45 -0
  451. package/dist/chunk-SOFJ4GC5.js.map +1 -0
  452. package/dist/chunk-STH2HPZK.js +44 -0
  453. package/dist/chunk-STH2HPZK.js.map +1 -0
  454. package/dist/chunk-TK3JNKME.js +28 -0
  455. package/dist/chunk-TK3JNKME.js.map +1 -0
  456. package/dist/chunk-TMONHFE3.js +46 -0
  457. package/dist/chunk-TMONHFE3.js.map +1 -0
  458. package/dist/chunk-TR4KO3AG.js +44 -0
  459. package/dist/chunk-TR4KO3AG.js.map +1 -0
  460. package/dist/chunk-TS2LNBF2.js +68 -0
  461. package/dist/chunk-TS2LNBF2.js.map +1 -0
  462. package/dist/chunk-UZUMBFPP.js +26 -0
  463. package/dist/chunk-UZUMBFPP.js.map +1 -0
  464. package/dist/chunk-VRZ5LMOW.js +176 -0
  465. package/dist/chunk-VRZ5LMOW.js.map +1 -0
  466. package/dist/chunk-WLGGY6Z6.js +75 -0
  467. package/dist/chunk-WLGGY6Z6.js.map +1 -0
  468. package/dist/chunk-WO7V6ZNC.js +11 -0
  469. package/dist/chunk-WO7V6ZNC.js.map +1 -0
  470. package/dist/chunk-WXSENSRP.js +64 -0
  471. package/dist/chunk-WXSENSRP.js.map +1 -0
  472. package/dist/chunk-XEKBZ2SA.js +19 -0
  473. package/dist/chunk-XEKBZ2SA.js.map +1 -0
  474. package/dist/chunk-XPBKU3JX.js +61 -0
  475. package/dist/chunk-XPBKU3JX.js.map +1 -0
  476. package/dist/chunk-XRYXBXWH.js +24 -0
  477. package/dist/chunk-XRYXBXWH.js.map +1 -0
  478. package/dist/chunk-XVA7QRVH.js +22 -0
  479. package/dist/chunk-XVA7QRVH.js.map +1 -0
  480. package/dist/chunk-XYXDY72K.js +27508 -0
  481. package/dist/chunk-XYXDY72K.js.map +1 -0
  482. package/dist/chunk-YCTHHBSS.js +37 -0
  483. package/dist/chunk-YCTHHBSS.js.map +1 -0
  484. package/dist/chunk-YHPWD5NE.js +70 -0
  485. package/dist/chunk-YHPWD5NE.js.map +1 -0
  486. package/dist/chunk-YLNEKJQ5.js +126 -0
  487. package/dist/chunk-YLNEKJQ5.js.map +1 -0
  488. package/dist/chunk-YN4CEKCF.js +73 -0
  489. package/dist/chunk-YN4CEKCF.js.map +1 -0
  490. package/dist/chunk-YYNMESIF.js +17 -0
  491. package/dist/chunk-YYNMESIF.js.map +1 -0
  492. package/dist/chunk-Z6PRMCV6.js +1 -0
  493. package/dist/chunk-Z6PRMCV6.js.map +1 -0
  494. package/dist/chunk-ZDNW6VQG.js +11 -0
  495. package/dist/chunk-ZDNW6VQG.js.map +1 -0
  496. package/dist/chunk-ZP4D73DO.js +36 -0
  497. package/dist/chunk-ZP4D73DO.js.map +1 -0
  498. package/dist/chunk-ZUATADUV.js +26 -0
  499. package/dist/chunk-ZUATADUV.js.map +1 -0
  500. package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
  501. package/dist/core/index.cjs +14041 -6973
  502. package/dist/core/index.cjs.map +1 -1
  503. package/dist/core/index.d.ts +422 -138
  504. package/dist/core/index.js +425 -183
  505. package/dist/core/index.js.map +1 -1
  506. package/dist/flow-vnext/index.cjs +2842 -0
  507. package/dist/flow-vnext/index.cjs.map +1 -0
  508. package/dist/flow-vnext/index.d.ts +3 -0
  509. package/dist/flow-vnext/index.js +119 -0
  510. package/dist/flow-vnext/index.js.map +1 -0
  511. package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
  512. package/dist/index-b9xxXGFs.d.ts +1230 -0
  513. package/dist/index.d.ts +5 -3
  514. package/dist/index.js +202 -37
  515. package/dist/index.js.map +1 -1
  516. package/dist/legacy-BpgIqaQ5.d.ts +14 -0
  517. package/dist/mantine/index.d.ts +7 -4
  518. package/dist/mantine/index.js +84 -30
  519. package/dist/mantine/index.js.map +1 -1
  520. package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
  521. package/package.json +12 -2
  522. package/dist/chunk-A4CWC4AG.js +0 -374
  523. package/dist/chunk-A4CWC4AG.js.map +0 -1
  524. package/dist/chunk-NEOPTPDF.js.map +0 -1
  525. package/dist/chunk-VRCRDKN5.js +0 -59694
  526. package/dist/chunk-VRCRDKN5.js.map +0 -1
@@ -0,0 +1,421 @@
1
+ import {
2
+ isTerminalKycStatus,
3
+ kycStepperIndex
4
+ } from "./chunk-SOFJ4GC5.js";
5
+ import {
6
+ useResolvedInputs
7
+ } from "./chunk-MQCDMHRZ.js";
8
+ import {
9
+ StableSurvey
10
+ } from "./chunk-2GAYKKTL.js";
11
+ import {
12
+ buildSurveyTheme
13
+ } from "./chunk-MHM52LCJ.js";
14
+ import "./chunk-FFYZXA75.js";
15
+ import "./chunk-5E6Z6JJN.js";
16
+ import "./chunk-F4PTFXZH.js";
17
+ import "./chunk-IH4T7V4C.js";
18
+ import "./chunk-PYNDJDWZ.js";
19
+ import "./chunk-NIXT2SBH.js";
20
+ import "./chunk-JIDTNKKL.js";
21
+ import "./chunk-JVROGQ7Q.js";
22
+ import "./chunk-IIIZZ4E4.js";
23
+ import "./chunk-HT6L7A5M.js";
24
+ import "./chunk-RRYBAE6E.js";
25
+ import "./chunk-N3ORMGAI.js";
26
+ import "./chunk-NCSGIRRQ.js";
27
+ import {
28
+ DismissibleAlert
29
+ } from "./chunk-IFWKRCFF.js";
30
+ import {
31
+ actionAlertStyles
32
+ } from "./chunk-6GKJR52N.js";
33
+ import "./chunk-EBFFDDAS.js";
34
+ import {
35
+ useBlocknoteHandlers,
36
+ useTranslate
37
+ } from "./chunk-4DGCCXD6.js";
38
+ import "./chunk-7W7UUUIE.js";
39
+ import "./chunk-TS2LNBF2.js";
40
+
41
+ // src/mantine/blocks/action/actionTypes/kycVerify/KycVerifyFlowDetail.tsx
42
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
43
+ import { Button, Group, Loader, Radio, Stack, Stepper, Text } from "@mantine/core";
44
+ import { IconAlertCircle, IconCheck, IconExternalLink, IconId, IconRefresh } from "@tabler/icons-react";
45
+ import { SurveyModel } from "@ixo/surveys";
46
+ var POLL_INTERVAL_MS = 15e3;
47
+ function formatCredentialLabel(credential) {
48
+ const saved = credential.storedAt ? new Date(credential.storedAt) : null;
49
+ const savedLabel = saved && !Number.isNaN(saved.getTime()) ? saved.toLocaleDateString() : "";
50
+ const shortCid = credential.cid.length > 24 ? `${credential.cid.slice(0, 18)}\u2026${credential.cid.slice(-6)}` : credential.cid;
51
+ return [savedLabel, shortCid].filter(Boolean).join(" \xB7 ");
52
+ }
53
+ function openDeferredTab() {
54
+ const win = window.open("", "_blank");
55
+ if (win) {
56
+ try {
57
+ win.opener = null;
58
+ } catch {
59
+ }
60
+ }
61
+ return win;
62
+ }
63
+ var KycVerifyFlowDetail = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {
64
+ const t = useTranslate();
65
+ const handlers = useBlocknoteHandlers();
66
+ const handlersRef = useRef(handlers);
67
+ useEffect(() => {
68
+ handlersRef.current = handlers;
69
+ }, [handlers]);
70
+ const kycAvailable = !!(handlers?.kycLoadForm && handlers?.kycInitiate && handlers?.kycGetVerificationUrl && handlers?.kycGetStatus && handlers?.kycSaveCredential);
71
+ const { parsed, resolvedInputs, inputsReady } = useResolvedInputs(editor, inputs, { fields: ["protocolDid", "credentialType"], required: ["protocolDid"] }, block?.id);
72
+ const protocolDid = resolvedInputs.protocolDid || "";
73
+ const credentialType = resolvedInputs.credentialType || "";
74
+ const configured = !!(parsed.protocolDid && String(parsed.protocolDid).trim());
75
+ const credentialCid = runtime.output?.credentialCid || "";
76
+ const hasProof = !!credentialCid;
77
+ const isRunning = runtime.state === "running";
78
+ const isCompleted = runtime.state === "completed" && hasProof;
79
+ const isStale = runtime.state === "completed" && !hasProof;
80
+ const isFailed = runtime.state === "failed";
81
+ const runtimeError = runtime.error?.message || null;
82
+ const [form, setForm] = useState(null);
83
+ const [serverStatus, setServerStatus] = useState(null);
84
+ const [loadingForm, setLoadingForm] = useState(false);
85
+ const [loadError, setLoadError] = useState(null);
86
+ const [loadRetryKey, setLoadRetryKey] = useState(0);
87
+ const [busy, setBusy] = useState(null);
88
+ const [actionError, setActionError] = useState(null);
89
+ const [fallbackUrl, setFallbackUrl] = useState(null);
90
+ const [selectedCredentialCid, setSelectedCredentialCid] = useState(null);
91
+ const surveyDataRef = useRef(null);
92
+ useEffect(() => {
93
+ if (!kycAvailable || !inputsReady || !protocolDid) return;
94
+ let cancelled = false;
95
+ setLoadingForm(true);
96
+ setLoadError(null);
97
+ console.log("[kyc.verify] loading form", { protocolDid, credentialType });
98
+ handlersRef.current.kycLoadForm({ protocolDid, ...credentialType ? { credentialType } : {} }).then((result) => {
99
+ if (cancelled) return;
100
+ console.log("[kyc.verify] form loaded", {
101
+ protocolId: result.protocolId,
102
+ status: result.status,
103
+ hasExistingCredential: result.hasExistingCredential,
104
+ existingCredentials: result.existingCredentials?.length ?? 0
105
+ });
106
+ setForm(result);
107
+ setServerStatus(result.status || "unknown");
108
+ const existing = result.existingCredentials || [];
109
+ setSelectedCredentialCid(existing.length ? existing[existing.length - 1].cid : null);
110
+ }).catch((err) => {
111
+ if (cancelled) return;
112
+ console.error("[kyc.verify] loadForm failed", err);
113
+ setLoadError(err instanceof Error ? err.message : t("actionTypes.kycVerify.flow.errors.loadForm", { defaultValue: "Failed to load the KYC form" }));
114
+ }).finally(() => {
115
+ if (!cancelled) setLoadingForm(false);
116
+ });
117
+ return () => {
118
+ cancelled = true;
119
+ };
120
+ }, [kycAvailable, inputsReady, protocolDid, credentialType, loadRetryKey]);
121
+ const protocolId = form?.protocolId || "";
122
+ const pollingActive = kycAvailable && !!protocolId && !!serverStatus && !isTerminalKycStatus(serverStatus) && !isCompleted;
123
+ useEffect(() => {
124
+ if (!pollingActive) return;
125
+ const tick = async () => {
126
+ try {
127
+ const result = await handlersRef.current.kycGetStatus({ protocolId });
128
+ console.log("[kyc.verify] poll status", { protocolId, status: result.status });
129
+ setServerStatus(result.status);
130
+ } catch (err) {
131
+ console.warn("[kyc.verify] status poll failed", err);
132
+ }
133
+ };
134
+ const id = setInterval(() => void tick(), POLL_INTERVAL_MS);
135
+ return () => clearInterval(id);
136
+ }, [pollingActive, protocolId]);
137
+ const refreshStatus = useCallback(async () => {
138
+ if (!protocolId) return;
139
+ setBusy("refresh");
140
+ setActionError(null);
141
+ try {
142
+ const result = await handlersRef.current.kycGetStatus({ protocolId });
143
+ console.log("[kyc.verify] manual status refresh", { protocolId, status: result.status });
144
+ setServerStatus(result.status);
145
+ } catch (err) {
146
+ setActionError(err instanceof Error ? err.message : t("actionTypes.kycVerify.flow.errors.status", { defaultValue: "Failed to check the verification status" }));
147
+ } finally {
148
+ setBusy(null);
149
+ }
150
+ }, [protocolId]);
151
+ const openVerification = useCallback(
152
+ async (pendingTab) => {
153
+ setFallbackUrl(null);
154
+ const { url } = await handlersRef.current.kycGetVerificationUrl({ protocolId });
155
+ console.log("[kyc.verify] opening verification webview");
156
+ if (pendingTab && !pendingTab.closed) {
157
+ pendingTab.location.href = url;
158
+ return;
159
+ }
160
+ const direct = window.open(url, "_blank", "noopener,noreferrer");
161
+ if (!direct) {
162
+ console.warn("[kyc.verify] popup blocked \u2014 showing manual link");
163
+ setFallbackUrl(url);
164
+ }
165
+ },
166
+ [protocolId]
167
+ );
168
+ const handleContinueVerification = useCallback(() => {
169
+ if (busy || isDisabled) return;
170
+ const pendingTab = openDeferredTab();
171
+ setBusy("continue");
172
+ setActionError(null);
173
+ void (async () => {
174
+ try {
175
+ await openVerification(pendingTab);
176
+ } catch (err) {
177
+ if (pendingTab && !pendingTab.closed) pendingTab.close();
178
+ console.error("[kyc.verify] getVerificationUrl failed", err);
179
+ setActionError(err instanceof Error ? err.message : t("actionTypes.kycVerify.flow.errors.verificationUrl", { defaultValue: "Failed to open the verification page" }));
180
+ } finally {
181
+ setBusy(null);
182
+ }
183
+ })();
184
+ }, [busy, isDisabled, openVerification]);
185
+ const showSurvey = !!form && !form.hasExistingCredential && (!serverStatus || serverStatus === "unknown");
186
+ const surveyModel = useMemo(() => {
187
+ if (!showSurvey || !form?.surveyJson) return null;
188
+ const model = new SurveyModel(form.surveyJson);
189
+ model.applyTheme(buildSurveyTheme());
190
+ model.showQuestionNumbers = "off";
191
+ model.completeText = t("actionTypes.kycVerify.flow.submitDetails", { defaultValue: "Submit details" });
192
+ model.showCompletedPage = false;
193
+ if (surveyDataRef.current) {
194
+ model.data = surveyDataRef.current;
195
+ }
196
+ if (isDisabled || busy === "initiate") {
197
+ model.mode = "display";
198
+ model.showCompleteButton = false;
199
+ }
200
+ return model;
201
+ }, [showSurvey, form?.surveyJson, isDisabled, busy === "initiate"]);
202
+ const handleSurveyComplete = useCallback(
203
+ (sender) => {
204
+ if (busy || isDisabled || !form) return;
205
+ const pendingTab = openDeferredTab();
206
+ setBusy("initiate");
207
+ setActionError(null);
208
+ void (async () => {
209
+ try {
210
+ console.log("[kyc.verify] initiating verification", { protocolId: form.protocolId });
211
+ const initiated = await handlersRef.current.kycInitiate({
212
+ protocolId: form.protocolId,
213
+ ...form.claimCollectionId ? { claimCollectionId: form.claimCollectionId } : {},
214
+ ...form.deedOfferId ? { deedOfferId: form.deedOfferId } : {},
215
+ data: sender.data || {}
216
+ });
217
+ setServerStatus(initiated.status || "verify");
218
+ await openVerification(pendingTab);
219
+ } catch (err) {
220
+ if (pendingTab && !pendingTab.closed) pendingTab.close();
221
+ console.error("[kyc.verify] initiate failed", err);
222
+ setActionError(err instanceof Error ? err.message : t("actionTypes.kycVerify.flow.errors.initiate", { defaultValue: "Failed to start the verification" }));
223
+ } finally {
224
+ setBusy(null);
225
+ }
226
+ })();
227
+ },
228
+ [busy, isDisabled, form, openVerification]
229
+ );
230
+ useEffect(() => {
231
+ if (!surveyModel) return void 0;
232
+ const captureData = (sender) => {
233
+ surveyDataRef.current = sender.data || {};
234
+ };
235
+ surveyModel.onComplete.add(handleSurveyComplete);
236
+ surveyModel.onValueChanged.add(captureData);
237
+ return () => {
238
+ surveyModel.onComplete.remove(handleSurveyComplete);
239
+ surveyModel.onValueChanged.remove(captureData);
240
+ };
241
+ }, [surveyModel, handleSurveyComplete]);
242
+ const handleSave = useCallback(async () => {
243
+ if (busy || isDisabled || isRunning) return;
244
+ if (!executeAction) {
245
+ setActionError(t("actionTypes.kycVerify.flow.errors.executorUnavailable", { defaultValue: "Shared action executor is unavailable" }));
246
+ return;
247
+ }
248
+ setBusy("save");
249
+ setActionError(null);
250
+ const credentialCid2 = form?.existingCredentials?.length && selectedCredentialCid ? selectedCredentialCid : void 0;
251
+ console.log("[kyc.verify] executing final save", { protocolDid, credentialType, credentialCid: credentialCid2 });
252
+ try {
253
+ const outcome = await executeAction({
254
+ runtimeInputs: { protocolDid, ...credentialType ? { credentialType } : {}, ...credentialCid2 ? { credentialCid: credentialCid2 } : {} }
255
+ });
256
+ console.log("[kyc.verify] executor outcome", { success: outcome.success, error: outcome.error });
257
+ if (!outcome.success) {
258
+ throw new Error(outcome.error || t("actionTypes.kycVerify.flow.errors.save", { defaultValue: "Failed to save the credential" }));
259
+ }
260
+ setServerStatus("complete");
261
+ } catch (err) {
262
+ const message = err instanceof Error ? err.message : t("actionTypes.kycVerify.flow.errors.save", { defaultValue: "Failed to save the credential" });
263
+ setActionError(message);
264
+ void refreshStatus();
265
+ } finally {
266
+ setBusy(null);
267
+ }
268
+ }, [busy, isDisabled, isRunning, executeAction, protocolDid, refreshStatus]);
269
+ const handleReset = useCallback(() => {
270
+ console.log("[kyc.verify] resetting runtime to idle");
271
+ updateRuntime({ state: "idle", error: void 0, output: {} });
272
+ }, [updateRuntime]);
273
+ const title = block?.props?.title || t("actionTypes.kycVerify.flow.title", { defaultValue: "Identity Verification (KYC)" });
274
+ const description = block?.props?.description || t("actionTypes.kycVerify.flow.description", { defaultValue: "Verify your identity to continue this flow." });
275
+ const stepLabels = [
276
+ t("actionTypes.kycVerify.flow.steps.details", { defaultValue: "Details submitted" }),
277
+ t("actionTypes.kycVerify.flow.steps.verification", { defaultValue: "Verification" }),
278
+ t("actionTypes.kycVerify.flow.steps.review", { defaultValue: "Review" }),
279
+ t("actionTypes.kycVerify.flow.steps.issuing", { defaultValue: "Issuing credential" }),
280
+ t("actionTypes.kycVerify.flow.steps.save", { defaultValue: "Save" })
281
+ ];
282
+ const renderStepper = (status) => /* @__PURE__ */ React.createElement(Stepper, { active: kycStepperIndex(status), orientation: "vertical", size: "xs" }, stepLabels.map((label) => /* @__PURE__ */ React.createElement(Stepper.Step, { key: label, label })));
283
+ if (isCompleted) {
284
+ return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, title), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, description)), /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "green", title: t("actionTypes.kycVerify.flow.completedTitle", { defaultValue: "Verification Complete" }) }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.completedBody", { defaultValue: "Your credential has been loaded." }))));
285
+ }
286
+ return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: 2 }, /* @__PURE__ */ React.createElement(Text, { fw: 600 }, title), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, description)), isStale && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "yellow", title: t("actionTypes.kycVerify.flow.staleTitle", { defaultValue: "Inconsistent State" }) }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.staleBody", {
287
+ defaultValue: "This step was marked completed but no credential CID was recorded. This is stale state from a previous run \u2014 reset and complete the save again."
288
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "outline", size: "xs", onClick: handleReset }, t("actionTypes.kycVerify.flow.reset", { defaultValue: "Reset" }))))), !configured && /* @__PURE__ */ React.createElement(DismissibleAlert, { color: "yellow", styles: actionAlertStyles }, t("actionTypes.kycVerify.flow.notConfigured", { defaultValue: "Configure the KYC Protocol DID in template mode before running this action." })), configured && !inputsReady && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, t("actionTypes.kycVerify.flow.waitingInputs", { defaultValue: "Waiting for the KYC protocol DID from an upstream block\u2026" }))), configured && inputsReady && !kycAvailable && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, t("actionTypes.kycVerify.flow.handlersUnavailable", {
289
+ defaultValue: "KYC verification is not available: the host app does not provide the KYC handlers (kycLoadForm \u2026 kycSaveCredential)."
290
+ })), kycAvailable && inputsReady && loadingForm && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, t("actionTypes.kycVerify.flow.loadingForm", { defaultValue: "Loading your verification status\u2026" }))), kycAvailable && inputsReady && !loadingForm && loadError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs" }, loadError), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "outline", size: "xs", leftSection: /* @__PURE__ */ React.createElement(IconRefresh, { size: 14 }), onClick: () => setLoadRetryKey((k) => k + 1) }, t("actionTypes.kycVerify.flow.retry", { defaultValue: "Retry" }))))), kycAvailable && inputsReady && !loadingForm && !loadError && form && !isStale && /* @__PURE__ */ React.createElement(React.Fragment, null, form.hasExistingCredential ? (
291
+ // Already verified — the user picks which Vault credential to use
292
+ // (auto-picked when there is only one), then the formal completion
293
+ // records its proof (saveCredential is idempotent).
294
+ /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "blue", title: t("actionTypes.kycVerify.flow.alreadyVerifiedTitle", { defaultValue: "Already Verified" }) }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, (form.existingCredentials?.length ?? 0) > 1 ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.selectCredentialBody", {
295
+ defaultValue: "You hold more than one credential for this verification. Select the one to use for this step."
296
+ })), /* @__PURE__ */ React.createElement(Radio.Group, { value: selectedCredentialCid || "", onChange: (value) => setSelectedCredentialCid(value) }, /* @__PURE__ */ React.createElement(Stack, { gap: 6 }, [...form.existingCredentials || []].reverse().map((credential) => /* @__PURE__ */ React.createElement(
297
+ Radio,
298
+ {
299
+ key: credential.cid,
300
+ value: credential.cid,
301
+ label: /* @__PURE__ */ React.createElement(Text, { size: "xs", component: "span", style: { wordBreak: "break-all" } }, formatCredentialLabel(credential))
302
+ }
303
+ ))))) : /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.alreadyVerifiedBody", {
304
+ defaultValue: "You already hold a credential for this verification. Use it to complete this step."
305
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
306
+ Button,
307
+ {
308
+ size: "xs",
309
+ leftSection: busy === "save" || isRunning ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconCheck, { size: 14 }),
310
+ onClick: handleSave,
311
+ disabled: !!busy || isRunning || isDisabled || !selectedCredentialCid
312
+ },
313
+ t("actionTypes.kycVerify.flow.useCredential", { defaultValue: "Use this credential" })
314
+ ))))
315
+ ) : !serverStatus || serverStatus === "unknown" ? (
316
+ // Phase 1 — details form. The ixo-kyc-survey class normalises any
317
+ // inline colours in template-authored HTML to the site theme.
318
+ /* @__PURE__ */ React.createElement(React.Fragment, null, surveyModel && /* @__PURE__ */ React.createElement("div", { className: "ixo-kyc-survey" }, /* @__PURE__ */ React.createElement(StableSurvey, { model: surveyModel })), busy === "initiate" && /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, t("actionTypes.kycVerify.flow.initiating", { defaultValue: "Submitting your details and opening the verification page\u2026" }))))
319
+ ) : serverStatus === "verify" ? (
320
+ // Phase 2 — hosted verification pending.
321
+ /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, renderStepper(serverStatus), /* @__PURE__ */ React.createElement(Text, { size: "sm", c: "dimmed" }, t("actionTypes.kycVerify.flow.verifyHint", {
322
+ defaultValue: "Complete your identity verification in the secure browser tab. This step updates automatically once you finish."
323
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
324
+ Button,
325
+ {
326
+ size: "xs",
327
+ leftSection: busy === "continue" ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconExternalLink, { size: 14 }),
328
+ onClick: handleContinueVerification,
329
+ disabled: !!busy || isDisabled
330
+ },
331
+ t("actionTypes.kycVerify.flow.continueVerification", { defaultValue: "Continue verification" })
332
+ )))
333
+ ) : serverStatus === "review" || serverStatus === "clear" || serverStatus === "issuing" ? (
334
+ // Phase 3 — server-side progression; 15s polling is active.
335
+ /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, renderStepper(serverStatus), /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, t("actionTypes.kycVerify.flow.polling", { defaultValue: "Checking the verification status every 15 seconds\u2026" }))))
336
+ ) : serverStatus === "issued" ? (
337
+ // Phase 4 — credential issued; formal save step.
338
+ /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, renderStepper(serverStatus), /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.issuedHint", { defaultValue: "Your credential has been issued. Save it to your Vault to complete this step." })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { leftSection: busy === "save" || isRunning ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconId, { size: 14 }), onClick: handleSave, disabled: !!busy || isRunning || isDisabled }, t("actionTypes.kycVerify.flow.saveCredential", { defaultValue: "Save credential to your Vault" }))))
339
+ ) : serverStatus === "complete" ? (
340
+ // Server says complete but the block has no proof yet (e.g. saved
341
+ // from another device or a re-instantiated flow) — record it here.
342
+ /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconCheck, { size: 16 }), color: "blue", title: t("actionTypes.kycVerify.flow.serverCompleteTitle", { defaultValue: "Verification Already Complete" }) }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.serverCompleteBody", {
343
+ defaultValue: "The KYC server reports this verification as complete. Record it on this step to continue the flow."
344
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
345
+ Button,
346
+ {
347
+ size: "xs",
348
+ leftSection: busy === "save" || isRunning ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconCheck, { size: 14 }),
349
+ onClick: handleSave,
350
+ disabled: !!busy || isRunning || isDisabled
351
+ },
352
+ t("actionTypes.kycVerify.flow.recordCompletion", { defaultValue: "Record completion" })
353
+ ))))
354
+ ) : serverStatus === "rejected" ? /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", title: t("actionTypes.kycVerify.flow.rejectedTitle", { defaultValue: "Verification Rejected" }) }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.rejectedBody", {
355
+ defaultValue: "Your identity verification was rejected by the provider. This is usually final for the submitted documents \u2014 contact the flow owner or support to resolve it."
356
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
357
+ Button,
358
+ {
359
+ variant: "outline",
360
+ size: "xs",
361
+ leftSection: busy === "refresh" ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconRefresh, { size: 14 }),
362
+ onClick: () => void refreshStatus(),
363
+ disabled: !!busy
364
+ },
365
+ t("actionTypes.kycVerify.flow.checkStatus", { defaultValue: "Check status" })
366
+ )))) : serverStatus === "attention" ? /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, renderStepper(serverStatus), /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "yellow", title: t("actionTypes.kycVerify.flow.attentionTitle", { defaultValue: "Manual Review" }) }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.attentionBody", {
367
+ defaultValue: "Your verification needs manual review by the provider. No action is required \u2014 this step updates automatically when the review finishes."
368
+ }))), /* @__PURE__ */ React.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React.createElement(Loader, { size: 14 }), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, t("actionTypes.kycVerify.flow.polling", { defaultValue: "Checking the verification status every 15 seconds\u2026" })))) : serverStatus === "error" ? /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", title: t("actionTypes.kycVerify.flow.errorTitle", { defaultValue: "Verification Error" }) }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm" }, t("actionTypes.kycVerify.flow.errorBody", {
369
+ defaultValue: "The verification hit a server-side error. It can usually be recovered \u2014 continue the verification to retry."
370
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
371
+ Button,
372
+ {
373
+ size: "xs",
374
+ leftSection: busy === "continue" ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconExternalLink, { size: 14 }),
375
+ onClick: handleContinueVerification,
376
+ disabled: !!busy || isDisabled
377
+ },
378
+ t("actionTypes.kycVerify.flow.continueVerification", { defaultValue: "Continue verification" })
379
+ ), /* @__PURE__ */ React.createElement(
380
+ Button,
381
+ {
382
+ variant: "outline",
383
+ size: "xs",
384
+ leftSection: busy === "refresh" ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconRefresh, { size: 14 }),
385
+ onClick: () => void refreshStatus(),
386
+ disabled: !!busy
387
+ },
388
+ t("actionTypes.kycVerify.flow.checkStatus", { defaultValue: "Check status" })
389
+ )))) : (
390
+ // Unrecognised status — surface it verbatim rather than dead-ending.
391
+ /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs" }, t("actionTypes.kycVerify.flow.unknownStatus", { defaultValue: "Unrecognised verification status" }), ": ", serverStatus), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
392
+ Button,
393
+ {
394
+ variant: "outline",
395
+ size: "xs",
396
+ leftSection: busy === "refresh" ? /* @__PURE__ */ React.createElement(Loader, { size: 14 }) : /* @__PURE__ */ React.createElement(IconRefresh, { size: 14 }),
397
+ onClick: () => void refreshStatus(),
398
+ disabled: !!busy
399
+ },
400
+ t("actionTypes.kycVerify.flow.checkStatus", { defaultValue: "Check status" })
401
+ ))))
402
+ )), fallbackUrl && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconExternalLink, { size: 16 }), color: "yellow", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs" }, t("actionTypes.kycVerify.flow.popupBlocked", {
403
+ defaultValue: "Your browser blocked the verification tab. Open it with the link below, or allow pop-ups and press Continue verification again."
404
+ })), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(
405
+ Button,
406
+ {
407
+ component: "a",
408
+ href: fallbackUrl,
409
+ target: "_blank",
410
+ rel: "noopener noreferrer",
411
+ size: "xs",
412
+ leftSection: /* @__PURE__ */ React.createElement(IconExternalLink, { size: 14 }),
413
+ onClick: () => setFallbackUrl(null)
414
+ },
415
+ t("actionTypes.kycVerify.flow.openVerification", { defaultValue: "Open verification page" })
416
+ )))), actionError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, actionError), isFailed && runtimeError && /* @__PURE__ */ React.createElement(DismissibleAlert, { icon: /* @__PURE__ */ React.createElement(IconAlertCircle, { size: 16 }), color: "red", styles: actionAlertStyles }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "xs" }, runtimeError), /* @__PURE__ */ React.createElement(Group, null, /* @__PURE__ */ React.createElement(Button, { variant: "outline", size: "xs", onClick: handleReset }, t("actionTypes.kycVerify.flow.dismiss", { defaultValue: "Dismiss" }))))));
417
+ };
418
+ export {
419
+ KycVerifyFlowDetail
420
+ };
421
+ //# sourceMappingURL=KycVerifyFlowDetail-FEU43HML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/kycVerify/KycVerifyFlowDetail.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Button, Group, Loader, Radio, Stack, Stepper, Text } from '@mantine/core';\nimport { DismissibleAlert as Alert } from '@/mantine/components/Base/DismissibleAlert';\nimport { IconAlertCircle, IconCheck, IconExternalLink, IconId, IconRefresh } from '@tabler/icons-react';\nimport { SurveyModel } from '@ixo/surveys';\nimport { StableSurvey } from '@/mantine/components/StableSurvey';\nimport { buildSurveyTheme } from '@/mantine/blocks/claim/flow/theme';\nimport { useBlocknoteHandlers, useTranslate } from '@/mantine/context/BlocknoteContext';\nimport type { ActionTypeFlowProps } from '../../actionTypeUI';\nimport { useResolvedInputs } from '../../hooks/useResolvedInputs';\nimport { actionAlertStyles } from '../../alertStyles';\nimport { isTerminalKycStatus, kycStepperIndex } from './types';\n\n/** Server poll cadence while the status is non-terminal. */\nconst POLL_INTERVAL_MS = 15_000;\n\n/** Non-PII metadata of a credential already in the user's Vault. */\ninterface ExistingCredential {\n cid: string;\n credentialType: string;\n storedAt?: string;\n issuerDid?: string;\n}\n\n/** Result of the host's kycLoadForm handler. */\ninterface KycFormState {\n protocolId: string;\n claimCollectionId?: string;\n deedOfferId?: string;\n surveyJson: Record<string, unknown>;\n hasExistingCredential: boolean;\n existingCredentials?: ExistingCredential[];\n status: string;\n}\n\nfunction formatCredentialLabel(credential: ExistingCredential): string {\n const saved = credential.storedAt ? new Date(credential.storedAt) : null;\n const savedLabel = saved && !Number.isNaN(saved.getTime()) ? saved.toLocaleDateString() : '';\n const shortCid = credential.cid.length > 24 ? `${credential.cid.slice(0, 18)}…${credential.cid.slice(-6)}` : credential.cid;\n return [savedLabel, shortCid].filter(Boolean).join(' · ');\n}\n\n/**\n * Open a tab synchronously within the user's click so popup blockers allow\n * it, then navigate it once the async URL resolves. Returns null when the\n * browser refused the open (caller should fall back to a direct open).\n */\nfunction openDeferredTab(): Window | null {\n const win = window.open('', '_blank');\n if (win) {\n try {\n win.opener = null;\n } catch {\n // Some browsers make opener read-only on about:blank — safe to ignore.\n }\n }\n return win;\n}\n\n/**\n * KYC verification wizard. The KYC server's status is the single source of\n * truth: every phase below is derived from the latest server response\n * (loadForm / initiate / 15s polling), and the only durable state this\n * component reads is `runtime` (the completion proof written by the shared\n * executor). Nothing here mirrors runtime into React state.\n *\n * The formal action execution (`executeAction` → run() → getStatus +\n * saveCredential) happens ONCE, at the final save step. Everything before it\n * is handler-direct, the same pattern the payment FlowDetail uses.\n */\nexport const KycVerifyFlowDetail: React.FC<ActionTypeFlowProps> = ({ inputs, editor, block, runtime, updateRuntime, isDisabled, executeAction }) => {\n const t = useTranslate();\n const handlers = useBlocknoteHandlers();\n const handlersRef = useRef(handlers);\n useEffect(() => {\n handlersRef.current = handlers;\n }, [handlers]);\n\n const kycAvailable = !!(handlers?.kycLoadForm && handlers?.kycInitiate && handlers?.kycGetVerificationUrl && handlers?.kycGetStatus && handlers?.kycSaveCredential);\n\n // ── Inputs ──────────────────────────────────────────────────────────────\n const { parsed, resolvedInputs, inputsReady } = useResolvedInputs(editor, inputs, { fields: ['protocolDid', 'credentialType'], required: ['protocolDid'] }, block?.id);\n const protocolDid = resolvedInputs.protocolDid || '';\n // Vault index key of the expected credential; empty = host default (level 1).\n const credentialType = resolvedInputs.credentialType || '';\n const configured = !!(parsed.protocolDid && String(parsed.protocolDid).trim());\n\n // ── Runtime-derived lifecycle (never mirrored into React state) ─────────\n const credentialCid: string = runtime.output?.credentialCid || '';\n const hasProof = !!credentialCid;\n const isRunning = runtime.state === 'running';\n const isCompleted = runtime.state === 'completed' && hasProof;\n const isStale = runtime.state === 'completed' && !hasProof;\n const isFailed = runtime.state === 'failed';\n const runtimeError = runtime.error?.message || null;\n\n // ── Server-state cache (external source of truth, re-fetched — this is\n // NOT runtime state; it is the last server response) ─────────────────\n const [form, setForm] = useState<KycFormState | null>(null);\n const [serverStatus, setServerStatus] = useState<string | null>(null);\n const [loadingForm, setLoadingForm] = useState(false);\n const [loadError, setLoadError] = useState<string | null>(null);\n const [loadRetryKey, setLoadRetryKey] = useState(0);\n\n // Ephemeral UI concerns only.\n const [busy, setBusy] = useState<null | 'initiate' | 'continue' | 'save' | 'refresh'>(null);\n const [actionError, setActionError] = useState<string | null>(null);\n // Set when every automatic tab-open path was blocked — renders a manual link.\n const [fallbackUrl, setFallbackUrl] = useState<string | null>(null);\n // Which existing Vault credential the user picked (ephemeral UI selection;\n // defaults to the most recently saved one when the form loads).\n const [selectedCredentialCid, setSelectedCredentialCid] = useState<string | null>(null);\n // Last entered survey answers, so a re-created SurveyModel (busy/disabled\n // toggles, initiate failure) does not lose what the user typed.\n const surveyDataRef = useRef<Record<string, unknown> | null>(null);\n\n // ── Load the form + current server state on mount / protocol change ─────\n useEffect(() => {\n if (!kycAvailable || !inputsReady || !protocolDid) return;\n let cancelled = false;\n setLoadingForm(true);\n setLoadError(null);\n console.log('[kyc.verify] loading form', { protocolDid, credentialType });\n handlersRef.current.kycLoadForm!({ protocolDid, ...(credentialType ? { credentialType } : {}) })\n .then((result) => {\n if (cancelled) return;\n console.log('[kyc.verify] form loaded', {\n protocolId: result.protocolId,\n status: result.status,\n hasExistingCredential: result.hasExistingCredential,\n existingCredentials: result.existingCredentials?.length ?? 0,\n });\n setForm(result);\n setServerStatus(result.status || 'unknown');\n // Preselect the most recently saved credential (entries are stored\n // oldest-first); the user can switch when they hold more than one.\n const existing = result.existingCredentials || [];\n setSelectedCredentialCid(existing.length ? existing[existing.length - 1].cid : null);\n })\n .catch((err) => {\n if (cancelled) return;\n console.error('[kyc.verify] loadForm failed', err);\n setLoadError(err instanceof Error ? err.message : t('actionTypes.kycVerify.flow.errors.loadForm', { defaultValue: 'Failed to load the KYC form' }));\n })\n .finally(() => {\n if (!cancelled) setLoadingForm(false);\n });\n return () => {\n cancelled = true;\n };\n }, [kycAvailable, inputsReady, protocolDid, credentialType, loadRetryKey]);\n\n // ── 15s status polling while mounted and the status is non-terminal ─────\n const protocolId = form?.protocolId || '';\n const pollingActive = kycAvailable && !!protocolId && !!serverStatus && !isTerminalKycStatus(serverStatus) && !isCompleted;\n useEffect(() => {\n if (!pollingActive) return;\n const tick = async () => {\n try {\n const result = await handlersRef.current.kycGetStatus!({ protocolId });\n console.log('[kyc.verify] poll status', { protocolId, status: result.status });\n setServerStatus(result.status);\n } catch (err) {\n // Transient poll failures are expected (network blips) — keep the\n // last known status and try again next tick.\n console.warn('[kyc.verify] status poll failed', err);\n }\n };\n const id = setInterval(() => void tick(), POLL_INTERVAL_MS);\n return () => clearInterval(id);\n }, [pollingActive, protocolId]);\n\n const refreshStatus = useCallback(async () => {\n if (!protocolId) return;\n setBusy('refresh');\n setActionError(null);\n try {\n const result = await handlersRef.current.kycGetStatus!({ protocolId });\n console.log('[kyc.verify] manual status refresh', { protocolId, status: result.status });\n setServerStatus(result.status);\n } catch (err) {\n setActionError(err instanceof Error ? err.message : t('actionTypes.kycVerify.flow.errors.status', { defaultValue: 'Failed to check the verification status' }));\n } finally {\n setBusy(null);\n }\n }, [protocolId]);\n\n // ── Hosted verification webview ─────────────────────────────────────────\n // `pendingTab` must be opened synchronously inside the click handler\n // (popup-blocker safety) and navigated once the URL resolves.\n const openVerification = useCallback(\n async (pendingTab: Window | null) => {\n setFallbackUrl(null);\n const { url } = await handlersRef.current.kycGetVerificationUrl!({ protocolId });\n console.log('[kyc.verify] opening verification webview');\n if (pendingTab && !pendingTab.closed) {\n pendingTab.location.href = url;\n return;\n }\n // Pre-open was blocked or closed — best-effort direct open.\n const direct = window.open(url, '_blank', 'noopener,noreferrer');\n if (!direct) {\n // Both opens blocked — surface the URL as a manual link instead of\n // failing silently. The link stays valid until the token expires;\n // Continue verification always mints a fresh one.\n console.warn('[kyc.verify] popup blocked — showing manual link');\n setFallbackUrl(url);\n }\n },\n [protocolId]\n );\n\n const handleContinueVerification = useCallback(() => {\n if (busy || isDisabled) return;\n const pendingTab = openDeferredTab();\n setBusy('continue');\n setActionError(null);\n void (async () => {\n try {\n await openVerification(pendingTab);\n } catch (err) {\n if (pendingTab && !pendingTab.closed) pendingTab.close();\n console.error('[kyc.verify] getVerificationUrl failed', err);\n setActionError(err instanceof Error ? err.message : t('actionTypes.kycVerify.flow.errors.verificationUrl', { defaultValue: 'Failed to open the verification page' }));\n } finally {\n setBusy(null);\n }\n })();\n }, [busy, isDisabled, openVerification]);\n\n // ── Details form (SurveyJS) ──────────────────────────────────────────────\n const showSurvey = !!form && !form.hasExistingCredential && (!serverStatus || serverStatus === 'unknown');\n\n const surveyModel = useMemo(() => {\n if (!showSurvey || !form?.surveyJson) return null;\n const model = new SurveyModel(form.surveyJson);\n model.applyTheme(buildSurveyTheme());\n model.showQuestionNumbers = 'off';\n model.completeText = t('actionTypes.kycVerify.flow.submitDetails', { defaultValue: 'Submit details' });\n model.showCompletedPage = false;\n if (surveyDataRef.current) {\n model.data = surveyDataRef.current;\n }\n if (isDisabled || busy === 'initiate') {\n model.mode = 'display';\n model.showCompleteButton = false;\n }\n return model;\n }, [showSurvey, form?.surveyJson, isDisabled, busy === 'initiate']);\n\n const handleSurveyComplete = useCallback(\n (sender: SurveyModel) => {\n if (busy || isDisabled || !form) return;\n // Open the tab synchronously — the Complete click is still on the stack.\n const pendingTab = openDeferredTab();\n setBusy('initiate');\n setActionError(null);\n void (async () => {\n try {\n console.log('[kyc.verify] initiating verification', { protocolId: form.protocolId });\n const initiated = await handlersRef.current.kycInitiate!({\n protocolId: form.protocolId,\n ...(form.claimCollectionId ? { claimCollectionId: form.claimCollectionId } : {}),\n ...(form.deedOfferId ? { deedOfferId: form.deedOfferId } : {}),\n data: (sender.data || {}) as Record<string, unknown>,\n });\n setServerStatus(initiated.status || 'verify');\n await openVerification(pendingTab);\n } catch (err) {\n if (pendingTab && !pendingTab.closed) pendingTab.close();\n console.error('[kyc.verify] initiate failed', err);\n setActionError(err instanceof Error ? err.message : t('actionTypes.kycVerify.flow.errors.initiate', { defaultValue: 'Failed to start the verification' }));\n } finally {\n setBusy(null);\n }\n })();\n },\n\n [busy, isDisabled, form, openVerification]\n );\n\n useEffect(() => {\n if (!surveyModel) return undefined;\n const captureData = (sender: SurveyModel) => {\n surveyDataRef.current = (sender.data || {}) as Record<string, unknown>;\n };\n surveyModel.onComplete.add(handleSurveyComplete);\n surveyModel.onValueChanged.add(captureData);\n return () => {\n surveyModel.onComplete.remove(handleSurveyComplete);\n surveyModel.onValueChanged.remove(captureData);\n };\n }, [surveyModel, handleSurveyComplete]);\n\n // ── Formal completion: the ONE executeAction call (final save) ──────────\n const handleSave = useCallback(async () => {\n if (busy || isDisabled || isRunning) return;\n if (!executeAction) {\n setActionError(t('actionTypes.kycVerify.flow.errors.executorUnavailable', { defaultValue: 'Shared action executor is unavailable' }));\n return;\n }\n setBusy('save');\n setActionError(null);\n const credentialCid = form?.existingCredentials?.length && selectedCredentialCid ? selectedCredentialCid : undefined;\n console.log('[kyc.verify] executing final save', { protocolDid, credentialType, credentialCid });\n try {\n const outcome = await executeAction({\n runtimeInputs: { protocolDid, ...(credentialType ? { credentialType } : {}), ...(credentialCid ? { credentialCid } : {}) },\n });\n console.log('[kyc.verify] executor outcome', { success: outcome.success, error: outcome.error });\n if (!outcome.success) {\n throw new Error(outcome.error || t('actionTypes.kycVerify.flow.errors.save', { defaultValue: 'Failed to save the credential' }));\n }\n // The server moved to `complete` as part of saveCredential.\n setServerStatus('complete');\n } catch (err) {\n const message = err instanceof Error ? err.message : t('actionTypes.kycVerify.flow.errors.save', { defaultValue: 'Failed to save the credential' });\n setActionError(message);\n // The kernel records failures durably; re-sync our server view so a\n // \"not complete — current status: X\" error shows the real phase.\n void refreshStatus();\n } finally {\n setBusy(null);\n }\n }, [busy, isDisabled, isRunning, executeAction, protocolDid, refreshStatus]);\n\n const handleReset = useCallback(() => {\n console.log('[kyc.verify] resetting runtime to idle');\n updateRuntime({ state: 'idle', error: undefined, output: {} });\n }, [updateRuntime]);\n\n // ── Render ───────────────────────────────────────────────────────────────\n\n const title = block?.props?.title || t('actionTypes.kycVerify.flow.title', { defaultValue: 'Identity Verification (KYC)' });\n const description = block?.props?.description || t('actionTypes.kycVerify.flow.description', { defaultValue: 'Verify your identity to continue this flow.' });\n\n const stepLabels = [\n t('actionTypes.kycVerify.flow.steps.details', { defaultValue: 'Details submitted' }),\n t('actionTypes.kycVerify.flow.steps.verification', { defaultValue: 'Verification' }),\n t('actionTypes.kycVerify.flow.steps.review', { defaultValue: 'Review' }),\n t('actionTypes.kycVerify.flow.steps.issuing', { defaultValue: 'Issuing credential' }),\n t('actionTypes.kycVerify.flow.steps.save', { defaultValue: 'Save' }),\n ];\n\n const renderStepper = (status: string) => (\n <Stepper active={kycStepperIndex(status)} orientation=\"vertical\" size=\"xs\">\n {stepLabels.map((label) => (\n <Stepper.Step key={label} label={label} />\n ))}\n </Stepper>\n );\n\n // Completed — proof recorded by the shared executor.\n if (isCompleted) {\n return (\n <Stack gap=\"md\">\n <Stack gap={2}>\n <Text fw={600}>{title}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {description}\n </Text>\n </Stack>\n <Alert icon={<IconCheck size={16} />} color=\"green\" title={t('actionTypes.kycVerify.flow.completedTitle', { defaultValue: 'Verification Complete' })}>\n <Text size=\"sm\">{t('actionTypes.kycVerify.flow.completedBody', { defaultValue: 'Your credential has been loaded.' })}</Text>\n </Alert>\n </Stack>\n );\n }\n\n return (\n <Stack gap=\"md\">\n <Stack gap={2}>\n <Text fw={600}>{title}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {description}\n </Text>\n </Stack>\n\n {/* Stale-completed — runtime claims completed but carries no proof. */}\n {isStale && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"yellow\" title={t('actionTypes.kycVerify.flow.staleTitle', { defaultValue: 'Inconsistent State' })}>\n <Stack gap=\"xs\">\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.staleBody', {\n defaultValue: 'This step was marked completed but no credential CID was recorded. This is stale state from a previous run — reset and complete the save again.',\n })}\n </Text>\n <Group>\n <Button variant=\"outline\" size=\"xs\" onClick={handleReset}>\n {t('actionTypes.kycVerify.flow.reset', { defaultValue: 'Reset' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n\n {/* Template not configured yet. */}\n {!configured && (\n <Alert color=\"yellow\" styles={actionAlertStyles}>\n {t('actionTypes.kycVerify.flow.notConfigured', { defaultValue: 'Configure the KYC Protocol DID in template mode before running this action.' })}\n </Alert>\n )}\n\n {/* Configured with a reference that has not resolved yet. */}\n {configured && !inputsReady && (\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"sm\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.waitingInputs', { defaultValue: 'Waiting for the KYC protocol DID from an upstream block…' })}\n </Text>\n </Group>\n )}\n\n {/* Host does not expose the KYC handler group. */}\n {configured && inputsReady && !kycAvailable && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n {t('actionTypes.kycVerify.flow.handlersUnavailable', {\n defaultValue: 'KYC verification is not available: the host app does not provide the KYC handlers (kycLoadForm … kycSaveCredential).',\n })}\n </Alert>\n )}\n\n {/* Loading the form / server state. */}\n {kycAvailable && inputsReady && loadingForm && (\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"sm\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.loadingForm', { defaultValue: 'Loading your verification status…' })}\n </Text>\n </Group>\n )}\n\n {kycAvailable && inputsReady && !loadingForm && loadError && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n <Stack gap=\"xs\">\n <Text size=\"xs\">{loadError}</Text>\n <Group>\n <Button variant=\"outline\" size=\"xs\" leftSection={<IconRefresh size={14} />} onClick={() => setLoadRetryKey((k) => k + 1)}>\n {t('actionTypes.kycVerify.flow.retry', { defaultValue: 'Retry' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n\n {/* ── Server-status-driven wizard ── */}\n {kycAvailable && inputsReady && !loadingForm && !loadError && form && !isStale && (\n <>\n {form.hasExistingCredential ? (\n // Already verified — the user picks which Vault credential to use\n // (auto-picked when there is only one), then the formal completion\n // records its proof (saveCredential is idempotent).\n <Alert icon={<IconCheck size={16} />} color=\"blue\" title={t('actionTypes.kycVerify.flow.alreadyVerifiedTitle', { defaultValue: 'Already Verified' })}>\n <Stack gap=\"xs\">\n {(form.existingCredentials?.length ?? 0) > 1 ? (\n <>\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.selectCredentialBody', {\n defaultValue: 'You hold more than one credential for this verification. Select the one to use for this step.',\n })}\n </Text>\n <Radio.Group value={selectedCredentialCid || ''} onChange={(value) => setSelectedCredentialCid(value)}>\n <Stack gap={6}>\n {[...(form.existingCredentials || [])].reverse().map((credential) => (\n <Radio\n key={credential.cid}\n value={credential.cid}\n label={\n <Text size=\"xs\" component=\"span\" style={{ wordBreak: 'break-all' }}>\n {formatCredentialLabel(credential)}\n </Text>\n }\n />\n ))}\n </Stack>\n </Radio.Group>\n </>\n ) : (\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.alreadyVerifiedBody', {\n defaultValue: 'You already hold a credential for this verification. Use it to complete this step.',\n })}\n </Text>\n )}\n <Group>\n <Button\n size=\"xs\"\n leftSection={busy === 'save' || isRunning ? <Loader size={14} /> : <IconCheck size={14} />}\n onClick={handleSave}\n disabled={!!busy || isRunning || isDisabled || !selectedCredentialCid}\n >\n {t('actionTypes.kycVerify.flow.useCredential', { defaultValue: 'Use this credential' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n ) : !serverStatus || serverStatus === 'unknown' ? (\n // Phase 1 — details form. The ixo-kyc-survey class normalises any\n // inline colours in template-authored HTML to the site theme.\n <>\n {surveyModel && (\n <div className=\"ixo-kyc-survey\">\n <StableSurvey model={surveyModel} />\n </div>\n )}\n {busy === 'initiate' && (\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"sm\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.initiating', { defaultValue: 'Submitting your details and opening the verification page…' })}\n </Text>\n </Group>\n )}\n </>\n ) : serverStatus === 'verify' ? (\n // Phase 2 — hosted verification pending.\n <Stack gap=\"xs\">\n {renderStepper(serverStatus)}\n <Text size=\"sm\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.verifyHint', {\n defaultValue: 'Complete your identity verification in the secure browser tab. This step updates automatically once you finish.',\n })}\n </Text>\n <Group>\n <Button\n size=\"xs\"\n leftSection={busy === 'continue' ? <Loader size={14} /> : <IconExternalLink size={14} />}\n onClick={handleContinueVerification}\n disabled={!!busy || isDisabled}\n >\n {t('actionTypes.kycVerify.flow.continueVerification', { defaultValue: 'Continue verification' })}\n </Button>\n </Group>\n </Stack>\n ) : serverStatus === 'review' || serverStatus === 'clear' || serverStatus === 'issuing' ? (\n // Phase 3 — server-side progression; 15s polling is active.\n <Stack gap=\"xs\">\n {renderStepper(serverStatus)}\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"xs\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.polling', { defaultValue: 'Checking the verification status every 15 seconds…' })}\n </Text>\n </Group>\n </Stack>\n ) : serverStatus === 'issued' ? (\n // Phase 4 — credential issued; formal save step.\n <Stack gap=\"xs\">\n {renderStepper(serverStatus)}\n <Text size=\"sm\">{t('actionTypes.kycVerify.flow.issuedHint', { defaultValue: 'Your credential has been issued. Save it to your Vault to complete this step.' })}</Text>\n <Group>\n <Button leftSection={busy === 'save' || isRunning ? <Loader size={14} /> : <IconId size={14} />} onClick={handleSave} disabled={!!busy || isRunning || isDisabled}>\n {t('actionTypes.kycVerify.flow.saveCredential', { defaultValue: 'Save credential to your Vault' })}\n </Button>\n </Group>\n </Stack>\n ) : serverStatus === 'complete' ? (\n // Server says complete but the block has no proof yet (e.g. saved\n // from another device or a re-instantiated flow) — record it here.\n <Alert icon={<IconCheck size={16} />} color=\"blue\" title={t('actionTypes.kycVerify.flow.serverCompleteTitle', { defaultValue: 'Verification Already Complete' })}>\n <Stack gap=\"xs\">\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.serverCompleteBody', {\n defaultValue: 'The KYC server reports this verification as complete. Record it on this step to continue the flow.',\n })}\n </Text>\n <Group>\n <Button\n size=\"xs\"\n leftSection={busy === 'save' || isRunning ? <Loader size={14} /> : <IconCheck size={14} />}\n onClick={handleSave}\n disabled={!!busy || isRunning || isDisabled}\n >\n {t('actionTypes.kycVerify.flow.recordCompletion', { defaultValue: 'Record completion' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n ) : serverStatus === 'rejected' ? (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" title={t('actionTypes.kycVerify.flow.rejectedTitle', { defaultValue: 'Verification Rejected' })}>\n <Stack gap=\"xs\">\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.rejectedBody', {\n defaultValue:\n 'Your identity verification was rejected by the provider. This is usually final for the submitted documents — contact the flow owner or support to resolve it.',\n })}\n </Text>\n <Group>\n <Button\n variant=\"outline\"\n size=\"xs\"\n leftSection={busy === 'refresh' ? <Loader size={14} /> : <IconRefresh size={14} />}\n onClick={() => void refreshStatus()}\n disabled={!!busy}\n >\n {t('actionTypes.kycVerify.flow.checkStatus', { defaultValue: 'Check status' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n ) : serverStatus === 'attention' ? (\n <Stack gap=\"xs\">\n {renderStepper(serverStatus)}\n <Alert icon={<IconAlertCircle size={16} />} color=\"yellow\" title={t('actionTypes.kycVerify.flow.attentionTitle', { defaultValue: 'Manual Review' })}>\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.attentionBody', {\n defaultValue: 'Your verification needs manual review by the provider. No action is required — this step updates automatically when the review finishes.',\n })}\n </Text>\n </Alert>\n <Group gap=\"xs\">\n <Loader size={14} />\n <Text size=\"xs\" c=\"dimmed\">\n {t('actionTypes.kycVerify.flow.polling', { defaultValue: 'Checking the verification status every 15 seconds…' })}\n </Text>\n </Group>\n </Stack>\n ) : serverStatus === 'error' ? (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" title={t('actionTypes.kycVerify.flow.errorTitle', { defaultValue: 'Verification Error' })}>\n <Stack gap=\"xs\">\n <Text size=\"sm\">\n {t('actionTypes.kycVerify.flow.errorBody', {\n defaultValue: 'The verification hit a server-side error. It can usually be recovered — continue the verification to retry.',\n })}\n </Text>\n <Group>\n <Button\n size=\"xs\"\n leftSection={busy === 'continue' ? <Loader size={14} /> : <IconExternalLink size={14} />}\n onClick={handleContinueVerification}\n disabled={!!busy || isDisabled}\n >\n {t('actionTypes.kycVerify.flow.continueVerification', { defaultValue: 'Continue verification' })}\n </Button>\n <Button\n variant=\"outline\"\n size=\"xs\"\n leftSection={busy === 'refresh' ? <Loader size={14} /> : <IconRefresh size={14} />}\n onClick={() => void refreshStatus()}\n disabled={!!busy}\n >\n {t('actionTypes.kycVerify.flow.checkStatus', { defaultValue: 'Check status' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n ) : (\n // Unrecognised status — surface it verbatim rather than dead-ending.\n <Alert icon={<IconAlertCircle size={16} />} color=\"yellow\" styles={actionAlertStyles}>\n <Stack gap=\"xs\">\n <Text size=\"xs\">\n {t('actionTypes.kycVerify.flow.unknownStatus', { defaultValue: 'Unrecognised verification status' })}: {serverStatus}\n </Text>\n <Group>\n <Button\n variant=\"outline\"\n size=\"xs\"\n leftSection={busy === 'refresh' ? <Loader size={14} /> : <IconRefresh size={14} />}\n onClick={() => void refreshStatus()}\n disabled={!!busy}\n >\n {t('actionTypes.kycVerify.flow.checkStatus', { defaultValue: 'Check status' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n </>\n )}\n\n {/* Popup blocked on every automatic path — manual link. */}\n {fallbackUrl && (\n <Alert icon={<IconExternalLink size={16} />} color=\"yellow\" styles={actionAlertStyles}>\n <Stack gap=\"xs\">\n <Text size=\"xs\">\n {t('actionTypes.kycVerify.flow.popupBlocked', {\n defaultValue: 'Your browser blocked the verification tab. Open it with the link below, or allow pop-ups and press Continue verification again.',\n })}\n </Text>\n <Group>\n <Button\n component=\"a\"\n href={fallbackUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n size=\"xs\"\n leftSection={<IconExternalLink size={14} />}\n onClick={() => setFallbackUrl(null)}\n >\n {t('actionTypes.kycVerify.flow.openVerification', { defaultValue: 'Open verification page' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n\n {/* Local (pre-execution) errors. */}\n {actionError && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n {actionError}\n </Alert>\n )}\n\n {/* Durable execution failure written by the kernel. */}\n {isFailed && runtimeError && (\n <Alert icon={<IconAlertCircle size={16} />} color=\"red\" styles={actionAlertStyles}>\n <Stack gap=\"xs\">\n <Text size=\"xs\">{runtimeError}</Text>\n <Group>\n <Button variant=\"outline\" size=\"xs\" onClick={handleReset}>\n {t('actionTypes.kycVerify.flow.dismiss', { defaultValue: 'Dismiss' })}\n </Button>\n </Group>\n </Stack>\n </Alert>\n )}\n </Stack>\n );\n};\n"],"mappings":"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","names":["credentialCid"]}
@@ -0,0 +1,37 @@
1
+ import {
2
+ BaseTextInput
3
+ } from "./chunk-WO7V6ZNC.js";
4
+ import {
5
+ parseJsonSafe
6
+ } from "./chunk-KLLMJ4U3.js";
7
+
8
+ // src/mantine/blocks/action/actionTypes/pod/listDomainFlows/ListDomainFlowsConfig.tsx
9
+ import React, { useCallback, useEffect, useState } from "react";
10
+ import { Stack, Switch, Text } from "@mantine/core";
11
+ var DEFAULT = { entity: "", domainFlowsSubspaceId: "", includeEmpty: false };
12
+ var ListDomainFlowsConfig = ({ inputs, onInputsChange }) => {
13
+ const [local, setLocal] = useState(() => ({ ...DEFAULT, ...parseJsonSafe(inputs, DEFAULT) }));
14
+ useEffect(() => {
15
+ setLocal({ ...DEFAULT, ...parseJsonSafe(inputs, DEFAULT) });
16
+ }, [inputs]);
17
+ const update = useCallback(
18
+ (patch) => {
19
+ const updated = { ...local, ...patch };
20
+ setLocal(updated);
21
+ onInputsChange(JSON.stringify(updated));
22
+ },
23
+ [local, onInputsChange]
24
+ );
25
+ return /* @__PURE__ */ React.createElement(Stack, { gap: "md" }, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Protocol Entity DID"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "DID of the blueprint / protocol entity whose flow templates are displayed. Use a reference like ", /* @__PURE__ */ React.createElement("code", null, "{{blockId.selectedBlueprintDid}}"), " to bind to the preceding selection step."), /* @__PURE__ */ React.createElement(BaseTextInput, { placeholder: "did:ixo:... or {{blockId.selectedBlueprintDid}}", value: local.entity || "", onChange: (e) => update({ entity: e.currentTarget.value }) })), /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React.createElement(Text, { size: "sm", fw: 600 }, "Existing Domain Flows Space"), /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, "Optional Matrix space ID used to mark templates that have already been imported."), /* @__PURE__ */ React.createElement(
26
+ BaseTextInput,
27
+ {
28
+ placeholder: "!flows-space:matrix.org or {{domainBlock.output.flowsSubspaceId}}",
29
+ value: local.domainFlowsSubspaceId || "",
30
+ onChange: (e) => update({ domainFlowsSubspaceId: e.currentTarget.value })
31
+ }
32
+ )), /* @__PURE__ */ React.createElement(Switch, { label: "Show protocol deeds without templates", checked: !!local.includeEmpty, onChange: (e) => update({ includeEmpty: e.currentTarget.checked }) }));
33
+ };
34
+ export {
35
+ ListDomainFlowsConfig
36
+ };
37
+ //# sourceMappingURL=ListDomainFlowsConfig-3JZEPTOJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/pod/listDomainFlows/ListDomainFlowsConfig.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Stack, Switch, Text } from '@mantine/core';\nimport BaseTextInput from '@/mantine/components/Base/BaseTextInput';\nimport type { ActionTypeConfigProps } from '../../../actionTypeUI';\nimport { parseJsonSafe } from '../types';\n\ninterface ListDomainFlowsInputs {\n entity: string;\n domainFlowsSubspaceId: string;\n includeEmpty: boolean;\n}\n\nconst DEFAULT: ListDomainFlowsInputs = { entity: '', domainFlowsSubspaceId: '', includeEmpty: false };\n\n/**\n * @description Template-mode config for ListDomainFlows.\n * Sets the protocol entity DID whose flow templates are listed.\n */\nexport const ListDomainFlowsConfig: React.FC<ActionTypeConfigProps> = ({ inputs, onInputsChange }) => {\n const [local, setLocal] = useState<ListDomainFlowsInputs>(() => ({ ...DEFAULT, ...parseJsonSafe(inputs, DEFAULT) }));\n\n useEffect(() => {\n setLocal({ ...DEFAULT, ...parseJsonSafe(inputs, DEFAULT) });\n }, [inputs]);\n\n const update = useCallback(\n (patch: Partial<ListDomainFlowsInputs>) => {\n const updated = { ...local, ...patch };\n setLocal(updated);\n onInputsChange(JSON.stringify(updated));\n },\n [local, onInputsChange]\n );\n\n return (\n <Stack gap=\"md\">\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Protocol Entity DID\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n DID of the blueprint / protocol entity whose flow templates are displayed. Use a reference like <code>{'{{blockId.selectedBlueprintDid}}'}</code> to bind to the preceding\n selection step.\n </Text>\n <BaseTextInput placeholder=\"did:ixo:... or {{blockId.selectedBlueprintDid}}\" value={local.entity || ''} onChange={(e) => update({ entity: e.currentTarget.value })} />\n </Stack>\n\n <Stack gap=\"xs\">\n <Text size=\"sm\" fw={600}>\n Existing Domain Flows Space\n </Text>\n <Text size=\"xs\" c=\"dimmed\">\n Optional Matrix space ID used to mark templates that have already been imported.\n </Text>\n <BaseTextInput\n placeholder=\"!flows-space:matrix.org or {{domainBlock.output.flowsSubspaceId}}\"\n value={local.domainFlowsSubspaceId || ''}\n onChange={(e) => update({ domainFlowsSubspaceId: e.currentTarget.value })}\n />\n </Stack>\n\n <Switch label=\"Show protocol deeds without templates\" checked={!!local.includeEmpty} onChange={(e) => update({ includeEmpty: e.currentTarget.checked })} />\n </Stack>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS,aAAa,WAAW,gBAAgB;AACxD,SAAS,OAAO,QAAQ,YAAY;AAWpC,IAAM,UAAiC,EAAE,QAAQ,IAAI,uBAAuB,IAAI,cAAc,MAAM;AAM7F,IAAM,wBAAyD,CAAC,EAAE,QAAQ,eAAe,MAAM;AACpG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgC,OAAO,EAAE,GAAG,SAAS,GAAG,cAAc,QAAQ,OAAO,EAAE,EAAE;AAEnH,YAAU,MAAM;AACd,aAAS,EAAE,GAAG,SAAS,GAAG,cAAc,QAAQ,OAAO,EAAE,CAAC;AAAA,EAC5D,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,SAAS;AAAA,IACb,CAAC,UAA0C;AACzC,YAAM,UAAU,EAAE,GAAG,OAAO,GAAG,MAAM;AACrC,eAAS,OAAO;AAChB,qBAAe,KAAK,UAAU,OAAO,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,OAAO,cAAc;AAAA,EACxB;AAEA,SACE,oCAAC,SAAM,KAAI,QACT,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,qBAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,oGACuE,oCAAC,cAAM,kCAAmC,GAAO,2CAEnJ,GACA,oCAAC,iBAAc,aAAY,mDAAkD,OAAO,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,OAAO,EAAE,QAAQ,EAAE,cAAc,MAAM,CAAC,GAAG,CACtK,GAEA,oCAAC,SAAM,KAAI,QACT,oCAAC,QAAK,MAAK,MAAK,IAAI,OAAK,6BAEzB,GACA,oCAAC,QAAK,MAAK,MAAK,GAAE,YAAS,kFAE3B,GACA;AAAA,IAAC;AAAA;AAAA,MACC,aAAY;AAAA,MACZ,OAAO,MAAM,yBAAyB;AAAA,MACtC,UAAU,CAAC,MAAM,OAAO,EAAE,uBAAuB,EAAE,cAAc,MAAM,CAAC;AAAA;AAAA,EAC1E,CACF,GAEA,oCAAC,UAAO,OAAM,yCAAwC,SAAS,CAAC,CAAC,MAAM,cAAc,UAAU,CAAC,MAAM,OAAO,EAAE,cAAc,EAAE,cAAc,QAAQ,CAAC,GAAG,CAC3J;AAEJ;","names":[]}