primer_view_components 0.0.49 → 0.0.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -0
- data/app/components/primer/base_component.rb +2 -2
- data/app/components/primer/clipboard_copy.html.erb +2 -2
- data/app/components/primer/label_component.rb +13 -12
- data/app/lib/primer/octicon/cache.rb +1 -1
- data/lib/primer/classify.rb +3 -7
- data/lib/primer/classify/cache.rb +0 -5
- data/lib/primer/classify/utilities.yml +16 -0
- data/lib/primer/view_components/linters/argument_mappers/base.rb +37 -2
- data/lib/primer/view_components/linters/argument_mappers/button.rb +4 -7
- data/lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb +3 -8
- data/lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb +24 -0
- data/lib/primer/view_components/linters/argument_mappers/label.rb +5 -11
- data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +4 -1
- data/lib/primer/view_components/linters/close_button_component_migration_counter.rb +16 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/tasks/utilities.rake +2 -0
- data/static/arguments.yml +0 -4
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81f226f5fd176e5a1565b2064ba3a85a8af1c11bfd7c3c9503714f3f5cd41dac
|
4
|
+
data.tar.gz: d655dc0cfa7260a09de3f1f662a1317eb2540914407f33cfdbc07b369a6cd5b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07bc38eedefeae46a76d6f7a4b28892a4f01ab0018564c610d8143919c3fed93da3ad91c7970225fdfaac1fd12a294b51e245633f690e87b7392a21d3d3d65f8
|
7
|
+
data.tar.gz: c162cf3fca8accf0a92b9045e9e77bce16d3e646793a3fd479b12efd7e545e0cb9c56cc60884b39965ed7f41baf502d990cee3279170a3b896c845558a3ba714
|
data/CHANGELOG.md
CHANGED
@@ -30,6 +30,44 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
30
30
|
|
31
31
|
## main
|
32
32
|
|
33
|
+
## 0.0.50
|
34
|
+
|
35
|
+
### New
|
36
|
+
|
37
|
+
* Add linter suggestions for `CloseButton` component.
|
38
|
+
|
39
|
+
*Manuel Puyol*
|
40
|
+
|
41
|
+
### Breaking changes
|
42
|
+
|
43
|
+
* Update to `octicons` `v15`, removing open-ended dependency. See [https://github.com/primer/octicons/releases/tag/v15.0.0] for icon name changes in release.
|
44
|
+
|
45
|
+
*Joel Hawksley*
|
46
|
+
|
47
|
+
### Updates
|
48
|
+
|
49
|
+
* Don't require `title` for `Label`.
|
50
|
+
|
51
|
+
*Manuel Puyol*
|
52
|
+
|
53
|
+
* Improve autocorrectable linters to convert known SystemArgument classes.
|
54
|
+
|
55
|
+
*Manuel Puyol*
|
56
|
+
|
57
|
+
* Add support for `width: :full` and `height: :full` to System Arguments.
|
58
|
+
|
59
|
+
*Joel Hawksley*
|
60
|
+
|
61
|
+
### Bug fixes
|
62
|
+
|
63
|
+
* Update linters to not autocorrect attributes with ERB blocks.
|
64
|
+
|
65
|
+
*Manuel Puyol*
|
66
|
+
|
67
|
+
* Fix `:height` and `:width` docs to pull from Utilities
|
68
|
+
|
69
|
+
*Jon Rohan*
|
70
|
+
|
33
71
|
## 0.0.49
|
34
72
|
|
35
73
|
### New
|
@@ -79,7 +79,6 @@ module Primer
|
|
79
79
|
# | `flex_shrink` | Integer | To enable, set to `0`. |
|
80
80
|
# | `flex_wrap` | Symbol | <%= one_of(Primer::Classify::Flex::WRAP_MAPPINGS.keys) %> |
|
81
81
|
# | `justify_content` | Symbol | <%= one_of(Primer::Classify::Flex::JUSTIFY_CONTENT_VALUES) %> |
|
82
|
-
# | `width` | Symbol | <%= one_of([:fit]) %> |
|
83
82
|
#
|
84
83
|
# ## Grid
|
85
84
|
#
|
@@ -94,7 +93,8 @@ module Primer
|
|
94
93
|
# | Name | Type | Description |
|
95
94
|
# | :- | :- | :- |
|
96
95
|
# | `display` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:display)) %> |
|
97
|
-
# | `
|
96
|
+
# | `width` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:width)) %>. Also supports integer values. |
|
97
|
+
# | `height` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:height)) %>. Also supports integer values. |
|
98
98
|
# | `hide` | Symbol | Hide the element at a specific breakpoint. <%= one_of(Primer::Classify::Utilities.mappings(:hide)) %> |
|
99
99
|
# | `visibility` | Symbol | Visibility. <%= one_of(Primer::Classify::Utilities.mappings(:visibility)) %> |
|
100
100
|
# | `vertical_align` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:vertical_align)) %> |
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% if content.present? %>
|
3
3
|
<%= content %>
|
4
4
|
<% else %>
|
5
|
-
<%= render Primer::OcticonComponent.new(
|
6
|
-
<%= render Primer::OcticonComponent.new(
|
5
|
+
<%= render Primer::OcticonComponent.new(:paste) %>
|
6
|
+
<%= render Primer::OcticonComponent.new(:check, color: :icon_success, style: "display: none;") %>
|
7
7
|
<% end %>
|
8
8
|
<% end %>
|
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
module Primer
|
4
4
|
# Use `Label` to add contextual metadata to a design.
|
5
|
+
#
|
6
|
+
# @accessibility
|
7
|
+
# Use `aria-label` if the `Label` or the context around it don't explain the label.
|
5
8
|
class LabelComponent < Primer::Component
|
6
9
|
status :beta
|
7
10
|
|
@@ -29,27 +32,25 @@ module Primer
|
|
29
32
|
VARIANT_OPTIONS = VARIANT_MAPPINGS.keys << nil
|
30
33
|
|
31
34
|
# @example Schemes
|
32
|
-
# <%= render(Primer::LabelComponent.new
|
33
|
-
# <%= render(Primer::LabelComponent.new(
|
34
|
-
# <%= render(Primer::LabelComponent.new(
|
35
|
-
# <%= render(Primer::LabelComponent.new(
|
36
|
-
# <%= render(Primer::LabelComponent.new(
|
37
|
-
# <%= render(Primer::LabelComponent.new(
|
38
|
-
# <%= render(Primer::LabelComponent.new(
|
35
|
+
# <%= render(Primer::LabelComponent.new) { "Default" } %>
|
36
|
+
# <%= render(Primer::LabelComponent.new( scheme: :primary)) { "Primary" } %>
|
37
|
+
# <%= render(Primer::LabelComponent.new( scheme: :secondary)) { "Secondary" } %>
|
38
|
+
# <%= render(Primer::LabelComponent.new( scheme: :info)) { "Info" } %>
|
39
|
+
# <%= render(Primer::LabelComponent.new( scheme: :success)) { "Success" } %>
|
40
|
+
# <%= render(Primer::LabelComponent.new( scheme: :warning)) { "Warning" } %>
|
41
|
+
# <%= render(Primer::LabelComponent.new( scheme: :danger)) { "Danger" } %>
|
39
42
|
#
|
40
43
|
# @example Variants
|
41
|
-
# <%= render(Primer::LabelComponent.new
|
42
|
-
# <%= render(Primer::LabelComponent.new(
|
44
|
+
# <%= render(Primer::LabelComponent.new) { "Default" } %>
|
45
|
+
# <%= render(Primer::LabelComponent.new( variant: :large)) { "Large" } %>
|
43
46
|
#
|
44
47
|
# @param tag [Symbol] <%= one_of(Primer::LabelComponent::TAG_OPTIONS) %>
|
45
|
-
# @param title [String] `title` attribute for the component element.
|
46
48
|
# @param scheme [Symbol] <%= one_of(Primer::LabelComponent::SCHEME_MAPPINGS.keys) %>
|
47
49
|
# @param variant [Symbol] <%= one_of(Primer::LabelComponent::VARIANT_OPTIONS) %>
|
48
50
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
49
|
-
def initialize(tag: DEFAULT_TAG,
|
51
|
+
def initialize(tag: DEFAULT_TAG, scheme: nil, variant: nil, **system_arguments)
|
50
52
|
@system_arguments = system_arguments
|
51
53
|
@system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, DEFAULT_TAG)
|
52
|
-
@system_arguments[:title] = title
|
53
54
|
@system_arguments[:classes] = class_names(
|
54
55
|
"Label",
|
55
56
|
system_arguments[:classes],
|
@@ -6,7 +6,7 @@ module Primer
|
|
6
6
|
class Cache
|
7
7
|
LOOKUP = {} # rubocop:disable Style/MutableConstant
|
8
8
|
# Preload the top 20 used icons.
|
9
|
-
PRELOADED_ICONS = [:alert, :check, :"chevron-down", :
|
9
|
+
PRELOADED_ICONS = [:alert, :check, :"chevron-down", :paste, :clock, :"dot-fill", :info, :"kebab-horizontal", :link, :lock, :mail, :pencil, :plus, :question, :repo, :search, :"shield-lock", :star, :trash, :x].freeze
|
10
10
|
|
11
11
|
class << self
|
12
12
|
def get_key(symbol:, size:, width: nil, height: nil)
|
data/lib/primer/classify.rb
CHANGED
@@ -170,7 +170,9 @@ module Primer
|
|
170
170
|
def extract_value(memo, key, val, breakpoint)
|
171
171
|
return if val.nil? || val == ""
|
172
172
|
|
173
|
-
if
|
173
|
+
if (key == WIDTH_KEY || key == HEIGHT_KEY) && !val.is_a?(Symbol)
|
174
|
+
memo[key] = val
|
175
|
+
elsif Primer::Classify::Utilities.supported_key?(key)
|
174
176
|
memo[:classes] << Primer::Classify::Utilities.classname(key, val, breakpoint)
|
175
177
|
elsif BOOLEAN_MAPPINGS.key?(key)
|
176
178
|
BOOLEAN_MAPPINGS[key][:mappings].each do |m|
|
@@ -202,12 +204,6 @@ module Primer
|
|
202
204
|
memo[:classes] << Primer::Classify::Flex.classes(key, val, breakpoint)
|
203
205
|
elsif Primer::Classify::Grid::KEYS.include?(key)
|
204
206
|
memo[:classes] << Primer::Classify::Grid.classes(key, val, breakpoint)
|
205
|
-
elsif key == WIDTH_KEY || key == HEIGHT_KEY
|
206
|
-
if val == :fit
|
207
|
-
memo[:classes] << "#{key}-#{val}"
|
208
|
-
else
|
209
|
-
memo[key] = val
|
210
|
-
end
|
211
207
|
elsif TEXT_KEYS.include?(key)
|
212
208
|
memo[:classes] << "text-#{val.to_s.dasherize}"
|
213
209
|
elsif TYPOGRAPHY_KEYS.include?(key)
|
@@ -95,11 +95,6 @@ module Primer
|
|
95
95
|
values: Primer::Classify::Flex::ALIGN_SELF_VALUES
|
96
96
|
)
|
97
97
|
|
98
|
-
preload(
|
99
|
-
keys: [Primer::Classify::WIDTH_KEY, Primer::Classify::HEIGHT_KEY],
|
100
|
-
values: [:fit]
|
101
|
-
)
|
102
|
-
|
103
98
|
preload(
|
104
99
|
keys: Primer::Classify::BOX_SHADOW_KEY,
|
105
100
|
values: [true, :small, :medium, :large, :extra_large, :none]
|
@@ -85,6 +85,22 @@
|
|
85
85
|
- float-md-none
|
86
86
|
- float-lg-none
|
87
87
|
- float-xl-none
|
88
|
+
:width:
|
89
|
+
:fit:
|
90
|
+
- width-fit
|
91
|
+
:full:
|
92
|
+
- width-full
|
93
|
+
:auto:
|
94
|
+
- width-auto
|
95
|
+
- width-sm-auto
|
96
|
+
- width-md-auto
|
97
|
+
- width-lg-auto
|
98
|
+
- width-xl-auto
|
99
|
+
:height:
|
100
|
+
:fit:
|
101
|
+
- height-fit
|
102
|
+
:full:
|
103
|
+
- height-full
|
88
104
|
:m:
|
89
105
|
0:
|
90
106
|
- m-0
|
@@ -1,8 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "primer/view_components/constants"
|
4
|
+
require "primer/classify/utilities"
|
3
5
|
require_relative "conversion_error"
|
4
6
|
require_relative "system_arguments"
|
5
|
-
|
7
|
+
require_relative "helpers/erb_block"
|
6
8
|
|
7
9
|
module ERBLint
|
8
10
|
module Linters
|
@@ -11,6 +13,7 @@ module ERBLint
|
|
11
13
|
# Override attribute_to_args in a child class to customize its mapping behavior.
|
12
14
|
class Base
|
13
15
|
DEFAULT_TAG = nil
|
16
|
+
ATTRIBUTES = [].freeze
|
14
17
|
|
15
18
|
def initialize(tag)
|
16
19
|
@tag = tag
|
@@ -26,13 +29,45 @@ module ERBLint
|
|
26
29
|
args[:tag] = ":#{@tag.name}" unless self.class::DEFAULT_TAG.nil? || @tag.name == self.class::DEFAULT_TAG
|
27
30
|
|
28
31
|
@tag.attributes.each do |attribute|
|
29
|
-
|
32
|
+
attr_name = attribute.name
|
33
|
+
|
34
|
+
if self.class::ATTRIBUTES.include?(attr_name)
|
35
|
+
args.merge!(attribute_to_args(attribute))
|
36
|
+
elsif attr_name == "class"
|
37
|
+
args.merge!(map_classes(attribute))
|
38
|
+
else
|
39
|
+
# Assume the attribute is a system argument.
|
40
|
+
args.merge!(SystemArguments.new(attribute).to_args)
|
41
|
+
end
|
30
42
|
end
|
31
43
|
|
32
44
|
args
|
33
45
|
end
|
34
46
|
|
35
47
|
def attribute_to_args(attribute); end
|
48
|
+
|
49
|
+
def map_classes(classes)
|
50
|
+
system_arguments = system_arguments_to_args(classes.value)
|
51
|
+
args = classes_to_args(system_arguments[:classes])
|
52
|
+
|
53
|
+
args.merge(system_arguments.except(:classes))
|
54
|
+
end
|
55
|
+
|
56
|
+
# Override this with your component's mappings
|
57
|
+
def classes_to_args(classes)
|
58
|
+
raise ConversionError, "Cannot convert classes `#{classes}`" if classes.present?
|
59
|
+
|
60
|
+
{}
|
61
|
+
end
|
62
|
+
|
63
|
+
def system_arguments_to_args(classes)
|
64
|
+
system_arguments = Primer::Classify::Utilities.classes_to_hash(classes)
|
65
|
+
|
66
|
+
# need to transform symbols to strings with leading `:`
|
67
|
+
system_arguments.transform_values do |v|
|
68
|
+
v.is_a?(Symbol) ? ":#{v}" : v
|
69
|
+
end
|
70
|
+
end
|
36
71
|
end
|
37
72
|
end
|
38
73
|
end
|
@@ -30,12 +30,12 @@ module ERBLint
|
|
30
30
|
constant: "DEFAULT_TAG"
|
31
31
|
).freeze
|
32
32
|
|
33
|
+
ATTRIBUTES = %w[disabled type].freeze
|
34
|
+
|
33
35
|
def attribute_to_args(attribute)
|
34
36
|
attr_name = attribute.name
|
35
37
|
|
36
|
-
if attr_name == "
|
37
|
-
classes_to_args(attribute)
|
38
|
-
elsif attr_name == "disabled"
|
38
|
+
if attr_name == "disabled"
|
39
39
|
{ disabled: true }
|
40
40
|
elsif attr_name == "type"
|
41
41
|
# button is the default type, so we don't need to do anything.
|
@@ -44,14 +44,11 @@ module ERBLint
|
|
44
44
|
raise ConversionError, "Button component does not support type \"#{attribute.value}\"" unless TYPE_OPTIONS.include?(attribute.value)
|
45
45
|
|
46
46
|
{ type: ":#{attribute.value}" }
|
47
|
-
else
|
48
|
-
# Assume the attribute is a system argument.
|
49
|
-
SystemArguments.new(attribute).to_args
|
50
47
|
end
|
51
48
|
end
|
52
49
|
|
53
50
|
def classes_to_args(classes)
|
54
|
-
classes.
|
51
|
+
classes.split(" ").each_with_object({}) do |class_name, acc|
|
55
52
|
next if class_name == "btn"
|
56
53
|
|
57
54
|
if SCHEME_MAPPINGS[class_name] && acc[:scheme].nil?
|
@@ -8,16 +8,11 @@ module ERBLint
|
|
8
8
|
# Maps attributes in the clipboard-copy element to arguments for the ClipboardCopy component.
|
9
9
|
class ClipboardCopy < Base
|
10
10
|
DEFAULT_TAG = "clipboard-copy"
|
11
|
+
ATTRIBUTES = %w[value].freeze
|
11
12
|
|
12
13
|
def attribute_to_args(attribute)
|
13
|
-
|
14
|
-
|
15
|
-
if attr_name == "value"
|
16
|
-
{ value: attribute.value.to_json }
|
17
|
-
else
|
18
|
-
# Assume the attribute is a system argument.
|
19
|
-
SystemArguments.new(attribute).to_args
|
20
|
-
end
|
14
|
+
Helpers::ErbBlock.raise_if_erb_block(attribute)
|
15
|
+
{ value: attribute.value.to_json }
|
21
16
|
end
|
22
17
|
end
|
23
18
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../conversion_error"
|
4
|
+
|
5
|
+
module ERBLint
|
6
|
+
module Linters
|
7
|
+
module ArgumentMappers
|
8
|
+
module Helpers
|
9
|
+
# provides helpers to identify and deal with ERB blocks.
|
10
|
+
class ErbBlock
|
11
|
+
class << self
|
12
|
+
def raise_if_erb_block(attribute)
|
13
|
+
raise ERBLint::Linters::ArgumentMappers::ConversionError, "Cannot convert attribute \"#{attribute.name}\" because its value contains an erb block" if any?(attribute)
|
14
|
+
end
|
15
|
+
|
16
|
+
def any?(attribute)
|
17
|
+
attribute.value_node&.children&.any? { |n| n.try(:type) == :erb }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -24,21 +24,15 @@ module ERBLint
|
|
24
24
|
constant: "DEFAULT_TAG"
|
25
25
|
).freeze
|
26
26
|
|
27
|
+
ATTRIBUTES = %w[title].freeze
|
28
|
+
|
27
29
|
def attribute_to_args(attribute)
|
28
|
-
|
29
|
-
|
30
|
-
if attr_name == "class"
|
31
|
-
classes_to_args(attribute)
|
32
|
-
elsif attr_name == "title"
|
33
|
-
{ title: attribute.value.to_json }
|
34
|
-
else
|
35
|
-
# Assume the attribute is a system argument.
|
36
|
-
SystemArguments.new(attribute).to_args
|
37
|
-
end
|
30
|
+
Helpers::ErbBlock.raise_if_erb_block(attribute)
|
31
|
+
{ title: attribute.value.to_json }
|
38
32
|
end
|
39
33
|
|
40
34
|
def classes_to_args(classes)
|
41
|
-
classes.
|
35
|
+
classes.split(" ").each_with_object({}) do |class_name, acc|
|
42
36
|
next if class_name == "Label"
|
43
37
|
|
44
38
|
if SCHEME_MAPPINGS[class_name] && acc[:scheme].nil?
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "conversion_error"
|
4
|
+
require_relative "helpers/erb_block"
|
4
5
|
|
5
6
|
module ERBLint
|
6
7
|
module Linters
|
@@ -28,9 +29,11 @@ module ERBLint
|
|
28
29
|
|
29
30
|
{ test_selector: m[:selector].tr("'", '"') }
|
30
31
|
elsif attr_name == "data-test-selector"
|
32
|
+
Helpers::ErbBlock.raise_if_erb_block(attribute)
|
33
|
+
|
31
34
|
{ test_selector: attribute.value.to_json }
|
32
35
|
elsif attr_name.start_with?(*STRING_PARAMETERS)
|
33
|
-
|
36
|
+
Helpers::ErbBlock.raise_if_erb_block(attribute)
|
34
37
|
|
35
38
|
{ "\"#{attr_name}\"" => attribute.value.to_json }
|
36
39
|
else
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "helpers"
|
4
|
+
|
5
|
+
module ERBLint
|
6
|
+
module Linters
|
7
|
+
# Counts the number of times a HTML clipboard-copy is used instead of the component.
|
8
|
+
class CloseButtonComponentMigrationCounter < Linter
|
9
|
+
include Helpers
|
10
|
+
|
11
|
+
TAGS = %w[button].freeze
|
12
|
+
CLASSES = %w[close-button].freeze
|
13
|
+
MESSAGE = "We are migrating close-button to use [Primer::CloseButton](https://primer.style/view-components/components/closebutton), please try to use that instead of raw HTML."
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/tasks/utilities.rake
CHANGED
data/static/arguments.yml
CHANGED
@@ -562,10 +562,6 @@
|
|
562
562
|
type: Symbol
|
563
563
|
default: "`:span`"
|
564
564
|
description: One of `:a`, `:div`, `:span`, or `:summary`.
|
565
|
-
- name: title
|
566
|
-
type: String
|
567
|
-
default: N/A
|
568
|
-
description: "`title` attribute for the component element."
|
569
565
|
- name: scheme
|
570
566
|
type: Symbol
|
571
567
|
default: "`nil`"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.50
|
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: 2021-
|
11
|
+
date: 2021-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: octicons
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '15'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '15'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: view_component
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -484,11 +484,13 @@ files:
|
|
484
484
|
- lib/primer/view_components/linters/argument_mappers/button.rb
|
485
485
|
- lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb
|
486
486
|
- lib/primer/view_components/linters/argument_mappers/conversion_error.rb
|
487
|
+
- lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb
|
487
488
|
- lib/primer/view_components/linters/argument_mappers/label.rb
|
488
489
|
- lib/primer/view_components/linters/argument_mappers/system_arguments.rb
|
489
490
|
- lib/primer/view_components/linters/autocorrectable.rb
|
490
491
|
- lib/primer/view_components/linters/button_component_migration_counter.rb
|
491
492
|
- lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb
|
493
|
+
- lib/primer/view_components/linters/close_button_component_migration_counter.rb
|
492
494
|
- lib/primer/view_components/linters/flash_component_migration_counter.rb
|
493
495
|
- lib/primer/view_components/linters/helpers.rb
|
494
496
|
- lib/primer/view_components/linters/label_component_migration_counter.rb
|