@visns-studio/visns-components 5.0.0 → 5.0.1-8.1

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 (37) hide show
  1. package/package.json +3 -1
  2. package/src/components/crm/AsyncSelect.jsx +121 -15
  3. package/src/components/crm/DataGrid.jsx +26 -5
  4. package/src/components/crm/Field.jsx +174 -148
  5. package/src/components/crm/Form.jsx +46 -33
  6. package/src/components/crm/MultiSelect.jsx +96 -29
  7. package/src/components/crm/Navigation.jsx +2 -81
  8. package/src/components/crm/QrCode.jsx +12 -8
  9. package/src/components/crm/auth/Login.jsx +9 -1
  10. package/src/components/crm/auth/Profile.jsx +4 -2
  11. package/src/components/crm/auth/styles/Login.module.scss +52 -82
  12. package/src/components/crm/auth/styles/Profile.module.scss +150 -44
  13. package/src/components/crm/auth/styles/Reset.module.scss +55 -37
  14. package/src/components/crm/auth/styles/Verify.module.scss +55 -76
  15. package/src/components/crm/generic/GenericAuth.jsx +17 -6
  16. package/src/components/crm/generic/GenericDetail.jsx +509 -18
  17. package/src/components/crm/generic/GenericEditableTable.jsx +407 -0
  18. package/src/components/crm/generic/styles/AuditLog.module.scss +4 -37
  19. package/src/components/crm/generic/styles/AuditLogs.module.scss +0 -51
  20. package/src/components/crm/generic/styles/GenericDetail.module.scss +263 -193
  21. package/src/components/crm/generic/styles/GenericDynamic.module.scss +100 -198
  22. package/src/components/crm/generic/styles/GenericEditableTable.module.scss +178 -0
  23. package/src/components/crm/generic/styles/GenericFormBuilder.module.scss +63 -96
  24. package/src/components/crm/generic/styles/GenericIndex.module.scss +46 -66
  25. package/src/components/crm/generic/styles/GenericMain.module.scss +7 -7
  26. package/src/components/crm/generic/styles/GenericSort.module.scss +0 -36
  27. package/src/components/crm/generic/styles/NotificationList.module.scss +1 -32
  28. package/src/components/crm/styles/Autocomplete.module.scss +12 -20
  29. package/src/components/crm/styles/DataGrid.module.scss +6 -89
  30. package/src/components/crm/styles/Field.module.scss +72 -42
  31. package/src/components/crm/styles/Form.module.scss +148 -379
  32. package/src/components/crm/styles/Navigation.module.scss +356 -501
  33. package/src/components/crm/styles/Notification.module.scss +1 -0
  34. package/src/components/crm/styles/QrCode.module.scss +4 -0
  35. package/src/components/crm/styles/SwitchAccount.module.scss +0 -1
  36. package/src/components/crm/styles/TableFilter.module.scss +2 -1
  37. package/src/components/styles/global.css +164 -34
@@ -26,7 +26,7 @@
26
26
  position: relative;
27
27
  padding: 20px;
28
28
  margin: 8px 0;
29
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
29
+ box-shadow: 0 4px 0 rgba(var(--primary-rgb), 0.05);
30
30
  }
31
31
 
32
32
  .grid__half {
@@ -39,7 +39,7 @@
39
39
  position: relative;
40
40
  padding: 20px;
41
41
  margin: 8px 0;
42
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
42
+ box-shadow: 0 4px 0 rgba(var(--primary-rgb), 0.05);
43
43
  }
44
44
 
45
45
  .grid__full {
@@ -52,7 +52,7 @@
52
52
  position: relative;
53
53
  padding: 2px;
54
54
  margin: 8px 0;
55
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
55
+ box-shadow: 0 4px 0 rgba(var(--primary-rgb), 0.05);
56
56
  }
57
57
 
58
58
  .grid__dashfull {
@@ -65,7 +65,7 @@
65
65
  position: relative;
66
66
  padding: 20px;
67
67
  margin: 8px 0;
68
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
68
+ box-shadow: 0 4px 0 rgba(var(--primary-rgb), 0.05);
69
69
  }
70
70
 
71
71
  .grid__subrow {
@@ -78,14 +78,13 @@
78
78
 
79
79
  .grid__subnav {
80
80
  flex: 1;
81
- background: rgba(var(--item-color-rgb), 1.01);
81
+ background: white;
82
82
  border-radius: var(--br);
83
- border: 1px solid rgba(var(--item-color-rgb), 1.15);
84
83
  box-sizing: border-box;
85
84
  padding: 5px;
86
85
  margin: 8px 0;
87
86
  height: auto;
88
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
87
+ box-shadow: 0 4px 0 rgba(var(--primary-rgb), 0.05);
89
88
  }
90
89
 
91
90
  .grid__subnav > ul {
@@ -104,11 +103,11 @@
104
103
 
105
104
  .grid__subnav > ul li a {
106
105
  width: 100%;
107
- padding: 8px 20px;
106
+ padding: 0.35rem 1rem;
108
107
  box-sizing: border-box;
109
108
  display: block;
110
109
  text-decoration: none;
111
- background: rgba(var(--primary-color-rgb), 0.05);
110
+ background: rgba(var(--primary-rgb), 0.05);
112
111
  color: var(--primary-color);
113
112
  border-radius: 5px;
114
113
  transition: background 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
@@ -137,15 +136,14 @@
137
136
 
138
137
  .grid__subcontent {
139
138
  flex: 0 1 80%;
140
- background: var(--item-color);
139
+ background: var(--tertiary-color);
141
140
  border-radius: var(--br);
142
- border: 1px solid rgba(var(--item-color-rgb), 1.15);
141
+ border: 1px solid rgba(var(--primary-rgb), 0.05);
143
142
  box-sizing: border-box;
144
143
  padding: 2px;
145
144
  margin: 8px 0;
146
145
  height: auto;
147
146
  position: relative;
148
- box-shadow: 0 4px 0 rgba(var(--primary-color-rgb), 0.05);
149
147
  }
150
148
 
151
149
  .grid__subcontent h2 {
@@ -158,10 +156,10 @@
158
156
  .gridtxt__header {
159
157
  width: 100%;
160
158
  display: block;
161
- background: rgba(var(--item-color-rgb), 1.05);
159
+ background: rgba(var(--primary-rgb), 0.05);
162
160
  box-sizing: border-box;
163
161
  padding: 10px 20px;
164
- border-radius: 0;
162
+ border-radius: var(--br);
165
163
  margin-bottom: 0;
166
164
  font-weight: 700;
167
165
  text-align: center;
@@ -186,14 +184,15 @@
186
184
 
187
185
  .gridtxt > ul li {
188
186
  flex: 0 0 calc(50% - 10px);
189
- padding: 0.85rem;
187
+ padding: 0.65rem;
190
188
  box-sizing: border-box;
191
- border: 1px solid rgba(var(--primary-color-rgb), 0.15);
189
+ border: 1px solid rgba(var(--primary-rgb), 0.095);
192
190
  color: var(--paragraph-color);
193
- background: rgba(var(--tertiary-color-rgb), 0.95);
194
- margin: 5px;
191
+ background: rgba(var(--primary-rgb), 0.015);
192
+ margin: 3px;
195
193
  border-radius: var(--br);
196
194
  line-height: 1.45;
195
+ font-size: 0.85rem;
197
196
  }
198
197
 
199
198
  .gridtxt > ul .fw-grid-item {
@@ -204,75 +203,6 @@
204
203
  border: 1px solid var(--secondary-color);
205
204
  }
206
205
 
207
- .crmtitle {
208
- border: none;
209
- min-height: auto;
210
- padding: 10px 20px;
211
- margin: 0;
212
- background: var(--tertiary-color);
213
- border-radius: var(--br);
214
- border: 1px solid rgba(var(--item-color-rgb), 1.15);
215
- position: relative;
216
- display: flex;
217
- align-items: center;
218
-
219
- h1 {
220
- font-weight: 700;
221
- font-size: 1.45em;
222
- margin: 0;
223
- padding: 0.65rem 0;
224
-
225
- a {
226
- text-decoration: none;
227
- color: var(--secondary-color);
228
- font-weight: 300;
229
- }
230
-
231
- svg {
232
- color: rgba(var(--primary-color-rgb), 0.5);
233
- position: relative;
234
- top: 2px;
235
- margin: 0 0.25rem;
236
- }
237
- }
238
- }
239
-
240
- .crmtitle--alternate {
241
- border: none;
242
- min-height: auto;
243
- padding: 5px 20px;
244
- margin: 0;
245
- background: var(--tertiary-color);
246
- border-radius: var(--br);
247
- border: 1px solid rgba(var(--item-color-rgb), 1.15);
248
- position: relative;
249
- display: flex;
250
- align-items: center;
251
-
252
- h1 {
253
- color: var(--paragraph-color);
254
- font-weight: 700;
255
- font-size: 1.15em;
256
- margin: 0;
257
- padding: 0.65rem 0;
258
- display: flex;
259
- align-items: center;
260
- gap: 0.25rem;
261
-
262
- a {
263
- text-decoration: none;
264
- color: var(--primary-color);
265
- }
266
-
267
- svg {
268
- position: relative;
269
- top: 0;
270
- margin: 0 0.5rem;
271
- max-width: 15px;
272
- }
273
- }
274
- }
275
-
276
206
  .titleInfo {
277
207
  position: absolute;
278
208
  right: 2em;
@@ -298,11 +228,15 @@
298
228
  width: 49%;
299
229
  padding: 1em;
300
230
  box-sizing: border-box;
301
- border: 1px solid rgba(var(--primary-color-rgb), 0.15);
231
+ border: 1px solid rgba(var(--primary-rgb), 0.15);
302
232
  color: var(--paragraph-color);
303
233
  background: rgba(#f4f4f4, 0.65);
304
234
  margin: 5px;
305
235
  border-radius: 5px;
236
+
237
+ p {
238
+ font-size: 0.85rem;
239
+ }
306
240
  }
307
241
  }
308
242
 
@@ -319,6 +253,12 @@
319
253
  }
320
254
 
321
255
  .dropzone__container {
256
+ padding: 1rem;
257
+ display: flex;
258
+ flex-wrap: wrap;
259
+ flex-direction: column;
260
+ gap: 1rem;
261
+
322
262
  > div {
323
263
  flex: 1 1 0%;
324
264
  display: flex;
@@ -333,11 +273,12 @@
333
273
  color: rgb(189, 189, 189);
334
274
  outline: currentcolor none medium;
335
275
  transition: border 0.24s ease-in-out 0s;
336
- margin: 1em;
276
+ margin: 0;
337
277
 
338
278
  p {
339
279
  padding: 0;
340
280
  margin: 0;
281
+ font-size: 1rem;
341
282
  }
342
283
  }
343
284
  }
@@ -345,29 +286,35 @@
345
286
  .dropzone__files {
346
287
  list-style: none;
347
288
  padding: 0;
348
- margin: 1em;
289
+ margin: 0;
349
290
  box-sizing: border-box;
350
291
 
351
292
  li {
352
293
  width: 100%;
353
294
  display: block;
354
- background: rgba(var(--tertiary-color-rgb), 1.05);
295
+ background: rgba(var(--primary-rgb), 0.05);
355
296
  color: var(--primary-color);
356
297
  border-radius: 3px;
357
298
  transition: background 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
358
299
  outline: none;
359
300
  cursor: pointer;
360
301
  border-radius: 3px;
361
- padding: 1em 2em;
302
+ padding: 0.5rem;
362
303
  box-sizing: border-box;
363
304
  position: relative;
305
+ border: 1px solid rgba(var(--primary-rgb), 0.15);
306
+ line-height: 1;
307
+ font-size: 0.85rem;
364
308
  margin-bottom: 5px;
365
309
 
366
- i {
310
+ svg {
367
311
  position: relative;
368
- top: 0;
369
- right: 5px;
370
- color: rgba(var(--secondary-color-rgb), 1.15);
312
+ top: -2px;
313
+ color: rgba(var(--secondary-rgb), 1);
314
+ float: left;
315
+ stroke-width: 1;
316
+ line-height: 1;
317
+ margin-right: 5px;
371
318
  }
372
319
 
373
320
  button {
@@ -379,8 +326,8 @@
379
326
  z-index: 200;
380
327
  cursor: pointer;
381
328
 
382
- i {
383
- font-size: 1.15em;
329
+ svg {
330
+ font-size: 1em;
384
331
  color: var(--primary-color);
385
332
  line-height: 1;
386
333
  }
@@ -408,8 +355,8 @@
408
355
  align-items: center;
409
356
  flex-wrap: wrap;
410
357
  border-radius: 5px;
411
- border: 1px solid rgba(var(--primary-color-rgb), 0.2);
412
- box-shadow: 0px 0px 20px rgba(var(--primary-color-rgb), 0.1);
358
+ border: 1px solid rgba(var(--primary-rgb), 0.2);
359
+ box-shadow: 0px 0px 20px rgba(var(--primary-rgb), 0.1);
413
360
  padding: 1.25rem 1.25rem 1.25rem 2rem;
414
361
  box-sizing: border-box;
415
362
  cursor: pointer;
@@ -481,26 +428,26 @@
481
428
  flex-wrap: nowrap;
482
429
  align-items: flex-start;
483
430
  padding: 0 1.5em;
484
- }
485
431
 
486
- .oppoverview__box {
487
- width: auto;
488
- margin: 0;
489
- padding: 0 2em;
490
- border-right: 1px solid rgba(var(--primary-color-rgb), 0.35);
491
- }
432
+ &__box {
433
+ width: auto;
434
+ margin: 0;
435
+ padding: 0 2em;
436
+ border-right: 1px solid rgba(var(--primary-rgb), 0.35);
492
437
 
493
- .oppoverview__box:first-child {
494
- padding-left: 0;
495
- }
438
+ &:first-child {
439
+ padding-left: 0;
440
+ }
496
441
 
497
- .oppoverview__box p {
498
- margin: 0;
499
- }
442
+ p {
443
+ margin: 0;
444
+ }
500
445
 
501
- .oppoverview__box span {
502
- display: block;
503
- color: rgba(var(--paragraph-color-rgb), 0.7);
446
+ span {
447
+ display: block;
448
+ color: rgba(var(--primary-rgb), 0.7);
449
+ }
450
+ }
504
451
  }
505
452
 
506
453
  .oppstatus {
@@ -514,95 +461,96 @@
514
461
  list-style: none;
515
462
  padding: 0;
516
463
  margin: 0;
517
- }
518
-
519
- .opppath > li {
520
- position: relative;
521
- flex: 1;
522
- margin-left: 0.375rem;
523
- margin-right: 0.4375rem;
524
- min-width: 5rem;
525
- text-align: center;
526
- background: var(--primary-color);
527
- }
528
-
529
- .opppath > li:first-child {
530
- margin-left: 0;
531
- border-top-left-radius: 1rem;
532
- border-bottom-left-radius: 1rem;
533
- padding-left: 0.625rem;
534
- }
535
464
 
536
- .opppath > li:first-child:before,
537
- .opppath > li:first-child:after {
538
- left: 1.125rem;
539
- }
465
+ > li {
466
+ position: relative;
467
+ flex: 1;
468
+ margin-left: 0.375rem;
469
+ margin-right: 0.4375rem;
470
+ min-width: 5rem;
471
+ text-align: center;
472
+ background: var(--primary-color);
473
+
474
+ &:first-child {
475
+ margin-left: 0;
476
+ border-top-left-radius: 1rem;
477
+ border-bottom-left-radius: 1rem;
478
+ padding-left: 0.625rem;
479
+
480
+ &:before,
481
+ &:after {
482
+ left: 1.125rem;
483
+ }
484
+ }
540
485
 
541
- .opppath > li:last-child {
542
- margin-right: 0;
543
- border-top-right-radius: 1rem;
544
- border-bottom-right-radius: 1rem;
545
- padding-left: 0.625rem;
546
- }
486
+ &:last-child {
487
+ margin-right: 0;
488
+ border-top-right-radius: 1rem;
489
+ border-bottom-right-radius: 1rem;
490
+ padding-left: 0.625rem;
547
491
 
548
- .opppath > li:last-child:before,
549
- .opppath > li:last-child:after {
550
- right: 1.125rem;
551
- }
492
+ &:before,
493
+ &:after {
494
+ right: 1.125rem;
495
+ }
496
+ }
552
497
 
553
- .opppath > li:before,
554
- .opppath > li:after {
555
- content: '';
556
- position: absolute;
557
- left: -0.35rem;
558
- right: -0.35rem;
559
- cursor: pointer;
560
- background: var(--primary-color);
561
- }
498
+ &:before,
499
+ &:after {
500
+ content: '';
501
+ position: absolute;
502
+ left: -0.35rem;
503
+ right: -0.35rem;
504
+ cursor: pointer;
505
+ background: var(--primary-color);
506
+ }
562
507
 
563
- .opppath > li:before {
564
- top: 0;
565
- height: 1.5rem;
566
- transform: skew(28deg) translate3d(0, 0, 0);
567
- }
508
+ &:before {
509
+ top: 0;
510
+ height: 1.5rem;
511
+ transform: skew(28deg) translate3d(0, 0, 0);
512
+ }
568
513
 
569
- .opppath > li:after {
570
- bottom: 0;
571
- height: 1.5rem;
572
- transform: skew(-30deg) translate3d(0, 0, 0);
573
- }
514
+ &:after {
515
+ bottom: 0;
516
+ height: 1.5rem;
517
+ transform: skew(-30deg) translate3d(0, 0, 0);
518
+ }
574
519
 
575
- .opppath > li a {
576
- position: relative;
577
- display: flex;
578
- justify-content: center;
579
- align-items: center;
580
- height: 2rem;
581
- padding: 1.45rem;
582
- text-decoration: none;
583
- z-index: 5;
584
- cursor: pointer;
585
- color: var(--tertiary-color);
586
- }
520
+ a {
521
+ font-size: 1rem;
522
+ position: relative;
523
+ display: flex;
524
+ justify-content: center;
525
+ align-items: center;
526
+ height: 2rem;
527
+ padding: 1.45rem;
528
+ text-decoration: none;
529
+ z-index: 5;
530
+ cursor: pointer;
531
+ color: var(--bg-color);
532
+ line-height: 1;
587
533
 
588
- .opppath > li a svg {
589
- position: relative;
590
- top: 2px;
591
- left: 8px;
592
- color: rgba(var(--highlight-color-rgb), 0.5);
534
+ svg {
535
+ position: relative;
536
+ left: 8px;
537
+ color: var(--bg-color);
538
+ }
539
+ }
540
+ }
593
541
  }
594
542
 
595
543
  .opp-complete {
596
- background: rgba(var(--primary-color-rgb), 0.9);
597
- }
544
+ background: var(--secondary-color) !important;
598
545
 
599
- .opp-complete a {
600
- color: var(--highlight-color);
601
- }
546
+ a {
547
+ color: var(--highlight-color);
548
+ }
602
549
 
603
- .opp-complete:before,
604
- .opp-complete:after {
605
- background: rgba(var(--primary-color-rgb), 0.9);
550
+ &:before,
551
+ &:after {
552
+ background: var(--secondary-color) !important;
553
+ }
606
554
  }
607
555
 
608
556
  .oppdets {
@@ -630,5 +578,127 @@
630
578
  .btn:hover {
631
579
  color: var(--primary-color);
632
580
  background: var(--highlight-color);
633
- border: 1px solid rgba(var(--highlight-color-rgb), 1.05);
581
+ border: 1px solid rgba(var(--highlight-rgb), 1.05);
582
+ }
583
+
584
+ .crmtitle {
585
+ min-height: auto;
586
+ padding: 1rem;
587
+ margin: 0;
588
+ background: white;
589
+ border-radius: var(--br);
590
+ border: 1px solid rgba(var(--primary-rgb), 0.15);
591
+ position: relative;
592
+ display: flex;
593
+ align-items: center;
594
+ justify-content: space-between;
595
+
596
+ h1 {
597
+ font-weight: 700;
598
+ font-size: 1.25rem;
599
+ margin: 0;
600
+ padding: 0;
601
+ line-height: 1;
602
+
603
+ a {
604
+ text-decoration: none;
605
+ color: var(--secondary-color);
606
+ font-weight: 400;
607
+ }
608
+
609
+ svg {
610
+ color: rgba(var(--primary-rgb), 0.5);
611
+ position: relative;
612
+ top: 2px;
613
+ margin: 0 0.5rem;
614
+ max-width: 15px;
615
+ }
616
+ }
617
+
618
+ .titleInfo {
619
+ width: max-content;
620
+ }
621
+
622
+ .titleInfo span {
623
+ font-size: 0.875em;
624
+ color: rgba(var(--primary-rgb), 0.65);
625
+ }
626
+ }
627
+
628
+ .schedulingTable {
629
+ width: 100%;
630
+ border-collapse: collapse;
631
+ margin: 1em 0;
632
+ }
633
+
634
+ .schedulingTable th,
635
+ .schedulingTable td {
636
+ padding: 0.75rem;
637
+ text-align: left;
638
+ border: 1px solid rgba(var(--primary-rgb), 0.1);
639
+ }
640
+
641
+ .schedulingTable th {
642
+ background-color: var(--secondary-color);
643
+ color: var(--item-color);
644
+ font-weight: bold;
645
+ }
646
+
647
+ .schedulingTable td {
648
+ background-color: rgba(var(--primary-rgb), 0.05);
649
+ }
650
+
651
+ .categoryRow {
652
+ background-color: rgba(var(--primary-rgb), 0.1);
653
+ text-align: left;
654
+ font-weight: bold;
655
+ font-size: 1.2rem;
656
+ color: var(--primary-color);
657
+ }
658
+
659
+ .totalRow {
660
+ background-color: rgba(var(--primary-rgb), 0.05);
661
+ font-weight: bold;
662
+ text-align: right;
663
+ }
664
+
665
+ .schedulingTable td input[type='checkbox'] {
666
+ width: 20px !important;
667
+ height: 20px;
668
+ border-radius: 4px;
669
+ background-color: var(--item-color);
670
+ border: 2px solid rgba(var(--primary-rgb), 0.15);
671
+ position: relative;
672
+ cursor: pointer;
673
+ transition: background-color 0.3s, border-color 0.3s;
674
+ }
675
+
676
+ .schedulingTable td input[type='checkbox']:checked {
677
+ background-color: var(--primary-color);
678
+ border-color: var(--highlight-color);
679
+ }
680
+
681
+ .schedulingTable td input[type='checkbox']:focus {
682
+ outline: none;
683
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.2);
684
+ }
685
+
686
+ /* Custom hover effect for better user experience */
687
+ .schedulingTable td input[type='checkbox']:hover {
688
+ background-color: rgba(var(--primary-rgb), 0.1);
689
+ border-color: rgba(var(--primary-rgb), 0.25);
690
+ }
691
+
692
+ .noDataMessage {
693
+ text-align: center;
694
+ color: var(--secondary-color); /* Maintain a clear and neutral color */
695
+ font-size: 1.125em; /* Slightly reduce the font size for a cleaner look */
696
+ padding: 1.5em; /* Adjust padding for better spacing */
697
+ margin: 2em auto; /* Add auto margin for centering */
698
+ background: #f9f9f9; /* Subtle background to match the theme */
699
+ border: 1px solid #ddd; /* Light border for structure */
700
+ border-radius: 6px; /* Slight rounding for a modern feel */
701
+ max-width: 600px; /* Constrain width for a balanced layout */
702
+ box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); /* Gentle shadow for depth */
703
+ font-style: italic; /* Optional: Add a subtle font style */
634
704
  }