@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 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/diff/ActionDiffView.tsx","../src/mantine/blocks/action/diff/formatters.ts","../src/mantine/components/Base/SlideToSign.tsx","../src/mantine/blocks/action/diff/DefaultNarrative.tsx","../src/mantine/blocks/action/diff/useActionDiff.ts"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { Accordion, Alert, Badge, Box, Flex, Group, Paper, ScrollArea, SegmentedControl, Stack, Text } from '@mantine/core';\nimport { IconAlertTriangle, IconArrowRight, IconEyeCheck, IconFileDescription } from '@tabler/icons-react';\nimport type { DiffResult } from '@/core/lib/actionRegistry/diffTypes';\nimport { formatDiffValue } from './formatters';\nimport { icon } from '@/mantine/components/ReusablePanel';\nimport SlideToSign from '@/mantine/components/Base/SlideToSign';\n\ninterface ActionDiffViewProps {\n diffs: DiffResult[];\n error?: string;\n refetch?: () => void;\n /** When provided, renders a SlideToSign control below the diff sections */\n onSign?: () => void;\n /** Disables the SlideToSign control */\n signDisabled?: boolean;\n}\n\ntype ReviewTab = 'summary' | 'changes' | 'details';\ntype ReviewTone = 'added' | 'removed' | 'current' | 'neutral';\n\nconst toneStyles: Record<ReviewTone, { label: string; badgeColor: string; color: string; bg: string; border: string; textDecoration?: string }> = {\n added: {\n label: 'Added',\n badgeColor: 'green',\n color: 'var(--mantine-color-green-7)',\n bg: 'color-mix(in srgb, var(--mantine-color-green-5) 12%, transparent)',\n border: 'color-mix(in srgb, var(--mantine-color-green-5) 34%, transparent)',\n },\n removed: {\n label: 'Removed',\n badgeColor: 'red',\n color: 'var(--mantine-color-red-7)',\n bg: 'color-mix(in srgb, var(--mantine-color-red-5) 10%, transparent)',\n border: 'color-mix(in srgb, var(--mantine-color-red-5) 34%, transparent)',\n textDecoration: 'line-through',\n },\n current: {\n label: 'Current',\n badgeColor: 'gray',\n color: 'var(--mantine-color-neutralColor-8)',\n bg: 'color-mix(in srgb, var(--mantine-color-text) 4%, transparent)',\n border: 'var(--mantine-color-neutralColor-5)',\n },\n neutral: {\n label: 'Details',\n badgeColor: 'gray',\n color: 'var(--mantine-color-neutralColor-8)',\n bg: 'var(--mantine-color-neutralColor-2)',\n border: 'var(--mantine-color-neutralColor-5)',\n },\n};\n\nconst changeTypeLabels: Record<DiffResult['changeType'], string> = {\n add: 'Added',\n remove: 'Removed',\n replace: 'Changed',\n increase: 'Increased',\n decrease: 'Decreased',\n unchanged: 'Unchanged',\n};\n\nfunction getChangeTone(changeType: DiffResult['changeType']): ReviewTone {\n if (changeType === 'add' || changeType === 'increase') return 'added';\n if (changeType === 'remove' || changeType === 'decrease') return 'removed';\n return 'neutral';\n}\n\nfunction getChangeBadgeColor(changeType: DiffResult['changeType']) {\n const tone = getChangeTone(changeType);\n if (tone === 'added') return 'green';\n if (tone === 'removed') return 'red';\n return changeType === 'unchanged' ? 'gray' : 'accent';\n}\n\nfunction getChangeCountLabel(count: number) {\n return `${count} ${count === 1 ? 'change' : 'changes'}`;\n}\n\nfunction stringifyDetails(details: DiffResult['details']): string[] {\n if (!details) return [];\n if (Array.isArray(details)) return details.map((item) => String(item));\n if (typeof details === 'string') return details ? [details] : [];\n\n return Object.entries(details).map(([key, value]) => {\n const rendered = typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' ? String(value) : JSON.stringify(value);\n return `${key}: ${rendered}`;\n });\n}\n\nfunction buildSummary(diff: DiffResult) {\n if (diff.description) return diff.description;\n\n const before = formatDiffValue(diff.before, diff.unit);\n const after = formatDiffValue(diff.after, diff.unit);\n\n if (diff.changeType === 'add') return after;\n if (diff.changeType === 'remove') return before;\n if (diff.changeType === 'unchanged') return 'No visible change';\n return `${before} → ${after}`;\n}\n\nfunction ReviewValueBlock({ label, value, tone }: { label: string; value: string; tone: ReviewTone }) {\n const styles = toneStyles[tone];\n\n return (\n <Box\n p=\"xs\"\n style={{\n border: `1px solid ${styles.border}`,\n borderRadius: 8,\n background: styles.bg,\n minWidth: 0,\n }}\n >\n <Group gap={6} mb={6}>\n <Badge size=\"xs\" variant=\"light\" color={styles.badgeColor} tt=\"none\">\n {styles.label}\n </Badge>\n <Text size=\"xs\" c=\"dimmed\" fw={500}>\n {label}\n </Text>\n </Group>\n <Text\n size=\"sm\"\n lh={1.55}\n style={{\n color: styles.color,\n textDecoration: styles.textDecoration,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n }}\n >\n {value}\n </Text>\n </Box>\n );\n}\n\nfunction ChangeSummaryLine({ diff }: { diff: DiffResult }) {\n return (\n <Flex gap=\"xs\" align=\"flex-start\">\n <Badge size=\"xs\" variant=\"light\" color={getChangeBadgeColor(diff.changeType)} tt=\"none\" miw={78}>\n {changeTypeLabels[diff.changeType]}\n </Badge>\n <Box flex={1} miw={0}>\n <Text size=\"sm\" fw={500} lineClamp={1}>\n {diff.label}\n </Text>\n <Text size=\"xs\" c=\"dimmed\" lineClamp={2} lh={1.45}>\n {buildSummary(diff)}\n </Text>\n </Box>\n </Flex>\n );\n}\n\nfunction ChangeDetail({ diff }: { diff: DiffResult }) {\n const before = formatDiffValue(diff.before, diff.unit);\n const after = formatDiffValue(diff.after, diff.unit);\n const showBefore = diff.changeType !== 'add' && before !== after;\n const showAfter = diff.changeType !== 'remove';\n const details = stringifyDetails(diff.details);\n\n return (\n <Stack gap=\"xs\">\n {diff.description && (\n <Text size=\"xs\" c=\"dimmed\" lh={1.5}>\n {diff.description}\n </Text>\n )}\n {showBefore && <ReviewValueBlock label={diff.label} value={before} tone={diff.changeType === 'unchanged' ? 'current' : 'removed'} />}\n {showBefore && showAfter && (\n <Flex justify=\"center\" aria-hidden=\"true\">\n {icon(IconArrowRight, 14, 'var(--mantine-color-neutralColor-7)')}\n </Flex>\n )}\n {showAfter && <ReviewValueBlock label={diff.label} value={after} tone={diff.changeType === 'unchanged' ? 'current' : 'added'} />}\n {details.length > 0 && (\n <Stack gap={4}>\n {details.map((line, index) => (\n <Text key={`${index}-${line}`} size=\"xs\" c=\"dimmed\" style={{ wordBreak: 'break-word' }}>\n {line}\n </Text>\n ))}\n </Stack>\n )}\n </Stack>\n );\n}\n\nfunction DetailsPanel({ diffs }: { diffs: DiffResult[] }) {\n return (\n <Stack gap=\"xs\">\n {diffs.map((diff) => (\n <Paper\n key={diff.key}\n p=\"xs\"\n radius=\"sm\"\n style={{\n background: 'var(--mantine-color-neutralColor-2)',\n border: '1px solid var(--mantine-color-neutralColor-5)',\n }}\n >\n <Group justify=\"space-between\" align=\"flex-start\" gap=\"xs\" wrap=\"nowrap\">\n <Box miw={0}>\n <Text size=\"xs\" fw={600} lineClamp={1}>\n {diff.label}\n </Text>\n <Text size=\"xs\" c=\"dimmed\" style={{ wordBreak: 'break-word' }}>\n {formatDiffValue(diff.before, diff.unit)}\n {' → '}\n {formatDiffValue(diff.after, diff.unit)}\n </Text>\n </Box>\n <Badge size=\"xs\" variant=\"light\" color={getChangeBadgeColor(diff.changeType)} tt=\"none\">\n {changeTypeLabels[diff.changeType]}\n </Badge>\n </Group>\n {stringifyDetails(diff.details).map((line, index) => (\n <Text key={`${index}-${line}`} size=\"xs\" c=\"dimmed\" mt={4} style={{ wordBreak: 'break-word' }}>\n {line}\n </Text>\n ))}\n </Paper>\n ))}\n </Stack>\n );\n}\n\nexport function ActionDiffView({ diffs, error, refetch: _refetch, onSign, signDisabled }: ActionDiffViewProps) {\n const [activeTab, setActiveTab] = useState<ReviewTab>('summary');\n const changedDiffs = useMemo(() => diffs.filter((diff) => diff.changeType !== 'unchanged'), [diffs]);\n const reviewDiffs = changedDiffs.length > 0 ? changedDiffs : diffs;\n const firstChangeId = reviewDiffs[0]?.key;\n\n if (error) {\n return (\n <Alert icon={icon(IconAlertTriangle)} title=\"Preview Error\" color=\"red\" variant=\"light\">\n <Text size=\"xs\">{error}</Text>\n </Alert>\n );\n }\n\n if (diffs.length === 0) {\n return (\n <Text size=\"sm\" c=\"dimmed\" py=\"md\">\n No changes to preview.\n </Text>\n );\n }\n\n return (\n <Stack gap=\"sm\" py=\"md\">\n <Paper\n p=\"sm\"\n radius=\"sm\"\n style={{\n background: 'color-mix(in srgb, var(--mantine-color-text) 2%, transparent)',\n border: '1px solid var(--mantine-color-neutralColor-5)',\n }}\n >\n <Stack gap=\"sm\">\n <Group justify=\"space-between\" align=\"flex-start\" gap=\"xs\" wrap=\"nowrap\">\n <Group gap=\"xs\" wrap=\"nowrap\" align=\"flex-start\" miw={0}>\n <Box mt={2}>{icon(IconFileDescription, 16, 'var(--mantine-color-accent-5)')}</Box>\n <Box miw={0}>\n <Text size=\"sm\" fw={600} lineClamp={1}>\n Action review\n </Text>\n <Text size=\"xs\" c=\"dimmed\" lineClamp={2}>\n Review the proposed change before signing.\n </Text>\n </Box>\n </Group>\n <Badge variant=\"light\" color={changedDiffs.length > 0 ? 'accent' : 'gray'} tt=\"none\">\n {getChangeCountLabel(changedDiffs.length)}\n </Badge>\n </Group>\n\n <SegmentedControl\n value={activeTab}\n onChange={(value) => setActiveTab(value as ReviewTab)}\n fullWidth\n data={[\n { label: 'Summary', value: 'summary' },\n { label: 'Changes', value: 'changes' },\n { label: 'Details', value: 'details' },\n ]}\n />\n\n <ScrollArea.Autosize mah={360} scrollbarSize={4}>\n {activeTab === 'summary' && (\n <Stack gap=\"xs\">\n <Group gap=\"xs\">\n {icon(IconEyeCheck, 16, 'var(--mantine-color-accent-5)')}\n <Text size=\"xs\" c=\"dimmed\">\n {changedDiffs.length > 0 ? 'Proposed changes' : 'No visible changes'}\n </Text>\n </Group>\n {reviewDiffs.slice(0, 3).map((diff) => (\n <ChangeSummaryLine key={diff.key} diff={diff} />\n ))}\n {reviewDiffs.length > 3 && (\n <Text size=\"xs\" c=\"dimmed\">\n {reviewDiffs.length - 3} more {reviewDiffs.length - 3 === 1 ? 'change' : 'changes'} in the Changes tab.\n </Text>\n )}\n </Stack>\n )}\n\n {activeTab === 'changes' && (\n <Accordion variant=\"separated\" radius=\"sm\" defaultValue={firstChangeId}>\n {reviewDiffs.map((diff) => (\n <Accordion.Item key={diff.key} value={diff.key}>\n <Accordion.Control>\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Badge size=\"xs\" variant=\"light\" color={getChangeBadgeColor(diff.changeType)} tt=\"none\">\n {changeTypeLabels[diff.changeType]}\n </Badge>\n <Text size=\"sm\" fw={500} lineClamp={1}>\n {diff.label}\n </Text>\n </Group>\n </Accordion.Control>\n <Accordion.Panel>\n <ChangeDetail diff={diff} />\n </Accordion.Panel>\n </Accordion.Item>\n ))}\n </Accordion>\n )}\n\n {activeTab === 'details' && <DetailsPanel diffs={diffs} />}\n </ScrollArea.Autosize>\n </Stack>\n </Paper>\n\n {onSign && <SlideToSign onSign={onSign} label=\"Slide to Execute\" disabled={signDisabled} />}\n </Stack>\n );\n}\n","import type { DiffResult } from '@/core/lib/actionRegistry/diffTypes';\n\nexport function truncateAddress(address: string, startLen = 8, endLen = 4): string {\n if (!address || address.length <= startLen + endLen + 3) return address;\n return `${address.slice(0, startLen)}...${address.slice(-endLen)}`;\n}\n\nexport function formatTokenAmount(amount: string | number, decimals = 6): string {\n const num = typeof amount === 'string' ? parseFloat(amount) : amount;\n if (isNaN(num)) return String(amount);\n if (num === 0) return '0';\n const divided = num / Math.pow(10, decimals);\n if (divided >= 1_000_000) return `${(divided / 1_000_000).toFixed(2)}M`;\n if (divided >= 1_000) return `${(divided / 1_000).toFixed(2)}K`;\n return divided % 1 === 0 ? String(divided) : divided.toFixed(decimals > 2 ? 2 : decimals);\n}\n\nexport function formatDiffValue(value: string | number | null, unit?: string): string {\n if (value === null || value === undefined) return '—';\n const str = String(value);\n if (!str) return '—';\n return unit ? `${str} ${unit}` : str;\n}\n\nexport function changeTypeSymbol(changeType: DiffResult['changeType']): string {\n switch (changeType) {\n case 'increase':\n return '↑';\n case 'decrease':\n return '↓';\n case 'add':\n return '+';\n case 'remove':\n return '-';\n case 'replace':\n return '→';\n case 'unchanged':\n return '=';\n }\n}\n","import React, { useState } from 'react';\nimport { Flex, Slider, Text } from '@mantine/core';\nimport { IconFeather } from '@tabler/icons-react';\n\ninterface SlideToSignProps {\n onSign: () => void;\n label?: string;\n disabled?: boolean;\n}\n\nconst RESET_DELAY = 600;\n\nexport default function SlideToSign({ onSign, label = 'Slide to Sign', disabled }: SlideToSignProps) {\n const [value, setValue] = useState(23);\n\n const handleSlideEnd = (sliderValue: number) => {\n if (sliderValue >= 60) {\n setValue(73);\n onSign();\n setTimeout(() => setValue(23), RESET_DELAY);\n } else {\n setValue(23);\n }\n };\n\n return (\n <Slider\n value={value}\n onChange={setValue}\n label={null}\n onChangeEnd={handleSlideEnd}\n disabled={disabled}\n size=\"xl\"\n thumbChildren={\n <Flex align=\"center\" gap=\"sm\">\n <IconFeather color={disabled ? 'var(--mantine-color-neutralColor-9)' : 'var(--mantine-color-text)'} strokeWidth=\"1.2\" />\n <Text c={disabled ? 'neutralColor.9' : 'var(--mantine-color-text)'} fz={14}>\n {label}\n </Text>\n </Flex>\n }\n thumbSize={42}\n styles={{\n root: { width: '100%', opacity: disabled ? 0.4 : 1, transition: 'opacity 200ms ease' },\n track: {\n height: 36,\n borderRadius: 8,\n ':before': {\n backgroundColor: disabled ? 'var(--mantine-color-neutralColor-7)' : 'var(--mantine-color-accent-5)',\n opacity: disabled ? 1 : 0.6,\n borderRadius: 8,\n },\n },\n bar: { backgroundColor: disabled ? 'var(--mantine-color-neutralColor-7)' : 'var(--mantine-color-accent-5)', borderRadius: 8 },\n thumb: {\n border: '1px solid var(--mantine-color-neutralColor-6)',\n borderRadius: 8,\n width: 185,\n height: 36,\n boxShadow: 'none',\n backgroundColor: disabled ? 'var(--mantine-color-neutralColor-8)' : 'var(--mantine-color-neutralColor-5)',\n cursor: disabled ? 'not-allowed' : undefined,\n },\n }}\n />\n );\n}\n","import React from 'react';\nimport { Text } from '@mantine/core';\nimport type { ActionNarrativeProps } from '@/core/lib/actionRegistry/diffTypes';\nimport { formatDiffValue } from './formatters';\n\nexport function DefaultNarrative({ diffs, error }: ActionNarrativeProps) {\n if (error) return null;\n if (diffs.length === 0) return null;\n\n const parts = diffs\n .filter((d) => d.changeType !== 'unchanged')\n .map((d) => {\n const afterStr = formatDiffValue(d.after, d.unit);\n switch (d.changeType) {\n case 'add':\n return `set ${d.label} to ${afterStr}`;\n case 'remove':\n return `remove ${d.label}`;\n case 'increase':\n return `increase ${d.label} to ${afterStr}`;\n case 'decrease':\n return `decrease ${d.label} to ${afterStr}`;\n case 'replace':\n return `change ${d.label} to ${afterStr}`;\n default:\n return `${d.label}: ${afterStr}`;\n }\n });\n\n if (parts.length === 0) return null;\n\n const sentence = parts.length === 1 ? `This action will ${parts[0]}.` : `This action will ${parts.slice(0, -1).join(', ')} and ${parts[parts.length - 1]}.`;\n\n return (\n <Text size=\"sm\" c=\"dimmed\" mb=\"md\">\n {sentence}\n </Text>\n );\n}\n","import { useState, useEffect, useCallback, useMemo } from 'react';\nimport { getDiffResolver, hasDiffResolver } from '@/core/lib/actionRegistry/diffRegistry';\nimport type { DiffResult } from '@/core/lib/actionRegistry/diffTypes';\nimport { useBlocknoteHandlers } from '@/mantine/context/BlocknoteContext';\n\ninterface UseActionDiffOptions {\n actionType: string;\n inputs: string | Record<string, any>;\n actorDid?: string;\n entityDid?: string;\n}\n\ninterface UseActionDiffReturn {\n diffs: DiffResult[];\n error: string | undefined;\n hasResolver: boolean;\n refetch: () => void;\n}\n\nexport function useActionDiff({ actionType, inputs, actorDid = '', entityDid }: UseActionDiffOptions): UseActionDiffReturn {\n const [diffs, setDiffs] = useState<DiffResult[]>([]);\n const [error, setError] = useState<string | undefined>();\n const [fetchKey, setFetchKey] = useState(0);\n const handlers = useBlocknoteHandlers();\n\n const hasResolver = hasDiffResolver(actionType);\n\n const parsedInputs = useMemo(() => {\n if (!inputs) return {};\n if (typeof inputs === 'object') return inputs;\n try {\n return JSON.parse(inputs);\n } catch {\n return {};\n }\n }, [inputs]);\n\n const refetch = useCallback(() => setFetchKey((k) => k + 1), []);\n\n useEffect(() => {\n if (!hasResolver) return;\n\n const registration = getDiffResolver(actionType);\n if (!registration) return;\n\n let cancelled = false;\n\n async function resolve() {\n setError(undefined);\n\n try {\n const results = await registration!.resolver(parsedInputs, {\n handlers,\n actorDid,\n entityDid,\n });\n if (!cancelled) {\n setDiffs(results);\n }\n } catch (err) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : 'Failed to resolve diffs');\n }\n }\n }\n\n resolve();\n\n return () => {\n cancelled = true;\n };\n }, [actionType, parsedInputs, actorDid, entityDid, handlers, hasResolver, fetchKey]);\n\n return { diffs, error, hasResolver, refetch };\n}\n"],"mappings":"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","names":["React","useState","Flex","Text","React","Text","Flex","useState","React","Text","useState","useMemo","useState","useMemo"]}
@@ -0,0 +1,28 @@
1
+ // src/mantine/blocks/action/actionTypes/proposalCreate/types.ts
2
+ function parseProposalCreateInputs(json) {
3
+ try {
4
+ const parsed = typeof json === "string" ? JSON.parse(json) : json;
5
+ return {
6
+ coreAddress: parsed?.coreAddress || "",
7
+ proposalTitle: parsed?.proposalTitle || "",
8
+ proposalDescription: parsed?.proposalDescription || "",
9
+ governanceActions: parsed?.governanceActions || "[]"
10
+ };
11
+ } catch {
12
+ return {
13
+ coreAddress: "",
14
+ proposalTitle: "",
15
+ proposalDescription: "",
16
+ governanceActions: "[]"
17
+ };
18
+ }
19
+ }
20
+ function serializeProposalCreateInputs(inputs) {
21
+ return JSON.stringify(inputs);
22
+ }
23
+
24
+ export {
25
+ parseProposalCreateInputs,
26
+ serializeProposalCreateInputs
27
+ };
28
+ //# sourceMappingURL=chunk-IADAQJDH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/blocks/action/actionTypes/proposalCreate/types.ts"],"sourcesContent":["export interface ProposalCreateInputs {\n coreAddress: string;\n proposalTitle: string;\n proposalDescription: string;\n governanceActions: string;\n}\n\nexport function parseProposalCreateInputs(json: string): ProposalCreateInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n coreAddress: parsed?.coreAddress || '',\n proposalTitle: parsed?.proposalTitle || '',\n proposalDescription: parsed?.proposalDescription || '',\n governanceActions: parsed?.governanceActions || '[]',\n };\n } catch {\n return {\n coreAddress: '',\n proposalTitle: '',\n proposalDescription: '',\n governanceActions: '[]',\n };\n }\n}\n\nexport function serializeProposalCreateInputs(inputs: ProposalCreateInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AAOO,SAAS,0BAA0B,MAAoC;AAC5E,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,aAAa,QAAQ,eAAe;AAAA,MACpC,eAAe,QAAQ,iBAAiB;AAAA,MACxC,qBAAqB,QAAQ,uBAAuB;AAAA,MACpD,mBAAmB,QAAQ,qBAAqB;AAAA,IAClD;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,MACL,aAAa;AAAA,MACb,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,mBAAmB;AAAA,IACrB;AAAA,EACF;AACF;AAEO,SAAS,8BAA8B,QAAsC;AAClF,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
@@ -0,0 +1,99 @@
1
+ import {
2
+ NODE_CONTEXT_MAP_NAME,
3
+ NODE_CONTEXT_OVERRIDES_MAP_NAME,
4
+ isNodeContextRecord
5
+ } from "./chunk-YYNMESIF.js";
6
+
7
+ // src/mantine/hooks/useNodeContext.ts
8
+ import { useState, useEffect, useCallback, useRef } from "react";
9
+ function plainShallowEqual(a, b) {
10
+ if (a === b) return true;
11
+ const keysA = Object.keys(a);
12
+ const keysB = Object.keys(b);
13
+ if (keysA.length !== keysB.length) return false;
14
+ for (const key of keysA) {
15
+ if (a[key] !== b[key]) return false;
16
+ }
17
+ return true;
18
+ }
19
+ function recordsEqual(a, b) {
20
+ if (a === b) return true;
21
+ if (!a || !b) return false;
22
+ const keysA = Object.keys(a);
23
+ const keysB = Object.keys(b);
24
+ if (keysA.length !== keysB.length) return false;
25
+ for (const key of keysA) {
26
+ if (key === "values" || key === "fieldProvenance") continue;
27
+ if (a[key] !== b[key]) return false;
28
+ }
29
+ if (!("values" in b) || !("fieldProvenance" in b)) return false;
30
+ return plainShallowEqual(a.values, b.values) && plainShallowEqual(a.fieldProvenance, b.fieldProvenance);
31
+ }
32
+ function getNodeContextMap(editor) {
33
+ return editor?._yNodeContext ?? editor?._yDoc?.getMap?.(NODE_CONTEXT_MAP_NAME);
34
+ }
35
+ function getNodeContextOverridesMap(editor) {
36
+ return editor?._yNodeContextOverrides ?? editor?._yDoc?.getMap?.(NODE_CONTEXT_OVERRIDES_MAP_NAME);
37
+ }
38
+ function overrideKey(nodeId, field) {
39
+ return `${nodeId}:${field}`;
40
+ }
41
+ function buildOverlaidRecord(contextMap, overridesMap, nodeId) {
42
+ const stored = contextMap?.get(nodeId);
43
+ if (!isNodeContextRecord(stored)) return void 0;
44
+ const snapshot = {
45
+ ...stored,
46
+ values: { ...stored.values },
47
+ fieldProvenance: { ...stored.fieldProvenance }
48
+ };
49
+ if (overridesMap) {
50
+ const prefix = `${nodeId}:`;
51
+ overridesMap.forEach((value, key) => {
52
+ if (typeof key !== "string" || !key.startsWith(prefix)) return;
53
+ const field = key.slice(prefix.length);
54
+ if (!field) return;
55
+ snapshot.values[field] = value;
56
+ snapshot.fieldProvenance[field] = "human";
57
+ });
58
+ }
59
+ return snapshot;
60
+ }
61
+ function useNodeContext(editor, nodeId) {
62
+ const contextMap = getNodeContextMap(editor);
63
+ const overridesMap = getNodeContextOverridesMap(editor);
64
+ const [record, setRecord] = useState(() => buildOverlaidRecord(contextMap, overridesMap, nodeId));
65
+ const recordRef = useRef(record);
66
+ useEffect(() => {
67
+ recordRef.current = record;
68
+ });
69
+ useEffect(() => {
70
+ if (!contextMap && !overridesMap) return;
71
+ const handler = () => {
72
+ const next = buildOverlaidRecord(contextMap, overridesMap, nodeId);
73
+ if (!recordsEqual(recordRef.current, next)) {
74
+ recordRef.current = next;
75
+ setRecord(next);
76
+ }
77
+ };
78
+ contextMap?.observe(handler);
79
+ overridesMap?.observe(handler);
80
+ handler();
81
+ return () => {
82
+ contextMap?.unobserve(handler);
83
+ overridesMap?.unobserve(handler);
84
+ };
85
+ }, [contextMap, overridesMap, nodeId]);
86
+ const setHumanOverride = useCallback(
87
+ (field, value) => {
88
+ if (!overridesMap || !field) return;
89
+ overridesMap.set(overrideKey(nodeId, field), value);
90
+ },
91
+ [overridesMap, nodeId]
92
+ );
93
+ return [record, setHumanOverride];
94
+ }
95
+
96
+ export {
97
+ useNodeContext
98
+ };
99
+ //# sourceMappingURL=chunk-IBOBCMQQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/hooks/useNodeContext.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef } from 'react';\nimport type { IxoEditorType } from '../../core/types/editor';\nimport { isNodeContextRecord, NODE_CONTEXT_MAP_NAME, NODE_CONTEXT_OVERRIDES_MAP_NAME, type NodeContextFieldProvenance, type NodeContextRecord } from '../../core/types/nodeContext';\n\n/** Shallow-compare two plain records by own keys and === values. */\nfunction plainShallowEqual(a: Record<string, unknown>, b: Record<string, unknown>): boolean {\n if (a === b) return true;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\n\n/**\n * Compare two overlaid NodeContextRecord snapshots (either may be undefined).\n * Top-level fields are compared by ===; `values` and `fieldProvenance` are\n * compared entry-by-entry because the overlay rebuilds them on every read.\n */\nfunction recordsEqual(a: NodeContextRecord | undefined, b: NodeContextRecord | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (key === 'values' || key === 'fieldProvenance') continue;\n if ((a as any)[key] !== (b as any)[key]) return false;\n }\n if (!('values' in b) || !('fieldProvenance' in b)) return false;\n return plainShallowEqual(a.values, b.values) && plainShallowEqual(a.fieldProvenance as Record<string, unknown>, b.fieldProvenance as Record<string, unknown>);\n}\n\ntype AnyYMap = {\n get: (key: string) => unknown;\n set: (key: string, value: unknown) => void;\n forEach: (cb: (value: unknown, key: string) => void) => void;\n observe: (cb: () => void) => void;\n unobserve: (cb: () => void) => void;\n};\n\n/**\n * Resolve the top-level `nodeContext` Y.Map the flow manager writes to.\n * Prefers the map attached at editor creation (`_yNodeContext`) and falls\n * back to deriving it from the Y.Doc — `getMap` is idempotent, so both paths\n * yield the same live map instance.\n */\nfunction getNodeContextMap(editor: IxoEditorType): AnyYMap | undefined {\n return (editor?._yNodeContext as AnyYMap | undefined) ?? (editor?._yDoc as { getMap?: (name: string) => AnyYMap } | undefined)?.getMap?.(NODE_CONTEXT_MAP_NAME);\n}\n\n/**\n * Resolve the top-level `nodeContextOverrides` Y.Map — per-field human\n * overrides keyed `${nodeId}:${field}` with the raw override value.\n */\nfunction getNodeContextOverridesMap(editor: IxoEditorType): AnyYMap | undefined {\n return (\n (editor?._yNodeContextOverrides as AnyYMap | undefined) ?? (editor?._yDoc as { getMap?: (name: string) => AnyYMap } | undefined)?.getMap?.(NODE_CONTEXT_OVERRIDES_MAP_NAME)\n );\n}\n\n/** Build the key for one node's per-field override entry. */\nfunction overrideKey(nodeId: string, field: string): string {\n return `${nodeId}:${field}`;\n}\n\n/**\n * Read the base `nodeContext` record for `nodeId` and overlay every\n * `${nodeId}:${field}` entry from `nodeContextOverrides` on top of it:\n * `values[field] = override`, `fieldProvenance[field] = 'human'`.\n *\n * Overrides overlay an existing record only — with no valid base record this\n * returns undefined even when overrides exist.\n */\nfunction buildOverlaidRecord(contextMap: AnyYMap | undefined, overridesMap: AnyYMap | undefined, nodeId: string): NodeContextRecord | undefined {\n const stored = contextMap?.get(nodeId);\n if (!isNodeContextRecord(stored)) return undefined;\n\n const snapshot: NodeContextRecord = {\n ...stored,\n values: { ...stored.values },\n fieldProvenance: { ...stored.fieldProvenance },\n };\n\n if (overridesMap) {\n const prefix = `${nodeId}:`;\n overridesMap.forEach((value, key) => {\n if (typeof key !== 'string' || !key.startsWith(prefix)) return;\n const field = key.slice(prefix.length);\n if (!field) return;\n snapshot.values[field] = value;\n snapshot.fieldProvenance[field] = 'human' satisfies NodeContextFieldProvenance;\n });\n }\n\n return snapshot;\n}\n\n/**\n * Reactive hook that subscribes to a single node's flow-manager context\n * record in the top-level `nodeContext` Y.Map (keyed by block/node id),\n * overlaid with per-field human overrides from the top-level\n * `nodeContextOverrides` Y.Map (keyed `${nodeId}:${field}`).\n *\n * Usage:\n * const [record, setHumanOverride] = useNodeContext(editor, block.id);\n * // record?.values.theme, record?.fieldProvenance.theme, ...\n * // setHumanOverride('theme', 'Reforestation');\n *\n * Malformed or missing entries read back as `undefined` — both maps are\n * written across process boundaries, so shape is never assumed.\n *\n * `setHumanOverride(field, value)` writes ONLY the `${nodeId}:${field}` key\n * into `nodeContextOverrides` — it never touches the `nodeContext` record, so\n * a concurrent whole-record write by the flow manager can never erase the\n * override. It works even when no record exists yet; the override becomes\n * visible once a base record appears (overrides overlay an existing record\n * only).\n */\nexport function useNodeContext(editor: IxoEditorType, nodeId: string): [NodeContextRecord | undefined, (field: string, value: unknown) => void] {\n const contextMap = getNodeContextMap(editor);\n const overridesMap = getNodeContextOverridesMap(editor);\n\n const [record, setRecord] = useState<NodeContextRecord | undefined>(() => buildOverlaidRecord(contextMap, overridesMap, nodeId));\n\n // Keep a ref to the latest record so the observer can compare without\n // needing setState's functional form to capture a stale closure.\n const recordRef = useRef(record);\n useEffect(() => {\n recordRef.current = record;\n });\n\n useEffect(() => {\n if (!contextMap && !overridesMap) return;\n\n const handler = () => {\n const next = buildOverlaidRecord(contextMap, overridesMap, nodeId);\n\n // Only update state when this node's overlaid data actually changed.\n // Y.Map.observe fires for ANY key in the map, so most events\n // are irrelevant to this specific nodeId.\n if (!recordsEqual(recordRef.current, next)) {\n recordRef.current = next;\n setRecord(next);\n }\n };\n\n contextMap?.observe(handler);\n overridesMap?.observe(handler);\n // Sync initial value\n handler();\n\n return () => {\n contextMap?.unobserve(handler);\n overridesMap?.unobserve(handler);\n };\n }, [contextMap, overridesMap, nodeId]);\n\n const setHumanOverride = useCallback(\n (field: string, value: unknown) => {\n if (!overridesMap || !field) return;\n overridesMap.set(overrideKey(nodeId, field), value);\n },\n [overridesMap, nodeId]\n );\n\n return [record, setHumanOverride];\n}\n"],"mappings":";;;;;;;AAAA,SAAS,UAAU,WAAW,aAAa,cAAc;AAKzD,SAAS,kBAAkB,GAA4B,GAAqC;AAC1F,MAAI,MAAM,EAAG,QAAO;AACpB,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,aAAW,OAAO,OAAO;AACvB,QAAI,EAAE,GAAG,MAAM,EAAE,GAAG,EAAG,QAAO;AAAA,EAChC;AACA,SAAO;AACT;AAOA,SAAS,aAAa,GAAkC,GAA2C;AACjG,MAAI,MAAM,EAAG,QAAO;AACpB,MAAI,CAAC,KAAK,CAAC,EAAG,QAAO;AACrB,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,aAAW,OAAO,OAAO;AACvB,QAAI,QAAQ,YAAY,QAAQ,kBAAmB;AACnD,QAAK,EAAU,GAAG,MAAO,EAAU,GAAG,EAAG,QAAO;AAAA,EAClD;AACA,MAAI,EAAE,YAAY,MAAM,EAAE,qBAAqB,GAAI,QAAO;AAC1D,SAAO,kBAAkB,EAAE,QAAQ,EAAE,MAAM,KAAK,kBAAkB,EAAE,iBAA4C,EAAE,eAA0C;AAC9J;AAgBA,SAAS,kBAAkB,QAA4C;AACrE,SAAQ,QAAQ,iBAA0C,QAAQ,OAA8D,SAAS,qBAAqB;AAChK;AAMA,SAAS,2BAA2B,QAA4C;AAC9E,SACG,QAAQ,0BAAmD,QAAQ,OAA8D,SAAS,+BAA+B;AAE9K;AAGA,SAAS,YAAY,QAAgB,OAAuB;AAC1D,SAAO,GAAG,MAAM,IAAI,KAAK;AAC3B;AAUA,SAAS,oBAAoB,YAAiC,cAAmC,QAA+C;AAC9I,QAAM,SAAS,YAAY,IAAI,MAAM;AACrC,MAAI,CAAC,oBAAoB,MAAM,EAAG,QAAO;AAEzC,QAAM,WAA8B;AAAA,IAClC,GAAG;AAAA,IACH,QAAQ,EAAE,GAAG,OAAO,OAAO;AAAA,IAC3B,iBAAiB,EAAE,GAAG,OAAO,gBAAgB;AAAA,EAC/C;AAEA,MAAI,cAAc;AAChB,UAAM,SAAS,GAAG,MAAM;AACxB,iBAAa,QAAQ,CAAC,OAAO,QAAQ;AACnC,UAAI,OAAO,QAAQ,YAAY,CAAC,IAAI,WAAW,MAAM,EAAG;AACxD,YAAM,QAAQ,IAAI,MAAM,OAAO,MAAM;AACrC,UAAI,CAAC,MAAO;AACZ,eAAS,OAAO,KAAK,IAAI;AACzB,eAAS,gBAAgB,KAAK,IAAI;AAAA,IACpC,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAuBO,SAAS,eAAe,QAAuB,QAA0F;AAC9I,QAAM,aAAa,kBAAkB,MAAM;AAC3C,QAAM,eAAe,2BAA2B,MAAM;AAEtD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwC,MAAM,oBAAoB,YAAY,cAAc,MAAM,CAAC;AAI/H,QAAM,YAAY,OAAO,MAAM;AAC/B,YAAU,MAAM;AACd,cAAU,UAAU;AAAA,EACtB,CAAC;AAED,YAAU,MAAM;AACd,QAAI,CAAC,cAAc,CAAC,aAAc;AAElC,UAAM,UAAU,MAAM;AACpB,YAAM,OAAO,oBAAoB,YAAY,cAAc,MAAM;AAKjE,UAAI,CAAC,aAAa,UAAU,SAAS,IAAI,GAAG;AAC1C,kBAAU,UAAU;AACpB,kBAAU,IAAI;AAAA,MAChB;AAAA,IACF;AAEA,gBAAY,QAAQ,OAAO;AAC3B,kBAAc,QAAQ,OAAO;AAE7B,YAAQ;AAER,WAAO,MAAM;AACX,kBAAY,UAAU,OAAO;AAC7B,oBAAc,UAAU,OAAO;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,YAAY,cAAc,MAAM,CAAC;AAErC,QAAM,mBAAmB;AAAA,IACvB,CAAC,OAAe,UAAmB;AACjC,UAAI,CAAC,gBAAgB,CAAC,MAAO;AAC7B,mBAAa,IAAI,YAAY,QAAQ,KAAK,GAAG,KAAK;AAAA,IACpD;AAAA,IACA,CAAC,cAAc,MAAM;AAAA,EACvB;AAEA,SAAO,CAAC,QAAQ,gBAAgB;AAClC;","names":[]}
@@ -0,0 +1,56 @@
1
+ import {
2
+ useBlocknoteContext
3
+ } from "./chunk-4DGCCXD6.js";
4
+
5
+ // src/mantine/components/Base/DismissibleAlert.tsx
6
+ import { Alert } from "@mantine/core";
7
+ import React, { useEffect, useMemo, useState } from "react";
8
+ function textOf(node) {
9
+ if (node === null || node === void 0 || typeof node === "boolean") return "";
10
+ if (typeof node === "string" || typeof node === "number") return String(node);
11
+ if (Array.isArray(node)) return node.map(textOf).join("|");
12
+ if (React.isValidElement(node)) return textOf(node.props.children);
13
+ return "";
14
+ }
15
+ function useDismissalStore() {
16
+ const { editor } = useBlocknoteContext();
17
+ return useMemo(() => {
18
+ const doc = editor?._yDoc;
19
+ return doc ? doc.getMap("dismissedAlerts") : null;
20
+ }, [editor]);
21
+ }
22
+ function DismissibleAlert({ onClose, withCloseButton = true, closeButtonLabel, ...props }) {
23
+ const contentKey = useMemo(() => `${textOf(props.title)}::${textOf(props.children)}`, [props.title, props.children]);
24
+ const store = useDismissalStore();
25
+ const [, bump] = useState(0);
26
+ const [localDismissedKey, setLocalDismissedKey] = useState(null);
27
+ useEffect(() => {
28
+ if (!store) return;
29
+ const handler = () => bump((n) => n + 1);
30
+ store.observe(handler);
31
+ return () => store.unobserve(handler);
32
+ }, [store]);
33
+ const dismissed = store ? store.has(contentKey) : localDismissedKey === contentKey;
34
+ if (dismissed) return null;
35
+ return /* @__PURE__ */ React.createElement(
36
+ Alert,
37
+ {
38
+ ...props,
39
+ withCloseButton,
40
+ closeButtonLabel: closeButtonLabel ?? "Dismiss",
41
+ onClose: () => {
42
+ if (store) {
43
+ store.set(contentKey, Date.now());
44
+ } else {
45
+ setLocalDismissedKey(contentKey);
46
+ }
47
+ onClose?.();
48
+ }
49
+ }
50
+ );
51
+ }
52
+
53
+ export {
54
+ DismissibleAlert
55
+ };
56
+ //# sourceMappingURL=chunk-IFWKRCFF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mantine/components/Base/DismissibleAlert.tsx"],"sourcesContent":["import { Alert, type AlertProps } from '@mantine/core';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useBlocknoteContext } from '@/mantine/context/BlocknoteContext';\n\nfunction textOf(node: React.ReactNode): string {\n if (node === null || node === undefined || typeof node === 'boolean') return '';\n if (typeof node === 'string' || typeof node === 'number') return String(node);\n if (Array.isArray(node)) return node.map(textOf).join('|');\n if (React.isValidElement(node)) return textOf((node.props as { children?: React.ReactNode }).children);\n return '';\n}\n\n/** Minimal structural view of the Y.Map we persist dismissals in — typed\n * structurally so this file stays agnostic of the concrete yjs instance. */\ntype DismissalStore = {\n has(key: string): boolean;\n set(key: string, value: number): unknown;\n observe(fn: (...args: unknown[]) => void): void;\n unobserve(fn: (...args: unknown[]) => void): void;\n};\n\nfunction useDismissalStore(): DismissalStore | null {\n const { editor } = useBlocknoteContext();\n return useMemo(() => {\n const doc = (editor as { _yDoc?: { getMap(name: string): DismissalStore } } | undefined)?._yDoc;\n return doc ? doc.getMap('dismissedAlerts') : null;\n }, [editor]);\n}\n\n/**\n * Every alert on the flow-details surface is user-removable. A dismissal is\n * written to the flow doc's `dismissedAlerts` Y.Map, so it is permanent and\n * collaborative like all other flow state: the alert never comes back on\n * reload and is gone for every participant. Dismissals are keyed by the\n * alert's visible text — a warning or error with *different* content is a\n * different fact and always shows, no matter what was dismissed before.\n * Outside a collaborative doc (e.g. component galleries) dismissal degrades\n * to view-local hiding.\n */\nexport function DismissibleAlert({ onClose, withCloseButton = true, closeButtonLabel, ...props }: AlertProps) {\n const contentKey = useMemo(() => `${textOf(props.title)}::${textOf(props.children)}`, [props.title, props.children]);\n const store = useDismissalStore();\n const [, bump] = useState(0);\n const [localDismissedKey, setLocalDismissedKey] = useState<string | null>(null);\n\n useEffect(() => {\n if (!store) return;\n const handler = () => bump((n) => n + 1);\n store.observe(handler);\n return () => store.unobserve(handler);\n }, [store]);\n\n const dismissed = store ? store.has(contentKey) : localDismissedKey === contentKey;\n if (dismissed) return null;\n\n return (\n <Alert\n {...props}\n withCloseButton={withCloseButton}\n closeButtonLabel={closeButtonLabel ?? 'Dismiss'}\n onClose={() => {\n if (store) {\n store.set(contentKey, Date.now());\n } else {\n setLocalDismissedKey(contentKey);\n }\n onClose?.();\n }}\n />\n );\n}\n\nexport default DismissibleAlert;\n"],"mappings":";;;;;AAAA,SAAS,aAA8B;AACvC,OAAO,SAAS,WAAW,SAAS,gBAAgB;AAGpD,SAAS,OAAO,MAA+B;AAC7C,MAAI,SAAS,QAAQ,SAAS,UAAa,OAAO,SAAS,UAAW,QAAO;AAC7E,MAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAAU,QAAO,OAAO,IAAI;AAC5E,MAAI,MAAM,QAAQ,IAAI,EAAG,QAAO,KAAK,IAAI,MAAM,EAAE,KAAK,GAAG;AACzD,MAAI,MAAM,eAAe,IAAI,EAAG,QAAO,OAAQ,KAAK,MAAyC,QAAQ;AACrG,SAAO;AACT;AAWA,SAAS,oBAA2C;AAClD,QAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,SAAO,QAAQ,MAAM;AACnB,UAAM,MAAO,QAA6E;AAC1F,WAAO,MAAM,IAAI,OAAO,iBAAiB,IAAI;AAAA,EAC/C,GAAG,CAAC,MAAM,CAAC;AACb;AAYO,SAAS,iBAAiB,EAAE,SAAS,kBAAkB,MAAM,kBAAkB,GAAG,MAAM,GAAe;AAC5G,QAAM,aAAa,QAAQ,MAAM,GAAG,OAAO,MAAM,KAAK,CAAC,KAAK,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,MAAM,QAAQ,CAAC;AACnH,QAAM,QAAQ,kBAAkB;AAChC,QAAM,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;AAC3B,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAwB,IAAI;AAE9E,YAAU,MAAM;AACd,QAAI,CAAC,MAAO;AACZ,UAAM,UAAU,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC;AACvC,UAAM,QAAQ,OAAO;AACrB,WAAO,MAAM,MAAM,UAAU,OAAO;AAAA,EACtC,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,YAAY,QAAQ,MAAM,IAAI,UAAU,IAAI,sBAAsB;AACxE,MAAI,UAAW,QAAO;AAEtB,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,kBAAkB,oBAAoB;AAAA,MACtC,SAAS,MAAM;AACb,YAAI,OAAO;AACT,gBAAM,IAAI,YAAY,KAAK,IAAI,CAAC;AAAA,QAClC,OAAO;AACL,+BAAqB,UAAU;AAAA,QACjC;AACA,kBAAU;AAAA,MACZ;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,40 @@
1
+ // src/core/utils/tokenAmount.ts
2
+ var DECIMAL_RE = /^-?\d*(\.\d*)?$/;
3
+ function toBaseUnits(displayAmount, exponent) {
4
+ const raw = String(displayAmount ?? "").trim();
5
+ if (!raw) return { ok: false, error: "Enter an amount" };
6
+ if (!DECIMAL_RE.test(raw)) return { ok: false, error: `\u201C${raw}\u201D is not a valid amount` };
7
+ if (raw.startsWith("-")) return { ok: false, error: "Amount must be greater than 0" };
8
+ if (!Number.isInteger(exponent) || exponent < 0) return { ok: false, error: `Unknown decimals for this token` };
9
+ const [whole = "", fraction = ""] = raw.split(".");
10
+ if (fraction.length > exponent) {
11
+ return {
12
+ ok: false,
13
+ error: exponent === 0 ? "This token has no decimal places \u2014 enter a whole number" : `This token has at most ${exponent} decimal places`
14
+ };
15
+ }
16
+ const shifted = `${whole}${fraction.padEnd(exponent, "0")}`.replace(/^0+(?=\d)/, "");
17
+ const value = shifted === "" ? "0" : shifted;
18
+ if (value === "0") return { ok: false, error: "Amount must be greater than 0" };
19
+ return { ok: true, value };
20
+ }
21
+ function toDisplayUnits(baseAmount, exponent) {
22
+ const raw = String(baseAmount ?? "").trim();
23
+ if (!raw || !DECIMAL_RE.test(raw)) return "0";
24
+ if (!Number.isInteger(exponent) || exponent <= 0) return raw.replace(/\..*$/, "");
25
+ const negative = raw.startsWith("-");
26
+ const digits = (negative ? raw.slice(1) : raw).replace(/\..*$/, "").padStart(exponent + 1, "0");
27
+ const whole = digits.slice(0, digits.length - exponent).replace(/^0+(?=\d)/, "");
28
+ const fraction = digits.slice(digits.length - exponent).replace(/0+$/, "");
29
+ return `${negative ? "-" : ""}${whole}${fraction ? `.${fraction}` : ""}`;
30
+ }
31
+ function formatTokenAmount(baseAmount, denom, exponent, symbol) {
32
+ if (exponent === void 0 || exponent === null) return `${baseAmount} ${denom}`;
33
+ return `${toDisplayUnits(baseAmount, exponent)} ${symbol || denom}`;
34
+ }
35
+
36
+ export {
37
+ toBaseUnits,
38
+ formatTokenAmount
39
+ };
40
+ //# sourceMappingURL=chunk-IH4T7V4C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/tokenAmount.ts"],"sourcesContent":["/**\n * Convert between a token's DISPLAY amount (what a person types — \"1.5 IXO\")\n * and its BASE amount (what the chain moves — \"1500000 uixo\").\n *\n * Done with string arithmetic rather than `value * 10 ** exponent`, because\n * floats lose the tail on exactly the amounts people type: `0.07 * 1e6` is\n * `70000.00000000001`, and rounding that at 6 decimals happens to work while\n * an 18-decimal token silently sends the wrong number. A decimal-point shift\n * cannot drift.\n *\n * Every function here refuses rather than guesses. An exponent the host could\n * not resolve is `undefined`, not `6` — assuming 6 for a 0-decimal credit\n * would send a million times too much.\n */\n\n/** Digits only, optional single decimal point, optional leading minus. */\nconst DECIMAL_RE = /^-?\\d*(\\.\\d*)?$/;\n\nexport interface TokenAmountError {\n ok: false;\n error: string;\n}\n\nexport interface TokenAmountOk {\n ok: true;\n /** The amount in base units, as an unpadded integer string. */\n value: string;\n}\n\nexport type TokenAmountResult = TokenAmountOk | TokenAmountError;\n\n/**\n * Shift a display amount left by `exponent` decimal places.\n *\n * Returns an error result — never throws, never rounds — when the input is\n * not a plain decimal, is negative, or carries more decimal places than the\n * token has (`0.5` of a 0-decimal credit is not half a credit, it is a typo).\n */\nexport function toBaseUnits(displayAmount: string | number, exponent: number): TokenAmountResult {\n const raw = String(displayAmount ?? '').trim();\n if (!raw) return { ok: false, error: 'Enter an amount' };\n if (!DECIMAL_RE.test(raw)) return { ok: false, error: `“${raw}” is not a valid amount` };\n if (raw.startsWith('-')) return { ok: false, error: 'Amount must be greater than 0' };\n if (!Number.isInteger(exponent) || exponent < 0) return { ok: false, error: `Unknown decimals for this token` };\n\n const [whole = '', fraction = ''] = raw.split('.');\n if (fraction.length > exponent) {\n return {\n ok: false,\n error: exponent === 0 ? 'This token has no decimal places — enter a whole number' : `This token has at most ${exponent} decimal places`,\n };\n }\n\n const shifted = `${whole}${fraction.padEnd(exponent, '0')}`.replace(/^0+(?=\\d)/, '');\n const value = shifted === '' ? '0' : shifted;\n if (value === '0') return { ok: false, error: 'Amount must be greater than 0' };\n return { ok: true, value };\n}\n\n/**\n * Shift a base amount right by `exponent` decimal places, trimming trailing\n * zeros. `toDisplayUnits('1500000', 6)` → `'1.5'`.\n */\nexport function toDisplayUnits(baseAmount: string | number, exponent: number): string {\n const raw = String(baseAmount ?? '').trim();\n if (!raw || !DECIMAL_RE.test(raw)) return '0';\n if (!Number.isInteger(exponent) || exponent <= 0) return raw.replace(/\\..*$/, '');\n\n const negative = raw.startsWith('-');\n const digits = (negative ? raw.slice(1) : raw).replace(/\\..*$/, '').padStart(exponent + 1, '0');\n const whole = digits.slice(0, digits.length - exponent).replace(/^0+(?=\\d)/, '');\n const fraction = digits.slice(digits.length - exponent).replace(/0+$/, '');\n\n return `${negative ? '-' : ''}${whole}${fraction ? `.${fraction}` : ''}`;\n}\n\n/**\n * Render a base amount for a human: display units when the exponent is known,\n * otherwise the raw base amount labelled with its base denom, so a reader is\n * never shown \"250000 IXO\" for what is actually 0.25 IXO.\n */\nexport function formatTokenAmount(baseAmount: string | number, denom: string, exponent?: number, symbol?: string): string {\n if (exponent === undefined || exponent === null) return `${baseAmount} ${denom}`;\n return `${toDisplayUnits(baseAmount, exponent)} ${symbol || denom}`;\n}\n"],"mappings":";AAgBA,IAAM,aAAa;AAsBZ,SAAS,YAAY,eAAgC,UAAqC;AAC/F,QAAM,MAAM,OAAO,iBAAiB,EAAE,EAAE,KAAK;AAC7C,MAAI,CAAC,IAAK,QAAO,EAAE,IAAI,OAAO,OAAO,kBAAkB;AACvD,MAAI,CAAC,WAAW,KAAK,GAAG,EAAG,QAAO,EAAE,IAAI,OAAO,OAAO,SAAI,GAAG,+BAA0B;AACvF,MAAI,IAAI,WAAW,GAAG,EAAG,QAAO,EAAE,IAAI,OAAO,OAAO,gCAAgC;AACpF,MAAI,CAAC,OAAO,UAAU,QAAQ,KAAK,WAAW,EAAG,QAAO,EAAE,IAAI,OAAO,OAAO,kCAAkC;AAE9G,QAAM,CAAC,QAAQ,IAAI,WAAW,EAAE,IAAI,IAAI,MAAM,GAAG;AACjD,MAAI,SAAS,SAAS,UAAU;AAC9B,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO,aAAa,IAAI,iEAA4D,0BAA0B,QAAQ;AAAA,IACxH;AAAA,EACF;AAEA,QAAM,UAAU,GAAG,KAAK,GAAG,SAAS,OAAO,UAAU,GAAG,CAAC,GAAG,QAAQ,aAAa,EAAE;AACnF,QAAM,QAAQ,YAAY,KAAK,MAAM;AACrC,MAAI,UAAU,IAAK,QAAO,EAAE,IAAI,OAAO,OAAO,gCAAgC;AAC9E,SAAO,EAAE,IAAI,MAAM,MAAM;AAC3B;AAMO,SAAS,eAAe,YAA6B,UAA0B;AACpF,QAAM,MAAM,OAAO,cAAc,EAAE,EAAE,KAAK;AAC1C,MAAI,CAAC,OAAO,CAAC,WAAW,KAAK,GAAG,EAAG,QAAO;AAC1C,MAAI,CAAC,OAAO,UAAU,QAAQ,KAAK,YAAY,EAAG,QAAO,IAAI,QAAQ,SAAS,EAAE;AAEhF,QAAM,WAAW,IAAI,WAAW,GAAG;AACnC,QAAM,UAAU,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,SAAS,EAAE,EAAE,SAAS,WAAW,GAAG,GAAG;AAC9F,QAAM,QAAQ,OAAO,MAAM,GAAG,OAAO,SAAS,QAAQ,EAAE,QAAQ,aAAa,EAAE;AAC/E,QAAM,WAAW,OAAO,MAAM,OAAO,SAAS,QAAQ,EAAE,QAAQ,OAAO,EAAE;AAEzE,SAAO,GAAG,WAAW,MAAM,EAAE,GAAG,KAAK,GAAG,WAAW,IAAI,QAAQ,KAAK,EAAE;AACxE;AAOO,SAAS,kBAAkB,YAA6B,OAAe,UAAmB,QAAyB;AACxH,MAAI,aAAa,UAAa,aAAa,KAAM,QAAO,GAAG,UAAU,IAAI,KAAK;AAC9E,SAAO,GAAG,eAAe,YAAY,QAAQ,CAAC,IAAI,UAAU,KAAK;AACnE;","names":[]}