@strapi/admin 5.26.0 → 5.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/dist/admin/admin/src/components/DragLayer.js +67 -0
  2. package/dist/admin/admin/src/components/DragLayer.js.map +1 -0
  3. package/dist/admin/admin/src/components/DragLayer.mjs +64 -0
  4. package/dist/admin/admin/src/components/DragLayer.mjs.map +1 -0
  5. package/dist/admin/admin/src/components/ErrorElement.js +10 -3
  6. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  7. package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
  8. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GapDropZone.js +292 -0
  10. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -0
  11. package/dist/admin/admin/src/components/GapDropZone.mjs +268 -0
  12. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -0
  13. package/dist/admin/admin/src/components/GuidedTour/Context.js +15 -0
  14. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  15. package/dist/admin/admin/src/components/GuidedTour/Context.mjs +15 -0
  16. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
  18. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
  19. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
  20. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
  21. package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
  22. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  23. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
  24. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +2 -2
  26. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  27. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +2 -2
  28. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  30. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
  32. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
  34. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  35. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
  36. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
  38. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
  40. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
  42. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  43. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
  44. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
  46. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  47. package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
  48. package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/LeftMenu.js +147 -92
  50. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  51. package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
  52. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
  54. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  55. package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
  56. package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
  58. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
  59. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
  60. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
  61. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
  62. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
  63. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
  64. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
  65. package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
  66. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  67. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
  68. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  69. package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
  70. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  71. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
  72. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  73. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
  74. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  75. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
  76. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
  77. package/dist/admin/admin/src/components/NpsSurvey.js +159 -119
  78. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  79. package/dist/admin/admin/src/components/NpsSurvey.mjs +160 -120
  80. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  81. package/dist/admin/admin/src/components/PageHelpers.js +1 -1
  82. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  83. package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
  84. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  85. package/dist/admin/admin/src/components/Providers.js +2 -4
  86. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  87. package/dist/admin/admin/src/components/Providers.mjs +2 -4
  88. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  89. package/dist/admin/admin/src/components/ResizeIndicator.js +353 -0
  90. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -0
  91. package/dist/admin/admin/src/components/ResizeIndicator.mjs +332 -0
  92. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -0
  93. package/dist/admin/admin/src/components/SubNav.js +98 -33
  94. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  95. package/dist/admin/admin/src/components/SubNav.mjs +99 -34
  96. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  97. package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
  98. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  99. package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
  100. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  101. package/dist/admin/admin/src/components/WidgetRoot.js +216 -0
  102. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -0
  103. package/dist/admin/admin/src/components/WidgetRoot.mjs +195 -0
  104. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -0
  105. package/dist/admin/admin/src/constants/theme.js +12 -0
  106. package/dist/admin/admin/src/constants/theme.js.map +1 -0
  107. package/dist/admin/admin/src/constants/theme.mjs +9 -0
  108. package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
  109. package/dist/admin/admin/src/features/Notifications.js +14 -7
  110. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  111. package/dist/admin/admin/src/features/Notifications.mjs +15 -8
  112. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  113. package/dist/admin/admin/src/features/Tracking.js +5 -1
  114. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  115. package/dist/admin/admin/src/features/Tracking.mjs +5 -1
  116. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  117. package/dist/admin/admin/src/features/Widgets.js +276 -0
  118. package/dist/admin/admin/src/features/Widgets.js.map +1 -0
  119. package/dist/admin/admin/src/features/Widgets.mjs +255 -0
  120. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -0
  121. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +1 -1
  122. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  123. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs +1 -1
  124. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
  125. package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
  126. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
  127. package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
  128. package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
  129. package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
  130. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
  131. package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
  132. package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
  133. package/dist/admin/admin/src/hooks/useMenu.js +19 -0
  134. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  135. package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
  136. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  137. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
  138. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  139. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
  140. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  141. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
  142. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  143. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
  144. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
  146. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  147. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
  148. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  149. package/dist/admin/admin/src/pages/Home/HomePage.js +200 -130
  150. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  151. package/dist/admin/admin/src/pages/Home/HomePage.mjs +202 -132
  152. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +189 -0
  154. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -0
  155. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +168 -0
  156. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -0
  157. package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
  158. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  159. package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
  160. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
  162. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
  164. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
  166. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
  168. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +2 -2
  172. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
  176. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
  178. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
  180. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
  182. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
  184. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
  186. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
  188. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
  190. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +36 -32
  192. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  193. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
  194. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  195. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
  196. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  197. package/dist/admin/admin/src/services/api.js +2 -1
  198. package/dist/admin/admin/src/services/api.js.map +1 -1
  199. package/dist/admin/admin/src/services/api.mjs +2 -1
  200. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  201. package/dist/admin/admin/src/services/auth.js +13 -2
  202. package/dist/admin/admin/src/services/auth.js.map +1 -1
  203. package/dist/admin/admin/src/services/auth.mjs +12 -3
  204. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  205. package/dist/admin/admin/src/services/homepage.js +11 -4
  206. package/dist/admin/admin/src/services/homepage.js.map +1 -1
  207. package/dist/admin/admin/src/services/homepage.mjs +11 -4
  208. package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
  209. package/dist/admin/admin/src/translations/en.json.js +7 -1
  210. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  211. package/dist/admin/admin/src/translations/en.json.mjs +7 -1
  212. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  213. package/dist/admin/admin/src/translations/uk.json.js +9 -9
  214. package/dist/admin/admin/src/translations/uk.json.mjs +9 -9
  215. package/dist/admin/admin/src/utils/resizeHandlers.js +109 -0
  216. package/dist/admin/admin/src/utils/resizeHandlers.js.map +1 -0
  217. package/dist/admin/admin/src/utils/resizeHandlers.mjs +100 -0
  218. package/dist/admin/admin/src/utils/resizeHandlers.mjs.map +1 -0
  219. package/dist/admin/admin/src/utils/widgetLayout.js +293 -0
  220. package/dist/admin/admin/src/utils/widgetLayout.js.map +1 -0
  221. package/dist/admin/admin/src/utils/widgetLayout.mjs +273 -0
  222. package/dist/admin/admin/src/utils/widgetLayout.mjs.map +1 -0
  223. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
  224. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  225. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
  226. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  227. package/dist/admin/ee/admin/src/services/ai.js +5 -2
  228. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  229. package/dist/admin/ee/admin/src/services/ai.mjs +5 -2
  230. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  231. package/dist/admin/index.js +11 -0
  232. package/dist/admin/index.js.map +1 -1
  233. package/dist/admin/index.mjs +4 -0
  234. package/dist/admin/index.mjs.map +1 -1
  235. package/dist/admin/src/components/DragLayer.d.ts +8 -4
  236. package/dist/admin/src/components/GapDropZone.d.ts +36 -0
  237. package/dist/admin/src/components/GuidedTour/Context.d.ts +4 -0
  238. package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
  239. package/dist/admin/src/components/LeftMenu.d.ts +2 -2
  240. package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
  241. package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
  242. package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
  243. package/dist/admin/src/components/ResizeIndicator.d.ts +12 -0
  244. package/dist/admin/src/components/SubNav.d.ts +18 -5
  245. package/dist/admin/src/components/WidgetRoot.d.ts +14 -0
  246. package/dist/admin/src/constants/theme.d.ts +7 -0
  247. package/dist/admin/src/core/store/configure.d.ts +2 -2
  248. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  249. package/dist/admin/src/features/Tracking.d.ts +1 -1
  250. package/dist/admin/src/features/Widgets.d.ts +29 -0
  251. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  252. package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
  253. package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
  254. package/dist/admin/src/hooks/useMenu.d.ts +9 -1
  255. package/dist/admin/src/index.d.ts +4 -0
  256. package/dist/admin/src/pages/Home/HomePage.d.ts +4 -5
  257. package/dist/admin/src/pages/Home/components/AddWidgetModal.d.ts +10 -0
  258. package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
  259. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  260. package/dist/admin/src/selectors.d.ts +2 -2
  261. package/dist/admin/src/services/admin.d.ts +6 -6
  262. package/dist/admin/src/services/api.d.ts +1 -1
  263. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  264. package/dist/admin/src/services/auth.d.ts +21 -12
  265. package/dist/admin/src/services/contentApi.d.ts +1 -1
  266. package/dist/admin/src/services/contentManager.d.ts +1 -1
  267. package/dist/admin/src/services/homepage.d.ts +3 -3
  268. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  269. package/dist/admin/src/services/users.d.ts +8 -8
  270. package/dist/admin/src/services/webhooks.d.ts +2 -2
  271. package/dist/admin/src/utils/resizeHandlers.d.ts +58 -0
  272. package/dist/admin/src/utils/widgetLayout.d.ts +78 -0
  273. package/dist/admin/tests/utils.d.ts +1 -1
  274. package/dist/ee/admin/src/services/ai.d.ts +2 -2
  275. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  276. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  277. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +4 -2
  278. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  279. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +4 -2
  280. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  281. package/dist/server/server/src/bootstrap.js +5 -0
  282. package/dist/server/server/src/bootstrap.js.map +1 -1
  283. package/dist/server/server/src/bootstrap.mjs +5 -0
  284. package/dist/server/server/src/bootstrap.mjs.map +1 -1
  285. package/dist/server/server/src/controllers/authenticated-user.js +15 -0
  286. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  287. package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
  288. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  289. package/dist/server/server/src/routes/users.js +10 -0
  290. package/dist/server/server/src/routes/users.js.map +1 -1
  291. package/dist/server/server/src/routes/users.mjs +10 -0
  292. package/dist/server/server/src/routes/users.mjs.map +1 -1
  293. package/dist/server/server/src/services/user.js +113 -1
  294. package/dist/server/server/src/services/user.js.map +1 -1
  295. package/dist/server/server/src/services/user.mjs +113 -1
  296. package/dist/server/server/src/services/user.mjs.map +1 -1
  297. package/dist/server/shared/utils/session-auth.js +4 -2
  298. package/dist/server/shared/utils/session-auth.js.map +1 -1
  299. package/dist/server/shared/utils/session-auth.mjs +4 -2
  300. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  301. package/dist/server/src/bootstrap.d.ts.map +1 -1
  302. package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
  303. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  304. package/dist/server/src/controllers/index.d.ts +1 -0
  305. package/dist/server/src/controllers/index.d.ts.map +1 -1
  306. package/dist/server/src/index.d.ts +5 -0
  307. package/dist/server/src/index.d.ts.map +1 -1
  308. package/dist/server/src/routes/users.d.ts.map +1 -1
  309. package/dist/server/src/services/index.d.ts +4 -0
  310. package/dist/server/src/services/index.d.ts.map +1 -1
  311. package/dist/server/src/services/user.d.ts +4 -0
  312. package/dist/server/src/services/user.d.ts.map +1 -1
  313. package/dist/shared/contracts/homepage.d.ts +8 -4
  314. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  315. package/dist/shared/contracts/users.d.ts +16 -0
  316. package/dist/shared/contracts/users.d.ts.map +1 -1
  317. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  318. package/package.json +7 -7
@@ -0,0 +1,189 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var reactIntl = require('react-intl');
8
+ var styled = require('styled-components');
9
+ var HomePage = require('../HomePage.js');
10
+
11
+ function _interopNamespaceDefault(e) {
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
+
30
+ // Hide scrollbars in widget previews
31
+ const WidgetWrapper = styled(designSystem.Box)`
32
+ * {
33
+ scrollbar-width: none;
34
+ -ms-overflow-style: none;
35
+ }
36
+
37
+ *::-webkit-scrollbar {
38
+ display: none;
39
+ }
40
+ `;
41
+ // Interactive widget preview container
42
+ const WidgetPreviewContainer = styled(designSystem.Box)`
43
+ &:hover {
44
+ background-color: ${({ theme })=>theme.colors.primary100};
45
+ border-color: ${({ theme })=>theme.colors.primary200};
46
+ }
47
+
48
+ &:focus-visible {
49
+ background-color: ${({ theme })=>theme.colors.primary100};
50
+ border-color: ${({ theme })=>theme.colors.primary200};
51
+ outline-offset: 0;
52
+ }
53
+ `;
54
+ const WidgetPreview = ({ widget, onSelect })=>{
55
+ const { formatMessage } = reactIntl.useIntl();
56
+ const Icon = widget.icon || icons.PuzzlePiece;
57
+ const handleKeyDown = (event)=>{
58
+ if (event.key === 'Enter' || event.key === ' ') {
59
+ event.preventDefault();
60
+ onSelect();
61
+ }
62
+ };
63
+ return /*#__PURE__*/ jsxRuntime.jsx(WidgetPreviewContainer, {
64
+ padding: 4,
65
+ background: "neutral0",
66
+ borderColor: "neutral200",
67
+ hasRadius: true,
68
+ shadow: "tableShadow",
69
+ onClick: onSelect,
70
+ onKeyDown: handleKeyDown,
71
+ width: '100%',
72
+ cursor: "pointer",
73
+ tabIndex: 0,
74
+ role: "button",
75
+ "aria-label": formatMessage({
76
+ id: 'HomePage.addWidget.selectWidget',
77
+ defaultMessage: 'Select {widgetName} widget'
78
+ }, {
79
+ widgetName: formatMessage(widget.title)
80
+ }),
81
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
82
+ direction: "column",
83
+ alignItems: "center",
84
+ gap: 3,
85
+ children: [
86
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
87
+ gap: 2,
88
+ marginRight: "auto",
89
+ children: [
90
+ /*#__PURE__*/ jsxRuntime.jsx(Icon, {
91
+ fill: "neutral500",
92
+ "aria-hidden": true
93
+ }),
94
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
95
+ textColor: "neutral500",
96
+ variant: "sigma",
97
+ tag: "h2",
98
+ children: formatMessage(widget.title)
99
+ })
100
+ ]
101
+ }),
102
+ /*#__PURE__*/ jsxRuntime.jsx(WidgetWrapper, {
103
+ width: '100%',
104
+ style: {
105
+ pointerEvents: 'none'
106
+ },
107
+ children: /*#__PURE__*/ jsxRuntime.jsx(HomePage.WidgetComponent, {
108
+ component: widget.component,
109
+ columnWidth: 4
110
+ })
111
+ })
112
+ ]
113
+ })
114
+ });
115
+ };
116
+ const AddWidgetModal = ({ isOpen, onClose, onAddWidget, currentWidgets, availableWidgets })=>{
117
+ const { formatMessage } = reactIntl.useIntl();
118
+ const currentWidgetUids = React__namespace.useMemo(()=>new Set(currentWidgets.map((widget)=>widget.uid)), [
119
+ currentWidgets
120
+ ]);
121
+ const handleWidgetSelect = (widget)=>{
122
+ if (!currentWidgetUids.has(widget.uid)) {
123
+ onAddWidget(widget);
124
+ onClose();
125
+ }
126
+ };
127
+ const addableWidgets = availableWidgets.filter((widget)=>!currentWidgetUids.has(widget.uid));
128
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
129
+ open: isOpen,
130
+ onOpenChange: onClose,
131
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Content, {
132
+ children: [
133
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
134
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Title, {
135
+ children: formatMessage({
136
+ id: 'HomePage.addWidget.title',
137
+ defaultMessage: 'Add Widget'
138
+ })
139
+ })
140
+ }),
141
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
142
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
143
+ children: addableWidgets.length === 0 ? /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
144
+ direction: "column",
145
+ alignItems: "center",
146
+ gap: 4,
147
+ children: [
148
+ /*#__PURE__*/ jsxRuntime.jsx(icons.PuzzlePiece, {
149
+ width: "4rem",
150
+ height: "4rem",
151
+ fill: "neutral300"
152
+ }),
153
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
154
+ textColor: "neutral500",
155
+ textAlign: "center",
156
+ children: formatMessage({
157
+ id: 'HomePage.addWidget.noWidgetsAvailable',
158
+ defaultMessage: 'No widgets available to add'
159
+ })
160
+ })
161
+ ]
162
+ }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
163
+ direction: "column",
164
+ gap: 3,
165
+ justifyContent: "center",
166
+ children: addableWidgets.map((widget)=>/*#__PURE__*/ jsxRuntime.jsx(WidgetPreview, {
167
+ widget: widget,
168
+ onSelect: ()=>handleWidgetSelect(widget)
169
+ }, widget.uid))
170
+ })
171
+ })
172
+ }),
173
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Footer, {
174
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
175
+ onClick: onClose,
176
+ variant: "tertiary",
177
+ children: formatMessage({
178
+ id: 'app.components.Button.cancel',
179
+ defaultMessage: 'Cancel'
180
+ })
181
+ })
182
+ })
183
+ ]
184
+ })
185
+ });
186
+ };
187
+
188
+ exports.AddWidgetModal = AddWidgetModal;
189
+ //# sourceMappingURL=AddWidgetModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddWidgetModal.js","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Box, Modal, Flex, Typography, Button } from '@strapi/design-system';
4
+ import { PuzzlePiece } from '@strapi/icons';
5
+ import { useIntl } from 'react-intl';
6
+ import styled from 'styled-components';
7
+ import { WidgetComponent } from '../HomePage.mjs';
8
+
9
+ // Hide scrollbars in widget previews
10
+ const WidgetWrapper = styled(Box)`
11
+ * {
12
+ scrollbar-width: none;
13
+ -ms-overflow-style: none;
14
+ }
15
+
16
+ *::-webkit-scrollbar {
17
+ display: none;
18
+ }
19
+ `;
20
+ // Interactive widget preview container
21
+ const WidgetPreviewContainer = styled(Box)`
22
+ &:hover {
23
+ background-color: ${({ theme })=>theme.colors.primary100};
24
+ border-color: ${({ theme })=>theme.colors.primary200};
25
+ }
26
+
27
+ &:focus-visible {
28
+ background-color: ${({ theme })=>theme.colors.primary100};
29
+ border-color: ${({ theme })=>theme.colors.primary200};
30
+ outline-offset: 0;
31
+ }
32
+ `;
33
+ const WidgetPreview = ({ widget, onSelect })=>{
34
+ const { formatMessage } = useIntl();
35
+ const Icon = widget.icon || PuzzlePiece;
36
+ const handleKeyDown = (event)=>{
37
+ if (event.key === 'Enter' || event.key === ' ') {
38
+ event.preventDefault();
39
+ onSelect();
40
+ }
41
+ };
42
+ return /*#__PURE__*/ jsx(WidgetPreviewContainer, {
43
+ padding: 4,
44
+ background: "neutral0",
45
+ borderColor: "neutral200",
46
+ hasRadius: true,
47
+ shadow: "tableShadow",
48
+ onClick: onSelect,
49
+ onKeyDown: handleKeyDown,
50
+ width: '100%',
51
+ cursor: "pointer",
52
+ tabIndex: 0,
53
+ role: "button",
54
+ "aria-label": formatMessage({
55
+ id: 'HomePage.addWidget.selectWidget',
56
+ defaultMessage: 'Select {widgetName} widget'
57
+ }, {
58
+ widgetName: formatMessage(widget.title)
59
+ }),
60
+ children: /*#__PURE__*/ jsxs(Flex, {
61
+ direction: "column",
62
+ alignItems: "center",
63
+ gap: 3,
64
+ children: [
65
+ /*#__PURE__*/ jsxs(Flex, {
66
+ gap: 2,
67
+ marginRight: "auto",
68
+ children: [
69
+ /*#__PURE__*/ jsx(Icon, {
70
+ fill: "neutral500",
71
+ "aria-hidden": true
72
+ }),
73
+ /*#__PURE__*/ jsx(Typography, {
74
+ textColor: "neutral500",
75
+ variant: "sigma",
76
+ tag: "h2",
77
+ children: formatMessage(widget.title)
78
+ })
79
+ ]
80
+ }),
81
+ /*#__PURE__*/ jsx(WidgetWrapper, {
82
+ width: '100%',
83
+ style: {
84
+ pointerEvents: 'none'
85
+ },
86
+ children: /*#__PURE__*/ jsx(WidgetComponent, {
87
+ component: widget.component,
88
+ columnWidth: 4
89
+ })
90
+ })
91
+ ]
92
+ })
93
+ });
94
+ };
95
+ const AddWidgetModal = ({ isOpen, onClose, onAddWidget, currentWidgets, availableWidgets })=>{
96
+ const { formatMessage } = useIntl();
97
+ const currentWidgetUids = React.useMemo(()=>new Set(currentWidgets.map((widget)=>widget.uid)), [
98
+ currentWidgets
99
+ ]);
100
+ const handleWidgetSelect = (widget)=>{
101
+ if (!currentWidgetUids.has(widget.uid)) {
102
+ onAddWidget(widget);
103
+ onClose();
104
+ }
105
+ };
106
+ const addableWidgets = availableWidgets.filter((widget)=>!currentWidgetUids.has(widget.uid));
107
+ return /*#__PURE__*/ jsx(Modal.Root, {
108
+ open: isOpen,
109
+ onOpenChange: onClose,
110
+ children: /*#__PURE__*/ jsxs(Modal.Content, {
111
+ children: [
112
+ /*#__PURE__*/ jsx(Modal.Header, {
113
+ children: /*#__PURE__*/ jsx(Modal.Title, {
114
+ children: formatMessage({
115
+ id: 'HomePage.addWidget.title',
116
+ defaultMessage: 'Add Widget'
117
+ })
118
+ })
119
+ }),
120
+ /*#__PURE__*/ jsx(Modal.Body, {
121
+ children: /*#__PURE__*/ jsx(Box, {
122
+ children: addableWidgets.length === 0 ? /*#__PURE__*/ jsxs(Flex, {
123
+ direction: "column",
124
+ alignItems: "center",
125
+ gap: 4,
126
+ children: [
127
+ /*#__PURE__*/ jsx(PuzzlePiece, {
128
+ width: "4rem",
129
+ height: "4rem",
130
+ fill: "neutral300"
131
+ }),
132
+ /*#__PURE__*/ jsx(Typography, {
133
+ textColor: "neutral500",
134
+ textAlign: "center",
135
+ children: formatMessage({
136
+ id: 'HomePage.addWidget.noWidgetsAvailable',
137
+ defaultMessage: 'No widgets available to add'
138
+ })
139
+ })
140
+ ]
141
+ }) : /*#__PURE__*/ jsx(Flex, {
142
+ direction: "column",
143
+ gap: 3,
144
+ justifyContent: "center",
145
+ children: addableWidgets.map((widget)=>/*#__PURE__*/ jsx(WidgetPreview, {
146
+ widget: widget,
147
+ onSelect: ()=>handleWidgetSelect(widget)
148
+ }, widget.uid))
149
+ })
150
+ })
151
+ }),
152
+ /*#__PURE__*/ jsx(Modal.Footer, {
153
+ children: /*#__PURE__*/ jsx(Button, {
154
+ onClick: onClose,
155
+ variant: "tertiary",
156
+ children: formatMessage({
157
+ id: 'app.components.Button.cancel',
158
+ defaultMessage: 'Cancel'
159
+ })
160
+ })
161
+ })
162
+ ]
163
+ })
164
+ });
165
+ };
166
+
167
+ export { AddWidgetModal };
168
+ //# sourceMappingURL=AddWidgetModal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddWidgetModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
@@ -17,6 +17,7 @@ var Auth = require('../features/Auth.js');
17
17
  var Notifications = require('../features/Notifications.js');
18
18
  var Tracking = require('../features/Tracking.js');
19
19
  var useAPIErrorHandler = require('../hooks/useAPIErrorHandler.js');
20
+ var useMediaQuery = require('../hooks/useMediaQuery.js');
20
21
  var reducer = require('../reducer.js');
21
22
  var auth = require('../services/auth.js');
22
23
  var baseQuery = require('../utils/baseQuery.js');
@@ -79,6 +80,7 @@ const PROFILE_VALIDTION_SCHEMA = yup__namespace.object().shape({
79
80
  });
80
81
  };
81
82
  const ProfilePage = ()=>{
83
+ const isDesktop = useMediaQuery.useIsDesktop();
82
84
  const localeNames = hooks.useTypedSelector((state)=>state.admin_app.language.localeNames);
83
85
  const { formatMessage } = reactIntl.useIntl();
84
86
  const { trackUsage } = Tracking.useTracking();
@@ -184,62 +186,63 @@ const ProfilePage = ()=>{
184
186
  confirmPassword: '',
185
187
  password: ''
186
188
  };
187
- return /*#__PURE__*/ jsxRuntime.jsxs(PageHelpers.Page.Main, {
188
- "aria-busy": isSubmittingForm,
189
- children: [
190
- /*#__PURE__*/ jsxRuntime.jsx(PageHelpers.Page.Title, {
191
- children: formatMessage({
192
- id: 'Settings.profile.form.section.head.title',
193
- defaultMessage: 'User profile'
194
- })
195
- }),
196
- /*#__PURE__*/ jsxRuntime.jsx(Form.Form, {
197
- method: "PUT",
198
- onSubmit: handleSubmit,
199
- initialValues: initialData,
200
- validationSchema: PROFILE_VALIDTION_SCHEMA,
201
- children: ({ isSubmitting, modified })=>/*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
202
- children: [
203
- /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Header, {
204
- title: users.getDisplayName(user),
205
- primaryAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
206
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
207
- loading: isSubmitting,
208
- type: "submit",
209
- disabled: !modified,
210
- children: formatMessage({
211
- id: 'global.save',
212
- defaultMessage: 'Save'
189
+ return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
190
+ children: /*#__PURE__*/ jsxRuntime.jsxs(PageHelpers.Page.Main, {
191
+ "aria-busy": isSubmittingForm,
192
+ children: [
193
+ /*#__PURE__*/ jsxRuntime.jsx(PageHelpers.Page.Title, {
194
+ children: formatMessage({
195
+ id: 'Settings.profile.form.section.head.title',
196
+ defaultMessage: 'User profile'
197
+ })
198
+ }),
199
+ /*#__PURE__*/ jsxRuntime.jsx(Form.Form, {
200
+ method: "PUT",
201
+ onSubmit: handleSubmit,
202
+ initialValues: initialData,
203
+ validationSchema: PROFILE_VALIDTION_SCHEMA,
204
+ children: ({ isSubmitting, modified })=>/*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
205
+ children: [
206
+ /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Header, {
207
+ title: users.getDisplayName(user),
208
+ primaryAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
209
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
210
+ loading: isSubmitting,
211
+ type: "submit",
212
+ disabled: !modified,
213
+ children: formatMessage({
214
+ id: 'global.save',
215
+ defaultMessage: 'Save'
216
+ })
213
217
  })
214
- })
215
- }),
216
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
217
- paddingBottom: 6,
218
- children: /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
219
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
220
- direction: "column",
221
- alignItems: "stretch",
222
- gap: 6,
223
- children: [
224
- /*#__PURE__*/ jsxRuntime.jsx(UserInfoSection, {}),
225
- !hasLockedRole && /*#__PURE__*/ jsxRuntime.jsx(PasswordSection, {}),
226
- /*#__PURE__*/ jsxRuntime.jsx(PreferencesSection, {
227
- localeNames: localeNames
228
- })
229
- ]
218
+ }),
219
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
220
+ paddingBottom: 6,
221
+ children: /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
222
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
223
+ direction: "column",
224
+ alignItems: "stretch",
225
+ gap: 6,
226
+ children: [
227
+ /*#__PURE__*/ jsxRuntime.jsx(UserInfoSection, {}),
228
+ !hasLockedRole && /*#__PURE__*/ jsxRuntime.jsx(PasswordSection, {}),
229
+ /*#__PURE__*/ jsxRuntime.jsx(PreferencesSection, {
230
+ localeNames: localeNames
231
+ })
232
+ ]
233
+ })
230
234
  })
231
235
  })
232
- })
233
- ]
236
+ ]
237
+ })
238
+ }),
239
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
240
+ children: /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
241
+ children: /*#__PURE__*/ jsxRuntime.jsx(GuidedTourSection, {})
234
242
  })
235
- }),
236
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
237
- paddingBottom: 10,
238
- children: /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
239
- children: /*#__PURE__*/ jsxRuntime.jsx(GuidedTourSection, {})
240
243
  })
241
- })
242
- ]
244
+ ]
245
+ })
243
246
  });
244
247
  };
245
248
  /* -------------------------------------------------------------------------------------------------