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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/app/components/primer/base_component.rb +5 -2
  4. data/app/components/primer/blankslate_component.rb +3 -2
  5. data/app/components/primer/border_box_component.rb +4 -0
  6. data/app/components/primer/box_component.rb +10 -0
  7. data/app/components/primer/breadcrumb_component.rb +2 -1
  8. data/app/components/primer/button_component.rb +1 -1
  9. data/app/components/primer/button_group_component.html.erb +5 -0
  10. data/app/components/primer/button_group_component.rb +34 -0
  11. data/app/components/primer/button_marketing_component.rb +73 -0
  12. data/app/components/primer/component.rb +13 -0
  13. data/app/components/primer/counter_component.rb +11 -8
  14. data/app/components/primer/details_component.rb +10 -6
  15. data/app/components/primer/dropdown_menu_component.rb +31 -3
  16. data/app/components/primer/flash_component.rb +1 -0
  17. data/app/components/primer/flex_component.rb +10 -9
  18. data/app/components/primer/flex_item_component.rb +2 -1
  19. data/app/components/primer/heading_component.rb +7 -0
  20. data/app/components/primer/label_component.rb +4 -4
  21. data/app/components/primer/octicon_component.rb +4 -3
  22. data/app/components/primer/popover_component.rb +2 -0
  23. data/app/components/primer/progress_bar_component.rb +2 -2
  24. data/app/components/primer/spinner_component.rb +1 -2
  25. data/app/components/primer/state_component.rb +3 -3
  26. data/app/components/primer/subhead_component.rb +3 -0
  27. data/app/components/primer/timeline_item_component.rb +3 -0
  28. data/app/components/primer/tooltip_component.rb +88 -0
  29. data/app/components/primer/truncate_component.rb +41 -0
  30. data/app/components/primer/underline_nav_component.rb +26 -1
  31. data/app/components/primer/view_components.rb +4 -0
  32. data/lib/primer/class_name_helper.rb +1 -0
  33. data/lib/primer/classify.rb +127 -108
  34. data/lib/primer/fetch_or_fallback_helper.rb +1 -0
  35. data/lib/primer/join_style_arguments_helper.rb +1 -0
  36. data/lib/primer/view_components.rb +1 -0
  37. data/lib/primer/view_components/engine.rb +1 -0
  38. data/lib/primer/view_components/version.rb +1 -1
  39. metadata +41 -22
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # Helps build a list of conditional class names
6
6
  module Primer
7
+ # :nodoc:
7
8
  module ClassNameHelper
8
9
  def class_names(*args)
9
10
  classes = []
@@ -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 = [:mt, :ml, :mb, :mr]
6
- SPACING_KEYS = ([:m, :my, :mx, :p, :py, :px, :pt, :pl, :pb, :pr] + MARGIN_DIRECTION_KEYS).freeze
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 + [:hide, :position, :v, :float, :col, :text, :box_shadow].freeze
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 = [:text_align, :font_weight]
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 = [:border, :border_color].freeze
81
- BORDER_MARGIN_KEYS = [:border_top, :border_bottom, :border_left, :border_right].freeze
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
- class: [validated_class_names(classes), extracted_results[:classes]].compact.join(" ").presence,
116
- style: [extracted_results[:styles], style].compact.join("").presence,
117
- }.merge(extracted_results.except(:classes, :styles))
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 unless classes.present?
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
- out = styles_hash.each_with_object({ classes: [], styles: [] }) do |(key, value), memo|
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) && !RESPONSIVE_KEYS.include?(key)
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
- Array(value).each_with_index do |val, index|
163
- next if val.nil?
176
+ memo[:classes] = memo[:classes].join(" ")
164
177
 
165
- if SPACING_KEYS.include?(key)
166
- if MARGIN_DIRECTION_KEYS.include?(key)
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
- dasherized_val = val.to_s.dasherize
174
- breakpoint = BREAKPOINTS[index]
175
-
176
- if BOOLEAN_MAPPINGS.has_key?(key)
177
- BOOLEAN_MAPPINGS[key][:mappings].map { |m| m[:css_class] if m[:value] == val }.compact.each do |css_class|
178
- memo[:classes] << css_class
179
- end
180
- elsif key == BG_KEY
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
- classes: out[:classes].join(" "),
245
- styles: out[:styles].join(" ")
246
- }.merge(out.except(:classes, :styles))
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
@@ -14,6 +14,7 @@
14
14
  # fetch_or_fallback([1,2,3], 1, 2) => 1
15
15
  # fetch_or_fallback([1,2,3], nil, 2) => 2
16
16
  module Primer
17
+ # :nodoc
17
18
  module FetchOrFallbackHelper
18
19
  mattr_accessor :fallback_raises, default: true
19
20
 
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Primer
4
+ # :nodoc
4
5
  module JoinStyleArgumentsHelper
5
6
  # Join two `style` arguments
6
7
  #
@@ -4,6 +4,7 @@ require "primer/view_components/version"
4
4
  require "primer/view_components/engine"
5
5
 
6
6
  module Primer
7
+ # :nodoc
7
8
  module ViewComponents
8
9
  end
9
10
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Primer
4
4
  module ViewComponents
5
+ # :nodoc
5
6
  class Engine < ::Rails::Engine
6
7
  isolate_namespace Primer::ViewComponents
7
8
  end
@@ -5,7 +5,7 @@ module Primer
5
5
  module VERSION
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 17
8
+ PATCH = 18
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH].join(".")
11
11
  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.17
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: 2020-12-10 00:00:00.000000000 Z
11
+ date: 2021-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: octicons_helper
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 9.0.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
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: 5.0.0
29
+ version: 9.0.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: 12.0.0
33
33
  - !ruby/object:Gem::Dependency
34
- name: view_component
34
+ name: rails
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 2.0.0
39
+ version: 5.0.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '3.0'
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: 2.0.0
49
+ version: 5.0.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '3.0'
52
+ version: '7.0'
53
53
  - !ruby/object:Gem::Dependency
54
- name: octicons_helper
54
+ name: view_component
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 9.0.0
59
+ version: 2.0.0
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: 12.0.0
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: 9.0.0
69
+ version: 2.0.0
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: 12.0.0
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.74'
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.74'
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.13.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: 0.13.0
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.1.2
283
+ rubygems_version: 3.0.3
265
284
  signing_key:
266
285
  specification_version: 4
267
286
  summary: ViewComponents for the Primer Design System