mithril-materialized 3.0.0 → 3.2.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 +14 -20
- package/dist/components.css +3 -0
- package/dist/core.css +154 -14
- package/dist/dropdown.d.ts +8 -5
- package/dist/forms.css +154 -0
- package/dist/index.css +162 -14
- package/dist/index.esm.js +623 -391
- package/dist/index.js +623 -390
- package/dist/index.min.css +2 -2
- package/dist/index.umd.js +623 -390
- package/dist/input-options.d.ts +12 -2
- package/dist/input.d.ts +1 -1
- package/dist/option.d.ts +16 -3
- package/dist/radio.d.ts +11 -5
- package/dist/search-select.d.ts +14 -20
- package/dist/select.d.ts +10 -6
- package/dist/switch.d.ts +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +5 -4
- package/sass/components/_dropdown.scss +3 -0
- package/sass/components/forms/_checkboxes.scss +10 -6
- package/sass/components/forms/_forms.scss +0 -15
- package/sass/components/forms/_input-fields.scss +20 -0
- package/sass/components/forms/_select.scss +164 -0
- package/sass/components/forms/_switches.scss +1 -0
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
A Mithril.js component library inspired by [materialize-css](https://materializecss.com) design principles, [available on npm](https://www.npmjs.com/package/mithril-materialized). This library provides you with ready-to-use Mithril components that follow Material Design guidelines, with **no external JavaScript dependencies**.
|
|
4
4
|
|
|
5
|
-
## 🚀
|
|
5
|
+
## 🚀 v3.0.0 - Latest Release
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The current stable release that provides a complete Mithril.js Material Design component library with no external JavaScript dependencies.
|
|
8
8
|
|
|
9
9
|
### ✨ What's New
|
|
10
10
|
|
|
@@ -16,29 +16,23 @@ This is a **major breaking release** that removes all external JavaScript depend
|
|
|
16
16
|
- **📱 Modern Architecture**: Factory components with proper TypeScript support
|
|
17
17
|
- **🎯 CSS-Only Styling**: Uses only CSS for styling - no JavaScript initialization needed
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### ✨ Key Features
|
|
20
20
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npm install materialize-css material-icons mithril mithril-materialized
|
|
32
|
-
```
|
|
21
|
+
- **🔥 Zero External JS Dependencies**: No longer requires `materialize-css` JavaScript or `material-icons` fonts
|
|
22
|
+
- **📦 Smaller Bundle Size**: Reduced package size by eliminating external dependencies
|
|
23
|
+
- **🎨 Custom SVG Icons**: Built-in MaterialIcon component with custom SVG icons
|
|
24
|
+
- **⚡ Better Performance**: Direct implementations without jQuery or other heavy dependencies
|
|
25
|
+
- **🛠️ Enhanced Components**: Comprehensive component library with modern features
|
|
26
|
+
- **📱 Modern Architecture**: Factory components with proper TypeScript support
|
|
27
|
+
- **🎯 CSS-Only Styling**: Uses only CSS for styling - no JavaScript initialization needed
|
|
28
|
+
- **🌗 Dark Theme Support**: Built-in light/dark theme system with CSS custom properties
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
### 📦 Installation
|
|
35
31
|
|
|
36
32
|
```bash
|
|
37
33
|
npm install mithril mithril-materialized
|
|
38
34
|
```
|
|
39
35
|
|
|
40
|
-
Your CSS imports can remain the same, but you no longer need the materialize-css JavaScript.
|
|
41
|
-
|
|
42
36
|
## Supported Components
|
|
43
37
|
|
|
44
38
|
- [Buttons](https://erikvullings.github.io/mithril-materialized/#!/buttons)
|
|
@@ -363,7 +357,7 @@ See the [live documentation](https://erikvullings.github.io/mithril-materialized
|
|
|
363
357
|
|
|
364
358
|
### 📊 Bundle Size Targets
|
|
365
359
|
|
|
366
|
-
**Current Status (
|
|
360
|
+
**Current Status (v3.0.0):**
|
|
367
361
|
|
|
368
362
|
- Total: 70KB gzipped (44KB JS + 26KB CSS)
|
|
369
363
|
- Modular CSS can reduce bundle by 30-50%
|
|
@@ -394,7 +388,7 @@ See our [contributing guide](CONTRIBUTING.md) for detailed information.
|
|
|
394
388
|
|
|
395
389
|
**Bundle Size Comparison:**
|
|
396
390
|
|
|
397
|
-
- mithril-materialized
|
|
391
|
+
- mithril-materialized v3.0: 64KB gzipped
|
|
398
392
|
- Material-UI: ~350KB gzipped
|
|
399
393
|
- Materialize CSS + jQuery: ~180KB gzipped
|
|
400
394
|
- Vuetify: ~250KB gzipped
|
package/dist/components.css
CHANGED
|
@@ -1116,6 +1116,9 @@ button.btn-floating {
|
|
|
1116
1116
|
margin: 0 24px 0 0;
|
|
1117
1117
|
width: 24px;
|
|
1118
1118
|
}
|
|
1119
|
+
.dropdown-content li.disabled {
|
|
1120
|
+
cursor: not-allowed;
|
|
1121
|
+
}
|
|
1119
1122
|
|
|
1120
1123
|
body.keyboard-focused .dropdown-content li:focus {
|
|
1121
1124
|
background-color: var(--mm-dropdown-focus, rgb(217.6, 217.6, 217.6));
|
package/dist/core.css
CHANGED
|
@@ -2675,6 +2675,24 @@ textarea.materialize-textarea {
|
|
|
2675
2675
|
min-height: 18px;
|
|
2676
2676
|
}
|
|
2677
2677
|
|
|
2678
|
+
/* Input Clear Button */
|
|
2679
|
+
.input-clear-btn {
|
|
2680
|
+
position: absolute;
|
|
2681
|
+
right: 8px;
|
|
2682
|
+
top: 1rem;
|
|
2683
|
+
cursor: pointer;
|
|
2684
|
+
z-index: 1;
|
|
2685
|
+
color: var(--mm-text-hint, #d1d1d1);
|
|
2686
|
+
transition: color 0.2s ease;
|
|
2687
|
+
}
|
|
2688
|
+
.input-clear-btn:hover {
|
|
2689
|
+
color: var(--mm-text-secondary, rgba(0, 0, 0, 0.7));
|
|
2690
|
+
}
|
|
2691
|
+
.input-clear-btn svg {
|
|
2692
|
+
width: 18px;
|
|
2693
|
+
height: 18px;
|
|
2694
|
+
}
|
|
2695
|
+
|
|
2678
2696
|
/* Radio Buttons
|
|
2679
2697
|
========================================================================== */
|
|
2680
2698
|
[type=radio]:not(:checked),
|
|
@@ -2799,6 +2817,10 @@ textarea.materialize-textarea {
|
|
|
2799
2817
|
pointer-events: none;
|
|
2800
2818
|
}
|
|
2801
2819
|
|
|
2820
|
+
[type=checkbox]:disabled + span {
|
|
2821
|
+
color: var(--mm-text-disabled, rgba(0, 0, 0, 0.42));
|
|
2822
|
+
}
|
|
2823
|
+
|
|
2802
2824
|
[type=checkbox] {
|
|
2803
2825
|
/* checkbox aspect */
|
|
2804
2826
|
}
|
|
@@ -2959,6 +2981,7 @@ textarea.materialize-textarea {
|
|
|
2959
2981
|
.switch * {
|
|
2960
2982
|
-webkit-tap-highlight-color: transparent;
|
|
2961
2983
|
user-select: none;
|
|
2984
|
+
margin: 13px 0 17px 0;
|
|
2962
2985
|
}
|
|
2963
2986
|
|
|
2964
2987
|
.switch label {
|
|
@@ -3173,6 +3196,137 @@ body.keyboard-focused .select-dropdown.dropdown-content li:focus {
|
|
|
3173
3196
|
padding-left: 1rem;
|
|
3174
3197
|
}
|
|
3175
3198
|
|
|
3199
|
+
/* Dark theme overrides to ensure proper colors */
|
|
3200
|
+
[data-theme=dark] .select-dropdown.dropdown-content li:hover,
|
|
3201
|
+
[data-theme=dark] .dropdown-content li:hover,
|
|
3202
|
+
[data-theme=dark] .dropdown-content li.active {
|
|
3203
|
+
background-color: #444 !important;
|
|
3204
|
+
}
|
|
3205
|
+
[data-theme=dark] .chip {
|
|
3206
|
+
background-color: #424242 !important;
|
|
3207
|
+
color: var(--mm-text-secondary) !important;
|
|
3208
|
+
}
|
|
3209
|
+
|
|
3210
|
+
/* Auto dark mode support */
|
|
3211
|
+
@media (prefers-color-scheme: dark) {
|
|
3212
|
+
:root:not([data-theme=light]) .select-dropdown.dropdown-content li:hover,
|
|
3213
|
+
:root:not([data-theme=light]) .dropdown-content li:hover,
|
|
3214
|
+
:root:not([data-theme=light]) .dropdown-content li.active {
|
|
3215
|
+
background-color: #444 !important;
|
|
3216
|
+
}
|
|
3217
|
+
:root:not([data-theme=light]) .chip {
|
|
3218
|
+
background-color: #424242 !important;
|
|
3219
|
+
color: var(--mm-text-secondary) !important;
|
|
3220
|
+
}
|
|
3221
|
+
}
|
|
3222
|
+
/* SearchSelect Specific Styles
|
|
3223
|
+
========================================================================== */
|
|
3224
|
+
.search-wrapper {
|
|
3225
|
+
padding: 0 16px;
|
|
3226
|
+
position: relative;
|
|
3227
|
+
}
|
|
3228
|
+
|
|
3229
|
+
.search-select-input {
|
|
3230
|
+
width: 100%;
|
|
3231
|
+
outline: none;
|
|
3232
|
+
font-size: 0.875rem;
|
|
3233
|
+
border: none;
|
|
3234
|
+
padding: 8px 0;
|
|
3235
|
+
border-bottom: 1px solid var(--mm-input-border, #9e9e9e);
|
|
3236
|
+
background-color: transparent;
|
|
3237
|
+
color: var(--mm-text-primary, inherit);
|
|
3238
|
+
}
|
|
3239
|
+
.search-select-input:focus {
|
|
3240
|
+
border-bottom-color: var(--mm-primary-color, #2196F3);
|
|
3241
|
+
}
|
|
3242
|
+
.search-select-input::placeholder {
|
|
3243
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
3244
|
+
}
|
|
3245
|
+
|
|
3246
|
+
.search-select-no-options {
|
|
3247
|
+
padding: 8px 16px;
|
|
3248
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
3249
|
+
font-style: italic;
|
|
3250
|
+
text-align: center;
|
|
3251
|
+
border-bottom: none;
|
|
3252
|
+
}
|
|
3253
|
+
.search-select-no-options:hover {
|
|
3254
|
+
background-color: transparent;
|
|
3255
|
+
cursor: default;
|
|
3256
|
+
}
|
|
3257
|
+
|
|
3258
|
+
.search-select-option-label {
|
|
3259
|
+
display: flex;
|
|
3260
|
+
align-items: center;
|
|
3261
|
+
width: 100%;
|
|
3262
|
+
cursor: pointer;
|
|
3263
|
+
padding: 0;
|
|
3264
|
+
margin: 0;
|
|
3265
|
+
min-height: var(--mm-dropdown-item-height, 50px);
|
|
3266
|
+
}
|
|
3267
|
+
.search-select-option-label input[type=checkbox] {
|
|
3268
|
+
margin-right: 8px;
|
|
3269
|
+
position: relative;
|
|
3270
|
+
appearance: none;
|
|
3271
|
+
width: 18px;
|
|
3272
|
+
height: 18px;
|
|
3273
|
+
border: 2px solid var(--mm-border-color, #9e9e9e);
|
|
3274
|
+
border-radius: 2px;
|
|
3275
|
+
background-color: transparent;
|
|
3276
|
+
}
|
|
3277
|
+
.search-select-option-label input[type=checkbox]:checked {
|
|
3278
|
+
background-color: var(--mm-primary-color, #2196F3);
|
|
3279
|
+
border-color: var(--mm-primary-color, #2196F3);
|
|
3280
|
+
}
|
|
3281
|
+
.search-select-option-label input[type=checkbox]:checked:after {
|
|
3282
|
+
content: "✓";
|
|
3283
|
+
color: white;
|
|
3284
|
+
font-size: 12px;
|
|
3285
|
+
position: absolute;
|
|
3286
|
+
top: -2px;
|
|
3287
|
+
left: 2px;
|
|
3288
|
+
}
|
|
3289
|
+
.search-select-option-label input[type=checkbox]:focus {
|
|
3290
|
+
outline: 2px solid var(--mm-primary-color, #2196F3);
|
|
3291
|
+
outline-offset: 2px;
|
|
3292
|
+
}
|
|
3293
|
+
.search-select-option-label span {
|
|
3294
|
+
flex: 1;
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
.multi-select-dropdown .chips-container {
|
|
3298
|
+
display: flex;
|
|
3299
|
+
align-items: flex-end;
|
|
3300
|
+
flex-wrap: wrap;
|
|
3301
|
+
cursor: pointer;
|
|
3302
|
+
position: relative;
|
|
3303
|
+
min-height: var(--mm-input-height, 3rem);
|
|
3304
|
+
padding: 4px 0;
|
|
3305
|
+
}
|
|
3306
|
+
.multi-select-dropdown .chips-container .chip {
|
|
3307
|
+
margin: 2px 4px 2px 0;
|
|
3308
|
+
}
|
|
3309
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close {
|
|
3310
|
+
cursor: pointer;
|
|
3311
|
+
font-size: 16px;
|
|
3312
|
+
margin-left: 4px;
|
|
3313
|
+
}
|
|
3314
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close:hover {
|
|
3315
|
+
color: var(--mm-error-color, #f44336);
|
|
3316
|
+
}
|
|
3317
|
+
.multi-select-dropdown .chips-container .placeholder {
|
|
3318
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
3319
|
+
flex-grow: 1;
|
|
3320
|
+
padding: 8px 0;
|
|
3321
|
+
}
|
|
3322
|
+
.multi-select-dropdown .chips-container .spacer {
|
|
3323
|
+
flex-grow: 1;
|
|
3324
|
+
}
|
|
3325
|
+
.multi-select-dropdown .chips-container .caret {
|
|
3326
|
+
margin-left: auto;
|
|
3327
|
+
cursor: pointer;
|
|
3328
|
+
}
|
|
3329
|
+
|
|
3176
3330
|
/* File Input
|
|
3177
3331
|
========================================================================== */
|
|
3178
3332
|
.file-field {
|
|
@@ -3386,17 +3540,3 @@ input[type=range]::-ms-thumb {
|
|
|
3386
3540
|
cursor: text;
|
|
3387
3541
|
text-align: initial;
|
|
3388
3542
|
}
|
|
3389
|
-
|
|
3390
|
-
select:focus {
|
|
3391
|
-
outline: 1px solid rgb(201.05, 242.65, 238.75);
|
|
3392
|
-
}
|
|
3393
|
-
|
|
3394
|
-
button:focus {
|
|
3395
|
-
outline: none;
|
|
3396
|
-
background-color: rgb(41.8, 182.6, 169.4);
|
|
3397
|
-
}
|
|
3398
|
-
|
|
3399
|
-
label {
|
|
3400
|
-
font-size: 0.8rem;
|
|
3401
|
-
color: #9e9e9e;
|
|
3402
|
-
}
|
package/dist/dropdown.d.ts
CHANGED
|
@@ -28,13 +28,16 @@ export interface DropdownAttrs<T extends string | number> extends Attributes {
|
|
|
28
28
|
/** Item array to show in the dropdown. If the value is not supplied, uses he name. */
|
|
29
29
|
items: DropdownItem<T>[];
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* Currently selected item id for controlled mode. If provided along with `onchange`, the component operates in controlled mode
|
|
32
|
+
* where the parent manages the state. The parent must update this value in response to `onchange` callbacks.
|
|
33
33
|
*/
|
|
34
34
|
checkedId?: T;
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Default selected item id for uncontrolled mode. Only used when `checkedId` and `onchange` are not provided.
|
|
37
|
+
* The component will manage its own internal state in uncontrolled mode.
|
|
38
|
+
*/
|
|
39
|
+
defaultCheckedId?: T;
|
|
40
|
+
/** When a value or name is selected. Optional for uncontrolled mode. */
|
|
38
41
|
onchange?: (value: T) => void;
|
|
39
42
|
/** Uses Materialize icons as a prefix or postfix. */
|
|
40
43
|
iconName?: string;
|
package/dist/forms.css
CHANGED
|
@@ -1284,6 +1284,24 @@ textarea.materialize-textarea {
|
|
|
1284
1284
|
min-height: 18px;
|
|
1285
1285
|
}
|
|
1286
1286
|
|
|
1287
|
+
/* Input Clear Button */
|
|
1288
|
+
.input-clear-btn {
|
|
1289
|
+
position: absolute;
|
|
1290
|
+
right: 8px;
|
|
1291
|
+
top: 1rem;
|
|
1292
|
+
cursor: pointer;
|
|
1293
|
+
z-index: 1;
|
|
1294
|
+
color: var(--mm-text-hint, #d1d1d1);
|
|
1295
|
+
transition: color 0.2s ease;
|
|
1296
|
+
}
|
|
1297
|
+
.input-clear-btn:hover {
|
|
1298
|
+
color: var(--mm-text-secondary, rgba(0, 0, 0, 0.7));
|
|
1299
|
+
}
|
|
1300
|
+
.input-clear-btn svg {
|
|
1301
|
+
width: 18px;
|
|
1302
|
+
height: 18px;
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1287
1305
|
/* Select Field
|
|
1288
1306
|
========================================================================== */
|
|
1289
1307
|
select.browser-default {
|
|
@@ -1423,6 +1441,137 @@ body.keyboard-focused .select-dropdown.dropdown-content li:focus {
|
|
|
1423
1441
|
padding-left: 1rem;
|
|
1424
1442
|
}
|
|
1425
1443
|
|
|
1444
|
+
/* Dark theme overrides to ensure proper colors */
|
|
1445
|
+
[data-theme=dark] .select-dropdown.dropdown-content li:hover,
|
|
1446
|
+
[data-theme=dark] .dropdown-content li:hover,
|
|
1447
|
+
[data-theme=dark] .dropdown-content li.active {
|
|
1448
|
+
background-color: #444 !important;
|
|
1449
|
+
}
|
|
1450
|
+
[data-theme=dark] .chip {
|
|
1451
|
+
background-color: #424242 !important;
|
|
1452
|
+
color: var(--mm-text-secondary) !important;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
/* Auto dark mode support */
|
|
1456
|
+
@media (prefers-color-scheme: dark) {
|
|
1457
|
+
:root:not([data-theme=light]) .select-dropdown.dropdown-content li:hover,
|
|
1458
|
+
:root:not([data-theme=light]) .dropdown-content li:hover,
|
|
1459
|
+
:root:not([data-theme=light]) .dropdown-content li.active {
|
|
1460
|
+
background-color: #444 !important;
|
|
1461
|
+
}
|
|
1462
|
+
:root:not([data-theme=light]) .chip {
|
|
1463
|
+
background-color: #424242 !important;
|
|
1464
|
+
color: var(--mm-text-secondary) !important;
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
/* SearchSelect Specific Styles
|
|
1468
|
+
========================================================================== */
|
|
1469
|
+
.search-wrapper {
|
|
1470
|
+
padding: 0 16px;
|
|
1471
|
+
position: relative;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
.search-select-input {
|
|
1475
|
+
width: 100%;
|
|
1476
|
+
outline: none;
|
|
1477
|
+
font-size: 0.875rem;
|
|
1478
|
+
border: none;
|
|
1479
|
+
padding: 8px 0;
|
|
1480
|
+
border-bottom: 1px solid var(--mm-input-border, #9e9e9e);
|
|
1481
|
+
background-color: transparent;
|
|
1482
|
+
color: var(--mm-text-primary, inherit);
|
|
1483
|
+
}
|
|
1484
|
+
.search-select-input:focus {
|
|
1485
|
+
border-bottom-color: var(--mm-primary-color, #2196F3);
|
|
1486
|
+
}
|
|
1487
|
+
.search-select-input::placeholder {
|
|
1488
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
.search-select-no-options {
|
|
1492
|
+
padding: 8px 16px;
|
|
1493
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
1494
|
+
font-style: italic;
|
|
1495
|
+
text-align: center;
|
|
1496
|
+
border-bottom: none;
|
|
1497
|
+
}
|
|
1498
|
+
.search-select-no-options:hover {
|
|
1499
|
+
background-color: transparent;
|
|
1500
|
+
cursor: default;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
.search-select-option-label {
|
|
1504
|
+
display: flex;
|
|
1505
|
+
align-items: center;
|
|
1506
|
+
width: 100%;
|
|
1507
|
+
cursor: pointer;
|
|
1508
|
+
padding: 0;
|
|
1509
|
+
margin: 0;
|
|
1510
|
+
min-height: var(--mm-dropdown-item-height, 50px);
|
|
1511
|
+
}
|
|
1512
|
+
.search-select-option-label input[type=checkbox] {
|
|
1513
|
+
margin-right: 8px;
|
|
1514
|
+
position: relative;
|
|
1515
|
+
appearance: none;
|
|
1516
|
+
width: 18px;
|
|
1517
|
+
height: 18px;
|
|
1518
|
+
border: 2px solid var(--mm-border-color, #9e9e9e);
|
|
1519
|
+
border-radius: 2px;
|
|
1520
|
+
background-color: transparent;
|
|
1521
|
+
}
|
|
1522
|
+
.search-select-option-label input[type=checkbox]:checked {
|
|
1523
|
+
background-color: var(--mm-primary-color, #2196F3);
|
|
1524
|
+
border-color: var(--mm-primary-color, #2196F3);
|
|
1525
|
+
}
|
|
1526
|
+
.search-select-option-label input[type=checkbox]:checked:after {
|
|
1527
|
+
content: "✓";
|
|
1528
|
+
color: white;
|
|
1529
|
+
font-size: 12px;
|
|
1530
|
+
position: absolute;
|
|
1531
|
+
top: -2px;
|
|
1532
|
+
left: 2px;
|
|
1533
|
+
}
|
|
1534
|
+
.search-select-option-label input[type=checkbox]:focus {
|
|
1535
|
+
outline: 2px solid var(--mm-primary-color, #2196F3);
|
|
1536
|
+
outline-offset: 2px;
|
|
1537
|
+
}
|
|
1538
|
+
.search-select-option-label span {
|
|
1539
|
+
flex: 1;
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
.multi-select-dropdown .chips-container {
|
|
1543
|
+
display: flex;
|
|
1544
|
+
align-items: flex-end;
|
|
1545
|
+
flex-wrap: wrap;
|
|
1546
|
+
cursor: pointer;
|
|
1547
|
+
position: relative;
|
|
1548
|
+
min-height: var(--mm-input-height, 3rem);
|
|
1549
|
+
padding: 4px 0;
|
|
1550
|
+
}
|
|
1551
|
+
.multi-select-dropdown .chips-container .chip {
|
|
1552
|
+
margin: 2px 4px 2px 0;
|
|
1553
|
+
}
|
|
1554
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close {
|
|
1555
|
+
cursor: pointer;
|
|
1556
|
+
font-size: 16px;
|
|
1557
|
+
margin-left: 4px;
|
|
1558
|
+
}
|
|
1559
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close:hover {
|
|
1560
|
+
color: var(--mm-error-color, #f44336);
|
|
1561
|
+
}
|
|
1562
|
+
.multi-select-dropdown .chips-container .placeholder {
|
|
1563
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
1564
|
+
flex-grow: 1;
|
|
1565
|
+
padding: 8px 0;
|
|
1566
|
+
}
|
|
1567
|
+
.multi-select-dropdown .chips-container .spacer {
|
|
1568
|
+
flex-grow: 1;
|
|
1569
|
+
}
|
|
1570
|
+
.multi-select-dropdown .chips-container .caret {
|
|
1571
|
+
margin-left: auto;
|
|
1572
|
+
cursor: pointer;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1426
1575
|
/* Checkboxes
|
|
1427
1576
|
========================================================================== */
|
|
1428
1577
|
/* Remove default checkbox */
|
|
@@ -1433,6 +1582,10 @@ body.keyboard-focused .select-dropdown.dropdown-content li:focus {
|
|
|
1433
1582
|
pointer-events: none;
|
|
1434
1583
|
}
|
|
1435
1584
|
|
|
1585
|
+
[type=checkbox]:disabled + span {
|
|
1586
|
+
color: var(--mm-text-disabled, rgba(0, 0, 0, 0.42));
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1436
1589
|
[type=checkbox] {
|
|
1437
1590
|
/* checkbox aspect */
|
|
1438
1591
|
}
|
|
@@ -1707,6 +1860,7 @@ body.keyboard-focused .select-dropdown.dropdown-content li:focus {
|
|
|
1707
1860
|
.switch * {
|
|
1708
1861
|
-webkit-tap-highlight-color: transparent;
|
|
1709
1862
|
user-select: none;
|
|
1863
|
+
margin: 13px 0 17px 0;
|
|
1710
1864
|
}
|
|
1711
1865
|
|
|
1712
1866
|
.switch label {
|
package/dist/index.css
CHANGED
|
@@ -5283,6 +5283,9 @@ button.btn-floating {
|
|
|
5283
5283
|
margin: 0 24px 0 0;
|
|
5284
5284
|
width: 24px;
|
|
5285
5285
|
}
|
|
5286
|
+
.dropdown-content li.disabled {
|
|
5287
|
+
cursor: not-allowed;
|
|
5288
|
+
}
|
|
5286
5289
|
|
|
5287
5290
|
body.keyboard-focused .dropdown-content li:focus {
|
|
5288
5291
|
background-color: var(--mm-dropdown-focus, rgb(217.6, 217.6, 217.6));
|
|
@@ -6324,6 +6327,24 @@ textarea.materialize-textarea {
|
|
|
6324
6327
|
min-height: 18px;
|
|
6325
6328
|
}
|
|
6326
6329
|
|
|
6330
|
+
/* Input Clear Button */
|
|
6331
|
+
.input-clear-btn {
|
|
6332
|
+
position: absolute;
|
|
6333
|
+
right: 8px;
|
|
6334
|
+
top: 1rem;
|
|
6335
|
+
cursor: pointer;
|
|
6336
|
+
z-index: 1;
|
|
6337
|
+
color: var(--mm-text-hint, #d1d1d1);
|
|
6338
|
+
transition: color 0.2s ease;
|
|
6339
|
+
}
|
|
6340
|
+
.input-clear-btn:hover {
|
|
6341
|
+
color: var(--mm-text-secondary, rgba(0, 0, 0, 0.7));
|
|
6342
|
+
}
|
|
6343
|
+
.input-clear-btn svg {
|
|
6344
|
+
width: 18px;
|
|
6345
|
+
height: 18px;
|
|
6346
|
+
}
|
|
6347
|
+
|
|
6327
6348
|
/* Radio Buttons
|
|
6328
6349
|
========================================================================== */
|
|
6329
6350
|
[type=radio]:not(:checked),
|
|
@@ -6450,6 +6471,10 @@ textarea.materialize-textarea {
|
|
|
6450
6471
|
pointer-events: none;
|
|
6451
6472
|
}
|
|
6452
6473
|
|
|
6474
|
+
[type=checkbox]:disabled + span {
|
|
6475
|
+
color: var(--mm-text-disabled, rgba(0, 0, 0, 0.42));
|
|
6476
|
+
}
|
|
6477
|
+
|
|
6453
6478
|
[type=checkbox] {
|
|
6454
6479
|
/* checkbox aspect */
|
|
6455
6480
|
}
|
|
@@ -6614,6 +6639,7 @@ textarea.materialize-textarea {
|
|
|
6614
6639
|
-webkit-user-select: none;
|
|
6615
6640
|
-moz-user-select: none;
|
|
6616
6641
|
user-select: none;
|
|
6642
|
+
margin: 13px 0 17px 0;
|
|
6617
6643
|
}
|
|
6618
6644
|
|
|
6619
6645
|
.switch label {
|
|
@@ -6832,6 +6858,142 @@ body.keyboard-focused .select-dropdown.dropdown-content li:focus {
|
|
|
6832
6858
|
padding-left: 1rem;
|
|
6833
6859
|
}
|
|
6834
6860
|
|
|
6861
|
+
/* Dark theme overrides to ensure proper colors */
|
|
6862
|
+
[data-theme=dark] .select-dropdown.dropdown-content li:hover,
|
|
6863
|
+
[data-theme=dark] .dropdown-content li:hover,
|
|
6864
|
+
[data-theme=dark] .dropdown-content li.active {
|
|
6865
|
+
background-color: #444 !important;
|
|
6866
|
+
}
|
|
6867
|
+
[data-theme=dark] .chip {
|
|
6868
|
+
background-color: #424242 !important;
|
|
6869
|
+
color: var(--mm-text-secondary) !important;
|
|
6870
|
+
}
|
|
6871
|
+
|
|
6872
|
+
/* Auto dark mode support */
|
|
6873
|
+
@media (prefers-color-scheme: dark) {
|
|
6874
|
+
:root:not([data-theme=light]) .select-dropdown.dropdown-content li:hover,
|
|
6875
|
+
:root:not([data-theme=light]) .dropdown-content li:hover,
|
|
6876
|
+
:root:not([data-theme=light]) .dropdown-content li.active {
|
|
6877
|
+
background-color: #444 !important;
|
|
6878
|
+
}
|
|
6879
|
+
:root:not([data-theme=light]) .chip {
|
|
6880
|
+
background-color: #424242 !important;
|
|
6881
|
+
color: var(--mm-text-secondary) !important;
|
|
6882
|
+
}
|
|
6883
|
+
}
|
|
6884
|
+
/* SearchSelect Specific Styles
|
|
6885
|
+
========================================================================== */
|
|
6886
|
+
.search-wrapper {
|
|
6887
|
+
padding: 0 16px;
|
|
6888
|
+
position: relative;
|
|
6889
|
+
}
|
|
6890
|
+
|
|
6891
|
+
.search-select-input {
|
|
6892
|
+
width: 100%;
|
|
6893
|
+
outline: none;
|
|
6894
|
+
font-size: 0.875rem;
|
|
6895
|
+
border: none;
|
|
6896
|
+
padding: 8px 0;
|
|
6897
|
+
border-bottom: 1px solid var(--mm-input-border, #9e9e9e);
|
|
6898
|
+
background-color: transparent;
|
|
6899
|
+
color: var(--mm-text-primary, inherit);
|
|
6900
|
+
}
|
|
6901
|
+
.search-select-input:focus {
|
|
6902
|
+
border-bottom-color: var(--mm-primary-color, #2196F3);
|
|
6903
|
+
}
|
|
6904
|
+
.search-select-input::-moz-placeholder {
|
|
6905
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
6906
|
+
}
|
|
6907
|
+
.search-select-input::placeholder {
|
|
6908
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
6909
|
+
}
|
|
6910
|
+
|
|
6911
|
+
.search-select-no-options {
|
|
6912
|
+
padding: 8px 16px;
|
|
6913
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
6914
|
+
font-style: italic;
|
|
6915
|
+
text-align: center;
|
|
6916
|
+
border-bottom: none;
|
|
6917
|
+
}
|
|
6918
|
+
.search-select-no-options:hover {
|
|
6919
|
+
background-color: transparent;
|
|
6920
|
+
cursor: default;
|
|
6921
|
+
}
|
|
6922
|
+
|
|
6923
|
+
.search-select-option-label {
|
|
6924
|
+
display: flex;
|
|
6925
|
+
align-items: center;
|
|
6926
|
+
width: 100%;
|
|
6927
|
+
cursor: pointer;
|
|
6928
|
+
padding: 0;
|
|
6929
|
+
margin: 0;
|
|
6930
|
+
min-height: var(--mm-dropdown-item-height, 50px);
|
|
6931
|
+
}
|
|
6932
|
+
.search-select-option-label input[type=checkbox] {
|
|
6933
|
+
margin-right: 8px;
|
|
6934
|
+
position: relative;
|
|
6935
|
+
-webkit-appearance: none;
|
|
6936
|
+
-moz-appearance: none;
|
|
6937
|
+
appearance: none;
|
|
6938
|
+
width: 18px;
|
|
6939
|
+
height: 18px;
|
|
6940
|
+
border: 2px solid var(--mm-border-color, #9e9e9e);
|
|
6941
|
+
border-radius: 2px;
|
|
6942
|
+
background-color: transparent;
|
|
6943
|
+
}
|
|
6944
|
+
.search-select-option-label input[type=checkbox]:checked {
|
|
6945
|
+
background-color: var(--mm-primary-color, #2196F3);
|
|
6946
|
+
border-color: var(--mm-primary-color, #2196F3);
|
|
6947
|
+
}
|
|
6948
|
+
.search-select-option-label input[type=checkbox]:checked:after {
|
|
6949
|
+
content: "✓";
|
|
6950
|
+
color: white;
|
|
6951
|
+
font-size: 12px;
|
|
6952
|
+
position: absolute;
|
|
6953
|
+
top: -2px;
|
|
6954
|
+
left: 2px;
|
|
6955
|
+
}
|
|
6956
|
+
.search-select-option-label input[type=checkbox]:focus {
|
|
6957
|
+
outline: 2px solid var(--mm-primary-color, #2196F3);
|
|
6958
|
+
outline-offset: 2px;
|
|
6959
|
+
}
|
|
6960
|
+
.search-select-option-label span {
|
|
6961
|
+
flex: 1;
|
|
6962
|
+
}
|
|
6963
|
+
|
|
6964
|
+
.multi-select-dropdown .chips-container {
|
|
6965
|
+
display: flex;
|
|
6966
|
+
align-items: flex-end;
|
|
6967
|
+
flex-wrap: wrap;
|
|
6968
|
+
cursor: pointer;
|
|
6969
|
+
position: relative;
|
|
6970
|
+
min-height: var(--mm-input-height, 3rem);
|
|
6971
|
+
padding: 4px 0;
|
|
6972
|
+
}
|
|
6973
|
+
.multi-select-dropdown .chips-container .chip {
|
|
6974
|
+
margin: 2px 4px 2px 0;
|
|
6975
|
+
}
|
|
6976
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close {
|
|
6977
|
+
cursor: pointer;
|
|
6978
|
+
font-size: 16px;
|
|
6979
|
+
margin-left: 4px;
|
|
6980
|
+
}
|
|
6981
|
+
.multi-select-dropdown .chips-container .chip .material-icons.close:hover {
|
|
6982
|
+
color: var(--mm-error-color, #f44336);
|
|
6983
|
+
}
|
|
6984
|
+
.multi-select-dropdown .chips-container .placeholder {
|
|
6985
|
+
color: var(--mm-text-hint, #9e9e9e);
|
|
6986
|
+
flex-grow: 1;
|
|
6987
|
+
padding: 8px 0;
|
|
6988
|
+
}
|
|
6989
|
+
.multi-select-dropdown .chips-container .spacer {
|
|
6990
|
+
flex-grow: 1;
|
|
6991
|
+
}
|
|
6992
|
+
.multi-select-dropdown .chips-container .caret {
|
|
6993
|
+
margin-left: auto;
|
|
6994
|
+
cursor: pointer;
|
|
6995
|
+
}
|
|
6996
|
+
|
|
6835
6997
|
/* File Input
|
|
6836
6998
|
========================================================================== */
|
|
6837
6999
|
.file-field {
|
|
@@ -7049,20 +7211,6 @@ input[type=range]::-ms-thumb {
|
|
|
7049
7211
|
text-align: initial;
|
|
7050
7212
|
}
|
|
7051
7213
|
|
|
7052
|
-
select:focus {
|
|
7053
|
-
outline: 1px solid rgb(201.05, 242.65, 238.75);
|
|
7054
|
-
}
|
|
7055
|
-
|
|
7056
|
-
button:focus {
|
|
7057
|
-
outline: none;
|
|
7058
|
-
background-color: rgb(41.8, 182.6, 169.4);
|
|
7059
|
-
}
|
|
7060
|
-
|
|
7061
|
-
label {
|
|
7062
|
-
font-size: 0.8rem;
|
|
7063
|
-
color: #9e9e9e;
|
|
7064
|
-
}
|
|
7065
|
-
|
|
7066
7214
|
/* Enhanced Range Sliders
|
|
7067
7215
|
========================================================================== */
|
|
7068
7216
|
.range-slider.vertical {
|