pixel-react 1.1.8 → 1.2.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 (173) hide show
  1. package/lib/components/AddButton/AddButton.d.ts +5 -0
  2. package/lib/components/AddButton/AddButton.stories.d.ts +6 -0
  3. package/lib/components/AddButton/index.d.ts +1 -0
  4. package/lib/components/AddButton/types.d.ts +4 -0
  5. package/lib/components/AppHeader/types.d.ts +7 -7
  6. package/lib/components/Drawer/Drawer.stories.d.ts +2 -0
  7. package/lib/components/Drawer/Types.d.ts +11 -0
  8. package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +14 -0
  9. package/lib/components/ExcelFile/ColorBarSelector/ColorBarSelector.d.ts +8 -0
  10. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +4 -0
  11. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +7 -0
  12. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +4 -0
  13. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +5 -0
  14. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +3 -0
  15. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +5 -0
  16. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +5 -0
  17. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +8 -0
  18. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +10 -0
  19. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +3 -0
  20. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +3 -0
  21. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +5 -0
  22. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +3 -0
  23. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +81 -0
  24. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +3 -0
  25. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +130 -0
  26. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +1 -0
  27. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +8 -0
  28. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +22 -0
  29. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +17 -0
  30. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -0
  31. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +21 -0
  32. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +3 -0
  33. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +24 -0
  34. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +13 -0
  35. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +67 -0
  36. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +22 -0
  37. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +11 -0
  38. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +27 -0
  39. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +95 -0
  40. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +215 -0
  41. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +3 -0
  42. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +3 -0
  43. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +45 -0
  44. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +3 -0
  45. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +6 -0
  46. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +15 -0
  47. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +3 -0
  48. package/lib/components/ExcelFile/ImportExcelStyles.d.ts +24 -0
  49. package/lib/components/ExcelFile/Types.d.ts +176 -0
  50. package/lib/components/ExcelFile/index.d.ts +1 -0
  51. package/lib/components/Icon/Icon.stories.d.ts +1 -0
  52. package/lib/components/Icon/types.d.ts +1 -0
  53. package/lib/components/IconRadioGroup/IconRadioGroup.d.ts +5 -0
  54. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +7 -0
  55. package/lib/components/IconRadioGroup/index.d.ts +1 -0
  56. package/lib/components/IconRadioGroup/type.d.ts +41 -0
  57. package/lib/components/Table/Table.d.ts +1 -1
  58. package/lib/components/Table/Table.stories.d.ts +2 -0
  59. package/lib/components/Table/Types.d.ts +16 -0
  60. package/lib/index.d.ts +81 -9
  61. package/lib/index.esm.js +739 -248
  62. package/lib/index.esm.js.map +1 -1
  63. package/lib/index.js +739 -247
  64. package/lib/index.js.map +1 -1
  65. package/lib/tsconfig.tsbuildinfo +1 -1
  66. package/lib/utils/find/findAndInsert.d.ts +7 -0
  67. package/lib/utils/find/findAndInsert.stories.d.ts +7 -0
  68. package/package.json +4 -2
  69. package/src/assets/Themes/BaseTheme.scss +4 -0
  70. package/src/assets/Themes/DarkTheme.scss +4 -0
  71. package/src/assets/icons/all_borders.svg +3 -0
  72. package/src/assets/icons/bold.svg +3 -0
  73. package/src/assets/icons/border_bottom.svg +3 -0
  74. package/src/assets/icons/border_left.svg +3 -0
  75. package/src/assets/icons/border_right.svg +3 -0
  76. package/src/assets/icons/border_top.svg +3 -0
  77. package/src/assets/icons/clone_icon.svg +3 -0
  78. package/src/assets/icons/double_underline.svg +5 -0
  79. package/src/assets/icons/eye_closed.svg +3 -0
  80. package/src/assets/icons/fill_color.svg +7 -0
  81. package/src/assets/icons/formate_painter.svg +5 -0
  82. package/src/assets/icons/full_access_icon.svg +4 -0
  83. package/src/assets/icons/history_icon.svg +19 -0
  84. package/src/assets/icons/italic.svg +3 -0
  85. package/src/assets/icons/jira.svg +3 -0
  86. package/src/assets/icons/linked_defects.svg +11 -0
  87. package/src/assets/icons/move_icon.svg +5 -0
  88. package/src/assets/icons/no_access_icon.svg +4 -0
  89. package/src/assets/icons/no_border.svg +3 -0
  90. package/src/assets/icons/strike_through.svg +3 -0
  91. package/src/assets/icons/text_align_center.svg +3 -0
  92. package/src/assets/icons/text_align_left.svg +3 -0
  93. package/src/assets/icons/text_align_right.svg +3 -0
  94. package/src/assets/icons/text_color.svg +3 -0
  95. package/src/assets/icons/underline.svg +4 -0
  96. package/src/assets/icons/view_access_icon.svg +4 -0
  97. package/src/components/AppHeader/AppHeader.scss +23 -10
  98. package/src/components/AppHeader/AppHeader.stories.tsx +29 -28
  99. package/src/components/AppHeader/AppHeader.tsx +18 -16
  100. package/src/components/AppHeader/types.ts +7 -7
  101. package/src/components/Button/Button.scss +1 -0
  102. package/src/components/Checkbox/Checkbox.tsx +1 -1
  103. package/src/components/Drawer/Drawer.scss +13 -9
  104. package/src/components/Drawer/Drawer.stories.tsx +28 -0
  105. package/src/components/Drawer/Drawer.tsx +29 -6
  106. package/src/components/Drawer/Types.ts +11 -0
  107. package/src/components/ExcelFile/ChangeExcelStyles.tsx +78 -0
  108. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +13 -0
  109. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.tsx +43 -0
  110. package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +102 -0
  111. package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +104 -0
  112. package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +131 -0
  113. package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +201 -0
  114. package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +123 -0
  115. package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +25 -0
  116. package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +49 -0
  117. package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +37 -0
  118. package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +46 -0
  119. package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +31 -0
  120. package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +5 -0
  121. package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +5 -0
  122. package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +102 -0
  123. package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +32 -0
  124. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.css +144 -0
  125. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +494 -0
  126. package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +19 -0
  127. package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +302 -0
  128. package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +18 -0
  129. package/src/components/ExcelFile/ExcelFile/Excel/context.ts +12 -0
  130. package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +200 -0
  131. package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +137 -0
  132. package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -0
  133. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +154 -0
  134. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +10 -0
  135. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +69 -0
  136. package/src/components/ExcelFile/ExcelFile/Excel/index.ts +48 -0
  137. package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +388 -0
  138. package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +82 -0
  139. package/src/components/ExcelFile/ExcelFile/Excel/point.ts +15 -0
  140. package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +682 -0
  141. package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +257 -0
  142. package/src/components/ExcelFile/ExcelFile/Excel/types.ts +269 -0
  143. package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +58 -0
  144. package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +8 -0
  145. package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +9 -0
  146. package/src/components/ExcelFile/ExcelFile/Excel/util.ts +173 -0
  147. package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +27 -0
  148. package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +520 -0
  149. package/src/components/ExcelFile/ExcelFile.stories.tsx +132 -0
  150. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.scss +16 -0
  151. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +79 -0
  152. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +22 -0
  153. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +271 -0
  154. package/src/components/ExcelFile/ImportExcelStyles.tsx +86 -0
  155. package/src/components/ExcelFile/Types.ts +241 -0
  156. package/src/components/ExcelFile/index.ts +1 -0
  157. package/src/components/Icon/Icon.stories.tsx +27 -0
  158. package/src/components/Icon/Icon.tsx +5 -1
  159. package/src/components/Icon/Icons.scss +15 -5
  160. package/src/components/Icon/iconList.ts +52 -1
  161. package/src/components/Icon/types.ts +1 -0
  162. package/src/components/IconRadioGroup/IconRadioGroup.scss +60 -0
  163. package/src/components/IconRadioGroup/IconRadioGroup.stories.tsx +108 -0
  164. package/src/components/IconRadioGroup/IconRadioGroup.tsx +72 -0
  165. package/src/components/IconRadioGroup/index.ts +1 -0
  166. package/src/components/IconRadioGroup/type.ts +50 -0
  167. package/src/components/Modal/Modal.tsx +8 -1
  168. package/src/components/Modal/modal.scss +10 -2
  169. package/src/components/Table/Table.scss +16 -4
  170. package/src/components/Table/Table.stories.tsx +36 -12
  171. package/src/components/Table/Table.tsx +33 -16
  172. package/src/components/Table/Types.ts +121 -105
  173. package/src/index.ts +2 -0
@@ -28,79 +28,79 @@ const defaultArgs = {
28
28
  };
29
29
 
30
30
  const headerMenuItems = [
31
- { menuLabel: 'Dashboard', menuName: 'Dashboard', subMenuItems: [] },
31
+ { label: 'Dashboard', path: 'Dashboard', subMenuItems: [] },
32
32
  {
33
- menuLabel: 'Repo',
34
- menuName: 'Repo',
33
+ label: 'Repo',
34
+ path: 'Repo',
35
35
  subMenuItems: [
36
36
  {
37
- subMenuLabel: 'Elements',
38
- subMenuName: 'Elements',
37
+ label: 'Elements',
38
+ path: 'Elements',
39
39
  quickMenuItems: [],
40
40
  },
41
41
  {
42
- subMenuLabel: 'Program Elements',
43
- subMenuName: 'Program Elements',
42
+ label: 'Program Elements',
43
+ path: 'Program Elements',
44
44
  quickMenuItems: [],
45
45
  },
46
46
  {
47
- subMenuLabel: 'Step Groups',
48
- subMenuName: 'Step Groups',
47
+ label: 'Step Groups',
48
+ path: 'Step Groups',
49
49
  quickMenuItems: [
50
50
  {
51
51
  quickMenuName: 'Success Icon',
52
- quickMenuIconName: 'success',
52
+ iconName: 'success',
53
53
  },
54
54
  {
55
55
  quickMenuName: 'Warning Icon',
56
- quickMenuIconName: 'warning',
56
+ iconName: 'warning',
57
57
  },
58
58
  {
59
59
  quickMenuName: 'Info Icon',
60
- quickMenuIconName: 'info',
60
+ iconName: 'info',
61
61
  },
62
62
  ],
63
63
  },
64
64
  ],
65
65
  },
66
66
  {
67
- menuLabel: 'Test Data',
68
- menuName: 'Test Data',
67
+ label: 'Test Data',
68
+ path: 'Test Data',
69
69
  subMenuItems: [],
70
70
  },
71
71
  {
72
- menuLabel: 'Test Dev',
73
- menuName: 'Test Dev',
72
+ label: 'Test Dev',
73
+ path: 'Test Dev',
74
74
  subMenuItems: [
75
75
  {
76
- subMenuLabel: 'Scripts',
77
- subMenuName: 'Scripts',
76
+ label: 'Scripts',
77
+ path: 'Scripts',
78
78
  quickMenuItems: [
79
79
  {
80
80
  quickMenuName: 'Delete Icon',
81
- quickMenuIconName: 'delete',
81
+ iconName: 'delete',
82
82
  },
83
83
  {
84
84
  quickMenuName: 'Details Icon',
85
- quickMenuIconName: 'details',
85
+ iconName: 'details',
86
86
  },
87
87
  {
88
88
  quickMenuName: 'Sun Icon',
89
- quickMenuIconName: 'sun_icon',
89
+ iconName: 'sun_icon',
90
90
  },
91
91
  {
92
92
  quickMenuName: 'Moon Stars Icon',
93
- quickMenuIconName: 'moon_stars_icon',
93
+ iconName: 'moon_stars_icon',
94
94
  },
95
95
  {
96
96
  quickMenuName: 'Impact List Icon',
97
- quickMenuIconName: 'impactList',
97
+ iconName: 'impactList',
98
98
  },
99
99
  ],
100
100
  },
101
101
  {
102
- subMenuLabel: 'Executions',
103
- subMenuName: 'Executions',
102
+ label: 'Executions',
103
+ path: 'Executions',
104
104
  quickMenuItems: [],
105
105
  },
106
106
  ],
@@ -132,13 +132,13 @@ export const Controlled: Story = {
132
132
  const [selectedSubMenuItem, setSelectedSubMenuItem] = useState('');
133
133
  const [selectedQuickMenuItem, setSelectedQuickMenuItem] = useState('');
134
134
  const handleMenuClick = (item: appHeaderMenuItemProps) => {
135
- setSelectedMenuItem(item.menuLabel);
135
+ setSelectedMenuItem(item.label);
136
136
  };
137
137
  const handleSubMenuClick = (item: appHeaderSubMenuItemProps) => {
138
- setSelectedSubMenuItem(item.subMenuLabel);
138
+ setSelectedSubMenuItem(item.label);
139
139
  };
140
140
  const handleQuickMenuClick = (item: appHeaderQuickMenuItemProps) => {
141
- setSelectedQuickMenuItem(item.quickMenuIconName);
141
+ setSelectedQuickMenuItem(item.iconName);
142
142
  };
143
143
 
144
144
  return (
@@ -146,6 +146,7 @@ export const Controlled: Story = {
146
146
  <div>
147
147
  <AppHeader
148
148
  logoIconName="fireflink_icon"
149
+ leftContent={headerRightSideContent}
149
150
  rightContent={headerRightSideContent}
150
151
  appHeaderMenuItems={headerMenuItems}
151
152
  appHeaderHiddenMenuItems={headerHiddenMenuItems}
@@ -22,12 +22,14 @@ const AppHeader: React.FC<AppHeaderProps> = ({
22
22
  return (
23
23
  <>
24
24
  <div className="ff-app-header">
25
- <div className="ff-app-header-logo-icon">
26
- <Icon color="" name={logoIconName} height={24} width={21} />
25
+ <div className='ff-app-header-left-container'>
26
+ <div className="ff-app-header-logo-icon">
27
+ <Icon color="" name={logoIconName} height={24} width={21} />
28
+ </div>
29
+ {leftContent && (
30
+ <div className="ff-app-header-left-content">{leftContent}</div>
31
+ )}
27
32
  </div>
28
- {leftContent && (
29
- <div className="ff-app-header-left-content">{leftContent}</div>
30
- )}
31
33
  <div className="ff-app-header-nav-bar">
32
34
  {checkEmpty(projectsList) && (
33
35
  <div>{/* <AllProjectsDropdown /> */}</div>
@@ -38,9 +40,9 @@ const AppHeader: React.FC<AppHeaderProps> = ({
38
40
  <div
39
41
  className={classNames('ff-app-header-nav-bar-item', {
40
42
  ['ff-app-header-nav-bar-item--selected']:
41
- menuItem.menuLabel === selectedMenu,
43
+ menuItem.label === selectedMenu,
42
44
  })}
43
- key={menuItem.menuLabel}
45
+ key={menuItem.label}
44
46
  onClick={() => onMenuClick(menuItem)}
45
47
  >
46
48
  <Typography
@@ -48,14 +50,14 @@ const AppHeader: React.FC<AppHeaderProps> = ({
48
50
  className="ff-app-header-nav-bar-item-label"
49
51
  lineHeight="18px"
50
52
  >
51
- {menuItem.menuLabel}
53
+ {menuItem.label}
52
54
  </Typography>
53
- {menuItem.menuLabel === selectedMenu &&
55
+ {menuItem.label === selectedMenu &&
54
56
  menuItem?.subMenuItems &&
55
57
  menuItem.subMenuItems.map((subMenuItem) => {
56
58
  return (
57
59
  <div
58
- key={subMenuItem.subMenuLabel}
60
+ key={subMenuItem.label}
59
61
  onClick={() => onSubMenuClick(subMenuItem)}
60
62
  className="ff-app-header-submenu-container"
61
63
  >
@@ -65,14 +67,14 @@ const AppHeader: React.FC<AppHeaderProps> = ({
65
67
  'ff-app-header-nav-bar-submenu-item',
66
68
  {
67
69
  ['ff-app-header-nav-bar-submenu-item--selected']:
68
- subMenuItem.subMenuLabel === selectedSubMenu,
70
+ subMenuItem.label === selectedSubMenu,
69
71
  }
70
72
  )}
71
73
  lineHeight="18px"
72
74
  >
73
- {subMenuItem.subMenuLabel}
75
+ {subMenuItem.label}
74
76
  </Typography>
75
- {subMenuItem.subMenuLabel === selectedSubMenu &&
77
+ {subMenuItem.label === selectedSubMenu &&
76
78
  subMenuItem?.quickMenuItems && (
77
79
  <div className="ff-app-header-quickmenu-container">
78
80
  <div>
@@ -83,7 +85,7 @@ const AppHeader: React.FC<AppHeaderProps> = ({
83
85
  return (
84
86
  <>
85
87
  <div
86
- key={quickMenuItem.quickMenuIconName}
88
+ key={quickMenuItem.iconName}
87
89
  onClick={() =>
88
90
  onQuickMenuClick(quickMenuItem)
89
91
  }
@@ -91,14 +93,14 @@ const AppHeader: React.FC<AppHeaderProps> = ({
91
93
  'ff-app-header-nav-bar-quickmenu-item',
92
94
  {
93
95
  ['ff-app-header-nav-bar-quickmenu-item--selected']:
94
- quickMenuItem.quickMenuName ===
96
+ quickMenuItem.path ===
95
97
  selectedQuickMenu,
96
98
  }
97
99
  )}
98
100
  >
99
101
  <Icon
100
102
  name={
101
- quickMenuItem.quickMenuIconName
103
+ quickMenuItem.iconName
102
104
  }
103
105
  height={24}
104
106
  width={24}
@@ -15,17 +15,17 @@ export interface AppHeaderProps {
15
15
  onQuickMenuClick?: (text: any) => void;
16
16
  }
17
17
  export interface appHeaderMenuItemProps {
18
- menuLabel: string;
19
- menuName?: string;
18
+ label: string;
19
+ path?: string;
20
20
  subMenuItems?: appHeaderSubMenuItemProps[];
21
21
  }
22
22
  export interface appHeaderSubMenuItemProps {
23
- subMenuLabel: string;
24
- subMenuName?: string;
23
+ label: string;
24
+ path?: string;
25
25
  quickMenuItems?: appHeaderQuickMenuItemProps[];
26
26
  }
27
27
  export interface appHeaderQuickMenuItemProps {
28
- quickMenuLabel?: string;
29
- quickMenuName?: string;
30
- quickMenuIconName: string;
28
+ label?: string;
29
+ path?: string;
30
+ iconName: string;
31
31
  }
@@ -125,6 +125,7 @@
125
125
  @extend .fontXs;
126
126
  font-weight: 500;
127
127
  padding: 4.5px 8px;
128
+ line-height: 15px;
128
129
  }
129
130
 
130
131
  &--medium {
@@ -53,7 +53,7 @@ const Checkbox: React.FC<CheckboxProps> = ({
53
53
  />
54
54
  )}
55
55
  </span>
56
- <Typography as="label">{label}</Typography>
56
+ <Typography as="span">{label}</Typography>
57
57
  </label>
58
58
  );
59
59
  };
@@ -12,6 +12,7 @@
12
12
  position: fixed;
13
13
  right: 0;
14
14
  bottom: 0;
15
+ top: 80px;
15
16
  min-width: 450px;
16
17
  background-color: var(--primary-button-text-color);
17
18
  z-index: 999;
@@ -94,23 +95,21 @@
94
95
  justify-content: center;
95
96
  border-radius: 8px;
96
97
  }
98
+ .ff-custom-header {
99
+ background-color: var(--drawer-footer-bg);
100
+ padding: 4px 8px;
101
+ }
97
102
  }
98
103
  }
99
104
  }
100
105
 
101
106
  .ff-drawer-body {
102
107
  background-color: var(--drawer-footer-bg);
103
- height: calc(100vh - 76px);
104
- overflow: hidden auto;
105
- }
106
-
107
- .no-footer {
108
- height: 100vh;
108
+ overflow-y: auto;
109
109
  }
110
110
 
111
111
  .ff-drawer-footer {
112
- height: 24px;
113
- position: absolute;
112
+ position: fixed;
114
113
  bottom: 0;
115
114
  left: 0;
116
115
  right: 0;
@@ -118,11 +117,16 @@
118
117
  display: flex;
119
118
  justify-content: space-between;
120
119
  border-top: 1px solid var(--drawer-footer-border);
120
+ z-index: 1000;
121
121
 
122
122
  .button-container {
123
123
  display: flex;
124
124
  justify-content: flex-end;
125
- gap: 10px;
125
+ gap: 8px;
126
+ }
127
+ .ff-custom-footer {
128
+ background-color: var(--drawer-footer-bg);
129
+ padding: 4px 8px;
126
130
  }
127
131
  }
128
132
  }
@@ -98,6 +98,34 @@ export const WithCustomFooter: Story = {
98
98
  docs: { disable: true },
99
99
  },
100
100
  };
101
+ export const WithTertiaryButtons: Story = {
102
+ args: {
103
+ ...defaultArgs,
104
+ tertiaryButtonProps: {
105
+ left: {
106
+ label: 'Help',
107
+ onClick: () => {},
108
+ },
109
+ right: {
110
+ label: 'More Info',
111
+ onClick: () => {},
112
+ },
113
+ },
114
+ },
115
+ parameters: {
116
+ docs: { disable: true },
117
+ },
118
+ };
119
+
120
+ export const WithCustomZIndex: Story = {
121
+ args: {
122
+ ...defaultArgs,
123
+ zIndex: 1050,
124
+ },
125
+ parameters: {
126
+ docs: { disable: true },
127
+ },
128
+ };
101
129
 
102
130
  export const Controlled: Story = {
103
131
  render: () => {
@@ -30,6 +30,8 @@ const Drawer: FC<DrawerProps> = ({
30
30
  onCloseIconClick,
31
31
  customHeader,
32
32
  customFooter,
33
+ tertiaryButtonProps = { left: {}, right: {} },
34
+ zIndex = 999,
33
35
  }: DrawerProps) => {
34
36
  const [isExpanded, setIsExpanded] = useState(_isExpanded);
35
37
 
@@ -72,11 +74,16 @@ const Drawer: FC<DrawerProps> = ({
72
74
  className={classNames('ff-drawer', `ff-drawer--${drawerSize}`, {
73
75
  'ff-drawer--open': isOpen,
74
76
  })}
77
+ style={{ zIndex }}
75
78
  >
76
79
  {showHeader && (
77
- <div className="ff-drawer-header">
80
+ <div
81
+ className={classNames('ff-drawer-header', {
82
+ 'ff-custom-header': customHeader,
83
+ })}
84
+ >
78
85
  {customHeader ? (
79
- customHeader
86
+ <div className="ff-custom-header">{customHeader}</div>
80
87
  ) : (
81
88
  <div className="ff-drawer-action-section">
82
89
  <div className="ff-action-button">
@@ -106,9 +113,7 @@ const Drawer: FC<DrawerProps> = ({
106
113
  className="ff-expand-collapse-button"
107
114
  onClick={onClose}
108
115
  >
109
- {backButtonIcon ? (
110
- backButtonIcon
111
- ) : (
116
+ {backButtonIcon || (
112
117
  <Icon
113
118
  name="error"
114
119
  height={16}
@@ -146,7 +151,11 @@ const Drawer: FC<DrawerProps> = ({
146
151
  </div>
147
152
 
148
153
  {isFooterRequired && (
149
- <div className="ff-drawer-footer">
154
+ <div
155
+ className={classNames('ff-drawer-footer', {
156
+ 'ff-custom-footer': customFooter,
157
+ })}
158
+ >
150
159
  {customFooter || footerContent || (
151
160
  <>
152
161
  <div className="button-container">
@@ -166,8 +175,22 @@ const Drawer: FC<DrawerProps> = ({
166
175
  transparentBackground={true}
167
176
  />
168
177
  )}
178
+ {tertiaryButtonProps.left?.label && (
179
+ <Button
180
+ {...tertiaryButtonProps.left}
181
+ variant="tertiary"
182
+ transparentBackground={true}
183
+ />
184
+ )}
169
185
  </div>
170
186
  <div className="button-container">
187
+ {tertiaryButtonProps.right?.label && (
188
+ <Button
189
+ {...tertiaryButtonProps.right}
190
+ variant="tertiary"
191
+ transparentBackground={true}
192
+ />
193
+ )}
171
194
  {secondaryButtonProps.label && (
172
195
  <Button
173
196
  {...secondaryButtonProps}
@@ -109,4 +109,15 @@ export interface DrawerProps {
109
109
  * If provided, this will render in place of the default footer.
110
110
  */
111
111
  customFooter?: ReactNode;
112
+ /**
113
+ * Tertiary button properties (optional)
114
+ */
115
+ tertiaryButtonProps?: {
116
+ left?: BtnPropsCommon;
117
+ right?: BtnPropsCommon;
118
+ };
119
+ /**
120
+ * Custom z-index for the drawer
121
+ */
122
+ zIndex?: number;
112
123
  }
@@ -0,0 +1,78 @@
1
+ import { CellBase } from "./ExcelFile/Excel";
2
+
3
+ interface ChangeExcelStylesOptions {
4
+ sheetName: string;
5
+ styleType: string;
6
+ value: string;
7
+ selectedCell: { row: number; column: number }[];
8
+ }
9
+
10
+ export default function ChangeExcelStyles(
11
+ setWorksheetsData: React.Dispatch<React.SetStateAction<{ [key: string]: Matrix<CellBase>; }>>,
12
+ options: ChangeExcelStylesOptions
13
+ ) {
14
+ const { sheetName, styleType, value, selectedCell } = options;
15
+
16
+ setWorksheetsData((prev) => {
17
+ if (!prev[sheetName]) {
18
+ return prev;
19
+ }
20
+
21
+ const sheetData = prev[sheetName]!;
22
+ const selectedCells = new Set(
23
+ selectedCell.map(({ row, column }) => `${row}-${column}`)
24
+ );
25
+
26
+ const updatedSheetData: Matrix<CellBase> = sheetData.map((row, rowIndex) =>
27
+ row.map((cell, columnIndex) => {
28
+ const isSelected = selectedCells.has(`${rowIndex}-${columnIndex}`);
29
+ if (isSelected&&cell!==undefined) {
30
+ let newStyle = { ...cell.style };
31
+
32
+ switch (styleType) {
33
+ // case 'border':
34
+ // newStyle = handleBorderChange(newStyle, value);
35
+ // break;
36
+ // case 'alignment':
37
+ // newStyle = handleAlignmentChange(newStyle, value);
38
+ // break;
39
+ // case 'bold':
40
+ // newStyle = handleBoldChange(newStyle);
41
+ // break;
42
+ // case 'italic':
43
+ // newStyle = handleItalicChange(newStyle);
44
+ // break;
45
+ case 'color':
46
+ newStyle = handleColorChange(newStyle, value);
47
+ break;
48
+ case 'backgroundColor':
49
+ newStyle = handleBackgroundColorChange(newStyle, value);
50
+ break;
51
+ default:
52
+ break;
53
+ }
54
+
55
+ const newValue = cell.value ?? "";
56
+
57
+ return { ...cell, style: newStyle, value: newValue };
58
+ }
59
+ return cell;
60
+ })
61
+ );
62
+
63
+
64
+
65
+ return { ...prev, [sheetName]: updatedSheetData };
66
+ });
67
+ }
68
+
69
+ function handleColorChange(style: CellStyle, value: string): CellStyle {
70
+ return { ...style, color: `#${value}` };
71
+ }
72
+
73
+ function handleBackgroundColorChange(
74
+ style: CellStyle,
75
+ value: string
76
+ ): CellStyle {
77
+ return { ...style, backgroundColor: `#${value}` };
78
+ }
@@ -0,0 +1,13 @@
1
+ @use '../../../assets/styles/colors';
2
+
3
+ .color-bar {
4
+ background-color: var(--error_light);
5
+ width: 100%;
6
+ height: 4px;
7
+ .colorPicker {
8
+ width: 100%;
9
+ height: 0;
10
+ padding: 0;
11
+ visibility: hidden;
12
+ }
13
+ }
@@ -0,0 +1,43 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import './ColorBarSelector.scss';
3
+
4
+ interface ColorBarSelectorProps {
5
+ getColorValue: (color: string) => void;
6
+ disabled: boolean;
7
+ }
8
+ const ColorBarSelector: React.FC<ColorBarSelectorProps> = ({
9
+ getColorValue,
10
+ disabled,
11
+ }) => {
12
+ const colorInputRef = useRef<HTMLInputElement | null>(null);
13
+ const [color, setColor] = useState<string>('var(--error-light)');
14
+
15
+ const handleColorClick = () => {
16
+ if (colorInputRef.current) {
17
+ colorInputRef.current.click();
18
+ }
19
+ };
20
+
21
+ return (
22
+ <div
23
+ className="color-bar"
24
+ style={{
25
+ backgroundColor: `${color}`,
26
+ }}
27
+ onClick={handleColorClick}
28
+ >
29
+ <input
30
+ type="color"
31
+ disabled={disabled}
32
+ className="colorPicker"
33
+ ref={colorInputRef}
34
+ onChange={(e) => {
35
+ setColor(e.target.value);
36
+ getColorValue(e.target.value.replace('#', ''));
37
+ }}
38
+ />
39
+ </div>
40
+ );
41
+ };
42
+
43
+ export default ColorBarSelector;
@@ -0,0 +1,102 @@
1
+ @import '../../../assets/styles/colors';
2
+ @import '../../../assets/styles/fonts';
3
+
4
+ .context-menu {
5
+ position: absolute;
6
+ z-index: 1;
7
+ outline: none;
8
+ background-color: var(--brand-color);
9
+ // box-shadow: 0px 0px 6px $shadow;
10
+ border-radius: 5px;
11
+ opacity: 1;
12
+ padding: 16px 0;
13
+ .menu-options {
14
+ overflow: auto;
15
+ min-height: 20px;
16
+ max-height: 175px;
17
+ min-width: 250px;
18
+ opacity: 1;
19
+ .options {
20
+ cursor: pointer;
21
+ display: flex;
22
+ align-items: center;
23
+ padding: 0 8px;
24
+ line-height: 35px;
25
+ gap: 16px;
26
+ .sheet-context-menu {
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ }
31
+ &:hover {
32
+ // background-color: $primary;
33
+ .options-label {
34
+ background: var(--option-card-bg-color);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ .ff-icon-label {
42
+ display: flex;
43
+ align-items: center;
44
+ gap: 4px;
45
+ .ff-menuicon-container {
46
+ display: flex;
47
+ justify-content: center;
48
+ align-items: center;
49
+ cursor: pointer;
50
+ &:hover {
51
+ background-color: var(--brand-color);
52
+ }
53
+ }
54
+
55
+ .ff-menuicon-container-clicked {
56
+ display: flex;
57
+ justify-content: center;
58
+ align-items: center;
59
+ background-color: var(--brand-color);
60
+ cursor: pointer;
61
+ &:hover {
62
+ background-color: var(--brand-color);
63
+ }
64
+ }
65
+ }
66
+
67
+ .ff-option-card {
68
+ position: absolute;
69
+ border: 1px solid var(--option-card-border-color);
70
+ background: var(--option-card-bg-color);
71
+ border-radius: 4px;
72
+ margin: 2px;
73
+ min-height: 32px;
74
+ min-width: 111px;
75
+ z-index: 100000;
76
+ white-space: nowrap;
77
+
78
+ .ff-options {
79
+ @extend .fontSm;
80
+ cursor: pointer;
81
+ border-radius: 4px;
82
+ display: flex;
83
+ align-items: center;
84
+ padding: 8px;
85
+ line-height: 16px;
86
+ gap: 8px;
87
+ &:hover {
88
+ background-color: var(--hover-color);
89
+ }
90
+ label {
91
+ cursor: pointer;
92
+ }
93
+ }
94
+
95
+ .ff-disable-option {
96
+ opacity: 0.5;
97
+ cursor: no-drop;
98
+ label {
99
+ cursor: no-drop;
100
+ }
101
+ }
102
+ }