primer_view_components 0.0.45 → 0.0.46
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 +88 -0
- data/app/components/primer/auto_complete.rb +2 -1
- data/app/components/primer/{auto_complete_component.d.ts → auto_complete/auto_component.d.ts} +0 -0
- data/app/components/primer/{auto_complete_component.js → auto_complete/auto_component.js} +0 -0
- data/app/components/primer/avatar_stack_component.rb +7 -1
- data/app/components/primer/base_component.rb +36 -7
- data/app/components/primer/border_box_component.rb +3 -0
- data/app/components/primer/component.rb +4 -0
- data/app/components/primer/details_component.rb +6 -2
- data/app/components/primer/image_crop.rb +1 -1
- data/app/components/primer/menu_component.rb +7 -3
- data/app/components/primer/navigation/tab_component.rb +4 -4
- data/app/components/primer/popover_component.rb +2 -2
- data/app/components/primer/tab_nav_component.rb +5 -3
- data/app/components/primer/tooltip.rb +1 -1
- data/app/components/primer/underline_nav_component.rb +10 -4
- data/{app/lib → lib}/primer/classify.rb +11 -28
- data/{app/lib → lib}/primer/classify/cache.rb +6 -20
- data/{app/lib → lib}/primer/classify/flex.rb +0 -0
- data/{app/lib → lib}/primer/classify/functional_background_colors.rb +2 -0
- data/{app/lib → lib}/primer/classify/functional_border_colors.rb +2 -0
- data/{app/lib → lib}/primer/classify/functional_colors.rb +0 -0
- data/{app/lib → lib}/primer/classify/functional_text_colors.rb +2 -0
- data/{app/lib → lib}/primer/classify/grid.rb +0 -0
- data/{app/lib → lib}/primer/classify/utilities.rb +0 -0
- data/{app/lib → lib}/primer/classify/utilities.yml +124 -0
- data/lib/primer/view_components.rb +1 -0
- data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +1 -2
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/tasks/docs.rake +2 -2
- data/lib/tasks/utilities.rake +8 -2
- metadata +18 -20
- data/app/components/primer/details_menu_component.d.ts +0 -1
- data/app/components/primer/details_menu_component.js +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a15f3c293e45a99165f8fe3ceb6967626cabfa15e726cdbcb614223c6e39c5
|
4
|
+
data.tar.gz: 6554eeda36440b40d83ee5b5cd395fd6af3cfc9e35c0ac971e14be31dae5d5bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d480348ff38e2a89907c58c352632bf3462f1bb8a2cd365e70a04318e9843bf7bf5ba9f4d945d4a51601b5d6786afb2db323d7dd237101ad200f62a297e0d299
|
7
|
+
data.tar.gz: dc0876004af2d8e32cb06b8b703ea0290f764c4d53333b3d0c9053bd73e2f8d87facb12f76776c54d03ca4a7a73fd2e41e1b41db0600a32a4039f442db0840f1
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,95 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
<!--
|
4
|
+
Authoring changelog entries
|
5
|
+
|
6
|
+
This file holds all the changes made in previous versions of Primer View Components and the ones coming to the next version.
|
7
|
+
To add yours, you need to find in which category to write it under the `main` section. `Main` is the first section on top of the document.
|
8
|
+
There are six categories currently in use, `New`, `Updates`, `Bug fixes`, `Breaking changes`, `Deprecations` and `Misc`.
|
9
|
+
|
10
|
+
- New
|
11
|
+
Category for new components, system behaviours, options and arguments changes
|
12
|
+
|
13
|
+
- Updates
|
14
|
+
Every non-breaking change to the source code go there.
|
15
|
+
|
16
|
+
- Bug Fixes
|
17
|
+
Non-breaking bug fixes to existing code.
|
18
|
+
|
19
|
+
- Breaking Changes
|
20
|
+
The category for changes creating incompatibilities to code written with previous versions.
|
21
|
+
It includes any changes to components name, signature and behaviour. Also, include removing tags options or changing file location.
|
22
|
+
If you are not sure you made breaking changes, ask us in your pull request.
|
23
|
+
|
24
|
+
- Deprecations
|
25
|
+
For changes that explicitly deprecate part of the code base.
|
26
|
+
|
27
|
+
- Misc
|
28
|
+
The category for changes related to documentation, testing and tooling. Also, for pull requests that can't fit in other sections.
|
29
|
+
-->
|
30
|
+
|
3
31
|
## main
|
4
32
|
|
33
|
+
## 0.0.46
|
34
|
+
|
35
|
+
### Updates
|
36
|
+
|
37
|
+
* Default to matching `name` and `id` of `input`.
|
38
|
+
|
39
|
+
*Kate Higa*
|
40
|
+
|
41
|
+
* Restrict usage of padding system arguments on BorderBox, recommending use of `padding` density instead.
|
42
|
+
|
43
|
+
*Joel Hawksley*
|
44
|
+
|
45
|
+
### Breaking changes
|
46
|
+
|
47
|
+
* Restrict `TabNav`and `Tab` tags.
|
48
|
+
|
49
|
+
*Kate Higa*
|
50
|
+
|
51
|
+
* Restrict `AvatarStack` body slot tag and `ImageCrop` spinner tag.
|
52
|
+
|
53
|
+
*Kate Higa*
|
54
|
+
|
55
|
+
* Restrict `Details` body slot tags and `UnderlineNav` body slot tags.
|
56
|
+
|
57
|
+
*Kate Higa*
|
58
|
+
|
59
|
+
* Move Primer::Classify from `app/lib/` to `lib/`. This requires an extra `require "primer/classify"` statement for anywhere Classify is needed.
|
60
|
+
|
61
|
+
*Manuel Puyol, Jon Rohan*
|
62
|
+
|
63
|
+
* Restrict `Menu` heading slot tags to heading tags and require `tag` argument.
|
64
|
+
|
65
|
+
*Kate Higa*
|
66
|
+
|
67
|
+
* Adding animation, vertical_align, word_break, display, visibility, & position arguments to the utilities class. `animation: :grow` is now `animation: :hover_grow` this was a change because we changed the class name in primer.
|
68
|
+
|
69
|
+
*Jon Rohan*
|
70
|
+
|
71
|
+
### Misc
|
72
|
+
|
73
|
+
* Update contributing guidelines with release instructions.
|
74
|
+
|
75
|
+
*Kate Higa*
|
76
|
+
|
77
|
+
* Prevent flexible tag syntax with rubocop rule.
|
78
|
+
|
79
|
+
*Kate Higa*
|
80
|
+
|
81
|
+
* Update linter autocorrection to use `""` instead of `true` for boolean attributes.
|
82
|
+
|
83
|
+
*Manuel Puyol*
|
84
|
+
|
85
|
+
* Update Storybook version.
|
86
|
+
|
87
|
+
*Manuel Puyol*
|
88
|
+
|
89
|
+
* Added a changelog authoring guide to `CHANGELOG.md`.
|
90
|
+
|
91
|
+
*Amélia Chavot*
|
92
|
+
|
5
93
|
## 0.0.45
|
6
94
|
|
7
95
|
### Updates
|
@@ -34,7 +34,8 @@ module Primer
|
|
34
34
|
system_arguments[:aria]&.delete(:label)
|
35
35
|
end
|
36
36
|
|
37
|
-
|
37
|
+
name = system_arguments[:name] || @input_id
|
38
|
+
Input.new(id: @input_id, name: name, **system_arguments)
|
38
39
|
}
|
39
40
|
|
40
41
|
# Optional icon to be rendered before the input. Has the same arguments as <%= link_to_component(Primer::OcticonComponent) %>.
|
data/app/components/primer/{auto_complete_component.d.ts → auto_complete/auto_component.d.ts}
RENAMED
File without changes
|
File without changes
|
@@ -10,6 +10,9 @@ module Primer
|
|
10
10
|
|
11
11
|
DEFAULT_TAG = :div
|
12
12
|
TAG_OPTIONS = [DEFAULT_TAG, :span].freeze
|
13
|
+
|
14
|
+
DEFAULT_BODY_TAG = :div
|
15
|
+
BODY_TAG_OPTIONS = TAG_OPTIONS = [DEFAULT_TAG, :span].freeze
|
13
16
|
# Required list of stacked avatars.
|
14
17
|
#
|
15
18
|
# @param kwargs [Hash] The same arguments as <%= link_to_component(Primer::AvatarComponent) %>.
|
@@ -40,6 +43,8 @@ module Primer
|
|
40
43
|
# @param align [Symbol] <%= one_of(Primer::AvatarStackComponent::ALIGN_OPTIONS) %>
|
41
44
|
# @param tooltipped [Boolean] Whether to add a tooltip to the stack or not.
|
42
45
|
# @param body_arguments [Hash] Parameters to add to the Body. If `tooltipped` is set, has the same arguments as <%= link_to_component(Primer::Tooltip) %>.
|
46
|
+
# The default tag is <%= pretty_value(Primer::AvatarStackComponent::DEFAULT_BODY_TAG) %> but can be changed using `tag:`
|
47
|
+
# to <%= one_of(Primer::AvatarStackComponent::BODY_TAG_OPTIONS, lower: true) %>
|
43
48
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
44
49
|
def initialize(tag: DEFAULT_TAG, align: ALIGN_DEFAULT, tooltipped: false, body_arguments: {}, **system_arguments)
|
45
50
|
@align = fetch_or_fallback(ALIGN_OPTIONS, align, ALIGN_DEFAULT)
|
@@ -47,7 +52,8 @@ module Primer
|
|
47
52
|
@tooltipped = tooltipped
|
48
53
|
@body_arguments = body_arguments
|
49
54
|
|
50
|
-
@body_arguments[:tag]
|
55
|
+
body_tag = @body_arguments[:tag] || DEFAULT_BODY_TAG
|
56
|
+
@body_arguments[:tag] = fetch_or_fallback(BODY_TAG_OPTIONS, body_tag, DEFAULT_BODY_TAG)
|
51
57
|
@body_arguments[:classes] = class_names(
|
52
58
|
"AvatarStack-body",
|
53
59
|
@body_arguments[:classes]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "primer/classify"
|
4
|
+
|
3
5
|
module Primer
|
4
6
|
# All Primer ViewComponents accept a standard set of options called system arguments, mimicking the [styled-system API](https://styled-system.com/table) used by [Primer React](https://primer.style/components/system-props).
|
5
7
|
#
|
@@ -43,7 +45,7 @@ module Primer
|
|
43
45
|
#
|
44
46
|
# | Name | Type | Description |
|
45
47
|
# | :- | :- | :- |
|
46
|
-
# | `animation` | Symbol | <%= one_of(
|
48
|
+
# | `animation` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:animation)) %> |
|
47
49
|
#
|
48
50
|
# ## Border
|
49
51
|
#
|
@@ -61,7 +63,7 @@ module Primer
|
|
61
63
|
#
|
62
64
|
# | Name | Type | Description |
|
63
65
|
# | :- | :- | :- |
|
64
|
-
# | `bg` | String, Symbol | Background color. Accepts either a hex value as a String or <%= one_of(Primer::Classify::
|
66
|
+
# | `bg` | String, Symbol | Background color. Accepts either a hex value as a String or <%= one_of(Primer::Classify::FunctionalBackgroundColors::OPTIONS, lower: true) %> |
|
65
67
|
# | `border_color` | Symbol | Border color. <%= one_of(Primer::Classify::FunctionalBorderColors::OPTIONS) %> |
|
66
68
|
# | `color` | Symbol | Text color. <%= one_of(Primer::Classify::FunctionalTextColors::OPTIONS) %> |
|
67
69
|
#
|
@@ -91,11 +93,11 @@ module Primer
|
|
91
93
|
#
|
92
94
|
# | Name | Type | Description |
|
93
95
|
# | :- | :- | :- |
|
94
|
-
# | `display` | Symbol | <%= one_of(
|
96
|
+
# | `display` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:display)) %> |
|
95
97
|
# | `height` | Symbol | <%= one_of([:fit]) %> |
|
96
98
|
# | `hide` | Symbol | Hide the element at a specific breakpoint. <%= one_of(Primer::Classify::Utilities.mappings(:hide)) %> |
|
97
|
-
# | `
|
98
|
-
# | `vertical_align` | Symbol | <%= one_of(
|
99
|
+
# | `visibility` | Symbol | Visibility. <%= one_of(Primer::Classify::Utilities.mappings(:visibility)) %> |
|
100
|
+
# | `vertical_align` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:vertical_align)) %> |
|
99
101
|
#
|
100
102
|
# ## Position
|
101
103
|
#
|
@@ -104,7 +106,7 @@ module Primer
|
|
104
106
|
# | `bottom` | Boolean | If `false`, sets `bottom: 0`. |
|
105
107
|
# | `float` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:float)) %> |
|
106
108
|
# | `left` | Boolean | If `false`, sets `left: 0`. |
|
107
|
-
# | `position` | Symbol | <%= one_of(
|
109
|
+
# | `position` | Symbol | <%= one_of(Primer::Classify::Utilities.mappings(:position)) %> |
|
108
110
|
# | `right` | Boolean | If `false`, sets `right: 0`. |
|
109
111
|
# | `top` | Boolean | If `false`, sets `top: 0`. |
|
110
112
|
#
|
@@ -138,7 +140,7 @@ module Primer
|
|
138
140
|
# | `text_align` | Symbol | Text alignment. <%= one_of([:left, :right, :center]) %> |
|
139
141
|
# | `text_transform` | Symbol | Text alignment. <%= one_of([:uppercase]) %> |
|
140
142
|
# | `underline` | Boolean | Whether text should be underlined. |
|
141
|
-
# | `word_break` | Symbol | Whether to break words on line breaks.
|
143
|
+
# | `word_break` | Symbol | Whether to break words on line breaks. <%= one_of(Primer::Classify::Utilities.mappings(:word_break)) %> |
|
142
144
|
#
|
143
145
|
# ## Other
|
144
146
|
#
|
@@ -152,6 +154,33 @@ module Primer
|
|
152
154
|
|
153
155
|
raise ArgumentError, "`class` is an invalid argument. Use `classes` instead." if system_arguments.key?(:class) && !Rails.env.production?
|
154
156
|
|
157
|
+
if (denylist = system_arguments[:system_arguments_denylist])
|
158
|
+
if force_system_arguments? && !ENV["PRIMER_WARNINGS_DISABLED"]
|
159
|
+
# Convert denylist from:
|
160
|
+
# { [:p, :pt] => "message" } to:
|
161
|
+
# { p: "message", pt: "message" }
|
162
|
+
unpacked_denylist =
|
163
|
+
denylist.each_with_object({}) do |(keys, value), memo|
|
164
|
+
keys.each { |key| memo[key] = value }
|
165
|
+
end
|
166
|
+
|
167
|
+
violations = unpacked_denylist.keys & @system_arguments.keys
|
168
|
+
|
169
|
+
if violations.any?
|
170
|
+
message = "Found #{violations.count} #{'violation'.pluralize(violations)}:"
|
171
|
+
violations.each do |violation|
|
172
|
+
message += "\n The #{violation} system argument is not allowed here. #{unpacked_denylist[violation]}"
|
173
|
+
end
|
174
|
+
|
175
|
+
raise(ArgumentError, message)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
# Remove :system_arguments_denylist key and any denied keys from system arguments
|
180
|
+
@system_arguments.except!(:system_arguments_denylist)
|
181
|
+
@system_arguments.except!(*denylist.keys.flatten)
|
182
|
+
end
|
183
|
+
|
155
184
|
@result = Primer::Classify.call(**@system_arguments.merge(classes: classes))
|
156
185
|
|
157
186
|
@system_arguments[:"data-view-component"] = true
|
@@ -11,6 +11,7 @@ module Primer
|
|
11
11
|
:condensed => "Box--condensed",
|
12
12
|
:spacious => "Box--spacious"
|
13
13
|
}.freeze
|
14
|
+
PADDING_SUGGESTION = "Perhaps you could consider using :padding options of #{PADDING_MAPPINGS.keys.to_sentence}?"
|
14
15
|
|
15
16
|
# Optional Header.
|
16
17
|
#
|
@@ -111,6 +112,8 @@ module Primer
|
|
111
112
|
PADDING_MAPPINGS[fetch_or_fallback(PADDING_MAPPINGS.keys, padding, DEFAULT_PADDING)],
|
112
113
|
system_arguments[:classes]
|
113
114
|
)
|
115
|
+
|
116
|
+
@system_arguments[:system_arguments_denylist] = { [:p, :pt, :pb, :pr, :pl] => PADDING_SUGGESTION }
|
114
117
|
end
|
115
118
|
|
116
119
|
def render?
|
@@ -15,6 +15,10 @@ module Primer
|
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
|
+
def force_system_arguments?
|
19
|
+
Rails.application.config.primer_view_components.force_system_arguments
|
20
|
+
end
|
21
|
+
|
18
22
|
def deprecated_component_warning(new_class: nil, version: nil)
|
19
23
|
return if Rails.env.production? || silence_deprecations?
|
20
24
|
|
@@ -5,6 +5,8 @@ module Primer
|
|
5
5
|
class DetailsComponent < Primer::Component
|
6
6
|
status :beta
|
7
7
|
|
8
|
+
BODY_TAG_DEFAULT = :div
|
9
|
+
BODY_TAG_OPTIONS = [:ul, :"details-menu", :"details-dialog", BODY_TAG_DEFAULT].freeze
|
8
10
|
NO_OVERLAY = :none
|
9
11
|
OVERLAY_MAPPINGS = {
|
10
12
|
NO_OVERLAY => "",
|
@@ -27,9 +29,11 @@ module Primer
|
|
27
29
|
|
28
30
|
# Use the Body slot as the main content to be shown when triggered by the Summary.
|
29
31
|
#
|
32
|
+
# @param tag [String] (Primer::DetailsComponent::BODY_TAG_DEFAULT) <%= one_of(Primer::DetailsComponent::BODY_TAG_OPTIONS) %>
|
30
33
|
# @param kwargs [Hash] The same arguments as <%= link_to_system_arguments_docs %>.
|
31
|
-
renders_one :body, lambda {
|
32
|
-
system_arguments[:tag]
|
34
|
+
renders_one :body, lambda { |tag: BODY_TAG_DEFAULT, **system_arguments|
|
35
|
+
system_arguments[:tag] = fetch_or_fallback(BODY_TAG_OPTIONS, tag, BODY_TAG_DEFAULT)
|
36
|
+
|
33
37
|
Primer::BaseComponent.new(**system_arguments)
|
34
38
|
}
|
35
39
|
|
@@ -6,7 +6,7 @@ module Primer
|
|
6
6
|
# A loading indicator that is shown while the image is loading.
|
7
7
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
8
8
|
renders_one :loading, lambda { |**system_arguments|
|
9
|
-
system_arguments[:tag]
|
9
|
+
system_arguments[:tag] = :div
|
10
10
|
system_arguments[:"data-loading-slot"] = true
|
11
11
|
|
12
12
|
Primer::BaseComponent.new(**system_arguments)
|
@@ -3,11 +3,15 @@
|
|
3
3
|
module Primer
|
4
4
|
# Use `Menu` to create vertical lists of navigational links.
|
5
5
|
class MenuComponent < Primer::Component
|
6
|
+
HEADING_TAG_OPTIONS = [:h1, :h2, :h3, :h4, :h5, :h6].freeze
|
7
|
+
HEADING_TAG_FALLBACK = :h2
|
8
|
+
|
6
9
|
# Optional menu heading
|
7
10
|
#
|
11
|
+
# @param tag [Symbol] <%= one_of(Primer::MenuComponent::HEADING_TAG_OPTIONS) %>
|
8
12
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
9
|
-
renders_one :heading, lambda {
|
10
|
-
system_arguments[:tag]
|
13
|
+
renders_one :heading, lambda { |tag:, **system_arguments|
|
14
|
+
system_arguments[:tag] = fetch_or_fallback(HEADING_TAG_OPTIONS, tag, HEADING_TAG_FALLBACK)
|
11
15
|
system_arguments[:classes] = class_names(
|
12
16
|
"menu-heading",
|
13
17
|
system_arguments[:classes]
|
@@ -35,7 +39,7 @@ module Primer
|
|
35
39
|
|
36
40
|
# @example Default
|
37
41
|
# <%= render(Primer::MenuComponent.new) do |c| %>
|
38
|
-
# <% c.heading do %>
|
42
|
+
# <% c.heading(tag: :h2) do %>
|
39
43
|
# Heading
|
40
44
|
# <% end %>
|
41
45
|
# <% c.item(selected: true, href: "#url") do %>
|
@@ -18,7 +18,7 @@ module Primer
|
|
18
18
|
#
|
19
19
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
20
20
|
renders_one :panel, lambda { |**system_arguments|
|
21
|
-
system_arguments[:tag]
|
21
|
+
system_arguments[:tag] = :div
|
22
22
|
system_arguments[:role] ||= :tabpanel
|
23
23
|
system_arguments[:hidden] = true unless @selected
|
24
24
|
|
@@ -96,12 +96,12 @@ module Primer
|
|
96
96
|
|
97
97
|
@system_arguments = system_arguments
|
98
98
|
|
99
|
-
if with_panel
|
100
|
-
@system_arguments[:tag]
|
99
|
+
if with_panel || @system_arguments[:tag] == :button
|
100
|
+
@system_arguments[:tag] = :button
|
101
101
|
@system_arguments[:type] = :button
|
102
102
|
@system_arguments[:role] = :tab
|
103
103
|
else
|
104
|
-
@system_arguments[:tag]
|
104
|
+
@system_arguments[:tag] = :a
|
105
105
|
end
|
106
106
|
|
107
107
|
@wrapper_arguments = wrapper_arguments
|
@@ -28,7 +28,7 @@ module Primer
|
|
28
28
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
29
29
|
renders_one :heading, lambda { |**system_arguments|
|
30
30
|
system_arguments[:mb] ||= 2
|
31
|
-
system_arguments[:tag] ||= :h4
|
31
|
+
system_arguments[:tag] ||= :h4 # rubocop:disable Primer/NoTagMemoize
|
32
32
|
|
33
33
|
Primer::HeadingComponent.new(**system_arguments)
|
34
34
|
}
|
@@ -106,7 +106,7 @@ module Primer
|
|
106
106
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
107
107
|
def initialize(**system_arguments)
|
108
108
|
@system_arguments = system_arguments
|
109
|
-
@system_arguments[:tag] ||= :div
|
109
|
+
@system_arguments[:tag] ||= :div # rubocop:disable Primer/NoTagMemoize
|
110
110
|
@system_arguments[:classes] = class_names(
|
111
111
|
system_arguments[:classes],
|
112
112
|
"Popover"
|
@@ -10,7 +10,8 @@ module Primer
|
|
10
10
|
DEFAULT_EXTRA_ALIGN = :left
|
11
11
|
EXTRA_ALIGN_OPTIONS = [DEFAULT_EXTRA_ALIGN, :right].freeze
|
12
12
|
|
13
|
-
# Tabs to be rendered.
|
13
|
+
# Tabs to be rendered. When `with_panel` is set on the parent, a button is rendered for panel navigation. Otherwise,
|
14
|
+
# an anchor tag is rendered for page navigation. For more information, refer to <%= link_to_component(Primer::Navigation::TabComponent) %>.
|
14
15
|
#
|
15
16
|
# @param selected [Boolean] Whether the tab is selected.
|
16
17
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
@@ -119,7 +120,8 @@ module Primer
|
|
119
120
|
# <% end %>
|
120
121
|
#
|
121
122
|
# @param label [String] Used to set the `aria-label` on the top level `<nav>` element.
|
122
|
-
# @param with_panel [Boolean] Whether the TabNav should navigate through pages or panels.
|
123
|
+
# @param with_panel [Boolean] Whether the TabNav should navigate through pages or panels. When true, <%= link_to_component(Primer::TabContainerComponent) %>
|
124
|
+
# is rendered along with JavaScript behavior. Additionally, the `tab` slot will render as a button as opposed to an anchor.
|
123
125
|
# @param body_arguments [Hash] <%= link_to_system_arguments_docs %> for the body wrapper.
|
124
126
|
# @param wrapper_arguments [Hash] <%= link_to_system_arguments_docs %> for the `TabContainer` wrapper. Only applies if `with_panel` is `true`.
|
125
127
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
@@ -130,7 +132,7 @@ module Primer
|
|
130
132
|
@body_arguments = body_arguments
|
131
133
|
@wrapper_arguments = wrapper_arguments
|
132
134
|
|
133
|
-
@system_arguments[:tag]
|
135
|
+
@system_arguments[:tag] = :div
|
134
136
|
@system_arguments[:classes] = class_names(
|
135
137
|
"tabnav",
|
136
138
|
system_arguments[:classes]
|
@@ -70,7 +70,7 @@ module Primer
|
|
70
70
|
**system_arguments
|
71
71
|
)
|
72
72
|
@system_arguments = system_arguments
|
73
|
-
@system_arguments[:tag] ||= :span
|
73
|
+
@system_arguments[:tag] ||= :span # rubocop:disable Primer/NoTagMemoize
|
74
74
|
@system_arguments[:aria] = { label: label }
|
75
75
|
|
76
76
|
@system_arguments[:classes] = class_names(
|
@@ -13,7 +13,11 @@ module Primer
|
|
13
13
|
BODY_TAG_DEFAULT = :div
|
14
14
|
BODY_TAG_OPTIONS = [BODY_TAG_DEFAULT, :ul].freeze
|
15
15
|
|
16
|
-
|
16
|
+
ACTIONS_TAG_DEFAULT = :div
|
17
|
+
ACTIONS_TAG_OPTIONS = [ACTIONS_TAG_DEFAULT, :span].freeze
|
18
|
+
|
19
|
+
# Use the tabs to list navigation items. When `with_panel` is set on the parent, a button is rendered for panel navigation. Otherwise,
|
20
|
+
# an anchor tag is rendered for page navigation. For more information, refer to <%= link_to_component(Primer::Navigation::TabComponent) %>.
|
17
21
|
#
|
18
22
|
# @param selected [Boolean] Whether the tab is selected.
|
19
23
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
@@ -34,9 +38,10 @@ module Primer
|
|
34
38
|
|
35
39
|
# Use actions for a call to action.
|
36
40
|
#
|
41
|
+
# @param tag [String] (Primer::UnderlineNavComponent::ACTIONS_TAG_DEFAULT) <%= one_of(Primer::UnderlineNavComponent::ACTIONS_TAG_OPTIONS) %>
|
37
42
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
38
|
-
renders_one :actions, lambda {
|
39
|
-
system_arguments[:tag]
|
43
|
+
renders_one :actions, lambda { |tag: ACTIONS_TAG_DEFAULT, **system_arguments|
|
44
|
+
system_arguments[:tag] = fetch_or_fallback(ACTIONS_TAG_OPTIONS, tag, ACTIONS_TAG_DEFAULT)
|
40
45
|
system_arguments[:classes] = class_names("UnderlineNav-actions", system_arguments[:classes])
|
41
46
|
|
42
47
|
Primer::BaseComponent.new(**system_arguments)
|
@@ -131,7 +136,8 @@ module Primer
|
|
131
136
|
# <% end %>
|
132
137
|
#
|
133
138
|
# @param label [String] The `aria-label` on top level `<nav>` element.
|
134
|
-
# @param with_panel [Boolean] Whether the
|
139
|
+
# @param with_panel [Boolean] Whether the `UnderlineNav` should navigate through pages or panels. When true, <%= link_to_component(Primer::TabContainerComponent) %> is
|
140
|
+
# rendered along with JavaScript behavior.
|
135
141
|
# @param align [Symbol] <%= one_of(Primer::UnderlineNavComponent::ALIGN_OPTIONS) %> - Defaults to <%= Primer::UnderlineNavComponent::ALIGN_DEFAULT %>
|
136
142
|
# @param body_arguments [Hash] <%= link_to_system_arguments_docs %> for the body wrapper.
|
137
143
|
# @param wrapper_arguments [Hash] <%= link_to_system_arguments_docs %> for the `TabContainer` wrapper. Only applies if `with_panel` is `true`.
|
@@ -1,5 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "classify/cache"
|
4
|
+
require_relative "classify/flex"
|
5
|
+
require_relative "classify/functional_background_colors"
|
6
|
+
require_relative "classify/functional_border_colors"
|
7
|
+
require_relative "classify/functional_text_colors"
|
8
|
+
require_relative "classify/grid"
|
9
|
+
require_relative "classify/utilities"
|
10
|
+
|
3
11
|
module Primer
|
4
12
|
# :nodoc:
|
5
13
|
class Classify
|
@@ -13,28 +21,22 @@ module Primer
|
|
13
21
|
).freeze
|
14
22
|
# rubocop:enable Security/YAMLLoad
|
15
23
|
|
16
|
-
DISPLAY_KEY = :display
|
17
|
-
|
18
24
|
# Keys where we can simply translate { key: value } into ".key-value"
|
19
|
-
CONCAT_KEYS = %i[
|
25
|
+
CONCAT_KEYS = %i[text box_shadow].freeze
|
20
26
|
|
21
27
|
INVALID_CLASS_NAME_PREFIXES =
|
22
|
-
(["bg-", "color-", "text-", "
|
28
|
+
(["bg-", "color-", "text-", "box-shadow-"] + CONCAT_KEYS.map { |k| "#{k}-" }).freeze
|
23
29
|
|
24
30
|
COLOR_KEY = :color
|
25
31
|
BG_KEY = :bg
|
26
|
-
VERTICAL_ALIGN_KEY = :vertical_align
|
27
|
-
WORD_BREAK_KEY = :word_break
|
28
32
|
TEXT_KEYS = %i[font_family font_style font_weight text_align text_transform].freeze
|
29
33
|
WIDTH_KEY = :width
|
30
34
|
HEIGHT_KEY = :height
|
31
35
|
BOX_SHADOW_KEY = :box_shadow
|
32
|
-
VISIBILITY_KEY = :visibility
|
33
|
-
ANIMATION_KEY = :animation
|
34
36
|
CONTAINER_KEY = :container
|
35
37
|
|
36
38
|
BREAKPOINTS = ["", "-sm", "-md", "-lg", "-xl"].freeze
|
37
|
-
RESPONSIVE_KEYS = ([
|
39
|
+
RESPONSIVE_KEYS = ([Primer::Classify::Grid::COL_KEY] + Primer::Classify::Flex::RESPONSIVE_KEYS).freeze
|
38
40
|
|
39
41
|
BOOLEAN_MAPPINGS = {
|
40
42
|
underline: {
|
@@ -102,14 +104,9 @@ module Primer
|
|
102
104
|
BORDER_RADIUS_KEY,
|
103
105
|
COLOR_KEY,
|
104
106
|
BG_KEY,
|
105
|
-
DISPLAY_KEY,
|
106
|
-
VERTICAL_ALIGN_KEY,
|
107
|
-
WORD_BREAK_KEY,
|
108
107
|
WIDTH_KEY,
|
109
108
|
HEIGHT_KEY,
|
110
109
|
BOX_SHADOW_KEY,
|
111
|
-
VISIBILITY_KEY,
|
112
|
-
ANIMATION_KEY,
|
113
110
|
CONTAINER_KEY
|
114
111
|
]
|
115
112
|
).freeze
|
@@ -197,12 +194,6 @@ module Primer
|
|
197
194
|
end
|
198
195
|
elsif key == COLOR_KEY
|
199
196
|
memo[:classes] << Primer::Classify::FunctionalTextColors.color(val)
|
200
|
-
elsif key == DISPLAY_KEY
|
201
|
-
memo[:classes] << "d#{breakpoint}-#{val.to_s.dasherize}"
|
202
|
-
elsif key == VERTICAL_ALIGN_KEY
|
203
|
-
memo[:classes] << "v-align-#{val.to_s.dasherize}"
|
204
|
-
elsif key == WORD_BREAK_KEY
|
205
|
-
memo[:classes] << "wb-#{val.to_s.dasherize}"
|
206
197
|
elsif key == BORDER_KEY
|
207
198
|
border_value = if val == true
|
208
199
|
"border"
|
@@ -243,14 +234,6 @@ module Primer
|
|
243
234
|
else
|
244
235
|
"color-shadow-#{val.to_s.dasherize}"
|
245
236
|
end
|
246
|
-
elsif key == VISIBILITY_KEY
|
247
|
-
memo[:classes] << "v-#{val.to_s.dasherize}"
|
248
|
-
elsif key == ANIMATION_KEY
|
249
|
-
memo[:classes] << if val == :grow
|
250
|
-
"hover-grow"
|
251
|
-
else
|
252
|
-
"anim-#{val.to_s.dasherize}"
|
253
|
-
end
|
254
237
|
else
|
255
238
|
memo[:classes] << "#{key.to_s.dasherize}#{breakpoint}-#{val.to_s.dasherize}"
|
256
239
|
end
|
@@ -1,5 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "flex"
|
4
|
+
require_relative "functional_background_colors"
|
5
|
+
require_relative "functional_border_colors"
|
6
|
+
require_relative "functional_text_colors"
|
7
|
+
require_relative "grid"
|
8
|
+
|
3
9
|
module Primer
|
4
10
|
class Classify
|
5
11
|
# :nodoc:
|
@@ -49,11 +55,6 @@ module Primer
|
|
49
55
|
values: Primer::Classify::Grid::COL_VALUES
|
50
56
|
)
|
51
57
|
|
52
|
-
preload(
|
53
|
-
keys: Primer::Classify::DISPLAY_KEY,
|
54
|
-
values: [:flex, :block, :inline_block, :inline_flex, :none, :table, :table_cell]
|
55
|
-
)
|
56
|
-
|
57
58
|
preload(
|
58
59
|
keys: [Primer::Classify::COLOR_KEY],
|
59
60
|
values: Primer::Classify::FunctionalTextColors::OPTIONS
|
@@ -64,16 +65,6 @@ module Primer
|
|
64
65
|
values: Primer::Classify::FunctionalBackgroundColors::OPTIONS
|
65
66
|
)
|
66
67
|
|
67
|
-
preload(
|
68
|
-
keys: Primer::Classify::VERTICAL_ALIGN_KEY,
|
69
|
-
values: [:baseline, :top, :middle, :bottom, :text_top, :text_bottom]
|
70
|
-
)
|
71
|
-
|
72
|
-
preload(
|
73
|
-
keys: Primer::Classify::WORD_BREAK_KEY,
|
74
|
-
values: [:break_all]
|
75
|
-
)
|
76
|
-
|
77
68
|
preload(
|
78
69
|
keys: :text_align,
|
79
70
|
values: [:left, :center, :right]
|
@@ -113,11 +104,6 @@ module Primer
|
|
113
104
|
keys: Primer::Classify::BOX_SHADOW_KEY,
|
114
105
|
values: [true, :small, :medium, :large, :extra_large, :none]
|
115
106
|
)
|
116
|
-
|
117
|
-
preload(
|
118
|
-
keys: Primer::Classify::VISIBILITY_KEY,
|
119
|
-
values: [:hidden, :visible]
|
120
|
-
)
|
121
107
|
end
|
122
108
|
|
123
109
|
def preload(keys:, values:)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,4 +1,71 @@
|
|
1
1
|
---
|
2
|
+
:animation:
|
3
|
+
:fade_in:
|
4
|
+
- anim-fade-in
|
5
|
+
:fade_out:
|
6
|
+
- anim-fade-out
|
7
|
+
:fade_up:
|
8
|
+
- anim-fade-up
|
9
|
+
:fade_down:
|
10
|
+
- anim-fade-down
|
11
|
+
:grow_x:
|
12
|
+
- anim-grow-x
|
13
|
+
:shrink_x:
|
14
|
+
- anim-shrink-x
|
15
|
+
:scale_in:
|
16
|
+
- anim-scale-in
|
17
|
+
:pulse:
|
18
|
+
- anim-pulse
|
19
|
+
:pulse_in:
|
20
|
+
- anim-pulse-in
|
21
|
+
:hover_grow:
|
22
|
+
- anim-hover-grow
|
23
|
+
:rotate:
|
24
|
+
- anim-rotate
|
25
|
+
:position:
|
26
|
+
:static:
|
27
|
+
- position-static
|
28
|
+
- position-sm-static
|
29
|
+
- position-md-static
|
30
|
+
- position-lg-static
|
31
|
+
- position-xl-static
|
32
|
+
:relative:
|
33
|
+
- position-relative
|
34
|
+
- position-sm-relative
|
35
|
+
- position-md-relative
|
36
|
+
- position-lg-relative
|
37
|
+
- position-xl-relative
|
38
|
+
:absolute:
|
39
|
+
- position-absolute
|
40
|
+
- position-sm-absolute
|
41
|
+
- position-md-absolute
|
42
|
+
- position-lg-absolute
|
43
|
+
- position-xl-absolute
|
44
|
+
:fixed:
|
45
|
+
- position-fixed
|
46
|
+
- position-sm-fixed
|
47
|
+
- position-md-fixed
|
48
|
+
- position-lg-fixed
|
49
|
+
- position-xl-fixed
|
50
|
+
:sticky:
|
51
|
+
- position-sticky
|
52
|
+
- position-sm-sticky
|
53
|
+
- position-md-sticky
|
54
|
+
- position-lg-sticky
|
55
|
+
- position-xl-sticky
|
56
|
+
:vertical_align:
|
57
|
+
:middle:
|
58
|
+
- v-align-middle
|
59
|
+
:top:
|
60
|
+
- v-align-top
|
61
|
+
:bottom:
|
62
|
+
- v-align-bottom
|
63
|
+
:text_top:
|
64
|
+
- v-align-text-top
|
65
|
+
:text_bottom:
|
66
|
+
- v-align-text-bottom
|
67
|
+
:baseline:
|
68
|
+
- v-align-baseline
|
2
69
|
:float:
|
3
70
|
:left:
|
4
71
|
- float-left
|
@@ -1136,6 +1203,63 @@
|
|
1136
1203
|
- py-md-12
|
1137
1204
|
- py-lg-12
|
1138
1205
|
- py-xl-12
|
1206
|
+
:word_break:
|
1207
|
+
:break_all:
|
1208
|
+
- wb-break-all
|
1209
|
+
:display:
|
1210
|
+
:block:
|
1211
|
+
- d-block
|
1212
|
+
- d-sm-block
|
1213
|
+
- d-md-block
|
1214
|
+
- d-lg-block
|
1215
|
+
- d-xl-block
|
1216
|
+
:flex:
|
1217
|
+
- d-flex
|
1218
|
+
- d-sm-flex
|
1219
|
+
- d-md-flex
|
1220
|
+
- d-lg-flex
|
1221
|
+
- d-xl-flex
|
1222
|
+
:inline:
|
1223
|
+
- d-inline
|
1224
|
+
- d-sm-inline
|
1225
|
+
- d-md-inline
|
1226
|
+
- d-lg-inline
|
1227
|
+
- d-xl-inline
|
1228
|
+
:inline_block:
|
1229
|
+
- d-inline-block
|
1230
|
+
- d-sm-inline-block
|
1231
|
+
- d-md-inline-block
|
1232
|
+
- d-lg-inline-block
|
1233
|
+
- d-xl-inline-block
|
1234
|
+
:inline_flex:
|
1235
|
+
- d-inline-flex
|
1236
|
+
- d-sm-inline-flex
|
1237
|
+
- d-md-inline-flex
|
1238
|
+
- d-lg-inline-flex
|
1239
|
+
- d-xl-inline-flex
|
1240
|
+
:none:
|
1241
|
+
- d-none
|
1242
|
+
- d-sm-none
|
1243
|
+
- d-md-none
|
1244
|
+
- d-lg-none
|
1245
|
+
- d-xl-none
|
1246
|
+
:table:
|
1247
|
+
- d-table
|
1248
|
+
- d-sm-table
|
1249
|
+
- d-md-table
|
1250
|
+
- d-lg-table
|
1251
|
+
- d-xl-table
|
1252
|
+
:table_cell:
|
1253
|
+
- d-table-cell
|
1254
|
+
- d-sm-table-cell
|
1255
|
+
- d-md-table-cell
|
1256
|
+
- d-lg-table-cell
|
1257
|
+
- d-xl-table-cell
|
1258
|
+
:visibility:
|
1259
|
+
:hidden:
|
1260
|
+
- v-hidden
|
1261
|
+
:visible:
|
1262
|
+
- v-visible
|
1139
1263
|
:hide:
|
1140
1264
|
:sm:
|
1141
1265
|
- hide-sm
|
@@ -32,8 +32,7 @@ module ERBLint
|
|
32
32
|
elsif attr_name.start_with?(*STRING_PARAMETERS)
|
33
33
|
raise ConversionError, "Cannot convert attribute \"#{attr_name}\" because its value contains an erb block" if attribute.value_node&.children&.any? { |n| n.try(:type) == :erb }
|
34
34
|
|
35
|
-
#
|
36
|
-
{ "\"#{attr_name}\"" => attribute.value_node ? attribute.value.to_json : true }
|
35
|
+
{ "\"#{attr_name}\"" => attribute.value.to_json }
|
37
36
|
else
|
38
37
|
raise ConversionError, "Cannot convert attribute \"#{attr_name}\""
|
39
38
|
end
|
data/lib/tasks/docs.rake
CHANGED
@@ -176,10 +176,10 @@ namespace :docs do
|
|
176
176
|
"name" => tag.name,
|
177
177
|
"type" => tag.types.join(", "),
|
178
178
|
"default" => default_value,
|
179
|
-
"description" => view_context.render(inline: tag.text)
|
179
|
+
"description" => view_context.render(inline: tag.text.squish)
|
180
180
|
}
|
181
181
|
|
182
|
-
f.puts("| `#{tag.name}` | `#{tag.types.join(', ')}` | #{default_value} | #{view_context.render(inline: tag.text)} |")
|
182
|
+
f.puts("| `#{tag.name}` | `#{tag.types.join(', ')}` | #{default_value} | #{view_context.render(inline: tag.text.squish)} |")
|
183
183
|
end
|
184
184
|
|
185
185
|
component_args = {
|
data/lib/tasks/utilities.rake
CHANGED
@@ -8,14 +8,20 @@ namespace :utilities do
|
|
8
8
|
|
9
9
|
# Keys that are looked for to be included in the utilities.yml file
|
10
10
|
SUPPORTED_KEYS = %i[
|
11
|
-
|
11
|
+
anim
|
12
|
+
d
|
12
13
|
float
|
14
|
+
hide
|
13
15
|
m mt mr mb ml mx my
|
14
16
|
p pt pr pb pl px py
|
17
|
+
position
|
18
|
+
wb
|
19
|
+
v
|
15
20
|
].freeze
|
16
21
|
|
17
22
|
# Replacements for some classnames that end up being a different argument key
|
18
23
|
REPLACEMENT_KEYS = {
|
24
|
+
"^anim" => "animation",
|
19
25
|
"^v-align" => "vertical_align",
|
20
26
|
"^d" => "display",
|
21
27
|
"^wb" => "word_break",
|
@@ -92,7 +98,7 @@ namespace :utilities do
|
|
92
98
|
x.transform_values { |y| y.reverse.drop_while(&:nil?).reverse }
|
93
99
|
end
|
94
100
|
|
95
|
-
File.open("
|
101
|
+
File.open("lib/primer/classify/utilities.yml", "w") do |f|
|
96
102
|
f.puts YAML.dump(output)
|
97
103
|
end
|
98
104
|
end
|
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.46
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -338,7 +338,7 @@ dependencies:
|
|
338
338
|
- - "~>"
|
339
339
|
- !ruby/object:Gem::Version
|
340
340
|
version: 0.9.25
|
341
|
-
description:
|
341
|
+
description:
|
342
342
|
email:
|
343
343
|
- opensource+primer_view_components@github.com
|
344
344
|
executables: []
|
@@ -356,9 +356,9 @@ files:
|
|
356
356
|
- app/components/primer/auto_complete/auto_complete.html.erb
|
357
357
|
- app/components/primer/auto_complete/auto_complete.js
|
358
358
|
- app/components/primer/auto_complete/auto_complete.ts
|
359
|
+
- app/components/primer/auto_complete/auto_component.d.ts
|
360
|
+
- app/components/primer/auto_complete/auto_component.js
|
359
361
|
- app/components/primer/auto_complete/item.rb
|
360
|
-
- app/components/primer/auto_complete_component.d.ts
|
361
|
-
- app/components/primer/auto_complete_component.js
|
362
362
|
- app/components/primer/avatar_component.rb
|
363
363
|
- app/components/primer/avatar_stack_component.html.erb
|
364
364
|
- app/components/primer/avatar_stack_component.rb
|
@@ -386,8 +386,6 @@ files:
|
|
386
386
|
- app/components/primer/counter_component.rb
|
387
387
|
- app/components/primer/details_component.html.erb
|
388
388
|
- app/components/primer/details_component.rb
|
389
|
-
- app/components/primer/details_menu_component.d.ts
|
390
|
-
- app/components/primer/details_menu_component.js
|
391
389
|
- app/components/primer/dropdown.d.ts
|
392
390
|
- app/components/primer/dropdown.html.erb
|
393
391
|
- app/components/primer/dropdown.js
|
@@ -459,16 +457,6 @@ files:
|
|
459
457
|
- app/components/primer/underline_nav_component.html.erb
|
460
458
|
- app/components/primer/underline_nav_component.rb
|
461
459
|
- app/lib/primer/class_name_helper.rb
|
462
|
-
- app/lib/primer/classify.rb
|
463
|
-
- app/lib/primer/classify/cache.rb
|
464
|
-
- app/lib/primer/classify/flex.rb
|
465
|
-
- app/lib/primer/classify/functional_background_colors.rb
|
466
|
-
- app/lib/primer/classify/functional_border_colors.rb
|
467
|
-
- app/lib/primer/classify/functional_colors.rb
|
468
|
-
- app/lib/primer/classify/functional_text_colors.rb
|
469
|
-
- app/lib/primer/classify/grid.rb
|
470
|
-
- app/lib/primer/classify/utilities.rb
|
471
|
-
- app/lib/primer/classify/utilities.yml
|
472
460
|
- app/lib/primer/fetch_or_fallback_helper.rb
|
473
461
|
- app/lib/primer/join_style_arguments_helper.rb
|
474
462
|
- app/lib/primer/octicon/cache.rb
|
@@ -476,6 +464,16 @@ files:
|
|
476
464
|
- app/lib/primer/tabbed_component_helper.rb
|
477
465
|
- app/lib/primer/test_selector_helper.rb
|
478
466
|
- app/lib/primer/view_helper.rb
|
467
|
+
- lib/primer/classify.rb
|
468
|
+
- lib/primer/classify/cache.rb
|
469
|
+
- lib/primer/classify/flex.rb
|
470
|
+
- lib/primer/classify/functional_background_colors.rb
|
471
|
+
- lib/primer/classify/functional_border_colors.rb
|
472
|
+
- lib/primer/classify/functional_colors.rb
|
473
|
+
- lib/primer/classify/functional_text_colors.rb
|
474
|
+
- lib/primer/classify/grid.rb
|
475
|
+
- lib/primer/classify/utilities.rb
|
476
|
+
- lib/primer/classify/utilities.yml
|
479
477
|
- lib/primer/view_components.rb
|
480
478
|
- lib/primer/view_components/engine.rb
|
481
479
|
- lib/primer/view_components/linters.rb
|
@@ -499,7 +497,7 @@ licenses:
|
|
499
497
|
- MIT
|
500
498
|
metadata:
|
501
499
|
allowed_push_host: https://rubygems.org
|
502
|
-
post_install_message:
|
500
|
+
post_install_message:
|
503
501
|
rdoc_options: []
|
504
502
|
require_paths:
|
505
503
|
- lib
|
@@ -515,7 +513,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
515
513
|
version: '0'
|
516
514
|
requirements: []
|
517
515
|
rubygems_version: 3.1.2
|
518
|
-
signing_key:
|
516
|
+
signing_key:
|
519
517
|
specification_version: 4
|
520
518
|
summary: ViewComponents for the Primer Design System
|
521
519
|
test_files: []
|
@@ -1 +0,0 @@
|
|
1
|
-
import '@github/details-menu-element';
|
@@ -1 +0,0 @@
|
|
1
|
-
import '@github/details-menu-element';
|