@strapi/admin 5.0.0-alpha.1 → 5.0.0-alpha.2

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 (415) hide show
  1. package/dist/_chunks/{AdminSeatInfo-TjK5LW2b.js → AdminSeatInfo-JtsYpBbO.js} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-TjK5LW2b.js.map → AdminSeatInfo-JtsYpBbO.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-20pkL95U.mjs → AdminSeatInfo-ZZsKxX-S.mjs} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-20pkL95U.mjs.map → AdminSeatInfo-ZZsKxX-S.mjs.map} +1 -1
  5. package/dist/_chunks/{ApplicationInfoPage-ed6y9Q-B.mjs → ApplicationInfoPage-NhhWzHF1.mjs} +15 -15
  6. package/dist/_chunks/ApplicationInfoPage-NhhWzHF1.mjs.map +1 -0
  7. package/dist/_chunks/{ApplicationInfoPage-1OdKMDYH.js → ApplicationInfoPage-xj1SCaSR.js} +13 -13
  8. package/dist/_chunks/ApplicationInfoPage-xj1SCaSR.js.map +1 -0
  9. package/dist/_chunks/{AuthResponse-Hxop00n-.mjs → AuthResponse-jIqWZLMh.mjs} +2 -2
  10. package/dist/_chunks/{AuthResponse-Hxop00n-.mjs.map → AuthResponse-jIqWZLMh.mjs.map} +1 -1
  11. package/dist/_chunks/{AuthResponse-sca_wjIN.js → AuthResponse-maUe9KWA.js} +2 -2
  12. package/dist/_chunks/{AuthResponse-sca_wjIN.js.map → AuthResponse-maUe9KWA.js.map} +1 -1
  13. package/dist/_chunks/{AuthenticatedLayout-knXNB2i2.mjs → AuthenticatedLayout-Ffy6uoNF.mjs} +27 -22
  14. package/dist/_chunks/AuthenticatedLayout-Ffy6uoNF.mjs.map +1 -0
  15. package/dist/_chunks/{AuthenticatedLayout-PPlOm7kb.js → AuthenticatedLayout-kxORHKAl.js} +29 -25
  16. package/dist/_chunks/AuthenticatedLayout-kxORHKAl.js.map +1 -0
  17. package/dist/_chunks/{ComponentConfigurationPage-xZMDjeVf.js → ComponentConfigurationPage-JMCc1P7r.js} +12 -11
  18. package/dist/_chunks/ComponentConfigurationPage-JMCc1P7r.js.map +1 -0
  19. package/dist/_chunks/{ComponentConfigurationPage-okd3XovW.mjs → ComponentConfigurationPage-oiBCHXQO.mjs} +12 -11
  20. package/dist/_chunks/ComponentConfigurationPage-oiBCHXQO.mjs.map +1 -0
  21. package/dist/_chunks/{CreateActionEE-E6YNdAVx.js → CreateActionEE-ThopeFZP.js} +2 -2
  22. package/dist/_chunks/{CreateActionEE-E6YNdAVx.js.map → CreateActionEE-ThopeFZP.js.map} +1 -1
  23. package/dist/_chunks/{CreateActionEE-PaZYJ410.mjs → CreateActionEE-VMKfXSGW.mjs} +2 -2
  24. package/dist/_chunks/{CreateActionEE-PaZYJ410.mjs.map → CreateActionEE-VMKfXSGW.mjs.map} +1 -1
  25. package/dist/_chunks/{CreatePage-P1F3dkB3.mjs → CreatePage-6AeIanOF.mjs} +16 -17
  26. package/dist/_chunks/CreatePage-6AeIanOF.mjs.map +1 -0
  27. package/dist/_chunks/{CreatePage-PM_r99U5.mjs → CreatePage-Gh5xb10f.mjs} +9 -10
  28. package/dist/_chunks/CreatePage-Gh5xb10f.mjs.map +1 -0
  29. package/dist/_chunks/{CreatePage-hlkPO2Cv.js → CreatePage-JIHfFWS7.js} +3 -3
  30. package/dist/_chunks/{CreatePage-hlkPO2Cv.js.map → CreatePage-JIHfFWS7.js.map} +1 -1
  31. package/dist/_chunks/{CreatePage-1Oi4-aR6.js → CreatePage-WWKaoNH7.js} +16 -17
  32. package/dist/_chunks/CreatePage-WWKaoNH7.js.map +1 -0
  33. package/dist/_chunks/{CreatePage-6458K0l9.mjs → CreatePage-hxFhldpL.mjs} +3 -3
  34. package/dist/_chunks/{CreatePage-6458K0l9.mjs.map → CreatePage-hxFhldpL.mjs.map} +1 -1
  35. package/dist/_chunks/{CreatePage-DmNFNVN9.js → CreatePage-yjmy0z57.js} +9 -10
  36. package/dist/_chunks/CreatePage-yjmy0z57.js.map +1 -0
  37. package/dist/_chunks/{CreateView-AWmN1xWJ.js → CreateView-J48m0lSL.js} +3 -3
  38. package/dist/_chunks/{CreateView-AWmN1xWJ.js.map → CreateView-J48m0lSL.js.map} +1 -1
  39. package/dist/_chunks/{CreateView-hUH4bf5k.js → CreateView-Vqd1PVrJ.js} +3 -3
  40. package/dist/_chunks/{CreateView-hUH4bf5k.js.map → CreateView-Vqd1PVrJ.js.map} +1 -1
  41. package/dist/_chunks/{CreateView-cTvLLIgu.mjs → CreateView-oBp0NzJx.mjs} +3 -3
  42. package/dist/_chunks/{CreateView-cTvLLIgu.mjs.map → CreateView-oBp0NzJx.mjs.map} +1 -1
  43. package/dist/_chunks/{CreateView-pBI75ZwZ.mjs → CreateView-qzpeDBvR.mjs} +3 -3
  44. package/dist/_chunks/{CreateView-pBI75ZwZ.mjs.map → CreateView-qzpeDBvR.mjs.map} +1 -1
  45. package/dist/_chunks/{EditConfigurationPage-LItt0mJo.mjs → EditConfigurationPage-MAUfMzG6.mjs} +11 -10
  46. package/dist/_chunks/EditConfigurationPage-MAUfMzG6.mjs.map +1 -0
  47. package/dist/_chunks/{EditConfigurationPage-PZ4yq1bM.js → EditConfigurationPage-PKHUVKGD.js} +11 -10
  48. package/dist/_chunks/EditConfigurationPage-PKHUVKGD.js.map +1 -0
  49. package/dist/_chunks/{EditPage-W6hncyNY.js → EditPage-7bVupT7n.js} +15 -15
  50. package/dist/_chunks/EditPage-7bVupT7n.js.map +1 -0
  51. package/dist/_chunks/{EditPage-MPNLCYgQ.mjs → EditPage-DQUZsl8H.mjs} +16 -17
  52. package/dist/_chunks/EditPage-DQUZsl8H.mjs.map +1 -0
  53. package/dist/_chunks/{EditPage-mU2WAH0F.js → EditPage-Hxt5uBXk.js} +10 -11
  54. package/dist/_chunks/EditPage-Hxt5uBXk.js.map +1 -0
  55. package/dist/_chunks/{EditPage-30rqjB1d.mjs → EditPage-Izmz7bdh.mjs} +16 -16
  56. package/dist/_chunks/EditPage-Izmz7bdh.mjs.map +1 -0
  57. package/dist/_chunks/{EditPage-_N_lm93z.js → EditPage-QA0-S3kV.js} +14 -15
  58. package/dist/_chunks/EditPage-QA0-S3kV.js.map +1 -0
  59. package/dist/_chunks/{EditPage--EPGgPNr.mjs → EditPage-THSaM4-0.mjs} +10 -11
  60. package/dist/_chunks/EditPage-THSaM4-0.mjs.map +1 -0
  61. package/dist/_chunks/{EditPage-RpzlPkkU.js → EditPage-vUQIn3OJ.js} +18 -19
  62. package/dist/_chunks/{EditPage-RpzlPkkU.js.map → EditPage-vUQIn3OJ.js.map} +1 -1
  63. package/dist/_chunks/{EditPage-GRIZWtGz.mjs → EditPage-zpnfFOjc.mjs} +18 -19
  64. package/dist/_chunks/{EditPage-GRIZWtGz.mjs.map → EditPage-zpnfFOjc.mjs.map} +1 -1
  65. package/dist/_chunks/{EditView-wDP9PNQY.js → EditView-63ynF0vf.js} +12 -13
  66. package/dist/_chunks/EditView-63ynF0vf.js.map +1 -0
  67. package/dist/_chunks/{EditView-0lXpbgG0.mjs → EditView-cfOpTlAi.mjs} +14 -15
  68. package/dist/_chunks/EditView-cfOpTlAi.mjs.map +1 -0
  69. package/dist/_chunks/{EditViewPage-0Pd8zBi7.js → EditViewPage--SujdXIG.js} +16 -18
  70. package/dist/_chunks/EditViewPage--SujdXIG.js.map +1 -0
  71. package/dist/_chunks/{EditViewPage-R6diW-gL.mjs → EditViewPage-JFzIJClS.mjs} +6 -7
  72. package/dist/_chunks/EditViewPage-JFzIJClS.mjs.map +1 -0
  73. package/dist/_chunks/{EditViewPage-ed0-10GO.js → EditViewPage-kkCJlZyh.js} +8 -9
  74. package/dist/_chunks/EditViewPage-kkCJlZyh.js.map +1 -0
  75. package/dist/_chunks/{EditViewPage-uWYR_o8w.mjs → EditViewPage-vz8UJ4U_.mjs} +17 -18
  76. package/dist/_chunks/EditViewPage-vz8UJ4U_.mjs.map +1 -0
  77. package/dist/_chunks/{EventsTable-R_AHW6Z4.js → EventsTable-1X4uyY8J.js} +2 -2
  78. package/dist/_chunks/{EventsTable-R_AHW6Z4.js.map → EventsTable-1X4uyY8J.js.map} +1 -1
  79. package/dist/_chunks/{EventsTable-CqN6AzV9.mjs → EventsTable-dN2MNNFu.mjs} +2 -2
  80. package/dist/_chunks/{EventsTable-CqN6AzV9.mjs.map → EventsTable-dN2MNNFu.mjs.map} +1 -1
  81. package/dist/_chunks/{FieldTypeIcon-rAK1gg9p.mjs → FieldTypeIcon-4-UZzZla.mjs} +2 -2
  82. package/dist/_chunks/{FieldTypeIcon-rAK1gg9p.mjs.map → FieldTypeIcon-4-UZzZla.mjs.map} +1 -1
  83. package/dist/_chunks/{FieldTypeIcon-1WDWx0cR.js → FieldTypeIcon-wxfhExw2.js} +2 -2
  84. package/dist/_chunks/{FieldTypeIcon-1WDWx0cR.js.map → FieldTypeIcon-wxfhExw2.js.map} +1 -1
  85. package/dist/_chunks/{Filters-rPaxqj4F.mjs → Filters--lh-i85A.mjs} +2 -3
  86. package/dist/_chunks/Filters--lh-i85A.mjs.map +1 -0
  87. package/dist/_chunks/{Filters-f6ghLf0Z.js → Filters-V0VODaNk.js} +4 -5
  88. package/dist/_chunks/Filters-V0VODaNk.js.map +1 -0
  89. package/dist/_chunks/{Form-eqzCPjSo.js → Form-6QJjWK34.js} +5 -6
  90. package/dist/_chunks/Form-6QJjWK34.js.map +1 -0
  91. package/dist/_chunks/{Form-QOZA9Aq6.mjs → Form-HXiNxSZi.mjs} +5 -6
  92. package/dist/_chunks/Form-HXiNxSZi.mjs.map +1 -0
  93. package/dist/_chunks/{History-Eq4_WQPf.mjs → History-CRGqDfHr.mjs} +4 -5
  94. package/dist/_chunks/History-CRGqDfHr.mjs.map +1 -0
  95. package/dist/_chunks/{History-j00hpmXV.js → History-R_4lEy01.js} +9 -10
  96. package/dist/_chunks/History-R_4lEy01.js.map +1 -0
  97. package/dist/_chunks/{HomePage-gTElgmEK.mjs → HomePage-GJRtRqAj.mjs} +3 -3
  98. package/dist/_chunks/{HomePage-gTElgmEK.mjs.map → HomePage-GJRtRqAj.mjs.map} +1 -1
  99. package/dist/_chunks/{HomePage-O-TRGX5T.mjs → HomePage-Si17pjt5.mjs} +5 -6
  100. package/dist/_chunks/HomePage-Si17pjt5.mjs.map +1 -0
  101. package/dist/_chunks/{HomePage-3IVOMrYf.js → HomePage-oiaJD-JE.js} +5 -6
  102. package/dist/_chunks/HomePage-oiaJD-JE.js.map +1 -0
  103. package/dist/_chunks/{HomePage-79fqDlve.js → HomePage-rEW7Jpww.js} +3 -3
  104. package/dist/_chunks/{HomePage-79fqDlve.js.map → HomePage-rEW7Jpww.js.map} +1 -1
  105. package/dist/_chunks/{InputRenderer-bJwYq9ga.mjs → InputRenderer-JfwBoJk0.mjs} +40 -18
  106. package/dist/_chunks/InputRenderer-JfwBoJk0.mjs.map +1 -0
  107. package/dist/_chunks/{InputRenderer-AVDw8MeU.js → InputRenderer-hWILsDgK.js} +42 -20
  108. package/dist/_chunks/InputRenderer-hWILsDgK.js.map +1 -0
  109. package/dist/_chunks/{InstalledPluginsPage-R2hVFPZl.mjs → InstalledPluginsPage-XqzfeZgq.mjs} +7 -9
  110. package/dist/_chunks/InstalledPluginsPage-XqzfeZgq.mjs.map +1 -0
  111. package/dist/_chunks/{InstalledPluginsPage-FkR2xkQz.js → InstalledPluginsPage-ao6yYe7N.js} +6 -8
  112. package/dist/_chunks/InstalledPluginsPage-ao6yYe7N.js.map +1 -0
  113. package/dist/_chunks/{Layout-omCNy92r.mjs → Layout-2dctwEHz.mjs} +2 -2
  114. package/dist/_chunks/{Layout-omCNy92r.mjs.map → Layout-2dctwEHz.mjs.map} +1 -1
  115. package/dist/_chunks/{Layout-cV6Se3U9.mjs → Layout-3sYAgWn4.mjs} +6 -6
  116. package/dist/_chunks/Layout-3sYAgWn4.mjs.map +1 -0
  117. package/dist/_chunks/{Layout-jweb3cF3.js → Layout-4vMUN0Ez.js} +2 -2
  118. package/dist/_chunks/{Layout-jweb3cF3.js.map → Layout-4vMUN0Ez.js.map} +1 -1
  119. package/dist/_chunks/{Layout-G49-Vc5u.js → Layout-kbqdKkiF.js} +5 -5
  120. package/dist/_chunks/Layout-kbqdKkiF.js.map +1 -0
  121. package/dist/_chunks/{ListConfigurationPage-70qtv4Ci.js → ListConfigurationPage-BXuW_9Wt.js} +10 -11
  122. package/dist/_chunks/ListConfigurationPage-BXuW_9Wt.js.map +1 -0
  123. package/dist/_chunks/{ListConfigurationPage-PrJNO_6y.mjs → ListConfigurationPage-lPILAPkW.mjs} +10 -11
  124. package/dist/_chunks/ListConfigurationPage-lPILAPkW.mjs.map +1 -0
  125. package/dist/_chunks/{ListPage-78Cv8Vfq.js → ListPage-02WM7Pt9.js} +11 -12
  126. package/dist/_chunks/ListPage-02WM7Pt9.js.map +1 -0
  127. package/dist/_chunks/{ListPage-2lswUYQN.js → ListPage-7TAp-q4k.js} +15 -16
  128. package/dist/_chunks/ListPage-7TAp-q4k.js.map +1 -0
  129. package/dist/_chunks/{ListPage-edro79m2.mjs → ListPage-EdOy02-v.mjs} +11 -12
  130. package/dist/_chunks/ListPage-EdOy02-v.mjs.map +1 -0
  131. package/dist/_chunks/{ListPage-mAUCZIg8.mjs → ListPage-OaldiDCh.mjs} +57 -59
  132. package/dist/_chunks/ListPage-OaldiDCh.mjs.map +1 -0
  133. package/dist/_chunks/{ListPage-Q81SX0vA.mjs → ListPage-R8Qs69v7.mjs} +3 -3
  134. package/dist/_chunks/{ListPage-Q81SX0vA.mjs.map → ListPage-R8Qs69v7.mjs.map} +1 -1
  135. package/dist/_chunks/{ListPage-Cvn3WbMH.mjs → ListPage-SCTNGhhO.mjs} +16 -17
  136. package/dist/_chunks/ListPage-SCTNGhhO.mjs.map +1 -0
  137. package/dist/_chunks/{ListPage-xFkcmM1b.mjs → ListPage-YZ45BiMe.mjs} +17 -18
  138. package/dist/_chunks/ListPage-YZ45BiMe.mjs.map +1 -0
  139. package/dist/_chunks/{ListPage-7dZ3nYvc.js → ListPage-ZWUo77nT.js} +55 -56
  140. package/dist/_chunks/ListPage-ZWUo77nT.js.map +1 -0
  141. package/dist/_chunks/{ListPage-Ms6egnF5.js → ListPage-bE4a6YkV.js} +3 -3
  142. package/dist/_chunks/{ListPage-Ms6egnF5.js.map → ListPage-bE4a6YkV.js.map} +1 -1
  143. package/dist/_chunks/{ListPage-NmUS_cOz.mjs → ListPage-p17R2Gql.mjs} +14 -18
  144. package/dist/_chunks/ListPage-p17R2Gql.mjs.map +1 -0
  145. package/dist/_chunks/{ListPage-Pf5LxUYn.js → ListPage-rCVvOLlD.js} +14 -20
  146. package/dist/_chunks/ListPage-rCVvOLlD.js.map +1 -0
  147. package/dist/_chunks/{ListPage-yymh17qi.js → ListPage-u6uVacPz.js} +14 -15
  148. package/dist/_chunks/ListPage-u6uVacPz.js.map +1 -0
  149. package/dist/_chunks/{ListView--43zLiHW.mjs → ListView--O7X6dMw.mjs} +13 -14
  150. package/dist/_chunks/ListView--O7X6dMw.mjs.map +1 -0
  151. package/dist/_chunks/{ListView-YtMAQnXL.js → ListView-SsUn5vcn.js} +11 -12
  152. package/dist/_chunks/ListView-SsUn5vcn.js.map +1 -0
  153. package/dist/_chunks/{ListView-nfA6o3qO.js → ListView-ZkjwQBXQ.js} +10 -11
  154. package/dist/_chunks/ListView-ZkjwQBXQ.js.map +1 -0
  155. package/dist/_chunks/{ListView-qPiKeCxj.mjs → ListView-oP-C8SCR.mjs} +12 -13
  156. package/dist/_chunks/ListView-oP-C8SCR.mjs.map +1 -0
  157. package/dist/_chunks/{ListViewPage-fPFonK_X.mjs → ListViewPage-1VNVP9Rw.mjs} +12 -13
  158. package/dist/_chunks/ListViewPage-1VNVP9Rw.mjs.map +1 -0
  159. package/dist/_chunks/{ListViewPage-Ys7-G2XX.js → ListViewPage-idgrhBAP.js} +16 -17
  160. package/dist/_chunks/ListViewPage-idgrhBAP.js.map +1 -0
  161. package/dist/_chunks/{Login-Ge3DZEpr.js → Login-4Igrm6CC.js} +2 -2
  162. package/dist/_chunks/{Login-Ge3DZEpr.js.map → Login-4Igrm6CC.js.map} +1 -1
  163. package/dist/_chunks/{Login-6kXI90Vy.mjs → Login-B55AM-7k.mjs} +2 -2
  164. package/dist/_chunks/{Login-6kXI90Vy.mjs.map → Login-B55AM-7k.mjs.map} +1 -1
  165. package/dist/_chunks/{MagicLinkEE-HXWaLr0K.mjs → MagicLinkEE-Zy_9ZZ7y.mjs} +3 -3
  166. package/dist/_chunks/{MagicLinkEE-HXWaLr0K.mjs.map → MagicLinkEE-Zy_9ZZ7y.mjs.map} +1 -1
  167. package/dist/_chunks/{MagicLinkEE-sXtA2gUK.js → MagicLinkEE-v7xTuVEA.js} +3 -3
  168. package/dist/_chunks/{MagicLinkEE-sXtA2gUK.js.map → MagicLinkEE-v7xTuVEA.js.map} +1 -1
  169. package/dist/_chunks/{MarketplacePage-hVOJ9_0k.mjs → MarketplacePage-UGys0LVN.mjs} +20 -17
  170. package/dist/_chunks/MarketplacePage-UGys0LVN.mjs.map +1 -0
  171. package/dist/_chunks/{MarketplacePage-s8KDwNwK.js → MarketplacePage-tWKM5xe8.js} +22 -19
  172. package/dist/_chunks/MarketplacePage-tWKM5xe8.js.map +1 -0
  173. package/dist/_chunks/{NoContentTypePage-szvJnQKF.mjs → NoContentTypePage-BaaTD5uB.mjs} +4 -6
  174. package/dist/_chunks/NoContentTypePage-BaaTD5uB.mjs.map +1 -0
  175. package/dist/_chunks/{NoContentTypePage-7YEcgsE3.js → NoContentTypePage-Lbuve_Uu.js} +3 -5
  176. package/dist/_chunks/NoContentTypePage-Lbuve_Uu.js.map +1 -0
  177. package/dist/_chunks/{NoPermissionsPage-pqQFFlXa.mjs → NoPermissionsPage--Oa97N7k.mjs} +5 -7
  178. package/dist/_chunks/NoPermissionsPage--Oa97N7k.mjs.map +1 -0
  179. package/dist/_chunks/{NoPermissionsPage-UX-5msLb.js → NoPermissionsPage-q44k5VFX.js} +3 -5
  180. package/dist/_chunks/NoPermissionsPage-q44k5VFX.js.map +1 -0
  181. package/dist/_chunks/{Permissions-a0IZJ8dM.js → Permissions-CFuwI0Ni.js} +5 -6
  182. package/dist/_chunks/Permissions-CFuwI0Ni.js.map +1 -0
  183. package/dist/_chunks/{Permissions-NUaDxULo.mjs → Permissions-NbmBkSB4.mjs} +3 -3
  184. package/dist/_chunks/Permissions-NbmBkSB4.mjs.map +1 -0
  185. package/dist/_chunks/{PrivateRoute-eP4-pBby.mjs → PrivateRoute-YN_98pM_.mjs} +2 -2
  186. package/dist/_chunks/{PrivateRoute-eP4-pBby.mjs.map → PrivateRoute-YN_98pM_.mjs.map} +1 -1
  187. package/dist/_chunks/{PrivateRoute-KGxyTa5b.js → PrivateRoute-avlq1MEy.js} +2 -2
  188. package/dist/_chunks/{PrivateRoute-KGxyTa5b.js.map → PrivateRoute-avlq1MEy.js.map} +1 -1
  189. package/dist/_chunks/{ProfilePage-MBCGqbc_.js → ProfilePage-brPbqDP1.js} +14 -16
  190. package/dist/_chunks/ProfilePage-brPbqDP1.js.map +1 -0
  191. package/dist/_chunks/{ProfilePage-LXB-_EZ8.mjs → ProfilePage-eCIvxxJY.mjs} +15 -17
  192. package/dist/_chunks/ProfilePage-eCIvxxJY.mjs.map +1 -0
  193. package/dist/_chunks/{ReviewWorkflowsColumn-Ancp7-x3.js → ReviewWorkflowsColumn-HfjzpLFU.js} +2 -2
  194. package/dist/_chunks/{ReviewWorkflowsColumn-Ancp7-x3.js.map → ReviewWorkflowsColumn-HfjzpLFU.js.map} +1 -1
  195. package/dist/_chunks/{ReviewWorkflowsColumn-WzYpj2O3.mjs → ReviewWorkflowsColumn-sPZxvFUd.mjs} +2 -2
  196. package/dist/_chunks/{ReviewWorkflowsColumn-WzYpj2O3.mjs.map → ReviewWorkflowsColumn-sPZxvFUd.mjs.map} +1 -1
  197. package/dist/_chunks/{SelectRoles-Pr2wqehq.js → SelectRoles-BmNzL0q5.js} +9 -7
  198. package/dist/_chunks/SelectRoles-BmNzL0q5.js.map +1 -0
  199. package/dist/_chunks/{SelectRoles-Dxz_rAaT.mjs → SelectRoles-jvH4WUf6.mjs} +8 -6
  200. package/dist/_chunks/SelectRoles-jvH4WUf6.mjs.map +1 -0
  201. package/dist/_chunks/{SingleSignOnPage-4dK4id8H.js → SingleSignOnPage-ZyiHtZxJ.js} +10 -11
  202. package/dist/_chunks/SingleSignOnPage-ZyiHtZxJ.js.map +1 -0
  203. package/dist/_chunks/{SingleSignOnPage-gxgIeURz.mjs → SingleSignOnPage-aMd3wcAh.mjs} +12 -13
  204. package/dist/_chunks/SingleSignOnPage-aMd3wcAh.mjs.map +1 -0
  205. package/dist/_chunks/{Table-NiTkS4IC.mjs → Table-591I_RMU.mjs} +2 -3
  206. package/dist/_chunks/Table-591I_RMU.mjs.map +1 -0
  207. package/dist/_chunks/{Table-_9gVkGGi.js → Table-aUfykqgd.js} +3 -4
  208. package/dist/_chunks/Table-aUfykqgd.js.map +1 -0
  209. package/dist/_chunks/{TokenTypeSelect-jtfCyMMZ.mjs → TokenTypeSelect-vIBdBE9t.mjs} +9 -10
  210. package/dist/_chunks/TokenTypeSelect-vIBdBE9t.mjs.map +1 -0
  211. package/dist/_chunks/{TokenTypeSelect-3aWUm1cW.js → TokenTypeSelect-vp-54yBv.js} +10 -11
  212. package/dist/_chunks/TokenTypeSelect-vp-54yBv.js.map +1 -0
  213. package/dist/_chunks/{UseCasePage-QK-B8FfM.js → UseCasePage-0_alQEc9.js} +6 -7
  214. package/dist/_chunks/UseCasePage-0_alQEc9.js.map +1 -0
  215. package/dist/_chunks/{UseCasePage-0qXYZ8kt.mjs → UseCasePage-Cxu2FeWo.mjs} +6 -7
  216. package/dist/_chunks/UseCasePage-Cxu2FeWo.mjs.map +1 -0
  217. package/dist/_chunks/{apiTokens-TayNdk_V.js → apiTokens-IG3rF-G2.js} +2 -2
  218. package/dist/_chunks/{apiTokens-TayNdk_V.js.map → apiTokens-IG3rF-G2.js.map} +1 -1
  219. package/dist/_chunks/{apiTokens-DO6vkoyd.mjs → apiTokens-wLmJ3Liv.mjs} +2 -2
  220. package/dist/_chunks/{apiTokens-DO6vkoyd.mjs.map → apiTokens-wLmJ3Liv.mjs.map} +1 -1
  221. package/dist/_chunks/{constants-_T5uxsuv.mjs → constants-0OGkpIzK.mjs} +3 -3
  222. package/dist/_chunks/{constants-_T5uxsuv.mjs.map → constants-0OGkpIzK.mjs.map} +1 -1
  223. package/dist/_chunks/{constants-RZp8o_c4.js → constants-7yqqXq3r.js} +2 -2
  224. package/dist/_chunks/{constants-RZp8o_c4.js.map → constants-7yqqXq3r.js.map} +1 -1
  225. package/dist/_chunks/{constants-FEW7x2Od.mjs → constants-JgR8CVx2.mjs} +2 -2
  226. package/dist/_chunks/{constants-FEW7x2Od.mjs.map → constants-JgR8CVx2.mjs.map} +1 -1
  227. package/dist/_chunks/{constants-Xd-X3SCR.js → constants-XJLrl2Tl.js} +3 -3
  228. package/dist/_chunks/{constants-Xd-X3SCR.js.map → constants-XJLrl2Tl.js.map} +1 -1
  229. package/dist/_chunks/{index-hjUhNUvw.mjs → index-GIVuHJgC.mjs} +647 -312
  230. package/dist/_chunks/index-GIVuHJgC.mjs.map +1 -0
  231. package/dist/_chunks/{index-ejSDPT-T.js → index-haHGOQMJ.js} +553 -218
  232. package/dist/_chunks/index-haHGOQMJ.js.map +1 -0
  233. package/dist/_chunks/{selectors-uLWxH-jN.mjs → selectors--2Vzk8PA.mjs} +2 -2
  234. package/dist/_chunks/{selectors-uLWxH-jN.mjs.map → selectors--2Vzk8PA.mjs.map} +1 -1
  235. package/dist/_chunks/{selectors-T2YIN4Fb.js → selectors-NSSzzIzx.js} +2 -2
  236. package/dist/_chunks/{selectors-T2YIN4Fb.js.map → selectors-NSSzzIzx.js.map} +1 -1
  237. package/dist/_chunks/{transferTokens-jdkk-sPx.mjs → transferTokens-WIsWKVbF.mjs} +2 -2
  238. package/dist/_chunks/{transferTokens-jdkk-sPx.mjs.map → transferTokens-WIsWKVbF.mjs.map} +1 -1
  239. package/dist/_chunks/{transferTokens-T-kGMb3U.js → transferTokens-xL4mlopP.js} +2 -2
  240. package/dist/_chunks/{transferTokens-T-kGMb3U.js.map → transferTokens-xL4mlopP.js.map} +1 -1
  241. package/dist/_chunks/{useAdminRoles-QJQS1BCd.mjs → useAdminRoles--ozrdfW_.mjs} +2 -2
  242. package/dist/_chunks/{useAdminRoles-QJQS1BCd.mjs.map → useAdminRoles--ozrdfW_.mjs.map} +1 -1
  243. package/dist/_chunks/{useAdminRoles-SnzC_mvy.js → useAdminRoles-Y25Pjlcy.js} +2 -2
  244. package/dist/_chunks/{useAdminRoles-SnzC_mvy.js.map → useAdminRoles-Y25Pjlcy.js.map} +1 -1
  245. package/dist/_chunks/{useContentTypes-Lpg-eJmK.js → useContentTypes-Vr8jkHQL.js} +4 -5
  246. package/dist/_chunks/useContentTypes-Vr8jkHQL.js.map +1 -0
  247. package/dist/_chunks/{useContentTypes-U-n1-lz0.mjs → useContentTypes-ralhLmpD.mjs} +4 -5
  248. package/dist/_chunks/useContentTypes-ralhLmpD.mjs.map +1 -0
  249. package/dist/_chunks/{useLicenseLimitNotification-yJHxF4YO.mjs → useLicenseLimitNotification-RSTkqcfW.mjs} +5 -6
  250. package/dist/_chunks/useLicenseLimitNotification-RSTkqcfW.mjs.map +1 -0
  251. package/dist/_chunks/{useLicenseLimitNotification-Hjv_LKmp.js → useLicenseLimitNotification-fSsffVh-.js} +5 -6
  252. package/dist/_chunks/useLicenseLimitNotification-fSsffVh-.js.map +1 -0
  253. package/dist/_chunks/{useReviewWorkflows-0rQx2KxS.mjs → useReviewWorkflows--7WPIykR.mjs} +2 -2
  254. package/dist/_chunks/{useReviewWorkflows-0rQx2KxS.mjs.map → useReviewWorkflows--7WPIykR.mjs.map} +1 -1
  255. package/dist/_chunks/{useReviewWorkflows-QoSEilRp.js → useReviewWorkflows-4t3eVbDa.js} +2 -2
  256. package/dist/_chunks/{useReviewWorkflows-QoSEilRp.js.map → useReviewWorkflows-4t3eVbDa.js.map} +1 -1
  257. package/dist/_chunks/{useSyncRbac-hZJWbmmY.js → useSyncRbac-Fw5UPeMQ.js} +2 -2
  258. package/dist/_chunks/{useSyncRbac-hZJWbmmY.js.map → useSyncRbac-Fw5UPeMQ.js.map} +1 -1
  259. package/dist/_chunks/{useSyncRbac-wVgN6XIc.mjs → useSyncRbac-JNQibLFa.mjs} +2 -2
  260. package/dist/_chunks/{useSyncRbac-wVgN6XIc.mjs.map → useSyncRbac-JNQibLFa.mjs.map} +1 -1
  261. package/dist/_chunks/{useWebhooks-1ZG0V0Mc.js → useWebhooks-IXb4Ks8E.js} +2 -2
  262. package/dist/_chunks/{useWebhooks-1ZG0V0Mc.js.map → useWebhooks-IXb4Ks8E.js.map} +1 -1
  263. package/dist/_chunks/{useWebhooks-WBwti5Jl.mjs → useWebhooks-sfNt0r3v.mjs} +2 -2
  264. package/dist/_chunks/{useWebhooks-WBwti5Jl.mjs.map → useWebhooks-sfNt0r3v.mjs.map} +1 -1
  265. package/dist/_chunks/{validateWorkflow-23kb45Oa.mjs → validateWorkflow-YRBggwod.mjs} +5 -6
  266. package/dist/_chunks/validateWorkflow-YRBggwod.mjs.map +1 -0
  267. package/dist/_chunks/{validateWorkflow-MaEpFiHz.js → validateWorkflow-akFNValJ.js} +8 -9
  268. package/dist/_chunks/validateWorkflow-akFNValJ.js.map +1 -0
  269. package/dist/_chunks/{validation-7cD0kJHF.js → validation--QPWqn0e.js} +2 -2
  270. package/dist/_chunks/{validation-7cD0kJHF.js.map → validation--QPWqn0e.js.map} +1 -1
  271. package/dist/_chunks/{validation-rilbXPnt.mjs → validation-hlioQ0PO.mjs} +2 -2
  272. package/dist/_chunks/{validation-rilbXPnt.mjs.map → validation-hlioQ0PO.mjs.map} +1 -1
  273. package/dist/admin/index.js +7 -1
  274. package/dist/admin/index.js.map +1 -1
  275. package/dist/admin/index.mjs +28 -22
  276. package/dist/admin/src/components/PageHelpers.d.ts +6 -2
  277. package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +1 -1
  278. package/dist/admin/src/content-manager/history/tests/mockData.d.ts +692 -0
  279. package/dist/admin/src/content-manager/history/tests/server.d.ts +3 -0
  280. package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +2 -1
  281. package/dist/admin/src/content-manager/services/api.d.ts +1 -1
  282. package/dist/admin/src/content-manager/services/components.d.ts +2 -2
  283. package/dist/admin/src/content-manager/services/contentTypes.d.ts +3 -3
  284. package/dist/admin/src/content-manager/services/documents.d.ts +17 -20
  285. package/dist/admin/src/content-manager/services/init.d.ts +1 -1
  286. package/dist/admin/src/content-manager/services/relations.d.ts +2 -2
  287. package/dist/admin/src/content-manager/services/uid.d.ts +3 -3
  288. package/dist/admin/src/core/store/configure.d.ts +2 -2
  289. package/dist/admin/src/core/store/hooks.d.ts +3 -3
  290. package/dist/admin/src/features/AppInfo.d.ts +22 -0
  291. package/dist/admin/src/features/Notifications.d.ts +47 -0
  292. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +4 -3
  293. package/dist/admin/src/hooks/useClipboard.d.ts +4 -0
  294. package/dist/admin/src/hooks/useFetchClient.d.ts +43 -0
  295. package/dist/admin/src/hooks/useFocusInputField.d.ts +20 -0
  296. package/dist/admin/src/hooks/useQueryParams.d.ts +5 -0
  297. package/dist/admin/src/index.d.ts +8 -4
  298. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +1 -1
  299. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  300. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  301. package/dist/admin/src/selectors.d.ts +2 -2
  302. package/dist/admin/src/utils/baseQuery.d.ts +1 -1
  303. package/dist/admin/src/utils/getFetchClient.d.ts +30 -0
  304. package/dist/admin/src/utils/getYupInnerErrors.d.ts +7 -0
  305. package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -2
  306. package/dist/admin/src/utils/users.d.ts +1 -1
  307. package/dist/admin/tests/index.js +49173 -0
  308. package/dist/admin/tests/index.js.map +1 -0
  309. package/dist/admin/tests/index.mjs +49135 -0
  310. package/dist/admin/tests/index.mjs.map +1 -0
  311. package/dist/admin/tests/mockData.d.ts +2053 -0
  312. package/dist/admin/tests/server.d.ts +2 -0
  313. package/dist/admin/tests/setup.d.ts +1 -0
  314. package/dist/admin/tests/store.d.ts +468 -0
  315. package/dist/admin/tests/utils.d.ts +511 -0
  316. package/dist/server/src/validation/api-tokens.d.ts +4 -27
  317. package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
  318. package/dist/server/src/validation/authentication/register.d.ts +2 -8
  319. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  320. package/dist/server/src/validation/permission.d.ts +4 -53
  321. package/dist/server/src/validation/permission.d.ts.map +1 -1
  322. package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -7
  323. package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
  324. package/dist/server/src/validation/role.d.ts +6 -23
  325. package/dist/server/src/validation/role.d.ts.map +1 -1
  326. package/dist/server/src/validation/transfer/token.d.ts +4 -23
  327. package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
  328. package/dist/server/src/validation/user.d.ts +8 -56
  329. package/dist/server/src/validation/user.d.ts.map +1 -1
  330. package/package.json +12 -12
  331. package/dist/_chunks/ApplicationInfoPage-1OdKMDYH.js.map +0 -1
  332. package/dist/_chunks/ApplicationInfoPage-ed6y9Q-B.mjs.map +0 -1
  333. package/dist/_chunks/AuthenticatedLayout-PPlOm7kb.js.map +0 -1
  334. package/dist/_chunks/AuthenticatedLayout-knXNB2i2.mjs.map +0 -1
  335. package/dist/_chunks/ComponentConfigurationPage-okd3XovW.mjs.map +0 -1
  336. package/dist/_chunks/ComponentConfigurationPage-xZMDjeVf.js.map +0 -1
  337. package/dist/_chunks/CreatePage-1Oi4-aR6.js.map +0 -1
  338. package/dist/_chunks/CreatePage-DmNFNVN9.js.map +0 -1
  339. package/dist/_chunks/CreatePage-P1F3dkB3.mjs.map +0 -1
  340. package/dist/_chunks/CreatePage-PM_r99U5.mjs.map +0 -1
  341. package/dist/_chunks/EditConfigurationPage-LItt0mJo.mjs.map +0 -1
  342. package/dist/_chunks/EditConfigurationPage-PZ4yq1bM.js.map +0 -1
  343. package/dist/_chunks/EditPage--EPGgPNr.mjs.map +0 -1
  344. package/dist/_chunks/EditPage-30rqjB1d.mjs.map +0 -1
  345. package/dist/_chunks/EditPage-MPNLCYgQ.mjs.map +0 -1
  346. package/dist/_chunks/EditPage-W6hncyNY.js.map +0 -1
  347. package/dist/_chunks/EditPage-_N_lm93z.js.map +0 -1
  348. package/dist/_chunks/EditPage-mU2WAH0F.js.map +0 -1
  349. package/dist/_chunks/EditView-0lXpbgG0.mjs.map +0 -1
  350. package/dist/_chunks/EditView-wDP9PNQY.js.map +0 -1
  351. package/dist/_chunks/EditViewPage-0Pd8zBi7.js.map +0 -1
  352. package/dist/_chunks/EditViewPage-R6diW-gL.mjs.map +0 -1
  353. package/dist/_chunks/EditViewPage-ed0-10GO.js.map +0 -1
  354. package/dist/_chunks/EditViewPage-uWYR_o8w.mjs.map +0 -1
  355. package/dist/_chunks/Filters-f6ghLf0Z.js.map +0 -1
  356. package/dist/_chunks/Filters-rPaxqj4F.mjs.map +0 -1
  357. package/dist/_chunks/Form-QOZA9Aq6.mjs.map +0 -1
  358. package/dist/_chunks/Form-eqzCPjSo.js.map +0 -1
  359. package/dist/_chunks/History-Eq4_WQPf.mjs.map +0 -1
  360. package/dist/_chunks/History-j00hpmXV.js.map +0 -1
  361. package/dist/_chunks/HomePage-3IVOMrYf.js.map +0 -1
  362. package/dist/_chunks/HomePage-O-TRGX5T.mjs.map +0 -1
  363. package/dist/_chunks/InputRenderer-AVDw8MeU.js.map +0 -1
  364. package/dist/_chunks/InputRenderer-bJwYq9ga.mjs.map +0 -1
  365. package/dist/_chunks/InstalledPluginsPage-FkR2xkQz.js.map +0 -1
  366. package/dist/_chunks/InstalledPluginsPage-R2hVFPZl.mjs.map +0 -1
  367. package/dist/_chunks/Layout-G49-Vc5u.js.map +0 -1
  368. package/dist/_chunks/Layout-cV6Se3U9.mjs.map +0 -1
  369. package/dist/_chunks/ListConfigurationPage-70qtv4Ci.js.map +0 -1
  370. package/dist/_chunks/ListConfigurationPage-PrJNO_6y.mjs.map +0 -1
  371. package/dist/_chunks/ListPage-2lswUYQN.js.map +0 -1
  372. package/dist/_chunks/ListPage-78Cv8Vfq.js.map +0 -1
  373. package/dist/_chunks/ListPage-7dZ3nYvc.js.map +0 -1
  374. package/dist/_chunks/ListPage-Cvn3WbMH.mjs.map +0 -1
  375. package/dist/_chunks/ListPage-NmUS_cOz.mjs.map +0 -1
  376. package/dist/_chunks/ListPage-Pf5LxUYn.js.map +0 -1
  377. package/dist/_chunks/ListPage-edro79m2.mjs.map +0 -1
  378. package/dist/_chunks/ListPage-mAUCZIg8.mjs.map +0 -1
  379. package/dist/_chunks/ListPage-xFkcmM1b.mjs.map +0 -1
  380. package/dist/_chunks/ListPage-yymh17qi.js.map +0 -1
  381. package/dist/_chunks/ListView--43zLiHW.mjs.map +0 -1
  382. package/dist/_chunks/ListView-YtMAQnXL.js.map +0 -1
  383. package/dist/_chunks/ListView-nfA6o3qO.js.map +0 -1
  384. package/dist/_chunks/ListView-qPiKeCxj.mjs.map +0 -1
  385. package/dist/_chunks/ListViewPage-Ys7-G2XX.js.map +0 -1
  386. package/dist/_chunks/ListViewPage-fPFonK_X.mjs.map +0 -1
  387. package/dist/_chunks/MarketplacePage-hVOJ9_0k.mjs.map +0 -1
  388. package/dist/_chunks/MarketplacePage-s8KDwNwK.js.map +0 -1
  389. package/dist/_chunks/NoContentTypePage-7YEcgsE3.js.map +0 -1
  390. package/dist/_chunks/NoContentTypePage-szvJnQKF.mjs.map +0 -1
  391. package/dist/_chunks/NoPermissionsPage-UX-5msLb.js.map +0 -1
  392. package/dist/_chunks/NoPermissionsPage-pqQFFlXa.mjs.map +0 -1
  393. package/dist/_chunks/Permissions-NUaDxULo.mjs.map +0 -1
  394. package/dist/_chunks/Permissions-a0IZJ8dM.js.map +0 -1
  395. package/dist/_chunks/ProfilePage-LXB-_EZ8.mjs.map +0 -1
  396. package/dist/_chunks/ProfilePage-MBCGqbc_.js.map +0 -1
  397. package/dist/_chunks/SelectRoles-Dxz_rAaT.mjs.map +0 -1
  398. package/dist/_chunks/SelectRoles-Pr2wqehq.js.map +0 -1
  399. package/dist/_chunks/SingleSignOnPage-4dK4id8H.js.map +0 -1
  400. package/dist/_chunks/SingleSignOnPage-gxgIeURz.mjs.map +0 -1
  401. package/dist/_chunks/Table-NiTkS4IC.mjs.map +0 -1
  402. package/dist/_chunks/Table-_9gVkGGi.js.map +0 -1
  403. package/dist/_chunks/TokenTypeSelect-3aWUm1cW.js.map +0 -1
  404. package/dist/_chunks/TokenTypeSelect-jtfCyMMZ.mjs.map +0 -1
  405. package/dist/_chunks/UseCasePage-0qXYZ8kt.mjs.map +0 -1
  406. package/dist/_chunks/UseCasePage-QK-B8FfM.js.map +0 -1
  407. package/dist/_chunks/index-ejSDPT-T.js.map +0 -1
  408. package/dist/_chunks/index-hjUhNUvw.mjs.map +0 -1
  409. package/dist/_chunks/useContentTypes-Lpg-eJmK.js.map +0 -1
  410. package/dist/_chunks/useContentTypes-U-n1-lz0.mjs.map +0 -1
  411. package/dist/_chunks/useLicenseLimitNotification-Hjv_LKmp.js.map +0 -1
  412. package/dist/_chunks/useLicenseLimitNotification-yJHxF4YO.mjs.map +0 -1
  413. package/dist/_chunks/validateWorkflow-23kb45Oa.mjs.map +0 -1
  414. package/dist/_chunks/validateWorkflow-MaEpFiHz.js.map +0 -1
  415. package/dist/admin/src/types/errors.d.ts +0 -2
@@ -6,14 +6,13 @@ const designSystem = require("@strapi/design-system");
6
6
  const helperPlugin = require("@strapi/helper-plugin");
7
7
  const Icons = require("@strapi/icons");
8
8
  const axios = require("axios");
9
- const produce = require("immer");
9
+ const immer = require("immer");
10
10
  const reactHelmet = require("react-helmet");
11
11
  const reactIntl = require("react-intl");
12
12
  const reactRouterDom = require("react-router-dom");
13
- const index = require("./index-ejSDPT-T.js");
14
- const useAdminRoles = require("./useAdminRoles-SnzC_mvy.js");
15
- const selectors = require("./selectors-T2YIN4Fb.js");
16
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
+ const index = require("./index-haHGOQMJ.js");
14
+ const useAdminRoles = require("./useAdminRoles-Y25Pjlcy.js");
15
+ const selectors = require("./selectors-NSSzzIzx.js");
17
16
  function _interopNamespace(e) {
18
17
  if (e && e.__esModule)
19
18
  return e;
@@ -33,7 +32,6 @@ function _interopNamespace(e) {
33
32
  return Object.freeze(n);
34
33
  }
35
34
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
36
- const produce__default = /* @__PURE__ */ _interopDefault(produce);
37
35
  const RoleRow = ({
38
36
  id,
39
37
  name,
@@ -56,15 +54,12 @@ const RoleRow = ({
56
54
  designSystem.Tr,
57
55
  {
58
56
  "aria-rowindex": rowIndex,
59
- ...canUpdate ? helperPlugin.onRowClick({
60
- // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`
61
- fn: editObject.onClick
62
- }) : {},
57
+ onClick: canUpdate ? editObject.onClick : void 0,
63
58
  children: [
64
59
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { maxWidth: `${130 / 16}rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, textColor: "neutral800", children: name }) }),
65
60
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { maxWidth: `${250 / 16}rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, textColor: "neutral800", children: description }) }),
66
61
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: usersCountText }) }),
67
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", ...helperPlugin.stopPropagation, children: icons.map(
62
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", onClick: (e) => e.stopPropagation(), children: icons.map(
68
63
  (icon, i) => icon ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: i === 0 ? 0 : 1, children: /* @__PURE__ */ jsxRuntime.jsx(
69
64
  designSystem.IconButton,
70
65
  {
@@ -82,12 +77,11 @@ const RoleRow = ({
82
77
  };
83
78
  const ListPage = () => {
84
79
  const { formatMessage } = reactIntl.useIntl();
85
- helperPlugin.useFocusWhenNavigate();
86
80
  const permissions = index.useTypedSelector(selectors.selectAdminPermissions);
87
81
  const { formatAPIError } = index.useAPIErrorHandler();
88
- const toggleNotification = helperPlugin.useNotification();
82
+ const { toggleNotification } = index.useNotification();
89
83
  const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React__namespace.useState(false);
90
- const [{ query }] = helperPlugin.useQueryParams();
84
+ const [{ query }] = index.useQueryParams();
91
85
  const {
92
86
  isLoading: isLoadingForPermissions,
93
87
  allowedActions: { canCreate, canDelete, canRead, canUpdate }
@@ -101,7 +95,7 @@ const ListPage = () => {
101
95
  );
102
96
  const navigate = reactRouterDom.useNavigate();
103
97
  const [{ roleToDelete }, dispatch] = React__namespace.useReducer(reducer, initialState);
104
- const { post } = helperPlugin.getFetchClient();
98
+ const { post } = index.useFetchClient();
105
99
  const handleDeleteData = async () => {
106
100
  try {
107
101
  dispatch({
@@ -117,7 +111,7 @@ const ListPage = () => {
117
111
  } catch (error) {
118
112
  if (error instanceof axios.AxiosError) {
119
113
  toggleNotification({
120
- type: "warning",
114
+ type: "danger",
121
115
  message: formatAPIError(error)
122
116
  });
123
117
  }
@@ -132,7 +126,7 @@ const ListPage = () => {
132
126
  if (role.usersCount) {
133
127
  toggleNotification({
134
128
  type: "info",
135
- message: { id: "Roles.ListPage.notification.delete-not-allowed" }
129
+ message: formatMessage({ id: "Roles.ListPage.notification.delete-not-allowed" })
136
130
  });
137
131
  } else {
138
132
  dispatch({
@@ -152,7 +146,7 @@ const ListPage = () => {
152
146
  if (isLoadingForPermissions) {
153
147
  return /* @__PURE__ */ jsxRuntime.jsx(index.Page.Loading, {});
154
148
  }
155
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { children: [
149
+ return /* @__PURE__ */ jsxRuntime.jsxs(index.Page.Main, { children: [
156
150
  /* @__PURE__ */ jsxRuntime.jsx(
157
151
  reactHelmet.Helmet,
158
152
  {
@@ -279,7 +273,7 @@ const initialState = {
279
273
  showModalConfirmButtonLoading: false,
280
274
  shouldRefetchData: false
281
275
  };
282
- const reducer = (state, action) => produce__default.default(state, (draftState) => {
276
+ const reducer = (state, action) => immer.produce(state, (draftState) => {
283
277
  switch (action.type) {
284
278
  case "ON_REMOVE_ROLES": {
285
279
  draftState.showModalConfirmButtonLoading = true;
@@ -310,4 +304,4 @@ const ProtectedListPage = () => {
310
304
  };
311
305
  exports.ListPage = ListPage;
312
306
  exports.ProtectedListPage = ProtectedListPage;
313
- //# sourceMappingURL=ListPage-Pf5LxUYn.js.map
307
+ //# sourceMappingURL=ListPage-rCVvOLlD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-rCVvOLlD.js","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'icon' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`${130 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`${250 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton\n onClick={icon.onClick}\n label={icon.label}\n borderWidth={0}\n icon={icon.icon}\n />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport { produce } from 'immer';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (error instanceof AxiosError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n handleToggleModal();\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n />\n <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n icon: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n onClose={handleToggleModal}\n />\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["useIntl","jsxs","Tr","jsx","Td","Typography","Flex","Box","IconButton","useTypedSelector","selectAdminPermissions","useAPIErrorHandler","useNotification","React","useQueryParams","useRBAC","useAdminRoles","useNavigate","useFetchClient","AxiosError","Page","Helmet","HeaderLayout","Button","Plus","ActionLayout","SearchInput","ContentLayout","Table","TFooter","Thead","Th","VisuallyHidden","Tbody","index","Duplicate","Pencil","Trash","ConfirmDialog","produce"],"mappings":"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"}
@@ -9,8 +9,8 @@ const Icons = require("@strapi/icons");
9
9
  const reactHelmet = require("react-helmet");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
- const index = require("./index-ejSDPT-T.js");
13
- const useWebhooks = require("./useWebhooks-1ZG0V0Mc.js");
12
+ const index = require("./index-haHGOQMJ.js");
13
+ const useWebhooks = require("./useWebhooks-IXb4Ks8E.js");
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule)
16
16
  return e;
@@ -36,8 +36,7 @@ const ListPage = () => {
36
36
  const permissions = index.useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);
37
37
  const { formatMessage } = reactIntl.useIntl();
38
38
  const { _unstableFormatAPIError: formatAPIError } = index.useAPIErrorHandler();
39
- const toggleNotification = helperPlugin.useNotification();
40
- helperPlugin.useFocusWhenNavigate();
39
+ const { toggleNotification } = index.useNotification();
41
40
  const navigate = reactRouterDom.useNavigate();
42
41
  const {
43
42
  isLoading: isRBACLoading,
@@ -54,7 +53,7 @@ const ListPage = () => {
54
53
  React__namespace.useEffect(() => {
55
54
  if (webhooksError) {
56
55
  toggleNotification({
57
- type: "warning",
56
+ type: "danger",
58
57
  message: formatAPIError(webhooksError)
59
58
  });
60
59
  return;
@@ -73,17 +72,17 @@ const ListPage = () => {
73
72
  const res = await updateWebhook(body);
74
73
  if ("error" in res) {
75
74
  toggleNotification({
76
- type: "warning",
75
+ type: "danger",
77
76
  message: formatAPIError(res.error)
78
77
  });
79
78
  }
80
79
  } catch {
81
80
  toggleNotification({
82
- type: "warning",
83
- message: {
81
+ type: "danger",
82
+ message: formatMessage({
84
83
  id: "notification.error",
85
84
  defaultMessage: "An error occurred"
86
- }
85
+ })
87
86
  });
88
87
  }
89
88
  };
@@ -94,7 +93,7 @@ const ListPage = () => {
94
93
  });
95
94
  if ("error" in res) {
96
95
  toggleNotification({
97
- type: "warning",
96
+ type: "danger",
98
97
  message: formatAPIError(res.error)
99
98
  });
100
99
  return;
@@ -102,11 +101,11 @@ const ListPage = () => {
102
101
  setWebhooksToDelete([]);
103
102
  } catch {
104
103
  toggleNotification({
105
- type: "warning",
106
- message: {
104
+ type: "danger",
105
+ message: formatMessage({
107
106
  id: "notification.error",
108
107
  defaultMessage: "An error occurred"
109
- }
108
+ })
110
109
  });
111
110
  } finally {
112
111
  setShowModal(false);
@@ -132,7 +131,7 @@ const ListPage = () => {
132
131
  )
133
132
  }
134
133
  ),
135
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { "aria-busy": isLoading, children: [
134
+ /* @__PURE__ */ jsxRuntime.jsxs(index.Page.Main, { "aria-busy": isLoading, children: [
136
135
  /* @__PURE__ */ jsxRuntime.jsx(
137
136
  designSystem.HeaderLayout,
138
137
  {
@@ -356,4 +355,4 @@ const ProtectedListPage = () => {
356
355
  };
357
356
  exports.ListPage = ListPage;
358
357
  exports.ProtectedListPage = ProtectedListPage;
359
- //# sourceMappingURL=ListPage-yymh17qi.js.map
358
+ //# sourceMappingURL=ListPage-u6uVacPz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-u6uVacPz.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layout>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n />\n <Page.Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to=\"create\"\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n <LinkButton variant=\"secondary\" startIcon={<Plus />} as={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </ContentLayout>\n </Page.Main>\n <ConfirmDialog\n isOpen={showModal}\n onClose={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["React","useTypedSelector","useIntl","useAPIErrorHandler","useNotification","useNavigate","useRBAC","useNotifyAT","useWebhooks","jsx","Page","Layout","Helmet","jsxs","HeaderLayout","LinkButton","NavLink","Plus","ActionLayout","Fragment","Typography","Button","Trash","ContentLayout","Table","TFooter","Thead","Tr","Th","BaseCheckbox","VisuallyHidden","Tbody","Td","Flex","Switch","IconButton","Pencil","EmptyStateLayout","EmptyDocuments","ConfirmDialog"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { HeaderLayout, LinkButton, Main, ContentLayout, EmptyStateLayout } from "@strapi/design-system";
4
- import { useFocusWhenNavigate, useNotification, useRBAC } from "@strapi/helper-plugin";
3
+ import { HeaderLayout, LinkButton, ContentLayout, EmptyStateLayout } from "@strapi/design-system";
4
+ import { useRBAC } from "@strapi/helper-plugin";
5
5
  import { Plus, EmptyDocuments } from "@strapi/icons";
6
6
  import * as qs from "qs";
7
7
  import { Helmet } from "react-helmet";
8
8
  import { useIntl } from "react-intl";
9
9
  import { useNavigate } from "react-router-dom";
10
- import { o as useTypedSelector, P as Page, c as useTracking, b as useGuidedTour, m as useAPIErrorHandler } from "./index-hjUhNUvw.mjs";
10
+ import { q as useTypedSelector, P as Page, u as useNotification, d as useTracking, c as useGuidedTour, o as useAPIErrorHandler } from "./index-GIVuHJgC.mjs";
11
11
  import { u as useOnce } from "./useOnce-BuAUYuau.mjs";
12
- import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-DO6vkoyd.mjs";
12
+ import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-wLmJ3Liv.mjs";
13
13
  import { A as API_TOKEN_TYPE } from "./constants-fJt30IoY.mjs";
14
- import { T as Table } from "./Table-NiTkS4IC.mjs";
14
+ import { T as Table } from "./Table-591I_RMU.mjs";
15
15
  const TABLE_HEADERS = [
16
16
  {
17
17
  name: "name",
@@ -47,9 +47,8 @@ const TABLE_HEADERS = [
47
47
  }
48
48
  ];
49
49
  const ListView = () => {
50
- useFocusWhenNavigate();
51
50
  const { formatMessage } = useIntl();
52
- const toggleNotification = useNotification();
51
+ const { toggleNotification } = useNotification();
53
52
  const permissions = useTypedSelector(
54
53
  (state) => state.admin_app.permissions.settings?.["api-tokens"]
55
54
  );
@@ -79,7 +78,7 @@ const ListView = () => {
79
78
  React.useEffect(() => {
80
79
  if (error) {
81
80
  toggleNotification({
82
- type: "warning",
81
+ type: "danger",
83
82
  message: formatAPIError(error)
84
83
  });
85
84
  }
@@ -93,7 +92,7 @@ const ListView = () => {
93
92
  const res = await deleteToken(id);
94
93
  if ("error" in res) {
95
94
  toggleNotification({
96
- type: "warning",
95
+ type: "danger",
97
96
  message: formatAPIError(res.error)
98
97
  });
99
98
  return;
@@ -101,11 +100,11 @@ const ListView = () => {
101
100
  trackUsage("didDeleteToken");
102
101
  } catch {
103
102
  toggleNotification({
104
- type: "warning",
105
- message: {
103
+ type: "danger",
104
+ message: formatMessage({
106
105
  id: "notification.error",
107
106
  defaultMessage: "Something went wrong"
108
- }
107
+ })
109
108
  });
110
109
  }
111
110
  };
@@ -145,7 +144,7 @@ const ListView = () => {
145
144
  )
146
145
  }
147
146
  ),
148
- !canRead ? /* @__PURE__ */ jsx(Page.NoPermissions, {}) : /* @__PURE__ */ jsx(Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxs(ContentLayout, { children: [
147
+ !canRead ? /* @__PURE__ */ jsx(Page.NoPermissions, {}) : /* @__PURE__ */ jsx(Page.Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxs(ContentLayout, { children: [
149
148
  apiTokens.length > 0 && /* @__PURE__ */ jsx(
150
149
  Table,
151
150
  {
@@ -202,4 +201,4 @@ export {
202
201
  ListView,
203
202
  ProtectedListView
204
203
  };
205
- //# sourceMappingURL=ListView--43zLiHW.mjs.map
204
+ //# sourceMappingURL=ListView--O7X6dMw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView--O7X6dMw.mjs","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, EmptyStateLayout, HeaderLayout, LinkButton } from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport * as qs from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <ContentLayout>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </ContentLayout>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@ const qs = require("qs");
9
9
  const reactHelmet = require("react-helmet");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
- const index = require("./index-ejSDPT-T.js");
12
+ const index = require("./index-haHGOQMJ.js");
13
13
  const useOnce = require("./useOnce-eIxJr0o-.js");
14
- const apiTokens = require("./apiTokens-TayNdk_V.js");
14
+ const apiTokens = require("./apiTokens-IG3rF-G2.js");
15
15
  const constants = require("./constants-RMqZXSqh.js");
16
- const Table = require("./Table-_9gVkGGi.js");
16
+ const Table = require("./Table-aUfykqgd.js");
17
17
  function _interopNamespace(e) {
18
18
  if (e && e.__esModule)
19
19
  return e;
@@ -69,9 +69,8 @@ const TABLE_HEADERS = [
69
69
  }
70
70
  ];
71
71
  const ListView = () => {
72
- helperPlugin.useFocusWhenNavigate();
73
72
  const { formatMessage } = reactIntl.useIntl();
74
- const toggleNotification = helperPlugin.useNotification();
73
+ const { toggleNotification } = index.useNotification();
75
74
  const permissions = index.useTypedSelector(
76
75
  (state) => state.admin_app.permissions.settings?.["api-tokens"]
77
76
  );
@@ -101,7 +100,7 @@ const ListView = () => {
101
100
  React__namespace.useEffect(() => {
102
101
  if (error) {
103
102
  toggleNotification({
104
- type: "warning",
103
+ type: "danger",
105
104
  message: formatAPIError(error)
106
105
  });
107
106
  }
@@ -115,7 +114,7 @@ const ListView = () => {
115
114
  const res = await deleteToken(id);
116
115
  if ("error" in res) {
117
116
  toggleNotification({
118
- type: "warning",
117
+ type: "danger",
119
118
  message: formatAPIError(res.error)
120
119
  });
121
120
  return;
@@ -123,11 +122,11 @@ const ListView = () => {
123
122
  trackUsage("didDeleteToken");
124
123
  } catch {
125
124
  toggleNotification({
126
- type: "warning",
127
- message: {
125
+ type: "danger",
126
+ message: formatMessage({
128
127
  id: "notification.error",
129
128
  defaultMessage: "Something went wrong"
130
- }
129
+ })
131
130
  });
132
131
  }
133
132
  };
@@ -167,7 +166,7 @@ const ListView = () => {
167
166
  )
168
167
  }
169
168
  ),
170
- !canRead ? /* @__PURE__ */ jsxRuntime.jsx(index.Page.NoPermissions, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ContentLayout, { children: [
169
+ !canRead ? /* @__PURE__ */ jsxRuntime.jsx(index.Page.NoPermissions, {}) : /* @__PURE__ */ jsxRuntime.jsx(index.Page.Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ContentLayout, { children: [
171
170
  apiTokens$1.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
172
171
  Table.Table,
173
172
  {
@@ -222,4 +221,4 @@ const ProtectedListView = () => {
222
221
  };
223
222
  exports.ListView = ListView;
224
223
  exports.ProtectedListView = ProtectedListView;
225
- //# sourceMappingURL=ListView-YtMAQnXL.js.map
224
+ //# sourceMappingURL=ListView-SsUn5vcn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView-SsUn5vcn.js","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, EmptyStateLayout, HeaderLayout, LinkButton } from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport * as qs from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <ContentLayout>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </ContentLayout>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useGuidedTour","useAPIErrorHandler","React","qs","useOnce","API_TOKEN_TYPE","apiTokens","useGetAPITokensQuery","useDeleteAPITokenMutation","jsxs","Fragment","jsx","Helmet","HeaderLayout","LinkButton","Plus","Page","ContentLayout","Table","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}
@@ -9,11 +9,11 @@ const qs = require("qs");
9
9
  const reactHelmet = require("react-helmet");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
- const index = require("./index-ejSDPT-T.js");
12
+ const index = require("./index-haHGOQMJ.js");
13
13
  const useOnce = require("./useOnce-eIxJr0o-.js");
14
- const transferTokens = require("./transferTokens-T-kGMb3U.js");
14
+ const transferTokens = require("./transferTokens-xL4mlopP.js");
15
15
  const constants = require("./constants-RMqZXSqh.js");
16
- const Table = require("./Table-_9gVkGGi.js");
16
+ const Table = require("./Table-aUfykqgd.js");
17
17
  function _interopNamespace(e) {
18
18
  if (e && e.__esModule)
19
19
  return e;
@@ -69,9 +69,8 @@ const tableHeaders = [
69
69
  }
70
70
  ];
71
71
  const ListView = () => {
72
- helperPlugin.useFocusWhenNavigate();
73
72
  const { formatMessage } = reactIntl.useIntl();
74
- const toggleNotification = helperPlugin.useNotification();
73
+ const { toggleNotification } = index.useNotification();
75
74
  const permissions = index.useTypedSelector(
76
75
  (state) => state.admin_app.permissions.settings?.["transfer-tokens"]
77
76
  );
@@ -112,7 +111,7 @@ const ListView = () => {
112
111
  React__namespace.useEffect(() => {
113
112
  if (error) {
114
113
  toggleNotification({
115
- type: "warning",
114
+ type: "danger",
116
115
  message: formatAPIError(error)
117
116
  });
118
117
  }
@@ -123,14 +122,14 @@ const ListView = () => {
123
122
  const res = await deleteToken(id);
124
123
  if ("error" in res) {
125
124
  toggleNotification({
126
- type: "warning",
125
+ type: "danger",
127
126
  message: formatAPIError(res.error)
128
127
  });
129
128
  }
130
129
  } catch {
131
130
  toggleNotification({
132
- type: "warning",
133
- message: { id: "notification.error", defaultMessage: "An error occured" }
131
+ type: "danger",
132
+ message: formatMessage({ id: "notification.error", defaultMessage: "An error occured" })
134
133
  });
135
134
  }
136
135
  };
@@ -177,7 +176,7 @@ const ListView = () => {
177
176
  ) : void 0
178
177
  }
179
178
  ),
180
- !canRead ? /* @__PURE__ */ jsxRuntime.jsx(index.Page.NoPermissions, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ContentLayout, { children: [
179
+ !canRead ? /* @__PURE__ */ jsxRuntime.jsx(index.Page.NoPermissions, {}) : /* @__PURE__ */ jsxRuntime.jsx(index.Page.Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ContentLayout, { children: [
181
180
  transferTokens$1.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
182
181
  Table.Table,
183
182
  {
@@ -232,4 +231,4 @@ const ProtectedListView = () => {
232
231
  };
233
232
  exports.ListView = ListView;
234
233
  exports.ProtectedListView = ProtectedListView;
235
- //# sourceMappingURL=ListView-nfA6o3qO.js.map
234
+ //# sourceMappingURL=ListView-ZkjwQBXQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView-ZkjwQBXQ.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, EmptyStateLayout, HeaderLayout, LinkButton } from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport * as qs from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst tableHeaders = [\n {\n name: 'name',\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <ContentLayout>\n {transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n })}\n />\n ) : null}\n {!canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"10rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </ContentLayout>\n </Page.Main>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useAPIErrorHandler","React","qs","useOnce","TRANSFER_TOKEN_TYPE","transferTokens","useGetTransferTokensQuery","useDeleteTransferTokenMutation","jsxs","Fragment","jsx","Helmet","HeaderLayout","LinkButton","Plus","Page","ContentLayout","Table","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}