@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,12 @@
1
+ // src/core/lib/warnOnce.ts
2
+ var seen = /* @__PURE__ */ new Set();
3
+ function warnOnce(key, message) {
4
+ if (seen.has(key)) return;
5
+ seen.add(key);
6
+ console.warn(message);
7
+ }
8
+
9
+ export {
10
+ warnOnce
11
+ };
12
+ //# sourceMappingURL=chunk-HT6L7A5M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/lib/warnOnce.ts"],"sourcesContent":["const seen = new Set<string>();\n\n/**\n * Log a warning at most once per key for the lifetime of the module.\n * Used to surface configuration problems (malformed inputs/trigger JSON,\n * unresolvable references) without flooding the console on every render\n * or reconcile pass.\n */\nexport function warnOnce(key: string, message: string): void {\n if (seen.has(key)) return;\n seen.add(key);\n console.warn(message);\n}\n\n/** Test hook — clears the dedupe set. */\nexport function __resetWarnOnce(): void {\n seen.clear();\n}\n"],"mappings":";AAAA,IAAM,OAAO,oBAAI,IAAY;AAQtB,SAAS,SAAS,KAAa,SAAuB;AAC3D,MAAI,KAAK,IAAI,GAAG,EAAG;AACnB,OAAK,IAAI,GAAG;AACZ,UAAQ,KAAK,OAAO;AACtB;","names":[]}
@@ -0,0 +1,301 @@
1
+ import {
2
+ icon
3
+ } from "./chunk-YN4CEKCF.js";
4
+ import {
5
+ getDiffResolver,
6
+ hasDiffResolver
7
+ } from "./chunk-F4PTFXZH.js";
8
+ import {
9
+ useBlocknoteHandlers
10
+ } from "./chunk-4DGCCXD6.js";
11
+
12
+ // src/mantine/blocks/action/diff/ActionDiffView.tsx
13
+ import React2, { useMemo, useState as useState2 } from "react";
14
+ import { Accordion, Alert, Badge, Box, Flex as Flex2, Group, Paper, ScrollArea, SegmentedControl, Stack, Text as Text2 } from "@mantine/core";
15
+ import { IconAlertTriangle, IconArrowRight, IconEyeCheck, IconFileDescription } from "@tabler/icons-react";
16
+
17
+ // src/mantine/blocks/action/diff/formatters.ts
18
+ function formatDiffValue(value, unit) {
19
+ if (value === null || value === void 0) return "\u2014";
20
+ const str = String(value);
21
+ if (!str) return "\u2014";
22
+ return unit ? `${str} ${unit}` : str;
23
+ }
24
+
25
+ // src/mantine/components/Base/SlideToSign.tsx
26
+ import React, { useState } from "react";
27
+ import { Flex, Slider, Text } from "@mantine/core";
28
+ import { IconFeather } from "@tabler/icons-react";
29
+ var RESET_DELAY = 600;
30
+ function SlideToSign({ onSign, label = "Slide to Sign", disabled }) {
31
+ const [value, setValue] = useState(23);
32
+ const handleSlideEnd = (sliderValue) => {
33
+ if (sliderValue >= 60) {
34
+ setValue(73);
35
+ onSign();
36
+ setTimeout(() => setValue(23), RESET_DELAY);
37
+ } else {
38
+ setValue(23);
39
+ }
40
+ };
41
+ return /* @__PURE__ */ React.createElement(
42
+ Slider,
43
+ {
44
+ value,
45
+ onChange: setValue,
46
+ label: null,
47
+ onChangeEnd: handleSlideEnd,
48
+ disabled,
49
+ size: "xl",
50
+ thumbChildren: /* @__PURE__ */ React.createElement(Flex, { align: "center", gap: "sm" }, /* @__PURE__ */ React.createElement(IconFeather, { color: disabled ? "var(--mantine-color-neutralColor-9)" : "var(--mantine-color-text)", strokeWidth: "1.2" }), /* @__PURE__ */ React.createElement(Text, { c: disabled ? "neutralColor.9" : "var(--mantine-color-text)", fz: 14 }, label)),
51
+ thumbSize: 42,
52
+ styles: {
53
+ root: { width: "100%", opacity: disabled ? 0.4 : 1, transition: "opacity 200ms ease" },
54
+ track: {
55
+ height: 36,
56
+ borderRadius: 8,
57
+ ":before": {
58
+ backgroundColor: disabled ? "var(--mantine-color-neutralColor-7)" : "var(--mantine-color-accent-5)",
59
+ opacity: disabled ? 1 : 0.6,
60
+ borderRadius: 8
61
+ }
62
+ },
63
+ bar: { backgroundColor: disabled ? "var(--mantine-color-neutralColor-7)" : "var(--mantine-color-accent-5)", borderRadius: 8 },
64
+ thumb: {
65
+ border: "1px solid var(--mantine-color-neutralColor-6)",
66
+ borderRadius: 8,
67
+ width: 185,
68
+ height: 36,
69
+ boxShadow: "none",
70
+ backgroundColor: disabled ? "var(--mantine-color-neutralColor-8)" : "var(--mantine-color-neutralColor-5)",
71
+ cursor: disabled ? "not-allowed" : void 0
72
+ }
73
+ }
74
+ }
75
+ );
76
+ }
77
+
78
+ // src/mantine/blocks/action/diff/ActionDiffView.tsx
79
+ var toneStyles = {
80
+ added: {
81
+ label: "Added",
82
+ badgeColor: "green",
83
+ color: "var(--mantine-color-green-7)",
84
+ bg: "color-mix(in srgb, var(--mantine-color-green-5) 12%, transparent)",
85
+ border: "color-mix(in srgb, var(--mantine-color-green-5) 34%, transparent)"
86
+ },
87
+ removed: {
88
+ label: "Removed",
89
+ badgeColor: "red",
90
+ color: "var(--mantine-color-red-7)",
91
+ bg: "color-mix(in srgb, var(--mantine-color-red-5) 10%, transparent)",
92
+ border: "color-mix(in srgb, var(--mantine-color-red-5) 34%, transparent)",
93
+ textDecoration: "line-through"
94
+ },
95
+ current: {
96
+ label: "Current",
97
+ badgeColor: "gray",
98
+ color: "var(--mantine-color-neutralColor-8)",
99
+ bg: "color-mix(in srgb, var(--mantine-color-text) 4%, transparent)",
100
+ border: "var(--mantine-color-neutralColor-5)"
101
+ },
102
+ neutral: {
103
+ label: "Details",
104
+ badgeColor: "gray",
105
+ color: "var(--mantine-color-neutralColor-8)",
106
+ bg: "var(--mantine-color-neutralColor-2)",
107
+ border: "var(--mantine-color-neutralColor-5)"
108
+ }
109
+ };
110
+ var changeTypeLabels = {
111
+ add: "Added",
112
+ remove: "Removed",
113
+ replace: "Changed",
114
+ increase: "Increased",
115
+ decrease: "Decreased",
116
+ unchanged: "Unchanged"
117
+ };
118
+ function getChangeTone(changeType) {
119
+ if (changeType === "add" || changeType === "increase") return "added";
120
+ if (changeType === "remove" || changeType === "decrease") return "removed";
121
+ return "neutral";
122
+ }
123
+ function getChangeBadgeColor(changeType) {
124
+ const tone = getChangeTone(changeType);
125
+ if (tone === "added") return "green";
126
+ if (tone === "removed") return "red";
127
+ return changeType === "unchanged" ? "gray" : "accent";
128
+ }
129
+ function getChangeCountLabel(count) {
130
+ return `${count} ${count === 1 ? "change" : "changes"}`;
131
+ }
132
+ function stringifyDetails(details) {
133
+ if (!details) return [];
134
+ if (Array.isArray(details)) return details.map((item) => String(item));
135
+ if (typeof details === "string") return details ? [details] : [];
136
+ return Object.entries(details).map(([key, value]) => {
137
+ const rendered = typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? String(value) : JSON.stringify(value);
138
+ return `${key}: ${rendered}`;
139
+ });
140
+ }
141
+ function buildSummary(diff) {
142
+ if (diff.description) return diff.description;
143
+ const before = formatDiffValue(diff.before, diff.unit);
144
+ const after = formatDiffValue(diff.after, diff.unit);
145
+ if (diff.changeType === "add") return after;
146
+ if (diff.changeType === "remove") return before;
147
+ if (diff.changeType === "unchanged") return "No visible change";
148
+ return `${before} \u2192 ${after}`;
149
+ }
150
+ function ReviewValueBlock({ label, value, tone }) {
151
+ const styles = toneStyles[tone];
152
+ return /* @__PURE__ */ React2.createElement(
153
+ Box,
154
+ {
155
+ p: "xs",
156
+ style: {
157
+ border: `1px solid ${styles.border}`,
158
+ borderRadius: 8,
159
+ background: styles.bg,
160
+ minWidth: 0
161
+ }
162
+ },
163
+ /* @__PURE__ */ React2.createElement(Group, { gap: 6, mb: 6 }, /* @__PURE__ */ React2.createElement(Badge, { size: "xs", variant: "light", color: styles.badgeColor, tt: "none" }, styles.label), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", fw: 500 }, label)),
164
+ /* @__PURE__ */ React2.createElement(
165
+ Text2,
166
+ {
167
+ size: "sm",
168
+ lh: 1.55,
169
+ style: {
170
+ color: styles.color,
171
+ textDecoration: styles.textDecoration,
172
+ whiteSpace: "pre-wrap",
173
+ wordBreak: "break-word"
174
+ }
175
+ },
176
+ value
177
+ )
178
+ );
179
+ }
180
+ function ChangeSummaryLine({ diff }) {
181
+ return /* @__PURE__ */ React2.createElement(Flex2, { gap: "xs", align: "flex-start" }, /* @__PURE__ */ React2.createElement(Badge, { size: "xs", variant: "light", color: getChangeBadgeColor(diff.changeType), tt: "none", miw: 78 }, changeTypeLabels[diff.changeType]), /* @__PURE__ */ React2.createElement(Box, { flex: 1, miw: 0 }, /* @__PURE__ */ React2.createElement(Text2, { size: "sm", fw: 500, lineClamp: 1 }, diff.label), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", lineClamp: 2, lh: 1.45 }, buildSummary(diff))));
182
+ }
183
+ function ChangeDetail({ diff }) {
184
+ const before = formatDiffValue(diff.before, diff.unit);
185
+ const after = formatDiffValue(diff.after, diff.unit);
186
+ const showBefore = diff.changeType !== "add" && before !== after;
187
+ const showAfter = diff.changeType !== "remove";
188
+ const details = stringifyDetails(diff.details);
189
+ return /* @__PURE__ */ React2.createElement(Stack, { gap: "xs" }, diff.description && /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", lh: 1.5 }, diff.description), showBefore && /* @__PURE__ */ React2.createElement(ReviewValueBlock, { label: diff.label, value: before, tone: diff.changeType === "unchanged" ? "current" : "removed" }), showBefore && showAfter && /* @__PURE__ */ React2.createElement(Flex2, { justify: "center", "aria-hidden": "true" }, icon(IconArrowRight, 14, "var(--mantine-color-neutralColor-7)")), showAfter && /* @__PURE__ */ React2.createElement(ReviewValueBlock, { label: diff.label, value: after, tone: diff.changeType === "unchanged" ? "current" : "added" }), details.length > 0 && /* @__PURE__ */ React2.createElement(Stack, { gap: 4 }, details.map((line, index) => /* @__PURE__ */ React2.createElement(Text2, { key: `${index}-${line}`, size: "xs", c: "dimmed", style: { wordBreak: "break-word" } }, line))));
190
+ }
191
+ function DetailsPanel({ diffs }) {
192
+ return /* @__PURE__ */ React2.createElement(Stack, { gap: "xs" }, diffs.map((diff) => /* @__PURE__ */ React2.createElement(
193
+ Paper,
194
+ {
195
+ key: diff.key,
196
+ p: "xs",
197
+ radius: "sm",
198
+ style: {
199
+ background: "var(--mantine-color-neutralColor-2)",
200
+ border: "1px solid var(--mantine-color-neutralColor-5)"
201
+ }
202
+ },
203
+ /* @__PURE__ */ React2.createElement(Group, { justify: "space-between", align: "flex-start", gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React2.createElement(Box, { miw: 0 }, /* @__PURE__ */ React2.createElement(Text2, { size: "xs", fw: 600, lineClamp: 1 }, diff.label), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", style: { wordBreak: "break-word" } }, formatDiffValue(diff.before, diff.unit), " \u2192 ", formatDiffValue(diff.after, diff.unit))), /* @__PURE__ */ React2.createElement(Badge, { size: "xs", variant: "light", color: getChangeBadgeColor(diff.changeType), tt: "none" }, changeTypeLabels[diff.changeType])),
204
+ stringifyDetails(diff.details).map((line, index) => /* @__PURE__ */ React2.createElement(Text2, { key: `${index}-${line}`, size: "xs", c: "dimmed", mt: 4, style: { wordBreak: "break-word" } }, line))
205
+ )));
206
+ }
207
+ function ActionDiffView({ diffs, error, refetch: _refetch, onSign, signDisabled }) {
208
+ const [activeTab, setActiveTab] = useState2("summary");
209
+ const changedDiffs = useMemo(() => diffs.filter((diff) => diff.changeType !== "unchanged"), [diffs]);
210
+ const reviewDiffs = changedDiffs.length > 0 ? changedDiffs : diffs;
211
+ const firstChangeId = reviewDiffs[0]?.key;
212
+ if (error) {
213
+ return /* @__PURE__ */ React2.createElement(Alert, { icon: icon(IconAlertTriangle), title: "Preview Error", color: "red", variant: "light" }, /* @__PURE__ */ React2.createElement(Text2, { size: "xs" }, error));
214
+ }
215
+ if (diffs.length === 0) {
216
+ return /* @__PURE__ */ React2.createElement(Text2, { size: "sm", c: "dimmed", py: "md" }, "No changes to preview.");
217
+ }
218
+ return /* @__PURE__ */ React2.createElement(Stack, { gap: "sm", py: "md" }, /* @__PURE__ */ React2.createElement(
219
+ Paper,
220
+ {
221
+ p: "sm",
222
+ radius: "sm",
223
+ style: {
224
+ background: "color-mix(in srgb, var(--mantine-color-text) 2%, transparent)",
225
+ border: "1px solid var(--mantine-color-neutralColor-5)"
226
+ }
227
+ },
228
+ /* @__PURE__ */ React2.createElement(Stack, { gap: "sm" }, /* @__PURE__ */ React2.createElement(Group, { justify: "space-between", align: "flex-start", gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React2.createElement(Group, { gap: "xs", wrap: "nowrap", align: "flex-start", miw: 0 }, /* @__PURE__ */ React2.createElement(Box, { mt: 2 }, icon(IconFileDescription, 16, "var(--mantine-color-accent-5)")), /* @__PURE__ */ React2.createElement(Box, { miw: 0 }, /* @__PURE__ */ React2.createElement(Text2, { size: "sm", fw: 600, lineClamp: 1 }, "Action review"), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed", lineClamp: 2 }, "Review the proposed change before signing."))), /* @__PURE__ */ React2.createElement(Badge, { variant: "light", color: changedDiffs.length > 0 ? "accent" : "gray", tt: "none" }, getChangeCountLabel(changedDiffs.length))), /* @__PURE__ */ React2.createElement(
229
+ SegmentedControl,
230
+ {
231
+ value: activeTab,
232
+ onChange: (value) => setActiveTab(value),
233
+ fullWidth: true,
234
+ data: [
235
+ { label: "Summary", value: "summary" },
236
+ { label: "Changes", value: "changes" },
237
+ { label: "Details", value: "details" }
238
+ ]
239
+ }
240
+ ), /* @__PURE__ */ React2.createElement(ScrollArea.Autosize, { mah: 360, scrollbarSize: 4 }, activeTab === "summary" && /* @__PURE__ */ React2.createElement(Stack, { gap: "xs" }, /* @__PURE__ */ React2.createElement(Group, { gap: "xs" }, icon(IconEyeCheck, 16, "var(--mantine-color-accent-5)"), /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, changedDiffs.length > 0 ? "Proposed changes" : "No visible changes")), reviewDiffs.slice(0, 3).map((diff) => /* @__PURE__ */ React2.createElement(ChangeSummaryLine, { key: diff.key, diff })), reviewDiffs.length > 3 && /* @__PURE__ */ React2.createElement(Text2, { size: "xs", c: "dimmed" }, reviewDiffs.length - 3, " more ", reviewDiffs.length - 3 === 1 ? "change" : "changes", " in the Changes tab.")), activeTab === "changes" && /* @__PURE__ */ React2.createElement(Accordion, { variant: "separated", radius: "sm", defaultValue: firstChangeId }, reviewDiffs.map((diff) => /* @__PURE__ */ React2.createElement(Accordion.Item, { key: diff.key, value: diff.key }, /* @__PURE__ */ React2.createElement(Accordion.Control, null, /* @__PURE__ */ React2.createElement(Group, { gap: "xs", wrap: "nowrap" }, /* @__PURE__ */ React2.createElement(Badge, { size: "xs", variant: "light", color: getChangeBadgeColor(diff.changeType), tt: "none" }, changeTypeLabels[diff.changeType]), /* @__PURE__ */ React2.createElement(Text2, { size: "sm", fw: 500, lineClamp: 1 }, diff.label))), /* @__PURE__ */ React2.createElement(Accordion.Panel, null, /* @__PURE__ */ React2.createElement(ChangeDetail, { diff }))))), activeTab === "details" && /* @__PURE__ */ React2.createElement(DetailsPanel, { diffs })))
241
+ ), onSign && /* @__PURE__ */ React2.createElement(SlideToSign, { onSign, label: "Slide to Execute", disabled: signDisabled }));
242
+ }
243
+
244
+ // src/mantine/blocks/action/diff/DefaultNarrative.tsx
245
+ import React3 from "react";
246
+ import { Text as Text3 } from "@mantine/core";
247
+
248
+ // src/mantine/blocks/action/diff/useActionDiff.ts
249
+ import { useState as useState3, useEffect, useCallback, useMemo as useMemo2 } from "react";
250
+ function useActionDiff({ actionType, inputs, actorDid = "", entityDid }) {
251
+ const [diffs, setDiffs] = useState3([]);
252
+ const [error, setError] = useState3();
253
+ const [fetchKey, setFetchKey] = useState3(0);
254
+ const handlers = useBlocknoteHandlers();
255
+ const hasResolver = hasDiffResolver(actionType);
256
+ const parsedInputs = useMemo2(() => {
257
+ if (!inputs) return {};
258
+ if (typeof inputs === "object") return inputs;
259
+ try {
260
+ return JSON.parse(inputs);
261
+ } catch {
262
+ return {};
263
+ }
264
+ }, [inputs]);
265
+ const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
266
+ useEffect(() => {
267
+ if (!hasResolver) return;
268
+ const registration = getDiffResolver(actionType);
269
+ if (!registration) return;
270
+ let cancelled = false;
271
+ async function resolve() {
272
+ setError(void 0);
273
+ try {
274
+ const results = await registration.resolver(parsedInputs, {
275
+ handlers,
276
+ actorDid,
277
+ entityDid
278
+ });
279
+ if (!cancelled) {
280
+ setDiffs(results);
281
+ }
282
+ } catch (err) {
283
+ if (!cancelled) {
284
+ setError(err instanceof Error ? err.message : "Failed to resolve diffs");
285
+ }
286
+ }
287
+ }
288
+ resolve();
289
+ return () => {
290
+ cancelled = true;
291
+ };
292
+ }, [actionType, parsedInputs, actorDid, entityDid, handlers, hasResolver, fetchKey]);
293
+ return { diffs, error, hasResolver, refetch };
294
+ }
295
+
296
+ export {
297
+ SlideToSign,
298
+ ActionDiffView,
299
+ useActionDiff
300
+ };
301
+ //# sourceMappingURL=chunk-I2FPFISM.js.map
@@ -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":"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","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":[]}