openproject-primer_view_components 0.36.2 → 0.37.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- 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_grid.rb +2 -2
- data/app/components/primer/open_project/side_panel/section.css +1 -0
- data/app/components/primer/open_project/side_panel/section.css.json +12 -0
- data/app/components/primer/open_project/side_panel/section.css.map +1 -0
- data/app/components/primer/open_project/side_panel/section.html.erb +29 -0
- data/app/components/primer/open_project/side_panel/section.pcss +27 -0
- data/app/components/primer/open_project/side_panel/section.rb +65 -0
- data/app/components/primer/open_project/side_panel.html.erb +1 -0
- data/app/components/primer/open_project/side_panel.rb +48 -0
- data/app/components/primer/primer.pcss +1 -0
- data/lib/primer/view_components/version.rb +2 -2
- data/previews/primer/open_project/side_panel_preview/default.html.erb +40 -0
- data/previews/primer/open_project/side_panel_preview/playground.html.erb +25 -0
- data/previews/primer/open_project/side_panel_preview/with_component.html.erb +36 -0
- data/previews/primer/open_project/side_panel_preview.rb +38 -0
- data/static/arguments.json +27 -0
- data/static/audited_at.json +2 -0
- data/static/classes.json +15 -0
- data/static/constants.json +20 -0
- data/static/info_arch.json +152 -0
- data/static/previews.json +47 -0
- data/static/statuses.json +2 -0
- metadata +14 -2
@@ -9,8 +9,8 @@ module Primer
|
|
9
9
|
# Use to render a block inside the grid
|
10
10
|
#
|
11
11
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
12
|
-
renders_many :rows, lambda { |**system_arguments|
|
13
|
-
Primer::OpenProject::BorderGrid::Cell.new(**system_arguments)
|
12
|
+
renders_many :rows, lambda { |**system_arguments, &block|
|
13
|
+
Primer::OpenProject::BorderGrid::Cell.new(**system_arguments, &block)
|
14
14
|
}
|
15
15
|
|
16
16
|
# @param spacious [Boolean] Whether to add margin to the bottom of the component.
|
@@ -0,0 +1 @@
|
|
1
|
+
.SidePanel-sectionHeader{align-items:center;display:flex;height:32px;margin-bottom:8px}.SidePanel-sectionCounter{margin-left:8px}.SidePanel-sectionAction{display:flex;flex:1;justify-content:right}.SidePanel-sectionContent,.SidePanel-sectionDescription{margin-top:0}.SidePanel-sectionContent:not(:last-child),.SidePanel-sectionDescription:not(:last-child){margin-bottom:16px}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"name": "open_project/side_panel/section",
|
3
|
+
"selectors": [
|
4
|
+
".SidePanel-sectionHeader",
|
5
|
+
".SidePanel-sectionCounter",
|
6
|
+
".SidePanel-sectionAction",
|
7
|
+
".SidePanel-sectionContent",
|
8
|
+
".SidePanel-sectionDescription",
|
9
|
+
".SidePanel-sectionContent:not(:last-child)",
|
10
|
+
".SidePanel-sectionDescription:not(:last-child)"
|
11
|
+
]
|
12
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["section.pcss"],"names":[],"mappings":"AAEA,yBAEE,kBAAmB,CADnB,YAAa,CAEb,WAAY,CACZ,iBACF,CAEA,0BACE,eACF,CAEA,yBAGE,YAAa,CADb,MAAO,CADP,qBAGF,CAEA,wDAEE,YAKF,CAHE,0FACE,kBACF","file":"section.css","sourcesContent":["/* CSS for OpenProject::SidePanel::Section */\n\n.SidePanel-sectionHeader {\n display: flex;\n align-items: center;\n height: 32px;\n margin-bottom: 8px;\n}\n\n.SidePanel-sectionCounter {\n margin-left: 8px;\n}\n\n.SidePanel-sectionAction {\n justify-content: right;\n flex: 1;\n display: flex;\n}\n\n.SidePanel-sectionContent,\n.SidePanel-sectionDescription {\n margin-top: 0;\n\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n}\n"]}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%= render Primer::BaseComponent.new(**@system_arguments) do %>
|
2
|
+
<div class="SidePanel-sectionHeader">
|
3
|
+
<%= title %>
|
4
|
+
<% if counter %>
|
5
|
+
<div class="SidePanel-sectionCounter">
|
6
|
+
<%= counter %>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
9
|
+
<% if action %>
|
10
|
+
<div class="SidePanel-sectionAction">
|
11
|
+
<%= action %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<% if description? %>
|
17
|
+
<div class="SidePanel-sectionDescription">
|
18
|
+
<%= description %>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<div class="SidePanel-sectionContent">
|
23
|
+
<%= content %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<% if footer? %>
|
27
|
+
<%= footer %>
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/* CSS for OpenProject::SidePanel::Section */
|
2
|
+
|
3
|
+
.SidePanel-sectionHeader {
|
4
|
+
display: flex;
|
5
|
+
align-items: center;
|
6
|
+
height: 32px;
|
7
|
+
margin-bottom: 8px;
|
8
|
+
}
|
9
|
+
|
10
|
+
.SidePanel-sectionCounter {
|
11
|
+
margin-left: 8px;
|
12
|
+
}
|
13
|
+
|
14
|
+
.SidePanel-sectionAction {
|
15
|
+
justify-content: right;
|
16
|
+
flex: 1;
|
17
|
+
display: flex;
|
18
|
+
}
|
19
|
+
|
20
|
+
.SidePanel-sectionContent,
|
21
|
+
.SidePanel-sectionDescription {
|
22
|
+
margin-top: 0;
|
23
|
+
|
24
|
+
&:not(:last-child) {
|
25
|
+
margin-bottom: 16px;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
class SidePanel
|
6
|
+
# SidePanel::Section is an internal component that deals with individual sections of a sidepanel.
|
7
|
+
class Section < Primer::Component
|
8
|
+
status :open_project
|
9
|
+
|
10
|
+
TITLE_TAG_FALLBACK = :h4
|
11
|
+
TITLE_TAG_OPTIONS = [:h1, :h2, :h3, TITLE_TAG_FALLBACK, :h5, :h6].freeze
|
12
|
+
|
13
|
+
renders_one :title, lambda { |tag: TITLE_TAG_FALLBACK, **system_arguments, &block|
|
14
|
+
system_arguments[:tag] = fetch_or_fallback(TITLE_TAG_OPTIONS, tag, TITLE_TAG_FALLBACK)
|
15
|
+
Primer::BaseComponent.new(**system_arguments, &block)
|
16
|
+
}
|
17
|
+
|
18
|
+
renders_one :counter, Primer::Beta::Counter
|
19
|
+
|
20
|
+
renders_one :action, types: {
|
21
|
+
icon: lambda { |**system_arguments, &block|
|
22
|
+
system_arguments[:scheme] ||= :invisible
|
23
|
+
Primer::Beta::IconButton.new(**system_arguments, &block)
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
renders_one :description, lambda { |**system_arguments, &block|
|
28
|
+
system_arguments[:color] = :subtle
|
29
|
+
Primer::Beta::Text.new(**system_arguments, &block)
|
30
|
+
}
|
31
|
+
|
32
|
+
renders_one :footer, types: {
|
33
|
+
button: lambda { |**system_arguments, &block|
|
34
|
+
defaults = {
|
35
|
+
scheme: :link,
|
36
|
+
color: :default,
|
37
|
+
font_weight: :bold,
|
38
|
+
underline: false
|
39
|
+
}
|
40
|
+
system_arguments.reverse_merge!(defaults)
|
41
|
+
|
42
|
+
system_arguments[:classes] = class_names(
|
43
|
+
"SidePanel-sectionFooter",
|
44
|
+
system_arguments[:classes]
|
45
|
+
)
|
46
|
+
|
47
|
+
Primer::Beta::Button.new(**system_arguments, &block)
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
DEFAULT_TAG = :section
|
52
|
+
TAG_OPTIONS = [DEFAULT_TAG, :div, :span].freeze
|
53
|
+
|
54
|
+
def initialize(tag: DEFAULT_TAG, **system_arguments)
|
55
|
+
@system_arguments = system_arguments
|
56
|
+
@system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, DEFAULT_TAG)
|
57
|
+
end
|
58
|
+
|
59
|
+
def render?
|
60
|
+
title? && content?
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render(@border_grid) %>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
# Add a general description of component here
|
6
|
+
# Add additional usage considerations or best practices that may aid the user to use the component correctly.
|
7
|
+
# @accessibility Add any accessibility considerations
|
8
|
+
class SidePanel < Primer::Component
|
9
|
+
status :open_project
|
10
|
+
|
11
|
+
# @param grid_row_arguments [Hash] Arguments to pass to +Primer::OpenProject::BorderGrid::Cell+ %>
|
12
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
13
|
+
# A side panel consists of one or multiple sections
|
14
|
+
renders_many :sections, lambda { |component = nil, grid_row_arguments: {}, **system_arguments, &block|
|
15
|
+
if component.nil?
|
16
|
+
@border_grid.with_row(**grid_row_arguments) do
|
17
|
+
render(Primer::OpenProject::SidePanel::Section.new(**system_arguments)) do |section|
|
18
|
+
evaluate_block(section, &block)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
elsif component.render?
|
22
|
+
@border_grid.with_row(**grid_row_arguments) do
|
23
|
+
render(component)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
}
|
27
|
+
|
28
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
29
|
+
def initialize(**system_arguments)
|
30
|
+
@system_arguments = system_arguments
|
31
|
+
@system_arguments[:classes] = class_names(
|
32
|
+
"SidePanel",
|
33
|
+
@system_arguments[:classes]
|
34
|
+
)
|
35
|
+
|
36
|
+
@border_grid = Primer::OpenProject::BorderGrid.new(**@system_arguments)
|
37
|
+
end
|
38
|
+
|
39
|
+
def render?
|
40
|
+
sections.present?
|
41
|
+
end
|
42
|
+
|
43
|
+
def before_render
|
44
|
+
content
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%=
|
2
|
+
render(Primer::Alpha::Layout.new) do |component|
|
3
|
+
component.with_main do
|
4
|
+
"Main content"
|
5
|
+
end
|
6
|
+
component.with_sidebar(row_placement: :start, col_placement: :end) do
|
7
|
+
render(Primer::OpenProject::SidePanel.new) do |panel|
|
8
|
+
panel.with_section do |section|
|
9
|
+
section.with_title { "Attributes" }
|
10
|
+
section.with_counter(count: 5)
|
11
|
+
section.with_description do
|
12
|
+
"Attached files are available to all meeting participants. You can also drag and drop these into agenda item notes."
|
13
|
+
end
|
14
|
+
|
15
|
+
section.with_action_icon(icon: :pencil, 'aria-label': 'Edit')
|
16
|
+
section.with_footer_button(tag: :a, href: '#') do |button|
|
17
|
+
button.with_leading_visual_icon(icon: :pencil)
|
18
|
+
"Additional action"
|
19
|
+
end
|
20
|
+
|
21
|
+
"Section content"
|
22
|
+
end
|
23
|
+
|
24
|
+
panel.with_section do |section|
|
25
|
+
section.with_title { "Without counter" }
|
26
|
+
section.with_action_icon(icon: :gear, 'aria-label': 'Manage')
|
27
|
+
|
28
|
+
"Some more content here"
|
29
|
+
end
|
30
|
+
|
31
|
+
panel.with_section do |section|
|
32
|
+
section.with_title { "Without action" }
|
33
|
+
|
34
|
+
"Even more content here"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
%>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%=
|
2
|
+
render(Primer::Alpha::Layout.new) do |component|
|
3
|
+
component.with_main do
|
4
|
+
"Main content"
|
5
|
+
end
|
6
|
+
|
7
|
+
component.with_sidebar(row_placement: :start, col_placement: :end) do
|
8
|
+
render(Primer::OpenProject::SidePanel.new) do |panel|
|
9
|
+
panel.with_section do |section|
|
10
|
+
section.with_title { "Attributes" }
|
11
|
+
section.with_counter(count: counter)
|
12
|
+
section.with_description { description } if show_description
|
13
|
+
|
14
|
+
section.with_action_icon(icon: :pencil, 'aria-label': 'Edit') if show_action
|
15
|
+
section.with_footer_button(tag: :a, href: '#') do |button|
|
16
|
+
button.with_leading_visual_icon(icon: :pencil)
|
17
|
+
"Additional action"
|
18
|
+
end if show_footer_action
|
19
|
+
|
20
|
+
"Section content"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
%>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<%=
|
2
|
+
clazz = Class.new(ViewComponent::Base) do
|
3
|
+
def self.name
|
4
|
+
"CustomComponent"
|
5
|
+
end
|
6
|
+
|
7
|
+
def call
|
8
|
+
render(Primer::OpenProject::SidePanel::Section.new) do |section|
|
9
|
+
section.with_title { "My custom component" }
|
10
|
+
section.with_counter(count: 5)
|
11
|
+
section.with_description do
|
12
|
+
"Some text here"
|
13
|
+
end
|
14
|
+
|
15
|
+
section.with_action_icon(icon: :pencil, 'aria-label': 'Edit')
|
16
|
+
section.with_footer_button(tag: :a, href: '#') do |button|
|
17
|
+
button.with_leading_visual_icon(icon: :pencil)
|
18
|
+
"Additional action"
|
19
|
+
end
|
20
|
+
|
21
|
+
"Section content"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
render(Primer::Alpha::Layout.new) do |component|
|
27
|
+
component.with_main do
|
28
|
+
"Main content"
|
29
|
+
end
|
30
|
+
component.with_sidebar(row_placement: :start, col_placement: :end) do
|
31
|
+
render(Primer::OpenProject::SidePanel.new) do |panel|
|
32
|
+
panel.with_section(clazz.new)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
%>
|
@@ -0,0 +1,38 @@
|
|
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
|
+
# @label SidePanel
|
9
|
+
class SidePanelPreview < ViewComponent::Preview
|
10
|
+
# @label Playground
|
11
|
+
# @param description text
|
12
|
+
# @param show_description toggle
|
13
|
+
# @param show_action toggle
|
14
|
+
# @param show_footer_action toggle
|
15
|
+
# @param counter number
|
16
|
+
def playground(description: "Some information", counter: 12, show_description: true, show_action: true, show_footer_action: true)
|
17
|
+
render_with_template(
|
18
|
+
locals: {
|
19
|
+
description: description,
|
20
|
+
counter: counter,
|
21
|
+
show_description: show_description,
|
22
|
+
show_action: show_action,
|
23
|
+
show_footer_action: show_footer_action
|
24
|
+
}
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
# @label Default
|
29
|
+
# @snapshot
|
30
|
+
def default
|
31
|
+
end
|
32
|
+
|
33
|
+
# @label With custom component
|
34
|
+
def with_component
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/static/arguments.json
CHANGED
@@ -5053,6 +5053,33 @@
|
|
5053
5053
|
}
|
5054
5054
|
]
|
5055
5055
|
},
|
5056
|
+
{
|
5057
|
+
"component": "OpenProject::SidePanel",
|
5058
|
+
"status": "open_project",
|
5059
|
+
"a11y_reviewed": false,
|
5060
|
+
"short_name": "OpenProjectSidePanel",
|
5061
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/side_panel.rb",
|
5062
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/side_panel/default/",
|
5063
|
+
"parameters": [
|
5064
|
+
{
|
5065
|
+
"name": "system_arguments",
|
5066
|
+
"type": "Hash",
|
5067
|
+
"default": "N/A",
|
5068
|
+
"description": "[System arguments](/system-arguments)"
|
5069
|
+
}
|
5070
|
+
]
|
5071
|
+
},
|
5072
|
+
{
|
5073
|
+
"component": "OpenProject::SidePanel::Section",
|
5074
|
+
"status": "open_project",
|
5075
|
+
"a11y_reviewed": false,
|
5076
|
+
"short_name": "OpenProjectSidePanelSection",
|
5077
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/side_panel/section.rb",
|
5078
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/side_panel/section/default/",
|
5079
|
+
"parameters": [
|
5080
|
+
|
5081
|
+
]
|
5082
|
+
},
|
5056
5083
|
{
|
5057
5084
|
"component": "OpenProject::SubHeader",
|
5058
5085
|
"status": "open_project",
|
data/static/audited_at.json
CHANGED
@@ -123,6 +123,8 @@
|
|
123
123
|
"Primer::OpenProject::PageHeader": "",
|
124
124
|
"Primer::OpenProject::PageHeader::Dialog": "",
|
125
125
|
"Primer::OpenProject::PageHeader::Menu": "",
|
126
|
+
"Primer::OpenProject::SidePanel": "",
|
127
|
+
"Primer::OpenProject::SidePanel::Section": "",
|
126
128
|
"Primer::OpenProject::SubHeader": "",
|
127
129
|
"Primer::OpenProject::ZenModeButton": "",
|
128
130
|
"Primer::Tooltip": "",
|
data/static/classes.json
CHANGED
@@ -534,6 +534,21 @@
|
|
534
534
|
"SegmentedControl-item": [
|
535
535
|
"Primer::Alpha::SegmentedControl"
|
536
536
|
],
|
537
|
+
"SidePanel-sectionAction": [
|
538
|
+
"Primer::OpenProject::SidePanel::Section"
|
539
|
+
],
|
540
|
+
"SidePanel-sectionContent": [
|
541
|
+
"Primer::OpenProject::SidePanel::Section"
|
542
|
+
],
|
543
|
+
"SidePanel-sectionCounter": [
|
544
|
+
"Primer::OpenProject::SidePanel::Section"
|
545
|
+
],
|
546
|
+
"SidePanel-sectionDescription": [
|
547
|
+
"Primer::OpenProject::SidePanel::Section"
|
548
|
+
],
|
549
|
+
"SidePanel-sectionHeader": [
|
550
|
+
"Primer::OpenProject::SidePanel::Section"
|
551
|
+
],
|
537
552
|
"State": [
|
538
553
|
"Primer::Beta::State"
|
539
554
|
],
|
data/static/constants.json
CHANGED
@@ -1480,6 +1480,26 @@
|
|
1480
1480
|
},
|
1481
1481
|
"Primer::OpenProject::PageHeader::Menu": {
|
1482
1482
|
},
|
1483
|
+
"Primer::OpenProject::SidePanel": {
|
1484
|
+
"Section": "Primer::OpenProject::SidePanel::Section"
|
1485
|
+
},
|
1486
|
+
"Primer::OpenProject::SidePanel::Section": {
|
1487
|
+
"DEFAULT_TAG": "section",
|
1488
|
+
"TAG_OPTIONS": [
|
1489
|
+
"section",
|
1490
|
+
"div",
|
1491
|
+
"span"
|
1492
|
+
],
|
1493
|
+
"TITLE_TAG_FALLBACK": "h4",
|
1494
|
+
"TITLE_TAG_OPTIONS": [
|
1495
|
+
"h1",
|
1496
|
+
"h2",
|
1497
|
+
"h3",
|
1498
|
+
"h4",
|
1499
|
+
"h5",
|
1500
|
+
"h6"
|
1501
|
+
]
|
1502
|
+
},
|
1483
1503
|
"Primer::OpenProject::SubHeader": {
|
1484
1504
|
"HIDDEN_FILTER_TARGET_SELECTOR": "sub-header.hiddenItemsOnExpandedFilter",
|
1485
1505
|
"SHOWN_FILTER_TARGET_SELECTOR": "sub-header.shownItemsOnExpandedFilter"
|
data/static/info_arch.json
CHANGED
@@ -17138,6 +17138,158 @@
|
|
17138
17138
|
|
17139
17139
|
]
|
17140
17140
|
},
|
17141
|
+
{
|
17142
|
+
"fully_qualified_name": "Primer::OpenProject::SidePanel",
|
17143
|
+
"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.",
|
17144
|
+
"accessibility_docs": "Add any accessibility considerations",
|
17145
|
+
"is_form_component": false,
|
17146
|
+
"is_published": true,
|
17147
|
+
"requires_js": false,
|
17148
|
+
"component": "OpenProject::SidePanel",
|
17149
|
+
"status": "open_project",
|
17150
|
+
"a11y_reviewed": false,
|
17151
|
+
"short_name": "OpenProjectSidePanel",
|
17152
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/side_panel.rb",
|
17153
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/side_panel/default/",
|
17154
|
+
"parameters": [
|
17155
|
+
{
|
17156
|
+
"name": "system_arguments",
|
17157
|
+
"type": "Hash",
|
17158
|
+
"default": "N/A",
|
17159
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17160
|
+
}
|
17161
|
+
],
|
17162
|
+
"slots": [
|
17163
|
+
{
|
17164
|
+
"name": "sections",
|
17165
|
+
"description": "A side panel consists of one or multiple sections",
|
17166
|
+
"parameters": [
|
17167
|
+
{
|
17168
|
+
"name": "grid_row_arguments",
|
17169
|
+
"type": "Hash",
|
17170
|
+
"default": "N/A",
|
17171
|
+
"description": "Arguments to pass to +Primer::OpenProject::BorderGrid::Cell+ %>"
|
17172
|
+
},
|
17173
|
+
{
|
17174
|
+
"name": "system_arguments",
|
17175
|
+
"type": "Hash",
|
17176
|
+
"default": "N/A",
|
17177
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17178
|
+
}
|
17179
|
+
]
|
17180
|
+
}
|
17181
|
+
],
|
17182
|
+
"methods": [
|
17183
|
+
|
17184
|
+
],
|
17185
|
+
"previews": [
|
17186
|
+
{
|
17187
|
+
"preview_path": "primer/open_project/side_panel/playground",
|
17188
|
+
"name": "playground",
|
17189
|
+
"snapshot": "false",
|
17190
|
+
"skip_rules": {
|
17191
|
+
"wont_fix": [
|
17192
|
+
"region"
|
17193
|
+
],
|
17194
|
+
"will_fix": [
|
17195
|
+
"color-contrast"
|
17196
|
+
]
|
17197
|
+
}
|
17198
|
+
},
|
17199
|
+
{
|
17200
|
+
"preview_path": "primer/open_project/side_panel/default",
|
17201
|
+
"name": "default",
|
17202
|
+
"snapshot": "true",
|
17203
|
+
"skip_rules": {
|
17204
|
+
"wont_fix": [
|
17205
|
+
"region"
|
17206
|
+
],
|
17207
|
+
"will_fix": [
|
17208
|
+
"color-contrast"
|
17209
|
+
]
|
17210
|
+
}
|
17211
|
+
},
|
17212
|
+
{
|
17213
|
+
"preview_path": "primer/open_project/side_panel/with_component",
|
17214
|
+
"name": "with_component",
|
17215
|
+
"snapshot": "false",
|
17216
|
+
"skip_rules": {
|
17217
|
+
"wont_fix": [
|
17218
|
+
"region"
|
17219
|
+
],
|
17220
|
+
"will_fix": [
|
17221
|
+
"color-contrast"
|
17222
|
+
]
|
17223
|
+
}
|
17224
|
+
}
|
17225
|
+
],
|
17226
|
+
"subcomponents": [
|
17227
|
+
|
17228
|
+
]
|
17229
|
+
},
|
17230
|
+
{
|
17231
|
+
"fully_qualified_name": "Primer::OpenProject::SidePanel::Section",
|
17232
|
+
"description": "SidePanel::Section is an internal component that deals with individual sections of a sidepanel.",
|
17233
|
+
"accessibility_docs": null,
|
17234
|
+
"is_form_component": false,
|
17235
|
+
"is_published": true,
|
17236
|
+
"requires_js": false,
|
17237
|
+
"component": "OpenProject::SidePanel::Section",
|
17238
|
+
"status": "open_project",
|
17239
|
+
"a11y_reviewed": false,
|
17240
|
+
"short_name": "OpenProjectSidePanelSection",
|
17241
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/side_panel/section.rb",
|
17242
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/side_panel/section/default/",
|
17243
|
+
"parameters": [
|
17244
|
+
|
17245
|
+
],
|
17246
|
+
"slots": [
|
17247
|
+
{
|
17248
|
+
"name": "title",
|
17249
|
+
"description": null,
|
17250
|
+
"parameters": [
|
17251
|
+
|
17252
|
+
]
|
17253
|
+
},
|
17254
|
+
{
|
17255
|
+
"name": "counter",
|
17256
|
+
"description": null,
|
17257
|
+
"parameters": [
|
17258
|
+
|
17259
|
+
]
|
17260
|
+
},
|
17261
|
+
{
|
17262
|
+
"name": "action",
|
17263
|
+
"description": null,
|
17264
|
+
"parameters": [
|
17265
|
+
|
17266
|
+
]
|
17267
|
+
},
|
17268
|
+
{
|
17269
|
+
"name": "description",
|
17270
|
+
"description": null,
|
17271
|
+
"parameters": [
|
17272
|
+
|
17273
|
+
]
|
17274
|
+
},
|
17275
|
+
{
|
17276
|
+
"name": "footer",
|
17277
|
+
"description": null,
|
17278
|
+
"parameters": [
|
17279
|
+
|
17280
|
+
]
|
17281
|
+
}
|
17282
|
+
],
|
17283
|
+
"methods": [
|
17284
|
+
|
17285
|
+
],
|
17286
|
+
"previews": [
|
17287
|
+
|
17288
|
+
],
|
17289
|
+
"subcomponents": [
|
17290
|
+
|
17291
|
+
]
|
17292
|
+
},
|
17141
17293
|
{
|
17142
17294
|
"fully_qualified_name": "Primer::OpenProject::SubHeader",
|
17143
17295
|
"description": "The SubHeader contains specific actions to modify the page content below, e.g a filter button or a create button\nIt should not be used stand alone, but in combination with a PageHeader, either as a direct sibling or as part of a tab content",
|
data/static/previews.json
CHANGED
@@ -6307,6 +6307,53 @@
|
|
6307
6307
|
}
|
6308
6308
|
]
|
6309
6309
|
},
|
6310
|
+
{
|
6311
|
+
"name": "side_panel",
|
6312
|
+
"component": "OpenProject::SidePanel",
|
6313
|
+
"status": "open_project",
|
6314
|
+
"lookup_path": "primer/open_project/side_panel",
|
6315
|
+
"examples": [
|
6316
|
+
{
|
6317
|
+
"preview_path": "primer/open_project/side_panel/playground",
|
6318
|
+
"name": "playground",
|
6319
|
+
"snapshot": "false",
|
6320
|
+
"skip_rules": {
|
6321
|
+
"wont_fix": [
|
6322
|
+
"region"
|
6323
|
+
],
|
6324
|
+
"will_fix": [
|
6325
|
+
"color-contrast"
|
6326
|
+
]
|
6327
|
+
}
|
6328
|
+
},
|
6329
|
+
{
|
6330
|
+
"preview_path": "primer/open_project/side_panel/default",
|
6331
|
+
"name": "default",
|
6332
|
+
"snapshot": "true",
|
6333
|
+
"skip_rules": {
|
6334
|
+
"wont_fix": [
|
6335
|
+
"region"
|
6336
|
+
],
|
6337
|
+
"will_fix": [
|
6338
|
+
"color-contrast"
|
6339
|
+
]
|
6340
|
+
}
|
6341
|
+
},
|
6342
|
+
{
|
6343
|
+
"preview_path": "primer/open_project/side_panel/with_component",
|
6344
|
+
"name": "with_component",
|
6345
|
+
"snapshot": "false",
|
6346
|
+
"skip_rules": {
|
6347
|
+
"wont_fix": [
|
6348
|
+
"region"
|
6349
|
+
],
|
6350
|
+
"will_fix": [
|
6351
|
+
"color-contrast"
|
6352
|
+
]
|
6353
|
+
}
|
6354
|
+
}
|
6355
|
+
]
|
6356
|
+
},
|
6310
6357
|
{
|
6311
6358
|
"name": "spinner",
|
6312
6359
|
"component": "Spinner",
|