primer_view_components 0.8.0 → 0.9.0
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 +28 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/assets/styles/primer_view_components.css +1 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/action_bar/item.rb +3 -2
- data/app/components/primer/alpha/action_bar.rb +1 -5
- data/app/components/primer/alpha/overlay.css +1 -1
- data/app/components/primer/alpha/overlay.css.json +3 -1
- data/app/components/primer/alpha/overlay.css.map +1 -1
- data/app/components/primer/alpha/overlay.pcss +4 -0
- data/app/components/primer/alpha/tool_tip.js +28 -8
- data/app/components/primer/alpha/tool_tip.ts +27 -8
- data/app/components/primer/anchored_position.js +14 -5
- data/app/components/primer/anchored_position.ts +13 -4
- data/app/components/primer/beta/spinner.html.erb +1 -1
- data/lib/primer/view_components/linters/migrations/iconbutton_component.rb +36 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/previews/primer/alpha/overlay_preview/in_an_action_menu.html.erb +13 -0
- data/previews/primer/alpha/overlay_preview.rb +5 -0
- data/static/info_arch.json +13 -0
- data/static/previews.json +13 -0
- metadata +4 -2
@@ -7,7 +7,7 @@ module Primer
|
|
7
7
|
class ActionBar
|
8
8
|
# ActionBar::Item is an internal component that wraps the items in a div with the `ActionBar-item` class.
|
9
9
|
class Item < Primer::Component
|
10
|
-
def initialize
|
10
|
+
def initialize(item_content)
|
11
11
|
@system_arguments = {
|
12
12
|
tag: :div,
|
13
13
|
data: {
|
@@ -15,10 +15,11 @@ module Primer
|
|
15
15
|
},
|
16
16
|
classes: "ActionBar-item"
|
17
17
|
}
|
18
|
+
@item_content = item_content
|
18
19
|
end
|
19
20
|
|
20
21
|
def call
|
21
|
-
render(Primer::BaseComponent.new(**@system_arguments)) {
|
22
|
+
render(Primer::BaseComponent.new(**@system_arguments)) { render(@item_content) }
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -23,9 +23,7 @@ module Primer
|
|
23
23
|
c.with_leading_visual_icon(icon: icon)
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
render(Primer::Beta::IconButton.new(id: item_id, icon: icon, "aria-label": label, size: @size, scheme: :invisible, **system_arguments))
|
28
|
-
end
|
26
|
+
Item.new(Primer::Beta::IconButton.new(id: item_id, icon: icon, "aria-label": label, size: @size, scheme: :invisible, **system_arguments))
|
29
27
|
},
|
30
28
|
divider: lambda {
|
31
29
|
@action_menu.with_divider(hidden: true) if @overflow_menu
|
@@ -68,8 +66,6 @@ module Primer
|
|
68
66
|
system_arguments = {
|
69
67
|
**system_arguments,
|
70
68
|
hidden: true,
|
71
|
-
tag: :button,
|
72
|
-
type: "button",
|
73
69
|
"data-for": id,
|
74
70
|
"data-action": "click:action-bar#menuItemClick"
|
75
71
|
}
|
@@ -1 +1 @@
|
|
1
|
-
anchored-position[popover]{border-width:0;inset:auto;min-width:192px;overflow:visible;padding:0;position:absolute}.Overlay{display:flex}anchored-position[popover]:not(.\:popover-open){display:none}@supports selector(:popover-open){anchored-position[popover]:not(.\:popover-open){display:revert}}@supports selector(:open){anchored-position[popover]:not(.\:popover-open){display:revert}}
|
1
|
+
anchored-position[popover]{border-width:0;inset:auto;min-width:192px;overflow:visible;padding:0;position:absolute}.Overlay{display:flex}anchored-position[popover]:not(.\:popover-open){display:none}anchored-position.not-anchored::-webkit-backdrop{background-color:var(--overlay-backdrop-bgColor,var(--color-neutral-muted))}anchored-position.not-anchored::backdrop{background-color:var(--overlay-backdrop-bgColor,var(--color-neutral-muted))}@supports selector(:popover-open){anchored-position[popover]:not(.\:popover-open){display:revert}}@supports selector(:open){anchored-position[popover]:not(.\:popover-open){display:revert}}
|
@@ -3,6 +3,8 @@
|
|
3
3
|
"selectors": [
|
4
4
|
"anchored-position[popover]",
|
5
5
|
".Overlay",
|
6
|
-
"anchored-position[popover]:not(.\\:popover-open)"
|
6
|
+
"anchored-position[popover]:not(.\\:popover-open)",
|
7
|
+
"anchored-position.not-anchored::-webkit-backdrop",
|
8
|
+
"anchored-position.not-anchored::backdrop"
|
7
9
|
]
|
8
10
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["overlay.pcss"],"names":[],"mappings":"AAAA,2BACE,cAAe,CAIf,UAAW,CADX,eAAgB,CAEhB,gBAAiB,CAJjB,SAAU,CACV,iBAIF,CAEA,SACE,YACF,CAEA,gDACE,YACF,CAGA,kCACE,gDACE,cACF,CACF,CAGA,0BACE,gDACI,cACJ,CACF","file":"overlay.css","sourcesContent":["anchored-position[popover] {\n border-width: 0;\n padding: 0;\n position: absolute;\n min-width: 192px;\n inset: auto;\n overflow: visible;\n}\n\n.Overlay {\n display: flex;\n}\n\nanchored-position[popover]:not(.\\:popover-open) {\n display: none;\n}\n\n/* This reverts the declaration above for native popover, where `:popover-open` is supported */\n@supports selector(:popover-open) {\n anchored-position[popover]:not(.\\:popover-open) {\n display: revert;\n }\n}\n\n/* This reverts the declaration above for native popover, where `:open` is supported (Chrome 113, Safari TP) */\n@supports selector(:open) {\n anchored-position[popover]:not(.\\:popover-open) {\n display: revert;\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["overlay.pcss"],"names":[],"mappings":"AAAA,2BACE,cAAe,CAIf,UAAW,CADX,eAAgB,CAEhB,gBAAiB,CAJjB,SAAU,CACV,iBAIF,CAEA,SACE,YACF,CAEA,gDACE,YACF,CAEA,iDACE,2EACF,CAFA,yCACE,2EACF,CAGA,kCACE,gDACE,cACF,CACF,CAGA,0BACE,gDACI,cACJ,CACF","file":"overlay.css","sourcesContent":["anchored-position[popover] {\n border-width: 0;\n padding: 0;\n position: absolute;\n min-width: 192px;\n inset: auto;\n overflow: visible;\n}\n\n.Overlay {\n display: flex;\n}\n\nanchored-position[popover]:not(.\\:popover-open) {\n display: none;\n}\n\nanchored-position.not-anchored::backdrop {\n background-color: var(--overlay-backdrop-bgColor, var(--color-neutral-muted));\n}\n\n/* This reverts the declaration above for native popover, where `:popover-open` is supported */\n@supports selector(:popover-open) {\n anchored-position[popover]:not(.\\:popover-open) {\n display: revert;\n }\n}\n\n/* This reverts the declaration above for native popover, where `:open` is supported (Chrome 113, Safari TP) */\n@supports selector(:open) {\n anchored-position[popover]:not(.\\:popover-open) {\n display: revert;\n }\n}\n"]}
|
@@ -15,6 +15,10 @@ anchored-position[popover]:not(.\:popover-open) {
|
|
15
15
|
display: none;
|
16
16
|
}
|
17
17
|
|
18
|
+
anchored-position.not-anchored::backdrop {
|
19
|
+
background-color: var(--overlay-backdrop-bgColor, var(--color-neutral-muted));
|
20
|
+
}
|
21
|
+
|
18
22
|
/* This reverts the declaration above for native popover, where `:popover-open` is supported */
|
19
23
|
@supports selector(:popover-open) {
|
20
24
|
anchored-position[popover]:not(.\:popover-open) {
|
@@ -12,6 +12,26 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
12
12
|
var _ToolTipElement_instances, _ToolTipElement_abortController, _ToolTipElement_align, _ToolTipElement_side, _ToolTipElement_allowUpdatePosition, _ToolTipElement_update, _ToolTipElement_updateControlReference, _ToolTipElement_updateDirection, _ToolTipElement_updatePosition;
|
13
13
|
import '@oddbird/popover-polyfill';
|
14
14
|
import { getAnchoredPosition } from '@primer/behaviors';
|
15
|
+
const isPopoverOpen = (() => {
|
16
|
+
let selector;
|
17
|
+
function setSelector(el) {
|
18
|
+
try {
|
19
|
+
selector = ':popover-open';
|
20
|
+
return el.matches(selector);
|
21
|
+
}
|
22
|
+
catch (_a) {
|
23
|
+
try {
|
24
|
+
selector = ':open';
|
25
|
+
return el.matches(':open');
|
26
|
+
}
|
27
|
+
catch (_b) {
|
28
|
+
selector = '.\\:popover-open';
|
29
|
+
return el.matches('.\\:popover-open');
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
return (el) => (selector ? el.matches(selector) : setSelector(el));
|
34
|
+
})();
|
15
35
|
const TOOLTIP_ARROW_EDGE_OFFSET = 6;
|
16
36
|
const TOOLTIP_SR_ONLY_CLASS = 'sr-only';
|
17
37
|
const TOOLTIP_OFFSET = 10;
|
@@ -29,7 +49,7 @@ function closeOpenTooltips(except) {
|
|
29
49
|
for (const tooltip of openTooltips) {
|
30
50
|
if (tooltip === except)
|
31
51
|
continue;
|
32
|
-
if (tooltip
|
52
|
+
if (isPopoverOpen(tooltip)) {
|
33
53
|
tooltip.hidePopover();
|
34
54
|
}
|
35
55
|
else {
|
@@ -207,16 +227,16 @@ class ToolTipElement extends HTMLElement {
|
|
207
227
|
}
|
208
228
|
/* @deprecated */
|
209
229
|
set hiddenFromView(value) {
|
210
|
-
if (value && this
|
230
|
+
if (value && isPopoverOpen(this)) {
|
211
231
|
this.hidePopover();
|
212
232
|
}
|
213
|
-
else if (!value && this
|
233
|
+
else if (!value && !isPopoverOpen(this)) {
|
214
234
|
this.showPopover();
|
215
235
|
}
|
216
236
|
}
|
217
237
|
/* @deprecated */
|
218
238
|
get hiddenFromView() {
|
219
|
-
return !this
|
239
|
+
return !isPopoverOpen(this);
|
220
240
|
}
|
221
241
|
connectedCallback() {
|
222
242
|
var _a, _b;
|
@@ -260,7 +280,7 @@ class ToolTipElement extends HTMLElement {
|
|
260
280
|
async handleEvent(event) {
|
261
281
|
if (!this.control)
|
262
282
|
return;
|
263
|
-
const showing = this
|
283
|
+
const showing = isPopoverOpen(this);
|
264
284
|
// Ensures that tooltip stays open when hovering between tooltip and element
|
265
285
|
// WCAG Success Criterion 1.4.13 Hoverable
|
266
286
|
const shouldShow = event.type === 'mouseenter' || event.type === 'focus';
|
@@ -272,10 +292,10 @@ class ToolTipElement extends HTMLElement {
|
|
272
292
|
const isOpeningOtherPopover = event.type === 'beforetoggle' && event.currentTarget !== this;
|
273
293
|
const shouldHide = isMouseLeaveFromButton || isEscapeKeydown || isMouseDownOnButton || isOpeningOtherPopover;
|
274
294
|
await Promise.resolve();
|
275
|
-
if (!showing && shouldShow && this
|
295
|
+
if (!showing && shouldShow && !isPopoverOpen(this)) {
|
276
296
|
this.showPopover();
|
277
297
|
}
|
278
|
-
else if (showing && shouldHide && this
|
298
|
+
else if (showing && shouldHide && isPopoverOpen(this)) {
|
279
299
|
this.hidePopover();
|
280
300
|
}
|
281
301
|
if (event.type === 'toggle') {
|
@@ -378,7 +398,7 @@ _ToolTipElement_abortController = new WeakMap(), _ToolTipElement_align = new Wea
|
|
378
398
|
}, _ToolTipElement_updatePosition = function _ToolTipElement_updatePosition() {
|
379
399
|
if (!this.control)
|
380
400
|
return;
|
381
|
-
if (!__classPrivateFieldGet(this, _ToolTipElement_allowUpdatePosition, "f") || !this
|
401
|
+
if (!__classPrivateFieldGet(this, _ToolTipElement_allowUpdatePosition, "f") || !isPopoverOpen(this))
|
382
402
|
return;
|
383
403
|
const position = getAnchoredPosition(this, this.control, {
|
384
404
|
side: __classPrivateFieldGet(this, _ToolTipElement_side, "f"),
|
@@ -2,6 +2,25 @@ import type {AnchorAlignment, AnchorSide} from '@primer/behaviors'
|
|
2
2
|
import '@oddbird/popover-polyfill'
|
3
3
|
import {getAnchoredPosition} from '@primer/behaviors'
|
4
4
|
|
5
|
+
const isPopoverOpen = (() => {
|
6
|
+
let selector: string
|
7
|
+
function setSelector(el: Element) {
|
8
|
+
try {
|
9
|
+
selector = ':popover-open'
|
10
|
+
return el.matches(selector)
|
11
|
+
} catch {
|
12
|
+
try {
|
13
|
+
selector = ':open'
|
14
|
+
return el.matches(':open')
|
15
|
+
} catch {
|
16
|
+
selector = '.\\:popover-open'
|
17
|
+
return el.matches('.\\:popover-open')
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
return (el: Element) => (selector ? el.matches(selector) : setSelector(el))
|
22
|
+
})()
|
23
|
+
|
5
24
|
const TOOLTIP_ARROW_EDGE_OFFSET = 6
|
6
25
|
const TOOLTIP_SR_ONLY_CLASS = 'sr-only'
|
7
26
|
const TOOLTIP_OFFSET = 10
|
@@ -22,7 +41,7 @@ const DIRECTION_CLASSES = [
|
|
22
41
|
function closeOpenTooltips(except?: Element) {
|
23
42
|
for (const tooltip of openTooltips) {
|
24
43
|
if (tooltip === except) continue
|
25
|
-
if (tooltip
|
44
|
+
if (isPopoverOpen(tooltip)) {
|
26
45
|
tooltip.hidePopover()
|
27
46
|
} else {
|
28
47
|
openTooltips.delete(tooltip)
|
@@ -206,16 +225,16 @@ class ToolTipElement extends HTMLElement {
|
|
206
225
|
|
207
226
|
/* @deprecated */
|
208
227
|
set hiddenFromView(value: true | false) {
|
209
|
-
if (value && this
|
228
|
+
if (value && isPopoverOpen(this)) {
|
210
229
|
this.hidePopover()
|
211
|
-
} else if (!value && this
|
230
|
+
} else if (!value && !isPopoverOpen(this)) {
|
212
231
|
this.showPopover()
|
213
232
|
}
|
214
233
|
}
|
215
234
|
|
216
235
|
/* @deprecated */
|
217
236
|
get hiddenFromView() {
|
218
|
-
return !this
|
237
|
+
return !isPopoverOpen(this)
|
219
238
|
}
|
220
239
|
|
221
240
|
connectedCallback() {
|
@@ -262,7 +281,7 @@ class ToolTipElement extends HTMLElement {
|
|
262
281
|
|
263
282
|
async handleEvent(event: Event) {
|
264
283
|
if (!this.control) return
|
265
|
-
const showing = this
|
284
|
+
const showing = isPopoverOpen(this)
|
266
285
|
|
267
286
|
// Ensures that tooltip stays open when hovering between tooltip and element
|
268
287
|
// WCAG Success Criterion 1.4.13 Hoverable
|
@@ -277,9 +296,9 @@ class ToolTipElement extends HTMLElement {
|
|
277
296
|
const shouldHide = isMouseLeaveFromButton || isEscapeKeydown || isMouseDownOnButton || isOpeningOtherPopover
|
278
297
|
|
279
298
|
await Promise.resolve()
|
280
|
-
if (!showing && shouldShow && this
|
299
|
+
if (!showing && shouldShow && !isPopoverOpen(this)) {
|
281
300
|
this.showPopover()
|
282
|
-
} else if (showing && shouldHide && this
|
301
|
+
} else if (showing && shouldHide && isPopoverOpen(this)) {
|
283
302
|
this.hidePopover()
|
284
303
|
}
|
285
304
|
|
@@ -377,7 +396,7 @@ class ToolTipElement extends HTMLElement {
|
|
377
396
|
|
378
397
|
#updatePosition() {
|
379
398
|
if (!this.control) return
|
380
|
-
if (!this.#allowUpdatePosition || !this
|
399
|
+
if (!this.#allowUpdatePosition || !isPopoverOpen(this)) return
|
381
400
|
|
382
401
|
const position = getAnchoredPosition(this, this.control, {
|
383
402
|
side: this.#side,
|
@@ -131,11 +131,20 @@ export default class AnchoredPositionElement extends HTMLElement {
|
|
131
131
|
cancelAnimationFrame(__classPrivateFieldGet(this, _AnchoredPositionElement_animationFrame, "f"));
|
132
132
|
__classPrivateFieldSet(this, _AnchoredPositionElement_animationFrame, requestAnimationFrame(() => {
|
133
133
|
const anchor = this.anchorElement;
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
134
|
+
this.classList.toggle('not-anchored', !anchor);
|
135
|
+
if (anchor) {
|
136
|
+
const { left, top } = getAnchoredPosition(this, anchor, this);
|
137
|
+
this.style.top = `${top}px`;
|
138
|
+
this.style.left = `${left}px`;
|
139
|
+
this.style.bottom = 'auto';
|
140
|
+
this.style.right = 'auto';
|
141
|
+
}
|
142
|
+
else {
|
143
|
+
this.style.top = '0';
|
144
|
+
this.style.left = '0';
|
145
|
+
this.style.bottom = '0';
|
146
|
+
this.style.right = '0';
|
147
|
+
}
|
139
148
|
}), "f");
|
140
149
|
}
|
141
150
|
}
|
@@ -133,10 +133,19 @@ export default class AnchoredPositionElement extends HTMLElement implements Posi
|
|
133
133
|
|
134
134
|
this.#animationFrame = requestAnimationFrame(() => {
|
135
135
|
const anchor = this.anchorElement
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
this.classList.toggle('not-anchored', !anchor)
|
137
|
+
if (anchor) {
|
138
|
+
const {left, top} = getAnchoredPosition(this, anchor, this)
|
139
|
+
this.style.top = `${top}px`
|
140
|
+
this.style.left = `${left}px`
|
141
|
+
this.style.bottom = 'auto'
|
142
|
+
this.style.right = 'auto'
|
143
|
+
} else {
|
144
|
+
this.style.top = '0'
|
145
|
+
this.style.left = '0'
|
146
|
+
this.style.bottom = '0'
|
147
|
+
this.style.right = '0'
|
148
|
+
}
|
140
149
|
})
|
141
150
|
}
|
142
151
|
}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
<%= render Primer::BaseComponent.new(**@system_arguments) do %>
|
2
|
-
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" />
|
2
|
+
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" fill="none" />
|
3
3
|
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" />
|
4
4
|
<% end %>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Migrations
|
6
|
+
# Lint and autocorrect deprecated IconButton
|
7
|
+
class IconButtonComponent < RuboCop::Cop::Cop
|
8
|
+
INVALID_MESSAGE = <<~STR
|
9
|
+
`Primer::IconButton` is deprecated. Please use `Primer::Beta::IconButton` instead.
|
10
|
+
STR
|
11
|
+
|
12
|
+
def_node_matcher :icon_button, <<~PATTERN
|
13
|
+
(send $(const (const nil? :Primer) :IconButton) :new ...)
|
14
|
+
PATTERN
|
15
|
+
|
16
|
+
def_node_matcher :hash_with_box_value?, <<~PATTERN
|
17
|
+
(hash ... (pair (sym :box) (...)) ... )
|
18
|
+
PATTERN
|
19
|
+
|
20
|
+
def on_send(node)
|
21
|
+
return unless icon_button(node)
|
22
|
+
|
23
|
+
add_offense(node, message: INVALID_MESSAGE)
|
24
|
+
end
|
25
|
+
|
26
|
+
def autocorrect(node)
|
27
|
+
return if hash_with_box_value?(node.arguments.first)
|
28
|
+
|
29
|
+
lambda do |corrector|
|
30
|
+
corrector.replace(icon_button(node), "Primer::Beta::IconButton")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= render(Primer::Alpha::ActionMenu.new()) do |menu| %>
|
2
|
+
<% menu.with_show_button { "Menu" } %>
|
3
|
+
<% menu.with_item(label: "Open Overlay", content_arguments: { id: "overlay-show-my-overlay", popovertarget: "my-overlay" }) %>
|
4
|
+
<% end %>
|
5
|
+
<%= render(Primer::Alpha::Overlay.new(
|
6
|
+
id: "my-overlay",
|
7
|
+
title: "An overlay",
|
8
|
+
role: :dialog,
|
9
|
+
popover: "manual",
|
10
|
+
)) do |d| %>
|
11
|
+
<% d.with_header(title: "An overlay") %>
|
12
|
+
<% d.with_body { "This is an overlay" } %>
|
13
|
+
<% end %>
|
data/static/info_arch.json
CHANGED
@@ -5910,6 +5910,19 @@
|
|
5910
5910
|
]
|
5911
5911
|
}
|
5912
5912
|
},
|
5913
|
+
{
|
5914
|
+
"preview_path": "primer/alpha/overlay/in_an_action_menu",
|
5915
|
+
"name": "in_an_action_menu",
|
5916
|
+
"snapshot": "false",
|
5917
|
+
"skip_rules": {
|
5918
|
+
"wont_fix": [
|
5919
|
+
"region"
|
5920
|
+
],
|
5921
|
+
"will_fix": [
|
5922
|
+
"color-contrast"
|
5923
|
+
]
|
5924
|
+
}
|
5925
|
+
},
|
5913
5926
|
{
|
5914
5927
|
"preview_path": "primer/alpha/overlay/dialog_with_header_footer",
|
5915
5928
|
"name": "dialog_with_header_footer",
|
data/static/previews.json
CHANGED
@@ -4417,6 +4417,19 @@
|
|
4417
4417
|
]
|
4418
4418
|
}
|
4419
4419
|
},
|
4420
|
+
{
|
4421
|
+
"preview_path": "primer/alpha/overlay/in_an_action_menu",
|
4422
|
+
"name": "in_an_action_menu",
|
4423
|
+
"snapshot": "false",
|
4424
|
+
"skip_rules": {
|
4425
|
+
"wont_fix": [
|
4426
|
+
"region"
|
4427
|
+
],
|
4428
|
+
"will_fix": [
|
4429
|
+
"color-contrast"
|
4430
|
+
]
|
4431
|
+
}
|
4432
|
+
},
|
4420
4433
|
{
|
4421
4434
|
"preview_path": "primer/alpha/overlay/dialog_with_header_footer",
|
4422
4435
|
"name": "dialog_with_header_footer",
|
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.
|
4
|
+
version: 0.9.0
|
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: 2023-
|
11
|
+
date: 2023-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -935,6 +935,7 @@ files:
|
|
935
935
|
- lib/primer/view_components/linters/helpers/rule_helpers.rb
|
936
936
|
- lib/primer/view_components/linters/label_component_migration_counter.rb
|
937
937
|
- lib/primer/view_components/linters/migrate_deprecated_flash_arguments.rb
|
938
|
+
- lib/primer/view_components/linters/migrations/iconbutton_component.rb
|
938
939
|
- lib/primer/view_components/linters/migrations/truncate_component.rb
|
939
940
|
- lib/primer/view_components/linters/severity_schema.rb
|
940
941
|
- lib/primer/view_components/linters/subhead_component_migration_counter.rb
|
@@ -1021,6 +1022,7 @@ files:
|
|
1021
1022
|
- previews/primer/alpha/nav_list_preview.rb
|
1022
1023
|
- previews/primer/alpha/nav_list_preview/trailing_action.html.erb
|
1023
1024
|
- previews/primer/alpha/overlay_preview.rb
|
1025
|
+
- previews/primer/alpha/overlay_preview/in_an_action_menu.html.erb
|
1024
1026
|
- previews/primer/alpha/overlay_preview/middle_of_page.html.erb
|
1025
1027
|
- previews/primer/alpha/overlay_preview/middle_of_page_with_relative_container.html.erb
|
1026
1028
|
- previews/primer/alpha/radio_button_group_preview.rb
|