@strapi/admin 5.49.0 → 5.50.1

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 (626) hide show
  1. package/dist/admin/admin/src/components/ConfirmDialog.js +2 -2
  2. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  3. package/dist/admin/admin/src/components/ContentBox.js +3 -3
  4. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  5. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -8
  6. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  7. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs +8 -8
  8. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/ErrorElement.js +100 -5
  10. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  11. package/dist/admin/admin/src/components/ErrorElement.mjs +99 -4
  12. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/Form.js +41 -27
  14. package/dist/admin/admin/src/components/Form.js.map +1 -1
  15. package/dist/admin/admin/src/components/Form.mjs +41 -27
  16. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  20. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Date.js +1 -1
  22. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Date.mjs +1 -1
  24. package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
  26. package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +4 -1
  28. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  29. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +4 -1
  30. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/FormInputs/Json.js +2 -1
  32. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  33. package/dist/admin/admin/src/components/FormInputs/Json.mjs +2 -1
  34. package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
  36. package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/FormInputs/Renderer.js +18 -26
  38. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  39. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs +20 -28
  40. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  42. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
  44. package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/GapDropZone.js +2 -2
  46. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  47. package/dist/admin/admin/src/components/GradientBadge.js +3 -3
  48. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  49. package/dist/admin/admin/src/components/GuidedTour/Overview.js +8 -8
  50. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  51. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +4 -4
  52. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  53. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  54. package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -2
  55. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  56. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +2 -2
  57. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  58. package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
  59. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  60. package/dist/admin/admin/src/components/Layouts/Layout.js +4 -4
  61. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  62. package/dist/admin/admin/src/components/LazyOutlet.js +57 -0
  63. package/dist/admin/admin/src/components/LazyOutlet.js.map +1 -0
  64. package/dist/admin/admin/src/components/LazyOutlet.mjs +35 -0
  65. package/dist/admin/admin/src/components/LazyOutlet.mjs.map +1 -0
  66. package/dist/admin/admin/src/components/LeftMenu.js +3 -3
  67. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  68. package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
  69. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  70. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +4 -4
  71. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  72. package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
  73. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  74. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +3 -3
  75. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  76. package/dist/admin/admin/src/components/MainNav/NavLink.js +8 -8
  77. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  78. package/dist/admin/admin/src/components/MainNav/NavUser.js +17 -7
  79. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  80. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +10 -0
  81. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  82. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +3 -3
  83. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  84. package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
  85. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  86. package/dist/admin/admin/src/components/RelativeTime.js +3 -2
  87. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  88. package/dist/admin/admin/src/components/RelativeTime.mjs +3 -2
  89. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  90. package/dist/admin/admin/src/components/ResizeIndicator.js +6 -6
  91. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  92. package/dist/admin/admin/src/components/SubNav.js +11 -9
  93. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  94. package/dist/admin/admin/src/components/SubNav.mjs +4 -2
  95. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  96. package/dist/admin/admin/src/components/Table.js +9 -5
  97. package/dist/admin/admin/src/components/Table.js.map +1 -1
  98. package/dist/admin/admin/src/components/Table.mjs +6 -2
  99. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  100. package/dist/admin/admin/src/components/Theme.js +2 -2
  101. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  102. package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
  103. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  104. package/dist/admin/admin/src/components/UpsellBanner.js +3 -3
  105. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  106. package/dist/admin/admin/src/components/WidgetRoot.js +4 -7
  107. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  108. package/dist/admin/admin/src/components/WidgetRoot.mjs +1 -1
  109. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  110. package/dist/admin/admin/src/components/Widgets.js +5 -5
  111. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  112. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  113. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  114. package/dist/admin/admin/src/core/apis/Widgets.js +1 -1
  115. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  116. package/dist/admin/admin/src/core/apis/Widgets.mjs +1 -1
  117. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  118. package/dist/admin/admin/src/core/apis/router.js +19 -17
  119. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  120. package/dist/admin/admin/src/core/apis/router.mjs +19 -17
  121. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  122. package/dist/admin/admin/src/core/store/configure.js.map +1 -1
  123. package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
  124. package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
  125. package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
  126. package/dist/admin/admin/src/features/Tracking.js +3 -1
  127. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  128. package/dist/admin/admin/src/features/Tracking.mjs +3 -1
  129. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  130. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  131. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  132. package/dist/admin/admin/src/hooks/useMediaQuery.js +4 -4
  133. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  134. package/dist/admin/admin/src/hooks/useMenu.js +5 -3
  135. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  136. package/dist/admin/admin/src/hooks/useMenu.mjs +5 -3
  137. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  138. package/dist/admin/admin/src/hooks/useQueryParams.js +0 -1
  139. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  140. package/dist/admin/admin/src/hooks/useQueryParams.mjs +0 -1
  141. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  142. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  143. package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
  144. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +5 -3
  145. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  146. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +5 -3
  147. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  148. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
  149. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  150. package/dist/admin/admin/src/pages/Auth/AuthPage.js +3 -2
  151. package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs +3 -2
  153. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
  154. package/dist/admin/admin/src/pages/Auth/components/Register.js +17 -9
  155. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +15 -7
  157. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  158. package/dist/admin/admin/src/pages/Home/HomePage.js +2 -2
  159. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +3 -6
  161. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  162. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
  163. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
  164. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +4 -8
  165. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
  167. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  168. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +4 -8
  169. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
  171. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
  172. package/dist/admin/admin/src/pages/SessionsPage.js +318 -0
  173. package/dist/admin/admin/src/pages/SessionsPage.js.map +1 -0
  174. package/dist/admin/admin/src/pages/SessionsPage.mjs +296 -0
  175. package/dist/admin/admin/src/pages/SessionsPage.mjs.map +1 -0
  176. package/dist/admin/admin/src/pages/Settings/Layout.js +4 -1
  177. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  178. package/dist/admin/admin/src/pages/Settings/Layout.mjs +5 -2
  179. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  180. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +2 -2
  181. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  182. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +2 -2
  184. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
  186. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +2 -2
  188. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
  190. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
  192. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  193. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
  195. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -2
  196. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  197. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -2
  198. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  199. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
  200. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  201. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +9 -2
  202. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  203. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +7 -0
  204. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  205. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +7 -1
  206. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  207. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +7 -1
  208. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  209. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
  210. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  211. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +44 -10
  212. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  213. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +34 -0
  214. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  215. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -3
  216. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  217. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
  218. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  219. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js +2 -2
  220. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  221. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +38 -2
  222. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  223. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +38 -2
  224. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  225. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
  226. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  227. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
  228. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
  229. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +18 -1
  230. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  231. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs +18 -1
  232. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  233. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js +59 -0
  234. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js.map +1 -0
  235. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs +52 -0
  236. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs.map +1 -0
  237. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  238. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  239. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
  240. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  241. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
  242. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  243. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
  244. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  245. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  246. package/dist/admin/admin/src/router.js +9 -0
  247. package/dist/admin/admin/src/router.js.map +1 -1
  248. package/dist/admin/admin/src/router.mjs +9 -0
  249. package/dist/admin/admin/src/router.mjs.map +1 -1
  250. package/dist/admin/admin/src/services/auth.js +43 -2
  251. package/dist/admin/admin/src/services/auth.js.map +1 -1
  252. package/dist/admin/admin/src/services/auth.mjs +41 -3
  253. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  254. package/dist/admin/admin/src/translations/en.json.js +22 -0
  255. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  256. package/dist/admin/admin/src/translations/en.json.mjs +22 -0
  257. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  258. package/dist/admin/admin/src/translations/ja.json.js +726 -237
  259. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  260. package/dist/admin/admin/src/translations/ja.json.mjs +723 -238
  261. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  262. package/dist/admin/admin/src/translations/languageNativeNames.js +1 -0
  263. package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
  264. package/dist/admin/admin/src/translations/languageNativeNames.mjs +1 -0
  265. package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
  266. package/dist/admin/admin/src/translations/pl.json.js +22 -0
  267. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  268. package/dist/admin/admin/src/translations/pl.json.mjs +22 -0
  269. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  270. package/dist/admin/admin/src/utils/arrays.js.map +1 -1
  271. package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
  272. package/dist/admin/admin/src/utils/baseQuery.js +1 -1
  273. package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
  274. package/dist/admin/admin/src/utils/baseQuery.mjs +1 -1
  275. package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
  276. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  277. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  278. package/dist/admin/admin/src/utils/objects.js +43 -11
  279. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  280. package/dist/admin/admin/src/utils/objects.mjs +43 -11
  281. package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
  282. package/dist/admin/admin/src/utils/once.js.map +1 -1
  283. package/dist/admin/admin/src/utils/once.mjs.map +1 -1
  284. package/dist/admin/admin/src/utils/retryDynamicImport.js +85 -0
  285. package/dist/admin/admin/src/utils/retryDynamicImport.js.map +1 -0
  286. package/dist/admin/admin/src/utils/retryDynamicImport.mjs +80 -0
  287. package/dist/admin/admin/src/utils/retryDynamicImport.mjs.map +1 -0
  288. package/dist/admin/admin/src/utils/rulesEngine.js +2 -1
  289. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  290. package/dist/admin/admin/src/utils/rulesEngine.mjs +2 -1
  291. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  292. package/dist/admin/admin/src/utils/shims.js.map +1 -1
  293. package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
  294. package/dist/admin/admin/src/utils/widgetVisibility.js +16 -1
  295. package/dist/admin/admin/src/utils/widgetVisibility.js.map +1 -1
  296. package/dist/admin/admin/src/utils/widgetVisibility.mjs +14 -2
  297. package/dist/admin/admin/src/utils/widgetVisibility.mjs.map +1 -1
  298. package/dist/admin/admin/tests/server.js +25 -0
  299. package/dist/admin/admin/tests/server.js.map +1 -1
  300. package/dist/admin/admin/tests/server.mjs +25 -0
  301. package/dist/admin/admin/tests/server.mjs.map +1 -1
  302. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +2 -2
  303. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  304. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +2 -2
  305. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  306. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs +2 -2
  307. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  308. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
  309. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  310. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
  311. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  312. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
  313. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  314. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +3 -3
  315. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  316. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  317. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  318. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  319. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  320. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
  321. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  322. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  323. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  324. package/dist/admin/index.js +2 -0
  325. package/dist/admin/index.js.map +1 -1
  326. package/dist/admin/index.mjs +1 -0
  327. package/dist/admin/index.mjs.map +1 -1
  328. package/dist/admin/src/StrapiApp.d.ts +7 -7
  329. package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +2 -1
  330. package/dist/admin/src/components/Form.d.ts +14 -12
  331. package/dist/admin/src/components/FormInputs/Boolean.d.ts +0 -1
  332. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +0 -1
  333. package/dist/admin/src/components/FormInputs/DateTime.d.ts +0 -1
  334. package/dist/admin/src/components/FormInputs/Email.d.ts +0 -1
  335. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +0 -1
  336. package/dist/admin/src/components/FormInputs/Number.d.ts +0 -1
  337. package/dist/admin/src/components/FormInputs/Password.d.ts +0 -1
  338. package/dist/admin/src/components/FormInputs/Renderer.d.ts +1 -2
  339. package/dist/admin/src/components/FormInputs/String.d.ts +0 -1
  340. package/dist/admin/src/components/FormInputs/Textarea.d.ts +0 -1
  341. package/dist/admin/src/components/FormInputs/Time.d.ts +0 -1
  342. package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +0 -1
  343. package/dist/admin/src/components/GuidedTour/Steps/Step.d.ts +1 -1
  344. package/dist/admin/src/components/LazyOutlet.d.ts +20 -0
  345. package/dist/admin/src/components/MainNav/MainNav.d.ts +1 -1
  346. package/dist/admin/src/components/MainNav/NavUser.d.ts +0 -1
  347. package/dist/admin/src/components/SubNav.d.ts +6 -7
  348. package/dist/admin/src/components/Table.d.ts +3 -2
  349. package/dist/admin/src/core/apis/Plugin.d.ts +2 -2
  350. package/dist/admin/src/core/apis/Widgets.d.ts +0 -1
  351. package/dist/admin/src/core/apis/router.d.ts +1 -1
  352. package/dist/admin/src/core/store/configure.d.ts +2 -2
  353. package/dist/admin/src/core/utils/createHook.d.ts +7 -7
  354. package/dist/admin/src/features/AppInfo.d.ts +1 -2
  355. package/dist/admin/src/features/StrapiApp.d.ts +1 -2
  356. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
  357. package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
  358. package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
  359. package/dist/admin/src/hooks/useMenu.d.ts +1 -1
  360. package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
  361. package/dist/admin/src/hooks/useQueryParams.d.ts +3 -2
  362. package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -2
  363. package/dist/admin/src/index.d.ts +1 -0
  364. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
  365. package/dist/admin/src/pages/SessionsPage.d.ts +2 -0
  366. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.d.ts +1 -1
  367. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +2 -3
  368. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
  369. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +0 -1
  370. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -0
  371. package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
  372. package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +1 -1
  373. package/dist/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.d.ts +5 -0
  374. package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +3 -1
  375. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +8 -8
  376. package/dist/admin/src/reducer.d.ts +1 -1
  377. package/dist/admin/src/services/admin.d.ts +8 -8
  378. package/dist/admin/src/services/api.d.ts +1 -1
  379. package/dist/admin/src/services/apiTokens.d.ts +3 -3
  380. package/dist/admin/src/services/auth.d.ts +29 -27
  381. package/dist/admin/src/services/contentApi.d.ts +2 -2
  382. package/dist/admin/src/services/contentManager.d.ts +1 -1
  383. package/dist/admin/src/services/homepage.d.ts +3 -3
  384. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  385. package/dist/admin/src/services/users.d.ts +15 -15
  386. package/dist/admin/src/services/webhooks.d.ts +4 -4
  387. package/dist/admin/src/translations/languageNativeNames.d.ts +1 -0
  388. package/dist/admin/src/utils/arrays.d.ts +1 -1
  389. package/dist/admin/src/utils/baseQuery.d.ts +1 -1
  390. package/dist/admin/src/utils/getFetchClient.d.ts +7 -7
  391. package/dist/admin/src/utils/locales.d.ts +0 -1
  392. package/dist/admin/src/utils/objects.d.ts +6 -4
  393. package/dist/admin/src/utils/once.d.ts +1 -1
  394. package/dist/admin/src/utils/retryDynamicImport.d.ts +19 -0
  395. package/dist/admin/src/utils/shims.d.ts +1 -1
  396. package/dist/admin/src/utils/widgetVisibility.d.ts +11 -0
  397. package/dist/admin/tests/store.d.ts +4 -4
  398. package/dist/admin/tests/utils.d.ts +5 -5
  399. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +1 -1
  400. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/tableHeaders.d.ts +2 -1
  401. package/dist/ee/admin/src/services/ai.d.ts +5 -5
  402. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  403. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +1 -1
  404. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
  405. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +3 -3
  406. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  407. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -2
  408. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
  409. package/dist/ee/server/src/bootstrap.d.ts.map +1 -1
  410. package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +30 -31
  411. package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
  412. package/dist/ee/server/src/controllers/index.d.ts +1 -2
  413. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  414. package/dist/ee/server/src/controllers/user.d.ts +1 -1
  415. package/dist/ee/server/src/destroy.d.ts.map +1 -1
  416. package/dist/ee/server/src/index.d.ts +2 -3
  417. package/dist/ee/server/src/index.d.ts.map +1 -1
  418. package/dist/ee/server/src/register.d.ts.map +1 -1
  419. package/dist/ee/server/src/routes/utils.d.ts.map +1 -1
  420. package/dist/ee/server/src/services/auth.d.ts.map +1 -1
  421. package/dist/ee/server/src/services/index.d.ts +1 -1
  422. package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
  423. package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -1
  424. package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
  425. package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
  426. package/dist/ee/server/src/services/role.d.ts.map +1 -1
  427. package/dist/ee/server/src/services/user.d.ts.map +1 -1
  428. package/dist/ee/server/src/utils/index.d.ts.map +1 -1
  429. package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -1
  430. package/dist/ee/server/src/validation/authentication.d.ts +2 -2
  431. package/dist/ee/server/src/validation/role.d.ts +6 -6
  432. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  433. package/dist/ee/server/src/validation/user.d.ts.map +1 -1
  434. package/dist/server/server/src/content-types/session.js +6 -0
  435. package/dist/server/server/src/content-types/session.js.map +1 -1
  436. package/dist/server/server/src/content-types/session.mjs +6 -0
  437. package/dist/server/server/src/content-types/session.mjs.map +1 -1
  438. package/dist/server/server/src/controllers/admin.js.map +1 -1
  439. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  440. package/dist/server/server/src/controllers/authenticated-session.js +61 -0
  441. package/dist/server/server/src/controllers/authenticated-session.js.map +1 -0
  442. package/dist/server/server/src/controllers/authenticated-session.mjs +59 -0
  443. package/dist/server/server/src/controllers/authenticated-session.mjs.map +1 -0
  444. package/dist/server/server/src/controllers/authentication.js +11 -4
  445. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  446. package/dist/server/server/src/controllers/authentication.mjs +12 -5
  447. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  448. package/dist/server/server/src/controllers/index.js +2 -0
  449. package/dist/server/server/src/controllers/index.js.map +1 -1
  450. package/dist/server/server/src/controllers/index.mjs +2 -0
  451. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  452. package/dist/server/server/src/controllers/role.js +2 -4
  453. package/dist/server/server/src/controllers/role.js.map +1 -1
  454. package/dist/server/server/src/controllers/role.mjs +2 -4
  455. package/dist/server/server/src/controllers/role.mjs.map +1 -1
  456. package/dist/server/server/src/routes/serve-admin-panel.js +1 -1
  457. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  458. package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
  459. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  460. package/dist/server/server/src/routes/users.js +12 -26
  461. package/dist/server/server/src/routes/users.js.map +1 -1
  462. package/dist/server/server/src/routes/users.mjs +12 -26
  463. package/dist/server/server/src/routes/users.mjs.map +1 -1
  464. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +0 -2
  465. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  466. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +0 -2
  467. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  468. package/dist/server/server/src/services/permission/sections-builder/handlers.js +9 -2
  469. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  470. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +9 -2
  471. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  472. package/dist/server/server/src/services/role.js +7 -2
  473. package/dist/server/server/src/services/role.js.map +1 -1
  474. package/dist/server/server/src/services/role.mjs +7 -2
  475. package/dist/server/server/src/services/role.mjs.map +1 -1
  476. package/dist/server/server/src/strategies/admin.js +4 -0
  477. package/dist/server/server/src/strategies/admin.js.map +1 -1
  478. package/dist/server/server/src/strategies/admin.mjs +4 -0
  479. package/dist/server/server/src/strategies/admin.mjs.map +1 -1
  480. package/dist/server/server/src/validation/common-validators.js +19 -11
  481. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  482. package/dist/server/server/src/validation/common-validators.mjs +19 -11
  483. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  484. package/dist/server/server/src/validation/permission.js +1 -1
  485. package/dist/server/server/src/validation/permission.js.map +1 -1
  486. package/dist/server/server/src/validation/permission.mjs +1 -1
  487. package/dist/server/server/src/validation/permission.mjs.map +1 -1
  488. package/dist/server/server/src/validation/role.js +2 -2
  489. package/dist/server/server/src/validation/role.js.map +1 -1
  490. package/dist/server/server/src/validation/role.mjs +2 -2
  491. package/dist/server/server/src/validation/role.mjs.map +1 -1
  492. package/dist/server/src/ai/controllers/ai.d.ts +3 -3
  493. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  494. package/dist/server/src/bootstrap.d.ts.map +1 -1
  495. package/dist/server/src/config/admin-conditions.d.ts +2 -2
  496. package/dist/server/src/config/admin-conditions.d.ts.map +1 -1
  497. package/dist/server/src/content-types/index.d.ts +6 -0
  498. package/dist/server/src/content-types/index.d.ts.map +1 -1
  499. package/dist/server/src/content-types/session.d.ts +6 -0
  500. package/dist/server/src/content-types/session.d.ts.map +1 -1
  501. package/dist/server/src/controllers/admin-token.d.ts +5 -5
  502. package/dist/server/src/controllers/api-token.d.ts +1 -1
  503. package/dist/server/src/controllers/authenticated-session.d.ts +8 -0
  504. package/dist/server/src/controllers/authenticated-session.d.ts.map +1 -0
  505. package/dist/server/src/controllers/authenticated-user.d.ts +1 -1
  506. package/dist/server/src/controllers/authentication.d.ts +4 -4
  507. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  508. package/dist/server/src/controllers/formatters/conditions.d.ts +0 -1
  509. package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
  510. package/dist/server/src/controllers/formatters/format-actions-by-sections.d.ts.map +1 -1
  511. package/dist/server/src/controllers/homepage.d.ts +2 -2
  512. package/dist/server/src/controllers/homepage.d.ts.map +1 -1
  513. package/dist/server/src/controllers/index.d.ts +33 -43
  514. package/dist/server/src/controllers/index.d.ts.map +1 -1
  515. package/dist/server/src/controllers/role.d.ts +4 -4
  516. package/dist/server/src/controllers/transfer/runner.d.ts +4 -4
  517. package/dist/server/src/controllers/transfer/runner.d.ts.map +1 -1
  518. package/dist/server/src/controllers/transfer/token.d.ts +1 -1
  519. package/dist/server/src/controllers/user.d.ts +2 -2
  520. package/dist/server/src/controllers/webhooks.d.ts +4 -4
  521. package/dist/server/src/domain/action/index.d.ts +4 -65
  522. package/dist/server/src/domain/action/index.d.ts.map +1 -1
  523. package/dist/server/src/domain/action/provider.d.ts +30 -3
  524. package/dist/server/src/domain/action/provider.d.ts.map +1 -1
  525. package/dist/server/src/domain/condition/index.d.ts.map +1 -1
  526. package/dist/server/src/domain/condition/provider.d.ts +19 -2
  527. package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
  528. package/dist/server/src/domain/permission/index.d.ts +0 -1
  529. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  530. package/dist/server/src/domain/user.d.ts.map +1 -1
  531. package/dist/server/src/index.d.ts +51 -63
  532. package/dist/server/src/index.d.ts.map +1 -1
  533. package/dist/server/src/middlewares/data-transfer.d.ts.map +1 -1
  534. package/dist/server/src/middlewares/index.d.ts +0 -1
  535. package/dist/server/src/middlewares/index.d.ts.map +1 -1
  536. package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
  537. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  538. package/dist/server/src/policies/index.d.ts.map +1 -1
  539. package/dist/server/src/policies/isAuthenticatedAdmin.d.ts.map +1 -1
  540. package/dist/server/src/policies/isTelemetryEnabled.d.ts.map +1 -1
  541. package/dist/server/src/register.d.ts.map +1 -1
  542. package/dist/server/src/routes/index.d.ts +0 -1
  543. package/dist/server/src/routes/index.d.ts.map +1 -1
  544. package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
  545. package/dist/server/src/routes/transfer.d.ts +0 -1
  546. package/dist/server/src/routes/transfer.d.ts.map +1 -1
  547. package/dist/server/src/routes/users.d.ts.map +1 -1
  548. package/dist/server/src/services/action.d.ts.map +1 -1
  549. package/dist/server/src/services/api-token.d.ts +5 -6
  550. package/dist/server/src/services/api-token.d.ts.map +1 -1
  551. package/dist/server/src/services/auth.d.ts.map +1 -1
  552. package/dist/server/src/services/condition.d.ts.map +1 -1
  553. package/dist/server/src/services/content-type.d.ts.map +1 -1
  554. package/dist/server/src/services/encryption.d.ts.map +1 -1
  555. package/dist/server/src/services/homepage.d.ts.map +1 -1
  556. package/dist/server/src/services/index.d.ts +12 -21
  557. package/dist/server/src/services/index.d.ts.map +1 -1
  558. package/dist/server/src/services/metrics.d.ts.map +1 -1
  559. package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
  560. package/dist/server/src/services/passport.d.ts +0 -1
  561. package/dist/server/src/services/passport.d.ts.map +1 -1
  562. package/dist/server/src/services/permission/engine.d.ts +1 -2
  563. package/dist/server/src/services/permission/engine.d.ts.map +1 -1
  564. package/dist/server/src/services/permission/permissions-manager/index.d.ts +5 -5
  565. package/dist/server/src/services/permission/permissions-manager/index.d.ts.map +1 -1
  566. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
  567. package/dist/server/src/services/permission/permissions-manager/query-builders.d.ts.map +1 -1
  568. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts +3 -3
  569. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  570. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  571. package/dist/server/src/services/permission/queries.d.ts.map +1 -1
  572. package/dist/server/src/services/permission/sections-builder/builder.d.ts +4 -4
  573. package/dist/server/src/services/permission/sections-builder/builder.d.ts.map +1 -1
  574. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  575. package/dist/server/src/services/permission/sections-builder/index.d.ts +4 -4
  576. package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
  577. package/dist/server/src/services/permission/sections-builder/utils.d.ts +0 -1
  578. package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
  579. package/dist/server/src/services/permission.d.ts +13 -38
  580. package/dist/server/src/services/permission.d.ts.map +1 -1
  581. package/dist/server/src/services/project-settings.d.ts +2 -4
  582. package/dist/server/src/services/project-settings.d.ts.map +1 -1
  583. package/dist/server/src/services/role.d.ts +7 -1
  584. package/dist/server/src/services/role.d.ts.map +1 -1
  585. package/dist/server/src/services/token.d.ts +1 -1
  586. package/dist/server/src/services/token.d.ts.map +1 -1
  587. package/dist/server/src/services/transfer/token.d.ts +11 -11
  588. package/dist/server/src/services/transfer/token.d.ts.map +1 -1
  589. package/dist/server/src/services/user.d.ts +3 -3
  590. package/dist/server/src/services/user.d.ts.map +1 -1
  591. package/dist/server/src/strategies/admin-token.d.ts +4 -4
  592. package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
  593. package/dist/server/src/strategies/admin.d.ts.map +1 -1
  594. package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -1
  595. package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
  596. package/dist/server/src/strategies/data-transfer.d.ts.map +1 -1
  597. package/dist/server/src/utils/normalize-email.d.ts.map +1 -1
  598. package/dist/server/src/validation/action-provider.d.ts +2 -2
  599. package/dist/server/src/validation/action-provider.d.ts.map +1 -1
  600. package/dist/server/src/validation/admin-tokens.d.ts +2 -2
  601. package/dist/server/src/validation/api-tokens.d.ts +4 -4
  602. package/dist/server/src/validation/authentication/forgot-password.d.ts +1 -1
  603. package/dist/server/src/validation/authentication/login.d.ts +1 -1
  604. package/dist/server/src/validation/authentication/register.d.ts +6 -6
  605. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  606. package/dist/server/src/validation/authentication/reset-password.d.ts +1 -1
  607. package/dist/server/src/validation/common-functions/check-fields-are-correctly-nested.d.ts.map +1 -1
  608. package/dist/server/src/validation/common-functions/check-fields-dont-have-duplicates.d.ts.map +1 -1
  609. package/dist/server/src/validation/common-validators.d.ts.map +1 -1
  610. package/dist/server/src/validation/permission.d.ts +6 -6
  611. package/dist/server/src/validation/permission.d.ts.map +1 -1
  612. package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -2
  613. package/dist/server/src/validation/project-settings.d.ts +6 -6
  614. package/dist/server/src/validation/role.d.ts +8 -8
  615. package/dist/server/src/validation/role.d.ts.map +1 -1
  616. package/dist/server/src/validation/transfer/token.d.ts +4 -4
  617. package/dist/server/src/validation/user.d.ts +8 -8
  618. package/dist/shared/contracts/permissions.d.ts +1 -0
  619. package/dist/shared/contracts/permissions.d.ts.map +1 -1
  620. package/dist/shared/contracts/sessions.d.ts +62 -0
  621. package/dist/shared/contracts/sessions.d.ts.map +1 -0
  622. package/dist/shared/contracts/shared.d.ts +1 -1
  623. package/dist/shared/contracts/shared.d.ts.map +1 -1
  624. package/dist/shared/utils/session-auth.d.ts +1 -1
  625. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  626. package/package.json +12 -12
@@ -0,0 +1,296 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Flex, Dialog, Button, Box, Table, Thead, Tr, Th, Typography, Tbody, Td, Badge, IconButton } from '@strapi/design-system';
4
+ import { SignOut } from '@strapi/icons';
5
+ import { useIntl } from 'react-intl';
6
+ import { useNavigate } from 'react-router-dom';
7
+ import { ConfirmDialog } from '../components/ConfirmDialog.mjs';
8
+ import { Layouts } from '../components/Layouts/Layout.mjs';
9
+ import { Page } from '../components/PageHelpers.mjs';
10
+ import { RelativeTime } from '../components/RelativeTime.mjs';
11
+ import { useAuth } from '../features/Auth.mjs';
12
+ import { useNotification } from '../features/Notifications.mjs';
13
+ import { useAPIErrorHandler } from '../hooks/useAPIErrorHandler.mjs';
14
+ import { useGetActiveSessionsQuery, useRevokeSessionMutation, useRevokeAllSessionsMutation } from '../services/auth.mjs';
15
+ import { isBaseQueryError } from '../utils/baseQuery.mjs';
16
+
17
+ /* -------------------------------------------------------------------------------------------------
18
+ * SessionsPage
19
+ * -----------------------------------------------------------------------------------------------*/ const SessionsPage = ()=>{
20
+ const { formatMessage } = useIntl();
21
+ const navigate = useNavigate();
22
+ const { toggleNotification } = useNotification();
23
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
24
+ const logout = useAuth('SessionsPage', (state)=>state.logout);
25
+ const { data: sessions = [], isLoading, error } = useGetActiveSessionsQuery();
26
+ const [revokeSession] = useRevokeSessionMutation();
27
+ const [revokeAllSessions] = useRevokeAllSessionsMutation();
28
+ const handleLogoutAndRedirect = React.useCallback(async ()=>{
29
+ await logout();
30
+ navigate('/auth/login');
31
+ }, [
32
+ logout,
33
+ navigate
34
+ ]);
35
+ const notifyError = React.useCallback((error)=>{
36
+ toggleNotification({
37
+ type: 'danger',
38
+ message: error && isBaseQueryError(error) ? formatAPIError(error) : formatMessage({
39
+ id: 'notification.error',
40
+ defaultMessage: 'An error occurred'
41
+ })
42
+ });
43
+ }, [
44
+ formatAPIError,
45
+ formatMessage,
46
+ toggleNotification
47
+ ]);
48
+ const runSessionMutation = React.useCallback(async (action, onSuccess)=>{
49
+ try {
50
+ const res = await action();
51
+ if (res && 'error' in res && res.error) {
52
+ notifyError(res.error);
53
+ return;
54
+ }
55
+ await onSuccess();
56
+ } catch {
57
+ notifyError();
58
+ }
59
+ }, [
60
+ notifyError
61
+ ]);
62
+ const handleRevoke = async (session)=>{
63
+ await runSessionMutation(()=>revokeSession(session.id), async ()=>{
64
+ if (session.current) {
65
+ await handleLogoutAndRedirect();
66
+ return;
67
+ }
68
+ toggleNotification({
69
+ type: 'success',
70
+ message: formatMessage({
71
+ id: 'Settings.sessions.revoke.success',
72
+ defaultMessage: 'Session ended'
73
+ })
74
+ });
75
+ });
76
+ };
77
+ const handleRevokeOthers = async ()=>{
78
+ await runSessionMutation(()=>revokeAllSessions({
79
+ keepCurrent: true
80
+ }), ()=>{
81
+ toggleNotification({
82
+ type: 'success',
83
+ message: formatMessage({
84
+ id: 'Settings.sessions.revokeOthers.success',
85
+ defaultMessage: 'Other sessions ended'
86
+ })
87
+ });
88
+ });
89
+ };
90
+ const handleRevokeAll = async ()=>{
91
+ await runSessionMutation(()=>revokeAllSessions(undefined), handleLogoutAndRedirect);
92
+ };
93
+ if (isLoading) {
94
+ return /*#__PURE__*/ jsx(Page.Loading, {});
95
+ }
96
+ if (error) {
97
+ return /*#__PURE__*/ jsx(Page.Error, {});
98
+ }
99
+ return /*#__PURE__*/ jsxs(Page.Main, {
100
+ children: [
101
+ /*#__PURE__*/ jsx(Page.Title, {
102
+ children: formatMessage({
103
+ id: 'Settings.sessions.title',
104
+ defaultMessage: 'Active Devices'
105
+ })
106
+ }),
107
+ /*#__PURE__*/ jsx(Layouts.Header, {
108
+ title: formatMessage({
109
+ id: 'Settings.sessions.title',
110
+ defaultMessage: 'Active Devices'
111
+ }),
112
+ subtitle: formatMessage({
113
+ id: 'Settings.sessions.subtitle',
114
+ defaultMessage: 'These are the devices and sessions currently signed in to your account.'
115
+ }),
116
+ primaryAction: sessions.length > 0 ? /*#__PURE__*/ jsxs(Flex, {
117
+ gap: 2,
118
+ children: [
119
+ sessions.length > 1 ? /*#__PURE__*/ jsxs(Dialog.Root, {
120
+ children: [
121
+ /*#__PURE__*/ jsx(Dialog.Trigger, {
122
+ children: /*#__PURE__*/ jsx(Button, {
123
+ variant: "secondary",
124
+ startIcon: /*#__PURE__*/ jsx(SignOut, {}),
125
+ children: formatMessage({
126
+ id: 'Settings.sessions.revokeOthers',
127
+ defaultMessage: 'Log out of other devices'
128
+ })
129
+ })
130
+ }),
131
+ /*#__PURE__*/ jsx(ConfirmDialog, {
132
+ onConfirm: handleRevokeOthers,
133
+ children: formatMessage({
134
+ id: 'Settings.sessions.revokeOthers.confirm',
135
+ defaultMessage: 'Are you sure? This will end every other active session. You will stay signed in on this device.'
136
+ })
137
+ })
138
+ ]
139
+ }) : null,
140
+ /*#__PURE__*/ jsxs(Dialog.Root, {
141
+ children: [
142
+ /*#__PURE__*/ jsx(Dialog.Trigger, {
143
+ children: /*#__PURE__*/ jsx(Button, {
144
+ variant: "danger-light",
145
+ startIcon: /*#__PURE__*/ jsx(SignOut, {}),
146
+ children: formatMessage({
147
+ id: 'Settings.sessions.revokeAll',
148
+ defaultMessage: 'Log out of all devices'
149
+ })
150
+ })
151
+ }),
152
+ /*#__PURE__*/ jsx(ConfirmDialog, {
153
+ onConfirm: handleRevokeAll,
154
+ children: formatMessage({
155
+ id: 'Settings.sessions.revokeAll.confirm',
156
+ defaultMessage: 'Are you sure? This will end every active session, including this one, and you will need to log in again.'
157
+ })
158
+ })
159
+ ]
160
+ })
161
+ ]
162
+ }) : undefined
163
+ }),
164
+ /*#__PURE__*/ jsx(Layouts.Content, {
165
+ children: /*#__PURE__*/ jsx(Box, {
166
+ background: "neutral0",
167
+ hasRadius: true,
168
+ shadow: "filterShadow",
169
+ children: /*#__PURE__*/ jsxs(Table, {
170
+ colCount: 4,
171
+ rowCount: sessions.length,
172
+ children: [
173
+ /*#__PURE__*/ jsx(Thead, {
174
+ children: /*#__PURE__*/ jsxs(Tr, {
175
+ children: [
176
+ /*#__PURE__*/ jsx(Th, {
177
+ children: /*#__PURE__*/ jsx(Typography, {
178
+ variant: "sigma",
179
+ children: formatMessage({
180
+ id: 'Settings.sessions.device',
181
+ defaultMessage: 'Device'
182
+ })
183
+ })
184
+ }),
185
+ /*#__PURE__*/ jsx(Th, {
186
+ children: /*#__PURE__*/ jsx(Typography, {
187
+ variant: "sigma",
188
+ children: formatMessage({
189
+ id: 'Settings.sessions.loginAt',
190
+ defaultMessage: 'Signed in'
191
+ })
192
+ })
193
+ }),
194
+ /*#__PURE__*/ jsx(Th, {
195
+ children: /*#__PURE__*/ jsx(Typography, {
196
+ variant: "sigma",
197
+ children: formatMessage({
198
+ id: 'Settings.sessions.lastActiveAt',
199
+ defaultMessage: 'Last used'
200
+ })
201
+ })
202
+ }),
203
+ /*#__PURE__*/ jsx(Th, {
204
+ children: /*#__PURE__*/ jsx(Typography, {
205
+ variant: "sigma",
206
+ children: formatMessage({
207
+ id: 'Settings.sessions.actions',
208
+ defaultMessage: 'Actions'
209
+ })
210
+ })
211
+ })
212
+ ]
213
+ })
214
+ }),
215
+ /*#__PURE__*/ jsx(Tbody, {
216
+ children: sessions.map((session)=>/*#__PURE__*/ jsxs(Tr, {
217
+ children: [
218
+ /*#__PURE__*/ jsx(Td, {
219
+ children: /*#__PURE__*/ jsxs(Flex, {
220
+ gap: 2,
221
+ children: [
222
+ /*#__PURE__*/ jsx(Typography, {
223
+ textColor: "neutral800",
224
+ children: session.deviceName ?? (session.deviceId ? session.deviceId.slice(0, 8) : formatMessage({
225
+ id: 'Settings.sessions.unknownDevice',
226
+ defaultMessage: 'Unknown device'
227
+ }))
228
+ }),
229
+ session.current && /*#__PURE__*/ jsx(Badge, {
230
+ children: formatMessage({
231
+ id: 'Settings.sessions.current',
232
+ defaultMessage: 'This device'
233
+ })
234
+ })
235
+ ]
236
+ })
237
+ }),
238
+ /*#__PURE__*/ jsx(Td, {
239
+ children: /*#__PURE__*/ jsx(Typography, {
240
+ textColor: "neutral800",
241
+ children: session.loginAt ? /*#__PURE__*/ jsx(RelativeTime, {
242
+ timestamp: new Date(session.loginAt)
243
+ }) : '-'
244
+ })
245
+ }),
246
+ /*#__PURE__*/ jsx(Td, {
247
+ children: /*#__PURE__*/ jsx(Typography, {
248
+ textColor: "neutral800",
249
+ children: session.lastActiveAt ? /*#__PURE__*/ jsx(RelativeTime, {
250
+ timestamp: new Date(session.lastActiveAt)
251
+ }) : '-'
252
+ })
253
+ }),
254
+ /*#__PURE__*/ jsx(Td, {
255
+ children: /*#__PURE__*/ jsx(Flex, {
256
+ justifyContent: "end",
257
+ onClick: (e)=>e.stopPropagation(),
258
+ children: /*#__PURE__*/ jsxs(Dialog.Root, {
259
+ children: [
260
+ /*#__PURE__*/ jsx(Dialog.Trigger, {
261
+ children: /*#__PURE__*/ jsx(IconButton, {
262
+ label: formatMessage({
263
+ id: 'Settings.sessions.revoke',
264
+ defaultMessage: 'End session'
265
+ }),
266
+ variant: "ghost",
267
+ children: /*#__PURE__*/ jsx(SignOut, {})
268
+ })
269
+ }),
270
+ /*#__PURE__*/ jsx(ConfirmDialog, {
271
+ onConfirm: ()=>handleRevoke(session),
272
+ children: session.current ? formatMessage({
273
+ id: 'Settings.sessions.revoke.confirmCurrent',
274
+ defaultMessage: 'This is the device you are currently using. Ending this session will log you out.'
275
+ }) : formatMessage({
276
+ id: 'Settings.sessions.revoke.confirm',
277
+ defaultMessage: 'Are you sure you want to end this session? The device will need to log in again.'
278
+ })
279
+ })
280
+ ]
281
+ })
282
+ })
283
+ })
284
+ ]
285
+ }, session.id))
286
+ })
287
+ ]
288
+ })
289
+ })
290
+ })
291
+ ]
292
+ });
293
+ };
294
+
295
+ export { SessionsPage };
296
+ //# sourceMappingURL=SessionsPage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionsPage.mjs","sources":["../../../../../admin/src/pages/SessionsPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Badge,\n Box,\n Button,\n Dialog,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { SignOut } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../components/ConfirmDialog';\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\nimport { RelativeTime } from '../components/RelativeTime';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport {\n useGetActiveSessionsQuery,\n useRevokeAllSessionsMutation,\n useRevokeSessionMutation,\n} from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\n\nimport type { SanitizedAdminSession } from '../../../shared/contracts/sessions';\n\n/* -------------------------------------------------------------------------------------------------\n * SessionsPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst SessionsPage = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const logout = useAuth('SessionsPage', (state) => state.logout);\n\n const { data: sessions = [], isLoading, error } = useGetActiveSessionsQuery();\n const [revokeSession] = useRevokeSessionMutation();\n const [revokeAllSessions] = useRevokeAllSessionsMutation();\n\n const handleLogoutAndRedirect = React.useCallback(async () => {\n await logout();\n navigate('/auth/login');\n }, [logout, navigate]);\n\n const notifyError = React.useCallback(\n (error?: unknown) => {\n toggleNotification({\n type: 'danger',\n message:\n error && isBaseQueryError(error)\n ? formatAPIError(error)\n : formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n },\n [formatAPIError, formatMessage, toggleNotification]\n );\n\n const runSessionMutation = React.useCallback(\n async (\n action: () => Promise<{ error?: unknown } | { data: unknown } | void>,\n onSuccess: () => void | Promise<void>\n ) => {\n try {\n const res = await action();\n\n if (res && 'error' in res && res.error) {\n notifyError(res.error);\n return;\n }\n\n await onSuccess();\n } catch {\n notifyError();\n }\n },\n [notifyError]\n );\n\n const handleRevoke = async (session: SanitizedAdminSession) => {\n await runSessionMutation(\n () => revokeSession(session.id),\n async () => {\n if (session.current) {\n await handleLogoutAndRedirect();\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.sessions.revoke.success',\n defaultMessage: 'Session ended',\n }),\n });\n }\n );\n };\n\n const handleRevokeOthers = async () => {\n await runSessionMutation(\n () => revokeAllSessions({ keepCurrent: true }),\n () => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.sessions.revokeOthers.success',\n defaultMessage: 'Other sessions ended',\n }),\n });\n }\n );\n };\n\n const handleRevokeAll = async () => {\n await runSessionMutation(() => revokeAllSessions(undefined), handleLogoutAndRedirect);\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage({\n id: 'Settings.sessions.title',\n defaultMessage: 'Active Devices',\n })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.sessions.title',\n defaultMessage: 'Active Devices',\n })}\n subtitle={formatMessage({\n id: 'Settings.sessions.subtitle',\n defaultMessage: 'These are the devices and sessions currently signed in to your account.',\n })}\n primaryAction={\n sessions.length > 0 ? (\n <Flex gap={2}>\n {sessions.length > 1 ? (\n <Dialog.Root>\n <Dialog.Trigger>\n <Button variant=\"secondary\" startIcon={<SignOut />}>\n {formatMessage({\n id: 'Settings.sessions.revokeOthers',\n defaultMessage: 'Log out of other devices',\n })}\n </Button>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleRevokeOthers}>\n {formatMessage({\n id: 'Settings.sessions.revokeOthers.confirm',\n defaultMessage:\n 'Are you sure? This will end every other active session. You will stay signed in on this device.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n ) : null}\n <Dialog.Root>\n <Dialog.Trigger>\n <Button variant=\"danger-light\" startIcon={<SignOut />}>\n {formatMessage({\n id: 'Settings.sessions.revokeAll',\n defaultMessage: 'Log out of all devices',\n })}\n </Button>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleRevokeAll}>\n {formatMessage({\n id: 'Settings.sessions.revokeAll.confirm',\n defaultMessage:\n 'Are you sure? This will end every active session, including this one, and you will need to log in again.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n ) : undefined\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" hasRadius shadow=\"filterShadow\">\n <Table colCount={4} rowCount={sessions.length}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({ id: 'Settings.sessions.device', defaultMessage: 'Device' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.sessions.loginAt',\n defaultMessage: 'Signed in',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.sessions.lastActiveAt',\n defaultMessage: 'Last used',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({ id: 'Settings.sessions.actions', defaultMessage: 'Actions' })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {sessions.map((session) => (\n <Tr key={session.id}>\n <Td>\n <Flex gap={2}>\n <Typography textColor=\"neutral800\">\n {session.deviceName ??\n (session.deviceId\n ? session.deviceId.slice(0, 8)\n : formatMessage({\n id: 'Settings.sessions.unknownDevice',\n defaultMessage: 'Unknown device',\n }))}\n </Typography>\n {session.current && (\n <Badge>\n {formatMessage({\n id: 'Settings.sessions.current',\n defaultMessage: 'This device',\n })}\n </Badge>\n )}\n </Flex>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {session.loginAt ? (\n <RelativeTime timestamp={new Date(session.loginAt)} />\n ) : (\n '-'\n )}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {session.lastActiveAt ? (\n <RelativeTime timestamp={new Date(session.lastActiveAt)} />\n ) : (\n '-'\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n <Dialog.Root>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage({\n id: 'Settings.sessions.revoke',\n defaultMessage: 'End session',\n })}\n variant=\"ghost\"\n >\n <SignOut />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={() => handleRevoke(session)}>\n {session.current\n ? formatMessage({\n id: 'Settings.sessions.revoke.confirmCurrent',\n defaultMessage:\n 'This is the device you are currently using. Ending this session will log you out.',\n })\n : formatMessage({\n id: 'Settings.sessions.revoke.confirm',\n defaultMessage:\n 'Are you sure you want to end this session? The device will need to log in again.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n </Box>\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nexport { SessionsPage };\n"],"names":["SessionsPage","formatMessage","useIntl","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","logout","useAuth","state","data","sessions","isLoading","error","useGetActiveSessionsQuery","revokeSession","useRevokeSessionMutation","revokeAllSessions","useRevokeAllSessionsMutation","handleLogoutAndRedirect","React","useCallback","notifyError","type","message","isBaseQueryError","id","defaultMessage","runSessionMutation","action","onSuccess","res","handleRevoke","session","current","handleRevokeOthers","keepCurrent","handleRevokeAll","undefined","_jsx","Page","Loading","Error","_jsxs","Main","Title","Layouts","Header","title","subtitle","primaryAction","length","Flex","gap","Dialog","Root","Trigger","Button","variant","startIcon","SignOut","ConfirmDialog","onConfirm","Content","Box","background","hasRadius","shadow","Table","colCount","rowCount","Thead","Tr","Th","Typography","Tbody","map","Td","textColor","deviceName","deviceId","slice","Badge","loginAt","RelativeTime","timestamp","Date","lastActiveAt","justifyContent","onClick","e","stopPropagation","IconButton","label"],"mappings":"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"}
@@ -5,6 +5,7 @@ var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
  var reactRouterDom = require('react-router-dom');
7
7
  var Layout$1 = require('../../components/Layouts/Layout.js');
8
+ var LazyOutlet = require('../../components/LazyOutlet.js');
8
9
  var PageHelpers = require('../../components/PageHelpers.js');
9
10
  var SubNav = require('../../components/SubNav.js');
10
11
  var theme = require('../../constants/theme.js');
@@ -72,7 +73,9 @@ const Layout = ()=>{
72
73
  fallback: "/settings"
73
74
  })
74
75
  }),
75
- /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Outlet, {})
76
+ /*#__PURE__*/ jsxRuntime.jsx(LazyOutlet.LazyOutlet, {
77
+ nested: true
78
+ })
76
79
  ]
77
80
  });
78
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sources":["../../../../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { SubNav } from '../../components/SubNav';\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { BackButton } from '../../features/BackButton';\nimport { useIsMobile } from '../../hooks/useMediaQuery';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading } = useSettingsMenu();\n const isMobile = useIsMobile();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n // On /settings base route\n if (!match?.params.settingId) {\n // On desktop: redirect to first settings page\n if (!isMobile) {\n return <Navigate to=\"application-infos\" />;\n }\n\n // On mobile: show navigation page\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <SubNav.PageWrapper>\n <SettingsNav isFullPage />\n </SubNav.PageWrapper>\n </>\n );\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Box\n display={{ initial: 'block', medium: 'none' }}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={RESPONSIVE_DEFAULT_SPACING}\n >\n <BackButton fallback=\"/settings\" />\n </Box>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["Layout","match","useMatch","formatMessage","useIntl","isLoading","useSettingsMenu","isMobile","useIsMobile","_jsx","Page","Loading","params","settingId","Navigate","to","_jsxs","_Fragment","Title","id","defaultMessage","SubNav","PageWrapper","SettingsNav","isFullPage","Layouts","Root","sideNav","Box","display","initial","medium","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","BackButton","fallback","Outlet"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAMA,MAAAA,GAAS,IAAA;AACb;;;MAIA,MAAMC,QAAQC,uBAAAA,CAAS,wBAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGC,+BAAAA,EAAAA;AACtB,IAAA,MAAMC,QAAAA,GAAWC,yBAAAA,EAAAA;;;AAIjB,IAAA,IAAIH,SAAAA,EAAW;QACb,qBAAOI,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;;IAGA,IAAI,CAACV,KAAAA,EAAOW,MAAAA,CAAOC,SAAAA,EAAW;;AAE5B,QAAA,IAAI,CAACN,QAAAA,EAAU;AACb,YAAA,qBAAOE,cAAA,CAACK,uBAAAA,EAAAA;gBAASC,EAAAA,EAAG;;AACtB,QAAA;;QAGA,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;AACE,8BAAAR,cAAA,CAACC,iBAAKQ,KAAK,EAAA;8BACRf,aAAAA,CAAc;wBACbgB,EAAAA,EAAI,iBAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEF,8BAAAX,cAAA,CAACY,cAAOC,WAAW,EAAA;AACjB,oBAAA,QAAA,gBAAAb,cAAA,CAACc,uBAAAA,EAAAA;wBAAYC,UAAU,EAAA;;;;;AAI/B,IAAA;IAEA,qBACER,eAAA,CAACS,iBAAQC,IAAI,EAAA;AAACC,QAAAA,OAAAA,gBAASlB,cAAA,CAACc,uBAAAA,EAAAA,EAAAA,CAAAA;;AACtB,0BAAAd,cAAA,CAACC,iBAAKQ,KAAK,EAAA;0BACRf,aAAAA,CAAc;oBACbgB,EAAAA,EAAI,iBAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFX,cAAA,CAACmB,gBAAAA,EAAAA;gBACCC,OAAAA,EAAS;oBAAEC,OAAAA,EAAS,OAAA;oBAASC,MAAAA,EAAQ;AAAO,iBAAA;gBAC5CC,WAAAA,EAAaC,gCAAAA;gBACbC,YAAAA,EAAcD,gCAAAA;gBACdE,UAAAA,EAAYF,gCAAAA;AAEZ,gBAAA,QAAA,gBAAAxB,cAAA,CAAC2B,qBAAAA,EAAAA;oBAAWC,QAAAA,EAAS;;;0BAEvB5B,cAAA,CAAC6B,qBAAAA,EAAAA,EAAAA;;;AAGP;;;;"}
1
+ {"version":3,"file":"Layout.js","sources":["../../../../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { LazyOutlet } from '../../components/LazyOutlet';\nimport { Page } from '../../components/PageHelpers';\nimport { SubNav } from '../../components/SubNav';\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { BackButton } from '../../features/BackButton';\nimport { useIsMobile } from '../../hooks/useMediaQuery';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading } = useSettingsMenu();\n const isMobile = useIsMobile();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n // On /settings base route\n if (!match?.params.settingId) {\n // On desktop: redirect to first settings page\n if (!isMobile) {\n return <Navigate to=\"application-infos\" />;\n }\n\n // On mobile: show navigation page\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <SubNav.PageWrapper>\n <SettingsNav isFullPage />\n </SubNav.PageWrapper>\n </>\n );\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Box\n display={{ initial: 'block', medium: 'none' }}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={RESPONSIVE_DEFAULT_SPACING}\n >\n <BackButton fallback=\"/settings\" />\n </Box>\n <LazyOutlet nested />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["Layout","match","useMatch","formatMessage","useIntl","isLoading","useSettingsMenu","isMobile","useIsMobile","_jsx","Page","Loading","params","settingId","Navigate","to","_jsxs","_Fragment","Title","id","defaultMessage","SubNav","PageWrapper","SettingsNav","isFullPage","Layouts","Root","sideNav","Box","display","initial","medium","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","BackButton","fallback","LazyOutlet","nested"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAMA,MAAAA,GAAS,IAAA;AACb;;;MAIA,MAAMC,QAAQC,uBAAAA,CAAS,wBAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGC,+BAAAA,EAAAA;AACtB,IAAA,MAAMC,QAAAA,GAAWC,yBAAAA,EAAAA;;;AAIjB,IAAA,IAAIH,SAAAA,EAAW;QACb,qBAAOI,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;;IAGA,IAAI,CAACV,KAAAA,EAAOW,MAAAA,CAAOC,SAAAA,EAAW;;AAE5B,QAAA,IAAI,CAACN,QAAAA,EAAU;AACb,YAAA,qBAAOE,cAAA,CAACK,uBAAAA,EAAAA;gBAASC,EAAAA,EAAG;;AACtB,QAAA;;QAGA,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;AACE,8BAAAR,cAAA,CAACC,iBAAKQ,KAAK,EAAA;8BACRf,aAAAA,CAAc;wBACbgB,EAAAA,EAAI,iBAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEF,8BAAAX,cAAA,CAACY,cAAOC,WAAW,EAAA;AACjB,oBAAA,QAAA,gBAAAb,cAAA,CAACc,uBAAAA,EAAAA;wBAAYC,UAAU,EAAA;;;;;AAI/B,IAAA;IAEA,qBACER,eAAA,CAACS,iBAAQC,IAAI,EAAA;AAACC,QAAAA,OAAAA,gBAASlB,cAAA,CAACc,uBAAAA,EAAAA,EAAAA,CAAAA;;AACtB,0BAAAd,cAAA,CAACC,iBAAKQ,KAAK,EAAA;0BACRf,aAAAA,CAAc;oBACbgB,EAAAA,EAAI,iBAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFX,cAAA,CAACmB,gBAAAA,EAAAA;gBACCC,OAAAA,EAAS;oBAAEC,OAAAA,EAAS,OAAA;oBAASC,MAAAA,EAAQ;AAAO,iBAAA;gBAC5CC,WAAAA,EAAaC,gCAAAA;gBACbC,YAAAA,EAAcD,gCAAAA;gBACdE,UAAAA,EAAYF,gCAAAA;AAEZ,gBAAA,QAAA,gBAAAxB,cAAA,CAAC2B,qBAAAA,EAAAA;oBAAWC,QAAAA,EAAS;;;0BAEvB5B,cAAA,CAAC6B,qBAAAA,EAAAA;gBAAWC,MAAM,EAAA;;;;AAGxB;;;;"}
@@ -1,8 +1,9 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Box } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
- import { useMatch, Navigate, Outlet } from 'react-router-dom';
4
+ import { useMatch, Navigate } from 'react-router-dom';
5
5
  import { Layouts } from '../../components/Layouts/Layout.mjs';
6
+ import { LazyOutlet } from '../../components/LazyOutlet.mjs';
6
7
  import { Page } from '../../components/PageHelpers.mjs';
7
8
  import { SubNav } from '../../components/SubNav.mjs';
8
9
  import { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme.mjs';
@@ -70,7 +71,9 @@ const Layout = ()=>{
70
71
  fallback: "/settings"
71
72
  })
72
73
  }),
73
- /*#__PURE__*/ jsx(Outlet, {})
74
+ /*#__PURE__*/ jsx(LazyOutlet, {
75
+ nested: true
76
+ })
74
77
  ]
75
78
  });
76
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.mjs","sources":["../../../../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { SubNav } from '../../components/SubNav';\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { BackButton } from '../../features/BackButton';\nimport { useIsMobile } from '../../hooks/useMediaQuery';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading } = useSettingsMenu();\n const isMobile = useIsMobile();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n // On /settings base route\n if (!match?.params.settingId) {\n // On desktop: redirect to first settings page\n if (!isMobile) {\n return <Navigate to=\"application-infos\" />;\n }\n\n // On mobile: show navigation page\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <SubNav.PageWrapper>\n <SettingsNav isFullPage />\n </SubNav.PageWrapper>\n </>\n );\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Box\n display={{ initial: 'block', medium: 'none' }}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={RESPONSIVE_DEFAULT_SPACING}\n >\n <BackButton fallback=\"/settings\" />\n </Box>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["Layout","match","useMatch","formatMessage","useIntl","isLoading","useSettingsMenu","isMobile","useIsMobile","_jsx","Page","Loading","params","settingId","Navigate","to","_jsxs","_Fragment","Title","id","defaultMessage","SubNav","PageWrapper","SettingsNav","isFullPage","Layouts","Root","sideNav","Box","display","initial","medium","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","BackButton","fallback","Outlet"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,MAAAA,GAAS,IAAA;AACb;;;MAIA,MAAMC,QAAQC,QAAAA,CAAS,wBAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGC,eAAAA,EAAAA;AACtB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;;;AAIjB,IAAA,IAAIH,SAAAA,EAAW;QACb,qBAAOI,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;;IAGA,IAAI,CAACV,KAAAA,EAAOW,MAAAA,CAAOC,SAAAA,EAAW;;AAE5B,QAAA,IAAI,CAACN,QAAAA,EAAU;AACb,YAAA,qBAAOE,GAAA,CAACK,QAAAA,EAAAA;gBAASC,EAAAA,EAAG;;AACtB,QAAA;;QAGA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;AACE,8BAAAR,GAAA,CAACC,KAAKQ,KAAK,EAAA;8BACRf,aAAAA,CAAc;wBACbgB,EAAAA,EAAI,iBAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEF,8BAAAX,GAAA,CAACY,OAAOC,WAAW,EAAA;AACjB,oBAAA,QAAA,gBAAAb,GAAA,CAACc,WAAAA,EAAAA;wBAAYC,UAAU,EAAA;;;;;AAI/B,IAAA;IAEA,qBACER,IAAA,CAACS,QAAQC,IAAI,EAAA;AAACC,QAAAA,OAAAA,gBAASlB,GAAA,CAACc,WAAAA,EAAAA,EAAAA,CAAAA;;AACtB,0BAAAd,GAAA,CAACC,KAAKQ,KAAK,EAAA;0BACRf,aAAAA,CAAc;oBACbgB,EAAAA,EAAI,iBAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFX,GAAA,CAACmB,GAAAA,EAAAA;gBACCC,OAAAA,EAAS;oBAAEC,OAAAA,EAAS,OAAA;oBAASC,MAAAA,EAAQ;AAAO,iBAAA;gBAC5CC,WAAAA,EAAaC,0BAAAA;gBACbC,YAAAA,EAAcD,0BAAAA;gBACdE,UAAAA,EAAYF,0BAAAA;AAEZ,gBAAA,QAAA,gBAAAxB,GAAA,CAAC2B,UAAAA,EAAAA;oBAAWC,QAAAA,EAAS;;;0BAEvB5B,GAAA,CAAC6B,MAAAA,EAAAA,EAAAA;;;AAGP;;;;"}
1
+ {"version":3,"file":"Layout.mjs","sources":["../../../../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { LazyOutlet } from '../../components/LazyOutlet';\nimport { Page } from '../../components/PageHelpers';\nimport { SubNav } from '../../components/SubNav';\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { BackButton } from '../../features/BackButton';\nimport { useIsMobile } from '../../hooks/useMediaQuery';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading } = useSettingsMenu();\n const isMobile = useIsMobile();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n // On /settings base route\n if (!match?.params.settingId) {\n // On desktop: redirect to first settings page\n if (!isMobile) {\n return <Navigate to=\"application-infos\" />;\n }\n\n // On mobile: show navigation page\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <SubNav.PageWrapper>\n <SettingsNav isFullPage />\n </SubNav.PageWrapper>\n </>\n );\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Box\n display={{ initial: 'block', medium: 'none' }}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={RESPONSIVE_DEFAULT_SPACING}\n >\n <BackButton fallback=\"/settings\" />\n </Box>\n <LazyOutlet nested />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["Layout","match","useMatch","formatMessage","useIntl","isLoading","useSettingsMenu","isMobile","useIsMobile","_jsx","Page","Loading","params","settingId","Navigate","to","_jsxs","_Fragment","Title","id","defaultMessage","SubNav","PageWrapper","SettingsNav","isFullPage","Layouts","Root","sideNav","Box","display","initial","medium","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","BackButton","fallback","LazyOutlet","nested"],"mappings":";;;;;;;;;;;;;;AAeA,MAAMA,MAAAA,GAAS,IAAA;AACb;;;MAIA,MAAMC,QAAQC,QAAAA,CAAS,wBAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGC,eAAAA,EAAAA;AACtB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;;;AAIjB,IAAA,IAAIH,SAAAA,EAAW;QACb,qBAAOI,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;;IAGA,IAAI,CAACV,KAAAA,EAAOW,MAAAA,CAAOC,SAAAA,EAAW;;AAE5B,QAAA,IAAI,CAACN,QAAAA,EAAU;AACb,YAAA,qBAAOE,GAAA,CAACK,QAAAA,EAAAA;gBAASC,EAAAA,EAAG;;AACtB,QAAA;;QAGA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;AACE,8BAAAR,GAAA,CAACC,KAAKQ,KAAK,EAAA;8BACRf,aAAAA,CAAc;wBACbgB,EAAAA,EAAI,iBAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEF,8BAAAX,GAAA,CAACY,OAAOC,WAAW,EAAA;AACjB,oBAAA,QAAA,gBAAAb,GAAA,CAACc,WAAAA,EAAAA;wBAAYC,UAAU,EAAA;;;;;AAI/B,IAAA;IAEA,qBACER,IAAA,CAACS,QAAQC,IAAI,EAAA;AAACC,QAAAA,OAAAA,gBAASlB,GAAA,CAACc,WAAAA,EAAAA,EAAAA,CAAAA;;AACtB,0BAAAd,GAAA,CAACC,KAAKQ,KAAK,EAAA;0BACRf,aAAAA,CAAc;oBACbgB,EAAAA,EAAI,iBAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFX,GAAA,CAACmB,GAAAA,EAAAA;gBACCC,OAAAA,EAAS;oBAAEC,OAAAA,EAAS,OAAA;oBAASC,MAAAA,EAAQ;AAAO,iBAAA;gBAC5CC,WAAAA,EAAaC,0BAAAA;gBACbC,YAAAA,EAAcD,0BAAAA;gBACdE,UAAAA,EAAYF,0BAAAA;AAEZ,gBAAA,QAAA,gBAAAxB,GAAA,CAAC2B,UAAAA,EAAAA;oBAAWC,QAAAA,EAAS;;;0BAEvB5B,GAAA,CAAC6B,UAAAA,EAAAA;gBAAWC,MAAM,EAAA;;;;AAGxB;;;;"}
@@ -5,13 +5,13 @@ var designSystem = require('@strapi/design-system');
5
5
  var icons = require('@strapi/icons');
6
6
  var reactIntl = require('react-intl');
7
7
  var reactRouterDom = require('react-router-dom');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
  var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimits.js');
10
10
  var SubNav = require('../../../components/SubNav.js');
11
11
  var Tracking = require('../../../features/Tracking.js');
12
12
  var useSettingsMenu = require('../../../hooks/useSettingsMenu.js');
13
13
 
14
- const StyledBadge = styled.styled(designSystem.Badge)`
14
+ const StyledBadge = styledComponents.styled(designSystem.Badge)`
15
15
  border-radius: 50%;
16
16
  padding: ${({ theme })=>theme.spaces[2]};
17
17
  height: 2rem;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsNav.js","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsNav.js","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":";;;;;;;;;;;;;AAoBA,MAAMA,WAAAA,GAAcC,uBAAAA,CAAOC,kBAAAA,CAAM;;WAEtB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAAC,CAAA,CAAE,CAAC;;AAE5C,CAAC;AAED,MAAMC,WAAAA,GAAc,CAAC,EAAEC,UAAAA,GAAa,KAAK,EAA4B,GAAA;IACnE,MAAM,EAAEC,IAAI,EAAE,GAAGC,+BAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,oBAAAA,EAAAA;IACvB,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;IACrB,MAAM,EAAEC,OAAO,EAAE,GAAGC,iCAAAA,EAAAA;AAEpB,IAAA,MAAMC,wBAAwBF,OAAAA,EAASG,QAAAA,CAASC,IAAI,CAACC,OAAAA,GAAYA,QAAQC,IAAI,CAAA;AAE7E,IAAA,MAAMC,8BAAAA,GAA8D;QAClE,kBAAA,EAAoB,sBAAA;QACpB,kBAAA,EAAoB,kBAAA;QACpBC,GAAAA,EAAK,KAAA;QACLC,SAAAA,EAAW,YAAA;QACX,yBAAA,EAA2B;AAC7B,KAAA;AAEA,IAAA,MAAMC,eAAelB,IAAAA,CAAKmB,MAAM,CAC9B,CAACC,UAAY,CAACA,OAAAA,CAAQC,KAAK,CAACC,KAAK,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,WAAW,KAAK,KAAA,CAAA,CAAA;AAGnE,IAAA,MAAMC,QAAAA,GAAWP,YAAAA,CAAaN,GAAG,CAAC,CAACQ,OAAAA,GAAAA;QACjC,OAAO;AACL,YAAA,GAAGA,OAAO;AACVM,YAAAA,KAAAA,EAAON,QAAQO,SAAS;AACxBN,YAAAA,KAAAA,EAAOD,OAAAA,CAAQC,KAAK,CAACT,GAAG,CAAC,CAACW,IAAAA,GAAAA;gBACxB,OAAO;AACL,oBAAA,GAAGA,IAAI;AACPK,oBAAAA,EAAAA,EAAIL,KAAKK,EAAE;AACXF,oBAAAA,KAAAA,EAAOH,KAAKI,SAAS;AACrBb,oBAAAA,IAAAA,EAAMS,KAAKK,EAAE;AACbC,oBAAAA,EAAAA,EAAIN,IAAAA,CAAKM,EAAE,CAACC,UAAU,CAAC,GAAA,CAAA,GAAOP,IAAAA,CAAKM,EAAE,GAAG,CAAC,UAAU,EAAEN,IAAAA,CAAKM,EAAE,CAAA;AAC9D,iBAAA;AACF,YAAA,CAAA;AACF,SAAA;AACF,IAAA,CAAA,CAAA;AAEA,IAAA,MAAME,QAAQ7B,aAAAA,CAAc;QAC1B0B,EAAAA,EAAI,iBAAA;QACJI,cAAAA,EAAgB;AAClB,KAAA,CAAA;IAEA,MAAMC,iBAAAA,GAAoB,CAACC,WAAAA,GAAwB,IAAA;AACjD9B,YAAAA,UAAAA,CAAW,cAAA,EAAgB;gBAAE+B,IAAAA,EAAM7B,QAAAA;gBAAUuB,EAAAA,EAAIK;AAAY,aAAA,CAAA;AAC/D,QAAA,CAAA;IAEA,qBACEE,eAAA,CAACC,cAAOC,IAAI,EAAA;QAACC,YAAAA,EAAYR,KAAAA;;AACtB,YAAA,CAAChC,UAAAA,kBACAqC,eAAA,CAAAI,mBAAA,EAAA;;AACE,kCAAAC,cAAA,CAACJ,cAAOK,MAAM,EAAA;wBAACX,KAAAA,EAAOA;;kCACtBU,cAAA,CAACE,oBAAAA,EAAAA,EAAAA;;;AAGL,0BAAAP,eAAA,CAACC,cAAOO,OAAO,EAAA;;oBACZ7C,UAAAA,kBACCqC,eAAA,CAAAI,mBAAA,EAAA;;AACE,0CAAAC,cAAA,CAACJ,cAAOK,MAAM,EAAA;gCAACX,KAAAA,EAAOA;;0CACtBU,cAAA,CAACE,oBAAAA,EAAAA,EAAAA;;;AAGL,kCAAAF,cAAA,CAACJ,cAAOQ,QAAQ,EAAA;AACbpB,wBAAAA,QAAAA,EAAAA,QAAAA,CAASb,GAAG,CAAC,CAACQ,OAAAA,iBACbqB,cAAA,CAACJ,cAAOS,OAAO,EAAA;gCAAkBf,KAAAA,EAAO7B,aAAAA,CAAckB,QAAQO,SAAS,CAAA;AACpEP,gCAAAA,QAAAA,EAAAA,OAAAA,CAAQC,KAAK,CAACT,GAAG,CAAC,CAACW,IAAAA,GAAAA;oCAClB,qBACEkB,cAAA,CAACJ,cAAOU,IAAI,EAAA;AACVlB,wCAAAA,EAAAA,EAAIN,KAAKM,EAAE;wCACXmB,OAAAA,EAASf,iBAAAA,CAAkBV,KAAKM,EAAE,CAAA;wCAElCE,KAAAA,EAAO7B,aAAAA,CAAcqB,KAAKI,SAAS,CAAA;wCACnCsB,SAAAA,gBACEb,eAAA,CAAAI,mBAAA,EAAA;;AACGjB,gDAAAA,IAAAA,EAAM2B,6BACLT,cAAA,CAACU,eAAAA,EAAAA;AACCC,oDAAAA,IAAAA,EACE,CAAC1C,qBAAAA,IAAyB,EAAE,EAAE2C,QAAQ,CACpCtC,8BAA8B,CAACQ,IAAAA,CAAKK,EAAE,CAAC,IAErC,YAAA,GACA,YAAA;oDAEN0B,KAAAA,EAAM,QAAA;oDACNC,MAAAA,EAAO;;AAGVhC,gDAAAA,IAAAA,EAAMiC,iCACLf,cAAA,CAAChD,WAAAA,EAAAA;oDACC8C,YAAAA,EAAW,cAAA;oDACXkB,eAAAA,EAAgB,YAAA;oDAChBC,SAAAA,EAAU,UAAA;AACX,oDAAA,QAAA,EAAA;;;;AAONxD,wCAAAA,QAAAA,EAAAA,aAAAA,CAAcqB,KAAKI,SAAS;AA7BxBJ,qCAAAA,EAAAA,IAAAA,CAAKK,EAAE,CAAA;AAgClB,gCAAA,CAAA;AAtCmBR,6BAAAA,EAAAA,OAAAA,CAAQQ,EAAE,CAAA;;;;;;AA6C3C;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsNav.mjs","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsNav.mjs","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,WAAAA,GAAcC,MAAAA,CAAOC,KAAAA,CAAM;;WAEtB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAAC,CAAA,CAAE,CAAC;;AAE5C,CAAC;AAED,MAAMC,WAAAA,GAAc,CAAC,EAAEC,UAAAA,GAAa,KAAK,EAA4B,GAAA;IACnE,MAAM,EAAEC,IAAI,EAAE,GAAGC,eAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;IACvB,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;IACrB,MAAM,EAAEC,OAAO,EAAE,GAAGC,gBAAAA,EAAAA;AAEpB,IAAA,MAAMC,wBAAwBF,OAAAA,EAASG,QAAAA,CAASC,IAAI,CAACC,OAAAA,GAAYA,QAAQC,IAAI,CAAA;AAE7E,IAAA,MAAMC,8BAAAA,GAA8D;QAClE,kBAAA,EAAoB,sBAAA;QACpB,kBAAA,EAAoB,kBAAA;QACpBC,GAAAA,EAAK,KAAA;QACLC,SAAAA,EAAW,YAAA;QACX,yBAAA,EAA2B;AAC7B,KAAA;AAEA,IAAA,MAAMC,eAAelB,IAAAA,CAAKmB,MAAM,CAC9B,CAACC,UAAY,CAACA,OAAAA,CAAQC,KAAK,CAACC,KAAK,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,WAAW,KAAK,KAAA,CAAA,CAAA;AAGnE,IAAA,MAAMC,QAAAA,GAAWP,YAAAA,CAAaN,GAAG,CAAC,CAACQ,OAAAA,GAAAA;QACjC,OAAO;AACL,YAAA,GAAGA,OAAO;AACVM,YAAAA,KAAAA,EAAON,QAAQO,SAAS;AACxBN,YAAAA,KAAAA,EAAOD,OAAAA,CAAQC,KAAK,CAACT,GAAG,CAAC,CAACW,IAAAA,GAAAA;gBACxB,OAAO;AACL,oBAAA,GAAGA,IAAI;AACPK,oBAAAA,EAAAA,EAAIL,KAAKK,EAAE;AACXF,oBAAAA,KAAAA,EAAOH,KAAKI,SAAS;AACrBb,oBAAAA,IAAAA,EAAMS,KAAKK,EAAE;AACbC,oBAAAA,EAAAA,EAAIN,IAAAA,CAAKM,EAAE,CAACC,UAAU,CAAC,GAAA,CAAA,GAAOP,IAAAA,CAAKM,EAAE,GAAG,CAAC,UAAU,EAAEN,IAAAA,CAAKM,EAAE,CAAA;AAC9D,iBAAA;AACF,YAAA,CAAA;AACF,SAAA;AACF,IAAA,CAAA,CAAA;AAEA,IAAA,MAAME,QAAQ7B,aAAAA,CAAc;QAC1B0B,EAAAA,EAAI,iBAAA;QACJI,cAAAA,EAAgB;AAClB,KAAA,CAAA;IAEA,MAAMC,iBAAAA,GAAoB,CAACC,WAAAA,GAAwB,IAAA;AACjD9B,YAAAA,UAAAA,CAAW,cAAA,EAAgB;gBAAE+B,IAAAA,EAAM7B,QAAAA;gBAAUuB,EAAAA,EAAIK;AAAY,aAAA,CAAA;AAC/D,QAAA,CAAA;IAEA,qBACEE,IAAA,CAACC,OAAOC,IAAI,EAAA;QAACC,YAAAA,EAAYR,KAAAA;;AACtB,YAAA,CAAChC,UAAAA,kBACAqC,IAAA,CAAAI,QAAA,EAAA;;AACE,kCAAAC,GAAA,CAACJ,OAAOK,MAAM,EAAA;wBAACX,KAAAA,EAAOA;;kCACtBU,GAAA,CAACE,OAAAA,EAAAA,EAAAA;;;AAGL,0BAAAP,IAAA,CAACC,OAAOO,OAAO,EAAA;;oBACZ7C,UAAAA,kBACCqC,IAAA,CAAAI,QAAA,EAAA;;AACE,0CAAAC,GAAA,CAACJ,OAAOK,MAAM,EAAA;gCAACX,KAAAA,EAAOA;;0CACtBU,GAAA,CAACE,OAAAA,EAAAA,EAAAA;;;AAGL,kCAAAF,GAAA,CAACJ,OAAOQ,QAAQ,EAAA;AACbpB,wBAAAA,QAAAA,EAAAA,QAAAA,CAASb,GAAG,CAAC,CAACQ,OAAAA,iBACbqB,GAAA,CAACJ,OAAOS,OAAO,EAAA;gCAAkBf,KAAAA,EAAO7B,aAAAA,CAAckB,QAAQO,SAAS,CAAA;AACpEP,gCAAAA,QAAAA,EAAAA,OAAAA,CAAQC,KAAK,CAACT,GAAG,CAAC,CAACW,IAAAA,GAAAA;oCAClB,qBACEkB,GAAA,CAACJ,OAAOU,IAAI,EAAA;AACVlB,wCAAAA,EAAAA,EAAIN,KAAKM,EAAE;wCACXmB,OAAAA,EAASf,iBAAAA,CAAkBV,KAAKM,EAAE,CAAA;wCAElCE,KAAAA,EAAO7B,aAAAA,CAAcqB,KAAKI,SAAS,CAAA;wCACnCsB,SAAAA,gBACEb,IAAA,CAAAI,QAAA,EAAA;;AACGjB,gDAAAA,IAAAA,EAAM2B,6BACLT,GAAA,CAACU,SAAAA,EAAAA;AACCC,oDAAAA,IAAAA,EACE,CAAC1C,qBAAAA,IAAyB,EAAE,EAAE2C,QAAQ,CACpCtC,8BAA8B,CAACQ,IAAAA,CAAKK,EAAE,CAAC,IAErC,YAAA,GACA,YAAA;oDAEN0B,KAAAA,EAAM,QAAA;oDACNC,MAAAA,EAAO;;AAGVhC,gDAAAA,IAAAA,EAAMiC,iCACLf,GAAA,CAAChD,WAAAA,EAAAA;oDACC8C,YAAAA,EAAW,cAAA;oDACXkB,eAAAA,EAAgB,YAAA;oDAChBC,SAAAA,EAAU,UAAA;AACX,oDAAA,QAAA,EAAA;;;;AAONxD,wCAAAA,QAAAA,EAAAA,aAAAA,CAAcqB,KAAKI,SAAS;AA7BxBJ,qCAAAA,EAAAA,IAAAA,CAAKK,EAAE,CAAA;AAgClB,gCAAA,CAAA;AAtCmBR,6BAAAA,EAAAA,OAAAA,CAAQQ,EAAE,CAAA;;;;;;AA6C3C;;;;"}
@@ -5,7 +5,7 @@ var React = require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
  var ConfirmDialog = require('../../../../components/ConfirmDialog.js');
10
10
  var Tours = require('../../../../components/GuidedTour/Tours.js');
11
11
  var Layout = require('../../../../components/Layouts/Layout.js');
@@ -34,7 +34,7 @@ function _interopNamespace(e) {
34
34
 
35
35
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
36
36
 
37
- const ActionButton = styled.styled(designSystem.Button)`
37
+ const ActionButton = styledComponents.styled(designSystem.Button)`
38
38
  white-space: nowrap;
39
39
  `;
40
40
  const Regenerate = ({ onRegenerate, url })=>{