wini-web-components 2.8.2 → 2.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/index.js.js +10 -10
  2. package/dist/index.js.mjs +198 -185
  3. package/package.json +6 -2
  4. package/src/component/button/button.module.css +210 -0
  5. package/src/component/button/button.tsx +57 -0
  6. package/src/component/calendar/calendar.module.css +153 -0
  7. package/src/component/calendar/calendar.tsx +389 -0
  8. package/src/component/carousel/carousel.css +622 -0
  9. package/src/component/carousel/carousel.tsx +91 -0
  10. package/src/component/checkbox/checkbox.module.css +48 -0
  11. package/src/component/checkbox/checkbox.tsx +80 -0
  12. package/src/component/ck-editor/ck-editor.css +206 -0
  13. package/src/component/ck-editor/ckeditor.tsx +522 -0
  14. package/src/component/component-status.tsx +53 -0
  15. package/src/component/date-time-picker/date-time-picker.module.css +94 -0
  16. package/src/component/date-time-picker/date-time-picker.tsx +663 -0
  17. package/src/component/dialog/dialog.module.css +111 -0
  18. package/src/component/dialog/dialog.tsx +109 -0
  19. package/src/component/import-file/import-file.module.css +83 -0
  20. package/src/component/import-file/import-file.tsx +174 -0
  21. package/src/component/infinite-scroll/infinite-scroll.module.css +34 -0
  22. package/src/component/infinite-scroll/infinite-scroll.tsx +35 -0
  23. package/src/component/input-multi-select/input-multi-select.module.css +121 -0
  24. package/src/component/input-multi-select/input-multi-select.tsx +263 -0
  25. package/src/component/input-otp/input-otp.module.css +41 -0
  26. package/src/component/input-otp/input-otp.tsx +110 -0
  27. package/src/component/number-picker/number-picker.module.css +137 -0
  28. package/src/component/number-picker/number-picker.tsx +107 -0
  29. package/src/component/pagination/pagination.module.css +48 -0
  30. package/src/component/pagination/pagination.tsx +88 -0
  31. package/src/component/popup/popup.css +136 -0
  32. package/src/component/popup/popup.tsx +125 -0
  33. package/src/component/progress-bar/progress-bar.module.css +42 -0
  34. package/src/component/progress-bar/progress-bar.tsx +33 -0
  35. package/src/component/progress-circle/progress-circle.css +0 -0
  36. package/src/component/progress-circle/progress-circle.tsx +25 -0
  37. package/src/component/radio-button/radio-button.module.css +51 -0
  38. package/src/component/radio-button/radio-button.tsx +60 -0
  39. package/src/component/rating/rating.module.css +11 -0
  40. package/src/component/rating/rating.tsx +65 -0
  41. package/src/component/select1/select1.module.css +108 -0
  42. package/src/component/select1/select1.tsx +271 -0
  43. package/src/component/switch/switch.module.css +53 -0
  44. package/src/component/switch/switch.tsx +68 -0
  45. package/src/component/table/table.css +74 -0
  46. package/src/component/table/table.tsx +108 -0
  47. package/src/component/tag/tag.module.css +108 -0
  48. package/src/component/tag/tag.tsx +31 -0
  49. package/src/component/text/text.css +27 -0
  50. package/src/component/text/text.tsx +24 -0
  51. package/src/component/text-area/text-area.module.css +57 -0
  52. package/src/component/text-area/text-area.tsx +65 -0
  53. package/src/component/text-field/text-field.module.css +71 -0
  54. package/src/component/text-field/text-field.tsx +102 -0
  55. package/src/component/toast-noti/toast-noti.css +866 -0
  56. package/src/component/toast-noti/toast-noti.tsx +22 -0
  57. package/src/component/wini-icon/winicon.module.css +110 -0
  58. package/src/component/wini-icon/winicon.tsx +9424 -0
  59. package/src/form/login/view.module.css +80 -0
  60. package/src/form/login/view.tsx +138 -0
  61. package/src/index.tsx +66 -0
  62. package/src/language/i18n.tsx +143 -0
  63. package/src/skin/layout.css +649 -0
  64. package/src/skin/root.css +294 -0
  65. package/src/skin/typography.css +314 -0
  66. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,522 @@
1
+ import React, { CSSProperties } from 'react';
2
+ import { useState, useEffect, useRef, useMemo } from 'react';
3
+ import { CKEditor } from '@ckeditor/ckeditor5-react';
4
+ import {
5
+ ClassicEditor,
6
+ Alignment,
7
+ Autoformat,
8
+ AutoImage,
9
+ AutoLink,
10
+ Autosave,
11
+ BalloonToolbar,
12
+ BlockQuote,
13
+ Bold,
14
+ Bookmark,
15
+ Code,
16
+ CodeBlock,
17
+ Essentials,
18
+ FindAndReplace,
19
+ FontBackgroundColor,
20
+ FontColor,
21
+ FontFamily,
22
+ FontSize,
23
+ FullPage,
24
+ GeneralHtmlSupport,
25
+ Heading,
26
+ Highlight,
27
+ HorizontalLine,
28
+ HtmlComment,
29
+ HtmlEmbed,
30
+ ImageBlock,
31
+ ImageCaption,
32
+ ImageInline,
33
+ ImageInsert,
34
+ ImageInsertViaUrl,
35
+ ImageResize,
36
+ ImageStyle,
37
+ ImageTextAlternative,
38
+ ImageToolbar,
39
+ ImageUpload,
40
+ Indent,
41
+ IndentBlock,
42
+ Italic,
43
+ Link,
44
+ LinkImage,
45
+ List,
46
+ ListProperties,
47
+ Markdown,
48
+ MediaEmbed,
49
+ Mention,
50
+ PageBreak,
51
+ Paragraph,
52
+ PasteFromMarkdownExperimental,
53
+ PasteFromOffice,
54
+ PictureEditing,
55
+ RemoveFormat,
56
+ ShowBlocks,
57
+ SourceEditing,
58
+ SpecialCharacters,
59
+ SpecialCharactersArrows,
60
+ SpecialCharactersCurrency,
61
+ SpecialCharactersEssentials,
62
+ SpecialCharactersLatin,
63
+ SpecialCharactersMathematical,
64
+ SpecialCharactersText,
65
+ Strikethrough,
66
+ Style,
67
+ Subscript,
68
+ Superscript,
69
+ Table,
70
+ TableCaption,
71
+ TableCellProperties,
72
+ TableColumnResize,
73
+ TableProperties,
74
+ TableToolbar,
75
+ TextPartLanguage,
76
+ TextTransformation,
77
+ // Title,
78
+ TodoList,
79
+ Underline,
80
+ WordCount,
81
+ EventInfo
82
+ } from 'ckeditor5';
83
+ import './ck-editor.css';
84
+ import { useTranslation } from 'react-i18next';
85
+ import 'ckeditor5/ckeditor5.css';
86
+
87
+ /**
88
+ * Create a free account with a trial: https://portal.ckeditor.com/checkout?plan=free
89
+ */
90
+ const LICENSE_KEY = 'GPL'; // or <YOUR_LICENSE_KEY>.
91
+
92
+ /**
93
+ * Please update the following values with your tokens.
94
+ * Instructions on how to obtain them: https://ckeditor.com/docs/trial/latest/guides/real-time/quick-start.html
95
+ */
96
+
97
+ // wordCount = editor.plugins.get('WordCount');
98
+ interface Props {
99
+ style?: CSSProperties,
100
+ className?: string,
101
+ value?: string,
102
+ placeholder?: string,
103
+ disabled?: boolean,
104
+ menuBar?: boolean,
105
+ onChange?: (event: EventInfo, editor: ClassicEditor) => void,
106
+ onFocus?: (event: EventInfo, editor: ClassicEditor) => void,
107
+ onBlur?: (event: EventInfo, editor: ClassicEditor) => void,
108
+ onError?: (error: Error, details: any) => void,
109
+ onReady?: (editor: ClassicEditor) => void,
110
+ onAfterDestroy?: (editor: ClassicEditor) => void,
111
+ extraPlugins?: Array<any>,
112
+ fontFamily?: Array<string>,
113
+ fontSize?: Array<number | "default">,
114
+ fontColors?: Array<{ color: string, label: string }>,
115
+ fontBgColors?: Array<{ color: string, label: string }>,
116
+ helperText?: string,
117
+ helperTextColor?: string,
118
+ }
119
+
120
+ export function CustomCkEditor5(props: Props) {
121
+ const editorContainerRef = useRef(null);
122
+ const editorRef = useRef(null);
123
+ // const editorWordCountRef = useRef(null);
124
+ const [isLayoutReady, setIsLayoutReady] = useState(false);
125
+ const { i18n } = useTranslation()
126
+
127
+ useEffect(() => {
128
+ setIsLayoutReady(true);
129
+
130
+ return () => setIsLayoutReady(false);
131
+ }, []);
132
+
133
+ const { editorConfig } = useMemo(() => {
134
+ if (!isLayoutReady) {
135
+ return {};
136
+ }
137
+
138
+ return {
139
+ editorConfig: {
140
+ toolbar: {
141
+ items: [
142
+ 'heading',
143
+ '|',
144
+ // 'sourceEditing',
145
+ // 'showBlocks',
146
+ // 'findAndReplace',
147
+ // 'textPartLanguage',
148
+ 'fontSize',
149
+ 'fontFamily',
150
+ 'fontColor',
151
+ 'fontBackgroundColor',
152
+ '|',
153
+ 'bold',
154
+ 'italic',
155
+ 'underline',
156
+ 'strikethrough',
157
+ // 'subscript',
158
+ // 'superscript',
159
+ // 'code',
160
+ // 'removeFormat',
161
+ '|',
162
+ 'specialCharacters',
163
+ 'insertImage',
164
+ 'horizontalLine',
165
+ 'pageBreak',
166
+ 'link',
167
+ // 'bookmark',
168
+ // 'insertImageViaUrl',
169
+ // 'ckbox',
170
+ 'mediaEmbed',
171
+ 'insertTable',
172
+ 'highlight',
173
+ // 'blockQuote',
174
+ // 'codeBlock',
175
+ 'htmlEmbed',
176
+ '|',
177
+ 'alignment',
178
+ '|',
179
+ 'bulletedList',
180
+ 'numberedList',
181
+ 'todoList',
182
+ 'outdent',
183
+ 'indent'
184
+ ],
185
+ shouldNotGroupWhenFull: false,
186
+ },
187
+ plugins: [
188
+ Alignment,
189
+ Autoformat,
190
+ AutoImage,
191
+ AutoLink,
192
+ Autosave,
193
+ BalloonToolbar,
194
+ BlockQuote,
195
+ Bold,
196
+ Bookmark,
197
+ Code,
198
+ CodeBlock,
199
+ Essentials,
200
+ FindAndReplace,
201
+ FontBackgroundColor,
202
+ FontColor,
203
+ FontFamily,
204
+ FontSize,
205
+ FullPage,
206
+ GeneralHtmlSupport,
207
+ Heading,
208
+ Highlight,
209
+ HorizontalLine,
210
+ HtmlComment,
211
+ HtmlEmbed,
212
+ ImageBlock,
213
+ ImageCaption,
214
+ ImageInline,
215
+ ImageInsert,
216
+ ImageInsertViaUrl,
217
+ ImageResize,
218
+ ImageStyle,
219
+ ImageTextAlternative,
220
+ ImageToolbar,
221
+ ImageUpload,
222
+ Indent,
223
+ IndentBlock,
224
+ Italic,
225
+ Link,
226
+ LinkImage,
227
+ List,
228
+ ListProperties,
229
+ Markdown,
230
+ MediaEmbed,
231
+ Mention,
232
+ PageBreak,
233
+ Paragraph,
234
+ PasteFromMarkdownExperimental,
235
+ PasteFromOffice,
236
+ PictureEditing,
237
+ RemoveFormat,
238
+ ShowBlocks,
239
+ SourceEditing,
240
+ SpecialCharacters,
241
+ SpecialCharactersArrows,
242
+ SpecialCharactersCurrency,
243
+ SpecialCharactersEssentials,
244
+ SpecialCharactersLatin,
245
+ SpecialCharactersMathematical,
246
+ SpecialCharactersText,
247
+ Strikethrough,
248
+ Style,
249
+ Subscript,
250
+ Superscript,
251
+ Table,
252
+ TableCaption,
253
+ TableCellProperties,
254
+ TableColumnResize,
255
+ TableProperties,
256
+ TableToolbar,
257
+ TextPartLanguage,
258
+ TextTransformation,
259
+ // Title,
260
+ TodoList,
261
+ Underline,
262
+ WordCount
263
+ ],
264
+ balloonToolbar: ['bold', 'italic', '|', 'link', 'insertImage', '|', 'bulletedList', 'numberedList'],
265
+ extraPlugins: props.extraPlugins,
266
+ mediaEmbed: {
267
+ previewsInData: true,
268
+ providers: [
269
+ {
270
+ name: "youtube",
271
+ url: /^https:\/\/www\.youtube\.com\/watch\?v=([\w-]+)/,
272
+ html: (match: any) => {
273
+ const id = match[1];
274
+ return (
275
+ '<div style="position: relative; padding-bottom: 56.25%; height: 0;">' +
276
+ `<iframe src="https://www.youtube.com/embed/${id}" ` +
277
+ 'style="position: absolute; width: 100%; height: 100%; left: 0;" ' +
278
+ 'frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>' +
279
+ "</div>"
280
+ );
281
+ },
282
+ },
283
+ ],
284
+ },
285
+ fontFamily: {
286
+ options: props.fontFamily || ["Default", "Arial", "Courier New", "Inter", "Roboto", "Times New Roman", "Source Serif 4"],
287
+ supportAllValues: true
288
+ },
289
+ fontSize: {
290
+ options: props.fontSize || [10, 12, 14, 'default', 18, 20, 22, 24],
291
+ supportAllValues: true,
292
+ },
293
+ fontColor: {
294
+ columns: 6,
295
+ colors: props.fontColors || [
296
+ {
297
+ color: 'var(--neutral-text-title-color)',
298
+ label: 'title'
299
+ },
300
+ {
301
+ color: 'var(--neutral-text-subtitle-color)',
302
+ label: 'subtitle'
303
+ },
304
+ {
305
+ color: 'var(--neutral-text-body-color)',
306
+ label: 'body'
307
+ },
308
+ {
309
+ color: 'var(--neutral-text-placeholder-color)',
310
+ label: 'placeholder'
311
+ },
312
+ {
313
+ color: 'var(--neutral-text-disabled-color)',
314
+ label: 'disabled'
315
+ },
316
+ {
317
+ color: 'var(--neutral-text-stable-color)',
318
+ label: 'stable'
319
+ },
320
+ {
321
+ color: 'var(--primary-main-color)',
322
+ label: 'primay'
323
+ },
324
+ {
325
+ color: 'var(--warning-main-color)',
326
+ label: 'warning'
327
+ },
328
+ {
329
+ color: 'var(--success-main-color)',
330
+ label: 'success'
331
+ },
332
+ {
333
+ color: 'var(--secondary3-main-color)',
334
+ label: 'secondary3'
335
+ },
336
+ {
337
+ color: 'var(--secondary4-main-color)',
338
+ label: 'secondary4'
339
+ },
340
+ {
341
+ color: 'var(--secondary5-main-color)',
342
+ label: 'secondary5'
343
+ },
344
+ {
345
+ color: 'var(--infor-main-color)',
346
+ label: 'infor'
347
+ },
348
+ {
349
+ color: 'var(--error-main-color)',
350
+ label: 'error'
351
+ },
352
+ ],
353
+ },
354
+ fontBackgroundColor: {
355
+ columns: 6,
356
+ colors: props.fontBgColors || [
357
+ {
358
+ color: 'var(--neutral-main-background-color)',
359
+ label: 'main'
360
+ },
361
+ {
362
+ color: 'var(--neutral-main-reverse-background-color)',
363
+ label: 'main-reverse'
364
+ },
365
+ {
366
+ color: 'var(--neutral-absolute-background-color)',
367
+ label: 'absolute'
368
+ },
369
+ {
370
+ color: 'var(--neutral-absolute-reverse-background-color)',
371
+ label: 'absolute-reverse'
372
+ },
373
+ {
374
+ color: 'var(--primary-background)',
375
+ label: 'primay-bg'
376
+ },
377
+ {
378
+ color: 'var(--warning-background)',
379
+ label: 'warning-bg'
380
+ },
381
+ {
382
+ color: 'var(--success-background)',
383
+ label: 'success-bg'
384
+ },
385
+ {
386
+ color: 'var(--secondary3-background)',
387
+ label: 'secondary3-bg'
388
+ },
389
+ {
390
+ color: 'var(--secondary4-background)',
391
+ label: 'secondary4-bg'
392
+ },
393
+ {
394
+ color: 'var(--secondary5-background)',
395
+ label: 'secondary5-bg'
396
+ },
397
+ {
398
+ color: 'var(--infor-background)',
399
+ label: 'infor-bg'
400
+ },
401
+ {
402
+ color: 'var(--error-background)',
403
+ label: 'error-bg'
404
+ },
405
+ ],
406
+ },
407
+ heading: {
408
+ options: [
409
+ {
410
+ model: 'paragraph',
411
+ title: 'Paragraph',
412
+ class: 'ck-heading_paragraph'
413
+ },
414
+ {
415
+ model: 'heading1',
416
+ view: 'h1',
417
+ title: 'Heading 1',
418
+ class: 'ck-heading_heading1'
419
+ },
420
+ {
421
+ model: 'heading2',
422
+ view: 'h2',
423
+ title: 'Heading 2',
424
+ class: 'ck-heading_heading2'
425
+ },
426
+ {
427
+ model: 'heading3',
428
+ view: 'h3',
429
+ title: 'Heading 3',
430
+ class: 'ck-heading_heading3'
431
+ },
432
+ {
433
+ model: 'heading4',
434
+ view: 'h4',
435
+ title: 'Heading 4',
436
+ class: 'ck-heading_heading4'
437
+ },
438
+ {
439
+ model: 'heading5',
440
+ view: 'h5',
441
+ title: 'Heading 5',
442
+ class: 'ck-heading_heading5'
443
+ },
444
+ {
445
+ model: 'heading6',
446
+ view: 'h6',
447
+ title: 'Heading 6',
448
+ class: 'ck-heading_heading6'
449
+ }
450
+ ]
451
+ },
452
+ htmlSupport: {
453
+ allow: [
454
+ {
455
+ name: /^.*$/,
456
+ styles: true,
457
+ attributes: true,
458
+ classes: true
459
+ }
460
+ ]
461
+ },
462
+ image: {
463
+ toolbar: [
464
+ 'toggleImageCaption',
465
+ 'imageTextAlternative',
466
+ '|',
467
+ 'imageStyle:inline',
468
+ 'imageStyle:wrapText',
469
+ 'imageStyle:breakText',
470
+ '|',
471
+ 'resizeImage'
472
+ ]
473
+ },
474
+ language: "vi",
475
+ licenseKey: LICENSE_KEY,
476
+ link: {
477
+ addTargetToExternalLinks: true,
478
+ defaultProtocol: 'https://',
479
+ decorators: {
480
+ toggleDownloadable: {
481
+ mode: 'manual',
482
+ label: 'Downloadable',
483
+ attributes: {
484
+ download: 'file'
485
+ }
486
+ }
487
+ }
488
+ },
489
+ menuBar: { isVisible: props.menuBar },
490
+ placeholder: props.placeholder,
491
+ table: {
492
+ contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties']
493
+ },
494
+ }
495
+ };
496
+ }, [isLayoutReady, i18n.language]);
497
+
498
+ return <div
499
+ ref={editorContainerRef}
500
+ className={`col editor-container editor-container_classic-editor editor-container_include-style ${props.className ?? ""} ${props.helperText?.length ? 'helper-text' : ""}`}
501
+ helper-text={props.helperText}
502
+ style={props.style ? { ...({ '--helper-text-color': props.helperTextColor ?? '#e14337' } as CSSProperties), ...props.style } : ({ '--helper-text-color': props.helperTextColor ?? '#e14337' } as CSSProperties)}
503
+ >
504
+ <div className="editor-container__editor">
505
+ <div ref={editorRef}>
506
+ {editorConfig && (
507
+ <CKEditor
508
+ onReady={props.onReady}
509
+ onAfterDestroy={props.onAfterDestroy}
510
+ onFocus={props.onFocus}
511
+ onChange={props.onChange}
512
+ onBlur={props.onBlur}
513
+ editor={ClassicEditor}
514
+ onError={props.onError}
515
+ config={editorConfig as any}
516
+ {...{ data: props.value, disabled: props.disabled }}
517
+ />
518
+ )}
519
+ </div>
520
+ </div>
521
+ </div>
522
+ }
@@ -0,0 +1,53 @@
1
+ import React from "react"
2
+
3
+ export enum ComponentStatus {
4
+ INFOR = 1,
5
+ ERROR = 2,
6
+ WARNING = 3,
7
+ SUCCSESS = 4,
8
+ }
9
+
10
+ export const getStatusIcon = (status: ComponentStatus) => {
11
+ switch (status) {
12
+ case ComponentStatus.ERROR:
13
+ return errorSvg
14
+ case ComponentStatus.WARNING:
15
+ return warningSvg
16
+ case ComponentStatus.SUCCSESS:
17
+ return successSvg
18
+ default:
19
+ return inforSvg
20
+ }
21
+ }
22
+
23
+ const inforSvg = (
24
+ <div style={{ width: '3.6rem', height: '3.6rem' }}>
25
+ <svg width='100%' height='100%' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg' >
26
+ <path d='M18.0003 3.41669C15.116 3.41669 12.2965 4.27198 9.89826 5.87442C7.50005 7.47686 5.63087 9.75446 4.52709 12.4192C3.42331 15.084 3.13451 18.0162 3.69721 20.8451C4.25991 23.674 5.64884 26.2725 7.68836 28.312C9.72787 30.3515 12.3264 31.7404 15.1553 32.3031C17.9842 32.8658 20.9164 32.577 23.5811 31.4733C26.2459 30.3695 28.5235 28.5003 30.1259 26.1021C31.7284 23.7039 32.5837 20.8843 32.5837 18C32.5795 14.1336 31.0417 10.4267 28.3077 7.69266C25.5737 4.95867 21.8668 3.42087 18.0003 3.41669V3.41669ZM19.2496 26.1715H16.7401V15.5695H19.2496V26.1715ZM19.0418 12.2384C18.9034 12.3653 18.7407 12.463 18.5637 12.5256C18.3866 12.5883 18.1987 12.6146 18.0113 12.603C17.8204 12.6157 17.6289 12.5899 17.4481 12.5273C17.2673 12.4647 17.101 12.3664 16.9588 12.2384C16.8333 12.1032 16.7363 11.9441 16.6737 11.7706C16.611 11.5971 16.584 11.4127 16.5943 11.2285C16.5815 11.04 16.6073 10.8509 16.67 10.6727C16.7327 10.4945 16.8309 10.3309 16.9588 10.1919C17.1013 10.0644 17.2678 9.96649 17.4484 9.9039C17.6291 9.84131 17.8204 9.81526 18.0113 9.82728C18.1987 9.81637 18.3864 9.843 18.5633 9.90561C18.7403 9.96822 18.903 10.0655 19.0418 10.1919C19.1697 10.3309 19.268 10.4945 19.3307 10.6727C19.3934 10.8509 19.4191 11.04 19.4064 11.2285C19.4166 11.4127 19.3896 11.5971 19.327 11.7706C19.2644 11.9441 19.1674 12.1032 19.0418 12.2384Z' fill='#366AE2' />
27
+ </svg>
28
+ </div>
29
+ )
30
+
31
+ const errorSvg = (
32
+ <div style={{ width: '3.6rem', height: '3.6rem' }}>
33
+ <svg width='100%' height='100%' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg' >
34
+ <path d='M18.0003 3.41669C15.116 3.41669 12.2965 4.27198 9.89826 5.87442C7.50005 7.47686 5.63087 9.75446 4.52709 12.4192C3.42331 15.084 3.13451 18.0162 3.69721 20.8451C4.25991 23.674 5.64884 26.2725 7.68836 28.312C9.72787 30.3515 12.3264 31.7404 15.1553 32.3031C17.9842 32.8658 20.9164 32.577 23.5811 31.4733C26.2459 30.3695 28.5235 28.5003 30.1259 26.1021C31.7284 23.7039 32.5837 20.8843 32.5837 18C32.5724 14.1357 31.0324 10.4329 28.2999 7.70044C25.5674 4.96797 21.8646 3.42791 18.0003 3.41669V3.41669ZM24.016 22.2972L22.2976 24.0156L18.0003 19.7184L13.7031 24.0156L11.9847 22.2972L16.2819 18L11.9847 13.7028L13.7031 11.9844L18.0003 16.2816L22.2976 11.9844L24.016 13.7028L19.7187 18L24.016 22.2972Z' fill='#E14337' />
35
+ </svg>
36
+ </div>
37
+ )
38
+
39
+ const warningSvg = (
40
+ <div style={{ width: '3.6rem', height: '3.6rem' }}>
41
+ <svg width='100%' height='100%' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg' >
42
+ <path d='M32.1516 25.8877L21.3215 5.41379C21.0014 4.81074 20.5231 4.30622 19.938 3.95437C19.3529 3.60252 18.6831 3.41663 18.0003 3.41663C17.3176 3.41663 16.6477 3.60252 16.0626 3.95437C15.4775 4.30622 14.9993 4.81074 14.6792 5.41379L3.84901 25.8877C3.54781 26.459 3.39954 27.0984 3.41863 27.744C3.43771 28.3895 3.6235 29.0191 3.95793 29.5716C4.29235 30.1241 4.76404 30.5806 5.32713 30.8969C5.89022 31.2131 6.52555 31.3783 7.17136 31.3763H28.8293C29.4751 31.3783 30.1104 31.2131 30.6735 30.8969C31.2366 30.5806 31.7083 30.1241 32.0427 29.5716C32.3771 29.0191 32.5629 28.3895 32.582 27.744C32.6011 27.0984 32.4528 26.459 32.1516 25.8877ZM18.0003 27.7294C17.6397 27.7294 17.2871 27.6224 16.9873 27.4221C16.6874 27.2217 16.4537 26.9369 16.3157 26.6037C16.1776 26.2705 16.1415 25.9039 16.2119 25.5502C16.2823 25.1965 16.4559 24.8715 16.7109 24.6165C16.966 24.3615 17.2909 24.1878 17.6446 24.1175C17.9983 24.0471 18.3649 24.0832 18.6981 24.2212C19.0313 24.3593 19.3161 24.593 19.5165 24.8928C19.7168 25.1927 19.8238 25.5453 19.8238 25.9059C19.8238 26.3895 19.6317 26.8533 19.2897 27.1953C18.9477 27.5373 18.4839 27.7294 18.0003 27.7294ZM19.216 21.6512H16.7847L16.1769 11.926H19.8238L19.216 21.6512Z' fill='#FC6B03' />
43
+ </svg>
44
+ </div>
45
+ )
46
+
47
+ const successSvg = (
48
+ <div style={{ width: '3.6rem', height: '3.6rem' }}>
49
+ <svg width='100%' height='100%' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg' >
50
+ <path d='M18.0003 3.41669C15.116 3.41669 12.2965 4.27198 9.89826 5.87442C7.50005 7.47686 5.63087 9.75446 4.52709 12.4192C3.42331 15.084 3.13451 18.0162 3.69721 20.8451C4.25991 23.674 5.64884 26.2725 7.68836 28.312C9.72787 30.3515 12.3264 31.7404 15.1553 32.3031C17.9842 32.8658 20.9164 32.577 23.5811 31.4733C26.2459 30.3695 28.5235 28.5003 30.1259 26.1021C31.7284 23.7039 32.5837 20.8843 32.5837 18C32.5724 14.1357 31.0324 10.4329 28.2999 7.70044C25.5674 4.96797 21.8646 3.42791 18.0003 3.41669V3.41669ZM15.5698 24.5795L8.99026 18L10.7087 16.2816L15.5698 21.1427L25.292 11.4205L27.0104 13.1389L15.5698 24.5795Z' fill='#39AC6D' />
51
+ </svg>
52
+ </div>
53
+ )
@@ -0,0 +1,94 @@
1
+ .date-time-picker {
2
+ padding: 0.8rem 1.6rem;
3
+ gap: 0.4rem;
4
+ border-radius: 0.8rem;
5
+ text-align: start;
6
+ }
7
+
8
+ .date-time-picker>.prefix-icon {
9
+ padding: 0.5rem;
10
+ margin-right: 0.8rem;
11
+ border-radius: 50%;
12
+ border: 1px dashed var(--neutral-text-subtitle-color)
13
+ }
14
+
15
+ .date-time-picker>.value {
16
+ flex: 1;
17
+ width: 100%;
18
+ font: inherit;
19
+ color: inherit;
20
+ font-size: inherit;
21
+ font-family: inherit;
22
+ font-weight: inherit;
23
+ line-height: inherit;
24
+ text-align: inherit;
25
+ text-overflow: inherit;
26
+ }
27
+
28
+ .date-time-picker>input {
29
+ outline: none;
30
+ border: none;
31
+ background-color: transparent !important;
32
+ }
33
+
34
+ .date-time-picker>.prefix-icon+.value {
35
+ width: calc(100% - 0.8rem);
36
+ }
37
+
38
+ .date-time-picker:has(>input) {
39
+ padding: 0.7rem 1.6rem;
40
+ border: var(--neutral-main-border);
41
+ }
42
+
43
+ .date-time-picker:has(>input):focus-within {
44
+ border-color: var(--primary-main-color);
45
+ }
46
+
47
+ .date-time-picker:has(> input:disabled),
48
+ .date-time-picker:disabled {
49
+ background-color: var(--neutral-disable-background-color) !important;
50
+ pointer-events: none !important;
51
+ }
52
+
53
+ button.date-time-picker:hover {
54
+ background-color: var(--neutral-hover-background-color);
55
+ }
56
+
57
+ button.date-time-picker:focus {
58
+ box-shadow: 0px 4px 20px 0px #0000001A inset;
59
+ }
60
+
61
+ .date-time-picker.helper-text {
62
+ position: relative;
63
+ overflow: visible !important;
64
+ border-color: var(--helper-text-color) !important;
65
+ }
66
+
67
+ .date-time-picker.helper-text::after {
68
+ content: attr(helper-text);
69
+ color: var(--helper-text-color);
70
+ position: absolute;
71
+ left: 0;
72
+ bottom: -0.4rem;
73
+ width: max-content;
74
+ font-size: 1.2rem;
75
+ line-height: 1.6rem;
76
+ font-family: inherit;
77
+ transform: translateY(100%);
78
+ }
79
+
80
+ .popup-actions {
81
+ padding: 0.4rem 0;
82
+ max-height: 28rem;
83
+ min-width: 10rem;
84
+ background-color: var(--neutral-absolute-background-color);
85
+ }
86
+
87
+ .popup-actions>button {
88
+ padding: 0.8rem;
89
+ gap: 0.8rem;
90
+ }
91
+
92
+ .popup-actions>button:hover {
93
+ background-color: var(--neutral-hover-background-color);
94
+ }