@strapi/admin 5.0.0-beta.2 → 5.0.0-beta.3

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 (252) hide show
  1. package/dist/admin/{AdminSeatInfo-pcU6Psg5.js → AdminSeatInfo-H5eNy3Gq.js} +5 -5
  2. package/dist/admin/{AdminSeatInfo-pcU6Psg5.js.map → AdminSeatInfo-H5eNy3Gq.js.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-KKTvi8LR.mjs → AdminSeatInfo-jPH1stsB.mjs} +4 -4
  4. package/dist/admin/{AdminSeatInfo-KKTvi8LR.mjs.map → AdminSeatInfo-jPH1stsB.mjs.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-eFuntlx4.mjs → ApplicationInfoPage-QiVVy6LS.mjs} +4 -4
  6. package/dist/admin/{ApplicationInfoPage-eFuntlx4.mjs.map → ApplicationInfoPage-QiVVy6LS.mjs.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-Ip1_DTk9.js → ApplicationInfoPage-leY1AEgo.js} +14 -14
  8. package/dist/admin/{ApplicationInfoPage-Ip1_DTk9.js.map → ApplicationInfoPage-leY1AEgo.js.map} +1 -1
  9. package/dist/admin/{AuthResponse-no1FFPpN.mjs → AuthResponse-5G-7aJDM.mjs} +2 -2
  10. package/dist/admin/{AuthResponse-no1FFPpN.mjs.map → AuthResponse-5G-7aJDM.mjs.map} +1 -1
  11. package/dist/admin/{AuthResponse-j4iu1hDd.js → AuthResponse-kdo9DYPT.js} +4 -4
  12. package/dist/admin/{AuthResponse-j4iu1hDd.js.map → AuthResponse-kdo9DYPT.js.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-GD2XM4Xh.js → AuthenticatedLayout-1x0WC6c6.js} +41 -62
  14. package/dist/admin/AuthenticatedLayout-1x0WC6c6.js.map +1 -0
  15. package/dist/admin/{AuthenticatedLayout-mta84NQE.mjs → AuthenticatedLayout-zaOd05gw.mjs} +23 -44
  16. package/dist/admin/AuthenticatedLayout-zaOd05gw.mjs.map +1 -0
  17. package/dist/admin/{CreateActionEE-j8NEQArt.js → CreateActionEE-2DKYzbq_.js} +2 -2
  18. package/dist/admin/{CreateActionEE-j8NEQArt.js.map → CreateActionEE-2DKYzbq_.js.map} +1 -1
  19. package/dist/admin/{CreateActionEE-9o2Mj6Ml.mjs → CreateActionEE-TcGdWjIN.mjs} +2 -2
  20. package/dist/admin/{CreateActionEE-9o2Mj6Ml.mjs.map → CreateActionEE-TcGdWjIN.mjs.map} +1 -1
  21. package/dist/admin/{CreatePage-V4cSRx8F.js → CreatePage-J84OUqE4.js} +12 -12
  22. package/dist/admin/{CreatePage-V4cSRx8F.js.map → CreatePage-J84OUqE4.js.map} +1 -1
  23. package/dist/admin/{CreatePage-FJXNWV-g.mjs → CreatePage-gSoe3n8A.mjs} +3 -3
  24. package/dist/admin/{CreatePage-FJXNWV-g.mjs.map → CreatePage-gSoe3n8A.mjs.map} +1 -1
  25. package/dist/admin/{CreatePage-P-JKk6La.mjs → CreatePage-pniatTP-.mjs} +5 -5
  26. package/dist/admin/{CreatePage-P-JKk6La.mjs.map → CreatePage-pniatTP-.mjs.map} +1 -1
  27. package/dist/admin/{CreatePage-ZcVRwog2.js → CreatePage-z4ERqv1R.js} +5 -5
  28. package/dist/admin/{CreatePage-ZcVRwog2.js.map → CreatePage-z4ERqv1R.js.map} +1 -1
  29. package/dist/admin/{CreateView-BKV0PWUL.mjs → CreateView-BdO0Pvex.mjs} +3 -3
  30. package/dist/admin/{CreateView-BKV0PWUL.mjs.map → CreateView-BdO0Pvex.mjs.map} +1 -1
  31. package/dist/admin/CreateView-JNmfRawb.js +17 -0
  32. package/dist/admin/{CreateView-tQxib6Yo.js.map → CreateView-JNmfRawb.js.map} +1 -1
  33. package/dist/admin/CreateView-NwMXZjDh.js +17 -0
  34. package/dist/admin/{CreateView-5zt3cfsd.js.map → CreateView-NwMXZjDh.js.map} +1 -1
  35. package/dist/admin/{CreateView-A1wdcygq.mjs → CreateView-sFb3ySEj.mjs} +3 -3
  36. package/dist/admin/{CreateView-A1wdcygq.mjs.map → CreateView-sFb3ySEj.mjs.map} +1 -1
  37. package/dist/admin/{EditPage-qN5pbP1W.mjs → EditPage-3wx6NJgA.mjs} +7 -7
  38. package/dist/admin/{EditPage-qN5pbP1W.mjs.map → EditPage-3wx6NJgA.mjs.map} +1 -1
  39. package/dist/admin/{EditPage-k_6aHRVf.mjs → EditPage-IQRLHMer.mjs} +10 -9
  40. package/dist/admin/EditPage-IQRLHMer.mjs.map +1 -0
  41. package/dist/admin/{EditPage-YUSwYkTW.js → EditPage-dAyJwJfs.js} +19 -18
  42. package/dist/admin/EditPage-dAyJwJfs.js.map +1 -0
  43. package/dist/admin/{EditPage-L3K_x3mo.js → EditPage-eR6riBsR.js} +13 -13
  44. package/dist/admin/{EditPage-L3K_x3mo.js.map → EditPage-eR6riBsR.js.map} +1 -1
  45. package/dist/admin/{EditPage-7LbHuqPq.js → EditPage-rdOE18EC.js} +13 -13
  46. package/dist/admin/{EditPage-7LbHuqPq.js.map → EditPage-rdOE18EC.js.map} +1 -1
  47. package/dist/admin/{EditPage-NKv-e2KT.mjs → EditPage-yztdPcnM.mjs} +6 -6
  48. package/dist/admin/{EditPage-NKv-e2KT.mjs.map → EditPage-yztdPcnM.mjs.map} +1 -1
  49. package/dist/admin/{EditView-NsG_ztE8.mjs → EditView-fbzip_S8.mjs} +6 -6
  50. package/dist/admin/{EditView-NsG_ztE8.mjs.map → EditView-fbzip_S8.mjs.map} +1 -1
  51. package/dist/admin/{EditView-HPIQBaUm.js → EditView-oyHNBKvL.js} +16 -16
  52. package/dist/admin/{EditView-HPIQBaUm.js.map → EditView-oyHNBKvL.js.map} +1 -1
  53. package/dist/admin/{EditViewPage-_RgRquw7.js → EditViewPage-LdDGNi6d.js} +18 -18
  54. package/dist/admin/{EditViewPage-_RgRquw7.js.map → EditViewPage-LdDGNi6d.js.map} +1 -1
  55. package/dist/admin/{EditViewPage-SORieV31.mjs → EditViewPage-rDgxiutd.mjs} +8 -8
  56. package/dist/admin/{EditViewPage-SORieV31.mjs.map → EditViewPage-rDgxiutd.mjs.map} +1 -1
  57. package/dist/admin/{EventsTable-lKzkleEo.js → EventsTable--peC0Geq.js} +2 -2
  58. package/dist/admin/{EventsTable-lKzkleEo.js.map → EventsTable--peC0Geq.js.map} +1 -1
  59. package/dist/admin/{EventsTable-ZGByQmYS.mjs → EventsTable-rNMPq-X1.mjs} +2 -2
  60. package/dist/admin/{EventsTable-ZGByQmYS.mjs.map → EventsTable-rNMPq-X1.mjs.map} +1 -1
  61. package/dist/admin/{HomePage-WL46uo6c.js → HomePage-14WM2hIE.js} +3 -3
  62. package/dist/admin/{HomePage-WL46uo6c.js.map → HomePage-14WM2hIE.js.map} +1 -1
  63. package/dist/admin/{HomePage-XsltwUHu.js → HomePage-e2Bs6Kar.js} +12 -12
  64. package/dist/admin/{HomePage-XsltwUHu.js.map → HomePage-e2Bs6Kar.js.map} +1 -1
  65. package/dist/admin/{HomePage-Gt7-reqY.mjs → HomePage-qgAro8dS.mjs} +5 -5
  66. package/dist/admin/{HomePage-Gt7-reqY.mjs.map → HomePage-qgAro8dS.mjs.map} +1 -1
  67. package/dist/admin/{HomePage-WNfhIqeG.mjs → HomePage-zQ7HL9y6.mjs} +3 -3
  68. package/dist/admin/{HomePage-WNfhIqeG.mjs.map → HomePage-zQ7HL9y6.mjs.map} +1 -1
  69. package/dist/admin/{InstalledPluginsPage-GYKMwvHv.js → InstalledPluginsPage-ZIPyDrzh.js} +10 -10
  70. package/dist/admin/{InstalledPluginsPage-GYKMwvHv.js.map → InstalledPluginsPage-ZIPyDrzh.js.map} +1 -1
  71. package/dist/admin/{InstalledPluginsPage--ZsKfXh4.mjs → InstalledPluginsPage-s_PGIc3_.mjs} +4 -4
  72. package/dist/admin/{InstalledPluginsPage--ZsKfXh4.mjs.map → InstalledPluginsPage-s_PGIc3_.mjs.map} +1 -1
  73. package/dist/admin/{Layout-Ojd0IVLT.js → Layout-KAX2c8wc.js} +12 -12
  74. package/dist/admin/Layout-KAX2c8wc.js.map +1 -0
  75. package/dist/admin/{Layout-fD9qm3jw.mjs → Layout-mEj5c1Bi.mjs} +6 -6
  76. package/dist/admin/Layout-mEj5c1Bi.mjs.map +1 -0
  77. package/dist/admin/{ListPage-fjrFazMD.mjs → ListPage-AI8neqxV.mjs} +4 -4
  78. package/dist/admin/{ListPage-fjrFazMD.mjs.map → ListPage-AI8neqxV.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-bixYhMBi.js → ListPage-ARW72ceH.js} +13 -13
  80. package/dist/admin/{ListPage-bixYhMBi.js.map → ListPage-ARW72ceH.js.map} +1 -1
  81. package/dist/admin/{ListPage-ddKZOtpb.js → ListPage-AUimd0cK.js} +20 -20
  82. package/dist/admin/{ListPage-ddKZOtpb.js.map → ListPage-AUimd0cK.js.map} +1 -1
  83. package/dist/admin/{ListPage-cdXKmKwt.mjs → ListPage-BIpKdUdv.mjs} +5 -5
  84. package/dist/admin/{ListPage-cdXKmKwt.mjs.map → ListPage-BIpKdUdv.mjs.map} +1 -1
  85. package/dist/admin/{ListPage-qABnTZzR.js → ListPage-DxI49fdQ.js} +14 -14
  86. package/dist/admin/{ListPage-qABnTZzR.js.map → ListPage-DxI49fdQ.js.map} +1 -1
  87. package/dist/admin/{ListPage-2KQUGpSp.js → ListPage-MvgbZlgc.js} +3 -3
  88. package/dist/admin/{ListPage-2KQUGpSp.js.map → ListPage-MvgbZlgc.js.map} +1 -1
  89. package/dist/admin/{ListPage-WozCiyeB.mjs → ListPage-ZDEeaYvm.mjs} +3 -3
  90. package/dist/admin/{ListPage-WozCiyeB.mjs.map → ListPage-ZDEeaYvm.mjs.map} +1 -1
  91. package/dist/admin/{ListPage-FjHi4ZGu.mjs → ListPage-asZ9aDzG.mjs} +5 -5
  92. package/dist/admin/{ListPage-FjHi4ZGu.mjs.map → ListPage-asZ9aDzG.mjs.map} +1 -1
  93. package/dist/admin/{ListPage-BjjqJKzh.js → ListPage-romICg1Z.js} +16 -16
  94. package/dist/admin/{ListPage-BjjqJKzh.js.map → ListPage-romICg1Z.js.map} +1 -1
  95. package/dist/admin/{ListPage-TQPuZR4V.mjs → ListPage-tniramRN.mjs} +9 -9
  96. package/dist/admin/{ListPage-TQPuZR4V.mjs.map → ListPage-tniramRN.mjs.map} +1 -1
  97. package/dist/admin/{ListView-9E8SVTSf.js → ListView-1VRmjfh8.js} +13 -13
  98. package/dist/admin/{ListView-9E8SVTSf.js.map → ListView-1VRmjfh8.js.map} +1 -1
  99. package/dist/admin/{ListView-T5y4ambL.mjs → ListView-6hlTFx5H.mjs} +5 -5
  100. package/dist/admin/{ListView-T5y4ambL.mjs.map → ListView-6hlTFx5H.mjs.map} +1 -1
  101. package/dist/admin/{ListView-jUavvOoD.mjs → ListView-GYuN24HV.mjs} +4 -4
  102. package/dist/admin/{ListView-jUavvOoD.mjs.map → ListView-GYuN24HV.mjs.map} +1 -1
  103. package/dist/admin/{ListView-ZC27Df9H.js → ListView-ph55AtDF.js} +14 -14
  104. package/dist/admin/{ListView-ZC27Df9H.js.map → ListView-ph55AtDF.js.map} +1 -1
  105. package/dist/admin/{Login-pnQ7v5vq.mjs → Login-LxE58baP.mjs} +3 -3
  106. package/dist/admin/{Login-pnQ7v5vq.mjs.map → Login-LxE58baP.mjs.map} +1 -1
  107. package/dist/admin/{Login-1AOrPSGD.js → Login-WeDT3kAj.js} +4 -4
  108. package/dist/admin/{Login-1AOrPSGD.js.map → Login-WeDT3kAj.js.map} +1 -1
  109. package/dist/admin/{MagicLinkEE-ahlmWLG6.mjs → MagicLinkEE-AO_SBYi5.mjs} +3 -3
  110. package/dist/admin/{MagicLinkEE-ahlmWLG6.mjs.map → MagicLinkEE-AO_SBYi5.mjs.map} +1 -1
  111. package/dist/admin/{MagicLinkEE-BpisXVzq.js → MagicLinkEE-_fUwHKdf.js} +3 -3
  112. package/dist/admin/{MagicLinkEE-BpisXVzq.js.map → MagicLinkEE-_fUwHKdf.js.map} +1 -1
  113. package/dist/admin/{MarketplacePage-gDPY0phu.mjs → MarketplacePage-26cUn4e5.mjs} +3 -3
  114. package/dist/admin/{MarketplacePage-gDPY0phu.mjs.map → MarketplacePage-26cUn4e5.mjs.map} +1 -1
  115. package/dist/admin/{MarketplacePage-Ogkt8lJq.js → MarketplacePage-m8Lf3adM.js} +17 -17
  116. package/dist/admin/{MarketplacePage-Ogkt8lJq.js.map → MarketplacePage-m8Lf3adM.js.map} +1 -1
  117. package/dist/admin/{Permissions-RkPUHIVE.js → Permissions-NRzJqZEr.js} +7 -7
  118. package/dist/admin/{Permissions-RkPUHIVE.js.map → Permissions-NRzJqZEr.js.map} +1 -1
  119. package/dist/admin/{Permissions-l8yWERDW.mjs → Permissions-VzklM1ie.mjs} +3 -3
  120. package/dist/admin/{Permissions-l8yWERDW.mjs.map → Permissions-VzklM1ie.mjs.map} +1 -1
  121. package/dist/admin/{PrivateRoute-I8uiqYMc.js → PrivateRoute-KAM10GGM.js} +3 -3
  122. package/dist/admin/{PrivateRoute-I8uiqYMc.js.map → PrivateRoute-KAM10GGM.js.map} +1 -1
  123. package/dist/admin/{PrivateRoute-m7OeCfYA.mjs → PrivateRoute-wDu6Vo0N.mjs} +2 -2
  124. package/dist/admin/{PrivateRoute-m7OeCfYA.mjs.map → PrivateRoute-wDu6Vo0N.mjs.map} +1 -1
  125. package/dist/admin/{ProfilePage-mO3MQozZ.mjs → ProfilePage-0d-k7mtP.mjs} +6 -6
  126. package/dist/admin/{ProfilePage-mO3MQozZ.mjs.map → ProfilePage-0d-k7mtP.mjs.map} +1 -1
  127. package/dist/admin/{ProfilePage-yLYrmYfh.js → ProfilePage-oSih4pcL.js} +20 -20
  128. package/dist/admin/{ProfilePage-yLYrmYfh.js.map → ProfilePage-oSih4pcL.js.map} +1 -1
  129. package/dist/admin/{SelectRoles-vs_GIRku.mjs → SelectRoles-V_PZUtVT.mjs} +4 -4
  130. package/dist/admin/{SelectRoles-vs_GIRku.mjs.map → SelectRoles-V_PZUtVT.mjs.map} +1 -1
  131. package/dist/admin/{SelectRoles-E27rLNXb.js → SelectRoles-ZsRUnSdr.js} +5 -5
  132. package/dist/admin/{SelectRoles-E27rLNXb.js.map → SelectRoles-ZsRUnSdr.js.map} +1 -1
  133. package/dist/admin/{SingleSignOnPage-EIJNDHZ1.js → SingleSignOnPage-jtjy4_4U.js} +16 -16
  134. package/dist/admin/{SingleSignOnPage-EIJNDHZ1.js.map → SingleSignOnPage-jtjy4_4U.js.map} +1 -1
  135. package/dist/admin/{SingleSignOnPage-rFbze2qS.mjs → SingleSignOnPage-kbLz1A_y.mjs} +5 -5
  136. package/dist/admin/{SingleSignOnPage-rFbze2qS.mjs.map → SingleSignOnPage-kbLz1A_y.mjs.map} +1 -1
  137. package/dist/admin/{Table-yt4e2psj.mjs → Table-ZFyORhH3.mjs} +3 -3
  138. package/dist/admin/{Table-yt4e2psj.mjs.map → Table-ZFyORhH3.mjs.map} +1 -1
  139. package/dist/admin/{Table-y_iVVRmo.js → Table-kMt3jQ2g.js} +5 -5
  140. package/dist/admin/{Table-y_iVVRmo.js.map → Table-kMt3jQ2g.js.map} +1 -1
  141. package/dist/admin/{TokenTypeSelect-6UaG68id.js → TokenTypeSelect-Ngz4ONEL.js} +8 -8
  142. package/dist/admin/{TokenTypeSelect-6UaG68id.js.map → TokenTypeSelect-Ngz4ONEL.js.map} +1 -1
  143. package/dist/admin/{TokenTypeSelect-FTMoBhn3.mjs → TokenTypeSelect-oOKwvsQ2.mjs} +4 -4
  144. package/dist/admin/{TokenTypeSelect-FTMoBhn3.mjs.map → TokenTypeSelect-oOKwvsQ2.mjs.map} +1 -1
  145. package/dist/admin/{UseCasePage-ifVOOcqK.mjs → UseCasePage-2wum_xzS.mjs} +4 -4
  146. package/dist/admin/{UseCasePage-ifVOOcqK.mjs.map → UseCasePage-2wum_xzS.mjs.map} +1 -1
  147. package/dist/admin/{UseCasePage-PzT7YQgK.js → UseCasePage-qrhHiF5S.js} +6 -6
  148. package/dist/admin/{UseCasePage-PzT7YQgK.js.map → UseCasePage-qrhHiF5S.js.map} +1 -1
  149. package/dist/admin/{admin-w3o7ePNm.mjs → admin-DUKhYsmP.mjs} +12 -2
  150. package/dist/admin/admin-DUKhYsmP.mjs.map +1 -0
  151. package/dist/admin/{admin-vcfA8Zox.js → admin-vlKSOeHB.js} +12 -1
  152. package/dist/admin/admin-vlKSOeHB.js.map +1 -0
  153. package/dist/admin/{apiTokens-75EXEvGS.mjs → apiTokens-dBRuo1wd.mjs} +2 -2
  154. package/dist/admin/{apiTokens-75EXEvGS.mjs.map → apiTokens-dBRuo1wd.mjs.map} +1 -1
  155. package/dist/admin/{apiTokens-wqQgdbcG.js → apiTokens-lXn03No3.js} +2 -2
  156. package/dist/admin/{apiTokens-wqQgdbcG.js.map → apiTokens-lXn03No3.js.map} +1 -1
  157. package/dist/admin/{constants-ORUQO0uh.mjs → constants-enREoOEa.mjs} +3 -3
  158. package/dist/admin/{constants-ORUQO0uh.mjs.map → constants-enREoOEa.mjs.map} +1 -1
  159. package/dist/admin/{constants-oTDk_K7z.js → constants-jQFnBWVd.js} +4 -4
  160. package/dist/admin/{constants-oTDk_K7z.js.map → constants-jQFnBWVd.js.map} +1 -1
  161. package/dist/admin/ee.js +1 -1
  162. package/dist/admin/ee.mjs +1 -1
  163. package/dist/admin/{index-tmvI3DXu.js → index-dcaxfEDi.js} +113 -90
  164. package/dist/admin/index-dcaxfEDi.js.map +1 -0
  165. package/dist/admin/{index-PCKQWB49.mjs → index-oBxjGftZ.mjs} +72 -49
  166. package/dist/admin/index-oBxjGftZ.mjs.map +1 -0
  167. package/dist/admin/index.js +13 -13
  168. package/dist/admin/index.mjs +3 -3
  169. package/dist/admin/{Theme-j7r62OPn.js → rbac-WZsv1761.js} +128 -50
  170. package/dist/admin/rbac-WZsv1761.js.map +1 -0
  171. package/dist/admin/{Theme-Gult7t3_.mjs → rbac-sYT_mXH0.mjs} +128 -51
  172. package/dist/admin/rbac-sYT_mXH0.mjs.map +1 -0
  173. package/dist/admin/{selectors-i8UwQyuC.mjs → selectors-3gRe5pAj.mjs} +2 -2
  174. package/dist/admin/{selectors-i8UwQyuC.mjs.map → selectors-3gRe5pAj.mjs.map} +1 -1
  175. package/dist/admin/selectors-CiTVxP8O.js +8 -0
  176. package/dist/admin/{selectors-1-hG3q3-.js.map → selectors-CiTVxP8O.js.map} +1 -1
  177. package/dist/admin/src/StrapiApp.d.ts +3 -0
  178. package/dist/admin/src/components/Form.d.ts +10 -1
  179. package/dist/admin/src/core/apis/rbac.d.ts +24 -0
  180. package/dist/admin/src/features/Auth.d.ts +14 -3
  181. package/dist/admin/src/features/StrapiApp.d.ts +2 -0
  182. package/dist/admin/src/hooks/useRBAC.d.ts +33 -1
  183. package/dist/admin/src/index.d.ts +1 -0
  184. package/dist/admin/src/utils/once.d.ts +1 -0
  185. package/dist/admin/src/utils/urls.d.ts +7 -1
  186. package/dist/admin/src/utils/users.d.ts +4 -3
  187. package/dist/admin/test.js +48 -48
  188. package/dist/admin/test.js.map +1 -1
  189. package/dist/admin/test.mjs +44 -44
  190. package/dist/admin/test.mjs.map +1 -1
  191. package/dist/admin/{transferTokens-GqOwfpHk.js → transferTokens-5qQjIKFd.js} +2 -2
  192. package/dist/admin/{transferTokens-GqOwfpHk.js.map → transferTokens-5qQjIKFd.js.map} +1 -1
  193. package/dist/admin/{transferTokens-Dibaubom.mjs → transferTokens-OLPKYcY_.mjs} +2 -2
  194. package/dist/admin/{transferTokens-Dibaubom.mjs.map → transferTokens-OLPKYcY_.mjs.map} +1 -1
  195. package/dist/admin/{useAdminRoles-iyGa9Xh9.mjs → useAdminRoles-HWIbyk2Z.mjs} +2 -2
  196. package/dist/admin/{useAdminRoles-iyGa9Xh9.mjs.map → useAdminRoles-HWIbyk2Z.mjs.map} +1 -1
  197. package/dist/admin/{useAdminRoles-XTNZhJh5.js → useAdminRoles-Q2BxHs4o.js} +2 -2
  198. package/dist/admin/{useAdminRoles-XTNZhJh5.js.map → useAdminRoles-Q2BxHs4o.js.map} +1 -1
  199. package/dist/admin/{useLicenseLimitNotification-qeIH3VJE.js → useLicenseLimitNotification-0UWeCY_u.js} +4 -4
  200. package/dist/admin/{useLicenseLimitNotification-qeIH3VJE.js.map → useLicenseLimitNotification-0UWeCY_u.js.map} +1 -1
  201. package/dist/admin/{useLicenseLimitNotification-d06Aex_I.mjs → useLicenseLimitNotification-aTNbD3xK.mjs} +3 -3
  202. package/dist/admin/{useLicenseLimitNotification-d06Aex_I.mjs.map → useLicenseLimitNotification-aTNbD3xK.mjs.map} +1 -1
  203. package/dist/admin/{useLicenseLimits-EyslHDFM.mjs → useLicenseLimits-F7K-YWAE.mjs} +2 -2
  204. package/dist/admin/{useLicenseLimits-EyslHDFM.mjs.map → useLicenseLimits-F7K-YWAE.mjs.map} +1 -1
  205. package/dist/admin/{useLicenseLimits-bLiwF5ah.js → useLicenseLimits-m11DOu9p.js} +2 -2
  206. package/dist/admin/{useLicenseLimits-bLiwF5ah.js.map → useLicenseLimits-m11DOu9p.js.map} +1 -1
  207. package/dist/admin/{useWebhooks-Dae71Az5.mjs → useWebhooks-7BXPSMHG.mjs} +2 -2
  208. package/dist/admin/{useWebhooks-Dae71Az5.mjs.map → useWebhooks-7BXPSMHG.mjs.map} +1 -1
  209. package/dist/admin/{useWebhooks-WyRAGIH5.js → useWebhooks-oZ5DKtvz.js} +2 -2
  210. package/dist/admin/{useWebhooks-WyRAGIH5.js.map → useWebhooks-oZ5DKtvz.js.map} +1 -1
  211. package/dist/admin/users-R5A0kUOV.js +33 -0
  212. package/dist/admin/users-R5A0kUOV.js.map +1 -0
  213. package/dist/admin/users-a4KTyEyc.mjs +30 -0
  214. package/dist/admin/users-a4KTyEyc.mjs.map +1 -0
  215. package/dist/admin/{validation-Tb5_X4v4.js → validation-2MGgF10o.js} +2 -2
  216. package/dist/admin/{validation-Tb5_X4v4.js.map → validation-2MGgF10o.js.map} +1 -1
  217. package/dist/admin/{validation-GUb7vvsl.mjs → validation-gH-06ERZ.mjs} +2 -2
  218. package/dist/admin/{validation-GUb7vvsl.mjs.map → validation-gH-06ERZ.mjs.map} +1 -1
  219. package/dist/ee/server/index.js +15 -15
  220. package/dist/ee/server/index.js.map +1 -1
  221. package/dist/ee/server/index.mjs +15 -15
  222. package/dist/ee/server/index.mjs.map +1 -1
  223. package/dist/package.json.d.ts +14 -14
  224. package/dist/server/index.js +30 -34
  225. package/dist/server/index.js.map +1 -1
  226. package/dist/server/index.mjs +30 -34
  227. package/dist/server/index.mjs.map +1 -1
  228. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  229. package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
  230. package/dist/server/src/services/passport.d.ts.map +1 -1
  231. package/dist/server/src/validation/project-settings.d.ts +8 -8
  232. package/package.json +15 -15
  233. package/dist/admin/AuthenticatedLayout-GD2XM4Xh.js.map +0 -1
  234. package/dist/admin/AuthenticatedLayout-mta84NQE.mjs.map +0 -1
  235. package/dist/admin/CreateView-5zt3cfsd.js +0 -17
  236. package/dist/admin/CreateView-tQxib6Yo.js +0 -17
  237. package/dist/admin/EditPage-YUSwYkTW.js.map +0 -1
  238. package/dist/admin/EditPage-k_6aHRVf.mjs.map +0 -1
  239. package/dist/admin/Layout-Ojd0IVLT.js.map +0 -1
  240. package/dist/admin/Layout-fD9qm3jw.mjs.map +0 -1
  241. package/dist/admin/Theme-Gult7t3_.mjs.map +0 -1
  242. package/dist/admin/Theme-j7r62OPn.js.map +0 -1
  243. package/dist/admin/admin-vcfA8Zox.js.map +0 -1
  244. package/dist/admin/admin-w3o7ePNm.mjs.map +0 -1
  245. package/dist/admin/index-PCKQWB49.mjs.map +0 -1
  246. package/dist/admin/index-tmvI3DXu.js.map +0 -1
  247. package/dist/admin/selectors-1-hG3q3-.js +0 -8
  248. package/dist/admin/src/utils/hashAdminUserEmail.d.ts +0 -6
  249. package/dist/admin/users-BKmHEtNM.js +0 -19
  250. package/dist/admin/users-BKmHEtNM.js.map +0 -1
  251. package/dist/admin/users-P2ivP9Cm.mjs +0 -17
  252. package/dist/admin/users-P2ivP9Cm.mjs.map +0 -1
@@ -2,10 +2,10 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const reactRouterDom = require('react-router-dom');
5
- const Theme = require('./Theme-j7r62OPn.js');
5
+ const rbac = require('./rbac-WZsv1761.js');
6
6
 
7
7
  const PrivateRoute = ({ children }) => {
8
- const token = Theme.useAuth("PrivateRoute", (state) => state.token);
8
+ const token = rbac.useAuth("PrivateRoute", (state) => state.token);
9
9
  const { pathname, search } = reactRouterDom.useLocation();
10
10
  return token !== null ? children : /* @__PURE__ */ jsxRuntime.jsx(
11
11
  reactRouterDom.Navigate,
@@ -19,4 +19,4 @@ const PrivateRoute = ({ children }) => {
19
19
  };
20
20
 
21
21
  exports.PrivateRoute = PrivateRoute;
22
- //# sourceMappingURL=PrivateRoute-I8uiqYMc.js.map
22
+ //# sourceMappingURL=PrivateRoute-KAM10GGM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute-I8uiqYMc.js","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["useAuth","useLocation","jsx","Navigate"],"mappings":";;;;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQA,aAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAAC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PrivateRoute-KAM10GGM.js","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":["useAuth","useLocation","jsx","Navigate"],"mappings":";;;;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQA,YAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAAC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useLocation, Navigate } from 'react-router-dom';
3
- import { a as useAuth } from './Theme-Gult7t3_.mjs';
3
+ import { a as useAuth } from './rbac-sYT_mXH0.mjs';
4
4
 
5
5
  const PrivateRoute = ({ children }) => {
6
6
  const token = useAuth("PrivateRoute", (state) => state.token);
@@ -17,4 +17,4 @@ const PrivateRoute = ({ children }) => {
17
17
  };
18
18
 
19
19
  export { PrivateRoute as P };
20
- //# sourceMappingURL=PrivateRoute-m7OeCfYA.mjs.map
20
+ //# sourceMappingURL=PrivateRoute-wDu6Vo0N.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute-m7OeCfYA.mjs","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":[],"mappings":";;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQ,OAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAI,WAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PrivateRoute-wDu6Vo0N.mjs","sources":["../../admin/src/components/PrivateRoute.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Navigate, useLocation } from 'react-router-dom';\n\nimport { useAuth } from '../features/Auth';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nconst PrivateRoute = ({ children }: PrivateRouteProps) => {\n const token = useAuth('PrivateRoute', (state) => state.token);\n const { pathname, search } = useLocation();\n\n return token !== null ? (\n children\n ) : (\n <Navigate\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n );\n};\n\nexport { PrivateRoute };\n"],"names":[],"mappings":";;;;AAUA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAkC,KAAA;AACxD,EAAA,MAAM,QAAQ,OAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,QAAA,EAAU,MAAO,EAAA,GAAI,WAAY,EAAA,CAAA;AAEzC,EAAO,OAAA,KAAA,KAAU,OACf,QAEA,mBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,aAAA;AAAA,QACV,MAAA,EACE,QAAa,KAAA,GAAA,GACT,CAAe,YAAA,EAAA,kBAAA,CAAmB,CAAG,EAAA,QAAQ,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CACzD,CAAA,GAAA,KAAA,CAAA;AAAA,OACR;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -5,11 +5,11 @@ import { Check } from '@strapi/icons';
5
5
  import upperFirst from 'lodash/upperFirst';
6
6
  import { useIntl } from 'react-intl';
7
7
  import * as yup from 'yup';
8
- import { e as errorsTrads, F as Form, I as InputRenderer } from './index-PCKQWB49.mjs';
9
- import { b as useTypedSelector, d as useTracking, u as useNotification, e as useTypedDispatch, f as useAPIErrorHandler, a as useAuth, g as useUpdateMeMutation, h as useIsSSOLockedQuery, P as Page, s as setAppTheme } from './Theme-Gult7t3_.mjs';
10
- import { i as isBaseQueryError } from './admin-w3o7ePNm.mjs';
11
- import { g as getDisplayName } from './users-P2ivP9Cm.mjs';
12
- import { C as COMMON_USER_SCHEMA } from './validation-GUb7vvsl.mjs';
8
+ import { e as errorsTrads, F as Form, I as InputRenderer } from './index-oBxjGftZ.mjs';
9
+ import { b as useTypedSelector, d as useTracking, u as useNotification, e as useTypedDispatch, f as useAPIErrorHandler, a as useAuth, g as useUpdateMeMutation, h as useIsSSOLockedQuery, P as Page, s as setAppTheme } from './rbac-sYT_mXH0.mjs';
10
+ import { i as isBaseQueryError } from './admin-DUKhYsmP.mjs';
11
+ import { g as getDisplayName } from './users-a4KTyEyc.mjs';
12
+ import { C as COMMON_USER_SCHEMA } from './validation-gH-06ERZ.mjs';
13
13
 
14
14
  const PROFILE_VALIDTION_SCHEMA = yup.object().shape({
15
15
  ...COMMON_USER_SCHEMA,
@@ -384,4 +384,4 @@ const UserInfoSection = () => {
384
384
  };
385
385
 
386
386
  export { ProfilePage };
387
- //# sourceMappingURL=ProfilePage-mO3MQozZ.mjs.map
387
+ //# sourceMappingURL=ProfilePage-0d-k7mtP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfilePage-mO3MQozZ.mjs","sources":["../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n HeaderLayout,\n useNotifyAT,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProfilePage = () => {\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <HeaderLayout\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={10}>\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </ContentLayout>\n </Box>\n </>\n )}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n as=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { ProfilePage };\n"],"names":["translatedErrors","currentTheme"],"mappings":"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"}
1
+ {"version":3,"file":"ProfilePage-0d-k7mtP.mjs","sources":["../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n HeaderLayout,\n useNotifyAT,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProfilePage = () => {\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <HeaderLayout\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={10}>\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </ContentLayout>\n </Box>\n </>\n )}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n as=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { ProfilePage };\n"],"names":["translatedErrors","currentTheme"],"mappings":"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"}
@@ -9,11 +9,11 @@ const icons = require('@strapi/icons');
9
9
  const upperFirst = require('lodash/upperFirst');
10
10
  const reactIntl = require('react-intl');
11
11
  const yup = require('yup');
12
- const index = require('./index-tmvI3DXu.js');
13
- const Theme = require('./Theme-j7r62OPn.js');
14
- const admin = require('./admin-vcfA8Zox.js');
15
- const users = require('./users-BKmHEtNM.js');
16
- const validation = require('./validation-Tb5_X4v4.js');
12
+ const index = require('./index-dcaxfEDi.js');
13
+ const rbac = require('./rbac-WZsv1761.js');
14
+ const admin = require('./admin-vlKSOeHB.js');
15
+ const users = require('./users-R5A0kUOV.js');
16
+ const validation = require('./validation-2MGgF10o.js');
17
17
 
18
18
  const _interopDefault = e => e && e.__esModule ? e : { default: e };
19
19
 
@@ -50,18 +50,18 @@ const PROFILE_VALIDTION_SCHEMA = yup__namespace.object().shape({
50
50
  preferedLanguage: yup__namespace.string().nullable()
51
51
  });
52
52
  const ProfilePage = () => {
53
- const localeNames = Theme.useTypedSelector((state) => state.admin_app.language.localeNames);
53
+ const localeNames = rbac.useTypedSelector((state) => state.admin_app.language.localeNames);
54
54
  const { formatMessage } = reactIntl.useIntl();
55
- const { trackUsage } = Theme.useTracking();
56
- const { toggleNotification } = Theme.useNotification();
55
+ const { trackUsage } = rbac.useTracking();
56
+ const { toggleNotification } = rbac.useNotification();
57
57
  const { notifyStatus } = designSystem.useNotifyAT();
58
- const currentTheme = Theme.useTypedSelector((state) => state.admin_app.theme.currentTheme);
59
- const dispatch = Theme.useTypedDispatch();
58
+ const currentTheme = rbac.useTypedSelector((state) => state.admin_app.theme.currentTheme);
59
+ const dispatch = rbac.useTypedDispatch();
60
60
  const {
61
61
  _unstableFormatValidationErrors: formatValidationErrors,
62
62
  _unstableFormatAPIError: formatApiError
63
- } = Theme.useAPIErrorHandler();
64
- const user = Theme.useAuth("ProfilePage", (state) => state.user);
63
+ } = rbac.useAPIErrorHandler();
64
+ const user = rbac.useAuth("ProfilePage", (state) => state.user);
65
65
  React__namespace.useEffect(() => {
66
66
  if (user) {
67
67
  notifyStatus(
@@ -77,12 +77,12 @@ const ProfilePage = () => {
77
77
  });
78
78
  }
79
79
  }, [formatMessage, notifyStatus, toggleNotification, user]);
80
- const [updateMe, { isLoading: isSubmittingForm }] = Theme.useUpdateMeMutation();
80
+ const [updateMe, { isLoading: isSubmittingForm }] = rbac.useUpdateMeMutation();
81
81
  const {
82
82
  isLoading,
83
83
  data: dataSSO,
84
84
  error
85
- } = Theme.useIsSSOLockedQuery(void 0, {
85
+ } = rbac.useIsSSOLockedQuery(void 0, {
86
86
  skip: !(window.strapi.isEE && window.strapi.features.isEnabled("sso"))
87
87
  });
88
88
  React__namespace.useEffect(() => {
@@ -106,7 +106,7 @@ const ProfilePage = () => {
106
106
  }
107
107
  const res = await updateMe(dataToSend);
108
108
  if ("data" in res) {
109
- dispatch(Theme.setAppTheme(currentTheme2));
109
+ dispatch(rbac.setAppTheme(currentTheme2));
110
110
  trackUsage("didChangeMode", { newMode: currentTheme2 });
111
111
  toggleNotification({
112
112
  type: "success",
@@ -130,7 +130,7 @@ const ProfilePage = () => {
130
130
  }
131
131
  };
132
132
  if (isLoading) {
133
- return /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Loading, {});
133
+ return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Loading, {});
134
134
  }
135
135
  const hasLockedRole = dataSSO?.isSSOLocked ?? false;
136
136
  const { email, firstname, lastname, username, preferedLanguage } = user ?? {};
@@ -144,8 +144,8 @@ const ProfilePage = () => {
144
144
  confirmPassword: "",
145
145
  password: ""
146
146
  };
147
- return /* @__PURE__ */ jsxRuntime.jsxs(Theme.Page.Main, { "aria-busy": isSubmittingForm, children: [
148
- /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Title, { children: formatMessage({
147
+ return /* @__PURE__ */ jsxRuntime.jsxs(rbac.Page.Main, { "aria-busy": isSubmittingForm, children: [
148
+ /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Title, { children: formatMessage({
149
149
  id: "Settings.profile.form.section.head.title",
150
150
  defaultMessage: "User profile"
151
151
  }) }),
@@ -241,7 +241,7 @@ const PasswordSection = () => {
241
241
  };
242
242
  const PreferencesSection = ({ localeNames }) => {
243
243
  const { formatMessage } = reactIntl.useIntl();
244
- const themesToDisplay = Theme.useTypedSelector((state) => state.admin_app.theme.availableThemes);
244
+ const themesToDisplay = rbac.useTypedSelector((state) => state.admin_app.theme.availableThemes);
245
245
  return /* @__PURE__ */ jsxRuntime.jsx(
246
246
  designSystem.Box,
247
247
  {
@@ -412,4 +412,4 @@ const UserInfoSection = () => {
412
412
  };
413
413
 
414
414
  exports.ProfilePage = ProfilePage;
415
- //# sourceMappingURL=ProfilePage-yLYrmYfh.js.map
415
+ //# sourceMappingURL=ProfilePage-oSih4pcL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfilePage-yLYrmYfh.js","sources":["../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n HeaderLayout,\n useNotifyAT,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProfilePage = () => {\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <HeaderLayout\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={10}>\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </ContentLayout>\n </Box>\n </>\n )}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n as=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { ProfilePage };\n"],"names":["yup","COMMON_USER_SCHEMA","translatedErrors","useTypedSelector","useIntl","useTracking","useNotification","useNotifyAT","useTypedDispatch","useAPIErrorHandler","useAuth","React","useUpdateMeMutation","useIsSSOLockedQuery","currentTheme","setAppTheme","isBaseQueryError","jsx","Page","jsxs","Form","Fragment","HeaderLayout","getDisplayName","Button","Check","Box","ContentLayout","Flex","Typography","index","Grid","GridItem","InputRenderer","upperFirst"],"mappings":"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"}
1
+ {"version":3,"file":"ProfilePage-oSih4pcL.js","sources":["../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n HeaderLayout,\n useNotifyAT,\n Grid,\n GridItem,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema.required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProfilePage = () => {\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <HeaderLayout\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={10}>\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </ContentLayout>\n </Box>\n </>\n )}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n ))}\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n as=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <GridItem key={field.name} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { ProfilePage };\n"],"names":["yup","COMMON_USER_SCHEMA","translatedErrors","useTypedSelector","useIntl","useTracking","useNotification","useNotifyAT","useTypedDispatch","useAPIErrorHandler","useAuth","React","useUpdateMeMutation","useIsSSOLockedQuery","currentTheme","setAppTheme","isBaseQueryError","jsx","Page","jsxs","Form","Fragment","HeaderLayout","getDisplayName","Button","Check","Box","ContentLayout","Flex","Typography","index","Grid","GridItem","InputRenderer","upperFirst"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useIntl } from 'react-intl';
3
- import { t as useClipboard, k as getBasename, v as useField } from './index-PCKQWB49.mjs';
3
+ import { t as useClipboard, k as getBasename, v as useField } from './index-oBxjGftZ.mjs';
4
4
  import { IconButton, MultiSelect, MultiSelectOption } from '@strapi/design-system';
5
5
  import { Duplicate, Loader as Loader$1 } from '@strapi/icons';
6
6
  import { C as ContentBox } from './ContentBox-PbS25I_4.mjs';
7
- import { u as useNotification } from './Theme-Gult7t3_.mjs';
7
+ import { u as useNotification } from './rbac-sYT_mXH0.mjs';
8
8
  import styled, { keyframes } from 'styled-components';
9
- import { u as useAdminRoles } from './useAdminRoles-iyGa9Xh9.mjs';
9
+ import { u as useAdminRoles } from './useAdminRoles-HWIbyk2Z.mjs';
10
10
 
11
11
  const MagicLinkWrapper = ({ children, target }) => {
12
12
  const { toggleNotification } = useNotification();
@@ -103,4 +103,4 @@ const LoadingWrapper = styled.div`
103
103
  const Loader = () => /* @__PURE__ */ jsx(LoadingWrapper, { children: /* @__PURE__ */ jsx(Loader$1, {}) });
104
104
 
105
105
  export { MagicLinkCE as M, SelectRoles as S, MagicLinkWrapper as a };
106
- //# sourceMappingURL=SelectRoles-vs_GIRku.mjs.map
106
+ //# sourceMappingURL=SelectRoles-V_PZUtVT.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectRoles-vs_GIRku.mjs","sources":["../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.tsx","../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx","../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { IconButton } from '@strapi/design-system';\nimport { Duplicate } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../../components/ContentBox';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useClipboard } from '../../../../../hooks/useClipboard';\n\ninterface MagicLinkWrapperProps {\n children: string;\n target: string;\n}\n\nconst MagicLinkWrapper = ({ children, target }: MagicLinkWrapperProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'notification.link-copied' }),\n });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nexport { MagicLinkWrapper };\nexport type { MagicLinkWrapperProps };\n","import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n","import { MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled, { keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n\n return (\n <MultiSelect\n id=\"roles\"\n disabled={disabled}\n error={error}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={placeholder}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["LoadingIcon"],"mappings":"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"}
1
+ {"version":3,"file":"SelectRoles-V_PZUtVT.mjs","sources":["../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.tsx","../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx","../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { IconButton } from '@strapi/design-system';\nimport { Duplicate } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../../components/ContentBox';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useClipboard } from '../../../../../hooks/useClipboard';\n\ninterface MagicLinkWrapperProps {\n children: string;\n target: string;\n}\n\nconst MagicLinkWrapper = ({ children, target }: MagicLinkWrapperProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'notification.link-copied' }),\n });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nexport { MagicLinkWrapper };\nexport type { MagicLinkWrapperProps };\n","import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n","import { MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled, { keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n\n return (\n <MultiSelect\n id=\"roles\"\n disabled={disabled}\n error={error}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={placeholder}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["LoadingIcon"],"mappings":"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"}
@@ -2,20 +2,20 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const reactIntl = require('react-intl');
5
- const index = require('./index-tmvI3DXu.js');
5
+ const index = require('./index-dcaxfEDi.js');
6
6
  const designSystem = require('@strapi/design-system');
7
7
  const icons = require('@strapi/icons');
8
8
  const ContentBox = require('./ContentBox-xqJCP2BC.js');
9
- const Theme = require('./Theme-j7r62OPn.js');
9
+ const rbac = require('./rbac-WZsv1761.js');
10
10
  const styled = require('styled-components');
11
- const useAdminRoles = require('./useAdminRoles-XTNZhJh5.js');
11
+ const useAdminRoles = require('./useAdminRoles-Q2BxHs4o.js');
12
12
 
13
13
  const _interopDefault = e => e && e.__esModule ? e : { default: e };
14
14
 
15
15
  const styled__default = /*#__PURE__*/_interopDefault(styled);
16
16
 
17
17
  const MagicLinkWrapper = ({ children, target }) => {
18
- const { toggleNotification } = Theme.useNotification();
18
+ const { toggleNotification } = rbac.useNotification();
19
19
  const { formatMessage } = reactIntl.useIntl();
20
20
  const { copy } = index.useClipboard();
21
21
  const copyLabel = formatMessage({
@@ -111,4 +111,4 @@ const Loader = () => /* @__PURE__ */ jsxRuntime.jsx(LoadingWrapper, { children:
111
111
  exports.MagicLinkCE = MagicLinkCE;
112
112
  exports.MagicLinkWrapper = MagicLinkWrapper;
113
113
  exports.SelectRoles = SelectRoles;
114
- //# sourceMappingURL=SelectRoles-E27rLNXb.js.map
114
+ //# sourceMappingURL=SelectRoles-ZsRUnSdr.js.map