tungsten 0.1.34 → 0.1.35

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/tungsten/_icons.js +1 -1
  3. data/app/assets/javascripts/tungsten/tungsten.js +1 -1
  4. data/app/assets/stylesheets/tungsten/components/_buttons.scss +21 -1
  5. data/app/assets/stylesheets/tungsten/components/_cards.scss +5 -5
  6. data/app/assets/stylesheets/tungsten/components/_icons.scss +11 -0
  7. data/app/assets/stylesheets/tungsten/components/_index.scss +1 -0
  8. data/app/assets/stylesheets/tungsten/components/_tables.scss +50 -0
  9. data/app/assets/stylesheets/tungsten/components/_time.scss +4 -11
  10. data/app/assets/stylesheets/tungsten/core/_banner.scss +1 -0
  11. data/app/assets/stylesheets/tungsten/form/_base.scss +1 -0
  12. data/app/assets/stylesheets/tungsten/form/_input-row.scss +3 -2
  13. data/app/assets/stylesheets/tungsten/form/_label-placeholder.scss +2 -2
  14. data/app/assets/stylesheets/tungsten/form/_validation.scss +37 -15
  15. data/app/assets/svgs/tungsten/angle-down.svg +1 -0
  16. data/app/helpers/tungsten/button_helper.rb +11 -8
  17. data/app/helpers/tungsten/content_helper.rb +13 -6
  18. data/app/helpers/tungsten/form_for_helper.rb +25 -0
  19. data/app/helpers/tungsten/form_helper.rb +26 -1
  20. data/app/helpers/tungsten/icon_helper.rb +2 -2
  21. data/app/helpers/tungsten/table_helper.rb +62 -0
  22. data/lib/tungsten/version.rb +1 -1
  23. data/public/{code-0.1.34.js → code-0.1.35.js} +1 -1
  24. data/public/{code-0.1.34.js.gz → code-0.1.35.js.gz} +0 -0
  25. data/public/{code-0.1.34.map.json → code-0.1.35.map.json} +0 -0
  26. data/public/{tungsten-0.1.34.css → tungsten-0.1.35.css} +114 -26
  27. data/public/tungsten-0.1.35.css.gz +0 -0
  28. data/public/{tungsten-0.1.34.js → tungsten-0.1.35.js} +4 -4
  29. data/public/tungsten-0.1.35.js.gz +0 -0
  30. data/public/tungsten-0.1.35.map.json +1 -0
  31. metadata +14 -10
  32. data/public/tungsten-0.1.34.css.gz +0 -0
  33. data/public/tungsten-0.1.34.js.gz +0 -0
  34. data/public/tungsten-0.1.34.map.json +0 -1
@@ -55,10 +55,10 @@ module Tungsten
55
55
  options[:data] ||= {}
56
56
  options[:data]['timeago'] = options.delete(:timeago_style) || 'long'
57
57
  options[:data][:mode] = options.delete(:start)
58
+ options[:icon] = 'sync-circle'
58
59
 
59
60
  content_tag(:span, class: 'time-wrapper') {
60
- concat time_tag(date, options)
61
- concat use_svg 'sync-circle'
61
+ time_tag(date, options)
62
62
  }
63
63
  end
64
64
 
@@ -73,18 +73,25 @@ module Tungsten
73
73
  end
74
74
 
75
75
  def time_tag(date, options={})
76
- date = DateTime.parse(date.to_s).iso8601
76
+ iso_date = DateTime.parse(date.to_s).new_offset(0).iso8601
77
+
78
+ options[:datetime] = iso_date
77
79
 
78
- options[:datetime] = date
80
+ icon = use_svg(options.delete(:icon)) if options[:icon]
79
81
 
80
82
  unless options.delete(:toggle) || options.delete(:timeago)
81
83
  options[:class] = 'has-tooltip'
82
- options['aria-label'] = time_ago_in_words(date) + ' ago'
84
+ options['aria-label'] = time_ago_in_words(iso_date) + ' ago'
83
85
  end
84
86
 
85
87
  content_tag(:time, options) {
86
- ('<span class="date">' + date.sub('T','</span> <span class="time">').sub('+00:00','</span> <span class="timezone">UTC</span>')).html_safe
88
+ concat content_tag(:span, class: 'date-text') {
89
+ ('<span class="date">' + iso_date.sub('T','</span> <span class="time">').sub('+00:00','</span> <span class="timezone">UTC</span>')).html_safe
90
+ }
91
+ concat ' '
92
+ concat icon
87
93
  }
94
+
88
95
  end
89
96
 
90
97
  def timeago_tag(date, options={})
@@ -0,0 +1,25 @@
1
+ module Tungsten
2
+ module FormForHelper
3
+ class TungstenFormBuilder
4
+ def initialize(template, values, errors)
5
+ @template = template
6
+ @values = values
7
+ @errors = errors
8
+ end
9
+
10
+ def method_missing(method, field_name, options = {})
11
+ @template.send(method, field_name, options.merge({
12
+ value: @values[field_name],
13
+ errors: @errors[field_name]
14
+ }.compact))
15
+ end
16
+ end
17
+
18
+ def tungsten_form_for(values, options = {}, &block)
19
+ errors = options.delete(:errors) || values.try(:errors) || {}
20
+
21
+ body = capture TungstenFormBuilder.new(self, values, errors), &block
22
+ form_tag_with_body options, body
23
+ end
24
+ end
25
+ end
@@ -369,6 +369,10 @@ module Tungsten
369
369
  options[:data] ||= {}
370
370
  options[:data][:message] ||= options.delete(:message)
371
371
 
372
+ if errors = options.delete(:errors)
373
+ options[:data]['invalid-value'] = value
374
+ end
375
+
372
376
  if options.delete(:copy)
373
377
  copy_class = "copy-input-#{SecureRandom.hex(8)}"
374
378
  copy = copy_button ".#{copy_class}"
@@ -378,7 +382,7 @@ module Tungsten
378
382
  options[:type] ||= type
379
383
 
380
384
  label_options = {
381
- class: "#{label_class(options[:type])} #{options.delete(:class)}"
385
+ class: "#{label_class(options[:type])} #{options.delete(:class)} #{'remotely-invalid' if errors}"
382
386
  }
383
387
 
384
388
  if options[:type] != :textarea && placeholder = options[:placeholder]
@@ -390,11 +394,14 @@ module Tungsten
390
394
  label_text = content_tag(:span, class: 'label-text') { label_text }
391
395
  end
392
396
 
397
+
393
398
  options[:class] = "#{options[:class]} #{copy_class}".strip if copy_class
399
+
394
400
  tag = base_tag(name, value, options, type, &block)
395
401
 
396
402
  label = content_tag(:label, label_options) {
397
403
  concat label_text
404
+
398
405
  if type == :select
399
406
  concat tag
400
407
  concat placeholder
@@ -404,6 +411,24 @@ module Tungsten
404
411
  concat placeholder
405
412
  }
406
413
  end
414
+
415
+ if errors
416
+ concat content_tag(:span, class: "remote-validation-message") {
417
+ content_tag(:span, class: "validation-message-text", role:"alert") {
418
+ if errors.size > 1
419
+ concat content_tag(:span, class: 'validation-error-notice') { 'There were some errors:' }
420
+ concat " "
421
+ end
422
+ errors.each do |error|
423
+ concat content_tag(:span, class: 'valdiation-error-item') {
424
+ concat error
425
+ }
426
+ concat " "
427
+ end
428
+ }
429
+ }.html_safe
430
+
431
+ end
407
432
  }
408
433
 
409
434
  if copy
@@ -1,11 +1,11 @@
1
1
  module Tungsten
2
2
  module IconHelper
3
3
  def status_icon (status, options={})
4
- options[:height] ||= '0.85em'
4
+ options[:height] ||= '1em'
5
5
  span_options = {}
6
6
 
7
7
  span_options['aria-label'] = status.titlecase
8
- span_options[:class] = 'status-icon has-tooltip'
8
+ span_options[:class] = 'status-icon inline-icon has-tooltip'
9
9
  options[:desc] ||= status
10
10
 
11
11
  content_tag :span, span_options do
@@ -0,0 +1,62 @@
1
+ module Tungsten
2
+ module TableHelper
3
+ class TableDrawer < Tungsten::Helper
4
+
5
+ def initialize( options = {} )
6
+ @options = options
7
+ @id = "drawer-#{SecureRandom.hex(5)}"
8
+ end
9
+
10
+ def display( body )
11
+ options = {
12
+ class: 'table-drawer-handle',
13
+ id: @id,
14
+ }
15
+ options[:data] ||= {}
16
+
17
+ if @options.delete(:toggle)
18
+ options[:data]['toggle-class'] = 'open'
19
+ options[:role] = 'button'
20
+ options[:class] << ' handle-toggle'
21
+ end
22
+ content_tag(:tr, options) { body }
23
+ end
24
+
25
+ def drawer(options={}, &block)
26
+
27
+ colspan = options.delete(:colspan) || 100
28
+ options[:class] = "#{options[:class]} table-drawer-content".strip
29
+
30
+ content_tag(:tr, class: 'table-drawer') {
31
+ content_tag(:td, colspan: colspan) {
32
+ content_tag(:div, class: 'table-drawer-content-wrapper') {
33
+ content_tag(:div, options, &block)
34
+ }
35
+ }
36
+ }
37
+ end
38
+
39
+ def close( &block )
40
+ trigger_action( 'remove', &block )
41
+ end
42
+
43
+ def toggle( &block )
44
+ trigger_action( 'toggle', &block )
45
+ end
46
+
47
+ def open( &block )
48
+ trigger_action( 'add', &block )
49
+ end
50
+
51
+ def id
52
+ @id
53
+ end
54
+
55
+ private
56
+
57
+ def trigger_action( action, &block )
58
+ capture(&block).sub(/>/, " role='button' data-#{action}-class=\"open; ##{@id}\">").html_safe
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,3 +1,3 @@
1
1
  module Tungsten
2
- VERSION = "0.1.34"
2
+ VERSION = "0.1.35"
3
3
  end
@@ -89,4 +89,4 @@ function move(o){document.documentElement.scrollTop=o,document.body.parentNode.s
89
89
  });
90
90
 
91
91
 
92
- //# sourceMappingURL=/assets/tungsten/code-0.1.34.map.json
92
+ //# sourceMappingURL=/assets/tungsten/code-0.1.35.map.json
@@ -947,6 +947,8 @@ pre {
947
947
  background: rgba(255, 255, 255, 0.1);
948
948
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.3) inset;
949
949
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); }
950
+ .application-banner .icon-nav-item {
951
+ text-decoration: none; }
950
952
  .application-banner .icon-nav-item:hover .deployment-icon-hex {
951
953
  fill: rgba(255, 255, 255, 0.05); }
952
954
 
@@ -1856,7 +1858,8 @@ select::-moz-focus-inner, textarea::-moz-focus-inner, textarea::-moz-focus-inner
1856
1858
  padding: 0; }
1857
1859
 
1858
1860
  .input-wrapper {
1859
- position: relative; }
1861
+ position: relative;
1862
+ display: inline; }
1860
1863
 
1861
1864
  input[type=search], input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button {
1862
1865
  -webkit-appearance: none; }
@@ -1929,7 +1932,7 @@ form.button_to {
1929
1932
  .placeholder-label ::placeholder {
1930
1933
  opacity: 0;
1931
1934
  color: transparent; }
1932
- .placeholder-label label:not(.valid):not(.invalid) input:focus + span, .placeholder-label label:not(.valid):not(.invalid) input:active + span {
1935
+ .placeholder-label label:not(.valid):not(.invalid) input:focus + .input-wrapper, .placeholder-label label:not(.valid):not(.invalid) input:active + .input-wrapper {
1933
1936
  color: #8c9ba5; }
1934
1937
  .placeholder-label input {
1935
1938
  z-index: 1;
@@ -2147,20 +2150,20 @@ input:checked + .check-switch-panel {
2147
2150
  -webkit-transform: scale(1.1) translate3d(16px, 0, 0);
2148
2151
  transform: scale(1.1) translate3d(16px, 0, 0); }
2149
2152
 
2150
- label.valid {
2153
+ label.valid:not(.remotely-invalid) {
2151
2154
  color: #2ac84f; }
2152
- label.valid input, label.valid select, label.valid textarea {
2155
+ label.valid:not(.remotely-invalid) input, label.valid:not(.remotely-invalid) select, label.valid:not(.remotely-invalid) textarea {
2153
2156
  -webkit-text-fill-color: currentColor;
2154
2157
  box-shadow: 0 0 0 1px #2ac84f inset, 0 0 0 transparent; }
2155
- label.valid input:focus, label.valid input:hover:not([disabled]), label.valid input:active, label.valid select:focus, label.valid select:hover:not([disabled]), label.valid select:active, label.valid textarea:focus, label.valid textarea:hover:not([disabled]), label.valid textarea:active {
2158
+ label.valid:not(.remotely-invalid) input:focus, label.valid:not(.remotely-invalid) input:hover:not([disabled]), label.valid:not(.remotely-invalid) input:active, label.valid:not(.remotely-invalid) select:focus, label.valid:not(.remotely-invalid) select:hover:not([disabled]), label.valid:not(.remotely-invalid) select:active, label.valid:not(.remotely-invalid) textarea:focus, label.valid:not(.remotely-invalid) textarea:hover:not([disabled]), label.valid:not(.remotely-invalid) textarea:active {
2156
2159
  box-shadow: 0 0 0 1px #2ac84f inset, 0 1px 3px rgba(15, 33, 46, 0.3); }
2157
2160
 
2158
- label.invalid {
2161
+ label.invalid, label.remotely-invalid:not(.valid) {
2159
2162
  color: #dd2f41; }
2160
- label.invalid input, label.invalid select, label.invalid textarea {
2163
+ label.invalid input, label.invalid select, label.invalid textarea, label.remotely-invalid:not(.valid) input, label.remotely-invalid:not(.valid) select, label.remotely-invalid:not(.valid) textarea {
2161
2164
  -webkit-text-fill-color: currentColor;
2162
2165
  box-shadow: 0 0 0 1px #dd2f41 inset, 0 0 0 transparent; }
2163
- label.invalid input:focus, label.invalid input:hover:not([disabled]), label.invalid input:active, label.invalid select:focus, label.invalid select:hover:not([disabled]), label.invalid select:active, label.invalid textarea:focus, label.invalid textarea:hover:not([disabled]), label.invalid textarea:active {
2166
+ label.invalid input:focus, label.invalid input:hover:not([disabled]), label.invalid input:active, label.invalid select:focus, label.invalid select:hover:not([disabled]), label.invalid select:active, label.invalid textarea:focus, label.invalid textarea:hover:not([disabled]), label.invalid textarea:active, label.remotely-invalid:not(.valid) input:focus, label.remotely-invalid:not(.valid) input:hover:not([disabled]), label.remotely-invalid:not(.valid) input:active, label.remotely-invalid:not(.valid) select:focus, label.remotely-invalid:not(.valid) select:hover:not([disabled]), label.remotely-invalid:not(.valid) select:active, label.remotely-invalid:not(.valid) textarea:focus, label.remotely-invalid:not(.valid) textarea:hover:not([disabled]), label.remotely-invalid:not(.valid) textarea:active {
2164
2167
  box-shadow: 0 0 0 1px #dd2f41 inset, 0 1px 3px rgba(15, 33, 46, 0.3); }
2165
2168
 
2166
2169
  @-webkit-keyframes expand-validation {
@@ -2192,7 +2195,7 @@ label.invalid input:focus, label.invalid input:hover:not([disabled]), label.inva
2192
2195
  opacity: 1;
2193
2196
  -webkit-transform: translate(-50%, 6px) scale(1);
2194
2197
  transform: translate(-50%, 6px) scale(1); } }
2195
- .validation-message {
2198
+ .validation-message, .remote-validation-message {
2196
2199
  overflow: hidden;
2197
2200
  display: block;
2198
2201
  z-index: 3;
@@ -2200,7 +2203,8 @@ label.invalid input:focus, label.invalid input:hover:not([disabled]), label.inva
2200
2203
  animation: expand-validation 0.25s cubic-bezier(0.4, 0, 0.2, 1);
2201
2204
  position: relative;
2202
2205
  top: -1px; }
2203
- .validation-message .validation-message-text {
2206
+
2207
+ .validation-message-text {
2204
2208
  margin: 0;
2205
2209
  display: block;
2206
2210
  padding: .8em .8em;
@@ -2209,9 +2213,21 @@ label.invalid input:focus, label.invalid input:hover:not([disabled]), label.inva
2209
2213
  font-size: 12px;
2210
2214
  line-height: 1em;
2211
2215
  background: #8c9ba5; }
2212
- .invalid .validation-message .validation-message-text {
2216
+ .invalid .validation-message-text, .remotely-invalid:not(.valid) .validation-message-text {
2213
2217
  background: #dd2f41; }
2214
2218
 
2219
+ .valdiation-error-item, .validation-error-notice {
2220
+ display: block;
2221
+ line-height: 1.3em; }
2222
+
2223
+ .validation-error-notice {
2224
+ font-weight: bold;
2225
+ margin-bottom: .2em; }
2226
+ .validation-error-notice ~ .valdiation-error-item {
2227
+ margin-left: .5em; }
2228
+ .validation-error-notice ~ .valdiation-error-item:before {
2229
+ content: "• "; }
2230
+
2215
2231
  .empty-label[data-slider-label] {
2216
2232
  display: none; }
2217
2233
 
@@ -2608,9 +2624,9 @@ input::-moz-focus-inner {
2608
2624
  flex-grow: 1; }
2609
2625
  .input-row > * ~ * {
2610
2626
  margin-left: 8px; }
2611
- .input-row button {
2627
+ .input-row > .button-wrapper button {
2612
2628
  margin-top: 1px;
2613
- margin-bottom: 1px; }
2629
+ height: 41px; }
2614
2630
 
2615
2631
  /* ========================================================================== *
2616
2632
  * Tables module
@@ -2639,6 +2655,14 @@ table.ruled tfoot th, table.ruled tbody tr:nth-child(n+2) th, table.ruled tbody
2639
2655
  table.ruled thead th {
2640
2656
  border-bottom: 1px solid #dfe3e6; }
2641
2657
 
2658
+ table.bordered {
2659
+ border-top: 1px solid #dfe3e6;
2660
+ border-bottom: 1px solid #dfe3e6; }
2661
+ table.bordered td:first-child, table.bordered th:first-child {
2662
+ border-left: 1px solid #dfe3e6; }
2663
+ table.bordered td:last-child, table.bordered th:last-child {
2664
+ border-right: 1px solid #dfe3e6; }
2665
+
2642
2666
  table.outlined, table.doc-table {
2643
2667
  border-collapse: collapse; }
2644
2668
  table.outlined td, table.outlined th, table.doc-table td, table.doc-table th {
@@ -2666,16 +2690,53 @@ th.sub-heading {
2666
2690
  padding-top: 4px;
2667
2691
  padding-bottom: 4px; }
2668
2692
 
2693
+ @-webkit-keyframes open-table-drawer {
2694
+ 0% {
2695
+ max-height: 0; }
2696
+ 100% {
2697
+ max-height: 40vw; } }
2698
+
2699
+ @keyframes open-table-drawer {
2700
+ 0% {
2701
+ max-height: 0; }
2702
+ 100% {
2703
+ max-height: 40vw; } }
2704
+ tr:not(.open) + .table-drawer {
2705
+ display: none; }
2706
+ .table-drawer td {
2707
+ padding: 0; }
2708
+ .table-drawer .table-drawer-content {
2709
+ padding: 8px;
2710
+ background: rgba(0, 0, 0, 0.05); }
2711
+ .table-drawer .table-drawer-content > :last-child {
2712
+ margin-bottom: 0; }
2713
+ .open + .table-drawer .table-drawer-content-wrapper {
2714
+ overflow: hidden;
2715
+ -webkit-animation: open-table-drawer .4s ease-in;
2716
+ animation: open-table-drawer .4s ease-in; }
2717
+
2718
+ .rotate-icon svg {
2719
+ -webkit-transform: rotate(180deg);
2720
+ transform: rotate(180deg); }
2721
+
2722
+ [data-toggle] {
2723
+ cursor: pointer; }
2724
+
2669
2725
  /* ========================================================================== *
2670
2726
  * Buttons module
2671
2727
  * -------------------------------------------------------------------------- */
2672
2728
  /* ===================================== *
2673
2729
  * Common
2674
2730
  * ------------------------------------- */
2731
+ [role=button] {
2732
+ cursor: pointer; }
2733
+
2675
2734
  .button {
2676
2735
  display: -webkit-inline-box;
2677
2736
  display: -ms-inline-flexbox;
2678
2737
  display: inline-flex;
2738
+ -ms-flex-item-align: center;
2739
+ align-self: center;
2679
2740
  -webkit-box-align: center;
2680
2741
  -ms-flex-align: center;
2681
2742
  align-items: center;
@@ -2780,9 +2841,25 @@ th.sub-heading {
2780
2841
  .button-group .button:last-child {
2781
2842
  border-radius: 0 3px 3px 0; }
2782
2843
 
2783
- .button + .button {
2844
+ .button-wrapper + .button-wrapper {
2784
2845
  margin-left: 8px; }
2785
2846
 
2847
+ .button-wrapper + a {
2848
+ -ms-flex-item-align: center;
2849
+ -ms-grid-row-align: center;
2850
+ align-self: center; }
2851
+
2852
+ .link-button {
2853
+ color: #152934;
2854
+ -webkit-text-decoration-color: #8c9ba5;
2855
+ text-decoration-color: #8c9ba5;
2856
+ font-size: 14px; }
2857
+ .link-button:hover, .link-button:focus, .link-button:active {
2858
+ color: #0094fd;
2859
+ text-decoration: underline;
2860
+ -webkit-text-decoration-color: #0094fd;
2861
+ text-decoration-color: #0094fd; }
2862
+
2786
2863
  /* ========================================================================== *
2787
2864
  * Badges module
2788
2865
  * -------------------------------------------------------------------------- */
@@ -2840,12 +2917,10 @@ th.sub-heading {
2840
2917
  -webkit-box-pack: center;
2841
2918
  -ms-flex-pack: center;
2842
2919
  justify-content: center; }
2843
- .card-actions a, .card-actions .button {
2920
+ .card-actions a, .card-actions .button-wrapper {
2844
2921
  margin-left: 8px; }
2845
- .card-actions a:last-child, .card-actions .button:last-child {
2922
+ .card-actions a:last-child, .card-actions .button-wrapper:last-child {
2846
2923
  margin-left: 0; }
2847
- .card p, .card ul, .card ol, .card h1, .card h2, .card h3, .card h4, .card h5, .card h6, .card pre, .card table, .card .card {
2848
- margin-bottom: 20px; }
2849
2924
  .card:not([class*='columns']) {
2850
2925
  border-radius: 3px;
2851
2926
  box-shadow: 0 0 0 1px rgba(15, 33, 46, 0.05), 0 1px 3px rgba(15, 33, 46, 0.15); }
@@ -2870,7 +2945,12 @@ th.sub-heading {
2870
2945
  font-size: 16px;
2871
2946
  -webkit-box-align: top;
2872
2947
  -ms-flex-align: top;
2873
- align-items: top; }
2948
+ align-items: top;
2949
+ margin-bottom: 0; }
2950
+ .card-header {
2951
+ margin-bottom: 20px; }
2952
+ .card-footer {
2953
+ margin-top: 20px; }
2874
2954
  .card-header, .card-footer {
2875
2955
  display: -webkit-box;
2876
2956
  display: -ms-flexbox;
@@ -3239,18 +3319,26 @@ table.card {
3239
3319
  margin-right: 4px; }
3240
3320
  .time-wrapper svg {
3241
3321
  color: #5aaafa;
3242
- display: none;
3243
3322
  opacity: 0;
3244
3323
  height: 1em;
3245
3324
  width: 1em;
3246
3325
  position: relative;
3247
- top: .15em;
3326
+ top: .17em;
3248
3327
  fill: currentColor;
3249
3328
  -webkit-transition: cubic-bezier(0.4, 0, 0.2, 1) 0.25s;
3250
3329
  transition: cubic-bezier(0.4, 0, 0.2, 1) 0.25s;
3251
- -webkit-transition-property: color, opacity;
3252
- transition-property: color, opacity; }
3253
- .time-wrapper .time-toggle:hover + svg {
3330
+ -webkit-transition-property: opacity;
3331
+ transition-property: opacity; }
3332
+ .time-wrapper .time-toggle:hover svg {
3254
3333
  opacity: 1; }
3255
- .time-wrapper .time-toggle + svg {
3256
- display: initial; }
3334
+
3335
+ .inline-icon {
3336
+ position: relative;
3337
+ height: 1em;
3338
+ width: 1em;
3339
+ display: -webkit-inline-box;
3340
+ display: -ms-inline-flexbox;
3341
+ display: inline-flex; }
3342
+ .inline-icon svg {
3343
+ position: absolute;
3344
+ bottom: -0.125em; }
Binary file