@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":"FreeTrialWelcomeModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":"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"}
1
+ {"version":3,"file":"FreeTrialWelcomeModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":"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"}
@@ -5,13 +5,13 @@ var designSystem = require('@strapi/design-system');
5
5
  var icons = require('@strapi/icons');
6
6
  var reactIntl = require('react-intl');
7
7
  var reactRouterDom = require('react-router-dom');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
  var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimits.js');
10
10
  var SubNav = require('../../../components/SubNav.js');
11
11
  var Tracking = require('../../../features/Tracking.js');
12
12
  var useSettingsMenu = require('../../../hooks/useSettingsMenu.js');
13
13
 
14
- const StyledBadge = styled.styled(designSystem.Badge)`
14
+ const StyledBadge = styledComponents.styled(designSystem.Badge)`
15
15
  border-radius: 50%;
16
16
  padding: ${({ theme })=>theme.spaces[2]};
17
17
  height: 2rem;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsNav.js","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsNav.js","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsNav.mjs","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsNav.mjs","sources":["../../../../../../../admin/src/pages/Settings/components/SettingsNav.tsx"],"sourcesContent":["import { Badge, Divider } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { SubNav } from '../../../components/SubNav';\nimport { useTracking } from '../../../features/Tracking';\nimport { useSettingsMenu } from '../../../hooks/useSettingsMenu';\n\ntype LinkId =\n | 'content-releases'\n | 'review-workflows'\n | 'sso'\n | 'auditLogs'\n | 'auditLogs-purchase-page';\n\ntype FeatureName = 'cms-content-releases' | 'review-workflows' | 'sso' | 'audit-logs';\n\nconst StyledBadge = styled(Badge)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[2]};\n height: 2rem;\n`;\n\nconst SettingsNav = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const { menu } = useSettingsMenu();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { license } = useLicenseLimits();\n\n const availableFeatureNames = license?.features.map((feature) => feature.name);\n\n const linksIdsToLicenseFeaturesNames: Record<LinkId, FeatureName> = {\n 'content-releases': 'cms-content-releases',\n 'review-workflows': 'review-workflows',\n sso: 'sso',\n auditLogs: 'audit-logs',\n 'auditLogs-purchase-page': 'audit-logs',\n };\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n id: link.id as LinkId,\n title: link.intlLabel,\n name: link.id,\n to: link.to.startsWith('/') ? link.to : `/settings/${link.to}`,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Sections>\n {sections.map((section) => (\n <SubNav.Section key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n label={formatMessage(link.intlLabel)}\n endAction={\n <>\n {link?.licenseOnly && (\n <Lightning\n fill={\n (availableFeatureNames || []).includes(\n linksIdsToLicenseFeaturesNames[link.id]\n )\n ? 'primary600'\n : 'neutral300'\n }\n width=\"1.5rem\"\n height=\"1.5rem\"\n />\n )}\n {link?.hasNotification && (\n <StyledBadge\n aria-label=\"Notification\"\n backgroundColor=\"primary600\"\n textColor=\"neutral0\"\n >\n 1\n </StyledBadge>\n )}\n </>\n }\n >\n {formatMessage(link.intlLabel)}\n </SubNav.Link>\n );\n })}\n </SubNav.Section>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { SettingsNav };\n"],"names":["StyledBadge","styled","Badge","theme","spaces","SettingsNav","isFullPage","menu","useSettingsMenu","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","license","useLicenseLimits","availableFeatureNames","features","map","feature","name","linksIdsToLicenseFeaturesNames","sso","auditLogs","filteredMenu","filter","section","links","every","link","isDisplayed","sections","title","intlLabel","id","to","startsWith","label","defaultMessage","handleClickOnLink","destination","from","_jsxs","SubNav","Main","aria-label","_Fragment","_jsx","Header","Divider","Content","Sections","Section","Link","onClick","endAction","licenseOnly","Lightning","fill","includes","width","height","hasNotification","backgroundColor","textColor"],"mappings":"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"}
@@ -5,7 +5,7 @@ var React = require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
  var ConfirmDialog = require('../../../../components/ConfirmDialog.js');
10
10
  var Tours = require('../../../../components/GuidedTour/Tours.js');
11
11
  var Layout = require('../../../../components/Layouts/Layout.js');
@@ -34,7 +34,7 @@ function _interopNamespace(e) {
34
34
 
35
35
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
36
36
 
37
- const ActionButton = styled.styled(designSystem.Button)`
37
+ const ActionButton = styledComponents.styled(designSystem.Button)`
38
38
  white-space: nowrap;
39
39
  `;
40
40
  const Regenerate = ({ onRegenerate, url })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"FormHead.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/FormHead.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Dialog, Flex, Tooltip } from '@strapi/design-system';\nimport { Check, ArrowClockwise, Eye, EyeStriked } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/transferTokens';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst ActionButton = styled(Button)`\n white-space: nowrap;\n`;\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <ActionButton\n startIcon={<ArrowClockwise />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n fullWidth\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </ActionButton>\n </Dialog.Trigger>\n\n <ConfirmDialog\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<ArrowClockwise />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n canShowToken?: boolean;\n setToken: (token: TToken) => void;\n toggleToken?: () => void;\n showToken?: boolean;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n toggleToken,\n showToken,\n canShowToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n toggleToken?.();\n };\n\n return (\n <Layouts.Header\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex width=\"100%\" gap={2} wrap={{ initial: 'wrap', medium: 'nowrap' }}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Flex width=\"100%\" gap={2}>\n {token?.id && toggleToken && canShowToken === true && (\n <tours.apiTokens.ViewAPIToken>\n <Tooltip\n label={\n !canShowToken &&\n formatMessage({\n id: 'Settings.tokens.encryptionKeyMissing',\n defaultMessage:\n 'In order to view the token, you need a valid encryption key in the admin configuration',\n })\n }\n >\n <ActionButton\n type=\"button\"\n startIcon={showToken ? <EyeStriked /> : <Eye />}\n variant=\"secondary\"\n onClick={() => toggleToken?.()}\n disabled={!canShowToken}\n fullWidth\n >\n {formatMessage({\n id: 'Settings.tokens.viewToken',\n defaultMessage: 'View token',\n })}\n </ActionButton>\n </Tooltip>\n </tours.apiTokens.ViewAPIToken>\n )}\n <ActionButton\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </ActionButton>\n </Flex>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton />\n </Box>\n }\n ellipsis\n />\n );\n};\n"],"names":["ActionButton","styled","Button","Regenerate","onRegenerate","url","formatMessage","useIntl","showConfirmDialog","setShowConfirmDialog","React","useState","isLoadingConfirmation","setIsLoadingConfirmation","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","regenerateToken","useRegenerateTokenMutation","regenerateData","res","type","message","error","data","accessKey","id","defaultMessage","handleConfirmRegeneration","_jsxs","Dialog","Root","open","onOpenChange","_jsx","Trigger","startIcon","ArrowClockwise","size","variant","onClick","name","fullWidth","ConfirmDialog","title","endAction","loading","FormHead","token","setToken","toggleToken","showToken","canShowToken","canEditInputs","canRegenerate","isSubmitting","regenerateUrl","handleRegenerate","newKey","Layouts","Header","primaryAction","Flex","width","gap","wrap","initial","medium","tours","apiTokens","ViewAPIToken","Tooltip","label","EyeStriked","Eye","disabled","Check","navigationAction","Box","display","BackButton","ellipsis"],"mappings":"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"}
1
+ {"version":3,"file":"FormHead.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/FormHead.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Dialog, Flex, Tooltip } from '@strapi/design-system';\nimport { Check, ArrowClockwise, Eye, EyeStriked } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/transferTokens';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst ActionButton = styled(Button)`\n white-space: nowrap;\n`;\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <ActionButton\n startIcon={<ArrowClockwise />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n fullWidth\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </ActionButton>\n </Dialog.Trigger>\n\n <ConfirmDialog\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<ArrowClockwise />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n canShowToken?: boolean;\n setToken: (token: TToken) => void;\n toggleToken?: () => void;\n showToken?: boolean;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n toggleToken,\n showToken,\n canShowToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n toggleToken?.();\n };\n\n return (\n <Layouts.Header\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex width=\"100%\" gap={2} wrap={{ initial: 'wrap', medium: 'nowrap' }}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Flex width=\"100%\" gap={2}>\n {token?.id && toggleToken && canShowToken === true && (\n <tours.apiTokens.ViewAPIToken>\n <Tooltip\n label={\n !canShowToken &&\n formatMessage({\n id: 'Settings.tokens.encryptionKeyMissing',\n defaultMessage:\n 'In order to view the token, you need a valid encryption key in the admin configuration',\n })\n }\n >\n <ActionButton\n type=\"button\"\n startIcon={showToken ? <EyeStriked /> : <Eye />}\n variant=\"secondary\"\n onClick={() => toggleToken?.()}\n disabled={!canShowToken}\n fullWidth\n >\n {formatMessage({\n id: 'Settings.tokens.viewToken',\n defaultMessage: 'View token',\n })}\n </ActionButton>\n </Tooltip>\n </tours.apiTokens.ViewAPIToken>\n )}\n <ActionButton\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </ActionButton>\n </Flex>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton />\n </Box>\n }\n ellipsis\n />\n );\n};\n"],"names":["ActionButton","styled","Button","Regenerate","onRegenerate","url","formatMessage","useIntl","showConfirmDialog","setShowConfirmDialog","React","useState","isLoadingConfirmation","setIsLoadingConfirmation","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","regenerateToken","useRegenerateTokenMutation","regenerateData","res","type","message","error","data","accessKey","id","defaultMessage","handleConfirmRegeneration","_jsxs","Dialog","Root","open","onOpenChange","_jsx","Trigger","startIcon","ArrowClockwise","size","variant","onClick","name","fullWidth","ConfirmDialog","title","endAction","loading","FormHead","token","setToken","toggleToken","showToken","canShowToken","canEditInputs","canRegenerate","isSubmitting","regenerateUrl","handleRegenerate","newKey","Layouts","Header","primaryAction","Flex","width","gap","wrap","initial","medium","tours","apiTokens","ViewAPIToken","Tooltip","label","EyeStriked","Eye","disabled","Check","navigationAction","Box","display","BackButton","ellipsis"],"mappings":"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"}
@@ -6,7 +6,7 @@ var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
8
  var reactRouterDom = require('react-router-dom');
9
- var styled = require('styled-components');
9
+ var styledComponents = require('styled-components');
10
10
  var ConfirmDialog = require('../../../../components/ConfirmDialog.js');
11
11
  var Tours = require('../../../../components/GuidedTour/Tours.js');
12
12
  var RelativeTime = require('../../../../components/RelativeTime.js');
@@ -192,7 +192,7 @@ const DefaultButton = ({ tokenName, tokenId, buttonType = 'edit', children })=>{
192
192
  children: children
193
193
  });
194
194
  };
195
- const LinkButtonStyled = styled.styled(designSystem.LinkButton)`
195
+ const LinkButtonStyled = styledComponents.styled(designSystem.LinkButton)`
196
196
  padding: 0.7rem;
197
197
 
198
198
  & > span {
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { AdminTokenOwner } from '../../../../../../shared/contracts/shared';\nimport type { Data } from '@strapi/types';\n\nconst formatAdminUserName = (\n owner: Pick<AdminTokenOwner, 'firstname' | 'lastname' | 'email' | 'username'>\n): string => {\n const full = [owner.firstname, owner.lastname].filter(Boolean).join(' ');\n return full || owner.username || owner.email || '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n showOwner?: boolean;\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n showOwner = false,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => {\n const GuidedTourTooltip =\n token.name === 'Read Only' ? tours.apiTokens.ManageAPIToken : React.Fragment;\n return (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {showOwner === true &&\n (() => {\n const apiToken = token as ApiToken;\n const owner = apiToken.kind === 'admin' ? apiToken.adminUserOwner : undefined;\n const ownerName =\n owner !== undefined && owner !== null && typeof owner === 'object'\n ? formatAdminUserName(owner)\n : '';\n return (\n <TableImpl.Cell maxWidth=\"20rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {ownerName}\n </Typography>\n </TableImpl.Cell>\n );\n })()}\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n <GuidedTourTooltip>\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n </GuidedTourTooltip>\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n );\n })}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["formatAdminUserName","owner","full","firstname","lastname","filter","Boolean","join","username","email","Table","permissions","headers","isLoading","tokens","onConfirmDelete","tokenType","showOwner","query","useQueryParams","formatMessage","locale","useIntl","sortOrder","sort","split","undefined","navigate","useNavigate","trackUsage","useTracking","formatter","useCollator","sortedTokens","a","b","compare","name","canDelete","canUpdate","canRead","handleRowClick","id","toString","_jsx","TableImpl","Root","rows","_jsxs","Content","Head","map","header","HeaderCell","Empty","Loading","Body","token","GuidedTourTooltip","tours","apiTokens","ManageAPIToken","React","Fragment","Row","onClick","Cell","maxWidth","Typography","textColor","fontWeight","ellipsis","description","RelativeTime","timestamp","Date","createdAt","lastUsedAt","customIntervals","unit","threshold","text","defaultMessage","apiToken","kind","adminUserOwner","ownerName","Flex","justifyContent","UpdateButton","tokenName","tokenId","DeleteButton","onClickDelete","MESSAGES_MAP","edit","read","DefaultButton","buttonType","children","LinkButtonStyled","tag","NavLink","to","e","stopPropagation","title","target","variant","size","styled","LinkButton","handleClickDelete","Dialog","Box","paddingLeft","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","Pencil"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { AdminTokenOwner } from '../../../../../../shared/contracts/shared';\nimport type { Data } from '@strapi/types';\n\nconst formatAdminUserName = (\n owner: Pick<AdminTokenOwner, 'firstname' | 'lastname' | 'email' | 'username'>\n): string => {\n const full = [owner.firstname, owner.lastname].filter(Boolean).join(' ');\n return full || owner.username || owner.email || '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n showOwner?: boolean;\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n showOwner = false,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => {\n const GuidedTourTooltip =\n token.name === 'Read Only' ? tours.apiTokens.ManageAPIToken : React.Fragment;\n return (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {showOwner === true &&\n (() => {\n const apiToken = token as ApiToken;\n const owner = apiToken.kind === 'admin' ? apiToken.adminUserOwner : undefined;\n const ownerName =\n owner !== undefined && owner !== null && typeof owner === 'object'\n ? formatAdminUserName(owner)\n : '';\n return (\n <TableImpl.Cell maxWidth=\"20rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {ownerName}\n </Typography>\n </TableImpl.Cell>\n );\n })()}\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n <GuidedTourTooltip>\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n </GuidedTourTooltip>\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n );\n })}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["formatAdminUserName","owner","full","firstname","lastname","filter","Boolean","join","username","email","Table","permissions","headers","isLoading","tokens","onConfirmDelete","tokenType","showOwner","query","useQueryParams","formatMessage","locale","useIntl","sortOrder","sort","split","undefined","navigate","useNavigate","trackUsage","useTracking","formatter","useCollator","sortedTokens","a","b","compare","name","canDelete","canUpdate","canRead","handleRowClick","id","toString","_jsx","TableImpl","Root","rows","_jsxs","Content","Head","map","header","HeaderCell","Empty","Loading","Body","token","GuidedTourTooltip","tours","apiTokens","ManageAPIToken","React","Fragment","Row","onClick","Cell","maxWidth","Typography","textColor","fontWeight","ellipsis","description","RelativeTime","timestamp","Date","createdAt","lastUsedAt","customIntervals","unit","threshold","text","defaultMessage","apiToken","kind","adminUserOwner","ownerName","Flex","justifyContent","UpdateButton","tokenName","tokenId","DeleteButton","onClickDelete","MESSAGES_MAP","edit","read","DefaultButton","buttonType","children","LinkButtonStyled","tag","NavLink","to","e","stopPropagation","title","target","variant","size","styled","LinkButton","handleClickDelete","Dialog","Box","paddingLeft","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","Pencil"],"mappings":"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"}
@@ -5,7 +5,7 @@ require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
  var ContentBox = require('../../../../components/ContentBox.js');
10
10
  var Context = require('../../../../components/GuidedTour/Context.js');
11
11
  var Tours = require('../../../../components/GuidedTour/Tours.js');
@@ -14,7 +14,7 @@ var Notifications = require('../../../../features/Notifications.js');
14
14
  var Tracking = require('../../../../features/Tracking.js');
15
15
  var useClipboard = require('../../../../hooks/useClipboard.js');
16
16
 
17
- const TypographyWordBreak = styled.styled(designSystem.Typography)`
17
+ const TypographyWordBreak = styledComponents.styled(designSystem.Typography)`
18
18
  word-break: break-all;
19
19
  `;
20
20
  const ApiTokenBox = ({ token, tokenType })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"TokenBox.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Flex, Box, Typography, Button } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useGuidedTour } from '../../../../components/GuidedTour/Context';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from '../../../../components/GuidedTour/utils/constants';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nconst TypographyWordBreak = styled(Typography)`\n word-break: break-all;\n`;\n\nexport const ApiTokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n const dispatch = useGuidedTour('TokenBox', (s) => s.dispatch);\n\n const { copy } = useClipboard();\n\n const handleCopyToken = async (token: TokenBoxProps['token']) => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.apiTokens.copyToken],\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <>\n <Flex\n shadow=\"tableShadow\"\n direction=\"column\"\n alignItems=\"start\"\n hasRadius\n padding={6}\n background=\"neutral0\"\n >\n <Flex direction=\"column\" alignItems=\"start\" gap={1} paddingBottom={4}>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.tokens.copy.title',\n defaultMessage: 'Token',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'Settings.apiTokens.copy.lastWarning',\n defaultMessage: 'Copy your token',\n })}\n </Typography>\n </Flex>\n <Box background=\"neutral100\" hasRadius padding={2} borderColor=\"neutral150\">\n <TypographyWordBreak fontWeight=\"semiBold\" variant=\"pi\">\n {token}\n </TypographyWordBreak>\n </Box>\n <tours.apiTokens.CopyAPIToken>\n <Button\n startIcon={<Duplicate />}\n variant=\"secondary\"\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n handleCopyToken(token);\n }}\n marginTop={6}\n >\n {formatMessage({ id: 'Settings.tokens.copy.copy', defaultMessage: 'Copy' })}\n </Button>\n </tours.apiTokens.CopyAPIToken>\n </Flex>\n </>\n );\n};\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n variant=\"ghost\"\n type=\"button\"\n style={{ padding: 0, height: '1.6rem' }}\n >\n <Duplicate />\n </IconButton>\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage(\n tokenType === 'api-token'\n ? {\n id: 'Settings.tokens.copy.subtitle',\n defaultMessage: 'Copy this token for use elsewhere',\n }\n : {\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage:\n 'Make sure to copy this token, you won’t be able to see it again!',\n }\n )\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n"],"names":["TypographyWordBreak","styled","Typography","ApiTokenBox","token","tokenType","formatMessage","useIntl","toggleNotification","useNotification","trackUsage","useTracking","dispatch","useGuidedTour","s","copy","useClipboard","handleCopyToken","didCopy","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","apiTokens","copyToken","message","id","_jsx","_Fragment","_jsxs","Flex","shadow","direction","alignItems","hasRadius","padding","background","gap","paddingBottom","fontWeight","defaultMessage","Box","borderColor","variant","tours","CopyAPIToken","Button","startIcon","Duplicate","onClick","e","preventDefault","marginTop","TokenBox","handleClick","ContentBox","endAction","span","style","alignSelf","IconButton","label","height","title","subtitle","icon","Key","iconBackground"],"mappings":"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"}
1
+ {"version":3,"file":"TokenBox.js","sources":["../../../../../../../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Flex, Box, Typography, Button } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useGuidedTour } from '../../../../components/GuidedTour/Context';\nimport { tours } from '../../../../components/GuidedTour/Tours';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from '../../../../components/GuidedTour/utils/constants';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nconst TypographyWordBreak = styled(Typography)`\n word-break: break-all;\n`;\n\nexport const ApiTokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n const dispatch = useGuidedTour('TokenBox', (s) => s.dispatch);\n\n const { copy } = useClipboard();\n\n const handleCopyToken = async (token: TokenBoxProps['token']) => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.apiTokens.copyToken],\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <>\n <Flex\n shadow=\"tableShadow\"\n direction=\"column\"\n alignItems=\"start\"\n hasRadius\n padding={6}\n background=\"neutral0\"\n >\n <Flex direction=\"column\" alignItems=\"start\" gap={1} paddingBottom={4}>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.tokens.copy.title',\n defaultMessage: 'Token',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'Settings.apiTokens.copy.lastWarning',\n defaultMessage: 'Copy your token',\n })}\n </Typography>\n </Flex>\n <Box background=\"neutral100\" hasRadius padding={2} borderColor=\"neutral150\">\n <TypographyWordBreak fontWeight=\"semiBold\" variant=\"pi\">\n {token}\n </TypographyWordBreak>\n </Box>\n <tours.apiTokens.CopyAPIToken>\n <Button\n startIcon={<Duplicate />}\n variant=\"secondary\"\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n handleCopyToken(token);\n }}\n marginTop={6}\n >\n {formatMessage({ id: 'Settings.tokens.copy.copy', defaultMessage: 'Copy' })}\n </Button>\n </tours.apiTokens.CopyAPIToken>\n </Flex>\n </>\n );\n};\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n variant=\"ghost\"\n type=\"button\"\n style={{ padding: 0, height: '1.6rem' }}\n >\n <Duplicate />\n </IconButton>\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage(\n tokenType === 'api-token'\n ? {\n id: 'Settings.tokens.copy.subtitle',\n defaultMessage: 'Copy this token for use elsewhere',\n }\n : {\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage:\n 'Make sure to copy this token, you won’t be able to see it again!',\n }\n )\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n"],"names":["TypographyWordBreak","styled","Typography","ApiTokenBox","token","tokenType","formatMessage","useIntl","toggleNotification","useNotification","trackUsage","useTracking","dispatch","useGuidedTour","s","copy","useClipboard","handleCopyToken","didCopy","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","apiTokens","copyToken","message","id","_jsx","_Fragment","_jsxs","Flex","shadow","direction","alignItems","hasRadius","padding","background","gap","paddingBottom","fontWeight","defaultMessage","Box","borderColor","variant","tours","CopyAPIToken","Button","startIcon","Duplicate","onClick","e","preventDefault","marginTop","TokenBox","handleClick","ContentBox","endAction","span","style","alignSelf","IconButton","label","height","title","subtitle","icon","Key","iconBackground"],"mappings":"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"}
@@ -5,7 +5,7 @@ var designSystem = require('@strapi/design-system');
5
5
  var map = require('lodash/map');
6
6
  var tail = require('lodash/tail');
7
7
  var reactIntl = require('react-intl');
8
- var styled = require('styled-components');
8
+ var styledComponents = require('styled-components');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
@@ -56,7 +56,7 @@ const getMethodColor = (verb)=>{
56
56
  }
57
57
  }
58
58
  };
59
- const MethodBox = styled.styled(designSystem.Box)`
59
+ const MethodBox = styledComponents.styled(designSystem.Box)`
60
60
  margin: -1px;
61
61
  border-radius: ${({ theme })=>theme.spaces[1]} 0 0 ${({ theme })=>theme.spaces[1]};
62
62
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"BoundRoute.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\ntype HttpVerb = 'POST' | 'GET' | 'PUT' | 'DELETE';\n\ntype MethodColor = {\n text: keyof DefaultTheme['colors'];\n border: keyof DefaultTheme['colors'];\n background: keyof DefaultTheme['colors'];\n};\n\nconst getMethodColor = (verb: HttpVerb): MethodColor => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nconst MethodBox = styled<BoxComponent>(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\ninterface BoundRouteProps {\n route: {\n handler: string;\n method: HttpVerb;\n path: string;\n };\n}\n\nexport const BoundRoute = ({\n route = {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n}: BoundRouteProps) => {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n &nbsp;\n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n};\n"],"names":["getMethodColor","verb","text","border","background","MethodBox","styled","Box","theme","spaces","BoundRoute","route","handler","method","path","formatMessage","useIntl","title","formattedRoute","tail","split","controller","action","colors","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","id","defaultMessage","_jsx","span","textColor","hasRadius","borderColor","padding","fontWeight","paddingLeft","paddingRight","map","value","includes"],"mappings":"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"}
1
+ {"version":3,"file":"BoundRoute.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport { useIntl } from 'react-intl';\nimport { styled, DefaultTheme } from 'styled-components';\n\ntype HttpVerb = 'POST' | 'GET' | 'PUT' | 'DELETE';\n\ntype MethodColor = {\n text: keyof DefaultTheme['colors'];\n border: keyof DefaultTheme['colors'];\n background: keyof DefaultTheme['colors'];\n};\n\nconst getMethodColor = (verb: HttpVerb): MethodColor => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nconst MethodBox = styled<BoxComponent>(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\ninterface BoundRouteProps {\n route: {\n handler: string;\n method: HttpVerb;\n path: string;\n };\n}\n\nexport const BoundRoute = ({\n route = {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n}: BoundRouteProps) => {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.apiTokens.createPage.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n &nbsp;\n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n};\n"],"names":["getMethodColor","verb","text","border","background","MethodBox","styled","Box","theme","spaces","BoundRoute","route","handler","method","path","formatMessage","useIntl","title","formattedRoute","tail","split","controller","action","colors","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","id","defaultMessage","_jsx","span","textColor","hasRadius","borderColor","padding","fontWeight","paddingLeft","paddingRight","map","value","includes"],"mappings":"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"}
@@ -6,21 +6,21 @@ var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var capitalize = require('lodash/capitalize');
8
8
  var reactIntl = require('react-intl');
9
- var styled = require('styled-components');
9
+ var styledComponents = require('styled-components');
10
10
  var apiTokenPermissions = require('../apiTokenPermissions.js');
11
11
 
12
12
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
13
 
14
14
  var capitalize__default = /*#__PURE__*/_interopDefault(capitalize);
15
15
 
16
- const activeCheckboxWrapperStyles = styled.css`
16
+ const activeCheckboxWrapperStyles = styledComponents.css`
17
17
  background: ${(props)=>props.theme.colors.primary100};
18
18
 
19
19
  #cog {
20
20
  opacity: 1;
21
21
  }
22
22
  `;
23
- const CheckboxWrapper = styled.styled(designSystem.Box)`
23
+ const CheckboxWrapper = styledComponents.styled(designSystem.Box)`
24
24
  display: flex;
25
25
  justify-content: space-between;
26
26
  align-items: center;
@@ -38,7 +38,7 @@ const CheckboxWrapper = styled.styled(designSystem.Box)`
38
38
  ${activeCheckboxWrapperStyles}
39
39
  }
40
40
  `;
41
- const Border = styled.styled.div`
41
+ const Border = styledComponents.styled.div`
42
42
  flex: 1;
43
43
  align-self: center;
44
44
  border-top: 1px solid ${({ theme })=>theme.colors.neutral150};
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsableContentType.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled<BoxComponent>(Box)<{ $isActive: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.$isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface CollapsableContentTypeProps {\n controllers?: ContentApiPermission['controllers'];\n label: ContentApiPermission['label'];\n orderNumber?: number;\n disabled?: boolean;\n}\n\nexport const CollapsableContentType = ({\n controllers = [],\n label,\n orderNumber = 0,\n disabled = false,\n}: CollapsableContentTypeProps) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n const isActionSelected = (actionId: string) => actionId === selectedAction;\n\n return (\n <Accordion.Item value={`${label}-${orderNumber}`}>\n <Accordion.Header variant={orderNumber % 2 ? 'primary' : 'secondary'}>\n <Accordion.Trigger>{capitalize(label)}</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n checked={\n !allActionsSelected && someActionsSelected\n ? 'indeterminate'\n : allActionsSelected\n }\n onCheckedChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid.Root gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <Grid.Item\n xs={12}\n s={6}\n key={action.actionId}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper\n $isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n checked={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onCheckedChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n <span style={{ overflowWrap: 'anywhere' }}>{action.action}</span>\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog id=\"cog\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n"],"names":["activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","label","orderNumber","disabled","value","onChangeSelectAll","onChange","selectedActions","setSelectedAction","selectedAction","useApiTokenPermissions","formatMessage","useIntl","isActionSelected","actionId","_jsxs","Accordion","Item","_jsx","Header","variant","Trigger","capitalize","Content","map","controller","allActionsSelected","actions","every","action","includes","someActionsSelected","some","Flex","justifyContent","alignItems","padding","paddingRight","Typography","textColor","paddingLeft","Checkbox","checked","onCheckedChange","target","id","defaultMessage","Grid","Root","gap","xs","s","direction","hasRadius","name","span","style","overflowWrap","button","type","data-testid","onClick","display","Cog"],"mappings":"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"}
1
+ {"version":3,"file":"CollapsableContentType.js","sources":["../../../../../../../../../../admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Accordion,\n Box,\n BoxComponent,\n Checkbox,\n Flex,\n Grid,\n Typography,\n} from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport capitalize from 'lodash/capitalize';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { ContentApiPermission } from '../../../../../../../../shared/contracts/content-api/permissions';\nimport { useApiTokenPermissions } from '../apiTokenPermissions';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled<BoxComponent>(Box)<{ $isActive: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.$isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface CollapsableContentTypeProps {\n controllers?: ContentApiPermission['controllers'];\n label: ContentApiPermission['label'];\n orderNumber?: number;\n disabled?: boolean;\n}\n\nexport const CollapsableContentType = ({\n controllers = [],\n label,\n orderNumber = 0,\n disabled = false,\n}: CollapsableContentTypeProps) => {\n const {\n value: { onChangeSelectAll, onChange, selectedActions, setSelectedAction, selectedAction },\n } = useApiTokenPermissions();\n const { formatMessage } = useIntl();\n\n const isActionSelected = (actionId: string) => actionId === selectedAction;\n\n return (\n <Accordion.Item value={`${label}-${orderNumber}`}>\n <Accordion.Header variant={orderNumber % 2 ? 'primary' : 'secondary'}>\n <Accordion.Trigger>{capitalize(label)}</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n {controllers?.map((controller) => {\n const allActionsSelected = controller.actions.every((action) =>\n selectedActions.includes(action.actionId)\n );\n\n const someActionsSelected = controller.actions.some((action) =>\n selectedActions.includes(action.actionId)\n );\n\n return (\n <Box key={`${label}.${controller?.controller}`}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {controller?.controller}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n checked={\n !allActionsSelected && someActionsSelected\n ? 'indeterminate'\n : allActionsSelected\n }\n onCheckedChange={() => {\n onChangeSelectAll({ target: { value: [...controller.actions] } });\n }}\n disabled={disabled}\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Grid.Root gap={4} padding={4}>\n {controller?.actions &&\n controller?.actions.map((action) => {\n return (\n <Grid.Item\n xs={12}\n s={6}\n key={action.actionId}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper\n $isActive={isActionSelected(action.actionId)}\n padding={2}\n hasRadius\n >\n <Checkbox\n checked={selectedActions.includes(action.actionId)}\n name={action.actionId}\n onCheckedChange={() => {\n onChange({ target: { value: action.actionId } });\n }}\n disabled={disabled}\n >\n <span style={{ overflowWrap: 'anywhere' }}>{action.action}</span>\n </Checkbox>\n <button\n type=\"button\"\n data-testid=\"action-cog\"\n onClick={() =>\n setSelectedAction({ target: { value: action.actionId } })\n }\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <Cog id=\"cog\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n"],"names":["activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","$isActive","Border","div","neutral150","CollapsableContentType","controllers","label","orderNumber","disabled","value","onChangeSelectAll","onChange","selectedActions","setSelectedAction","selectedAction","useApiTokenPermissions","formatMessage","useIntl","isActionSelected","actionId","_jsxs","Accordion","Item","_jsx","Header","variant","Trigger","capitalize","Content","map","controller","allActionsSelected","actions","every","action","includes","someActionsSelected","some","Flex","justifyContent","alignItems","padding","paddingRight","Typography","textColor","paddingLeft","Checkbox","checked","onCheckedChange","target","id","defaultMessage","Grid","Root","gap","xs","s","direction","hasRadius","name","span","style","overflowWrap","button","type","data-testid","onClick","display","Cog"],"mappings":"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"}