@metropolle/design-system 1.2025.0-9.6.1040 → 1.2025.1-0.1.1548
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/css/compat/back.css +20 -12
- package/dist/css/components.css +323 -13
- package/dist/css/mermaid.css +163 -0
- package/dist/react/components/react/Select/Select.d.ts +20 -0
- package/dist/react/components/react/Select/Select.d.ts.map +1 -0
- package/dist/react/components/react/Select/index.d.ts +2 -0
- package/dist/react/components/react/Select/index.d.ts.map +1 -0
- package/dist/react/components/react/ThemeToggle/ThemeToggle.d.ts +28 -0
- package/dist/react/components/react/ThemeToggle/ThemeToggle.d.ts.map +1 -0
- package/dist/react/components/react/ThemeToggle/index.d.ts +3 -0
- package/dist/react/components/react/ThemeToggle/index.d.ts.map +1 -0
- package/dist/react/components/react/index.d.ts +4 -0
- package/dist/react/components/react/index.d.ts.map +1 -1
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.esm.js +93 -2
- package/dist/react/index.esm.js.map +1 -1
- package/dist/react/index.js +93 -0
- package/dist/react/index.js.map +1 -1
- package/package.json +6 -4
package/dist/css/compat/back.css
CHANGED
|
@@ -100,11 +100,15 @@ button:not([style]):not(.mds-button):not([class*="mds-button"]):not([class*="btn
|
|
|
100
100
|
transform: translateY(-1px) !important;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
/* Modal close button
|
|
103
|
+
/* Modal close button: keep static (no lift) but preserve vertical centering */
|
|
104
104
|
.mds-modal-header > button[aria-label="Fechar"],
|
|
105
105
|
.mds-modal-header > button[aria-label="Fechar"]:hover,
|
|
106
|
-
.mds-modal-header > button[aria-label="Fechar"]:focus
|
|
107
|
-
|
|
106
|
+
.mds-modal-header > button[aria-label="Fechar"]:focus,
|
|
107
|
+
.mds-modal-header > button[aria-label="Fechar"]:focus-visible {
|
|
108
|
+
position: absolute !important;
|
|
109
|
+
right: 16px !important;
|
|
110
|
+
top: 50% !important;
|
|
111
|
+
transform: translateY(-50%) !important;
|
|
108
112
|
transition: none !important;
|
|
109
113
|
box-shadow: none !important;
|
|
110
114
|
background-color: transparent !important;
|
|
@@ -193,7 +197,7 @@ html[data-theme="light"] button:hover {
|
|
|
193
197
|
/* ========================================
|
|
194
198
|
Selects and period filter (theme-responsive)
|
|
195
199
|
======================================== */
|
|
196
|
-
select,
|
|
200
|
+
select:not(.mds-select-themed):not(.mds-period-filter__select),
|
|
197
201
|
.mds-period-filter__select {
|
|
198
202
|
/* Match DS ghost button default state */
|
|
199
203
|
background-color: transparent !important;
|
|
@@ -217,33 +221,33 @@ select,
|
|
|
217
221
|
padding-right: 2.5rem !important;
|
|
218
222
|
}
|
|
219
223
|
|
|
220
|
-
select:hover,
|
|
224
|
+
select:not(.mds-select-themed):not(.mds-period-filter__select):hover,
|
|
221
225
|
.mds-period-filter__select:hover {
|
|
222
226
|
/* Same hover treatment as DS ghost */
|
|
223
227
|
background-color: var(--mds-color-background-secondary) !important;
|
|
224
228
|
}
|
|
225
229
|
|
|
226
|
-
select:focus,
|
|
230
|
+
select:not(.mds-select-themed):not(.mds-period-filter__select):focus,
|
|
227
231
|
.mds-period-filter__select:focus {
|
|
228
232
|
outline: none !important;
|
|
229
233
|
border-color: #60a5fa !important;
|
|
230
234
|
box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.2) !important;
|
|
231
235
|
}
|
|
232
236
|
|
|
233
|
-
select:disabled,
|
|
237
|
+
select:not(.mds-select-themed):not(.mds-period-filter__select):disabled,
|
|
234
238
|
.mds-period-filter__select:disabled {
|
|
235
239
|
opacity: 0.5 !important;
|
|
236
240
|
cursor: not-allowed !important;
|
|
237
241
|
}
|
|
238
242
|
|
|
239
|
-
select option {
|
|
243
|
+
select:not(.mds-select-themed):not(.mds-period-filter__select) option {
|
|
240
244
|
background-color: rgba(30, 30, 30, 0.95) !important;
|
|
241
245
|
color: #ffffff !important;
|
|
242
246
|
padding: 0.5rem !important;
|
|
243
247
|
}
|
|
244
248
|
|
|
245
249
|
/* Light theme select styles */
|
|
246
|
-
html[data-theme="light"] select,
|
|
250
|
+
html[data-theme="light"] select:not(.mds-select-themed):not(.mds-period-filter__select),
|
|
247
251
|
html[data-theme="light"] .mds-period-filter__select {
|
|
248
252
|
background-color: transparent !important;
|
|
249
253
|
color: #1a1a1a !important;
|
|
@@ -251,18 +255,18 @@ html[data-theme="light"] .mds-period-filter__select {
|
|
|
251
255
|
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='%23000000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important;
|
|
252
256
|
}
|
|
253
257
|
|
|
254
|
-
html[data-theme="light"] select:hover,
|
|
258
|
+
html[data-theme="light"] select:not(.mds-select-themed):not(.mds-period-filter__select):hover,
|
|
255
259
|
html[data-theme="light"] .mds-period-filter__select:hover {
|
|
256
260
|
background-color: rgba(0, 0, 0, 0.05) !important;
|
|
257
261
|
}
|
|
258
262
|
|
|
259
|
-
html[data-theme="light"] select:focus,
|
|
263
|
+
html[data-theme="light"] select:not(.mds-select-themed):not(.mds-period-filter__select):focus,
|
|
260
264
|
html[data-theme="light"] .mds-period-filter__select:focus {
|
|
261
265
|
border-color: #3b82f6 !important;
|
|
262
266
|
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2) !important;
|
|
263
267
|
}
|
|
264
268
|
|
|
265
|
-
html[data-theme="light"] select option {
|
|
269
|
+
html[data-theme="light"] select:not(.mds-select-themed):not(.mds-period-filter__select) option {
|
|
266
270
|
background-color: rgba(250, 250, 250, 0.95) !important;
|
|
267
271
|
color: #1a1a1a !important;
|
|
268
272
|
}
|
|
@@ -280,6 +284,10 @@ html[data-theme="light"] select option {
|
|
|
280
284
|
min-width: 150px !important;
|
|
281
285
|
}
|
|
282
286
|
|
|
287
|
+
.mds-dropdown {
|
|
288
|
+
position: relative !important;
|
|
289
|
+
}
|
|
290
|
+
|
|
283
291
|
/* ========================================
|
|
284
292
|
Inputs and selects (mds-*)
|
|
285
293
|
======================================== */
|
package/dist/css/components.css
CHANGED
|
@@ -169,18 +169,39 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
169
169
|
inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
/* Header button sizing + alignment */
|
|
172
|
+
/* Header close button sizing + alignment */
|
|
173
173
|
.mds-modal-header > button[aria-label="Fechar"] {
|
|
174
|
+
/* Size and reset */
|
|
174
175
|
font-size: 1rem !important;
|
|
175
176
|
line-height: 1 !important;
|
|
176
|
-
padding: 4px 8px !important;
|
|
177
177
|
transition: none !important;
|
|
178
|
+
padding: 0 !important;
|
|
179
|
+
background: transparent !important;
|
|
180
|
+
border: none !important;
|
|
181
|
+
/* Colors from DS tokens with robust fallback */
|
|
182
|
+
color: var(--mds-color-text-secondary, var(--text-secondary, rgba(0,0,0,0.65))) !important;
|
|
183
|
+
/* Absolute centering like the left icon */
|
|
184
|
+
position: absolute !important;
|
|
185
|
+
right: 16px !important;
|
|
186
|
+
top: 50% !important;
|
|
187
|
+
transform: translateY(-50%) !important;
|
|
188
|
+
width: 32px !important;
|
|
189
|
+
height: 32px !important;
|
|
190
|
+
display: inline-flex !important;
|
|
191
|
+
align-items: center !important;
|
|
192
|
+
justify-content: center !important;
|
|
178
193
|
}
|
|
179
194
|
.mds-modal-header > button[aria-label="Fechar"]:hover,
|
|
180
|
-
.mds-modal-header > button[aria-label="Fechar"]:focus
|
|
181
|
-
|
|
182
|
-
|
|
195
|
+
.mds-modal-header > button[aria-label="Fechar"]:focus,
|
|
196
|
+
.mds-modal-header > button[aria-label="Fechar"]:focus-visible {
|
|
197
|
+
/* Keep centered on interactive states and avoid lifts/shadows */
|
|
198
|
+
position: absolute !important;
|
|
199
|
+
right: 16px !important;
|
|
200
|
+
top: 50% !important;
|
|
201
|
+
transform: translateY(-50%) !important;
|
|
183
202
|
box-shadow: none !important;
|
|
203
|
+
transition: none !important;
|
|
204
|
+
color: var(--mds-color-text-primary, var(--text-primary, #111827)) !important;
|
|
184
205
|
}
|
|
185
206
|
|
|
186
207
|
/* Responsive modal */
|
|
@@ -529,12 +550,28 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
529
550
|
cursor: not-allowed;
|
|
530
551
|
}
|
|
531
552
|
|
|
532
|
-
/* Dropdown Options Styling */
|
|
533
|
-
.mds-period-filter__select option {
|
|
553
|
+
/* Dropdown Options Styling - High specificity to override compat rules */
|
|
554
|
+
select.mds-period-filter__select option {
|
|
534
555
|
background-color: var(--mds-dashboard-control-option-bg) !important;
|
|
535
556
|
color: var(--mds-dashboard-control-option-color) !important;
|
|
536
|
-
padding: var(--mds-spacing-xs) var(--mds-spacing-sm);
|
|
537
|
-
-webkit-appearance: none;
|
|
557
|
+
padding: var(--mds-spacing-xs) var(--mds-spacing-sm) !important;
|
|
558
|
+
-webkit-appearance: none !important;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
select.mds-period-filter__select option:hover,
|
|
562
|
+
select.mds-period-filter__select option:focus,
|
|
563
|
+
select.mds-period-filter__select option:checked {
|
|
564
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
565
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
/* Enhanced contrast for webkit-based browsers */
|
|
569
|
+
select.mds-period-filter__select option:focus,
|
|
570
|
+
select.mds-period-filter__select option:active,
|
|
571
|
+
select.mds-period-filter__select option[selected] {
|
|
572
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
573
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
574
|
+
font-weight: 500 !important;
|
|
538
575
|
}
|
|
539
576
|
|
|
540
577
|
/* Additional styling for browsers that support it */
|
|
@@ -555,6 +592,178 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
555
592
|
background: var(--mds-dashboard-control-border-disabled);
|
|
556
593
|
}
|
|
557
594
|
|
|
595
|
+
/* =========================
|
|
596
|
+
Generic Dropdown/Select Component
|
|
597
|
+
========================= */
|
|
598
|
+
|
|
599
|
+
/* Generic dropdown container */
|
|
600
|
+
.mds-dropdown {
|
|
601
|
+
position: relative;
|
|
602
|
+
display: inline-block;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
/* Generic themed select - inherits dashboard control styling */
|
|
606
|
+
.mds-select-themed {
|
|
607
|
+
padding: var(--mds-spacing-sm) var(--mds-spacing-md) !important;
|
|
608
|
+
font-weight: var(--mds-typography-fontWeight-medium) !important;
|
|
609
|
+
font-size: var(--mds-typography-fontSize-sm) !important;
|
|
610
|
+
font-family: var(--mds-typography-fontFamily-brand) !important;
|
|
611
|
+
border-radius: var(--mds-spacing-borderRadius-md) !important;
|
|
612
|
+
cursor: pointer !important;
|
|
613
|
+
outline: none !important;
|
|
614
|
+
-webkit-appearance: none !important;
|
|
615
|
+
-moz-appearance: none !important;
|
|
616
|
+
appearance: none !important;
|
|
617
|
+
background-repeat: no-repeat !important;
|
|
618
|
+
background-size: 16px !important;
|
|
619
|
+
padding-right: 2rem !important;
|
|
620
|
+
transition: var(--mds-effects-transition-normal) !important;
|
|
621
|
+
|
|
622
|
+
/* Theme-specific styles are applied via CSS custom properties */
|
|
623
|
+
background-color: var(--mds-dashboard-control-bg) !important;
|
|
624
|
+
color: var(--mds-dashboard-control-color) !important;
|
|
625
|
+
border: 1px solid var(--mds-dashboard-control-border) !important;
|
|
626
|
+
background-image: var(--mds-dashboard-control-dropdown-icon) !important;
|
|
627
|
+
background-position: right 8px center !important;
|
|
628
|
+
box-shadow: var(--mds-dashboard-control-shadow) !important;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.mds-select-themed:hover:not(:disabled) {
|
|
632
|
+
background-color: var(--mds-dashboard-control-bg-hover) !important;
|
|
633
|
+
box-shadow: var(--mds-dashboard-control-shadow-hover) !important;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
.mds-select-themed:disabled {
|
|
637
|
+
opacity: var(--mds-effects-opacity-disabled) !important;
|
|
638
|
+
cursor: not-allowed !important;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/* Dropdown Options Styling - High specificity to override compat rules */
|
|
642
|
+
select.mds-select-themed option {
|
|
643
|
+
background-color: var(--mds-dashboard-control-option-bg) !important;
|
|
644
|
+
color: var(--mds-dashboard-control-option-color) !important;
|
|
645
|
+
padding: var(--mds-spacing-xs) var(--mds-spacing-sm) !important;
|
|
646
|
+
-webkit-appearance: none !important;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
select.mds-select-themed option:hover,
|
|
650
|
+
select.mds-select-themed option:focus,
|
|
651
|
+
select.mds-select-themed option:checked {
|
|
652
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
653
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
/* Enhanced contrast for webkit-based browsers */
|
|
657
|
+
select.mds-select-themed option:focus,
|
|
658
|
+
select.mds-select-themed option:active,
|
|
659
|
+
select.mds-select-themed option[selected] {
|
|
660
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
661
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
662
|
+
font-weight: 500 !important;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
/* Maximum specificity for geo dropdowns to ensure they always work */
|
|
666
|
+
html .mds-dropdown select.mds-select-themed option {
|
|
667
|
+
background-color: var(--mds-dashboard-control-option-bg) !important;
|
|
668
|
+
color: var(--mds-dashboard-control-option-color) !important;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
html .mds-dropdown select.mds-select-themed option:hover,
|
|
672
|
+
html .mds-dropdown select.mds-select-themed option:focus,
|
|
673
|
+
html .mds-dropdown select.mds-select-themed option:checked {
|
|
674
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
675
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/* Absolute specificity to override any browser or other CSS */
|
|
679
|
+
html body .mds-dropdown select.mds-select-themed option,
|
|
680
|
+
html body div .mds-dropdown select.mds-select-themed option {
|
|
681
|
+
background-color: var(--mds-dashboard-control-option-bg) !important;
|
|
682
|
+
color: var(--mds-dashboard-control-option-color) !important;
|
|
683
|
+
padding: var(--mds-spacing-xs) var(--mds-spacing-sm) !important;
|
|
684
|
+
font-size: var(--mds-typography-fontSize-sm) !important;
|
|
685
|
+
font-family: var(--mds-typography-fontFamily-brand) !important;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
html body .mds-dropdown select.mds-select-themed option:hover,
|
|
689
|
+
html body .mds-dropdown select.mds-select-themed option:focus,
|
|
690
|
+
html body .mds-dropdown select.mds-select-themed option:checked,
|
|
691
|
+
html body div .mds-dropdown select.mds-select-themed option:hover,
|
|
692
|
+
html body div .mds-dropdown select.mds-select-themed option:focus,
|
|
693
|
+
html body div .mds-dropdown select.mds-select-themed option:checked {
|
|
694
|
+
background-color: var(--mds-dashboard-control-option-bg-hover) !important;
|
|
695
|
+
color: var(--mds-dashboard-control-option-color-hover) !important;
|
|
696
|
+
font-weight: 500 !important;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/* Ultimate specificity safeguard for geo dropdowns */
|
|
700
|
+
html body div.mds-dropdown select.mds-select-themed {
|
|
701
|
+
background-color: var(--mds-dashboard-control-bg) !important;
|
|
702
|
+
color: var(--mds-dashboard-control-color) !important;
|
|
703
|
+
border: 1px solid var(--mds-dashboard-control-border) !important;
|
|
704
|
+
background-image: var(--mds-dashboard-control-dropdown-icon) !important;
|
|
705
|
+
background-position: right 8px center !important;
|
|
706
|
+
background-repeat: no-repeat !important;
|
|
707
|
+
background-size: 16px !important;
|
|
708
|
+
padding-right: 2rem !important;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
/* Additional styling for browsers that support it */
|
|
712
|
+
.mds-select-themed::-webkit-scrollbar {
|
|
713
|
+
width: 8px;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.mds-select-themed::-webkit-scrollbar-track {
|
|
717
|
+
background: var(--mds-dashboard-control-option-bg);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
.mds-select-themed::-webkit-scrollbar-thumb {
|
|
721
|
+
background: var(--mds-dashboard-control-border);
|
|
722
|
+
border-radius: 4px;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
.mds-select-themed::-webkit-scrollbar-thumb:hover {
|
|
726
|
+
background: var(--mds-dashboard-control-border-disabled);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/* Compatibility alias - maps period filter to generic themed select */
|
|
730
|
+
.mds-period-filter__select {
|
|
731
|
+
/* Copy all styles from .mds-select-themed for full compatibility */
|
|
732
|
+
padding: var(--mds-spacing-sm) var(--mds-spacing-md);
|
|
733
|
+
font-weight: var(--mds-typography-fontWeight-medium);
|
|
734
|
+
font-size: var(--mds-typography-fontSize-sm);
|
|
735
|
+
font-family: var(--mds-typography-fontFamily-brand);
|
|
736
|
+
border-radius: var(--mds-spacing-borderRadius-md);
|
|
737
|
+
cursor: pointer;
|
|
738
|
+
outline: none;
|
|
739
|
+
-webkit-appearance: none;
|
|
740
|
+
-moz-appearance: none;
|
|
741
|
+
appearance: none;
|
|
742
|
+
background-repeat: no-repeat;
|
|
743
|
+
background-size: 16px;
|
|
744
|
+
padding-right: 2rem;
|
|
745
|
+
min-width: 140px;
|
|
746
|
+
transition: var(--mds-effects-transition-normal);
|
|
747
|
+
|
|
748
|
+
/* Theme-specific styles are applied via CSS custom properties */
|
|
749
|
+
background-color: var(--mds-dashboard-control-bg);
|
|
750
|
+
color: var(--mds-dashboard-control-color);
|
|
751
|
+
border: 1px solid var(--mds-dashboard-control-border);
|
|
752
|
+
background-image: var(--mds-dashboard-control-dropdown-icon);
|
|
753
|
+
background-position: right 8px center;
|
|
754
|
+
box-shadow: var(--mds-dashboard-control-shadow);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.mds-period-filter__select:hover:not(:disabled) {
|
|
758
|
+
background-color: var(--mds-dashboard-control-bg-hover);
|
|
759
|
+
box-shadow: var(--mds-dashboard-control-shadow-hover);
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
.mds-period-filter__select:disabled {
|
|
763
|
+
opacity: var(--mds-effects-opacity-disabled);
|
|
764
|
+
cursor: not-allowed;
|
|
765
|
+
}
|
|
766
|
+
|
|
558
767
|
/* Dashboard Refresh Button */
|
|
559
768
|
.mds-dashboard-refresh {
|
|
560
769
|
padding: var(--mds-spacing-sm) var(--mds-spacing-md);
|
|
@@ -592,11 +801,11 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
592
801
|
|
|
593
802
|
/* Theme Support - Default (Dark Theme) */
|
|
594
803
|
:root {
|
|
595
|
-
/* Dashboard Control Variables - Dark Theme */
|
|
596
|
-
--mds-dashboard-control-bg: rgba(
|
|
597
|
-
--mds-dashboard-control-bg-hover: rgba(
|
|
804
|
+
/* Dashboard Control Variables - Dark Theme (default) */
|
|
805
|
+
--mds-dashboard-control-bg: rgba(0, 0, 0, 0.35);
|
|
806
|
+
--mds-dashboard-control-bg-hover: rgba(0, 0, 0, 0.5);
|
|
598
807
|
--mds-dashboard-control-color: #ffffff;
|
|
599
|
-
--mds-dashboard-control-border: rgba(255, 255, 255, 0.
|
|
808
|
+
--mds-dashboard-control-border: rgba(255, 255, 255, 0.18);
|
|
600
809
|
--mds-dashboard-control-border-disabled: rgba(255, 255, 255, 0.3);
|
|
601
810
|
--mds-dashboard-control-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
602
811
|
--mds-dashboard-control-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
@@ -605,6 +814,96 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
605
814
|
/* Dropdown Options - Dark Theme */
|
|
606
815
|
--mds-dashboard-control-option-bg: #2a2a2a;
|
|
607
816
|
--mds-dashboard-control-option-color: #ffffff;
|
|
817
|
+
--mds-dashboard-control-option-bg-hover: #505050;
|
|
818
|
+
--mds-dashboard-control-option-color-hover: #ffffff;
|
|
819
|
+
|
|
820
|
+
/* Login specific variables - Dark Theme */
|
|
821
|
+
--mds-login-bg: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%);
|
|
822
|
+
--mds-input-bg: rgba(255, 255, 255, 0.1);
|
|
823
|
+
--mds-input-focus-border: #aaaaaa;
|
|
824
|
+
--mds-input-focus-bg: rgba(255, 255, 255, 0.15);
|
|
825
|
+
--mds-input-focus-shadow: 0 4px 12px rgba(170, 170, 170, 0.2);
|
|
826
|
+
--mds-error-bg: rgba(200, 200, 200, 0.15);
|
|
827
|
+
--mds-error-border: rgba(200, 200, 200, 0.3);
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
/* Theme Toggle (square, themed) */
|
|
831
|
+
.mds-theme-toggle {
|
|
832
|
+
position: relative;
|
|
833
|
+
display: inline-flex;
|
|
834
|
+
align-items: center;
|
|
835
|
+
justify-content: center;
|
|
836
|
+
width: var(--mds-theme-toggle-size, 2.5rem);
|
|
837
|
+
height: var(--mds-theme-toggle-size, 2.5rem);
|
|
838
|
+
min-width: var(--mds-theme-toggle-size, 2.5rem);
|
|
839
|
+
padding: 0;
|
|
840
|
+
border-radius: var(--mds-spacing-borderRadius-md);
|
|
841
|
+
border: 1px solid var(--mds-dashboard-control-border);
|
|
842
|
+
background-color: var(--mds-dashboard-control-bg);
|
|
843
|
+
color: var(--mds-dashboard-control-color);
|
|
844
|
+
box-shadow: var(--mds-dashboard-control-shadow);
|
|
845
|
+
cursor: pointer;
|
|
846
|
+
outline: none;
|
|
847
|
+
transition: var(--mds-effects-transition-normal);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/* Force dark background in dark theme */
|
|
851
|
+
.mds-theme-toggle[data-theme="dark"] {
|
|
852
|
+
background-color: rgba(0, 0, 0, 0.35) !important;
|
|
853
|
+
border: 1px solid rgba(255, 255, 255, 0.18) !important;
|
|
854
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
.mds-theme-toggle:hover:not(:disabled) {
|
|
858
|
+
background-color: var(--mds-dashboard-control-bg-hover);
|
|
859
|
+
box-shadow: var(--mds-dashboard-control-shadow-hover);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
/* Force dark hover in dark theme */
|
|
863
|
+
.mds-theme-toggle[data-theme="dark"]:hover:not(:disabled) {
|
|
864
|
+
background-color: rgba(0, 0, 0, 0.5) !important;
|
|
865
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
.mds-theme-toggle:disabled {
|
|
869
|
+
opacity: var(--mds-effects-opacity-disabled);
|
|
870
|
+
cursor: not-allowed;
|
|
871
|
+
background-color: transparent !important;
|
|
872
|
+
border: 2px solid var(--mds-dashboard-control-border-disabled);
|
|
873
|
+
box-shadow: none !important;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
.mds-theme-toggle--sm { --mds-theme-toggle-size: 2rem; }
|
|
877
|
+
.mds-theme-toggle--md { --mds-theme-toggle-size: 2.5rem; }
|
|
878
|
+
.mds-theme-toggle--lg { --mds-theme-toggle-size: 3rem; }
|
|
879
|
+
|
|
880
|
+
/* Monochromatic theme toggle icons via CSS pseudo-elements */
|
|
881
|
+
.mds-theme-toggle[data-theme="light"]::before {
|
|
882
|
+
content: '';
|
|
883
|
+
position: absolute;
|
|
884
|
+
left: 50%;
|
|
885
|
+
top: 50%;
|
|
886
|
+
transform: translate(-50%, -50%);
|
|
887
|
+
width: 20px;
|
|
888
|
+
height: 20px;
|
|
889
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z' fill='%23000000'/%3E%3C/svg%3E");
|
|
890
|
+
background-size: contain;
|
|
891
|
+
background-repeat: no-repeat;
|
|
892
|
+
background-position: center;
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
.mds-theme-toggle[data-theme="dark"]::before {
|
|
896
|
+
content: '';
|
|
897
|
+
position: absolute;
|
|
898
|
+
left: 50%;
|
|
899
|
+
top: 50%;
|
|
900
|
+
transform: translate(-50%, -50%);
|
|
901
|
+
width: 20px;
|
|
902
|
+
height: 20px;
|
|
903
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='4' fill='%23ffffff'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
|
|
904
|
+
background-size: contain;
|
|
905
|
+
background-repeat: no-repeat;
|
|
906
|
+
background-position: center;
|
|
608
907
|
}
|
|
609
908
|
|
|
610
909
|
/* Light Theme Support */
|
|
@@ -621,6 +920,17 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
|
|
|
621
920
|
/* Dropdown Options - Light Theme */
|
|
622
921
|
--mds-dashboard-control-option-bg: #ffffff;
|
|
623
922
|
--mds-dashboard-control-option-color: #1a1a1a;
|
|
923
|
+
--mds-dashboard-control-option-bg-hover: #f0f7ff;
|
|
924
|
+
--mds-dashboard-control-option-color-hover: #1a1a1a;
|
|
925
|
+
|
|
926
|
+
/* Login specific variables - Light Theme */
|
|
927
|
+
--mds-login-bg: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 50%, #dcdcdc 100%);
|
|
928
|
+
--mds-input-bg: rgba(255, 255, 255, 0.8);
|
|
929
|
+
--mds-input-focus-border: #666666;
|
|
930
|
+
--mds-input-focus-bg: rgba(255, 255, 255, 1);
|
|
931
|
+
--mds-input-focus-shadow: 0 4px 12px rgba(102, 102, 102, 0.15);
|
|
932
|
+
--mds-error-bg: rgba(150, 150, 150, 0.1);
|
|
933
|
+
--mds-error-border: rgba(150, 150, 150, 0.3);
|
|
624
934
|
}
|
|
625
935
|
|
|
626
936
|
/* Form Input Styles */
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/* Metropolle Design System – Mermaid Diagram Styling */
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
Provides palette-aware theming for Mermaid diagrams that matches the
|
|
5
|
+
architecture documentation reference. Consumers should pair these styles
|
|
6
|
+
with the class definitions exported in documentation snippets (ex: pastelBlue,
|
|
7
|
+
accentOrange) to ensure consistent fill and typography across projects.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
--mds-mermaid-label-dark: var(--mds-color-neutral-900, #0f172a);
|
|
12
|
+
--mds-mermaid-label-light: var(--mds-color-neutral-50, #f8fafc);
|
|
13
|
+
--mds-mermaid-node-font-weight: 600;
|
|
14
|
+
--mds-mermaid-edge-font-weight: 500;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* Base container styling – glass morphism aligned with platform visuals */
|
|
18
|
+
html[data-theme='dark'] .mermaid {
|
|
19
|
+
background: rgba(255, 255, 255, 0.05) !important;
|
|
20
|
+
border-radius: var(--mds-border-radius-lg, 12px);
|
|
21
|
+
padding: var(--mds-space-4, 1rem);
|
|
22
|
+
backdrop-filter: blur(10px);
|
|
23
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
24
|
+
margin: var(--mds-space-4, 1rem) 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html[data-theme='light'] .mermaid {
|
|
28
|
+
background: rgba(255, 255, 255, 0.7) !important;
|
|
29
|
+
border-radius: var(--mds-border-radius-lg, 12px);
|
|
30
|
+
padding: var(--mds-space-4, 1rem);
|
|
31
|
+
backdrop-filter: blur(10px);
|
|
32
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
33
|
+
margin: var(--mds-space-4, 1rem) 0;
|
|
34
|
+
box-shadow: var(--mds-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Default typography settings for nodes and clusters */
|
|
38
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster) {
|
|
39
|
+
--mds-mermaid-node-color: var(--mds-mermaid-label-dark);
|
|
40
|
+
--mds-mermaid-node-weight-current: var(--mds-mermaid-node-font-weight);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Switch to light foreground when nodes use strong accent fills */
|
|
44
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#00bcd4" i]),
|
|
45
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#1565c0" i]),
|
|
46
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#1976d2" i]),
|
|
47
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#2196f3" i]),
|
|
48
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#34a853" i]),
|
|
49
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#388e3c" i]),
|
|
50
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#3b82f6" i]),
|
|
51
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#3f48cc" i]),
|
|
52
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#4285f4" i]),
|
|
53
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#45b7d1" i]),
|
|
54
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#4b612c" i]),
|
|
55
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#4caf50" i]),
|
|
56
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#4ecdc4" i]),
|
|
57
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#607d8b" i]),
|
|
58
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#627eea" i]),
|
|
59
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#673ab7" i]),
|
|
60
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#689f38" i]),
|
|
61
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#759c3e" i]),
|
|
62
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#795548" i]),
|
|
63
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#7b1fa2" i]),
|
|
64
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#96ceb4" i]),
|
|
65
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#9c27b0" i]),
|
|
66
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#c2185b" i]),
|
|
67
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#dd344c" i]),
|
|
68
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#e91e63" i]),
|
|
69
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#f44336" i]),
|
|
70
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#f57c00" i]),
|
|
71
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#f7931a" i]),
|
|
72
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#ff5722" i]),
|
|
73
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#ff6b6b" i]),
|
|
74
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster):has(> :is(rect, polygon, ellipse, circle, path)[fill="#ff9800" i]) {
|
|
75
|
+
--mds-mermaid-node-color: var(--mds-mermaid-label-light);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Apply the computed foreground colour to all supported Mermaid label types */
|
|
79
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster) g.label text,
|
|
80
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster) g.label tspan {
|
|
81
|
+
fill: var(--mds-mermaid-node-color) !important;
|
|
82
|
+
font-weight: var(--mds-mermaid-node-weight-current);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
html[data-theme='dark'] .mermaid :is(g.node, g.cluster) g.label foreignObject * {
|
|
86
|
+
color: var(--mds-mermaid-node-color) !important;
|
|
87
|
+
font-weight: var(--mds-mermaid-node-weight-current);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Preserve lighter typography for edge labels so they remain legible */
|
|
91
|
+
html[data-theme='dark'] .mermaid .edgeLabel text,
|
|
92
|
+
html[data-theme='dark'] .mermaid .edgeLabel tspan {
|
|
93
|
+
fill: var(--ifm-font-color-base, #e5e7eb) !important;
|
|
94
|
+
font-weight: var(--mds-mermaid-edge-font-weight);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Light theme keeps default dark text but enforces consistent weight */
|
|
98
|
+
html[data-theme='light'] .mermaid :is(g.node, g.cluster) g.label text,
|
|
99
|
+
html[data-theme='light'] .mermaid :is(g.node, g.cluster) g.label tspan,
|
|
100
|
+
html[data-theme='light'] .mermaid :is(g.node, g.cluster) g.label foreignObject * {
|
|
101
|
+
font-weight: var(--mds-mermaid-node-font-weight, 600);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
* Metropolle Official Mermaid Diagram Classes
|
|
106
|
+
* Based on Arquitetura.md color standards - compatible with light/dark themes
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
/* Frontend/UI Components */
|
|
110
|
+
.mds-frontend {
|
|
111
|
+
fill: #e3f2fd;
|
|
112
|
+
stroke: #1976d2;
|
|
113
|
+
stroke-width: 2px;
|
|
114
|
+
color: #000;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* AWS/Infrastructure Components */
|
|
118
|
+
.mds-aws {
|
|
119
|
+
fill: #fff3e0;
|
|
120
|
+
stroke: #f57c00;
|
|
121
|
+
stroke-width: 2px;
|
|
122
|
+
color: #000;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* Runtime/Process Components */
|
|
126
|
+
.mds-runtime {
|
|
127
|
+
fill: #f3e5f5;
|
|
128
|
+
stroke: #8e24aa;
|
|
129
|
+
stroke-width: 2px;
|
|
130
|
+
color: #000;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Storage/Data Components */
|
|
134
|
+
.mds-storage {
|
|
135
|
+
fill: #e8f5e8;
|
|
136
|
+
stroke: #388e3c;
|
|
137
|
+
stroke-width: 2px;
|
|
138
|
+
color: #000;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Security/Authentication Components */
|
|
142
|
+
.mds-security {
|
|
143
|
+
fill: #ffebee;
|
|
144
|
+
stroke: #d32f2f;
|
|
145
|
+
stroke-width: 2px;
|
|
146
|
+
color: #000;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Results/Output Components */
|
|
150
|
+
.mds-result {
|
|
151
|
+
fill: #fce4ec;
|
|
152
|
+
stroke: #c2185b;
|
|
153
|
+
stroke-width: 2px;
|
|
154
|
+
color: #000;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Legacy compatibility aliases */
|
|
158
|
+
.pastelBlue { fill: #e3f2fd; stroke: #1976d2; stroke-width: 2px; color: #000; }
|
|
159
|
+
.accentOrange { fill: #fff3e0; stroke: #f57c00; stroke-width: 2px; color: #000; }
|
|
160
|
+
.pastelPurple { fill: #f3e5f5; stroke: #8e24aa; stroke-width: 2px; color: #000; }
|
|
161
|
+
.pastelGreen { fill: #e8f5e8; stroke: #388e3c; stroke-width: 2px; color: #000; }
|
|
162
|
+
.accentRed { fill: #ffebee; stroke: #d32f2f; stroke-width: 2px; color: #000; }
|
|
163
|
+
.pastelPink { fill: #fce4ec; stroke: #c2185b; stroke-width: 2px; color: #000; }
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { SelectHTMLAttributes } from 'react';
|
|
2
|
+
export interface SelectOption {
|
|
3
|
+
label: React.ReactNode;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
|
|
7
|
+
options?: SelectOption[];
|
|
8
|
+
variant?: 'base' | 'themed' | 'dashboard';
|
|
9
|
+
containerClassName?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Select Component (Design System)
|
|
13
|
+
*
|
|
14
|
+
* Provides a themed select element with multiple variants:
|
|
15
|
+
* - `base`: Standard form select with mds-input styling
|
|
16
|
+
* - `themed`: Generic themed select with dashboard control styling (recommended)
|
|
17
|
+
* - `dashboard`: Legacy alias for themed variant (backward compatibility)
|
|
18
|
+
*/
|
|
19
|
+
export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
|
|
20
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../../src/components/react/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGhE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAE1E,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAE1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,uFAwCjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/react/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC"}
|