@ixo/editor 6.33.0 → 6.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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-TJCJBJZZ.js +365 -0
  4. package/dist/BidFlowDetail-TJCJBJZZ.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-UVEQMEI5.js +641 -0
  20. package/dist/ClaimFlowDetail-UVEQMEI5.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-WFCSVIIG.js +647 -0
  24. package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.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-ZLCJBWHG.js +1276 -0
  28. package/dist/CollectionUsersFlowDetail-ZLCJBWHG.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-2S2N4YTW.js +564 -0
  74. package/dist/EvaluateBidFlowDetail-2S2N4YTW.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-QYR7PJRD.js +2237 -0
  78. package/dist/EvaluateClaimFlowDetail-QYR7PJRD.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-WGKO43IH.js +83 -0
  166. package/dist/IdentityCreateFlowDetail-WGKO43IH.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-6M32S6XS.js +57 -0
  170. package/dist/IidCreateFlowDetail-6M32S6XS.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-EWOMXSD3.js +421 -0
  174. package/dist/KycVerifyFlowDetail-EWOMXSD3.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-73BHAN76.js +255 -0
  198. package/dist/OracleConfigureOracleFlowDetail-73BHAN76.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-BFV2EHLT.js +220 -0
  228. package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.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-DNNOPHVA.js +197 -0
  232. package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.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-4VZZPAWH.js +235 -0
  236. package/dist/ProposalCreateFlowDetail-4VZZPAWH.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-2WPEATI7.js +315 -0
  285. package/dist/chunk-2WPEATI7.js.map +1 -0
  286. package/dist/chunk-3O42FYT3.js +3333 -0
  287. package/dist/chunk-3O42FYT3.js.map +1 -0
  288. package/dist/chunk-3TUYY4HK.js +20 -0
  289. package/dist/chunk-3TUYY4HK.js.map +1 -0
  290. package/dist/chunk-3XSLBJYI.js +554 -0
  291. package/dist/chunk-3XSLBJYI.js.map +1 -0
  292. package/dist/chunk-4DGCCXD6.js +710 -0
  293. package/dist/chunk-4DGCCXD6.js.map +1 -0
  294. package/dist/chunk-4NAFQF6V.js +11 -0
  295. package/dist/chunk-4NAFQF6V.js.map +1 -0
  296. package/dist/chunk-4PONO4US.js +799 -0
  297. package/dist/chunk-4PONO4US.js.map +1 -0
  298. package/dist/chunk-4TMOIK5M.js +21 -0
  299. package/dist/chunk-4TMOIK5M.js.map +1 -0
  300. package/dist/chunk-5IH3VC5I.js +102 -0
  301. package/dist/chunk-5IH3VC5I.js.map +1 -0
  302. package/dist/chunk-5NTKDOP6.js +89 -0
  303. package/dist/chunk-5NTKDOP6.js.map +1 -0
  304. package/dist/chunk-5O2SFRGU.js +18 -0
  305. package/dist/chunk-5O2SFRGU.js.map +1 -0
  306. package/dist/chunk-632JLECF.js +55 -0
  307. package/dist/chunk-632JLECF.js.map +1 -0
  308. package/dist/chunk-676HDB7K.js +95 -0
  309. package/dist/chunk-676HDB7K.js.map +1 -0
  310. package/dist/chunk-6ESTNTSH.js +223 -0
  311. package/dist/chunk-6ESTNTSH.js.map +1 -0
  312. package/dist/chunk-6GKJR52N.js +15 -0
  313. package/dist/chunk-6GKJR52N.js.map +1 -0
  314. package/dist/chunk-6L4ZIKYU.js +23 -0
  315. package/dist/chunk-6L4ZIKYU.js.map +1 -0
  316. package/dist/chunk-76YX5R4L.js +11 -0
  317. package/dist/chunk-76YX5R4L.js.map +1 -0
  318. package/dist/chunk-7J3GFMN3.js +32 -0
  319. package/dist/chunk-7J3GFMN3.js.map +1 -0
  320. package/dist/chunk-7LSARC2G.js +102 -0
  321. package/dist/chunk-7LSARC2G.js.map +1 -0
  322. package/dist/chunk-7W7UUUIE.js +609 -0
  323. package/dist/chunk-7W7UUUIE.js.map +1 -0
  324. package/dist/chunk-7ZLW7H37.js +21 -0
  325. package/dist/chunk-7ZLW7H37.js.map +1 -0
  326. package/dist/chunk-AAZHI22G.js +18 -0
  327. package/dist/chunk-AAZHI22G.js.map +1 -0
  328. package/dist/chunk-ACNE455I.js +76 -0
  329. package/dist/chunk-ACNE455I.js.map +1 -0
  330. package/dist/chunk-BKLSSLPZ.js +27 -0
  331. package/dist/chunk-BKLSSLPZ.js.map +1 -0
  332. package/dist/chunk-BZ7UPUTY.js +417 -0
  333. package/dist/chunk-BZ7UPUTY.js.map +1 -0
  334. package/dist/chunk-CGFAICUE.js +28 -0
  335. package/dist/chunk-CGFAICUE.js.map +1 -0
  336. package/dist/chunk-CMCEWQ3C.js +19 -0
  337. package/dist/chunk-CMCEWQ3C.js.map +1 -0
  338. package/dist/chunk-CP4UV436.js +41 -0
  339. package/dist/chunk-CP4UV436.js.map +1 -0
  340. package/dist/chunk-D2CQPNQG.js +27508 -0
  341. package/dist/chunk-D2CQPNQG.js.map +1 -0
  342. package/dist/chunk-DIQRZP7Z.js +51 -0
  343. package/dist/chunk-DIQRZP7Z.js.map +1 -0
  344. package/dist/chunk-EBFFDDAS.js +13 -0
  345. package/dist/chunk-EBFFDDAS.js.map +1 -0
  346. package/dist/chunk-EGVS23DR.js +85 -0
  347. package/dist/chunk-EGVS23DR.js.map +1 -0
  348. package/dist/chunk-EKBQ7K4N.js +15 -0
  349. package/dist/chunk-EKBQ7K4N.js.map +1 -0
  350. package/dist/chunk-EKQCZRAN.js +24 -0
  351. package/dist/chunk-EKQCZRAN.js.map +1 -0
  352. package/dist/chunk-EYKZIZ5J.js +48 -0
  353. package/dist/chunk-EYKZIZ5J.js.map +1 -0
  354. package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
  355. package/dist/chunk-F4PTFXZH.js.map +1 -0
  356. package/dist/chunk-FFYZXA75.js +58 -0
  357. package/dist/chunk-FFYZXA75.js.map +1 -0
  358. package/dist/chunk-GFGDHPZ2.js +22 -0
  359. package/dist/chunk-GFGDHPZ2.js.map +1 -0
  360. package/dist/chunk-GR3CDFID.js +18 -0
  361. package/dist/chunk-GR3CDFID.js.map +1 -0
  362. package/dist/chunk-GR4SIU32.js +104 -0
  363. package/dist/chunk-GR4SIU32.js.map +1 -0
  364. package/dist/chunk-H5E46IIS.js +18 -0
  365. package/dist/chunk-H5E46IIS.js.map +1 -0
  366. package/dist/chunk-HFHVAMZL.js +22 -0
  367. package/dist/chunk-HFHVAMZL.js.map +1 -0
  368. package/dist/chunk-HRRI4BLF.js +4456 -0
  369. package/dist/chunk-HRRI4BLF.js.map +1 -0
  370. package/dist/chunk-HT6L7A5M.js +12 -0
  371. package/dist/chunk-HT6L7A5M.js.map +1 -0
  372. package/dist/chunk-I2FPFISM.js +301 -0
  373. package/dist/chunk-I2FPFISM.js.map +1 -0
  374. package/dist/chunk-IADAQJDH.js +28 -0
  375. package/dist/chunk-IADAQJDH.js.map +1 -0
  376. package/dist/chunk-IBOBCMQQ.js +99 -0
  377. package/dist/chunk-IBOBCMQQ.js.map +1 -0
  378. package/dist/chunk-IFWKRCFF.js +56 -0
  379. package/dist/chunk-IFWKRCFF.js.map +1 -0
  380. package/dist/chunk-IH4T7V4C.js +40 -0
  381. package/dist/chunk-IH4T7V4C.js.map +1 -0
  382. package/dist/chunk-IIIZZ4E4.js +1679 -0
  383. package/dist/chunk-IIIZZ4E4.js.map +1 -0
  384. package/dist/chunk-ILSFU3WD.js +83 -0
  385. package/dist/chunk-ILSFU3WD.js.map +1 -0
  386. package/dist/chunk-IX3VBV3L.js +43 -0
  387. package/dist/chunk-IX3VBV3L.js.map +1 -0
  388. package/dist/chunk-JBBFSORW.js +846 -0
  389. package/dist/chunk-JBBFSORW.js.map +1 -0
  390. package/dist/chunk-JIDTNKKL.js +1183 -0
  391. package/dist/chunk-JIDTNKKL.js.map +1 -0
  392. package/dist/chunk-JSPE6NGZ.js +22 -0
  393. package/dist/chunk-JSPE6NGZ.js.map +1 -0
  394. package/dist/chunk-JVROGQ7Q.js +150 -0
  395. package/dist/chunk-JVROGQ7Q.js.map +1 -0
  396. package/dist/chunk-K4WUMWNJ.js +32 -0
  397. package/dist/chunk-K4WUMWNJ.js.map +1 -0
  398. package/dist/chunk-K74XQ4Q5.js +11 -0
  399. package/dist/chunk-K74XQ4Q5.js.map +1 -0
  400. package/dist/chunk-KLLMJ4U3.js +22 -0
  401. package/dist/chunk-KLLMJ4U3.js.map +1 -0
  402. package/dist/chunk-LTKVCJ2E.js +27 -0
  403. package/dist/chunk-LTKVCJ2E.js.map +1 -0
  404. package/dist/chunk-M36DJTFZ.js +34 -0
  405. package/dist/chunk-M36DJTFZ.js.map +1 -0
  406. package/dist/chunk-MHM52LCJ.js +154 -0
  407. package/dist/chunk-MHM52LCJ.js.map +1 -0
  408. package/dist/chunk-MQCDMHRZ.js +59 -0
  409. package/dist/chunk-MQCDMHRZ.js.map +1 -0
  410. package/dist/chunk-N3ORMGAI.js +348 -0
  411. package/dist/chunk-N3ORMGAI.js.map +1 -0
  412. package/dist/chunk-NCSGIRRQ.js +28 -0
  413. package/dist/chunk-NCSGIRRQ.js.map +1 -0
  414. package/dist/chunk-NIXT2SBH.js +1423 -0
  415. package/dist/chunk-NIXT2SBH.js.map +1 -0
  416. package/dist/chunk-NJAII6CO.js +148 -0
  417. package/dist/chunk-NJAII6CO.js.map +1 -0
  418. package/dist/chunk-NKE4TL43.js +92 -0
  419. package/dist/chunk-NKE4TL43.js.map +1 -0
  420. package/dist/chunk-NZ7AXA7B.js +1 -0
  421. package/dist/chunk-NZ7AXA7B.js.map +1 -0
  422. package/dist/chunk-OCAYEGI2.js +26 -0
  423. package/dist/chunk-OCAYEGI2.js.map +1 -0
  424. package/dist/chunk-OMLI45ER.js +90 -0
  425. package/dist/chunk-OMLI45ER.js.map +1 -0
  426. package/dist/chunk-P7OBLJAG.js +88 -0
  427. package/dist/chunk-P7OBLJAG.js.map +1 -0
  428. package/dist/chunk-PAY3CBWL.js +2321 -0
  429. package/dist/chunk-PAY3CBWL.js.map +1 -0
  430. package/dist/chunk-PFF6VY35.js +257 -0
  431. package/dist/chunk-PFF6VY35.js.map +1 -0
  432. package/dist/chunk-PYNDJDWZ.js +1758 -0
  433. package/dist/chunk-PYNDJDWZ.js.map +1 -0
  434. package/dist/chunk-QDQ6UMMN.js +53 -0
  435. package/dist/chunk-QDQ6UMMN.js.map +1 -0
  436. package/dist/chunk-QGT3G2XG.js +24 -0
  437. package/dist/chunk-QGT3G2XG.js.map +1 -0
  438. package/dist/chunk-QZYCJ2GZ.js +55 -0
  439. package/dist/chunk-QZYCJ2GZ.js.map +1 -0
  440. package/dist/chunk-REZ7RFSA.js +124 -0
  441. package/dist/chunk-REZ7RFSA.js.map +1 -0
  442. package/dist/chunk-RRYBAE6E.js +2449 -0
  443. package/dist/chunk-RRYBAE6E.js.map +1 -0
  444. package/dist/chunk-RWUZOB62.js +34 -0
  445. package/dist/chunk-RWUZOB62.js.map +1 -0
  446. package/dist/chunk-SB5UCPZH.js +116 -0
  447. package/dist/chunk-SB5UCPZH.js.map +1 -0
  448. package/dist/chunk-SEJJ7CRI.js +99 -0
  449. package/dist/chunk-SEJJ7CRI.js.map +1 -0
  450. package/dist/chunk-SHBFGRPV.js +45 -0
  451. package/dist/chunk-SHBFGRPV.js.map +1 -0
  452. package/dist/chunk-SOFJ4GC5.js +45 -0
  453. package/dist/chunk-SOFJ4GC5.js.map +1 -0
  454. package/dist/chunk-STH2HPZK.js +44 -0
  455. package/dist/chunk-STH2HPZK.js.map +1 -0
  456. package/dist/chunk-TK3JNKME.js +28 -0
  457. package/dist/chunk-TK3JNKME.js.map +1 -0
  458. package/dist/chunk-TMONHFE3.js +46 -0
  459. package/dist/chunk-TMONHFE3.js.map +1 -0
  460. package/dist/chunk-TR4KO3AG.js +44 -0
  461. package/dist/chunk-TR4KO3AG.js.map +1 -0
  462. package/dist/chunk-TS2LNBF2.js +68 -0
  463. package/dist/chunk-TS2LNBF2.js.map +1 -0
  464. package/dist/chunk-UZUMBFPP.js +26 -0
  465. package/dist/chunk-UZUMBFPP.js.map +1 -0
  466. package/dist/chunk-VRZ5LMOW.js +176 -0
  467. package/dist/chunk-VRZ5LMOW.js.map +1 -0
  468. package/dist/chunk-WLGGY6Z6.js +75 -0
  469. package/dist/chunk-WLGGY6Z6.js.map +1 -0
  470. package/dist/chunk-WO7V6ZNC.js +11 -0
  471. package/dist/chunk-WO7V6ZNC.js.map +1 -0
  472. package/dist/chunk-WXSENSRP.js +64 -0
  473. package/dist/chunk-WXSENSRP.js.map +1 -0
  474. package/dist/chunk-XEKBZ2SA.js +19 -0
  475. package/dist/chunk-XEKBZ2SA.js.map +1 -0
  476. package/dist/chunk-XPBKU3JX.js +61 -0
  477. package/dist/chunk-XPBKU3JX.js.map +1 -0
  478. package/dist/chunk-XRYXBXWH.js +24 -0
  479. package/dist/chunk-XRYXBXWH.js.map +1 -0
  480. package/dist/chunk-XVA7QRVH.js +22 -0
  481. package/dist/chunk-XVA7QRVH.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,223 @@
1
+ import {
2
+ MediaPreviewModal,
3
+ getBidStatusInfo
4
+ } from "./chunk-JBBFSORW.js";
5
+
6
+ // src/mantine/blocks/action/actionTypes/_shared/ReadableKeyValues.tsx
7
+ import React, { useState } from "react";
8
+ import { Group, Stack, Text, UnstyledButton } from "@mantine/core";
9
+ import { IconPaperclip } from "@tabler/icons-react";
10
+ function humanizeKey(key) {
11
+ const bare = key.includes(":") ? key.split(":").pop() || key : key;
12
+ const spaced = bare.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").trim();
13
+ return spaced.charAt(0).toUpperCase() + spaced.slice(1);
14
+ }
15
+ function nameFromContent(content) {
16
+ if (content.startsWith("data:")) return "file";
17
+ return content.split(/[?#]/)[0].split("/").pop() || "file";
18
+ }
19
+ function detectFile(value) {
20
+ if (typeof value === "string") {
21
+ const trimmed = value.trim();
22
+ if (trimmed.startsWith("{")) {
23
+ try {
24
+ return detectFile(JSON.parse(trimmed));
25
+ } catch {
26
+ return null;
27
+ }
28
+ }
29
+ if (trimmed.startsWith("data:")) return { name: "file", type: trimmed.slice(5).split(/[;,]/)[0] || "", content: trimmed };
30
+ if (/^https?:\/\//i.test(trimmed) && /\.(png|jpe?g|gif|webp|svg|bmp|mp4|webm|mov|mp3|wav|ogg|pdf)$/.test(trimmed.split(/[?#]/)[0].toLowerCase())) {
31
+ return { name: nameFromContent(trimmed), type: "", content: trimmed };
32
+ }
33
+ return null;
34
+ }
35
+ if (value && typeof value === "object" && !Array.isArray(value)) {
36
+ const obj = value;
37
+ if (typeof obj.content === "string" && (obj.content.startsWith("data:") || /^https?:\/\//i.test(obj.content))) {
38
+ const type = typeof obj.type === "string" ? obj.type : obj.content.startsWith("data:") ? obj.content.slice(5).split(/[;,]/)[0] || "" : "";
39
+ const name = typeof obj.name === "string" && obj.name ? obj.name : nameFromContent(obj.content);
40
+ return { name, type, content: obj.content };
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ function isImageFile(file) {
46
+ if (file.type.toLowerCase().startsWith("image/")) return true;
47
+ if (file.content.startsWith("data:image/")) return true;
48
+ const ext = file.name.toLowerCase().split(".").pop() || "";
49
+ return ["png", "jpg", "jpeg", "gif", "webp", "svg", "bmp"].includes(ext);
50
+ }
51
+ function formatValue(value) {
52
+ if (value === null || value === void 0 || value === "") return "\u2014";
53
+ if (Array.isArray(value)) return value.map((item) => formatValue(item)).join(", ");
54
+ if (typeof value === "object") {
55
+ try {
56
+ return JSON.stringify(value);
57
+ } catch {
58
+ return String(value);
59
+ }
60
+ }
61
+ if (typeof value === "boolean") return value ? "Yes" : "No";
62
+ return String(value);
63
+ }
64
+ function toNestedObject(value) {
65
+ if (typeof value === "string") {
66
+ const trimmed = value.trim();
67
+ if (!trimmed.startsWith("{")) return null;
68
+ try {
69
+ return toNestedObject(JSON.parse(trimmed));
70
+ } catch {
71
+ return null;
72
+ }
73
+ }
74
+ if (value && typeof value === "object" && !Array.isArray(value) && !detectFile(value)) {
75
+ return value;
76
+ }
77
+ return null;
78
+ }
79
+ var FilePreview = ({ file, onOpen }) => isImageFile(file) ? /* @__PURE__ */ React.createElement(UnstyledButton, { onClick: () => onOpen(file), "aria-label": `View ${file.name}`, style: { display: "block" } }, /* @__PURE__ */ React.createElement(
80
+ "img",
81
+ {
82
+ src: file.content,
83
+ alt: file.name,
84
+ style: {
85
+ display: "block",
86
+ height: 56,
87
+ maxWidth: 112,
88
+ objectFit: "cover",
89
+ borderRadius: 6,
90
+ border: "1px solid var(--mantine-color-neutralColor-5)",
91
+ cursor: "zoom-in"
92
+ }
93
+ }
94
+ )) : /* @__PURE__ */ React.createElement(UnstyledButton, { onClick: () => onOpen(file), "aria-label": `Preview ${file.name}`, style: { maxWidth: "100%" } }, /* @__PURE__ */ React.createElement(Group, { gap: 4, wrap: "nowrap" }, /* @__PURE__ */ React.createElement(IconPaperclip, { size: 12, style: { flexShrink: 0, color: "var(--mantine-color-dimmed)" } }), /* @__PURE__ */ React.createElement(Text, { size: "xs", td: "underline", truncate: true }, file.name)));
95
+ function renderValue(value, onOpen) {
96
+ const file = detectFile(value);
97
+ if (file) return /* @__PURE__ */ React.createElement(FilePreview, { file, onOpen });
98
+ if (Array.isArray(value) && value.some((item) => detectFile(item))) {
99
+ return /* @__PURE__ */ React.createElement(Group, { gap: 6, justify: "flex-end" }, value.map((item, index) => {
100
+ const itemFile = detectFile(item);
101
+ return itemFile ? /* @__PURE__ */ React.createElement(FilePreview, { key: index, file: itemFile, onOpen }) : /* @__PURE__ */ React.createElement(Text, { key: index, size: "xs", ta: "right", style: { wordBreak: "break-word" } }, formatValue(item));
102
+ }));
103
+ }
104
+ return /* @__PURE__ */ React.createElement(Text, { size: "xs", ta: "right", style: { wordBreak: "break-word", minWidth: 0 } }, formatValue(value));
105
+ }
106
+ var NestedRows = ({ data, onOpen }) => /* @__PURE__ */ React.createElement(Stack, { gap: 6, pl: "sm", style: { borderLeft: "1px solid var(--mantine-color-neutralColor-5)" } }, Object.entries(data).map(([key, value]) => /* @__PURE__ */ React.createElement(KeyValueRow, { key, label: humanizeKey(key), value, onOpen })));
107
+ var KeyValueRow = ({ label, value, onOpen }) => {
108
+ const nested = toNestedObject(value);
109
+ if (nested) {
110
+ return /* @__PURE__ */ React.createElement(Stack, { gap: 4 }, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, label), /* @__PURE__ */ React.createElement(NestedRows, { data: nested, onOpen }));
111
+ }
112
+ if (Array.isArray(value) && value.some((item) => toNestedObject(item))) {
113
+ return /* @__PURE__ */ React.createElement(Stack, { gap: 4 }, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed" }, label), value.map((item, index) => {
114
+ const itemObject = toNestedObject(item);
115
+ return itemObject ? /* @__PURE__ */ React.createElement(NestedRows, { key: index, data: itemObject, onOpen }) : /* @__PURE__ */ React.createElement(Text, { key: index, size: "xs", pl: "sm", style: { wordBreak: "break-word" } }, formatValue(item));
116
+ }));
117
+ }
118
+ return /* @__PURE__ */ React.createElement(Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "md" }, /* @__PURE__ */ React.createElement(Text, { size: "xs", c: "dimmed", style: { flexShrink: 0 } }, label), renderValue(value, onOpen));
119
+ };
120
+ var ReadableKeyValues = ({ data }) => {
121
+ const [activeFile, setActiveFile] = useState(null);
122
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Stack, { gap: "xs" }, Object.entries(data).map(([key, value]) => /* @__PURE__ */ React.createElement(KeyValueRow, { key, label: humanizeKey(key), value, onOpen: setActiveFile }))), /* @__PURE__ */ React.createElement(MediaPreviewModal, { file: activeFile, onClose: () => setActiveFile(null) }));
123
+ };
124
+
125
+ // src/mantine/blocks/action/actionTypes/_shared/bids/fetchAllBids.ts
126
+ var MAX_PAGES = 5e3;
127
+ var RETRIES_PER_PAGE = 1;
128
+ var consoleLogger = (event) => {
129
+ if (event.phase === "stop" && event.stop !== "complete") console.warn("[bids:paging] stopped", event);
130
+ else if (event.phase === "retry") console.warn("[bids:paging] retrying page", event);
131
+ else console.info("[bids:paging]", event);
132
+ };
133
+ async function fetchAllBids(queryBids, params, options) {
134
+ const maxPages = options?.maxPages ?? MAX_PAGES;
135
+ const log = options?.log === void 0 ? consoleLogger : options.log || (() => {
136
+ });
137
+ const bids = [];
138
+ const seenTokens = /* @__PURE__ */ new Set();
139
+ const seenIds = /* @__PURE__ */ new Set();
140
+ let sentToken;
141
+ let pages = 0;
142
+ const stop = (reason, error) => {
143
+ log({ phase: "stop", page: pages, total: bids.length, unique: seenIds.size, stop: reason, error });
144
+ return { bids, truncated: reason !== "complete", pages, stoppedBecause: reason, unique: seenIds.size, error };
145
+ };
146
+ for (; ; ) {
147
+ const request = { ...params, ...sentToken ? { pagination: { nextPageToken: sentToken } } : {} };
148
+ let response;
149
+ for (let attempt = 0; ; attempt += 1) {
150
+ try {
151
+ response = await queryBids(request);
152
+ break;
153
+ } catch (error) {
154
+ if (attempt >= RETRIES_PER_PAGE) return stop("error", error);
155
+ log({ phase: "retry", page: pages + 1, sentToken, total: bids.length, unique: seenIds.size, error });
156
+ }
157
+ }
158
+ pages += 1;
159
+ const page = Array.isArray(response?.data) ? response.data : null;
160
+ const receivedToken = response?.nextPageToken;
161
+ const fresh = page?.filter((entry) => !seenIds.has(entry.id)).length;
162
+ log({ phase: "page", page: pages, sentToken, receivedToken, received: page?.length, fresh, total: bids.length + (page?.length ?? 0), unique: seenIds.size + (fresh ?? 0) });
163
+ if (!page) return stop("error", new Error("get-bids returned no data array"));
164
+ bids.push(...page);
165
+ page.forEach((entry) => seenIds.add(entry.id));
166
+ if (!receivedToken) return stop("complete");
167
+ if (seenTokens.has(receivedToken)) return stop("repeated-token");
168
+ seenTokens.add(receivedToken);
169
+ if (pages >= maxPages) return stop("max-pages");
170
+ sentToken = receivedToken;
171
+ }
172
+ }
173
+ function describeBidsPagingStop(result) {
174
+ if (!result.truncated) return null;
175
+ const seen = `${result.unique} bid${result.unique === 1 ? "" : "s"} over ${result.pages} page${result.pages === 1 ? "" : "s"}`;
176
+ switch (result.stoppedBecause) {
177
+ case "repeated-token":
178
+ return `Bid paging stopped early \u2014 the bids service kept returning the same page cursor, so it never moved past the first ${seen}. This list is incomplete. See the [bids:paging] entries in the browser console.`;
179
+ case "max-pages":
180
+ return `Bid paging stopped at the ${result.pages}-page safety limit \u2014 this list may be incomplete.`;
181
+ case "error":
182
+ return result.unique === 0 ? null : `Bid paging failed after ${seen} \u2014 showing what loaded. See the [bids:paging] entries in the browser console.`;
183
+ default:
184
+ return null;
185
+ }
186
+ }
187
+ function dedupeBids(bids) {
188
+ const seen = /* @__PURE__ */ new Set();
189
+ return bids.filter((bid) => {
190
+ if (seen.has(bid.id)) return false;
191
+ seen.add(bid.id);
192
+ return true;
193
+ });
194
+ }
195
+
196
+ // src/mantine/blocks/action/actionTypes/_shared/bids/sortBids.ts
197
+ var STATUS_ORDER = { pending: 0, rejected: 1, approved: 2 };
198
+ function createdMs(bid) {
199
+ const ms = new Date(bid?.created || "").getTime();
200
+ return Number.isNaN(ms) ? 0 : ms;
201
+ }
202
+ function partitionBidsByDecision(bids, context = {}) {
203
+ const keyed = bids.map((bid) => ({ bid, key: getBidStatusInfo(bid, context).key, ms: createdMs(bid) }));
204
+ keyed.sort((a, b) => STATUS_ORDER[a.key] - STATUS_ORDER[b.key] || b.ms - a.ms);
205
+ return {
206
+ open: keyed.filter((entry) => entry.key === "pending").map((entry) => entry.bid),
207
+ decided: keyed.filter((entry) => entry.key !== "pending").map((entry) => entry.bid)
208
+ };
209
+ }
210
+ function sortBidsForReview(bids, context = {}) {
211
+ const { open, decided } = partitionBidsByDecision(bids, context);
212
+ return [...open, ...decided];
213
+ }
214
+
215
+ export {
216
+ ReadableKeyValues,
217
+ fetchAllBids,
218
+ describeBidsPagingStop,
219
+ dedupeBids,
220
+ partitionBidsByDecision,
221
+ sortBidsForReview
222
+ };
223
+ //# sourceMappingURL=chunk-6ESTNTSH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/_shared/ReadableKeyValues.tsx","../src/mantine/blocks/action/actionTypes/_shared/bids/fetchAllBids.ts","../src/mantine/blocks/action/actionTypes/_shared/bids/sortBids.ts"],"sourcesContent":["import React, { useState } from 'react';\nimport { Group, Stack, Text, UnstyledButton } from '@mantine/core';\nimport { IconPaperclip } from '@tabler/icons-react';\nimport { MediaPreviewModal, type MediaFile } from '@/mantine/components/MediaPreviewModal';\n\n// IXO-4066 — human-readable rendering of submitted answer objects (bid/claim\n// inputs) in place of raw JSON. Keys are namespaced machine names\n// (e.g. \"ixo:intent\"); values are primitives, arrays, nested objects, or\n// uploaded files — either a bare data-URI/URL string or a survey file object\n// ({ content, name?, type? }), sometimes double-encoded as a JSON string.\n// Files render as clickable thumbnails/chips that open MediaPreviewModal.\nfunction humanizeKey(key: string): string {\n const bare = key.includes(':') ? key.split(':').pop() || key : key;\n const spaced = bare\n .replace(/[_-]+/g, ' ')\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .trim();\n return spaced.charAt(0).toUpperCase() + spaced.slice(1);\n}\n\nfunction nameFromContent(content: string): string {\n if (content.startsWith('data:')) return 'file';\n return content.split(/[?#]/)[0].split('/').pop() || 'file';\n}\n\nfunction detectFile(value: unknown): MediaFile | null {\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed.startsWith('{')) {\n try {\n return detectFile(JSON.parse(trimmed));\n } catch {\n return null;\n }\n }\n if (trimmed.startsWith('data:')) return { name: 'file', type: trimmed.slice(5).split(/[;,]/)[0] || '', content: trimmed };\n if (/^https?:\\/\\//i.test(trimmed) && /\\.(png|jpe?g|gif|webp|svg|bmp|mp4|webm|mov|mp3|wav|ogg|pdf)$/.test(trimmed.split(/[?#]/)[0].toLowerCase())) {\n return { name: nameFromContent(trimmed), type: '', content: trimmed };\n }\n return null;\n }\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const obj = value as { content?: unknown; name?: unknown; type?: unknown };\n if (typeof obj.content === 'string' && (obj.content.startsWith('data:') || /^https?:\\/\\//i.test(obj.content))) {\n const type = typeof obj.type === 'string' ? obj.type : obj.content.startsWith('data:') ? obj.content.slice(5).split(/[;,]/)[0] || '' : '';\n const name = typeof obj.name === 'string' && obj.name ? obj.name : nameFromContent(obj.content);\n return { name, type, content: obj.content };\n }\n }\n return null;\n}\n\nfunction isImageFile(file: MediaFile): boolean {\n if (file.type.toLowerCase().startsWith('image/')) return true;\n if (file.content.startsWith('data:image/')) return true;\n const ext = file.name.toLowerCase().split('.').pop() || '';\n return ['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'bmp'].includes(ext);\n}\n\nfunction formatValue(value: unknown): string {\n if (value === null || value === undefined || value === '') return '—';\n if (Array.isArray(value)) return value.map((item) => formatValue(item)).join(', ');\n if (typeof value === 'object') {\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n }\n if (typeof value === 'boolean') return value ? 'Yes' : 'No';\n return String(value);\n}\n\n// Nested answer objects (e.g. \"schema:hasMember\": { \"schema:name\": ... }) —\n// sometimes double-encoded as a JSON string — expand into indented sub-rows\n// instead of a raw JSON.stringify line. File objects stay files.\nfunction toNestedObject(value: unknown): Record<string, unknown> | null {\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (!trimmed.startsWith('{')) return null;\n try {\n return toNestedObject(JSON.parse(trimmed));\n } catch {\n return null;\n }\n }\n if (value && typeof value === 'object' && !Array.isArray(value) && !detectFile(value)) {\n return value as Record<string, unknown>;\n }\n return null;\n}\n\nconst FilePreview: React.FC<{ file: MediaFile; onOpen: (file: MediaFile) => void }> = ({ file, onOpen }) =>\n isImageFile(file) ? (\n <UnstyledButton onClick={() => onOpen(file)} aria-label={`View ${file.name}`} style={{ display: 'block' }}>\n <img\n src={file.content}\n alt={file.name}\n style={{\n display: 'block',\n height: 56,\n maxWidth: 112,\n objectFit: 'cover',\n borderRadius: 6,\n border: '1px solid var(--mantine-color-neutralColor-5)',\n cursor: 'zoom-in',\n }}\n />\n </UnstyledButton>\n ) : (\n <UnstyledButton onClick={() => onOpen(file)} aria-label={`Preview ${file.name}`} style={{ maxWidth: '100%' }}>\n <Group gap={4} wrap=\"nowrap\">\n <IconPaperclip size={12} style={{ flexShrink: 0, color: 'var(--mantine-color-dimmed)' }} />\n <Text size=\"xs\" td=\"underline\" truncate>\n {file.name}\n </Text>\n </Group>\n </UnstyledButton>\n );\n\nfunction renderValue(value: unknown, onOpen: (file: MediaFile) => void): React.ReactNode {\n const file = detectFile(value);\n if (file) return <FilePreview file={file} onOpen={onOpen} />;\n if (Array.isArray(value) && value.some((item) => detectFile(item))) {\n return (\n <Group gap={6} justify=\"flex-end\">\n {value.map((item, index) => {\n const itemFile = detectFile(item);\n return itemFile ? (\n <FilePreview key={index} file={itemFile} onOpen={onOpen} />\n ) : (\n <Text key={index} size=\"xs\" ta=\"right\" style={{ wordBreak: 'break-word' }}>\n {formatValue(item)}\n </Text>\n );\n })}\n </Group>\n );\n }\n return (\n <Text size=\"xs\" ta=\"right\" style={{ wordBreak: 'break-word', minWidth: 0 }}>\n {formatValue(value)}\n </Text>\n );\n}\n\nconst NestedRows: React.FC<{ data: Record<string, unknown>; onOpen: (file: MediaFile) => void }> = ({ data, onOpen }) => (\n <Stack gap={6} pl=\"sm\" style={{ borderLeft: '1px solid var(--mantine-color-neutralColor-5)' }}>\n {Object.entries(data).map(([key, value]) => (\n <KeyValueRow key={key} label={humanizeKey(key)} value={value} onOpen={onOpen} />\n ))}\n </Stack>\n);\n\nconst KeyValueRow: React.FC<{ label: string; value: unknown; onOpen: (file: MediaFile) => void }> = ({ label, value, onOpen }) => {\n const nested = toNestedObject(value);\n if (nested) {\n return (\n <Stack gap={4}>\n <Text size=\"xs\" c=\"dimmed\">\n {label}\n </Text>\n <NestedRows data={nested} onOpen={onOpen} />\n </Stack>\n );\n }\n if (Array.isArray(value) && value.some((item) => toNestedObject(item))) {\n return (\n <Stack gap={4}>\n <Text size=\"xs\" c=\"dimmed\">\n {label}\n </Text>\n {value.map((item, index) => {\n const itemObject = toNestedObject(item);\n return itemObject ? (\n <NestedRows key={index} data={itemObject} onOpen={onOpen} />\n ) : (\n <Text key={index} size=\"xs\" pl=\"sm\" style={{ wordBreak: 'break-word' }}>\n {formatValue(item)}\n </Text>\n );\n })}\n </Stack>\n );\n }\n return (\n <Group justify=\"space-between\" align=\"flex-start\" wrap=\"nowrap\" gap=\"md\">\n <Text size=\"xs\" c=\"dimmed\" style={{ flexShrink: 0 }}>\n {label}\n </Text>\n {renderValue(value, onOpen)}\n </Group>\n );\n};\n\nexport const ReadableKeyValues: React.FC<{ data: Record<string, unknown> }> = ({ data }) => {\n const [activeFile, setActiveFile] = useState<MediaFile | null>(null);\n\n return (\n <>\n <Stack gap=\"xs\">\n {Object.entries(data).map(([key, value]) => (\n <KeyValueRow key={key} label={humanizeKey(key)} value={value} onOpen={setActiveFile} />\n ))}\n </Stack>\n <MediaPreviewModal file={activeFile} onClose={() => setActiveFile(null)} />\n </>\n );\n};\n\nexport default ReadableKeyValues;\n","import type { Bid, QueryBidsResponse } from '@/mantine/context/BlocknoteContext';\n\n// The bids bot returns at most QUERY_LIMIT (10) bids per call plus a\n// `nextPageToken`. Every call site used to ignore that token, so lists and CSV\n// exports silently stopped at ten rows. This walks the pages.\n//\n// Two things it deliberately cannot do, because they are properties of the bot\n// and not of this client:\n//\n// 1. Decided bids are not returned at all. `handleEvaluateBid` clears the\n// bidder's `bid` pointer from room state and `handleGetBids` skips any\n// entry without one, so approving or rejecting a bid removes it from this\n// endpoint. The decision survives as a threaded event in the room but no\n// bot action exposes it. Anything built on this function therefore covers\n// undecided bids only — say so where a reader might assume otherwise.\n// 2. Past 200 bidders the bidder list is sharded, and the bot's paging\n// overwrites `nextPageToken` with a later shard's cursor on overflow, so\n// intermediate shards are skipped. `truncated` cannot detect that.\n//\n// Every page is logged under `[bids:paging]` with the cursor sent and the\n// cursor returned, because \"the list is short\" has three very different causes\n// — the bot ran out of data, it repeated a cursor, or a request failed — and\n// only the console can tell them apart after the fact.\n\n// 10 bids a page, so this is a runaway backstop at ~50k bidders rather than a\n// realistic ceiling. The repeated-cursor guard below is what actually stops a\n// misbehaving bot; this only bounds the damage if a bot hands out fresh\n// cursors forever.\nconst MAX_PAGES = 5000;\n\n// One retry per page. Over a long walk a single dropped request would otherwise\n// discard every page already collected.\nconst RETRIES_PER_PAGE = 1;\n\nexport type BidsPagingStop =\n /** The bot returned no further cursor — the walk covered everything it offers. */\n | 'complete'\n /** The bot handed back a cursor it had already given, which would loop forever. */\n | 'repeated-token'\n /** Hit the local page ceiling. */\n | 'max-pages'\n /** A request failed, or a response carried no `data` array. */\n | 'error';\n\nexport interface BidsPagingEvent {\n phase: 'page' | 'retry' | 'stop';\n page: number;\n /** Cursor sent with this request; absent on the first page. */\n sentToken?: string;\n /** Cursor the bot returned. Equal to `sentToken` means paging is not advancing. */\n receivedToken?: string;\n /** Bids in this page's response. */\n received?: number;\n /** Of those, ids not already seen on an earlier page. Zero means the bot re-served a page it had already sent. */\n fresh?: number;\n /** Bids accumulated so far, before de-duplication. */\n total: number;\n /** Distinct bid ids accumulated so far. */\n unique: number;\n stop?: BidsPagingStop;\n error?: unknown;\n}\n\nexport type BidsPagingLogger = (event: BidsPagingEvent) => void;\n\nconst consoleLogger: BidsPagingLogger = (event) => {\n if (event.phase === 'stop' && event.stop !== 'complete') console.warn('[bids:paging] stopped', event);\n else if (event.phase === 'retry') console.warn('[bids:paging] retrying page', event);\n else console.info('[bids:paging]', event);\n};\n\nexport interface FetchAllBidsResult {\n bids: Bid[];\n /** True when paging stopped early — the result is incomplete. */\n truncated: boolean;\n pages: number;\n /** Why the walk ended. Anything but `complete` means `truncated`. */\n stoppedBecause: BidsPagingStop;\n /**\n * Distinct bid ids collected. Lower than `bids.length` means the bot re-sent\n * rows it had already sent — the difference between \"paging is slow\" and\n * \"paging is not moving\".\n */\n unique: number;\n /** Present when `stoppedBecause` is `error`. */\n error?: unknown;\n}\n\nexport type QueryBidsFn = (params: { collectionId: string; entityDid?: string; pagination?: { nextPageToken?: string } }) => Promise<QueryBidsResponse>;\n\nexport interface FetchAllBidsOptions {\n maxPages?: number;\n /** `null` silences logging; omit for the console logger. */\n log?: BidsPagingLogger | null;\n}\n\nexport async function fetchAllBids(queryBids: QueryBidsFn, params: { collectionId: string; entityDid?: string }, options?: FetchAllBidsOptions): Promise<FetchAllBidsResult> {\n const maxPages = options?.maxPages ?? MAX_PAGES;\n const log = options?.log === undefined ? consoleLogger : options.log || (() => {});\n const bids: Bid[] = [];\n const seenTokens = new Set<string>();\n const seenIds = new Set<string>();\n let sentToken: string | undefined;\n let pages = 0;\n\n const stop = (reason: BidsPagingStop, error?: unknown): FetchAllBidsResult => {\n log({ phase: 'stop', page: pages, total: bids.length, unique: seenIds.size, stop: reason, error });\n return { bids, truncated: reason !== 'complete', pages, stoppedBecause: reason, unique: seenIds.size, error };\n };\n\n for (;;) {\n const request = { ...params, ...(sentToken ? { pagination: { nextPageToken: sentToken } } : {}) };\n let response: QueryBidsResponse | undefined;\n\n for (let attempt = 0; ; attempt += 1) {\n try {\n response = await queryBids(request);\n break;\n } catch (error) {\n // Give up only after the retry: a partial list beats an empty one, and\n // the caller can say how far it got.\n if (attempt >= RETRIES_PER_PAGE) return stop('error', error);\n log({ phase: 'retry', page: pages + 1, sentToken, total: bids.length, unique: seenIds.size, error });\n }\n }\n\n pages += 1;\n const page = Array.isArray(response?.data) ? response.data : null;\n const receivedToken = response?.nextPageToken;\n // `fresh: 0` on a page the bot claims has more after it is the signature of\n // a cursor that is not moving — worth seeing per page, not only at the end.\n const fresh = page?.filter((entry) => !seenIds.has(entry.id)).length;\n log({ phase: 'page', page: pages, sentToken, receivedToken, received: page?.length, fresh, total: bids.length + (page?.length ?? 0), unique: seenIds.size + (fresh ?? 0) });\n\n // A response without a `data` array is a malformed answer, not an empty\n // one — reading it as \"no more bids\" is how a mid-walk failure used to\n // masquerade as a complete list.\n if (!page) return stop('error', new Error('get-bids returned no data array'));\n bids.push(...page);\n page.forEach((entry) => seenIds.add(entry.id));\n\n if (!receivedToken) return stop('complete');\n if (seenTokens.has(receivedToken)) return stop('repeated-token');\n seenTokens.add(receivedToken);\n if (pages >= maxPages) return stop('max-pages');\n sentToken = receivedToken;\n }\n}\n\n/**\n * User-facing note for a walk that did not finish; `null` when it did.\n *\n * A walk that collected nothing at all stays silent: collections with no bid\n * bot fail on page one, and that has always rendered as an empty list rather\n * than an error.\n */\nexport function describeBidsPagingStop(result: FetchAllBidsResult): string | null {\n if (!result.truncated) return null;\n // Count distinct bids, never rows received: when the cursor does not move,\n // rows received is a multiple of the page size and reads as progress.\n const seen = `${result.unique} bid${result.unique === 1 ? '' : 's'} over ${result.pages} page${result.pages === 1 ? '' : 's'}`;\n switch (result.stoppedBecause) {\n case 'repeated-token':\n return `Bid paging stopped early — the bids service kept returning the same page cursor, so it never moved past the first ${seen}. This list is incomplete. See the [bids:paging] entries in the browser console.`;\n case 'max-pages':\n return `Bid paging stopped at the ${result.pages}-page safety limit — this list may be incomplete.`;\n case 'error':\n return result.unique === 0 ? null : `Bid paging failed after ${seen} — showing what loaded. See the [bids:paging] entries in the browser console.`;\n default:\n return null;\n }\n}\n\n/** De-duplicates by bid id — shard paging can repeat an entry at a boundary. */\nexport function dedupeBids(bids: Bid[]): Bid[] {\n const seen = new Set<string>();\n return bids.filter((bid) => {\n if (seen.has(bid.id)) return false;\n seen.add(bid.id);\n return true;\n });\n}\n","import type { Bid } from '@/mantine/context/BlocknoteContext';\nimport { getBidStatusInfo, type BidStatusContext, type BidStatusKey } from '@/mantine/utils/bidStatus';\n\n// The bids service returns its own insertion order and nothing else. A bidder\n// who was granted access outside the evaluation flow keeps an undecided bid\n// forever, so those rows sit permanently at the front of page one and push the\n// bids that actually need a decision onto pages the caller may never reach.\n// Ordering by decision state first is what makes the list usable regardless of\n// how far paging got.\n\nconst STATUS_ORDER: Record<BidStatusKey, number> = { pending: 0, rejected: 1, approved: 2 };\n\nfunction createdMs(bid: Bid): number {\n const ms = new Date(bid?.created || '').getTime();\n return Number.isNaN(ms) ? 0 : ms;\n}\n\nexport interface BidPartition {\n /** Still awaiting a decision. */\n open: Bid[];\n /** Approved or rejected — kept, not dropped, so the count stays honest. */\n decided: Bid[];\n}\n\n/** Undecided first, then newest first within each group. */\nexport function partitionBidsByDecision(bids: Bid[], context: BidStatusContext = {}): BidPartition {\n const keyed = bids.map((bid) => ({ bid, key: getBidStatusInfo(bid, context).key, ms: createdMs(bid) }));\n keyed.sort((a, b) => STATUS_ORDER[a.key] - STATUS_ORDER[b.key] || b.ms - a.ms);\n return {\n open: keyed.filter((entry) => entry.key === 'pending').map((entry) => entry.bid),\n decided: keyed.filter((entry) => entry.key !== 'pending').map((entry) => entry.bid),\n };\n}\n\nexport function sortBidsForReview(bids: Bid[], context: BidStatusContext = {}): Bid[] {\n const { open, decided } = partitionBidsByDecision(bids, context);\n return [...open, ...decided];\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,15 @@
1
+ // src/mantine/blocks/action/alertStyles.ts
2
+ var actionAlertStyles = {
3
+ root: {
4
+ backgroundColor: "color-mix(in srgb, var(--mantine-color-accent-5) 20%, transparent)",
5
+ border: "none"
6
+ },
7
+ icon: { color: "var(--mantine-color-accent-5)" },
8
+ title: { color: "var(--mantine-color-text)" },
9
+ message: { color: "var(--mantine-color-text)" }
10
+ };
11
+
12
+ export {
13
+ actionAlertStyles
14
+ };
15
+ //# sourceMappingURL=chunk-6GKJR52N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/alertStyles.ts"],"sourcesContent":["export const actionAlertStyles = {\n root: {\n backgroundColor: 'color-mix(in srgb, var(--mantine-color-accent-5) 20%, transparent)',\n border: 'none',\n },\n icon: { color: 'var(--mantine-color-accent-5)' },\n title: { color: 'var(--mantine-color-text)' },\n message: { color: 'var(--mantine-color-text)' },\n};\n"],"mappings":";AAAO,IAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,QAAQ;AAAA,EACV;AAAA,EACA,MAAM,EAAE,OAAO,gCAAgC;AAAA,EAC/C,OAAO,EAAE,OAAO,4BAA4B;AAAA,EAC5C,SAAS,EAAE,OAAO,4BAA4B;AAChD;","names":[]}
@@ -0,0 +1,23 @@
1
+ // src/mantine/blocks/action/actionTypes/entityTransfer/types.ts
2
+ function parseEntityTransferConfigInputs(json) {
3
+ try {
4
+ const parsed = typeof json === "string" ? JSON.parse(json) : json;
5
+ return {
6
+ entityDid: parsed?.entityDid || "",
7
+ recipientDid: parsed?.recipientDid || "",
8
+ ownerDid: parsed?.ownerDid || "",
9
+ ownerAddress: parsed?.ownerAddress || ""
10
+ };
11
+ } catch {
12
+ return { entityDid: "", recipientDid: "", ownerDid: "", ownerAddress: "" };
13
+ }
14
+ }
15
+ function serializeEntityTransferConfigInputs(inputs) {
16
+ return JSON.stringify(inputs);
17
+ }
18
+
19
+ export {
20
+ parseEntityTransferConfigInputs,
21
+ serializeEntityTransferConfigInputs
22
+ };
23
+ //# sourceMappingURL=chunk-6L4ZIKYU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/entityTransfer/types.ts"],"sourcesContent":["export interface EntityTransferConfigInputs {\n /** Reference (or literal) for the entity DID to transfer (e.g. {{domain-sign.output.entityDid}}). */\n entityDid?: string;\n /** Optional default recipient DID (the FlowDetail lets the user override at run time). */\n recipientDid?: string;\n /** Optional reference for the current owner DID (host defaults to the connected user). */\n ownerDid?: string;\n /** Optional reference for the current owner address (host defaults to the connected user). */\n ownerAddress?: string;\n}\n\nexport function parseEntityTransferConfigInputs(json: string): EntityTransferConfigInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n entityDid: parsed?.entityDid || '',\n recipientDid: parsed?.recipientDid || '',\n ownerDid: parsed?.ownerDid || '',\n ownerAddress: parsed?.ownerAddress || '',\n };\n } catch {\n return { entityDid: '', recipientDid: '', ownerDid: '', ownerAddress: '' };\n }\n}\n\nexport function serializeEntityTransferConfigInputs(inputs: EntityTransferConfigInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AAWO,SAAS,gCAAgC,MAA0C;AACxF,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,WAAW,QAAQ,aAAa;AAAA,MAChC,cAAc,QAAQ,gBAAgB;AAAA,MACtC,UAAU,QAAQ,YAAY;AAAA,MAC9B,cAAc,QAAQ,gBAAgB;AAAA,IACxC;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,WAAW,IAAI,cAAc,IAAI,UAAU,IAAI,cAAc,GAAG;AAAA,EAC3E;AACF;AAEO,SAAS,oCAAoC,QAA4C;AAC9F,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
@@ -0,0 +1,11 @@
1
+ // src/mantine/components/Base/BaseNumberInput.tsx
2
+ import { NumberInput } from "@mantine/core";
3
+ import React from "react";
4
+ function BaseNumberInput({ ...props }) {
5
+ return /* @__PURE__ */ React.createElement(NumberInput, { radius: "md", hideControls: true, ...props });
6
+ }
7
+
8
+ export {
9
+ BaseNumberInput
10
+ };
11
+ //# sourceMappingURL=chunk-76YX5R4L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/components/Base/BaseNumberInput.tsx"],"sourcesContent":["import { NumberInput, NumberInputProps } from '@mantine/core';\nimport React from 'react';\n\nexport default function BaseNumberInput({ ...props }: NumberInputProps) {\n return <NumberInput radius=\"md\" hideControls {...props} />;\n}\n"],"mappings":";AAAA,SAAS,mBAAqC;AAC9C,OAAO,WAAW;AAEH,SAAR,gBAAiC,EAAE,GAAG,MAAM,GAAqB;AACtE,SAAO,oCAAC,eAAY,QAAO,MAAK,cAAY,MAAE,GAAG,OAAO;AAC1D;","names":[]}
@@ -0,0 +1,32 @@
1
+ // src/mantine/blocks/action/actionTypes/matrixRegister/types.ts
2
+ function parseMatrixRegisterInputs(json) {
3
+ try {
4
+ const parsed = typeof json === "string" ? JSON.parse(json) : json;
5
+ return {
6
+ mnemonic: parsed?.mnemonic || "",
7
+ address: parsed?.address || "",
8
+ did: parsed?.did || "",
9
+ pin: parsed?.pin || "",
10
+ oracleName: parsed?.oracleName || parsed?.displayName || "",
11
+ avatarUrl: parsed?.avatarUrl || ""
12
+ };
13
+ } catch {
14
+ return {
15
+ mnemonic: "",
16
+ address: "",
17
+ did: "",
18
+ pin: "",
19
+ oracleName: "",
20
+ avatarUrl: ""
21
+ };
22
+ }
23
+ }
24
+ function serializeMatrixRegisterInputs(inputs) {
25
+ return JSON.stringify(inputs);
26
+ }
27
+
28
+ export {
29
+ parseMatrixRegisterInputs,
30
+ serializeMatrixRegisterInputs
31
+ };
32
+ //# sourceMappingURL=chunk-7J3GFMN3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/matrixRegister/types.ts"],"sourcesContent":["export interface MatrixRegisterInputs {\n mnemonic?: string;\n address?: string;\n did?: string;\n pin?: string;\n oracleName?: string;\n avatarUrl?: string;\n}\n\nexport function parseMatrixRegisterInputs(json: string): MatrixRegisterInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n mnemonic: parsed?.mnemonic || '',\n address: parsed?.address || '',\n did: parsed?.did || '',\n pin: parsed?.pin || '',\n oracleName: parsed?.oracleName || parsed?.displayName || '',\n avatarUrl: parsed?.avatarUrl || '',\n };\n } catch {\n return {\n mnemonic: '',\n address: '',\n did: '',\n pin: '',\n oracleName: '',\n avatarUrl: '',\n };\n }\n}\n\nexport function serializeMatrixRegisterInputs(inputs: MatrixRegisterInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AASO,SAAS,0BAA0B,MAAoC;AAC5E,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,UAAU,QAAQ,YAAY;AAAA,MAC9B,SAAS,QAAQ,WAAW;AAAA,MAC5B,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,MACpB,YAAY,QAAQ,cAAc,QAAQ,eAAe;AAAA,MACzD,WAAW,QAAQ,aAAa;AAAA,IAClC;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,WAAW;AAAA,IACb;AAAA,EACF;AACF;AAEO,SAAS,8BAA8B,QAAsC;AAClF,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
@@ -0,0 +1,102 @@
1
+ // src/core/utils/accountList.ts
2
+ var IXO_HRP = "ixo";
3
+ var TOKEN_SEPARATORS = /[\s,;|]+/;
4
+ var CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
5
+ var GENERATOR = [996825010, 642813549, 513874426, 1027748829, 705979059];
6
+ function polymod(values) {
7
+ let chk = 1;
8
+ for (const value of values) {
9
+ const top = chk >> 25;
10
+ chk = (chk & 33554431) << 5 ^ value;
11
+ for (let i = 0; i < 5; i += 1) {
12
+ if (top >> i & 1) chk ^= GENERATOR[i];
13
+ }
14
+ }
15
+ return chk;
16
+ }
17
+ function hrpExpand(hrp) {
18
+ const high = [];
19
+ const low = [];
20
+ for (let i = 0; i < hrp.length; i += 1) {
21
+ high.push(hrp.charCodeAt(i) >> 5);
22
+ low.push(hrp.charCodeAt(i) & 31);
23
+ }
24
+ return [...high, 0, ...low];
25
+ }
26
+ function isValidBech32Address(value, hrp = IXO_HRP) {
27
+ if (!value) return false;
28
+ if (value !== value.toLowerCase() && value !== value.toUpperCase()) return false;
29
+ const address = value.toLowerCase();
30
+ if (address.length < hrp.length + 8 || address.length > 90) return false;
31
+ if (!address.startsWith(`${hrp}1`)) return false;
32
+ const dataPart = address.slice(hrp.length + 1);
33
+ const data = [];
34
+ for (const char of dataPart) {
35
+ const index = CHARSET.indexOf(char);
36
+ if (index === -1) return false;
37
+ data.push(index);
38
+ }
39
+ return polymod([...hrpExpand(hrp), ...data]) === 1;
40
+ }
41
+ function normalizeToken(token) {
42
+ let value = token.trim();
43
+ value = value.replace(/^["'`]+|["'`]+$/g, "");
44
+ value = value.replace(/^[([{<]+|[)\]}>.,;:]+$/g, "");
45
+ if (/^did:ixo:/i.test(value)) value = value.slice("did:ixo:".length);
46
+ return value.trim();
47
+ }
48
+ function looksLikeAddress(token) {
49
+ return /^ixo1/i.test(token);
50
+ }
51
+ function parseAccountList(text) {
52
+ const rows = [];
53
+ const addresses = [];
54
+ const seen = /* @__PURE__ */ new Set();
55
+ let duplicates = 0;
56
+ const lines = String(text ?? "").split(/\r\n|\n|\r/);
57
+ lines.forEach((line, index) => {
58
+ const raw = line.replace(/\t/g, " ").trim();
59
+ if (!raw) return;
60
+ const row = { line: index + 1, raw };
61
+ const tokens = line.split(TOKEN_SEPARATORS).map(normalizeToken).filter(Boolean);
62
+ const candidates = tokens.filter(looksLikeAddress);
63
+ if (candidates.length === 0) {
64
+ row.problem = "no-address";
65
+ rows.push(row);
66
+ return;
67
+ }
68
+ const valid = candidates.map((candidate) => candidate.toLowerCase()).filter((candidate) => isValidBech32Address(candidate));
69
+ if (valid.length === 0) {
70
+ row.problem = "invalid-address";
71
+ rows.push(row);
72
+ return;
73
+ }
74
+ const [address, ...extras] = valid;
75
+ row.address = address;
76
+ if (seen.has(address)) {
77
+ duplicates += 1;
78
+ row.problem = "duplicate";
79
+ } else {
80
+ seen.add(address);
81
+ addresses.push(address);
82
+ }
83
+ rows.push(row);
84
+ for (const extra of extras) {
85
+ rows.push({ line: index + 1, raw: extra, address: extra, problem: "extra-in-row" });
86
+ }
87
+ });
88
+ return {
89
+ addresses,
90
+ rows,
91
+ // Duplicates are excluded: they are not a loss (the account is in the list
92
+ // once already) and they are counted separately.
93
+ rejected: rows.filter((row) => !!row.problem && row.problem !== "duplicate"),
94
+ duplicates
95
+ };
96
+ }
97
+
98
+ export {
99
+ isValidBech32Address,
100
+ parseAccountList
101
+ };
102
+ //# sourceMappingURL=chunk-7LSARC2G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/accountList.ts"],"sourcesContent":["/**\n * Parse a pasted list of chain accounts into unique, chain-valid bech32\n * addresses (IXO-4396 — bulk grant on the Collection Users block).\n *\n * The list is pasted with ctrl-V straight out of Google Sheets / Excel, so the\n * clipboard text is a spreadsheet region, not a clean newline-separated list:\n *\n * - rows separated by `\\r\\n`, `\\n` or a bare `\\r`,\n * - columns separated by TABs (Sheets/Excel), or by commas/semicolons when the\n * user copied out of a CSV,\n * - a header row (\"Name\", \"Wallet address\", …),\n * - values wrapped in double quotes by the CSV export,\n * - the address sitting in any column, next to names/notes/quotas.\n *\n * So a row is scanned token-by-token for the first thing that looks like an\n * account, rather than assumed to *be* an account. Every row is reported back —\n * the ones that yielded nothing are surfaced to the user rather than dropped,\n * because a silently-skipped row is a person who silently never got access.\n *\n * Addresses are checksum-verified (not just prefix-matched). In a bulk grant all\n * the grants ride in ONE transaction, so a single mistyped address fails the\n * whole batch on chain — catching it here, before signing, is the difference\n * between a warning and a wasted signature.\n */\n\n/** Cosmos bech32 human-readable part for every ixo network (dev/test/main). */\nconst IXO_HRP = 'ixo';\n\n/** Columns can be separated by tabs (Sheets/Excel), commas or semicolons (CSV). */\nconst TOKEN_SEPARATORS = /[\\s,;|]+/;\n\nconst CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst GENERATOR = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n\nfunction polymod(values: number[]): number {\n let chk = 1;\n for (const value of values) {\n const top = chk >> 25;\n chk = ((chk & 0x1ffffff) << 5) ^ value;\n for (let i = 0; i < 5; i += 1) {\n if ((top >> i) & 1) chk ^= GENERATOR[i];\n }\n }\n return chk;\n}\n\nfunction hrpExpand(hrp: string): number[] {\n const high: number[] = [];\n const low: number[] = [];\n for (let i = 0; i < hrp.length; i += 1) {\n high.push(hrp.charCodeAt(i) >> 5);\n low.push(hrp.charCodeAt(i) & 31);\n }\n return [...high, 0, ...low];\n}\n\n/**\n * Verify a bech32 (NOT bech32m — cosmos addresses are plain bech32) string\n * against `hrp`. Mixed-case input is invalid per BIP-173; a uniformly upper-case\n * paste is folded down first because spreadsheets love to upper-case a column.\n */\nexport function isValidBech32Address(value: string, hrp: string = IXO_HRP): boolean {\n if (!value) return false;\n if (value !== value.toLowerCase() && value !== value.toUpperCase()) return false;\n const address = value.toLowerCase();\n // hrp + separator + 6 checksum chars, and the whole thing must stay in the\n // 90-char bech32 limit.\n if (address.length < hrp.length + 8 || address.length > 90) return false;\n if (!address.startsWith(`${hrp}1`)) return false;\n\n const dataPart = address.slice(hrp.length + 1);\n const data: number[] = [];\n for (const char of dataPart) {\n const index = CHARSET.indexOf(char);\n if (index === -1) return false;\n data.push(index);\n }\n return polymod([...hrpExpand(hrp), ...data]) === 1;\n}\n\n/** Why a pasted row produced no usable account. */\nexport type AccountRowProblem =\n /** Nothing in the row looked like an `ixo1…` account (header row, note, name). */\n | 'no-address'\n /** Something looked like an account but failed bech32 validation (typo/truncation). */\n | 'invalid-address'\n /** A valid account that already appeared earlier in the paste. */\n | 'duplicate'\n /** A second account on a row whose first account was taken. */\n | 'extra-in-row';\n\nexport interface ParsedAccountRow {\n /** 1-based position in the pasted text, so the user can find the bad row. */\n line: number;\n /** The row as pasted (trimmed, tabs collapsed) for display. */\n raw: string;\n /** The resolved address — present when the row yielded a usable account. */\n address?: string;\n /** Set when the row yielded nothing usable. */\n problem?: AccountRowProblem;\n}\n\nexport interface ParsedAccountList {\n /** Unique valid addresses, in the order they were pasted. */\n addresses: string[];\n /** Every non-blank row, in paste order. */\n rows: ParsedAccountRow[];\n /** Everything that will NOT be granted and is not a plain duplicate. */\n rejected: ParsedAccountRow[];\n /** Count of rows dropped because the address was already in the list. */\n duplicates: number;\n}\n\n/**\n * Strip the decoration a spreadsheet/CSV export wraps a cell in, and unwrap the\n * `did:ixo:<address>` form the Portal shows for a grantee so a column of DIDs\n * pastes just as well as a column of addresses.\n */\nfunction normalizeToken(token: string): string {\n let value = token.trim();\n // CSV quoting, then any leading/trailing punctuation the row picked up.\n value = value.replace(/^[\"'`]+|[\"'`]+$/g, '');\n value = value.replace(/^[([{<]+|[)\\]}>.,;:]+$/g, '');\n if (/^did:ixo:/i.test(value)) value = value.slice('did:ixo:'.length);\n return value.trim();\n}\n\n/** A token is *meant* to be an account when it carries the ixo1 prefix. */\nfunction looksLikeAddress(token: string): boolean {\n return /^ixo1/i.test(token);\n}\n\n/**\n * Parse pasted spreadsheet text into a de-duplicated address list.\n *\n * Rows are kept in paste order and every row is accounted for: a row is either\n * an address, a duplicate, or a rejection carrying the reason.\n */\nexport function parseAccountList(text: string): ParsedAccountList {\n const rows: ParsedAccountRow[] = [];\n const addresses: string[] = [];\n const seen = new Set<string>();\n let duplicates = 0;\n\n const lines = String(text ?? '').split(/\\r\\n|\\n|\\r/);\n\n lines.forEach((line, index) => {\n const raw = line.replace(/\\t/g, ' ').trim();\n if (!raw) return; // Blank rows are padding, not omissions — never reported.\n\n const row: ParsedAccountRow = { line: index + 1, raw };\n const tokens = line.split(TOKEN_SEPARATORS).map(normalizeToken).filter(Boolean);\n const candidates = tokens.filter(looksLikeAddress);\n\n if (candidates.length === 0) {\n row.problem = 'no-address';\n rows.push(row);\n return;\n }\n\n // Case is folded before validating, deliberately: BIP-173 forbids mixed\n // case, but a spreadsheet that capitalised a cell has not changed which\n // account it names — if the folded string checksums, it IS that address.\n const valid = candidates.map((candidate) => candidate.toLowerCase()).filter((candidate) => isValidBech32Address(candidate));\n if (valid.length === 0) {\n // Every candidate failed the checksum: the row was meant to hold an\n // account, so say that rather than \"no address found\".\n row.problem = 'invalid-address';\n rows.push(row);\n return;\n }\n\n // One account per row. A row carrying more (two address columns, an address\n // repeated in a note) uses the first and REPORTS the rest — dropping them\n // quietly would mean someone the user believes they granted never was.\n const [address, ...extras] = valid;\n row.address = address;\n\n if (seen.has(address)) {\n duplicates += 1;\n row.problem = 'duplicate';\n } else {\n seen.add(address);\n addresses.push(address);\n }\n rows.push(row);\n\n for (const extra of extras) {\n rows.push({ line: index + 1, raw: extra, address: extra, problem: 'extra-in-row' });\n }\n });\n\n return {\n addresses,\n rows,\n // Duplicates are excluded: they are not a loss (the account is in the list\n // once already) and they are counted separately.\n rejected: rows.filter((row) => !!row.problem && row.problem !== 'duplicate'),\n duplicates,\n };\n}\n"],"mappings":";AA0BA,IAAM,UAAU;AAGhB,IAAM,mBAAmB;AAEzB,IAAM,UAAU;AAChB,IAAM,YAAY,CAAC,WAAY,WAAY,WAAY,YAAY,SAAU;AAE7E,SAAS,QAAQ,QAA0B;AACzC,MAAI,MAAM;AACV,aAAW,SAAS,QAAQ;AAC1B,UAAM,MAAM,OAAO;AACnB,WAAQ,MAAM,aAAc,IAAK;AACjC,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;AAC7B,UAAK,OAAO,IAAK,EAAG,QAAO,UAAU,CAAC;AAAA,IACxC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,UAAU,KAAuB;AACxC,QAAM,OAAiB,CAAC;AACxB,QAAM,MAAgB,CAAC;AACvB,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACtC,SAAK,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;AAChC,QAAI,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE;AAAA,EACjC;AACA,SAAO,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG;AAC5B;AAOO,SAAS,qBAAqB,OAAe,MAAc,SAAkB;AAClF,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,UAAU,MAAM,YAAY,KAAK,UAAU,MAAM,YAAY,EAAG,QAAO;AAC3E,QAAM,UAAU,MAAM,YAAY;AAGlC,MAAI,QAAQ,SAAS,IAAI,SAAS,KAAK,QAAQ,SAAS,GAAI,QAAO;AACnE,MAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,GAAG,EAAG,QAAO;AAE3C,QAAM,WAAW,QAAQ,MAAM,IAAI,SAAS,CAAC;AAC7C,QAAM,OAAiB,CAAC;AACxB,aAAW,QAAQ,UAAU;AAC3B,UAAM,QAAQ,QAAQ,QAAQ,IAAI;AAClC,QAAI,UAAU,GAAI,QAAO;AACzB,SAAK,KAAK,KAAK;AAAA,EACjB;AACA,SAAO,QAAQ,CAAC,GAAG,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AACnD;AAwCA,SAAS,eAAe,OAAuB;AAC7C,MAAI,QAAQ,MAAM,KAAK;AAEvB,UAAQ,MAAM,QAAQ,oBAAoB,EAAE;AAC5C,UAAQ,MAAM,QAAQ,2BAA2B,EAAE;AACnD,MAAI,aAAa,KAAK,KAAK,EAAG,SAAQ,MAAM,MAAM,WAAW,MAAM;AACnE,SAAO,MAAM,KAAK;AACpB;AAGA,SAAS,iBAAiB,OAAwB;AAChD,SAAO,SAAS,KAAK,KAAK;AAC5B;AAQO,SAAS,iBAAiB,MAAiC;AAChE,QAAM,OAA2B,CAAC;AAClC,QAAM,YAAsB,CAAC;AAC7B,QAAM,OAAO,oBAAI,IAAY;AAC7B,MAAI,aAAa;AAEjB,QAAM,QAAQ,OAAO,QAAQ,EAAE,EAAE,MAAM,YAAY;AAEnD,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,UAAM,MAAM,KAAK,QAAQ,OAAO,GAAG,EAAE,KAAK;AAC1C,QAAI,CAAC,IAAK;AAEV,UAAM,MAAwB,EAAE,MAAM,QAAQ,GAAG,IAAI;AACrD,UAAM,SAAS,KAAK,MAAM,gBAAgB,EAAE,IAAI,cAAc,EAAE,OAAO,OAAO;AAC9E,UAAM,aAAa,OAAO,OAAO,gBAAgB;AAEjD,QAAI,WAAW,WAAW,GAAG;AAC3B,UAAI,UAAU;AACd,WAAK,KAAK,GAAG;AACb;AAAA,IACF;AAKA,UAAM,QAAQ,WAAW,IAAI,CAAC,cAAc,UAAU,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,qBAAqB,SAAS,CAAC;AAC1H,QAAI,MAAM,WAAW,GAAG;AAGtB,UAAI,UAAU;AACd,WAAK,KAAK,GAAG;AACb;AAAA,IACF;AAKA,UAAM,CAAC,SAAS,GAAG,MAAM,IAAI;AAC7B,QAAI,UAAU;AAEd,QAAI,KAAK,IAAI,OAAO,GAAG;AACrB,oBAAc;AACd,UAAI,UAAU;AAAA,IAChB,OAAO;AACL,WAAK,IAAI,OAAO;AAChB,gBAAU,KAAK,OAAO;AAAA,IACxB;AACA,SAAK,KAAK,GAAG;AAEb,eAAW,SAAS,QAAQ;AAC1B,WAAK,KAAK,EAAE,MAAM,QAAQ,GAAG,KAAK,OAAO,SAAS,OAAO,SAAS,eAAe,CAAC;AAAA,IACpF;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAW,IAAI,YAAY,WAAW;AAAA,IAC3E;AAAA,EACF;AACF;","names":[]}