@campxdev/react-blueprint 1.2.18 → 1.2.19

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 (43) hide show
  1. package/.storybook/preview.tsx +1 -1
  2. package/export.ts +1 -1
  3. package/package.json +14 -14
  4. package/src/App.tsx +82 -47
  5. package/src/components/Assets/Icons/IconComponents/ColumnsIcon.tsx +31 -0
  6. package/src/components/Assets/Icons/IconComponents/Comfortable.tsx +4 -4
  7. package/src/components/Assets/Icons/IconComponents/CompactIcon.tsx +6 -6
  8. package/src/components/Assets/Icons/IconComponents/CompletedStateIcon.tsx +3 -3
  9. package/src/components/Assets/Icons/IconComponents/FilterIcon.tsx +27 -60
  10. package/src/components/Assets/Icons/IconComponents/InfoFilledIcon.tsx +6 -18
  11. package/src/components/Assets/Icons/IconComponents/SearchIcon.tsx +1 -1
  12. package/src/components/Assets/Icons/IconComponents/StandardIcon.tsx +5 -5
  13. package/src/components/Assets/Icons/IconComponents/ViewsIcon.tsx +35 -0
  14. package/src/components/Assets/Icons/Icons.tsx +4 -2
  15. package/src/components/Charts/TreeMap/TreeMap.tsx +1 -6
  16. package/src/components/DataDisplay/EditableDataTable/EditableDataTable.tsx +48 -1
  17. package/src/components/Layout/AppHeader/AppHeader.tsx +1 -0
  18. package/src/components/Layout/PageHeader/PageHeader.tsx +160 -44
  19. package/src/components/Layout/PageHeader/components/Anchors.tsx +84 -0
  20. package/src/components/Layout/PageHeader/components/DensitySelector/DensitySelector.tsx +96 -0
  21. package/src/components/{Navigation/TableColumnFilters/TableColumnFilters.tsx → Layout/PageHeader/components/TableColumnsSelector/TableColumnsSelector.tsx} +20 -19
  22. package/src/components/Layout/export.ts +2 -0
  23. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +16 -7
  24. package/src/components/Navigation/Stepper/Stepper.tsx +3 -1
  25. package/src/components/Navigation/Stepper/StepperComponents.tsx +20 -6
  26. package/src/components/Navigation/export.ts +1 -2
  27. package/src/hooks/usePageHeader.ts +5 -4
  28. package/src/index.tsx +1 -1
  29. package/src/redux/export.ts +2 -0
  30. package/src/{state/filters/filtersSlice.ts → redux/slices/pageHeaderSlice.ts} +8 -14
  31. package/src/{state → redux}/store.ts +2 -2
  32. package/src/stories/Assets/Icons.stories.tsx +13 -4
  33. package/src/stories/Navigation/ColumnFilters.stories.tsx +6 -6
  34. package/src/stories/Navigation/{TableDensityFilter.stories.tsx → DensitySelector.stories.tsx} +6 -9
  35. package/src/themes/colorTokens/colorPalette.tsx +2 -0
  36. package/src/themes/colorTokens/darkColorTokens.tsx +1 -0
  37. package/src/themes/colorTokens/lightColorTokens.ts +1 -0
  38. package/src/themes/commonTheme.ts +15 -2
  39. package/tsconfig.json +1 -1
  40. package/types/theme.d.ts +1 -0
  41. package/src/components/Assets/Icons/IconComponents/FilterViewIcon.tsx +0 -32
  42. package/src/components/Navigation/TableDensityFilter/TableDensityFilter.tsx +0 -115
  43. package/src/state/export.ts +0 -2
@@ -4,7 +4,7 @@ import React from 'react';
4
4
  import { Provider } from 'react-redux';
5
5
  import { BrowserRouter } from 'react-router-dom';
6
6
  import { useDarkMode } from 'storybook-dark-mode';
7
- import { store } from '../src/state/export';
7
+ import { store } from '../src/redux/export';
8
8
  import { MuiThemeProvider } from '../src/themes/MuiThemeProvider';
9
9
 
10
10
  import { DarkColorTokens } from '../src/themes/colorTokens/darkColorTokens';
package/export.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './src/components/export';
2
2
  export * from './src/hooks/export';
3
- export * from './src/state/export';
3
+ export * from './src/redux/export';
4
4
  export * from './src/themes/export';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campxdev/react-blueprint",
3
- "version": "1.2.18",
3
+ "version": "1.2.19",
4
4
  "main": "./export.ts",
5
5
  "private": false,
6
6
  "dependencies": {
@@ -12,7 +12,7 @@
12
12
  "@mui/x-data-grid": "^7.5.1",
13
13
  "@mui/x-date-pickers": "7.16.0",
14
14
  "@reduxjs/toolkit": "^2.2.7",
15
- "@storybook/addon-backgrounds": "^8.2.6",
15
+ "@storybook/addon-backgrounds": "^8.3.1",
16
16
  "@storybook/addon-designs": "^8.0.3",
17
17
  "@testing-library/jest-dom": "^5.14.1",
18
18
  "@testing-library/react": "^13.0.0",
@@ -75,21 +75,21 @@
75
75
  },
76
76
  "devDependencies": {
77
77
  "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
78
- "@chromatic-com/storybook": "^1.6.1",
79
- "@storybook/addon-essentials": "^8.2.6",
80
- "@storybook/addon-interactions": "^8.2.6",
81
- "@storybook/addon-links": "^8.2.6",
82
- "@storybook/addon-mdx-gfm": "^8.2.6",
83
- "@storybook/addon-onboarding": "^8.2.6",
84
- "@storybook/blocks": "^8.2.6",
85
- "@storybook/preset-create-react-app": "^8.2.6",
86
- "@storybook/react": "^8.2.6",
87
- "@storybook/react-webpack5": "^8.2.6",
88
- "@storybook/test": "^8.2.6",
78
+ "@chromatic-com/storybook": "^2.0.2",
79
+ "@storybook/addon-essentials": "^8.3.1",
80
+ "@storybook/addon-interactions": "^8.3.1",
81
+ "@storybook/addon-links": "^8.3.1",
82
+ "@storybook/addon-mdx-gfm": "^8.3.1",
83
+ "@storybook/addon-onboarding": "^8.3.1",
84
+ "@storybook/blocks": "^8.3.1",
85
+ "@storybook/preset-create-react-app": "^8.3.1",
86
+ "@storybook/react": "^8.3.1",
87
+ "@storybook/react-webpack5": "^8.3.1",
88
+ "@storybook/test": "^8.3.1",
89
89
  "@types/js-cookie": "^3.0.5",
90
90
  "eslint-plugin-storybook": "^0.8.0",
91
91
  "prop-types": "^15.8.1",
92
- "storybook": "^8.2.6",
92
+ "storybook": "^8.3.1",
93
93
  "webpack": "^5.91.0"
94
94
  }
95
95
  }
package/src/App.tsx CHANGED
@@ -1,59 +1,94 @@
1
+ import { GridColDef } from '@mui/x-data-grid';
1
2
  import { useState } from 'react';
2
3
  import './App.css';
3
- import { AppHeader } from './components/export';
4
- import { Select } from './components/Input/Select/Select';
4
+ import { EditableDataTable } from './components/export';
5
+ import { usePageHeader } from './hooks/usePageHeader';
6
+
7
+ interface RowType {
8
+ lastName: string;
9
+ firstName: string;
10
+ age: number;
11
+ }
5
12
 
6
13
  function App() {
7
14
  const [status, setStatus] = useState('green');
8
15
 
16
+ const { uniqueId, density, columnVisibilityModel } = usePageHeader();
17
+
18
+ const columns: GridColDef[] = [
19
+ {
20
+ field: 'firstName',
21
+ headerName: 'First name',
22
+ width: 250,
23
+ editable: true,
24
+
25
+ type: 'string',
26
+ },
27
+ {
28
+ field: 'lastName',
29
+ headerName: 'Last name',
30
+ width: 250,
31
+ editable: true,
32
+ type: 'string',
33
+ // renderEditCell: (params) => (
34
+ // <TextField
35
+ // value={params.value}
36
+ // disabled={params.api.getRowMode(params.id) != GridRowModes.Edit}
37
+ // onChange={(e) => {
38
+ // params.api.setEditCellValue({
39
+ // id: params.id,
40
+ // field: 'lastName',
41
+ // value: e.target.value,
42
+ // });
43
+ // }}
44
+ // />
45
+ // ),
46
+ },
47
+ {
48
+ field: 'age',
49
+ headerName: 'Age',
50
+ width: 110,
51
+ editable: true,
52
+ type: 'number',
53
+ },
54
+ ];
55
+
56
+ const rows1 = [
57
+ {
58
+ lastName: 'Snow',
59
+ firstName: 'Jon',
60
+ age: 35,
61
+ },
62
+ {
63
+ lastName: 'Lan ter',
64
+ firstName: 'Cer sei',
65
+ age: 42,
66
+ },
67
+ {
68
+ lastName: 'Lan Iter',
69
+ firstName: 'Jaime',
70
+ age: 45,
71
+ },
72
+ {
73
+ lastName: 'Stark',
74
+ firstName: 'Arya',
75
+ age: 16,
76
+ },
77
+ ];
78
+
79
+ const [rows, setRows] = useState<RowType[]>(rows1 ?? []);
80
+ const onSave = (rows: RowType[]) => {
81
+ console.log(rows, 'rrr');
82
+ };
9
83
  return (
10
84
  <>
11
- <AppHeader
12
- clientName="Anurag University"
13
- actions={[<p>asdjflsf</p>]}
14
- userFullName="Srikanth Yellapragada"
15
- collapsed={false}
16
- institutionsData={[]}
17
- />
18
- <Select
19
- value={status}
20
- onChange={(e) => {
21
- setStatus(e.target.value);
85
+ <EditableDataTable
86
+ rows={rows}
87
+ columns={columns}
88
+ onChange={(newRows) => {
89
+ setRows(newRows as RowType[]);
22
90
  }}
23
- options={[
24
- {
25
- label: 'Green',
26
- value: 'green',
27
- color: 'green',
28
- },
29
- {
30
- label: 'Red',
31
- value: 'red',
32
-
33
- color: 'red',
34
- },
35
- {
36
- label: 'Yellow',
37
- value: 'yellow',
38
-
39
- color: 'yellow',
40
- },
41
- {
42
- label: 'PinkPanther',
43
- value: 'pink',
44
-
45
- color: 'pink',
46
- },
47
- {
48
- label: 'Blue Boy',
49
- value: 'blue',
50
- color: 'blue',
51
- },
52
- {
53
- label: 'Simple',
54
- value: 'simple',
55
- },
56
- ]}
91
+ onSave={onSave}
57
92
  />
58
93
  </>
59
94
  );
@@ -0,0 +1,31 @@
1
+ import { useTheme } from '@mui/material';
2
+
3
+ export const ColumnsIcon = ({ size = 16 }) => {
4
+ const theme = useTheme();
5
+ return (
6
+ <svg
7
+ width={size}
8
+ height={size}
9
+ viewBox="0 0 16 16"
10
+ fill="none"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ style={{
13
+ fill: theme.palette.primary.main,
14
+ stroke: theme.palette.primary.main,
15
+ }}
16
+ >
17
+ <path
18
+ d="M3.13379 2.09934L3.13379 14.0999C3.13281 14.2322 3.07977 14.3588 2.98615 14.4523C2.89253 14.5459 2.76585 14.5988 2.63352 14.5996C2.50129 14.5986 2.37474 14.5457 2.28124 14.4522C2.18773 14.3587 2.13477 14.2321 2.13379 14.0999L2.13379 2.09988C2.13477 1.96764 2.18773 1.8411 2.28124 1.74759C2.37474 1.65409 2.50129 1.60112 2.63352 1.60014C2.76576 1.60098 2.89236 1.65381 2.98597 1.74722C3.07957 1.84062 3.13267 1.96711 3.13379 2.09934Z"
19
+ stroke-width="1"
20
+ />
21
+ <path
22
+ d="M8.4668 2.09934V14.0999C8.46582 14.2322 8.41278 14.3588 8.31916 14.4523C8.22554 14.5459 8.09886 14.5988 7.96653 14.5996C7.83429 14.5986 7.70775 14.5457 7.61425 14.4522C7.52074 14.3587 7.46777 14.2321 7.4668 14.0999L7.4668 2.09988C7.46777 1.96764 7.52074 1.8411 7.61425 1.74759C7.70775 1.65409 7.83429 1.60112 7.96653 1.60014C8.09877 1.60098 8.22537 1.65381 8.31897 1.74722C8.41258 1.84062 8.46568 1.96711 8.4668 2.09934Z"
23
+ stroke-width="1"
24
+ />
25
+ <path
26
+ d="M13.7998 2.09934V14.0999C13.7988 14.2322 13.7458 14.3588 13.6522 14.4523C13.5585 14.5459 13.4319 14.5988 13.2995 14.5996C13.1673 14.5986 13.0408 14.5457 12.9473 14.4522C12.8537 14.3587 12.8008 14.2321 12.7998 14.0999V2.09988C12.8008 1.96764 12.8537 1.8411 12.9473 1.74759C13.0408 1.65409 13.1673 1.60112 13.2995 1.60014C13.4318 1.60098 13.5584 1.65381 13.652 1.74722C13.7456 1.84062 13.7987 1.96711 13.7998 2.09934Z"
27
+ stroke-width="1"
28
+ />
29
+ </svg>
30
+ );
31
+ };
@@ -1,8 +1,8 @@
1
1
  import { useTheme } from '@mui/material';
2
2
 
3
- export const ComfortableIcon = ({ size = 16, color }: any) => {
3
+ export const ComfortableIcon = ({ size = 16 }: { size: number }) => {
4
4
  const theme = useTheme();
5
- const updatedColor = color ?? theme.palette.primary.main;
5
+ const updatedColor = theme.palette.primary.main;
6
6
  return (
7
7
  <svg
8
8
  width={size}
@@ -14,8 +14,8 @@ export const ComfortableIcon = ({ size = 16, color }: any) => {
14
14
  }}
15
15
  xmlns="http://www.w3.org/2000/svg"
16
16
  >
17
- <rect y="0.5" width="20" height="9" />
18
- <rect y="11.5" width="20" height="9" />
17
+ <rect y="3" width="20" height="5" />
18
+ <rect y="13" width="20" height="5" />
19
19
  </svg>
20
20
  );
21
21
  };
@@ -1,8 +1,8 @@
1
1
  import { useTheme } from '@mui/material';
2
2
 
3
- export const CompactIcon = ({ size = 16, color }: any) => {
3
+ export const CompactIcon = ({ size = 16 }: { size: number }) => {
4
4
  const theme = useTheme();
5
- const updatedColor = color ?? theme.palette.primary.main;
5
+ const updatedColor = theme.palette.primary.main;
6
6
  return (
7
7
  <svg
8
8
  width={size}
@@ -14,10 +14,10 @@ export const CompactIcon = ({ size = 16, color }: any) => {
14
14
  }}
15
15
  xmlns="http://www.w3.org/2000/svg"
16
16
  >
17
- <rect y="0.5" width="20" height="3.5" />
18
- <rect y="6" width="20" height="3.5" />
19
- <rect y="11.5" width="20" height="3.5" />
20
- <rect y="17" width="20" height="3.5" />
17
+ <rect y="1" width="20" height="2" />
18
+ <rect y="6.5" width="20" height="2" />
19
+ <rect y="12" width="20" height="2" />
20
+ <rect y="17.5" width="20" height="2" />
21
21
  </svg>
22
22
  );
23
23
  };
@@ -1,8 +1,8 @@
1
- export const CompletedStateIcon = () => {
1
+ export const CompletedStateIcon = ({ size = 16 }) => {
2
2
  return (
3
3
  <svg
4
- width="24"
5
- height="24"
4
+ width={size}
5
+ height={size}
6
6
  viewBox="0 0 24 24"
7
7
  fill="none"
8
8
  xmlns="http://www.w3.org/2000/svg"
@@ -1,65 +1,32 @@
1
1
  import { useTheme } from '@mui/material';
2
- export const FilterIcon = ({
3
- sx = {},
4
- color,
5
- size = 16,
6
- }: {
7
- sx?: any;
8
- color?: string;
9
- size?: number;
10
- }) => {
2
+
3
+ export const FilterIcon = ({ size = 16 }) => {
11
4
  const theme = useTheme();
12
- color = color ?? theme.palette.text.primary;
5
+
13
6
  return (
14
- <>
15
- <svg
16
- xmlns="http://www.w3.org/2000/svg"
17
- id="sort"
18
- width={size}
19
- height={size}
20
- viewBox="0 0 20 20"
21
- style={{
22
- fill: color,
23
- ...sx,
24
- }}
25
- >
26
- <path
27
- id="Vector"
28
- d="M0,0H15"
29
- transform="translate(2.5 5.833)"
30
- fill="none"
31
- stroke={color}
32
- stroke-linecap="round"
33
- stroke-width="1.5"
34
- />
35
- <path
36
- id="Vector-2"
37
- data-name="Vector"
38
- d="M0,0H10"
39
- transform="translate(5 10)"
40
- fill="none"
41
- stroke={color}
42
- stroke-linecap="round"
43
- stroke-width="1.5"
44
- />
45
- <path
46
- id="Vector-3"
47
- data-name="Vector"
48
- d="M0,0H3.333"
49
- transform="translate(8.333 14.167)"
50
- fill="none"
51
- stroke={color}
52
- stroke-linecap="round"
53
- stroke-width="1.5"
54
- />
55
- <path
56
- id="Vector-4"
57
- data-name="Vector"
58
- d="M0,0H20V20H0Z"
59
- fill="none"
60
- opacity="0"
61
- />
62
- </svg>
63
- </>
7
+ <svg
8
+ width={size}
9
+ height={size}
10
+ viewBox="0 0 16 16"
11
+ fill="none"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ style={{
14
+ fill: theme.palette.primary.main,
15
+ stroke: theme.palette.primary.main,
16
+ }}
17
+ >
18
+ <path
19
+ d="M14.0008 5.16602H2.00022C1.86789 5.16504 1.74127 5.112 1.64775 5.01838C1.55423 4.92476 1.50133 4.79808 1.50049 4.66575C1.50147 4.53351 1.55443 4.40697 1.64794 4.31346C1.74144 4.21996 1.86799 4.16699 2.00022 4.16602H14.0002C14.1325 4.16699 14.259 4.21996 14.3525 4.31346C14.446 4.40697 14.499 4.53351 14.5 4.66575C14.4991 4.79799 14.4463 4.92458 14.3529 5.01819C14.2595 5.1118 14.133 5.1649 14.0008 5.16602Z"
20
+ strokeWidth="0.8"
21
+ />
22
+ <path
23
+ d="M12.0002 8.5H4.00022C3.86789 8.49902 3.74127 8.44598 3.64775 8.35236C3.55423 8.25874 3.50133 8.13206 3.50049 7.99973C3.50147 7.8675 3.55443 7.74096 3.64794 7.64745C3.74144 7.55394 3.86799 7.50098 4.00022 7.5H12.0002C12.1326 7.50084 12.2592 7.55374 12.3529 7.64726C12.4465 7.74078 12.4995 7.86741 12.5005 7.99973C12.4997 8.13215 12.4467 8.25891 12.353 8.35255C12.2594 8.44618 12.1326 8.49916 12.0002 8.5Z"
24
+ strokeWidth="0.8"
25
+ />
26
+ <path
27
+ d="M9.33339 11.834H6.66673C6.5344 11.833 6.40778 11.78 6.31425 11.6863C6.22073 11.5927 6.16783 11.466 6.16699 11.3337C6.16797 11.2015 6.22093 11.0749 6.31444 10.9814C6.40795 10.8879 6.53449 10.835 6.66673 10.834H9.33339C9.46572 10.8348 9.5924 10.8877 9.68602 10.9812C9.77964 11.0748 9.83268 11.2014 9.83366 11.3337C9.83282 11.4661 9.77984 11.5929 9.68621 11.6865C9.59257 11.7802 9.46581 11.8331 9.33339 11.834Z"
28
+ strokeWidth="0.8"
29
+ />
30
+ </svg>
64
31
  );
65
32
  };
@@ -8,31 +8,19 @@ export const InfoFilledIcon = ({
8
8
  size?: number;
9
9
  }) => {
10
10
  const theme = useTheme();
11
- const color = theme.palette.highlight.highlightBlue;
11
+ const color = theme.palette.primary.main;
12
12
  return (
13
13
  <svg
14
14
  width={size}
15
15
  height={size}
16
- viewBox="0 0 20 21"
16
+ viewBox="0 0 16 17"
17
17
  fill="none"
18
18
  xmlns="http://www.w3.org/2000/svg"
19
19
  >
20
- <mask
21
- id="mask0_194_1775"
22
- maskUnits="userSpaceOnUse"
23
- x="0"
24
- y="0"
25
- width="20"
26
- height="21"
27
- >
28
- <path d="M20 0.5H0V20.5H20V0.5Z" fill="white" />
29
- </mask>
30
- <g mask="url(#mask0_194_1775)">
31
- <path
32
- d="M10.1517 1.83301C8.40751 1.83301 6.70251 2.35021 5.25229 3.31922C3.80207 4.28823 2.67176 5.66552 2.00429 7.27692C1.33683 8.88832 1.16219 10.6615 1.50246 12.3721C1.84273 14.0828 2.68263 15.6541 3.91594 16.8874C5.14925 18.1207 6.72059 18.9606 8.43124 19.3009C10.1419 19.6412 11.915 19.4665 13.5264 18.7991C15.1378 18.1316 16.5151 17.0013 17.4841 15.5511C18.4531 14.1008 18.9703 12.3958 18.9703 10.6517C18.9703 8.31282 18.0412 6.06976 16.3874 4.41594C14.7336 2.76211 12.4905 1.83301 10.1517 1.83301ZM10.1517 6.24234C10.3698 6.24234 10.583 6.30701 10.7643 6.42817C10.9456 6.54934 11.087 6.72155 11.1704 6.92304C11.2539 7.12452 11.2757 7.34623 11.2332 7.56013C11.1906 7.77402 11.0856 7.9705 10.9314 8.12471C10.7772 8.27892 10.5807 8.38394 10.3668 8.42649C10.1529 8.46903 9.93119 8.4472 9.72971 8.36374C9.52822 8.28028 9.35601 8.13895 9.23484 7.95762C9.11368 7.77628 9.04901 7.56309 9.04901 7.34501C9.04901 7.05256 9.16518 6.7721 9.37197 6.5653C9.57876 6.35851 9.85923 6.24234 10.1517 6.24234ZM11.805 15.061H8.49835C8.35212 15.061 8.21189 15.0029 8.10849 14.8995C8.0051 14.7961 7.94701 14.6559 7.94701 14.5097C7.94701 14.3635 8.0051 14.2232 8.10849 14.1198C8.21189 14.0164 8.35212 13.9583 8.49835 13.9583H9.04968V10.6517H8.49835C8.35212 10.6517 8.21189 10.5936 8.10849 10.4902C8.0051 10.3868 7.94701 10.2466 7.94701 10.1003C7.94701 9.95412 8.0051 9.81389 8.10849 9.71049C8.21189 9.6071 8.35212 9.54901 8.49835 9.54901H10.703C10.8492 9.54901 10.9895 9.6071 11.0929 9.71049C11.1963 9.81389 11.2543 9.95412 11.2543 10.1003V13.9583H11.8057C11.9519 13.9583 12.0921 14.0164 12.1955 14.1198C12.2989 14.2232 12.357 14.3635 12.357 14.5097C12.357 14.6559 12.2989 14.7961 12.1955 14.8995C12.0921 15.0029 11.9512 15.061 11.805 15.061Z"
33
- fill={backgroundColor ?? color}
34
- />
35
- </g>
20
+ <path
21
+ d="M8 2.74884C8.36847 2.74884 8.66667 2.45079 8.66667 2.08252V1.16632C8.66667 0.797979 8.36847 0.5 8 0.5C7.63147 0.5 7.33333 0.797979 7.33333 1.16632V2.08252C7.33333 2.45079 7.63147 2.74884 8 2.74884ZM13.6569 3.7841C13.9173 3.52384 13.9173 3.10212 13.6569 2.84186C13.3965 2.58159 12.9746 2.58159 12.7141 2.84186L12.0657 3.48999C11.8053 3.75025 11.8053 4.1719 12.0657 4.43217C12.3261 4.69243 12.748 4.6925 13.0084 4.43217L13.6569 3.7841ZM14.4167 9.16152H15.3333C15.7018 9.16152 16 8.86348 16 8.4952C16 8.12693 15.7018 7.82888 15.3333 7.82888H14.4167C14.0481 7.82888 13.75 8.12693 13.75 8.4952C13.75 8.86348 14.0481 9.16152 14.4167 9.16152ZM0.666667 9.16152H1.58333C1.9518 9.16152 2.25 8.86348 2.25 8.4952C2.25 8.12693 1.9518 7.82888 1.58333 7.82888H0.666667C0.298133 7.82888 0 8.12693 0 8.4952C0 8.86348 0.298133 9.16152 0.666667 9.16152ZM2.99213 4.43217C3.25253 4.69243 3.67447 4.6925 3.93487 4.43217C4.19527 4.1719 4.19527 3.75025 3.93487 3.48999L3.2864 2.84186C3.026 2.58159 2.60413 2.58159 2.34373 2.84186C2.08333 3.10212 2.08333 3.52384 2.34373 3.7841L2.99213 4.43217ZM6.6616 16.5H9.32827C10.0616 16.5 10.6616 15.9004 10.6616 15.1674H5.32827C5.32827 15.9004 5.92833 16.5 6.6616 16.5ZM10.6616 12.289C11.8683 11.4427 12.6549 10.0502 12.6549 8.47095C12.6549 5.58571 10.0417 3.31348 7.055 3.89325C5.22167 4.25306 3.74827 5.73896 3.40827 7.57821C3.04833 9.5238 3.89493 11.3028 5.32827 12.2958V13.8347H10.6616V12.289Z"
22
+ fill={backgroundColor ?? color}
23
+ />
36
24
  </svg>
37
25
  );
38
26
  };
@@ -2,7 +2,7 @@ import { useTheme } from '@mui/material';
2
2
 
3
3
  export const SearchIcon = ({ size = 16 }) => {
4
4
  const theme = useTheme();
5
- const color = theme.palette.text.primary;
5
+ const color = theme.palette.primary.main;
6
6
  return (
7
7
  <svg
8
8
  width={size}
@@ -1,8 +1,8 @@
1
1
  import { useTheme } from '@mui/material';
2
2
 
3
- export const StandardIcon = ({ size = 16, color }: any) => {
3
+ export const StandardIcon = ({ size = 16 }: { size: number }) => {
4
4
  const theme = useTheme();
5
- const updatedColor = color ?? theme.palette.primary.main;
5
+ const updatedColor = theme.palette.primary.main;
6
6
  return (
7
7
  <svg
8
8
  width={size}
@@ -14,9 +14,9 @@ export const StandardIcon = ({ size = 16, color }: any) => {
14
14
  }}
15
15
  xmlns="http://www.w3.org/2000/svg"
16
16
  >
17
- <rect y="0.5" width="20" height="5.33333" />
18
- <rect y="7.83398" width="20" height="5.33333" />
19
- <rect y="15.166" width="20" height="5.33333" />
17
+ <rect y="1" width="20" height="2" />
18
+ <rect y="8.5" width="20" height="2" />
19
+ <rect y="15.5" width="20" height="2" />
20
20
  </svg>
21
21
  );
22
22
  };
@@ -0,0 +1,35 @@
1
+ import { useTheme } from '@mui/material';
2
+
3
+ export const ViewsIcon = ({ size = 16 }: { size?: number }) => {
4
+ const theme = useTheme();
5
+
6
+ const color = theme.palette.text.primary;
7
+ return (
8
+ <svg
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 16 16"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ style={{
15
+ fill: color,
16
+ stroke: color,
17
+ }}
18
+ >
19
+ <g clip-path="url(#clip0_2213_7884)">
20
+ <path
21
+ d="M14 3.83301H2C1.86766 3.83213 1.74099 3.77918 1.64741 3.6856C1.55383 3.59202 1.50087 3.46535 1.5 3.33301C1.50087 3.20067 1.55383 3.074 1.64741 2.98042C1.74099 2.88684 1.86766 2.83388 2 2.83301H14C14.1323 2.83388 14.259 2.88684 14.3526 2.98042C14.4462 3.074 14.4991 3.20067 14.5 3.33301C14.4991 3.46535 14.4462 3.59202 14.3526 3.6856C14.259 3.77918 14.1323 3.83213 14 3.83301Z"
22
+ stroke-width="0.4"
23
+ />
24
+ <path
25
+ d="M14 8.5H2C1.86766 8.49913 1.74099 8.44617 1.64741 8.35259C1.55383 8.25901 1.50087 8.13234 1.5 8C1.50087 7.86766 1.55383 7.74099 1.64741 7.64741C1.74099 7.55383 1.86766 7.50087 2 7.5H14C14.1323 7.50087 14.259 7.55383 14.3526 7.64741C14.4462 7.74099 14.4991 7.86766 14.5 8C14.4991 8.13234 14.4462 8.25901 14.3526 8.35259C14.259 8.44617 14.1323 8.49913 14 8.5Z"
26
+ stroke-width="0.4"
27
+ />
28
+ <path
29
+ d="M14 13.167H2C1.86766 13.1661 1.74099 13.1132 1.64741 13.0196C1.55383 12.926 1.50087 12.7993 1.5 12.667C1.50087 12.5347 1.55383 12.408 1.64741 12.3144C1.74099 12.2208 1.86766 12.1679 2 12.167H14C14.1323 12.1679 14.259 12.2208 14.3526 12.3144C14.4462 12.408 14.4991 12.5347 14.5 12.667C14.4991 12.7993 14.4462 12.926 14.3526 13.0196C14.259 13.1132 14.1323 13.1661 14 13.167Z"
30
+ stroke-width="0.4"
31
+ />
32
+ </g>
33
+ </svg>
34
+ );
35
+ };
@@ -19,6 +19,7 @@ import { CheckedCheckboxIcon } from './IconComponents/CheckedCheckBoxIcon';
19
19
  import { CheckedRadioIcon } from './IconComponents/CheckedRadioIcon';
20
20
  import { ClogWheelIcon } from './IconComponents/ClogWheelIcon';
21
21
  import { CollapseIcon } from './IconComponents/CollapseIcon';
22
+ import { ColumnsIcon } from './IconComponents/ColumnsIcon';
22
23
  import { ComfortableIcon } from './IconComponents/Comfortable';
23
24
  import { CommutexIcon } from './IconComponents/CommutexIcon';
24
25
  import { CompactIcon } from './IconComponents/CompactIcon';
@@ -41,7 +42,6 @@ import { ExcelIcon } from './IconComponents/ExcelIcon';
41
42
  import { ExpandIcon } from './IconComponents/ExpandIcon';
42
43
  import { ExportIcon } from './IconComponents/ExportIcon';
43
44
  import { FilterIcon } from './IconComponents/FilterIcon';
44
- import { FilterViewIcon } from './IconComponents/FilterViewIcon';
45
45
  import { HandoutsIcon } from './IconComponents/HandoutsIcon';
46
46
  import { HelpIcon } from './IconComponents/HelpIcon';
47
47
  import { HomeIcon } from './IconComponents/HomeIcon';
@@ -82,6 +82,7 @@ import { UmsIcon } from './IconComponents/UmsIcon';
82
82
  import { UnCheckedCheckboxIcon } from './IconComponents/UncheckCheckBoxIcon';
83
83
  import { UnCheckedRadioIcon } from './IconComponents/UncheckedRadioIcon';
84
84
  import { ViewIcon } from './IconComponents/ViewIcon';
85
+ import { ViewsIcon } from './IconComponents/ViewsIcon';
85
86
  import { VisibilityOffIcon } from './IconComponents/VisibiityOffIcon';
86
87
  import { VisibilityIcon } from './IconComponents/VisibilityIcon';
87
88
  import { WarningFilledIcon } from './IconComponents/WarningFilledIcon';
@@ -120,12 +121,12 @@ export const Icons = {
120
121
  AttachmentIcon,
121
122
  PdfIcon,
122
123
  DocumentIcon,
123
- FilterViewIcon,
124
124
  ConfigureIcon,
125
125
  ComfortableIcon,
126
126
  CompactIcon,
127
127
  StandardIcon,
128
128
  LogoutIcon,
129
+ ColumnsIcon,
129
130
  AccordionArrow,
130
131
  TicketsIcon,
131
132
  FilterIcon,
@@ -164,6 +165,7 @@ export const Icons = {
164
165
  ViewIcon,
165
166
  RedirectIcon,
166
167
  AcademicsIcon,
168
+ ViewsIcon,
167
169
  HandoutsIcon,
168
170
  StudentsIcon,
169
171
  AssessmentsIcon,
@@ -139,12 +139,7 @@ const CustomTooltip = ({ active, payload }: any) => {
139
139
  <StyledContainer>
140
140
  <Typography variant="body2">{`${payload[0].payload.name}`}</Typography>
141
141
  <Typography variant="caption">
142
- <span>{`${payload[0].payload.name}`}</span>
143
- <span
144
- style={{ fontWeight: 'bold', color: theme.palette.text.primary }}
145
- >
146
- {'\xa0\xa0' + `${payload[0].value}`}
147
- </span>
142
+ <span>{`${payload[0].value}`}</span>
148
143
  </Typography>
149
144
  </StyledContainer>
150
145
  );
@@ -1,4 +1,4 @@
1
- import { Button } from '@mui/material';
1
+ import { Button, useTheme } from '@mui/material';
2
2
  import {
3
3
  GridActionsCellItem,
4
4
  GridColDef,
@@ -47,6 +47,7 @@ export const EditableDataTable = (props: EditableDataTableProps) => {
47
47
  };
48
48
 
49
49
  export const EditableTableCore = (props: EditableDataTableProps) => {
50
+ const theme = useTheme();
50
51
  const { rows, columns } = props;
51
52
  const [rowModesModel, setRowModesModel] = useState<GridRowModesModel>({});
52
53
  const processRowUpdate = (newRow: GridRowModel) => {
@@ -98,6 +99,52 @@ export const EditableTableCore = (props: EditableDataTableProps) => {
98
99
  onRowEditStop={handleRowEditStop}
99
100
  processRowUpdate={processRowUpdate}
100
101
  rowModesModel={rowModesModel}
102
+ sx={{
103
+ '& .MuiDataGrid-cell:focus-within, & .MuiDataGrid-cell:focus': {
104
+ outline: 'none !important',
105
+ },
106
+ '& .MuiDataGrid-columnHeader:focus-within, & .MuiDataGrid-columnHeader:focus':
107
+ {
108
+ outline: 'none !important',
109
+ },
110
+ '& .MuiDataGrid-columnHeaders': {
111
+ marginLeft: '9px',
112
+ marginRight: '9px',
113
+ },
114
+ '& .MuiDataGrid-toolbarContainer': {
115
+ marginLeft: '9px',
116
+ marginRight: '9px',
117
+ },
118
+
119
+ '& .MuiDataGrid-row': {
120
+ boxShadow: 'none',
121
+ marginLeft: '9px',
122
+ marginRight: '9px',
123
+ },
124
+ '& .MuiDataGrid-row--editing': {
125
+ boxShadow: 'none',
126
+ },
127
+ '& .MuiDataGrid-editInputCell input': {
128
+ padding: '10px 9px',
129
+ height: '100%',
130
+ },
131
+ '& .MuiDataGrid-cell.MuiDataGrid-cell--editing': {
132
+ padding: '0px 9px 0px 0px',
133
+ alignItems: 'center',
134
+ },
135
+ '& .MuiDataGrid-cell': {
136
+ padding: '0px 9px',
137
+ display: 'flex',
138
+ alignItems: 'center',
139
+ },
140
+ '& .MuiInputBase-input': {
141
+ border: `1px solid ${theme.palette.border.primary}`,
142
+ borderRadius: '5px',
143
+ ':focus-within': {
144
+ borderColor: theme.palette.primary.main,
145
+ },
146
+ },
147
+ }}
101
148
  {...props}
102
149
  rows={rows}
103
150
  columns={[
@@ -47,6 +47,7 @@ export const AppHeader = ({
47
47
  </StyledIconButton> */}
48
48
  <Button
49
49
  variant="outlined"
50
+ id="jiraIssueCollector"
50
51
  className="reportAnIssue"
51
52
  onClick={() => {
52
53
  window.open(