pixel-react-excel-sheet 1.0.20 → 1.0.21

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 (105) hide show
  1. package/lib/components/Chip/types.d.ts +1 -1
  2. package/lib/components/ConditionalDropdown/OptionsDropdown.d.ts +5 -0
  3. package/lib/components/ConditionalDropdown/types.d.ts +50 -4
  4. package/lib/components/LabelEditTextField/types.d.ts +1 -0
  5. package/lib/components/MachineInputField/types.d.ts +1 -0
  6. package/lib/components/MenuOption/MenuOption.d.ts +1 -1
  7. package/lib/components/MenuOption/types.d.ts +2 -1
  8. package/lib/components/MiniModal/types.d.ts +1 -0
  9. package/lib/components/NLPInput/NlpInput.d.ts +2 -2
  10. package/lib/components/NLPInput/components/NlpDropDown/NlpDropDownType.d.ts +6 -3
  11. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.d.ts +1 -1
  12. package/lib/components/NLPInput/sampleData.d.ts +104 -0
  13. package/lib/components/NLPInput/types.d.ts +80 -0
  14. package/lib/components/ProgressBar/ProgressBar.d.ts +5 -0
  15. package/lib/components/ProgressBar/index.d.ts +1 -0
  16. package/lib/components/ProgressBar/types.d.ts +12 -0
  17. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.d.ts +1 -1
  18. package/lib/components/SequentialConnectingBranch/components/Branches/types.d.ts +1 -0
  19. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.d.ts +1 -1
  20. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/types.d.ts +1 -0
  21. package/lib/components/SequentialConnectingBranch/types.d.ts +1 -1
  22. package/lib/components/TableTree/types.d.ts +1 -1
  23. package/lib/hooks/useIntersectionObserver.d.ts +9 -0
  24. package/lib/index.d.ts +80 -28
  25. package/lib/index.esm.js +707 -405
  26. package/lib/index.esm.js.map +1 -1
  27. package/lib/index.js +707 -404
  28. package/lib/index.js.map +1 -1
  29. package/lib/tsconfig.tsbuildinfo +1 -1
  30. package/lib/utils/functionCheck/functionCheck.d.ts +2 -0
  31. package/package.json +1 -1
  32. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +5 -0
  33. package/src/assets/Themes/BaseTheme.scss +18 -3
  34. package/src/assets/Themes/DarkTheme.scss +15 -2
  35. package/src/assets/icons/ai_search.svg +9 -0
  36. package/src/assets/icons/help_icon.svg +10 -0
  37. package/src/assets/icons/ios_icon.svg +11 -0
  38. package/src/assets/icons/plus_round_icon.svg +38 -0
  39. package/src/assets/icons/tick_icon.svg +2 -2
  40. package/src/assets/styles/_colors.scss +1 -1
  41. package/src/components/AttachmentButton/AttachmentButton.tsx +1 -1
  42. package/src/components/Checkbox/Checkbox.scss +3 -1
  43. package/src/components/Checkbox/Checkbox.stories.tsx +32 -77
  44. package/src/components/Checkbox/Checkbox.tsx +3 -4
  45. package/src/components/Chip/Chip.scss +15 -5
  46. package/src/components/Chip/Chip.stories.tsx +10 -1
  47. package/src/components/Chip/Chip.tsx +5 -1
  48. package/src/components/Chip/types.ts +1 -1
  49. package/src/components/ConditionalDropdown/ConditionalDropdown.scss +4 -0
  50. package/src/components/ConditionalDropdown/ConditionalDropdown.stories.tsx +67 -2
  51. package/src/components/ConditionalDropdown/ConditionalDropdown.tsx +58 -28
  52. package/src/components/ConditionalDropdown/OptionsDropdown.tsx +44 -0
  53. package/src/components/ConditionalDropdown/types.ts +61 -4
  54. package/src/components/EditTextField/EditTextField.scss +1 -1
  55. package/src/components/EditTextField/EditTextField.tsx +14 -20
  56. package/src/components/Form/Forms.tsx +0 -2
  57. package/src/components/Icon/iconList.ts +9 -0
  58. package/src/components/LabelEditTextField/LabelEditTextField.scss +1 -1
  59. package/src/components/LabelEditTextField/LabelEditTextField.tsx +29 -36
  60. package/src/components/LabelEditTextField/types.ts +1 -0
  61. package/src/components/MachineInputField/MachineInputField.scss +1 -5
  62. package/src/components/MachineInputField/MachineInputField.stories.tsx +4 -4
  63. package/src/components/MachineInputField/MachineInputField.tsx +4 -1
  64. package/src/components/MachineInputField/types.ts +1 -0
  65. package/src/components/MenuOption/MenuOption.scss +7 -7
  66. package/src/components/MenuOption/MenuOption.stories.tsx +83 -28
  67. package/src/components/MenuOption/MenuOption.tsx +9 -13
  68. package/src/components/MenuOption/types.ts +3 -2
  69. package/src/components/MiniModal/MiniModal.scss +0 -1
  70. package/src/components/MiniModal/MiniModal.stories.tsx +6 -1
  71. package/src/components/MiniModal/MiniModal.tsx +3 -1
  72. package/src/components/MiniModal/types.ts +1 -0
  73. package/src/components/MultiSelect/Dropdown.scss +3 -4
  74. package/src/components/MultiSelect/Dropdown.tsx +4 -3
  75. package/src/components/MultiSelect/MultiSelect.scss +1 -0
  76. package/src/components/MultiSelect/MultiSelect.tsx +1 -0
  77. package/src/components/NLPInput/NLPInput.scss +77 -21
  78. package/src/components/NLPInput/NlpInput.stories.tsx +43 -109
  79. package/src/components/NLPInput/NlpInput.tsx +95 -59
  80. package/src/components/NLPInput/components/NlpDropDown/NlpDropDownType.ts +6 -4
  81. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.scss +86 -35
  82. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.tsx +220 -80
  83. package/src/components/NLPInput/sampleData.ts +162 -0
  84. package/src/components/NLPInput/{type.tsx → types.tsx} +23 -11
  85. package/src/components/ProgressBar/ProgressBar.scss +46 -0
  86. package/src/components/ProgressBar/ProgressBar.stories.tsx +22 -0
  87. package/src/components/ProgressBar/ProgressBar.tsx +61 -0
  88. package/src/components/ProgressBar/index.ts +1 -0
  89. package/src/components/ProgressBar/types.ts +12 -0
  90. package/src/components/Search/Search.tsx +9 -1
  91. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.tsx +2 -0
  92. package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +8 -0
  93. package/src/components/SequentialConnectingBranch/components/Branches/types.ts +1 -0
  94. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.tsx +2 -0
  95. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/types.ts +1 -0
  96. package/src/components/SequentialConnectingBranch/types.ts +1 -1
  97. package/src/components/Table/Table.scss +1 -0
  98. package/src/components/TableTree/Components/TableBody.tsx +3 -1
  99. package/src/components/TableTree/TableTree.stories.tsx +2 -2
  100. package/src/components/TableTree/TableTree.tsx +24 -14
  101. package/src/components/TableTree/data.ts +45 -0
  102. package/src/components/TableTree/types.ts +1 -1
  103. package/src/hooks/useIntersectionObserver.tsx +56 -0
  104. package/src/index.ts +2 -0
  105. package/src/utils/functionCheck/functionCheck.ts +8 -0
@@ -26,7 +26,11 @@ const Chip = ({
26
26
  { ['ff-default-chip-style--fullText']: !!fullText }
27
27
  )}
28
28
  >
29
- {labelText && <Typography as="p">{labelText}</Typography>}
29
+ {labelText && (
30
+ <Typography as="p" fontSize={10} fontWeight="semi-bold">
31
+ {labelText}
32
+ </Typography>
33
+ )}
30
34
  </button>
31
35
  </div>
32
36
  );
@@ -10,7 +10,7 @@ export interface ChipsProps {
10
10
  /**
11
11
  * The variant of the Chip.
12
12
  */
13
- variant?: 'primary' | 'success' | 'error' | 'warning' | 'custom' | 'public' | 'partial-public' | 'private' | 'disabled';
13
+ variant?: 'primary' | 'success' | 'error' | 'warning' | 'custom' | 'public' | 'partial-public' | 'private' | 'disabled' | 'count';
14
14
 
15
15
  /**
16
16
  * The callback function to be executed when the Chip is clicked.
@@ -12,3 +12,7 @@
12
12
  gap: 8px;
13
13
  }
14
14
  }
15
+ .ff-variable-dropdown {
16
+ padding: 4px;
17
+ width: auto;
18
+ }
@@ -20,7 +20,8 @@ export default {
20
20
  },
21
21
  } as Meta<ConditionalDropdownProps>;
22
22
 
23
- // Wrapper component to handle state inside Storybook stories
23
+ type Story = StoryObj<typeof ConditionalDropdown>;
24
+
24
25
  const Template: StoryFn<ConditionalDropdownProps> = (args) => {
25
26
  const [inputValue, setInputValue] = useState<string>('');
26
27
  const [openCreateVariable, setOpenCreateVariable] = useState<boolean>(false);
@@ -74,9 +75,73 @@ Default.args = {
74
75
  onCreateVariableClick: () => alert('Create Variable clicked'),
75
76
  };
76
77
 
77
- // Customized story with pre-filled input value
78
78
  export const WithInitialValue = Template.bind({});
79
79
  WithInitialValue.args = {
80
80
  inputValue: 'Initial Text with $',
81
81
  onCreateVariableClick: () => alert('Create Variable clicked'),
82
82
  };
83
+
84
+ export const DropdownOnHash: Story = {
85
+ render: () => {
86
+ const [hashInputValue, setHashInputValue] = useState<
87
+ dynamicObject | undefined
88
+ >();
89
+ const testData = [
90
+ {
91
+ _id: '1',
92
+ name: 'File1.txt',
93
+ actualPath: '/documents/File1.txt',
94
+ searchKey: 'file1',
95
+ parentId: 'root',
96
+ },
97
+ {
98
+ _id: '2',
99
+ name: 'File2.doc',
100
+ actualPath: '/documents/File2.doc',
101
+ searchKey: 'file2',
102
+ parentId: 'root',
103
+ },
104
+ {
105
+ _id: '3',
106
+ name: 'Image1.png',
107
+ actualPath: '/images/Image1.png',
108
+ searchKey: 'image1',
109
+ parentId: 'folder1',
110
+ },
111
+ {
112
+ _id: '4',
113
+ name: 'Presentation.ppt',
114
+ actualPath: '/presentations/Presentation.ppt',
115
+ searchKey: 'presentation',
116
+ parentId: 'folder2',
117
+ },
118
+ {
119
+ _id: '5',
120
+ name: 'Spreadsheet.xlsx',
121
+ actualPath: '/spreadsheets/Spreadsheet.xlsx',
122
+ searchKey: 'spreadsheet',
123
+ parentId: 'folder3',
124
+ },
125
+ {
126
+ _id: '6',
127
+ name: 'Code.js',
128
+ actualPath: '/projects/Code.js',
129
+ searchKey: 'code',
130
+ parentId: 'folder4',
131
+ },
132
+ ];
133
+
134
+ return (
135
+ <>
136
+ <ConditionalDropdown
137
+ label="Select Path Using #"
138
+ placeholder="Enter # to search files"
139
+ isHash
140
+ dataFiles={testData}
141
+ dropdownWidth="auto"
142
+ setHashInputValue={setHashInputValue}
143
+ />
144
+ </>
145
+ );
146
+ },
147
+ };
@@ -5,15 +5,20 @@ import Input from '../Input';
5
5
  import { ConditionalDropdownProps, dynamicObject } from './types';
6
6
  import './ConditionalDropdown.scss';
7
7
  import React, { useState, useRef, useEffect } from 'react';
8
+ import OptionsDropdown from './OptionsDropdown';
8
9
 
9
10
  const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
10
11
  label = '',
12
+ hashInputValue = '',
13
+ setHashInputValue,
11
14
  variableList = [],
12
15
  placeholder = 'Enter text',
13
16
  onChange,
14
17
  onCreateVariableClick,
15
18
  value = '',
16
19
  dropdownWidth = 'inherit',
20
+ isHash = false,
21
+ dataFiles = [],
17
22
  ...props
18
23
  }) => {
19
24
  const [inputValue, setInputValue] = useState<string>('');
@@ -21,6 +26,7 @@ const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
21
26
  const [cursorPosition, setCursorPosition] = useState<number | null>(null);
22
27
  const [showCreateVariableIcon, setShowCreateVariableIcon] =
23
28
  useState<boolean>(false);
29
+ const [filteredOptions, setFilteredOptions] = useState<dynamicObject[]>([]);
24
30
  const inputRef = useRef<HTMLInputElement>(null);
25
31
 
26
32
  useEffect(() => {
@@ -31,37 +37,48 @@ const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
31
37
  }, [cursorPosition]);
32
38
 
33
39
  useEffect(() => {
34
- const newPayload = replaceVariablesWithIds(inputValue);
35
- onChange(newPayload);
40
+ if (inputValue.startsWith('#') && isHash) {
41
+ const searchQuery = inputValue.slice(1).toLowerCase();
42
+ const filtered = dataFiles.filter((file) =>
43
+ file.name.toLowerCase().includes(searchQuery)
44
+ );
45
+
46
+ setFilteredOptions(filtered);
47
+ setShowDropdown(filtered.length > 0);
48
+ } else if (!isHash) {
49
+ const newPayload = replaceVariablesWithIds(inputValue);
50
+ onChange?.(newPayload);
51
+ }
36
52
  }, [inputValue]);
37
53
 
38
54
  const replaceVariablesWithIds = (input: string): string => {
39
55
  return input.replace(/\${.*?_(.*?)}/g, (_, variableName) => {
40
- // Find the matching variable in the list by name
41
56
  const foundVariable = variableList.find(
42
57
  (varaible) => varaible.name === variableName.trim()
43
58
  );
44
- return foundVariable ? `\${${foundVariable.id}}` : `\${${variableName}}`; // Replace if found, otherwise keep as is
59
+ return foundVariable ? `\${${foundVariable.id}}` : `\${${variableName}}`;
45
60
  });
46
61
  };
47
62
 
48
63
  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
49
64
  const fieldValue = event.target.value;
50
65
  setInputValue(fieldValue);
51
-
52
- // Show dropdown only if the last character typed is `$`
53
66
  const cursorPos = inputRef.current?.selectionStart || 0;
54
67
  const isDollarTyped = fieldValue[cursorPos - 1] === '$';
55
68
 
56
- if (isDollarTyped) {
57
- setShowDropdown(true);
69
+ if (isHash) {
70
+ setShowDropdown(fieldValue.startsWith('#'));
58
71
  } else {
59
- setShowDropdown(false); // Close if it's a space or other characters
60
- }
61
- if (fieldValue?.includes('$')) {
62
- setShowCreateVariableIcon(false);
63
- } else {
64
- setShowCreateVariableIcon(true);
72
+ if (isDollarTyped) {
73
+ setShowDropdown(true);
74
+ } else {
75
+ setShowDropdown(false);
76
+ }
77
+ if (fieldValue?.includes('$')) {
78
+ setShowCreateVariableIcon(false);
79
+ } else {
80
+ setShowCreateVariableIcon(true);
81
+ }
65
82
  }
66
83
  };
67
84
 
@@ -78,14 +95,18 @@ const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
78
95
  : 'PEV'
79
96
  }_${item.name}}`;
80
97
 
81
- const newValue =
82
- inputValue.slice(0, selectionStart || 0) +
83
- dollarSyntax +
84
- inputValue.slice(selectionEnd || 0);
98
+ let newValue;
99
+ if (isHash && inputValue[0] === '#') {
100
+ newValue = item.name + inputValue.slice(selectionEnd || 1);
101
+ } else {
102
+ newValue =
103
+ inputValue.slice(0, selectionStart || 0) +
104
+ dollarSyntax +
105
+ inputValue.slice(selectionEnd || 0);
106
+ }
107
+ setHashInputValue?.(item);
85
108
  setInputValue(newValue);
86
109
  setCursorPosition((selectionStart || 0) + dollarSyntax.length);
87
-
88
- // Close the dropdown after inserting the variable
89
110
  setShowDropdown(false);
90
111
  }
91
112
  };
@@ -104,7 +125,7 @@ const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
104
125
  label={label}
105
126
  placeholder={placeholder}
106
127
  />
107
- {!checkEmpty(value) && showCreateVariableIcon && (
128
+ {!checkEmpty(value) && !isHash && showCreateVariableIcon && (
108
129
  <Icon
109
130
  onClick={onCreateVariableClick}
110
131
  name="add_variable"
@@ -115,13 +136,22 @@ const ConditionalDropdown: React.FC<ConditionalDropdownProps> = ({
115
136
  )}
116
137
  </div>
117
138
  {showDropdown && (
118
- <VariableDropdown
119
- position="relative"
120
- width={dropdownWidth}
121
- optionsList={variableList}
122
- onSelectVariable={handleDropdownClick}
123
- />
124
- )}
139
+ isHash ? (
140
+ <OptionsDropdown
141
+ position="relative"
142
+ width={dropdownWidth}
143
+ filteredOptions={filteredOptions}
144
+ onSelectVariable={handleDropdownClick}
145
+ />
146
+ ) : (
147
+ <VariableDropdown
148
+ position="relative"
149
+ width={dropdownWidth}
150
+ optionsList={variableList}
151
+ onSelectVariable={handleDropdownClick}
152
+ />
153
+ )
154
+ )}
125
155
  </div>
126
156
  );
127
157
  };
@@ -0,0 +1,44 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import { dynamicObject, OptionsDropdownProps } from './types';
3
+ import './ConditionalDropdown.scss';
4
+ import Typography from '../Typography';
5
+ import classNames from 'classnames';
6
+
7
+ const OptionsDropdown:FC<OptionsDropdownProps> = ({
8
+ onSelectVariable,
9
+ dropdownPosition,
10
+ filteredOptions= [],
11
+ position = 'relative',
12
+ width = '300px',
13
+ }): ReactNode => {
14
+ return (
15
+ <div
16
+ className={classNames('ff-variable-dropdown', position)}
17
+ style={
18
+ dropdownPosition
19
+ ? {
20
+ top: dropdownPosition.top + 30,
21
+ left: dropdownPosition.left - 30,
22
+ width,
23
+ }
24
+ : { width }
25
+ }
26
+ >
27
+ {filteredOptions?.map((option: dynamicObject): ReactNode => {
28
+ return (
29
+ <div
30
+ className="ff-variable-option"
31
+ onClick={() => onSelectVariable(option)}
32
+ key={option?.id}
33
+ >
34
+ <Typography as="span" fontSize={14}>
35
+ {option?.name}
36
+ </Typography>
37
+ </div>
38
+ );
39
+ })}
40
+ </div>
41
+ );
42
+ };
43
+
44
+ export default OptionsDropdown;
@@ -1,12 +1,33 @@
1
+ import { dropdownPositionType } from "../Editor/types";
2
+
1
3
  export type dynamicObject = {
2
4
  [key: string]: any;
3
5
  };
4
6
 
7
+ export type TestDataObject = {
8
+ _id: string;
9
+ name: string;
10
+ actualPath: string;
11
+ searchKey: string;
12
+ parentId: string;
13
+ }
14
+
5
15
  export interface ConditionalDropdownProps {
6
16
  /**
7
17
  * Label for the field
8
18
  */
9
19
  label?: string;
20
+
21
+ /**
22
+ * Value in the input should stored in this state
23
+ */
24
+ hashInputValue?: TestDataObject | dynamicObject;
25
+
26
+ /**
27
+ * Function storing and updating the inputValue state
28
+ */
29
+ setHashInputValue?:(value: dynamicObject | undefined) => void;
30
+
10
31
  /**
11
32
  * List of variables
12
33
  */
@@ -20,7 +41,7 @@ export interface ConditionalDropdownProps {
20
41
  * @param value
21
42
  * @returns
22
43
  */
23
- onChange: (value: string) => void;
44
+ onChange?: (value: string) => void;
24
45
  /**
25
46
  * Function to handle create variable icon click
26
47
  */
@@ -32,11 +53,11 @@ export interface ConditionalDropdownProps {
32
53
  /**
33
54
  * Name | name of the input field
34
55
  */
35
- name: string;
56
+ name?: string;
36
57
  /**
37
58
  * value | input field value
38
59
  */
39
- value: string;
60
+ value?: string;
40
61
  /**
41
62
  * variants to set color/style of the input field
42
63
  */
@@ -44,7 +65,7 @@ export interface ConditionalDropdownProps {
44
65
  /**
45
66
  * type to set color/style of the input field
46
67
  */
47
- type: 'text' | 'password' | 'number' | 'email' | 'url' | 'time';
68
+ type?: 'text' | 'password' | 'number' | 'email' | 'url' | 'time';
48
69
  /**
49
70
  * error | If true, error message will be displayed
50
71
  */
@@ -100,4 +121,40 @@ export interface ConditionalDropdownProps {
100
121
  * isLabelRequired for the input field without label,showing placeholder
101
122
  */
102
123
  isLabelRequired?: boolean;
124
+
125
+ /**
126
+ * If true, dropdown opens when '#' is entered at the first position.
127
+ */
128
+ isHash?: boolean;
129
+ /**
130
+ * Options for the dropdown when `isHash` is true.
131
+ */
132
+ dataFiles?: dynamicObject[];
103
133
  }
134
+
135
+ export interface OptionsDropdownProps {
136
+ /**
137
+ * Position whether absoloute or relative
138
+ */
139
+ position: 'absolute' | 'relative';
140
+
141
+ /**
142
+ * Dropdown width
143
+ */
144
+ width: string;
145
+
146
+ /**
147
+ * chars entered to search in Input :
148
+ */
149
+ filteredOptions?: dynamicObject[];
150
+
151
+ /**
152
+ * Function to handle click on variable
153
+ */
154
+ onSelectVariable: (variable: object) => void;
155
+
156
+ /**
157
+ * Dropdown postion used for dropdown placement
158
+ */
159
+ dropdownPosition?: dropdownPositionType;
160
+ }
@@ -9,7 +9,7 @@
9
9
  .display-text-container {
10
10
  display: flex;
11
11
  align-items: center;
12
- gap: 8px;
12
+ gap: 5px;
13
13
 
14
14
  .edit-button {
15
15
  padding: 4px 8px;
@@ -6,6 +6,7 @@ import HighlightText from '../HighlightText';
6
6
  import Icon from '../Icon';
7
7
  import Tooltip from '../Tooltip';
8
8
  import { capitalize } from '../../utils/capitalize/capitalize';
9
+ import Input from '../Input/Input';
9
10
 
10
11
  const getErrorMessage = (
11
12
  inputValue: string,
@@ -38,8 +39,8 @@ const EditTextField: FC<LabelEditTextFieldTypes> = ({
38
39
  cancelIcon,
39
40
  editIcon,
40
41
  dropdownData = [],
41
- width = '300px',
42
- height = '22px',
42
+ // width = '',
43
+ // height = '',
43
44
  isOpen = false,
44
45
  confirmAction,
45
46
  onClick,
@@ -52,6 +53,7 @@ const EditTextField: FC<LabelEditTextFieldTypes> = ({
52
53
  );
53
54
  const [showError, setShowError] = useState('');
54
55
  const [isTextFieldModified, setIsTextFieldModified] = useState(false);
56
+ const isThrowingError = showError && isEditing ? true : false;
55
57
  const containerRef = useRef<HTMLDivElement | null>(null);
56
58
  const cancelRef = useRef<HTMLDivElement | null>(null);
57
59
 
@@ -96,27 +98,19 @@ const EditTextField: FC<LabelEditTextFieldTypes> = ({
96
98
  {isEditing ? (
97
99
  <div className="ff-label-text-field">
98
100
  <div className="ff-label-text-field-without-dropdown">
99
- <input
100
- type="text"
101
+ <Input
102
+ name="input"
103
+ label={label ? label : ''}
104
+ disabled={false}
105
+ error={isThrowingError}
106
+ placeholder="Enter your name"
101
107
  value={inputValue}
102
108
  onChange={handleTextFieldChange}
103
- className={`ff-text-field ${
104
- showError && isEditing
105
- ? 'ff-text-field-error-border'
106
- : 'ff-text-field-border'
107
- } ${isTextFieldModified ? 'modified' : ''}`}
108
- placeholder=" "
109
- style={{ width, height }}
109
+ className={`
110
+
111
+ ${isTextFieldModified ? 'modified' : ''}`}
112
+ type="text"
110
113
  />
111
- <label
112
- className={`ff-textfield-label ${
113
- showError && isEditing
114
- ? 'ff-text-field-error-text'
115
- : 'ff-text-field-text'
116
- }`}
117
- >
118
- {label}
119
- </label>
120
114
  </div>
121
115
  <div className="ff-icon-container">
122
116
  {confirmIcon && (
@@ -1,6 +1,5 @@
1
1
  import React, { forwardRef, useImperativeHandle } from 'react';
2
2
  import Form from './Form';
3
-
4
3
  interface FormProps<T extends Form.FieldValues> extends Form.UseFormProps<T> {
5
4
  id?: string;
6
5
  onSubmit: Form.SubmitHandler<T>;
@@ -16,7 +15,6 @@ const Forms = <T extends Form.FieldValues>(
16
15
  ref: React.Ref<any>
17
16
  ) => {
18
17
  const methods = Form.useForm<T>(rest);
19
-
20
18
  const { handleSubmit } = methods;
21
19
  const extendedMethods = {
22
20
  ...methods,
@@ -117,6 +117,8 @@ import HideAccessIcon from '../../assets/icons/hide_access_icon.svg?react';
117
117
  import AddLocator from '../../assets/icons/add_locator.svg?react';
118
118
  import PlusUserIcon from '../../assets/icons/plus_user_icon.svg?react';
119
119
 
120
+ import IosIcon from '../../assets/icons/ios_icon.svg?react';
121
+ import HelpIcon from '../../assets/icons/help_icon.svg?react';
120
122
  import SwitchLicenseIcon from '../../assets/icons/switch_license_icon.svg?react';
121
123
  import FireflinkLogo from '../../assets/icons/fireflink_logo.svg?react';
122
124
  import WSWBDeleteIcon from '../../assets/icons/wswb_delete_icon.svg?react';
@@ -142,6 +144,7 @@ import NotificationIcon from '../../assets/icons/notification_icon.svg?react';
142
144
  import NLPHelpIcon from '../../assets/icons/nlp_help_icon.svg?react';
143
145
  import UpdateIcon from '../../assets/icons/update_icon.svg?react';
144
146
  import AddFile from '../../assets/icons/add_file.svg?react';
147
+ import PlusRoundIcon from '../../assets/icons/plus_round_icon.svg?react';
145
148
  import EyeClosed from '../../assets/icons/eye_closed.svg?react';
146
149
  import AttachmentIcon from '../../assets/icons/attachment_icon.svg?react';
147
150
  import AuthorizationIcon from '../../assets/icons/authorization_icon.svg?react';
@@ -192,6 +195,8 @@ import SystemWarning from '../../assets/icons/system_warning.svg?react';
192
195
  import UserPasswordLock from '../../assets/icons/user_password_lock.svg?react';
193
196
  import UserWarning from '../../assets/icons/user_warning.svg?react';
194
197
  import UserWithSystem from '../../assets/icons/user_with_system.svg?react';
198
+ import AiSearch from '../../assets/icons/ai_search.svg?react';
199
+
195
200
  import Import from '../../assets/icons/import.svg?react';
196
201
  import dashboardWebIcon from '../../assets/icons/dashboard_web_icon.svg?react';
197
202
  import dashboardMobileIcon from '../../assets/icons/dashboard_mobile_icon.svg?react';
@@ -352,6 +357,8 @@ Components['android_icon'] = AndroidIcon;
352
357
  Components['plus_user_icon'] = PlusUserIcon;
353
358
  Components['label_plus'] = LabelPlusIcon;
354
359
  Components['manual_locator'] = ManualLocator;
360
+ Components['ios_icon'] = IosIcon;
361
+ Components['help_icon'] = HelpIcon;
355
362
  Components['select_license'] = SwitchLicenseIcon;
356
363
  Components['fireflink-logo'] = FireflinkLogo;
357
364
  Components['wswb_delete_icon'] = WSWBDeleteIcon;
@@ -383,6 +390,7 @@ Components['notification_icon'] = NotificationIcon;
383
390
  Components['nlp_help_icon'] = NLPHelpIcon;
384
391
  Components['update_icon'] = UpdateIcon;
385
392
  Components['add_file'] = AddFile;
393
+ Components['plus_round_icon'] = PlusRoundIcon;
386
394
  Components['clone_icon'] = CloneIcon;
387
395
  Components['move_icon'] = MoveIcon;
388
396
  Components['jira'] = Jira;
@@ -395,6 +403,7 @@ Components['hide_access_icon'] = HideAccessIcon;
395
403
  Components['eye_closed'] = EyeClosed;
396
404
  Components['attachment_icon'] = AttachmentIcon;
397
405
  Components['authorization_icon'] = AuthorizationIcon;
406
+ Components['ai_search'] = AiSearch;
398
407
 
399
408
  Components['fireflink_platform_logo'] = FireflinkPlatform;
400
409
  Components['fireflink_finder_logo'] = FireflinkFinder;
@@ -7,7 +7,7 @@
7
7
  width: 100%;
8
8
  .ff-label-text-field {
9
9
  display: flex;
10
- gap: 10px;
10
+ gap: 5px;
11
11
  }
12
12
  .ff-label-text-field-with-dropdown,
13
13
  .ff-label-text-field-without-dropdown {