mithril-materialized 3.15.0 → 3.17.0
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/README.md +32 -2
- package/dist/advanced.css +109 -4
- package/dist/button.d.ts +3 -1
- package/dist/circular-progress.d.ts +2 -2
- package/dist/combobox.d.ts +35 -0
- package/dist/components.css +144 -17
- package/dist/core.css +278 -3
- package/dist/floating-action-button.d.ts +2 -1
- package/dist/form-section.d.ts +35 -0
- package/dist/forms.css +280 -5
- package/dist/index.css +357 -22
- package/dist/index.d.ts +3 -2
- package/dist/index.esm.js +728 -299
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +741 -298
- package/dist/index.js.map +1 -0
- package/dist/index.min.css +2 -2
- package/dist/index.umd.js +741 -298
- package/dist/index.umd.js.map +1 -0
- package/dist/input-options.d.ts +4 -1
- package/dist/likert-scale.d.ts +2 -1
- package/dist/linear-progress.d.ts +2 -2
- package/dist/material-icon.d.ts +2 -1
- package/dist/radio.d.ts +9 -0
- package/dist/range-slider.d.ts +3 -2
- package/dist/rating.d.ts +2 -1
- package/dist/search-select.d.ts +15 -2
- package/dist/select.d.ts +14 -1
- package/dist/sidenav.d.ts +11 -1
- package/dist/treeview.d.ts +2 -2
- package/dist/types.d.ts +5 -0
- package/dist/utilities.css +93 -2
- package/dist/utils.d.ts +30 -1
- package/package.json +20 -20
- package/sass/components/_badge-component.scss +8 -0
- package/sass/components/_buttons.scss +9 -9
- package/sass/components/_global.scss +93 -0
- package/sass/components/_likert-scale.scss +24 -0
- package/sass/components/_sidenav.scss +21 -3
- package/sass/components/_theme-variables.scss +22 -1
- package/sass/components/_toggle-group.scss +3 -0
- package/sass/components/forms/_form-groups.scss +1 -1
- package/sass/components/forms/_form-section.scss +63 -0
- package/sass/components/forms/_forms.scss +1 -0
- package/sass/components/forms/_input-fields.scss +55 -0
- package/sass/components/forms/_range-enhanced.scss +3 -3
- package/sass/components/forms/_select.scss +85 -0
package/README.md
CHANGED
|
@@ -58,11 +58,12 @@ Components marked with an * are not included in the original materialize-css lib
|
|
|
58
58
|
- TimePicker (with inline mode and switchable AM/PM/24h)*
|
|
59
59
|
- [Selections](https://erikvullings.github.io/mithril-materialized/#!/selections)
|
|
60
60
|
- Select
|
|
61
|
-
- SearchSelect*, a searchable select dropdown
|
|
61
|
+
- SearchSelect*, a searchable select dropdown (supports async remote loading via `loadOptions`)
|
|
62
62
|
- Options
|
|
63
|
-
- RadioButtons
|
|
63
|
+
- RadioButtons (HTML labels/descriptions require explicit `allowHtml: true`)
|
|
64
64
|
- Switch
|
|
65
65
|
- Dropdown
|
|
66
|
+
- ToggleButton* (single toggle button component)
|
|
66
67
|
- [Collections](https://erikvullings.github.io/mithril-materialized/#!/collections)
|
|
67
68
|
- Basic, Link and Avatar Collections
|
|
68
69
|
- Collapsible or accordion
|
|
@@ -412,6 +413,35 @@ See our [contributing guide](CONTRIBUTING.md) for detailed information.
|
|
|
412
413
|
- File upload processing: Real-time without blocking
|
|
413
414
|
- TextArea auto-resize: <1ms per keystroke
|
|
414
415
|
|
|
416
|
+
### Button semantics
|
|
417
|
+
|
|
418
|
+
`Button`, `LargeButton`, `SmallButton`, and `FlatButton` render native `<button>` elements for actions. Use `href` when the component represents navigation; it then renders an `<a>` without a button `type`.
|
|
419
|
+
|
|
420
|
+
```typescript
|
|
421
|
+
m(Button, { label: 'Save', onclick: save });
|
|
422
|
+
m(Button, { label: 'Read the docs', href: '/docs' });
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
> **Migration:** If you relied on the previous anchor markup for navigation, add `href`. Action buttons now correctly use native button semantics.
|
|
426
|
+
|
|
427
|
+
### Async SearchSelect
|
|
428
|
+
|
|
429
|
+
Use `loadOptions(query)` to retrieve options remotely. The component displays loading, empty, and error states; `i18n` customizes their messages.
|
|
430
|
+
|
|
431
|
+
```typescript
|
|
432
|
+
m(SearchSelect<number>, {
|
|
433
|
+
label: 'Remote search',
|
|
434
|
+
checkedId: selectedIds,
|
|
435
|
+
options: [],
|
|
436
|
+
loadOptions: (query) => fetchOptions(query),
|
|
437
|
+
onchange: (ids) => {
|
|
438
|
+
selectedIds = ids;
|
|
439
|
+
},
|
|
440
|
+
});
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
`SearchSelect` uses combobox/listbox ARIA roles and supports `ArrowDown`, `ArrowUp`, `Enter`/`Space`, and `Escape`.
|
|
444
|
+
|
|
415
445
|
## Build instructions
|
|
416
446
|
|
|
417
447
|
This repository consists of two packages, combined using `lerna`: the `lib` package that is published to `npm`, as well as an `example` project which uses this library to display the Mithril components that it contains.
|
package/dist/advanced.css
CHANGED
|
@@ -80,6 +80,31 @@ html {
|
|
|
80
80
|
box-sizing: border-box;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/* Default themed scrollbar styling for all scroll containers */
|
|
84
|
+
* {
|
|
85
|
+
scrollbar-width: thin;
|
|
86
|
+
scrollbar-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.35)) var(--mm-scrollbar-track-color, transparent);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
*::-webkit-scrollbar {
|
|
90
|
+
width: 10px;
|
|
91
|
+
height: 10px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
*::-webkit-scrollbar-track {
|
|
95
|
+
background: var(--mm-scrollbar-track-color, transparent);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
*::-webkit-scrollbar-thumb {
|
|
99
|
+
background-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.35));
|
|
100
|
+
border-radius: 8px;
|
|
101
|
+
border: 2px solid var(--mm-scrollbar-track-color, transparent);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
*::-webkit-scrollbar-thumb:hover {
|
|
105
|
+
background-color: var(--mm-scrollbar-thumb-hover-color, rgba(128, 128, 128, 0.5));
|
|
106
|
+
}
|
|
107
|
+
|
|
83
108
|
*, *:before, *:after {
|
|
84
109
|
box-sizing: inherit;
|
|
85
110
|
}
|
|
@@ -572,7 +597,7 @@ td, th {
|
|
|
572
597
|
}
|
|
573
598
|
.collection .collection-item.active {
|
|
574
599
|
background-color: #26a69a;
|
|
575
|
-
color: rgb(
|
|
600
|
+
color: rgb(91.862745098%, 98.137254902%, 97.5490196078%);
|
|
576
601
|
}
|
|
577
602
|
.collection .collection-item.active .secondary-content {
|
|
578
603
|
color: var(--mm-text-on-primary, #fff);
|
|
@@ -701,6 +726,72 @@ td, th {
|
|
|
701
726
|
/*******************
|
|
702
727
|
Utility Classes
|
|
703
728
|
*******************/
|
|
729
|
+
.mm-layout-row {
|
|
730
|
+
display: flex;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
.mm-layout-row--center {
|
|
734
|
+
align-items: center;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
.mm-layout-row--align-end {
|
|
738
|
+
align-items: flex-end;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
.mm-layout-row--wrap {
|
|
742
|
+
flex-wrap: wrap;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.mm-layout-row--justify-start {
|
|
746
|
+
justify-content: flex-start;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.mm-layout-row--justify-end {
|
|
750
|
+
justify-content: flex-end;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
.mm-layout-row--justify-between {
|
|
754
|
+
justify-content: space-between;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.mm-layout-stack {
|
|
758
|
+
display: flex;
|
|
759
|
+
flex-direction: column;
|
|
760
|
+
gap: var(--mm-layout-gap, 0);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
.mm-layout-cluster {
|
|
764
|
+
display: flex;
|
|
765
|
+
align-items: center;
|
|
766
|
+
flex-wrap: wrap;
|
|
767
|
+
gap: var(--mm-layout-gap, 8px);
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
.mm-layout-grow {
|
|
771
|
+
flex: 1 1 auto;
|
|
772
|
+
min-width: 0;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
.mm-layout-ml-auto {
|
|
776
|
+
margin-left: auto;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.mm-layout-ml-8 {
|
|
780
|
+
margin-left: var(--mm-layout-inline-gap, 8px);
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.mm-layout-mr-8 {
|
|
784
|
+
margin-right: var(--mm-layout-inline-gap, 8px);
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
.mm-layout-item-icon {
|
|
788
|
+
margin-right: var(--mm-layout-icon-gap, 32px);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
.mm-layout-gap-sm {
|
|
792
|
+
gap: var(--mm-layout-gap-sm, 8px);
|
|
793
|
+
}
|
|
794
|
+
|
|
704
795
|
.hide {
|
|
705
796
|
display: none !important;
|
|
706
797
|
}
|
|
@@ -861,18 +952,32 @@ ul.sidenav.right-aligned li > a:not(.btn):not(.btn-large):not(.btn-flat):not(.bt
|
|
|
861
952
|
margin: 0;
|
|
862
953
|
transform: translateX(-100%);
|
|
863
954
|
height: 100%;
|
|
864
|
-
|
|
865
|
-
height: -moz-calc(100%);
|
|
866
|
-
padding-bottom: 60px;
|
|
955
|
+
padding-bottom: 0;
|
|
867
956
|
background-color: var(--mm-surface-color, #fff);
|
|
868
957
|
z-index: 999;
|
|
869
958
|
overflow-y: auto;
|
|
959
|
+
overflow-x: hidden;
|
|
870
960
|
will-change: transform;
|
|
871
961
|
backface-visibility: hidden;
|
|
872
962
|
transform: translateX(-105%);
|
|
873
963
|
transition: transform 0.3s ease, left 0.3s ease, right 0.3s ease;
|
|
874
964
|
display: flex;
|
|
875
965
|
flex-direction: column;
|
|
966
|
+
scrollbar-width: thin;
|
|
967
|
+
scrollbar-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.3)) transparent;
|
|
968
|
+
}
|
|
969
|
+
.sidenav::-webkit-scrollbar {
|
|
970
|
+
width: 4px;
|
|
971
|
+
}
|
|
972
|
+
.sidenav::-webkit-scrollbar-track {
|
|
973
|
+
background: transparent;
|
|
974
|
+
}
|
|
975
|
+
.sidenav::-webkit-scrollbar-thumb {
|
|
976
|
+
background: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.3));
|
|
977
|
+
border-radius: 2px;
|
|
978
|
+
}
|
|
979
|
+
.sidenav::-webkit-scrollbar-thumb:hover {
|
|
980
|
+
background: var(--mm-scrollbar-thumb-hover-color, rgba(128, 128, 128, 0.5));
|
|
876
981
|
}
|
|
877
982
|
.sidenav.sidenav-left {
|
|
878
983
|
left: 0;
|
package/dist/button.d.ts
CHANGED
|
@@ -38,6 +38,8 @@ export interface HtmlAttrs {
|
|
|
38
38
|
export interface ButtonAttrs extends Attributes {
|
|
39
39
|
/** Button label text (optional for icon-only buttons) */
|
|
40
40
|
label?: string;
|
|
41
|
+
/** Optional navigation destination. When provided, the component renders an anchor instead of a button. */
|
|
42
|
+
href?: string;
|
|
41
43
|
/** Material icon name - see https://materializecss.com/icons.html */
|
|
42
44
|
iconName?: string;
|
|
43
45
|
/**
|
|
@@ -77,7 +79,7 @@ export interface ButtonAttrs extends Attributes {
|
|
|
77
79
|
/**
|
|
78
80
|
* A factory to create new buttons.
|
|
79
81
|
*
|
|
80
|
-
* @example FlatButton = ButtonFactory('
|
|
82
|
+
* @example FlatButton = ButtonFactory('button.waves-effect.waves-teal.btn-flat');
|
|
81
83
|
*/
|
|
82
84
|
export declare const ButtonFactory: (element: string, defaultClassNames: string, type?: string) => FactoryComponent<ButtonAttrs>;
|
|
83
85
|
export declare const Button: m.FactoryComponent<ButtonAttrs>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FactoryComponent, Attributes } from 'mithril';
|
|
2
|
-
import { MaterialColor, ColorIntensity } from './types';
|
|
2
|
+
import { MaterialColor, ColorIntensity, ComponentStyle } from './types';
|
|
3
3
|
/** Progress mode - determinate shows specific progress, indeterminate shows loading animation */
|
|
4
4
|
export type ProgressMode = 'determinate' | 'indeterminate';
|
|
5
5
|
/** Progress size options */
|
|
@@ -25,7 +25,7 @@ export interface CircularProgressAttrs extends Attributes {
|
|
|
25
25
|
/** Additional CSS class names */
|
|
26
26
|
className?: string;
|
|
27
27
|
/** Additional CSS styles */
|
|
28
|
-
style?:
|
|
28
|
+
style?: ComponentStyle;
|
|
29
29
|
/** HTML ID for the component */
|
|
30
30
|
id?: string;
|
|
31
31
|
/** ARIA label for accessibility */
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type ComboboxKeyAction = 'none' | 'open' | 'close' | 'selectFocused' | 'selectAction';
|
|
2
|
+
export interface ComboboxKeyInput {
|
|
3
|
+
key: string;
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
focusedIndex: number;
|
|
6
|
+
optionCount: number;
|
|
7
|
+
includeActionRow: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ComboboxKeyResult {
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
focusedIndex: number;
|
|
12
|
+
action: ComboboxKeyAction;
|
|
13
|
+
preventDefault: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type ComboboxViewState = 'loading' | 'error' | 'empty' | 'ready';
|
|
16
|
+
export interface AsyncComboboxState<TOption> {
|
|
17
|
+
options: TOption[];
|
|
18
|
+
isLoading: boolean;
|
|
19
|
+
error: string | null;
|
|
20
|
+
latestRequestId: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const getComboboxKeyResult: ({ key, isOpen, focusedIndex, optionCount, includeActionRow, }: ComboboxKeyInput) => ComboboxKeyResult;
|
|
23
|
+
export declare const getComboboxOptionId: (baseId: string, optionIndex: number) => string;
|
|
24
|
+
export declare const createAsyncComboboxState: <TOption>(initialOptions?: TOption[]) => AsyncComboboxState<TOption>;
|
|
25
|
+
export declare const startAsyncComboboxRequest: <TOption>(state: AsyncComboboxState<TOption>) => {
|
|
26
|
+
requestId: number;
|
|
27
|
+
nextState: AsyncComboboxState<TOption>;
|
|
28
|
+
};
|
|
29
|
+
export declare const resolveAsyncComboboxRequest: <TOption>(state: AsyncComboboxState<TOption>, requestId: number, options: TOption[]) => AsyncComboboxState<TOption>;
|
|
30
|
+
export declare const rejectAsyncComboboxRequest: <TOption>(state: AsyncComboboxState<TOption>, requestId: number, errorMessage: string) => AsyncComboboxState<TOption>;
|
|
31
|
+
export declare const getComboboxViewState: ({ isLoading, error, optionCount, }: {
|
|
32
|
+
isLoading: boolean;
|
|
33
|
+
error: string | null;
|
|
34
|
+
optionCount: number;
|
|
35
|
+
}) => ComboboxViewState;
|
package/dist/components.css
CHANGED
|
@@ -3,6 +3,31 @@ html {
|
|
|
3
3
|
box-sizing: border-box;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
/* Default themed scrollbar styling for all scroll containers */
|
|
7
|
+
* {
|
|
8
|
+
scrollbar-width: thin;
|
|
9
|
+
scrollbar-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.35)) var(--mm-scrollbar-track-color, transparent);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
*::-webkit-scrollbar {
|
|
13
|
+
width: 10px;
|
|
14
|
+
height: 10px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
*::-webkit-scrollbar-track {
|
|
18
|
+
background: var(--mm-scrollbar-track-color, transparent);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
*::-webkit-scrollbar-thumb {
|
|
22
|
+
background-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.35));
|
|
23
|
+
border-radius: 8px;
|
|
24
|
+
border: 2px solid var(--mm-scrollbar-track-color, transparent);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
*::-webkit-scrollbar-thumb:hover {
|
|
28
|
+
background-color: var(--mm-scrollbar-thumb-hover-color, rgba(128, 128, 128, 0.5));
|
|
29
|
+
}
|
|
30
|
+
|
|
6
31
|
*, *:before, *:after {
|
|
7
32
|
box-sizing: inherit;
|
|
8
33
|
}
|
|
@@ -495,7 +520,7 @@ td, th {
|
|
|
495
520
|
}
|
|
496
521
|
.collection .collection-item.active {
|
|
497
522
|
background-color: #26a69a;
|
|
498
|
-
color: rgb(
|
|
523
|
+
color: rgb(91.862745098%, 98.137254902%, 97.5490196078%);
|
|
499
524
|
}
|
|
500
525
|
.collection .collection-item.active .secondary-content {
|
|
501
526
|
color: var(--mm-text-on-primary, #fff);
|
|
@@ -624,6 +649,72 @@ td, th {
|
|
|
624
649
|
/*******************
|
|
625
650
|
Utility Classes
|
|
626
651
|
*******************/
|
|
652
|
+
.mm-layout-row {
|
|
653
|
+
display: flex;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
.mm-layout-row--center {
|
|
657
|
+
align-items: center;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.mm-layout-row--align-end {
|
|
661
|
+
align-items: flex-end;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.mm-layout-row--wrap {
|
|
665
|
+
flex-wrap: wrap;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.mm-layout-row--justify-start {
|
|
669
|
+
justify-content: flex-start;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.mm-layout-row--justify-end {
|
|
673
|
+
justify-content: flex-end;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.mm-layout-row--justify-between {
|
|
677
|
+
justify-content: space-between;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.mm-layout-stack {
|
|
681
|
+
display: flex;
|
|
682
|
+
flex-direction: column;
|
|
683
|
+
gap: var(--mm-layout-gap, 0);
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.mm-layout-cluster {
|
|
687
|
+
display: flex;
|
|
688
|
+
align-items: center;
|
|
689
|
+
flex-wrap: wrap;
|
|
690
|
+
gap: var(--mm-layout-gap, 8px);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.mm-layout-grow {
|
|
694
|
+
flex: 1 1 auto;
|
|
695
|
+
min-width: 0;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.mm-layout-ml-auto {
|
|
699
|
+
margin-left: auto;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
.mm-layout-ml-8 {
|
|
703
|
+
margin-left: var(--mm-layout-inline-gap, 8px);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
.mm-layout-mr-8 {
|
|
707
|
+
margin-right: var(--mm-layout-inline-gap, 8px);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.mm-layout-item-icon {
|
|
711
|
+
margin-right: var(--mm-layout-icon-gap, 32px);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
.mm-layout-gap-sm {
|
|
715
|
+
gap: var(--mm-layout-gap-sm, 8px);
|
|
716
|
+
}
|
|
717
|
+
|
|
627
718
|
.hide {
|
|
628
719
|
display: none !important;
|
|
629
720
|
}
|
|
@@ -745,24 +836,24 @@ td, th {
|
|
|
745
836
|
|
|
746
837
|
.btn:focus, .btn-small:focus, .btn-large:focus,
|
|
747
838
|
.btn-floating:focus {
|
|
748
|
-
background-color: rgb(
|
|
839
|
+
background-color: var(--mm-primary-color-dark, rgb(11.1764705882%, 48.8235294118%, 45.2941176471%));
|
|
749
840
|
}
|
|
750
841
|
|
|
751
842
|
.btn, .btn-small, .btn-large {
|
|
752
843
|
text-decoration: none;
|
|
753
|
-
color: #fff;
|
|
754
|
-
background-color: #26a69a;
|
|
844
|
+
color: var(--mm-button-text, #fff);
|
|
845
|
+
background-color: var(--mm-primary-color, #26a69a);
|
|
755
846
|
text-align: center;
|
|
756
847
|
letter-spacing: 0.5px;
|
|
757
848
|
transition: background-color 0.2s ease-out;
|
|
758
849
|
cursor: pointer;
|
|
759
850
|
}
|
|
760
851
|
.btn:hover, .btn-small:hover, .btn-large:hover {
|
|
761
|
-
background-color: rgb(
|
|
852
|
+
background-color: var(--mm-primary-color-dark, rgb(16.7647058824%, 73.2352941176%, 67.9411764706%));
|
|
762
853
|
}
|
|
763
854
|
|
|
764
855
|
.btn-floating:hover {
|
|
765
|
-
background-color: #26a69a;
|
|
856
|
+
background-color: var(--mm-primary-color-dark, #26a69a);
|
|
766
857
|
}
|
|
767
858
|
.btn-floating:before {
|
|
768
859
|
border-radius: 0;
|
|
@@ -799,7 +890,7 @@ td, th {
|
|
|
799
890
|
}
|
|
800
891
|
.btn-floating {
|
|
801
892
|
display: inline-block;
|
|
802
|
-
color: #fff;
|
|
893
|
+
color: var(--mm-button-text, #fff);
|
|
803
894
|
position: relative;
|
|
804
895
|
overflow: hidden;
|
|
805
896
|
z-index: 1;
|
|
@@ -807,7 +898,7 @@ td, th {
|
|
|
807
898
|
height: 40px;
|
|
808
899
|
line-height: 40px;
|
|
809
900
|
padding: 0;
|
|
810
|
-
background-color: #26a69a;
|
|
901
|
+
background-color: var(--mm-primary-color, #26a69a);
|
|
811
902
|
border-radius: 50%;
|
|
812
903
|
transition: background-color 0.3s;
|
|
813
904
|
cursor: pointer;
|
|
@@ -817,7 +908,7 @@ td, th {
|
|
|
817
908
|
width: inherit;
|
|
818
909
|
display: inline-block;
|
|
819
910
|
text-align: center;
|
|
820
|
-
color: #fff;
|
|
911
|
+
color: var(--mm-button-text, #fff);
|
|
821
912
|
font-size: 1.6rem;
|
|
822
913
|
line-height: 40px;
|
|
823
914
|
}
|
|
@@ -935,7 +1026,7 @@ button.btn-floating {
|
|
|
935
1026
|
z-index: -1;
|
|
936
1027
|
width: 40px;
|
|
937
1028
|
height: 40px;
|
|
938
|
-
background-color: #26a69a;
|
|
1029
|
+
background-color: var(--mm-primary-color, #26a69a);
|
|
939
1030
|
border-radius: 50%;
|
|
940
1031
|
transform: scale(0);
|
|
941
1032
|
}
|
|
@@ -955,7 +1046,7 @@ button.btn-floating {
|
|
|
955
1046
|
}
|
|
956
1047
|
.btn-flat.disabled, .btn-flat.btn-flat[disabled] {
|
|
957
1048
|
background-color: transparent !important;
|
|
958
|
-
color: var(--mm-text-disabled, rgb(
|
|
1049
|
+
color: var(--mm-text-disabled, rgb(70%, 70%, 70%)) !important;
|
|
959
1050
|
cursor: default;
|
|
960
1051
|
}
|
|
961
1052
|
|
|
@@ -1142,7 +1233,7 @@ button.btn-floating {
|
|
|
1142
1233
|
}
|
|
1143
1234
|
|
|
1144
1235
|
body.keyboard-focused .dropdown-content li:focus {
|
|
1145
|
-
background-color: var(--mm-dropdown-focus, rgb(
|
|
1236
|
+
background-color: var(--mm-dropdown-focus, rgb(85.3333333333%, 85.3333333333%, 85.3333333333%));
|
|
1146
1237
|
}
|
|
1147
1238
|
|
|
1148
1239
|
.input-field.col .dropdown-content [type=checkbox] + label {
|
|
@@ -1198,7 +1289,7 @@ body.keyboard-focused .dropdown-content li:focus {
|
|
|
1198
1289
|
text-transform: uppercase;
|
|
1199
1290
|
}
|
|
1200
1291
|
.tabs .tab a:focus, .tabs .tab a:focus.active {
|
|
1201
|
-
background-color: rgba(
|
|
1292
|
+
background-color: rgba(96.4814814815%, 69.9891067538%, 71.0239651416%, 0.2);
|
|
1202
1293
|
outline: none;
|
|
1203
1294
|
}
|
|
1204
1295
|
.tabs .tab a:hover, .tabs .tab a.active {
|
|
@@ -1224,7 +1315,7 @@ body.keyboard-focused .dropdown-content li:focus {
|
|
|
1224
1315
|
position: absolute;
|
|
1225
1316
|
bottom: 0;
|
|
1226
1317
|
height: 2px;
|
|
1227
|
-
background-color: rgb(
|
|
1318
|
+
background-color: rgb(96.4814814815%, 69.9891067538%, 71.0239651416%);
|
|
1228
1319
|
will-change: left, right;
|
|
1229
1320
|
}
|
|
1230
1321
|
|
|
@@ -1659,18 +1750,32 @@ ul.sidenav.right-aligned li > a:not(.btn):not(.btn-large):not(.btn-flat):not(.bt
|
|
|
1659
1750
|
margin: 0;
|
|
1660
1751
|
transform: translateX(-100%);
|
|
1661
1752
|
height: 100%;
|
|
1662
|
-
|
|
1663
|
-
height: -moz-calc(100%);
|
|
1664
|
-
padding-bottom: 60px;
|
|
1753
|
+
padding-bottom: 0;
|
|
1665
1754
|
background-color: var(--mm-surface-color, #fff);
|
|
1666
1755
|
z-index: 999;
|
|
1667
1756
|
overflow-y: auto;
|
|
1757
|
+
overflow-x: hidden;
|
|
1668
1758
|
will-change: transform;
|
|
1669
1759
|
backface-visibility: hidden;
|
|
1670
1760
|
transform: translateX(-105%);
|
|
1671
1761
|
transition: transform 0.3s ease, left 0.3s ease, right 0.3s ease;
|
|
1672
1762
|
display: flex;
|
|
1673
1763
|
flex-direction: column;
|
|
1764
|
+
scrollbar-width: thin;
|
|
1765
|
+
scrollbar-color: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.3)) transparent;
|
|
1766
|
+
}
|
|
1767
|
+
.sidenav::-webkit-scrollbar {
|
|
1768
|
+
width: 4px;
|
|
1769
|
+
}
|
|
1770
|
+
.sidenav::-webkit-scrollbar-track {
|
|
1771
|
+
background: transparent;
|
|
1772
|
+
}
|
|
1773
|
+
.sidenav::-webkit-scrollbar-thumb {
|
|
1774
|
+
background: var(--mm-scrollbar-thumb-color, rgba(128, 128, 128, 0.3));
|
|
1775
|
+
border-radius: 2px;
|
|
1776
|
+
}
|
|
1777
|
+
.sidenav::-webkit-scrollbar-thumb:hover {
|
|
1778
|
+
background: var(--mm-scrollbar-thumb-hover-color, rgba(128, 128, 128, 0.5));
|
|
1674
1779
|
}
|
|
1675
1780
|
.sidenav.sidenav-left {
|
|
1676
1781
|
left: 0;
|
|
@@ -3115,6 +3220,7 @@ body.dark {
|
|
|
3115
3220
|
--mm-primary-color: #26a69a;
|
|
3116
3221
|
--mm-primary-color-light: #80cbc4;
|
|
3117
3222
|
--mm-primary-color-dark: #00695c;
|
|
3223
|
+
--mm-range-value-text: #000000;
|
|
3118
3224
|
--mm-secondary-color: #ff6f00;
|
|
3119
3225
|
--mm-secondary-color-light: #ffa726;
|
|
3120
3226
|
--mm-secondary-color-dark: #ef6c00;
|
|
@@ -3125,6 +3231,7 @@ body.dark {
|
|
|
3125
3231
|
--mm-text-secondary: rgba(0, 0, 0, 0.6);
|
|
3126
3232
|
--mm-text-disabled: rgba(0, 0, 0, 0.38);
|
|
3127
3233
|
--mm-text-hint: rgba(0, 0, 0, 0.38);
|
|
3234
|
+
--mm-error-color: #f44336;
|
|
3128
3235
|
--mm-border-color: rgba(0, 0, 0, 0.12);
|
|
3129
3236
|
--mm-divider-color: rgba(0, 0, 0, 0.12);
|
|
3130
3237
|
--mm-input-background: #ffffff;
|
|
@@ -3149,6 +3256,9 @@ body.dark {
|
|
|
3149
3256
|
--mm-shadow-umbra: rgba(0, 0, 0, 0.2);
|
|
3150
3257
|
--mm-shadow-penumbra: rgba(0, 0, 0, 0.14);
|
|
3151
3258
|
--mm-shadow-ambient: rgba(0, 0, 0, 0.12);
|
|
3259
|
+
--mm-scrollbar-track-color: #f1f1f1;
|
|
3260
|
+
--mm-scrollbar-thumb-color: rgba(0, 0, 0, 0.35);
|
|
3261
|
+
--mm-scrollbar-thumb-hover-color: rgba(0, 0, 0, 0.5);
|
|
3152
3262
|
--mm-switch-checked-track: rgba(38, 166, 154, 0.3);
|
|
3153
3263
|
--mm-switch-checked-thumb: #26a69a;
|
|
3154
3264
|
--mm-switch-unchecked-track: rgba(0, 0, 0, 0.6);
|
|
@@ -3172,6 +3282,7 @@ body {
|
|
|
3172
3282
|
--mm-primary-color: #80cbc4;
|
|
3173
3283
|
--mm-primary-color-light: #b2dfdb;
|
|
3174
3284
|
--mm-primary-color-dark: #4db6ac;
|
|
3285
|
+
--mm-range-value-text: #000000;
|
|
3175
3286
|
--mm-secondary-color: #ffa726;
|
|
3176
3287
|
--mm-secondary-color-light: #ffcc02;
|
|
3177
3288
|
--mm-secondary-color-dark: #ff8f00;
|
|
@@ -3182,6 +3293,7 @@ body {
|
|
|
3182
3293
|
--mm-text-secondary: rgba(255, 255, 255, 0.6);
|
|
3183
3294
|
--mm-text-disabled: rgba(255, 255, 255, 0.38);
|
|
3184
3295
|
--mm-text-hint: rgba(255, 255, 255, 0.38);
|
|
3296
|
+
--mm-error-color: #ef5350;
|
|
3185
3297
|
--mm-border-color: rgba(255, 255, 255, 0.12);
|
|
3186
3298
|
--mm-divider-color: rgba(255, 255, 255, 0.12);
|
|
3187
3299
|
--mm-input-background: #2d2d2d;
|
|
@@ -3207,6 +3319,9 @@ body {
|
|
|
3207
3319
|
--mm-dropdown-selected: #1e3a8a;
|
|
3208
3320
|
--mm-row-hover: rgba(255, 255, 255, 0.04);
|
|
3209
3321
|
--mm-row-stripe: rgba(255, 255, 255, 0.02);
|
|
3322
|
+
--mm-scrollbar-track-color: #1e1e1e;
|
|
3323
|
+
--mm-scrollbar-thumb-color: rgba(255, 255, 255, 0.3);
|
|
3324
|
+
--mm-scrollbar-thumb-hover-color: rgba(255, 255, 255, 0.45);
|
|
3210
3325
|
--mm-switch-checked-track: rgba(128, 203, 196, 0.3);
|
|
3211
3326
|
--mm-switch-checked-thumb: #80cbc4;
|
|
3212
3327
|
--mm-switch-unchecked-track: rgba(255, 255, 255, 0.6);
|
|
@@ -3221,6 +3336,7 @@ body {
|
|
|
3221
3336
|
--mm-primary-color: #80cbc4;
|
|
3222
3337
|
--mm-primary-color-light: #b2dfdb;
|
|
3223
3338
|
--mm-primary-color-dark: #4db6ac;
|
|
3339
|
+
--mm-range-value-text: #000000;
|
|
3224
3340
|
--mm-secondary-color: #ffa726;
|
|
3225
3341
|
--mm-secondary-color-light: #ffcc02;
|
|
3226
3342
|
--mm-secondary-color-dark: #ff8f00;
|
|
@@ -3231,6 +3347,7 @@ body {
|
|
|
3231
3347
|
--mm-text-secondary: rgba(255, 255, 255, 0.6);
|
|
3232
3348
|
--mm-text-disabled: rgba(255, 255, 255, 0.38);
|
|
3233
3349
|
--mm-text-hint: rgba(255, 255, 255, 0.38);
|
|
3350
|
+
--mm-error-color: #ef5350;
|
|
3234
3351
|
--mm-border-color: rgba(255, 255, 255, 0.12);
|
|
3235
3352
|
--mm-divider-color: rgba(255, 255, 255, 0.12);
|
|
3236
3353
|
--mm-input-background: #2d2d2d;
|
|
@@ -3256,6 +3373,9 @@ body {
|
|
|
3256
3373
|
--mm-switch-disabled-track: rgba(255, 255, 255, 0.2);
|
|
3257
3374
|
--mm-switch-disabled-thumb: #424242;
|
|
3258
3375
|
--mm-table-striped-color: rgba(255, 255, 255, 0.05);
|
|
3376
|
+
--mm-scrollbar-track-color: #1e1e1e;
|
|
3377
|
+
--mm-scrollbar-thumb-color: rgba(255, 255, 255, 0.3);
|
|
3378
|
+
--mm-scrollbar-thumb-hover-color: rgba(255, 255, 255, 0.45);
|
|
3259
3379
|
}
|
|
3260
3380
|
}
|
|
3261
3381
|
.timeline {
|
|
@@ -4543,6 +4663,13 @@ nav .theme-toggle:focus {
|
|
|
4543
4663
|
flex-shrink: 0;
|
|
4544
4664
|
}
|
|
4545
4665
|
|
|
4666
|
+
.badge-showcase {
|
|
4667
|
+
display: flex;
|
|
4668
|
+
align-items: center;
|
|
4669
|
+
flex-wrap: wrap;
|
|
4670
|
+
gap: var(--mm-badge-showcase-gap, 20px);
|
|
4671
|
+
}
|
|
4672
|
+
|
|
4546
4673
|
.m-badge {
|
|
4547
4674
|
position: absolute;
|
|
4548
4675
|
display: flex;
|