@centreon/ui 23.10.121 → 24.4.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 (374) hide show
  1. package/package.json +64 -45
  2. package/public/mockServiceWorker.js +2 -2
  3. package/src/ActionsList/ActionsList.styles.ts +40 -71
  4. package/src/Button/Icon/index.stories.tsx +1 -1
  5. package/src/Button/Icon/index.tsx +2 -2
  6. package/src/Button/Save/StartIcon.tsx +3 -3
  7. package/src/Button/Save/index.tsx +9 -5
  8. package/src/Checkbox/Checkbox.tsx +2 -2
  9. package/src/Checkbox/CheckboxGroup/index.tsx +2 -2
  10. package/src/Checkbox/fonts/roboto-bold-webfont.ttf +0 -0
  11. package/src/Checkbox/fonts/roboto-bold-webfont.woff +0 -0
  12. package/src/Checkbox/fonts/roboto-bold-webfont.woff2 +0 -0
  13. package/src/Checkbox/fonts/roboto-light-webfont.ttf +0 -0
  14. package/src/Checkbox/fonts/roboto-light-webfont.woff +0 -0
  15. package/src/Checkbox/fonts/roboto-light-webfont.woff2 +0 -0
  16. package/src/Checkbox/fonts/roboto-medium-webfont.ttf +0 -0
  17. package/src/Checkbox/fonts/roboto-medium-webfont.woff +0 -0
  18. package/src/Checkbox/fonts/roboto-medium-webfont.woff2 +0 -0
  19. package/src/Checkbox/fonts/roboto-regular-webfont.ttf +0 -0
  20. package/src/Checkbox/fonts/roboto-regular-webfont.woff +0 -0
  21. package/src/Checkbox/fonts/roboto-regular-webfont.woff2 +0 -0
  22. package/src/Dashboard/Dashboard.styles.ts +6 -5
  23. package/src/Dashboard/Item.tsx +1 -1
  24. package/src/Dashboard/Layout.tsx +2 -2
  25. package/src/Dashboard/utils.ts +1 -1
  26. package/src/Dialog/Confirm/index.tsx +10 -2
  27. package/src/Dialog/UnsavedChanges/index.tsx +21 -20
  28. package/src/Dialog/UnsavedChanges/translatedLabels.ts +4 -6
  29. package/src/Dialog/index.tsx +9 -2
  30. package/src/FallbackPage/FallbackPage.tsx +3 -3
  31. package/src/FileDropZone/index.tsx +3 -1
  32. package/src/Form/Form.cypress.spec.tsx +133 -0
  33. package/src/Form/Inputs/Grid.tsx +8 -4
  34. package/src/Form/Inputs/List/Content.tsx +62 -0
  35. package/src/Form/Inputs/List/List.styles.ts +29 -0
  36. package/src/Form/Inputs/List/List.tsx +58 -0
  37. package/src/Form/Inputs/List/useList.ts +81 -0
  38. package/src/Form/Inputs/Text.tsx +3 -1
  39. package/src/Form/Inputs/index.tsx +3 -1
  40. package/src/Form/Inputs/models.ts +23 -13
  41. package/src/Graph/BarStack/BarStack.cypress.spec.tsx +217 -0
  42. package/src/Graph/BarStack/BarStack.stories.tsx +125 -0
  43. package/src/Graph/BarStack/BarStack.styles.ts +66 -0
  44. package/src/Graph/BarStack/BarStack.tsx +14 -0
  45. package/src/Graph/BarStack/Graph.tsx +176 -0
  46. package/src/Graph/BarStack/GraphAndLegend.tsx +119 -0
  47. package/src/Graph/BarStack/ResponsiveBarStack.tsx +114 -0
  48. package/src/Graph/BarStack/constants.ts +5 -0
  49. package/src/Graph/BarStack/index.ts +1 -0
  50. package/src/Graph/BarStack/models.ts +19 -0
  51. package/src/Graph/BarStack/useGraphAndLegend.ts +86 -0
  52. package/src/Graph/BarStack/useResponsiveBarStack.ts +106 -0
  53. package/src/Graph/Gauge/Gauge.cypress.spec.tsx +102 -0
  54. package/src/Graph/Gauge/Gauge.tsx +1 -1
  55. package/src/Graph/HeatMap/HeatMap.cypress.spec.tsx +145 -0
  56. package/src/Graph/HeatMap/HeatMap.stories.tsx +0 -25
  57. package/src/Graph/HeatMap/HeatMap.styles.tsx +1 -0
  58. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +39 -12
  59. package/src/Graph/HeatMap/model.ts +6 -1
  60. package/src/Graph/Legend/Legend.styles.ts +10 -0
  61. package/src/Graph/Legend/Legend.tsx +26 -0
  62. package/src/Graph/Legend/index.ts +1 -0
  63. package/src/Graph/Legend/models.ts +11 -0
  64. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/index.tsx +2 -1
  65. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/index.tsx +3 -4
  66. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +2 -2
  67. package/src/Graph/LineChart/BasicComponents/ThresholdLine.tsx +3 -1
  68. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +2 -2
  69. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +3 -5
  70. package/src/Graph/LineChart/Header/index.tsx +3 -31
  71. package/src/Graph/LineChart/Icons/Downtime.tsx +3 -3
  72. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +2 -2
  73. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTickGraph.ts +9 -11
  74. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +1 -1
  75. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/GraphValueTooltip.tsx +68 -0
  76. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/useGraphValueTooltip.ts +27 -0
  77. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/useGraphValueTooltipStyles.ts +31 -0
  78. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/index.tsx +2 -1
  79. package/src/Graph/LineChart/InteractiveComponents/index.tsx +132 -17
  80. package/src/Graph/LineChart/InteractiveComponents/interactionWithGraphAtoms.ts +7 -27
  81. package/src/Graph/LineChart/Legend/Legend.styles.ts +85 -32
  82. package/src/Graph/LineChart/Legend/LegendContent.tsx +12 -6
  83. package/src/Graph/LineChart/Legend/LegendHeader.tsx +66 -27
  84. package/src/Graph/LineChart/Legend/index.tsx +43 -46
  85. package/src/Graph/LineChart/Legend/models.ts +5 -0
  86. package/src/Graph/LineChart/Legend/useLegend.ts +12 -13
  87. package/src/Graph/LineChart/LineChart.cypress.spec.tsx +144 -0
  88. package/src/Graph/LineChart/LineChart.styles.ts +8 -0
  89. package/src/Graph/LineChart/LineChart.tsx +125 -123
  90. package/src/Graph/LineChart/LoadingSkeleton.tsx +2 -2
  91. package/src/Graph/LineChart/helpers/doc.ts +16 -13
  92. package/src/Graph/LineChart/helpers/index.ts +1 -1
  93. package/src/Graph/LineChart/index.stories.tsx +17 -2
  94. package/src/Graph/LineChart/index.tsx +6 -7
  95. package/src/Graph/LineChart/mockedData/curvesWithSameColor.json +252 -0
  96. package/src/Graph/LineChart/mockedData/lastDayWithIncompleteValues.json +1320 -0
  97. package/src/Graph/LineChart/mockedData/lastDayWithNullValues.json +1314 -0
  98. package/src/Graph/LineChart/models.ts +12 -1
  99. package/src/Graph/LineChart/useLineChartData.ts +68 -18
  100. package/src/Graph/PieChart/PieChart.cypress.spec.tsx +154 -0
  101. package/src/Graph/PieChart/PieChart.stories.tsx +194 -0
  102. package/src/Graph/PieChart/PieChart.styles.ts +39 -0
  103. package/src/Graph/PieChart/PieChart.tsx +14 -0
  104. package/src/Graph/PieChart/ResponsivePie.tsx +245 -0
  105. package/src/Graph/PieChart/index.ts +1 -0
  106. package/src/Graph/PieChart/models.ts +20 -0
  107. package/src/Graph/PieChart/useResponsivePie.ts +81 -0
  108. package/src/Graph/SingleBar/SingleBar.cypress.spec.tsx +121 -0
  109. package/src/Graph/SingleBar/Thresholds.tsx +2 -2
  110. package/src/Graph/Text/Text.cypress.spec.tsx +101 -0
  111. package/src/Graph/Text/Text.stories.tsx +60 -4
  112. package/src/Graph/Text/Text.styles.ts +12 -1
  113. package/src/Graph/Text/Text.tsx +17 -12
  114. package/src/Graph/Tree/DescendantNodes.tsx +88 -0
  115. package/src/Graph/Tree/Links.tsx +64 -0
  116. package/src/Graph/Tree/StandaloneTree.tsx +32 -0
  117. package/src/Graph/Tree/Tree.cypress.spec.tsx +171 -0
  118. package/src/Graph/Tree/Tree.stories.tsx +144 -0
  119. package/src/Graph/Tree/Tree.tsx +116 -0
  120. package/src/Graph/Tree/constants.ts +2 -0
  121. package/src/Graph/Tree/index.ts +4 -0
  122. package/src/Graph/Tree/models.ts +52 -0
  123. package/src/Graph/Tree/stories/contents.tsx +164 -0
  124. package/src/Graph/Tree/stories/datas.ts +305 -0
  125. package/src/Graph/Tree/utils.ts +49 -0
  126. package/src/Graph/common/testUtils.ts +71 -0
  127. package/src/Graph/common/timeSeries/index.ts +53 -15
  128. package/src/Graph/common/utils.ts +69 -1
  129. package/src/Graph/index.ts +4 -0
  130. package/src/Icon/BaseIcon.tsx +32 -0
  131. package/src/Icon/DowntimeIcon.tsx +14 -0
  132. package/src/InputField/Number/Number.cypress.spec.tsx +85 -0
  133. package/src/InputField/Number/Number.stories.tsx +66 -0
  134. package/src/InputField/Number/Number.tsx +74 -0
  135. package/src/InputField/Search/index.tsx +2 -2
  136. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +22 -1
  137. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +3 -2
  138. package/src/InputField/Select/Autocomplete/Connected/index.tsx +35 -17
  139. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  140. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
  141. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
  142. package/src/InputField/Select/Autocomplete/Multi/index.stories.tsx +19 -0
  143. package/src/InputField/Select/Autocomplete/Multi/index.tsx +12 -7
  144. package/src/InputField/Select/Autocomplete/index.tsx +129 -116
  145. package/src/InputField/Select/IconPopover/index.tsx +3 -3
  146. package/src/InputField/Select/index.tsx +15 -2
  147. package/src/InputField/Text/index.tsx +53 -46
  148. package/src/Listing/ActionBar/index.tsx +11 -10
  149. package/src/Listing/Cell/DataCell.styles.ts +3 -0
  150. package/src/Listing/Cell/DataCell.tsx +23 -5
  151. package/src/Listing/Header/ListingHeader.tsx +1 -1
  152. package/src/Listing/Listing.cypress.spec.tsx +218 -33
  153. package/src/Listing/Listing.styles.ts +4 -7
  154. package/src/Listing/Row/Row.tsx +7 -3
  155. package/src/Listing/index.stories.tsx +39 -5
  156. package/src/Listing/index.test.tsx +1 -1
  157. package/src/Listing/index.tsx +207 -149
  158. package/src/Listing/models.ts +1 -0
  159. package/src/Listing/useStyleTable.ts +1 -0
  160. package/src/Module/LicensedModule/LicenseCheck/index.tsx +24 -9
  161. package/src/Module/LicensedModule/index.tsx +7 -1
  162. package/src/Module/Module.cypress.spec.tsx +129 -0
  163. package/src/Module/index.tsx +2 -4
  164. package/src/Panel/index.tsx +1 -1
  165. package/src/PopoverMenu/index.tsx +9 -8
  166. package/src/RichTextEditor/ContentEditable.tsx +195 -195
  167. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +100 -52
  168. package/src/RichTextEditor/RichTextEditor.tsx +21 -4
  169. package/src/RichTextEditor/plugins/ToolbarPlugin/AlignPicker.tsx +21 -20
  170. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +35 -77
  171. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +29 -83
  172. package/src/RichTextEditor/plugins/ToolbarPlugin/LinkButton.tsx +106 -0
  173. package/src/RichTextEditor/plugins/ToolbarPlugin/ListButton.tsx +155 -0
  174. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +23 -39
  175. package/src/RichTextEditor/plugins/ToolbarPlugin/ToolbarPlugin.styles.ts +24 -14
  176. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +6 -0
  177. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +5 -10
  178. package/src/RichTextEditor/translatedLabels.ts +3 -0
  179. package/src/SortableItems/index.tsx +2 -7
  180. package/src/StoryBookThemeProvider/index.tsx +35 -36
  181. package/src/ThemeProvider/index.tsx +39 -12
  182. package/src/ThemeProvider/palettes.ts +15 -12
  183. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +6 -7
  184. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +10 -6
  185. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -2
  186. package/src/TimePeriods/DateTimePickerInput.tsx +59 -19
  187. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +12 -9
  188. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +9 -33
  189. package/src/TimePeriods/helpers/index.ts +1 -1
  190. package/src/TimePeriods/index.stories.tsx +12 -4
  191. package/src/TimePeriods/index.tsx +2 -2
  192. package/src/TopCounterElements/TopCounterLayout.tsx +3 -0
  193. package/src/TopCounterElements/useCloseOnLegacyPage.tsx +42 -0
  194. package/src/Typography/FluidTypography/FluidTypography.cypress.spec.tsx +27 -0
  195. package/src/Typography/FluidTypography/index.stories.tsx +2 -2
  196. package/src/Typography/FluidTypography/index.tsx +21 -28
  197. package/src/Typography/Subtitle.tsx +55 -0
  198. package/src/api/QueryProvider.tsx +1 -1
  199. package/src/api/TestQueryProvider.tsx +1 -1
  200. package/src/api/buildListingEndpoint/getSearchQueryParameterValue.ts +7 -1
  201. package/src/api/buildListingEndpoint/models.ts +3 -1
  202. package/src/api/customFetch.ts +12 -3
  203. package/src/api/index.ts +3 -3
  204. package/src/api/useFetchQuery/index.ts +49 -28
  205. package/src/api/useGraphQuery/index.ts +26 -5
  206. package/src/api/useGraphQuery/models.ts +5 -0
  207. package/src/api/useMutationQuery/index.test.ts +4 -4
  208. package/src/api/useMutationQuery/index.ts +65 -20
  209. package/src/components/Button/Icon/IconButton.tsx +6 -2
  210. package/src/components/CollapsibleItem/CollapsibleItem.cypress.spec.tsx +76 -0
  211. package/src/components/CollapsibleItem/CollapsibleItem.stories.tsx +26 -0
  212. package/src/components/CollapsibleItem/CollapsibleItem.tsx +43 -14
  213. package/src/components/CollapsibleItem/useCollapsibleItemStyles.ts +24 -1
  214. package/src/components/DataTable/DataListing.tsx +6 -0
  215. package/src/components/DataTable/DataTable.cypress.spec.tsx +174 -0
  216. package/src/components/DataTable/DataTable.stories.tsx +40 -0
  217. package/src/components/DataTable/DataTable.styles.ts +3 -0
  218. package/src/components/DataTable/DataTable.tsx +3 -3
  219. package/src/components/DataTable/Item/DataTableItem.styles.ts +7 -2
  220. package/src/components/DataTable/Item/DataTableItem.tsx +4 -60
  221. package/src/components/DataTable/index.ts +3 -1
  222. package/src/components/Form/AccessRights/AccessRights.cypress.spec.tsx +373 -0
  223. package/src/components/Form/AccessRights/AccessRights.stories.tsx +119 -0
  224. package/src/components/Form/AccessRights/AccessRights.styles.ts +10 -0
  225. package/src/components/Form/AccessRights/AccessRights.tsx +60 -0
  226. package/src/components/Form/AccessRights/Actions/Actions.styles.ts +14 -0
  227. package/src/components/Form/AccessRights/Actions/Actions.tsx +81 -0
  228. package/src/components/Form/AccessRights/Actions/useActions.ts +79 -0
  229. package/src/components/Form/AccessRights/List/Item.tsx +90 -0
  230. package/src/components/Form/AccessRights/List/List.styles.tsx +45 -0
  231. package/src/components/Form/AccessRights/List/List.tsx +52 -0
  232. package/src/components/Form/AccessRights/List/ListItemSkeleton.tsx +18 -0
  233. package/src/components/Form/AccessRights/List/ListSkeleton.tsx +22 -0
  234. package/src/components/Form/AccessRights/List/RemoveAccessRight.tsx +38 -0
  235. package/src/components/Form/AccessRights/List/StateChip.tsx +28 -0
  236. package/src/components/Form/AccessRights/List/useItem.ts +64 -0
  237. package/src/components/Form/AccessRights/Provider.tsx +15 -0
  238. package/src/components/Form/AccessRights/ShareInput/ContactSwitch.tsx +50 -0
  239. package/src/components/Form/AccessRights/ShareInput/ShareInput.styles.ts +17 -0
  240. package/src/components/Form/AccessRights/ShareInput/ShareInput.tsx +78 -0
  241. package/src/components/Form/AccessRights/ShareInput/useShareInput.tsx +113 -0
  242. package/src/components/Form/AccessRights/Stats/Stats.tsx +36 -0
  243. package/src/components/Form/AccessRights/atoms.ts +97 -0
  244. package/src/components/Form/AccessRights/common/RoleSelectField.styles.tsx +7 -0
  245. package/src/components/Form/AccessRights/common/RoleSelectField.tsx +45 -0
  246. package/src/components/Form/AccessRights/models.ts +55 -0
  247. package/src/components/Form/AccessRights/storiesData.ts +222 -0
  248. package/src/components/Form/AccessRights/useAccessRightsInitValues.ts +51 -0
  249. package/src/components/Form/Dashboard/DashboardDuplicationForm.tsx +85 -0
  250. package/src/components/Form/Dashboard/DashboardForm.tsx +15 -12
  251. package/src/components/Form/Dashboard/index.ts +1 -0
  252. package/src/components/Form/FormActions.tsx +7 -2
  253. package/src/components/Form/index.ts +2 -1
  254. package/src/components/ItemComposition/Item.tsx +1 -1
  255. package/src/components/ItemComposition/ItemComposition.cypress.spec.tsx +113 -0
  256. package/src/components/ItemComposition/ItemComposition.stories.tsx +14 -0
  257. package/src/components/ItemComposition/ItemComposition.styles.ts +36 -3
  258. package/src/components/ItemComposition/ItemComposition.tsx +41 -17
  259. package/src/components/Layout/PageLayout/PageLayout.tsx +1 -1
  260. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +1 -0
  261. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +1 -0
  262. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +5 -1
  263. package/src/components/Layout/PageLayout/PageQuickAccess.tsx +76 -0
  264. package/src/components/Layout/PageLayout/index.ts +3 -1
  265. package/src/components/Layout/PageLayout.cypress.spec.tsx +66 -0
  266. package/src/components/List/Item/ListItem.styles.ts +6 -0
  267. package/src/components/List/Item/ListItem.tsx +6 -4
  268. package/src/components/List/Item/Text.tsx +5 -3
  269. package/src/components/Menu/Button/MenuButton.tsx +4 -2
  270. package/src/components/Menu/MenuItem.tsx +5 -3
  271. package/src/components/Menu/MenuItems.tsx +4 -3
  272. package/src/components/Modal/ConfirmationModal/ConfirmationModal.cypress.spec.tsx +168 -0
  273. package/src/components/Modal/ConfirmationModal/ConfirmationModal.stories.tsx +62 -0
  274. package/src/components/Modal/ConfirmationModal/ConfirmationModal.tsx +87 -0
  275. package/src/components/Modal/Modal.styles.ts +10 -2
  276. package/src/components/Modal/ModalActions.tsx +4 -2
  277. package/src/components/Modal/index.ts +2 -0
  278. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.stories.tsx +3 -3
  279. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +1 -1
  280. package/src/components/Tooltip/ConfirmationTooltip/models.ts +1 -1
  281. package/src/components/Zoom/Minimap.tsx +127 -0
  282. package/src/components/Zoom/Zoom.cypress.spec.tsx +246 -0
  283. package/src/components/Zoom/Zoom.stories.tsx +115 -0
  284. package/src/components/Zoom/Zoom.styles.tsx +68 -0
  285. package/src/components/Zoom/Zoom.tsx +61 -0
  286. package/src/components/Zoom/ZoomContent.tsx +167 -0
  287. package/src/components/Zoom/constants.ts +2 -0
  288. package/src/components/Zoom/localPoint.ts +51 -0
  289. package/src/components/Zoom/models.ts +25 -0
  290. package/src/components/Zoom/useMinimap.ts +156 -0
  291. package/src/components/Zoom/useZoom.ts +70 -0
  292. package/src/components/Zoom/utils.ts +55 -0
  293. package/src/components/index.ts +1 -0
  294. package/src/fonts/roboto-bold-webfont.ttf +0 -0
  295. package/src/fonts/roboto-bold-webfont.woff +0 -0
  296. package/src/fonts/roboto-bold-webfont.woff2 +0 -0
  297. package/src/fonts/roboto-light-webfont.ttf +0 -0
  298. package/src/fonts/roboto-light-webfont.woff +0 -0
  299. package/src/fonts/roboto-light-webfont.woff2 +0 -0
  300. package/src/fonts/roboto-medium-webfont.ttf +0 -0
  301. package/src/fonts/roboto-medium-webfont.woff +0 -0
  302. package/src/fonts/roboto-medium-webfont.woff2 +0 -0
  303. package/src/fonts/roboto-regular-webfont.ttf +0 -0
  304. package/src/fonts/roboto-regular-webfont.woff +0 -0
  305. package/src/fonts/roboto-regular-webfont.woff2 +0 -0
  306. package/src/index.ts +6 -0
  307. package/src/queryParameters/url/index.ts +5 -1
  308. package/src/utils/index.ts +25 -22
  309. package/src/utils/useFullscreen/Fullscreen.cypress.spec.tsx +133 -0
  310. package/src/utils/useFullscreen/atoms.ts +3 -0
  311. package/src/utils/useFullscreen/index.ts +2 -0
  312. package/src/utils/useFullscreen/translatedLabels.ts +1 -0
  313. package/src/utils/useFullscreen/useFullscreen.ts +73 -0
  314. package/src/utils/useFullscreen/useFullscreenListener.ts +62 -0
  315. package/src/utils/useInfiniteScrollListing.ts +31 -8
  316. package/src/utils/{useLicenseExpirationWarning.cypress.spec.tsx → useLicenseExpirationWarning.test.tsx} +48 -37
  317. package/src/utils/useLicenseExpirationWarning.ts +18 -18
  318. package/src/utils/useLocale/index.ts +10 -0
  319. package/src/utils/useLocale/useLocale.cypress.spec.tsx +40 -0
  320. package/src/utils/useLocaleDateTimeFormat/index.ts +8 -2
  321. package/src/utils/usePluralizedTranslation.ts +21 -0
  322. package/src/@assets/icons/downtime.icon.svg +0 -1
  323. package/src/Graph/LineChart/BasicComponents/LoadingProgress.tsx +0 -46
  324. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -96
  325. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  326. package/src/Graph/LineChart/Legend/InteractiveValue.tsx +0 -22
  327. package/src/Graph/LineChart/Legend/Marker.tsx +0 -43
  328. package/src/Graph/LineChart/Legend/useInteractiveValues.ts +0 -99
  329. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  330. package/src/components/Form/AccessRights/AccessRights.resource.ts +0 -45
  331. package/src/components/Form/AccessRights/AccessRightsForm.stories.tsx +0 -59
  332. package/src/components/Form/AccessRights/AccessRightsForm.styles.ts +0 -21
  333. package/src/components/Form/AccessRights/AccessRightsForm.tsx +0 -67
  334. package/src/components/Form/AccessRights/AccessRightsFormActions.tsx +0 -80
  335. package/src/components/Form/AccessRights/Input/AddAction.tsx +0 -31
  336. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.stories.tsx +0 -54
  337. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.tsx +0 -72
  338. package/src/components/Form/AccessRights/Input/ContactAccessRightsInput.styles.ts +0 -22
  339. package/src/components/Form/AccessRights/Input/ContactInputField.tsx +0 -105
  340. package/src/components/Form/AccessRights/Input/RoleInputField.tsx +0 -29
  341. package/src/components/Form/AccessRights/List/ContactAccessRightsList.stories.tsx +0 -97
  342. package/src/components/Form/AccessRights/List/ContactAccessRightsList.styles.ts +0 -71
  343. package/src/components/Form/AccessRights/List/ContactAccessRightsList.tsx +0 -51
  344. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.stories.tsx +0 -116
  345. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.tsx +0 -118
  346. package/src/components/Form/AccessRights/List/ContactAccessRightsListItemSkeleton.tsx +0 -26
  347. package/src/components/Form/AccessRights/List/ContactAccessRightsListSkeleton.tsx +0 -28
  348. package/src/components/Form/AccessRights/Stats/AccessRightsStats.styles.ts +0 -18
  349. package/src/components/Form/AccessRights/Stats/AccessRightsStats.tsx +0 -41
  350. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -52
  351. package/src/components/Form/AccessRights/common/GroupLabel.styles.ts +0 -18
  352. package/src/components/Form/AccessRights/common/GroupLabel.tsx +0 -15
  353. package/src/components/Form/AccessRights/common/Input.styles.ts +0 -48
  354. package/src/components/Form/AccessRights/common/RoleInputSelect.styles.ts +0 -11
  355. package/src/components/Form/AccessRights/common/RoleInputSelect.tsx +0 -57
  356. package/src/components/Form/AccessRights/index.ts +0 -3
  357. package/src/components/Form/AccessRights/useAccessRightsForm.test.tsx +0 -531
  358. package/src/components/Form/AccessRights/useAccessRightsForm.tsx +0 -282
  359. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +0 -41
  360. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  361. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  362. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  363. /package/{public → src/Button}/fonts/roboto-bold-webfont.ttf +0 -0
  364. /package/{public → src/Button}/fonts/roboto-bold-webfont.woff +0 -0
  365. /package/{public → src/Button}/fonts/roboto-bold-webfont.woff2 +0 -0
  366. /package/{public → src/Button}/fonts/roboto-light-webfont.ttf +0 -0
  367. /package/{public → src/Button}/fonts/roboto-light-webfont.woff +0 -0
  368. /package/{public → src/Button}/fonts/roboto-light-webfont.woff2 +0 -0
  369. /package/{public → src/Button}/fonts/roboto-medium-webfont.ttf +0 -0
  370. /package/{public → src/Button}/fonts/roboto-medium-webfont.woff +0 -0
  371. /package/{public → src/Button}/fonts/roboto-medium-webfont.woff2 +0 -0
  372. /package/{public → src/Button}/fonts/roboto-regular-webfont.ttf +0 -0
  373. /package/{public → src/Button}/fonts/roboto-regular-webfont.woff +0 -0
  374. /package/{public → src/Button}/fonts/roboto-regular-webfont.woff2 +0 -0
@@ -0,0 +1,155 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+
3
+ import {
4
+ $isListNode,
5
+ INSERT_ORDERED_LIST_COMMAND,
6
+ INSERT_UNORDERED_LIST_COMMAND,
7
+ ListNode,
8
+ REMOVE_LIST_COMMAND
9
+ } from '@lexical/list';
10
+ import { $getSelection, $isRootOrShadowRoot } from 'lexical';
11
+ import {
12
+ $findMatchingParent,
13
+ $getNearestNodeOfType,
14
+ mergeRegister
15
+ } from '@lexical/utils';
16
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
17
+ import { equals, isNil } from 'ramda';
18
+ import { useTranslation } from 'react-i18next';
19
+
20
+ import UnorderedListIcon from '@mui/icons-material/FormatListBulleted';
21
+ import OrderedListIcon from '@mui/icons-material/FormatListNumbered';
22
+
23
+ import { Menu } from '../../../components';
24
+ import { labelOrderedList, labelUnorderedList } from '../../translatedLabels';
25
+
26
+ import { useStyles } from './ToolbarPlugin.styles';
27
+
28
+ const options = [
29
+ {
30
+ Icon: UnorderedListIcon,
31
+ label: labelUnorderedList,
32
+ value: 'bullet'
33
+ },
34
+ {
35
+ Icon: OrderedListIcon,
36
+ label: labelOrderedList,
37
+ value: 'number'
38
+ }
39
+ ];
40
+
41
+ interface Props {
42
+ disabled?: boolean;
43
+ }
44
+
45
+ const ListButton = ({ disabled }: Props): JSX.Element => {
46
+ const { classes } = useStyles();
47
+ const { t } = useTranslation();
48
+
49
+ const [editor] = useLexicalComposerContext();
50
+
51
+ const [elementList, setElementList] = useState(null);
52
+
53
+ const formatBulletList = (): void => {
54
+ if (elementList !== 'bullet') {
55
+ editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);
56
+ } else {
57
+ editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);
58
+ }
59
+ };
60
+
61
+ const formatNumberedList = (): void => {
62
+ if (elementList !== 'number') {
63
+ editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);
64
+ } else {
65
+ editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);
66
+ }
67
+ };
68
+
69
+ const formatList = (type): void => {
70
+ if (equals(type, elementList)) {
71
+ setElementList(null);
72
+ }
73
+
74
+ if (equals(type, 'bullet')) {
75
+ formatBulletList();
76
+
77
+ return;
78
+ }
79
+ formatNumberedList();
80
+ };
81
+
82
+ const updateToolbar = useCallback(() => {
83
+ const selection = $getSelection();
84
+ const anchorNode = selection?.anchor.getNode();
85
+ const element = equals(anchorNode?.getKey(), 'root')
86
+ ? anchorNode
87
+ : $findMatchingParent(anchorNode, (e) => {
88
+ const parent = e.getParent();
89
+
90
+ return parent !== null && $isRootOrShadowRoot(parent);
91
+ }) || anchorNode?.getTopLevelElementOrThrow();
92
+
93
+ const elementKey = element?.getKey();
94
+ const elementDOM = editor.getElementByKey(elementKey);
95
+
96
+ if (isNil(elementDOM)) {
97
+ return;
98
+ }
99
+
100
+ if ($isListNode(element)) {
101
+ const parentList = $getNearestNodeOfType(anchorNode, ListNode);
102
+ const type = parentList
103
+ ? parentList.getListType()
104
+ : element.getListType();
105
+ setElementList(type);
106
+ }
107
+ }, [editor]);
108
+
109
+ const selectedList = options.find(({ value }) => equals(value, elementList));
110
+
111
+ useEffect(() => {
112
+ return editor.registerUpdateListener(({ editorState }) => {
113
+ editorState.read(() => {
114
+ updateToolbar();
115
+ });
116
+ });
117
+ }, [editor, updateToolbar]);
118
+
119
+ useEffect(() => {
120
+ return mergeRegister(
121
+ editor.registerUpdateListener(({ editorState }) => {
122
+ editorState.read(() => {
123
+ updateToolbar();
124
+ });
125
+ })
126
+ );
127
+ }, [editor, updateToolbar]);
128
+
129
+ return (
130
+ <Menu>
131
+ <Menu.Button
132
+ ariaLabel="list"
133
+ className={classes.button}
134
+ disabled={disabled}
135
+ >
136
+ {selectedList ? <selectedList.Icon /> : <UnorderedListIcon />}
137
+ </Menu.Button>
138
+ <Menu.Items className={classes.menuItems}>
139
+ <div className={classes.menu}>
140
+ {options.map(({ Icon, value, label }) => (
141
+ <Menu.Item
142
+ isActive={equals(value, elementList)}
143
+ key={value}
144
+ onClick={() => formatList(value)}
145
+ >
146
+ <Icon aria-label={t(label)} />
147
+ </Menu.Item>
148
+ ))}
149
+ </div>
150
+ </Menu.Items>
151
+ </Menu>
152
+ );
153
+ };
154
+
155
+ export default ListButton;
@@ -1,13 +1,11 @@
1
- import { useState } from 'react';
2
-
3
1
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
2
  import { createCommand, LexicalCommand } from 'lexical';
5
3
 
6
4
  import MacrosIcon from '@mui/icons-material/TerminalOutlined';
7
5
 
8
- import { ActionsList, IconButton, PopoverMenu } from '../../..';
6
+ import { Menu } from '../../../components';
9
7
 
10
- import { useStyles } from '.';
8
+ import { useStyles } from './ToolbarPlugin.styles';
11
9
 
12
10
  const LowPriority = 1;
13
11
 
@@ -27,15 +25,12 @@ export const standardMacros = [
27
25
 
28
26
  const MacrosButton = ({ disabled }: Props): JSX.Element => {
29
27
  const { classes } = useStyles();
30
- const [arMacrosDiplayed, setAreMacrosDiplayed] = useState(false);
31
28
 
32
29
  const [editor] = useLexicalComposerContext();
33
30
 
34
31
  const INSERT_MACROS_COMMAND: LexicalCommand<string> = createCommand();
35
32
 
36
- const onClick = (e): void => {
37
- const macro = e.target.id || e.target.textContent.trim();
38
-
33
+ const onClick = (macro): void => {
39
34
  editor.dispatchCommand(INSERT_MACROS_COMMAND, macro);
40
35
  };
41
36
 
@@ -53,38 +48,27 @@ const MacrosButton = ({ disabled }: Props): JSX.Element => {
53
48
  LowPriority
54
49
  );
55
50
 
56
- const displayMacros = (): void => {
57
- setAreMacrosDiplayed(true);
58
- };
59
-
60
- const actions = standardMacros.map((macro) => ({
61
- label: macro,
62
- onClick
63
- }));
64
-
65
51
  return (
66
- <PopoverMenu
67
- icon={
68
- <IconButton
69
- ariaLabel="Macros"
70
- className={classes.macrosButton}
71
- disabled={disabled}
72
- title="Macros"
73
- tooltipPlacement="top"
74
- onClick={displayMacros}
75
- >
76
- <MacrosIcon />
77
- </IconButton>
78
- }
79
- >
80
- {(): JSX.Element => (
81
- <div>
82
- {arMacrosDiplayed && (
83
- <ActionsList actions={actions} listItemClassName={classes.macros} />
84
- )}
85
- </div>
86
- )}
87
- </PopoverMenu>
52
+ <Menu>
53
+ <Menu.Button
54
+ ariaLabel="Macros"
55
+ className={classes.button}
56
+ disabled={disabled}
57
+ >
58
+ <MacrosIcon />
59
+ </Menu.Button>
60
+ <Menu.Items className={classes.menuItems}>
61
+ {standardMacros.map((name) => (
62
+ <Menu.Item
63
+ className={classes.menuItem}
64
+ key={name}
65
+ onClick={(): void => onClick(name)}
66
+ >
67
+ {name}
68
+ </Menu.Item>
69
+ ))}
70
+ </Menu.Items>
71
+ </Menu>
88
72
  );
89
73
  };
90
74
 
@@ -1,22 +1,32 @@
1
1
  import { makeStyles } from 'tss-react/mui';
2
2
 
3
- export const useBlockButtonsStyles = makeStyles()((theme) => ({
4
- autocomplete: {
5
- width: theme.spacing(17)
6
- }
7
- }));
3
+ import { alpha } from '@mui/system';
8
4
 
9
- export const useAlignPickerStyles = makeStyles()((theme) => ({
5
+ export const useStyles = makeStyles()((theme) => ({
10
6
  button: {
11
- alignItems: 'center',
12
- display: 'flex',
13
- flexDirection: 'row',
14
- gap: theme.spacing(1)
7
+ color: theme.palette.text.primary
15
8
  },
16
- option: {
17
- alignItems: 'center',
9
+ buttonSelected: {
10
+ backgroundColor: alpha(
11
+ theme.palette.primary.main,
12
+ theme.palette.action.activatedOpacity
13
+ )
14
+ },
15
+ menu: {
18
16
  display: 'flex',
19
- flexDirection: 'row',
20
- gap: theme.spacing(2)
17
+ flexDirection: 'row'
18
+ },
19
+ menuItem: {
20
+ '&, &.MuiMenuItem-root': {
21
+ fontSize: theme.typography.body2.fontSize
22
+ }
23
+ },
24
+ menuItems: {
25
+ '& > .MuiPaper-root.MuiMenu-paper': {
26
+ minWidth: 0
27
+ },
28
+ '& ul, & ul.MuiMenu-list': {
29
+ padding: 0
30
+ }
21
31
  }
22
32
  }));
@@ -16,6 +16,8 @@ import RedoIcon from '@mui/icons-material/Redo';
16
16
  import { IconButton } from '../../..';
17
17
  import { labelRedo, labelUndo } from '../../translatedLabels';
18
18
 
19
+ import { useStyles } from './ToolbarPlugin.styles';
20
+
19
21
  const LowPriority = 1;
20
22
 
21
23
  interface Props {
@@ -23,6 +25,8 @@ interface Props {
23
25
  }
24
26
 
25
27
  const UndoRedoButtons = ({ disabled }: Props): JSX.Element => {
28
+ const { classes } = useStyles();
29
+
26
30
  const { t } = useTranslation();
27
31
 
28
32
  const [canUndo, setCanUndo] = useState(false);
@@ -68,6 +72,7 @@ const UndoRedoButtons = ({ disabled }: Props): JSX.Element => {
68
72
  <>
69
73
  <IconButton
70
74
  ariaLabel={translatedUndo}
75
+ className={classes.button}
71
76
  disabled={!canUndo || disabled}
72
77
  title={translatedUndo}
73
78
  tooltipPlacement="top"
@@ -77,6 +82,7 @@ const UndoRedoButtons = ({ disabled }: Props): JSX.Element => {
77
82
  </IconButton>
78
83
  <IconButton
79
84
  ariaLabel={translatedRedo}
85
+ className={classes.button}
80
86
  disabled={!canRedo || disabled}
81
87
  title={translatedRedo}
82
88
  tooltipPlacement="top"
@@ -5,8 +5,10 @@ import { Divider } from '@mui/material';
5
5
  import FormatButtons from './FormatButtons';
6
6
  import UndoRedoButtons from './UndoRedoButtons';
7
7
  import MacrosButton from './MacrosButton';
8
- import BlockButtons from './BlockButtons';
9
8
  import AlignPicker from './AlignPicker';
9
+ import ListButton from './ListButton';
10
+ import LinkButton from './LinkButton';
11
+ import BlockButtons from './BlockButtons';
10
12
 
11
13
  interface Props {
12
14
  className?: string;
@@ -22,14 +24,6 @@ export const useStyles = makeStyles()((theme) => ({
22
24
  columnGap: theme.spacing(1),
23
25
  display: 'flex',
24
26
  marginBottom: theme.spacing(1)
25
- },
26
- macros: {
27
- '& span': {
28
- fontSize: theme.typography.caption.fontSize
29
- }
30
- },
31
- macrosButton: {
32
- marginBottom: theme.spacing(0.5)
33
27
  }
34
28
  }));
35
29
 
@@ -51,9 +45,10 @@ const ToolbarPlugin = ({
51
45
  <BlockButtons disabled={disabled} />
52
46
  </>
53
47
  )}
54
- <Divider flexItem orientation="vertical" />
55
48
  <FormatButtons disabled={disabled} />
56
49
  <AlignPicker disabled={disabled} />
50
+ <ListButton disabled={disabled} />
51
+ <LinkButton disabled={disabled} />
57
52
  {displayMacrosButton && (
58
53
  <>
59
54
  <Divider flexItem orientation="vertical" />
@@ -3,3 +3,6 @@ export const labelRedo = 'Redo';
3
3
  export const labelInputLink = 'Insert link';
4
4
  export const labelSavedLink = 'Saved link';
5
5
  export const labelEditLink = 'Edit link';
6
+ export const labelAlignPicker = 'align picker';
7
+ export const labelUnorderedList = 'Unordered List';
8
+ export const labelOrderedList = 'Ordered List';
@@ -15,11 +15,7 @@ import {
15
15
  DragEndEvent,
16
16
  Over
17
17
  } from '@dnd-kit/core';
18
- import {
19
- SortableContext,
20
- sortableKeyboardCoordinates,
21
- SortingStrategy
22
- } from '@dnd-kit/sortable';
18
+ import { SortableContext, SortingStrategy } from '@dnd-kit/sortable';
23
19
  import {
24
20
  equals,
25
21
  find,
@@ -117,7 +113,6 @@ const SortableItems = <T extends { [propertyToFilterItemsOn]: string }>({
117
113
  useSensor(MouseSensor),
118
114
  useSensor(PointerSensor),
119
115
  useSensor(KeyboardSensor, {
120
- coordinateGetter: sortableKeyboardCoordinates,
121
116
  keyboardCodes: {
122
117
  cancel: ['Escape'],
123
118
  end: ['Space', 'Enter'],
@@ -169,7 +164,7 @@ const SortableItems = <T extends { [propertyToFilterItemsOn]: string }>({
169
164
  };
170
165
 
171
166
  const getItemById = (id): T | undefined =>
172
- find(propEq(propertyToFilterItemsOn, id), items);
167
+ find(propEq(id, propertyToFilterItemsOn), items);
173
168
 
174
169
  const activeItem = getItemById(activeId) as Record<string, unknown>;
175
170
 
@@ -1,36 +1,35 @@
1
- import * as React from 'react';
2
- import { useMemo } from 'react';
3
-
4
- import {
5
- ThemeProvider as MuiThemeProvider,
6
- StyledEngineProvider,
7
- createTheme,
8
- CssBaseline
9
- } from '@mui/material';
10
-
11
- import { ThemeMode } from '@centreon/ui-context';
12
-
13
- import { getTheme } from '../ThemeProvider';
14
-
15
- interface Props {
16
- children: React.ReactElement;
17
- themeMode: ThemeMode;
18
- }
19
-
20
- const StoryBookThemeProvider = ({
21
- children,
22
- themeMode
23
- }: Props): JSX.Element => {
24
- const theme = useMemo(() => createTheme(getTheme(themeMode)), [themeMode]);
25
-
26
- return (
27
- <StyledEngineProvider injectFirst>
28
- <MuiThemeProvider theme={theme}>
29
- {children}
30
- <CssBaseline />
31
- </MuiThemeProvider>
32
- </StyledEngineProvider>
33
- );
34
- };
35
-
36
- export default StoryBookThemeProvider;
1
+ import { useMemo } from 'react';
2
+
3
+ import {
4
+ CssBaseline,
5
+ ThemeProvider as MuiThemeProvider,
6
+ StyledEngineProvider,
7
+ createTheme
8
+ } from '@mui/material';
9
+
10
+ import { ThemeMode } from '@centreon/ui-context';
11
+
12
+ import { getTheme } from '../ThemeProvider';
13
+
14
+ interface Props {
15
+ children: React.ReactElement;
16
+ themeMode: ThemeMode;
17
+ }
18
+
19
+ const StoryBookThemeProvider = ({
20
+ children,
21
+ themeMode
22
+ }: Props): JSX.Element => {
23
+ const theme = useMemo(() => createTheme(getTheme(themeMode)), [themeMode]);
24
+
25
+ return (
26
+ <StyledEngineProvider injectFirst>
27
+ <MuiThemeProvider theme={theme}>
28
+ {children}
29
+ <CssBaseline />
30
+ </MuiThemeProvider>
31
+ </StyledEngineProvider>
32
+ );
33
+ };
34
+
35
+ export default StoryBookThemeProvider;
@@ -1,31 +1,31 @@
1
- import * as React from 'react';
1
+ import { ReactNode, useMemo } from 'react';
2
2
 
3
3
  import { useAtomValue } from 'jotai';
4
- import { CSSInterpolation } from 'tss-react';
5
4
  import { equals } from 'ramda';
5
+ import { CSSInterpolation } from 'tss-react';
6
6
 
7
7
  import {
8
8
  ButtonProps,
9
- createTheme,
10
9
  InputBaseProps,
10
+ ThemeProvider as MuiThemeProvider,
11
11
  StyledEngineProvider,
12
12
  Theme,
13
- ThemeProvider as MuiThemeProvider
13
+ createTheme
14
14
  } from '@mui/material';
15
- import CssBaseline from '@mui/material/CssBaseline';
16
15
  import { autocompleteClasses } from '@mui/material/Autocomplete';
16
+ import CssBaseline from '@mui/material/CssBaseline';
17
17
  import { ThemeOptions } from '@mui/material/styles/createTheme';
18
18
 
19
19
  import { ThemeMode, userAtom } from '@centreon/ui-context';
20
- import RobotoLightWoff2 from '@centreon/ui/fonts/roboto-light-webfont.woff2';
21
- import RobotoRegularWoff2 from '@centreon/ui/fonts/roboto-regular-webfont.woff2';
22
- import RobotoMediumWoff2 from '@centreon/ui/fonts/roboto-medium-webfont.woff2';
23
- import RobotoBoldWoff2 from '@centreon/ui/fonts/roboto-bold-webfont.woff2';
20
+
21
+ import RobotoBoldWoff2 from '../fonts/roboto-bold-webfont.woff2';
22
+ import RobotoLightWoff2 from '../fonts/roboto-light-webfont.woff2';
23
+ import RobotoMediumWoff2 from '../fonts/roboto-medium-webfont.woff2';
24
+ import RobotoRegularWoff2 from '../fonts/roboto-regular-webfont.woff2';
24
25
 
25
26
  import { getPalette } from './palettes';
26
27
 
27
28
  declare module '@mui/styles/defaultTheme' {
28
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
29
29
  interface DefaultTheme extends Theme {}
30
30
  }
31
31
 
@@ -147,6 +147,30 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
147
147
  },
148
148
  MuiCssBaseline: {
149
149
  styleOverrides: (theme) => `
150
+ ::-webkit-scrollbar {
151
+ height: ${theme.spacing(1)};
152
+ width: ${theme.spacing(1)};
153
+ background-color: transparent;
154
+ }
155
+ ::-webkit-scrollbar-thumb {
156
+ background-color: ${
157
+ equals(mode, 'dark')
158
+ ? theme.palette.divider
159
+ : theme.palette.text.disabled
160
+ };
161
+ border-radius: ${theme.spacing(0.5)};
162
+ }
163
+ ::-webkit-scrollbar-thumb:hover {
164
+ background-color: ${theme.palette.primary.main};
165
+ }
166
+ * {
167
+ scrollbar-color: ${
168
+ equals(mode, 'dark')
169
+ ? theme.palette.divider
170
+ : theme.palette.text.disabled
171
+ } ${theme.palette.background.default};
172
+ scrollbar-width: thin;
173
+ }
150
174
  html {
151
175
  margin: 0;
152
176
  padding: 0;
@@ -160,6 +184,9 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
160
184
  padding: 0;
161
185
  width: 100%;
162
186
  }
187
+ #root {
188
+ background-color: ${theme.palette.background.paper};
189
+ }
163
190
  @font-face {
164
191
  font-family: 'Roboto';
165
192
  font-style: normal;
@@ -266,13 +293,13 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
266
293
  });
267
294
 
268
295
  interface Props {
269
- children: React.ReactNode;
296
+ children: ReactNode;
270
297
  }
271
298
 
272
299
  const ThemeProvider = ({ children }: Props): JSX.Element => {
273
300
  const { themeMode } = useAtomValue(userAtom);
274
301
 
275
- const theme = React.useMemo(
302
+ const theme = useMemo(
276
303
  () => createTheme(getTheme(themeMode || ThemeMode.light)),
277
304
  [themeMode]
278
305
  );
@@ -1,6 +1,9 @@
1
1
  import { equals } from 'ramda';
2
2
 
3
- import { alpha, PaletteOptions } from '@mui/material';
3
+ import {
4
+ type PaletteOptions as PaletteOptionsModel,
5
+ alpha
6
+ } from '@mui/material';
4
7
 
5
8
  import { ThemeMode } from '@centreon/ui-context';
6
9
 
@@ -140,10 +143,10 @@ declare module '@mui/material/Badge' {
140
143
  }
141
144
  }
142
145
 
143
- export const lightPalette: PaletteOptions = {
146
+ export const lightPalette: PaletteOptionsModel = {
144
147
  action: {
145
- acknowledged: '#67532C',
146
- acknowledgedBackground: '#F5F1E9',
148
+ acknowledged: '#745F35',
149
+ acknowledgedBackground: '#DFD2B9',
147
150
  activatedOpacity: 0.12,
148
151
  active: '#666666',
149
152
  disabled: '#999999',
@@ -152,8 +155,8 @@ export const lightPalette: PaletteOptions = {
152
155
  focusOpacity: 0.12,
153
156
  hover: 'rgba(0, 0, 0, 0.06)',
154
157
  hoverOpacity: 0.06,
155
- inDowntime: '#4B2352',
156
- inDowntimeBackground: '#F0E9F8',
158
+ inDowntime: '#512980',
159
+ inDowntimeBackground: '#E5D8F3',
157
160
  selected: 'rgba(102, 102, 102, 0.3)',
158
161
  selectedOpacity: 0.3
159
162
  },
@@ -280,10 +283,10 @@ export const lightPalette: PaletteOptions = {
280
283
  }
281
284
  };
282
285
 
283
- export const darkPalette: PaletteOptions = {
286
+ export const darkPalette: PaletteOptionsModel = {
284
287
  action: {
285
- acknowledged: '#67532C',
286
- acknowledgedBackground: '#67532C',
288
+ acknowledged: '#DFD2B9',
289
+ acknowledgedBackground: '#745F35',
287
290
  activatedOpacity: 0.3,
288
291
  active: '#B5B5B5',
289
292
  disabled: '#999999',
@@ -292,8 +295,8 @@ export const darkPalette: PaletteOptions = {
292
295
  focusOpacity: 0.3,
293
296
  hover: 'rgba(255, 255, 255, 0.16)',
294
297
  hoverOpacity: 0.16,
295
- inDowntime: '#4B2352',
296
- inDowntimeBackground: '#4B2352',
298
+ inDowntime: '#E5D8F3',
299
+ inDowntimeBackground: '#512980',
297
300
  selected: 'rgba(255, 255, 255, 0.5)',
298
301
  selectedOpacity: 0.5
299
302
  },
@@ -418,5 +421,5 @@ export const darkPalette: PaletteOptions = {
418
421
  }
419
422
  };
420
423
 
421
- export const getPalette = (mode: ThemeMode): PaletteOptions =>
424
+ export const getPalette = (mode: ThemeMode): PaletteOptionsModel =>
422
425
  equals(mode, ThemeMode.dark) ? darkPalette : lightPalette;
@@ -12,22 +12,21 @@ const useStyles = makeStyles()((theme) => ({
12
12
  },
13
13
  containerDates: {
14
14
  display: 'flex',
15
- gap: theme.spacing(0.5),
16
15
  [theme.breakpoints.down('sm')]: {
17
- columnGap: theme.spacing(0.5),
18
- flexDirection: 'column'
16
+ flexDirection: 'column',
17
+ gap: theme.spacing(0.5)
19
18
  }
20
19
  },
21
20
  date: {
22
- minWidth: theme.spacing(12.5),
21
+ minWidth: theme.spacing(12),
23
22
  textAlign: 'start'
24
23
  },
25
24
  error: {
26
25
  textAlign: 'center'
27
26
  },
28
27
  label: {
29
- minWidth: theme.spacing(3),
30
- textAlign: 'start'
28
+ minWidth: theme.spacing(3.5),
29
+ textAlign: 'end'
31
30
  },
32
31
 
33
32
  picker: {
@@ -39,7 +38,7 @@ const useStyles = makeStyles()((theme) => ({
39
38
  },
40
39
  timeContainer: {
41
40
  alignItems: 'center',
42
- columnGap: theme.spacing(1),
41
+ columnGap: theme.spacing(0.5),
43
42
  display: 'flex',
44
43
  flexDirection: 'row',
45
44
  [theme.breakpoints.down('sm')]: {