@strapi/admin 5.9.0 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (861) hide show
  1. package/dist/_internal.js +86 -30
  2. package/dist/_internal.js.map +1 -1
  3. package/dist/_internal.mjs +85 -31
  4. package/dist/_internal.mjs.map +1 -1
  5. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js +116 -0
  6. package/dist/admin/chunks/AdminSeatInfo-BfPqdNN0.js.map +1 -0
  7. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs +114 -0
  8. package/dist/admin/chunks/AdminSeatInfo-Cw1ujAsZ.mjs.map +1 -0
  9. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs +932 -0
  10. package/dist/admin/chunks/ApplicationInfoPage-Ch6hKH4Y.mjs.map +1 -0
  11. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js +953 -0
  12. package/dist/admin/chunks/ApplicationInfoPage-DIiAE-tT.js.map +1 -0
  13. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs +87 -0
  14. package/dist/admin/chunks/AuthResponse-DFS6gVO4.mjs.map +1 -0
  15. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js +108 -0
  16. package/dist/admin/chunks/AuthResponse-DI-Q1kQL.js.map +1 -0
  17. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs +1223 -0
  18. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +1 -0
  19. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js +1245 -0
  20. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +1 -0
  21. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js +74 -0
  22. package/dist/admin/chunks/CreateActionEE-CSZxFkrZ.js.map +1 -0
  23. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs +53 -0
  24. package/dist/admin/chunks/CreateActionEE-DZ6ApqOF.mjs.map +1 -0
  25. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs +355 -0
  26. package/dist/admin/chunks/CreatePage-0PdN9Fyc.mjs.map +1 -0
  27. package/dist/admin/chunks/CreatePage-BK_ivKDk.js +378 -0
  28. package/dist/admin/chunks/CreatePage-BK_ivKDk.js.map +1 -0
  29. package/dist/admin/chunks/CreatePage-C8PMNi_P.js +57 -0
  30. package/dist/admin/chunks/CreatePage-C8PMNi_P.js.map +1 -0
  31. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs +54 -0
  32. package/dist/admin/chunks/CreatePage-DojcQqvH.mjs.map +1 -0
  33. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs +57 -0
  34. package/dist/admin/chunks/CreateView-BuN2a7bo.mjs.map +1 -0
  35. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs +62 -0
  36. package/dist/admin/chunks/CreateView-DB0xD4f5.mjs.map +1 -0
  37. package/dist/admin/chunks/CreateView-DtccbWiR.js +59 -0
  38. package/dist/admin/chunks/CreateView-DtccbWiR.js.map +1 -0
  39. package/dist/admin/chunks/CreateView-ITRNGoQ6.js +64 -0
  40. package/dist/admin/chunks/CreateView-ITRNGoQ6.js.map +1 -0
  41. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs +986 -0
  42. package/dist/admin/chunks/EditPage-BNZ90ISm.mjs.map +1 -0
  43. package/dist/admin/chunks/EditPage-BazkPM17.mjs +351 -0
  44. package/dist/admin/chunks/EditPage-BazkPM17.mjs.map +1 -0
  45. package/dist/admin/chunks/EditPage-DiDSR0tz.js +1010 -0
  46. package/dist/admin/chunks/EditPage-DiDSR0tz.js.map +1 -0
  47. package/dist/admin/chunks/EditPage-LRn1-C88.mjs +397 -0
  48. package/dist/admin/chunks/EditPage-LRn1-C88.mjs.map +1 -0
  49. package/dist/admin/chunks/EditPage-ibh8EtSv.js +420 -0
  50. package/dist/admin/chunks/EditPage-ibh8EtSv.js.map +1 -0
  51. package/dist/admin/chunks/EditPage-r043NYgB.js +374 -0
  52. package/dist/admin/chunks/EditPage-r043NYgB.js.map +1 -0
  53. package/dist/admin/chunks/EditView-CgMgqsza.mjs +398 -0
  54. package/dist/admin/chunks/EditView-CgMgqsza.mjs.map +1 -0
  55. package/dist/admin/chunks/EditView-DxmJI6e0.js +421 -0
  56. package/dist/admin/chunks/EditView-DxmJI6e0.js.map +1 -0
  57. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs +1039 -0
  58. package/dist/admin/chunks/EditViewPage-BE_u8pQP.mjs.map +1 -0
  59. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js +1062 -0
  60. package/dist/admin/chunks/EditViewPage-Bz4GEIsc.js.map +1 -0
  61. package/dist/admin/chunks/EventsTable-CZY0aI5G.js +97 -0
  62. package/dist/admin/chunks/EventsTable-CZY0aI5G.js.map +1 -0
  63. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs +95 -0
  64. package/dist/admin/chunks/EventsTable-CsFf4rOj.mjs.map +1 -0
  65. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs +55 -0
  66. package/dist/admin/chunks/HomePage-C2Sue0eX.mjs.map +1 -0
  67. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs +567 -0
  68. package/dist/admin/chunks/HomePage-CFTx_SgI.mjs.map +1 -0
  69. package/dist/admin/chunks/HomePage-Df0YSqNE.js +589 -0
  70. package/dist/admin/chunks/HomePage-Df0YSqNE.js.map +1 -0
  71. package/dist/admin/chunks/HomePage-ebJLhO6a.js +57 -0
  72. package/dist/admin/chunks/HomePage-ebJLhO6a.js.map +1 -0
  73. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs +174 -0
  74. package/dist/admin/chunks/InstalledPlugins-B4gyKUHh.mjs.map +1 -0
  75. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js +196 -0
  76. package/dist/admin/chunks/InstalledPlugins-BtwwVsQ_.js.map +1 -0
  77. package/dist/admin/chunks/Layout-BZTqa7oj.js +296 -0
  78. package/dist/admin/chunks/Layout-BZTqa7oj.js.map +1 -0
  79. package/dist/admin/chunks/Layout-B_xkPr1q.mjs +275 -0
  80. package/dist/admin/chunks/Layout-B_xkPr1q.mjs.map +1 -0
  81. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs +610 -0
  82. package/dist/admin/chunks/ListPage-Beh8uBDE.mjs.map +1 -0
  83. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs +696 -0
  84. package/dist/admin/chunks/ListPage-BtMdu1eQ.mjs.map +1 -0
  85. package/dist/admin/chunks/ListPage-CENQarKY.mjs +452 -0
  86. package/dist/admin/chunks/ListPage-CENQarKY.mjs.map +1 -0
  87. package/dist/admin/chunks/ListPage-Czwak48Z.mjs +373 -0
  88. package/dist/admin/chunks/ListPage-Czwak48Z.mjs.map +1 -0
  89. package/dist/admin/chunks/ListPage-DgmOJv7H.js +632 -0
  90. package/dist/admin/chunks/ListPage-DgmOJv7H.js.map +1 -0
  91. package/dist/admin/chunks/ListPage-Du6Jt5wY.js +721 -0
  92. package/dist/admin/chunks/ListPage-Du6Jt5wY.js.map +1 -0
  93. package/dist/admin/chunks/ListPage-LqcmQd_Q.js +474 -0
  94. package/dist/admin/chunks/ListPage-LqcmQd_Q.js.map +1 -0
  95. package/dist/admin/chunks/ListPage-YW-UVjk3.js +57 -0
  96. package/dist/admin/chunks/ListPage-YW-UVjk3.js.map +1 -0
  97. package/dist/admin/chunks/ListPage-gKsEm3Px.js +395 -0
  98. package/dist/admin/chunks/ListPage-gKsEm3Px.js.map +1 -0
  99. package/dist/admin/chunks/ListPage-r9rW__R8.mjs +55 -0
  100. package/dist/admin/chunks/ListPage-r9rW__R8.mjs.map +1 -0
  101. package/dist/admin/chunks/ListView-BfwBUxHL.js +276 -0
  102. package/dist/admin/chunks/ListView-BfwBUxHL.js.map +1 -0
  103. package/dist/admin/chunks/ListView-Bys8EN-y.js +278 -0
  104. package/dist/admin/chunks/ListView-Bys8EN-y.js.map +1 -0
  105. package/dist/admin/chunks/ListView-CajksON_.mjs +255 -0
  106. package/dist/admin/chunks/ListView-CajksON_.mjs.map +1 -0
  107. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs +253 -0
  108. package/dist/admin/chunks/ListView-Q2AO0JSX.mjs.map +1 -0
  109. package/dist/admin/chunks/Login-5ByBaKI3.mjs +93 -0
  110. package/dist/admin/chunks/Login-5ByBaKI3.mjs.map +1 -0
  111. package/dist/admin/chunks/Login-BpEOnVbU.js +95 -0
  112. package/dist/admin/chunks/Login-BpEOnVbU.js.map +1 -0
  113. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs +66 -0
  114. package/dist/admin/chunks/MagicLinkEE-CiQG7NL3.mjs.map +1 -0
  115. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js +68 -0
  116. package/dist/admin/chunks/MagicLinkEE-a-AbOB4s.js.map +1 -0
  117. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs +1134 -0
  118. package/dist/admin/chunks/MarketplacePage-BrHNQ8SG.mjs.map +1 -0
  119. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js +1158 -0
  120. package/dist/admin/chunks/MarketplacePage-my1nDaHy.js.map +1 -0
  121. package/dist/admin/chunks/ModalForm-Br-NALJ0.js +26 -0
  122. package/dist/admin/chunks/ModalForm-Br-NALJ0.js.map +1 -0
  123. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs +23 -0
  124. package/dist/admin/chunks/ModalForm-CZ98aSC9.mjs.map +1 -0
  125. package/dist/admin/chunks/Ornaments-CvdERnok.js +217 -0
  126. package/dist/admin/chunks/Ornaments-CvdERnok.js.map +1 -0
  127. package/dist/admin/chunks/Ornaments-DlP663hn.mjs +212 -0
  128. package/dist/admin/chunks/Ornaments-DlP663hn.mjs.map +1 -0
  129. package/dist/admin/chunks/Permissions-C7FA_7J9.js +2285 -0
  130. package/dist/admin/chunks/Permissions-C7FA_7J9.js.map +1 -0
  131. package/dist/admin/chunks/Permissions-CuLck8vw.mjs +2264 -0
  132. package/dist/admin/chunks/Permissions-CuLck8vw.mjs.map +1 -0
  133. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs +18 -0
  134. package/dist/admin/chunks/PrivateRoute-BYKd2yE4.mjs.map +1 -0
  135. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js +20 -0
  136. package/dist/admin/chunks/PrivateRoute-BnxIlIDb.js.map +1 -0
  137. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js +520 -0
  138. package/dist/admin/chunks/ProfilePage-C8zWtYzY.js.map +1 -0
  139. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs +498 -0
  140. package/dist/admin/chunks/ProfilePage-Do6nPMsx.mjs.map +1 -0
  141. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js +89 -0
  142. package/dist/admin/chunks/PurchaseAuditLogs-BTAi887h.js.map +1 -0
  143. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs +87 -0
  144. package/dist/admin/chunks/PurchaseAuditLogs-McvZESGI.mjs.map +1 -0
  145. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js +89 -0
  146. package/dist/admin/chunks/PurchaseContentHistory-dfepsahq.js.map +1 -0
  147. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs +87 -0
  148. package/dist/admin/chunks/PurchaseContentHistory-pb7RDvhZ.mjs.map +1 -0
  149. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs +87 -0
  150. package/dist/admin/chunks/PurchaseSingleSignOn-BUB9Irlt.mjs.map +1 -0
  151. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js +89 -0
  152. package/dist/admin/chunks/PurchaseSingleSignOn-Dgal5RnY.js.map +1 -0
  153. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js +76 -0
  154. package/dist/admin/chunks/RelativeTime-ChFKZs4z.js.map +1 -0
  155. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs +55 -0
  156. package/dist/admin/chunks/RelativeTime-r7oMqUVy.mjs.map +1 -0
  157. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js +107 -0
  158. package/dist/admin/chunks/SSOProviders-BC_OI8Id.js.map +1 -0
  159. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs +105 -0
  160. package/dist/admin/chunks/SSOProviders-Dw_eYbX-.mjs.map +1 -0
  161. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs +124 -0
  162. package/dist/admin/chunks/SelectRoles-CG3Czm0u.mjs.map +1 -0
  163. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js +128 -0
  164. package/dist/admin/chunks/SelectRoles-Clx1_4zB.js.map +1 -0
  165. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs +284 -0
  166. package/dist/admin/chunks/SingleSignOnPage-Bqn13t3u.mjs.map +1 -0
  167. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js +306 -0
  168. package/dist/admin/chunks/SingleSignOnPage-DqHWnXWQ.js.map +1 -0
  169. package/dist/admin/chunks/Table-BHi0q5It.js +197 -0
  170. package/dist/admin/chunks/Table-BHi0q5It.js.map +1 -0
  171. package/dist/admin/chunks/Table-Ra6bYcx7.mjs +195 -0
  172. package/dist/admin/chunks/Table-Ra6bYcx7.mjs.map +1 -0
  173. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs +1762 -0
  174. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +1 -0
  175. package/dist/admin/chunks/Theme-CFGbtvHi.js +1831 -0
  176. package/dist/admin/chunks/Theme-CFGbtvHi.js.map +1 -0
  177. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs +367 -0
  178. package/dist/admin/chunks/TokenTypeSelect-BIRgChNx.mjs.map +1 -0
  179. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js +394 -0
  180. package/dist/admin/chunks/TokenTypeSelect-EY1WftKo.js.map +1 -0
  181. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js +260 -0
  182. package/dist/admin/chunks/UseCasePage-Dl-WfgYc.js.map +1 -0
  183. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs +237 -0
  184. package/dist/admin/chunks/UseCasePage-Y_h0Fbiv.mjs.map +1 -0
  185. package/dist/admin/chunks/admin-BBS7sDVu.mjs +407 -0
  186. package/dist/admin/chunks/admin-BBS7sDVu.mjs.map +1 -0
  187. package/dist/admin/chunks/admin-udBiOv2o.js +422 -0
  188. package/dist/admin/chunks/admin-udBiOv2o.js.map +1 -0
  189. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs +79 -0
  190. package/dist/admin/chunks/apiTokens-Bl4j4xFt.mjs.map +1 -0
  191. package/dist/admin/chunks/apiTokens-C7CY0RRl.js +85 -0
  192. package/dist/admin/chunks/apiTokens-C7CY0RRl.js.map +1 -0
  193. package/dist/admin/chunks/ar-CKlv64GT.js +851 -0
  194. package/dist/admin/{ar-CzJtN9ZR.js.map → chunks/ar-CKlv64GT.js.map} +1 -1
  195. package/dist/admin/chunks/ar-DIoaNhYi.mjs +832 -0
  196. package/dist/admin/{ar-B4qxeRNq.mjs.map → chunks/ar-DIoaNhYi.mjs.map} +1 -1
  197. package/dist/admin/chunks/ca-CiTVrP0z.mjs +520 -0
  198. package/dist/admin/{ca-CNWrv4Mk.mjs.map → chunks/ca-CiTVrP0z.mjs.map} +1 -1
  199. package/dist/admin/chunks/ca-Dro6RjTq.js +536 -0
  200. package/dist/admin/{pl-CdJxEUSA.js.map → chunks/ca-Dro6RjTq.js.map} +1 -1
  201. package/dist/admin/chunks/constants-B8oOcJBB.mjs +5 -0
  202. package/dist/admin/chunks/constants-B8oOcJBB.mjs.map +1 -0
  203. package/dist/admin/chunks/constants-DClZ3JYF.js +163 -0
  204. package/dist/admin/chunks/constants-DClZ3JYF.js.map +1 -0
  205. package/dist/admin/chunks/constants-DoArvzRr.mjs +161 -0
  206. package/dist/admin/chunks/constants-DoArvzRr.mjs.map +1 -0
  207. package/dist/admin/chunks/constants-tbFuOuW4.js +8 -0
  208. package/dist/admin/chunks/constants-tbFuOuW4.js.map +1 -0
  209. package/dist/admin/chunks/cs-CrhAArjW.js +177 -0
  210. package/dist/admin/{cs-DeS9DzIq.js.map → chunks/cs-CrhAArjW.js.map} +1 -1
  211. package/dist/admin/chunks/cs-D7xysdyX.mjs +166 -0
  212. package/dist/admin/{cs-DrRkodPD.mjs.map → chunks/cs-D7xysdyX.mjs.map} +1 -1
  213. package/dist/admin/chunks/de--2g6Hiwv.js +530 -0
  214. package/dist/admin/{de-CxVS71Os.js.map → chunks/de--2g6Hiwv.js.map} +1 -1
  215. package/dist/admin/chunks/de-BWQ7SIyM.mjs +514 -0
  216. package/dist/admin/{de-D0NA2abW.mjs.map → chunks/de-BWQ7SIyM.mjs.map} +1 -1
  217. package/dist/admin/chunks/dk-7AZJZW29.mjs +434 -0
  218. package/dist/admin/{dk-BhJUQEKK.mjs.map → chunks/dk-7AZJZW29.mjs.map} +1 -1
  219. package/dist/admin/chunks/dk-DlX9Yc-Z.js +450 -0
  220. package/dist/admin/{ko-DQ16dRok.js.map → chunks/dk-DlX9Yc-Z.js.map} +1 -1
  221. package/dist/admin/chunks/en-CJjqxA2Q.js +804 -0
  222. package/dist/admin/{en-aGYWBxXH.js.map → chunks/en-CJjqxA2Q.js.map} +1 -1
  223. package/dist/admin/chunks/en-CRu3-kTC.mjs +784 -0
  224. package/dist/admin/{en-HhkCMXdW.mjs.map → chunks/en-CRu3-kTC.mjs.map} +1 -1
  225. package/dist/admin/chunks/en-GB-CMP_CCZs.js +8 -0
  226. package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +1 -0
  227. package/dist/admin/chunks/en-GB-DZyWkup_.mjs +6 -0
  228. package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +1 -0
  229. package/dist/admin/chunks/es-DlUN520X.mjs +602 -0
  230. package/dist/admin/{es-YUiY80mn.mjs.map → chunks/es-DlUN520X.mjs.map} +1 -1
  231. package/dist/admin/chunks/es-qJwzbuzj.js +620 -0
  232. package/dist/admin/{es-D3FlHFx3.js.map → chunks/es-qJwzbuzj.js.map} +1 -1
  233. package/dist/admin/chunks/eu-BjPzWjP-.mjs +625 -0
  234. package/dist/admin/{hu-BqsNBMOK.mjs.map → chunks/eu-BjPzWjP-.mjs.map} +1 -1
  235. package/dist/admin/chunks/eu-DLuO9QFa.js +643 -0
  236. package/dist/admin/chunks/eu-DLuO9QFa.js.map +1 -0
  237. package/dist/admin/chunks/fr-D-lfObnF.mjs +581 -0
  238. package/dist/admin/{fr-CQtzdQWu.mjs.map → chunks/fr-D-lfObnF.mjs.map} +1 -1
  239. package/dist/admin/chunks/fr-l9CvkceZ.js +601 -0
  240. package/dist/admin/{tr-D8gIyQxv.js.map → chunks/fr-l9CvkceZ.js.map} +1 -1
  241. package/dist/admin/chunks/gu-BfN4U3Q0.js +436 -0
  242. package/dist/admin/{gu-Hc5YzUuw.js.map → chunks/gu-BfN4U3Q0.js.map} +1 -1
  243. package/dist/admin/chunks/gu-DMqR9PzV.mjs +429 -0
  244. package/dist/admin/{gu-CSS25C49.mjs.map → chunks/gu-DMqR9PzV.mjs.map} +1 -1
  245. package/dist/admin/chunks/he-DQnlLpI2.js +327 -0
  246. package/dist/admin/chunks/he-DQnlLpI2.js.map +1 -0
  247. package/dist/admin/chunks/he-DfIYPy4g.mjs +315 -0
  248. package/dist/admin/{he-CR3FKaSH.mjs.map → chunks/he-DfIYPy4g.mjs.map} +1 -1
  249. package/dist/admin/chunks/hi-C1bRwQm3.mjs +519 -0
  250. package/dist/admin/{hi-CRUIUVKR.mjs.map → chunks/hi-C1bRwQm3.mjs.map} +1 -1
  251. package/dist/admin/chunks/hi-CAYgw5fw.js +535 -0
  252. package/dist/admin/{ml-D3lcQ9Qh.js.map → chunks/hi-CAYgw5fw.js.map} +1 -1
  253. package/dist/admin/chunks/hu-CmA0pIab.js +643 -0
  254. package/dist/admin/chunks/hu-CmA0pIab.js.map +1 -0
  255. package/dist/admin/chunks/hu-DTUInqNe.mjs +625 -0
  256. package/dist/admin/{eu-wKHkhamJ.mjs.map → chunks/hu-DTUInqNe.mjs.map} +1 -1
  257. package/dist/admin/chunks/id-C69myNeZ.js +301 -0
  258. package/dist/admin/{id-BX77nhRG.js.map → chunks/id-C69myNeZ.js.map} +1 -1
  259. package/dist/admin/chunks/id-CLj6OS01.mjs +290 -0
  260. package/dist/admin/{id-cH3Ovozx.mjs.map → chunks/id-CLj6OS01.mjs.map} +1 -1
  261. package/dist/admin/chunks/index-BUGouNML.mjs +7091 -0
  262. package/dist/admin/chunks/index-BUGouNML.mjs.map +1 -0
  263. package/dist/admin/chunks/index-D7OmC33R.js +7155 -0
  264. package/dist/admin/chunks/index-D7OmC33R.js.map +1 -0
  265. package/dist/admin/chunks/it-Bn9y0UG-.js +310 -0
  266. package/dist/admin/{it-BFsCRAiv.js.map → chunks/it-Bn9y0UG-.js.map} +1 -1
  267. package/dist/admin/chunks/it-CI4iXN-s.mjs +299 -0
  268. package/dist/admin/{it-D236xPzE.mjs.map → chunks/it-CI4iXN-s.mjs.map} +1 -1
  269. package/dist/admin/chunks/ja-DDL7fKfX.js +450 -0
  270. package/dist/admin/{ja-DeeXToB8.js.map → chunks/ja-DDL7fKfX.js.map} +1 -1
  271. package/dist/admin/chunks/ja-XD0qdvmh.mjs +434 -0
  272. package/dist/admin/{ja-CD7DxKrd.mjs.map → chunks/ja-XD0qdvmh.mjs.map} +1 -1
  273. package/dist/admin/chunks/ko-CAChQtgZ.mjs +433 -0
  274. package/dist/admin/{ko-CgT83B4e.mjs.map → chunks/ko-CAChQtgZ.mjs.map} +1 -1
  275. package/dist/admin/chunks/ko-C_d9Ja0b.js +449 -0
  276. package/dist/admin/{dk-B-52bH2A.js.map → chunks/ko-C_d9Ja0b.js.map} +1 -1
  277. package/dist/admin/chunks/ml-BN6g97vL.js +535 -0
  278. package/dist/admin/chunks/ml-BN6g97vL.js.map +1 -0
  279. package/dist/admin/chunks/ml-OZdE-Rdf.mjs +519 -0
  280. package/dist/admin/{ml-BJMvJbX5.mjs.map → chunks/ml-OZdE-Rdf.mjs.map} +1 -1
  281. package/dist/admin/chunks/ms-CWDO45lu.mjs +200 -0
  282. package/dist/admin/{pt-8dwKSOn3.mjs.map → chunks/ms-CWDO45lu.mjs.map} +1 -1
  283. package/dist/admin/chunks/ms-DSUp9TXl.js +211 -0
  284. package/dist/admin/{pt-CEcd6cjN.js.map → chunks/ms-DSUp9TXl.js.map} +1 -1
  285. package/dist/admin/chunks/nl-BRq2PB1q.mjs +621 -0
  286. package/dist/admin/{nl-CKIw7654.mjs.map → chunks/nl-BRq2PB1q.mjs.map} +1 -1
  287. package/dist/admin/chunks/nl-Bc4mZOba.js +639 -0
  288. package/dist/admin/{sv-BqRXfruc.js.map → chunks/nl-Bc4mZOba.js.map} +1 -1
  289. package/dist/admin/chunks/no-BtzfHZUH.mjs +300 -0
  290. package/dist/admin/{no-D6CAWjEU.mjs.map → chunks/no-BtzfHZUH.mjs.map} +1 -1
  291. package/dist/admin/chunks/no-D0VN_ZtA.js +311 -0
  292. package/dist/admin/{no-B9qB0rWa.js.map → chunks/no-D0VN_ZtA.js.map} +1 -1
  293. package/dist/admin/chunks/pl-BsvtDLRo.mjs +519 -0
  294. package/dist/admin/{pl-jPMrmdJq.mjs.map → chunks/pl-BsvtDLRo.mjs.map} +1 -1
  295. package/dist/admin/chunks/pl-D7HFG_xo.js +535 -0
  296. package/dist/admin/chunks/pl-D7HFG_xo.js.map +1 -0
  297. package/dist/admin/chunks/pt-BR-B3KKuF2p.js +606 -0
  298. package/dist/admin/{pt-BR-DBqyMlGp.js.map → chunks/pt-BR-B3KKuF2p.js.map} +1 -1
  299. package/dist/admin/chunks/pt-BR-DBqHmqA5.mjs +588 -0
  300. package/dist/admin/{pt-BR-THVjG5z2.mjs.map → chunks/pt-BR-DBqHmqA5.mjs.map} +1 -1
  301. package/dist/admin/chunks/pt-DCyoSDGa.js +210 -0
  302. package/dist/admin/{ms-C-JB0-h1.js.map → chunks/pt-DCyoSDGa.js.map} +1 -1
  303. package/dist/admin/chunks/pt-wKaSOdHh.mjs +200 -0
  304. package/dist/admin/{ms-eMDSLvhl.mjs.map → chunks/pt-wKaSOdHh.mjs.map} +1 -1
  305. package/dist/admin/chunks/ru-C13N1yaO.mjs +745 -0
  306. package/dist/admin/{ru-C34i9wJx.mjs.map → chunks/ru-C13N1yaO.mjs.map} +1 -1
  307. package/dist/admin/chunks/ru-Dj1oAKC7.js +764 -0
  308. package/dist/admin/{ru-Dwf09uUc.js.map → chunks/ru-Dj1oAKC7.js.map} +1 -1
  309. package/dist/admin/chunks/sa-BS5xpa-V.mjs +519 -0
  310. package/dist/admin/chunks/sa-BS5xpa-V.mjs.map +1 -0
  311. package/dist/admin/chunks/sa-ftcoOyFZ.js +535 -0
  312. package/dist/admin/chunks/sa-ftcoOyFZ.js.map +1 -0
  313. package/dist/admin/chunks/selectors-2ohXQx5g.js +13 -0
  314. package/dist/admin/chunks/selectors-2ohXQx5g.js.map +1 -0
  315. package/dist/admin/chunks/selectors-PQdhPmzv.mjs +11 -0
  316. package/dist/admin/chunks/selectors-PQdhPmzv.mjs.map +1 -0
  317. package/dist/admin/chunks/sk-BkoiGl_d.js +501 -0
  318. package/dist/admin/{sk-CbJVofN-.js.map → chunks/sk-BkoiGl_d.js.map} +1 -1
  319. package/dist/admin/chunks/sk-Yv9s7dUn.mjs +483 -0
  320. package/dist/admin/{sk-DQ2qpsG2.mjs.map → chunks/sk-Yv9s7dUn.mjs.map} +1 -1
  321. package/dist/admin/chunks/sv-CYpSsbq3.js +638 -0
  322. package/dist/admin/{nl-DN7knmKC.js.map → chunks/sv-CYpSsbq3.js.map} +1 -1
  323. package/dist/admin/chunks/sv-CaQpgtnl.mjs +620 -0
  324. package/dist/admin/{sv-D0vPVUAT.mjs.map → chunks/sv-CaQpgtnl.mjs.map} +1 -1
  325. package/dist/admin/chunks/th-D1Raa9T5.js +295 -0
  326. package/dist/admin/{th-CPx6wf0M.js.map → chunks/th-D1Raa9T5.js.map} +1 -1
  327. package/dist/admin/chunks/th-Mav5tUMF.mjs +284 -0
  328. package/dist/admin/{th-BG3IOCqV.mjs.map → chunks/th-Mav5tUMF.mjs.map} +1 -1
  329. package/dist/admin/chunks/tr-DZnC0Jye.mjs +581 -0
  330. package/dist/admin/{tr-BmV7At9f.mjs.map → chunks/tr-DZnC0Jye.mjs.map} +1 -1
  331. package/dist/admin/chunks/tr-KY2E7HZC.js +599 -0
  332. package/dist/admin/{fr-DrIHgYTT.js.map → chunks/tr-KY2E7HZC.js.map} +1 -1
  333. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs +90 -0
  334. package/dist/admin/chunks/transferTokens-9pdM-Bum.mjs.map +1 -0
  335. package/dist/admin/chunks/transferTokens-oEFM8kkT.js +97 -0
  336. package/dist/admin/chunks/transferTokens-oEFM8kkT.js.map +1 -0
  337. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +201 -0
  338. package/dist/admin/{uk-Ud9QNfkB.mjs.map → chunks/uk-Cb6a0PAZ.mjs.map} +1 -1
  339. package/dist/admin/chunks/uk-gz16FlMw.js +212 -0
  340. package/dist/admin/chunks/uk-gz16FlMw.js.map +1 -0
  341. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs +32 -0
  342. package/dist/admin/chunks/useAdminRoles-BEmkB0uj.mjs.map +1 -0
  343. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js +53 -0
  344. package/dist/admin/chunks/useAdminRoles-DwDqOIvp.js.map +1 -0
  345. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs +38 -0
  346. package/dist/admin/chunks/useEnterprise-Dy8wMNV5.mjs.map +1 -0
  347. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js +59 -0
  348. package/dist/admin/chunks/useEnterprise-IHd3AKd2.js.map +1 -0
  349. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js +96 -0
  350. package/dist/admin/chunks/useLicenseLimitNotification-BMCQ8obE.js.map +1 -0
  351. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs +75 -0
  352. package/dist/admin/chunks/useLicenseLimitNotification-CGkazzao.mjs.map +1 -0
  353. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs +29 -0
  354. package/dist/admin/chunks/useLicenseLimits-D4XBewxi.mjs.map +1 -0
  355. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js +50 -0
  356. package/dist/admin/chunks/useLicenseLimits-JOHH8jfL.js.map +1 -0
  357. package/dist/admin/chunks/useOnce-CCEXokcy.js +28 -0
  358. package/dist/admin/chunks/useOnce-CCEXokcy.js.map +1 -0
  359. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs +7 -0
  360. package/dist/admin/chunks/useOnce-EHSWW7FY.mjs.map +1 -0
  361. package/dist/admin/chunks/useWebhooks-CROc5Uno.js +117 -0
  362. package/dist/admin/chunks/useWebhooks-CROc5Uno.js.map +1 -0
  363. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs +115 -0
  364. package/dist/admin/chunks/useWebhooks-DzJ3X-hd.mjs.map +1 -0
  365. package/dist/admin/chunks/users-B3iOAYG-.mjs +39 -0
  366. package/dist/admin/chunks/users-B3iOAYG-.mjs.map +1 -0
  367. package/dist/admin/chunks/users-D-oKxjK9.js +42 -0
  368. package/dist/admin/chunks/users-D-oKxjK9.js.map +1 -0
  369. package/dist/admin/chunks/validation-DOQs6_Ay.mjs +52 -0
  370. package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +1 -0
  371. package/dist/admin/chunks/validation-ECrFbJ6K.js +73 -0
  372. package/dist/admin/chunks/validation-ECrFbJ6K.js.map +1 -0
  373. package/dist/admin/chunks/vi-BsRo_l_e.js +198 -0
  374. package/dist/admin/{vi-UeRpPdvI.js.map → chunks/vi-BsRo_l_e.js.map} +1 -1
  375. package/dist/admin/chunks/vi-r6WrFGyI.mjs +187 -0
  376. package/dist/admin/{vi-CGrr4ioy.mjs.map → chunks/vi-r6WrFGyI.mjs.map} +1 -1
  377. package/dist/admin/chunks/zh-B_FImn9T.js +640 -0
  378. package/dist/admin/{zh-AMwNTzOa.js.map → chunks/zh-B_FImn9T.js.map} +1 -1
  379. package/dist/admin/chunks/zh-CIjQrG_x.mjs +622 -0
  380. package/dist/admin/{zh-DtDdEUIE.mjs.map → chunks/zh-CIjQrG_x.mjs.map} +1 -1
  381. package/dist/admin/chunks/zh-Hans-BmHHqjob.mjs +716 -0
  382. package/dist/admin/{zh-Hans-DrZal35c.mjs.map → chunks/zh-Hans-BmHHqjob.mjs.map} +1 -1
  383. package/dist/admin/chunks/zh-Hans-Bv055w0d.js +735 -0
  384. package/dist/admin/{zh-Hans-B34a3f93.js.map → chunks/zh-Hans-Bv055w0d.js.map} +1 -1
  385. package/dist/admin/ee.js +9 -4
  386. package/dist/admin/ee.js.map +1 -1
  387. package/dist/admin/ee.mjs +9 -2
  388. package/dist/admin/ee.mjs.map +1 -1
  389. package/dist/admin/index.js +41 -5
  390. package/dist/admin/index.js.map +1 -1
  391. package/dist/admin/index.mjs +40 -3
  392. package/dist/admin/index.mjs.map +1 -1
  393. package/dist/admin/src/App.d.ts +2 -2
  394. package/dist/admin/src/StrapiApp.d.ts +2 -2
  395. package/dist/admin/src/components/ConfirmDialog.d.ts +1 -1
  396. package/dist/admin/src/components/DragLayer.d.ts +1 -1
  397. package/dist/admin/src/components/Filters.d.ts +2 -2
  398. package/dist/admin/src/components/Form.d.ts +6 -5
  399. package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -1
  400. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -1
  401. package/dist/admin/src/components/FormInputs/Date.d.ts +1 -1
  402. package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -1
  403. package/dist/admin/src/components/FormInputs/Email.d.ts +3 -2
  404. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
  405. package/dist/admin/src/components/FormInputs/Json.d.ts +1 -1
  406. package/dist/admin/src/components/FormInputs/Number.d.ts +2 -1
  407. package/dist/admin/src/components/FormInputs/Password.d.ts +3 -2
  408. package/dist/admin/src/components/FormInputs/Renderer.d.ts +3 -2
  409. package/dist/admin/src/components/FormInputs/String.d.ts +3 -2
  410. package/dist/admin/src/components/FormInputs/Textarea.d.ts +3 -2
  411. package/dist/admin/src/components/FormInputs/Time.d.ts +2 -1
  412. package/dist/admin/src/components/FormInputs/types.d.ts +2 -2
  413. package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
  414. package/dist/admin/src/components/Layouts/Layout.d.ts +5 -5
  415. package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -1
  416. package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
  417. package/dist/admin/src/components/PageHelpers.d.ts +2 -2
  418. package/dist/admin/src/components/Pagination.d.ts +1 -1
  419. package/dist/admin/src/components/Providers.d.ts +2 -2
  420. package/dist/admin/src/components/RelativeTime.d.ts +1 -1
  421. package/dist/admin/src/components/Table.d.ts +1 -1
  422. package/dist/admin/src/components/Theme.d.ts +1 -1
  423. package/dist/admin/src/constants/filters.d.ts +2 -2
  424. package/dist/admin/src/constants.d.ts +1 -1
  425. package/dist/admin/src/core/apis/CustomFields.d.ts +2 -2
  426. package/dist/admin/src/core/apis/Plugin.d.ts +2 -0
  427. package/dist/admin/src/core/apis/rbac.d.ts +1 -1
  428. package/dist/admin/src/core/apis/router.d.ts +2 -2
  429. package/dist/admin/src/core/store/configure.d.ts +5 -5
  430. package/dist/admin/src/core/store/hooks.d.ts +7 -10
  431. package/dist/admin/src/core/utils/createHook.d.ts +1 -1
  432. package/dist/admin/src/features/AppInfo.d.ts +1 -1
  433. package/dist/admin/src/features/Auth.d.ts +2 -2
  434. package/dist/admin/src/features/BackButton.d.ts +2 -2
  435. package/dist/admin/src/features/Configuration.d.ts +2 -2
  436. package/dist/admin/src/features/StrapiApp.d.ts +3 -2
  437. package/dist/admin/src/features/Tracking.d.ts +1 -1
  438. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -3
  439. package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
  440. package/dist/admin/src/hooks/useContentTypes.d.ts +1 -1
  441. package/dist/admin/src/hooks/useElementOnScreen.d.ts +7 -0
  442. package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
  443. package/dist/admin/src/hooks/usePersistentState.d.ts +1 -1
  444. package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
  445. package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
  446. package/dist/admin/src/hooks/useThrottledCallback.d.ts +2 -1
  447. package/dist/admin/src/index.d.ts +3 -2
  448. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
  449. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +1 -1
  450. package/dist/admin/src/pages/Auth/components/Login.d.ts +1 -1
  451. package/dist/admin/src/pages/Auth/constants.d.ts +1 -1
  452. package/dist/admin/src/pages/Home/components/Widget.d.ts +1 -1
  453. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +2 -2
  454. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +2 -2
  455. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  456. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +1 -1
  457. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +3 -3
  458. package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +1 -1
  459. package/dist/admin/src/pages/Settings/components/Tokens/LifeSpanInput.d.ts +2 -2
  460. package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +1 -1
  461. package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
  462. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.d.ts +1 -1
  463. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +2 -2
  464. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +12 -12
  465. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.d.ts +1 -1
  466. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +4 -3
  467. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
  468. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -2
  469. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +1 -1
  470. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -2
  471. package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +1 -1
  472. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleForm.d.ts +2 -2
  473. package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
  474. package/dist/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.d.ts +1 -1
  475. package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +3 -2
  476. package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
  477. package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +3 -3
  478. package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +2 -2
  479. package/dist/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.d.ts +1 -1
  480. package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +1 -1
  481. package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +1 -1
  482. package/dist/admin/src/pages/Settings/pages/Users/utils/validation.d.ts +2 -2
  483. package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +1 -1
  484. package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +1 -1
  485. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +6 -6
  486. package/dist/admin/src/reducer.d.ts +2 -2
  487. package/dist/admin/src/render.d.ts +1 -1
  488. package/dist/admin/src/selectors.d.ts +6 -6
  489. package/dist/admin/src/services/admin.d.ts +6 -6
  490. package/dist/admin/src/services/api.d.ts +1 -1
  491. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  492. package/dist/admin/src/services/auth.d.ts +22 -22
  493. package/dist/admin/src/services/contentApi.d.ts +1 -1
  494. package/dist/admin/src/services/contentManager.d.ts +6 -2
  495. package/dist/admin/src/services/homepage.d.ts +2 -2
  496. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  497. package/dist/admin/src/services/users.d.ts +12 -12
  498. package/dist/admin/src/services/webhooks.d.ts +3 -3
  499. package/dist/admin/src/types/adminConfiguration.d.ts +1 -1
  500. package/dist/admin/src/types/forms.d.ts +3 -3
  501. package/dist/admin/src/types/permissions.d.ts +1 -1
  502. package/dist/admin/src/utils/arrays.d.ts +1 -1
  503. package/dist/admin/src/utils/baseQuery.d.ts +1 -2
  504. package/dist/admin/src/utils/getFetchClient.d.ts +2 -1
  505. package/dist/admin/src/utils/normalizeAPIError.d.ts +1 -1
  506. package/dist/admin/src/utils/users.d.ts +1 -1
  507. package/dist/admin/test.js +2288 -35360
  508. package/dist/admin/test.js.map +1 -1
  509. package/dist/admin/test.mjs +2254 -35313
  510. package/dist/admin/test.mjs.map +1 -1
  511. package/dist/admin/tests/server.d.ts +1 -1
  512. package/dist/admin/tests/utils.d.ts +6 -6
  513. package/dist/ee/admin/src/constants.d.ts +2 -2
  514. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
  515. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
  516. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +1 -1
  517. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.d.ts +1 -1
  518. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  519. package/dist/ee/server/src/index.d.ts +1 -1
  520. package/dist/ee/server/src/index.d.ts.map +1 -1
  521. package/dist/server/index.js +8567 -6648
  522. package/dist/server/index.js.map +1 -1
  523. package/dist/server/index.mjs +8747 -6815
  524. package/dist/server/index.mjs.map +1 -1
  525. package/dist/server/src/bootstrap.d.ts.map +1 -1
  526. package/dist/server/src/services/api-token.d.ts +2 -1
  527. package/dist/server/src/services/api-token.d.ts.map +1 -1
  528. package/dist/shared/contracts/admin.d.ts +1 -1
  529. package/dist/shared/contracts/api-token.d.ts +1 -1
  530. package/dist/shared/contracts/authentication.d.ts +2 -2
  531. package/dist/shared/contracts/content-api.d.ts +2 -2
  532. package/dist/shared/contracts/content-types.d.ts +1 -1
  533. package/dist/shared/contracts/homepage.d.ts +2 -2
  534. package/dist/shared/contracts/permissions.d.ts +1 -1
  535. package/dist/shared/contracts/roles.d.ts +2 -2
  536. package/dist/shared/contracts/shared.d.ts +1 -1
  537. package/dist/shared/contracts/user.d.ts +2 -2
  538. package/dist/shared/contracts/users.d.ts +2 -2
  539. package/dist/shared/contracts/webhooks.d.ts +1 -1
  540. package/package.json +18 -15
  541. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs +0 -92
  542. package/dist/admin/AdminSeatInfo-Bpyschk4.mjs.map +0 -1
  543. package/dist/admin/AdminSeatInfo-DJY5XfV1.js +0 -96
  544. package/dist/admin/AdminSeatInfo-DJY5XfV1.js.map +0 -1
  545. package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js +0 -673
  546. package/dist/admin/ApplicationInfoPage-C5uFIQZ2.js.map +0 -1
  547. package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs +0 -646
  548. package/dist/admin/ApplicationInfoPage-Y3MPY3-0.mjs.map +0 -1
  549. package/dist/admin/AuthResponse-4S-gAOdq.js +0 -85
  550. package/dist/admin/AuthResponse-4S-gAOdq.js.map +0 -1
  551. package/dist/admin/AuthResponse-BI0D7fJC.mjs +0 -61
  552. package/dist/admin/AuthResponse-BI0D7fJC.mjs.map +0 -1
  553. package/dist/admin/AuthenticatedLayout-BGC6wyzT.js +0 -1198
  554. package/dist/admin/AuthenticatedLayout-BGC6wyzT.js.map +0 -1
  555. package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs +0 -1166
  556. package/dist/admin/AuthenticatedLayout-CGVw08Na.mjs.map +0 -1
  557. package/dist/admin/CreateActionEE-CRTFGenF.js +0 -76
  558. package/dist/admin/CreateActionEE-CRTFGenF.js.map +0 -1
  559. package/dist/admin/CreateActionEE-JUvyeAny.mjs +0 -49
  560. package/dist/admin/CreateActionEE-JUvyeAny.mjs.map +0 -1
  561. package/dist/admin/CreatePage-C6UdEQOs.js +0 -268
  562. package/dist/admin/CreatePage-C6UdEQOs.js.map +0 -1
  563. package/dist/admin/CreatePage-CMkC5wC9.mjs +0 -242
  564. package/dist/admin/CreatePage-CMkC5wC9.mjs.map +0 -1
  565. package/dist/admin/CreatePage-CbJkyfCM.js +0 -18
  566. package/dist/admin/CreatePage-CbJkyfCM.js.map +0 -1
  567. package/dist/admin/CreatePage-Dqo3PXZo.mjs +0 -13
  568. package/dist/admin/CreatePage-Dqo3PXZo.mjs.map +0 -1
  569. package/dist/admin/CreateView-B39tI8E1.js +0 -17
  570. package/dist/admin/CreateView-B39tI8E1.js.map +0 -1
  571. package/dist/admin/CreateView-B8nJeYSW.mjs +0 -13
  572. package/dist/admin/CreateView-B8nJeYSW.mjs.map +0 -1
  573. package/dist/admin/CreateView-COaAIHM0.js +0 -17
  574. package/dist/admin/CreateView-COaAIHM0.js.map +0 -1
  575. package/dist/admin/CreateView-wxPZtkV-.mjs +0 -13
  576. package/dist/admin/CreateView-wxPZtkV-.mjs.map +0 -1
  577. package/dist/admin/EditPage-BBZ7R3in.js +0 -779
  578. package/dist/admin/EditPage-BBZ7R3in.js.map +0 -1
  579. package/dist/admin/EditPage-CJZEJoQP.mjs +0 -754
  580. package/dist/admin/EditPage-CJZEJoQP.mjs.map +0 -1
  581. package/dist/admin/EditPage-CSFYt_HC.js +0 -359
  582. package/dist/admin/EditPage-CSFYt_HC.js.map +0 -1
  583. package/dist/admin/EditPage-D-DXDPnf.mjs +0 -330
  584. package/dist/admin/EditPage-D-DXDPnf.mjs.map +0 -1
  585. package/dist/admin/EditPage-D69Hx_ec.js +0 -298
  586. package/dist/admin/EditPage-D69Hx_ec.js.map +0 -1
  587. package/dist/admin/EditPage-UHcIKlhQ.mjs +0 -272
  588. package/dist/admin/EditPage-UHcIKlhQ.mjs.map +0 -1
  589. package/dist/admin/EditView-ByMWzlex.mjs +0 -331
  590. package/dist/admin/EditView-ByMWzlex.mjs.map +0 -1
  591. package/dist/admin/EditView-DXCpjmO7.js +0 -357
  592. package/dist/admin/EditView-DXCpjmO7.js.map +0 -1
  593. package/dist/admin/EditViewPage-CQO7BSJW.mjs +0 -841
  594. package/dist/admin/EditViewPage-CQO7BSJW.mjs.map +0 -1
  595. package/dist/admin/EditViewPage-CtBSUjNT.js +0 -873
  596. package/dist/admin/EditViewPage-CtBSUjNT.js.map +0 -1
  597. package/dist/admin/EventsTable-DPG53ZH8.mjs +0 -32
  598. package/dist/admin/EventsTable-DPG53ZH8.mjs.map +0 -1
  599. package/dist/admin/EventsTable-DSxr3I2m.js +0 -36
  600. package/dist/admin/EventsTable-DSxr3I2m.js.map +0 -1
  601. package/dist/admin/HomePage-4Evpy8F1.js +0 -15
  602. package/dist/admin/HomePage-4Evpy8F1.js.map +0 -1
  603. package/dist/admin/HomePage-CysC5L5a.mjs +0 -351
  604. package/dist/admin/HomePage-CysC5L5a.mjs.map +0 -1
  605. package/dist/admin/HomePage-DPgihdwp.mjs +0 -11
  606. package/dist/admin/HomePage-DPgihdwp.mjs.map +0 -1
  607. package/dist/admin/HomePage-kmMq4BVh.js +0 -376
  608. package/dist/admin/HomePage-kmMq4BVh.js.map +0 -1
  609. package/dist/admin/InstalledPlugins-BISfAqYE.mjs +0 -95
  610. package/dist/admin/InstalledPlugins-BISfAqYE.mjs.map +0 -1
  611. package/dist/admin/InstalledPlugins-CZ0iNNcI.js +0 -120
  612. package/dist/admin/InstalledPlugins-CZ0iNNcI.js.map +0 -1
  613. package/dist/admin/Layout-BVOfyAt_.js +0 -242
  614. package/dist/admin/Layout-BVOfyAt_.js.map +0 -1
  615. package/dist/admin/Layout-DQ36VXiH.mjs +0 -215
  616. package/dist/admin/Layout-DQ36VXiH.mjs.map +0 -1
  617. package/dist/admin/ListPage-BLWQxrOV.js +0 -581
  618. package/dist/admin/ListPage-BLWQxrOV.js.map +0 -1
  619. package/dist/admin/ListPage-BOoH_oks.mjs +0 -11
  620. package/dist/admin/ListPage-BOoH_oks.mjs.map +0 -1
  621. package/dist/admin/ListPage-BuglugGG.js +0 -296
  622. package/dist/admin/ListPage-BuglugGG.js.map +0 -1
  623. package/dist/admin/ListPage-C8ITVaku.mjs +0 -553
  624. package/dist/admin/ListPage-C8ITVaku.mjs.map +0 -1
  625. package/dist/admin/ListPage-D5Pr3mIA.js +0 -15
  626. package/dist/admin/ListPage-D5Pr3mIA.js.map +0 -1
  627. package/dist/admin/ListPage-D7Qlkk9D.mjs +0 -271
  628. package/dist/admin/ListPage-D7Qlkk9D.mjs.map +0 -1
  629. package/dist/admin/ListPage-DDML0hej.mjs +0 -355
  630. package/dist/admin/ListPage-DDML0hej.mjs.map +0 -1
  631. package/dist/admin/ListPage-DWol3DVZ.mjs +0 -477
  632. package/dist/admin/ListPage-DWol3DVZ.mjs.map +0 -1
  633. package/dist/admin/ListPage-Db_wvfYm.js +0 -380
  634. package/dist/admin/ListPage-Db_wvfYm.js.map +0 -1
  635. package/dist/admin/ListPage-DysJaP5_.js +0 -505
  636. package/dist/admin/ListPage-DysJaP5_.js.map +0 -1
  637. package/dist/admin/ListView-BNaDzPLr.mjs +0 -211
  638. package/dist/admin/ListView-BNaDzPLr.mjs.map +0 -1
  639. package/dist/admin/ListView-BdD6RHIQ.js +0 -226
  640. package/dist/admin/ListView-BdD6RHIQ.js.map +0 -1
  641. package/dist/admin/ListView-CBYpU5Jy.js +0 -237
  642. package/dist/admin/ListView-CBYpU5Jy.js.map +0 -1
  643. package/dist/admin/ListView-DBC2WBLc.mjs +0 -200
  644. package/dist/admin/ListView-DBC2WBLc.mjs.map +0 -1
  645. package/dist/admin/Login-BTE_Cz9k.mjs +0 -31
  646. package/dist/admin/Login-BTE_Cz9k.mjs.map +0 -1
  647. package/dist/admin/Login-Dtjgq7f1.js +0 -35
  648. package/dist/admin/Login-Dtjgq7f1.js.map +0 -1
  649. package/dist/admin/MagicLinkEE-CtnFDrz0.mjs +0 -27
  650. package/dist/admin/MagicLinkEE-CtnFDrz0.mjs.map +0 -1
  651. package/dist/admin/MagicLinkEE-Pn36r5si.js +0 -31
  652. package/dist/admin/MagicLinkEE-Pn36r5si.js.map +0 -1
  653. package/dist/admin/MarketplacePage-CJLsg0_U.js +0 -1008
  654. package/dist/admin/MarketplacePage-CJLsg0_U.js.map +0 -1
  655. package/dist/admin/MarketplacePage-CU7NpjXy.mjs +0 -978
  656. package/dist/admin/MarketplacePage-CU7NpjXy.mjs.map +0 -1
  657. package/dist/admin/ModalForm-B9SUkQ1l.mjs +0 -23
  658. package/dist/admin/ModalForm-B9SUkQ1l.mjs.map +0 -1
  659. package/dist/admin/ModalForm-DukjfMMw.js +0 -28
  660. package/dist/admin/ModalForm-DukjfMMw.js.map +0 -1
  661. package/dist/admin/Ornaments-BFThxr2U.mjs +0 -209
  662. package/dist/admin/Ornaments-BFThxr2U.mjs.map +0 -1
  663. package/dist/admin/Ornaments-CID1aaLv.js +0 -214
  664. package/dist/admin/Ornaments-CID1aaLv.js.map +0 -1
  665. package/dist/admin/Permissions-Cmimrby0.js +0 -2063
  666. package/dist/admin/Permissions-Cmimrby0.js.map +0 -1
  667. package/dist/admin/Permissions-gB8QZDch.mjs +0 -2027
  668. package/dist/admin/Permissions-gB8QZDch.mjs.map +0 -1
  669. package/dist/admin/PrivateRoute-DIxYvSni.mjs +0 -20
  670. package/dist/admin/PrivateRoute-DIxYvSni.mjs.map +0 -1
  671. package/dist/admin/PrivateRoute-qahg_uiu.js +0 -22
  672. package/dist/admin/PrivateRoute-qahg_uiu.js.map +0 -1
  673. package/dist/admin/ProfilePage-B04OT5Fd.js +0 -415
  674. package/dist/admin/ProfilePage-B04OT5Fd.js.map +0 -1
  675. package/dist/admin/ProfilePage-CQG9YVzy.mjs +0 -387
  676. package/dist/admin/ProfilePage-CQG9YVzy.mjs.map +0 -1
  677. package/dist/admin/PurchaseAuditLogs-DXQrXdue.js +0 -53
  678. package/dist/admin/PurchaseAuditLogs-DXQrXdue.js.map +0 -1
  679. package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs +0 -49
  680. package/dist/admin/PurchaseAuditLogs-DjHXN1Tz.mjs.map +0 -1
  681. package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs +0 -52
  682. package/dist/admin/PurchaseContentHistory-DU8CdwGr.mjs.map +0 -1
  683. package/dist/admin/PurchaseContentHistory-jwPqZsuh.js +0 -56
  684. package/dist/admin/PurchaseContentHistory-jwPqZsuh.js.map +0 -1
  685. package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js +0 -56
  686. package/dist/admin/PurchaseSingleSignOn-CH-Lyjo5.js.map +0 -1
  687. package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs +0 -52
  688. package/dist/admin/PurchaseSingleSignOn-DGbdGoUi.mjs.map +0 -1
  689. package/dist/admin/RelativeTime-BGJ1PWx_.mjs +0 -38
  690. package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +0 -1
  691. package/dist/admin/RelativeTime-DPLD3wf-.js +0 -60
  692. package/dist/admin/RelativeTime-DPLD3wf-.js.map +0 -1
  693. package/dist/admin/SSOProviders-BD7LHrkI.mjs +0 -58
  694. package/dist/admin/SSOProviders-BD7LHrkI.mjs.map +0 -1
  695. package/dist/admin/SSOProviders-nCeEldEQ.js +0 -60
  696. package/dist/admin/SSOProviders-nCeEldEQ.js.map +0 -1
  697. package/dist/admin/SelectRoles-CntZtdE0.js +0 -115
  698. package/dist/admin/SelectRoles-CntZtdE0.js.map +0 -1
  699. package/dist/admin/SelectRoles-pO8L3L4W.mjs +0 -111
  700. package/dist/admin/SelectRoles-pO8L3L4W.mjs.map +0 -1
  701. package/dist/admin/SingleSignOnPage-BTbCQg8m.js +0 -264
  702. package/dist/admin/SingleSignOnPage-BTbCQg8m.js.map +0 -1
  703. package/dist/admin/SingleSignOnPage-pdSopNwV.mjs +0 -239
  704. package/dist/admin/SingleSignOnPage-pdSopNwV.mjs.map +0 -1
  705. package/dist/admin/Table-Bnd3rC9d.mjs +0 -145
  706. package/dist/admin/Table-Bnd3rC9d.mjs.map +0 -1
  707. package/dist/admin/Table-DC1N5uDu.js +0 -147
  708. package/dist/admin/Table-DC1N5uDu.js.map +0 -1
  709. package/dist/admin/Theme-CTMU9Z8I.mjs +0 -1434
  710. package/dist/admin/Theme-CTMU9Z8I.mjs.map +0 -1
  711. package/dist/admin/Theme-DWGZX5tv.js +0 -1513
  712. package/dist/admin/Theme-DWGZX5tv.js.map +0 -1
  713. package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs +0 -374
  714. package/dist/admin/TokenTypeSelect-CfyMCrlm.mjs.map +0 -1
  715. package/dist/admin/TokenTypeSelect-Db3aYBYl.js +0 -402
  716. package/dist/admin/TokenTypeSelect-Db3aYBYl.js.map +0 -1
  717. package/dist/admin/UseCasePage-BZYK5NSZ.js +0 -161
  718. package/dist/admin/UseCasePage-BZYK5NSZ.js.map +0 -1
  719. package/dist/admin/UseCasePage-DNAHJWv5.mjs +0 -135
  720. package/dist/admin/UseCasePage-DNAHJWv5.mjs.map +0 -1
  721. package/dist/admin/admin-DOzK8yjX.mjs +0 -322
  722. package/dist/admin/admin-DOzK8yjX.mjs.map +0 -1
  723. package/dist/admin/admin-DRnq5SAg.js +0 -343
  724. package/dist/admin/admin-DRnq5SAg.js.map +0 -1
  725. package/dist/admin/apiTokens-ByCd8ZnO.mjs +0 -57
  726. package/dist/admin/apiTokens-ByCd8ZnO.mjs.map +0 -1
  727. package/dist/admin/apiTokens-rbJHW5Y2.js +0 -63
  728. package/dist/admin/apiTokens-rbJHW5Y2.js.map +0 -1
  729. package/dist/admin/ar-B4qxeRNq.mjs +0 -832
  730. package/dist/admin/ar-CzJtN9ZR.js +0 -853
  731. package/dist/admin/ca-BQmZwkyJ.js +0 -538
  732. package/dist/admin/ca-BQmZwkyJ.js.map +0 -1
  733. package/dist/admin/ca-CNWrv4Mk.mjs +0 -520
  734. package/dist/admin/constants-CRj0ViV1.mjs +0 -5
  735. package/dist/admin/constants-CRj0ViV1.mjs.map +0 -1
  736. package/dist/admin/constants-DF68OPrs.js +0 -8
  737. package/dist/admin/constants-DF68OPrs.js.map +0 -1
  738. package/dist/admin/constants-DJL6QsIz.js +0 -55
  739. package/dist/admin/constants-DJL6QsIz.js.map +0 -1
  740. package/dist/admin/constants-Dxi38yo0.mjs +0 -51
  741. package/dist/admin/constants-Dxi38yo0.mjs.map +0 -1
  742. package/dist/admin/cs-DeS9DzIq.js +0 -179
  743. package/dist/admin/cs-DrRkodPD.mjs +0 -166
  744. package/dist/admin/de-CxVS71Os.js +0 -532
  745. package/dist/admin/de-D0NA2abW.mjs +0 -514
  746. package/dist/admin/dk-B-52bH2A.js +0 -452
  747. package/dist/admin/dk-BhJUQEKK.mjs +0 -434
  748. package/dist/admin/en-GB-BHA-Obg7.js +0 -10
  749. package/dist/admin/en-GB-BHA-Obg7.js.map +0 -1
  750. package/dist/admin/en-GB-ohKGx5-8.mjs +0 -6
  751. package/dist/admin/en-GB-ohKGx5-8.mjs.map +0 -1
  752. package/dist/admin/en-HhkCMXdW.mjs +0 -782
  753. package/dist/admin/en-aGYWBxXH.js +0 -804
  754. package/dist/admin/es-D3FlHFx3.js +0 -622
  755. package/dist/admin/es-YUiY80mn.mjs +0 -602
  756. package/dist/admin/eu-DIDTb1Xq.js +0 -645
  757. package/dist/admin/eu-DIDTb1Xq.js.map +0 -1
  758. package/dist/admin/eu-wKHkhamJ.mjs +0 -625
  759. package/dist/admin/fr-CQtzdQWu.mjs +0 -581
  760. package/dist/admin/fr-DrIHgYTT.js +0 -603
  761. package/dist/admin/gu-CSS25C49.mjs +0 -429
  762. package/dist/admin/gu-Hc5YzUuw.js +0 -438
  763. package/dist/admin/he-CR3FKaSH.mjs +0 -315
  764. package/dist/admin/he-jthbtjhf.js +0 -329
  765. package/dist/admin/he-jthbtjhf.js.map +0 -1
  766. package/dist/admin/hi-CRUIUVKR.mjs +0 -519
  767. package/dist/admin/hi-Dd3AL7Vo.js +0 -537
  768. package/dist/admin/hi-Dd3AL7Vo.js.map +0 -1
  769. package/dist/admin/hu-BqsNBMOK.mjs +0 -625
  770. package/dist/admin/hu-Dy6tJonx.js +0 -645
  771. package/dist/admin/hu-Dy6tJonx.js.map +0 -1
  772. package/dist/admin/id-BX77nhRG.js +0 -303
  773. package/dist/admin/id-cH3Ovozx.mjs +0 -290
  774. package/dist/admin/index-BSJxpmc1.mjs +0 -5391
  775. package/dist/admin/index-BSJxpmc1.mjs.map +0 -1
  776. package/dist/admin/index-CydVsgIb.js +0 -5465
  777. package/dist/admin/index-CydVsgIb.js.map +0 -1
  778. package/dist/admin/it-BFsCRAiv.js +0 -312
  779. package/dist/admin/it-D236xPzE.mjs +0 -299
  780. package/dist/admin/ja-CD7DxKrd.mjs +0 -434
  781. package/dist/admin/ja-DeeXToB8.js +0 -452
  782. package/dist/admin/ko-CgT83B4e.mjs +0 -433
  783. package/dist/admin/ko-DQ16dRok.js +0 -451
  784. package/dist/admin/ml-BJMvJbX5.mjs +0 -519
  785. package/dist/admin/ml-D3lcQ9Qh.js +0 -537
  786. package/dist/admin/ms-C-JB0-h1.js +0 -213
  787. package/dist/admin/ms-eMDSLvhl.mjs +0 -200
  788. package/dist/admin/nl-CKIw7654.mjs +0 -621
  789. package/dist/admin/nl-DN7knmKC.js +0 -641
  790. package/dist/admin/no-B9qB0rWa.js +0 -313
  791. package/dist/admin/no-D6CAWjEU.mjs +0 -300
  792. package/dist/admin/pl-CdJxEUSA.js +0 -537
  793. package/dist/admin/pl-jPMrmdJq.mjs +0 -519
  794. package/dist/admin/pt-8dwKSOn3.mjs +0 -200
  795. package/dist/admin/pt-BR-DBqyMlGp.js +0 -608
  796. package/dist/admin/pt-BR-THVjG5z2.mjs +0 -588
  797. package/dist/admin/pt-CEcd6cjN.js +0 -212
  798. package/dist/admin/ru-C34i9wJx.mjs +0 -745
  799. package/dist/admin/ru-Dwf09uUc.js +0 -766
  800. package/dist/admin/sa-B2zR89DH.mjs +0 -519
  801. package/dist/admin/sa-B2zR89DH.mjs.map +0 -1
  802. package/dist/admin/sa-DDD2kxvP.js +0 -537
  803. package/dist/admin/sa-DDD2kxvP.js.map +0 -1
  804. package/dist/admin/selectors-BZApelK9.mjs +0 -6
  805. package/dist/admin/selectors-BZApelK9.mjs.map +0 -1
  806. package/dist/admin/selectors-BhMLvxvP.js +0 -8
  807. package/dist/admin/selectors-BhMLvxvP.js.map +0 -1
  808. package/dist/admin/sk-CbJVofN-.js +0 -503
  809. package/dist/admin/sk-DQ2qpsG2.mjs +0 -483
  810. package/dist/admin/sv-BqRXfruc.js +0 -640
  811. package/dist/admin/sv-D0vPVUAT.mjs +0 -620
  812. package/dist/admin/th-BG3IOCqV.mjs +0 -284
  813. package/dist/admin/th-CPx6wf0M.js +0 -297
  814. package/dist/admin/tr-BmV7At9f.mjs +0 -581
  815. package/dist/admin/tr-D8gIyQxv.js +0 -601
  816. package/dist/admin/transferTokens-AcbwoJPr.js +0 -76
  817. package/dist/admin/transferTokens-AcbwoJPr.js.map +0 -1
  818. package/dist/admin/transferTokens-CQP13miB.mjs +0 -69
  819. package/dist/admin/transferTokens-CQP13miB.mjs.map +0 -1
  820. package/dist/admin/uk-DHmepDW6.js +0 -214
  821. package/dist/admin/uk-DHmepDW6.js.map +0 -1
  822. package/dist/admin/uk-Ud9QNfkB.mjs +0 -201
  823. package/dist/admin/useAdminRoles-BqgYzxQp.js +0 -50
  824. package/dist/admin/useAdminRoles-BqgYzxQp.js.map +0 -1
  825. package/dist/admin/useAdminRoles-pTnwwZSZ.mjs +0 -28
  826. package/dist/admin/useAdminRoles-pTnwwZSZ.mjs.map +0 -1
  827. package/dist/admin/useEnterprise-BGzVPL4w.mjs +0 -28
  828. package/dist/admin/useEnterprise-BGzVPL4w.mjs.map +0 -1
  829. package/dist/admin/useEnterprise-ijNnK53J.js +0 -50
  830. package/dist/admin/useEnterprise-ijNnK53J.js.map +0 -1
  831. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs +0 -80
  832. package/dist/admin/useLicenseLimitNotification-CAQIrlP4.mjs.map +0 -1
  833. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js +0 -105
  834. package/dist/admin/useLicenseLimitNotification-bcc8RZRX.js.map +0 -1
  835. package/dist/admin/useLicenseLimits-73hrs_pV.js +0 -45
  836. package/dist/admin/useLicenseLimits-73hrs_pV.js.map +0 -1
  837. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs +0 -23
  838. package/dist/admin/useLicenseLimits-CcOoSJ8p.mjs.map +0 -1
  839. package/dist/admin/useOnce-C7EQufL3.js +0 -29
  840. package/dist/admin/useOnce-C7EQufL3.js.map +0 -1
  841. package/dist/admin/useOnce-NHeEacbN.mjs +0 -7
  842. package/dist/admin/useOnce-NHeEacbN.mjs.map +0 -1
  843. package/dist/admin/useWebhooks-PMmtSF2F.mjs +0 -93
  844. package/dist/admin/useWebhooks-PMmtSF2F.mjs.map +0 -1
  845. package/dist/admin/useWebhooks-oYy_qRlY.js +0 -95
  846. package/dist/admin/useWebhooks-oYy_qRlY.js.map +0 -1
  847. package/dist/admin/users-8N93LH7R.mjs +0 -30
  848. package/dist/admin/users-8N93LH7R.mjs.map +0 -1
  849. package/dist/admin/users-DaPfjlwf.js +0 -33
  850. package/dist/admin/users-DaPfjlwf.js.map +0 -1
  851. package/dist/admin/validation-BUsrO5hO.mjs +0 -43
  852. package/dist/admin/validation-BUsrO5hO.mjs.map +0 -1
  853. package/dist/admin/validation-B_Ec3vES.js +0 -65
  854. package/dist/admin/validation-B_Ec3vES.js.map +0 -1
  855. package/dist/admin/vi-CGrr4ioy.mjs +0 -187
  856. package/dist/admin/vi-UeRpPdvI.js +0 -200
  857. package/dist/admin/zh-AMwNTzOa.js +0 -642
  858. package/dist/admin/zh-DtDdEUIE.mjs +0 -622
  859. package/dist/admin/zh-Hans-B34a3f93.js +0 -737
  860. package/dist/admin/zh-Hans-DrZal35c.mjs +0 -716
  861. package/dist/package.json.d.ts +0 -193
@@ -0,0 +1,1762 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useMemo, useCallback, useRef, useEffect } from 'react';
4
+ import { createContext as createContext$1 } from '@radix-ui/react-context';
5
+ import { useIntl, IntlProvider } from 'react-intl';
6
+ import { Flex, useCallbackRef, Alert, Link, Main, Loader, EmptyStateLayout, Box, DesignSystemProvider } from '@strapi/design-system';
7
+ import { WarningCircle } from '@strapi/icons';
8
+ import { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';
9
+ import { useLocation, useNavigate } from 'react-router-dom';
10
+ import { parse, stringify } from 'qs';
11
+ import { a as adminApi, e as useInitQuery, f as useTelemetryPropertiesQuery, g as useProjectSettingsQuery, h as useUpdateProjectSettingsMutation } from './admin-BBS7sDVu.mjs';
12
+ import clone from 'lodash/clone';
13
+ import toPath from 'lodash/toPath';
14
+ import isEqual from 'lodash/isEqual';
15
+ import axios from 'axios';
16
+ import { produce } from 'immer';
17
+ import get from 'lodash/get';
18
+ import set from 'lodash/set';
19
+ import * as ContextSelector from 'use-context-selector';
20
+ import defaultsDeep from 'lodash/defaultsDeep';
21
+ import { useStore, useDispatch, useSelector } from 'react-redux';
22
+ import { createGlobalStyle } from 'styled-components';
23
+ import { createSelector, createSlice } from '@reduxjs/toolkit';
24
+
25
+ class RBAC {
26
+ use(middleware) {
27
+ if (Array.isArray(middleware)) {
28
+ this.middlewares.push(...middleware);
29
+ } else {
30
+ this.middlewares.push(middleware);
31
+ }
32
+ }
33
+ constructor(){
34
+ this.middlewares = [];
35
+ this.run = async (ctx, permissions)=>{
36
+ let index = 0;
37
+ const middlewaresToRun = this.middlewares.map((middleware)=>middleware(ctx));
38
+ const next = async (permissions)=>{
39
+ if (index < this.middlewares.length) {
40
+ return middlewaresToRun[index++](next)(permissions);
41
+ }
42
+ return permissions;
43
+ };
44
+ return next(permissions);
45
+ };
46
+ }
47
+ }
48
+
49
+ /**
50
+ * @experimental
51
+ * @description Create a context provider and a hook to consume the context.
52
+ *
53
+ * @warning this may be removed to the design-system instead of becoming stable.
54
+ */ function createContext(rootComponentName, defaultContext) {
55
+ const Context = ContextSelector.createContext(defaultContext);
56
+ const Provider = (props)=>{
57
+ const { children, ...context } = props;
58
+ // Only re-memoize when prop values change
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ const value = React.useMemo(()=>context, Object.values(context));
61
+ return /*#__PURE__*/ jsx(Context.Provider, {
62
+ value: value,
63
+ children: children
64
+ });
65
+ };
66
+ function useContext(consumerName, selector) {
67
+ return ContextSelector.useContextSelector(Context, (ctx)=>{
68
+ if (ctx) return selector(ctx);
69
+ // it's a required context.
70
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
71
+ });
72
+ }
73
+ Provider.displayName = rootComponentName + 'Provider';
74
+ return [
75
+ Provider,
76
+ useContext
77
+ ];
78
+ }
79
+
80
+ const useTypedDispatch = useDispatch;
81
+ const useTypedStore = useStore;
82
+ const useTypedSelector = useSelector;
83
+ const createTypedSelector = (selector)=>createSelector((state)=>state, selector);
84
+
85
+ const [StrapiAppProvider, useStrapiApp] = createContext('StrapiApp');
86
+
87
+ const useQueryParams = (initialParams)=>{
88
+ const { search } = useLocation();
89
+ const navigate = useNavigate();
90
+ const query = useMemo(()=>{
91
+ // TODO: investigate why sometimes we're getting the search with a leading `?` and sometimes not.
92
+ const searchQuery = search.startsWith('?') ? search.slice(1) : search;
93
+ if (!search && initialParams) {
94
+ return initialParams;
95
+ }
96
+ return {
97
+ ...initialParams,
98
+ ...parse(searchQuery)
99
+ };
100
+ }, [
101
+ search,
102
+ initialParams
103
+ ]);
104
+ const setQuery = useCallback((nextParams, method = 'push', replace = false)=>{
105
+ let nextQuery = {
106
+ ...query
107
+ };
108
+ if (method === 'remove') {
109
+ Object.keys(nextParams).forEach((key)=>{
110
+ if (Object.prototype.hasOwnProperty.call(nextQuery, key)) {
111
+ // @ts-expect-error – this is fine, if you want to fix it, please do.
112
+ delete nextQuery[key];
113
+ }
114
+ });
115
+ } else {
116
+ nextQuery = {
117
+ ...query,
118
+ ...nextParams
119
+ };
120
+ }
121
+ navigate({
122
+ search: stringify(nextQuery, {
123
+ encode: false
124
+ })
125
+ }, {
126
+ replace
127
+ });
128
+ }, [
129
+ navigate,
130
+ query
131
+ ]);
132
+ return [
133
+ {
134
+ query,
135
+ rawQuery: search
136
+ },
137
+ setQuery
138
+ ];
139
+ };
140
+
141
+ const STORAGE_KEYS$1 = {
142
+ TOKEN: 'jwtToken',
143
+ USER: 'userInfo'
144
+ };
145
+ const THEME_LOCAL_STORAGE_KEY = 'STRAPI_THEME';
146
+ const LANGUAGE_LOCAL_STORAGE_KEY = 'strapi-admin-language';
147
+ const getStoredToken = ()=>{
148
+ const token = localStorage.getItem(STORAGE_KEYS$1.TOKEN) ?? sessionStorage.getItem(STORAGE_KEYS$1.TOKEN);
149
+ if (typeof token === 'string') {
150
+ return JSON.parse(token);
151
+ }
152
+ return null;
153
+ };
154
+ const adminSlice = createSlice({
155
+ name: 'admin',
156
+ initialState: ()=>{
157
+ return {
158
+ language: {
159
+ locale: 'en',
160
+ localeNames: {
161
+ en: 'English'
162
+ }
163
+ },
164
+ permissions: {},
165
+ theme: {
166
+ availableThemes: [],
167
+ currentTheme: localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system'
168
+ },
169
+ token: null
170
+ };
171
+ },
172
+ reducers: {
173
+ setAppTheme (state, action) {
174
+ state.theme.currentTheme = action.payload;
175
+ window.localStorage.setItem(THEME_LOCAL_STORAGE_KEY, action.payload);
176
+ },
177
+ setAvailableThemes (state, action) {
178
+ state.theme.availableThemes = action.payload;
179
+ },
180
+ setLocale (state, action) {
181
+ state.language.locale = action.payload;
182
+ window.localStorage.setItem(LANGUAGE_LOCAL_STORAGE_KEY, action.payload);
183
+ document.documentElement.setAttribute('lang', action.payload);
184
+ },
185
+ setToken (state, action) {
186
+ state.token = action.payload;
187
+ },
188
+ login (state, action) {
189
+ const { token, persist } = action.payload;
190
+ if (!persist) {
191
+ window.sessionStorage.setItem(STORAGE_KEYS$1.TOKEN, JSON.stringify(token));
192
+ } else {
193
+ window.localStorage.setItem(STORAGE_KEYS$1.TOKEN, JSON.stringify(token));
194
+ }
195
+ state.token = token;
196
+ },
197
+ logout (state) {
198
+ state.token = null;
199
+ window.localStorage.removeItem(STORAGE_KEYS$1.TOKEN);
200
+ window.localStorage.removeItem(STORAGE_KEYS$1.USER);
201
+ window.sessionStorage.removeItem(STORAGE_KEYS$1.TOKEN);
202
+ window.sessionStorage.removeItem(STORAGE_KEYS$1.USER);
203
+ }
204
+ }
205
+ });
206
+ const reducer$1 = adminSlice.reducer;
207
+ const { setAppTheme, setAvailableThemes, setLocale, setToken, logout, login } = adminSlice.actions;
208
+
209
+ const authService = adminApi.enhanceEndpoints({
210
+ addTagTypes: [
211
+ 'User',
212
+ 'Me',
213
+ 'ProvidersOptions'
214
+ ]
215
+ }).injectEndpoints({
216
+ endpoints: (builder)=>({
217
+ /**
218
+ * ME
219
+ */ getMe: builder.query({
220
+ query: ()=>({
221
+ method: 'GET',
222
+ url: '/admin/users/me'
223
+ }),
224
+ transformResponse (res) {
225
+ return res.data;
226
+ },
227
+ providesTags: (res)=>res ? [
228
+ 'Me',
229
+ {
230
+ type: 'User',
231
+ id: res.id
232
+ }
233
+ ] : [
234
+ 'Me'
235
+ ]
236
+ }),
237
+ getMyPermissions: builder.query({
238
+ query: ()=>({
239
+ method: 'GET',
240
+ url: '/admin/users/me/permissions'
241
+ }),
242
+ transformResponse (res) {
243
+ return res.data;
244
+ }
245
+ }),
246
+ updateMe: builder.mutation({
247
+ query: (body)=>({
248
+ method: 'PUT',
249
+ url: '/admin/users/me',
250
+ data: body
251
+ }),
252
+ transformResponse (res) {
253
+ return res.data;
254
+ },
255
+ invalidatesTags: [
256
+ 'Me'
257
+ ]
258
+ }),
259
+ /**
260
+ * Permissions
261
+ */ checkPermissions: builder.query({
262
+ query: (permissions)=>({
263
+ method: 'POST',
264
+ url: '/admin/permissions/check',
265
+ data: permissions
266
+ })
267
+ }),
268
+ /**
269
+ * Auth methods
270
+ */ login: builder.mutation({
271
+ query: (body)=>({
272
+ method: 'POST',
273
+ url: '/admin/login',
274
+ data: body
275
+ }),
276
+ transformResponse (res) {
277
+ return res.data;
278
+ },
279
+ invalidatesTags: [
280
+ 'Me'
281
+ ]
282
+ }),
283
+ logout: builder.mutation({
284
+ query: ()=>({
285
+ method: 'POST',
286
+ url: '/admin/logout'
287
+ })
288
+ }),
289
+ resetPassword: builder.mutation({
290
+ query: (body)=>({
291
+ method: 'POST',
292
+ url: '/admin/reset-password',
293
+ data: body
294
+ }),
295
+ transformResponse (res) {
296
+ return res.data;
297
+ }
298
+ }),
299
+ renewToken: builder.mutation({
300
+ query: (body)=>({
301
+ method: 'POST',
302
+ url: '/admin/renew-token',
303
+ data: body
304
+ }),
305
+ transformResponse (res) {
306
+ return res.data;
307
+ }
308
+ }),
309
+ getRegistrationInfo: builder.query({
310
+ query: (registrationToken)=>({
311
+ url: '/admin/registration-info',
312
+ method: 'GET',
313
+ config: {
314
+ params: {
315
+ registrationToken
316
+ }
317
+ }
318
+ }),
319
+ transformResponse (res) {
320
+ return res.data;
321
+ }
322
+ }),
323
+ registerAdmin: builder.mutation({
324
+ query: (body)=>({
325
+ method: 'POST',
326
+ url: '/admin/register-admin',
327
+ data: body
328
+ }),
329
+ transformResponse (res) {
330
+ return res.data;
331
+ }
332
+ }),
333
+ registerUser: builder.mutation({
334
+ query: (body)=>({
335
+ method: 'POST',
336
+ url: '/admin/register',
337
+ data: body
338
+ }),
339
+ transformResponse (res) {
340
+ return res.data;
341
+ }
342
+ }),
343
+ forgotPassword: builder.mutation({
344
+ query: (body)=>({
345
+ url: '/admin/forgot-password',
346
+ method: 'POST',
347
+ data: body
348
+ })
349
+ }),
350
+ isSSOLocked: builder.query({
351
+ query: ()=>({
352
+ url: '/admin/providers/isSSOLocked',
353
+ method: 'GET'
354
+ }),
355
+ transformResponse (res) {
356
+ return res.data;
357
+ }
358
+ }),
359
+ getProviders: builder.query({
360
+ query: ()=>({
361
+ url: '/admin/providers',
362
+ method: 'GET'
363
+ })
364
+ }),
365
+ getProviderOptions: builder.query({
366
+ query: ()=>({
367
+ url: '/admin/providers/options',
368
+ method: 'GET'
369
+ }),
370
+ transformResponse (res) {
371
+ return res.data;
372
+ },
373
+ providesTags: [
374
+ 'ProvidersOptions'
375
+ ]
376
+ }),
377
+ updateProviderOptions: builder.mutation({
378
+ query: (body)=>({
379
+ url: '/admin/providers/options',
380
+ method: 'PUT',
381
+ data: body
382
+ }),
383
+ transformResponse (res) {
384
+ return res.data;
385
+ },
386
+ invalidatesTags: [
387
+ 'ProvidersOptions'
388
+ ]
389
+ })
390
+ }),
391
+ overrideExisting: false
392
+ });
393
+ const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useRenewTokenMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
394
+
395
+ const [Provider, useAuth] = createContext('Auth');
396
+ const STORAGE_KEYS = {
397
+ TOKEN: 'jwtToken',
398
+ USER: 'userInfo'
399
+ };
400
+ const AuthProvider = ({ children, _defaultPermissions = [], _disableRenewToken = false })=>{
401
+ const dispatch = useTypedDispatch();
402
+ const runRbacMiddleware = useStrapiApp('AuthProvider', (state)=>state.rbac.run);
403
+ const location = useLocation();
404
+ const [{ rawQuery }] = useQueryParams();
405
+ const token = useTypedSelector((state)=>state.admin_app.token ?? null);
406
+ const { data: user, isLoading: isLoadingUser } = useGetMeQuery(undefined, {
407
+ /**
408
+ * If there's no token, we don't try to fetch
409
+ * the user data because it will fail.
410
+ */ skip: !token
411
+ });
412
+ const { data: userPermissions = _defaultPermissions, refetch, isUninitialized, isLoading: isLoadingPermissions } = useGetMyPermissionsQuery(undefined, {
413
+ skip: !token
414
+ });
415
+ const navigate = useNavigate();
416
+ const [loginMutation] = useLoginMutation();
417
+ const [renewTokenMutation] = useRenewTokenMutation();
418
+ const [logoutMutation] = useLogoutMutation();
419
+ const clearStateAndLogout = React.useCallback(()=>{
420
+ dispatch(adminApi.util.resetApiState());
421
+ dispatch(logout());
422
+ navigate('/auth/login');
423
+ }, [
424
+ dispatch,
425
+ navigate
426
+ ]);
427
+ /**
428
+ * Fetch data from storages on mount and store it in our state.
429
+ * It's not normally stored in session storage unless the user
430
+ * does click "remember me" when they login. We also need to renew the token.
431
+ */ React.useEffect(()=>{
432
+ if (token && !_disableRenewToken) {
433
+ renewTokenMutation({
434
+ token
435
+ }).then((res)=>{
436
+ if ('data' in res) {
437
+ dispatch(login({
438
+ token: res.data.token
439
+ }));
440
+ } else {
441
+ clearStateAndLogout();
442
+ }
443
+ });
444
+ }
445
+ }, [
446
+ token,
447
+ dispatch,
448
+ renewTokenMutation,
449
+ clearStateAndLogout,
450
+ _disableRenewToken
451
+ ]);
452
+ React.useEffect(()=>{
453
+ if (user) {
454
+ if (user.preferedLanguage) {
455
+ dispatch(setLocale(user.preferedLanguage));
456
+ }
457
+ }
458
+ }, [
459
+ dispatch,
460
+ user
461
+ ]);
462
+ React.useEffect(()=>{
463
+ /**
464
+ * This will log a user out of all tabs if they log out in one tab.
465
+ */ const handleUserStorageChange = (event)=>{
466
+ if (event.key === STORAGE_KEYS.USER && event.newValue === null) {
467
+ clearStateAndLogout();
468
+ }
469
+ };
470
+ window.addEventListener('storage', handleUserStorageChange);
471
+ return ()=>{
472
+ window.removeEventListener('storage', handleUserStorageChange);
473
+ };
474
+ });
475
+ const login$1 = React.useCallback(async ({ rememberMe, ...body })=>{
476
+ const res = await loginMutation(body);
477
+ /**
478
+ * There will always be a `data` key in the response
479
+ * because if something fails, it will throw an error.
480
+ */ if ('data' in res) {
481
+ const { token } = res.data;
482
+ dispatch(login({
483
+ token,
484
+ persist: rememberMe
485
+ }));
486
+ }
487
+ return res;
488
+ }, [
489
+ dispatch,
490
+ loginMutation
491
+ ]);
492
+ const logout$1 = React.useCallback(async ()=>{
493
+ await logoutMutation();
494
+ clearStateAndLogout();
495
+ }, [
496
+ clearStateAndLogout,
497
+ logoutMutation
498
+ ]);
499
+ const refetchPermissions = React.useCallback(async ()=>{
500
+ if (!isUninitialized) {
501
+ await refetch();
502
+ }
503
+ }, [
504
+ isUninitialized,
505
+ refetch
506
+ ]);
507
+ const [checkPermissions] = useLazyCheckPermissionsQuery();
508
+ const checkUserHasPermissions = React.useCallback(async (permissions, passedPermissions, // TODO:
509
+ // Here we have parameterised checkUserHasPermissions in order to pass
510
+ // query context from elsewhere in the application.
511
+ // See packages/core/content-manager/admin/src/features/DocumentRBAC.tsx
512
+ // This is in order to calculate permissions on accurate query params.
513
+ // We should be able to rely on the query params in this provider
514
+ // If we need to pass additional context to the RBAC middleware
515
+ // we should define a better context type.
516
+ rawQueryContext)=>{
517
+ /**
518
+ * If there's no permissions to check, then we allow it to
519
+ * pass to preserve existing behaviours.
520
+ *
521
+ * TODO: should we review this? it feels more dangerous than useful.
522
+ */ if (!permissions || permissions.length === 0) {
523
+ return [
524
+ {
525
+ action: '',
526
+ subject: ''
527
+ }
528
+ ];
529
+ }
530
+ /**
531
+ * Given the provided permissions, return the permissions from either passedPermissions
532
+ * or userPermissions as this is expected to be the full permission entity.
533
+ */ const actualUserPermissions = passedPermissions ?? userPermissions;
534
+ const matchingPermissions = actualUserPermissions.filter((permission)=>permissions.findIndex((perm)=>perm.action === permission.action && perm.subject === permission.subject) >= 0);
535
+ const middlewaredPermissions = await runRbacMiddleware({
536
+ user,
537
+ permissions: userPermissions,
538
+ pathname: location.pathname,
539
+ search: (rawQueryContext || rawQuery).split('?')[1] ?? ''
540
+ }, matchingPermissions);
541
+ const shouldCheckConditions = middlewaredPermissions.some((perm)=>Array.isArray(perm.conditions) && perm.conditions.length > 0);
542
+ if (!shouldCheckConditions) {
543
+ return middlewaredPermissions;
544
+ }
545
+ const { data, error } = await checkPermissions({
546
+ permissions: middlewaredPermissions.map((perm)=>({
547
+ action: perm.action,
548
+ subject: perm.subject
549
+ }))
550
+ });
551
+ if (error) {
552
+ throw error;
553
+ } else {
554
+ return middlewaredPermissions.filter((_, index)=>data?.data[index] === true);
555
+ }
556
+ }, [
557
+ checkPermissions,
558
+ location.pathname,
559
+ rawQuery,
560
+ runRbacMiddleware,
561
+ user,
562
+ userPermissions
563
+ ]);
564
+ const isLoading = isLoadingUser || isLoadingPermissions;
565
+ return /*#__PURE__*/ jsx(Provider, {
566
+ token: token,
567
+ user: user,
568
+ login: login$1,
569
+ logout: logout$1,
570
+ permissions: userPermissions,
571
+ checkUserHasPermissions: checkUserHasPermissions,
572
+ refetchPermissions: refetchPermissions,
573
+ isLoading: isLoading,
574
+ children: children
575
+ });
576
+ };
577
+
578
+ const NotificationsContext = /*#__PURE__*/ React.createContext({
579
+ toggleNotification: ()=>{}
580
+ });
581
+ /**
582
+ * @internal
583
+ * @description DO NOT USE. This will be removed before stable release of v5.
584
+ */ const NotificationsProvider = ({ children })=>{
585
+ const notificationIdRef = React.useRef(0);
586
+ const [notifications, setNotifications] = React.useState([]);
587
+ const toggleNotification = React.useCallback(({ type, message, link, timeout, blockTransition, onClose, title })=>{
588
+ setNotifications((s)=>[
589
+ ...s,
590
+ {
591
+ id: notificationIdRef.current++,
592
+ type,
593
+ message,
594
+ link,
595
+ timeout,
596
+ blockTransition,
597
+ onClose,
598
+ title
599
+ }
600
+ ]);
601
+ }, []);
602
+ const clearNotification = React.useCallback((id)=>{
603
+ setNotifications((s)=>s.filter((n)=>n.id !== id));
604
+ }, []);
605
+ const value = React.useMemo(()=>({
606
+ toggleNotification
607
+ }), [
608
+ toggleNotification
609
+ ]);
610
+ return /*#__PURE__*/ jsxs(NotificationsContext.Provider, {
611
+ value: value,
612
+ children: [
613
+ /*#__PURE__*/ jsx(Flex, {
614
+ left: "50%",
615
+ marginLeft: "-250px",
616
+ position: "fixed",
617
+ direction: "column",
618
+ alignItems: "stretch",
619
+ gap: 2,
620
+ top: `4.6rem`,
621
+ width: `50rem`,
622
+ zIndex: "notification",
623
+ children: notifications.map((notification)=>{
624
+ return /*#__PURE__*/ jsx(Notification, {
625
+ ...notification,
626
+ clearNotification: clearNotification
627
+ }, notification.id);
628
+ })
629
+ }),
630
+ children
631
+ ]
632
+ });
633
+ };
634
+ const Notification = ({ clearNotification, blockTransition = false, id, link, message, onClose, timeout = 2500, title, type })=>{
635
+ const { formatMessage } = useIntl();
636
+ /**
637
+ * Chances are `onClose` won't be classed as stabilised,
638
+ * so we use `useCallbackRef` to avoid make it stable.
639
+ */ const onCloseCallback = useCallbackRef(onClose);
640
+ const handleClose = React.useCallback(()=>{
641
+ onCloseCallback();
642
+ clearNotification(id);
643
+ }, [
644
+ clearNotification,
645
+ id,
646
+ onCloseCallback
647
+ ]);
648
+ // eslint-disable-next-line consistent-return
649
+ React.useEffect(()=>{
650
+ if (!blockTransition) {
651
+ const timeoutReference = setTimeout(()=>{
652
+ handleClose();
653
+ }, timeout);
654
+ return ()=>{
655
+ clearTimeout(timeoutReference);
656
+ };
657
+ }
658
+ }, [
659
+ blockTransition,
660
+ handleClose,
661
+ timeout
662
+ ]);
663
+ let variant;
664
+ let alertTitle;
665
+ if (type === 'info') {
666
+ variant = 'default';
667
+ alertTitle = formatMessage({
668
+ id: 'notification.default.title',
669
+ defaultMessage: 'Information:'
670
+ });
671
+ } else if (type === 'danger') {
672
+ variant = 'danger';
673
+ alertTitle = formatMessage({
674
+ id: 'notification.warning.title',
675
+ defaultMessage: 'Warning:'
676
+ });
677
+ } else if (type === 'warning') {
678
+ variant = 'warning';
679
+ alertTitle = formatMessage({
680
+ id: 'notification.warning.title',
681
+ defaultMessage: 'Warning:'
682
+ });
683
+ } else {
684
+ variant = 'success';
685
+ alertTitle = formatMessage({
686
+ id: 'notification.success.title',
687
+ defaultMessage: 'Success:'
688
+ });
689
+ }
690
+ if (title) {
691
+ alertTitle = title;
692
+ }
693
+ return /*#__PURE__*/ jsx(Alert, {
694
+ action: link ? /*#__PURE__*/ jsx(Link, {
695
+ href: link.url,
696
+ isExternal: true,
697
+ children: link.label
698
+ }) : undefined,
699
+ onClose: handleClose,
700
+ closeLabel: formatMessage({
701
+ id: 'global.close',
702
+ defaultMessage: 'Close'
703
+ }),
704
+ title: alertTitle,
705
+ variant: variant,
706
+ children: message
707
+ });
708
+ };
709
+ /* -------------------------------------------------------------------------------------------------
710
+ * Hook
711
+ * -----------------------------------------------------------------------------------------------*/ /**
712
+ * @preserve
713
+ * @description Returns an object to interact with the notification
714
+ * system. The callbacks are wrapped in `useCallback` for a stable
715
+ * identity.
716
+ *
717
+ * @example
718
+ * ```tsx
719
+ * import { useNotification } from '@strapi/strapi/admin';
720
+ *
721
+ * const MyComponent = () => {
722
+ * const { toggleNotification } = useNotification();
723
+ *
724
+ * return <button onClick={() => toggleNotification({ message: 'Hello world!' })}>Click me</button>;
725
+ */ const useNotification = ()=>React.useContext(NotificationsContext);
726
+
727
+ /**
728
+ * Prefix message with 'apiError.'
729
+ */ function getPrefixedId(message, callback) {
730
+ const prefixedMessage = `apiError.${message}`;
731
+ // if a prefix function has been passed in it is used to
732
+ // prefix the id, e.g. to allow an error message to be
733
+ // set only for a localization namespace
734
+ if (typeof callback === 'function') {
735
+ return callback(prefixedMessage);
736
+ }
737
+ return prefixedMessage;
738
+ }
739
+
740
+ function normalizeError(error, { name, intlMessagePrefixCallback }) {
741
+ const { message } = error;
742
+ const normalizedError = {
743
+ id: getPrefixedId(message, intlMessagePrefixCallback),
744
+ defaultMessage: message,
745
+ name: error.name ?? name,
746
+ values: {}
747
+ };
748
+ if ('path' in error) {
749
+ normalizedError.values = {
750
+ path: error.path.join('.')
751
+ };
752
+ }
753
+ return normalizedError;
754
+ }
755
+ const validateErrorIsYupValidationError = (err)=>typeof err.details === 'object' && err.details !== null && 'errors' in err.details;
756
+ /**
757
+ * Normalize the format of `ResponseError`
758
+ * in places where the hook `useAPIErrorHandler` can not called
759
+ * (e.g. outside of a React component).
760
+ */ function normalizeAPIError(apiError, intlMessagePrefixCallback) {
761
+ const error = apiError.response?.data?.error;
762
+ if (error) {
763
+ // some errors carry multiple errors (such as ValidationError)
764
+ if (validateErrorIsYupValidationError(error)) {
765
+ return {
766
+ name: error.name,
767
+ message: error?.message || null,
768
+ errors: error.details.errors.map((err)=>normalizeError(err, {
769
+ name: error.name,
770
+ intlMessagePrefixCallback
771
+ }))
772
+ };
773
+ }
774
+ return normalizeError(error, {
775
+ intlMessagePrefixCallback
776
+ });
777
+ }
778
+ return null;
779
+ }
780
+
781
+ /**
782
+ * Deeply get a value from an object via its path.
783
+ */ function getIn(obj, key, def, pathStartIndex = 0) {
784
+ const path = toPath(key);
785
+ while(obj && pathStartIndex < path.length){
786
+ obj = obj[path[pathStartIndex++]];
787
+ }
788
+ // check if path is not in the end
789
+ if (pathStartIndex !== path.length && !obj) {
790
+ return def;
791
+ }
792
+ return obj === undefined ? def : obj;
793
+ }
794
+ /** @internal is the given object an Object? */ const isObject = (obj)=>obj !== null && typeof obj === 'object' && !Array.isArray(obj);
795
+ /** @internal is the given object an integer? */ const isInteger = (obj)=>String(Math.floor(Number(obj))) === obj;
796
+ /**
797
+ * Deeply set a value from in object via its path. If the value at `path`
798
+ * has changed, return a shallow copy of obj with `value` set at `path`.
799
+ * If `value` has not changed, return the original `obj`.
800
+ *
801
+ * Existing objects / arrays along `path` are also shallow copied. Sibling
802
+ * objects along path retain the same internal js reference. Since new
803
+ * objects / arrays are only created along `path`, we can test if anything
804
+ * changed in a nested structure by comparing the object's reference in
805
+ * the old and new object, similar to how russian doll cache invalidation
806
+ * works.
807
+ *
808
+ * In earlier versions of this function, which used cloneDeep, there were
809
+ * issues whereby settings a nested value would mutate the parent
810
+ * instead of creating a new object. `clone` avoids that bug making a
811
+ * shallow copy of the objects along the update path
812
+ * so no object is mutated in place.
813
+ *
814
+ * Before changing this function, please read through the following
815
+ * discussions.
816
+ *
817
+ * @see https://github.com/developit/linkstate
818
+ * @see https://github.com/jaredpalmer/formik/pull/123
819
+ */ function setIn(obj, path, value) {
820
+ const res = clone(obj); // this keeps inheritance when obj is a class
821
+ let resVal = res;
822
+ let i = 0;
823
+ const pathArray = toPath(path);
824
+ for(; i < pathArray.length - 1; i++){
825
+ const currentPath = pathArray[i];
826
+ const currentObj = getIn(obj, pathArray.slice(0, i + 1));
827
+ if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {
828
+ resVal = resVal[currentPath] = clone(currentObj);
829
+ } else {
830
+ const nextPath = pathArray[i + 1];
831
+ resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};
832
+ }
833
+ }
834
+ // Return original object if new value is the same as current
835
+ if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {
836
+ return obj;
837
+ }
838
+ if (value === undefined) {
839
+ delete resVal[pathArray[i]];
840
+ } else {
841
+ resVal[pathArray[i]] = value;
842
+ }
843
+ // If the path array has a single element, the loop did not run.
844
+ // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.
845
+ if (i === 0 && value === undefined) {
846
+ delete res[pathArray[i]];
847
+ }
848
+ return res;
849
+ }
850
+
851
+ /**
852
+ * @public
853
+ * @description The purpose of this hook is to offer a unified way to handle errors thrown by API endpoints, regardless of the type of error (`ValidationError`, `ApplicationErrror` ...)
854
+ that has been thrown.
855
+ * @example
856
+ * ```tsx
857
+ * import * as React from 'react';
858
+ * import { useFetchClient, useAPIErrorHandler, useNotification } from '@strapi/admin/admin';
859
+ *
860
+ * const MyComponent = () => {
861
+ * const { get } = useFetchClient();
862
+ * const { formatAPIError } = useAPIErrorHandler(getTrad);
863
+ * const { toggleNotification } = useNotification();
864
+ *
865
+ * const handleDeleteItem = async () => {
866
+ * try {
867
+ * return await get('/admin');
868
+ * } catch (error) {
869
+ * toggleNotification({
870
+ * type: 'danger',
871
+ * message: formatAPIError(error),
872
+ * });
873
+ * }
874
+ * };
875
+ * return <button onClick={handleDeleteItem}>Delete item</button>;
876
+ * };
877
+ * ```
878
+ */ function useAPIErrorHandler(intlMessagePrefixCallback) {
879
+ const { formatMessage } = useIntl();
880
+ /**
881
+ * @description This method try to normalize the passed error
882
+ * and then call formatAPIError to stringify the ResponseObject
883
+ * into a string. If it fails it will call formatFetchError and
884
+ * return the error message.
885
+ */ const formatError = React.useCallback((error)=>{
886
+ // Try to normalize the passed error first. This will fail for e.g. network
887
+ // errors which are thrown by fetchClient directly.
888
+ try {
889
+ const formattedErr = formatAPIError(error, {
890
+ intlMessagePrefixCallback,
891
+ formatMessage
892
+ });
893
+ if (!formattedErr) {
894
+ return formatFetchError(error, {
895
+ intlMessagePrefixCallback,
896
+ formatMessage
897
+ });
898
+ }
899
+ return formattedErr;
900
+ } catch (_) {
901
+ throw new Error('formatAPIError: Unknown error:', error);
902
+ }
903
+ }, [
904
+ formatMessage,
905
+ intlMessagePrefixCallback
906
+ ]);
907
+ return {
908
+ /**
909
+ * @alpha
910
+ * Convert ValidationErrors from the API into an object that can be used by forms.
911
+ */ _unstableFormatValidationErrors: React.useCallback((error)=>{
912
+ if (typeof error.details === 'object' && error.details !== null) {
913
+ if ('errors' in error.details && Array.isArray(error.details.errors)) {
914
+ const validationErrors = error.details.errors;
915
+ return validationErrors.reduce((acc, err)=>{
916
+ const { path, message } = err;
917
+ return setIn(acc, path.join('.'), message);
918
+ }, {});
919
+ } else {
920
+ const details = error.details;
921
+ return Object.keys(details).reduce((acc, key)=>{
922
+ const messages = details[key];
923
+ return {
924
+ ...acc,
925
+ [key]: messages.join(', ')
926
+ };
927
+ }, {});
928
+ }
929
+ } else {
930
+ return {};
931
+ }
932
+ }, []),
933
+ /**
934
+ * @alpha
935
+ * This handles the errors given from `redux-toolkit`'s axios based baseQuery function.
936
+ */ _unstableFormatAPIError: React.useCallback((error)=>{
937
+ const err = {
938
+ response: {
939
+ data: {
940
+ error
941
+ }
942
+ }
943
+ };
944
+ /**
945
+ * There's a chance with SerializedErrors that the message is not set.
946
+ * In that case we return a generic error message.
947
+ */ if (!error.message) {
948
+ return 'Unknown error occured.';
949
+ }
950
+ return formatError(err);
951
+ }, [
952
+ formatError
953
+ ]),
954
+ formatAPIError: formatError
955
+ };
956
+ }
957
+ function formatFetchError(error, { intlMessagePrefixCallback, formatMessage }) {
958
+ const { code, message } = error;
959
+ return formatMessage({
960
+ id: getPrefixedId(message, intlMessagePrefixCallback),
961
+ defaultMessage: message
962
+ }, {
963
+ code
964
+ });
965
+ }
966
+ /**
967
+ * @description This method stringifies the `ResponseObject` into
968
+ * a string. If multiple errors are thrown by the API, which
969
+ * happens e.g.in the case of a `ValidationError`, all errors
970
+ * will bo concatenated into a single string.
971
+ */ function formatAPIError(error, { formatMessage, intlMessagePrefixCallback }) {
972
+ if (!formatMessage) {
973
+ throw new Error('The formatMessage callback is a mandatory argument.');
974
+ }
975
+ const normalizedError = normalizeAPIError(error, intlMessagePrefixCallback);
976
+ if (!normalizedError) {
977
+ return null;
978
+ }
979
+ if ('message' in normalizedError && normalizedError.message !== null) {
980
+ return normalizedError.message;
981
+ }
982
+ // stringify multiple errors
983
+ if ('errors' in normalizedError) {
984
+ return normalizedError.errors.map(({ id, defaultMessage, values })=>formatMessage({
985
+ id,
986
+ defaultMessage
987
+ }, values)).join('\n');
988
+ }
989
+ return formatMessage(normalizedError);
990
+ }
991
+
992
+ const PageMain = ({ children, ...restProps })=>{
993
+ return /*#__PURE__*/ jsx(Main, {
994
+ ...restProps,
995
+ children: children
996
+ });
997
+ };
998
+ /**
999
+ * @public
1000
+ * @description A loading component that should be rendered as the page
1001
+ * whilst you load the content for the aforementioned page.
1002
+ */ const Loading = ({ children = 'Loading content.' })=>{
1003
+ return /*#__PURE__*/ jsx(PageMain, {
1004
+ height: "100vh",
1005
+ "aria-busy": true,
1006
+ children: /*#__PURE__*/ jsx(Flex, {
1007
+ alignItems: "center",
1008
+ height: "100%",
1009
+ justifyContent: "center",
1010
+ children: /*#__PURE__*/ jsx(Loader, {
1011
+ children: children
1012
+ })
1013
+ })
1014
+ });
1015
+ };
1016
+ /**
1017
+ * TODO: should we start passing our errors here so they're persisted on the screen?
1018
+ * This could follow something similar to how the global app error works...?
1019
+ */ /**
1020
+ * @public
1021
+ * @description An error component that should be rendered as the page
1022
+ * when an error occurs.
1023
+ */ const Error$1 = (props)=>{
1024
+ const { formatMessage } = useIntl();
1025
+ return /*#__PURE__*/ jsx(PageMain, {
1026
+ height: "100%",
1027
+ children: /*#__PURE__*/ jsx(Flex, {
1028
+ alignItems: "center",
1029
+ height: "100%",
1030
+ justifyContent: "center",
1031
+ children: /*#__PURE__*/ jsx(EmptyStateLayout, {
1032
+ icon: /*#__PURE__*/ jsx(WarningCircle, {
1033
+ width: "16rem"
1034
+ }),
1035
+ content: formatMessage({
1036
+ id: 'anErrorOccurred',
1037
+ defaultMessage: 'Whoops! Something went wrong. Please, try again.'
1038
+ }),
1039
+ ...props
1040
+ })
1041
+ })
1042
+ });
1043
+ };
1044
+ /**
1045
+ * @public
1046
+ * @description A component that should be rendered as the page
1047
+ * when the user does not have the permissions to access the content.
1048
+ * This component does not check any permissions, it's up to you to decide
1049
+ * when it should be rendered.
1050
+ */ const NoPermissions = (props)=>{
1051
+ const { formatMessage } = useIntl();
1052
+ return /*#__PURE__*/ jsx(PageMain, {
1053
+ height: "100%",
1054
+ children: /*#__PURE__*/ jsx(Flex, {
1055
+ alignItems: "center",
1056
+ height: "100%",
1057
+ justifyContent: "center",
1058
+ children: /*#__PURE__*/ jsx(Box, {
1059
+ minWidth: "50%",
1060
+ children: /*#__PURE__*/ jsx(EmptyStateLayout, {
1061
+ icon: /*#__PURE__*/ jsx(EmptyPermissions, {
1062
+ width: "16rem"
1063
+ }),
1064
+ content: formatMessage({
1065
+ id: 'app.components.EmptyStateLayout.content-permissions',
1066
+ defaultMessage: "You don't have the permissions to access that content"
1067
+ }),
1068
+ ...props
1069
+ })
1070
+ })
1071
+ })
1072
+ });
1073
+ };
1074
+ /**
1075
+ * @public
1076
+ * @description A component that should be rendered as the page
1077
+ * when there is no data available to display.
1078
+ * This component does not check any permissions, it's up to you to decide
1079
+ * when it should be rendered.
1080
+ */ const NoData = (props)=>{
1081
+ const { formatMessage } = useIntl();
1082
+ return /*#__PURE__*/ jsx(PageMain, {
1083
+ height: "100%",
1084
+ background: "neutral100",
1085
+ children: /*#__PURE__*/ jsx(Flex, {
1086
+ alignItems: "center",
1087
+ height: "100%",
1088
+ width: "100%",
1089
+ justifyContent: "center",
1090
+ children: /*#__PURE__*/ jsx(Box, {
1091
+ minWidth: "50%",
1092
+ children: /*#__PURE__*/ jsx(EmptyStateLayout, {
1093
+ icon: /*#__PURE__*/ jsx(EmptyDocuments, {
1094
+ width: "16rem"
1095
+ }),
1096
+ action: props.action,
1097
+ content: formatMessage({
1098
+ id: 'app.components.EmptyStateLayout.content-document',
1099
+ defaultMessage: 'No content found'
1100
+ }),
1101
+ ...props
1102
+ })
1103
+ })
1104
+ })
1105
+ });
1106
+ };
1107
+ /**
1108
+ * @public
1109
+ * @description A wrapper component that should be used to protect a page. It will check the permissions
1110
+ * you pass to it and render the children if the user has the required permissions. If a user does not have ALL
1111
+ * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render
1112
+ * the loading component and should the check fail it will render the error component with a notification.
1113
+ */ const Protect = ({ permissions = [], children })=>{
1114
+ const userPermissions = useAuth('Protect', (state)=>state.permissions);
1115
+ const { toggleNotification } = useNotification();
1116
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1117
+ const matchingPermissions = userPermissions.filter((permission)=>permissions.findIndex((perm)=>perm.action === permission.action && perm.subject === permission.subject) >= 0);
1118
+ const shouldCheckConditions = matchingPermissions.some((perm)=>Array.isArray(perm.conditions) && perm.conditions.length > 0);
1119
+ const { isLoading, error, data } = useCheckPermissionsQuery({
1120
+ permissions: matchingPermissions.map((perm)=>({
1121
+ action: perm.action,
1122
+ subject: perm.subject
1123
+ }))
1124
+ }, {
1125
+ skip: !shouldCheckConditions
1126
+ });
1127
+ React.useEffect(()=>{
1128
+ if (error) {
1129
+ toggleNotification({
1130
+ type: 'danger',
1131
+ message: formatAPIError(error)
1132
+ });
1133
+ }
1134
+ }, [
1135
+ error,
1136
+ formatAPIError,
1137
+ toggleNotification
1138
+ ]);
1139
+ if (isLoading) {
1140
+ return /*#__PURE__*/ jsx(Loading, {});
1141
+ }
1142
+ if (error) {
1143
+ return /*#__PURE__*/ jsx(Error$1, {});
1144
+ }
1145
+ const { data: permissionsData } = data || {};
1146
+ const canAccess = shouldCheckConditions && permissionsData ? !permissionsData.includes(false) : matchingPermissions.length > 0;
1147
+ if (!canAccess) {
1148
+ return /*#__PURE__*/ jsx(NoPermissions, {});
1149
+ }
1150
+ return /*#__PURE__*/ jsx(Fragment, {
1151
+ children: typeof children === 'function' ? children({
1152
+ permissions: matchingPermissions
1153
+ }) : children
1154
+ });
1155
+ };
1156
+ /**
1157
+ * @public
1158
+ * @description This component takes the children (must be a string) and sets
1159
+ * it as the title of the html.
1160
+ */ const Title = ({ children: title })=>{
1161
+ React.useEffect(()=>{
1162
+ document.title = `${title} | Strapi`;
1163
+ }, [
1164
+ title
1165
+ ]);
1166
+ return null;
1167
+ };
1168
+ const Page = {
1169
+ Error: Error$1,
1170
+ Loading,
1171
+ NoPermissions,
1172
+ Protect,
1173
+ NoData,
1174
+ Main: PageMain,
1175
+ Title
1176
+ };
1177
+
1178
+ const once = (fn)=>{
1179
+ const func = fn;
1180
+ let called = false;
1181
+ if (typeof func !== 'function') {
1182
+ throw new TypeError(`once requires a function parameter`);
1183
+ }
1184
+ return (...args)=>{
1185
+ if (!called && process.env.NODE_ENV === 'development') {
1186
+ func(...args);
1187
+ called = true;
1188
+ }
1189
+ };
1190
+ };
1191
+
1192
+ const capitalise = (str)=>str.charAt(0).toUpperCase() + str.slice(1);
1193
+
1194
+ const usePrev = (value)=>{
1195
+ const ref = useRef();
1196
+ useEffect(()=>{
1197
+ ref.current = value;
1198
+ }, [
1199
+ value
1200
+ ]);
1201
+ return ref.current;
1202
+ };
1203
+
1204
+ /**
1205
+ * @public
1206
+ * @description This hooks takes an object or array of permissions (the latter preferred) and
1207
+ * runs through them to match against the current user's permissions as well as the RBAC middleware
1208
+ * system checking any conditions that may be present. It returns the filtered permissions as the complete
1209
+ * object from the API and a set of actions that can be performed. An action is derived from the last part
1210
+ * of the permission action e.g. `admin::roles.create` would be `canCreate`. If there's a hyphen in the action
1211
+ * this is removed and capitalised e.g `admin::roles.create-draft` would be `canCreateDraft`.
1212
+ * @example
1213
+ * ```tsx
1214
+ * import { Page, useRBAC } from '@strapi/strapi/admin'
1215
+ *
1216
+ * const MyProtectedPage = () => {
1217
+ * const { allowedActions, isLoading, error, permissions } = useRBAC([{ action: 'admin::roles.create' }])
1218
+ *
1219
+ * if(isLoading) {
1220
+ * return <Page.Loading />
1221
+ * }
1222
+ *
1223
+ * if(error){
1224
+ * return <Page.Error />
1225
+ * }
1226
+ *
1227
+ * if(!allowedActions.canCreate) {
1228
+ * return null
1229
+ * }
1230
+ *
1231
+ * return <MyPage permissions={permissions} />
1232
+ * }
1233
+ * ```
1234
+ */ const useRBAC = (permissionsToCheck = [], passedPermissions, rawQueryContext)=>{
1235
+ const isLoadingAuth = useAuth('useRBAC', (state)=>state.isLoading);
1236
+ const [isLoading, setIsLoading] = React.useState(true);
1237
+ const [error, setError] = React.useState();
1238
+ const [data, setData] = React.useState();
1239
+ const warnOnce = React.useMemo(()=>once(console.warn), []);
1240
+ const actualPermissionsToCheck = React.useMemo(()=>{
1241
+ if (Array.isArray(permissionsToCheck)) {
1242
+ return permissionsToCheck;
1243
+ } else {
1244
+ warnOnce('useRBAC: The first argument should be an array of permissions, not an object. This will be deprecated in the future.');
1245
+ return Object.values(permissionsToCheck).flat();
1246
+ }
1247
+ }, [
1248
+ permissionsToCheck,
1249
+ warnOnce
1250
+ ]);
1251
+ /**
1252
+ * This is the default value we return until the queryResults[i].data
1253
+ * are all resolved with data. This preserves the original behaviour.
1254
+ */ const defaultAllowedActions = React.useMemo(()=>{
1255
+ return actualPermissionsToCheck.reduce((acc, permission)=>{
1256
+ return {
1257
+ ...acc,
1258
+ [getActionName(permission)]: false
1259
+ };
1260
+ }, {});
1261
+ }, [
1262
+ actualPermissionsToCheck
1263
+ ]);
1264
+ const checkUserHasPermissions = useAuth('useRBAC', (state)=>state.checkUserHasPermissions);
1265
+ const permssionsChecked = usePrev(actualPermissionsToCheck);
1266
+ const contextChecked = usePrev(rawQueryContext);
1267
+ React.useEffect(()=>{
1268
+ if (!isEqual(permssionsChecked, actualPermissionsToCheck) || // TODO: also run this when the query context changes
1269
+ contextChecked !== rawQueryContext) {
1270
+ setIsLoading(true);
1271
+ setData(undefined);
1272
+ setError(undefined);
1273
+ checkUserHasPermissions(actualPermissionsToCheck, passedPermissions, rawQueryContext).then((res)=>{
1274
+ if (res) {
1275
+ setData(res.reduce((acc, permission)=>{
1276
+ return {
1277
+ ...acc,
1278
+ [getActionName(permission)]: true
1279
+ };
1280
+ }, {}));
1281
+ }
1282
+ }).catch((err)=>{
1283
+ setError(err);
1284
+ }).finally(()=>{
1285
+ setIsLoading(false);
1286
+ });
1287
+ }
1288
+ }, [
1289
+ actualPermissionsToCheck,
1290
+ checkUserHasPermissions,
1291
+ passedPermissions,
1292
+ permissionsToCheck,
1293
+ permssionsChecked,
1294
+ contextChecked,
1295
+ rawQueryContext
1296
+ ]);
1297
+ /**
1298
+ * This hook originally would not return allowedActions
1299
+ * until all the checks were complete.
1300
+ */ const allowedActions = Object.entries({
1301
+ ...defaultAllowedActions,
1302
+ ...data
1303
+ }).reduce((acc, [name, allowed])=>{
1304
+ acc[`can${capitalise(name)}`] = allowed;
1305
+ return acc;
1306
+ }, {});
1307
+ return {
1308
+ allowedActions,
1309
+ permissions: actualPermissionsToCheck,
1310
+ isLoading: isLoading || isLoadingAuth,
1311
+ error
1312
+ };
1313
+ };
1314
+ const getActionName = (permission)=>{
1315
+ const [action = ''] = permission.action.split('.').slice(-1);
1316
+ return action.split('-').map(capitalise).join('');
1317
+ };
1318
+
1319
+ const [AppInfoProvider, useAppInfo] = createContext('AppInfo', {});
1320
+
1321
+ /* -------------------------------------------------------------------------------------------------
1322
+ * Context
1323
+ * -----------------------------------------------------------------------------------------------*/ const TrackingContext = /*#__PURE__*/ React.createContext({
1324
+ uuid: false
1325
+ });
1326
+ const TrackingProvider = ({ children })=>{
1327
+ const token = useAuth('App', (state)=>state.token);
1328
+ const { data: initData } = useInitQuery();
1329
+ const { uuid } = initData ?? {};
1330
+ const { data } = useTelemetryPropertiesQuery(undefined, {
1331
+ skip: !initData?.uuid || !token
1332
+ });
1333
+ React.useEffect(()=>{
1334
+ if (uuid && data) {
1335
+ const event = 'didInitializeAdministration';
1336
+ try {
1337
+ fetch('https://analytics.strapi.io/api/v2/track', {
1338
+ method: 'POST',
1339
+ body: JSON.stringify({
1340
+ // This event is anonymous
1341
+ event,
1342
+ userId: '',
1343
+ eventPropeties: {},
1344
+ groupProperties: {
1345
+ ...data,
1346
+ projectId: uuid
1347
+ }
1348
+ }),
1349
+ headers: {
1350
+ 'Content-Type': 'application/json',
1351
+ 'X-Strapi-Event': event
1352
+ }
1353
+ });
1354
+ } catch {
1355
+ // silence is golden
1356
+ }
1357
+ }
1358
+ }, [
1359
+ data,
1360
+ uuid
1361
+ ]);
1362
+ const value = React.useMemo(()=>({
1363
+ uuid,
1364
+ telemetryProperties: data
1365
+ }), [
1366
+ uuid,
1367
+ data
1368
+ ]);
1369
+ return /*#__PURE__*/ jsx(TrackingContext.Provider, {
1370
+ value: value,
1371
+ children: children
1372
+ });
1373
+ };
1374
+ /**
1375
+ * @description Used to send amplitude events to the Strapi Tracking hub.
1376
+ *
1377
+ * @example
1378
+ * ```tsx
1379
+ * import { useTracking } from '@strapi/strapi/admin';
1380
+ *
1381
+ * const MyComponent = () => {
1382
+ * const { trackUsage } = useTracking();
1383
+ *
1384
+ * const handleClick = () => {
1385
+ * trackUsage('my-event', { myProperty: 'myValue' });
1386
+ * }
1387
+ *
1388
+ * return <button onClick={handleClick}>Send Event</button>
1389
+ * }
1390
+ * ```
1391
+ */ const useTracking = ()=>{
1392
+ const { uuid, telemetryProperties } = React.useContext(TrackingContext);
1393
+ const userId = useAppInfo('useTracking', (state)=>state.userId);
1394
+ const trackUsage = React.useCallback(async (event, properties)=>{
1395
+ try {
1396
+ if (uuid && !window.strapi.telemetryDisabled) {
1397
+ const res = await axios.post('https://analytics.strapi.io/api/v2/track', {
1398
+ event,
1399
+ userId,
1400
+ eventProperties: {
1401
+ ...properties
1402
+ },
1403
+ userProperties: {},
1404
+ groupProperties: {
1405
+ ...telemetryProperties,
1406
+ projectId: uuid,
1407
+ projectType: window.strapi.projectType
1408
+ }
1409
+ }, {
1410
+ headers: {
1411
+ 'Content-Type': 'application/json',
1412
+ 'X-Strapi-Event': event
1413
+ }
1414
+ });
1415
+ return res;
1416
+ }
1417
+ } catch (err) {
1418
+ // Silence is golden
1419
+ }
1420
+ return null;
1421
+ }, [
1422
+ telemetryProperties,
1423
+ userId,
1424
+ uuid
1425
+ ]);
1426
+ return {
1427
+ trackUsage
1428
+ };
1429
+ };
1430
+
1431
+ const [ConfigurationContextProvider, useConfiguration] = createContext$1('ConfigurationContext');
1432
+ const ConfigurationProvider = ({ children, defaultAuthLogo, defaultMenuLogo, showReleaseNotification = false, showTutorials = false })=>{
1433
+ const { trackUsage } = useTracking();
1434
+ const { formatMessage } = useIntl();
1435
+ const { toggleNotification } = useNotification();
1436
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1437
+ const permissions = useTypedSelector((state)=>state.admin_app.permissions.settings?.['project-settings']);
1438
+ const token = useAuth('ConfigurationProvider', (state)=>state.token);
1439
+ const { allowedActions: { canRead } } = useRBAC(permissions);
1440
+ const { data: { authLogo: customAuthLogo, menuLogo: customMenuLogo } = {}, error, isLoading } = useInitQuery();
1441
+ React.useEffect(()=>{
1442
+ if (error) {
1443
+ toggleNotification({
1444
+ type: 'danger',
1445
+ message: formatMessage({
1446
+ id: 'app.containers.App.notification.error.init'
1447
+ })
1448
+ });
1449
+ }
1450
+ }, [
1451
+ error,
1452
+ formatMessage,
1453
+ toggleNotification
1454
+ ]);
1455
+ const { data, isSuccess } = useProjectSettingsQuery(undefined, {
1456
+ skip: !token || !canRead
1457
+ });
1458
+ const [updateProjectSettingsMutation] = useUpdateProjectSettingsMutation();
1459
+ const updateProjectSettings = React.useCallback(async (body)=>{
1460
+ const formData = new FormData();
1461
+ /**
1462
+ * We either only send files or we send null values.
1463
+ * Null removes the logo. If you don't want to effect
1464
+ * an existing logo, don't send anything.
1465
+ */ Object.entries(body).forEach(([key, value])=>{
1466
+ if (value?.rawFile) {
1467
+ formData.append(key, value.rawFile);
1468
+ } else if (value === null) {
1469
+ formData.append(key, JSON.stringify(value));
1470
+ }
1471
+ });
1472
+ const res = await updateProjectSettingsMutation(formData);
1473
+ if ('data' in res) {
1474
+ const updatedMenuLogo = !!res.data.menuLogo && !!body.menuLogo?.rawFile;
1475
+ const updatedAuthLogo = !!res.data.authLogo && !!body.authLogo?.rawFile;
1476
+ if (updatedMenuLogo) {
1477
+ trackUsage('didChangeLogo', {
1478
+ logo: 'menu'
1479
+ });
1480
+ }
1481
+ if (updatedAuthLogo) {
1482
+ trackUsage('didChangeLogo', {
1483
+ logo: 'auth'
1484
+ });
1485
+ }
1486
+ toggleNotification({
1487
+ type: 'success',
1488
+ message: formatMessage({
1489
+ id: 'app',
1490
+ defaultMessage: 'Saved'
1491
+ })
1492
+ });
1493
+ } else {
1494
+ toggleNotification({
1495
+ type: 'danger',
1496
+ message: formatAPIError(res.error)
1497
+ });
1498
+ }
1499
+ }, [
1500
+ formatAPIError,
1501
+ formatMessage,
1502
+ toggleNotification,
1503
+ trackUsage,
1504
+ updateProjectSettingsMutation
1505
+ ]);
1506
+ if (isLoading) {
1507
+ return /*#__PURE__*/ jsx(Page.Loading, {});
1508
+ }
1509
+ return /*#__PURE__*/ jsx(ConfigurationContextProvider, {
1510
+ showReleaseNotification: showReleaseNotification,
1511
+ showTutorials: showTutorials,
1512
+ logos: {
1513
+ menu: {
1514
+ custom: isSuccess ? data?.menuLogo : {
1515
+ url: customMenuLogo ?? ''
1516
+ },
1517
+ default: defaultMenuLogo
1518
+ },
1519
+ auth: {
1520
+ custom: isSuccess ? data?.authLogo : {
1521
+ url: customAuthLogo ?? ''
1522
+ },
1523
+ default: defaultAuthLogo
1524
+ }
1525
+ },
1526
+ updateProjectSettings: updateProjectSettings,
1527
+ children: children
1528
+ });
1529
+ };
1530
+
1531
+ const GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';
1532
+ const GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';
1533
+ const GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';
1534
+ const [GuidedTourProviderImpl, useGuidedTour] = createContext('GuidedTour');
1535
+ const GuidedTourProvider = ({ children })=>{
1536
+ const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] = React.useReducer(reducer, initialState, initialiseState);
1537
+ const setCurrentStep = (step)=>{
1538
+ // if step is null it is intentional, we need to dispatch it
1539
+ if (step !== null) {
1540
+ const isStepAlreadyDone = get(guidedTourState, step);
1541
+ const [sectionName, stepName] = step.split('.');
1542
+ const sectionArray = Object.entries(guidedTourState[sectionName]);
1543
+ const currentStepIndex = sectionArray.findIndex(([key])=>key === stepName);
1544
+ const previousSteps = sectionArray.slice(0, currentStepIndex);
1545
+ const isStepToShow = previousSteps.every(([, sectionValue])=>sectionValue);
1546
+ if (isStepAlreadyDone || isSkipped || !isStepToShow) {
1547
+ return null;
1548
+ }
1549
+ }
1550
+ window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));
1551
+ return dispatch({
1552
+ type: 'SET_CURRENT_STEP',
1553
+ step
1554
+ });
1555
+ };
1556
+ const setGuidedTourVisibility = (value)=>{
1557
+ dispatch({
1558
+ type: 'SET_GUIDED_TOUR_VISIBILITY',
1559
+ value
1560
+ });
1561
+ };
1562
+ const setStepState = (currentStep, value)=>{
1563
+ addCompletedStep(currentStep);
1564
+ dispatch({
1565
+ type: 'SET_STEP_STATE',
1566
+ currentStep,
1567
+ value
1568
+ });
1569
+ };
1570
+ const startSection = (sectionName)=>{
1571
+ const sectionSteps = guidedTourState[sectionName];
1572
+ if (sectionSteps) {
1573
+ const guidedTourArray = Object.entries(guidedTourState);
1574
+ // Find current section position in the guidedTourArray
1575
+ // Get only previous sections based on current section position
1576
+ const currentSectionIndex = guidedTourArray.findIndex(([key])=>key === sectionName);
1577
+ const previousSections = guidedTourArray.slice(0, currentSectionIndex);
1578
+ // Check if every steps from previous section are done
1579
+ const isSectionToShow = previousSections.every(([, sectionValue])=>Object.values(sectionValue).every(Boolean));
1580
+ const [firstStep] = Object.keys(sectionSteps);
1581
+ const isFirstStepDone = sectionSteps[firstStep];
1582
+ if (isSectionToShow && !currentStep && !isFirstStepDone) {
1583
+ setCurrentStep(`${sectionName}.${firstStep}`);
1584
+ }
1585
+ }
1586
+ };
1587
+ const setSkipped = (value)=>{
1588
+ window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));
1589
+ dispatch({
1590
+ type: 'SET_SKIPPED',
1591
+ value
1592
+ });
1593
+ };
1594
+ return /*#__PURE__*/ jsx(GuidedTourProviderImpl, {
1595
+ guidedTourState: guidedTourState,
1596
+ currentStep: currentStep,
1597
+ setCurrentStep: setCurrentStep,
1598
+ setGuidedTourVisibility: setGuidedTourVisibility,
1599
+ setSkipped: setSkipped,
1600
+ setStepState: setStepState,
1601
+ startSection: startSection,
1602
+ isGuidedTourVisible: isGuidedTourVisible,
1603
+ isSkipped: isSkipped,
1604
+ children: children
1605
+ });
1606
+ };
1607
+ const initialState = {
1608
+ currentStep: null,
1609
+ guidedTourState: {
1610
+ contentTypeBuilder: {
1611
+ create: false,
1612
+ success: false
1613
+ },
1614
+ contentManager: {
1615
+ create: false,
1616
+ success: false
1617
+ },
1618
+ apiTokens: {
1619
+ create: false,
1620
+ success: false
1621
+ }
1622
+ },
1623
+ isGuidedTourVisible: false,
1624
+ isSkipped: false
1625
+ };
1626
+ const reducer = (state = initialState, action)=>produce(state, (draftState)=>{
1627
+ switch(action.type){
1628
+ case 'SET_CURRENT_STEP':
1629
+ {
1630
+ draftState.currentStep = action.step;
1631
+ break;
1632
+ }
1633
+ case 'SET_STEP_STATE':
1634
+ {
1635
+ const [section, step] = action.currentStep.split('.');
1636
+ draftState.guidedTourState[section][step] = action.value;
1637
+ break;
1638
+ }
1639
+ case 'SET_SKIPPED':
1640
+ {
1641
+ draftState.isSkipped = action.value;
1642
+ break;
1643
+ }
1644
+ case 'SET_GUIDED_TOUR_VISIBILITY':
1645
+ {
1646
+ draftState.isGuidedTourVisible = action.value;
1647
+ break;
1648
+ }
1649
+ default:
1650
+ {
1651
+ return draftState;
1652
+ }
1653
+ }
1654
+ });
1655
+ const initialiseState = (initialState)=>{
1656
+ const copyInitialState = {
1657
+ ...initialState
1658
+ };
1659
+ const guidedTourLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');
1660
+ const currentStepLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null');
1661
+ const skippedLocaleStorage = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'null');
1662
+ if (Array.isArray(guidedTourLocaleStorage)) {
1663
+ guidedTourLocaleStorage.forEach((step)=>{
1664
+ const [sectionName, stepName] = step.split('.');
1665
+ set(copyInitialState, [
1666
+ 'guidedTourState',
1667
+ sectionName,
1668
+ stepName
1669
+ ], true);
1670
+ });
1671
+ }
1672
+ // if current step when initializing mark it as done
1673
+ if (currentStepLocaleStorage) {
1674
+ const [sectionName, stepName] = currentStepLocaleStorage.split('.');
1675
+ set(copyInitialState, [
1676
+ 'guidedTourState',
1677
+ sectionName,
1678
+ stepName
1679
+ ], true);
1680
+ addCompletedStep(currentStepLocaleStorage);
1681
+ window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));
1682
+ }
1683
+ if (skippedLocaleStorage !== null) {
1684
+ set(copyInitialState, 'isSkipped', skippedLocaleStorage);
1685
+ }
1686
+ return copyInitialState;
1687
+ };
1688
+ /**
1689
+ * @description Add a completed step to the local storage if it does not already exist.
1690
+ */ const addCompletedStep = (completedStep)=>{
1691
+ const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');
1692
+ if (!Array.isArray(currentSteps)) {
1693
+ return;
1694
+ }
1695
+ const isAlreadyStored = currentSteps.includes(completedStep);
1696
+ if (isAlreadyStored) {
1697
+ return;
1698
+ }
1699
+ window.localStorage.setItem(GUIDED_TOUR_COMPLETED_STEPS, JSON.stringify([
1700
+ ...currentSteps,
1701
+ completedStep
1702
+ ]));
1703
+ };
1704
+
1705
+ const LanguageProvider = ({ children, messages })=>{
1706
+ const locale = useTypedSelector((state)=>state.admin_app.language.locale);
1707
+ const appMessages = defaultsDeep(messages[locale], messages.en);
1708
+ return /*#__PURE__*/ jsx(IntlProvider, {
1709
+ locale: locale,
1710
+ defaultLocale: "en",
1711
+ messages: appMessages,
1712
+ textComponent: "span",
1713
+ children: children
1714
+ });
1715
+ };
1716
+
1717
+ const Theme = ({ children, themes })=>{
1718
+ const { currentTheme } = useTypedSelector((state)=>state.admin_app.theme);
1719
+ const [systemTheme, setSystemTheme] = React.useState();
1720
+ const { locale } = useIntl();
1721
+ const dispatch = useDispatch();
1722
+ // Listen to changes in the system theme
1723
+ React.useEffect(()=>{
1724
+ const themeWatcher = window.matchMedia('(prefers-color-scheme: dark)');
1725
+ setSystemTheme(themeWatcher.matches ? 'dark' : 'light');
1726
+ const listener = (event)=>{
1727
+ setSystemTheme(event.matches ? 'dark' : 'light');
1728
+ };
1729
+ themeWatcher.addEventListener('change', listener);
1730
+ // Remove listener on cleanup
1731
+ return ()=>{
1732
+ themeWatcher.removeEventListener('change', listener);
1733
+ };
1734
+ }, []);
1735
+ React.useEffect(()=>{
1736
+ dispatch(setAvailableThemes(Object.keys(themes)));
1737
+ }, [
1738
+ dispatch,
1739
+ themes
1740
+ ]);
1741
+ const computedThemeName = currentTheme === 'system' ? systemTheme : currentTheme;
1742
+ return /*#__PURE__*/ jsxs(DesignSystemProvider, {
1743
+ locale: locale,
1744
+ /**
1745
+ * TODO: could we make this neater i.e. by setting up the context to throw
1746
+ * if it can't find it, that way the type is always fully defined and we're
1747
+ * not checking it all the time...
1748
+ */ theme: themes?.[computedThemeName || 'light'],
1749
+ children: [
1750
+ children,
1751
+ /*#__PURE__*/ jsx(GlobalStyle, {})
1752
+ ]
1753
+ });
1754
+ };
1755
+ const GlobalStyle = createGlobalStyle`
1756
+ body {
1757
+ background: ${({ theme })=>theme.colors.neutral100};
1758
+ }
1759
+ `;
1760
+
1761
+ export { AuthProvider as A, TrackingProvider as B, ConfigurationContextProvider as C, ConfigurationProvider as D, LANGUAGE_LOCAL_STORAGE_KEY as E, getIn as F, GuidedTourProvider as G, setIn as H, setLocale as I, useForgotPasswordMutation as J, useGetRegistrationInfoQuery as K, LanguageProvider as L, useRegisterAdminMutation as M, NotificationsProvider as N, useRegisterUserMutation as O, Page as P, useResetPasswordMutation as Q, RBAC as R, StrapiAppProvider as S, Theme as T, logout as U, THEME_LOCAL_STORAGE_KEY as V, useTypedStore as W, useNotification as a, useTypedSelector as b, useTracking as c, useTypedDispatch as d, useAPIErrorHandler as e, useUpdateMeMutation as f, useIsSSOLockedQuery as g, createTypedSelector as h, useGetProviderOptionsQuery as i, useUpdateProviderOptionsMutation as j, useRBAC as k, useGetProvidersQuery as l, useGuidedTour as m, useQueryParams as n, login as o, useAppInfo as p, useStrapiApp as q, getStoredToken as r, setAppTheme as s, reducer$1 as t, useAuth as u, AppInfoProvider as v, useConfiguration as w, capitalise as x, isObject as y, createContext as z };
1762
+ //# sourceMappingURL=Theme-CDaBfQ-7.mjs.map