@diniz/webcomponents 1.1.3 → 1.1.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.
package/dist/style.css CHANGED
@@ -3,8 +3,8 @@
3
3
  --color-primary-contrast: #ffffff;
4
4
  --color-ink: #0f172a;
5
5
  --color-muted: #f1f5f9;
6
- --color-header: #f8fafc;
7
- --color-border: #e2e8f0;
6
+ --color-header: #34a8eb;
7
+ --color-border: #f3f5f7;
8
8
  --color-border-strong: #cbd5f5;
9
9
  --color-nav-bg: #222222;
10
10
  --color-nav-text: #ffffff;
@@ -699,6 +699,156 @@ input[type="checkbox"] {
699
699
  }
700
700
  }
701
701
 
702
+ /* ============================================
703
+ UPLOAD COMPONENT STYLES
704
+ ============================================ */
705
+
706
+ :host([data-ui="upload"]) {
707
+ display: block;
708
+ width: 100%;
709
+ }
710
+
711
+ .upload {
712
+ display: flex;
713
+ flex-direction: column;
714
+ gap: 0.75rem;
715
+ }
716
+
717
+ .upload-label {
718
+ font-size: 0.9rem;
719
+ font-weight: 700;
720
+ color: var(--color-ink);
721
+ }
722
+
723
+ .upload-drop {
724
+ border: 1.5px dashed rgba(36, 236, 113, 0.55);
725
+ border-radius: 16px;
726
+ background: linear-gradient(135deg, rgba(36, 236, 113, 0.08), rgba(52, 168, 235, 0.08));
727
+ padding: 1.25rem 1.5rem;
728
+ position: relative;
729
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
730
+ }
731
+
732
+ .upload-drop.dragging {
733
+ border-color: var(--color-primary);
734
+ box-shadow: 0 16px 30px rgba(36, 236, 113, 0.18);
735
+ transform: translateY(-2px);
736
+ }
737
+
738
+ .upload-drop.disabled {
739
+ opacity: 0.6;
740
+ cursor: not-allowed;
741
+ }
742
+
743
+ .upload-input {
744
+ position: absolute;
745
+ inset: 0;
746
+ opacity: 0;
747
+ cursor: pointer;
748
+ }
749
+
750
+ .upload-content {
751
+ display: grid;
752
+ grid-template-columns: auto 1fr auto;
753
+ gap: 1rem;
754
+ align-items: center;
755
+ }
756
+
757
+ .upload-icon {
758
+ width: 46px;
759
+ height: 46px;
760
+ border-radius: 14px;
761
+ display: grid;
762
+ place-items: center;
763
+ background: #0f172a;
764
+ color: #ffffff;
765
+ box-shadow: 0 12px 20px rgba(15, 23, 42, 0.18);
766
+ }
767
+
768
+ .upload-icon svg {
769
+ width: 20px;
770
+ height: 20px;
771
+ }
772
+
773
+ .upload-title {
774
+ font-weight: 700;
775
+ color: var(--color-ink);
776
+ }
777
+
778
+ .upload-sub {
779
+ font-size: 0.85rem;
780
+ color: var(--color-text-muted, #64748b);
781
+ margin-top: 0.2rem;
782
+ }
783
+
784
+ .upload-btn {
785
+ border: none;
786
+ border-radius: 999px;
787
+ padding: 0.45rem 1rem;
788
+ font-size: 0.85rem;
789
+ font-weight: 700;
790
+ background: #0f172a;
791
+ color: #ffffff;
792
+ cursor: pointer;
793
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
794
+ }
795
+
796
+ .upload-btn:hover:not(:disabled) {
797
+ transform: translateY(-1px);
798
+ box-shadow: 0 10px 16px rgba(15, 23, 42, 0.18);
799
+ }
800
+
801
+ .upload-btn:disabled {
802
+ cursor: not-allowed;
803
+ opacity: 0.5;
804
+ }
805
+
806
+ .upload-helper {
807
+ font-size: 0.85rem;
808
+ color: var(--color-text-muted, #64748b);
809
+ }
810
+
811
+ .upload-list {
812
+ list-style: none;
813
+ padding: 0;
814
+ margin: 0;
815
+ display: grid;
816
+ gap: 0.5rem;
817
+ }
818
+
819
+ .upload-list li {
820
+ display: grid;
821
+ grid-template-columns: 1fr auto auto;
822
+ gap: 0.75rem;
823
+ align-items: center;
824
+ padding: 0.6rem 0.75rem;
825
+ border-radius: 12px;
826
+ background: #ffffff;
827
+ border: 1px solid rgba(148, 163, 184, 0.35);
828
+ font-size: 0.9rem;
829
+ color: var(--color-ink);
830
+ }
831
+
832
+ .upload-meta {
833
+ font-size: 0.78rem;
834
+ color: var(--color-text-muted, #64748b);
835
+ }
836
+
837
+ .upload-remove {
838
+ border: none;
839
+ background: rgba(239, 68, 68, 0.1);
840
+ color: #b91c1c;
841
+ padding: 0.25rem 0.65rem;
842
+ border-radius: 999px;
843
+ font-size: 0.75rem;
844
+ font-weight: 600;
845
+ cursor: pointer;
846
+ }
847
+
848
+ .upload-remove:hover {
849
+ background: rgba(239, 68, 68, 0.2);
850
+ }
851
+
702
852
  /* ============================================
703
853
  PAGINATION COMPONENT STYLES
704
854
  ============================================ */
@@ -777,14 +927,218 @@ input[type="checkbox"] {
777
927
  height: 16px;
778
928
  }
779
929
 
930
+ /* ============================================
931
+ STEPPER COMPONENT STYLES
932
+ ============================================ */
933
+
934
+ :host([data-ui="stepper"]) {
935
+ display: block;
936
+ }
937
+
938
+ .stepper-wrap {
939
+ width: 100%;
940
+ }
941
+
942
+ .stepper-empty {
943
+ padding: 1rem;
944
+ border: 1px dashed var(--color-border);
945
+ border-radius: var(--radius-md);
946
+ color: var(--color-text-muted, #64748b);
947
+ text-align: center;
948
+ font-size: 0.9rem;
949
+ }
950
+
951
+ .stepper {
952
+ list-style: none;
953
+ padding: 0;
954
+ margin: 0;
955
+ display: flex;
956
+ flex-wrap: wrap;
957
+ gap: 1.25rem;
958
+ }
959
+
960
+ .stepper.vertical {
961
+ flex-direction: column;
962
+ gap: 1rem;
963
+ }
964
+
965
+ .step {
966
+ display: flex;
967
+ align-items: center;
968
+ position: relative;
969
+ }
970
+
971
+ .stepper.vertical .step {
972
+ flex-direction: column;
973
+ align-items: flex-start;
974
+ }
975
+
976
+ .step-trigger {
977
+ display: flex;
978
+ align-items: center;
979
+ gap: 0.75rem;
980
+ background: transparent;
981
+ border: none;
982
+ padding: 0;
983
+ cursor: pointer;
984
+ text-align: left;
985
+ font-family: inherit;
986
+ color: var(--color-ink);
987
+ }
988
+
989
+ .step-trigger:disabled {
990
+ cursor: not-allowed;
991
+ opacity: 0.5;
992
+ }
993
+
994
+ .step-node {
995
+ width: 2.1rem;
996
+ height: 2.1rem;
997
+ border-radius: 12px;
998
+ background: var(--color-muted);
999
+ border: 1px solid var(--color-border-strong);
1000
+ display: inline-flex;
1001
+ align-items: center;
1002
+ justify-content: center;
1003
+ font-weight: 700;
1004
+ font-size: 0.9rem;
1005
+ color: var(--color-ink);
1006
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
1007
+ }
1008
+
1009
+ .step-text {
1010
+ display: flex;
1011
+ flex-direction: column;
1012
+ gap: 0.2rem;
1013
+ }
1014
+
1015
+ .step-title {
1016
+ font-weight: 700;
1017
+ letter-spacing: 0.2px;
1018
+ font-size: 0.98rem;
1019
+ }
1020
+
1021
+ .step-desc {
1022
+ font-size: 0.85rem;
1023
+ color: var(--color-text-muted, #64748b);
1024
+ }
1025
+
1026
+ .step-connector {
1027
+ width: 48px;
1028
+ height: 2px;
1029
+ margin: 0 0.65rem;
1030
+ background: linear-gradient(90deg, var(--color-border), rgba(255, 255, 255, 0));
1031
+ flex-shrink: 0;
1032
+ }
1033
+
1034
+ .stepper.vertical .step-connector {
1035
+ width: 2px;
1036
+ height: 28px;
1037
+ margin: 0.65rem 0 0.25rem 1.05rem;
1038
+ background: linear-gradient(180deg, var(--color-border), rgba(255, 255, 255, 0));
1039
+ }
1040
+
1041
+ .step.complete .step-node {
1042
+ background: linear-gradient(135deg, #24ec71 0%, #34a8eb 100%);
1043
+ color: #0f172a;
1044
+ border-color: transparent;
1045
+ box-shadow: 0 8px 18px rgba(36, 236, 113, 0.25);
1046
+ }
1047
+
1048
+ .step.complete .step-connector {
1049
+ background: linear-gradient(90deg, #24ec71, #34a8eb);
1050
+ }
1051
+
1052
+ .stepper.vertical .step.complete .step-connector {
1053
+ background: linear-gradient(180deg, #24ec71, #34a8eb);
1054
+ }
1055
+
1056
+ .step.active .step-node {
1057
+ background: #ffffff;
1058
+ color: var(--color-ink);
1059
+ border-color: var(--color-primary);
1060
+ box-shadow: 0 0 0 4px rgba(36, 236, 113, 0.18), 0 12px 20px rgba(36, 236, 113, 0.22);
1061
+ animation: stepGlow 1.6s ease-in-out infinite;
1062
+ }
1063
+
1064
+ .step.active .step-title {
1065
+ color: var(--color-ink);
1066
+ }
1067
+
1068
+ .step.upcoming .step-title {
1069
+ color: var(--color-ink);
1070
+ opacity: 0.7;
1071
+ }
1072
+
1073
+ .step.error .step-node {
1074
+ background: #fee2e2;
1075
+ border-color: #f87171;
1076
+ color: #991b1b;
1077
+ box-shadow: 0 8px 16px rgba(239, 68, 68, 0.2);
1078
+ }
1079
+
1080
+ .step.warning .step-node {
1081
+ background: #fef3c7;
1082
+ border-color: #f59e0b;
1083
+ color: #92400e;
1084
+ box-shadow: 0 8px 16px rgba(245, 158, 11, 0.2);
1085
+ }
1086
+
1087
+ .stepper.sm .step-node {
1088
+ width: 1.65rem;
1089
+ height: 1.65rem;
1090
+ font-size: 0.75rem;
1091
+ border-radius: 10px;
1092
+ }
1093
+
1094
+ .stepper.sm .step-title {
1095
+ font-size: 0.9rem;
1096
+ }
1097
+
1098
+ .stepper.sm .step-desc {
1099
+ font-size: 0.78rem;
1100
+ }
1101
+
1102
+ .stepper.lg .step-node {
1103
+ width: 2.6rem;
1104
+ height: 2.6rem;
1105
+ font-size: 1.05rem;
1106
+ border-radius: 14px;
1107
+ }
1108
+
1109
+ .stepper.lg .step-title {
1110
+ font-size: 1.1rem;
1111
+ }
1112
+
1113
+ .stepper.lg .step-desc {
1114
+ font-size: 0.92rem;
1115
+ }
1116
+
1117
+ @keyframes stepGlow {
1118
+ 0%,
1119
+ 100% {
1120
+ transform: translateY(0);
1121
+ }
1122
+ 50% {
1123
+ transform: translateY(-2px);
1124
+ }
1125
+ }
1126
+
780
1127
  /* ============================================
781
1128
  DATE PICKER COMPONENT STYLES
782
1129
  ============================================ */
783
1130
 
784
1131
  :host([data-ui="date-picker"]) {
785
- display: inline-block;
1132
+ display: block;
786
1133
  width: 100%;
787
- max-width: 300px;
1134
+ }
1135
+
1136
+ .date-picker-label {
1137
+ display: block;
1138
+ font-size: 0.9rem;
1139
+ font-weight: 500;
1140
+ color: var(--color-ink);
1141
+ margin-bottom: 0.5rem;
788
1142
  }
789
1143
 
790
1144
  .date-picker-container {
@@ -849,9 +1203,12 @@ input[type="checkbox"] {
849
1203
  .hidden-date-input {
850
1204
  position: absolute;
851
1205
  opacity: 0;
1206
+ width: 100%;
1207
+ height: 100%;
1208
+ top: 0;
1209
+ left: 0;
852
1210
  pointer-events: none;
853
- width: 0;
854
- height: 0;
1211
+ cursor: pointer;
855
1212
  }
856
1213
 
857
1214
  .calendar-btn {
@@ -890,4 +1247,190 @@ input[type="checkbox"] {
890
1247
  opacity: 0.6;
891
1248
  padding: 0 0.25rem;
892
1249
  font-weight: 500;
1250
+ }
1251
+
1252
+ /* ==================== LAYOUT COMPONENTS ==================== */
1253
+
1254
+ :host([data-ui="layout"]) {
1255
+ display: block;
1256
+ width: 100%;
1257
+ height: 100%;
1258
+ }
1259
+
1260
+ .layout-container {
1261
+ display: flex;
1262
+ width: 100%;
1263
+ height: 100%;
1264
+ background: var(--color-bg);
1265
+ position: relative;
1266
+ }
1267
+
1268
+ /* Header */
1269
+ :host([data-ui="layout-header"]) {
1270
+ display: block;
1271
+ width: 100%;
1272
+ flex-shrink: 0;
1273
+ }
1274
+
1275
+ .layout-header {
1276
+ display: flex;
1277
+ align-items: center;
1278
+ justify-content: space-between;
1279
+ padding: 0 1.5rem;
1280
+ background: var(--color-surface);
1281
+ border-bottom: 1px solid var(--color-border);
1282
+ box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
1283
+ }
1284
+
1285
+ /* Footer */
1286
+ :host([data-ui="layout-footer"]) {
1287
+ display: block;
1288
+ width: 100%;
1289
+ flex-shrink: 0;
1290
+ }
1291
+
1292
+ .layout-footer {
1293
+ display: flex;
1294
+ align-items: center;
1295
+ justify-content: space-between;
1296
+ padding: 0 1.5rem;
1297
+ background: var(--color-surface);
1298
+ border-top: 1px solid var(--color-border);
1299
+ box-shadow: 0 -1px 3px rgba(15, 23, 42, 0.06);
1300
+ }
1301
+
1302
+ /* Content */
1303
+ :host([data-ui="layout-content"]) {
1304
+ display: block;
1305
+ flex: 1;
1306
+ overflow: auto;
1307
+ min-width: 0;
1308
+ }
1309
+
1310
+ .layout-content {
1311
+ display: flex;
1312
+ flex-direction: column;
1313
+ width: 100%;
1314
+ height: 100%;
1315
+ position: relative;
1316
+ }
1317
+
1318
+ /* Sidebar */
1319
+ :host([data-ui="layout-sidebar"]) {
1320
+ display: block;
1321
+ flex-shrink: 0;
1322
+ background: var(--color-surface);
1323
+ border-right: 1px solid var(--color-border);
1324
+ position: relative;
1325
+ overflow: hidden;
1326
+ height: 100%;
1327
+ }
1328
+
1329
+ .layout-sidebar {
1330
+ display: flex;
1331
+ flex-direction: column;
1332
+ width: var(--sidebar-width, 240px);
1333
+ height: 100%;
1334
+ background: var(--color-surface);
1335
+ transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1336
+ position: relative;
1337
+ border-right: 1px solid var(--color-border);
1338
+ overflow: hidden;
1339
+ }
1340
+
1341
+ .layout-sidebar.collapsed {
1342
+ width: var(--sidebar-collapsed-width, 64px);
1343
+ }
1344
+
1345
+ .sidebar-content {
1346
+ flex: 1;
1347
+ overflow-y: auto;
1348
+ overflow-x: hidden;
1349
+ padding: 1rem 0;
1350
+ }
1351
+
1352
+ /* Sidebar Toggle Button */
1353
+ .sidebar-toggle {
1354
+ position: absolute;
1355
+ bottom: 1rem;
1356
+ right: 0;
1357
+ width: 40px;
1358
+ height: 40px;
1359
+ padding: 0;
1360
+ margin-right: 0.7rem;
1361
+ background: transparent;
1362
+ border: 1px solid var(--color-border);
1363
+ border-radius: 8px;
1364
+ color: var(--color-ink);
1365
+ cursor: pointer;
1366
+ display: flex;
1367
+ align-items: center;
1368
+ justify-content: center;
1369
+ transition: all 0.2s ease;
1370
+ }
1371
+
1372
+ .sidebar-toggle:hover {
1373
+ background: var(--color-muted);
1374
+ border-color: var(--color-border-strong);
1375
+ }
1376
+
1377
+ .sidebar-toggle:active {
1378
+ transform: scale(0.95);
1379
+ }
1380
+
1381
+ .toggle-icon {
1382
+ width: 18px;
1383
+ height: 18px;
1384
+ transition: transform 0.3s ease;
1385
+ }
1386
+
1387
+ .layout-sidebar.collapsed .toggle-icon {
1388
+ transform: rotate(180deg);
1389
+ }
1390
+
1391
+ /* Scrollbar Styling */
1392
+ .sidebar-content::-webkit-scrollbar {
1393
+ width: 6px;
1394
+ }
1395
+
1396
+ .sidebar-content::-webkit-scrollbar-track {
1397
+ background: transparent;
1398
+ }
1399
+
1400
+ .sidebar-content::-webkit-scrollbar-thumb {
1401
+ background: var(--color-border-strong);
1402
+ border-radius: 3px;
1403
+ }
1404
+
1405
+ .sidebar-content::-webkit-scrollbar-thumb:hover {
1406
+ background: var(--color-ink);
1407
+ opacity: 0.6;
1408
+ }
1409
+
1410
+ /* Responsive */
1411
+ @media (max-width: 768px) {
1412
+ .layout-header,
1413
+ .layout-footer {
1414
+ padding: 0 1rem;
1415
+ }
1416
+
1417
+ .layout-sidebar {
1418
+ position: absolute;
1419
+ left: 0;
1420
+ top: 0;
1421
+ height: 100%;
1422
+ z-index: 1000;
1423
+ box-shadow: 2px 0 8px rgba(15, 23, 42, 0.15);
1424
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1425
+ }
1426
+
1427
+ .layout-sidebar.collapsed {
1428
+ transform: translateX(calc(-1 * var(--sidebar-width, 240px)));
1429
+ }
1430
+ }
1431
+
1432
+ #ui-datepicker-div,
1433
+ .datepicker,
1434
+ .react-datepicker-popper {
1435
+ z-index: 99999 !important;
893
1436
  }