mithril-materialized 2.0.0-beta.8 → 2.0.0-rc.1

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 (41) 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/forms.css +344 -13
  9. package/dist/icon.d.ts +2 -2
  10. package/dist/image-list.d.ts +70 -0
  11. package/dist/index.css +1940 -20
  12. package/dist/index.d.ts +8 -0
  13. package/dist/index.esm.js +2700 -639
  14. package/dist/index.js +2710 -638
  15. package/dist/index.min.css +2 -2
  16. package/dist/index.umd.js +2710 -638
  17. package/dist/input-options.d.ts +18 -4
  18. package/dist/input.d.ts +0 -1
  19. package/dist/label.d.ts +2 -0
  20. package/dist/masonry.d.ts +17 -0
  21. package/dist/material-icon.d.ts +3 -0
  22. package/dist/pickers.css +45 -0
  23. package/dist/range-slider.d.ts +42 -0
  24. package/dist/timeline.d.ts +43 -0
  25. package/dist/treeview.d.ts +39 -0
  26. package/dist/types.d.ts +226 -0
  27. package/dist/utilities.css +16 -9
  28. package/package.json +12 -9
  29. package/sass/components/_cards.scss +10 -3
  30. package/sass/components/_datatable.scss +417 -0
  31. package/sass/components/_datepicker.scss +57 -0
  32. package/sass/components/_global.scss +6 -6
  33. package/sass/components/_image-list.scss +421 -0
  34. package/sass/components/_masonry.scss +241 -0
  35. package/sass/components/_timeline.scss +452 -0
  36. package/sass/components/_treeview.scss +353 -0
  37. package/sass/components/forms/_forms.scss +1 -1
  38. package/sass/components/forms/_range-enhanced.scss +406 -0
  39. package/sass/components/forms/_range.scss +5 -5
  40. package/sass/components/forms/_select.scss +1 -1
  41. package/sass/materialize.scss +6 -0
@@ -128,21 +128,21 @@ video.responsive-video {
128
128
  height: 30px;
129
129
  }
130
130
  .pagination li a {
131
- color: #444;
131
+ color: var(--mm-text-primary, #444);
132
132
  display: inline-block;
133
133
  font-size: 1.2rem;
134
134
  padding: 0 10px;
135
135
  line-height: 30px;
136
136
  }
137
137
  .pagination li.active a {
138
- color: #fff;
138
+ color: var(--mm-text-on-primary, #fff);
139
139
  }
140
140
  .pagination li.active {
141
141
  background-color: #ee6e73;
142
142
  }
143
143
  .pagination li.disabled a {
144
144
  cursor: default;
145
- color: #999;
145
+ color: var(--mm-text-disabled, #999);
146
146
  }
147
147
  .pagination li i {
148
148
  font-size: 2rem;
@@ -473,8 +473,8 @@ td, th {
473
473
  .collection .collection-item.avatar i.circle {
474
474
  font-size: 18px;
475
475
  line-height: 42px;
476
- color: #fff;
477
- background-color: #999;
476
+ color: var(--mm-text-on-primary, #fff);
477
+ background-color: var(--mm-text-disabled, #999);
478
478
  text-align: center;
479
479
  }
480
480
  .collection .collection-item.avatar .title {
@@ -496,7 +496,7 @@ td, th {
496
496
  color: rgb(234.25, 250.25, 248.75);
497
497
  }
498
498
  .collection .collection-item.active .secondary-content {
499
- color: #fff;
499
+ color: var(--mm-text-on-primary, #fff);
500
500
  }
501
501
  .collection a.collection-item {
502
502
  display: block;
@@ -2308,3 +2308,1671 @@ body.keyboard-focused .dropdown-content li:focus {
2308
2308
  .wizard-step-indicator[aria-current=step] {
2309
2309
  box-shadow: 0 0 0 4px var(--mm-primary-color-light, rgba(38, 166, 154, 0.2));
2310
2310
  }
2311
+
2312
+ .datatable-container {
2313
+ background: var(--mm-card-background);
2314
+ color: var(--mm-text-primary);
2315
+ border-radius: 4px;
2316
+ }
2317
+ .datatable-container .datatable-title {
2318
+ color: var(--mm-text-primary);
2319
+ font-weight: 400;
2320
+ margin-bottom: 1rem;
2321
+ }
2322
+ .datatable-container .datatable-global-search {
2323
+ padding-top: 0.5rem;
2324
+ }
2325
+ .datatable-container .datatable-wrapper {
2326
+ position: relative;
2327
+ background: var(--mm-card-background);
2328
+ border-radius: 4px;
2329
+ overflow: hidden;
2330
+ }
2331
+ .datatable-container .table-wrapper {
2332
+ overflow-x: auto;
2333
+ width: 100%;
2334
+ -webkit-overflow-scrolling: touch;
2335
+ background: var(--mm-card-background);
2336
+ }
2337
+ .datatable-container .datatable-loading {
2338
+ padding: 2rem;
2339
+ text-align: center;
2340
+ color: var(--mm-text-secondary);
2341
+ background: var(--mm-card-background);
2342
+ }
2343
+ .datatable-container .datatable-loading .preloader-wrapper {
2344
+ margin-bottom: 1rem;
2345
+ }
2346
+ .datatable-container .datatable-empty {
2347
+ padding: 3rem 2rem;
2348
+ text-align: center;
2349
+ color: var(--mm-text-secondary);
2350
+ font-style: italic;
2351
+ background: var(--mm-card-background);
2352
+ }
2353
+
2354
+ .datatable {
2355
+ background: var(--mm-card-background);
2356
+ color: var(--mm-text-primary);
2357
+ border-collapse: collapse;
2358
+ width: 100%;
2359
+ }
2360
+ .datatable thead {
2361
+ background: var(--mm-card-background);
2362
+ }
2363
+ .datatable thead th {
2364
+ background: var(--mm-card-background);
2365
+ color: var(--mm-text-primary);
2366
+ border-bottom: 1px solid var(--mm-border-color);
2367
+ font-weight: 500;
2368
+ padding: 12px 16px;
2369
+ text-align: left;
2370
+ }
2371
+ .datatable tbody {
2372
+ background: var(--mm-card-background);
2373
+ }
2374
+ .datatable tbody td {
2375
+ background: var(--mm-card-background);
2376
+ color: var(--mm-text-primary);
2377
+ border-bottom: 1px solid var(--mm-border-color);
2378
+ padding: 12px 16px;
2379
+ }
2380
+ .datatable thead th.sortable {
2381
+ cursor: pointer;
2382
+ user-select: none;
2383
+ position: relative;
2384
+ transition: background-color 0.2s ease;
2385
+ padding-right: 32px;
2386
+ }
2387
+ .datatable thead th.sortable:hover {
2388
+ background-color: var(--mm-dropdown-hover);
2389
+ }
2390
+ .datatable thead th.sortable .sort-indicators {
2391
+ position: absolute;
2392
+ right: 8px;
2393
+ top: 50%;
2394
+ transform: translateY(-50%);
2395
+ display: flex;
2396
+ flex-direction: column;
2397
+ line-height: 1;
2398
+ }
2399
+ .datatable thead th.sortable .sort-indicators .sort-icon {
2400
+ font-size: 16px;
2401
+ color: var(--mm-text-disabled);
2402
+ transition: color 0.2s ease;
2403
+ }
2404
+ .datatable thead th.sortable .sort-indicators .sort-icon.active {
2405
+ color: var(--mm-primary-color);
2406
+ }
2407
+ .datatable thead th.sortable .sort-indicators .sort-asc {
2408
+ margin-bottom: 0px;
2409
+ }
2410
+ .datatable thead th.sortable .sort-indicators .sort-desc {
2411
+ margin-top: 0px;
2412
+ }
2413
+ .datatable .align-left {
2414
+ text-align: left;
2415
+ }
2416
+ .datatable .align-center {
2417
+ text-align: center;
2418
+ }
2419
+ .datatable .align-right {
2420
+ text-align: right;
2421
+ }
2422
+ .datatable tbody tr {
2423
+ transition: background-color 0.2s ease;
2424
+ cursor: pointer;
2425
+ }
2426
+ .datatable tbody tr:hover {
2427
+ background-color: var(--mm-dropdown-hover);
2428
+ }
2429
+ .datatable tbody tr:hover td {
2430
+ background-color: var(--mm-dropdown-hover);
2431
+ }
2432
+ .datatable.striped tbody tr:nth-child(odd) {
2433
+ background-color: var(--mm-dropdown-focus);
2434
+ }
2435
+ .datatable.striped tbody tr:nth-child(odd) td {
2436
+ background-color: var(--mm-dropdown-focus);
2437
+ }
2438
+ .datatable.striped tbody tr:nth-child(odd):hover {
2439
+ background-color: var(--mm-dropdown-hover);
2440
+ }
2441
+ .datatable.striped tbody tr:nth-child(odd):hover td {
2442
+ background-color: var(--mm-dropdown-hover);
2443
+ }
2444
+ .datatable .selection-checkbox {
2445
+ width: 40px;
2446
+ text-align: center;
2447
+ padding: 0 8px !important;
2448
+ }
2449
+ .datatable .selection-checkbox label {
2450
+ margin: 0;
2451
+ height: 100%;
2452
+ display: flex;
2453
+ align-items: center;
2454
+ justify-content: center;
2455
+ }
2456
+ .datatable .selection-checkbox input[type=checkbox] {
2457
+ opacity: 1;
2458
+ position: relative;
2459
+ left: auto;
2460
+ top: auto;
2461
+ transform: none;
2462
+ margin-right: 0;
2463
+ }
2464
+ .datatable tbody tr.selected {
2465
+ background-color: var(--mm-dropdown-selected) !important;
2466
+ }
2467
+ .datatable tbody tr.selected td {
2468
+ background-color: var(--mm-dropdown-selected) !important;
2469
+ }
2470
+ .datatable tbody tr.selected:hover {
2471
+ background-color: var(--mm-dropdown-selected) !important;
2472
+ opacity: 0.9;
2473
+ }
2474
+ .datatable tbody tr.selected:hover td {
2475
+ background-color: var(--mm-dropdown-selected) !important;
2476
+ opacity: 0.9;
2477
+ }
2478
+ .datatable.fixed-header thead th {
2479
+ position: sticky;
2480
+ top: 0;
2481
+ background: var(--mm-card-background);
2482
+ z-index: 10;
2483
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2484
+ }
2485
+
2486
+ .datatable-pagination {
2487
+ margin-top: 1rem;
2488
+ display: flex;
2489
+ justify-content: space-between;
2490
+ align-items: center;
2491
+ flex-wrap: wrap;
2492
+ gap: 1rem;
2493
+ background: var(--mm-card-background);
2494
+ color: var(--mm-text-primary);
2495
+ padding: 1rem;
2496
+ border-top: 1px solid var(--mm-border-color);
2497
+ }
2498
+ .datatable-pagination .pagination-info {
2499
+ color: var(--mm-text-secondary);
2500
+ font-size: 0.9rem;
2501
+ flex: 1;
2502
+ min-width: 200px;
2503
+ }
2504
+ .datatable-pagination .pagination-controls {
2505
+ display: flex;
2506
+ align-items: center;
2507
+ gap: 0.5rem;
2508
+ }
2509
+ .datatable-pagination .pagination-controls button.btn-flat {
2510
+ min-width: 40px;
2511
+ height: 40px;
2512
+ padding: 0;
2513
+ display: flex;
2514
+ align-items: center;
2515
+ justify-content: center;
2516
+ border-radius: 50%;
2517
+ transition: background-color 0.2s ease;
2518
+ background: transparent;
2519
+ color: var(--mm-text-primary);
2520
+ border: 1px solid var(--mm-border-color);
2521
+ }
2522
+ .datatable-pagination .pagination-controls button.btn-flat:hover:not(:disabled) {
2523
+ background-color: var(--mm-dropdown-hover);
2524
+ }
2525
+ .datatable-pagination .pagination-controls button.btn-flat:disabled {
2526
+ color: var(--mm-text-disabled);
2527
+ cursor: not-allowed;
2528
+ border-color: var(--mm-text-disabled);
2529
+ opacity: 0.6;
2530
+ }
2531
+ .datatable-pagination .pagination-controls button.btn-flat i {
2532
+ font-size: 20px;
2533
+ }
2534
+ .datatable-pagination .pagination-controls .page-info {
2535
+ margin: 0 0.5rem;
2536
+ color: var(--mm-text-secondary);
2537
+ font-weight: 500;
2538
+ white-space: nowrap;
2539
+ }
2540
+
2541
+ @media only screen and (max-width : 992px) {
2542
+ .datatable-container .datatable-search {
2543
+ max-width: 100%;
2544
+ }
2545
+ .datatable-container .datatable-pagination {
2546
+ flex-direction: column;
2547
+ align-items: stretch;
2548
+ text-align: center;
2549
+ }
2550
+ .datatable-container .datatable-pagination .pagination-info {
2551
+ order: 2;
2552
+ margin-top: 0.5rem;
2553
+ text-align: center;
2554
+ }
2555
+ .datatable-container .datatable-pagination .pagination-controls {
2556
+ order: 1;
2557
+ justify-content: center;
2558
+ }
2559
+ .datatable.responsive-table.mobile-hide-secondary th:nth-child(n+4),
2560
+ .datatable.responsive-table.mobile-hide-secondary td:nth-child(n+4) {
2561
+ display: none;
2562
+ }
2563
+ }
2564
+ @media only screen and (max-width : 992px) and (max-width : 600px) {
2565
+ .datatable.responsive-table.mobile-stack thead {
2566
+ display: none;
2567
+ }
2568
+ .datatable.responsive-table.mobile-stack tbody tr {
2569
+ display: block;
2570
+ border: 1px solid var(--mm-border-color);
2571
+ margin-bottom: 1rem;
2572
+ padding: 1rem;
2573
+ border-radius: 4px;
2574
+ background: var(--mm-card-background);
2575
+ }
2576
+ .datatable.responsive-table.mobile-stack tbody td {
2577
+ display: block;
2578
+ text-align: left !important;
2579
+ padding: 0.5rem 0;
2580
+ border: none;
2581
+ }
2582
+ .datatable.responsive-table.mobile-stack tbody td::before {
2583
+ content: attr(data-label) ": ";
2584
+ font-weight: bold;
2585
+ color: var(--mm-text-secondary);
2586
+ display: inline-block;
2587
+ min-width: 100px;
2588
+ }
2589
+ }
2590
+ @media (prefers-color-scheme: dark) {
2591
+ :root:not([data-theme]) .datatable-container .datatable thead th.sortable:hover,
2592
+ [data-theme=dark] .datatable-container .datatable thead th.sortable:hover {
2593
+ background-color: var(--mm-dropdown-hover);
2594
+ }
2595
+ :root:not([data-theme]) .datatable-container .datatable tbody tr:hover,
2596
+ [data-theme=dark] .datatable-container .datatable tbody tr:hover {
2597
+ background-color: var(--mm-dropdown-hover);
2598
+ }
2599
+ :root:not([data-theme]) .datatable-container .datatable.striped tbody tr:nth-child(odd),
2600
+ [data-theme=dark] .datatable-container .datatable.striped tbody tr:nth-child(odd) {
2601
+ background-color: rgba(255, 255, 255, 0.05);
2602
+ }
2603
+ :root:not([data-theme]) .datatable-container .datatable.fixed-header thead th,
2604
+ [data-theme=dark] .datatable-container .datatable.fixed-header thead th {
2605
+ border-bottom: 1px solid var(--mm-border-color);
2606
+ }
2607
+ }
2608
+ .datatable {
2609
+ contain: layout style paint;
2610
+ }
2611
+ .datatable.virtual-table {
2612
+ transform: translateZ(0);
2613
+ backface-visibility: hidden;
2614
+ }
2615
+ .datatable tbody tr {
2616
+ transform: translateZ(0);
2617
+ will-change: transform;
2618
+ }
2619
+ .datatable.fixed-layout {
2620
+ table-layout: fixed;
2621
+ }
2622
+ .datatable.fixed-layout th, .datatable.fixed-layout td {
2623
+ overflow: hidden;
2624
+ text-overflow: ellipsis;
2625
+ white-space: nowrap;
2626
+ }
2627
+
2628
+ /* TreeView Component Styles */
2629
+ :root {
2630
+ --tree-node-height: 36px;
2631
+ --tree-indent-size: 24px;
2632
+ --tree-connector-width: 1px;
2633
+ --tree-expand-icon-size: 20px;
2634
+ --tree-bg-color: #ffffff;
2635
+ --tree-text-color: #212121;
2636
+ --tree-text-color-secondary: #757575;
2637
+ --tree-border-color: #e0e0e0;
2638
+ --tree-connector-color: #bdbdbd;
2639
+ --tree-hover-bg: #f5f5f5;
2640
+ --tree-selected-bg: #e3f2fd;
2641
+ --tree-selected-color: #1976d2;
2642
+ --tree-focused-outline: #2196f3;
2643
+ --tree-disabled-color: #9e9e9e;
2644
+ --tree-disabled-bg: #fafafa;
2645
+ }
2646
+
2647
+ [data-theme=dark],
2648
+ .dark-theme,
2649
+ body.dark {
2650
+ --tree-bg-color: #1e1e1e;
2651
+ --tree-text-color: #e0e0e0;
2652
+ --tree-text-color-secondary: #a0a0a0;
2653
+ --tree-border-color: #333333;
2654
+ --tree-connector-color: #555555;
2655
+ --tree-hover-bg: #2d2d2d;
2656
+ --tree-selected-bg: #282a45;
2657
+ --tree-selected-color: #90caf9;
2658
+ --tree-focused-outline: #64b5f6;
2659
+ --tree-disabled-color: #616161;
2660
+ --tree-disabled-bg: #2d2d2d;
2661
+ }
2662
+
2663
+ .tree-view {
2664
+ background-color: var(--tree-bg-color);
2665
+ color: var(--tree-text-color);
2666
+ border: 1px solid var(--tree-border-color);
2667
+ border-radius: 4px;
2668
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
2669
+ font-size: 14px;
2670
+ line-height: 1.5;
2671
+ }
2672
+ .tree-view .tree-root {
2673
+ list-style: none;
2674
+ margin: 0;
2675
+ padding: 0;
2676
+ }
2677
+ .tree-view .tree-node {
2678
+ list-style: none;
2679
+ position: relative;
2680
+ margin: 0;
2681
+ padding: 0;
2682
+ }
2683
+ .tree-view .tree-node.disabled {
2684
+ opacity: 0.6;
2685
+ cursor: not-allowed;
2686
+ }
2687
+ .tree-view .tree-node.disabled .tree-node-content {
2688
+ pointer-events: none;
2689
+ color: var(--tree-disabled-color);
2690
+ background-color: var(--tree-disabled-bg);
2691
+ }
2692
+ .tree-view .tree-node-content {
2693
+ display: flex;
2694
+ align-items: center;
2695
+ min-height: var(--tree-node-height);
2696
+ padding: 4px 8px;
2697
+ cursor: pointer;
2698
+ position: relative;
2699
+ transition: all 0.2s ease;
2700
+ user-select: none;
2701
+ }
2702
+ .tree-view .tree-node-content:hover:not(:disabled) {
2703
+ background-color: var(--tree-hover-bg);
2704
+ }
2705
+ .tree-view .tree-node.selected .tree-node-content {
2706
+ background-color: var(--tree-selected-bg);
2707
+ color: var(--tree-selected-color);
2708
+ font-weight: 500;
2709
+ }
2710
+ .tree-view .tree-node.focused .tree-node-content {
2711
+ background-color: var(--tree-hover-bg);
2712
+ border-right: 1px solid var(--tree-focused-outline);
2713
+ }
2714
+ .tree-view .tree-node.selected.focused .tree-node-content {
2715
+ background-color: var(--tree-selected-bg);
2716
+ }
2717
+ .tree-view.show-connectors .tree-connectors {
2718
+ position: absolute;
2719
+ top: 0;
2720
+ left: 0;
2721
+ width: 100%;
2722
+ height: 100%;
2723
+ pointer-events: none;
2724
+ z-index: 0;
2725
+ }
2726
+ .tree-view.show-connectors .tree-connector {
2727
+ position: absolute;
2728
+ top: 0;
2729
+ height: 100%;
2730
+ width: var(--tree-connector-width);
2731
+ background-color: var(--tree-connector-color);
2732
+ }
2733
+ .tree-view.show-connectors .tree-connector::after {
2734
+ content: "";
2735
+ position: absolute;
2736
+ top: calc(var(--tree-node-height) / 2);
2737
+ left: 0;
2738
+ width: 12px;
2739
+ height: var(--tree-connector-width);
2740
+ background-color: var(--tree-connector-color);
2741
+ }
2742
+ .tree-view.show-connectors .tree-node:last-child .tree-node-content .tree-connector:last-child {
2743
+ height: calc(var(--tree-node-height) / 2 + 2px);
2744
+ }
2745
+ .tree-view.show-connectors .tree-node:not(.tree-last-in-branch) .tree-node-content .tree-connector {
2746
+ height: 100% !important;
2747
+ }
2748
+ .tree-view .tree-expand-icon {
2749
+ display: flex;
2750
+ align-items: center;
2751
+ justify-content: center;
2752
+ width: var(--tree-expand-icon-size);
2753
+ height: var(--tree-expand-icon-size);
2754
+ margin-right: 8px;
2755
+ margin-left: 2px;
2756
+ cursor: pointer;
2757
+ border-radius: 3px;
2758
+ transition: all 0.2s ease;
2759
+ flex-shrink: 0;
2760
+ }
2761
+ .tree-view .tree-expand-icon:hover {
2762
+ background-color: var(--tree-hover-bg);
2763
+ }
2764
+ .tree-view .tree-expand-icon.plus-minus .tree-plus-minus {
2765
+ display: flex;
2766
+ align-items: center;
2767
+ justify-content: center;
2768
+ width: 16px;
2769
+ height: 16px;
2770
+ border: 1px solid var(--tree-connector-color);
2771
+ border-radius: 2px;
2772
+ background-color: var(--tree-bg-color);
2773
+ font-size: 12px;
2774
+ font-weight: bold;
2775
+ line-height: 1;
2776
+ transition: all 0.2s ease;
2777
+ }
2778
+ .tree-view .tree-expand-icon.triangle .tree-triangle {
2779
+ font-size: 10px;
2780
+ transition: transform 0.2s ease;
2781
+ color: var(--tree-text-color-secondary);
2782
+ }
2783
+ .tree-view .tree-expand-icon.triangle .tree-triangle.expanded {
2784
+ transform: rotate(90deg);
2785
+ }
2786
+ .tree-view .tree-expand-icon .tree-caret-icon,
2787
+ .tree-view .tree-expand-icon .tree-chevron-icon {
2788
+ transition: transform 0.2s ease;
2789
+ }
2790
+ .tree-view .tree-expand-spacer {
2791
+ width: var(--tree-expand-icon-size);
2792
+ height: var(--tree-expand-icon-size);
2793
+ margin-right: 8px;
2794
+ margin-left: 2px;
2795
+ flex-shrink: 0;
2796
+ }
2797
+ .tree-view .tree-selection-indicator {
2798
+ margin-right: 8px;
2799
+ flex-shrink: 0;
2800
+ }
2801
+ .tree-view .tree-selection-indicator input[type=checkbox] {
2802
+ width: 16px;
2803
+ height: 16px;
2804
+ margin: 0;
2805
+ cursor: pointer;
2806
+ accent-color: var(--tree-selected-color);
2807
+ }
2808
+ .tree-view .tree-node-icon {
2809
+ margin-right: 8px;
2810
+ font-size: 18px;
2811
+ color: var(--tree-text-color-secondary);
2812
+ flex-shrink: 0;
2813
+ }
2814
+ .tree-view .tree-node-label {
2815
+ flex: 1;
2816
+ overflow: hidden;
2817
+ text-overflow: ellipsis;
2818
+ white-space: nowrap;
2819
+ }
2820
+ .tree-view .tree-children {
2821
+ list-style: none;
2822
+ margin: 0;
2823
+ padding: 0;
2824
+ overflow: hidden;
2825
+ transition: all 0.3s ease;
2826
+ }
2827
+ .tree-view .tree-children.tree-collapsing {
2828
+ max-height: 0;
2829
+ opacity: 0;
2830
+ }
2831
+ .tree-view .tree-children.tree-expanding {
2832
+ max-height: 1000px;
2833
+ opacity: 1;
2834
+ }
2835
+
2836
+ .tree-node .tree-children {
2837
+ animation-duration: 0.3s;
2838
+ animation-fill-mode: both;
2839
+ animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2840
+ }
2841
+
2842
+ @keyframes tree-expand {
2843
+ from {
2844
+ max-height: 0;
2845
+ opacity: 0;
2846
+ }
2847
+ to {
2848
+ max-height: 1000px;
2849
+ opacity: 1;
2850
+ }
2851
+ }
2852
+ @keyframes tree-collapse {
2853
+ from {
2854
+ max-height: 1000px;
2855
+ opacity: 1;
2856
+ }
2857
+ to {
2858
+ max-height: 0;
2859
+ opacity: 0;
2860
+ }
2861
+ }
2862
+ @media (max-width: 768px) {
2863
+ .tree-view {
2864
+ --tree-node-height: 40px;
2865
+ --tree-indent-size: 20px;
2866
+ }
2867
+ .tree-view .tree-node-content {
2868
+ padding: 0 12px;
2869
+ }
2870
+ }
2871
+ @media (prefers-contrast: high) {
2872
+ .tree-view {
2873
+ --tree-border-color: #000000;
2874
+ --tree-connector-color: #000000;
2875
+ --tree-focused-outline: #0066cc;
2876
+ }
2877
+ .tree-view .tree-node-content:focus {
2878
+ outline-width: 3px;
2879
+ }
2880
+ }
2881
+ @media (prefers-reduced-motion: reduce) {
2882
+ .tree-view .tree-children,
2883
+ .tree-view .tree-expand-icon .tree-triangle,
2884
+ .tree-view .tree-expand-icon .tree-caret-icon,
2885
+ .tree-view .tree-expand-icon .tree-plus-minus,
2886
+ .tree-view .tree-node-content {
2887
+ transition: none;
2888
+ animation: none;
2889
+ }
2890
+ }
2891
+ @media print {
2892
+ .tree-view {
2893
+ --tree-bg-color: white;
2894
+ --tree-text-color: black;
2895
+ --tree-border-color: black;
2896
+ }
2897
+ .tree-view .tree-expand-icon {
2898
+ display: none;
2899
+ }
2900
+ .tree-view .tree-children {
2901
+ display: block !important;
2902
+ opacity: 1 !important;
2903
+ max-height: none !important;
2904
+ }
2905
+ }
2906
+ :root {
2907
+ --mm-primary-color: #26a69a;
2908
+ --mm-primary-color-light: #80cbc4;
2909
+ --mm-primary-color-dark: #00695c;
2910
+ --mm-secondary-color: #ff6f00;
2911
+ --mm-secondary-color-light: #ffa726;
2912
+ --mm-secondary-color-dark: #ef6c00;
2913
+ --mm-background-color: #ffffff;
2914
+ --mm-surface-color: #ffffff;
2915
+ --mm-card-background: #ffffff;
2916
+ --mm-text-primary: rgba(0, 0, 0, 0.87);
2917
+ --mm-text-secondary: rgba(0, 0, 0, 0.6);
2918
+ --mm-text-disabled: rgba(0, 0, 0, 0.38);
2919
+ --mm-text-hint: rgba(0, 0, 0, 0.38);
2920
+ --mm-border-color: rgba(0, 0, 0, 0.12);
2921
+ --mm-divider-color: rgba(0, 0, 0, 0.12);
2922
+ --mm-input-background: #ffffff;
2923
+ --mm-input-border: rgba(0, 0, 0, 0.42);
2924
+ --mm-input-border-focus: var(--mm-primary-color);
2925
+ --mm-input-text: var(--mm-text-primary);
2926
+ --mm-button-background: var(--mm-primary-color);
2927
+ --mm-button-text: #ffffff;
2928
+ --mm-button-flat-text: var(--mm-primary-color);
2929
+ --mm-nav-background: var(--mm-primary-color);
2930
+ --mm-nav-text: #ffffff;
2931
+ --mm-nav-active-text: #ffffff;
2932
+ --mm-modal-background: #ffffff;
2933
+ --mm-overlay-background: rgba(0, 0, 0, 0.5);
2934
+ --mm-shadow-color: rgba(0, 0, 0, 0.16);
2935
+ --mm-chip-bg: #e4e4e4;
2936
+ --mm-chip-text: var(--mm-text-secondary);
2937
+ --mm-dropdown-hover: #eee;
2938
+ --mm-dropdown-focus: #ddd;
2939
+ --mm-dropdown-selected: #e3f2fd;
2940
+ --mm-shadow-umbra: rgba(0, 0, 0, 0.2);
2941
+ --mm-shadow-penumbra: rgba(0, 0, 0, 0.14);
2942
+ --mm-shadow-ambient: rgba(0, 0, 0, 0.12);
2943
+ --mm-switch-checked-track: rgba(38, 166, 154, 0.3);
2944
+ --mm-switch-checked-thumb: #26a69a;
2945
+ --mm-switch-unchecked-track: rgba(0, 0, 0, 0.6);
2946
+ --mm-switch-unchecked-thumb: #f5f5f5;
2947
+ --mm-switch-disabled-track: rgba(0, 0, 0, 0.12);
2948
+ --mm-switch-disabled-thumb: #bdbdbd;
2949
+ }
2950
+
2951
+ body {
2952
+ background-color: var(--mm-background-color);
2953
+ color: var(--mm-text-primary);
2954
+ transition: background-color 0.3s ease, color 0.3s ease;
2955
+ }
2956
+
2957
+ .container, .main {
2958
+ color: var(--mm-text-primary);
2959
+ }
2960
+
2961
+ [data-theme=dark] {
2962
+ --mm-primary-color: #80cbc4;
2963
+ --mm-primary-color-light: #b2dfdb;
2964
+ --mm-primary-color-dark: #4db6ac;
2965
+ --mm-secondary-color: #ffa726;
2966
+ --mm-secondary-color-light: #ffcc02;
2967
+ --mm-secondary-color-dark: #ff8f00;
2968
+ --mm-background-color: #121212;
2969
+ --mm-surface-color: #1e1e1e;
2970
+ --mm-card-background: #2d2d2d;
2971
+ --mm-text-primary: rgba(255, 255, 255, 0.87);
2972
+ --mm-text-secondary: rgba(255, 255, 255, 0.6);
2973
+ --mm-text-disabled: rgba(255, 255, 255, 0.38);
2974
+ --mm-text-hint: rgba(255, 255, 255, 0.38);
2975
+ --mm-border-color: rgba(255, 255, 255, 0.12);
2976
+ --mm-divider-color: rgba(255, 255, 255, 0.12);
2977
+ --mm-input-background: #2d2d2d;
2978
+ --mm-input-border: rgba(255, 255, 255, 0.42);
2979
+ --mm-input-border-focus: var(--mm-primary-color);
2980
+ --mm-input-text: var(--mm-text-primary);
2981
+ --mm-button-background: var(--mm-primary-color);
2982
+ --mm-button-text: #000000;
2983
+ --mm-button-flat-text: var(--mm-primary-color);
2984
+ --mm-nav-background: #1e1e1e;
2985
+ --mm-nav-text: #ffffff;
2986
+ --mm-nav-active-text: #000000;
2987
+ --mm-modal-background: #2d2d2d;
2988
+ --mm-overlay-background: rgba(0, 0, 0, 0.8);
2989
+ --mm-shadow-color: rgba(0, 0, 0, 0.5);
2990
+ --mm-shadow-umbra: rgba(0, 0, 0, 0.5);
2991
+ --mm-shadow-penumbra: rgba(0, 0, 0, 0.36);
2992
+ --mm-shadow-ambient: rgba(0, 0, 0, 0.3);
2993
+ --mm-chip-bg: #424242;
2994
+ --mm-chip-text: var(--mm-text-secondary);
2995
+ --mm-dropdown-hover: #444;
2996
+ --mm-dropdown-focus: #555;
2997
+ --mm-dropdown-selected: #1e3a8a;
2998
+ --mm-switch-checked-track: rgba(128, 203, 196, 0.3);
2999
+ --mm-switch-checked-thumb: #80cbc4;
3000
+ --mm-switch-unchecked-track: rgba(255, 255, 255, 0.6);
3001
+ --mm-switch-unchecked-thumb: #616161;
3002
+ --mm-switch-disabled-track: rgba(255, 255, 255, 0.12);
3003
+ --mm-switch-disabled-thumb: #424242;
3004
+ }
3005
+
3006
+ @media (prefers-color-scheme: dark) {
3007
+ :root:not([data-theme]) {
3008
+ --mm-primary-color: #80cbc4;
3009
+ --mm-primary-color-light: #b2dfdb;
3010
+ --mm-primary-color-dark: #4db6ac;
3011
+ --mm-secondary-color: #ffa726;
3012
+ --mm-secondary-color-light: #ffcc02;
3013
+ --mm-secondary-color-dark: #ff8f00;
3014
+ --mm-background-color: #121212;
3015
+ --mm-surface-color: #1e1e1e;
3016
+ --mm-card-background: #2d2d2d;
3017
+ --mm-text-primary: rgba(255, 255, 255, 0.87);
3018
+ --mm-text-secondary: rgba(255, 255, 255, 0.6);
3019
+ --mm-text-disabled: rgba(255, 255, 255, 0.38);
3020
+ --mm-text-hint: rgba(255, 255, 255, 0.38);
3021
+ --mm-border-color: rgba(255, 255, 255, 0.12);
3022
+ --mm-divider-color: rgba(255, 255, 255, 0.12);
3023
+ --mm-input-background: #2d2d2d;
3024
+ --mm-input-border: rgba(255, 255, 255, 0.42);
3025
+ --mm-input-border-focus: var(--mm-primary-color);
3026
+ --mm-input-text: var(--mm-text-primary);
3027
+ --mm-button-background: var(--mm-primary-color);
3028
+ --mm-button-text: #000000;
3029
+ --mm-button-flat-text: var(--mm-primary-color);
3030
+ --mm-nav-background: #1e1e1e;
3031
+ --mm-nav-text: #ffffff;
3032
+ --mm-nav-active-text: #000000;
3033
+ --mm-modal-background: #2d2d2d;
3034
+ --mm-overlay-background: rgba(0, 0, 0, 0.8);
3035
+ --mm-shadow-color: rgba(0, 0, 0, 0.5);
3036
+ --mm-shadow-umbra: rgba(0, 0, 0, 0.5);
3037
+ --mm-shadow-penumbra: rgba(0, 0, 0, 0.36);
3038
+ --mm-shadow-ambient: rgba(0, 0, 0, 0.3);
3039
+ --mm-switch-checked-track: rgba(128, 203, 196, 0.3);
3040
+ --mm-switch-checked-thumb: #80cbc4;
3041
+ --mm-switch-unchecked-track: rgba(255, 255, 255, 0.6);
3042
+ --mm-switch-unchecked-thumb: #616161;
3043
+ --mm-switch-disabled-track: rgba(255, 255, 255, 0.12);
3044
+ --mm-switch-disabled-thumb: #424242;
3045
+ }
3046
+ }
3047
+ .timeline {
3048
+ position: relative;
3049
+ padding: 16px;
3050
+ margin: 0;
3051
+ list-style: none;
3052
+ }
3053
+ .timeline.timeline-vertical {
3054
+ display: flex;
3055
+ flex-direction: column;
3056
+ }
3057
+ .timeline.timeline-horizontal {
3058
+ display: flex;
3059
+ flex-direction: row;
3060
+ flex-wrap: nowrap;
3061
+ overflow-x: auto;
3062
+ }
3063
+ .timeline.timeline-compact .timeline-item {
3064
+ margin-bottom: 16px;
3065
+ }
3066
+ .timeline.timeline-compact .timeline-item .timeline-content {
3067
+ margin-top: -6px;
3068
+ padding: 0px 16px;
3069
+ }
3070
+ .timeline.timeline-compact.timeline-horizontal .timeline-item {
3071
+ margin-right: 16px;
3072
+ }
3073
+
3074
+ .timeline-item {
3075
+ position: relative;
3076
+ display: flex;
3077
+ margin-bottom: 16px;
3078
+ }
3079
+ .timeline-item:last-child {
3080
+ margin-bottom: 0;
3081
+ align-items: flex-start;
3082
+ }
3083
+ .timeline-item:last-child .timeline-separator {
3084
+ align-items: flex-start;
3085
+ }
3086
+ .timeline-item[role=button] {
3087
+ cursor: pointer;
3088
+ transition: all 0.2s ease;
3089
+ }
3090
+ .timeline-item[role=button]:hover:not(.timeline-item-disabled) .timeline-content {
3091
+ background: var(--mm-hover-color, rgba(0, 0, 0, 0.04));
3092
+ transform: translateY(-1px);
3093
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
3094
+ }
3095
+ .timeline-item[role=button]:hover:not(.timeline-item-disabled) .timeline-dot {
3096
+ transform: scale(1.1);
3097
+ }
3098
+ .timeline-item[role=button]:focus-visible {
3099
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
3100
+ outline-offset: 2px;
3101
+ border-radius: 4px;
3102
+ }
3103
+ .timeline-item.timeline-item-disabled {
3104
+ opacity: 0.6;
3105
+ cursor: not-allowed;
3106
+ }
3107
+ .timeline-item.timeline-item-disabled .timeline-content,
3108
+ .timeline-item.timeline-item-disabled .timeline-dot {
3109
+ pointer-events: none;
3110
+ }
3111
+ .timeline-vertical .timeline-item {
3112
+ display: flex;
3113
+ align-items: flex-start;
3114
+ justify-content: flex-start;
3115
+ }
3116
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-timestamp-separate {
3117
+ order: 1;
3118
+ margin-left: 16px;
3119
+ text-align: right;
3120
+ min-width: 80px;
3121
+ }
3122
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-separator {
3123
+ order: 2;
3124
+ }
3125
+ .timeline-vertical .timeline-item.timeline-item-left .timeline-content {
3126
+ order: 3;
3127
+ margin-left: 16px;
3128
+ flex: 1;
3129
+ text-align: left;
3130
+ }
3131
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-content {
3132
+ order: 1;
3133
+ margin-right: 16px;
3134
+ flex: 1;
3135
+ text-align: right;
3136
+ }
3137
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-separator {
3138
+ order: 2;
3139
+ }
3140
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-timestamp-separate {
3141
+ order: 3;
3142
+ margin-left: 16px;
3143
+ text-align: left;
3144
+ min-width: 80px;
3145
+ }
3146
+ .timeline-vertical .timeline-item.timeline-item-right .timeline-timestamp-separate.timeline-dot-small {
3147
+ margin-top: -6px;
3148
+ }
3149
+ .timeline-alternate .timeline-item {
3150
+ justify-content: center;
3151
+ }
3152
+ .timeline-alternate .timeline-item .timeline-separator {
3153
+ position: absolute;
3154
+ left: 50%;
3155
+ transform: translateX(-50%);
3156
+ z-index: 2;
3157
+ }
3158
+ .timeline-alternate .timeline-item .timeline-timestamp-separate {
3159
+ display: none;
3160
+ }
3161
+ .timeline-alternate .timeline-item.timeline-item-left .timeline-content {
3162
+ width: calc(50% - 40px);
3163
+ margin-right: calc(50% + 16px);
3164
+ text-align: right;
3165
+ }
3166
+ .timeline-alternate .timeline-item.timeline-item-right .timeline-content {
3167
+ width: calc(50% - 40px);
3168
+ margin-left: calc(50% + 16px);
3169
+ text-align: left;
3170
+ }
3171
+ .timeline-horizontal .timeline-item {
3172
+ flex-direction: column;
3173
+ align-items: center;
3174
+ flex-shrink: 0;
3175
+ min-width: 120px;
3176
+ margin-right: 32px;
3177
+ margin-bottom: 0;
3178
+ }
3179
+ .timeline-horizontal .timeline-item:last-child {
3180
+ margin-right: 0;
3181
+ }
3182
+ .timeline-horizontal .timeline-item .timeline-content {
3183
+ margin-top: 16px;
3184
+ margin-left: 0;
3185
+ margin-right: 0;
3186
+ text-align: center;
3187
+ }
3188
+
3189
+ .timeline-separator {
3190
+ position: relative;
3191
+ display: flex;
3192
+ flex-direction: column;
3193
+ align-items: center;
3194
+ flex-shrink: 0;
3195
+ align-self: stretch;
3196
+ }
3197
+ .timeline-horizontal .timeline-separator {
3198
+ flex-direction: row;
3199
+ }
3200
+
3201
+ .timeline-dot {
3202
+ position: relative;
3203
+ z-index: 2;
3204
+ width: 24px;
3205
+ height: 24px;
3206
+ border-radius: 50%;
3207
+ background: var(--mm-primary-color, #ee6e73);
3208
+ display: flex;
3209
+ align-items: center;
3210
+ justify-content: center;
3211
+ flex-shrink: 0;
3212
+ transition: all 0.2s ease;
3213
+ }
3214
+ .timeline-dot .timeline-icon {
3215
+ font-size: 16px;
3216
+ color: var(--mm-background-color, #4caf50);
3217
+ }
3218
+ .timeline-dot .timeline-marker {
3219
+ width: 8px;
3220
+ height: 8px;
3221
+ border-radius: 50%;
3222
+ background: var(--mm-on-primary-color, #ffffff);
3223
+ }
3224
+ .timeline-dot.timeline-dot-small {
3225
+ width: 12px;
3226
+ height: 12px;
3227
+ }
3228
+ .timeline-dot.timeline-dot-small .timeline-marker {
3229
+ width: 6px;
3230
+ height: 6px;
3231
+ }
3232
+
3233
+ .timeline-connector {
3234
+ background: var(--mm-divider-color, rgba(0, 0, 0, 0.12));
3235
+ flex-shrink: 0;
3236
+ }
3237
+ [data-theme=dark] .timeline-connector {
3238
+ background: var(--mm-divider-color, rgba(255, 255, 255, 0.12));
3239
+ }
3240
+ .timeline-vertical .timeline-connector {
3241
+ width: 4px;
3242
+ flex: 1;
3243
+ min-height: 24px;
3244
+ margin-top: 4px;
3245
+ margin-bottom: -4px;
3246
+ }
3247
+ .timeline-horizontal .timeline-connector {
3248
+ height: 4px;
3249
+ min-width: 32px;
3250
+ margin-left: 8px;
3251
+ }
3252
+
3253
+ .timeline-content {
3254
+ flex: 1;
3255
+ padding: 0 8px;
3256
+ transition: all 0.2s ease;
3257
+ min-width: 0;
3258
+ }
3259
+ .timeline-content .timeline-label:first-child {
3260
+ margin-top: 2px;
3261
+ }
3262
+ .timeline-content .card {
3263
+ background: var(--mm-surface-color, #ffffff);
3264
+ border-radius: 8px;
3265
+ padding: 12px 16px;
3266
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
3267
+ margin: 4px 0;
3268
+ }
3269
+ [data-theme=dark] .timeline-content .card {
3270
+ background: var(--mm-surface-variant-color, #424242);
3271
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
3272
+ }
3273
+
3274
+ .timeline-timestamp {
3275
+ font-size: 0.75rem;
3276
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
3277
+ margin-bottom: 4px;
3278
+ font-weight: 500;
3279
+ }
3280
+ [data-theme=dark] .timeline-timestamp {
3281
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
3282
+ }
3283
+
3284
+ .timeline-timestamp-separate {
3285
+ font-size: 0.75rem;
3286
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
3287
+ font-weight: 500;
3288
+ display: flex;
3289
+ align-items: center;
3290
+ height: 24px;
3291
+ }
3292
+ [data-theme=dark] .timeline-timestamp-separate {
3293
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
3294
+ }
3295
+
3296
+ .timeline-label {
3297
+ font-size: 1rem;
3298
+ font-weight: 500;
3299
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
3300
+ margin-bottom: 4px;
3301
+ line-height: 1.4;
3302
+ }
3303
+ [data-theme=dark] .timeline-label {
3304
+ color: var(--mm-text-primary, rgba(255, 255, 255, 0.87));
3305
+ }
3306
+
3307
+ .timeline-description {
3308
+ font-size: 0.875rem;
3309
+ color: var(--mm-text-secondary, rgba(0, 0, 0, 0.6));
3310
+ line-height: 1.5;
3311
+ margin: 0;
3312
+ }
3313
+ [data-theme=dark] .timeline-description {
3314
+ color: var(--mm-text-secondary, rgba(255, 255, 255, 0.7));
3315
+ }
3316
+
3317
+ .timeline-primary .timeline-dot {
3318
+ background: var(--mm-primary-color, #ee6e73);
3319
+ }
3320
+ .timeline-primary .timeline-dot .timeline-icon {
3321
+ color: var(--mm-on-primary-color, #ffffff);
3322
+ }
3323
+ .timeline-primary .timeline-dot .timeline-marker {
3324
+ background: var(--mm-on-primary-color, #ffffff);
3325
+ }
3326
+
3327
+ .timeline-secondary .timeline-dot {
3328
+ background: var(--mm-secondary-color, #26a69a);
3329
+ }
3330
+ .timeline-secondary .timeline-dot .timeline-icon {
3331
+ color: var(--mm-on-primary-color, #ffffff);
3332
+ }
3333
+ .timeline-secondary .timeline-dot .timeline-marker {
3334
+ background: var(--mm-on-primary-color, #ffffff);
3335
+ }
3336
+
3337
+ .timeline-success .timeline-dot {
3338
+ background: var(--mm-success-color, #4caf50);
3339
+ }
3340
+ .timeline-success .timeline-dot .timeline-icon {
3341
+ color: var(--mm-on-primary-color, #ffffff);
3342
+ }
3343
+ .timeline-success .timeline-dot .timeline-marker {
3344
+ background: var(--mm-on-primary-color, #ffffff);
3345
+ }
3346
+
3347
+ .timeline-warning .timeline-dot {
3348
+ background: var(--mm-warning-color, #ff9800);
3349
+ }
3350
+ .timeline-warning .timeline-dot .timeline-icon {
3351
+ color: var(--mm-on-primary-color, #ffffff);
3352
+ }
3353
+ .timeline-warning .timeline-dot .timeline-marker {
3354
+ background: var(--mm-on-primary-color, #ffffff);
3355
+ }
3356
+
3357
+ .timeline-error .timeline-dot {
3358
+ background: var(--mm-error-color, #f44336);
3359
+ }
3360
+ .timeline-error .timeline-dot .timeline-icon {
3361
+ color: var(--mm-on-primary-color, #ffffff);
3362
+ }
3363
+ .timeline-error .timeline-dot .timeline-marker {
3364
+ background: var(--mm-on-primary-color, #ffffff);
3365
+ }
3366
+
3367
+ .timeline-info .timeline-dot {
3368
+ background: var(--mm-info-color, #2196f3);
3369
+ }
3370
+ .timeline-info .timeline-dot .timeline-icon {
3371
+ color: var(--mm-on-primary-color, #ffffff);
3372
+ }
3373
+ .timeline-info .timeline-dot .timeline-marker {
3374
+ background: var(--mm-on-primary-color, #ffffff);
3375
+ }
3376
+
3377
+ .timeline-default .timeline-dot {
3378
+ background: var(--mm-primary-color, #ee6e73);
3379
+ }
3380
+ .timeline-default .timeline-dot .timeline-icon {
3381
+ color: var(--mm-on-primary-color, #ffffff);
3382
+ }
3383
+ .timeline-default .timeline-dot .timeline-marker {
3384
+ background: var(--mm-on-primary-color, #ffffff);
3385
+ }
3386
+
3387
+ @media screen and (max-width: 600px) {
3388
+ .timeline.timeline-horizontal {
3389
+ flex-direction: column;
3390
+ }
3391
+ .timeline.timeline-horizontal::before {
3392
+ display: none;
3393
+ }
3394
+ .timeline.timeline-horizontal .timeline-item {
3395
+ margin-right: 0;
3396
+ margin-bottom: 16px;
3397
+ min-width: auto;
3398
+ }
3399
+ .timeline.timeline-horizontal .timeline-item .timeline-content {
3400
+ margin-top: 0;
3401
+ margin-left: 16px;
3402
+ text-align: left;
3403
+ }
3404
+ .timeline.timeline-vertical.timeline-left .timeline-item, .timeline.timeline-vertical.timeline-alternate .timeline-item {
3405
+ flex-direction: row;
3406
+ text-align: left;
3407
+ }
3408
+ .timeline.timeline-vertical.timeline-left .timeline-item .timeline-content, .timeline.timeline-vertical.timeline-alternate .timeline-item .timeline-content {
3409
+ margin-left: 16px;
3410
+ margin-right: 0;
3411
+ }
3412
+ }
3413
+ @media (prefers-reduced-motion: no-preference) {
3414
+ .timeline-item {
3415
+ opacity: 0;
3416
+ transform: translateY(20px);
3417
+ animation: timeline-fade-in 0.5s ease forwards;
3418
+ }
3419
+ .timeline-item:nth-child(1) {
3420
+ animation-delay: 0s;
3421
+ }
3422
+ .timeline-item:nth-child(2) {
3423
+ animation-delay: 0.1s;
3424
+ }
3425
+ .timeline-item:nth-child(3) {
3426
+ animation-delay: 0.2s;
3427
+ }
3428
+ .timeline-item:nth-child(4) {
3429
+ animation-delay: 0.3s;
3430
+ }
3431
+ .timeline-item:nth-child(5) {
3432
+ animation-delay: 0.4s;
3433
+ }
3434
+ .timeline-item:nth-child(6) {
3435
+ animation-delay: 0.5s;
3436
+ }
3437
+ .timeline-item:nth-child(7) {
3438
+ animation-delay: 0.6s;
3439
+ }
3440
+ .timeline-item:nth-child(8) {
3441
+ animation-delay: 0.7s;
3442
+ }
3443
+ .timeline-item:nth-child(9) {
3444
+ animation-delay: 0.8s;
3445
+ }
3446
+ .timeline-item:nth-child(10) {
3447
+ animation-delay: 0.9s;
3448
+ }
3449
+ .timeline-item:nth-child(11) {
3450
+ animation-delay: 1s;
3451
+ }
3452
+ .timeline-item:nth-child(12) {
3453
+ animation-delay: 1.1s;
3454
+ }
3455
+ .timeline-item:nth-child(13) {
3456
+ animation-delay: 1.2s;
3457
+ }
3458
+ .timeline-item:nth-child(14) {
3459
+ animation-delay: 1.3s;
3460
+ }
3461
+ .timeline-item:nth-child(15) {
3462
+ animation-delay: 1.4s;
3463
+ }
3464
+ .timeline-item:nth-child(16) {
3465
+ animation-delay: 1.5s;
3466
+ }
3467
+ .timeline-item:nth-child(17) {
3468
+ animation-delay: 1.6s;
3469
+ }
3470
+ .timeline-item:nth-child(18) {
3471
+ animation-delay: 1.7s;
3472
+ }
3473
+ .timeline-item:nth-child(19) {
3474
+ animation-delay: 1.8s;
3475
+ }
3476
+ .timeline-item:nth-child(20) {
3477
+ animation-delay: 1.9s;
3478
+ }
3479
+ .timeline-horizontal .timeline-item {
3480
+ transform: translateX(-20px);
3481
+ }
3482
+ }
3483
+ @keyframes timeline-fade-in {
3484
+ to {
3485
+ opacity: 1;
3486
+ transform: translate(0, 0);
3487
+ }
3488
+ }
3489
+ .masonry {
3490
+ width: 100%;
3491
+ }
3492
+ .masonry.masonry-css {
3493
+ display: grid;
3494
+ grid-auto-rows: max-content;
3495
+ }
3496
+ @supports not (grid-template-rows: masonry) {
3497
+ .masonry.masonry-css {
3498
+ display: flex;
3499
+ flex-wrap: wrap;
3500
+ align-items: flex-start;
3501
+ }
3502
+ .masonry.masonry-css .masonry-item {
3503
+ flex: 0 0 auto;
3504
+ }
3505
+ }
3506
+ @supports (grid-template-rows: masonry) {
3507
+ .masonry.masonry-css {
3508
+ grid-template-rows: masonry;
3509
+ }
3510
+ }
3511
+ .masonry.masonry-js {
3512
+ position: relative;
3513
+ }
3514
+ .masonry.masonry-js .masonry-item {
3515
+ position: absolute;
3516
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3517
+ }
3518
+ .masonry.masonry-animated .masonry-item {
3519
+ opacity: 0;
3520
+ transform: translateY(20px) scale(0.95);
3521
+ animation: masonry-item-enter 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
3522
+ }
3523
+
3524
+ .masonry-item {
3525
+ box-sizing: border-box;
3526
+ break-inside: avoid;
3527
+ overflow: hidden;
3528
+ max-width: 100%;
3529
+ }
3530
+ .masonry-item[onclick] {
3531
+ cursor: pointer;
3532
+ transition: all 0.2s ease;
3533
+ }
3534
+ .masonry-item[onclick]:hover {
3535
+ transform: translateY(-2px);
3536
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
3537
+ z-index: 2;
3538
+ }
3539
+ [data-theme=dark] .masonry-item[onclick]:hover {
3540
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
3541
+ }
3542
+ .masonry-item[onclick]:active {
3543
+ transform: translateY(0);
3544
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3545
+ }
3546
+ .masonry-item[onclick]:focus-visible {
3547
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
3548
+ outline-offset: 2px;
3549
+ }
3550
+ .masonry-item.masonry-item-animated {
3551
+ opacity: 0;
3552
+ transform: translateY(20px) scale(0.95);
3553
+ }
3554
+ .masonry-item img, .masonry-item video {
3555
+ width: 100%;
3556
+ height: auto;
3557
+ display: block;
3558
+ border-radius: 4px;
3559
+ }
3560
+ .masonry-item .card {
3561
+ width: 100%;
3562
+ margin: 0;
3563
+ }
3564
+ .masonry-item .card .card-content {
3565
+ padding: 12px;
3566
+ }
3567
+
3568
+ .masonry-css {
3569
+ grid-template-columns: 1fr;
3570
+ }
3571
+ @media screen and (min-width: 576px) {
3572
+ .masonry-css {
3573
+ grid-template-columns: repeat(2, 1fr);
3574
+ }
3575
+ }
3576
+ @media screen and (min-width: 768px) {
3577
+ .masonry-css {
3578
+ grid-template-columns: repeat(3, 1fr);
3579
+ }
3580
+ }
3581
+ @media screen and (min-width: 992px) {
3582
+ .masonry-css {
3583
+ grid-template-columns: repeat(4, 1fr);
3584
+ }
3585
+ }
3586
+ @media screen and (min-width: 1200px) {
3587
+ .masonry-css {
3588
+ grid-template-columns: repeat(5, 1fr);
3589
+ }
3590
+ }
3591
+
3592
+ .masonry-loading .masonry-item {
3593
+ opacity: 0.6;
3594
+ }
3595
+ .masonry-loading .masonry-item::after {
3596
+ content: "";
3597
+ position: absolute;
3598
+ top: 0;
3599
+ left: 0;
3600
+ right: 0;
3601
+ bottom: 0;
3602
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
3603
+ animation: masonry-shimmer 1.5s infinite;
3604
+ }
3605
+ [data-theme=dark] .masonry-loading .masonry-item::after {
3606
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
3607
+ }
3608
+
3609
+ @keyframes masonry-item-enter {
3610
+ to {
3611
+ opacity: 1;
3612
+ transform: translateY(0) scale(1);
3613
+ }
3614
+ }
3615
+ @keyframes masonry-shimmer {
3616
+ 0% {
3617
+ transform: translateX(-100%);
3618
+ }
3619
+ 100% {
3620
+ transform: translateX(100%);
3621
+ }
3622
+ }
3623
+ @media (prefers-reduced-motion: reduce) {
3624
+ .masonry.masonry-animated .masonry-item {
3625
+ animation: none;
3626
+ opacity: 1;
3627
+ transform: none;
3628
+ }
3629
+ .masonry .masonry-item {
3630
+ transition: none;
3631
+ }
3632
+ .masonry .masonry-item:hover {
3633
+ transform: none;
3634
+ }
3635
+ }
3636
+ @media print {
3637
+ .masonry {
3638
+ display: block;
3639
+ }
3640
+ .masonry .masonry-item {
3641
+ position: relative !important;
3642
+ left: auto !important;
3643
+ top: auto !important;
3644
+ transform: none !important;
3645
+ width: auto !important;
3646
+ margin-bottom: 16px;
3647
+ break-inside: avoid;
3648
+ page-break-inside: avoid;
3649
+ }
3650
+ }
3651
+ @media (prefers-reduced-motion: reduce) {
3652
+ .masonry-item {
3653
+ transition: none;
3654
+ }
3655
+ }
3656
+ @media (prefers-contrast: high) {
3657
+ .masonry-item {
3658
+ border: 1px solid;
3659
+ }
3660
+ .masonry-item[onclick]:hover {
3661
+ box-shadow: 0 0 0 2px;
3662
+ }
3663
+ }
3664
+ .image-list {
3665
+ width: 100%;
3666
+ overflow: hidden;
3667
+ }
3668
+ .image-list.image-list-standard {
3669
+ display: grid;
3670
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
3671
+ }
3672
+ .image-list.image-list-quilted {
3673
+ display: grid;
3674
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
3675
+ grid-auto-rows: 200px;
3676
+ }
3677
+ .image-list.image-list-masonry {
3678
+ display: block !important;
3679
+ column-fill: auto;
3680
+ }
3681
+ .image-list.image-list-woven {
3682
+ display: grid;
3683
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
3684
+ grid-auto-rows: minmax(100px, auto);
3685
+ }
3686
+
3687
+ .image-list-item {
3688
+ position: relative;
3689
+ display: block;
3690
+ overflow: hidden;
3691
+ background: var(--mm-surface-color, #f5f5f5);
3692
+ border-radius: 4px;
3693
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
3694
+ }
3695
+ .image-list-masonry .image-list-item {
3696
+ display: inline-block !important;
3697
+ width: 100% !important;
3698
+ margin-bottom: 8px;
3699
+ break-inside: avoid;
3700
+ page-break-inside: avoid;
3701
+ vertical-align: top;
3702
+ }
3703
+ .image-list-item.image-list-item-clickable {
3704
+ cursor: pointer;
3705
+ }
3706
+ .image-list-item.image-list-item-clickable:hover {
3707
+ transform: translateY(-2px);
3708
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
3709
+ z-index: 2;
3710
+ }
3711
+ [data-theme=dark] .image-list-item.image-list-item-clickable:hover {
3712
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
3713
+ }
3714
+ .image-list-item.image-list-item-clickable:hover .image-list-item-img img {
3715
+ transform: scale(1.05);
3716
+ }
3717
+ .image-list-item.image-list-item-clickable:hover .image-list-item-bar {
3718
+ opacity: 1;
3719
+ }
3720
+ .image-list-item.image-list-item-clickable:focus-visible {
3721
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
3722
+ outline-offset: 2px;
3723
+ }
3724
+ .image-list-item.image-list-item-clickable:active {
3725
+ transform: translateY(0);
3726
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3727
+ }
3728
+ .image-list-item.image-list-item-featured {
3729
+ grid-column-end: span 2;
3730
+ grid-row-end: span 2;
3731
+ }
3732
+ .image-list-item.image-list-item-featured .image-list-item-title {
3733
+ font-size: 1.25rem;
3734
+ font-weight: 500;
3735
+ }
3736
+
3737
+ .image-list-item-img {
3738
+ position: relative;
3739
+ width: 100%;
3740
+ height: 100%;
3741
+ overflow: hidden;
3742
+ background: var(--mm-surface-variant-color, #e0e0e0);
3743
+ }
3744
+ [data-theme=dark] .image-list-item-img {
3745
+ background: var(--mm-surface-variant-color, #424242);
3746
+ }
3747
+ .image-list-item-img img {
3748
+ width: 100%;
3749
+ height: 100%;
3750
+ object-fit: cover;
3751
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3752
+ opacity: 0;
3753
+ }
3754
+ .image-list-item-img img.loaded {
3755
+ opacity: 1;
3756
+ }
3757
+ .image-list-item-img img.error {
3758
+ opacity: 0.5;
3759
+ filter: grayscale(1);
3760
+ }
3761
+
3762
+ .image-list-item-placeholder {
3763
+ position: absolute;
3764
+ top: 0;
3765
+ left: 0;
3766
+ right: 0;
3767
+ bottom: 0;
3768
+ background: linear-gradient(90deg, var(--mm-surface-variant-color, #e0e0e0) 25%, var(--mm-surface-color, #f5f5f5) 50%, var(--mm-surface-variant-color, #e0e0e0) 75%);
3769
+ background-size: 200% 100%;
3770
+ animation: image-list-loading 1.5s infinite;
3771
+ opacity: 1;
3772
+ transition: opacity 0.3s ease;
3773
+ }
3774
+ [data-theme=dark] .image-list-item-placeholder {
3775
+ background: linear-gradient(90deg, var(--mm-surface-variant-color, #424242) 25%, var(--mm-surface-color, #303030) 50%, var(--mm-surface-variant-color, #424242) 75%);
3776
+ }
3777
+ .loaded + .image-list-item-placeholder {
3778
+ opacity: 0;
3779
+ }
3780
+
3781
+ .image-list-item-bar {
3782
+ position: absolute;
3783
+ bottom: 0;
3784
+ left: 0;
3785
+ right: 0;
3786
+ padding: 12px 16px;
3787
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
3788
+ color: white;
3789
+ transform: translateY(0);
3790
+ transition: all 0.2s ease;
3791
+ opacity: 0.9;
3792
+ }
3793
+ .image-list-with-titles .image-list-item-bar {
3794
+ opacity: 1;
3795
+ transform: translateY(0);
3796
+ }
3797
+ @media (hover: none) {
3798
+ .image-list-item-bar {
3799
+ opacity: 1;
3800
+ }
3801
+ }
3802
+
3803
+ .image-list-item-title-wrap {
3804
+ display: flex;
3805
+ flex-direction: column;
3806
+ }
3807
+
3808
+ .image-list-item-title {
3809
+ font-size: 1rem;
3810
+ font-weight: 500;
3811
+ line-height: 1.2;
3812
+ margin: 0 0 4px 0;
3813
+ color: white;
3814
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
3815
+ }
3816
+
3817
+ .image-list-item-subtitle {
3818
+ font-size: 0.875rem;
3819
+ line-height: 1.2;
3820
+ margin: 0;
3821
+ color: rgba(255, 255, 255, 0.9);
3822
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
3823
+ }
3824
+
3825
+ .image-list-item-action {
3826
+ position: absolute;
3827
+ width: 40px;
3828
+ height: 40px;
3829
+ border: none;
3830
+ border-radius: 50%;
3831
+ background: rgba(255, 255, 255, 0.9);
3832
+ color: var(--mm-text-primary, rgba(0, 0, 0, 0.87));
3833
+ cursor: pointer;
3834
+ transition: all 0.2s ease;
3835
+ display: flex;
3836
+ align-items: center;
3837
+ justify-content: center;
3838
+ z-index: 3;
3839
+ opacity: 0;
3840
+ transform: scale(0.8);
3841
+ }
3842
+ [data-theme=dark] .image-list-item-action {
3843
+ background: rgba(0, 0, 0, 0.7);
3844
+ color: var(--mm-text-primary, rgba(255, 255, 255, 0.87));
3845
+ }
3846
+ .image-list-item-action:hover {
3847
+ background: white;
3848
+ transform: scale(1.1);
3849
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
3850
+ }
3851
+ [data-theme=dark] .image-list-item-action:hover {
3852
+ background: rgba(0, 0, 0, 0.9);
3853
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
3854
+ }
3855
+ .image-list-item-action:focus-visible {
3856
+ outline: 2px solid var(--mm-primary-color, #ee6e73);
3857
+ outline-offset: 2px;
3858
+ }
3859
+ .image-list-item-action .material-icons {
3860
+ font-size: 20px;
3861
+ }
3862
+ .image-list-item-action.image-list-action-top-left {
3863
+ top: 8px;
3864
+ left: 8px;
3865
+ }
3866
+ .image-list-item-action.image-list-action-top-right {
3867
+ top: 8px;
3868
+ right: 8px;
3869
+ }
3870
+ .image-list-item-action.image-list-action-bottom-left {
3871
+ bottom: 8px;
3872
+ left: 8px;
3873
+ }
3874
+ .image-list-item-action.image-list-action-bottom-right {
3875
+ bottom: 8px;
3876
+ right: 8px;
3877
+ }
3878
+ .image-list-with-actions .image-list-item-action {
3879
+ opacity: 1;
3880
+ transform: scale(1);
3881
+ }
3882
+ .image-list-item:hover .image-list-item-action {
3883
+ opacity: 1;
3884
+ transform: scale(1);
3885
+ }
3886
+ @media (hover: none) {
3887
+ .image-list-item-action {
3888
+ opacity: 1;
3889
+ transform: scale(1);
3890
+ }
3891
+ }
3892
+
3893
+ @media screen and (max-width: 768px) {
3894
+ .image-list.image-list-standard, .image-list.image-list-quilted, .image-list.image-list-woven {
3895
+ grid-template-columns: repeat(2, 1fr);
3896
+ }
3897
+ .image-list-item-featured {
3898
+ grid-column-end: span 1;
3899
+ grid-row-end: span 1;
3900
+ }
3901
+ }
3902
+ @media screen and (max-width: 480px) {
3903
+ .image-list.image-list-standard, .image-list.image-list-quilted, .image-list.image-list-woven {
3904
+ grid-template-columns: 1fr;
3905
+ }
3906
+ .image-list-item-bar {
3907
+ padding: 8px 12px;
3908
+ }
3909
+ .image-list-item-title {
3910
+ font-size: 0.875rem;
3911
+ }
3912
+ .image-list-item-subtitle {
3913
+ font-size: 0.75rem;
3914
+ }
3915
+ }
3916
+ @keyframes image-list-loading {
3917
+ 0% {
3918
+ background-position: 200% 0;
3919
+ }
3920
+ 100% {
3921
+ background-position: -200% 0;
3922
+ }
3923
+ }
3924
+ @media (prefers-reduced-motion: reduce) {
3925
+ .image-list-item {
3926
+ transition: none;
3927
+ }
3928
+ .image-list-item:hover {
3929
+ transform: none;
3930
+ }
3931
+ .image-list-item .image-list-item-img img {
3932
+ transition: none;
3933
+ }
3934
+ .image-list-item .image-list-item-img img:hover {
3935
+ transform: none;
3936
+ }
3937
+ .image-list-item-placeholder {
3938
+ animation: none;
3939
+ }
3940
+ .image-list-item-action {
3941
+ transition: none;
3942
+ }
3943
+ .image-list-item-action:hover {
3944
+ transform: none;
3945
+ }
3946
+ }
3947
+ @media (prefers-contrast: high) {
3948
+ .image-list-item {
3949
+ border: 1px solid;
3950
+ }
3951
+ .image-list-item-action {
3952
+ border: 2px solid;
3953
+ }
3954
+ .image-list-item-bar {
3955
+ background: black;
3956
+ }
3957
+ }
3958
+ @media print {
3959
+ .image-list {
3960
+ display: block;
3961
+ }
3962
+ .image-list .image-list-item {
3963
+ display: inline-block;
3964
+ width: 48%;
3965
+ margin: 1%;
3966
+ vertical-align: top;
3967
+ break-inside: avoid;
3968
+ page-break-inside: avoid;
3969
+ }
3970
+ .image-list .image-list-item .image-list-item-action {
3971
+ display: none;
3972
+ }
3973
+ .image-list .image-list-item .image-list-item-bar {
3974
+ position: relative;
3975
+ background: #f5f5f5;
3976
+ color: black;
3977
+ }
3978
+ }