@strapi/admin 5.14.0 → 5.15.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 (282) hide show
  1. package/dist/admin/admin/src/assets/images/free-trial.png.js +6 -0
  2. package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -0
  3. package/dist/admin/admin/src/assets/images/free-trial.png.mjs +4 -0
  4. package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -0
  5. package/dist/admin/admin/src/components/ConfirmDialog.js +2 -2
  6. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  7. package/dist/admin/admin/src/components/ContentBox.js +3 -3
  8. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  9. package/dist/admin/admin/src/components/ErrorElement.js +3 -3
  10. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  11. package/dist/admin/admin/src/components/GradientBadge.js +37 -0
  12. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -0
  13. package/dist/admin/admin/src/components/GradientBadge.mjs +35 -0
  14. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/Modal.js +3 -3
  16. package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +1 -1
  17. package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
  18. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  19. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +1 -1
  20. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  21. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
  22. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/Layouts/Layout.js +3 -3
  24. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.js +7 -5
  26. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  27. package/dist/admin/admin/src/components/LeftMenu.mjs +3 -1
  28. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
  30. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  31. package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
  32. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  33. package/dist/admin/admin/src/components/MainNav/NavLink.js +3 -3
  34. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  35. package/dist/admin/admin/src/components/MainNav/NavUser.js +8 -8
  36. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  37. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +114 -0
  38. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -0
  39. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +112 -0
  40. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -0
  41. package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
  42. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  43. package/dist/admin/admin/src/components/SubNav.js +6 -6
  44. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  45. package/dist/admin/admin/src/components/Table.js +2 -2
  46. package/dist/admin/admin/src/components/Table.js.map +1 -1
  47. package/dist/admin/admin/src/components/Theme.js +2 -2
  48. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  49. package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
  50. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  51. package/dist/admin/admin/src/components/UpsellBanner.js +113 -0
  52. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -0
  53. package/dist/admin/admin/src/components/UpsellBanner.mjs +111 -0
  54. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -0
  55. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +2 -0
  56. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  57. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +2 -0
  58. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  59. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
  60. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -2
  62. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  63. package/dist/admin/admin/src/pages/Home/HomePage.js +4 -0
  64. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Home/HomePage.mjs +4 -0
  66. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +183 -0
  68. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -0
  69. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +181 -0
  70. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -0
  71. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +128 -0
  72. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -0
  73. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +126 -0
  74. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -0
  75. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +3 -3
  76. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +2 -2
  78. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +1 -1
  79. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +2 -2
  80. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +3 -3
  82. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +1 -1
  84. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
  86. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
  88. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
  90. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
  92. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
  94. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
  96. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
  98. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -3
  100. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
  102. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js +2 -2
  104. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
  106. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
  108. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
  110. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
  112. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  113. package/dist/admin/admin/src/render.js +3 -1
  114. package/dist/admin/admin/src/render.js.map +1 -1
  115. package/dist/admin/admin/src/render.mjs +3 -1
  116. package/dist/admin/admin/src/render.mjs.map +1 -1
  117. package/dist/admin/admin/src/services/admin.js +13 -2
  118. package/dist/admin/admin/src/services/admin.js.map +1 -1
  119. package/dist/admin/admin/src/services/admin.mjs +13 -3
  120. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  121. package/dist/admin/admin/src/translations/ar.json.js +1 -0
  122. package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
  123. package/dist/admin/admin/src/translations/ar.json.mjs +1 -0
  124. package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
  125. package/dist/admin/admin/src/translations/ca.json.js +1 -0
  126. package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
  127. package/dist/admin/admin/src/translations/ca.json.mjs +1 -0
  128. package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
  129. package/dist/admin/admin/src/translations/de.json.js +1 -0
  130. package/dist/admin/admin/src/translations/de.json.js.map +1 -1
  131. package/dist/admin/admin/src/translations/de.json.mjs +1 -0
  132. package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
  133. package/dist/admin/admin/src/translations/dk.json.js +1 -0
  134. package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
  135. package/dist/admin/admin/src/translations/dk.json.mjs +1 -0
  136. package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
  137. package/dist/admin/admin/src/translations/en.json.js +20 -0
  138. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  139. package/dist/admin/admin/src/translations/en.json.mjs +20 -0
  140. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  141. package/dist/admin/admin/src/translations/es.json.js +1 -0
  142. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  143. package/dist/admin/admin/src/translations/es.json.mjs +1 -0
  144. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  145. package/dist/admin/admin/src/translations/eu.json.js +1 -0
  146. package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
  147. package/dist/admin/admin/src/translations/eu.json.mjs +1 -0
  148. package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
  149. package/dist/admin/admin/src/translations/fr.json.js +1 -0
  150. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  151. package/dist/admin/admin/src/translations/fr.json.mjs +1 -0
  152. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  153. package/dist/admin/admin/src/translations/gu.json.js +1 -0
  154. package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
  155. package/dist/admin/admin/src/translations/gu.json.mjs +1 -0
  156. package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
  157. package/dist/admin/admin/src/translations/hi.json.js +1 -0
  158. package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
  159. package/dist/admin/admin/src/translations/hi.json.mjs +1 -0
  160. package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
  161. package/dist/admin/admin/src/translations/hu.json.js +1 -0
  162. package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
  163. package/dist/admin/admin/src/translations/hu.json.mjs +1 -0
  164. package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
  165. package/dist/admin/admin/src/translations/ja.json.js +1 -0
  166. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  167. package/dist/admin/admin/src/translations/ja.json.mjs +1 -0
  168. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  169. package/dist/admin/admin/src/translations/ko.json.js +1 -0
  170. package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
  171. package/dist/admin/admin/src/translations/ko.json.mjs +1 -0
  172. package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
  173. package/dist/admin/admin/src/translations/ml.json.js +1 -0
  174. package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
  175. package/dist/admin/admin/src/translations/ml.json.mjs +1 -0
  176. package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
  177. package/dist/admin/admin/src/translations/nl.json.js +1 -0
  178. package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
  179. package/dist/admin/admin/src/translations/nl.json.mjs +1 -0
  180. package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
  181. package/dist/admin/admin/src/translations/pl.json.js +1 -0
  182. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  183. package/dist/admin/admin/src/translations/pl.json.mjs +1 -0
  184. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  185. package/dist/admin/admin/src/translations/pt-BR.json.js +1 -0
  186. package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
  187. package/dist/admin/admin/src/translations/pt-BR.json.mjs +1 -0
  188. package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
  189. package/dist/admin/admin/src/translations/ru.json.js +1 -0
  190. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  191. package/dist/admin/admin/src/translations/ru.json.mjs +1 -0
  192. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  193. package/dist/admin/admin/src/translations/sa.json.js +1 -0
  194. package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
  195. package/dist/admin/admin/src/translations/sa.json.mjs +1 -0
  196. package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
  197. package/dist/admin/admin/src/translations/sk.json.js +1 -0
  198. package/dist/admin/admin/src/translations/sk.json.js.map +1 -1
  199. package/dist/admin/admin/src/translations/sk.json.mjs +1 -0
  200. package/dist/admin/admin/src/translations/sk.json.mjs.map +1 -1
  201. package/dist/admin/admin/src/translations/sv.json.js +1 -0
  202. package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
  203. package/dist/admin/admin/src/translations/sv.json.mjs +1 -0
  204. package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
  205. package/dist/admin/admin/src/translations/tr.json.js +1 -0
  206. package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
  207. package/dist/admin/admin/src/translations/tr.json.mjs +1 -0
  208. package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
  209. package/dist/admin/admin/src/translations/uk.json.js +1 -0
  210. package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
  211. package/dist/admin/admin/src/translations/uk.json.mjs +1 -0
  212. package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
  213. package/dist/admin/admin/src/translations/zh-Hans.json.js +1 -0
  214. package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
  215. package/dist/admin/admin/src/translations/zh-Hans.json.mjs +1 -0
  216. package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
  217. package/dist/admin/admin/src/translations/zh.json.js +1 -0
  218. package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
  219. package/dist/admin/admin/src/translations/zh.json.mjs +1 -0
  220. package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
  221. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +2 -1
  222. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  223. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs +2 -1
  224. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
  225. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
  226. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  227. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
  228. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  229. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
  230. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  231. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
  232. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  233. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +7 -0
  234. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  235. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +7 -0
  236. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  237. package/dist/admin/index.js +2 -0
  238. package/dist/admin/index.js.map +1 -1
  239. package/dist/admin/index.mjs +1 -0
  240. package/dist/admin/index.mjs.map +1 -1
  241. package/dist/admin/src/components/GradientBadge.d.ts +4 -0
  242. package/dist/admin/src/components/MainNav/TrialCountdown.d.ts +2 -0
  243. package/dist/admin/src/components/UpsellBanner.d.ts +2 -0
  244. package/dist/admin/src/index.d.ts +1 -0
  245. package/dist/admin/src/pages/Home/components/FreeTrialEndedModal.d.ts +1 -0
  246. package/dist/admin/src/pages/Home/components/FreeTrialWelcomeModal.d.ts +1 -0
  247. package/dist/admin/src/services/admin.d.ts +8 -6
  248. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -0
  249. package/dist/ee/server/src/controllers/admin.d.ts +3 -0
  250. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  251. package/dist/ee/server/src/controllers/index.d.ts +3 -0
  252. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  253. package/dist/ee/server/src/index.d.ts +6 -0
  254. package/dist/ee/server/src/index.d.ts.map +1 -1
  255. package/dist/server/ee/server/src/controllers/admin.js +2 -0
  256. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  257. package/dist/server/ee/server/src/controllers/admin.mjs +2 -0
  258. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  259. package/dist/server/server/src/controllers/admin.js +6 -0
  260. package/dist/server/server/src/controllers/admin.js.map +1 -1
  261. package/dist/server/server/src/controllers/admin.mjs +6 -0
  262. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  263. package/dist/server/server/src/routes/admin.js +10 -0
  264. package/dist/server/server/src/routes/admin.js.map +1 -1
  265. package/dist/server/server/src/routes/admin.mjs +10 -0
  266. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  267. package/dist/server/server/src/services/content-type.js +10 -15
  268. package/dist/server/server/src/services/content-type.js.map +1 -1
  269. package/dist/server/server/src/services/content-type.mjs +11 -16
  270. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  271. package/dist/server/src/controllers/admin.d.ts +3 -0
  272. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  273. package/dist/server/src/controllers/index.d.ts +3 -0
  274. package/dist/server/src/controllers/index.d.ts.map +1 -1
  275. package/dist/server/src/index.d.ts +3 -0
  276. package/dist/server/src/index.d.ts.map +1 -1
  277. package/dist/server/src/routes/admin.d.ts.map +1 -1
  278. package/dist/server/src/services/content-type.d.ts +1 -1
  279. package/dist/server/src/services/content-type.d.ts.map +1 -1
  280. package/dist/shared/contracts/admin.d.ts +1 -0
  281. package/dist/shared/contracts/admin.d.ts.map +1 -1
  282. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n const file = new File([res.data], res.config.url ?? '', {\n type: res.headers['content-type'],\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","file","File","config","type","headers","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
1
+ {"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n const file = new File([res.data], res.config.url ?? '', {\n type: res.headers['content-type'],\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","file","File","config","type","headers","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
@@ -8,7 +8,7 @@ var dateFns = require('date-fns');
8
8
  var formik = require('formik');
9
9
  var reactIntl = require('react-intl');
10
10
  var reactRouterDom = require('react-router-dom');
11
- var styledComponents = require('styled-components');
11
+ var styled = require('styled-components');
12
12
  var yup = require('yup');
13
13
  var Layout = require('../../../../components/Layouts/Layout.js');
14
14
  var PageHelpers = require('../../../../components/PageHelpers.js');
@@ -326,7 +326,7 @@ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
326
326
  ]
327
327
  });
328
328
  };
329
- const UsersRoleNumber = styledComponents.styled.div`
329
+ const UsersRoleNumber = styled.styled.div`
330
330
  border: 1px solid ${({ theme })=>theme.colors.primary200};
331
331
  background: ${({ theme })=>theme.colors.primary100};
332
332
  padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[4]}`};
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;;AAEkG,qGAElG,MAAMA,aAAgBC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACvCC,IAAMH,EAAAA,cAAAA,CAAII,MAAM,EAAGC,CAAAA,QAAQ,CAACC,iCAAiBD,CAAAA,QAAQ,CAACE,EAAE,CAAA;IACxDC,WAAaR,EAAAA,cAAAA,CAAII,MAAM,EAAGC,CAAAA,QAAQ,CAACC,iCAAiBD,CAAAA,QAAQ,CAACE,EAAE;AACjE,CAAA,CAAA;AAUA;;;AAGC,UACKE,UAAa,GAAA,IAAA;IACjB,MAAM,EAAEF,EAAE,EAAE,GAAGG,wBAAAA,EAAAA;IACf,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAMC,cAAAA,GAAiBC,gBAAMC,CAAAA,MAAM,CAAiB,IAAA,CAAA;IACpD,MAAM,EAAEC,UAAU,EAAE,GAAGC,oBAAAA,EAAAA;AACvB,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,qCAAAA,EAAAA;IAEJ,MAAM,EAAEC,WAAWC,0BAA0B,EAAEC,aAAaC,iBAAiB,EAAE,GAC7EC,qCAAgC,CAAA;AAC9B;;;AAGC,UACDC,MAAMzB,EAAM,IAAA;AACd,KAAA,CAAA;AAEF;;;MAIA,MAAM,EAAEsB,WAAaI,EAAAA,eAAe,EAAEN,SAAWO,EAAAA,aAAa,EAAE,GAAGC,gCACjE,CAAA;QACE5B,EAAIA,EAAAA;KAEN,EAAA;AACE6B,QAAAA,IAAAA,EAAM,CAAC7B,EAAAA;QACP8B,yBAA2B,EAAA;AAC7B,KAAA,CAAA;IAGF,MAAM,CAACC,WAAW,GAAGC,2BAAAA,EAAAA;IACrB,MAAM,CAACC,sBAAsB,GAAGC,sCAAAA,EAAAA;IAEhC,MAAMC,sBAAAA,GAAyB,OAC7BC,IACAC,EAAAA,MAAAA,GAAAA;QAEA,IAAI;AACF,YAAA,IAAIrC,EAAI,EAAA;gBACNa,UAAW,CAAA,mBAAA,CAAA;aACN,MAAA;gBACLA,UAAW,CAAA,mBAAA,CAAA;AACb;YAEA,MAAMyB,GAAAA,GAAM,MAAMP,UAAWK,CAAAA,IAAAA,CAAAA;AAE7B,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAIC,0BAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAAC5C,IAAI,KAAK,iBAAmB,EAAA;AACvEyC,oBAAAA,MAAAA,CAAOI,SAAS,CAACvB,sBAAuBoB,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC5C,MAAA;oBACLpC,kBAAmB,CAAA;wBACjBsC,IAAM,EAAA,QAAA;wBACNC,OAAS3B,EAAAA,cAAAA,CAAesB,IAAIE,KAAK;AACnC,qBAAA,CAAA;AACF;AAEA,gBAAA;AACF;YAEA,MAAM,EAAEI,iBAAiB,EAAE,GAAGlC,eAAemC,OAAO,EAAEC,oBAAoB,EAAC;AAE3E,YAAA,IAAIR,GAAIF,CAAAA,IAAI,CAACpC,EAAE,IAAI+C,KAAAA,CAAMC,OAAO,CAACJ,iBAAsBA,CAAAA,IAAAA,iBAAAA,CAAkBK,MAAM,GAAG,CAAG,EAAA;gBACnF,MAAMC,SAAAA,GAAY,MAAMjB,qBAAsB,CAAA;oBAC5CjC,EAAIsC,EAAAA,GAAAA,CAAIF,IAAI,CAACpC,EAAE;oBACfmD,WAAaP,EAAAA;AACf,iBAAA,CAAA;AAEA,gBAAA,IAAI,WAAWM,SAAW,EAAA;oBACxB,IAAIX,0BAAAA,CAAiBW,UAAUV,KAAK,CAAA,IAAKU,UAAUV,KAAK,CAAC5C,IAAI,KAAK,iBAAmB,EAAA;AACnFyC,wBAAAA,MAAAA,CAAOI,SAAS,CAACvB,sBAAuBgC,CAAAA,SAAAA,CAAUV,KAAK,CAAA,CAAA;qBAClD,MAAA;wBACLpC,kBAAmB,CAAA;4BACjBsC,IAAM,EAAA,QAAA;4BACNC,OAAS3B,EAAAA,cAAAA,CAAekC,UAAUV,KAAK;AACzC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;AACF;YAEApC,kBAAmB,CAAA;gBACjBsC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASrC,aAAc,CAAA;oBAAEN,EAAI,EAAA,wBAAA;oBAA0BoD,cAAgB,EAAA;AAAU,iBAAA;AACnF,aAAA,CAAA;YAEA5C,QAAS,CAAA,CAAC,SAAS,EAAE8B,GAAIF,CAAAA,IAAI,CAACpC,EAAE,CAACqD,QAAQ,EAAG,CAAA,CAAC,EAAE;gBAAEC,OAAS,EAAA;AAAK,aAAA,CAAA;AACjE,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZnD,kBAAmB,CAAA;gBACjBsC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASrC,aAAc,CAAA;oBAAEN,EAAI,EAAA,oBAAA;oBAAsBoD,cAAgB,EAAA;AAAoB,iBAAA;AACzF,aAAA,CAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAI,0BAAC/B,IAA8BM,aAAkB,IAAA,CAACJ,iBAAmB,EAAA;QACvE,qBAAOiC,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,qBACEC,eAACC,CAAAA,iBAAAA,EAAAA;;AACC,0BAAAJ,cAAA,CAACC,iBAAKI,KAAK,EAAA;0BACRvD,aACC,CAAA;oBAAEN,EAAI,EAAA,oBAAA;oBAAsBoD,cAAgB,EAAA;iBAC5C,EAAA;oBACExD,IAAM,EAAA;AACR,iBAAA;;0BAGJ4D,cAACM,CAAAA,aAAAA,EAAAA;gBACCC,aACE,EAAA;oBACEnE,IAAM,EAAA,EAAA;oBACNK,WAAa,EAAA,CAAC,EAAEK,aAAc,CAAA;wBAC5BN,EAAI,EAAA,6BAAA;wBACJoD,cAAgB,EAAA;AAClB,qBAAA,CAAA,CAAG,CAAC,EAAEY,cAAAA,CAAO,IAAIC,IAAAA,EAAAA,EAAQ,OAAO;AAClC,iBAAA;gBAEFC,QAAU/B,EAAAA,sBAAAA;gBACVgC,gBAAkB3E,EAAAA,aAAAA;gBAClB4E,gBAAkB,EAAA,KAAA;AAEjB,gBAAA,QAAA,EAAA,CAAC,EAAEC,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,YAAY,EAAEC,YAAY,EAAE,iBAC3DjB,cAACkB,CAAAA,WAAAA,EAAAA;gDACCf,eAAA,CAAAgB,mBAAA,EAAA;;AACE,8CAAAnB,cAAA,CAACoB,eAAQC,MAAM,EAAA;AACbC,oCAAAA,aAAAA,gBACEnB,eAACoB,CAAAA,iBAAAA,EAAAA;wCAAKC,GAAK,EAAA,CAAA;;0DACTxB,cAACyB,CAAAA,mBAAAA,EAAAA;gDACCC,OAAQ,EAAA,WAAA;gDACRC,OAAS,EAAA,IAAA;AACPZ,oDAAAA,WAAAA,EAAAA;AACA7D,oDAAAA,cAAAA,CAAemC,OAAO,EAAEuC,SAAAA,EAAAA;AAC1B,iDAAA;0DAEC9E,aAAc,CAAA;oDACbN,EAAI,EAAA,6BAAA;oDACJoD,cAAgB,EAAA;AAClB,iDAAA;;0DAEFI,cAACyB,CAAAA,mBAAAA,EAAAA;gDAAOvC,IAAK,EAAA,QAAA;gDAAS2C,OAASZ,EAAAA,YAAAA;AAAca,gDAAAA,SAAAA,gBAAW9B,cAAC+B,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;0DACtDjF,aAAc,CAAA;oDACbN,EAAI,EAAA,aAAA;oDACJoD,cAAgB,EAAA;AAClB,iDAAA;;;;AAINoC,oCAAAA,KAAAA,EAAOlF,aAAc,CAAA;wCACnBN,EAAI,EAAA,6BAAA;wCACJoD,cAAgB,EAAA;AAClB,qCAAA,CAAA;AACAqC,oCAAAA,QAAAA,EAAUnF,aAAc,CAAA;wCACtBN,EAAI,EAAA,mCAAA;wCACJoD,cAAgB,EAAA;AAClB,qCAAA,CAAA;AACAsC,oCAAAA,gBAAAA,gBAAkBlC,cAACmC,CAAAA,qBAAAA,EAAAA;wCAAWC,QAAS,EAAA;;;AAEzC,8CAAApC,cAAA,CAACoB,eAAQiB,OAAO,EAAA;AACd,oCAAA,QAAA,gBAAAlC,eAACoB,CAAAA,iBAAAA,EAAAA;wCAAKe,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUf,GAAK,EAAA,CAAA;;0DACjDxB,cAACwC,CAAAA,gBAAAA,EAAAA;gDAAIC,UAAW,EAAA,UAAA;gDAAWC,OAAS,EAAA,CAAA;gDAAGC,MAAO,EAAA,cAAA;gDAAeC,SAAS,EAAA,IAAA;AACpE,gDAAA,QAAA,gBAAAzC,eAACoB,CAAAA,iBAAAA,EAAAA;oDAAKe,SAAU,EAAA,QAAA;oDAASC,UAAW,EAAA,SAAA;oDAAUf,GAAK,EAAA,CAAA;;sEACjDrB,eAACoB,CAAAA,iBAAAA,EAAAA;4DAAKsB,cAAe,EAAA,eAAA;;8EACnB1C,eAACqC,CAAAA,gBAAAA,EAAAA;;sFACCxC,cAACwC,CAAAA,gBAAAA,EAAAA;AACC,4EAAA,QAAA,gBAAAxC,cAAC8C,CAAAA,uBAAAA,EAAAA;gFAAWC,UAAW,EAAA,MAAA;0FACpBjG,aAAc,CAAA;oFACbN,EAAI,EAAA,gBAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;;sFAGJI,cAACwC,CAAAA,gBAAAA,EAAAA;AACC,4EAAA,QAAA,gBAAAxC,cAAC8C,CAAAA,uBAAAA,EAAAA;gFAAWpB,OAAQ,EAAA,IAAA;gFAAKsB,SAAU,EAAA,YAAA;0FAChClG,aAAc,CAAA;oFACbN,EAAI,EAAA,iCAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;;;;8EAINI,cAACiD,CAAAA,eAAAA,EAAAA;8EACEnG,aACC,CAAA;wEACEN,EAAI,EAAA,4CAAA;wEACJoD,cACE,EAAA;qEAEJ,EAAA;wEAAEsD,MAAQ,EAAA;AAAE,qEAAA;;;;AAIlB,sEAAA/C,eAAA,CAACgD,kBAAKC,IAAI,EAAA;4DAAC5B,GAAK,EAAA,CAAA;;AACd,8EAAAxB,cAAA,CAACmD,kBAAKE,IAAI,EAAA;oEAACC,GAAK,EAAA,CAAA;oEAAGhB,SAAU,EAAA,QAAA;oEAASC,UAAW,EAAA,SAAA;4FAC/CpC,eAAA,CAACoD,mBAAMH,IAAI,EAAA;wEACThH,IAAK,EAAA,MAAA;wEACL4C,KAAO8B,EAAAA,MAAAA,CAAO1E,IAAI,IAAIU,aAAc,CAAA;AAAEN,4EAAAA,EAAAA,EAAIsE,OAAO1E;AAAK,yEAAA,CAAA;wEACtDE,QAAQ,EAAA,IAAA;;AAER,0FAAA0D,cAAA,CAACuD,mBAAMC,KAAK,EAAA;0FACT1G,aAAc,CAAA;oFACbN,EAAI,EAAA,aAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;0FAEFI,cAACyD,CAAAA,sBAAAA,EAAAA;gFAAUC,QAAU1C,EAAAA,YAAAA;AAAc2C,gFAAAA,KAAAA,EAAO9C,OAAOzE;;AACjD,0FAAA4D,cAAA,CAACuD,mBAAMK,KAAK,EAAA,EAAA;;;;AAGhB,8EAAA5D,cAAA,CAACmD,kBAAKE,IAAI,EAAA;oEAACC,GAAK,EAAA,CAAA;oEAAGhB,SAAU,EAAA,QAAA;oEAASC,UAAW,EAAA,SAAA;4FAC/CpC,eAAA,CAACoD,mBAAMH,IAAI,EAAA;wEACThH,IAAK,EAAA,aAAA;wEACL4C,KAAO8B,EAAAA,MAAAA,CAAOrE,WAAW,IAAIK,aAAc,CAAA;AAAEN,4EAAAA,EAAAA,EAAIsE,OAAOrE;AAAY,yEAAA,CAAA;;AAEpE,0FAAAuD,cAAA,CAACuD,mBAAMC,KAAK,EAAA;0FACT1G,aAAc,CAAA;oFACbN,EAAI,EAAA,oBAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;0FAEFI,cAAC6D,CAAAA,qBAAAA,EAAAA;gFAASH,QAAU1C,EAAAA,YAAAA;AAAc2C,gFAAAA,KAAAA,EAAO9C,OAAOpE;;;;;;;;;;0DAM1DuD,cAACwC,CAAAA,gBAAAA,EAAAA;gDAAIG,MAAO,EAAA,cAAA;gDAAeC,SAAS,EAAA,IAAA;AAClC,gDAAA,QAAA,gBAAA5C,cAAC8D,CAAAA,uBAAAA,EAAAA;oDACCC,cAAgB,EAAA,KAAA;oDAChBC,GAAK9G,EAAAA,cAAAA;oDACLyC,WAAazB,EAAAA,eAAAA;oDACb+F,MAAQlG,EAAAA;;;;;;;;;;;;AAW9B;AAEA,MAAMkF,eAAAA,GAAkBiB,uBAAOC,CAAAA,GAAG;oBACd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;cAC/C,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACE,UAAU,CAAC;WAC5C,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAK,CAAC,EAAEA,MAAMI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAEJ,KAAMI,CAAAA,MAAM,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;SAC3D,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACI,UAAU,CAAC;AACjC,iBAAA,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAAA,CAAMM,YAAY,CAAC;;;AAGrD,CAAC;AAED;;AAEkG,2GAE5FC,mBAAsB,GAAA,IAAA;IAC1B,MAAMhF,WAAAA,GAAciF,sBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACnF,WAAW,CAACoF,QAAQ,EAAEC,KAAMC,CAAAA,MAAAA,CAAAA;IAGzD,qBACEjF,cAAA,CAACC,iBAAKiF,OAAO,EAAA;QAACvF,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAK,cAACtD,CAAAA,UAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
1
+ {"version":3,"file":"CreatePage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var designSystem = require('@strapi/design-system');
4
- var styledComponents = require('styled-components');
4
+ var styled = require('styled-components');
5
5
 
6
- const CollapseLabel = styledComponents.styled(designSystem.Flex)`
6
+ const CollapseLabel = styled.styled(designSystem.Flex)`
7
7
  padding-right: ${({ theme })=>theme.spaces[2]};
8
8
  overflow: hidden;
9
9
  flex: 1;
@@ -1 +1 @@
1
- {"version":3,"file":"CollapseLabel.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapseLabel.tsx"],"sourcesContent":["import { Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst CollapseLabel = styled<FlexComponent>(Flex)<{ $isCollapsable: boolean }>`\n padding-right: ${({ theme }) => theme.spaces[2]};\n overflow: hidden;\n flex: 1;\n ${({ $isCollapsable }) => $isCollapsable && 'cursor: pointer;'}\n`;\n\nexport { CollapseLabel };\n"],"names":["CollapseLabel","styled","Flex","theme","spaces","$isCollapsable"],"mappings":";;;;;AAGMA,MAAAA,aAAAA,GAAgBC,uBAAsBC,CAAAA,iBAAAA,CAAkC;iBAC7D,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;AAGhD,EAAA,EAAE,CAAC,EAAEC,cAAc,EAAE,GAAKA,kBAAkB,kBAAmB;AACjE;;;;"}
1
+ {"version":3,"file":"CollapseLabel.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapseLabel.tsx"],"sourcesContent":["import { Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst CollapseLabel = styled<FlexComponent>(Flex)<{ $isCollapsable: boolean }>`\n padding-right: ${({ theme }) => theme.spaces[2]};\n overflow: hidden;\n flex: 1;\n ${({ $isCollapsable }) => $isCollapsable && 'cursor: pointer;'}\n`;\n\nexport { CollapseLabel };\n"],"names":["CollapseLabel","styled","Flex","theme","spaces","$isCollapsable"],"mappings":";;;;;AAGMA,MAAAA,aAAAA,GAAgBC,aAAsBC,CAAAA,iBAAAA,CAAkC;iBAC7D,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;AAGhD,EAAA,EAAE,CAAC,EAAEC,cAAc,EAAE,GAAKA,kBAAkB,kBAAmB;AACjE;;;;"}
@@ -6,7 +6,7 @@ var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var get = require('lodash/get');
8
8
  var reactIntl = require('react-intl');
9
- var styledComponents = require('styled-components');
9
+ var styled = require('styled-components');
10
10
  var usePermissionsDataManager = require('../hooks/usePermissionsDataManager.js');
11
11
  var constants = require('../utils/constants.js');
12
12
  var getCheckboxState = require('../utils/getCheckboxState.js');
@@ -243,7 +243,7 @@ const ActionRow = ({ childrenForm = [], label, isFormDisabled = false, name, req
243
243
  }, {});
244
244
  return getCheckboxState.getCheckboxState(data);
245
245
  };
246
- const Wrapper = styledComponents.styled(designSystem.Flex)`
246
+ const Wrapper = styled.styled(designSystem.Flex)`
247
247
  height: ${constants.rowHeight};
248
248
  flex: 1;
249
249
 
@@ -258,7 +258,7 @@ const Wrapper = styledComponents.styled(designSystem.Flex)`
258
258
  `}
259
259
  ${({ $isActive, theme })=>$isActive && activeStyle(theme)};
260
260
  `;
261
- const CarretIcon = styledComponents.styled(icons.CaretDown)`
261
+ const CarretIcon = styled.styled(icons.CaretDown)`
262
262
  display: none;
263
263
 
264
264
  svg {
@@ -453,10 +453,10 @@ const SubActionRow = ({ childrenForm = [], isFormDisabled, recursiveLevel, pathT
453
453
  ]
454
454
  });
455
455
  };
456
- const LeftBorderTimeline = styledComponents.styled(designSystem.Box)`
456
+ const LeftBorderTimeline = styled.styled(designSystem.Box)`
457
457
  border-left: ${({ $isVisible, theme })=>$isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};
458
458
  `;
459
- const RowStyle = styledComponents.styled(designSystem.Flex)`
459
+ const RowStyle = styled.styled(designSystem.Flex)`
460
460
  padding-left: ${({ theme })=>theme.spaces[4]};
461
461
  width: ${({ $level })=>145 - $level * 36}px;
462
462
 
@@ -471,8 +471,8 @@ const RowStyle = styledComponents.styled(designSystem.Flex)`
471
471
  `}
472
472
  ${({ $isActive, theme })=>$isActive && activeStyle(theme)};
473
473
  `;
474
- const RowLabel = styledComponents.styled(designSystem.Typography)``;
475
- const TopTimeline = styledComponents.styled.div`
474
+ const RowLabel = styled.styled(designSystem.Typography)``;
475
+ const TopTimeline = styled.styled.div`
476
476
  padding-top: ${({ theme })=>theme.spaces[2]};
477
477
  margin-top: ${({ theme })=>theme.spaces[2]};
478
478
  width: 0.4rem;
@@ -480,7 +480,7 @@ const TopTimeline = styledComponents.styled.div`
480
480
  border-top-left-radius: 2px;
481
481
  border-top-right-radius: 2px;
482
482
  `;
483
- const StyledBox = styledComponents.styled(designSystem.Box)`
483
+ const StyledBox = styled.styled(designSystem.Box)`
484
484
  transform: translate(-4px, -12px);
485
485
 
486
486
  &:before {
@@ -491,7 +491,7 @@ const StyledBox = styledComponents.styled(designSystem.Box)`
491
491
  display: block;
492
492
  }
493
493
  `;
494
- const Svg = styledComponents.styled.svg`
494
+ const Svg = styled.styled.svg`
495
495
  position: relative;
496
496
  flex-shrink: 0;
497
497
  transform: translate(-0.5px, -1px);
@@ -545,7 +545,7 @@ const Header = ({ headers = [], label })=>{
545
545
  ]
546
546
  });
547
547
  };
548
- const activeStyle = (theme)=>styledComponents.css`
548
+ const activeStyle = (theme)=>styled.css`
549
549
  color: ${theme.colors.primary600};
550
550
  font-weight: ${theme.fontWeights.bold};
551
551