openproject-primer_view_components 0.58.0 → 0.59.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 +6 -0
- data/app/assets/javascripts/components/primer/open_project/border_box/collapsible_header.d.ts +18 -0
- data/app/assets/javascripts/components/primer/primer.d.ts +1 -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/open_project/border_box/collapsible_header.css +1 -0
- data/app/components/primer/open_project/border_box/collapsible_header.css.json +10 -0
- data/app/components/primer/open_project/border_box/collapsible_header.css.map +1 -0
- data/app/components/primer/open_project/border_box/collapsible_header.d.ts +18 -0
- data/app/components/primer/open_project/border_box/collapsible_header.html.erb +17 -0
- data/app/components/primer/open_project/border_box/collapsible_header.js +70 -0
- data/app/components/primer/open_project/border_box/collapsible_header.pcss +19 -0
- data/app/components/primer/open_project/border_box/collapsible_header.rb +53 -0
- data/app/components/primer/open_project/border_box/collapsible_header.ts +72 -0
- data/app/components/primer/primer.d.ts +1 -0
- data/app/components/primer/primer.js +1 -0
- data/app/components/primer/primer.pcss +1 -0
- data/app/components/primer/primer.ts +1 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/previews/primer/open_project/border_box/collapsible_header_preview/playground.html.erb +14 -0
- data/previews/primer/open_project/border_box/collapsible_header_preview.rb +88 -0
- data/static/arguments.json +16 -0
- data/static/audited_at.json +1 -0
- data/static/classes.json +5 -1
- data/static/constants.json +3 -0
- data/static/info_arch.json +98 -0
- data/static/previews.json +73 -0
- data/static/statuses.json +1 -0
- metadata +16 -4
@@ -0,0 +1 @@
|
|
1
|
+
.CollapsibleHeader{align-items:center;cursor:pointer;display:flex}.Box:has(.CollapsibleHeader--collapsed){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:var(--borderWidth-thicker)}.Box:has(.CollapsibleHeader--collapsed) .Box-body,.Box:has(.CollapsibleHeader--collapsed) .Box-footer,.Box:has(.CollapsibleHeader--collapsed) .Box-row{display:none}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"name": "open_project/border_box/collapsible_header",
|
3
|
+
"selectors": [
|
4
|
+
".CollapsibleHeader",
|
5
|
+
".Box:has(.CollapsibleHeader--collapsed)",
|
6
|
+
".Box:has(.CollapsibleHeader--collapsed) .Box-body",
|
7
|
+
".Box:has(.CollapsibleHeader--collapsed) .Box-footer",
|
8
|
+
".Box:has(.CollapsibleHeader--collapsed) .Box-row"
|
9
|
+
]
|
10
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["collapsible_header.pcss"],"names":[],"mappings":"AAEA,mBAGI,kBAAmB,CAFnB,cAAe,CACf,YAEJ,CAEA,wCACI,2BAA4B,CAC5B,4BAA6B,CAC7B,8CAOJ,CALI,uJAGI,YACJ","file":"collapsible_header.css","sourcesContent":["/* CSS for BorderBox::CollapsibleHeader */\n\n.CollapsibleHeader {\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.Box:has(.CollapsibleHeader--collapsed) {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-width: var(--borderWidth-thicker);\n\n & .Box-row,\n & .Box-body,\n & .Box-footer {\n display: none;\n }\n}\n"]}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
declare class CollapsibleHeaderElement extends HTMLElement {
|
2
|
+
arrowDown: HTMLElement;
|
3
|
+
arrowUp: HTMLElement;
|
4
|
+
description: HTMLElement;
|
5
|
+
collapsed: string;
|
6
|
+
private _collapsed;
|
7
|
+
constructor();
|
8
|
+
connectedCallback(): void;
|
9
|
+
toggle(): void;
|
10
|
+
private hideAll;
|
11
|
+
private expandAll;
|
12
|
+
}
|
13
|
+
declare global {
|
14
|
+
interface Window {
|
15
|
+
CollapsibleHeaderElement: typeof CollapsibleHeaderElement;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
export {};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
|
2
|
+
<%= render(Primer::OpenProject::FlexLayout.new) do |flex| %>
|
3
|
+
<%= flex.with_row do %>
|
4
|
+
<%= render(Primer::Beta::Text.new(mr: 2) ) { @title } %>
|
5
|
+
<% if @count.present? %>
|
6
|
+
<%= render(Primer::Beta::Counter.new(count: @count, mr: 2, scheme: :primary)) %>
|
7
|
+
<% end %>
|
8
|
+
<%= render(Primer::Beta::Octicon.new(icon: "chevron-up", data: { target: "collapsible-header.arrowUp" })) %>
|
9
|
+
<%= render(Primer::Beta::Octicon.new(icon: "chevron-down", display: :none, data: { target: "collapsible-header.arrowDown" })) %>
|
10
|
+
<% end %>
|
11
|
+
<%= flex.with_row do %>
|
12
|
+
<% if @description.present? %>
|
13
|
+
<%= render(Primer::Beta::Text.new(color: :subtle, data: { target: "collapsible-header.description" }) ) { @description } %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { attr, controller, target } from '@github/catalyst';
|
8
|
+
let CollapsibleHeaderElement = class CollapsibleHeaderElement extends HTMLElement {
|
9
|
+
// eslint-disable-next-line custom-elements/no-constructor
|
10
|
+
constructor() {
|
11
|
+
super();
|
12
|
+
if (!this.closest('.Box')) {
|
13
|
+
throw new Error('No surrounding BorderBox found');
|
14
|
+
}
|
15
|
+
}
|
16
|
+
connectedCallback() {
|
17
|
+
if (this.collapsed === 'true') {
|
18
|
+
this._collapsed = true;
|
19
|
+
this.hideAll();
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
this._collapsed = false;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
toggle() {
|
26
|
+
if (this._collapsed) {
|
27
|
+
this._collapsed = false;
|
28
|
+
this.expandAll();
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
this._collapsed = true;
|
32
|
+
this.hideAll();
|
33
|
+
}
|
34
|
+
}
|
35
|
+
hideAll() {
|
36
|
+
this.arrowDown.classList.remove('d-none');
|
37
|
+
this.arrowUp.classList.add('d-none');
|
38
|
+
if (this.description !== undefined) {
|
39
|
+
this.description.classList.add('d-none');
|
40
|
+
}
|
41
|
+
this.classList.add('CollapsibleHeader--collapsed');
|
42
|
+
}
|
43
|
+
expandAll() {
|
44
|
+
this.arrowDown.classList.add('d-none');
|
45
|
+
this.arrowUp.classList.remove('d-none');
|
46
|
+
if (this.description !== undefined) {
|
47
|
+
this.description.classList.remove('d-none');
|
48
|
+
}
|
49
|
+
this.classList.remove('CollapsibleHeader--collapsed');
|
50
|
+
}
|
51
|
+
};
|
52
|
+
__decorate([
|
53
|
+
target
|
54
|
+
], CollapsibleHeaderElement.prototype, "arrowDown", void 0);
|
55
|
+
__decorate([
|
56
|
+
target
|
57
|
+
], CollapsibleHeaderElement.prototype, "arrowUp", void 0);
|
58
|
+
__decorate([
|
59
|
+
target
|
60
|
+
], CollapsibleHeaderElement.prototype, "description", void 0);
|
61
|
+
__decorate([
|
62
|
+
attr
|
63
|
+
], CollapsibleHeaderElement.prototype, "collapsed", void 0);
|
64
|
+
CollapsibleHeaderElement = __decorate([
|
65
|
+
controller
|
66
|
+
], CollapsibleHeaderElement);
|
67
|
+
if (!window.customElements.get('collapsible-header')) {
|
68
|
+
window.CollapsibleHeaderElement = CollapsibleHeaderElement;
|
69
|
+
window.customElements.define('collapsible-header', CollapsibleHeaderElement);
|
70
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/* CSS for BorderBox::CollapsibleHeader */
|
2
|
+
|
3
|
+
.CollapsibleHeader {
|
4
|
+
cursor: pointer;
|
5
|
+
display: flex;
|
6
|
+
align-items: center;
|
7
|
+
}
|
8
|
+
|
9
|
+
.Box:has(.CollapsibleHeader--collapsed) {
|
10
|
+
border-bottom-left-radius: 0;
|
11
|
+
border-bottom-right-radius: 0;
|
12
|
+
border-bottom-width: var(--borderWidth-thicker);
|
13
|
+
|
14
|
+
& .Box-row,
|
15
|
+
& .Box-body,
|
16
|
+
& .Box-footer {
|
17
|
+
display: none;
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
module BorderBox
|
6
|
+
# Add a general description of component here
|
7
|
+
# Add additional usage considerations or best practices that may aid the user to use the component correctly.
|
8
|
+
# @accessibility Add any accessibility considerations
|
9
|
+
class CollapsibleHeader < Primer::Component
|
10
|
+
status :open_project
|
11
|
+
|
12
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
13
|
+
def initialize(title:, count: nil, description: nil, collapsed: false, box:, **system_arguments)
|
14
|
+
@title = title
|
15
|
+
@count = count
|
16
|
+
@description = description
|
17
|
+
@collapsed = collapsed
|
18
|
+
@box = box
|
19
|
+
@system_arguments = system_arguments
|
20
|
+
|
21
|
+
@system_arguments[:tag] = "collapsible-header"
|
22
|
+
@system_arguments[:classes] = class_names(
|
23
|
+
system_arguments[:classes],
|
24
|
+
"CollapsibleHeader",
|
25
|
+
"CollapsibleHeader--collapsed" => @collapsed
|
26
|
+
)
|
27
|
+
@system_arguments[:data] = merge_data(
|
28
|
+
@system_arguments, {
|
29
|
+
data: {
|
30
|
+
action: "click:collapsible-header#toggle",
|
31
|
+
collapsed: @collapsed
|
32
|
+
} }
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def before_render
|
39
|
+
content
|
40
|
+
end
|
41
|
+
|
42
|
+
def render?
|
43
|
+
raise ArgumentError, "Title must be present" unless @title.present?
|
44
|
+
raise ArgumentError, "Description cannot be a blank string" unless @description.present? || @description.nil?
|
45
|
+
raise ArgumentError, "Count cannot be a blank string" unless @count.present? || @count.nil?
|
46
|
+
raise ArgumentError, "This component must be called inside the header of a `Primer::Beta::BorderBox`" unless @box.present? && @box.is_a?(Primer::Beta::BorderBox)
|
47
|
+
|
48
|
+
true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import {attr, controller, target} from '@github/catalyst'
|
2
|
+
|
3
|
+
@controller
|
4
|
+
class CollapsibleHeaderElement extends HTMLElement {
|
5
|
+
@target arrowDown: HTMLElement
|
6
|
+
@target arrowUp: HTMLElement
|
7
|
+
@target description: HTMLElement
|
8
|
+
|
9
|
+
@attr collapsed: string
|
10
|
+
private _collapsed: boolean
|
11
|
+
|
12
|
+
// eslint-disable-next-line custom-elements/no-constructor
|
13
|
+
constructor() {
|
14
|
+
super()
|
15
|
+
|
16
|
+
if (!this.closest('.Box')) {
|
17
|
+
throw new Error('No surrounding BorderBox found')
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
connectedCallback() {
|
22
|
+
if (this.collapsed === 'true') {
|
23
|
+
this._collapsed = true
|
24
|
+
this.hideAll()
|
25
|
+
} else {
|
26
|
+
this._collapsed = false
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
public toggle() {
|
31
|
+
if (this._collapsed) {
|
32
|
+
this._collapsed = false
|
33
|
+
this.expandAll()
|
34
|
+
} else {
|
35
|
+
this._collapsed = true
|
36
|
+
this.hideAll()
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
private hideAll() {
|
41
|
+
this.arrowDown.classList.remove('d-none')
|
42
|
+
this.arrowUp.classList.add('d-none')
|
43
|
+
|
44
|
+
if (this.description !== undefined) {
|
45
|
+
this.description.classList.add('d-none')
|
46
|
+
}
|
47
|
+
|
48
|
+
this.classList.add('CollapsibleHeader--collapsed')
|
49
|
+
}
|
50
|
+
|
51
|
+
private expandAll() {
|
52
|
+
this.arrowDown.classList.add('d-none')
|
53
|
+
this.arrowUp.classList.remove('d-none')
|
54
|
+
|
55
|
+
if (this.description !== undefined) {
|
56
|
+
this.description.classList.remove('d-none')
|
57
|
+
}
|
58
|
+
|
59
|
+
this.classList.remove('CollapsibleHeader--collapsed')
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
declare global {
|
64
|
+
interface Window {
|
65
|
+
CollapsibleHeaderElement: typeof CollapsibleHeaderElement
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
if (!window.customElements.get('collapsible-header')) {
|
70
|
+
window.CollapsibleHeaderElement = CollapsibleHeaderElement
|
71
|
+
window.customElements.define('collapsible-header', CollapsibleHeaderElement)
|
72
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= render(Primer::Beta::BorderBox.new) do |component| %>
|
2
|
+
<% component.with_header do %>
|
3
|
+
<%= render(Primer::OpenProject::BorderBox::CollapsibleHeader.new(box: component,
|
4
|
+
title: title,
|
5
|
+
description: description,
|
6
|
+
count: count,
|
7
|
+
collapsed: collapsed)) %>
|
8
|
+
<% end %>
|
9
|
+
<% component.with_body { "Body" } %>
|
10
|
+
<% component.with_row { "Row 1" } %>
|
11
|
+
<% component.with_row { "Row 2" } %>
|
12
|
+
<% component.with_row { "Row 3" } %>
|
13
|
+
<% component.with_footer { "Footer" } %>
|
14
|
+
<% end %>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Setup Playground to use all available component props
|
4
|
+
# Setup Features to use individual component props and combinations
|
5
|
+
|
6
|
+
module Primer
|
7
|
+
module OpenProject
|
8
|
+
module BorderBox
|
9
|
+
# @label CollapsibleHeader
|
10
|
+
class CollapsibleHeaderPreview < ViewComponent::Preview
|
11
|
+
# @label Playground
|
12
|
+
# @param title [String]
|
13
|
+
# @param description [String]
|
14
|
+
# @param collapsed toggle
|
15
|
+
# @param count [Integer]
|
16
|
+
def playground(
|
17
|
+
title: "Backlog",
|
18
|
+
description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
|
19
|
+
count: 42,
|
20
|
+
collapsed: false
|
21
|
+
)
|
22
|
+
render_with_template(locals: {
|
23
|
+
title: title,
|
24
|
+
description: description,
|
25
|
+
count: count,
|
26
|
+
collapsed: collapsed
|
27
|
+
})
|
28
|
+
end
|
29
|
+
|
30
|
+
# @label Default
|
31
|
+
# @snapshot
|
32
|
+
def default
|
33
|
+
render_with_template(
|
34
|
+
template: "primer/open_project/border_box/collapsible_header_preview/playground",
|
35
|
+
locals: {
|
36
|
+
title: "Backlog",
|
37
|
+
description: nil,
|
38
|
+
count: nil,
|
39
|
+
collapsed: false
|
40
|
+
}
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# @label With counter
|
45
|
+
# @snapshot
|
46
|
+
def with_count
|
47
|
+
render_with_template(
|
48
|
+
template: "primer/open_project/border_box/collapsible_header_preview/playground",
|
49
|
+
locals: {
|
50
|
+
title: "Backlog",
|
51
|
+
description: nil,
|
52
|
+
count: 42,
|
53
|
+
collapsed: false
|
54
|
+
}
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
# @label With description text
|
59
|
+
# @snapshot
|
60
|
+
def with_description
|
61
|
+
render_with_template(
|
62
|
+
template: "primer/open_project/border_box/collapsible_header_preview/playground",
|
63
|
+
locals: {
|
64
|
+
title: "Backlog",
|
65
|
+
description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
|
66
|
+
count: nil,
|
67
|
+
collapsed: false
|
68
|
+
}
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
# @label Collapsed initially
|
73
|
+
# @snapshot
|
74
|
+
def collapsed
|
75
|
+
render_with_template(
|
76
|
+
template: "primer/open_project/border_box/collapsible_header_preview/playground",
|
77
|
+
locals: {
|
78
|
+
title: "Backlog",
|
79
|
+
description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
|
80
|
+
count: nil,
|
81
|
+
collapsed: true
|
82
|
+
}
|
83
|
+
)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/static/arguments.json
CHANGED
@@ -5018,6 +5018,22 @@
|
|
5018
5018
|
}
|
5019
5019
|
]
|
5020
5020
|
},
|
5021
|
+
{
|
5022
|
+
"component": "OpenProject::BorderBox::CollapsibleHeader",
|
5023
|
+
"status": "open_project",
|
5024
|
+
"a11y_reviewed": false,
|
5025
|
+
"short_name": "OpenProjectBorderBoxCollapsibleHeader",
|
5026
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/border_box/collapsible_header.rb",
|
5027
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/border_box/collapsible_header/default/",
|
5028
|
+
"parameters": [
|
5029
|
+
{
|
5030
|
+
"name": "system_arguments",
|
5031
|
+
"type": "Hash",
|
5032
|
+
"default": "N/A",
|
5033
|
+
"description": "[System arguments](/system-arguments)"
|
5034
|
+
}
|
5035
|
+
]
|
5036
|
+
},
|
5021
5037
|
{
|
5022
5038
|
"component": "OpenProject::BorderGrid",
|
5023
5039
|
"status": "open_project",
|
data/static/audited_at.json
CHANGED
@@ -117,6 +117,7 @@
|
|
117
117
|
"Primer::IconButton": "",
|
118
118
|
"Primer::LayoutComponent": "",
|
119
119
|
"Primer::Navigation::TabComponent": "",
|
120
|
+
"Primer::OpenProject::BorderBox::CollapsibleHeader": "",
|
120
121
|
"Primer::OpenProject::BorderGrid": "",
|
121
122
|
"Primer::OpenProject::BorderGrid::Cell": "",
|
122
123
|
"Primer::OpenProject::DangerDialog": "",
|
data/static/classes.json
CHANGED
@@ -114,7 +114,8 @@
|
|
114
114
|
"Primer::OpenProject::BorderGrid"
|
115
115
|
],
|
116
116
|
"Box": [
|
117
|
-
"Primer::Beta::BorderBox"
|
117
|
+
"Primer::Beta::BorderBox",
|
118
|
+
"Primer::OpenProject::BorderBox::CollapsibleHeader"
|
118
119
|
],
|
119
120
|
"Box--blue": [
|
120
121
|
"Primer::Beta::BorderBox"
|
@@ -239,6 +240,9 @@
|
|
239
240
|
"ButtonGroup": [
|
240
241
|
"Primer::Beta::ButtonGroup"
|
241
242
|
],
|
243
|
+
"CollapsibleHeader": [
|
244
|
+
"Primer::OpenProject::BorderBox::CollapsibleHeader"
|
245
|
+
],
|
242
246
|
"Counter": [
|
243
247
|
"Primer::Beta::Counter"
|
244
248
|
],
|
data/static/constants.json
CHANGED
@@ -1562,6 +1562,9 @@
|
|
1562
1562
|
"Primer::Navigation::TabComponent": {
|
1563
1563
|
"GeneratedSlotMethods": "Primer::Navigation::TabComponent::GeneratedSlotMethods"
|
1564
1564
|
},
|
1565
|
+
"Primer::OpenProject::BorderBox::CollapsibleHeader": {
|
1566
|
+
"GeneratedSlotMethods": "Primer::OpenProject::BorderBox::CollapsibleHeader::GeneratedSlotMethods"
|
1567
|
+
},
|
1565
1568
|
"Primer::OpenProject::BorderGrid": {
|
1566
1569
|
"Cell": "Primer::OpenProject::BorderGrid::Cell",
|
1567
1570
|
"GeneratedSlotMethods": "Primer::OpenProject::BorderGrid::GeneratedSlotMethods"
|
data/static/info_arch.json
CHANGED
@@ -17446,6 +17446,104 @@
|
|
17446
17446
|
|
17447
17447
|
]
|
17448
17448
|
},
|
17449
|
+
{
|
17450
|
+
"fully_qualified_name": "Primer::OpenProject::BorderBox::CollapsibleHeader",
|
17451
|
+
"description": "Add a general description of component here\nAdd additional usage considerations or best practices that may aid the user to use the component correctly.",
|
17452
|
+
"accessibility_docs": "Add any accessibility considerations",
|
17453
|
+
"is_form_component": false,
|
17454
|
+
"is_published": true,
|
17455
|
+
"requires_js": false,
|
17456
|
+
"component": "OpenProject::BorderBox::CollapsibleHeader",
|
17457
|
+
"status": "open_project",
|
17458
|
+
"a11y_reviewed": false,
|
17459
|
+
"short_name": "OpenProjectBorderBoxCollapsibleHeader",
|
17460
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/border_box/collapsible_header.rb",
|
17461
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/border_box/collapsible_header/default/",
|
17462
|
+
"parameters": [
|
17463
|
+
{
|
17464
|
+
"name": "system_arguments",
|
17465
|
+
"type": "Hash",
|
17466
|
+
"default": "N/A",
|
17467
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17468
|
+
}
|
17469
|
+
],
|
17470
|
+
"slots": [
|
17471
|
+
|
17472
|
+
],
|
17473
|
+
"methods": [
|
17474
|
+
|
17475
|
+
],
|
17476
|
+
"previews": [
|
17477
|
+
{
|
17478
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/playground",
|
17479
|
+
"name": "playground",
|
17480
|
+
"snapshot": "false",
|
17481
|
+
"skip_rules": {
|
17482
|
+
"wont_fix": [
|
17483
|
+
"region"
|
17484
|
+
],
|
17485
|
+
"will_fix": [
|
17486
|
+
"color-contrast"
|
17487
|
+
]
|
17488
|
+
}
|
17489
|
+
},
|
17490
|
+
{
|
17491
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/default",
|
17492
|
+
"name": "default",
|
17493
|
+
"snapshot": "true",
|
17494
|
+
"skip_rules": {
|
17495
|
+
"wont_fix": [
|
17496
|
+
"region"
|
17497
|
+
],
|
17498
|
+
"will_fix": [
|
17499
|
+
"color-contrast"
|
17500
|
+
]
|
17501
|
+
}
|
17502
|
+
},
|
17503
|
+
{
|
17504
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/with_count",
|
17505
|
+
"name": "with_count",
|
17506
|
+
"snapshot": "true",
|
17507
|
+
"skip_rules": {
|
17508
|
+
"wont_fix": [
|
17509
|
+
"region"
|
17510
|
+
],
|
17511
|
+
"will_fix": [
|
17512
|
+
"color-contrast"
|
17513
|
+
]
|
17514
|
+
}
|
17515
|
+
},
|
17516
|
+
{
|
17517
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/with_description",
|
17518
|
+
"name": "with_description",
|
17519
|
+
"snapshot": "true",
|
17520
|
+
"skip_rules": {
|
17521
|
+
"wont_fix": [
|
17522
|
+
"region"
|
17523
|
+
],
|
17524
|
+
"will_fix": [
|
17525
|
+
"color-contrast"
|
17526
|
+
]
|
17527
|
+
}
|
17528
|
+
},
|
17529
|
+
{
|
17530
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/collapsed",
|
17531
|
+
"name": "collapsed",
|
17532
|
+
"snapshot": "true",
|
17533
|
+
"skip_rules": {
|
17534
|
+
"wont_fix": [
|
17535
|
+
"region"
|
17536
|
+
],
|
17537
|
+
"will_fix": [
|
17538
|
+
"color-contrast"
|
17539
|
+
]
|
17540
|
+
}
|
17541
|
+
}
|
17542
|
+
],
|
17543
|
+
"subcomponents": [
|
17544
|
+
|
17545
|
+
]
|
17546
|
+
},
|
17449
17547
|
{
|
17450
17548
|
"fully_qualified_name": "Primer::OpenProject::BorderGrid",
|
17451
17549
|
"description": "A set of blocks that are shown below each other with separator lines in between",
|
data/static/previews.json
CHANGED
@@ -2957,6 +2957,79 @@
|
|
2957
2957
|
}
|
2958
2958
|
]
|
2959
2959
|
},
|
2960
|
+
{
|
2961
|
+
"name": "collapsible_header",
|
2962
|
+
"component": "OpenProject::BorderBox::CollapsibleHeader",
|
2963
|
+
"status": "open_project",
|
2964
|
+
"lookup_path": "primer/open_project/border_box/collapsible_header",
|
2965
|
+
"examples": [
|
2966
|
+
{
|
2967
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/playground",
|
2968
|
+
"name": "playground",
|
2969
|
+
"snapshot": "false",
|
2970
|
+
"skip_rules": {
|
2971
|
+
"wont_fix": [
|
2972
|
+
"region"
|
2973
|
+
],
|
2974
|
+
"will_fix": [
|
2975
|
+
"color-contrast"
|
2976
|
+
]
|
2977
|
+
}
|
2978
|
+
},
|
2979
|
+
{
|
2980
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/default",
|
2981
|
+
"name": "default",
|
2982
|
+
"snapshot": "true",
|
2983
|
+
"skip_rules": {
|
2984
|
+
"wont_fix": [
|
2985
|
+
"region"
|
2986
|
+
],
|
2987
|
+
"will_fix": [
|
2988
|
+
"color-contrast"
|
2989
|
+
]
|
2990
|
+
}
|
2991
|
+
},
|
2992
|
+
{
|
2993
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/with_count",
|
2994
|
+
"name": "with_count",
|
2995
|
+
"snapshot": "true",
|
2996
|
+
"skip_rules": {
|
2997
|
+
"wont_fix": [
|
2998
|
+
"region"
|
2999
|
+
],
|
3000
|
+
"will_fix": [
|
3001
|
+
"color-contrast"
|
3002
|
+
]
|
3003
|
+
}
|
3004
|
+
},
|
3005
|
+
{
|
3006
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/with_description",
|
3007
|
+
"name": "with_description",
|
3008
|
+
"snapshot": "true",
|
3009
|
+
"skip_rules": {
|
3010
|
+
"wont_fix": [
|
3011
|
+
"region"
|
3012
|
+
],
|
3013
|
+
"will_fix": [
|
3014
|
+
"color-contrast"
|
3015
|
+
]
|
3016
|
+
}
|
3017
|
+
},
|
3018
|
+
{
|
3019
|
+
"preview_path": "primer/open_project/border_box/collapsible_header/collapsed",
|
3020
|
+
"name": "collapsed",
|
3021
|
+
"snapshot": "true",
|
3022
|
+
"skip_rules": {
|
3023
|
+
"wont_fix": [
|
3024
|
+
"region"
|
3025
|
+
],
|
3026
|
+
"will_fix": [
|
3027
|
+
"color-contrast"
|
3028
|
+
]
|
3029
|
+
}
|
3030
|
+
}
|
3031
|
+
]
|
3032
|
+
},
|
2960
3033
|
{
|
2961
3034
|
"name": "counter",
|
2962
3035
|
"component": "Counter",
|
data/static/statuses.json
CHANGED
@@ -117,6 +117,7 @@
|
|
117
117
|
"Primer::IconButton": "deprecated",
|
118
118
|
"Primer::LayoutComponent": "deprecated",
|
119
119
|
"Primer::Navigation::TabComponent": "deprecated",
|
120
|
+
"Primer::OpenProject::BorderBox::CollapsibleHeader": "open_project",
|
120
121
|
"Primer::OpenProject::BorderGrid": "open_project",
|
121
122
|
"Primer::OpenProject::BorderGrid::Cell": "open_project",
|
122
123
|
"Primer::OpenProject::DangerDialog": "open_project",
|