pixel-react 1.2.1 → 1.2.2

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 (157) hide show
  1. package/lib/components/AppHeader/types.d.ts +11 -2
  2. package/lib/components/Avatar/Avatar.d.ts +5 -0
  3. package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
  4. package/lib/components/Avatar/index.d.ts +1 -0
  5. package/lib/components/Avatar/types.d.ts +26 -0
  6. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +2 -2
  7. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +2 -2
  8. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +1 -1
  9. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +2 -2
  10. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +2 -2
  11. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +2 -2
  12. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +2 -2
  13. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +1 -1
  14. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +1 -1
  15. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +2 -2
  16. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +1 -1
  17. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +6 -7
  18. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +1 -1
  19. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +49 -5
  20. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +3 -3
  21. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +5 -5
  22. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +6 -6
  23. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -2
  24. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +2 -2
  25. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +1 -1
  26. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +1 -1
  27. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +11 -11
  28. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +1 -1
  29. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +1 -1
  30. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +5 -5
  31. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +3 -3
  32. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +11 -48
  33. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +1 -1
  34. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +1 -1
  35. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +11 -12
  36. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +16 -0
  37. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -3
  38. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +12 -0
  39. package/lib/components/ExcelFile/Types.d.ts +2 -49
  40. package/lib/components/Form/Form.d.ts +1 -15
  41. package/lib/components/Form/Form.stories.d.ts +6 -5
  42. package/lib/components/Form/Forms.d.ts +8 -0
  43. package/lib/components/Form/index.d.ts +1 -1
  44. package/lib/components/MenuOption/types.d.ts +7 -7
  45. package/lib/components/ModulesChip/ModuleChip.d.ts +4 -0
  46. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +6 -0
  47. package/lib/components/ModulesChip/index.d.ts +1 -0
  48. package/lib/components/ModulesChip/types.d.ts +14 -0
  49. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
  50. package/lib/components/Toastify/Toastify.d.ts +8 -0
  51. package/lib/components/Toastify/Toastify.stories.d.ts +6 -0
  52. package/lib/components/Toastify/index.d.ts +1 -0
  53. package/lib/components/Toastify/types.d.ts +7 -0
  54. package/lib/components/Tooltip/types.d.ts +6 -0
  55. package/lib/components/Typography/types.d.ts +1 -0
  56. package/lib/index.d.ts +75 -22
  57. package/lib/index.esm.js +26686 -870
  58. package/lib/index.esm.js.map +1 -1
  59. package/lib/index.js +26684 -864
  60. package/lib/index.js.map +1 -1
  61. package/lib/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +1 -1
  63. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +10 -0
  64. package/src/assets/Themes/BaseTheme.scss +2 -0
  65. package/src/assets/Themes/DarkTheme.scss +2 -0
  66. package/src/assets/icons/client_profile.svg +4 -0
  67. package/src/assets/icons/fireflink_finder_logo.svg +7 -0
  68. package/src/assets/icons/fireflink_platform.svg +4 -0
  69. package/src/assets/icons/license_expired.svg +20 -0
  70. package/src/components/AppHeader/AppHeader.stories.tsx +24 -3
  71. package/src/components/AppHeader/AppHeader.tsx +29 -11
  72. package/src/components/AppHeader/types.ts +11 -3
  73. package/src/components/Avatar/Avatar.scss +24 -0
  74. package/src/components/Avatar/Avatar.stories.tsx +56 -0
  75. package/src/components/Avatar/Avatar.tsx +25 -0
  76. package/src/components/Avatar/index.ts +1 -0
  77. package/src/components/Avatar/types.ts +27 -0
  78. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +0 -2
  79. package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +1 -4
  80. package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +0 -1
  81. package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +13 -13
  82. package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +13 -12
  83. package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +40 -32
  84. package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +4 -4
  85. package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +10 -10
  86. package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +5 -5
  87. package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +10 -10
  88. package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +6 -6
  89. package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +1 -1
  90. package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +1 -1
  91. package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +34 -27
  92. package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +5 -5
  93. package/src/components/ExcelFile/ExcelFile/Excel/{Spreadsheet.css → Spreadsheet.scss} +21 -37
  94. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +87 -78
  95. package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +2 -2
  96. package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +121 -31
  97. package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +1 -1
  98. package/src/components/ExcelFile/ExcelFile/Excel/context.ts +4 -4
  99. package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +7 -7
  100. package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +11 -11
  101. package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -2
  102. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +3 -3
  103. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +2 -2
  104. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +2 -2
  105. package/src/components/ExcelFile/ExcelFile/Excel/index.ts +12 -11
  106. package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +18 -24
  107. package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +1 -1
  108. package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +311 -41
  109. package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +5 -5
  110. package/src/components/ExcelFile/ExcelFile/Excel/types.ts +14 -66
  111. package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +8 -8
  112. package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +2 -2
  113. package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +3 -3
  114. package/src/components/ExcelFile/ExcelFile/Excel/util.ts +21 -22
  115. package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +0 -3
  116. package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +45 -403
  117. package/src/components/ExcelFile/ExcelFile.stories.tsx +10 -29
  118. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +1 -12
  119. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +0 -3
  120. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +147 -127
  121. package/src/components/ExcelFile/Types.ts +3 -70
  122. package/src/components/ExcelFile/index.ts +1 -1
  123. package/src/components/Form/Form.d.ts +3 -0
  124. package/src/components/Form/Form.scss +31 -4
  125. package/src/components/Form/Form.stories.tsx +172 -138
  126. package/src/components/Form/Form.ts +2 -0
  127. package/src/components/Form/Forms.tsx +25 -0
  128. package/src/components/Form/index.ts +1 -1
  129. package/src/components/Icon/iconList.ts +8 -0
  130. package/src/components/IconButton/IconButton.scss +1 -1
  131. package/src/components/MenuOption/types.ts +7 -6
  132. package/src/components/ModulesChip/ModuleChip.scss +20 -0
  133. package/src/components/ModulesChip/ModuleChip.stories.tsx +41 -0
  134. package/src/components/ModulesChip/ModuleChip.tsx +31 -0
  135. package/src/components/ModulesChip/index.ts +1 -0
  136. package/src/components/ModulesChip/types.ts +14 -0
  137. package/src/components/MultiSelect/Dropdown.tsx +6 -1
  138. package/src/components/MultiSelect/MultiSelect.scss +17 -10
  139. package/src/components/MultiSelect/MultiSelect.stories.tsx +16 -4
  140. package/src/components/MultiSelect/MultiSelect.tsx +11 -4
  141. package/src/components/MultiSelect/MultiSelectTypes.ts +4 -3
  142. package/src/components/Select/Select.scss +4 -0
  143. package/src/components/Select/Select.tsx +2 -2
  144. package/src/components/Toastify/Toastify.stories.tsx +52 -0
  145. package/src/components/Toastify/Toastify.tsx +66 -0
  146. package/src/components/Toastify/index.ts +1 -0
  147. package/src/components/Toastify/types.ts +8 -0
  148. package/src/components/Tooltip/Tooltip.tsx +2 -1
  149. package/src/components/Tooltip/types.ts +6 -0
  150. package/src/components/Typography/Typography.scss +12 -4
  151. package/src/components/Typography/Typography.stories.tsx +2 -0
  152. package/src/components/Typography/Typography.tsx +2 -0
  153. package/src/components/Typography/types.ts +1 -0
  154. package/src/index.ts +10 -2
  155. package/src/components/ExcelFile/ChangeExcelStyles.tsx +0 -78
  156. package/src/components/ExcelFile/ImportExcelStyles.tsx +0 -86
  157. package/src/components/Form/Form.tsx +0 -57
@@ -55,13 +55,25 @@ export const Default3: Story = {
55
55
  export const EmailGroup: Story = {
56
56
  render: () => {
57
57
  const [options] = useState([
58
- { label: 'Sample1@gmail.com', value: 'sample1@gmail.com' },
58
+ {
59
+ label: 'Sample1@gmail.com',
60
+ value: 'sample1@gmail.com',
61
+ isDisabled: true,
62
+ },
59
63
  { label: 'Sample2@gmail.com', value: 'sample2@gmail.com' },
60
64
  ]);
61
65
  const [selectedOptions, setSelectedOptions] = useState<
62
- { label?: string; value?: string }[]
63
- >([{ label: 'Sample1@gmail.com', value: 'sample1@gmail.com' }]);
64
- const onChange = (options: { label?: string; value?: string }[]) => {
66
+ { label?: string; value?: string; isDisabled?: boolean }[]
67
+ >([
68
+ {
69
+ label: 'Sample1@gmail.com',
70
+ value: 'sample1@gmail.com',
71
+ isDisabled: true,
72
+ },
73
+ ]);
74
+ const onChange = (
75
+ options: { label?: string; value?: string; isDisabled?: boolean }[]
76
+ ) => {
65
77
  setSelectedOptions(options);
66
78
  };
67
79
  return (
@@ -5,6 +5,7 @@ import './MultiSelect.scss';
5
5
  import Dropdown from './Dropdown';
6
6
  import Icon from '../Icon';
7
7
  import { MultiSelectProps, Option } from './MultiSelectTypes';
8
+ import Typography from '../Typography';
8
9
 
9
10
  const ChipElement = ({
10
11
  label,
@@ -22,6 +23,8 @@ const ChipElement = ({
22
23
  className="ff-multiselect-chip-close-icon"
23
24
  onClick={onChipCloseClick}
24
25
  name="close_pill"
26
+ height={13} //as per the latest chnages in icon container we have to give this
27
+ width={13}
25
28
  />
26
29
  </div>
27
30
  );
@@ -46,6 +49,9 @@ const MultiSelect = ({
46
49
  }: MultiSelectProps) => {
47
50
  const [isOpen, setIsOpen] = useState<boolean>(false);
48
51
  const [allOptions, setAllOptions] = useState(options);
52
+ useEffect(() => {
53
+ setAllOptions(options);
54
+ }, [options]);
49
55
 
50
56
  const [searchedKeyword, setSearchedKeyword] = useState('');
51
57
  const [isSelectFocusedOnce, setIsSelectFocusedOnce] =
@@ -236,7 +242,8 @@ const MultiSelect = ({
236
242
  >
237
243
  <div className="ff-multiselect" onClick={handleClick}>
238
244
  <div className="ff-multiselect__main">
239
- <span
245
+ <Typography
246
+ as="span"
240
247
  className={classNames({
241
248
  'active-default-label':
242
249
  isOpen ||
@@ -244,9 +251,9 @@ const MultiSelect = ({
244
251
  (isFieldSkipped && required),
245
252
  'default-label': !isOpen && !selectedOptions?.length,
246
253
  })}
247
- >
248
- {label}
249
- </span>
254
+ children={label}
255
+ />
256
+
250
257
  <div className="ff-multiselect-chip-container">
251
258
  {displayCount ? (
252
259
  <>
@@ -3,10 +3,11 @@ interface Option {
3
3
  value?: string;
4
4
  accessor?: string;
5
5
  isChecked?: boolean;
6
+ isDisabled?: boolean;
6
7
  }
7
8
  interface MultiSelectProps {
8
9
  options: Option[];
9
- type? : 'email' | 'text';
10
+ type?: 'email' | 'text';
10
11
  label: string;
11
12
  selectedOptions?: Option[];
12
13
  disabled?: boolean;
@@ -18,7 +19,7 @@ interface MultiSelectProps {
18
19
  errorMessage?: string;
19
20
  withSelectButton?: boolean;
20
21
  onSelect?: () => void;
21
- displayCount?:boolean;
22
+ displayCount?: boolean;
22
23
  }
23
24
 
24
- export { Option, MultiSelectProps };
25
+ export { Option, MultiSelectProps };
@@ -28,6 +28,10 @@
28
28
 
29
29
  .ff-select-wrapper {
30
30
  position: relative;
31
+
32
+ .ff-select-input {
33
+ cursor: pointer;
34
+ }
31
35
 
32
36
  .ff-select {
33
37
  @extend .fontSm;
@@ -254,8 +254,8 @@ const Select = ({
254
254
  const applyActiveOptionClasses = !isInputFocused && Boolean(option);
255
255
 
256
256
  return (
257
- <div className={classNames(`ff-select-wrapper ${className}`)}>
258
- <div className="ff-select">
257
+ <div className={classNames(`ff-select-wrapper`)}>
258
+ <div className={`ff-select ${className}`}>
259
259
  <input
260
260
  type="text"
261
261
  className={classNames('ff-select-input', {
@@ -0,0 +1,52 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Toastify, toast } from './Toastify';
3
+ import Button from '../Button';
4
+
5
+ const meta: Meta<typeof Toastify> = {
6
+ title: 'Components/Toastify',
7
+ component: Toastify,
8
+ parameters: {
9
+ layout: 'centered',
10
+ },
11
+ tags: ['autodocs'],
12
+ };
13
+
14
+ type Story = StoryObj<typeof Toastify>;
15
+
16
+ const defaultArgs = {
17
+ isOpen: false,
18
+ toastTitle: 'Success',
19
+ toastMessage: 'Variable name Requested for Review successfully',
20
+ closeButtonLabel: 'x',
21
+ displayDuration: 3000,
22
+ };
23
+
24
+ export const Controlled: Story = {
25
+ args: {
26
+ ...defaultArgs,
27
+ },
28
+ // import { Toastify, toast } from 'pixel-react';
29
+ render: () => (
30
+ <>
31
+ {/* Render Toastify to allow toast notifications */}
32
+ <Toastify />
33
+
34
+ {/* Button to trigger a toast notification */}
35
+ <Button
36
+ variant="primary"
37
+ onClick={() => toast.success('Your request was successful!')}
38
+ >
39
+ Show Success Toast
40
+ </Button>
41
+ <br/>
42
+ <Button
43
+ variant="delete"
44
+ onClick={() => toast.error('Something went wrong!')}
45
+ >
46
+ Show Error Toast
47
+ </Button>
48
+ </>
49
+ ),
50
+ };
51
+
52
+ export default meta;
@@ -0,0 +1,66 @@
1
+ import { useState, useRef } from 'react';
2
+ import Toaster from '../Toast/Toast';
3
+ import { Variant, ToastProps } from './types';
4
+
5
+ let openToast: (variant: Variant, message: string) => void;
6
+
7
+ export const Toastify = () => {
8
+ const [toastProps, setToastProps] = useState<ToastProps>({
9
+ isOpen: false,
10
+ variant: 'info',
11
+ toastTitle: '',
12
+ toastMessage: '',
13
+ });
14
+
15
+ const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
16
+
17
+ openToast = (variant: Variant, message: string) => {
18
+ // Clear the previous timeout if it exists
19
+ if (timeoutRef.current) {
20
+ clearTimeout(timeoutRef.current);
21
+ timeoutRef.current = null;
22
+ }
23
+
24
+ const title =
25
+ variant === 'danger'
26
+ ? 'Error!'
27
+ : variant.charAt(0).toUpperCase() + variant.slice(1);
28
+ // Close the existing toast if open, and then immediately show the new one
29
+ setToastProps((prev) => ({
30
+ ...prev,
31
+ isOpen: false,
32
+ }));
33
+
34
+ setTimeout(() => {
35
+ setToastProps({
36
+ isOpen: true,
37
+ variant,
38
+ toastTitle: `${title}!`,
39
+ toastMessage: message,
40
+ });
41
+ }, 10);
42
+
43
+ timeoutRef.current = setTimeout(() => {
44
+ setToastProps((prev) => ({ ...prev, isOpen: false }));
45
+ }, 3000);
46
+ };
47
+
48
+ return (
49
+ <Toaster
50
+ isOpen={toastProps.isOpen}
51
+ variant={toastProps.variant}
52
+ toastTitle={toastProps.toastTitle}
53
+ toastMessage={toastProps.toastMessage}
54
+ />
55
+ );
56
+ };
57
+
58
+ export default Toastify;
59
+
60
+ // Utility to trigger toast messages outside of the Toastify component
61
+ export const toast = {
62
+ success: (message: string) => openToast('success', message),
63
+ error: (message: string) => openToast('danger', message),
64
+ warning: (message: string) => openToast('warning', message),
65
+ info: (message: string) => openToast('info', message),
66
+ };
@@ -0,0 +1 @@
1
+ export { default } from './Toastify';
@@ -0,0 +1,8 @@
1
+ export type Variant = 'success' | 'warning' | 'danger' | 'info' | 'confirm';
2
+
3
+ export interface ToastProps {
4
+ isOpen: boolean;
5
+ variant: Variant;
6
+ toastTitle: string;
7
+ toastMessage: string;
8
+ }
@@ -17,6 +17,7 @@ const Tooltip: React.FC<TooltipProps> = ({
17
17
  children,
18
18
  placement = 'bottom',
19
19
  disabled = false,
20
+ zIndex = 99,
20
21
  }) => {
21
22
  const [isVisible, setIsVisible] = useState(false);
22
23
  const titleRef: TitleRef = useRef(null);
@@ -178,7 +179,7 @@ const Tooltip: React.FC<TooltipProps> = ({
178
179
  createPortal(
179
180
  <div
180
181
  ref={titleRef}
181
- style={styles[placement]}
182
+ style={{ ...styles[placement], zIndex }}
182
183
  className={classNames('ff-tooltip', currentTheme, {
183
184
  'ff-tooltip--visible': isVisible,
184
185
  })}
@@ -46,6 +46,12 @@ interface TooltipProps {
46
46
  * @default false
47
47
  */
48
48
  disabled?: boolean;
49
+ /**.
50
+ * Z-Index is by default 99
51
+ *
52
+ * @default 99
53
+ */
54
+ zIndex?: number | string ;
49
55
  }
50
56
 
51
57
 
@@ -6,28 +6,32 @@
6
6
  @font-face {
7
7
  font-family: 'Poppins';
8
8
  font-weight: 400;
9
- src: local('Poppins-Regular'),
9
+ src:
10
+ local('Poppins-Regular'),
10
11
  url(../../fonts/Poppins/Poppins-Regular.ttf) format('truetype');
11
12
  }
12
13
 
13
14
  @font-face {
14
15
  font-family: 'Poppins';
15
16
  font-weight: 500;
16
- src: local('Poppins-Medium'),
17
+ src:
18
+ local('Poppins-Medium'),
17
19
  url(../../fonts/Poppins/Poppins-Medium.ttf) format('truetype');
18
20
  }
19
21
 
20
22
  @font-face {
21
23
  font-family: 'Poppins';
22
24
  font-weight: 600;
23
- src: local('Poppins-SemiBold'),
25
+ src:
26
+ local('Poppins-SemiBold'),
24
27
  url(../../fonts/Poppins/Poppins-SemiBold.ttf) format('truetype');
25
28
  }
26
29
 
27
30
  @font-face {
28
31
  font-family: 'Poppins';
29
32
  font-weight: 700;
30
- src: local('Poppins-Bold'),
33
+ src:
34
+ local('Poppins-Bold'),
31
35
  url(../../fonts/Poppins/Poppins-Bold.ttf) format('truetype');
32
36
  }
33
37
 
@@ -46,4 +50,8 @@
46
50
  &--bold {
47
51
  font-weight: 700;
48
52
  }
53
+ .required-asterisk {
54
+ color: var(--input-error-text-color);
55
+ padding-right: 4px;
56
+ }
49
57
  }
@@ -14,6 +14,7 @@ type Story = StoryObj<typeof Typography>;
14
14
 
15
15
  export const Docs: Story = {
16
16
  args: {
17
+ required: false,
17
18
  children: 'Typography',
18
19
  },
19
20
  };
@@ -51,6 +52,7 @@ export const Bold14px: Story = {
51
52
  fontSize: '16px',
52
53
  as: 'h2',
53
54
  children: 'This is Bold text with 700 font weight and 16px font size.',
55
+ required: true,
54
56
  },
55
57
  };
56
58
 
@@ -14,6 +14,7 @@ const Typography: React.FC<TypographyProps> = ({
14
14
  children,
15
15
  htmlFor = '',
16
16
  onClick = () => {},
17
+ required = false,
17
18
  }) => {
18
19
  const fontSizeValue =
19
20
  typeof fontSize === 'number' ? `${fontSize}px` : fontSize;
@@ -31,6 +32,7 @@ const Typography: React.FC<TypographyProps> = ({
31
32
  }}
32
33
  onClick={onClick}
33
34
  >
35
+ {required && <span className="required-asterisk">*</span>}
34
36
  {children}
35
37
  </Element>
36
38
  );
@@ -53,4 +53,5 @@ export interface TypographyProps {
53
53
  * To add onClick function
54
54
  */
55
55
  onClick?: () => void;
56
+ required?: boolean; // TO add * in the label
56
57
  }
package/src/index.ts CHANGED
@@ -23,7 +23,7 @@ import LazyLoad from './components/LazyLoad/LazyLoad';
23
23
  import ThemeProvider from './components/ThemeProvider';
24
24
  import Typography from './components/Typography';
25
25
  import useTheme from './hooks/useTheme';
26
- import Form from './components/Form';
26
+ import Forms from './components/Form/Forms';
27
27
  import InputWithDropdown from './components/InputWithDropdown';
28
28
  import RadioButton from './components/RadioButton';
29
29
  import RadioGroup from './components/RadioGroup';
@@ -50,7 +50,11 @@ import IconRadioGroup from './components/IconRadioGroup';
50
50
  import MachineInputField from './components/MachineInputField';
51
51
  import SequentialConnectingBranch from './components/SequentialConnectingBranch';
52
52
  import AttachmentButton from './components/AttachmentButton';
53
+ import { Toastify, toast } from './components/Toastify/Toastify';
54
+
53
55
  import LabelEditTextField from './components/LabelEditTextField';
56
+ import ExcelFile from './components/ExcelFile';
57
+ import ModuleChip from './components/ModulesChip/ModuleChip';
54
58
 
55
59
  // Utils imports
56
60
  import { checkEmpty } from './utils/checkEmpty/checkEmpty';
@@ -94,7 +98,7 @@ export {
94
98
  Table,
95
99
  RadioButton,
96
100
  RadioGroup,
97
- Form,
101
+ Forms,
98
102
  MiniModal,
99
103
  Container,
100
104
  Row,
@@ -122,7 +126,11 @@ export {
122
126
  SequentialConnectingBranch,
123
127
  AttachmentButton,
124
128
  LabelEditTextField,
129
+ ExcelFile,
125
130
  IconRadioGroup,
131
+ Toastify,
132
+ toast,
133
+ ModuleChip,
126
134
 
127
135
  // utils exports
128
136
  checkEmpty,
@@ -1,78 +0,0 @@
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
- }
@@ -1,86 +0,0 @@
1
- interface CellStyle {
2
- color?: string;
3
- backgroundColor?: string;
4
- bold?: boolean;
5
- italic?: boolean;
6
- name?: string;
7
- border: {
8
- top: string;
9
- bottom: string;
10
- left: string;
11
- right: string;
12
- };
13
- alignment: {
14
- horizontal?: string;
15
- vertical?: string;
16
- wrapText?: boolean;
17
- };
18
- }
19
-
20
- interface CellData {
21
- style?: CellStyle;
22
- }
23
-
24
- type ImportExcelStylesData = Array<Array<CellData>>;
25
-
26
- export default function ImportExcelStyles(data: ImportExcelStylesData | null) {
27
- const getTable = document.querySelector(
28
- '.Spreadsheet__table'
29
- ) as HTMLTableElement | null;
30
-
31
- if (!getTable) {
32
- return;
33
- }
34
-
35
- const tableRows = getTable.querySelectorAll('tr');
36
- const tableHeader = getTable.querySelectorAll('th');
37
-
38
- tableHeader.forEach((cell) => {
39
- const cellText = cell.innerText.trim();
40
- const isNumber = !isNaN(Number(cellText));
41
- cell.style.width = isNumber ? '50px' : '150px';
42
- });
43
-
44
- if (data) {
45
- data.forEach((row, rowIndex) => {
46
- const rowData = tableRows[rowIndex + 1] as
47
- | HTMLTableRowElement
48
- | undefined;
49
-
50
- if (!rowData) return;
51
-
52
- const colData = rowData.querySelectorAll('.Spreadsheet__cell');
53
-
54
- row.forEach((column, columnIndex) => {
55
- if (colData[columnIndex] && column.style) {
56
- const {
57
- color,
58
- backgroundColor,
59
- bold,
60
- italic,
61
- name,
62
- border,
63
- alignment,
64
- } = column.style;
65
- const cell = colData[columnIndex] as HTMLElement;
66
- cell.style.color = color ? `#${color}` : '';
67
- cell.style.backgroundColor = backgroundColor
68
- ? `#${backgroundColor}`
69
- : 'white';
70
- cell.style.fontWeight = bold ? 'bolder' : 'normal';
71
- cell.style.fontStyle = italic ? 'italic' : 'normal';
72
- cell.style.fontFamily = name || '';
73
- cell.style.borderLeft =
74
- border.left === 'NONE' ? '' : `2px solid ${'black'}`;
75
- cell.style.borderRight =
76
- border.right === 'NONE' ? '' : `2px solid ${'black'}`;
77
- cell.style.borderBottom =
78
- border.bottom === 'NONE' ? '' : `2px solid ${'black'}`;
79
- cell.style.borderTop =
80
- border.top === 'NONE' ? '' : `2px solid ${'black'}`;
81
- cell.style.textAlign = alignment?.horizontal || 'left';
82
- }
83
- });
84
- });
85
- }
86
- }
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import {
3
- useForm,
4
- UseFormProps,
5
- SubmitHandler,
6
- FieldValues,
7
- FieldPath,
8
- FieldErrors,
9
- } from 'react-hook-form';
10
- import './Form.scss';
11
-
12
- interface FormProps<T extends FieldValues> extends UseFormProps<T> {
13
- onSubmit: SubmitHandler<T>;
14
- children: (props: {
15
- register: (name: FieldPath<T>, options?: any) => any;
16
- errors: FieldErrors<T>;
17
- handleBlur: (field: FieldPath<T>) => void;
18
- getValues: () => T;
19
- watch: (field?: FieldPath<T>) => any;
20
- setValue: (field: FieldPath<T>, value: any, options?: object) => void;
21
- }) => React.ReactNode;
22
- }
23
-
24
- const Form = <T extends FieldValues>({
25
- onSubmit,
26
- children,
27
- ...rest
28
- }: FormProps<T>) => {
29
- const {
30
- register,
31
- handleSubmit,
32
- formState: { errors },
33
- trigger,
34
- getValues,
35
- watch,
36
- setValue
37
- } = useForm<T>(rest);
38
-
39
- const handleBlur = async (field: FieldPath<T>) => {
40
- await trigger(field);
41
- };
42
-
43
- return (
44
- <form onSubmit={handleSubmit(onSubmit)}>
45
- {children({
46
- register,
47
- errors,
48
- handleBlur,
49
- getValues,
50
- watch,
51
- setValue,
52
- })}
53
- </form>
54
- );
55
- };
56
-
57
- export default Form;