tp-react-elements-dev 1.12.33 → 1.12.35

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.
@@ -1,243 +1,243 @@
1
- $flaticon_hvc-font: 'flaticon_hvc';
2
-
3
- @font-face {
4
- font-family: $flaticon_hvc-font;
5
- src:
6
- url('./flaticon_hvc.woff2?09127989b5c99a4f290cd7bb7c4bad12') format('woff2'),
7
- url('./flaticon_hvc.woff?09127989b5c99a4f290cd7bb7c4bad12') format('woff'),
8
- url('./flaticon_hvc.eot?09127989b5c99a4f290cd7bb7c4bad12#iefix') format('embedded-opentype'),
9
- url('./flaticon_hvc.ttf?09127989b5c99a4f290cd7bb7c4bad12') format('truetype'),
10
- url('./flaticon_hvc.svg?09127989b5c99a4f290cd7bb7c4bad12#flaticon_hvc') format('svg');
11
- }
12
-
13
- i[class^='flaticon-']:before,
14
- i[class*=' flaticon-']:before {
15
- font-family: flaticon_hvc !important;
16
- font-style: normal;
17
- font-weight: normal !important;
18
- font-variant: normal;
19
- text-transform: none;
20
- line-height: 1;
21
- -webkit-font-smoothing: antialiased;
22
- -moz-osx-font-smoothing: grayscale;
23
- }
24
-
25
- $flaticon_hvc-map: (
26
- 'setting': '\f101',
27
- 'refresh': '\f102',
28
- 'setting-1': '\f103',
29
- 'check': '\f104',
30
- 'bank': '\f105',
31
- 'user': '\f106',
32
- 'user-1': '\f107',
33
- 'info-sign': '\f108',
34
- 'clipboard': '\f109',
35
- 'right-arrow': '\f10a',
36
- 'home': '\f10b',
37
- 'search': '\f10c',
38
- 'eye': '\f10d',
39
- 'edit': '\f10e',
40
- 'delete': '\f10f',
41
- 'add-1': '\f110',
42
- 'plus-1': '\f111',
43
- 'compose': '\f112',
44
- 'trash': '\f113',
45
- 'download': '\f114',
46
- 'downloading': '\f115',
47
- 'upload': '\f116',
48
- 'right-arrow-1': '\f117',
49
- 'user-2': '\f118',
50
- 'man-in-suit-and-tie': '\f119',
51
- 'cancel': '\f11a',
52
- 'check-mark': '\f11b',
53
- 'bars': '\f11c',
54
- 'copy': '\f11d',
55
- 'printer': '\f11e',
56
- 'file': '\f11f',
57
- 'file-1': '\f120',
58
- 'file-2': '\f121',
59
- 'eye-1': '\f122',
60
- 'upload-1': '\f123',
61
- 'production': '\f124',
62
- 'cube': '\f125',
63
- 'rotation': '\f126',
64
- 'rotation-1': '\f127',
65
- 'spinning': '\f128',
66
- 'spinning-1': '\f129',
67
- 'ready-stock': '\f12a',
68
- 'ready-stock-1': '\f12b',
69
- 'visible': '\f12c',
70
- 'printing': '\f12d',
71
- 'like': '\f12e',
72
- 'thumb-up': '\f12f',
73
- 'thumbs-up': '\f130',
74
- 'thumb-down': '\f131',
75
- 'dislike': '\f132',
76
- 'thumb-down-1': '\f133',
77
- 'pointing-right': '\f134',
78
- 'point': '\f135',
79
- 'history': '\f136',
80
- );
81
-
82
- .flaticon-setting:before {
83
- content: map-get($flaticon_hvc-map, 'setting');
84
- }
85
- .flaticon-refresh:before {
86
- content: map-get($flaticon_hvc-map, 'refresh');
87
- }
88
- .flaticon-setting-1:before {
89
- content: map-get($flaticon_hvc-map, 'setting-1');
90
- }
91
- .flaticon-check:before {
92
- content: map-get($flaticon_hvc-map, 'check');
93
- }
94
- .flaticon-bank:before {
95
- content: map-get($flaticon_hvc-map, 'bank');
96
- }
97
- .flaticon-user:before {
98
- content: map-get($flaticon_hvc-map, 'user');
99
- }
100
- .flaticon-user-1:before {
101
- content: map-get($flaticon_hvc-map, 'user-1');
102
- }
103
- .flaticon-info-sign:before {
104
- content: map-get($flaticon_hvc-map, 'info-sign');
105
- }
106
- .flaticon-clipboard:before {
107
- content: map-get($flaticon_hvc-map, 'clipboard');
108
- }
109
- .flaticon-right-arrow:before {
110
- content: map-get($flaticon_hvc-map, 'right-arrow');
111
- }
112
- .flaticon-home:before {
113
- content: map-get($flaticon_hvc-map, 'home');
114
- }
115
- .flaticon-search:before {
116
- content: map-get($flaticon_hvc-map, 'search');
117
- }
118
- .flaticon-eye:before {
119
- content: map-get($flaticon_hvc-map, 'eye');
120
- }
121
- .flaticon-edit:before {
122
- content: map-get($flaticon_hvc-map, 'edit');
123
- }
124
- .flaticon-delete:before {
125
- content: map-get($flaticon_hvc-map, 'delete');
126
- }
127
- .flaticon-add-1:before {
128
- content: map-get($flaticon_hvc-map, 'add-1');
129
- }
130
- .flaticon-plus-1:before {
131
- content: map-get($flaticon_hvc-map, 'plus-1');
132
- }
133
- .flaticon-compose:before {
134
- content: map-get($flaticon_hvc-map, 'compose');
135
- }
136
- .flaticon-trash:before {
137
- content: map-get($flaticon_hvc-map, 'trash');
138
- }
139
- .flaticon-download:before {
140
- content: map-get($flaticon_hvc-map, 'download');
141
- }
142
- .flaticon-downloading:before {
143
- content: map-get($flaticon_hvc-map, 'downloading');
144
- }
145
- .flaticon-upload:before {
146
- content: map-get($flaticon_hvc-map, 'upload');
147
- }
148
- .flaticon-right-arrow-1:before {
149
- content: map-get($flaticon_hvc-map, 'right-arrow-1');
150
- }
151
- .flaticon-user-2:before {
152
- content: map-get($flaticon_hvc-map, 'user-2');
153
- }
154
- .flaticon-man-in-suit-and-tie:before {
155
- content: map-get($flaticon_hvc-map, 'man-in-suit-and-tie');
156
- }
157
- .flaticon-cancel:before {
158
- content: map-get($flaticon_hvc-map, 'cancel');
159
- }
160
- .flaticon-check-mark:before {
161
- content: map-get($flaticon_hvc-map, 'check-mark');
162
- }
163
- .flaticon-bars:before {
164
- content: map-get($flaticon_hvc-map, 'bars');
165
- }
166
- .flaticon-copy:before {
167
- content: map-get($flaticon_hvc-map, 'copy');
168
- }
169
- .flaticon-printer:before {
170
- content: map-get($flaticon_hvc-map, 'printer');
171
- }
172
- .flaticon-file:before {
173
- content: map-get($flaticon_hvc-map, 'file');
174
- }
175
- .flaticon-file-1:before {
176
- content: map-get($flaticon_hvc-map, 'file-1');
177
- }
178
- .flaticon-file-2:before {
179
- content: map-get($flaticon_hvc-map, 'file-2');
180
- }
181
- .flaticon-eye-1:before {
182
- content: map-get($flaticon_hvc-map, 'eye-1');
183
- }
184
- .flaticon-upload-1:before {
185
- content: map-get($flaticon_hvc-map, 'upload-1');
186
- }
187
- .flaticon-production:before {
188
- content: map-get($flaticon_hvc-map, 'production');
189
- }
190
- .flaticon-cube:before {
191
- content: map-get($flaticon_hvc-map, 'cube');
192
- }
193
- .flaticon-rotation:before {
194
- content: map-get($flaticon_hvc-map, 'rotation');
195
- }
196
- .flaticon-rotation-1:before {
197
- content: map-get($flaticon_hvc-map, 'rotation-1');
198
- }
199
- .flaticon-spinning:before {
200
- content: map-get($flaticon_hvc-map, 'spinning');
201
- }
202
- .flaticon-spinning-1:before {
203
- content: map-get($flaticon_hvc-map, 'spinning-1');
204
- }
205
- .flaticon-ready-stock:before {
206
- content: map-get($flaticon_hvc-map, 'ready-stock');
207
- }
208
- .flaticon-ready-stock-1:before {
209
- content: map-get($flaticon_hvc-map, 'ready-stock-1');
210
- }
211
- .flaticon-visible:before {
212
- content: map-get($flaticon_hvc-map, 'visible');
213
- }
214
- .flaticon-printing:before {
215
- content: map-get($flaticon_hvc-map, 'printing');
216
- }
217
- .flaticon-like:before {
218
- content: map-get($flaticon_hvc-map, 'like');
219
- }
220
- .flaticon-thumb-up:before {
221
- content: map-get($flaticon_hvc-map, 'thumb-up');
222
- }
223
- .flaticon-thumbs-up:before {
224
- content: map-get($flaticon_hvc-map, 'thumbs-up');
225
- }
226
- .flaticon-thumb-down:before {
227
- content: map-get($flaticon_hvc-map, 'thumb-down');
228
- }
229
- .flaticon-dislike:before {
230
- content: map-get($flaticon_hvc-map, 'dislike');
231
- }
232
- .flaticon-thumb-down-1:before {
233
- content: map-get($flaticon_hvc-map, 'thumb-down-1');
234
- }
235
- .flaticon-pointing-right:before {
236
- content: map-get($flaticon_hvc-map, 'pointing-right');
237
- }
238
- .flaticon-point:before {
239
- content: map-get($flaticon_hvc-map, 'point');
240
- }
241
- .flaticon-history:before {
242
- content: map-get($flaticon_hvc-map, 'history');
243
- }
1
+ $flaticon_hvc-font: 'flaticon_hvc';
2
+
3
+ @font-face {
4
+ font-family: $flaticon_hvc-font;
5
+ src:
6
+ url('./flaticon_hvc.woff2?09127989b5c99a4f290cd7bb7c4bad12') format('woff2'),
7
+ url('./flaticon_hvc.woff?09127989b5c99a4f290cd7bb7c4bad12') format('woff'),
8
+ url('./flaticon_hvc.eot?09127989b5c99a4f290cd7bb7c4bad12#iefix') format('embedded-opentype'),
9
+ url('./flaticon_hvc.ttf?09127989b5c99a4f290cd7bb7c4bad12') format('truetype'),
10
+ url('./flaticon_hvc.svg?09127989b5c99a4f290cd7bb7c4bad12#flaticon_hvc') format('svg');
11
+ }
12
+
13
+ i[class^='flaticon-']:before,
14
+ i[class*=' flaticon-']:before {
15
+ font-family: flaticon_hvc !important;
16
+ font-style: normal;
17
+ font-weight: normal !important;
18
+ font-variant: normal;
19
+ text-transform: none;
20
+ line-height: 1;
21
+ -webkit-font-smoothing: antialiased;
22
+ -moz-osx-font-smoothing: grayscale;
23
+ }
24
+
25
+ $flaticon_hvc-map: (
26
+ 'setting': '\f101',
27
+ 'refresh': '\f102',
28
+ 'setting-1': '\f103',
29
+ 'check': '\f104',
30
+ 'bank': '\f105',
31
+ 'user': '\f106',
32
+ 'user-1': '\f107',
33
+ 'info-sign': '\f108',
34
+ 'clipboard': '\f109',
35
+ 'right-arrow': '\f10a',
36
+ 'home': '\f10b',
37
+ 'search': '\f10c',
38
+ 'eye': '\f10d',
39
+ 'edit': '\f10e',
40
+ 'delete': '\f10f',
41
+ 'add-1': '\f110',
42
+ 'plus-1': '\f111',
43
+ 'compose': '\f112',
44
+ 'trash': '\f113',
45
+ 'download': '\f114',
46
+ 'downloading': '\f115',
47
+ 'upload': '\f116',
48
+ 'right-arrow-1': '\f117',
49
+ 'user-2': '\f118',
50
+ 'man-in-suit-and-tie': '\f119',
51
+ 'cancel': '\f11a',
52
+ 'check-mark': '\f11b',
53
+ 'bars': '\f11c',
54
+ 'copy': '\f11d',
55
+ 'printer': '\f11e',
56
+ 'file': '\f11f',
57
+ 'file-1': '\f120',
58
+ 'file-2': '\f121',
59
+ 'eye-1': '\f122',
60
+ 'upload-1': '\f123',
61
+ 'production': '\f124',
62
+ 'cube': '\f125',
63
+ 'rotation': '\f126',
64
+ 'rotation-1': '\f127',
65
+ 'spinning': '\f128',
66
+ 'spinning-1': '\f129',
67
+ 'ready-stock': '\f12a',
68
+ 'ready-stock-1': '\f12b',
69
+ 'visible': '\f12c',
70
+ 'printing': '\f12d',
71
+ 'like': '\f12e',
72
+ 'thumb-up': '\f12f',
73
+ 'thumbs-up': '\f130',
74
+ 'thumb-down': '\f131',
75
+ 'dislike': '\f132',
76
+ 'thumb-down-1': '\f133',
77
+ 'pointing-right': '\f134',
78
+ 'point': '\f135',
79
+ 'history': '\f136',
80
+ );
81
+
82
+ .flaticon-setting:before {
83
+ content: map-get($flaticon_hvc-map, 'setting');
84
+ }
85
+ .flaticon-refresh:before {
86
+ content: map-get($flaticon_hvc-map, 'refresh');
87
+ }
88
+ .flaticon-setting-1:before {
89
+ content: map-get($flaticon_hvc-map, 'setting-1');
90
+ }
91
+ .flaticon-check:before {
92
+ content: map-get($flaticon_hvc-map, 'check');
93
+ }
94
+ .flaticon-bank:before {
95
+ content: map-get($flaticon_hvc-map, 'bank');
96
+ }
97
+ .flaticon-user:before {
98
+ content: map-get($flaticon_hvc-map, 'user');
99
+ }
100
+ .flaticon-user-1:before {
101
+ content: map-get($flaticon_hvc-map, 'user-1');
102
+ }
103
+ .flaticon-info-sign:before {
104
+ content: map-get($flaticon_hvc-map, 'info-sign');
105
+ }
106
+ .flaticon-clipboard:before {
107
+ content: map-get($flaticon_hvc-map, 'clipboard');
108
+ }
109
+ .flaticon-right-arrow:before {
110
+ content: map-get($flaticon_hvc-map, 'right-arrow');
111
+ }
112
+ .flaticon-home:before {
113
+ content: map-get($flaticon_hvc-map, 'home');
114
+ }
115
+ .flaticon-search:before {
116
+ content: map-get($flaticon_hvc-map, 'search');
117
+ }
118
+ .flaticon-eye:before {
119
+ content: map-get($flaticon_hvc-map, 'eye');
120
+ }
121
+ .flaticon-edit:before {
122
+ content: map-get($flaticon_hvc-map, 'edit');
123
+ }
124
+ .flaticon-delete:before {
125
+ content: map-get($flaticon_hvc-map, 'delete');
126
+ }
127
+ .flaticon-add-1:before {
128
+ content: map-get($flaticon_hvc-map, 'add-1');
129
+ }
130
+ .flaticon-plus-1:before {
131
+ content: map-get($flaticon_hvc-map, 'plus-1');
132
+ }
133
+ .flaticon-compose:before {
134
+ content: map-get($flaticon_hvc-map, 'compose');
135
+ }
136
+ .flaticon-trash:before {
137
+ content: map-get($flaticon_hvc-map, 'trash');
138
+ }
139
+ .flaticon-download:before {
140
+ content: map-get($flaticon_hvc-map, 'download');
141
+ }
142
+ .flaticon-downloading:before {
143
+ content: map-get($flaticon_hvc-map, 'downloading');
144
+ }
145
+ .flaticon-upload:before {
146
+ content: map-get($flaticon_hvc-map, 'upload');
147
+ }
148
+ .flaticon-right-arrow-1:before {
149
+ content: map-get($flaticon_hvc-map, 'right-arrow-1');
150
+ }
151
+ .flaticon-user-2:before {
152
+ content: map-get($flaticon_hvc-map, 'user-2');
153
+ }
154
+ .flaticon-man-in-suit-and-tie:before {
155
+ content: map-get($flaticon_hvc-map, 'man-in-suit-and-tie');
156
+ }
157
+ .flaticon-cancel:before {
158
+ content: map-get($flaticon_hvc-map, 'cancel');
159
+ }
160
+ .flaticon-check-mark:before {
161
+ content: map-get($flaticon_hvc-map, 'check-mark');
162
+ }
163
+ .flaticon-bars:before {
164
+ content: map-get($flaticon_hvc-map, 'bars');
165
+ }
166
+ .flaticon-copy:before {
167
+ content: map-get($flaticon_hvc-map, 'copy');
168
+ }
169
+ .flaticon-printer:before {
170
+ content: map-get($flaticon_hvc-map, 'printer');
171
+ }
172
+ .flaticon-file:before {
173
+ content: map-get($flaticon_hvc-map, 'file');
174
+ }
175
+ .flaticon-file-1:before {
176
+ content: map-get($flaticon_hvc-map, 'file-1');
177
+ }
178
+ .flaticon-file-2:before {
179
+ content: map-get($flaticon_hvc-map, 'file-2');
180
+ }
181
+ .flaticon-eye-1:before {
182
+ content: map-get($flaticon_hvc-map, 'eye-1');
183
+ }
184
+ .flaticon-upload-1:before {
185
+ content: map-get($flaticon_hvc-map, 'upload-1');
186
+ }
187
+ .flaticon-production:before {
188
+ content: map-get($flaticon_hvc-map, 'production');
189
+ }
190
+ .flaticon-cube:before {
191
+ content: map-get($flaticon_hvc-map, 'cube');
192
+ }
193
+ .flaticon-rotation:before {
194
+ content: map-get($flaticon_hvc-map, 'rotation');
195
+ }
196
+ .flaticon-rotation-1:before {
197
+ content: map-get($flaticon_hvc-map, 'rotation-1');
198
+ }
199
+ .flaticon-spinning:before {
200
+ content: map-get($flaticon_hvc-map, 'spinning');
201
+ }
202
+ .flaticon-spinning-1:before {
203
+ content: map-get($flaticon_hvc-map, 'spinning-1');
204
+ }
205
+ .flaticon-ready-stock:before {
206
+ content: map-get($flaticon_hvc-map, 'ready-stock');
207
+ }
208
+ .flaticon-ready-stock-1:before {
209
+ content: map-get($flaticon_hvc-map, 'ready-stock-1');
210
+ }
211
+ .flaticon-visible:before {
212
+ content: map-get($flaticon_hvc-map, 'visible');
213
+ }
214
+ .flaticon-printing:before {
215
+ content: map-get($flaticon_hvc-map, 'printing');
216
+ }
217
+ .flaticon-like:before {
218
+ content: map-get($flaticon_hvc-map, 'like');
219
+ }
220
+ .flaticon-thumb-up:before {
221
+ content: map-get($flaticon_hvc-map, 'thumb-up');
222
+ }
223
+ .flaticon-thumbs-up:before {
224
+ content: map-get($flaticon_hvc-map, 'thumbs-up');
225
+ }
226
+ .flaticon-thumb-down:before {
227
+ content: map-get($flaticon_hvc-map, 'thumb-down');
228
+ }
229
+ .flaticon-dislike:before {
230
+ content: map-get($flaticon_hvc-map, 'dislike');
231
+ }
232
+ .flaticon-thumb-down-1:before {
233
+ content: map-get($flaticon_hvc-map, 'thumb-down-1');
234
+ }
235
+ .flaticon-pointing-right:before {
236
+ content: map-get($flaticon_hvc-map, 'pointing-right');
237
+ }
238
+ .flaticon-point:before {
239
+ content: map-get($flaticon_hvc-map, 'point');
240
+ }
241
+ .flaticon-history:before {
242
+ content: map-get($flaticon_hvc-map, 'history');
243
+ }
@@ -12,6 +12,7 @@ import SingleSelect from '../FormComponents/Select/SingleSelect.esm.js';
12
12
  import MultiSelectAutocomplete from '../FormComponents/Select/MultiSelectAutocomplete.esm.js';
13
13
  import SingleSelectNonAutoComplete from '../FormComponents/Select/SingleSelectNonAutoComplete.esm.js';
14
14
  import FormActiveSwitch from './FormActiveSwitch.esm.js';
15
+ import FormTextFieldWithSelect from '../FormComponents/FormTextFieldWithSelect/FormTextFieldWithSelect.esm.js';
15
16
 
16
17
  // Lazy-loaded heavy components
17
18
  const RichTextEditorWrapper = lazy(() => import('../RichTextEditor/index.esm.js').then((m) => ({ default: m.RichTextEditorWrapper })));
@@ -78,6 +79,8 @@ const RenderForm = (props) => {
78
79
  case 'select-v2':
79
80
  case 'basic-select': // new alias
80
81
  return jsx(SingleSelectNonAutoComplete, { props: props, variant: variant });
82
+ case 'input-select':
83
+ return jsx(FormTextFieldWithSelect, { props: props, variant: variant });
81
84
  // Numeric inputs (integer, pincode, phone)
82
85
  case 'number':
83
86
  case 'pincode':
@@ -11,6 +11,9 @@ import NavigateBeforeIcon from '@mui/icons-material/NavigateBefore';
11
11
  import NavigateNextIcon from '@mui/icons-material/NavigateNext';
12
12
  import DeleteIcon from '@mui/icons-material/Delete';
13
13
  import UploadFileIcon from '@mui/icons-material/UploadFile';
14
+ import PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';
15
+ import TableChartIcon from '@mui/icons-material/TableChart';
16
+ import DescriptionIcon from '@mui/icons-material/Description';
14
17
 
15
18
  const MultiFileWithPreview = ({ props, variant, }) => {
16
19
  const inputRef = useRef(null);
@@ -134,6 +137,19 @@ const MultiFileWithPreview = ({ props, variant, }) => {
134
137
  : file.name.split('.').pop()?.toLowerCase();
135
138
  return ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(ext || '');
136
139
  };
140
+ const isPdfFile = (file) => {
141
+ const name = typeof file === 'string' ? file : file.name;
142
+ return name.toLowerCase().endsWith('.pdf');
143
+ };
144
+ const isExcelFile = (file) => {
145
+ const name = typeof file === 'string' ? file : file.name;
146
+ return /\.xlsx?$/.test(name.toLowerCase());
147
+ };
148
+ const isWordFile = (file) => {
149
+ const name = typeof file === 'string' ? file : file.name;
150
+ return /\.(doc|docx)$/.test(name.toLowerCase());
151
+ };
152
+ const getObjectUrl = (file) => typeof file === 'string' ? file : URL.createObjectURL(file);
137
153
  return (jsxs(Fragment, { children: [jsxs(Box, { paddingLeft: "4px", sx: { ...props.item.sx, position: 'relative' }, children: [props.item?.label && (jsx(Box, { sx: { fontSize: '10px' }, children: renderLabel(variant, props, true) })), jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [jsxs(Button, { variant: "outlined", component: "label", startIcon: jsx(UploadFileIcon, {}), sx: { flex: 1, textTransform: 'none' }, color: isError ? 'error' : 'primary', children: [selectedFiles.length > 0
138
154
  ? isSingleFileMode
139
155
  ? '1 file selected'
@@ -148,7 +164,7 @@ const MultiFileWithPreview = ({ props, variant, }) => {
148
164
  ? '.jpg,.jpeg,.png'
149
165
  : props.item.fileType === 'all'
150
166
  ? '.pdf,.jpg,.jpeg,.png,.xls,.xlsx,.doc,.docx'
151
- : '', ref: inputRef, onChange: handleFileChange })] }), props.item.showFileCarousel && selectedFiles.length > 0 && (jsx(IconButton, { onClick: handlePreviewClick, color: "primary", size: "small", sx: { mt: 0.5 }, children: jsx(VisibilityIcon, {}) }))] })] }), jsx(FormBottomField, { ...props }), jsx(Modal, { open: open, onClose: handleClose, children: jsxs(Box, { sx: {
167
+ : '', ref: inputRef, onChange: handleFileChange })] }), jsx(Box, { sx: { width: 36, display: 'flex', justifyContent: 'center' }, children: props.item.showFileCarousel && selectedFiles.length > 0 ? (jsx(IconButton, { onClick: handlePreviewClick, color: "primary", size: "small", "aria-label": "preview selected files", children: jsx(VisibilityIcon, {}) })) : null })] })] }), jsx(FormBottomField, { ...props }), jsx(Modal, { open: open, onClose: handleClose, children: jsxs(Box, { sx: {
152
168
  position: 'absolute',
153
169
  top: '50%',
154
170
  left: '50%',
@@ -158,30 +174,38 @@ const MultiFileWithPreview = ({ props, variant, }) => {
158
174
  borderRadius: 2,
159
175
  boxShadow: 24,
160
176
  p: 3,
161
- }, children: [jsxs(Box, { display: "flex", justifyContent: "space-between", alignItems: "center", children: [jsx(Typography, { variant: "h6", children: "File Preview" }), jsxs(Box, { display: "flex", gap: 1, children: [jsx(IconButton, { onClick: () => handleDeleteFile(currentFileIndex), color: "error", title: "Delete current file", children: jsx(DeleteIcon, {}) }), jsx(IconButton, { onClick: handleClose, children: jsx(CloseIcon, {}) })] })] }), jsx(Box, { mt: 2, children: selectedFiles.length > 0 && (jsxs(Fragment, { children: [jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "center", gap: 2, children: [jsx(IconButton, { onClick: handlePrevious, disabled: selectedFiles.length <= 1, children: jsx(NavigateBeforeIcon, {}) }), jsx(Box, { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", sx: { p: 2, minHeight: '400px', width: '100%' }, children: (() => {
177
+ }, children: [jsxs(Box, { display: "flex", justifyContent: "space-between", alignItems: "center", children: [jsx(Typography, { variant: "h6", children: "File Preview" }), jsxs(Box, { display: "flex", gap: 1, children: [jsx(IconButton, { onClick: () => handleDeleteFile(currentFileIndex), color: "error", title: "Delete current file", children: jsx(DeleteIcon, {}) }), jsx(IconButton, { onClick: handleClose, children: jsx(CloseIcon, {}) })] })] }), jsx(Box, { mt: 2, children: selectedFiles.length > 0 && (jsxs(Fragment, { children: [jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "center", gap: 2, children: [selectedFiles.length > 1 && !isSingleFileMode ? (jsx(IconButton, { onClick: handlePrevious, children: jsx(NavigateBeforeIcon, {}) })) : null, jsx(Box, { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", sx: { p: 2, minHeight: '400px', width: '100%' }, children: (() => {
162
178
  const currentFile = selectedFiles[currentFileIndex];
163
- if (currentFile instanceof File) {
164
- if (isImageFile(currentFile)) {
165
- return (jsx("img", { alt: "Preview", src: URL.createObjectURL(currentFile), style: {
166
- maxHeight: '400px',
167
- maxWidth: '100%',
168
- objectFit: 'contain',
169
- borderRadius: 8,
170
- } }));
171
- }
172
- return (jsx(Typography, { variant: "body1", children: currentFile.name }));
173
- }
174
- else if (typeof currentFile === 'string') {
175
- const isImg = isImageFile(currentFile);
176
- return isImg ? (jsx("img", { alt: "Preview", src: currentFile, style: {
179
+ const fileName = typeof currentFile === 'string'
180
+ ? currentFile.split('/').pop() || currentFile
181
+ : currentFile.name;
182
+ // Images
183
+ if (isImageFile(currentFile)) {
184
+ return (jsx("img", { alt: "Preview", src: getObjectUrl(currentFile), style: {
177
185
  maxHeight: '400px',
178
186
  maxWidth: '100%',
179
187
  objectFit: 'contain',
180
188
  borderRadius: 8,
181
- } })) : (jsx(Typography, { variant: "body1", children: currentFile.split('/').pop() }));
189
+ } }));
190
+ }
191
+ // PDF inline viewer
192
+ if (isPdfFile(currentFile)) {
193
+ const url = getObjectUrl(currentFile);
194
+ return (jsx(Box, { width: "100%", height: 420, children: jsx("object", { data: url, type: "application/pdf", width: "100%", height: "100%", children: jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", gap: 1, children: [jsx(PictureAsPdfIcon, { color: "error" }), jsx(Typography, { variant: "body2", children: "Preview not available. " }), jsx(Button, { size: "small", variant: "outlined", href: url, target: "_blank", rel: "noreferrer", children: "Open PDF" })] }) }) }));
195
+ }
196
+ // Excel preview placeholder with actions
197
+ if (isExcelFile(currentFile)) {
198
+ const url = getObjectUrl(currentFile);
199
+ return (jsxs(Box, { textAlign: "center", children: [jsx(TableChartIcon, { color: "primary", sx: { fontSize: 64, mb: 1 } }), jsx(Typography, { variant: "body1", gutterBottom: true, children: fileName }), jsx(Button, { size: "small", variant: "outlined", href: url, target: "_blank", rel: "noreferrer", children: "Open" })] }));
200
+ }
201
+ // Word preview placeholder with actions
202
+ if (isWordFile(currentFile)) {
203
+ const url = getObjectUrl(currentFile);
204
+ return (jsxs(Box, { textAlign: "center", children: [jsx(DescriptionIcon, { color: "primary", sx: { fontSize: 64, mb: 1 } }), jsx(Typography, { variant: "body1", gutterBottom: true, children: fileName }), jsx(Button, { size: "small", variant: "outlined", href: url, target: "_blank", rel: "noreferrer", children: "Open" })] }));
182
205
  }
183
- return null;
184
- })() }), jsx(IconButton, { onClick: handleNext, disabled: selectedFiles.length <= 1, children: jsx(NavigateNextIcon, {}) })] }), selectedFiles.length > 1 && (jsx(Box, { display: "flex", justifyContent: "center", mt: 2, children: jsxs(Typography, { variant: "body2", color: "text.secondary", children: [currentFileIndex + 1, " of ", selectedFiles.length] }) }))] })) })] }) })] }));
206
+ // Fallback: show name
207
+ return jsx(Typography, { variant: "body1", children: fileName });
208
+ })() }), selectedFiles.length > 1 && !isSingleFileMode ? (jsx(IconButton, { onClick: handleNext, children: jsx(NavigateNextIcon, {}) })) : null] }), selectedFiles.length > 1 && !isSingleFileMode && (jsx(Box, { display: "flex", justifyContent: "center", mt: 2, children: jsxs(Typography, { variant: "body2", color: "text.secondary", children: [currentFileIndex + 1, " of ", selectedFiles.length] }) }))] })) })] }) })] }));
185
209
  };
186
210
 
187
211
  export { MultiFileWithPreview as default };
@@ -0,0 +1,43 @@
1
+ import { FormRenderProps, VariantProps } from '../../../utils';
2
+ /**
3
+ * FormTextField Component
4
+ *
5
+ * A text input field component that integrates with react-hook-form for form state management.
6
+ * This component is used for standard text inputs, email inputs, and multi-email inputs.
7
+ *
8
+ * @component
9
+ * @param {Object} props - The component props
10
+ * @param {FormRenderProps} props.props - Form rendering properties from parent form
11
+ * @param {VariantProps} props.variant - UI variant style ('standard', 'outlined', etc.)
12
+ *
13
+ * @example
14
+ * // Basic usage in FormRender
15
+ * <FormTextField props={formRenderProps} variant="outlined" />
16
+ *
17
+ * @example
18
+ * // Usage with specific configuration
19
+ * const formItem = {
20
+ * name: "email",
21
+ * label: "Email Address",
22
+ * inputType: "email",
23
+ * required: true,
24
+ * placeholder: "Enter your email"
25
+ * };
26
+ * <FormTextField
27
+ * props={{
28
+ * item: formItem,
29
+ * control: formMethods.control,
30
+ * errors: formMethods.formState.errors
31
+ * }}
32
+ * variant="outlined"
33
+ * />
34
+ */
35
+ declare const FormTextFieldWithSelect: ({ props, variant, }: {
36
+ props: FormRenderProps;
37
+ variant: VariantProps;
38
+ }) => import("react/jsx-runtime").JSX.Element;
39
+ /**
40
+ * Export the FormTextField component for use in the form renderer
41
+ * This component is used for text, email, and multi-email input types
42
+ */
43
+ export default FormTextFieldWithSelect;