mithril-materialized 2.0.0-beta.9 → 2.0.0-rc.2

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.
Files changed (43) hide show
  1. package/README.md +353 -10
  2. package/dist/advanced.css +6 -6
  3. package/dist/button.d.ts +56 -11
  4. package/dist/components.css +1674 -6
  5. package/dist/core.css +13 -13
  6. package/dist/datatable.d.ts +291 -0
  7. package/dist/datepicker.d.ts +12 -2
  8. package/dist/file-upload.d.ts +23 -0
  9. package/dist/floating-action-button.d.ts +1 -1
  10. package/dist/forms.css +344 -13
  11. package/dist/icon.d.ts +2 -2
  12. package/dist/image-list.d.ts +70 -0
  13. package/dist/index.css +1940 -20
  14. package/dist/index.d.ts +8 -0
  15. package/dist/index.esm.js +2736 -659
  16. package/dist/index.js +2746 -658
  17. package/dist/index.min.css +2 -2
  18. package/dist/index.umd.js +2746 -658
  19. package/dist/input-options.d.ts +18 -4
  20. package/dist/input.d.ts +0 -1
  21. package/dist/masonry.d.ts +17 -0
  22. package/dist/material-icon.d.ts +3 -0
  23. package/dist/pickers.css +45 -0
  24. package/dist/range-slider.d.ts +42 -0
  25. package/dist/theme-switcher.d.ts +23 -0
  26. package/dist/timeline.d.ts +43 -0
  27. package/dist/treeview.d.ts +39 -0
  28. package/dist/types.d.ts +226 -0
  29. package/dist/utilities.css +16 -9
  30. package/package.json +12 -9
  31. package/sass/components/_cards.scss +10 -3
  32. package/sass/components/_datatable.scss +417 -0
  33. package/sass/components/_datepicker.scss +57 -0
  34. package/sass/components/_global.scss +6 -6
  35. package/sass/components/_image-list.scss +421 -0
  36. package/sass/components/_masonry.scss +241 -0
  37. package/sass/components/_timeline.scss +452 -0
  38. package/sass/components/_treeview.scss +353 -0
  39. package/sass/components/forms/_forms.scss +1 -1
  40. package/sass/components/forms/_range-enhanced.scss +406 -0
  41. package/sass/components/forms/_range.scss +5 -5
  42. package/sass/components/forms/_select.scss +1 -1
  43. package/sass/materialize.scss +6 -0
package/dist/index.css CHANGED
@@ -1,4 +1,3 @@
1
- @charset "UTF-8";
2
1
  :root {
3
2
  --mm-primary-color: #26a69a;
4
3
  --mm-primary-color-light: #80cbc4;
@@ -2803,21 +2802,21 @@ video.responsive-video {
2803
2802
  height: 30px;
2804
2803
  }
2805
2804
  .pagination li a {
2806
- color: #444;
2805
+ color: var(--mm-text-primary, #444);
2807
2806
  display: inline-block;
2808
2807
  font-size: 1.2rem;
2809
2808
  padding: 0 10px;
2810
2809
  line-height: 30px;
2811
2810
  }
2812
2811
  .pagination li.active a {
2813
- color: #fff;
2812
+ color: var(--mm-text-on-primary, #fff);
2814
2813
  }
2815
2814
  .pagination li.active {
2816
2815
  background-color: #ee6e73;
2817
2816
  }
2818
2817
  .pagination li.disabled a {
2819
2818
  cursor: default;
2820
- color: #999;
2819
+ color: var(--mm-text-disabled, #999);
2821
2820
  }
2822
2821
  .pagination li i {
2823
2822
  font-size: 2rem;
@@ -3148,8 +3147,8 @@ td, th {
3148
3147
  .collection .collection-item.avatar i.circle {
3149
3148
  font-size: 18px;
3150
3149
  line-height: 42px;
3151
- color: #fff;
3152
- background-color: #999;
3150
+ color: var(--mm-text-on-primary, #fff);
3151
+ background-color: var(--mm-text-disabled, #999);
3153
3152
  text-align: center;
3154
3153
  }
3155
3154
  .collection .collection-item.avatar .title {
@@ -3171,7 +3170,7 @@ td, th {
3171
3170
  color: rgb(234.25, 250.25, 248.75);
3172
3171
  }
3173
3172
  .collection .collection-item.active .secondary-content {
3174
- color: #fff;
3173
+ color: var(--mm-text-on-primary, #fff);
3175
3174
  }
3176
3175
  .collection a.collection-item {
3177
3176
  display: block;
@@ -4584,13 +4583,15 @@ small {
4584
4583
  padding: 24px;
4585
4584
  margin: 0.5rem 0 1rem 0;
4586
4585
  border-radius: 2px;
4587
- background-color: #fff;
4586
+ background-color: var(--mm-card-background, #fff);
4587
+ color: var(--mm-text-primary);
4588
4588
  }
4589
4589
 
4590
4590
  .card {
4591
4591
  position: relative;
4592
4592
  margin: 0.5rem 0 1rem 0;
4593
- background-color: #fff;
4593
+ background-color: var(--mm-card-background, #fff);
4594
+ color: var(--mm-text-primary);
4594
4595
  transition: box-shadow 0.25s;
4595
4596
  border-radius: 2px;
4596
4597
  }
@@ -4689,6 +4690,8 @@ small {
4689
4690
  .card .card-content {
4690
4691
  padding: 24px;
4691
4692
  border-radius: 0 0 2px 2px;
4693
+ background-color: var(--mm-card-background, #fff);
4694
+ color: var(--mm-text-primary);
4692
4695
  }
4693
4696
  .card .card-content p {
4694
4697
  margin: 0;
@@ -4697,6 +4700,7 @@ small {
4697
4700
  display: block;
4698
4701
  line-height: 32px;
4699
4702
  margin-bottom: 8px;
4703
+ color: var(--mm-text-primary);
4700
4704
  }
4701
4705
  .card .card-content .card-title i {
4702
4706
  line-height: 32px;
@@ -4722,7 +4726,8 @@ small {
4722
4726
  .card .card-reveal {
4723
4727
  padding: 24px;
4724
4728
  position: absolute;
4725
- background-color: #fff;
4729
+ background-color: var(--mm-card-background, #fff);
4730
+ color: var(--mm-text-primary);
4726
4731
  width: 100%;
4727
4732
  overflow-y: auto;
4728
4733
  left: 0;
@@ -4734,6 +4739,7 @@ small {
4734
4739
  .card .card-reveal .card-title {
4735
4740
  cursor: pointer;
4736
4741
  display: block;
4742
+ color: var(--mm-text-primary);
4737
4743
  }
4738
4744
 
4739
4745
  #toast-container {
@@ -6775,7 +6781,7 @@ select:disabled {
6775
6781
  }
6776
6782
 
6777
6783
  .select-wrapper i {
6778
- color: rgba(0, 0, 0, 0.3);
6784
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
6779
6785
  }
6780
6786
 
6781
6787
  .select-dropdown li.disabled,
@@ -6928,7 +6934,7 @@ input[type=range] {
6928
6934
 
6929
6935
  input[type=range]::-webkit-slider-runnable-track {
6930
6936
  height: 3px;
6931
- background: #c2c0c2;
6937
+ background: var(--mm-border-color, #c2c0c2);
6932
6938
  border: none;
6933
6939
  }
6934
6940
 
@@ -6952,13 +6958,13 @@ input[type=range]::-webkit-slider-thumb {
6952
6958
 
6953
6959
  input[type=range] {
6954
6960
  /* fix for FF unable to apply focus style bug */
6955
- border: 1px solid white;
6961
+ border: 1px solid var(--mm-card-background, white);
6956
6962
  /*required for proper track sizing in FF*/
6957
6963
  }
6958
6964
 
6959
6965
  input[type=range]::-moz-range-track {
6960
6966
  height: 3px;
6961
- background: #c2c0c2;
6967
+ background: var(--mm-border-color, #c2c0c2);
6962
6968
  border: none;
6963
6969
  }
6964
6970
 
@@ -6978,7 +6984,7 @@ input[type=range]::-moz-range-thumb {
6978
6984
  }
6979
6985
 
6980
6986
  input[type=range]:-moz-focusring {
6981
- outline: 1px solid #fff;
6987
+ outline: 1px solid var(--mm-card-background, #fff);
6982
6988
  outline-offset: -1px;
6983
6989
  }
6984
6990
 
@@ -6996,11 +7002,11 @@ input[type=range]::-ms-track {
6996
7002
  }
6997
7003
 
6998
7004
  input[type=range]::-ms-fill-lower {
6999
- background: #777;
7005
+ background: var(--mm-text-secondary, #777);
7000
7006
  }
7001
7007
 
7002
7008
  input[type=range]::-ms-fill-upper {
7003
- background: #ddd;
7009
+ background: var(--mm-surface-color, #ddd);
7004
7010
  }
7005
7011
 
7006
7012
  input[type=range]::-ms-thumb {
@@ -7057,6 +7063,338 @@ label {
7057
7063
  color: #9e9e9e;
7058
7064
  }
7059
7065
 
7066
+ /* Enhanced Range Sliders
7067
+ ========================================================================== */
7068
+ .range-slider.vertical {
7069
+ -webkit-appearance: none;
7070
+ -moz-appearance: none;
7071
+ appearance: none;
7072
+ writing-mode: vertical-lr;
7073
+ direction: rtl;
7074
+ width: 6px;
7075
+ transform: none;
7076
+ }
7077
+ .range-slider.vertical::-webkit-slider-runnable-track {
7078
+ width: 6px;
7079
+ height: 100%;
7080
+ }
7081
+ .range-slider.vertical::-webkit-slider-thumb {
7082
+ -webkit-appearance: none;
7083
+ width: 14px;
7084
+ height: 14px;
7085
+ margin-left: -4px;
7086
+ margin-top: 0;
7087
+ }
7088
+ .range-slider.vertical::-moz-range-track {
7089
+ width: 6px;
7090
+ height: 100%;
7091
+ }
7092
+ .range-slider.vertical::-moz-range-thumb {
7093
+ width: 14px;
7094
+ height: 14px;
7095
+ margin-left: -12px;
7096
+ margin-top: 0;
7097
+ }
7098
+ .range-slider.disabled {
7099
+ opacity: 0.6;
7100
+ cursor: not-allowed;
7101
+ }
7102
+ .range-slider.disabled::-webkit-slider-thumb {
7103
+ cursor: not-allowed;
7104
+ }
7105
+ .range-slider.disabled::-moz-range-thumb {
7106
+ cursor: not-allowed;
7107
+ }
7108
+
7109
+ .single-range-slider {
7110
+ outline: none;
7111
+ }
7112
+ .single-range-slider.horizontal {
7113
+ height: 40px;
7114
+ position: relative;
7115
+ display: flex;
7116
+ align-items: center;
7117
+ }
7118
+ .single-range-slider.vertical {
7119
+ width: 40px;
7120
+ position: relative;
7121
+ display: flex;
7122
+ flex-direction: column;
7123
+ align-items: center;
7124
+ height: 100%;
7125
+ }
7126
+ .single-range-slider .track {
7127
+ background-color: var(--mm-border-color, #c2c0c2);
7128
+ border-radius: 2px;
7129
+ }
7130
+ .single-range-slider .track.horizontal {
7131
+ position: absolute;
7132
+ top: 25%;
7133
+ left: 0;
7134
+ transform: translateY(-50%);
7135
+ width: 100%;
7136
+ height: 4px;
7137
+ }
7138
+ .single-range-slider .track.vertical {
7139
+ position: absolute;
7140
+ bottom: 10px;
7141
+ width: 4px;
7142
+ height: 100%;
7143
+ }
7144
+ .single-range-slider .range-progress {
7145
+ background-color: var(--mm-primary-color, #26a69a);
7146
+ border-radius: 2px;
7147
+ }
7148
+ .single-range-slider .range-progress.horizontal {
7149
+ position: absolute;
7150
+ top: 25%;
7151
+ transform: translateY(-50%);
7152
+ height: 4px;
7153
+ }
7154
+ .single-range-slider .range-progress.vertical {
7155
+ position: absolute;
7156
+ bottom: 10px;
7157
+ width: 4px;
7158
+ }
7159
+ .single-range-slider .thumb {
7160
+ background-color: var(--mm-primary-color, #26a69a);
7161
+ transition: transform 0.1s ease, box-shadow 0.1s ease;
7162
+ width: 20px;
7163
+ height: 20px;
7164
+ border-radius: 50%;
7165
+ cursor: pointer;
7166
+ outline: none;
7167
+ }
7168
+ .single-range-slider .thumb.horizontal {
7169
+ position: absolute;
7170
+ transform: translateY(-50%);
7171
+ }
7172
+ .single-range-slider .thumb.vertical {
7173
+ position: absolute;
7174
+ }
7175
+ .single-range-slider .thumb:hover {
7176
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
7177
+ }
7178
+ .single-range-slider .thumb .value-tooltip {
7179
+ position: absolute;
7180
+ background: var(--mm-primary-color, #26a69a);
7181
+ color: white;
7182
+ padding: 4px 8px;
7183
+ border-radius: 4px;
7184
+ font-size: 12px;
7185
+ white-space: nowrap;
7186
+ min-width: 24px;
7187
+ text-align: center;
7188
+ pointer-events: none;
7189
+ z-index: 20;
7190
+ }
7191
+ .single-range-slider .thumb .value-tooltip.top {
7192
+ bottom: 100%;
7193
+ left: 50%;
7194
+ transform: translateX(-50%);
7195
+ margin-bottom: 8px;
7196
+ }
7197
+ .single-range-slider .thumb .value-tooltip.top::after {
7198
+ content: "";
7199
+ position: absolute;
7200
+ top: 100%;
7201
+ left: 50%;
7202
+ transform: translateX(-50%);
7203
+ border: 4px solid transparent;
7204
+ border-top-color: var(--mm-primary-color, #26a69a);
7205
+ }
7206
+ .single-range-slider .thumb .value-tooltip.bottom {
7207
+ top: 100%;
7208
+ left: 50%;
7209
+ transform: translateX(-50%);
7210
+ margin-top: 8px;
7211
+ }
7212
+ .single-range-slider .thumb .value-tooltip.bottom::after {
7213
+ content: "";
7214
+ position: absolute;
7215
+ bottom: 100%;
7216
+ left: 50%;
7217
+ transform: translateX(-50%);
7218
+ border: 4px solid transparent;
7219
+ border-bottom-color: var(--mm-primary-color, #26a69a);
7220
+ }
7221
+ .single-range-slider .thumb .value-tooltip.left {
7222
+ right: 100%;
7223
+ top: 50%;
7224
+ transform: translateY(-50%);
7225
+ margin-right: 8px;
7226
+ }
7227
+ .single-range-slider .thumb .value-tooltip.left::after {
7228
+ content: "";
7229
+ position: absolute;
7230
+ top: 50%;
7231
+ left: 100%;
7232
+ transform: translateY(-50%);
7233
+ border: 4px solid transparent;
7234
+ border-left-color: var(--mm-primary-color, #26a69a);
7235
+ }
7236
+ .single-range-slider .thumb .value-tooltip.right {
7237
+ left: 100%;
7238
+ top: 50%;
7239
+ transform: translateY(-50%);
7240
+ margin-left: 8px;
7241
+ }
7242
+ .single-range-slider .thumb .value-tooltip.right::after {
7243
+ content: "";
7244
+ position: absolute;
7245
+ top: 50%;
7246
+ right: 100%;
7247
+ transform: translateY(-50%);
7248
+ border: 4px solid transparent;
7249
+ border-right-color: var(--mm-primary-color, #26a69a);
7250
+ }
7251
+ .single-range-slider:focus .thumb, .single-range-slider:focus-visible .thumb {
7252
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.2);
7253
+ }
7254
+ .single-range-slider:focus .thumb:hover, .single-range-slider:focus-visible .thumb:hover {
7255
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.3);
7256
+ }
7257
+
7258
+ .double-range-slider {
7259
+ outline: none;
7260
+ border-radius: 4px;
7261
+ }
7262
+ .double-range-slider.horizontal {
7263
+ height: 40px;
7264
+ position: relative;
7265
+ display: flex;
7266
+ align-items: center;
7267
+ }
7268
+ .double-range-slider.vertical {
7269
+ width: 40px;
7270
+ position: relative;
7271
+ display: flex;
7272
+ flex-direction: column;
7273
+ align-items: center;
7274
+ }
7275
+ .double-range-slider .track {
7276
+ background-color: var(--mm-border-color, #c2c0c2);
7277
+ border-radius: 2px;
7278
+ }
7279
+ .double-range-slider .track.horizontal {
7280
+ position: absolute;
7281
+ top: 50%;
7282
+ left: 0;
7283
+ transform: translateY(-50%);
7284
+ width: 100%;
7285
+ height: 4px;
7286
+ }
7287
+ .double-range-slider .track.vertical {
7288
+ position: absolute;
7289
+ left: 50%;
7290
+ top: 0;
7291
+ transform: translateX(-50%);
7292
+ width: 4px;
7293
+ height: 100%;
7294
+ }
7295
+ .double-range-slider .range {
7296
+ background-color: var(--mm-primary-color, #26a69a);
7297
+ border-radius: 2px;
7298
+ }
7299
+ .double-range-slider .range.horizontal {
7300
+ position: absolute;
7301
+ top: 50%;
7302
+ transform: translateY(-50%);
7303
+ height: 4px;
7304
+ }
7305
+ .double-range-slider .range.vertical {
7306
+ position: absolute;
7307
+ left: 50%;
7308
+ transform: translateX(-50%);
7309
+ width: 4px;
7310
+ }
7311
+ .double-range-slider .thumb {
7312
+ background-color: var(--mm-primary-color, #26a69a);
7313
+ transition: transform 0.1s ease, box-shadow 0.1s ease;
7314
+ width: 20px;
7315
+ height: 20px;
7316
+ border-radius: 50%;
7317
+ cursor: pointer;
7318
+ outline: none;
7319
+ }
7320
+ .double-range-slider .thumb.horizontal {
7321
+ position: absolute;
7322
+ top: 50%;
7323
+ transform: translateY(-50%);
7324
+ }
7325
+ .double-range-slider .thumb.vertical {
7326
+ position: absolute;
7327
+ left: 50%;
7328
+ transform: translateX(-50%);
7329
+ }
7330
+ .double-range-slider .thumb:hover {
7331
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
7332
+ }
7333
+ .double-range-slider .thumb .value {
7334
+ position: absolute;
7335
+ background: var(--mm-primary-color, #26a69a);
7336
+ color: white;
7337
+ padding: 2px 6px;
7338
+ border-radius: 4px;
7339
+ font-size: 12px;
7340
+ white-space: nowrap;
7341
+ min-width: 24px;
7342
+ text-align: center;
7343
+ pointer-events: none;
7344
+ z-index: 20;
7345
+ }
7346
+ .double-range-slider .thumb .value.horizontal {
7347
+ top: -30px;
7348
+ left: 50%;
7349
+ transform: translateX(-50%);
7350
+ }
7351
+ .double-range-slider .thumb .value.horizontal::after {
7352
+ content: "";
7353
+ position: absolute;
7354
+ top: 100%;
7355
+ left: 50%;
7356
+ transform: translateX(-50%);
7357
+ border: 4px solid transparent;
7358
+ border-top-color: var(--mm-primary-color, #26a69a);
7359
+ }
7360
+ .double-range-slider .thumb .value.vertical {
7361
+ top: 50%;
7362
+ left: -35px;
7363
+ transform: translateY(-50%);
7364
+ }
7365
+ .double-range-slider .thumb .value.vertical::after {
7366
+ content: "";
7367
+ position: absolute;
7368
+ top: 50%;
7369
+ left: 100%;
7370
+ transform: translateY(-50%);
7371
+ border: 4px solid transparent;
7372
+ border-left-color: var(--mm-primary-color, #26a69a);
7373
+ }
7374
+ .double-range-slider .thumb:focus, .double-range-slider .thumb:focus-visible {
7375
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.2);
7376
+ }
7377
+ .double-range-slider .thumb:focus:hover, .double-range-slider .thumb:focus-visible:hover {
7378
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.3);
7379
+ }
7380
+ .double-range-slider:focus .thumb.min-thumb.active, .double-range-slider:focus .thumb.max-thumb.active, .double-range-slider:focus-visible .thumb.min-thumb.active, .double-range-slider:focus-visible .thumb.max-thumb.active {
7381
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.2);
7382
+ }
7383
+ .double-range-slider:focus .thumb.min-thumb.active:hover, .double-range-slider:focus .thumb.max-thumb.active:hover, .double-range-slider:focus-visible .thumb.min-thumb.active:hover, .double-range-slider:focus-visible .thumb.max-thumb.active:hover {
7384
+ box-shadow: 0 0 0 3px var(--mm-primary-color-alpha-30, rgba(38, 166, 154, 0.3)), 0 4px 8px rgba(0, 0, 0, 0.3);
7385
+ }
7386
+
7387
+ .range-field.vertical {
7388
+ display: flex;
7389
+ flex-direction: column;
7390
+ align-items: center;
7391
+ min-height: 100px;
7392
+ padding-top: 20px;
7393
+ }
7394
+ .range-field.vertical .double-range-slider {
7395
+ height: 100%;
7396
+ }
7397
+
7060
7398
  /***************
7061
7399
  Nav List
7062
7400
  ***************/
@@ -8101,6 +8439,30 @@ label {
8101
8439
  line-height: 47px;
8102
8440
  font-weight: 500;
8103
8441
  }
8442
+ .datepicker-date-display .date-text.placeholder {
8443
+ font-size: 1.8rem;
8444
+ line-height: 30px;
8445
+ color: rgba(255, 255, 255, 0.7);
8446
+ font-weight: 400;
8447
+ }
8448
+ .datepicker-date-display .date-text .range-separator {
8449
+ color: rgba(255, 255, 255, 0.8);
8450
+ font-size: 1.5rem;
8451
+ font-weight: 400;
8452
+ }
8453
+ .datepicker-date-display .date-text .end-date.placeholder {
8454
+ color: rgba(255, 255, 255, 0.5);
8455
+ font-style: italic;
8456
+ font-size: 1.2rem;
8457
+ font-weight: 300;
8458
+ }
8459
+ .datepicker-date-display.range-display .date-text {
8460
+ font-size: 1.6rem;
8461
+ line-height: 28px;
8462
+ }
8463
+ .datepicker-date-display.range-display .date-text .start-date, .datepicker-date-display.range-display .date-text .end-date {
8464
+ display: inline-block;
8465
+ }
8104
8466
 
8105
8467
  /* Calendar */
8106
8468
  .datepicker-calendar-container {
@@ -8147,9 +8509,30 @@ label {
8147
8509
  background-color: var(--mm-primary-color, #26a69a);
8148
8510
  color: var(--mm-button-text, #fff);
8149
8511
  }
8150
- .datepicker-table td.is-outside-current-month, .datepicker-table td.is-disabled {
8151
- color: var(--mm-text-disabled, rgba(0, 0, 0, 0.3));
8152
- pointer-events: none;
8512
+ .datepicker-table td.is-range-start {
8513
+ background-color: var(--mm-primary-color, #26a69a);
8514
+ color: var(--mm-button-text, #fff);
8515
+ border-top-right-radius: 0;
8516
+ border-bottom-right-radius: 0;
8517
+ }
8518
+ .datepicker-table td.is-range-end {
8519
+ background-color: var(--mm-primary-color, #26a69a);
8520
+ color: var(--mm-button-text, #fff);
8521
+ border-top-left-radius: 0;
8522
+ border-bottom-left-radius: 0;
8523
+ }
8524
+ .datepicker-table td.is-in-range {
8525
+ background-color: var(--mm-primary-color-alpha-20, rgba(38, 166, 154, 0.2));
8526
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
8527
+ border-radius: 0;
8528
+ }
8529
+ .datepicker-table td.is-range-preview {
8530
+ background-color: var(--mm-primary-color-alpha-10, rgba(38, 166, 154, 0.1));
8531
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
8532
+ }
8533
+ .datepicker-table td.is-outside-current-month, .datepicker-table td.is-disabled {
8534
+ color: var(--mm-text-disabled, rgba(0, 0, 0, 0.3));
8535
+ pointer-events: none;
8153
8536
  }
8154
8537
  .datepicker-table td.datepicker-week-number {
8155
8538
  color: var(--mm-text-hint, rgba(0, 0, 0, 0.38));
@@ -9282,4 +9665,1541 @@ nav .theme-toggle:focus {
9282
9665
 
9283
9666
  .wizard-step-indicator[aria-current=step] {
9284
9667
  box-shadow: 0 0 0 4px var(--mm-primary-color-light, rgba(38, 166, 154, 0.2));
9668
+ }
9669
+
9670
+ .datatable-container {
9671
+ background: var(--mm-card-background);
9672
+ color: var(--mm-text-primary);
9673
+ border-radius: 4px;
9674
+ }
9675
+ .datatable-container .datatable-title {
9676
+ color: var(--mm-text-primary);
9677
+ font-weight: 400;
9678
+ margin-bottom: 1rem;
9679
+ }
9680
+ .datatable-container .datatable-global-search {
9681
+ padding-top: 0.5rem;
9682
+ }
9683
+ .datatable-container .datatable-wrapper {
9684
+ position: relative;
9685
+ background: var(--mm-card-background);
9686
+ border-radius: 4px;
9687
+ overflow: hidden;
9688
+ }
9689
+ .datatable-container .table-wrapper {
9690
+ overflow-x: auto;
9691
+ width: 100%;
9692
+ -webkit-overflow-scrolling: touch;
9693
+ background: var(--mm-card-background);
9694
+ }
9695
+ .datatable-container .datatable-loading {
9696
+ padding: 2rem;
9697
+ text-align: center;
9698
+ color: var(--mm-text-secondary);
9699
+ background: var(--mm-card-background);
9700
+ }
9701
+ .datatable-container .datatable-loading .preloader-wrapper {
9702
+ margin-bottom: 1rem;
9703
+ }
9704
+ .datatable-container .datatable-empty {
9705
+ padding: 3rem 2rem;
9706
+ text-align: center;
9707
+ color: var(--mm-text-secondary);
9708
+ font-style: italic;
9709
+ background: var(--mm-card-background);
9710
+ }
9711
+
9712
+ .datatable {
9713
+ background: var(--mm-card-background);
9714
+ color: var(--mm-text-primary);
9715
+ border-collapse: collapse;
9716
+ width: 100%;
9717
+ }
9718
+ .datatable thead {
9719
+ background: var(--mm-card-background);
9720
+ }
9721
+ .datatable thead th {
9722
+ background: var(--mm-card-background);
9723
+ color: var(--mm-text-primary);
9724
+ border-bottom: 1px solid var(--mm-border-color);
9725
+ font-weight: 500;
9726
+ padding: 12px 16px;
9727
+ text-align: left;
9728
+ }
9729
+ .datatable tbody {
9730
+ background: var(--mm-card-background);
9731
+ }
9732
+ .datatable tbody td {
9733
+ background: var(--mm-card-background);
9734
+ color: var(--mm-text-primary);
9735
+ border-bottom: 1px solid var(--mm-border-color);
9736
+ padding: 12px 16px;
9737
+ }
9738
+ .datatable thead th.sortable {
9739
+ cursor: pointer;
9740
+ -webkit-user-select: none;
9741
+ -moz-user-select: none;
9742
+ user-select: none;
9743
+ position: relative;
9744
+ transition: background-color 0.2s ease;
9745
+ padding-right: 32px;
9746
+ }
9747
+ .datatable thead th.sortable:hover {
9748
+ background-color: var(--mm-dropdown-hover);
9749
+ }
9750
+ .datatable thead th.sortable .sort-indicators {
9751
+ position: absolute;
9752
+ right: 8px;
9753
+ top: 50%;
9754
+ transform: translateY(-50%);
9755
+ display: flex;
9756
+ flex-direction: column;
9757
+ line-height: 1;
9758
+ }
9759
+ .datatable thead th.sortable .sort-indicators .sort-icon {
9760
+ font-size: 16px;
9761
+ color: var(--mm-text-disabled);
9762
+ transition: color 0.2s ease;
9763
+ }
9764
+ .datatable thead th.sortable .sort-indicators .sort-icon.active {
9765
+ color: var(--mm-primary-color);
9766
+ }
9767
+ .datatable thead th.sortable .sort-indicators .sort-asc {
9768
+ margin-bottom: 0px;
9769
+ }
9770
+ .datatable thead th.sortable .sort-indicators .sort-desc {
9771
+ margin-top: 0px;
9772
+ }
9773
+ .datatable .align-left {
9774
+ text-align: left;
9775
+ }
9776
+ .datatable .align-center {
9777
+ text-align: center;
9778
+ }
9779
+ .datatable .align-right {
9780
+ text-align: right;
9781
+ }
9782
+ .datatable tbody tr {
9783
+ transition: background-color 0.2s ease;
9784
+ cursor: pointer;
9785
+ }
9786
+ .datatable tbody tr:hover {
9787
+ background-color: var(--mm-dropdown-hover);
9788
+ }
9789
+ .datatable tbody tr:hover td {
9790
+ background-color: var(--mm-dropdown-hover);
9791
+ }
9792
+ .datatable.striped tbody tr:nth-child(odd) {
9793
+ background-color: var(--mm-dropdown-focus);
9794
+ }
9795
+ .datatable.striped tbody tr:nth-child(odd) td {
9796
+ background-color: var(--mm-dropdown-focus);
9797
+ }
9798
+ .datatable.striped tbody tr:nth-child(odd):hover {
9799
+ background-color: var(--mm-dropdown-hover);
9800
+ }
9801
+ .datatable.striped tbody tr:nth-child(odd):hover td {
9802
+ background-color: var(--mm-dropdown-hover);
9803
+ }
9804
+ .datatable .selection-checkbox {
9805
+ width: 40px;
9806
+ text-align: center;
9807
+ padding: 0 8px !important;
9808
+ }
9809
+ .datatable .selection-checkbox label {
9810
+ margin: 0;
9811
+ height: 100%;
9812
+ display: flex;
9813
+ align-items: center;
9814
+ justify-content: center;
9815
+ }
9816
+ .datatable .selection-checkbox input[type=checkbox] {
9817
+ opacity: 1;
9818
+ position: relative;
9819
+ left: auto;
9820
+ top: auto;
9821
+ transform: none;
9822
+ margin-right: 0;
9823
+ }
9824
+ .datatable tbody tr.selected {
9825
+ background-color: var(--mm-dropdown-selected) !important;
9826
+ }
9827
+ .datatable tbody tr.selected td {
9828
+ background-color: var(--mm-dropdown-selected) !important;
9829
+ }
9830
+ .datatable tbody tr.selected:hover {
9831
+ background-color: var(--mm-dropdown-selected) !important;
9832
+ opacity: 0.9;
9833
+ }
9834
+ .datatable tbody tr.selected:hover td {
9835
+ background-color: var(--mm-dropdown-selected) !important;
9836
+ opacity: 0.9;
9837
+ }
9838
+ .datatable.fixed-header thead th {
9839
+ position: sticky;
9840
+ top: 0;
9841
+ background: var(--mm-card-background);
9842
+ z-index: 10;
9843
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
9844
+ }
9845
+
9846
+ .datatable-pagination {
9847
+ margin-top: 1rem;
9848
+ display: flex;
9849
+ justify-content: space-between;
9850
+ align-items: center;
9851
+ flex-wrap: wrap;
9852
+ gap: 1rem;
9853
+ background: var(--mm-card-background);
9854
+ color: var(--mm-text-primary);
9855
+ padding: 1rem;
9856
+ border-top: 1px solid var(--mm-border-color);
9857
+ }
9858
+ .datatable-pagination .pagination-info {
9859
+ color: var(--mm-text-secondary);
9860
+ font-size: 0.9rem;
9861
+ flex: 1;
9862
+ min-width: 200px;
9863
+ }
9864
+ .datatable-pagination .pagination-controls {
9865
+ display: flex;
9866
+ align-items: center;
9867
+ gap: 0.5rem;
9868
+ }
9869
+ .datatable-pagination .pagination-controls button.btn-flat {
9870
+ min-width: 40px;
9871
+ height: 40px;
9872
+ padding: 0;
9873
+ display: flex;
9874
+ align-items: center;
9875
+ justify-content: center;
9876
+ border-radius: 50%;
9877
+ transition: background-color 0.2s ease;
9878
+ background: transparent;
9879
+ color: var(--mm-text-primary);
9880
+ border: 1px solid var(--mm-border-color);
9881
+ }
9882
+ .datatable-pagination .pagination-controls button.btn-flat:hover:not(:disabled) {
9883
+ background-color: var(--mm-dropdown-hover);
9884
+ }
9885
+ .datatable-pagination .pagination-controls button.btn-flat:disabled {
9886
+ color: var(--mm-text-disabled);
9887
+ cursor: not-allowed;
9888
+ border-color: var(--mm-text-disabled);
9889
+ opacity: 0.6;
9890
+ }
9891
+ .datatable-pagination .pagination-controls button.btn-flat i {
9892
+ font-size: 20px;
9893
+ }
9894
+ .datatable-pagination .pagination-controls .page-info {
9895
+ margin: 0 0.5rem;
9896
+ color: var(--mm-text-secondary);
9897
+ font-weight: 500;
9898
+ white-space: nowrap;
9899
+ }
9900
+
9901
+ @media only screen and (max-width : 992px) {
9902
+ .datatable-container .datatable-search {
9903
+ max-width: 100%;
9904
+ }
9905
+ .datatable-container .datatable-pagination {
9906
+ flex-direction: column;
9907
+ align-items: stretch;
9908
+ text-align: center;
9909
+ }
9910
+ .datatable-container .datatable-pagination .pagination-info {
9911
+ order: 2;
9912
+ margin-top: 0.5rem;
9913
+ text-align: center;
9914
+ }
9915
+ .datatable-container .datatable-pagination .pagination-controls {
9916
+ order: 1;
9917
+ justify-content: center;
9918
+ }
9919
+ .datatable.responsive-table.mobile-hide-secondary th:nth-child(n+4),
9920
+ .datatable.responsive-table.mobile-hide-secondary td:nth-child(n+4) {
9921
+ display: none;
9922
+ }
9923
+ }
9924
+ @media only screen and (max-width : 992px) and (max-width : 600px) {
9925
+ .datatable.responsive-table.mobile-stack thead {
9926
+ display: none;
9927
+ }
9928
+ .datatable.responsive-table.mobile-stack tbody tr {
9929
+ display: block;
9930
+ border: 1px solid var(--mm-border-color);
9931
+ margin-bottom: 1rem;
9932
+ padding: 1rem;
9933
+ border-radius: 4px;
9934
+ background: var(--mm-card-background);
9935
+ }
9936
+ .datatable.responsive-table.mobile-stack tbody td {
9937
+ display: block;
9938
+ text-align: left !important;
9939
+ padding: 0.5rem 0;
9940
+ border: none;
9941
+ }
9942
+ .datatable.responsive-table.mobile-stack tbody td::before {
9943
+ content: attr(data-label) ": ";
9944
+ font-weight: bold;
9945
+ color: var(--mm-text-secondary);
9946
+ display: inline-block;
9947
+ min-width: 100px;
9948
+ }
9949
+ }
9950
+ @media (prefers-color-scheme: dark) {
9951
+ :root:not([data-theme]) .datatable-container .datatable thead th.sortable:hover,
9952
+ [data-theme=dark] .datatable-container .datatable thead th.sortable:hover {
9953
+ background-color: var(--mm-dropdown-hover);
9954
+ }
9955
+ :root:not([data-theme]) .datatable-container .datatable tbody tr:hover,
9956
+ [data-theme=dark] .datatable-container .datatable tbody tr:hover {
9957
+ background-color: var(--mm-dropdown-hover);
9958
+ }
9959
+ :root:not([data-theme]) .datatable-container .datatable.striped tbody tr:nth-child(odd),
9960
+ [data-theme=dark] .datatable-container .datatable.striped tbody tr:nth-child(odd) {
9961
+ background-color: rgba(255, 255, 255, 0.05);
9962
+ }
9963
+ :root:not([data-theme]) .datatable-container .datatable.fixed-header thead th,
9964
+ [data-theme=dark] .datatable-container .datatable.fixed-header thead th {
9965
+ border-bottom: 1px solid var(--mm-border-color);
9966
+ }
9967
+ }
9968
+ .datatable {
9969
+ contain: layout style paint;
9970
+ }
9971
+ .datatable.virtual-table {
9972
+ transform: translateZ(0);
9973
+ backface-visibility: hidden;
9974
+ }
9975
+ .datatable tbody tr {
9976
+ transform: translateZ(0);
9977
+ will-change: transform;
9978
+ }
9979
+ .datatable.fixed-layout {
9980
+ table-layout: fixed;
9981
+ }
9982
+ .datatable.fixed-layout th, .datatable.fixed-layout td {
9983
+ overflow: hidden;
9984
+ text-overflow: ellipsis;
9985
+ white-space: nowrap;
9986
+ }
9987
+
9988
+ /* TreeView Component Styles */
9989
+ :root {
9990
+ --tree-node-height: 36px;
9991
+ --tree-indent-size: 24px;
9992
+ --tree-connector-width: 1px;
9993
+ --tree-expand-icon-size: 20px;
9994
+ --tree-bg-color: #ffffff;
9995
+ --tree-text-color: #212121;
9996
+ --tree-text-color-secondary: #757575;
9997
+ --tree-border-color: #e0e0e0;
9998
+ --tree-connector-color: #bdbdbd;
9999
+ --tree-hover-bg: #f5f5f5;
10000
+ --tree-selected-bg: #e3f2fd;
10001
+ --tree-selected-color: #1976d2;
10002
+ --tree-focused-outline: #2196f3;
10003
+ --tree-disabled-color: #9e9e9e;
10004
+ --tree-disabled-bg: #fafafa;
10005
+ }
10006
+
10007
+ [data-theme=dark],
10008
+ .dark-theme,
10009
+ body.dark {
10010
+ --tree-bg-color: #1e1e1e;
10011
+ --tree-text-color: #e0e0e0;
10012
+ --tree-text-color-secondary: #a0a0a0;
10013
+ --tree-border-color: #333333;
10014
+ --tree-connector-color: #555555;
10015
+ --tree-hover-bg: #2d2d2d;
10016
+ --tree-selected-bg: #282a45;
10017
+ --tree-selected-color: #90caf9;
10018
+ --tree-focused-outline: #64b5f6;
10019
+ --tree-disabled-color: #616161;
10020
+ --tree-disabled-bg: #2d2d2d;
10021
+ }
10022
+
10023
+ .tree-view {
10024
+ background-color: var(--tree-bg-color);
10025
+ color: var(--tree-text-color);
10026
+ border: 1px solid var(--tree-border-color);
10027
+ border-radius: 4px;
10028
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
10029
+ font-size: 14px;
10030
+ line-height: 1.5;
10031
+ }
10032
+ .tree-view .tree-root {
10033
+ list-style: none;
10034
+ margin: 0;
10035
+ padding: 0;
10036
+ }
10037
+ .tree-view .tree-node {
10038
+ list-style: none;
10039
+ position: relative;
10040
+ margin: 0;
10041
+ padding: 0;
10042
+ }
10043
+ .tree-view .tree-node.disabled {
10044
+ opacity: 0.6;
10045
+ cursor: not-allowed;
10046
+ }
10047
+ .tree-view .tree-node.disabled .tree-node-content {
10048
+ pointer-events: none;
10049
+ color: var(--tree-disabled-color);
10050
+ background-color: var(--tree-disabled-bg);
10051
+ }
10052
+ .tree-view .tree-node-content {
10053
+ display: flex;
10054
+ align-items: center;
10055
+ min-height: var(--tree-node-height);
10056
+ padding: 4px 8px;
10057
+ cursor: pointer;
10058
+ position: relative;
10059
+ transition: all 0.2s ease;
10060
+ -webkit-user-select: none;
10061
+ -moz-user-select: none;
10062
+ user-select: none;
10063
+ }
10064
+ .tree-view .tree-node-content:hover:not(:disabled) {
10065
+ background-color: var(--tree-hover-bg);
10066
+ }
10067
+ .tree-view .tree-node.selected .tree-node-content {
10068
+ background-color: var(--tree-selected-bg);
10069
+ color: var(--tree-selected-color);
10070
+ font-weight: 500;
10071
+ }
10072
+ .tree-view .tree-node.focused .tree-node-content {
10073
+ background-color: var(--tree-hover-bg);
10074
+ border-right: 1px solid var(--tree-focused-outline);
10075
+ }
10076
+ .tree-view .tree-node.selected.focused .tree-node-content {
10077
+ background-color: var(--tree-selected-bg);
10078
+ }
10079
+ .tree-view.show-connectors .tree-connectors {
10080
+ position: absolute;
10081
+ top: 0;
10082
+ left: 0;
10083
+ width: 100%;
10084
+ height: 100%;
10085
+ pointer-events: none;
10086
+ z-index: 0;
10087
+ }
10088
+ .tree-view.show-connectors .tree-connector {
10089
+ position: absolute;
10090
+ top: 0;
10091
+ height: 100%;
10092
+ width: var(--tree-connector-width);
10093
+ background-color: var(--tree-connector-color);
10094
+ }
10095
+ .tree-view.show-connectors .tree-connector::after {
10096
+ content: "";
10097
+ position: absolute;
10098
+ top: calc(var(--tree-node-height) / 2);
10099
+ left: 0;
10100
+ width: 12px;
10101
+ height: var(--tree-connector-width);
10102
+ background-color: var(--tree-connector-color);
10103
+ }
10104
+ .tree-view.show-connectors .tree-node:last-child .tree-node-content .tree-connector:last-child {
10105
+ height: calc(var(--tree-node-height) / 2 + 2px);
10106
+ }
10107
+ .tree-view.show-connectors .tree-node:not(.tree-last-in-branch) .tree-node-content .tree-connector {
10108
+ height: 100% !important;
10109
+ }
10110
+ .tree-view .tree-expand-icon {
10111
+ display: flex;
10112
+ align-items: center;
10113
+ justify-content: center;
10114
+ width: var(--tree-expand-icon-size);
10115
+ height: var(--tree-expand-icon-size);
10116
+ margin-right: 8px;
10117
+ margin-left: 2px;
10118
+ cursor: pointer;
10119
+ border-radius: 3px;
10120
+ transition: all 0.2s ease;
10121
+ flex-shrink: 0;
10122
+ }
10123
+ .tree-view .tree-expand-icon:hover {
10124
+ background-color: var(--tree-hover-bg);
10125
+ }
10126
+ .tree-view .tree-expand-icon.plus-minus .tree-plus-minus {
10127
+ display: flex;
10128
+ align-items: center;
10129
+ justify-content: center;
10130
+ width: 16px;
10131
+ height: 16px;
10132
+ border: 1px solid var(--tree-connector-color);
10133
+ border-radius: 2px;
10134
+ background-color: var(--tree-bg-color);
10135
+ font-size: 12px;
10136
+ font-weight: bold;
10137
+ line-height: 1;
10138
+ transition: all 0.2s ease;
10139
+ }
10140
+ .tree-view .tree-expand-icon.triangle .tree-triangle {
10141
+ font-size: 10px;
10142
+ transition: transform 0.2s ease;
10143
+ color: var(--tree-text-color-secondary);
10144
+ }
10145
+ .tree-view .tree-expand-icon.triangle .tree-triangle.expanded {
10146
+ transform: rotate(90deg);
10147
+ }
10148
+ .tree-view .tree-expand-icon .tree-caret-icon,
10149
+ .tree-view .tree-expand-icon .tree-chevron-icon {
10150
+ transition: transform 0.2s ease;
10151
+ }
10152
+ .tree-view .tree-expand-spacer {
10153
+ width: var(--tree-expand-icon-size);
10154
+ height: var(--tree-expand-icon-size);
10155
+ margin-right: 8px;
10156
+ margin-left: 2px;
10157
+ flex-shrink: 0;
10158
+ }
10159
+ .tree-view .tree-selection-indicator {
10160
+ margin-right: 8px;
10161
+ flex-shrink: 0;
10162
+ }
10163
+ .tree-view .tree-selection-indicator input[type=checkbox] {
10164
+ width: 16px;
10165
+ height: 16px;
10166
+ margin: 0;
10167
+ cursor: pointer;
10168
+ accent-color: var(--tree-selected-color);
10169
+ }
10170
+ .tree-view .tree-node-icon {
10171
+ margin-right: 8px;
10172
+ font-size: 18px;
10173
+ color: var(--tree-text-color-secondary);
10174
+ flex-shrink: 0;
10175
+ }
10176
+ .tree-view .tree-node-label {
10177
+ flex: 1;
10178
+ overflow: hidden;
10179
+ text-overflow: ellipsis;
10180
+ white-space: nowrap;
10181
+ }
10182
+ .tree-view .tree-children {
10183
+ list-style: none;
10184
+ margin: 0;
10185
+ padding: 0;
10186
+ overflow: hidden;
10187
+ transition: all 0.3s ease;
10188
+ }
10189
+ .tree-view .tree-children.tree-collapsing {
10190
+ max-height: 0;
10191
+ opacity: 0;
10192
+ }
10193
+ .tree-view .tree-children.tree-expanding {
10194
+ max-height: 1000px;
10195
+ opacity: 1;
10196
+ }
10197
+
10198
+ .tree-node .tree-children {
10199
+ animation-duration: 0.3s;
10200
+ animation-fill-mode: both;
10201
+ animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
10202
+ }
10203
+
10204
+ @keyframes tree-expand {
10205
+ from {
10206
+ max-height: 0;
10207
+ opacity: 0;
10208
+ }
10209
+ to {
10210
+ max-height: 1000px;
10211
+ opacity: 1;
10212
+ }
10213
+ }
10214
+ @keyframes tree-collapse {
10215
+ from {
10216
+ max-height: 1000px;
10217
+ opacity: 1;
10218
+ }
10219
+ to {
10220
+ max-height: 0;
10221
+ opacity: 0;
10222
+ }
10223
+ }
10224
+ @media (max-width: 768px) {
10225
+ .tree-view {
10226
+ --tree-node-height: 40px;
10227
+ --tree-indent-size: 20px;
10228
+ }
10229
+ .tree-view .tree-node-content {
10230
+ padding: 0 12px;
10231
+ }
10232
+ }
10233
+ @media (prefers-contrast: high) {
10234
+ .tree-view {
10235
+ --tree-border-color: #000000;
10236
+ --tree-connector-color: #000000;
10237
+ --tree-focused-outline: #0066cc;
10238
+ }
10239
+ .tree-view .tree-node-content:focus {
10240
+ outline-width: 3px;
10241
+ }
10242
+ }
10243
+ @media (prefers-reduced-motion: reduce) {
10244
+ .tree-view .tree-children,
10245
+ .tree-view .tree-expand-icon .tree-triangle,
10246
+ .tree-view .tree-expand-icon .tree-caret-icon,
10247
+ .tree-view .tree-expand-icon .tree-plus-minus,
10248
+ .tree-view .tree-node-content {
10249
+ transition: none;
10250
+ animation: none;
10251
+ }
10252
+ }
10253
+ @media print {
10254
+ .tree-view {
10255
+ --tree-bg-color: white;
10256
+ --tree-text-color: black;
10257
+ --tree-border-color: black;
10258
+ }
10259
+ .tree-view .tree-expand-icon {
10260
+ display: none;
10261
+ }
10262
+ .tree-view .tree-children {
10263
+ display: block !important;
10264
+ opacity: 1 !important;
10265
+ max-height: none !important;
10266
+ }
10267
+ }
10268
+ .timeline {
10269
+ position: relative;
10270
+ padding: 16px;
10271
+ margin: 0;
10272
+ list-style: none;
10273
+ }
10274
+ .timeline.timeline-vertical {
10275
+ display: flex;
10276
+ flex-direction: column;
10277
+ }
10278
+ .timeline.timeline-horizontal {
10279
+ display: flex;
10280
+ flex-direction: row;
10281
+ flex-wrap: nowrap;
10282
+ overflow-x: auto;
10283
+ }
10284
+ .timeline.timeline-compact .timeline-item {
10285
+ margin-bottom: 16px;
10286
+ }
10287
+ .timeline.timeline-compact .timeline-item .timeline-content {
10288
+ margin-top: -6px;
10289
+ padding: 0px 16px;
10290
+ }
10291
+ .timeline.timeline-compact.timeline-horizontal .timeline-item {
10292
+ margin-right: 16px;
10293
+ }
10294
+
10295
+ .timeline-item {
10296
+ position: relative;
10297
+ display: flex;
10298
+ margin-bottom: 16px;
10299
+ }
10300
+ .timeline-item:last-child {
10301
+ margin-bottom: 0;
10302
+ align-items: flex-start;
10303
+ }
10304
+ .timeline-item:last-child .timeline-separator {
10305
+ align-items: flex-start;
10306
+ }
10307
+ .timeline-item[role=button] {
10308
+ cursor: pointer;
10309
+ transition: all 0.2s ease;
10310
+ }
10311
+ .timeline-item[role=button]:hover:not(.timeline-item-disabled) .timeline-content {
10312
+ background: var(--mm-hover-color, rgba(0, 0, 0, 0.04));
10313
+ transform: translateY(-1px);
10314
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
10315
+ }
10316
+ .timeline-item[role=button]:hover:not(.timeline-item-disabled) .timeline-dot {
10317
+ transform: scale(1.1);
10318
+ }
10319
+ .timeline-item[role=button]:focus-visible {
10320
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
10321
+ outline-offset: 2px;
10322
+ border-radius: 4px;
10323
+ }
10324
+ .timeline-item.timeline-item-disabled {
10325
+ opacity: 0.6;
10326
+ cursor: not-allowed;
10327
+ }
10328
+ .timeline-item.timeline-item-disabled .timeline-content,
10329
+ .timeline-item.timeline-item-disabled .timeline-dot {
10330
+ pointer-events: none;
10331
+ }
10332
+ .timeline-vertical .timeline-item {
10333
+ display: flex;
10334
+ align-items: flex-start;
10335
+ justify-content: flex-start;
10336
+ }
10337
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-timestamp-separate {
10338
+ order: 1;
10339
+ margin-left: 16px;
10340
+ text-align: right;
10341
+ min-width: 80px;
10342
+ }
10343
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-separator {
10344
+ order: 2;
10345
+ }
10346
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-content {
10347
+ order: 3;
10348
+ margin-left: 16px;
10349
+ flex: 1;
10350
+ text-align: left;
10351
+ }
10352
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-content {
10353
+ order: 1;
10354
+ margin-right: 16px;
10355
+ flex: 1;
10356
+ text-align: right;
10357
+ }
10358
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-separator {
10359
+ order: 2;
10360
+ }
10361
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-timestamp-separate {
10362
+ order: 3;
10363
+ margin-left: 16px;
10364
+ text-align: left;
10365
+ min-width: 80px;
10366
+ }
10367
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-timestamp-separate.timeline-dot-small {
10368
+ margin-top: -6px;
10369
+ }
10370
+ .timeline-alternate .timeline-item {
10371
+ justify-content: center;
10372
+ }
10373
+ .timeline-alternate .timeline-item .timeline-separator {
10374
+ position: absolute;
10375
+ left: 50%;
10376
+ transform: translateX(-50%);
10377
+ z-index: 2;
10378
+ }
10379
+ .timeline-alternate .timeline-item .timeline-timestamp-separate {
10380
+ display: none;
10381
+ }
10382
+ .timeline-alternate .timeline-item.timeline-item-left .timeline-content {
10383
+ width: calc(50% - 40px);
10384
+ margin-right: calc(50% + 16px);
10385
+ text-align: right;
10386
+ }
10387
+ .timeline-alternate .timeline-item.timeline-item-right .timeline-content {
10388
+ width: calc(50% - 40px);
10389
+ margin-left: calc(50% + 16px);
10390
+ text-align: left;
10391
+ }
10392
+ .timeline-horizontal .timeline-item {
10393
+ flex-direction: column;
10394
+ align-items: center;
10395
+ flex-shrink: 0;
10396
+ min-width: 120px;
10397
+ margin-right: 32px;
10398
+ margin-bottom: 0;
10399
+ }
10400
+ .timeline-horizontal .timeline-item:last-child {
10401
+ margin-right: 0;
10402
+ }
10403
+ .timeline-horizontal .timeline-item .timeline-content {
10404
+ margin-top: 16px;
10405
+ margin-left: 0;
10406
+ margin-right: 0;
10407
+ text-align: center;
10408
+ }
10409
+
10410
+ .timeline-separator {
10411
+ position: relative;
10412
+ display: flex;
10413
+ flex-direction: column;
10414
+ align-items: center;
10415
+ flex-shrink: 0;
10416
+ align-self: stretch;
10417
+ }
10418
+ .timeline-horizontal .timeline-separator {
10419
+ flex-direction: row;
10420
+ }
10421
+
10422
+ .timeline-dot {
10423
+ position: relative;
10424
+ z-index: 2;
10425
+ width: 24px;
10426
+ height: 24px;
10427
+ border-radius: 50%;
10428
+ background: var(--mm-primary-color, #ee6e73);
10429
+ display: flex;
10430
+ align-items: center;
10431
+ justify-content: center;
10432
+ flex-shrink: 0;
10433
+ transition: all 0.2s ease;
10434
+ }
10435
+ .timeline-dot .timeline-icon {
10436
+ font-size: 16px;
10437
+ color: var(--mm-background-color, #4caf50);
10438
+ }
10439
+ .timeline-dot .timeline-marker {
10440
+ width: 8px;
10441
+ height: 8px;
10442
+ border-radius: 50%;
10443
+ background: var(--mm-on-primary-color, #ffffff);
10444
+ }
10445
+ .timeline-dot.timeline-dot-small {
10446
+ width: 12px;
10447
+ height: 12px;
10448
+ }
10449
+ .timeline-dot.timeline-dot-small .timeline-marker {
10450
+ width: 6px;
10451
+ height: 6px;
10452
+ }
10453
+
10454
+ .timeline-connector {
10455
+ background: var(--mm-divider-color, rgba(0, 0, 0, 0.12));
10456
+ flex-shrink: 0;
10457
+ }
10458
+ [data-theme=dark] .timeline-connector {
10459
+ background: var(--mm-divider-color, rgba(255, 255, 255, 0.12));
10460
+ }
10461
+ .timeline-vertical .timeline-connector {
10462
+ width: 4px;
10463
+ flex: 1;
10464
+ min-height: 24px;
10465
+ margin-top: 4px;
10466
+ margin-bottom: -4px;
10467
+ }
10468
+ .timeline-horizontal .timeline-connector {
10469
+ height: 4px;
10470
+ min-width: 32px;
10471
+ margin-left: 8px;
10472
+ }
10473
+
10474
+ .timeline-content {
10475
+ flex: 1;
10476
+ padding: 0 8px;
10477
+ transition: all 0.2s ease;
10478
+ min-width: 0;
10479
+ }
10480
+ .timeline-content .timeline-label:first-child {
10481
+ margin-top: 2px;
10482
+ }
10483
+ .timeline-content .card {
10484
+ background: var(--mm-surface-color, #ffffff);
10485
+ border-radius: 8px;
10486
+ padding: 12px 16px;
10487
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
10488
+ margin: 4px 0;
10489
+ }
10490
+ [data-theme=dark] .timeline-content .card {
10491
+ background: var(--mm-surface-variant-color, #424242);
10492
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
10493
+ }
10494
+
10495
+ .timeline-timestamp {
10496
+ font-size: 0.75rem;
10497
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
10498
+ margin-bottom: 4px;
10499
+ font-weight: 500;
10500
+ }
10501
+ [data-theme=dark] .timeline-timestamp {
10502
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
10503
+ }
10504
+
10505
+ .timeline-timestamp-separate {
10506
+ font-size: 0.75rem;
10507
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
10508
+ font-weight: 500;
10509
+ display: flex;
10510
+ align-items: center;
10511
+ height: 24px;
10512
+ }
10513
+ [data-theme=dark] .timeline-timestamp-separate {
10514
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
10515
+ }
10516
+
10517
+ .timeline-label {
10518
+ font-size: 1rem;
10519
+ font-weight: 500;
10520
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
10521
+ margin-bottom: 4px;
10522
+ line-height: 1.4;
10523
+ }
10524
+ [data-theme=dark] .timeline-label {
10525
+ color: var(--mm-text-primary, rgba(255, 255, 255, 0.87));
10526
+ }
10527
+
10528
+ .timeline-description {
10529
+ font-size: 0.875rem;
10530
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
10531
+ line-height: 1.5;
10532
+ margin: 0;
10533
+ }
10534
+ [data-theme=dark] .timeline-description {
10535
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
10536
+ }
10537
+
10538
+ .timeline-primary .timeline-dot {
10539
+ background: var(--mm-primary-color, #ee6e73);
10540
+ }
10541
+ .timeline-primary .timeline-dot .timeline-icon {
10542
+ color: var(--mm-on-primary-color, #ffffff);
10543
+ }
10544
+ .timeline-primary .timeline-dot .timeline-marker {
10545
+ background: var(--mm-on-primary-color, #ffffff);
10546
+ }
10547
+
10548
+ .timeline-secondary .timeline-dot {
10549
+ background: var(--mm-secondary-color, #26a69a);
10550
+ }
10551
+ .timeline-secondary .timeline-dot .timeline-icon {
10552
+ color: var(--mm-on-primary-color, #ffffff);
10553
+ }
10554
+ .timeline-secondary .timeline-dot .timeline-marker {
10555
+ background: var(--mm-on-primary-color, #ffffff);
10556
+ }
10557
+
10558
+ .timeline-success .timeline-dot {
10559
+ background: var(--mm-success-color, #4caf50);
10560
+ }
10561
+ .timeline-success .timeline-dot .timeline-icon {
10562
+ color: var(--mm-on-primary-color, #ffffff);
10563
+ }
10564
+ .timeline-success .timeline-dot .timeline-marker {
10565
+ background: var(--mm-on-primary-color, #ffffff);
10566
+ }
10567
+
10568
+ .timeline-warning .timeline-dot {
10569
+ background: var(--mm-warning-color, #ff9800);
10570
+ }
10571
+ .timeline-warning .timeline-dot .timeline-icon {
10572
+ color: var(--mm-on-primary-color, #ffffff);
10573
+ }
10574
+ .timeline-warning .timeline-dot .timeline-marker {
10575
+ background: var(--mm-on-primary-color, #ffffff);
10576
+ }
10577
+
10578
+ .timeline-error .timeline-dot {
10579
+ background: var(--mm-error-color, #f44336);
10580
+ }
10581
+ .timeline-error .timeline-dot .timeline-icon {
10582
+ color: var(--mm-on-primary-color, #ffffff);
10583
+ }
10584
+ .timeline-error .timeline-dot .timeline-marker {
10585
+ background: var(--mm-on-primary-color, #ffffff);
10586
+ }
10587
+
10588
+ .timeline-info .timeline-dot {
10589
+ background: var(--mm-info-color, #2196f3);
10590
+ }
10591
+ .timeline-info .timeline-dot .timeline-icon {
10592
+ color: var(--mm-on-primary-color, #ffffff);
10593
+ }
10594
+ .timeline-info .timeline-dot .timeline-marker {
10595
+ background: var(--mm-on-primary-color, #ffffff);
10596
+ }
10597
+
10598
+ .timeline-default .timeline-dot {
10599
+ background: var(--mm-primary-color, #ee6e73);
10600
+ }
10601
+ .timeline-default .timeline-dot .timeline-icon {
10602
+ color: var(--mm-on-primary-color, #ffffff);
10603
+ }
10604
+ .timeline-default .timeline-dot .timeline-marker {
10605
+ background: var(--mm-on-primary-color, #ffffff);
10606
+ }
10607
+
10608
+ @media screen and (max-width: 600px) {
10609
+ .timeline.timeline-horizontal {
10610
+ flex-direction: column;
10611
+ }
10612
+ .timeline.timeline-horizontal::before {
10613
+ display: none;
10614
+ }
10615
+ .timeline.timeline-horizontal .timeline-item {
10616
+ margin-right: 0;
10617
+ margin-bottom: 16px;
10618
+ min-width: auto;
10619
+ }
10620
+ .timeline.timeline-horizontal .timeline-item .timeline-content {
10621
+ margin-top: 0;
10622
+ margin-left: 16px;
10623
+ text-align: left;
10624
+ }
10625
+ .timeline.timeline-vertical.timeline-left .timeline-item, .timeline.timeline-vertical.timeline-alternate .timeline-item {
10626
+ flex-direction: row;
10627
+ text-align: left;
10628
+ }
10629
+ .timeline.timeline-vertical.timeline-left .timeline-item .timeline-content, .timeline.timeline-vertical.timeline-alternate .timeline-item .timeline-content {
10630
+ margin-left: 16px;
10631
+ margin-right: 0;
10632
+ }
10633
+ }
10634
+ @media (prefers-reduced-motion: no-preference) {
10635
+ .timeline-item {
10636
+ opacity: 0;
10637
+ transform: translateY(20px);
10638
+ animation: timeline-fade-in 0.5s ease forwards;
10639
+ }
10640
+ .timeline-item:nth-child(1) {
10641
+ animation-delay: 0s;
10642
+ }
10643
+ .timeline-item:nth-child(2) {
10644
+ animation-delay: 0.1s;
10645
+ }
10646
+ .timeline-item:nth-child(3) {
10647
+ animation-delay: 0.2s;
10648
+ }
10649
+ .timeline-item:nth-child(4) {
10650
+ animation-delay: 0.3s;
10651
+ }
10652
+ .timeline-item:nth-child(5) {
10653
+ animation-delay: 0.4s;
10654
+ }
10655
+ .timeline-item:nth-child(6) {
10656
+ animation-delay: 0.5s;
10657
+ }
10658
+ .timeline-item:nth-child(7) {
10659
+ animation-delay: 0.6s;
10660
+ }
10661
+ .timeline-item:nth-child(8) {
10662
+ animation-delay: 0.7s;
10663
+ }
10664
+ .timeline-item:nth-child(9) {
10665
+ animation-delay: 0.8s;
10666
+ }
10667
+ .timeline-item:nth-child(10) {
10668
+ animation-delay: 0.9s;
10669
+ }
10670
+ .timeline-item:nth-child(11) {
10671
+ animation-delay: 1s;
10672
+ }
10673
+ .timeline-item:nth-child(12) {
10674
+ animation-delay: 1.1s;
10675
+ }
10676
+ .timeline-item:nth-child(13) {
10677
+ animation-delay: 1.2s;
10678
+ }
10679
+ .timeline-item:nth-child(14) {
10680
+ animation-delay: 1.3s;
10681
+ }
10682
+ .timeline-item:nth-child(15) {
10683
+ animation-delay: 1.4s;
10684
+ }
10685
+ .timeline-item:nth-child(16) {
10686
+ animation-delay: 1.5s;
10687
+ }
10688
+ .timeline-item:nth-child(17) {
10689
+ animation-delay: 1.6s;
10690
+ }
10691
+ .timeline-item:nth-child(18) {
10692
+ animation-delay: 1.7s;
10693
+ }
10694
+ .timeline-item:nth-child(19) {
10695
+ animation-delay: 1.8s;
10696
+ }
10697
+ .timeline-item:nth-child(20) {
10698
+ animation-delay: 1.9s;
10699
+ }
10700
+ .timeline-horizontal .timeline-item {
10701
+ transform: translateX(-20px);
10702
+ }
10703
+ }
10704
+ @keyframes timeline-fade-in {
10705
+ to {
10706
+ opacity: 1;
10707
+ transform: translate(0, 0);
10708
+ }
10709
+ }
10710
+ .masonry {
10711
+ width: 100%;
10712
+ }
10713
+ .masonry.masonry-css {
10714
+ display: grid;
10715
+ grid-auto-rows: max-content;
10716
+ }
10717
+ @supports not (grid-template-rows: masonry) {
10718
+ .masonry.masonry-css {
10719
+ display: flex;
10720
+ flex-wrap: wrap;
10721
+ align-items: flex-start;
10722
+ }
10723
+ .masonry.masonry-css .masonry-item {
10724
+ flex: 0 0 auto;
10725
+ }
10726
+ }
10727
+ @supports (grid-template-rows: masonry) {
10728
+ .masonry.masonry-css {
10729
+ grid-template-rows: masonry;
10730
+ }
10731
+ }
10732
+ .masonry.masonry-js {
10733
+ position: relative;
10734
+ }
10735
+ .masonry.masonry-js .masonry-item {
10736
+ position: absolute;
10737
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
10738
+ }
10739
+ .masonry.masonry-animated .masonry-item {
10740
+ opacity: 0;
10741
+ transform: translateY(20px) scale(0.95);
10742
+ animation: masonry-item-enter 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
10743
+ }
10744
+
10745
+ .masonry-item {
10746
+ box-sizing: border-box;
10747
+ -moz-column-break-inside: avoid;
10748
+ break-inside: avoid;
10749
+ overflow: hidden;
10750
+ max-width: 100%;
10751
+ }
10752
+ .masonry-item[onclick] {
10753
+ cursor: pointer;
10754
+ transition: all 0.2s ease;
10755
+ }
10756
+ .masonry-item[onclick]:hover {
10757
+ transform: translateY(-2px);
10758
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
10759
+ z-index: 2;
10760
+ }
10761
+ [data-theme=dark] .masonry-item[onclick]:hover {
10762
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
10763
+ }
10764
+ .masonry-item[onclick]:active {
10765
+ transform: translateY(0);
10766
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
10767
+ }
10768
+ .masonry-item[onclick]:focus-visible {
10769
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
10770
+ outline-offset: 2px;
10771
+ }
10772
+ .masonry-item.masonry-item-animated {
10773
+ opacity: 0;
10774
+ transform: translateY(20px) scale(0.95);
10775
+ }
10776
+ .masonry-item img, .masonry-item video {
10777
+ width: 100%;
10778
+ height: auto;
10779
+ display: block;
10780
+ border-radius: 4px;
10781
+ }
10782
+ .masonry-item .card {
10783
+ width: 100%;
10784
+ margin: 0;
10785
+ }
10786
+ .masonry-item .card .card-content {
10787
+ padding: 12px;
10788
+ }
10789
+
10790
+ .masonry-css {
10791
+ grid-template-columns: 1fr;
10792
+ }
10793
+ @media screen and (min-width: 576px) {
10794
+ .masonry-css {
10795
+ grid-template-columns: repeat(2, 1fr);
10796
+ }
10797
+ }
10798
+ @media screen and (min-width: 768px) {
10799
+ .masonry-css {
10800
+ grid-template-columns: repeat(3, 1fr);
10801
+ }
10802
+ }
10803
+ @media screen and (min-width: 992px) {
10804
+ .masonry-css {
10805
+ grid-template-columns: repeat(4, 1fr);
10806
+ }
10807
+ }
10808
+ @media screen and (min-width: 1200px) {
10809
+ .masonry-css {
10810
+ grid-template-columns: repeat(5, 1fr);
10811
+ }
10812
+ }
10813
+
10814
+ .masonry-loading .masonry-item {
10815
+ opacity: 0.6;
10816
+ }
10817
+ .masonry-loading .masonry-item::after {
10818
+ content: "";
10819
+ position: absolute;
10820
+ top: 0;
10821
+ left: 0;
10822
+ right: 0;
10823
+ bottom: 0;
10824
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
10825
+ animation: masonry-shimmer 1.5s infinite;
10826
+ }
10827
+ [data-theme=dark] .masonry-loading .masonry-item::after {
10828
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
10829
+ }
10830
+
10831
+ @keyframes masonry-item-enter {
10832
+ to {
10833
+ opacity: 1;
10834
+ transform: translateY(0) scale(1);
10835
+ }
10836
+ }
10837
+ @keyframes masonry-shimmer {
10838
+ 0% {
10839
+ transform: translateX(-100%);
10840
+ }
10841
+ 100% {
10842
+ transform: translateX(100%);
10843
+ }
10844
+ }
10845
+ @media (prefers-reduced-motion: reduce) {
10846
+ .masonry.masonry-animated .masonry-item {
10847
+ animation: none;
10848
+ opacity: 1;
10849
+ transform: none;
10850
+ }
10851
+ .masonry .masonry-item {
10852
+ transition: none;
10853
+ }
10854
+ .masonry .masonry-item:hover {
10855
+ transform: none;
10856
+ }
10857
+ }
10858
+ @media print {
10859
+ .masonry {
10860
+ display: block;
10861
+ }
10862
+ .masonry .masonry-item {
10863
+ position: relative !important;
10864
+ left: auto !important;
10865
+ top: auto !important;
10866
+ transform: none !important;
10867
+ width: auto !important;
10868
+ margin-bottom: 16px;
10869
+ -moz-column-break-inside: avoid;
10870
+ break-inside: avoid;
10871
+ page-break-inside: avoid;
10872
+ }
10873
+ }
10874
+ @media (prefers-reduced-motion: reduce) {
10875
+ .masonry-item {
10876
+ transition: none;
10877
+ }
10878
+ }
10879
+ @media (prefers-contrast: high) {
10880
+ .masonry-item {
10881
+ border: 1px solid;
10882
+ }
10883
+ .masonry-item[onclick]:hover {
10884
+ box-shadow: 0 0 0 2px;
10885
+ }
10886
+ }
10887
+ .image-list {
10888
+ width: 100%;
10889
+ overflow: hidden;
10890
+ }
10891
+ .image-list.image-list-standard {
10892
+ display: grid;
10893
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
10894
+ }
10895
+ .image-list.image-list-quilted {
10896
+ display: grid;
10897
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
10898
+ grid-auto-rows: 200px;
10899
+ }
10900
+ .image-list.image-list-masonry {
10901
+ display: block !important;
10902
+ -moz-column-fill: auto;
10903
+ column-fill: auto;
10904
+ }
10905
+ .image-list.image-list-woven {
10906
+ display: grid;
10907
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
10908
+ grid-auto-rows: minmax(100px, auto);
10909
+ }
10910
+
10911
+ .image-list-item {
10912
+ position: relative;
10913
+ display: block;
10914
+ overflow: hidden;
10915
+ background: var(--mm-surface-color, #f5f5f5);
10916
+ border-radius: 4px;
10917
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
10918
+ }
10919
+ .image-list-masonry .image-list-item {
10920
+ display: inline-block !important;
10921
+ width: 100% !important;
10922
+ margin-bottom: 8px;
10923
+ -moz-column-break-inside: avoid;
10924
+ break-inside: avoid;
10925
+ page-break-inside: avoid;
10926
+ vertical-align: top;
10927
+ }
10928
+ .image-list-item.image-list-item-clickable {
10929
+ cursor: pointer;
10930
+ }
10931
+ .image-list-item.image-list-item-clickable:hover {
10932
+ transform: translateY(-2px);
10933
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
10934
+ z-index: 2;
10935
+ }
10936
+ [data-theme=dark] .image-list-item.image-list-item-clickable:hover {
10937
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
10938
+ }
10939
+ .image-list-item.image-list-item-clickable:hover .image-list-item-img img {
10940
+ transform: scale(1.05);
10941
+ }
10942
+ .image-list-item.image-list-item-clickable:hover .image-list-item-bar {
10943
+ opacity: 1;
10944
+ }
10945
+ .image-list-item.image-list-item-clickable:focus-visible {
10946
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
10947
+ outline-offset: 2px;
10948
+ }
10949
+ .image-list-item.image-list-item-clickable:active {
10950
+ transform: translateY(0);
10951
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
10952
+ }
10953
+ .image-list-item.image-list-item-featured {
10954
+ grid-column-end: span 2;
10955
+ grid-row-end: span 2;
10956
+ }
10957
+ .image-list-item.image-list-item-featured .image-list-item-title {
10958
+ font-size: 1.25rem;
10959
+ font-weight: 500;
10960
+ }
10961
+
10962
+ .image-list-item-img {
10963
+ position: relative;
10964
+ width: 100%;
10965
+ height: 100%;
10966
+ overflow: hidden;
10967
+ background: var(--mm-surface-variant-color, #e0e0e0);
10968
+ }
10969
+ [data-theme=dark] .image-list-item-img {
10970
+ background: var(--mm-surface-variant-color, #424242);
10971
+ }
10972
+ .image-list-item-img img {
10973
+ width: 100%;
10974
+ height: 100%;
10975
+ -o-object-fit: cover;
10976
+ object-fit: cover;
10977
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
10978
+ opacity: 0;
10979
+ }
10980
+ .image-list-item-img img.loaded {
10981
+ opacity: 1;
10982
+ }
10983
+ .image-list-item-img img.error {
10984
+ opacity: 0.5;
10985
+ filter: grayscale(1);
10986
+ }
10987
+
10988
+ .image-list-item-placeholder {
10989
+ position: absolute;
10990
+ top: 0;
10991
+ left: 0;
10992
+ right: 0;
10993
+ bottom: 0;
10994
+ background: linear-gradient(90deg, var(--mm-surface-variant-color, #e0e0e0) 25%, var(--mm-surface-color, #f5f5f5) 50%, var(--mm-surface-variant-color, #e0e0e0) 75%);
10995
+ background-size: 200% 100%;
10996
+ animation: image-list-loading 1.5s infinite;
10997
+ opacity: 1;
10998
+ transition: opacity 0.3s ease;
10999
+ }
11000
+ [data-theme=dark] .image-list-item-placeholder {
11001
+ background: linear-gradient(90deg, var(--mm-surface-variant-color, #424242) 25%, var(--mm-surface-color, #303030) 50%, var(--mm-surface-variant-color, #424242) 75%);
11002
+ }
11003
+ .loaded + .image-list-item-placeholder {
11004
+ opacity: 0;
11005
+ }
11006
+
11007
+ .image-list-item-bar {
11008
+ position: absolute;
11009
+ bottom: 0;
11010
+ left: 0;
11011
+ right: 0;
11012
+ padding: 12px 16px;
11013
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
11014
+ color: white;
11015
+ transform: translateY(0);
11016
+ transition: all 0.2s ease;
11017
+ opacity: 0.9;
11018
+ }
11019
+ .image-list-with-titles .image-list-item-bar {
11020
+ opacity: 1;
11021
+ transform: translateY(0);
11022
+ }
11023
+ @media (hover: none) {
11024
+ .image-list-item-bar {
11025
+ opacity: 1;
11026
+ }
11027
+ }
11028
+
11029
+ .image-list-item-title-wrap {
11030
+ display: flex;
11031
+ flex-direction: column;
11032
+ }
11033
+
11034
+ .image-list-item-title {
11035
+ font-size: 1rem;
11036
+ font-weight: 500;
11037
+ line-height: 1.2;
11038
+ margin: 0 0 4px 0;
11039
+ color: white;
11040
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
11041
+ }
11042
+
11043
+ .image-list-item-subtitle {
11044
+ font-size: 0.875rem;
11045
+ line-height: 1.2;
11046
+ margin: 0;
11047
+ color: rgba(255, 255, 255, 0.9);
11048
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
11049
+ }
11050
+
11051
+ .image-list-item-action {
11052
+ position: absolute;
11053
+ width: 40px;
11054
+ height: 40px;
11055
+ border: none;
11056
+ border-radius: 50%;
11057
+ background: rgba(255, 255, 255, 0.9);
11058
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
11059
+ cursor: pointer;
11060
+ transition: all 0.2s ease;
11061
+ display: flex;
11062
+ align-items: center;
11063
+ justify-content: center;
11064
+ z-index: 3;
11065
+ opacity: 0;
11066
+ transform: scale(0.8);
11067
+ }
11068
+ [data-theme=dark] .image-list-item-action {
11069
+ background: rgba(0, 0, 0, 0.7);
11070
+ color: var(--mm-text-primary, rgba(255, 255, 255, 0.87));
11071
+ }
11072
+ .image-list-item-action:hover {
11073
+ background: white;
11074
+ transform: scale(1.1);
11075
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
11076
+ }
11077
+ [data-theme=dark] .image-list-item-action:hover {
11078
+ background: rgba(0, 0, 0, 0.9);
11079
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
11080
+ }
11081
+ .image-list-item-action:focus-visible {
11082
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
11083
+ outline-offset: 2px;
11084
+ }
11085
+ .image-list-item-action .material-icons {
11086
+ font-size: 20px;
11087
+ }
11088
+ .image-list-item-action.image-list-action-top-left {
11089
+ top: 8px;
11090
+ left: 8px;
11091
+ }
11092
+ .image-list-item-action.image-list-action-top-right {
11093
+ top: 8px;
11094
+ right: 8px;
11095
+ }
11096
+ .image-list-item-action.image-list-action-bottom-left {
11097
+ bottom: 8px;
11098
+ left: 8px;
11099
+ }
11100
+ .image-list-item-action.image-list-action-bottom-right {
11101
+ bottom: 8px;
11102
+ right: 8px;
11103
+ }
11104
+ .image-list-with-actions .image-list-item-action {
11105
+ opacity: 1;
11106
+ transform: scale(1);
11107
+ }
11108
+ .image-list-item:hover .image-list-item-action {
11109
+ opacity: 1;
11110
+ transform: scale(1);
11111
+ }
11112
+ @media (hover: none) {
11113
+ .image-list-item-action {
11114
+ opacity: 1;
11115
+ transform: scale(1);
11116
+ }
11117
+ }
11118
+
11119
+ @media screen and (max-width: 768px) {
11120
+ .image-list.image-list-standard, .image-list.image-list-quilted, .image-list.image-list-woven {
11121
+ grid-template-columns: repeat(2, 1fr);
11122
+ }
11123
+ .image-list-item-featured {
11124
+ grid-column-end: span 1;
11125
+ grid-row-end: span 1;
11126
+ }
11127
+ }
11128
+ @media screen and (max-width: 480px) {
11129
+ .image-list.image-list-standard, .image-list.image-list-quilted, .image-list.image-list-woven {
11130
+ grid-template-columns: 1fr;
11131
+ }
11132
+ .image-list-item-bar {
11133
+ padding: 8px 12px;
11134
+ }
11135
+ .image-list-item-title {
11136
+ font-size: 0.875rem;
11137
+ }
11138
+ .image-list-item-subtitle {
11139
+ font-size: 0.75rem;
11140
+ }
11141
+ }
11142
+ @keyframes image-list-loading {
11143
+ 0% {
11144
+ background-position: 200% 0;
11145
+ }
11146
+ 100% {
11147
+ background-position: -200% 0;
11148
+ }
11149
+ }
11150
+ @media (prefers-reduced-motion: reduce) {
11151
+ .image-list-item {
11152
+ transition: none;
11153
+ }
11154
+ .image-list-item:hover {
11155
+ transform: none;
11156
+ }
11157
+ .image-list-item .image-list-item-img img {
11158
+ transition: none;
11159
+ }
11160
+ .image-list-item .image-list-item-img img:hover {
11161
+ transform: none;
11162
+ }
11163
+ .image-list-item-placeholder {
11164
+ animation: none;
11165
+ }
11166
+ .image-list-item-action {
11167
+ transition: none;
11168
+ }
11169
+ .image-list-item-action:hover {
11170
+ transform: none;
11171
+ }
11172
+ }
11173
+ @media (prefers-contrast: high) {
11174
+ .image-list-item {
11175
+ border: 1px solid;
11176
+ }
11177
+ .image-list-item-action {
11178
+ border: 2px solid;
11179
+ }
11180
+ .image-list-item-bar {
11181
+ background: black;
11182
+ }
11183
+ }
11184
+ @media print {
11185
+ .image-list {
11186
+ display: block;
11187
+ }
11188
+ .image-list .image-list-item {
11189
+ display: inline-block;
11190
+ width: 48%;
11191
+ margin: 1%;
11192
+ vertical-align: top;
11193
+ -moz-column-break-inside: avoid;
11194
+ break-inside: avoid;
11195
+ page-break-inside: avoid;
11196
+ }
11197
+ .image-list .image-list-item .image-list-item-action {
11198
+ display: none;
11199
+ }
11200
+ .image-list .image-list-item .image-list-item-bar {
11201
+ position: relative;
11202
+ background: #f5f5f5;
11203
+ color: black;
11204
+ }
9285
11205
  }