@centreon/ui 23.10.30-MON-19324-dashboard-section-navigation.3 → 23.10.30

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 (205) hide show
  1. package/package.json +9 -12
  2. package/src/@assets/icons/downtime.icon.svg +1 -0
  3. package/src/Dashboard/DashboardLayout.stories.tsx +5 -3
  4. package/src/Dashboard/Layout.tsx +4 -4
  5. package/src/Dashboard/utils.ts +28 -28
  6. package/src/Graph/BasicComponents/Axes/UnitLabel.tsx +20 -0
  7. package/src/Graph/BasicComponents/Axes/index.tsx +88 -0
  8. package/src/Graph/BasicComponents/Axes/models.ts +26 -0
  9. package/src/Graph/BasicComponents/Axes/useAxisY.ts +100 -0
  10. package/src/Graph/BasicComponents/Grids/index.tsx +20 -0
  11. package/src/Graph/BasicComponents/Lines/RegularLines/index.tsx +91 -0
  12. package/src/Graph/BasicComponents/Lines/RegularLines/useRegularLines.ts +15 -0
  13. package/src/Graph/BasicComponents/Lines/StackedLines/index.tsx +76 -0
  14. package/src/Graph/BasicComponents/Lines/StackedLines/useStackedLines.ts +39 -0
  15. package/src/Graph/BasicComponents/Lines/Threshold/BasicThreshold.tsx +51 -0
  16. package/src/Graph/BasicComponents/Lines/Threshold/Circle.tsx +43 -0
  17. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +73 -0
  18. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +59 -0
  19. package/src/Graph/BasicComponents/Lines/Threshold/helpers/index.ts +69 -0
  20. package/src/Graph/BasicComponents/Lines/Threshold/index.tsx +138 -0
  21. package/src/Graph/BasicComponents/Lines/Threshold/models.ts +105 -0
  22. package/src/Graph/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +46 -0
  23. package/src/Graph/BasicComponents/Lines/Threshold/useScaleThreshold.ts +171 -0
  24. package/src/Graph/BasicComponents/Lines/index.tsx +180 -0
  25. package/src/Graph/BasicComponents/Lines/models.ts +42 -0
  26. package/src/Graph/BasicComponents/LoadingProgress.tsx +46 -0
  27. package/src/Graph/BasicComponents/useFilterLines.ts +60 -0
  28. package/src/Graph/Graph.styles.ts +45 -0
  29. package/src/Graph/Graph.tsx +217 -0
  30. package/src/Graph/Header/index.tsx +65 -0
  31. package/src/Graph/Icons/Downtime.tsx +9 -0
  32. package/src/Graph/InteractiveComponents/AnchorPoint/AnchorPoint.styles.ts +58 -0
  33. package/src/Graph/InteractiveComponents/AnchorPoint/GuidingLines.tsx +45 -0
  34. package/src/Graph/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +66 -0
  35. package/src/Graph/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +76 -0
  36. package/src/Graph/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +70 -0
  37. package/src/Graph/InteractiveComponents/AnchorPoint/index.tsx +20 -0
  38. package/src/Graph/InteractiveComponents/AnchorPoint/models.ts +62 -0
  39. package/src/Graph/InteractiveComponents/AnchorPoint/useTickGraph.ts +94 -0
  40. package/src/Graph/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +107 -0
  41. package/src/Graph/InteractiveComponents/Annotations/Annotation/Area.tsx +114 -0
  42. package/src/Graph/InteractiveComponents/Annotations/Annotation/Line.tsx +103 -0
  43. package/src/Graph/InteractiveComponents/Annotations/Annotation/index.tsx +81 -0
  44. package/src/Graph/InteractiveComponents/Annotations/Area/Downtime.tsx +27 -0
  45. package/src/Graph/InteractiveComponents/Annotations/EventAnnotations.tsx +61 -0
  46. package/src/Graph/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +27 -0
  47. package/src/Graph/InteractiveComponents/Annotations/Line/Comments.tsx +25 -0
  48. package/src/Graph/InteractiveComponents/Annotations/annotationsAtoms.ts +183 -0
  49. package/src/Graph/InteractiveComponents/Annotations/index.tsx +49 -0
  50. package/src/Graph/InteractiveComponents/Annotations/models.ts +25 -0
  51. package/src/Graph/InteractiveComponents/Annotations/useAnnotation.ts +56 -0
  52. package/src/Graph/InteractiveComponents/Bar.tsx +21 -0
  53. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +62 -0
  54. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +74 -0
  55. package/src/Graph/InteractiveComponents/TimeShiftZones/index.tsx +85 -0
  56. package/src/Graph/InteractiveComponents/TimeShiftZones/models.ts +12 -0
  57. package/src/Graph/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +72 -0
  58. package/src/Graph/InteractiveComponents/Tooltip/index.tsx +59 -0
  59. package/src/Graph/InteractiveComponents/Tooltip/models.ts +9 -0
  60. package/src/Graph/InteractiveComponents/Tooltip/useGraphTooltip.ts +67 -0
  61. package/src/Graph/InteractiveComponents/ZoomPreview/index.tsx +38 -0
  62. package/src/Graph/InteractiveComponents/ZoomPreview/models.ts +9 -0
  63. package/src/Graph/InteractiveComponents/ZoomPreview/useZoomPreview.ts +107 -0
  64. package/src/Graph/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +3 -0
  65. package/src/Graph/InteractiveComponents/index.tsx +168 -0
  66. package/src/Graph/InteractiveComponents/interactionWithGraphAtoms.ts +51 -0
  67. package/src/Graph/Legend/InteractiveValue.tsx +22 -0
  68. package/src/Graph/Legend/Legend.styles.ts +71 -0
  69. package/src/Graph/Legend/LegendContent.tsx +27 -0
  70. package/src/Graph/Legend/LegendHeader.tsx +45 -0
  71. package/src/Graph/Legend/Marker.tsx +43 -0
  72. package/src/Graph/Legend/index.tsx +166 -0
  73. package/src/Graph/Legend/models.ts +11 -0
  74. package/src/Graph/Legend/useInteractiveValues.ts +86 -0
  75. package/src/Graph/Legend/useLegend.ts +114 -0
  76. package/src/Graph/LoadingSkeleton.tsx +44 -0
  77. package/src/Graph/common/index.ts +35 -0
  78. package/src/Graph/graphAtoms.ts +6 -0
  79. package/src/Graph/helpers/doc.ts +560 -0
  80. package/src/Graph/helpers/index.ts +58 -0
  81. package/src/Graph/index.stories.tsx +372 -0
  82. package/src/Graph/index.tsx +90 -0
  83. package/src/Graph/mockedData/annotationData.json +326 -0
  84. package/src/Graph/mockedData/exclusionPeriodFirstPeriod.json +588 -0
  85. package/src/Graph/mockedData/exclusionPeriodSecondPeriod.json +588 -0
  86. package/src/Graph/mockedData/exclusionPeriodThirdPeriod.json +581 -0
  87. package/src/Graph/mockedData/lastDay.json +1326 -0
  88. package/src/Graph/mockedData/lastDayAreaStack.json +3106 -0
  89. package/src/Graph/mockedData/lastDayForward.json +1338 -0
  90. package/src/Graph/mockedData/lastDayThreshold.json +2352 -0
  91. package/src/Graph/mockedData/lastMonth.json +1674 -0
  92. package/src/Graph/mockedData/lastWeek.json +2202 -0
  93. package/src/Graph/mockedData/zoomPreview.json +742 -0
  94. package/src/Graph/models.ts +150 -0
  95. package/src/Graph/timeSeries/index.test.ts +506 -0
  96. package/src/Graph/timeSeries/index.ts +512 -0
  97. package/src/Graph/timeSeries/models.ts +120 -0
  98. package/src/Graph/translatedLabels.ts +9 -0
  99. package/src/Graph/useGraphData.ts +47 -0
  100. package/src/Graph/useGraphIntersection.ts +36 -0
  101. package/src/ThemeProvider/index.tsx +5 -6
  102. package/src/ThemeProvider/palettes.ts +215 -385
  103. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +51 -0
  104. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +95 -0
  105. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +14 -0
  106. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +163 -0
  107. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +76 -0
  108. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +61 -0
  109. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +82 -0
  110. package/src/TimePeriods/CustomTimePeriod/index.tsx +66 -0
  111. package/src/TimePeriods/DateTimePickerInput.tsx +49 -0
  112. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +65 -0
  113. package/src/TimePeriods/SelectedTimePeriod.tsx +102 -0
  114. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +510 -0
  115. package/src/TimePeriods/TimePeriods.styles.ts +22 -0
  116. package/src/TimePeriods/helpers/index.ts +26 -0
  117. package/src/TimePeriods/index.stories.tsx +98 -0
  118. package/src/TimePeriods/index.tsx +78 -0
  119. package/src/TimePeriods/mockedData.ts +12 -0
  120. package/src/TimePeriods/models.ts +97 -0
  121. package/src/TimePeriods/timePeriodsAtoms.ts +102 -0
  122. package/src/TimePeriods/translatedLabels.ts +9 -0
  123. package/src/TimePeriods/useSortTimePeriods.ts +31 -0
  124. package/src/TimePeriods/useTimePeriod.ts +49 -0
  125. package/src/api/TestQueryProvider.tsx +1 -2
  126. package/src/api/useFetchQuery/index.ts +7 -8
  127. package/src/api/useMutationQuery/index.ts +10 -11
  128. package/src/components/Button/Button.styles.ts +3 -17
  129. package/src/components/Button/Button.tsx +3 -6
  130. package/src/components/Button/Icon/IconButton.styles.ts +2 -9
  131. package/src/components/DataTable/DataTable.stories.tsx +0 -9
  132. package/src/components/DataTable/DataTable.styles.ts +0 -5
  133. package/src/components/DataTable/DataTable.tsx +6 -8
  134. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +1 -4
  135. package/src/components/DataTable/Item/DataTableItem.styles.ts +2 -5
  136. package/src/components/DataTable/Item/DataTableItem.tsx +18 -36
  137. package/src/components/Header/Header.stories.tsx +27 -0
  138. package/src/components/Header/Header.styles.ts +27 -0
  139. package/src/components/Header/Header.tsx +23 -0
  140. package/src/components/Header/index.ts +1 -1
  141. package/src/components/Modal/index.ts +0 -2
  142. package/src/components/index.ts +0 -3
  143. package/src/index.ts +2 -0
  144. package/src/layout/TiledListingPage/TiledListingActions.tsx +15 -0
  145. package/src/layout/TiledListingPage/TiledListingContent.tsx +21 -0
  146. package/src/layout/TiledListingPage/TiledListingList.tsx +11 -0
  147. package/src/layout/TiledListingPage/TiledListingPage.styles.ts +16 -0
  148. package/src/layout/TiledListingPage/TiledListingPage.tsx +15 -0
  149. package/src/layout/TiledListingPage/index.ts +4 -0
  150. package/src/screens/dashboard/DashboardsOverview.stories.tsx +102 -110
  151. package/src/utils/index.ts +1 -1
  152. package/src/utils/sanitizedHTML.ts +1 -1
  153. package/test/setupTests.js +0 -3
  154. package/src/base/tokens/README.md +0 -3
  155. package/src/base/tokens/source/$metadata.json +0 -5
  156. package/src/base/tokens/source/base.json +0 -142
  157. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  158. package/src/base/tokens/themes/base.tokens.json +0 -695
  159. package/src/base/tokens/themes/base.tokens.ts +0 -38
  160. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  161. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  162. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  163. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  164. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  165. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  166. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -88
  167. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -99
  168. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  169. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  170. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  171. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  172. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  173. package/src/components/Header/PageHeader/index.ts +0 -12
  174. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  175. package/src/components/Layout/AreaIndicator.tsx +0 -35
  176. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  177. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -40
  178. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  179. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -15
  180. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  181. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  182. package/src/components/Layout/PageLayout/index.ts +0 -10
  183. package/src/components/Layout/index.ts +0 -1
  184. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  185. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  186. package/src/components/Menu/Button/MenuButton.tsx +0 -59
  187. package/src/components/Menu/Button/index.ts +0 -1
  188. package/src/components/Menu/Menu.stories.tsx +0 -71
  189. package/src/components/Menu/Menu.styles.ts +0 -70
  190. package/src/components/Menu/Menu.tsx +0 -25
  191. package/src/components/Menu/MenuDivider.tsx +0 -13
  192. package/src/components/Menu/MenuItem.tsx +0 -36
  193. package/src/components/Menu/MenuItems.tsx +0 -35
  194. package/src/components/Menu/index.ts +0 -12
  195. package/src/components/Menu/useMenu.tsx +0 -79
  196. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -71
  197. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  198. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  199. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  200. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  201. package/src/components/Tooltip/Tooltip.styles.ts +0 -5
  202. package/src/components/Tooltip/Tooltip.tsx +0 -46
  203. package/src/components/Tooltip/index.ts +0 -1
  204. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  205. package/src/utils/useResizeObserver.ts +0 -6
@@ -1,38 +0,0 @@
1
- /**
2
- * Do not edit directly
3
- * Generated on Sun, 04 Jun 2023 10:14:22 GMT
4
- */
5
-
6
- export const colorBlue50 = '#ecf4fdff';
7
- export const colorBlue100 = '#d2e4f9ff';
8
- export const colorBlue200 = '#9ec4f0ff';
9
- export const colorBlue300 = '#6da4e4ff';
10
- export const colorBlue400 = '#3e85d5ff';
11
- export const colorBlue500 = '#2e68aaff';
12
- export const colorBlue600 = '#205593ff';
13
- export const colorBlue700 = '#164274ff';
14
- export const colorBlue800 = '#0d2e54ff';
15
- export const colorBlue900 = '#071d37ff';
16
- export const colorBlue950 = '#031326ff';
17
- export const colorPurple50 = '#f8f1f9ff';
18
- export const colorPurple100 = '#f0def2ff';
19
- export const colorPurple200 = '#ddafe4ff';
20
- export const colorPurple300 = '#ce81daff';
21
- export const colorPurple400 = '#c151d2ff';
22
- export const colorPurple500 = '#ac28c1ff';
23
- export const colorPurple600 = '#872796ff';
24
- export const colorPurple700 = '#682172ff';
25
- export const colorPurple800 = '#491b50ff';
26
- export const colorPurple900 = '#29112cff';
27
- export const colorPurple950 = '#1a0d1cff';
28
- export const colorGrey50 = '#f9fafbff';
29
- export const colorGrey100 = '#eaedf0ff';
30
- export const colorGrey200 = '#cad0d8ff';
31
- export const colorGrey300 = '#aab4c0ff';
32
- export const colorGrey400 = '#8c98a6ff';
33
- export const colorGrey500 = '#6f7b8aff';
34
- export const colorGrey600 = '#596573ff';
35
- export const colorGrey700 = '#434e5bff';
36
- export const colorGrey800 = '#2f3741ff';
37
- export const colorGrey900 = '#1b2127ff';
38
- export const colorGrey950 = '#101418ff';
@@ -1,88 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
-
3
- import {
4
- Settings as SettingsIcon,
5
- StarOutline as StarOutlineIcon
6
- } from '@mui/icons-material';
7
-
8
- import { Button, IconButton } from '../../Button';
9
- import { Menu } from '../../Menu';
10
-
11
- import { PageHeader } from './index';
12
-
13
- type PageHeaderComponent = typeof PageHeader & typeof PageHeader.Title;
14
-
15
- const meta: Meta<typeof PageHeader> = {
16
- component: PageHeader
17
- };
18
-
19
- export default meta;
20
- type Story = StoryObj<PageHeaderComponent>;
21
-
22
- export const Default: Story = {
23
- args: {
24
- title: 'Page header'
25
- },
26
- render: (args) => (
27
- <PageHeader>
28
- <PageHeader.Main>
29
- <PageHeader.Title {...args} />
30
- </PageHeader.Main>
31
- <PageHeader.Actions>
32
- <Button
33
- icon={<SettingsIcon />}
34
- iconVariant="start"
35
- size="small"
36
- variant="ghost"
37
- >
38
- Manage
39
- </Button>
40
- </PageHeader.Actions>
41
- </PageHeader>
42
- )
43
- };
44
-
45
- export const WithDescription: Story = {
46
- args: {
47
- description:
48
- 'Eu aliquip quis in minim laboris occaecat quis nostrud occaecat. Cupidatat consectetur non Lorem eiusmod ut cupidatat dolor enim cillum ex enim irure velit. ',
49
- title: 'Nulla ex dolore tempor magna ex'
50
- },
51
- render: Default.render
52
- };
53
-
54
- export const WithMenu: Story = {
55
- args: {
56
- ...WithDescription.args,
57
- actions: (
58
- <IconButton icon={<StarOutlineIcon />} size="small" variant="ghost" />
59
- )
60
- },
61
- render: (args) => (
62
- <PageHeader>
63
- <PageHeader.Main>
64
- <PageHeader.Menu>
65
- <Menu>
66
- <Menu.Button />
67
- <Menu.Items>
68
- <Menu.Item>Menu Item</Menu.Item>
69
- <Menu.Item>Menu Item</Menu.Item>
70
- <Menu.Item>Menu Item</Menu.Item>
71
- </Menu.Items>
72
- </Menu>
73
- </PageHeader.Menu>
74
- <PageHeader.Title {...args} />
75
- </PageHeader.Main>
76
- <PageHeader.Actions>
77
- <Button
78
- icon={<SettingsIcon />}
79
- iconVariant="start"
80
- size="small"
81
- variant="ghost"
82
- >
83
- Manage
84
- </Button>
85
- </PageHeader.Actions>
86
- </PageHeader>
87
- )
88
- };
@@ -1,99 +0,0 @@
1
- import { makeStyles } from 'tss-react/mui';
2
-
3
- const useStyles = makeStyles()((theme) => ({
4
- header: {
5
- alignItems: 'flex-start',
6
- borderBottom: `1px solid ${theme.palette.primary.main}`,
7
- display: 'flex',
8
- flexDirection: 'row',
9
- h1: {
10
- font: 'normal normal 600 24px/24px Roboto',
11
- letterSpacing: '0.18px',
12
- margin: theme.spacing(0, 0, 1.5, 0)
13
- },
14
- justifyContent: 'space-between',
15
-
16
- nav: {
17
- display: 'flex',
18
- gap: theme.spacing(1),
19
- justifyContent: 'flex-end'
20
- },
21
-
22
- padding: theme.spacing(0, 0, 1.5, 0)
23
- },
24
- pageHeader: {
25
- alignItems: 'flex-start',
26
- borderBottom: `1px solid ${theme.palette.header.page.border}`,
27
- display: 'flex',
28
- gap: theme.spacing(4),
29
- paddingBottom: theme.spacing(2)
30
- },
31
- pageHeaderActions: {
32
- '& > button': {
33
- '&:hover': {
34
- backgroundColor: theme.palette.header.page.action.background.active,
35
- color: theme.palette.header.page.action.color.active
36
- },
37
- backgroundColor: theme.palette.header.page.action.background.default,
38
-
39
- color: theme.palette.header.page.action.color.default
40
- },
41
- display: 'flex',
42
-
43
- gap: theme.spacing(2)
44
- },
45
- pageHeaderMain: {
46
- display: 'flex',
47
- flexGrow: 1,
48
- gap: theme.spacing(1)
49
- },
50
- pageHeaderMenu: {
51
- alignItems: 'flex-start',
52
- display: 'flex',
53
- position: 'relative',
54
- transform: `translateY(-${theme.spacing(0.25)})`
55
- },
56
- pageHeaderTitle: {
57
- '& > *': {
58
- display: 'grid'
59
- },
60
- '& > span': {
61
- display: 'flex',
62
- flexDirection: 'row',
63
-
64
- gap: theme.spacing(2)
65
- },
66
- display: 'flex',
67
-
68
- flexDirection: 'column',
69
-
70
- gap: theme.spacing(1),
71
-
72
- h1: {
73
- color: theme.palette.header.page.title,
74
- font: 'normal normal 700 24px/100% Roboto',
75
- letterSpacing: '0.15px',
76
- margin: theme.spacing(0)
77
- }
78
- },
79
- pageHeaderTitleActions: {
80
- '& > button': {
81
- opacity: 0.2,
82
- padding: 0
83
- },
84
- alignItems: 'bottom',
85
- display: 'flex',
86
- gap: theme.spacing(1)
87
- },
88
- pageHeaderTitleDescription: {
89
- color: theme.palette.header.page.description,
90
- font: 'normal normal 400 12px/16px Roboto',
91
- letterSpacing: '0.15px',
92
- maxWidth: '560px',
93
- overflow: 'hidden',
94
- textOverflow: 'ellipsis',
95
- whiteSpace: 'nowrap'
96
- }
97
- }));
98
-
99
- export { useStyles };
@@ -1,15 +0,0 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageHeader.styles';
4
-
5
- type PageHeaderProps = {
6
- children?: ReactNode;
7
- };
8
-
9
- const PageHeader = ({ children }: PageHeaderProps): ReactElement => {
10
- const { classes } = useStyles();
11
-
12
- return <section className={classes.pageHeader}>{children}</section>;
13
- };
14
-
15
- export { PageHeader };
@@ -1,17 +0,0 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageHeader.styles';
4
-
5
- type PageHeaderActionsProps = {
6
- children?: ReactNode;
7
- };
8
-
9
- const PageHeaderActions = ({
10
- children
11
- }: PageHeaderActionsProps): ReactElement => {
12
- const { classes } = useStyles();
13
-
14
- return <header className={classes.pageHeaderActions}>{children}</header>;
15
- };
16
-
17
- export { PageHeaderActions };
@@ -1,15 +0,0 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageHeader.styles';
4
-
5
- type PageHeaderMainProps = {
6
- children?: ReactNode;
7
- };
8
-
9
- const PageHeaderMain = ({ children }: PageHeaderMainProps): ReactElement => {
10
- const { classes } = useStyles();
11
-
12
- return <div className={classes.pageHeaderMain}>{children}</div>;
13
- };
14
-
15
- export { PageHeaderMain };
@@ -1,15 +0,0 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageHeader.styles';
4
-
5
- type PageHeaderMenuProps = {
6
- children?: ReactNode;
7
- };
8
-
9
- const PageHeaderMenu = ({ children }: PageHeaderMenuProps): ReactElement => {
10
- const { classes } = useStyles();
11
-
12
- return <nav className={classes.pageHeaderMenu}>{children}</nav>;
13
- };
14
-
15
- export { PageHeaderMenu };
@@ -1,47 +0,0 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
-
3
- import { Typography as MuiTypography } from '@mui/material';
4
-
5
- import { TextOverflowTooltip } from '../../Tooltip/TextOverflowTooltip';
6
-
7
- import { useStyles } from './PageHeader.styles';
8
-
9
- type PageHeaderTitleProps = {
10
- actions?: ReactNode;
11
- description?: string;
12
- title: string;
13
- };
14
-
15
- const PageHeaderTitle = ({
16
- actions,
17
- title,
18
- description
19
- }: PageHeaderTitleProps): ReactElement => {
20
- const { classes } = useStyles();
21
-
22
- return (
23
- <div className={classes.pageHeaderTitle}>
24
- <span>
25
- <MuiTypography aria-label="page header title" variant="h1">
26
- {title}
27
- </MuiTypography>
28
- {actions && (
29
- <div className={classes.pageHeaderTitleActions}>{actions}</div>
30
- )}
31
- </span>
32
- {description && (
33
- <TextOverflowTooltip label={description}>
34
- <MuiTypography
35
- aria-label="page header description"
36
- className={classes.pageHeaderTitleDescription}
37
- variant="body2"
38
- >
39
- {description}
40
- </MuiTypography>
41
- </TextOverflowTooltip>
42
- )}
43
- </div>
44
- );
45
- };
46
-
47
- export { PageHeaderTitle };
@@ -1,12 +0,0 @@
1
- import { PageHeader as PageHeaderRoot } from './PageHeader';
2
- import { PageHeaderMain } from './PageHeaderMain';
3
- import { PageHeaderMenu } from './PageHeaderMenu';
4
- import { PageHeaderTitle } from './PageHeaderTitle';
5
- import { PageHeaderActions } from './PageHeaderActions';
6
-
7
- export const PageHeader = Object.assign(PageHeaderRoot, {
8
- Actions: PageHeaderActions,
9
- Main: PageHeaderMain,
10
- Menu: PageHeaderMenu,
11
- Title: PageHeaderTitle
12
- });
@@ -1,33 +0,0 @@
1
- import { makeStyles } from 'tss-react/mui';
2
-
3
- export const useStyles = makeStyles()((theme) => ({
4
- areaIndicator: {
5
- '& .areaIndicator': {
6
- left: theme.spacing(10)
7
- },
8
- '& label:first-of-type': {
9
- border: '1px dashed #9747FF7F',
10
- borderRadius: '4px',
11
- color: '#9747FFFF',
12
- fontSize: '0.75rem',
13
- fontWeight: 500,
14
- left: theme.spacing(1),
15
- padding: theme.spacing(0.125, 1),
16
- position: 'absolute',
17
- top: theme.spacing(0.75)
18
- },
19
- '&[data-depth="1"]': {
20
- '& label:first-of-type': {
21
- '&:before': {
22
- content: '"+ "'
23
- },
24
- left: theme.spacing(10)
25
- }
26
- },
27
-
28
- backgroundColor: '#9747FF19',
29
- minHeight: theme.spacing(4),
30
-
31
- position: 'relative'
32
- }
33
- }));
@@ -1,35 +0,0 @@
1
- import { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './AreaIndicator.styles';
4
-
5
- type AreaIndicatorProps = {
6
- children?: ReactNode | Array<ReactNode>;
7
- depth?: number;
8
- height?: number | string;
9
- name: string;
10
- width?: number | string;
11
- };
12
-
13
- const AreaIndicator = ({
14
- children,
15
- name = 'area',
16
- width = '100%',
17
- height = '100%',
18
- depth = 0
19
- }: AreaIndicatorProps): ReactElement => {
20
- const { classes } = useStyles();
21
-
22
- return (
23
- <div
24
- className={classes.areaIndicator}
25
- data-depth={depth}
26
- style={{ height, width }}
27
- >
28
- {/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}
29
- <label>{name}</label>
30
- {children}
31
- </div>
32
- );
33
- };
34
-
35
- export { AreaIndicator };
@@ -1,81 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
-
3
- import { AreaIndicator } from '../AreaIndicator';
4
- import { Default as DefaultPageHeaderStory } from '../../Header/PageHeader/PageHeader.stories';
5
-
6
- import { PageLayout } from './index';
7
-
8
- const meta: Meta<typeof PageLayout> = {
9
- argTypes: {
10
- variant: {
11
- control: {
12
- options: ['default', 'fixed-header']
13
- }
14
- }
15
- },
16
- component: PageLayout,
17
- parameters: {
18
- layout: 'fullscreen'
19
- }
20
- };
21
-
22
- export default meta;
23
- type Story = StoryObj<typeof PageLayout>;
24
-
25
- export const Default: Story = {
26
- args: {
27
- children: (
28
- <>
29
- <PageLayout.Header>
30
- <AreaIndicator name="header" />
31
- </PageLayout.Header>
32
- <PageLayout.Body>
33
- <AreaIndicator height="100vh" name="body">
34
- <PageLayout.Actions>
35
- <AreaIndicator depth={1} name="actions" />
36
- </PageLayout.Actions>
37
- </AreaIndicator>
38
- </PageLayout.Body>
39
- </>
40
- ),
41
- variant: 'default'
42
- }
43
- };
44
-
45
- export const FixedHeader: Story = {
46
- args: {
47
- children: (
48
- <>
49
- <PageLayout.Header>
50
- <AreaIndicator name="header" />
51
- </PageLayout.Header>
52
- <PageLayout.Body hasBackground>
53
- <AreaIndicator height="100vh" name="body">
54
- <PageLayout.Actions>
55
- <AreaIndicator depth={1} name="actions" />
56
- </PageLayout.Actions>
57
- </AreaIndicator>
58
- </PageLayout.Body>
59
- </>
60
- ),
61
- variant: 'fixed-header'
62
- }
63
- };
64
-
65
- export const DefaultWithPageHeader: Story = {
66
- args: {
67
- children: (
68
- <>
69
- <PageLayout.Header>
70
- {/* eslint-disable react/jsx-pascal-case */}
71
- {/* @ts-expect-error storybook story render method not being recognised */}
72
- <DefaultPageHeaderStory.render {...DefaultPageHeaderStory.args} />
73
- </PageLayout.Header>
74
- <PageLayout.Body>
75
- <AreaIndicator height="100vh" name="body" />
76
- </PageLayout.Body>
77
- </>
78
- ),
79
- variant: 'default'
80
- }
81
- };
@@ -1,40 +0,0 @@
1
- import { makeStyles } from 'tss-react/mui';
2
-
3
- export const useStyles = makeStyles()((theme) => ({
4
- pageLayout: {
5
- display: 'grid',
6
- gridTemplateRows: 'min-content',
7
- overflow: 'hidden'
8
- },
9
- pageLayoutActions: {
10
- '& > span': {
11
- display: 'flex',
12
- gap: theme.spacing(0.5)
13
- },
14
-
15
- display: 'flex',
16
- justifyContent: 'space-between',
17
- paddingBottom: theme.spacing(2.5)
18
- },
19
- pageLayoutBody: {
20
- '&[data-has-background="true"]': {
21
- backgroundColor: theme.palette.layout.body.background
22
- },
23
- display: 'grid',
24
- gridTemplateRows: 'min-content',
25
- overflow: 'hidden',
26
- padding: theme.spacing(3, 3, 5)
27
- },
28
- pageLayoutHeader: {
29
- '[data-variant="fixed-header"] &': {
30
- backgroundColor: theme.palette.layout.header.background,
31
- borderBottom: `1px solid ${theme.palette.layout.header.border}`,
32
- padding: theme.spacing(5, 4, 2),
33
- position: 'sticky',
34
- top: 0,
35
- zIndex: `calc(${theme.zIndex.mobileStepper} - 100)`
36
- },
37
-
38
- padding: theme.spacing(5, 3, 0)
39
- }
40
- }));
@@ -1,21 +0,0 @@
1
- import { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageLayout.styles';
4
-
5
- type PageLayoutProps = {
6
- children: Array<ReactNode> | ReactNode;
7
- variant?: 'default' | 'fixed-header';
8
- };
9
-
10
- export const PageLayout = ({
11
- children,
12
- variant = 'default'
13
- }: PageLayoutProps): ReactElement => {
14
- const { classes } = useStyles();
15
-
16
- return (
17
- <section className={classes.pageLayout} data-variant={variant}>
18
- {children}
19
- </section>
20
- );
21
- };
@@ -1,15 +0,0 @@
1
- import { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageLayout.styles';
4
-
5
- type PageLayoutActionsProps = {
6
- children: Array<ReactNode> | ReactNode;
7
- };
8
-
9
- export const PageLayoutActions = ({
10
- children
11
- }: PageLayoutActionsProps): ReactElement => {
12
- const { classes } = useStyles();
13
-
14
- return <section className={classes.pageLayoutActions}>{children}</section>;
15
- };
@@ -1,24 +0,0 @@
1
- import { ReactElement, ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageLayout.styles';
4
-
5
- type PageLayoutBodyProps = {
6
- children: Array<ReactNode> | ReactNode;
7
- hasBackground?: boolean;
8
- };
9
-
10
- export const PageLayoutBody = ({
11
- children,
12
- hasBackground = false
13
- }: PageLayoutBodyProps): ReactElement => {
14
- const { classes } = useStyles();
15
-
16
- return (
17
- <section
18
- className={classes.pageLayoutBody}
19
- data-has-background={hasBackground}
20
- >
21
- {children}
22
- </section>
23
- );
24
- };
@@ -1,15 +0,0 @@
1
- import { ReactNode } from 'react';
2
-
3
- import { useStyles } from './PageLayout.styles';
4
-
5
- type PageLayoutHeaderProps = {
6
- children: Array<ReactNode> | ReactNode;
7
- };
8
-
9
- export const PageLayoutHeader = ({
10
- children
11
- }: PageLayoutHeaderProps): JSX.Element => {
12
- const { classes } = useStyles();
13
-
14
- return <header className={classes.pageLayoutHeader}>{children}</header>;
15
- };
@@ -1,10 +0,0 @@
1
- import { PageLayout as PageLayoutRoot } from './PageLayout';
2
- import { PageLayoutHeader } from './PageLayoutHeader';
3
- import { PageLayoutBody } from './PageLayoutBody';
4
- import { PageLayoutActions } from './PageLayoutActions';
5
-
6
- export const PageLayout = Object.assign(PageLayoutRoot, {
7
- Actions: PageLayoutActions,
8
- Body: PageLayoutBody,
9
- Header: PageLayoutHeader
10
- });
@@ -1 +0,0 @@
1
- export * from './PageLayout';
@@ -1,16 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
-
3
- import { MenuButton } from './MenuButton';
4
-
5
- const meta: Meta<typeof MenuButton> = {
6
- component: MenuButton
7
- };
8
-
9
- export default meta;
10
- type Story = StoryObj<typeof MenuButton>;
11
-
12
- export const Default: Story = {
13
- args: {
14
- 'aria-label': 'menu button'
15
- }
16
- };
@@ -1,27 +0,0 @@
1
- import { makeStyles } from 'tss-react/mui';
2
-
3
- export const useStyles = makeStyles()((theme) => ({
4
- buttonIcon: {
5
- '[data-is-active="true"] &': {
6
- transform: 'rotate(180deg)'
7
- },
8
-
9
- fontSize: '1.25rem',
10
- transition: 'transform 0.15s ease-in-out'
11
- },
12
- menuButton: {
13
- '&:hover:not(&[data-is-active="true"])': {
14
- backgroundColor: theme.palette.menu.button.background.hover,
15
- color: theme.palette.menu.button.color.hover
16
- },
17
- '&[data-is-active="true"]': {
18
- backgroundColor: theme.palette.menu.button.background.active,
19
- color: theme.palette.menu.button.color.active
20
- },
21
- backgroundColor: theme.palette.menu.button.background.default,
22
- color: theme.palette.menu.button.color.default,
23
- display: 'flex',
24
- height: 'unset',
25
- minWidth: 'unset'
26
- }
27
- }));