openproject-primer_view_components 0.36.2 → 0.37.1
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 +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",
|