pixel-react 1.1.3 → 1.1.5

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 (116) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/AddButton/AddButton.d.ts +5 -0
  3. package/lib/components/AddButton/AddButton.stories.d.ts +6 -0
  4. package/lib/components/AddButton/index.d.ts +1 -0
  5. package/lib/components/AddButton/types.d.ts +4 -0
  6. package/lib/components/AddResourceButton/type.d.ts +1 -1
  7. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.d.ts +2 -1
  8. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.stories.d.ts +1 -0
  9. package/lib/components/AllProjectsDropdown/types.d.ts +10 -0
  10. package/lib/components/AppHeader/types.d.ts +14 -10
  11. package/lib/components/Button/Button.stories.d.ts +1 -0
  12. package/lib/components/Button/types.d.ts +1 -1
  13. package/lib/components/Drawer/Drawer.stories.d.ts +3 -0
  14. package/lib/components/Drawer/Types.d.ts +25 -1
  15. package/lib/components/Icon/Icon.d.ts +1 -1
  16. package/lib/components/MachineInputField/MachineInputField.d.ts +4 -0
  17. package/lib/components/MachineInputField/MachineInputField.stories.d.ts +6 -0
  18. package/lib/components/MachineInputField/index.d.ts +1 -0
  19. package/lib/components/MachineInputField/types.d.ts +11 -0
  20. package/lib/components/MenuOption/MenuOption.d.ts +1 -1
  21. package/lib/components/MenuOption/MenuOption.stories.d.ts +1 -0
  22. package/lib/components/MenuOption/types.d.ts +7 -0
  23. package/lib/components/Modal/types.d.ts +1 -0
  24. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.d.ts +4 -0
  25. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.d.ts +6 -0
  26. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.d.ts +4 -0
  27. package/lib/components/SequentialConnectingBranch/components/AddBrowserModal/types.d.ts +3 -0
  28. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.d.ts +4 -0
  29. package/lib/components/SequentialConnectingBranch/components/Branches/types.d.ts +16 -0
  30. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.d.ts +4 -0
  31. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/types.d.ts +9 -0
  32. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.d.ts +4 -0
  33. package/lib/components/SequentialConnectingBranch/components/DatasetListModal/types.d.ts +3 -0
  34. package/lib/components/SequentialConnectingBranch/index.d.ts +1 -0
  35. package/lib/components/SequentialConnectingBranch/types.d.ts +32 -0
  36. package/lib/components/Tabs/types.d.ts +1 -0
  37. package/lib/index.d.ts +113 -17
  38. package/lib/index.esm.js +1244 -312
  39. package/lib/index.esm.js.map +1 -1
  40. package/lib/index.js +1245 -311
  41. package/lib/index.js.map +1 -1
  42. package/lib/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/rollup.config.mjs +2 -8
  45. package/src/assets/Themes/BaseTheme.scss +18 -2
  46. package/src/assets/Themes/DarkTheme.scss +11 -3
  47. package/src/assets/icons/add_locator.svg +5 -0
  48. package/src/assets/icons/android.svg +9 -0
  49. package/src/assets/icons/browser_stack.svg +9 -0
  50. package/src/assets/icons/chrome.svg +12 -0
  51. package/src/assets/icons/dataset_list.svg +3 -0
  52. package/src/assets/icons/drag_icon.svg +5 -0
  53. package/src/assets/icons/label_plus.svg +3 -0
  54. package/src/assets/icons/mac.svg +9 -0
  55. package/src/assets/icons/manual_locator.svg +8 -0
  56. package/src/assets/icons/windows.svg +6 -0
  57. package/src/assets/styles/_colors.scss +4 -4
  58. package/src/components/AddResourceButton/type.ts +1 -1
  59. package/src/components/AllProjectsDropdown/AllProjectsDropdown.scss +2 -2
  60. package/src/components/AllProjectsDropdown/AllProjectsDropdown.stories.tsx +99 -1
  61. package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +30 -56
  62. package/src/components/AllProjectsDropdown/types.ts +10 -0
  63. package/src/components/AppHeader/AppHeader.stories.tsx +20 -10
  64. package/src/components/AppHeader/AppHeader.tsx +24 -17
  65. package/src/components/AppHeader/types.ts +17 -13
  66. package/src/components/Button/Button.scss +4 -0
  67. package/src/components/Button/Button.stories.tsx +7 -0
  68. package/src/components/Button/index.ts +1 -1
  69. package/src/components/Button/types.ts +2 -2
  70. package/src/components/Drawer/Drawer.scss +22 -11
  71. package/src/components/Drawer/Drawer.stories.tsx +41 -0
  72. package/src/components/Drawer/Drawer.tsx +67 -40
  73. package/src/components/Drawer/Types.ts +25 -1
  74. package/src/components/GridLayout/GridLayout.scss +0 -2
  75. package/src/components/GridLayout/GridLayout.tsx +15 -8
  76. package/src/components/Icon/Icon.tsx +39 -33
  77. package/src/components/Icon/iconList.ts +25 -6
  78. package/src/components/InputWithDropdown/InputWithDropdown.scss +1 -1
  79. package/src/components/InputWithDropdown/InputWithDropdown.tsx +2 -1
  80. package/src/components/MachineInputField/MachineInputField.scss +44 -0
  81. package/src/components/MachineInputField/MachineInputField.stories.tsx +32 -0
  82. package/src/components/MachineInputField/MachineInputField.tsx +71 -0
  83. package/src/components/MachineInputField/index.ts +1 -0
  84. package/src/components/MachineInputField/types.ts +12 -0
  85. package/src/components/MenuOption/MenuOption.scss +14 -0
  86. package/src/components/MenuOption/MenuOption.stories.tsx +21 -0
  87. package/src/components/MenuOption/MenuOption.tsx +5 -3
  88. package/src/components/MenuOption/types.ts +9 -0
  89. package/src/components/MiniModal/MiniModal.tsx +1 -1
  90. package/src/components/Modal/Modal.tsx +2 -0
  91. package/src/components/Modal/modal.scss +2 -2
  92. package/src/components/Modal/types.ts +1 -0
  93. package/src/components/Select/Select.tsx +2 -2
  94. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.scss +117 -0
  95. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.tsx +62 -0
  96. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.tsx +210 -0
  97. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.scss +51 -0
  98. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.tsx +107 -0
  99. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/types.ts +5 -0
  100. package/src/components/SequentialConnectingBranch/components/Branches/Branches.scss +184 -0
  101. package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +203 -0
  102. package/src/components/SequentialConnectingBranch/components/Branches/types.ts +18 -0
  103. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.scss +3 -0
  104. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.tsx +66 -0
  105. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/types.ts +10 -0
  106. package/src/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.scss +31 -0
  107. package/src/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.tsx +85 -0
  108. package/src/components/SequentialConnectingBranch/components/DatasetListModal/types.ts +4 -0
  109. package/src/components/SequentialConnectingBranch/index.ts +1 -0
  110. package/src/components/SequentialConnectingBranch/types.ts +42 -0
  111. package/src/components/Tabs/Tabs.stories.tsx +24 -25
  112. package/src/components/Tabs/Tabs.tsx +3 -10
  113. package/src/components/Tabs/types.ts +7 -1
  114. package/src/index.ts +5 -0
  115. package/lib/index.css +0 -404
  116. package/lib/index.esm.css +0 -404
@@ -1,5 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import AllProjectsDropdown from './AllProjectsDropdown';
3
+ import { useState } from 'react';
4
+ import { optionsType } from './types';
3
5
 
4
6
  const meta: Meta<typeof AllProjectsDropdown> = {
5
7
  title: 'Components/AllProjectsDropdown',
@@ -12,9 +14,105 @@ const meta: Meta<typeof AllProjectsDropdown> = {
12
14
 
13
15
  type Story = StoryObj<typeof AllProjectsDropdown>;
14
16
 
17
+ export const Default: Story = {
18
+ args: {
19
+ options: [
20
+ {
21
+ label: 'All Projects',
22
+ value: 'All Projects',
23
+ iconName: 'all_projects',
24
+ },
25
+ {
26
+ label: 'Pantaloon Project',
27
+ value: 'Pantaloon Web Project',
28
+ iconName: 'web_icon',
29
+ },
30
+ {
31
+ label: 'Mobile Project',
32
+ value: 'Mobile Project',
33
+ iconName: 'mobile_icon',
34
+ },
35
+ {
36
+ label: 'Web & Mobile Project',
37
+ value: 'Web & Mobile Project',
38
+ iconName: 'web&mobile_icon',
39
+ },
40
+ {
41
+ label: 'Sales Force',
42
+ value: 'Sales Force',
43
+ iconName: 'sales_force',
44
+ },
45
+ {
46
+ label: 'MS Dynamic',
47
+ value: 'MS Dynamic',
48
+ iconName: 'ms_dynamic',
49
+ },
50
+ {
51
+ label: 'Web Service',
52
+ value: 'Web Service',
53
+ iconName: '',
54
+ },
55
+ ],
56
+ },
57
+ };
58
+
15
59
  export const PrimaryIconButton: Story = {
16
60
  render: () => {
17
- return <AllProjectsDropdown/>;
61
+ const [selectedOption, setSelectedOption] = useState({
62
+ label: 'All Projects',
63
+ value: 'All Projects',
64
+ iconName: 'all_projects',
65
+ });
66
+
67
+ const handleSelectedOption = (option: optionsType) => {
68
+ setSelectedOption(option);
69
+ };
70
+
71
+ const options = [
72
+ {
73
+ label: 'All Projects',
74
+ value: 'All Projects',
75
+ iconName: 'all_projects',
76
+ },
77
+ {
78
+ label: 'Pantaloon Project',
79
+ value: 'Pantaloon Web Project',
80
+ iconName: 'web_icon',
81
+ },
82
+ {
83
+ label: 'Mobile Project',
84
+ value: 'Mobile Project',
85
+ iconName: 'mobile_icon',
86
+ },
87
+ {
88
+ label: 'Web & Mobile Project',
89
+ value: 'Web & Mobile Project',
90
+ iconName: 'web&mobile_icon',
91
+ },
92
+ {
93
+ label: 'Sales Force',
94
+ value: 'Sales Force',
95
+ iconName: 'sales_force',
96
+ },
97
+ {
98
+ label: 'MS Dynamic',
99
+ value: 'MS Dynamic',
100
+ iconName: 'ms_dynamic',
101
+ },
102
+ {
103
+ label: 'Web Service',
104
+ value: 'Web Service',
105
+ iconName: '',
106
+ },
107
+ ];
108
+
109
+ return (
110
+ <AllProjectsDropdown
111
+ options={options}
112
+ onClick={handleSelectedOption}
113
+ selectedOption={selectedOption}
114
+ />
115
+ );
18
116
  },
19
117
  };
20
118
 
@@ -1,79 +1,49 @@
1
1
  import { useState } from 'react';
2
2
  import Icon from '../Icon';
3
3
  import Typography from '../Typography';
4
- import { ffid } from '../../utils/ffID/ffid';
5
4
  import { truncateText } from '../../utils/truncateText/truncateText';
6
5
  import './AllProjectsDropdown.scss';
7
6
  import classNames from 'classnames';
7
+ import { AllProjectsDropdownProps, optionsType } from './types';
8
8
 
9
- const AllProjectsDropdown = () => {
10
- const [showOptions, setShowOptions] = useState(false);
11
- const [selectedOptions, setSelectedOptions] = useState({
9
+ const AllProjectsDropdown = ({
10
+ onClick = () => {},
11
+ options,
12
+ selectedOption = {
12
13
  label: 'All Projects',
13
14
  value: 'All Projects',
14
15
  iconName: 'all_projects',
15
- });
16
+ },
17
+ }: AllProjectsDropdownProps) => {
18
+ const [showOptions, setShowOptions] = useState(false);
19
+ const [selectedOptions, setSelectedOptions] = useState(selectedOption);
16
20
  const [search, setSearch] = useState(true);
17
21
 
18
- let options = [
19
- {
20
- label: 'All Projects',
21
- value: 'All Projects',
22
- iconName: 'all_projects',
23
- },
24
- {
25
- label: 'Pantaloon Project',
26
- value: 'Pantaloon Web Project',
27
- iconName: 'web_icon',
28
- },
29
- {
30
- label: 'Mobile Project',
31
- value: 'Mobile Project',
32
- iconName: 'mobile_icon',
33
- },
34
- {
35
- label: 'Web & Mobile Project',
36
- value: 'Web & Mobile Project',
37
- iconName: 'web&mobile_icon',
38
- },
39
- {
40
- label: 'Sales Force',
41
- value: 'Sales Force',
42
- iconName: 'sales_force',
43
- },
44
- {
45
- label: 'MS Dynamic',
46
- value: 'MS Dynamic',
47
- iconName: 'ms_dynamic',
48
- },
49
- {
50
- label: 'Web Service',
51
- value: 'Web Service',
52
- iconName: '',
53
- },
54
- ];
55
-
56
- const handleSelect = () => {
22
+ const handleShowOption = () => {
57
23
  setShowOptions(!showOptions);
58
24
  };
59
25
 
60
- const handleSelectOption = (option: {
61
- label: string;
62
- value: string;
63
- iconName: string;
64
- }) => {
26
+ const handleSelectOption = (option: optionsType) => {
65
27
  setSelectedOptions(option);
66
28
  setShowOptions(false);
29
+ () => onClick(option);
67
30
  };
68
31
 
69
32
  const handleInput = () => {
70
33
  setSearch(false);
71
34
  };
72
35
 
36
+ const handleSearchEnter = () => {
37
+ setSearch(false);
38
+ };
39
+ const handleSearchLeave = () => {
40
+ setSearch(true);
41
+ };
42
+
73
43
  return (
74
44
  <div className={classNames('ff-all-project')}>
75
45
  <div
76
- onClick={handleSelect}
46
+ onClick={handleShowOption}
77
47
  className={classNames('ff-all-project-dropdown')}
78
48
  >
79
49
  <Typography
@@ -83,7 +53,7 @@ const AllProjectsDropdown = () => {
83
53
  fontWeight={'regular'}
84
54
  className={classNames('projects-label')}
85
55
  >
86
- {truncateText(selectedOptions.label, 12)}
56
+ {truncateText(selectedOptions?.label, 12)}
87
57
  </Typography>
88
58
  <div className={classNames('label-icon')}>
89
59
  <Icon
@@ -96,11 +66,15 @@ const AllProjectsDropdown = () => {
96
66
  </div>
97
67
  {showOptions && (
98
68
  <div className={classNames('ff-dropdown')}>
99
- <div className={classNames('ff-search')}>
69
+ <div
70
+ className={classNames('ff-search')}
71
+ onMouseEnter={() => handleSearchEnter()}
72
+ onMouseLeave={() => handleSearchLeave()}
73
+ >
100
74
  {search && <Icon name="search" height={8} width={8} />}
101
75
  <input
102
76
  type="text"
103
- placeholder="Search Project"
77
+ placeholder={`${search ? 'Search Project' : ''}`}
104
78
  onClick={() => handleInput()}
105
79
  />
106
80
  </div>
@@ -110,9 +84,9 @@ const AllProjectsDropdown = () => {
110
84
  `${options.length > 4 ? 'scroll' : ''}`
111
85
  )}
112
86
  >
113
- {options.map((option) => (
87
+ {options.map((option, index) => (
114
88
  <div
115
- key={ffid()}
89
+ key={index}
116
90
  onClick={() => handleSelectOption(option)}
117
91
  className={classNames(
118
92
  'projects-options',
@@ -133,7 +107,7 @@ const AllProjectsDropdown = () => {
133
107
  }
134
108
  />
135
109
  </div>
136
- <Typography key={ffid()} as={'div'} lineHeight={'30px'}>
110
+ <Typography key={index} as={'div'} lineHeight={'30px'}>
137
111
  {option.label}
138
112
  </Typography>
139
113
  </div>
@@ -0,0 +1,10 @@
1
+ export interface optionsType {
2
+ label: string;
3
+ value: string;
4
+ iconName: string;
5
+ }
6
+ export interface AllProjectsDropdownProps {
7
+ options: optionsType[];
8
+ onClick: (option: optionsType) => void;
9
+ selectedOption: optionsType;
10
+ }
@@ -1,5 +1,10 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import AppHeader from './AppHeader';
3
+ import {
4
+ appHeaderMenuItemProps,
5
+ appHeaderSubMenuItemProps,
6
+ appHeaderQuickMenuItemProps,
7
+ } from './types';
3
8
  import Icon from '../Icon';
4
9
  import { useState } from 'react';
5
10
 
@@ -23,22 +28,23 @@ const defaultArgs = {
23
28
  };
24
29
 
25
30
  const headerMenuItems = [
31
+ { menuLabel: 'Dashboard', menuName: 'Dashboard', subMenuItems: [] },
26
32
  {
27
- menuName: 'Dashboard',
28
- subMenuItems: [],
29
- },
30
- {
33
+ menuLabel: 'Repo',
31
34
  menuName: 'Repo',
32
35
  subMenuItems: [
33
36
  {
37
+ subMenuLabel: 'Elements',
34
38
  subMenuName: 'Elements',
35
39
  quickMenuItems: [],
36
40
  },
37
41
  {
42
+ subMenuLabel: 'Program Elements',
38
43
  subMenuName: 'Program Elements',
39
44
  quickMenuItems: [],
40
45
  },
41
46
  {
47
+ subMenuLabel: 'Step Groups',
42
48
  subMenuName: 'Step Groups',
43
49
  quickMenuItems: [
44
50
  {
@@ -58,13 +64,16 @@ const headerMenuItems = [
58
64
  ],
59
65
  },
60
66
  {
67
+ menuLabel: 'Test Data',
61
68
  menuName: 'Test Data',
62
69
  subMenuItems: [],
63
70
  },
64
71
  {
72
+ menuLabel: 'Test Dev',
65
73
  menuName: 'Test Dev',
66
74
  subMenuItems: [
67
75
  {
76
+ subMenuLabel: 'Scripts',
68
77
  subMenuName: 'Scripts',
69
78
  quickMenuItems: [
70
79
  {
@@ -90,6 +99,7 @@ const headerMenuItems = [
90
99
  ],
91
100
  },
92
101
  {
102
+ subMenuLabel: 'Executions',
93
103
  subMenuName: 'Executions',
94
104
  quickMenuItems: [],
95
105
  },
@@ -121,14 +131,14 @@ export const Controlled: Story = {
121
131
  const [selectedMenuItem, setSelectedMenuItem] = useState('Test Data');
122
132
  const [selectedSubMenuItem, setSelectedSubMenuItem] = useState('');
123
133
  const [selectedQuickMenuItem, setSelectedQuickMenuItem] = useState('');
124
- const handleMenuClick = (item: string) => {
125
- setSelectedMenuItem(item);
134
+ const handleMenuClick = (item: appHeaderMenuItemProps) => {
135
+ setSelectedMenuItem(item.menuLabel);
126
136
  };
127
- const handleSubMenuClick = (item: string) => {
128
- setSelectedSubMenuItem(item);
137
+ const handleSubMenuClick = (item: appHeaderSubMenuItemProps) => {
138
+ setSelectedSubMenuItem(item.subMenuLabel);
129
139
  };
130
- const handleQuickMenuClick = (item: string) => {
131
- setSelectedQuickMenuItem(item);
140
+ const handleQuickMenuClick = (item: appHeaderQuickMenuItemProps) => {
141
+ setSelectedQuickMenuItem(item.quickMenuIconName);
132
142
  };
133
143
 
134
144
  return (
@@ -3,10 +3,14 @@ import Icon from '../Icon';
3
3
  import './AppHeader.scss';
4
4
  import classNames from 'classnames';
5
5
  import Typography from '../Typography';
6
+ import { checkEmpty } from '../../utils/checkEmpty/checkEmpty';
7
+ // import AllProjectsDropdown from '../AllProjectsDropdown';
6
8
 
7
9
  const AppHeader: React.FC<AppHeaderProps> = ({
8
10
  logoIconName = 'fireflink_icon',
11
+ leftContent,
9
12
  rightContent,
13
+ projectsList,
10
14
  appHeaderMenuItems,
11
15
  selectedMenu,
12
16
  selectedSubMenu,
@@ -21,35 +25,38 @@ const AppHeader: React.FC<AppHeaderProps> = ({
21
25
  <div className="ff-app-header-logo-icon">
22
26
  <Icon color="" name={logoIconName} height={24} width={21} />
23
27
  </div>
28
+ {leftContent && (
29
+ <div className="ff-app-header-left-content">{leftContent}</div>
30
+ )}
24
31
  <div className="ff-app-header-nav-bar">
25
- <div>All projects</div>
32
+ {checkEmpty(projectsList) && (
33
+ <div>{/* <AllProjectsDropdown /> */}</div>
34
+ )}
26
35
  <div className="ff-app-header-nav-bar-items fontSm">
27
36
  {appHeaderMenuItems.map((menuItem) => {
28
37
  return (
29
38
  <div
30
39
  className={classNames('ff-app-header-nav-bar-item', {
31
40
  ['ff-app-header-nav-bar-item--selected']:
32
- menuItem.menuName === selectedMenu,
41
+ menuItem.menuLabel === selectedMenu,
33
42
  })}
34
- key={menuItem.menuName}
35
- onClick={() => onMenuClick(menuItem.menuName)}
43
+ key={menuItem.menuLabel}
44
+ onClick={() => onMenuClick(menuItem)}
36
45
  >
37
46
  <Typography
38
47
  as="div"
39
48
  className="ff-app-header-nav-bar-item-label"
40
49
  lineHeight="18px"
41
50
  >
42
- {menuItem.menuName}
51
+ {menuItem.menuLabel}
43
52
  </Typography>
44
- {menuItem.menuName === selectedMenu &&
53
+ {menuItem.menuLabel === selectedMenu &&
45
54
  menuItem?.subMenuItems &&
46
55
  menuItem.subMenuItems.map((subMenuItem) => {
47
56
  return (
48
57
  <div
49
- key={subMenuItem.subMenuName}
50
- onClick={() =>
51
- onSubMenuClick(subMenuItem.subMenuName)
52
- }
58
+ key={subMenuItem.subMenuLabel}
59
+ onClick={() => onSubMenuClick(subMenuItem)}
53
60
  className="ff-app-header-submenu-container"
54
61
  >
55
62
  <Typography
@@ -58,14 +65,14 @@ const AppHeader: React.FC<AppHeaderProps> = ({
58
65
  'ff-app-header-nav-bar-submenu-item',
59
66
  {
60
67
  ['ff-app-header-nav-bar-submenu-item--selected']:
61
- subMenuItem.subMenuName === selectedSubMenu,
68
+ subMenuItem.subMenuLabel === selectedSubMenu,
62
69
  }
63
70
  )}
64
71
  lineHeight="18px"
65
72
  >
66
- {subMenuItem.subMenuName}
73
+ {subMenuItem.subMenuLabel}
67
74
  </Typography>
68
- {subMenuItem.subMenuName === selectedSubMenu &&
75
+ {subMenuItem.subMenuLabel === selectedSubMenu &&
69
76
  subMenuItem?.quickMenuItems && (
70
77
  <div className="ff-app-header-quickmenu-container">
71
78
  <div>
@@ -78,9 +85,7 @@ const AppHeader: React.FC<AppHeaderProps> = ({
78
85
  <div
79
86
  key={quickMenuItem.quickMenuIconName}
80
87
  onClick={() =>
81
- onQuickMenuClick(
82
- quickMenuItem.quickMenuName
83
- )
88
+ onQuickMenuClick(quickMenuItem)
84
89
  }
85
90
  className={classNames(
86
91
  'ff-app-header-nav-bar-quickmenu-item',
@@ -116,7 +121,9 @@ const AppHeader: React.FC<AppHeaderProps> = ({
116
121
  <Icon name="more" className="ff-app-header-more-icon" />
117
122
  </div>
118
123
  </div>
119
- <div className="ff-app-header-right-content">{rightContent}</div>
124
+ {rightContent && (
125
+ <div className="ff-app-header-right-content">{rightContent}</div>
126
+ )}
120
127
  </div>
121
128
  </>
122
129
  );
@@ -2,26 +2,30 @@ import { ReactNode } from 'react';
2
2
 
3
3
  export interface AppHeaderProps {
4
4
  logoIconName: string;
5
- rightContent: ReactNode;
6
- projectsList: string[];
5
+ leftContent?: ReactNode;
6
+ rightContent?: ReactNode;
7
+ projectsList?: string[];
7
8
  appHeaderMenuItems: appHeaderMenuItemProps[];
8
- appHeaderHiddenMenuItems: string[];
9
+ appHeaderHiddenMenuItems?: string[];
9
10
  selectedMenu: string;
10
- selectedSubMenu : string;
11
- selectedQuickMenu : string;
12
- onMenuClick ?: (text: any) => void;
13
- onSubMenuClick ?: (text: any) => void;
14
- onQuickMenuClick ?: (text: any) => void;
11
+ selectedSubMenu?: string;
12
+ selectedQuickMenu?: string;
13
+ onMenuClick?: (text: any) => void;
14
+ onSubMenuClick?: (text: any) => void;
15
+ onQuickMenuClick?: (text: any) => void;
15
16
  }
16
17
  export interface appHeaderMenuItemProps {
17
- menuName: string;
18
- subMenuItems: appHeaderSubMenuItemProps[];
18
+ menuLabel: string;
19
+ menuName?: string;
20
+ subMenuItems?: appHeaderSubMenuItemProps[];
19
21
  }
20
22
  export interface appHeaderSubMenuItemProps {
21
- subMenuName: string;
22
- quickMenuItems: appHeaderQuickMenuItemProps[];
23
+ subMenuLabel: string;
24
+ subMenuName?: string;
25
+ quickMenuItems?: appHeaderQuickMenuItemProps[];
23
26
  }
24
27
  export interface appHeaderQuickMenuItemProps {
25
- quickMenuName: string;
28
+ quickMenuLabel?: string;
29
+ quickMenuName?: string;
26
30
  quickMenuIconName: string;
27
31
  }
@@ -92,6 +92,10 @@
92
92
  background: $delete-button-hover;
93
93
  }
94
94
  }
95
+ &--warning {
96
+ background: var(--warning-button-color);
97
+ border: var(--warning-button-border);
98
+ }
95
99
 
96
100
  &--secondary {
97
101
  &:before {
@@ -45,6 +45,13 @@ export const Delete: Story = {
45
45
  variant: 'delete',
46
46
  },
47
47
  };
48
+ export const Warning: Story = {
49
+ args: {
50
+ ...defaultArgs,
51
+ label: 'Warning',
52
+ variant: 'warning',
53
+ },
54
+ };
48
55
  export const PrimaryWithIcon: Story = {
49
56
  args: {
50
57
  ...defaultArgs,
@@ -1 +1 @@
1
- export { default } from './Button';
1
+ export { default } from './Button';
@@ -4,7 +4,7 @@ export interface ButtonProps {
4
4
  /**
5
5
  * Variant of the button
6
6
  */
7
- variant: 'primary' | 'secondary' | 'tertiary' | 'delete';
7
+ variant: 'primary' | 'secondary' | 'tertiary' | 'delete'| 'warning';
8
8
  /**
9
9
  * What background color to use
10
10
  */
@@ -61,5 +61,5 @@ export interface ButtonProps {
61
61
  * Give icon name availble in storybook that to be on left side of button
62
62
  */
63
63
  iconPosition?: 'left' | 'right';
64
- transparentBackground?:boolean;
64
+ transparentBackground?: boolean;
65
65
  }
@@ -9,10 +9,9 @@
9
9
  }
10
10
 
11
11
  .ff-drawer {
12
- height: 100vh;
13
12
  position: fixed;
14
13
  right: 0;
15
- top: 0;
14
+ top: 80px;
16
15
  bottom: 0;
17
16
  min-width: 450px;
18
17
  background-color: var(--primary-button-text-color);
@@ -42,14 +41,14 @@
42
41
  &--x-large {
43
42
  transition: all 0.4s ease-in-out;
44
43
  border-radius: 5px;
45
- border: 2px solid var(--border-color);
44
+ border: 1px solid var(--border-color);
46
45
  }
47
46
 
48
47
  .ff-drawer-header {
49
- padding: 10px 8px 10px 8px;
48
+ padding: 4px 8px 4px 8px;
50
49
  display: flex;
51
50
  gap: 10px;
52
- border-bottom: 2px solid var(--border-color);
51
+ border-bottom: 1px solid var(--border-color);
53
52
 
54
53
  .ff-drawer-title {
55
54
  @extend .fontSm;
@@ -59,6 +58,15 @@
59
58
  align-items: center;
60
59
  gap: 12px;
61
60
  }
61
+ .ff-close-icon {
62
+ height: 16px;
63
+ width: 16px;
64
+ background-color: var(--button-bg-color);
65
+ border-radius: 4px;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ }
62
70
 
63
71
  .ff-drawer-action-section {
64
72
  width: 100%;
@@ -66,14 +74,17 @@
66
74
  align-items: center;
67
75
  justify-content: space-between;
68
76
  gap: 12px;
77
+ height: 24px;
69
78
 
70
79
  .ff-action-button {
71
80
  display: flex;
72
81
  align-items: center;
73
- gap: 12px;
82
+ gap: 5px;
74
83
 
75
84
  .ff-expand-collapse-button {
76
85
  cursor: pointer;
86
+ height: 24px;
87
+ width: 24px;
77
88
  background-color: var(--button-bg-color);
78
89
  outline: none;
79
90
  border: none;
@@ -82,8 +93,7 @@
82
93
  display: flex;
83
94
  align-items: center;
84
95
  justify-content: center;
85
- border-radius: 6px;
86
- padding: 6px;
96
+ border-radius: 8px;
87
97
  }
88
98
  }
89
99
  }
@@ -100,19 +110,20 @@
100
110
  }
101
111
 
102
112
  .ff-drawer-footer {
113
+ height: 24px;
103
114
  position: absolute;
104
115
  bottom: 0;
105
116
  left: 0;
106
117
  right: 0;
107
- padding: 5px 16px 5px 16px;
118
+ padding: 4px 8px 4px 8px;
108
119
  display: flex;
109
120
  justify-content: space-between;
110
- border-top: 2px solid var(--drawer-footer-border);
121
+ border-top: 1px solid var(--drawer-footer-border);
111
122
 
112
123
  .button-container {
113
124
  display: flex;
114
125
  justify-content: flex-end;
115
- gap: 16px;
126
+ gap: 10px;
116
127
  }
117
128
  }
118
129
  }