primer_view_components 0.0.73 → 0.0.74
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 +32 -52
- data/app/components/primer/alpha/tool-tip-element.js +12 -12
- data/app/components/primer/alpha/tool-tip-element.ts +13 -12
- data/app/components/primer/beta/auto_complete.rb +15 -1
- data/app/components/primer/clipboard_copy_component.ts +1 -1
- data/lib/primer/view_components/linters/super_in_component_templates.rb +65 -0
- data/lib/primer/view_components/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 99efb2e6dc8f3d4a87a4b2f2ef15f3c03297fc5e055fd9c2f4633990206dd788
|
|
4
|
+
data.tar.gz: 6d3ee3c23ccc62b9185c4723846a14351a6ed2739da99b6063b471e38041342c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6831cfbc1bc45bfc116d08e9062a571333c6fe0a762ba6d69314fef1e3307036c70bcae48d7586b48adb4d25c5ac60a748c2b205f326181f8506d612aa851f8f
|
|
7
|
+
data.tar.gz: a5a530e666be4b7f88bf07227e1f2354e1f14c4f12c8ce29d59f01b9b5c9920bfdeb8887815aa8cad1db22d4aa1d7a6a3d3c13e50a8ce8ac64969eb79915be64
|
data/CHANGELOG.md
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Authoring changelog entries
|
|
3
|
+
## 0.0.74
|
|
5
4
|
|
|
6
|
-
|
|
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`.
|
|
5
|
+
### Patch Changes
|
|
9
6
|
|
|
10
|
-
-
|
|
11
|
-
Category for new components, system behaviours, options and arguments changes
|
|
7
|
+
- [#1150](https://github.com/primer/view_components/pull/1150) [`36702a8e`](https://github.com/primer/view_components/commit/36702a8e621766772fe09d80de74c4debe8950fd) Thanks [@jonrohan](https://github.com/jonrohan)! - Adding changesets workflow to the repository for managing releases.
|
|
12
8
|
|
|
13
|
-
-
|
|
14
|
-
Every non-breaking change to the source code go there.
|
|
9
|
+
* [#1153](https://github.com/primer/view_components/pull/1153) [`8b21a680`](https://github.com/primer/view_components/commit/8b21a6808f5a9b18bd8b436b07b5b8b84b5a7397) Thanks [@camertron](https://github.com/camertron)! - Add a linter for calls to super in templates
|
|
15
10
|
|
|
16
|
-
-
|
|
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
|
-
|
|
31
|
-
## main
|
|
11
|
+
- [#1141](https://github.com/primer/view_components/pull/1141) [`300f79a7`](https://github.com/primer/view_components/commit/300f79a762c71397de90f8d1cada529b9e9d63b6) Thanks [@maxbeizer](https://github.com/maxbeizer)! - AutoComplete component does not apply stacked label class if the label is not visible
|
|
32
12
|
|
|
33
13
|
## 0.0.73
|
|
34
14
|
|
|
@@ -36,7 +16,7 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
36
16
|
|
|
37
17
|
- Add conditional check for shadow root to avoid errors.
|
|
38
18
|
|
|
39
|
-
|
|
19
|
+
_Kate Higa_
|
|
40
20
|
|
|
41
21
|
## 0.0.72
|
|
42
22
|
|
|
@@ -45,25 +25,25 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
45
25
|
- Fix tooltip arrow being off-centered for `s` and `n`.
|
|
46
26
|
- Revert tooltip arrow offset for `sw`, `se`, `nw`, and `ne`.
|
|
47
27
|
|
|
48
|
-
|
|
28
|
+
_Kate Higa_
|
|
49
29
|
|
|
50
30
|
### Misc
|
|
51
31
|
|
|
52
32
|
- Adding [lookbook](https://github.com/allmarkedup/lookbook) dev server to the project.
|
|
53
33
|
|
|
54
|
-
|
|
34
|
+
_Jon Rohan_
|
|
55
35
|
|
|
56
36
|
- Bump @primer/behaviors and remove dead code.
|
|
57
37
|
|
|
58
|
-
|
|
38
|
+
_Kate Higa_
|
|
59
39
|
|
|
60
40
|
- Enable `eslint-plugin-custom-elements` linting rulesets.
|
|
61
41
|
|
|
62
|
-
|
|
42
|
+
_Kate Higa_, _Kristján Oddsson_
|
|
63
43
|
|
|
64
44
|
- Introduce `DeprecatedComponents` rubocop rule.
|
|
65
45
|
|
|
66
|
-
|
|
46
|
+
_Kate Higa_
|
|
67
47
|
|
|
68
48
|
- Fix alphabetization of components in docs.
|
|
69
49
|
|
|
@@ -96,7 +76,7 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
96
76
|
|
|
97
77
|
- Add responsive values for `text_align` system argument
|
|
98
78
|
|
|
99
|
-
|
|
79
|
+
_Lukas Spieß_
|
|
100
80
|
|
|
101
81
|
## 0.0.70
|
|
102
82
|
|
|
@@ -104,25 +84,25 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
104
84
|
|
|
105
85
|
- Add `Tooltip` support to `Button`.
|
|
106
86
|
|
|
107
|
-
|
|
87
|
+
_Hector Garcia_
|
|
108
88
|
|
|
109
89
|
- Add `Tooltip` support to `Link`.
|
|
110
90
|
|
|
111
|
-
|
|
91
|
+
_Hector Garcia_
|
|
112
92
|
|
|
113
93
|
### Updates
|
|
114
94
|
|
|
115
95
|
- Bumps @primer/css to 19.7.1
|
|
116
|
-
|
|
96
|
+
_Kate Higa_
|
|
117
97
|
|
|
118
98
|
- Bumps auto-complete package to 3.1.0
|
|
119
99
|
- Updates AutoComplete API with optional clear button, restricted icon, and other argument restrictions
|
|
120
100
|
|
|
121
|
-
|
|
101
|
+
_Lindsey Wild_, _Kate Higa_, _Owen Niblock_
|
|
122
102
|
|
|
123
103
|
- Check for the `gh` CLI tool in release scripts.
|
|
124
104
|
|
|
125
|
-
|
|
105
|
+
_Cameron Dutro_
|
|
126
106
|
|
|
127
107
|
### Bug Fixes
|
|
128
108
|
|
|
@@ -140,27 +120,27 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
140
120
|
|
|
141
121
|
- Add ability to attach custom CSS classes to items added to `Truncate` components.
|
|
142
122
|
|
|
143
|
-
|
|
123
|
+
_Cameron Dutro_
|
|
144
124
|
|
|
145
125
|
- Add `Primer::Alpha::Tooltip` component
|
|
146
126
|
|
|
147
|
-
|
|
127
|
+
_Kate Higa_, _Kristján Oddsson_
|
|
148
128
|
|
|
149
129
|
### Breaking Changes
|
|
150
130
|
|
|
151
131
|
- Module for [script/update-statuses-project.rb](script/update-statuses-project.rb) changed to `GitHub`
|
|
152
132
|
|
|
153
|
-
|
|
133
|
+
_Josh Soref_
|
|
154
134
|
|
|
155
135
|
### Misc
|
|
156
136
|
|
|
157
137
|
- Spelling fixes
|
|
158
138
|
|
|
159
|
-
|
|
139
|
+
_Josh Soref_
|
|
160
140
|
|
|
161
141
|
- Bump view_component in Gemfile.lock files
|
|
162
142
|
|
|
163
|
-
|
|
143
|
+
_Cameron Dutro_
|
|
164
144
|
|
|
165
145
|
- Remove markdown file mistakenly checked in.
|
|
166
146
|
|
|
@@ -174,7 +154,7 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
174
154
|
|
|
175
155
|
- Fix missing @primer/components dependency.
|
|
176
156
|
|
|
177
|
-
|
|
157
|
+
_Hector Garcia_
|
|
178
158
|
|
|
179
159
|
## 0.0.68
|
|
180
160
|
|
|
@@ -182,34 +162,34 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
182
162
|
|
|
183
163
|
- Add accessible labels to Search AutoComplete when provided with an icon.
|
|
184
164
|
|
|
185
|
-
|
|
165
|
+
_Andri Alexandrou_
|
|
186
166
|
|
|
187
167
|
- Restricts children for AutoComplete API to prevent accessibility violations and misuse
|
|
188
168
|
|
|
189
|
-
|
|
169
|
+
_Lindsey Wild_
|
|
190
170
|
|
|
191
171
|
- Migrate from Heroku to Azure for the Rails storybook server.
|
|
192
172
|
- Build storybook static assets into Docker image.
|
|
193
173
|
|
|
194
|
-
|
|
174
|
+
_Cameron Dutro_
|
|
195
175
|
|
|
196
176
|
- Remove CSS utilities from Blankslate
|
|
197
177
|
|
|
198
|
-
|
|
178
|
+
_Hector Garcia_
|
|
199
179
|
|
|
200
180
|
- Improve last example on the PopoverComponent docs
|
|
201
181
|
|
|
202
|
-
|
|
182
|
+
_Hector Garcia_
|
|
203
183
|
|
|
204
184
|
### Bug Fixes
|
|
205
185
|
|
|
206
186
|
- Fix live reloading during local docs development.
|
|
207
187
|
|
|
208
|
-
|
|
188
|
+
_Cameron Dutro_
|
|
209
189
|
|
|
210
190
|
- Fix sequence of content in Subhead.
|
|
211
191
|
|
|
212
|
-
|
|
192
|
+
_Hector Garcia_
|
|
213
193
|
|
|
214
194
|
### Deprecations
|
|
215
195
|
|
|
@@ -235,7 +215,7 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
235
215
|
|
|
236
216
|
- Updating octicons to `> 16`
|
|
237
217
|
|
|
238
|
-
|
|
218
|
+
_Jon Rohan_
|
|
239
219
|
|
|
240
220
|
## 0.0.66
|
|
241
221
|
|
|
@@ -255,7 +235,7 @@ The category for changes related to documentation, testing and tooling. Also, fo
|
|
|
255
235
|
|
|
256
236
|
- Optimize logic for converting class names into args
|
|
257
237
|
|
|
258
|
-
|
|
238
|
+
_Josh Klina_
|
|
259
239
|
|
|
260
240
|
### Deprecations
|
|
261
241
|
|
|
@@ -56,7 +56,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
56
56
|
white-space: normal;
|
|
57
57
|
width: max-content;
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
:host:before{
|
|
61
61
|
position: absolute;
|
|
62
62
|
z-index: 1000001;
|
|
@@ -65,7 +65,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
65
65
|
border: 6px solid transparent;
|
|
66
66
|
opacity: 0
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
@keyframes tooltip-appear {
|
|
70
70
|
from {
|
|
71
71
|
opacity: 0
|
|
@@ -74,7 +74,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
74
74
|
opacity: 1
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
:host:after{
|
|
79
79
|
position: absolute;
|
|
80
80
|
display: block;
|
|
@@ -83,7 +83,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
83
83
|
height: 12px;
|
|
84
84
|
content: ""
|
|
85
85
|
}
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
:host(.${TOOLTIP_OPEN_CLASS}),
|
|
88
88
|
:host(.${TOOLTIP_OPEN_CLASS}):before {
|
|
89
89
|
animation-name: tooltip-appear;
|
|
@@ -92,7 +92,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
92
92
|
animation-timing-function: ease-in;
|
|
93
93
|
animation-delay: .4s
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
:host(.tooltip-s):before,
|
|
97
97
|
:host(.tooltip-n):before {
|
|
98
98
|
right: 50%;
|
|
@@ -105,38 +105,38 @@ class ToolTipElement extends HTMLElement {
|
|
|
105
105
|
bottom: 100%;
|
|
106
106
|
border-bottom-color: var(--color-neutral-emphasis-plus)
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
|
|
109
109
|
:host(.tooltip-s):after,
|
|
110
110
|
:host(.tooltip-se):after,
|
|
111
111
|
:host(.tooltip-sw):after {
|
|
112
112
|
bottom: 100%
|
|
113
113
|
}
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
:host(.tooltip-n):before,
|
|
116
116
|
:host(.tooltip-ne):before,
|
|
117
117
|
:host(.tooltip-nw):before {
|
|
118
118
|
top: 100%;
|
|
119
119
|
border-top-color: var(--color-neutral-emphasis-plus)
|
|
120
120
|
}
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
:host(.tooltip-n):after,
|
|
123
123
|
:host(.tooltip-ne):after,
|
|
124
124
|
:host(.tooltip-nw):after {
|
|
125
125
|
top: 100%
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
:host(.tooltip-se):before,
|
|
129
129
|
:host(.tooltip-ne):before {
|
|
130
130
|
left: 0;
|
|
131
131
|
margin-left: ${TOOLTIP_ARROW_EDGE_OFFSET}px;
|
|
132
132
|
}
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
:host(.tooltip-sw):before,
|
|
135
135
|
:host(.tooltip-nw):before {
|
|
136
136
|
right: 0;
|
|
137
137
|
margin-right: ${TOOLTIP_ARROW_EDGE_OFFSET}px;
|
|
138
138
|
}
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
:host(.tooltip-w):before {
|
|
141
141
|
top: 50%;
|
|
142
142
|
bottom: 50%;
|
|
@@ -144,7 +144,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
144
144
|
margin-top: -6px;
|
|
145
145
|
border-left-color: var(--color-neutral-emphasis-plus)
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
:host(.tooltip-e):before {
|
|
149
149
|
top: 50%;
|
|
150
150
|
right: 100%;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// eslint-disable-next-line prettier/prettier
|
|
1
2
|
import type {AnchorAlignment, AnchorSide} from '@primer/behaviors'
|
|
2
3
|
import {getAnchoredPosition} from '@primer/behaviors'
|
|
3
4
|
|
|
@@ -42,7 +43,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
42
43
|
white-space: normal;
|
|
43
44
|
width: max-content;
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
+
|
|
46
47
|
:host:before{
|
|
47
48
|
position: absolute;
|
|
48
49
|
z-index: 1000001;
|
|
@@ -51,7 +52,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
51
52
|
border: 6px solid transparent;
|
|
52
53
|
opacity: 0
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
|
|
55
56
|
@keyframes tooltip-appear {
|
|
56
57
|
from {
|
|
57
58
|
opacity: 0
|
|
@@ -60,7 +61,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
60
61
|
opacity: 1
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
+
|
|
64
65
|
:host:after{
|
|
65
66
|
position: absolute;
|
|
66
67
|
display: block;
|
|
@@ -69,7 +70,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
69
70
|
height: 12px;
|
|
70
71
|
content: ""
|
|
71
72
|
}
|
|
72
|
-
|
|
73
|
+
|
|
73
74
|
:host(.${TOOLTIP_OPEN_CLASS}),
|
|
74
75
|
:host(.${TOOLTIP_OPEN_CLASS}):before {
|
|
75
76
|
animation-name: tooltip-appear;
|
|
@@ -78,7 +79,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
78
79
|
animation-timing-function: ease-in;
|
|
79
80
|
animation-delay: .4s
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
|
|
82
83
|
:host(.tooltip-s):before,
|
|
83
84
|
:host(.tooltip-n):before {
|
|
84
85
|
right: 50%;
|
|
@@ -91,38 +92,38 @@ class ToolTipElement extends HTMLElement {
|
|
|
91
92
|
bottom: 100%;
|
|
92
93
|
border-bottom-color: var(--color-neutral-emphasis-plus)
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
+
|
|
95
96
|
:host(.tooltip-s):after,
|
|
96
97
|
:host(.tooltip-se):after,
|
|
97
98
|
:host(.tooltip-sw):after {
|
|
98
99
|
bottom: 100%
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
+
|
|
101
102
|
:host(.tooltip-n):before,
|
|
102
103
|
:host(.tooltip-ne):before,
|
|
103
104
|
:host(.tooltip-nw):before {
|
|
104
105
|
top: 100%;
|
|
105
106
|
border-top-color: var(--color-neutral-emphasis-plus)
|
|
106
107
|
}
|
|
107
|
-
|
|
108
|
+
|
|
108
109
|
:host(.tooltip-n):after,
|
|
109
110
|
:host(.tooltip-ne):after,
|
|
110
111
|
:host(.tooltip-nw):after {
|
|
111
112
|
top: 100%
|
|
112
113
|
}
|
|
113
|
-
|
|
114
|
+
|
|
114
115
|
:host(.tooltip-se):before,
|
|
115
116
|
:host(.tooltip-ne):before {
|
|
116
117
|
left: 0;
|
|
117
118
|
margin-left: ${TOOLTIP_ARROW_EDGE_OFFSET}px;
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
+
|
|
120
121
|
:host(.tooltip-sw):before,
|
|
121
122
|
:host(.tooltip-nw):before {
|
|
122
123
|
right: 0;
|
|
123
124
|
margin-right: ${TOOLTIP_ARROW_EDGE_OFFSET}px;
|
|
124
125
|
}
|
|
125
|
-
|
|
126
|
+
|
|
126
127
|
:host(.tooltip-w):before {
|
|
127
128
|
top: 50%;
|
|
128
129
|
bottom: 50%;
|
|
@@ -130,7 +131,7 @@ class ToolTipElement extends HTMLElement {
|
|
|
130
131
|
margin-top: -6px;
|
|
131
132
|
border-left-color: var(--color-neutral-emphasis-plus)
|
|
132
133
|
}
|
|
133
|
-
|
|
134
|
+
|
|
134
135
|
:host(.tooltip-e):before {
|
|
135
136
|
top: 50%;
|
|
136
137
|
right: 100%;
|
|
@@ -131,7 +131,7 @@ module Primer
|
|
|
131
131
|
@with_icon = with_icon
|
|
132
132
|
@is_clearable = is_clearable
|
|
133
133
|
|
|
134
|
-
@label_classes =
|
|
134
|
+
@label_classes = label_classes(is_label_visible: is_label_visible, is_label_inline: is_label_inline)
|
|
135
135
|
@system_arguments = deny_tag_argument(**system_arguments)
|
|
136
136
|
@system_arguments[:tag] = "auto-complete"
|
|
137
137
|
@system_arguments[:src] = src
|
|
@@ -143,6 +143,20 @@ module Primer
|
|
|
143
143
|
results(classes: "") unless results
|
|
144
144
|
input(classes: "") unless input
|
|
145
145
|
end
|
|
146
|
+
|
|
147
|
+
private
|
|
148
|
+
|
|
149
|
+
# Private: determines the label classes based on component configration.
|
|
150
|
+
#
|
|
151
|
+
# If the label is not visible, return an empty string.
|
|
152
|
+
#
|
|
153
|
+
# @param args [Hash] The component configuration.
|
|
154
|
+
# @return [String] The label classes.
|
|
155
|
+
def label_classes(**args)
|
|
156
|
+
return "" if args[:is_label_visible] == false
|
|
157
|
+
|
|
158
|
+
args[:is_label_inline] ? "autocomplete-label-inline" : "autocomplete-label-stacked"
|
|
159
|
+
end
|
|
146
160
|
end
|
|
147
161
|
end
|
|
148
162
|
end
|
|
@@ -32,7 +32,7 @@ function showCheck(button: HTMLElement) {
|
|
|
32
32
|
|
|
33
33
|
const clipboardCopyElementTimers = new WeakMap<HTMLElement, number>()
|
|
34
34
|
|
|
35
|
-
document.addEventListener('clipboard-copy', function
|
|
35
|
+
document.addEventListener('clipboard-copy', function({target}) {
|
|
36
36
|
if (!(target instanceof HTMLElement)) return
|
|
37
37
|
if (!target.hasAttribute('data-view-component')) return
|
|
38
38
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "helpers/rubocop_helpers"
|
|
4
|
+
|
|
5
|
+
module ERBLint
|
|
6
|
+
module Linters
|
|
7
|
+
# Replaces calls to `super` with calls to `render_parent`.
|
|
8
|
+
class SuperInComponentTemplates < Linter
|
|
9
|
+
include ERBLint::LinterRegistry
|
|
10
|
+
include Helpers::RubocopHelpers
|
|
11
|
+
|
|
12
|
+
def run(processed_source)
|
|
13
|
+
processed_source.ast.descendants(:erb).each do |erb_node|
|
|
14
|
+
indicator_node, _, code_node = *erb_node
|
|
15
|
+
code = code_node.children.first
|
|
16
|
+
ast = erb_ast(code)
|
|
17
|
+
next unless ast
|
|
18
|
+
|
|
19
|
+
super_call_nodes = find_super_call_nodes(ast)
|
|
20
|
+
next if super_call_nodes.empty?
|
|
21
|
+
|
|
22
|
+
indicator, = *indicator_node
|
|
23
|
+
indicator ||= ""
|
|
24
|
+
|
|
25
|
+
# +2 to account for the leading "<%" characters
|
|
26
|
+
code_start_pos = erb_node.location.begin_pos + indicator.size + 2
|
|
27
|
+
|
|
28
|
+
super_call_nodes.each do |super_call_node|
|
|
29
|
+
orig_loc = code_node.location
|
|
30
|
+
super_call_loc = super_call_node.location.expression
|
|
31
|
+
|
|
32
|
+
new_loc = orig_loc.with(
|
|
33
|
+
begin_pos: super_call_loc.begin_pos + code_start_pos,
|
|
34
|
+
end_pos: super_call_loc.end_pos + code_start_pos
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
add_offense(
|
|
38
|
+
new_loc,
|
|
39
|
+
"Avoid calling `super` in component templates. Call `render_parent` instead",
|
|
40
|
+
"render_parent"
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def autocorrect(_, offense)
|
|
47
|
+
return unless offense.context
|
|
48
|
+
|
|
49
|
+
lambda do |corrector|
|
|
50
|
+
corrector.replace(offense.source_range, offense.context)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def find_super_call_nodes(ast)
|
|
57
|
+
return [ast] if ast.type == :zsuper
|
|
58
|
+
|
|
59
|
+
ast.each_child_node.flat_map do |child_ast|
|
|
60
|
+
find_super_call_nodes(child_ast)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
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.74
|
|
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: 2022-05-
|
|
11
|
+
date: 2022-05-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionview
|
|
@@ -366,7 +366,7 @@ dependencies:
|
|
|
366
366
|
- - "~>"
|
|
367
367
|
- !ruby/object:Gem::Version
|
|
368
368
|
version: 0.9.25
|
|
369
|
-
description:
|
|
369
|
+
description:
|
|
370
370
|
email:
|
|
371
371
|
- opensource+primer_view_components@github.com
|
|
372
372
|
executables: []
|
|
@@ -541,6 +541,7 @@ files:
|
|
|
541
541
|
- lib/primer/view_components/linters/helpers/rubocop_helpers.rb
|
|
542
542
|
- lib/primer/view_components/linters/label_component_migration_counter.rb
|
|
543
543
|
- lib/primer/view_components/linters/subhead_component_migration_counter.rb
|
|
544
|
+
- lib/primer/view_components/linters/super_in_component_templates.rb
|
|
544
545
|
- lib/primer/view_components/linters/tag_tree_helpers.rb
|
|
545
546
|
- lib/primer/view_components/linters/two_column_layout_migration_counter.rb
|
|
546
547
|
- lib/primer/view_components/statuses.rb
|
|
@@ -579,7 +580,7 @@ licenses:
|
|
|
579
580
|
- MIT
|
|
580
581
|
metadata:
|
|
581
582
|
allowed_push_host: https://rubygems.org
|
|
582
|
-
post_install_message:
|
|
583
|
+
post_install_message:
|
|
583
584
|
rdoc_options: []
|
|
584
585
|
require_paths:
|
|
585
586
|
- lib
|
|
@@ -594,8 +595,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
594
595
|
- !ruby/object:Gem::Version
|
|
595
596
|
version: '0'
|
|
596
597
|
requirements: []
|
|
597
|
-
rubygems_version: 3.
|
|
598
|
-
signing_key:
|
|
598
|
+
rubygems_version: 3.2.22
|
|
599
|
+
signing_key:
|
|
599
600
|
specification_version: 4
|
|
600
601
|
summary: ViewComponents for the Primer Design System
|
|
601
602
|
test_files: []
|