@lolmath/ui 9.3.0 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -1004,7 +1004,7 @@
1004
1004
  }
1005
1005
  }
1006
1006
  @layer lol {
1007
- ._dateInput_qxz9d_2 {
1007
+ ._dateInput_xrlax_2 {
1008
1008
  background:
1009
1009
  var(--lol-input-background-gradient) padding-box,
1010
1010
  var(--lol-input-border-gradient) border-box;
@@ -1022,8 +1022,12 @@
1022
1022
 
1023
1023
  font-family: var(--lol-font-family-spiegel);
1024
1024
 
1025
+ /* Matches the fill DatePicker/DateRangePicker's own date input takes when
1026
+ disabled, so a standalone DateField/TimeField greys out the same way as
1027
+ the pickers it sits next to in a form. */
1025
1028
  &[data-disabled] {
1026
1029
  --lol-input-border-gradient: var(--lol-gradient-disabled);
1030
+ --lol-input-background-gradient: var(--lol-gradient-grey-300);
1027
1031
  }
1028
1032
 
1029
1033
  &[data-focus-within] {
@@ -1031,20 +1035,20 @@
1031
1035
  --lol-input-background-gradient: var(--lol-gradient-grey-focus);
1032
1036
  }
1033
1037
 
1034
- &._small_qxz9d_29 {
1038
+ &._small_xrlax_33 {
1035
1039
  min-height: var(--lol-form-height-small);
1036
1040
  }
1037
1041
 
1038
- &._medium_qxz9d_33 {
1042
+ &._medium_xrlax_37 {
1039
1043
  min-height: var(--lol-form-height-medium);
1040
1044
  }
1041
1045
 
1042
- &._large_qxz9d_37 {
1046
+ &._large_xrlax_41 {
1043
1047
  min-height: var(--lol-form-height-large);
1044
1048
  }
1045
1049
  }
1046
1050
 
1047
- ._segment_qxz9d_42 {
1051
+ ._segment_xrlax_46 {
1048
1052
  padding: 0 0.125rem;
1049
1053
  border-radius: 2px;
1050
1054
  font-size: 0.75rem;
@@ -2408,12 +2412,14 @@
2408
2412
  }
2409
2413
  }
2410
2414
  @layer lol {
2411
- ._resizableContainer_1iv6r_2 {
2415
+ ._resizableContainer_1ftu2_2 {
2412
2416
  overflow: auto;
2413
2417
  position: relative;
2414
2418
  }
2415
2419
 
2416
- ._table_1iv6r_7 {
2420
+ ._table_1ftu2_7 {
2421
+ --lol-table-indent: 1.125rem;
2422
+
2417
2423
  border-collapse: collapse;
2418
2424
  border-spacing: 0;
2419
2425
  width: 100%;
@@ -2429,9 +2435,38 @@
2429
2435
  outline: 1px solid var(--lol-color-gold-400);
2430
2436
  outline-offset: 0.25rem;
2431
2437
  }
2438
+
2439
+ /* The whole table is the drop target when a drag is dropped on it rather
2440
+ than between two of its rows. */
2441
+ &[data-drop-target] {
2442
+ outline: 1px solid var(--lol-color-gold-400);
2443
+ outline-offset: 0.25rem;
2444
+ }
2432
2445
  }
2433
2446
 
2434
- ._row_1iv6r_25 {
2447
+ /* Inside a `Virtualizer` the table is a <div> whose rows are placed by the
2448
+ layout, and it scrolls them itself — which is what the virtualizer measures
2449
+ against, so it is the one table that needs a height of its own. */
2450
+ div._table_1ftu2_7 {
2451
+ overflow: auto;
2452
+ position: relative;
2453
+
2454
+ /* That also makes the header stick over the rows as they scroll past. The
2455
+ header cells tile the full width of the row, so frosting each one covers
2456
+ the strip; without it the rows read straight through the labels. The
2457
+ tint is the client's page black, which is what any surface the table
2458
+ sits on is a shade of. */
2459
+ & ._column_1ftu2_46 {
2460
+ background-color: color-mix(
2461
+ in srgb,
2462
+ var(--lol-color-hextech-black),
2463
+ transparent 4%
2464
+ );
2465
+ backdrop-filter: blur(12px);
2466
+ }
2467
+ }
2468
+
2469
+ ._row_1ftu2_56 {
2435
2470
  color: var(--lol-color-grey-100);
2436
2471
  outline: none;
2437
2472
  transition: color 0.3s ease;
@@ -2484,13 +2519,28 @@
2484
2519
  cursor: default;
2485
2520
  }
2486
2521
 
2522
+ &[data-dragging] {
2523
+ opacity: 0.4;
2524
+ }
2525
+
2487
2526
  &[data-focus-visible] {
2488
2527
  outline: 1px solid var(--lol-color-gold-400);
2489
2528
  outline-offset: -1px;
2490
2529
  }
2530
+
2531
+ /* A row is only its own drop target when the table takes drops onto rows;
2532
+ reordering draws the `.dropIndicator` between them instead. */
2533
+ &[data-drop-target] {
2534
+ color: var(--lol-color-gold-100);
2535
+ --lol-table-row-highlight: linear-gradient(
2536
+ 90deg,
2537
+ rgb(from var(--lol-color-gold-400) r g b / 0.35),
2538
+ rgb(from var(--lol-color-gold-400) r g b / 0.1)
2539
+ );
2540
+ }
2491
2541
  }
2492
2542
 
2493
- ._cell_1iv6r_84 {
2543
+ ._cell_1ftu2_130 {
2494
2544
  /*
2495
2545
  * Collapsed borders are resolved between neighbours, and Chrome paints the
2496
2546
  * winning hairline once per edge when the losing side is styled `none`. The
@@ -2508,7 +2558,7 @@
2508
2558
  }
2509
2559
  }
2510
2560
 
2511
- ._resizer_1iv6r_102 {
2561
+ ._resizer_1ftu2_148 {
2512
2562
  position: absolute;
2513
2563
  inset-block: 0;
2514
2564
  inset-inline-end: 0;
@@ -2540,7 +2590,7 @@
2540
2590
  }
2541
2591
 
2542
2592
  /* Fixed footprint so toggling the sort direction never shifts the header. */
2543
- ._sortIndicator_1iv6r_134 {
2593
+ ._sortIndicator_1ftu2_180 {
2544
2594
  display: inline-block;
2545
2595
  vertical-align: middle;
2546
2596
  width: 0.5rem;
@@ -2564,7 +2614,7 @@
2564
2614
  }
2565
2615
  }
2566
2616
 
2567
- ._column_1iv6r_158 {
2617
+ ._column_1ftu2_46 {
2568
2618
  position: relative;
2569
2619
  font-family: var(--lol-font-family-beaufort);
2570
2620
  color: var(--lol-color-gold-100);
@@ -2600,15 +2650,15 @@
2600
2650
  color: var(--lol-color-gold-500);
2601
2651
  }
2602
2652
 
2603
- &[data-hovered] ._sortIndicator_1iv6r_134 {
2653
+ &[data-hovered] ._sortIndicator_1ftu2_180 {
2604
2654
  opacity: 0.5;
2605
2655
  }
2606
2656
 
2607
- &[data-sort-direction] ._sortIndicator_1iv6r_134 {
2657
+ &[data-sort-direction] ._sortIndicator_1ftu2_180 {
2608
2658
  opacity: 1;
2609
2659
  }
2610
2660
 
2611
- &[data-sort-direction="descending"] ._sortIndicator_1iv6r_134::after {
2661
+ &[data-sort-direction="descending"] ._sortIndicator_1ftu2_180::after {
2612
2662
  border-width: 0.375rem 0.25rem 0;
2613
2663
  border-top-color: currentColor;
2614
2664
  border-bottom-color: transparent;
@@ -2620,34 +2670,170 @@
2620
2670
  }
2621
2671
  }
2622
2672
 
2623
- ._footer_1iv6r_214 {
2673
+ /* The checkbox and the drag handle sit in columns of their own, added by
2674
+ `TableHeader` and `TableRow`. Both shrink to their content: a percentage
2675
+ width smaller than the content is the table layout's way of saying "as
2676
+ narrow as this can go". */
2677
+ ._selectionColumn_1ftu2_264,
2678
+ ._selectionCell_1ftu2_265,
2679
+ ._gripColumn_1ftu2_266,
2680
+ ._gripCell_1ftu2_267 {
2681
+ width: 1%;
2682
+ white-space: nowrap;
2683
+ }
2684
+
2685
+ ._selectionCell_1ftu2_265,
2686
+ ._gripCell_1ftu2_267 {
2687
+ padding-inline-end: 0;
2688
+ }
2689
+
2690
+ ._grip_1ftu2_266 {
2691
+ /* A <button> we never paint: without this it falls back to the UA's
2692
+ `buttonface` slab, which is grey under `color-scheme: dark`. */
2693
+ appearance: none;
2694
+ border: 0;
2695
+ margin: 0;
2696
+ padding: 0;
2697
+ font: inherit;
2698
+ color: inherit;
2699
+
2700
+ display: block;
2701
+ width: 0.625rem;
2702
+ height: 0.75rem;
2703
+ outline: none;
2704
+ /* Three hairlines, the client's drag affordance. */
2705
+ background: repeating-linear-gradient(
2706
+ to bottom,
2707
+ currentColor 0 1px,
2708
+ transparent 1px 0.25rem
2709
+ );
2710
+ }
2711
+
2712
+ /* React aria drags the row itself and leaves the handle inert, so the cursor
2713
+ has to come from the row. */
2714
+ ._table_1ftu2_7[data-allows-dragging] ._row_1ftu2_56 {
2715
+ cursor: grab;
2716
+ }
2717
+
2718
+ /* The indicator is a row of its own with a single full-width cell, so the
2719
+ line is drawn by a pseudo element that takes up no space of its own. */
2720
+ ._dropIndicator_1ftu2_119 {
2721
+ & > td,
2722
+ & > th {
2723
+ position: relative;
2724
+ }
2725
+
2726
+ &[data-drop-target] > td::after,
2727
+ &[data-drop-target] > th::after {
2728
+ content: "";
2729
+ position: absolute;
2730
+ inset-inline: 0;
2731
+ top: -1px;
2732
+ height: 2px;
2733
+ background-color: var(--lol-color-gold-400);
2734
+ }
2735
+ }
2736
+
2737
+ /* The expand chevron of a `treeColumn` cell, and the indent that puts a
2738
+ nested row under its parent. React aria sets `--table-row-level` on every
2739
+ row, starting at 1. */
2740
+ ._treeContent_1ftu2_327 {
2741
+ display: flex;
2742
+ align-items: center;
2743
+ gap: 0.375rem;
2744
+ padding-inline-start: calc(
2745
+ (var(--table-row-level, 1) - 1) *
2746
+ var(--lol-table-indent)
2747
+ );
2748
+ }
2749
+
2750
+ ._chevron_1ftu2_337 {
2751
+ appearance: none;
2752
+ border: 0;
2753
+ margin: 0;
2754
+ padding: 0;
2755
+ font: inherit;
2756
+ letter-spacing: inherit;
2757
+ color: inherit;
2758
+
2759
+ flex: none;
2760
+ width: 0.5rem;
2761
+ height: 0.75rem;
2762
+ outline: none;
2763
+ cursor: pointer;
2764
+
2765
+ --lol-table-chevron: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAoCAYAAADg+OpoAAABF0lEQVR42r3WMY7CQAxA0R8r2oobUMBB9hTLPegguQJUNHuJLbZb7RU4BvQIiZaKJiNFo0wy8dhYiiJNLD+N5RmlOv9sGYgtsAQajKJOICeg6p69BSQjCMAOOFpDMYIlJhOIGSbAqitSTeQWYQJcgQ3wzMhXY6F1f8CXJ9YfBlcsHm83TAbWXDBJrJtjMvLNFJOJAmaYZBQwwSRzaIoxmXEUijCZecDVmCiuLRVWKy/jgP0CHxmYakchHpm7ArhpoU/gH1hk5DbAUd6BaFqnQuZCamQOVITkQsVIDmSCTEFmyBhkiqQgc2QIckFiyA3pQ65IgNbeSIAuwLcn0m9dCxy8kHgYUlgxMjTeMWaCpP4Z2u59t0IAXn+VXtMKZ5riAAAAAElFTkSuQmCC");
2766
+ background: var(--lol-table-chevron) no-repeat center / contain;
2767
+ transition: rotate 0.15s ease;
2768
+
2769
+ @media (prefers-reduced-motion: reduce) {
2770
+ transition: none;
2771
+ }
2772
+
2773
+ &[data-focus-visible] {
2774
+ outline: 1px solid var(--lol-color-gold-400);
2775
+ outline-offset: 0.125rem;
2776
+ }
2777
+ }
2778
+
2779
+ ._chevronSpacer_1ftu2_366 {
2780
+ flex: none;
2781
+ width: 0.5rem;
2782
+ }
2783
+
2784
+ ._row_1ftu2_56[data-expanded] ._chevron_1ftu2_337 {
2785
+ rotate: 90deg;
2786
+ }
2787
+
2788
+ ._row_1ftu2_56[data-hovered] ._chevron_1ftu2_337,
2789
+ ._chevron_1ftu2_337[data-hovered],
2790
+ ._chevron_1ftu2_337[data-focus-visible] {
2791
+ --lol-table-chevron: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAoCAYAAADg+OpoAAABGElEQVR42r3WO47CMBCA4T+jaCtuQLEcZE+x3IOOxxVIRcM1tlvtPTgBNFQIQUu1TSxFVpw44xlGiiI5o/nk0dhK9bie6IkVMAe2GEWdQA5A1T4bC0gGEIA10FhDMYIlJiOIGSbAZ1ukGsktwgS4AEvglZGvxkLrfoFvT6w7DK5YPN5umPSsuWCSWDfHZOCbKSYjBcwwyShggknm0BRjMuEoFGEy8YCrMVFcWyqsVl7GAfsBPjIw1Y5CPDN3BXDTQl/AHzDLyN0CjbwD0bROhUyF1MgUqAjJhYqRHMgEGYPMkCHIFElB5kgf5ILEkBvShVyRAC28kQCdgaMn0m3dDth7IfEwpLBipG+8Y8wESf0z7Nr33QoB+AdPzF+bRdCP8QAAAABJRU5ErkJggg==");
2792
+ }
2793
+
2794
+ ._row_1ftu2_56[data-disabled] ._chevron_1ftu2_337 {
2795
+ cursor: default;
2796
+ filter: grayscale(100%);
2797
+ }
2798
+
2799
+ ._loadMore_1ftu2_386 > td,
2800
+ ._loadMore_1ftu2_386 > th {
2801
+ padding: 0.5rem;
2802
+ }
2803
+
2804
+ ._spinner_1ftu2_391 {
2805
+ width: 1.5rem;
2806
+ margin-inline: auto;
2807
+ }
2808
+
2809
+ ._footer_1ftu2_396 {
2624
2810
  color: var(--lol-color-gold-300);
2625
2811
 
2626
- & ._cell_1iv6r_84 {
2812
+ & ._cell_1ftu2_130 {
2627
2813
  border-top: 1px solid rgb(from var(--lol-color-grey-100) r g b / 0.25);
2628
2814
  }
2629
2815
  }
2630
2816
 
2631
- ._empty_1iv6r_222 {
2817
+ ._empty_1ftu2_404 {
2632
2818
  padding: 1rem 0.75rem;
2633
2819
  text-align: center;
2634
2820
  }
2635
2821
 
2636
2822
  /* React aria renders the empty state in a row it builds itself, so that cell
2637
2823
  never gets `.cell` and keeps the UA's 1px padding. */
2638
- ._table_1iv6r_7 [data-empty] > tr > td {
2824
+ ._table_1ftu2_7 [data-empty] > tr > td {
2639
2825
  padding: 0;
2640
2826
  }
2641
2827
 
2642
- ._start_1iv6r_233 {
2828
+ ._start_1ftu2_415 {
2643
2829
  text-align: start;
2644
2830
  }
2645
2831
 
2646
- ._center_1iv6r_237 {
2832
+ ._center_1ftu2_419 {
2647
2833
  text-align: center;
2648
2834
  }
2649
2835
 
2650
- ._end_1iv6r_241 {
2836
+ ._end_1ftu2_423 {
2651
2837
  text-align: end;
2652
2838
  }
2653
2839
  }
@@ -2772,6 +2958,123 @@
2772
2958
  }
2773
2959
  }
2774
2960
  }
2961
+ @layer lol {
2962
+ ._tokenField_isyx7_2 {
2963
+ display: grid;
2964
+ grid-template-areas:
2965
+ "label"
2966
+ "input"
2967
+ "help";
2968
+
2969
+ color: var(--lol-color-gold-100);
2970
+ }
2971
+
2972
+ ._input_isyx7_12 {
2973
+ background:
2974
+ var(--lol-token-field-background-gradient) padding-box,
2975
+ var(--lol-token-field-border-gradient) border-box;
2976
+
2977
+ --lol-token-field-border-gradient: var(--lol-gradient-gold);
2978
+ --lol-token-field-background-gradient: var(--lol-gradient-hextech-black);
2979
+
2980
+ border: 1px solid transparent;
2981
+ grid-area: input;
2982
+ margin: 0;
2983
+ padding: 0.375rem 0.75rem;
2984
+ outline: none;
2985
+
2986
+ font-family: var(--lol-font-family-spiegel);
2987
+ font-size: 0.75rem;
2988
+ font-weight: 500;
2989
+ letter-spacing: 0.025em;
2990
+ line-height: 1.25rem;
2991
+ color: var(--lol-color-gold-100);
2992
+
2993
+ /* The editable area is a contenteditable box holding a mix of text nodes
2994
+ and token spans, so it has to stay a block formatting context: a flex
2995
+ container would wrap each run of text in an anonymous box and the caret
2996
+ would no longer move across the boundaries between them. */
2997
+ display: block;
2998
+ white-space: pre-wrap;
2999
+ overflow-wrap: anywhere;
3000
+
3001
+ &[data-disabled] {
3002
+ --lol-token-field-border-gradient: var(--lol-gradient-disabled);
3003
+ color: var(--lol-color-grey-150);
3004
+ }
3005
+
3006
+ &[data-focused] {
3007
+ --lol-token-field-border-gradient: var(--lol-gradient-gold-hover);
3008
+ --lol-token-field-background-gradient: var(--lol-gradient-grey-focus);
3009
+ }
3010
+
3011
+ /* The field holds no value of its own to hang a `::placeholder` on — its
3012
+ content is the editable DOM — so an empty box paints the hint itself. */
3013
+ &:empty::before {
3014
+ content: attr(data-placeholder);
3015
+ color: var(--lol-color-grey-150);
3016
+ }
3017
+
3018
+ &._small_isyx7_58 {
3019
+ min-height: var(--lol-form-height-small);
3020
+ }
3021
+
3022
+ &._medium_isyx7_62 {
3023
+ min-height: var(--lol-form-height-medium);
3024
+ }
3025
+
3026
+ &._large_isyx7_66 {
3027
+ min-height: var(--lol-form-height-large);
3028
+ }
3029
+ }
3030
+
3031
+ ._token_isyx7_2 {
3032
+ background:
3033
+ var(--lol-token-background-gradient) padding-box,
3034
+ var(--lol-token-border-gradient) border-box;
3035
+
3036
+ --lol-token-border-gradient: var(--lol-gradient-hextech);
3037
+ --lol-token-background-gradient: var(--lol-gradient-grey-300);
3038
+
3039
+ border: 1px solid transparent;
3040
+ border-radius: 9999px;
3041
+ padding: 0 0.4rem;
3042
+
3043
+ /* Inline, so a token flows with the text it sits between and wraps with
3044
+ it; inline-block would still be one atom but cannot break onto the next
3045
+ line as a run of text does around it. */
3046
+ display: inline;
3047
+ color: var(--lol-color-blue-100);
3048
+ white-space: nowrap;
3049
+
3050
+ &._hextech_isyx7_90 {
3051
+ --lol-token-border-gradient: var(--lol-gradient-hextech);
3052
+ color: var(--lol-color-blue-100);
3053
+ }
3054
+
3055
+ &._gold_isyx7_95 {
3056
+ --lol-token-border-gradient: var(--lol-gradient-gold);
3057
+ color: var(--lol-color-gold-300);
3058
+ }
3059
+
3060
+ &._grey_isyx7_100 {
3061
+ --lol-token-border-gradient: var(--lol-color-grey-100);
3062
+ color: var(--lol-color-gold-100);
3063
+ }
3064
+
3065
+ /* `userSelect: all` makes a token select as one atom, so the selected
3066
+ state is all-or-nothing and can be painted as such. */
3067
+ &[data-selected] {
3068
+ --lol-token-background-gradient: var(--lol-gradient-gold-hover);
3069
+ color: var(--lol-color-hextech-black);
3070
+ }
3071
+
3072
+ &[data-disabled] {
3073
+ --lol-token-border-gradient: var(--lol-gradient-disabled);
3074
+ color: var(--lol-color-grey-150);
3075
+ }
3076
+ }
3077
+ }
2775
3078
  @layer lol {
2776
3079
  ._toolbar_1j7x4_2 {
2777
3080
  display: flex;
@@ -2998,3 +3301,90 @@
2998
3301
  width: 1.5rem;
2999
3302
  }
3000
3303
  }
3304
+ @layer lol {
3305
+ ._table_v9mcp_2 {
3306
+ border-collapse: collapse;
3307
+ border-spacing: 0;
3308
+ width: 100%;
3309
+
3310
+ font-family: var(--lol-font-family-spiegel);
3311
+ font-size: var(--lol-font-size-sm);
3312
+ line-height: var(--lol-line-height-sm);
3313
+ letter-spacing: var(--lol-letter-spacing-sm);
3314
+ font-weight: var(--lol-font-weight-sm);
3315
+ color: var(--lol-color-grey-100);
3316
+ }
3317
+
3318
+ /*
3319
+ * Both headings are set the same way — the client's heading face, in gold
3320
+ * over the grey of the data. What tells them apart is only which edge of the
3321
+ * table they run along.
3322
+ *
3323
+ * The zero-width `solid` on the edges each one leaves alone is the guard the
3324
+ * table's own cells carry: collapsed borders are resolved between
3325
+ * neighbours, and Chrome paints the winning hairline once per edge when the
3326
+ * losing side is styled `none`, so a 25%-opacity line blends twice and comes
3327
+ * out twice as bright.
3328
+ */
3329
+ ._fieldHeader_v9mcp_26,
3330
+ ._recordHeader_v9mcp_27,
3331
+ ._corner_v9mcp_28 {
3332
+ border: 0 solid;
3333
+ }
3334
+
3335
+ ._fieldHeader_v9mcp_26,
3336
+ ._recordHeader_v9mcp_27 {
3337
+ font-family: var(--lol-font-family-beaufort);
3338
+ color: var(--lol-color-gold-100);
3339
+ font-size: 0.75rem;
3340
+ font-weight: 700;
3341
+ letter-spacing: 0.075em;
3342
+ line-height: 1rem;
3343
+ text-transform: uppercase;
3344
+ white-space: nowrap;
3345
+ padding: 0.375rem 0.75rem;
3346
+ }
3347
+
3348
+ /* The field names head their rows, so the hairline that separates the
3349
+ heading from the data runs down the table rather than across it. */
3350
+ ._fieldHeader_v9mcp_26 {
3351
+ text-align: start;
3352
+ border-inline-end: 1px solid
3353
+ rgb(from var(--lol-color-grey-100) r g b / 0.25);
3354
+ /* Shrink to the names: a percentage under the content width is the table
3355
+ layout's way of saying "as narrow as this can go". */
3356
+ width: 1%;
3357
+ }
3358
+
3359
+ ._recordHeader_v9mcp_27 {
3360
+ border-bottom: 1px solid rgb(from var(--lol-color-grey-100) r g b / 0.25);
3361
+ }
3362
+
3363
+ /* The blank corner over the field names carries both hairlines, so the one
3364
+ under the record names and the one beside the field names meet instead of
3365
+ stopping short of each other. */
3366
+ ._corner_v9mcp_28 {
3367
+ padding: 0;
3368
+ border-bottom: 1px solid rgb(from var(--lol-color-grey-100) r g b / 0.25);
3369
+ border-inline-end: 1px solid
3370
+ rgb(from var(--lol-color-grey-100) r g b / 0.25);
3371
+ }
3372
+
3373
+ ._cell_v9mcp_70 {
3374
+ border: 0 solid;
3375
+ padding: 0.375rem 0.75rem;
3376
+ vertical-align: middle;
3377
+ }
3378
+
3379
+ ._start_v9mcp_76 {
3380
+ text-align: start;
3381
+ }
3382
+
3383
+ ._center_v9mcp_80 {
3384
+ text-align: center;
3385
+ }
3386
+
3387
+ ._end_v9mcp_84 {
3388
+ text-align: end;
3389
+ }
3390
+ }