primer_view_components 0.0.17 → 0.0.18
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/app/components/primer/base_component.rb +5 -2
- data/app/components/primer/blankslate_component.rb +3 -2
- data/app/components/primer/border_box_component.rb +4 -0
- data/app/components/primer/box_component.rb +10 -0
- data/app/components/primer/breadcrumb_component.rb +2 -1
- data/app/components/primer/button_component.rb +1 -1
- data/app/components/primer/button_group_component.html.erb +5 -0
- data/app/components/primer/button_group_component.rb +34 -0
- data/app/components/primer/button_marketing_component.rb +73 -0
- data/app/components/primer/component.rb +13 -0
- data/app/components/primer/counter_component.rb +11 -8
- data/app/components/primer/details_component.rb +10 -6
- data/app/components/primer/dropdown_menu_component.rb +31 -3
- data/app/components/primer/flash_component.rb +1 -0
- data/app/components/primer/flex_component.rb +10 -9
- data/app/components/primer/flex_item_component.rb +2 -1
- data/app/components/primer/heading_component.rb +7 -0
- data/app/components/primer/label_component.rb +4 -4
- data/app/components/primer/octicon_component.rb +4 -3
- data/app/components/primer/popover_component.rb +2 -0
- data/app/components/primer/progress_bar_component.rb +2 -2
- data/app/components/primer/spinner_component.rb +1 -2
- data/app/components/primer/state_component.rb +3 -3
- data/app/components/primer/subhead_component.rb +3 -0
- data/app/components/primer/timeline_item_component.rb +3 -0
- data/app/components/primer/tooltip_component.rb +88 -0
- data/app/components/primer/truncate_component.rb +41 -0
- data/app/components/primer/underline_nav_component.rb +26 -1
- data/app/components/primer/view_components.rb +4 -0
- data/lib/primer/class_name_helper.rb +1 -0
- data/lib/primer/classify.rb +127 -108
- data/lib/primer/fetch_or_fallback_helper.rb +1 -0
- data/lib/primer/join_style_arguments_helper.rb +1 -0
- data/lib/primer/view_components.rb +1 -0
- data/lib/primer/view_components/engine.rb +1 -0
- data/lib/primer/view_components/version.rb +1 -1
- metadata +41 -22
data/lib/primer/classify.rb
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Primer
|
4
|
+
# :nodoc:
|
4
5
|
class Classify
|
5
|
-
MARGIN_DIRECTION_KEYS = [
|
6
|
-
SPACING_KEYS = ([
|
6
|
+
MARGIN_DIRECTION_KEYS = %i[mt ml mb mr].freeze
|
7
|
+
SPACING_KEYS = (%i[m my mx p py px pt pl pb pr] + MARGIN_DIRECTION_KEYS).freeze
|
7
8
|
DIRECTION_KEY = :direction
|
8
9
|
JUSTIFY_CONTENT_KEY = :justify_content
|
9
10
|
ALIGN_ITEMS_KEY = :align_items
|
10
11
|
DISPLAY_KEY = :display
|
11
12
|
RESPONSIVE_KEYS = ([DISPLAY_KEY, DIRECTION_KEY, JUSTIFY_CONTENT_KEY, ALIGN_ITEMS_KEY, :col, :float] + SPACING_KEYS).freeze
|
12
|
-
BREAKPOINTS = ["", "-sm", "-md", "-lg", "-xl"]
|
13
|
+
BREAKPOINTS = ["", "-sm", "-md", "-lg", "-xl"].freeze
|
13
14
|
|
14
15
|
# Keys where we can simply translate { key: value } into ".key-value"
|
15
|
-
CONCAT_KEYS = SPACING_KEYS + [
|
16
|
+
CONCAT_KEYS = SPACING_KEYS + %i[hide position v float col text box_shadow].freeze
|
16
17
|
|
17
18
|
INVALID_CLASS_NAME_PREFIXES =
|
18
19
|
(["bg-", "color-", "text-", "d-", "v-align-", "wb-", "text-", "box-shadow-"] + CONCAT_KEYS.map { |k| "#{k}-" }).freeze
|
@@ -21,7 +22,7 @@ module Primer
|
|
21
22
|
BG_KEY = :bg
|
22
23
|
VERTICAL_ALIGN_KEY = :vertical_align
|
23
24
|
WORD_BREAK_KEY = :word_break
|
24
|
-
TEXT_KEYS = [
|
25
|
+
TEXT_KEYS = %i[text_align font_weight].freeze
|
25
26
|
FLEX_KEY = :flex
|
26
27
|
FLEX_GROW_KEY = :flex_grow
|
27
28
|
FLEX_SHRINK_KEY = :flex_shrink
|
@@ -30,19 +31,20 @@ module Primer
|
|
30
31
|
HEIGHT_KEY = :height
|
31
32
|
BOX_SHADOW_KEY = :box_shadow
|
32
33
|
VISIBILITY_KEY = :visibility
|
34
|
+
ANIMATION_KEY = :animation
|
33
35
|
|
34
36
|
BOOLEAN_MAPPINGS = {
|
35
37
|
underline: {
|
36
38
|
mappings: [
|
37
39
|
{
|
38
40
|
value: true,
|
39
|
-
css_class: "text-underline"
|
41
|
+
css_class: "text-underline"
|
40
42
|
},
|
41
43
|
{
|
42
44
|
value: false,
|
43
|
-
css_class: "no-underline"
|
44
|
-
}
|
45
|
-
]
|
45
|
+
css_class: "no-underline"
|
46
|
+
}
|
47
|
+
]
|
46
48
|
},
|
47
49
|
top: {
|
48
50
|
mappings: [
|
@@ -77,8 +79,9 @@ module Primer
|
|
77
79
|
]
|
78
80
|
}
|
79
81
|
}.freeze
|
80
|
-
BORDER_KEYS = [
|
81
|
-
BORDER_MARGIN_KEYS = [
|
82
|
+
BORDER_KEYS = %i[border border_color].freeze
|
83
|
+
BORDER_MARGIN_KEYS = %i[border_top border_bottom border_left border_right].freeze
|
84
|
+
BORDER_RADIUS_KEY = :border_radius
|
82
85
|
TYPOGRAPHY_KEYS = [:font_size].freeze
|
83
86
|
VALID_KEYS = (
|
84
87
|
CONCAT_KEYS +
|
@@ -88,6 +91,7 @@ module Primer
|
|
88
91
|
TYPOGRAPHY_KEYS +
|
89
92
|
TEXT_KEYS +
|
90
93
|
[
|
94
|
+
BORDER_RADIUS_KEY,
|
91
95
|
COLOR_KEY,
|
92
96
|
BG_KEY,
|
93
97
|
DISPLAY_KEY,
|
@@ -103,7 +107,8 @@ module Primer
|
|
103
107
|
WIDTH_KEY,
|
104
108
|
HEIGHT_KEY,
|
105
109
|
BOX_SHADOW_KEY,
|
106
|
-
VISIBILITY_KEY
|
110
|
+
VISIBILITY_KEY,
|
111
|
+
ANIMATION_KEY
|
107
112
|
]
|
108
113
|
).freeze
|
109
114
|
|
@@ -111,30 +116,31 @@ module Primer
|
|
111
116
|
def call(classes: "", style: nil, **args)
|
112
117
|
extracted_results = extract_hash(args)
|
113
118
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
119
|
+
extracted_results[:class] = [
|
120
|
+
validated_class_names(classes),
|
121
|
+
extracted_results.delete(:classes)
|
122
|
+
].compact.join(" ").presence
|
123
|
+
|
124
|
+
extracted_results[:style] = [
|
125
|
+
extracted_results.delete(:styles),
|
126
|
+
style
|
127
|
+
].compact.join("").presence
|
128
|
+
|
129
|
+
extracted_results
|
118
130
|
end
|
119
131
|
|
120
132
|
private
|
121
133
|
|
122
134
|
def validated_class_names(classes)
|
123
|
-
return
|
135
|
+
return if classes.blank?
|
124
136
|
|
125
137
|
if ENV["RAILS_ENV"] == "development"
|
126
138
|
invalid_class_names =
|
127
139
|
classes.split(" ").each_with_object([]) do |class_name, memo|
|
128
|
-
if INVALID_CLASS_NAME_PREFIXES.any? { |prefix| class_name.start_with?(prefix) }
|
129
|
-
memo << class_name
|
130
|
-
end
|
140
|
+
memo << class_name if INVALID_CLASS_NAME_PREFIXES.any? { |prefix| class_name.start_with?(prefix) }
|
131
141
|
end
|
132
142
|
|
133
|
-
if invalid_class_names.any?
|
134
|
-
raise ArgumentError.new(
|
135
|
-
"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.",
|
136
|
-
)
|
137
|
-
end
|
143
|
+
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?
|
138
144
|
end
|
139
145
|
|
140
146
|
classes
|
@@ -152,98 +158,111 @@ module Primer
|
|
152
158
|
# Example usage:
|
153
159
|
# extract_hash({ mt: 4, py: 2 }) => "mt-4 py-2"
|
154
160
|
def extract_hash(styles_hash)
|
155
|
-
|
161
|
+
memo = { classes: [], styles: +"" }
|
162
|
+
styles_hash.each do |key, value|
|
156
163
|
next unless VALID_KEYS.include?(key)
|
157
164
|
|
158
|
-
if value.is_a?(Array)
|
159
|
-
raise ArgumentError, "#{key} does not support responsive values"
|
165
|
+
if value.is_a?(Array)
|
166
|
+
raise ArgumentError, "#{key} does not support responsive values" unless RESPONSIVE_KEYS.include?(key)
|
167
|
+
|
168
|
+
value.each_with_index do |val, index|
|
169
|
+
extract_value(memo, key, val, BREAKPOINTS[index])
|
170
|
+
end
|
171
|
+
else
|
172
|
+
extract_value(memo, key, value, BREAKPOINTS[0])
|
160
173
|
end
|
174
|
+
end
|
161
175
|
|
162
|
-
|
163
|
-
next if val.nil?
|
176
|
+
memo[:classes] = memo[:classes].join(" ")
|
164
177
|
|
165
|
-
|
166
|
-
|
167
|
-
raise ArgumentError, "value of #{key} must be between -6 and 6" if (val < -6 || val > 6)
|
168
|
-
elsif !((key == :mx || key == :my) && val == :auto)
|
169
|
-
raise ArgumentError, "value of #{key} must be between 0 and 6" if (val < 0 || val > 6)
|
170
|
-
end
|
171
|
-
end
|
178
|
+
memo
|
179
|
+
end
|
172
180
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
if val.to_s.starts_with?("#")
|
182
|
-
memo[:styles] << "background-color: #{val};"
|
183
|
-
else
|
184
|
-
memo[:classes] << "bg-#{dasherized_val}"
|
185
|
-
end
|
186
|
-
elsif key == COLOR_KEY
|
187
|
-
if val.to_s.chars.last !~ /\D/
|
188
|
-
memo[:classes] << "color-#{dasherized_val}"
|
189
|
-
else
|
190
|
-
memo[:classes] << "text-#{dasherized_val}"
|
191
|
-
end
|
192
|
-
elsif key == DISPLAY_KEY
|
193
|
-
memo[:classes] << "d#{breakpoint}-#{dasherized_val}"
|
194
|
-
elsif key == VERTICAL_ALIGN_KEY
|
195
|
-
memo[:classes] << "v-align-#{dasherized_val}"
|
196
|
-
elsif key == WORD_BREAK_KEY
|
197
|
-
memo[:classes] << "wb-#{dasherized_val}"
|
198
|
-
elsif BORDER_KEYS.include?(key)
|
199
|
-
memo[:classes] << "border-#{dasherized_val}"
|
200
|
-
elsif BORDER_MARGIN_KEYS.include?(key)
|
201
|
-
memo[:classes] << "#{key.to_s.dasherize}-#{val}"
|
202
|
-
elsif key == DIRECTION_KEY
|
203
|
-
memo[:classes] << "flex#{breakpoint}-#{dasherized_val}"
|
204
|
-
elsif key == JUSTIFY_CONTENT_KEY
|
205
|
-
formatted_value = val.to_s.gsub(/(flex\_|space\_)/, "")
|
206
|
-
memo[:classes] << "flex#{breakpoint}-justify-#{formatted_value}"
|
207
|
-
elsif key == ALIGN_ITEMS_KEY
|
208
|
-
memo[:classes] << "flex#{breakpoint}-items-#{val.to_s.gsub("flex_", "")}"
|
209
|
-
elsif key == FLEX_KEY
|
210
|
-
memo[:classes] << "flex-#{val}"
|
211
|
-
elsif key == FLEX_GROW_KEY
|
212
|
-
memo[:classes] << "flex-grow-#{val}"
|
213
|
-
elsif key == FLEX_SHRINK_KEY
|
214
|
-
memo[:classes] << "flex-shrink-#{val}"
|
215
|
-
elsif key == ALIGN_SELF_KEY
|
216
|
-
memo[:classes] << "flex-self-#{val}"
|
217
|
-
elsif key == WIDTH_KEY || key == HEIGHT_KEY
|
218
|
-
if val == :fit || val == :fill
|
219
|
-
memo[:classes] << "#{key}-#{val}"
|
220
|
-
else
|
221
|
-
memo[key] = val
|
222
|
-
end
|
223
|
-
elsif TEXT_KEYS.include?(key)
|
224
|
-
memo[:classes] << "text-#{dasherized_val}"
|
225
|
-
elsif TYPOGRAPHY_KEYS.include?(key)
|
226
|
-
memo[:classes] << "f#{dasherized_val}"
|
227
|
-
elsif MARGIN_DIRECTION_KEYS.include?(key) && val < 0
|
228
|
-
memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-n#{val.abs}"
|
229
|
-
elsif key == BOX_SHADOW_KEY
|
230
|
-
if val == true
|
231
|
-
memo[:classes] << "box-shadow"
|
232
|
-
else
|
233
|
-
memo[:classes] << "box-shadow-#{dasherized_val}"
|
234
|
-
end
|
235
|
-
elsif key == VISIBILITY_KEY
|
236
|
-
memo[:classes] << "v-#{dasherized_val}"
|
237
|
-
else
|
238
|
-
memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-#{dasherized_val}"
|
239
|
-
end
|
181
|
+
def extract_value(memo, key, val, breakpoint)
|
182
|
+
return if val.nil?
|
183
|
+
|
184
|
+
if SPACING_KEYS.include?(key)
|
185
|
+
if MARGIN_DIRECTION_KEYS.include?(key)
|
186
|
+
raise ArgumentError, "value of #{key} must be between -6 and 6" if val < -6 || val > 6
|
187
|
+
elsif !((key == :mx || key == :my) && val == :auto)
|
188
|
+
raise ArgumentError, "value of #{key} must be between 0 and 6" if val.negative? || val > 6
|
240
189
|
end
|
241
190
|
end
|
242
191
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
192
|
+
if BOOLEAN_MAPPINGS.key?(key)
|
193
|
+
BOOLEAN_MAPPINGS[key][:mappings].map { |m| m[:css_class] if m[:value] == val }.compact.each do |css_class|
|
194
|
+
memo[:classes] << css_class
|
195
|
+
end
|
196
|
+
elsif key == BG_KEY
|
197
|
+
if val.to_s.starts_with?("#")
|
198
|
+
memo[:styles] << "background-color: #{val};"
|
199
|
+
else
|
200
|
+
memo[:classes] << "bg-#{val.to_s.dasherize}"
|
201
|
+
end
|
202
|
+
elsif key == COLOR_KEY
|
203
|
+
char_code = val[-1].ord
|
204
|
+
# Does this string end in a character that is NOT a number?
|
205
|
+
memo[:classes] << if char_code >= 48 && char_code <= 57 # 48 is the charcode for 0; 57 is the charcode for 9
|
206
|
+
"color-#{val.to_s.dasherize}"
|
207
|
+
else
|
208
|
+
"text-#{val.to_s.dasherize}"
|
209
|
+
end
|
210
|
+
elsif key == DISPLAY_KEY
|
211
|
+
memo[:classes] << "d#{breakpoint}-#{val.to_s.dasherize}"
|
212
|
+
elsif key == VERTICAL_ALIGN_KEY
|
213
|
+
memo[:classes] << "v-align-#{val.to_s.dasherize}"
|
214
|
+
elsif key == WORD_BREAK_KEY
|
215
|
+
memo[:classes] << "wb-#{val.to_s.dasherize}"
|
216
|
+
elsif BORDER_KEYS.include?(key)
|
217
|
+
memo[:classes] << "border-#{val.to_s.dasherize}"
|
218
|
+
elsif BORDER_MARGIN_KEYS.include?(key)
|
219
|
+
memo[:classes] << "#{key.to_s.dasherize}-#{val}"
|
220
|
+
elsif key == BORDER_RADIUS_KEY
|
221
|
+
memo[:classes] << "rounded-#{val}"
|
222
|
+
elsif key == DIRECTION_KEY
|
223
|
+
memo[:classes] << "flex#{breakpoint}-#{val.to_s.dasherize}"
|
224
|
+
elsif key == JUSTIFY_CONTENT_KEY
|
225
|
+
formatted_value = val.to_s.gsub(/(flex\_|space\_)/, "")
|
226
|
+
memo[:classes] << "flex#{breakpoint}-justify-#{formatted_value}"
|
227
|
+
elsif key == ALIGN_ITEMS_KEY
|
228
|
+
memo[:classes] << "flex#{breakpoint}-items-#{val.to_s.gsub('flex_', '')}"
|
229
|
+
elsif key == FLEX_KEY
|
230
|
+
memo[:classes] << "flex-#{val}"
|
231
|
+
elsif key == FLEX_GROW_KEY
|
232
|
+
memo[:classes] << "flex-grow-#{val}"
|
233
|
+
elsif key == FLEX_SHRINK_KEY
|
234
|
+
memo[:classes] << "flex-shrink-#{val}"
|
235
|
+
elsif key == ALIGN_SELF_KEY
|
236
|
+
memo[:classes] << "flex-self-#{val}"
|
237
|
+
elsif key == WIDTH_KEY || key == HEIGHT_KEY
|
238
|
+
if val == :fit || val == :fill
|
239
|
+
memo[:classes] << "#{key}-#{val}"
|
240
|
+
else
|
241
|
+
memo[key] = val
|
242
|
+
end
|
243
|
+
elsif TEXT_KEYS.include?(key)
|
244
|
+
memo[:classes] << "text-#{val.to_s.dasherize}"
|
245
|
+
elsif TYPOGRAPHY_KEYS.include?(key)
|
246
|
+
memo[:classes] << "f#{val.to_s.dasherize}"
|
247
|
+
elsif MARGIN_DIRECTION_KEYS.include?(key) && val.negative?
|
248
|
+
memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-n#{val.abs}"
|
249
|
+
elsif key == BOX_SHADOW_KEY
|
250
|
+
memo[:classes] << if val == true
|
251
|
+
"box-shadow"
|
252
|
+
else
|
253
|
+
"box-shadow-#{val.to_s.dasherize}"
|
254
|
+
end
|
255
|
+
elsif key == VISIBILITY_KEY
|
256
|
+
memo[:classes] << "v-#{val.to_s.dasherize}"
|
257
|
+
elsif key == ANIMATION_KEY
|
258
|
+
memo[:classes] << if val == :grow
|
259
|
+
"hover-grow"
|
260
|
+
else
|
261
|
+
"anim-#{val.to_s.dasherize}"
|
262
|
+
end
|
263
|
+
else
|
264
|
+
memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-#{val.to_s.dasherize}"
|
265
|
+
end
|
247
266
|
end
|
248
267
|
end
|
249
268
|
end
|
metadata
CHANGED
@@ -1,75 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: primer_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: octicons_helper
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 9.0.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 12.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 9.0.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 12.0.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: rails
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
39
|
+
version: 5.0.0
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '7.0'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: 5.0.0
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
52
|
+
version: '7.0'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
54
|
+
name: view_component
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
59
|
+
version: 2.0.0
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: '3.0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 2.0.0
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
72
|
+
version: '3.0'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: listen
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,28 +118,42 @@ dependencies:
|
|
118
118
|
requirements:
|
119
119
|
- - '='
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: '0.
|
121
|
+
version: '0.82'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
126
|
- - '='
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: '0.
|
128
|
+
version: '0.82'
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: rubocop-github
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
133
|
- - "~>"
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version: 0.
|
135
|
+
version: 0.16.0
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.16.0
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rubocop-performance
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '1.7'
|
136
150
|
type: :development
|
137
151
|
prerelease: false
|
138
152
|
version_requirements: !ruby/object:Gem::Requirement
|
139
153
|
requirements:
|
140
154
|
- - "~>"
|
141
155
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
156
|
+
version: '1.7'
|
143
157
|
- !ruby/object:Gem::Dependency
|
144
158
|
name: simplecov
|
145
159
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,6 +216,9 @@ files:
|
|
202
216
|
- app/components/primer/breadcrumb_component.html.erb
|
203
217
|
- app/components/primer/breadcrumb_component.rb
|
204
218
|
- app/components/primer/button_component.rb
|
219
|
+
- app/components/primer/button_group_component.html.erb
|
220
|
+
- app/components/primer/button_group_component.rb
|
221
|
+
- app/components/primer/button_marketing_component.rb
|
205
222
|
- app/components/primer/component.rb
|
206
223
|
- app/components/primer/counter_component.rb
|
207
224
|
- app/components/primer/details_component.html.erb
|
@@ -231,6 +248,8 @@ files:
|
|
231
248
|
- app/components/primer/text_component.rb
|
232
249
|
- app/components/primer/timeline_item_component.html.erb
|
233
250
|
- app/components/primer/timeline_item_component.rb
|
251
|
+
- app/components/primer/tooltip_component.rb
|
252
|
+
- app/components/primer/truncate_component.rb
|
234
253
|
- app/components/primer/underline_nav_component.html.erb
|
235
254
|
- app/components/primer/underline_nav_component.rb
|
236
255
|
- app/components/primer/view_components.rb
|
@@ -261,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
261
280
|
- !ruby/object:Gem::Version
|
262
281
|
version: '0'
|
263
282
|
requirements: []
|
264
|
-
rubygems_version: 3.
|
283
|
+
rubygems_version: 3.0.3
|
265
284
|
signing_key:
|
266
285
|
specification_version: 4
|
267
286
|
summary: ViewComponents for the Primer Design System
|