@metropolle/design-system 1.2025.1-2.5.1903 → 1.2026.0-1.2.1231

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.
@@ -44,131 +44,11 @@
44
44
 
45
45
  /* =========================
46
46
  Modal Styles
47
+ NOTE: Modal styling is handled 100% via inline styles in Modal.tsx
48
+ (same approach as ProfileCard for visual consistency)
49
+ NO CSS classes are used for the modal card itself.
47
50
  ========================= */
48
51
 
49
- /* Modal overlay styles */
50
- .mds-modal-overlay,
51
- .modal-overlay {
52
- position: fixed !important;
53
- top: 0 !important;
54
- left: 0 !important;
55
- right: 0 !important;
56
- bottom: 0 !important;
57
- background-color: transparent !important;
58
- backdrop-filter: blur(4px) !important;
59
- z-index: 9999 !important;
60
- display: flex !important;
61
- align-items: center !important;
62
- justify-content: center !important;
63
- }
64
-
65
- /* Modal card styles - Liquid Glass Effect */
66
- .mds-modal-overlay .mds-modal-card,
67
- .modal-overlay .mds-modal-card {
68
- background: rgba(255, 255, 255, 0.3) !important;
69
- backdrop-filter: blur(20px) !important;
70
- -webkit-backdrop-filter: blur(20px) !important;
71
- border: 1px solid rgba(255, 255, 255, 0.4) !important;
72
- box-shadow:
73
- 0 8px 32px rgba(0, 0, 0, 0.2) !important,
74
- 0 0 0 1px rgba(255, 255, 255, 0.2) !important,
75
- inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
76
- color: var(--text-primary) !important;
77
- min-width: 320px !important;
78
- max-width: 600px !important;
79
- width: 90vw !important;
80
- border-radius: 16px !important;
81
- position: relative !important;
82
- overflow: hidden !important;
83
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
84
- transform: translate(0, 0) !important;
85
- }
86
-
87
- /* Inner glow effect */
88
- .mds-modal-overlay .mds-modal-card::before,
89
- .modal-overlay .mds-modal-card::before {
90
- content: '' !important;
91
- position: absolute !important;
92
- top: 0 !important;
93
- left: 0 !important;
94
- right: 0 !important;
95
- bottom: 0 !important;
96
- background: linear-gradient(
97
- 135deg,
98
- rgba(255, 255, 255, 0.1) 0%,
99
- rgba(255, 255, 255, 0.05) 50%,
100
- rgba(255, 255, 255, 0.02) 100%
101
- ) !important;
102
- border-radius: 16px !important;
103
- pointer-events: none !important;
104
- z-index: -1 !important;
105
- }
106
-
107
- /* Border glow */
108
- .mds-modal-overlay .mds-modal-card::after,
109
- .modal-overlay .mds-modal-card::after {
110
- content: '' !important;
111
- position: absolute !important;
112
- top: -1px !important;
113
- left: -1px !important;
114
- right: -1px !important;
115
- bottom: -1px !important;
116
- background: linear-gradient(
117
- 45deg,
118
- rgba(255, 255, 255, 0.3),
119
- rgba(255, 255, 255, 0.1),
120
- rgba(255, 255, 255, 0.05),
121
- rgba(255, 255, 255, 0.1),
122
- rgba(255, 255, 255, 0.3)
123
- ) !important;
124
- border-radius: 16px !important;
125
- z-index: -2 !important;
126
- opacity: 0.6 !important;
127
- animation: mdsLiquidBorder 3s ease-in-out infinite !important;
128
- }
129
-
130
- @keyframes mdsLiquidBorder {
131
- 0%, 100% { opacity: 0.6; transform: scale(1); }
132
- 50% { opacity: 0.8; transform: scale(1.02); }
133
- }
134
-
135
- /* No hover lift or color change */
136
- .mds-modal-overlay .mds-modal-card,
137
- .mds-modal-overlay .mds-modal-card:hover,
138
- .modal-overlay .mds-modal-card,
139
- .modal-overlay .mds-modal-card:hover {
140
- transform: none !important;
141
- }
142
- .mds-modal-overlay .mds-modal-card:hover::after,
143
- .modal-overlay .mds-modal-card:hover::after {
144
- opacity: 0.6 !important;
145
- animation-duration: 3s !important;
146
- }
147
-
148
- /* Light theme */
149
- html[data-theme="light"] .mds-modal-overlay .mds-modal-card,
150
- html[data-theme="light"] .modal-overlay .mds-modal-card {
151
- background: rgba(255, 255, 255, 0.35) !important;
152
- border: 1px solid rgba(255, 255, 255, 0.5) !important;
153
- box-shadow:
154
- 0 8px 32px rgba(0, 0, 0, 0.15) !important,
155
- 0 0 0 1px rgba(255, 255, 255, 0.3) !important,
156
- inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
157
- }
158
-
159
- /* Dark theme */
160
- html[data-theme="dark"] .mds-modal-overlay .mds-modal-card,
161
- html:not([data-theme]) .mds-modal-overlay .mds-modal-card,
162
- html[data-theme="dark"] .modal-overlay .mds-modal-card,
163
- html:not([data-theme]) .modal-overlay .mds-modal-card {
164
- background: rgba(30, 41, 59, 0.5) !important;
165
- border: 1px solid rgba(255, 255, 255, 0.35) !important;
166
- box-shadow:
167
- 0 8px 32px rgba(0, 0, 0, 0.5) !important,
168
- 0 0 0 1px rgba(255, 255, 255, 0.25) !important,
169
- inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
170
- }
171
-
172
52
  /* Header close button sizing + alignment */
173
53
  .mds-modal-header > button[aria-label="Fechar"] {
174
54
  /* Size and reset */
@@ -460,17 +340,59 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
460
340
  font-family: var(--mds-typography-fontFamily-brand);
461
341
  }
462
342
 
343
+ /* Brand Logo Size Variants - Consistent across all environments */
344
+ .mds-brand-logo--sm {
345
+ font-size: 1.5rem; /* 24px - Navbar size */
346
+ letter-spacing: -0.03rem;
347
+ }
348
+
349
+ .mds-brand-logo--md {
350
+ font-size: 2rem; /* 32px - Medium contexts */
351
+ letter-spacing: -0.04rem;
352
+ }
353
+
354
+ .mds-brand-logo--lg {
355
+ font-size: 2.125rem; /* 34px - Landing/hero contexts */
356
+ letter-spacing: var(--mds-typography-letterSpacing-brand);
357
+ }
358
+
359
+ /* Navbar-specific brand logo - always consistent size */
360
+ .navbar-brand-logo,
361
+ .navbar__brand-logo,
362
+ .login-brand-logo {
363
+ font-size: 1.5rem !important;
364
+ letter-spacing: -0.03rem !important;
365
+ font-weight: var(--mds-typography-fontWeight-bold) !important;
366
+ font-family: var(--mds-typography-fontFamily-brand) !important;
367
+ color: var(--mds-color-text-primary) !important;
368
+ }
369
+
463
370
  /* Brand Logo Responsive */
464
371
  @media (max-width: 768px) {
465
372
  .mds-text--brand,
466
373
  .mds-brand-logo,
467
- .mds-brand-logo--sm,
468
- .mds-brand-logo--md,
469
- .mds-brand-logo--lg,
470
374
  .logo-brand {
471
375
  font-size: 1.8rem;
472
376
  letter-spacing: var(--mds-typography-letterSpacing-tight);
473
377
  }
378
+
379
+ .mds-brand-logo--sm,
380
+ .navbar-brand-logo,
381
+ .navbar__brand-logo,
382
+ .login-brand-logo {
383
+ font-size: 1.25rem !important;
384
+ letter-spacing: -0.02rem !important;
385
+ }
386
+
387
+ .mds-brand-logo--md {
388
+ font-size: 1.5rem;
389
+ letter-spacing: -0.03rem;
390
+ }
391
+
392
+ .mds-brand-logo--lg {
393
+ font-size: 1.8rem;
394
+ letter-spacing: var(--mds-typography-letterSpacing-tight);
395
+ }
474
396
  }
475
397
 
476
398
  /* Glass Card - Enhanced styles (complementing base tokens.css) */
@@ -994,6 +916,372 @@ html body div.mds-dropdown select.mds-select-themed {
994
916
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
995
917
  }
996
918
 
919
+ /* Select dropdown option styles for .mds-input - fixes Edge/Windows dropdown visibility */
920
+ select.mds-input {
921
+ -webkit-appearance: none;
922
+ -moz-appearance: none;
923
+ appearance: none;
924
+ color-scheme: dark; /* Forces OS to render dropdown with dark theme on Edge/Chrome Windows */
925
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23374151' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
926
+ background-position: right var(--mds-spacing-md) center;
927
+ background-repeat: no-repeat;
928
+ background-size: 16px;
929
+ padding-right: calc(var(--mds-spacing-md) + 24px);
930
+ cursor: pointer;
931
+ }
932
+
933
+ select.mds-input:disabled {
934
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
935
+ cursor: not-allowed;
936
+ }
937
+
938
+ select.mds-input option {
939
+ background-color: var(--mds-dashboard-control-option-bg) !important;
940
+ color: var(--mds-dashboard-control-option-color) !important;
941
+ padding: var(--mds-spacing-xs) var(--mds-spacing-sm) !important;
942
+ }
943
+
944
+ select.mds-input option:hover,
945
+ select.mds-input option:focus,
946
+ select.mds-input option:checked {
947
+ background-color: var(--mds-dashboard-control-option-bg-hover) !important;
948
+ color: var(--mds-dashboard-control-option-color-hover) !important;
949
+ }
950
+
951
+ /* Light theme override for select.mds-input */
952
+ html[data-theme="light"] select.mds-input {
953
+ color-scheme: light;
954
+ }
955
+
956
+ /* ============================================
957
+ Custom Select Component (JavaScript-rendered dropdown)
958
+ Cross-browser compatible - works on Edge/Chrome Windows
959
+ ============================================ */
960
+
961
+ /* Select Trigger Button */
962
+ .mds-select-trigger {
963
+ display: inline-flex;
964
+ align-items: center;
965
+ justify-content: space-between;
966
+ gap: 8px;
967
+ width: 100%;
968
+ min-width: 0;
969
+ max-width: 100%;
970
+ box-sizing: border-box;
971
+ padding: 10px 12px;
972
+ font-family: var(--mds-typography-fontFamily-brand, system-ui, sans-serif);
973
+ font-size: 0.95rem;
974
+ line-height: 1.5;
975
+ color: var(--mds-color-text-primary, #ffffff);
976
+ background-color: rgba(255, 255, 255, 0.08);
977
+ border: 1px solid rgba(255, 255, 255, 0.15);
978
+ border-radius: 8px;
979
+ cursor: pointer;
980
+ transition: all 0.2s ease;
981
+ text-align: left;
982
+ outline: none;
983
+ overflow: hidden;
984
+ }
985
+
986
+ .mds-select-trigger:hover:not(:disabled) {
987
+ background-color: rgba(255, 255, 255, 0.12);
988
+ border-color: rgba(255, 255, 255, 0.25);
989
+ }
990
+
991
+ .mds-select-trigger:focus:not(:disabled) {
992
+ border-color: var(--mds-color-primary, #3b82f6);
993
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
994
+ }
995
+
996
+ .mds-select-trigger--open {
997
+ border-color: var(--mds-color-primary, #3b82f6);
998
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
999
+ }
1000
+
1001
+ .mds-select-trigger--disabled {
1002
+ opacity: 0.5;
1003
+ cursor: not-allowed;
1004
+ background-color: rgba(255, 255, 255, 0.04);
1005
+ }
1006
+
1007
+ .mds-select-trigger--loading {
1008
+ cursor: wait;
1009
+ }
1010
+
1011
+ .mds-select-trigger--error {
1012
+ border-color: var(--mds-color-error, #ef4444);
1013
+ }
1014
+
1015
+ .mds-select-trigger--error:focus {
1016
+ box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.25);
1017
+ }
1018
+
1019
+ .mds-select-trigger--full-width {
1020
+ width: 100%;
1021
+ }
1022
+
1023
+ /* Select Trigger Value */
1024
+ .mds-select-trigger__value {
1025
+ flex: 1;
1026
+ overflow: hidden;
1027
+ text-overflow: ellipsis;
1028
+ white-space: nowrap;
1029
+ }
1030
+
1031
+ .mds-select-trigger__placeholder {
1032
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1033
+ }
1034
+
1035
+ /* Select Trigger Icon */
1036
+ .mds-select-trigger__icon {
1037
+ display: flex;
1038
+ align-items: center;
1039
+ justify-content: center;
1040
+ flex-shrink: 0;
1041
+ width: 20px;
1042
+ height: 20px;
1043
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1044
+ transition: transform 0.2s ease;
1045
+ }
1046
+
1047
+ .mds-select-trigger--open .mds-select-trigger__icon {
1048
+ transform: rotate(180deg);
1049
+ }
1050
+
1051
+ .mds-select-chevron {
1052
+ width: 16px;
1053
+ height: 16px;
1054
+ }
1055
+
1056
+ .mds-select-spinner {
1057
+ width: 16px;
1058
+ height: 16px;
1059
+ animation: mds-select-spin 1s linear infinite;
1060
+ }
1061
+
1062
+ @keyframes mds-select-spin {
1063
+ from { transform: rotate(0deg); }
1064
+ to { transform: rotate(360deg); }
1065
+ }
1066
+
1067
+ /* Select Dropdown */
1068
+ .mds-select-dropdown {
1069
+ background-color: var(--mds-dashboard-control-option-bg, #2a2a2a);
1070
+ border: 1px solid rgba(255, 255, 255, 0.15);
1071
+ border-radius: 8px;
1072
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
1073
+ overflow: hidden;
1074
+ animation: mds-select-dropdown-enter 0.15s ease-out;
1075
+ }
1076
+
1077
+ @keyframes mds-select-dropdown-enter {
1078
+ from {
1079
+ opacity: 0;
1080
+ transform: translateY(-4px);
1081
+ }
1082
+ to {
1083
+ opacity: 1;
1084
+ transform: translateY(0);
1085
+ }
1086
+ }
1087
+
1088
+ /* Select Search */
1089
+ .mds-select-search {
1090
+ position: relative;
1091
+ padding: 8px;
1092
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1093
+ }
1094
+
1095
+ .mds-select-search__input {
1096
+ width: 100%;
1097
+ padding: 8px 12px 8px 36px;
1098
+ font-family: var(--mds-typography-fontFamily-brand, system-ui, sans-serif);
1099
+ font-size: 0.9rem;
1100
+ color: var(--mds-color-text-primary, #ffffff);
1101
+ background-color: rgba(255, 255, 255, 0.08);
1102
+ border: 1px solid rgba(255, 255, 255, 0.15);
1103
+ border-radius: 6px;
1104
+ outline: none;
1105
+ transition: all 0.2s ease;
1106
+ }
1107
+
1108
+ .mds-select-search__input:focus {
1109
+ border-color: var(--mds-color-primary, #3b82f6);
1110
+ background-color: rgba(255, 255, 255, 0.12);
1111
+ }
1112
+
1113
+ .mds-select-search__input::-moz-placeholder {
1114
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1115
+ }
1116
+
1117
+ .mds-select-search__input::placeholder {
1118
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1119
+ }
1120
+
1121
+ .mds-select-search__icon {
1122
+ position: absolute;
1123
+ left: 20px;
1124
+ top: 50%;
1125
+ transform: translateY(-50%);
1126
+ width: 16px;
1127
+ height: 16px;
1128
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1129
+ pointer-events: none;
1130
+ }
1131
+
1132
+ /* Select Options List */
1133
+ .mds-select-options {
1134
+ list-style: none;
1135
+ margin: 0;
1136
+ padding: 4px;
1137
+ overflow-y: auto;
1138
+ max-height: inherit;
1139
+ }
1140
+
1141
+ /* Select Option */
1142
+ .mds-select-option {
1143
+ display: flex;
1144
+ align-items: center;
1145
+ justify-content: space-between;
1146
+ gap: 8px;
1147
+ padding: 10px 12px;
1148
+ font-size: 0.95rem;
1149
+ color: var(--mds-dashboard-control-option-color, #ffffff);
1150
+ background-color: transparent;
1151
+ border-radius: 6px;
1152
+ cursor: pointer;
1153
+ transition: background-color 0.15s ease;
1154
+ }
1155
+
1156
+ .mds-select-option:hover,
1157
+ .mds-select-option--highlighted {
1158
+ background-color: var(--mds-dashboard-control-option-bg-hover, #505050);
1159
+ }
1160
+
1161
+ .mds-select-option--selected {
1162
+ color: var(--mds-color-primary, #3b82f6);
1163
+ font-weight: 500;
1164
+ }
1165
+
1166
+ .mds-select-option--disabled {
1167
+ opacity: 0.5;
1168
+ cursor: not-allowed;
1169
+ }
1170
+
1171
+ .mds-select-option--disabled:hover {
1172
+ background-color: transparent;
1173
+ }
1174
+
1175
+ .mds-select-option--empty {
1176
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1177
+ font-style: italic;
1178
+ cursor: default;
1179
+ }
1180
+
1181
+ .mds-select-option--empty:hover {
1182
+ background-color: transparent;
1183
+ }
1184
+
1185
+ .mds-select-option__label {
1186
+ flex: 1;
1187
+ overflow: hidden;
1188
+ text-overflow: ellipsis;
1189
+ white-space: nowrap;
1190
+ }
1191
+
1192
+ .mds-select-option__check {
1193
+ flex-shrink: 0;
1194
+ width: 16px;
1195
+ height: 16px;
1196
+ color: var(--mds-color-primary, #3b82f6);
1197
+ }
1198
+
1199
+ /* Select Size Variants */
1200
+ .mds-select--sm .mds-select-trigger {
1201
+ padding: 6px 10px;
1202
+ font-size: 0.85rem;
1203
+ }
1204
+
1205
+ .mds-select--sm .mds-select-option {
1206
+ padding: 6px 10px;
1207
+ font-size: 0.85rem;
1208
+ }
1209
+
1210
+ .mds-select--lg .mds-select-trigger {
1211
+ padding: 14px 16px;
1212
+ font-size: 1.05rem;
1213
+ }
1214
+
1215
+ .mds-select--lg .mds-select-option {
1216
+ padding: 12px 16px;
1217
+ font-size: 1.05rem;
1218
+ }
1219
+
1220
+ /* Light Theme Overrides */
1221
+ html[data-theme="light"] .mds-select-trigger {
1222
+ color: var(--mds-color-text-primary, #1a1a1a);
1223
+ background-color: rgba(0, 0, 0, 0.04);
1224
+ border-color: rgba(0, 0, 0, 0.15);
1225
+ }
1226
+
1227
+ html[data-theme="light"] .mds-select-trigger:hover:not(:disabled) {
1228
+ background-color: rgba(0, 0, 0, 0.08);
1229
+ border-color: rgba(0, 0, 0, 0.25);
1230
+ }
1231
+
1232
+ html[data-theme="light"] .mds-select-trigger__placeholder {
1233
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1234
+ }
1235
+
1236
+ html[data-theme="light"] .mds-select-trigger__icon {
1237
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1238
+ }
1239
+
1240
+ html[data-theme="light"] .mds-select-dropdown {
1241
+ background-color: var(--mds-dashboard-control-option-bg, #ffffff);
1242
+ border-color: rgba(0, 0, 0, 0.15);
1243
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1);
1244
+ }
1245
+
1246
+ html[data-theme="light"] .mds-select-search {
1247
+ border-bottom-color: rgba(0, 0, 0, 0.1);
1248
+ }
1249
+
1250
+ html[data-theme="light"] .mds-select-search__input {
1251
+ color: var(--mds-color-text-primary, #1a1a1a);
1252
+ background-color: rgba(0, 0, 0, 0.04);
1253
+ border-color: rgba(0, 0, 0, 0.15);
1254
+ }
1255
+
1256
+ html[data-theme="light"] .mds-select-search__input:focus {
1257
+ background-color: rgba(0, 0, 0, 0.02);
1258
+ }
1259
+
1260
+ html[data-theme="light"] .mds-select-search__input::-moz-placeholder {
1261
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1262
+ }
1263
+
1264
+ html[data-theme="light"] .mds-select-search__input::placeholder {
1265
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1266
+ }
1267
+
1268
+ html[data-theme="light"] .mds-select-search__icon {
1269
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1270
+ }
1271
+
1272
+ html[data-theme="light"] .mds-select-option {
1273
+ color: var(--mds-dashboard-control-option-color, #1a1a1a);
1274
+ }
1275
+
1276
+ html[data-theme="light"] .mds-select-option:hover,
1277
+ html[data-theme="light"] .mds-select-option--highlighted {
1278
+ background-color: var(--mds-dashboard-control-option-bg-hover, #f0f7ff);
1279
+ }
1280
+
1281
+ html[data-theme="light"] .mds-select-option--empty {
1282
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1283
+ }
1284
+
997
1285
  /* Label styles */
998
1286
  .mds-label {
999
1287
  display: block;