@strapi/admin 5.50.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 (305) 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 +4 -4
  10. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +41 -27
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +41 -27
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Date.js +1 -1
  16. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Date.mjs +1 -1
  18. package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
  20. package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +4 -1
  22. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +4 -1
  24. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/Json.js +2 -1
  26. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  27. package/dist/admin/admin/src/components/FormInputs/Json.mjs +2 -1
  28. package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
  30. package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/FormInputs/Renderer.js +18 -26
  32. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  33. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs +20 -28
  34. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  36. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
  38. package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/GapDropZone.js +2 -2
  40. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  41. package/dist/admin/admin/src/components/GradientBadge.js +3 -3
  42. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  43. package/dist/admin/admin/src/components/GuidedTour/Overview.js +8 -8
  44. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  45. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +4 -4
  46. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  47. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  48. package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -2
  49. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  50. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +2 -2
  51. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  52. package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
  53. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  54. package/dist/admin/admin/src/components/Layouts/Layout.js +4 -4
  55. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  56. package/dist/admin/admin/src/components/LeftMenu.js +3 -3
  57. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  58. package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
  59. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  60. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +4 -4
  61. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  62. package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
  63. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  64. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +3 -3
  65. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  66. package/dist/admin/admin/src/components/MainNav/NavLink.js +8 -8
  67. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  68. package/dist/admin/admin/src/components/MainNav/NavUser.js +7 -7
  69. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  70. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +3 -3
  71. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  72. package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
  73. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  74. package/dist/admin/admin/src/components/ResizeIndicator.js +6 -6
  75. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  76. package/dist/admin/admin/src/components/SubNav.js +11 -9
  77. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  78. package/dist/admin/admin/src/components/SubNav.mjs +4 -2
  79. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  80. package/dist/admin/admin/src/components/Table.js +9 -5
  81. package/dist/admin/admin/src/components/Table.js.map +1 -1
  82. package/dist/admin/admin/src/components/Table.mjs +6 -2
  83. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  84. package/dist/admin/admin/src/components/Theme.js +2 -2
  85. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  86. package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
  87. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  88. package/dist/admin/admin/src/components/UpsellBanner.js +3 -3
  89. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  90. package/dist/admin/admin/src/components/WidgetRoot.js +4 -7
  91. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  92. package/dist/admin/admin/src/components/WidgetRoot.mjs +1 -1
  93. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  94. package/dist/admin/admin/src/components/Widgets.js +5 -5
  95. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  96. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  97. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  98. package/dist/admin/admin/src/core/apis/Widgets.js +1 -1
  99. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  100. package/dist/admin/admin/src/core/apis/Widgets.mjs +1 -1
  101. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  102. package/dist/admin/admin/src/core/store/configure.js.map +1 -1
  103. package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
  104. package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
  105. package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
  106. package/dist/admin/admin/src/features/Tracking.js +3 -1
  107. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  108. package/dist/admin/admin/src/features/Tracking.mjs +3 -1
  109. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  110. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  111. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  112. package/dist/admin/admin/src/hooks/useMediaQuery.js +4 -4
  113. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  114. package/dist/admin/admin/src/hooks/useMenu.js +5 -3
  115. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  116. package/dist/admin/admin/src/hooks/useMenu.mjs +5 -3
  117. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  118. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  119. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  120. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  121. package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
  122. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -1
  123. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  124. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -1
  125. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  126. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
  127. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  128. package/dist/admin/admin/src/pages/Auth/components/Register.js +17 -9
  129. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  130. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +15 -7
  131. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  132. package/dist/admin/admin/src/pages/Home/HomePage.js +2 -2
  133. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +3 -6
  135. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  136. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
  137. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
  138. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +4 -8
  139. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
  141. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  142. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +4 -8
  143. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  144. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
  145. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +2 -2
  147. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  148. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +2 -2
  150. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
  152. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +2 -2
  154. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
  156. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
  158. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +0 -2
  162. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +0 -2
  164. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
  166. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
  168. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
  170. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
  172. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -3
  174. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
  176. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js +2 -2
  178. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
  180. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
  182. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
  186. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
  188. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
  190. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  192. package/dist/admin/admin/src/translations/ja.json.js +693 -687
  193. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  194. package/dist/admin/admin/src/translations/ja.json.mjs +693 -687
  195. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  196. package/dist/admin/admin/src/translations/pl.json.js +22 -0
  197. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  198. package/dist/admin/admin/src/translations/pl.json.mjs +22 -0
  199. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  200. package/dist/admin/admin/src/utils/arrays.js.map +1 -1
  201. package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
  202. package/dist/admin/admin/src/utils/baseQuery.js +1 -1
  203. package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
  204. package/dist/admin/admin/src/utils/baseQuery.mjs +1 -1
  205. package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
  206. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  207. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  208. package/dist/admin/admin/src/utils/objects.js +43 -11
  209. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  210. package/dist/admin/admin/src/utils/objects.mjs +43 -11
  211. package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
  212. package/dist/admin/admin/src/utils/once.js.map +1 -1
  213. package/dist/admin/admin/src/utils/once.mjs.map +1 -1
  214. package/dist/admin/admin/src/utils/rulesEngine.js +2 -1
  215. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  216. package/dist/admin/admin/src/utils/rulesEngine.mjs +2 -1
  217. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  218. package/dist/admin/admin/src/utils/shims.js.map +1 -1
  219. package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
  220. package/dist/admin/admin/src/utils/widgetVisibility.js +16 -1
  221. package/dist/admin/admin/src/utils/widgetVisibility.js.map +1 -1
  222. package/dist/admin/admin/src/utils/widgetVisibility.mjs +14 -2
  223. package/dist/admin/admin/src/utils/widgetVisibility.mjs.map +1 -1
  224. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +2 -2
  225. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  226. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +2 -2
  227. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  228. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs +2 -2
  229. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  230. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
  231. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  232. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
  233. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  234. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
  235. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  236. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +3 -3
  237. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  238. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  239. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  240. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  241. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  242. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  246. package/dist/admin/src/StrapiApp.d.ts +2 -2
  247. package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +2 -1
  248. package/dist/admin/src/components/Form.d.ts +14 -12
  249. package/dist/admin/src/components/FormInputs/Renderer.d.ts +1 -1
  250. package/dist/admin/src/components/GuidedTour/Steps/Step.d.ts +1 -1
  251. package/dist/admin/src/components/SubNav.d.ts +1 -1
  252. package/dist/admin/src/components/Table.d.ts +3 -2
  253. package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
  254. package/dist/admin/src/core/utils/createHook.d.ts +6 -6
  255. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  256. package/dist/admin/src/hooks/useMenu.d.ts +1 -1
  257. package/dist/admin/src/hooks/useQueryParams.d.ts +2 -1
  258. package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -1
  259. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.d.ts +1 -1
  260. package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
  261. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  262. package/dist/admin/src/services/admin.d.ts +6 -6
  263. package/dist/admin/src/services/api.d.ts +1 -1
  264. package/dist/admin/src/services/apiTokens.d.ts +2 -2
  265. package/dist/admin/src/services/auth.d.ts +12 -12
  266. package/dist/admin/src/services/contentApi.d.ts +1 -1
  267. package/dist/admin/src/services/contentManager.d.ts +1 -1
  268. package/dist/admin/src/services/homepage.d.ts +3 -3
  269. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  270. package/dist/admin/src/services/users.d.ts +8 -8
  271. package/dist/admin/src/services/webhooks.d.ts +2 -2
  272. package/dist/admin/src/utils/arrays.d.ts +1 -1
  273. package/dist/admin/src/utils/baseQuery.d.ts +1 -1
  274. package/dist/admin/src/utils/getFetchClient.d.ts +7 -7
  275. package/dist/admin/src/utils/objects.d.ts +6 -4
  276. package/dist/admin/src/utils/once.d.ts +1 -1
  277. package/dist/admin/src/utils/widgetVisibility.d.ts +11 -0
  278. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/tableHeaders.d.ts +2 -1
  279. package/dist/ee/admin/src/services/ai.d.ts +3 -3
  280. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  281. package/dist/server/server/src/services/permission/sections-builder/handlers.js +9 -2
  282. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  283. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +9 -2
  284. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  285. package/dist/server/server/src/services/role.js +5 -1
  286. package/dist/server/server/src/services/role.js.map +1 -1
  287. package/dist/server/server/src/services/role.mjs +5 -1
  288. package/dist/server/server/src/services/role.mjs.map +1 -1
  289. package/dist/server/server/src/validation/common-validators.js +19 -11
  290. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  291. package/dist/server/server/src/validation/common-validators.mjs +19 -11
  292. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  293. package/dist/server/server/src/validation/permission.js +1 -1
  294. package/dist/server/server/src/validation/permission.js.map +1 -1
  295. package/dist/server/server/src/validation/permission.mjs +1 -1
  296. package/dist/server/server/src/validation/permission.mjs.map +1 -1
  297. package/dist/server/server/src/validation/role.js +2 -2
  298. package/dist/server/server/src/validation/role.js.map +1 -1
  299. package/dist/server/server/src/validation/role.mjs +2 -2
  300. package/dist/server/server/src/validation/role.mjs.map +1 -1
  301. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  302. package/dist/server/src/services/role.d.ts.map +1 -1
  303. package/dist/server/src/validation/common-validators.d.ts.map +1 -1
  304. package/dist/server/src/validation/role.d.ts.map +1 -1
  305. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification.js","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,kBAAAA,GAAqB,gCAAA;AAE3B,MAAMC,uBAAAA,GAA0B,yCAAA;AAChC,MAAMC,gBAAAA,GAAmB,wCAAA;MAEZC,2BAAAA,GAA8B,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,iCAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAAA,EAAW;AACxB,YAAA;AACF,QAAA;AAEA,QAAA,MAAMY,4BACJ,CAACC,sBAAAA,CAAMN,cAAAA,CAAAA,IACP,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAAA,KAAuB,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAA,EAAc;YACvCS,gBAAAA,GAAmB,QAAA;AACrB,QAAA;AAEA,QAAA,IAAIL,yBAAAA,EAA2B;YAC7BV,kBAAAA,CAAmB;gBACjBO,IAAAA,EAAMQ,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAAA,CACP;oBACEuB,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aAAAA,CACL;oBACEuB,EAAAA,EAAI,6CAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAAA,EAAM;oBACJC,GAAAA,EAAKd,IAAAA,KAAS,SAAShB,uBAAAA,GAA0BC,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;wBACnBuB,EAAAA,EAAI,yCAAA;wBACJC,cAAAA,EAAgBX,IAAAA,KAAS,SAAS,eAAA,GAAkB;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAAA,EAAiB,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAAA,CAAOC,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification.js","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SEATS_URL = 'https://billing.strapi.io';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,kBAAAA,GAAqB,gCAAA;AAE3B,MAAMC,uBAAAA,GAA0B,wBAAA;AAChC,MAAMC,gBAAAA,GAAmB,2BAAA;MAEZC,2BAAAA,GAA8B,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,iCAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAAA,EAAW;AACxB,YAAA;AACF,QAAA;AAEA,QAAA,MAAMY,4BACJ,CAACC,sBAAAA,CAAMN,cAAAA,CAAAA,IACP,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAAA,KAAuB,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAA,EAAc;YACvCS,gBAAAA,GAAmB,QAAA;AACrB,QAAA;AAEA,QAAA,IAAIL,yBAAAA,EAA2B;YAC7BV,kBAAAA,CAAmB;gBACjBO,IAAAA,EAAMQ,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAAA,CACP;oBACEuB,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aAAAA,CACL;oBACEuB,EAAAA,EAAI,6CAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAAA,EAAM;oBACJC,GAAAA,EAAKd,IAAAA,KAAS,SAAShB,uBAAAA,GAA0BC,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;wBACnBuB,EAAAA,EAAI,yCAAA;wBACJC,cAAAA,EAAgBX,IAAAA,KAAS,SAAS,eAAA,GAAkB;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAAA,EAAiB,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAAA,CAAOC,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
@@ -6,8 +6,8 @@ import { useNotification } from '../../../../admin/src/features/Notifications.mj
6
6
  import { useLicenseLimits } from './useLicenseLimits.mjs';
7
7
 
8
8
  const STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';
9
- const BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';
10
- const MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';
9
+ const BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';
10
+ const MANAGE_SEATS_URL = 'https://billing.strapi.io';
11
11
  const useLicenseLimitNotification = ()=>{
12
12
  const { formatMessage } = useIntl();
13
13
  const { license, isError, isLoading } = useLicenseLimits();
@@ -1 +1 @@
1
- {"version":3,"file":"useLicenseLimitNotification.mjs","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;AAeA,MAAMA,kBAAAA,GAAqB,gCAAA;AAE3B,MAAMC,uBAAAA,GAA0B,yCAAA;AAChC,MAAMC,gBAAAA,GAAmB,wCAAA;MAEZC,2BAAAA,GAA8B,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,gBAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAAA,EAAW;AACxB,YAAA;AACF,QAAA;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,cAAAA,CAAAA,IACP,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAAA,KAAuB,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAA,EAAc;YACvCS,gBAAAA,GAAmB,QAAA;AACrB,QAAA;AAEA,QAAA,IAAIL,yBAAAA,EAA2B;YAC7BV,kBAAAA,CAAmB;gBACjBO,IAAAA,EAAMQ,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAAA,CACP;oBACEuB,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aAAAA,CACL;oBACEuB,EAAAA,EAAI,6CAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAAA,EAAM;oBACJC,GAAAA,EAAKd,IAAAA,KAAS,SAAShB,uBAAAA,GAA0BC,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;wBACnBuB,EAAAA,EAAI,yCAAA;wBACJC,cAAAA,EAAgBX,IAAAA,KAAS,SAAS,eAAA,GAAkB;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAAA,EAAiB,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAAA,CAAOC,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useLicenseLimitNotification.mjs","sources":["../../../../../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SEATS_URL = 'https://billing.strapi.io';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, type } = license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n licenseLimitStatus === 'OVER_LIMIT';\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: type === 'gold' ? BILLING_SELF_HOSTED_URL : MANAGE_SEATS_URL,\n label: formatMessage({\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage: type === 'gold' ? 'Contact sales' : 'Manage seats',\n }),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isError,\n type,\n ]);\n};\n"],"names":["STORAGE_KEY_PREFIX","BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","useLicenseLimitNotification","formatMessage","useIntl","license","isError","isLoading","useLicenseLimits","toggleNotification","useNotification","pathname","useLocation","enforcementUserCount","permittedSeats","licenseLimitStatus","type","React","useEffect","shouldDisplayNotification","isNil","window","sessionStorage","getItem","notificationType","message","id","defaultMessage","title","link","url","label","blockTransition","onClose","setItem"],"mappings":";;;;;;;AAeA,MAAMA,kBAAAA,GAAqB,gCAAA;AAE3B,MAAMC,uBAAAA,GAA0B,wBAAA;AAChC,MAAMC,gBAAAA,GAAmB,2BAAA;MAEZC,2BAAAA,GAA8B,IAAA;IACzC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,gBAAAA,EAAAA;IACxC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;IAErB,MAAM,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,IAAI,EAAE,GAAGX,OAAAA,IAAW,EAAC;AAEvFY,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIZ,WAAWC,SAAAA,EAAW;AACxB,YAAA;AACF,QAAA;AAEA,QAAA,MAAMY,4BACJ,CAACC,KAAAA,CAAMN,cAAAA,CAAAA,IACP,CAACO,OAAOC,cAAc,CAACC,OAAO,CAAC,GAAGxB,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,KAClEI,kBAAAA,KAAuB,YAAA;QAEzB,IAAIS,gBAAAA;AAEJ,QAAA,IAAIT,uBAAuB,YAAA,EAAc;YACvCS,gBAAAA,GAAmB,QAAA;AACrB,QAAA;AAEA,QAAA,IAAIL,yBAAAA,EAA2B;YAC7BV,kBAAAA,CAAmB;gBACjBO,IAAAA,EAAMQ,gBAAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAAA,CACP;oBACEuB,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AAAEZ,oBAAAA;AAAmB,iBAAA,CAAA;AAEvBa,gBAAAA,KAAAA,EAAOzB,aAAAA,CACL;oBACEuB,EAAAA,EAAI,6CAAA;oBACJC,cAAAA,EACE;iBACJ,EACA;AACEZ,oBAAAA,kBAAAA;AACAF,oBAAAA,oBAAAA;AACAC,oBAAAA;AACF,iBAAA,CAAA;gBAEFe,IAAAA,EAAM;oBACJC,GAAAA,EAAKd,IAAAA,KAAS,SAAShB,uBAAAA,GAA0BC,gBAAAA;AACjD8B,oBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;wBACnBuB,EAAAA,EAAI,yCAAA;wBACJC,cAAAA,EAAgBX,IAAAA,KAAS,SAAS,eAAA,GAAkB;AACtD,qBAAA;AACF,iBAAA;gBACAgB,eAAAA,EAAiB,IAAA;AACjBC,gBAAAA,OAAAA,CAAAA,GAAAA;oBACEZ,MAAAA,CAAOC,cAAc,CAACY,OAAO,CAAC,GAAGnC,kBAAAA,CAAmB,CAAC,EAAEY,QAAAA,CAAAA,CAAU,EAAE,MAAA,CAAA;AACrE,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AACDF,QAAAA,kBAAAA;AACAJ,QAAAA,OAAAA;AACAM,QAAAA,QAAAA;AACAR,QAAAA,aAAAA;AACAI,QAAAA,SAAAA;AACAO,QAAAA,cAAAA;AACAC,QAAAA,kBAAAA;AACAF,QAAAA,oBAAAA;AACAP,QAAAA,OAAAA;AACAU,QAAAA;AACD,KAAA,CAAA;AACH;;;;"}
@@ -3,12 +3,12 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
- var styled = require('styled-components');
6
+ var styledComponents = require('styled-components');
7
7
  var Login = require('../../../../../../admin/src/pages/Auth/components/Login.js');
8
8
  var auth = require('../../../../../../admin/src/services/auth.js');
9
9
  var SSOProviders = require('./SSOProviders.js');
10
10
 
11
- const DividerFull = styled.styled(designSystem.Divider)`
11
+ const DividerFull = styledComponents.styled(designSystem.Divider)`
12
12
  flex: 1;
13
13
  `;
14
14
  const LoginEE = (loginProps)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Login.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/Login.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Login, LoginProps } from '../../../../../../admin/src/pages/Auth/components/Login';\nimport { useGetProvidersQuery } from '../../../../../../admin/src/services/auth';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nconst LoginEE = (loginProps: LoginProps) => {\n const { formatMessage } = useIntl();\n const { isLoading, data: providers = [] } = useGetProvidersQuery(undefined, {\n skip: !window.strapi.features.isEnabled(window.strapi.features.SSO),\n });\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Login {...loginProps} />;\n }\n\n return (\n <Login {...loginProps}>\n <Box paddingTop={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.divider' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <SSOProviders providers={providers} displayAllProviders={false} />\n </Flex>\n </Box>\n </Login>\n );\n};\n\nexport { LoginEE };\n"],"names":["DividerFull","styled","Divider","LoginEE","loginProps","formatMessage","useIntl","isLoading","data","providers","useGetProvidersQuery","undefined","skip","window","strapi","features","isEnabled","SSO","length","_jsx","Login","Box","paddingTop","_jsxs","Flex","direction","alignItems","gap","paddingLeft","paddingRight","Typography","variant","textColor","id","SSOProviders","displayAllProviders"],"mappings":";;;;;;;;;;AASA,MAAMA,WAAAA,GAAcC,aAAAA,CAAOC,oBAAAA,CAAQ;;AAEnC,CAAC;AAED,MAAMC,UAAU,CAACC,UAAAA,GAAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAEC,IAAAA,EAAMC,YAAY,EAAE,EAAE,GAAGC,yBAAAA,CAAqBC,SAAAA,EAAW;AAC1EC,QAAAA,IAAAA,EAAM,CAACC,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACE,GAAG;AACpE,KAAA,CAAA;IAEA,IACE,CAACJ,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACE,GAAG,CAAA,IAC3D,CAACV,aAAaE,SAAAA,CAAUS,MAAM,KAAK,CAAA,EACpC;AACA,QAAA,qBAAOC,cAAA,CAACC,WAAAA,EAAAA;AAAO,YAAA,GAAGhB;;AACpB,IAAA;AAEA,IAAA,qBACEe,cAAA,CAACC,WAAAA,EAAAA;AAAO,QAAA,GAAGhB,UAAU;AACnB,QAAA,QAAA,gBAAAe,cAAA,CAACE,gBAAAA,EAAAA;YAAIC,UAAAA,EAAY,CAAA;AACf,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;;kCACjDJ,eAAA,CAACC,iBAAAA,EAAAA;;0CACCL,cAAA,CAACnB,WAAAA,EAAAA,EAAAA,CAAAA;0CACDmB,cAAA,CAACE,gBAAAA,EAAAA;gCAAIO,WAAAA,EAAa,CAAA;gCAAGC,YAAAA,EAAc,CAAA;AACjC,gCAAA,QAAA,gBAAAV,cAAA,CAACW,uBAAAA,EAAAA;oCAAWC,OAAAA,EAAQ,OAAA;oCAAQC,SAAAA,EAAU,YAAA;8CACnC3B,aAAAA,CAAc;wCAAE4B,EAAAA,EAAI;AAAyB,qCAAA;;;0CAGlDd,cAAA,CAACnB,WAAAA,EAAAA,EAAAA;;;kCAEHmB,cAAA,CAACe,yBAAAA,EAAAA;wBAAazB,SAAAA,EAAWA,SAAAA;wBAAW0B,mBAAAA,EAAqB;;;;;;AAKnE;;;;"}
1
+ {"version":3,"file":"Login.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/Login.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Login, LoginProps } from '../../../../../../admin/src/pages/Auth/components/Login';\nimport { useGetProvidersQuery } from '../../../../../../admin/src/services/auth';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nconst LoginEE = (loginProps: LoginProps) => {\n const { formatMessage } = useIntl();\n const { isLoading, data: providers = [] } = useGetProvidersQuery(undefined, {\n skip: !window.strapi.features.isEnabled(window.strapi.features.SSO),\n });\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Login {...loginProps} />;\n }\n\n return (\n <Login {...loginProps}>\n <Box paddingTop={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.divider' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <SSOProviders providers={providers} displayAllProviders={false} />\n </Flex>\n </Box>\n </Login>\n );\n};\n\nexport { LoginEE };\n"],"names":["DividerFull","styled","Divider","LoginEE","loginProps","formatMessage","useIntl","isLoading","data","providers","useGetProvidersQuery","undefined","skip","window","strapi","features","isEnabled","SSO","length","_jsx","Login","Box","paddingTop","_jsxs","Flex","direction","alignItems","gap","paddingLeft","paddingRight","Typography","variant","textColor","id","SSOProviders","displayAllProviders"],"mappings":";;;;;;;;;;AASA,MAAMA,WAAAA,GAAcC,uBAAAA,CAAOC,oBAAAA,CAAQ;;AAEnC,CAAC;AAED,MAAMC,UAAU,CAACC,UAAAA,GAAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,SAAS,EAAEC,IAAAA,EAAMC,YAAY,EAAE,EAAE,GAAGC,yBAAAA,CAAqBC,SAAAA,EAAW;AAC1EC,QAAAA,IAAAA,EAAM,CAACC,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACE,GAAG;AACpE,KAAA,CAAA;IAEA,IACE,CAACJ,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACE,GAAG,CAAA,IAC3D,CAACV,aAAaE,SAAAA,CAAUS,MAAM,KAAK,CAAA,EACpC;AACA,QAAA,qBAAOC,cAAA,CAACC,WAAAA,EAAAA;AAAO,YAAA,GAAGhB;;AACpB,IAAA;AAEA,IAAA,qBACEe,cAAA,CAACC,WAAAA,EAAAA;AAAO,QAAA,GAAGhB,UAAU;AACnB,QAAA,QAAA,gBAAAe,cAAA,CAACE,gBAAAA,EAAAA;YAAIC,UAAAA,EAAY,CAAA;AACf,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;;kCACjDJ,eAAA,CAACC,iBAAAA,EAAAA;;0CACCL,cAAA,CAACnB,WAAAA,EAAAA,EAAAA,CAAAA;0CACDmB,cAAA,CAACE,gBAAAA,EAAAA;gCAAIO,WAAAA,EAAa,CAAA;gCAAGC,YAAAA,EAAc,CAAA;AACjC,gCAAA,QAAA,gBAAAV,cAAA,CAACW,uBAAAA,EAAAA;oCAAWC,OAAAA,EAAQ,OAAA;oCAAQC,SAAAA,EAAU,YAAA;8CACnC3B,aAAAA,CAAc;wCAAE4B,EAAAA,EAAI;AAAyB,qCAAA;;;0CAGlDd,cAAA,CAACnB,WAAAA,EAAAA,EAAAA;;;kCAEHmB,cAAA,CAACe,yBAAAA,EAAAA;wBAAazB,SAAAA,EAAWA,SAAAA;wBAAW0B,mBAAAA,EAAqB;;;;;;AAKnE;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
  var reactRouterDom = require('react-router-dom');
7
- var styled = require('styled-components');
7
+ var styledComponents = require('styled-components');
8
8
  var UnauthenticatedLogo = require('../../../../../../admin/src/components/UnauthenticatedLogo.js');
9
9
  var UnauthenticatedLayout = require('../../../../../../admin/src/layouts/UnauthenticatedLayout.js');
10
10
  var auth = require('../../../../../../admin/src/services/auth.js');
@@ -119,7 +119,7 @@ const Providers = ()=>{
119
119
  })
120
120
  });
121
121
  };
122
- const DividerFull = styled.styled(designSystem.Divider)`
122
+ const DividerFull = styledComponents.styled(designSystem.Divider)`
123
123
  flex: 1;
124
124
  `;
125
125
 
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/Providers.tsx"],"sourcesContent":["import { Box, Button, Divider, Flex, Loader, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Logo } from '../../../../../../admin/src/components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../../../admin/src/layouts/UnauthenticatedLayout';\nimport { useGetProvidersQuery } from '../../../../../../admin/src/services/auth';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst Providers = () => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { isLoading, data: providers = [] } = useGetProvidersQuery(undefined, {\n skip: !window.strapi.features.isEnabled(window.strapi.features.SSO),\n });\n\n const handleClick = () => {\n navigate('/auth/login');\n };\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Navigate to=\"/auth/login\" />;\n }\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({ id: 'Auth.form.welcome.title' })}\n </Typography>\n </Box>\n <Box paddingBottom={7}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.subtitle' })}\n </Typography>\n </Box>\n </Column>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>{formatMessage({ id: 'Auth.login.sso.loading' })}</Loader>\n </Flex>\n ) : (\n <SSOProviders providers={providers} />\n )}\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'or' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <Button fullWidth size=\"L\" onClick={handleClick}>\n {formatMessage({ id: 'Auth.form.button.login.strapi' })}\n </Button>\n </Flex>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/forgot-password\">\n <Typography variant=\"pi\">\n {formatMessage({ id: 'Auth.link.forgot-password' })}\n </Typography>\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nexport { Providers };\n"],"names":["Providers","navigate","useNavigate","formatMessage","useIntl","isLoading","data","providers","useGetProvidersQuery","undefined","skip","window","strapi","features","isEnabled","SSO","handleClick","length","_jsx","Navigate","to","UnauthenticatedLayout","_jsxs","Main","LayoutContent","Column","Logo","Box","paddingTop","paddingBottom","Typography","tag","variant","id","textColor","Flex","direction","alignItems","gap","justifyContent","Loader","SSOProviders","DividerFull","paddingLeft","paddingRight","Button","fullWidth","size","onClick","Link","NavLink","styled","Divider"],"mappings":"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"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/Providers.tsx"],"sourcesContent":["import { Box, Button, Divider, Flex, Loader, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { Logo } from '../../../../../../admin/src/components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../../../admin/src/layouts/UnauthenticatedLayout';\nimport { useGetProvidersQuery } from '../../../../../../admin/src/services/auth';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst Providers = () => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { isLoading, data: providers = [] } = useGetProvidersQuery(undefined, {\n skip: !window.strapi.features.isEnabled(window.strapi.features.SSO),\n });\n\n const handleClick = () => {\n navigate('/auth/login');\n };\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Navigate to=\"/auth/login\" />;\n }\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({ id: 'Auth.form.welcome.title' })}\n </Typography>\n </Box>\n <Box paddingBottom={7}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.subtitle' })}\n </Typography>\n </Box>\n </Column>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>{formatMessage({ id: 'Auth.login.sso.loading' })}</Loader>\n </Flex>\n ) : (\n <SSOProviders providers={providers} />\n )}\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'or' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <Button fullWidth size=\"L\" onClick={handleClick}>\n {formatMessage({ id: 'Auth.form.button.login.strapi' })}\n </Button>\n </Flex>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/forgot-password\">\n <Typography variant=\"pi\">\n {formatMessage({ id: 'Auth.link.forgot-password' })}\n </Typography>\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nexport { Providers };\n"],"names":["Providers","navigate","useNavigate","formatMessage","useIntl","isLoading","data","providers","useGetProvidersQuery","undefined","skip","window","strapi","features","isEnabled","SSO","handleClick","length","_jsx","Navigate","to","UnauthenticatedLayout","_jsxs","Main","LayoutContent","Column","Logo","Box","paddingTop","paddingBottom","Typography","tag","variant","id","textColor","Flex","direction","alignItems","gap","justifyContent","Loader","SSOProviders","DividerFull","paddingLeft","paddingRight","Button","fullWidth","size","onClick","Link","NavLink","styled","Divider"],"mappings":"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"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
  var reactRouterDom = require('react-router-dom');
7
- var styled = require('styled-components');
7
+ var styledComponents = require('styled-components');
8
8
 
9
9
  const SSOProviders = ({ providers, displayAllProviders })=>{
10
10
  const { formatMessage } = reactIntl.useIntl();
@@ -64,7 +64,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
64
64
  }, provider.uid))
65
65
  });
66
66
  };
67
- const SSOProvidersWrapper = styled.styled(designSystem.Flex)`
67
+ const SSOProvidersWrapper = styledComponents.styled(designSystem.Flex)`
68
68
  & a:not(:first-child):not(:last-child) {
69
69
  margin: 0 ${({ theme })=>theme.spaces[2]};
70
70
  }
@@ -91,7 +91,7 @@ const SSOProviderButton = ({ provider })=>{
91
91
  })
92
92
  });
93
93
  };
94
- const SSOButton = styled.styled.a`
94
+ const SSOButton = styledComponents.styled.a`
95
95
  width: 13.6rem;
96
96
  display: flex;
97
97
  justify-content: center;
@@ -1 +1 @@
1
- {"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n\n ${({ theme }) => theme.breakpoints.initial} {\n width: 100%;\n }\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","xs","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600","breakpoints","initial"],"mappings":"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"}
1
+ {"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n\n ${({ theme }) => theme.breakpoints.initial} {\n width: 100%;\n }\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","xs","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600","breakpoints","initial"],"mappings":"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"}
@@ -3,17 +3,17 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
- var styled = require('styled-components');
6
+ var styledComponents = require('styled-components');
7
7
  var ai = require('../../../../../services/ai.js');
8
8
 
9
- const StyledProgressBar = styled.styled(designSystem.ProgressBar)`
9
+ const StyledProgressBar = styledComponents.styled(designSystem.ProgressBar)`
10
10
  width: 100%;
11
11
  background-color: ${({ theme })=>theme.colors.neutral200};
12
12
  > div {
13
13
  background-color: ${({ theme })=>theme.colors.neutral700};
14
14
  }
15
15
  `;
16
- const StyledGridItem = styled.styled(designSystem.Grid.Item)`
16
+ const StyledGridItem = styledComponents.styled(designSystem.Grid.Item)`
17
17
  ${({ theme })=>theme.breakpoints.large} {
18
18
  grid-column: 7 / 13;
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIUsage.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAiUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAiUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAiUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
1
+ {"version":3,"file":"AIUsage.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.tsx"],"sourcesContent":["import { Flex, Typography, Grid, ProgressBar } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetAiUsageQuery } from '../../../../../services/ai';\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral200};\n > div {\n background-color: ${({ theme }) => theme.colors.neutral700};\n }\n`;\n\nconst StyledGridItem = styled(Grid.Item)`\n ${({ theme }) => theme.breakpoints.large} {\n grid-column: 7 / 13;\n }\n`;\n\nexport const AIUsage = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetAiUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n if (isLoading) {\n return null;\n }\n\n if (error || !data) {\n return null;\n }\n\n if (!data.subscription?.cmsAiEnabled) {\n return null;\n }\n\n // Calculate remaining credits and total\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n const overage = usedCredits - totalCredits;\n const percentRemaining = (usedCredits / totalCredits) * 100;\n const percentOverage = (usedCredits / maxCredits) * 100;\n\n const isInOverages = overage > 0 && maxCredits !== totalCredits;\n\n return (\n <StyledGridItem col={6} s={12} direction=\"column\" alignItems=\"start\" gap={2}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.ai-usage',\n defaultMessage: 'AI Usage',\n })}\n </Typography>\n <Flex gap={2} direction=\"column\" alignItems=\"flex-start\">\n {!isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentRemaining} size=\"M\" />\n </Flex>\n <Typography variant=\"omega\">\n {`${usedCredits.toFixed(2)} credits used from ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n {isInOverages && (\n <>\n <Flex width=\"100%\">\n <StyledProgressBar value={percentOverage} size=\"M\" color=\"danger\" />\n </Flex>\n <Typography variant=\"omega\" textColor=\"danger600\">\n {`${overage.toFixed(2)} credits used above the ${totalCredits} credits available in your plan`}\n </Typography>\n </>\n )}\n </Flex>\n </StyledGridItem>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral200","neutral700","StyledGridItem","Grid","Item","breakpoints","large","AIUsage","formatMessage","useIntl","data","isLoading","error","useGetAiUsageQuery","undefined","refetchOnMountOrArgChange","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","overage","percentRemaining","percentOverage","isInOverages","_jsxs","col","s","direction","alignItems","gap","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","_Fragment","width","value","size","toFixed","color"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks) =>\n (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ) as any,\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SUBSCRIPTION_URL} isExternal endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage subscription',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SUBSCRIPTION_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","target","isExternal"],"mappings":"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"}
1
+ {"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks: ReactNode) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SUBSCRIPTION_URL} isExternal endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage subscription',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SUBSCRIPTION_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","target","isExternal"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks) =>\n (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ) as any,\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SUBSCRIPTION_URL} isExternal endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage subscription',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SUBSCRIPTION_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","target","isExternal"],"mappings":"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"}
1
+ {"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'mailto:sales@strapi.io';\nconst MANAGE_SUBSCRIPTION_URL = 'https://billing.strapi.io';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks: ReactNode) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SUBSCRIPTION_URL} isExternal endIcon={<ExternalLink />} target=\"_blank\">\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage subscription',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SUBSCRIPTION_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","target","isExternal"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxFilter.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,aAAAA,CAASJ,KAAAA,CAAMK,IAAI,CAAA;AACjC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,cAAA,CAACC,qBAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,cAAA,CAACO,2BAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"ComboboxFilter.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,aAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,cAAA,CAACC,qBAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,cAAA,CAACO,2BAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxFilter.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,QAAAA,CAASJ,KAAAA,CAAMK,IAAI,CAAA;AACjC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,GAAA,CAACC,QAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,GAAA,CAACO,cAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"ComboboxFilter.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,QAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,GAAA,CAACC,QAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,GAAA,CAACO,cAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var reactIntl = require('react-intl');
7
- var styled = require('styled-components');
7
+ var styledComponents = require('styled-components');
8
8
  var Notifications = require('../../../../../../../../admin/src/features/Notifications.js');
9
9
  var useAPIErrorHandler = require('../../../../../../../../admin/src/hooks/useAPIErrorHandler.js');
10
10
  var auditLogs = require('../../../../../services/auditLogs.js');
@@ -167,7 +167,7 @@ const ActionBody = ({ isLoading, data, formattedDate })=>{
167
167
  ]
168
168
  });
169
169
  };
170
- const Payload = styled.styled(designSystem.JSONInput)`
170
+ const Payload = styledComponents.styled(designSystem.JSONInput)`
171
171
  max-width: 100%;
172
172
  overflow: scroll;
173
173
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n Modal as DSModal,\n Typography,\n Breadcrumbs,\n Crumb,\n Field,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <DSModal.Root defaultOpen onOpenChange={handleClose}>\n <DSModal.Content>\n <DSModal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </DSModal.Header>\n <DSModal.Body>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </DSModal.Body>\n </DSModal.Content>\n </DSModal.Root>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid.Root\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid.Root>\n <Field.Root>\n <Field.Label>\n {formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n </Field.Label>\n <Payload value={JSON.stringify(payload, null, 2)} disabled />\n </Field.Root>\n </>\n );\n};\n\nconst Payload = styled(JSONInput)`\n max-width: 100%;\n overflow: scroll;\n`;\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n"],"names":["Modal","handleClose","logId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","data","error","isLoading","useGetAuditLogQuery","React","useEffect","type","message","formatTimeStamp","useFormatTimeStamp","formattedDate","date","_jsx","DSModal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","id","Crumb","isCurrent","Body","ActionBody","formatMessage","useIntl","Flex","padding","justifyContent","alignItems","Loader","action","user","payload","_Fragment","Box","marginBottom","Typography","variant","defaultMessage","Grid","gap","gridCols","paddingTop","paddingBottom","paddingLeft","paddingRight","background","hasRadius","ActionItem","actionLabel","actionName","getDefaultMessage","model","displayName","toString","Field","Label","Payload","value","JSON","stringify","disabled","styled","JSONInput","direction","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n Modal as DSModal,\n Typography,\n Breadcrumbs,\n Crumb,\n Field,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <DSModal.Root defaultOpen onOpenChange={handleClose}>\n <DSModal.Content>\n <DSModal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </DSModal.Header>\n <DSModal.Body>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </DSModal.Body>\n </DSModal.Content>\n </DSModal.Root>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid.Root\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid.Root>\n <Field.Root>\n <Field.Label>\n {formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n </Field.Label>\n <Payload value={JSON.stringify(payload, null, 2)} disabled />\n </Field.Root>\n </>\n );\n};\n\nconst Payload = styled(JSONInput)`\n max-width: 100%;\n overflow: scroll;\n`;\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n"],"names":["Modal","handleClose","logId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","data","error","isLoading","useGetAuditLogQuery","React","useEffect","type","message","formatTimeStamp","useFormatTimeStamp","formattedDate","date","_jsx","DSModal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","id","Crumb","isCurrent","Body","ActionBody","formatMessage","useIntl","Flex","padding","justifyContent","alignItems","Loader","action","user","payload","_Fragment","Box","marginBottom","Typography","variant","defaultMessage","Grid","gap","gridCols","paddingTop","paddingBottom","paddingLeft","paddingRight","background","hasRadius","ActionItem","actionLabel","actionName","getDefaultMessage","model","displayName","toString","Field","Label","Payload","value","JSON","stringify","disabled","styled","JSONInput","direction","textColor"],"mappings":"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"}