primer_view_components 0.0.40 → 0.0.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +239 -1
  3. data/app/assets/javascripts/primer_view_components.js +1 -1
  4. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  5. data/app/components/primer/alpha/button_marketing.rb +70 -0
  6. data/app/components/primer/auto_complete.rb +99 -41
  7. data/app/components/primer/auto_complete/auto_complete.html.erb +1 -0
  8. data/app/components/primer/{auto_complete/auto_component.d.ts → auto_complete_component.d.ts} +0 -0
  9. data/app/components/primer/{auto_complete/auto_component.js → auto_complete_component.js} +0 -0
  10. data/app/components/primer/avatar_stack_component.rb +2 -2
  11. data/app/components/primer/base_component.rb +31 -21
  12. data/app/components/primer/beta/text.rb +27 -0
  13. data/app/components/primer/blankslate_component.html.erb +1 -0
  14. data/app/components/primer/blankslate_component.rb +65 -46
  15. data/app/components/primer/button_component.rb +3 -2
  16. data/app/components/primer/button_group.rb +1 -1
  17. data/app/components/primer/clipboard_copy.rb +25 -7
  18. data/app/components/primer/clipboard_copy_component.js +13 -2
  19. data/app/components/primer/clipboard_copy_component.ts +15 -2
  20. data/app/components/primer/component.rb +1 -1
  21. data/app/components/primer/details_component.rb +12 -1
  22. data/app/components/primer/details_menu_component.d.ts +1 -0
  23. data/app/components/primer/details_menu_component.js +1 -0
  24. data/app/components/primer/dropdown.d.ts +1 -0
  25. data/app/components/primer/{dropdown_component.html.erb → dropdown.html.erb} +2 -1
  26. data/app/components/primer/dropdown.js +1 -0
  27. data/app/components/primer/dropdown.rb +149 -0
  28. data/app/components/primer/dropdown.ts +1 -0
  29. data/app/components/primer/dropdown/menu.d.ts +1 -0
  30. data/app/components/primer/dropdown/menu.html.erb +25 -0
  31. data/app/components/primer/dropdown/menu.js +1 -0
  32. data/app/components/primer/dropdown/menu.rb +99 -0
  33. data/app/components/primer/dropdown/menu.ts +1 -0
  34. data/app/components/primer/flash_component.rb +2 -2
  35. data/app/components/primer/heading_component.rb +1 -1
  36. data/app/components/primer/hidden_text_expander.rb +2 -2
  37. data/app/components/primer/icon_button.rb +1 -1
  38. data/app/components/primer/image.rb +46 -0
  39. data/app/components/primer/image_crop.rb +2 -2
  40. data/app/components/primer/label_component.rb +6 -2
  41. data/app/components/primer/local_time.d.ts +1 -0
  42. data/app/components/primer/local_time.js +1 -0
  43. data/app/components/primer/local_time.rb +59 -0
  44. data/app/components/primer/local_time.ts +1 -0
  45. data/app/components/primer/markdown.rb +6 -2
  46. data/app/components/primer/navigation/tab_component.rb +10 -3
  47. data/app/components/primer/octicon_component.rb +15 -12
  48. data/app/components/primer/primer.d.ts +2 -0
  49. data/app/components/primer/primer.js +2 -0
  50. data/app/components/primer/primer.ts +2 -0
  51. data/app/components/primer/spinner_component.rb +2 -0
  52. data/app/components/primer/tab_nav_component.html.erb +5 -1
  53. data/app/components/primer/tab_nav_component.rb +62 -9
  54. data/app/components/primer/{tooltip_component.rb → tooltip.rb} +10 -8
  55. data/app/components/primer/truncate.rb +6 -2
  56. data/app/components/primer/underline_nav_component.html.erb +1 -1
  57. data/app/components/primer/underline_nav_component.rb +17 -1
  58. data/app/lib/primer/classify.rb +35 -12
  59. data/app/lib/primer/classify/cache.rb +12 -17
  60. data/app/lib/primer/classify/grid.rb +45 -0
  61. data/app/lib/primer/classify/utilities.rb +137 -0
  62. data/app/lib/primer/classify/utilities.yml +1147 -0
  63. data/app/lib/primer/tabbed_component_helper.rb +2 -2
  64. data/app/lib/primer/view_helper.rb +2 -1
  65. data/lib/primer/view_components/engine.rb +2 -0
  66. data/lib/primer/view_components/linters.rb +3 -0
  67. data/lib/primer/view_components/linters/argument_mappers/button.rb +82 -0
  68. data/lib/primer/view_components/linters/argument_mappers/conversion_error.rb +10 -0
  69. data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +48 -0
  70. data/lib/primer/view_components/linters/button_component_migration_counter.rb +39 -0
  71. data/lib/primer/view_components/linters/flash_component_migration_counter.rb +16 -0
  72. data/lib/primer/view_components/linters/helpers.rb +191 -0
  73. data/lib/primer/view_components/version.rb +1 -1
  74. data/lib/tasks/docs.rake +184 -109
  75. data/lib/tasks/utilities.rake +99 -0
  76. data/lib/yard/docs_helper.rb +12 -2
  77. data/static/statuses.json +10 -6
  78. metadata +65 -14
  79. data/app/components/primer/button_marketing_component.rb +0 -68
  80. data/app/components/primer/dropdown/menu_component.html.erb +0 -12
  81. data/app/components/primer/dropdown/menu_component.rb +0 -46
  82. data/app/components/primer/dropdown_component.rb +0 -73
  83. data/app/components/primer/text_component.rb +0 -25
  84. data/app/lib/primer/classify/spacing.rb +0 -63
@@ -3,11 +3,20 @@
3
3
  module Primer
4
4
  # :nodoc:
5
5
  class Classify
6
+ # Load the utilities.yml file.
7
+ # Disabling because we want to load symbols, strings, and integers from the .yml file
8
+ # rubocop:disable Security/YAMLLoad
9
+ UTILITIES = YAML.load(
10
+ File.read(
11
+ File.join(File.dirname(__FILE__), "./classify/utilities.yml")
12
+ )
13
+ ).freeze
14
+ # rubocop:enable Security/YAMLLoad
15
+
6
16
  DISPLAY_KEY = :display
7
- SPACING_KEYS = Primer::Classify::Spacing::KEYS
8
17
 
9
18
  # Keys where we can simply translate { key: value } into ".key-value"
10
- CONCAT_KEYS = SPACING_KEYS + %i[hide position v float col text box_shadow].freeze
19
+ CONCAT_KEYS = %i[position v text box_shadow].freeze
11
20
 
12
21
  INVALID_CLASS_NAME_PREFIXES =
13
22
  (["bg-", "color-", "text-", "d-", "v-align-", "wb-", "box-shadow-"] + CONCAT_KEYS.map { |k| "#{k}-" }).freeze
@@ -16,15 +25,16 @@ module Primer
16
25
  BG_KEY = :bg
17
26
  VERTICAL_ALIGN_KEY = :vertical_align
18
27
  WORD_BREAK_KEY = :word_break
19
- TEXT_KEYS = %i[text_align font_weight].freeze
28
+ TEXT_KEYS = %i[font_family font_style font_weight text_align text_transform].freeze
20
29
  WIDTH_KEY = :width
21
30
  HEIGHT_KEY = :height
22
31
  BOX_SHADOW_KEY = :box_shadow
23
32
  VISIBILITY_KEY = :visibility
24
33
  ANIMATION_KEY = :animation
34
+ CONTAINER_KEY = :container
25
35
 
26
36
  BREAKPOINTS = ["", "-sm", "-md", "-lg", "-xl"].freeze
27
- RESPONSIVE_KEYS = ([DISPLAY_KEY, :col, :float] + SPACING_KEYS + Primer::Classify::Flex::RESPONSIVE_KEYS).freeze
37
+ RESPONSIVE_KEYS = ([DISPLAY_KEY, Primer::Classify::Grid::COL_KEY] + Primer::Classify::Flex::RESPONSIVE_KEYS).freeze
28
38
 
29
39
  BOOLEAN_MAPPINGS = {
30
40
  underline: {
@@ -78,12 +88,14 @@ module Primer
78
88
  BORDER_RADIUS_KEY = :border_radius
79
89
  TYPOGRAPHY_KEYS = [:font_size].freeze
80
90
  VALID_KEYS = (
91
+ UTILITIES.keys +
81
92
  CONCAT_KEYS +
82
93
  BOOLEAN_MAPPINGS.keys +
83
94
  BORDER_MARGIN_KEYS +
84
95
  TYPOGRAPHY_KEYS +
85
96
  TEXT_KEYS +
86
97
  Primer::Classify::Flex::KEYS +
98
+ Primer::Classify::Grid::KEYS +
87
99
  [
88
100
  BORDER_KEY,
89
101
  BORDER_COLOR_KEY,
@@ -97,7 +109,8 @@ module Primer
97
109
  HEIGHT_KEY,
98
110
  BOX_SHADOW_KEY,
99
111
  VISIBILITY_KEY,
100
- ANIMATION_KEY
112
+ ANIMATION_KEY,
113
+ CONTAINER_KEY
101
114
  ]
102
115
  ).freeze
103
116
 
@@ -123,13 +136,13 @@ module Primer
123
136
  def validated_class_names(classes)
124
137
  return if classes.blank?
125
138
 
126
- if ENV["RAILS_ENV"] == "development"
139
+ if force_system_arguments? && !ENV["PRIMER_WARNINGS_DISABLED"]
127
140
  invalid_class_names =
128
141
  classes.split(" ").each_with_object([]) do |class_name, memo|
129
- memo << class_name if INVALID_CLASS_NAME_PREFIXES.any? { |prefix| class_name.start_with?(prefix) }
142
+ memo << class_name if INVALID_CLASS_NAME_PREFIXES.any? { |prefix| class_name.start_with?(prefix) } || Primer::Classify::Utilities.supported_selector?(class_name)
130
143
  end
131
144
 
132
- raise ArgumentError, "Use System Arguments (https://primer.style/view-components/system-arguments) instead of Primer CSS class #{'name'.pluralize(invalid_class_names.length)} #{invalid_class_names.to_sentence}. This warning will not be raised in production." if invalid_class_names.any?
145
+ raise ArgumentError, "Use System Arguments (https://primer.style/view-components/system-arguments) instead of Primer CSS class #{'name'.pluralize(invalid_class_names.length)} #{invalid_class_names.to_sentence}. This warning will not be raised in production. Set PRIMER_WARNINGS_DISABLED=1 to disable this warning." if invalid_class_names.any?
133
146
  end
134
147
 
135
148
  classes
@@ -152,7 +165,7 @@ module Primer
152
165
  next unless VALID_KEYS.include?(key)
153
166
 
154
167
  if value.is_a?(Array)
155
- raise ArgumentError, "#{key} does not support responsive values" unless RESPONSIVE_KEYS.include?(key)
168
+ raise ArgumentError, "#{key} does not support responsive values" unless RESPONSIVE_KEYS.include?(key) || Primer::Classify::Utilities.supported_key?(key)
156
169
 
157
170
  value.each_with_index do |val, index|
158
171
  Primer::Classify::Cache.read(memo, key, val, BREAKPOINTS[index]) || extract_value(memo, key, val, BREAKPOINTS[index])
@@ -170,8 +183,8 @@ module Primer
170
183
  def extract_value(memo, key, val, breakpoint)
171
184
  return if val.nil? || val == ""
172
185
 
173
- if SPACING_KEYS.include?(key)
174
- memo[:classes] << Primer::Classify::Spacing.spacing(key, val, breakpoint)
186
+ if Primer::Classify::Utilities.supported_key?(key)
187
+ memo[:classes] << Primer::Classify::Utilities.classname(key, val, breakpoint)
175
188
  elsif BOOLEAN_MAPPINGS.key?(key)
176
189
  BOOLEAN_MAPPINGS[key][:mappings].each do |m|
177
190
  memo[:classes] << m[:css_class] if m[:value] == val && m[:css_class].present?
@@ -206,6 +219,8 @@ module Primer
206
219
  memo[:classes] << "rounded-#{val}"
207
220
  elsif Primer::Classify::Flex::KEYS.include?(key)
208
221
  memo[:classes] << Primer::Classify::Flex.classes(key, val, breakpoint)
222
+ elsif Primer::Classify::Grid::KEYS.include?(key)
223
+ memo[:classes] << Primer::Classify::Grid.classes(key, val, breakpoint)
209
224
  elsif key == WIDTH_KEY || key == HEIGHT_KEY
210
225
  if val == :fit
211
226
  memo[:classes] << "#{key}-#{val}"
@@ -215,7 +230,11 @@ module Primer
215
230
  elsif TEXT_KEYS.include?(key)
216
231
  memo[:classes] << "text-#{val.to_s.dasherize}"
217
232
  elsif TYPOGRAPHY_KEYS.include?(key)
218
- memo[:classes] << "f#{val.to_s.dasherize}"
233
+ memo[:classes] << if val == :small || val == :normal
234
+ "text-#{val.to_s.dasherize}"
235
+ else
236
+ "f#{val.to_s.dasherize}"
237
+ end
219
238
  elsif key == BOX_SHADOW_KEY
220
239
  memo[:classes] << if val == true
221
240
  "color-shadow-small"
@@ -236,6 +255,10 @@ module Primer
236
255
  memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-#{val.to_s.dasherize}"
237
256
  end
238
257
  end
258
+
259
+ def force_system_arguments?
260
+ Rails.application.config.primer_view_components.force_system_arguments
261
+ end
239
262
  end
240
263
 
241
264
  Cache.preload!
@@ -20,38 +20,33 @@ module Primer
20
20
 
21
21
  def preload!
22
22
  preload(
23
- keys: Primer::Classify::Spacing::MARGIN_DIRECTION_MAPPINGS.keys,
24
- values: Primer::Classify::Spacing::MARGIN_DIRECTION_OPTIONS
25
- )
26
-
27
- preload(
28
- keys: Primer::Classify::Spacing::BASE_MAPPINGS.keys,
29
- values: Primer::Classify::Spacing::BASE_OPTIONS
23
+ keys: Primer::Classify::Flex::DIRECTION_KEY,
24
+ values: Primer::Classify::Flex::DIRECTION_VALUES
30
25
  )
31
26
 
32
27
  preload(
33
- keys: Primer::Classify::Spacing::AUTO_MAPPINGS.keys,
34
- values: Primer::Classify::Spacing::AUTO_OPTIONS
28
+ keys: Primer::Classify::Flex::JUSTIFY_CONTENT_KEY,
29
+ values: Primer::Classify::Flex::JUSTIFY_CONTENT_VALUES
35
30
  )
36
31
 
37
32
  preload(
38
- keys: Primer::Classify::Spacing::RESPONSIVE_MAPPINGS.keys,
39
- values: Primer::Classify::Spacing::RESPONSIVE_OPTIONS
33
+ keys: Primer::Classify::Flex::ALIGN_ITEMS_KEY,
34
+ values: Primer::Classify::Flex::ALIGN_ITEMS_VALUES
40
35
  )
41
36
 
42
37
  preload(
43
- keys: Primer::Classify::Flex::DIRECTION_KEY,
44
- values: Primer::Classify::Flex::DIRECTION_VALUES
38
+ keys: Primer::Classify::Grid::CONTAINER_KEY,
39
+ values: Primer::Classify::Grid::CONTAINER_VALUES
45
40
  )
46
41
 
47
42
  preload(
48
- keys: Primer::Classify::Flex::JUSTIFY_CONTENT_KEY,
49
- values: Primer::Classify::Flex::JUSTIFY_CONTENT_VALUES
43
+ keys: Primer::Classify::Grid::CLEARFIX_KEY,
44
+ values: [true]
50
45
  )
51
46
 
52
47
  preload(
53
- keys: Primer::Classify::Flex::ALIGN_ITEMS_KEY,
54
- values: Primer::Classify::Flex::ALIGN_ITEMS_VALUES
48
+ keys: Primer::Classify::Grid::COL_KEY,
49
+ values: Primer::Classify::Grid::COL_VALUES
55
50
  )
56
51
 
57
52
  preload(
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ class Classify
5
+ # Handler for PrimerCSS grid classes.
6
+ class Grid
7
+ extend Primer::FetchOrFallbackHelper
8
+
9
+ CONTAINER_KEY = :container
10
+ CONTAINER_VALUES = [:xl, :lg, :md, :sm].freeze
11
+
12
+ CLEARFIX_KEY = :clearfix
13
+ CLEARFIX_VALUES = [true, false].freeze
14
+
15
+ COL_KEY = :col
16
+ COL_VALUES = (1..12).to_a.freeze
17
+
18
+ KEYS = [CONTAINER_KEY, CLEARFIX_KEY, COL_KEY].freeze
19
+
20
+ class << self
21
+ def classes(key, value, breakpoint)
22
+ send(key, value, breakpoint)
23
+ end
24
+
25
+ private
26
+
27
+ def container(value, _breakpoint)
28
+ val = fetch_or_fallback(CONTAINER_VALUES, value)
29
+
30
+ "container-#{val}"
31
+ end
32
+
33
+ def clearfix(value, _breakpoint)
34
+ "clearfix" if fetch_or_fallback(CLEARFIX_VALUES, value)
35
+ end
36
+
37
+ def col(value, breakpoint)
38
+ val = fetch_or_fallback(COL_VALUES, value.to_i)
39
+
40
+ "col#{breakpoint}-#{val}"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,137 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :nodoc:
4
+ module Primer
5
+ class Classify
6
+ # Handler for PrimerCSS utility classes loaded from utilities.rake
7
+ class Utilities
8
+ class << self
9
+ def classname(key, val, breakpoint = "")
10
+ if (valid = validate(key, val, breakpoint))
11
+ valid
12
+ else
13
+ # Get selector
14
+ Primer::Classify::UTILITIES[key][val][Primer::Classify::BREAKPOINTS.index(breakpoint)]
15
+ end
16
+ end
17
+
18
+ # Does the Utilitiy class support the given key
19
+ #
20
+ # returns Boolean
21
+ def supported_key?(key)
22
+ Primer::Classify::UTILITIES[key].present?
23
+ end
24
+
25
+ # Does the Utilitiy class support the given key and value
26
+ #
27
+ # returns Boolean
28
+ def supported_value?(key, val)
29
+ supported_key?(key) && Primer::Classify::UTILITIES[key][val].present?
30
+ end
31
+
32
+ # Does the given selector exist in the utilities file
33
+ #
34
+ # returns Boolean
35
+ def supported_selector?(selector)
36
+ # This method is too slow to run in production
37
+ return false if Rails.env.production?
38
+
39
+ find_selector(selector).present?
40
+ end
41
+
42
+ # Is the key and value responsive
43
+ #
44
+ # returns Boolean
45
+ def responsive?(key, val)
46
+ supported_value?(key, val) && Primer::Classify::UTILITIES[key][val].count > 1
47
+ end
48
+
49
+ # Get the options for the given key
50
+ #
51
+ # returns Array or nil if key not supported
52
+ def mappings(key)
53
+ return unless supported_key?(key)
54
+
55
+ Primer::Classify::UTILITIES[key].keys
56
+ end
57
+
58
+ # Extract hash from classes ie. "mr-1 mb-2 foo" => { mr: 1, mb: 2, classes: "foo" }
59
+ def classes_to_hash(classes)
60
+ # This method is too slow to run in production
61
+ return { classes: classes } if Rails.env.production?
62
+
63
+ obj = {}
64
+ classes = classes.split(" ")
65
+ # Loop through all classes supplied and reject ones we find a match for
66
+ # So when we're at the end of the loop we have classes left with any non-system classes.
67
+ classes.reject! do |classname|
68
+ key, value, index = find_selector(classname)
69
+ next false if key.nil?
70
+
71
+ # Create array if nil
72
+ obj[key] = Array.new(5, nil) if obj[key].nil?
73
+ # Place the arguments in the responsive array based on index mr: [nil, 2]
74
+ obj[key][index] = value
75
+ next true
76
+ end
77
+
78
+ # Transform responsive arrays into arrays without trailing nil, so `mr: [1, nil, nil, nil, nil]` becomes `mr: 1`
79
+ obj.transform_values! do |value|
80
+ value = value.reverse.drop_while(&:nil?).reverse
81
+ if value.count == 1
82
+ value.first
83
+ else
84
+ value
85
+ end
86
+ end
87
+
88
+ # Add back the non-system classes
89
+ obj[:classes] = classes.join(" ") if classes.any?
90
+ obj
91
+ end
92
+
93
+ private
94
+
95
+ def find_selector(selector)
96
+ # Search each key/value_hash pair, eg. key `:mr` and value_hash `{ 0 => [ "mr-0", "mr-sm-0", "mr-md-0", "mr-lg-0", "mr-xl-0" ] }`
97
+ Primer::Classify::UTILITIES.each do |key, value_hash|
98
+ # Each value hash will also contain an array of classnames for breakpoints
99
+ # Key argument `0`, classes `[ "mr-0", "mr-sm-0", "mr-md-0", "mr-lg-0", "mr-xl-0" ]`
100
+ value_hash.each do |key_argument, classnames|
101
+ # Skip each value hash until we get one with the selector
102
+ next unless classnames.include?(selector)
103
+
104
+ # Return [:mr, 0, 1]
105
+ # has index of classname, so we can match it up with responsvie array `mr: [nil, 0]`
106
+ return [key, key_argument, classnames.index(selector)]
107
+ end
108
+ end
109
+
110
+ nil
111
+ end
112
+
113
+ def validate(key, val, breakpoint)
114
+ unless supported_key?(key)
115
+ raise ArgumentError, "#{key} is not a valid Primer utility key" unless Rails.env.production?
116
+
117
+ return ""
118
+ end
119
+
120
+ unless breakpoint.empty? || responsive?(key, val)
121
+ raise ArgumentError, "#{key} does not support responsive values" unless Rails.env.production?
122
+
123
+ return ""
124
+ end
125
+
126
+ unless supported_value?(key, val)
127
+ raise ArgumentError, "#{val} is not a valid value for :#{key}. Use one of #{mappings(key)}" unless Rails.env.production?
128
+
129
+ return ""
130
+ end
131
+
132
+ nil
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,1147 @@
1
+ ---
2
+ :float:
3
+ :left:
4
+ - float-left
5
+ - float-sm-left
6
+ - float-md-left
7
+ - float-lg-left
8
+ - float-xl-left
9
+ :right:
10
+ - float-right
11
+ - float-sm-right
12
+ - float-md-right
13
+ - float-lg-right
14
+ - float-xl-right
15
+ :none:
16
+ - float-none
17
+ - float-sm-none
18
+ - float-md-none
19
+ - float-lg-none
20
+ - float-xl-none
21
+ :m:
22
+ 0:
23
+ - m-0
24
+ - m-sm-0
25
+ - m-md-0
26
+ - m-lg-0
27
+ - m-xl-0
28
+ 1:
29
+ - m-1
30
+ - m-sm-1
31
+ - m-md-1
32
+ - m-lg-1
33
+ - m-xl-1
34
+ 2:
35
+ - m-2
36
+ - m-sm-2
37
+ - m-md-2
38
+ - m-lg-2
39
+ - m-xl-2
40
+ 3:
41
+ - m-3
42
+ - m-sm-3
43
+ - m-md-3
44
+ - m-lg-3
45
+ - m-xl-3
46
+ 4:
47
+ - m-4
48
+ - m-sm-4
49
+ - m-md-4
50
+ - m-lg-4
51
+ - m-xl-4
52
+ 5:
53
+ - m-5
54
+ - m-sm-5
55
+ - m-md-5
56
+ - m-lg-5
57
+ - m-xl-5
58
+ 6:
59
+ - m-6
60
+ - m-sm-6
61
+ - m-md-6
62
+ - m-lg-6
63
+ - m-xl-6
64
+ :auto:
65
+ - m-auto
66
+ :mt:
67
+ 0:
68
+ - mt-0
69
+ - mt-sm-0
70
+ - mt-md-0
71
+ - mt-lg-0
72
+ - mt-xl-0
73
+ 1:
74
+ - mt-1
75
+ - mt-sm-1
76
+ - mt-md-1
77
+ - mt-lg-1
78
+ - mt-xl-1
79
+ -1:
80
+ - mt-n1
81
+ - mt-sm-n1
82
+ - mt-md-n1
83
+ - mt-lg-n1
84
+ - mt-xl-n1
85
+ 2:
86
+ - mt-2
87
+ - mt-sm-2
88
+ - mt-md-2
89
+ - mt-lg-2
90
+ - mt-xl-2
91
+ -2:
92
+ - mt-n2
93
+ - mt-sm-n2
94
+ - mt-md-n2
95
+ - mt-lg-n2
96
+ - mt-xl-n2
97
+ 3:
98
+ - mt-3
99
+ - mt-sm-3
100
+ - mt-md-3
101
+ - mt-lg-3
102
+ - mt-xl-3
103
+ -3:
104
+ - mt-n3
105
+ - mt-sm-n3
106
+ - mt-md-n3
107
+ - mt-lg-n3
108
+ - mt-xl-n3
109
+ 4:
110
+ - mt-4
111
+ - mt-sm-4
112
+ - mt-md-4
113
+ - mt-lg-4
114
+ - mt-xl-4
115
+ -4:
116
+ - mt-n4
117
+ - mt-sm-n4
118
+ - mt-md-n4
119
+ - mt-lg-n4
120
+ - mt-xl-n4
121
+ 5:
122
+ - mt-5
123
+ - mt-sm-5
124
+ - mt-md-5
125
+ - mt-lg-5
126
+ - mt-xl-5
127
+ -5:
128
+ - mt-n5
129
+ - mt-sm-n5
130
+ - mt-md-n5
131
+ - mt-lg-n5
132
+ - mt-xl-n5
133
+ 6:
134
+ - mt-6
135
+ - mt-sm-6
136
+ - mt-md-6
137
+ - mt-lg-6
138
+ - mt-xl-6
139
+ -6:
140
+ - mt-n6
141
+ - mt-sm-n6
142
+ - mt-md-n6
143
+ - mt-lg-n6
144
+ - mt-xl-n6
145
+ 7:
146
+ - mt-7
147
+ - mt-sm-7
148
+ - mt-md-7
149
+ - mt-lg-7
150
+ - mt-xl-7
151
+ -7:
152
+ - mt-n7
153
+ - mt-sm-n7
154
+ - mt-md-n7
155
+ - mt-lg-n7
156
+ - mt-xl-n7
157
+ 8:
158
+ - mt-8
159
+ - mt-sm-8
160
+ - mt-md-8
161
+ - mt-lg-8
162
+ - mt-xl-8
163
+ -8:
164
+ - mt-n8
165
+ - mt-sm-n8
166
+ - mt-md-n8
167
+ - mt-lg-n8
168
+ - mt-xl-n8
169
+ 9:
170
+ - mt-9
171
+ - mt-sm-9
172
+ - mt-md-9
173
+ - mt-lg-9
174
+ - mt-xl-9
175
+ -9:
176
+ - mt-n9
177
+ - mt-sm-n9
178
+ - mt-md-n9
179
+ - mt-lg-n9
180
+ - mt-xl-n9
181
+ 10:
182
+ - mt-10
183
+ - mt-sm-10
184
+ - mt-md-10
185
+ - mt-lg-10
186
+ - mt-xl-10
187
+ -10:
188
+ - mt-n10
189
+ - mt-sm-n10
190
+ - mt-md-n10
191
+ - mt-lg-n10
192
+ - mt-xl-n10
193
+ 11:
194
+ - mt-11
195
+ - mt-sm-11
196
+ - mt-md-11
197
+ - mt-lg-11
198
+ - mt-xl-11
199
+ -11:
200
+ - mt-n11
201
+ - mt-sm-n11
202
+ - mt-md-n11
203
+ - mt-lg-n11
204
+ - mt-xl-n11
205
+ 12:
206
+ - mt-12
207
+ - mt-sm-12
208
+ - mt-md-12
209
+ - mt-lg-12
210
+ - mt-xl-12
211
+ -12:
212
+ - mt-n12
213
+ - mt-sm-n12
214
+ - mt-md-n12
215
+ - mt-lg-n12
216
+ - mt-xl-n12
217
+ :auto:
218
+ - mt-auto
219
+ :mb:
220
+ 0:
221
+ - mb-0
222
+ - mb-sm-0
223
+ - mb-md-0
224
+ - mb-lg-0
225
+ - mb-xl-0
226
+ 1:
227
+ - mb-1
228
+ - mb-sm-1
229
+ - mb-md-1
230
+ - mb-lg-1
231
+ - mb-xl-1
232
+ -1:
233
+ - mb-n1
234
+ - mb-sm-n1
235
+ - mb-md-n1
236
+ - mb-lg-n1
237
+ - mb-xl-n1
238
+ 2:
239
+ - mb-2
240
+ - mb-sm-2
241
+ - mb-md-2
242
+ - mb-lg-2
243
+ - mb-xl-2
244
+ -2:
245
+ - mb-n2
246
+ - mb-sm-n2
247
+ - mb-md-n2
248
+ - mb-lg-n2
249
+ - mb-xl-n2
250
+ 3:
251
+ - mb-3
252
+ - mb-sm-3
253
+ - mb-md-3
254
+ - mb-lg-3
255
+ - mb-xl-3
256
+ -3:
257
+ - mb-n3
258
+ - mb-sm-n3
259
+ - mb-md-n3
260
+ - mb-lg-n3
261
+ - mb-xl-n3
262
+ 4:
263
+ - mb-4
264
+ - mb-sm-4
265
+ - mb-md-4
266
+ - mb-lg-4
267
+ - mb-xl-4
268
+ -4:
269
+ - mb-n4
270
+ - mb-sm-n4
271
+ - mb-md-n4
272
+ - mb-lg-n4
273
+ - mb-xl-n4
274
+ 5:
275
+ - mb-5
276
+ - mb-sm-5
277
+ - mb-md-5
278
+ - mb-lg-5
279
+ - mb-xl-5
280
+ -5:
281
+ - mb-n5
282
+ - mb-sm-n5
283
+ - mb-md-n5
284
+ - mb-lg-n5
285
+ - mb-xl-n5
286
+ 6:
287
+ - mb-6
288
+ - mb-sm-6
289
+ - mb-md-6
290
+ - mb-lg-6
291
+ - mb-xl-6
292
+ -6:
293
+ - mb-n6
294
+ - mb-sm-n6
295
+ - mb-md-n6
296
+ - mb-lg-n6
297
+ - mb-xl-n6
298
+ 7:
299
+ - mb-7
300
+ - mb-sm-7
301
+ - mb-md-7
302
+ - mb-lg-7
303
+ - mb-xl-7
304
+ -7:
305
+ - mb-n7
306
+ - mb-sm-n7
307
+ - mb-md-n7
308
+ - mb-lg-n7
309
+ - mb-xl-n7
310
+ 8:
311
+ - mb-8
312
+ - mb-sm-8
313
+ - mb-md-8
314
+ - mb-lg-8
315
+ - mb-xl-8
316
+ -8:
317
+ - mb-n8
318
+ - mb-sm-n8
319
+ - mb-md-n8
320
+ - mb-lg-n8
321
+ - mb-xl-n8
322
+ 9:
323
+ - mb-9
324
+ - mb-sm-9
325
+ - mb-md-9
326
+ - mb-lg-9
327
+ - mb-xl-9
328
+ -9:
329
+ - mb-n9
330
+ - mb-sm-n9
331
+ - mb-md-n9
332
+ - mb-lg-n9
333
+ - mb-xl-n9
334
+ 10:
335
+ - mb-10
336
+ - mb-sm-10
337
+ - mb-md-10
338
+ - mb-lg-10
339
+ - mb-xl-10
340
+ -10:
341
+ - mb-n10
342
+ - mb-sm-n10
343
+ - mb-md-n10
344
+ - mb-lg-n10
345
+ - mb-xl-n10
346
+ 11:
347
+ - mb-11
348
+ - mb-sm-11
349
+ - mb-md-11
350
+ - mb-lg-11
351
+ - mb-xl-11
352
+ -11:
353
+ - mb-n11
354
+ - mb-sm-n11
355
+ - mb-md-n11
356
+ - mb-lg-n11
357
+ - mb-xl-n11
358
+ 12:
359
+ - mb-12
360
+ - mb-sm-12
361
+ - mb-md-12
362
+ - mb-lg-12
363
+ - mb-xl-12
364
+ -12:
365
+ - mb-n12
366
+ - mb-sm-n12
367
+ - mb-md-n12
368
+ - mb-lg-n12
369
+ - mb-xl-n12
370
+ :mr:
371
+ 0:
372
+ - mr-0
373
+ - mr-sm-0
374
+ - mr-md-0
375
+ - mr-lg-0
376
+ - mr-xl-0
377
+ 1:
378
+ - mr-1
379
+ - mr-sm-1
380
+ - mr-md-1
381
+ - mr-lg-1
382
+ - mr-xl-1
383
+ -1:
384
+ - mr-n1
385
+ - mr-sm-n1
386
+ - mr-md-n1
387
+ - mr-lg-n1
388
+ - mr-xl-n1
389
+ 2:
390
+ - mr-2
391
+ - mr-sm-2
392
+ - mr-md-2
393
+ - mr-lg-2
394
+ - mr-xl-2
395
+ -2:
396
+ - mr-n2
397
+ - mr-sm-n2
398
+ - mr-md-n2
399
+ - mr-lg-n2
400
+ - mr-xl-n2
401
+ 3:
402
+ - mr-3
403
+ - mr-sm-3
404
+ - mr-md-3
405
+ - mr-lg-3
406
+ - mr-xl-3
407
+ -3:
408
+ - mr-n3
409
+ - mr-sm-n3
410
+ - mr-md-n3
411
+ - mr-lg-n3
412
+ - mr-xl-n3
413
+ 4:
414
+ - mr-4
415
+ - mr-sm-4
416
+ - mr-md-4
417
+ - mr-lg-4
418
+ - mr-xl-4
419
+ -4:
420
+ - mr-n4
421
+ - mr-sm-n4
422
+ - mr-md-n4
423
+ - mr-lg-n4
424
+ - mr-xl-n4
425
+ 5:
426
+ - mr-5
427
+ - mr-sm-5
428
+ - mr-md-5
429
+ - mr-lg-5
430
+ - mr-xl-5
431
+ -5:
432
+ - mr-n5
433
+ - mr-sm-n5
434
+ - mr-md-n5
435
+ - mr-lg-n5
436
+ - mr-xl-n5
437
+ 6:
438
+ - mr-6
439
+ - mr-sm-6
440
+ - mr-md-6
441
+ - mr-lg-6
442
+ - mr-xl-6
443
+ -6:
444
+ - mr-n6
445
+ - mr-sm-n6
446
+ - mr-md-n6
447
+ - mr-lg-n6
448
+ - mr-xl-n6
449
+ :ml:
450
+ 0:
451
+ - ml-0
452
+ - ml-sm-0
453
+ - ml-md-0
454
+ - ml-lg-0
455
+ - ml-xl-0
456
+ 1:
457
+ - ml-1
458
+ - ml-sm-1
459
+ - ml-md-1
460
+ - ml-lg-1
461
+ - ml-xl-1
462
+ -1:
463
+ - ml-n1
464
+ - ml-sm-n1
465
+ - ml-md-n1
466
+ - ml-lg-n1
467
+ - ml-xl-n1
468
+ 2:
469
+ - ml-2
470
+ - ml-sm-2
471
+ - ml-md-2
472
+ - ml-lg-2
473
+ - ml-xl-2
474
+ -2:
475
+ - ml-n2
476
+ - ml-sm-n2
477
+ - ml-md-n2
478
+ - ml-lg-n2
479
+ - ml-xl-n2
480
+ 3:
481
+ - ml-3
482
+ - ml-sm-3
483
+ - ml-md-3
484
+ - ml-lg-3
485
+ - ml-xl-3
486
+ -3:
487
+ - ml-n3
488
+ - ml-sm-n3
489
+ - ml-md-n3
490
+ - ml-lg-n3
491
+ - ml-xl-n3
492
+ 4:
493
+ - ml-4
494
+ - ml-sm-4
495
+ - ml-md-4
496
+ - ml-lg-4
497
+ - ml-xl-4
498
+ -4:
499
+ - ml-n4
500
+ - ml-sm-n4
501
+ - ml-md-n4
502
+ - ml-lg-n4
503
+ - ml-xl-n4
504
+ 5:
505
+ - ml-5
506
+ - ml-sm-5
507
+ - ml-md-5
508
+ - ml-lg-5
509
+ - ml-xl-5
510
+ -5:
511
+ - ml-n5
512
+ - ml-sm-n5
513
+ - ml-md-n5
514
+ - ml-lg-n5
515
+ - ml-xl-n5
516
+ 6:
517
+ - ml-6
518
+ - ml-sm-6
519
+ - ml-md-6
520
+ - ml-lg-6
521
+ - ml-xl-6
522
+ -6:
523
+ - ml-n6
524
+ - ml-sm-n6
525
+ - ml-md-n6
526
+ - ml-lg-n6
527
+ - ml-xl-n6
528
+ :mx:
529
+ 0:
530
+ - mx-0
531
+ - mx-sm-0
532
+ - mx-md-0
533
+ - mx-lg-0
534
+ - mx-xl-0
535
+ 1:
536
+ - mx-1
537
+ - mx-sm-1
538
+ - mx-md-1
539
+ - mx-lg-1
540
+ - mx-xl-1
541
+ 2:
542
+ - mx-2
543
+ - mx-sm-2
544
+ - mx-md-2
545
+ - mx-lg-2
546
+ - mx-xl-2
547
+ 3:
548
+ - mx-3
549
+ - mx-sm-3
550
+ - mx-md-3
551
+ - mx-lg-3
552
+ - mx-xl-3
553
+ 4:
554
+ - mx-4
555
+ - mx-sm-4
556
+ - mx-md-4
557
+ - mx-lg-4
558
+ - mx-xl-4
559
+ 5:
560
+ - mx-5
561
+ - mx-sm-5
562
+ - mx-md-5
563
+ - mx-lg-5
564
+ - mx-xl-5
565
+ 6:
566
+ - mx-6
567
+ - mx-sm-6
568
+ - mx-md-6
569
+ - mx-lg-6
570
+ - mx-xl-6
571
+ :auto:
572
+ - mx-auto
573
+ - mx-sm-auto
574
+ - mx-md-auto
575
+ - mx-lg-auto
576
+ - mx-xl-auto
577
+ :my:
578
+ 0:
579
+ - my-0
580
+ - my-sm-0
581
+ - my-md-0
582
+ - my-lg-0
583
+ - my-xl-0
584
+ 1:
585
+ - my-1
586
+ - my-sm-1
587
+ - my-md-1
588
+ - my-lg-1
589
+ - my-xl-1
590
+ 2:
591
+ - my-2
592
+ - my-sm-2
593
+ - my-md-2
594
+ - my-lg-2
595
+ - my-xl-2
596
+ 3:
597
+ - my-3
598
+ - my-sm-3
599
+ - my-md-3
600
+ - my-lg-3
601
+ - my-xl-3
602
+ 4:
603
+ - my-4
604
+ - my-sm-4
605
+ - my-md-4
606
+ - my-lg-4
607
+ - my-xl-4
608
+ 5:
609
+ - my-5
610
+ - my-sm-5
611
+ - my-md-5
612
+ - my-lg-5
613
+ - my-xl-5
614
+ 6:
615
+ - my-6
616
+ - my-sm-6
617
+ - my-md-6
618
+ - my-lg-6
619
+ - my-xl-6
620
+ 7:
621
+ - my-7
622
+ - my-sm-7
623
+ - my-md-7
624
+ - my-lg-7
625
+ - my-xl-7
626
+ 8:
627
+ - my-8
628
+ - my-sm-8
629
+ - my-md-8
630
+ - my-lg-8
631
+ - my-xl-8
632
+ 9:
633
+ - my-9
634
+ - my-sm-9
635
+ - my-md-9
636
+ - my-lg-9
637
+ - my-xl-9
638
+ 10:
639
+ - my-10
640
+ - my-sm-10
641
+ - my-md-10
642
+ - my-lg-10
643
+ - my-xl-10
644
+ 11:
645
+ - my-11
646
+ - my-sm-11
647
+ - my-md-11
648
+ - my-lg-11
649
+ - my-xl-11
650
+ 12:
651
+ - my-12
652
+ - my-sm-12
653
+ - my-md-12
654
+ - my-lg-12
655
+ - my-xl-12
656
+ :p:
657
+ 0:
658
+ - p-0
659
+ - p-sm-0
660
+ - p-md-0
661
+ - p-lg-0
662
+ - p-xl-0
663
+ 1:
664
+ - p-1
665
+ - p-sm-1
666
+ - p-md-1
667
+ - p-lg-1
668
+ - p-xl-1
669
+ 2:
670
+ - p-2
671
+ - p-sm-2
672
+ - p-md-2
673
+ - p-lg-2
674
+ - p-xl-2
675
+ 3:
676
+ - p-3
677
+ - p-sm-3
678
+ - p-md-3
679
+ - p-lg-3
680
+ - p-xl-3
681
+ 4:
682
+ - p-4
683
+ - p-sm-4
684
+ - p-md-4
685
+ - p-lg-4
686
+ - p-xl-4
687
+ 5:
688
+ - p-5
689
+ - p-sm-5
690
+ - p-md-5
691
+ - p-lg-5
692
+ - p-xl-5
693
+ 6:
694
+ - p-6
695
+ - p-sm-6
696
+ - p-md-6
697
+ - p-lg-6
698
+ - p-xl-6
699
+ :responsive:
700
+ - p-responsive
701
+ :pt:
702
+ 0:
703
+ - pt-0
704
+ - pt-sm-0
705
+ - pt-md-0
706
+ - pt-lg-0
707
+ - pt-xl-0
708
+ 1:
709
+ - pt-1
710
+ - pt-sm-1
711
+ - pt-md-1
712
+ - pt-lg-1
713
+ - pt-xl-1
714
+ 2:
715
+ - pt-2
716
+ - pt-sm-2
717
+ - pt-md-2
718
+ - pt-lg-2
719
+ - pt-xl-2
720
+ 3:
721
+ - pt-3
722
+ - pt-sm-3
723
+ - pt-md-3
724
+ - pt-lg-3
725
+ - pt-xl-3
726
+ 4:
727
+ - pt-4
728
+ - pt-sm-4
729
+ - pt-md-4
730
+ - pt-lg-4
731
+ - pt-xl-4
732
+ 5:
733
+ - pt-5
734
+ - pt-sm-5
735
+ - pt-md-5
736
+ - pt-lg-5
737
+ - pt-xl-5
738
+ 6:
739
+ - pt-6
740
+ - pt-sm-6
741
+ - pt-md-6
742
+ - pt-lg-6
743
+ - pt-xl-6
744
+ 7:
745
+ - pt-7
746
+ - pt-sm-7
747
+ - pt-md-7
748
+ - pt-lg-7
749
+ - pt-xl-7
750
+ 8:
751
+ - pt-8
752
+ - pt-sm-8
753
+ - pt-md-8
754
+ - pt-lg-8
755
+ - pt-xl-8
756
+ 9:
757
+ - pt-9
758
+ - pt-sm-9
759
+ - pt-md-9
760
+ - pt-lg-9
761
+ - pt-xl-9
762
+ 10:
763
+ - pt-10
764
+ - pt-sm-10
765
+ - pt-md-10
766
+ - pt-lg-10
767
+ - pt-xl-10
768
+ 11:
769
+ - pt-11
770
+ - pt-sm-11
771
+ - pt-md-11
772
+ - pt-lg-11
773
+ - pt-xl-11
774
+ 12:
775
+ - pt-12
776
+ - pt-sm-12
777
+ - pt-md-12
778
+ - pt-lg-12
779
+ - pt-xl-12
780
+ :pr:
781
+ 0:
782
+ - pr-0
783
+ - pr-sm-0
784
+ - pr-md-0
785
+ - pr-lg-0
786
+ - pr-xl-0
787
+ 1:
788
+ - pr-1
789
+ - pr-sm-1
790
+ - pr-md-1
791
+ - pr-lg-1
792
+ - pr-xl-1
793
+ 2:
794
+ - pr-2
795
+ - pr-sm-2
796
+ - pr-md-2
797
+ - pr-lg-2
798
+ - pr-xl-2
799
+ 3:
800
+ - pr-3
801
+ - pr-sm-3
802
+ - pr-md-3
803
+ - pr-lg-3
804
+ - pr-xl-3
805
+ 4:
806
+ - pr-4
807
+ - pr-sm-4
808
+ - pr-md-4
809
+ - pr-lg-4
810
+ - pr-xl-4
811
+ 5:
812
+ - pr-5
813
+ - pr-sm-5
814
+ - pr-md-5
815
+ - pr-lg-5
816
+ - pr-xl-5
817
+ 6:
818
+ - pr-6
819
+ - pr-sm-6
820
+ - pr-md-6
821
+ - pr-lg-6
822
+ - pr-xl-6
823
+ 7:
824
+ - pr-7
825
+ - pr-sm-7
826
+ - pr-md-7
827
+ - pr-lg-7
828
+ - pr-xl-7
829
+ 8:
830
+ - pr-8
831
+ - pr-sm-8
832
+ - pr-md-8
833
+ - pr-lg-8
834
+ - pr-xl-8
835
+ 9:
836
+ - pr-9
837
+ - pr-sm-9
838
+ - pr-md-9
839
+ - pr-lg-9
840
+ - pr-xl-9
841
+ 10:
842
+ - pr-10
843
+ - pr-sm-10
844
+ - pr-md-10
845
+ - pr-lg-10
846
+ - pr-xl-10
847
+ 11:
848
+ - pr-11
849
+ - pr-sm-11
850
+ - pr-md-11
851
+ - pr-lg-11
852
+ - pr-xl-11
853
+ 12:
854
+ - pr-12
855
+ - pr-sm-12
856
+ - pr-md-12
857
+ - pr-lg-12
858
+ - pr-xl-12
859
+ :pb:
860
+ 0:
861
+ - pb-0
862
+ - pb-sm-0
863
+ - pb-md-0
864
+ - pb-lg-0
865
+ - pb-xl-0
866
+ 1:
867
+ - pb-1
868
+ - pb-sm-1
869
+ - pb-md-1
870
+ - pb-lg-1
871
+ - pb-xl-1
872
+ 2:
873
+ - pb-2
874
+ - pb-sm-2
875
+ - pb-md-2
876
+ - pb-lg-2
877
+ - pb-xl-2
878
+ 3:
879
+ - pb-3
880
+ - pb-sm-3
881
+ - pb-md-3
882
+ - pb-lg-3
883
+ - pb-xl-3
884
+ 4:
885
+ - pb-4
886
+ - pb-sm-4
887
+ - pb-md-4
888
+ - pb-lg-4
889
+ - pb-xl-4
890
+ 5:
891
+ - pb-5
892
+ - pb-sm-5
893
+ - pb-md-5
894
+ - pb-lg-5
895
+ - pb-xl-5
896
+ 6:
897
+ - pb-6
898
+ - pb-sm-6
899
+ - pb-md-6
900
+ - pb-lg-6
901
+ - pb-xl-6
902
+ 7:
903
+ - pb-7
904
+ - pb-sm-7
905
+ - pb-md-7
906
+ - pb-lg-7
907
+ - pb-xl-7
908
+ 8:
909
+ - pb-8
910
+ - pb-sm-8
911
+ - pb-md-8
912
+ - pb-lg-8
913
+ - pb-xl-8
914
+ 9:
915
+ - pb-9
916
+ - pb-sm-9
917
+ - pb-md-9
918
+ - pb-lg-9
919
+ - pb-xl-9
920
+ 10:
921
+ - pb-10
922
+ - pb-sm-10
923
+ - pb-md-10
924
+ - pb-lg-10
925
+ - pb-xl-10
926
+ 11:
927
+ - pb-11
928
+ - pb-sm-11
929
+ - pb-md-11
930
+ - pb-lg-11
931
+ - pb-xl-11
932
+ 12:
933
+ - pb-12
934
+ - pb-sm-12
935
+ - pb-md-12
936
+ - pb-lg-12
937
+ - pb-xl-12
938
+ :pl:
939
+ 0:
940
+ - pl-0
941
+ - pl-sm-0
942
+ - pl-md-0
943
+ - pl-lg-0
944
+ - pl-xl-0
945
+ 1:
946
+ - pl-1
947
+ - pl-sm-1
948
+ - pl-md-1
949
+ - pl-lg-1
950
+ - pl-xl-1
951
+ 2:
952
+ - pl-2
953
+ - pl-sm-2
954
+ - pl-md-2
955
+ - pl-lg-2
956
+ - pl-xl-2
957
+ 3:
958
+ - pl-3
959
+ - pl-sm-3
960
+ - pl-md-3
961
+ - pl-lg-3
962
+ - pl-xl-3
963
+ 4:
964
+ - pl-4
965
+ - pl-sm-4
966
+ - pl-md-4
967
+ - pl-lg-4
968
+ - pl-xl-4
969
+ 5:
970
+ - pl-5
971
+ - pl-sm-5
972
+ - pl-md-5
973
+ - pl-lg-5
974
+ - pl-xl-5
975
+ 6:
976
+ - pl-6
977
+ - pl-sm-6
978
+ - pl-md-6
979
+ - pl-lg-6
980
+ - pl-xl-6
981
+ 7:
982
+ - pl-7
983
+ - pl-sm-7
984
+ - pl-md-7
985
+ - pl-lg-7
986
+ - pl-xl-7
987
+ 8:
988
+ - pl-8
989
+ - pl-sm-8
990
+ - pl-md-8
991
+ - pl-lg-8
992
+ - pl-xl-8
993
+ 9:
994
+ - pl-9
995
+ - pl-sm-9
996
+ - pl-md-9
997
+ - pl-lg-9
998
+ - pl-xl-9
999
+ 10:
1000
+ - pl-10
1001
+ - pl-sm-10
1002
+ - pl-md-10
1003
+ - pl-lg-10
1004
+ - pl-xl-10
1005
+ 11:
1006
+ - pl-11
1007
+ - pl-sm-11
1008
+ - pl-md-11
1009
+ - pl-lg-11
1010
+ - pl-xl-11
1011
+ 12:
1012
+ - pl-12
1013
+ - pl-sm-12
1014
+ - pl-md-12
1015
+ - pl-lg-12
1016
+ - pl-xl-12
1017
+ :px:
1018
+ 0:
1019
+ - px-0
1020
+ - px-sm-0
1021
+ - px-md-0
1022
+ - px-lg-0
1023
+ - px-xl-0
1024
+ 1:
1025
+ - px-1
1026
+ - px-sm-1
1027
+ - px-md-1
1028
+ - px-lg-1
1029
+ - px-xl-1
1030
+ 2:
1031
+ - px-2
1032
+ - px-sm-2
1033
+ - px-md-2
1034
+ - px-lg-2
1035
+ - px-xl-2
1036
+ 3:
1037
+ - px-3
1038
+ - px-sm-3
1039
+ - px-md-3
1040
+ - px-lg-3
1041
+ - px-xl-3
1042
+ 4:
1043
+ - px-4
1044
+ - px-sm-4
1045
+ - px-md-4
1046
+ - px-lg-4
1047
+ - px-xl-4
1048
+ 5:
1049
+ - px-5
1050
+ - px-sm-5
1051
+ - px-md-5
1052
+ - px-lg-5
1053
+ - px-xl-5
1054
+ 6:
1055
+ - px-6
1056
+ - px-sm-6
1057
+ - px-md-6
1058
+ - px-lg-6
1059
+ - px-xl-6
1060
+ :py:
1061
+ 0:
1062
+ - py-0
1063
+ - py-sm-0
1064
+ - py-md-0
1065
+ - py-lg-0
1066
+ - py-xl-0
1067
+ 1:
1068
+ - py-1
1069
+ - py-sm-1
1070
+ - py-md-1
1071
+ - py-lg-1
1072
+ - py-xl-1
1073
+ 2:
1074
+ - py-2
1075
+ - py-sm-2
1076
+ - py-md-2
1077
+ - py-lg-2
1078
+ - py-xl-2
1079
+ 3:
1080
+ - py-3
1081
+ - py-sm-3
1082
+ - py-md-3
1083
+ - py-lg-3
1084
+ - py-xl-3
1085
+ 4:
1086
+ - py-4
1087
+ - py-sm-4
1088
+ - py-md-4
1089
+ - py-lg-4
1090
+ - py-xl-4
1091
+ 5:
1092
+ - py-5
1093
+ - py-sm-5
1094
+ - py-md-5
1095
+ - py-lg-5
1096
+ - py-xl-5
1097
+ 6:
1098
+ - py-6
1099
+ - py-sm-6
1100
+ - py-md-6
1101
+ - py-lg-6
1102
+ - py-xl-6
1103
+ 7:
1104
+ - py-7
1105
+ - py-sm-7
1106
+ - py-md-7
1107
+ - py-lg-7
1108
+ - py-xl-7
1109
+ 8:
1110
+ - py-8
1111
+ - py-sm-8
1112
+ - py-md-8
1113
+ - py-lg-8
1114
+ - py-xl-8
1115
+ 9:
1116
+ - py-9
1117
+ - py-sm-9
1118
+ - py-md-9
1119
+ - py-lg-9
1120
+ - py-xl-9
1121
+ 10:
1122
+ - py-10
1123
+ - py-sm-10
1124
+ - py-md-10
1125
+ - py-lg-10
1126
+ - py-xl-10
1127
+ 11:
1128
+ - py-11
1129
+ - py-sm-11
1130
+ - py-md-11
1131
+ - py-lg-11
1132
+ - py-xl-11
1133
+ 12:
1134
+ - py-12
1135
+ - py-sm-12
1136
+ - py-md-12
1137
+ - py-lg-12
1138
+ - py-xl-12
1139
+ :hide:
1140
+ :sm:
1141
+ - hide-sm
1142
+ :md:
1143
+ - hide-md
1144
+ :lg:
1145
+ - hide-lg
1146
+ :xl:
1147
+ - hide-xl