openproject-primer_view_components 0.43.0 → 0.44.0
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/images/loading_indicator.svg +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/feedback_dialog.html.erb +15 -0
- data/app/components/primer/open_project/feedback_dialog.rb +64 -0
- data/app/components/primer/open_project/feedback_message.html.erb +1 -0
- data/app/components/primer/open_project/feedback_message.rb +53 -0
- data/app/components/primer/open_project/sub_header.css +1 -1
- data/app/components/primer/open_project/sub_header.css.json +1 -0
- data/app/components/primer/open_project/sub_header.css.map +1 -1
- data/app/components/primer/open_project/sub_header.pcss +3 -2
- data/app/components/primer/open_project/sub_header_element.js +2 -2
- data/app/components/primer/open_project/sub_header_element.ts +2 -2
- data/lib/primer/view_components/version.rb +1 -1
- data/previews/primer/open_project/feedback_dialog_preview/additional_content.html.erb +9 -0
- data/previews/primer/open_project/feedback_dialog_preview/custom_footer.html.erb +10 -0
- data/previews/primer/open_project/feedback_dialog_preview/playground.html.erb +18 -0
- data/previews/primer/open_project/feedback_dialog_preview.rb +70 -0
- data/previews/primer/open_project/feedback_message_preview.rb +58 -0
- data/static/arguments.json +44 -0
- data/static/audited_at.json +2 -0
- data/static/classes.json +3 -0
- data/static/constants.json +4 -0
- data/static/info_arch.json +269 -0
- data/static/previews.json +159 -0
- data/static/statuses.json +2 -0
- metadata +12 -2
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= render @dialog do |dialog| %>
|
2
|
+
<% dialog.with_body do %>
|
3
|
+
<%= feedback_message %>
|
4
|
+
<% if additional_content.present? %>
|
5
|
+
<%= additional_content %>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|
8
|
+
<% dialog.with_footer do %>
|
9
|
+
<% if footer.present? %>
|
10
|
+
<%= footer %>
|
11
|
+
<% else %>
|
12
|
+
<%= render(Primer::Beta::Button.new("data-close-dialog-id": @system_arguments[:id])) { I18n.t("button_close") } %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
# A pre-configured dialog which includes the FeedbackMessage
|
6
|
+
class FeedbackDialog < Primer::Component
|
7
|
+
status :open_project
|
8
|
+
|
9
|
+
# A feedback message with some defaults that are necessary for rendering nicely
|
10
|
+
#
|
11
|
+
# @param heading [String] the heading for the success message
|
12
|
+
# @param description [String] the description for the success message
|
13
|
+
# @param icon_arguments [Hash] the system_arguments for the icon
|
14
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
15
|
+
renders_one :feedback_message, lambda { |icon_arguments: {}, **system_arguments|
|
16
|
+
system_arguments[:border] = false
|
17
|
+
Primer::OpenProject::FeedbackMessage.new(icon_arguments: icon_arguments, **system_arguments)
|
18
|
+
}
|
19
|
+
|
20
|
+
# Optional additional_content like a form input or toast.
|
21
|
+
#
|
22
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
23
|
+
renders_one :additional_content, lambda { |**system_arguments|
|
24
|
+
deny_tag_argument(**system_arguments)
|
25
|
+
system_arguments[:tag] = :div
|
26
|
+
system_arguments[:classes] = class_names(
|
27
|
+
system_arguments[:classes],
|
28
|
+
"FeedbackDialog-additionalContent"
|
29
|
+
)
|
30
|
+
|
31
|
+
system_arguments[:display] ||= :flex
|
32
|
+
system_arguments[:align_items] ||= :center
|
33
|
+
system_arguments[:justify_content] ||= :center
|
34
|
+
system_arguments[:mb] ||= 3
|
35
|
+
|
36
|
+
Primer::BaseComponent.new(**system_arguments)
|
37
|
+
}
|
38
|
+
|
39
|
+
renders_one :footer
|
40
|
+
|
41
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
42
|
+
def initialize(**system_arguments)
|
43
|
+
@system_arguments = system_arguments
|
44
|
+
@system_arguments[:classes] = class_names(
|
45
|
+
system_arguments[:classes],
|
46
|
+
"FeedbackDialog"
|
47
|
+
)
|
48
|
+
@system_arguments[:id] ||= self.class.generate_id
|
49
|
+
|
50
|
+
@dialog = Primer::Alpha::Dialog.new(title: @system_arguments[:title], subtitle: nil, visually_hide_title: true, **@system_arguments)
|
51
|
+
end
|
52
|
+
|
53
|
+
delegate :header?, :header, :with_header, :with_header_content,
|
54
|
+
:show_button?, :show_button, :with_show_button, :with_show_button_content,
|
55
|
+
to: :@dialog
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def before_render
|
60
|
+
content
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render(@blankslate) %>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
# A view component for messages, inspired by the Primer Blankslate,
|
6
|
+
# which serves a different use-case (messages for when data is missing).
|
7
|
+
# We decided to wrap the Blankslate, because we don't want to have to adapt
|
8
|
+
# lots of different usages if Primer decides to change the Blankslate
|
9
|
+
# in a way that does not go well with our "misuse".
|
10
|
+
class FeedbackMessage < Primer::Component
|
11
|
+
status :open_project
|
12
|
+
|
13
|
+
# @param icon_arguments [Hash] special arguments for the icon
|
14
|
+
# @param loading [Boolean] Show a loading spinner instead of an icon
|
15
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
16
|
+
def initialize(icon_arguments: {}, loading: false, **system_arguments)
|
17
|
+
@system_arguments = system_arguments
|
18
|
+
@icon_arguments = icon_arguments
|
19
|
+
@system_arguments[:classes] = class_names(
|
20
|
+
system_arguments[:classes],
|
21
|
+
"FeedbackMessage"
|
22
|
+
)
|
23
|
+
|
24
|
+
@icon_arguments[:icon] ||= :"check-circle"
|
25
|
+
@icon_arguments[:color] ||= :success
|
26
|
+
|
27
|
+
@loading = loading
|
28
|
+
|
29
|
+
@blankslate = Primer::Beta::Blankslate.new(**@system_arguments)
|
30
|
+
end
|
31
|
+
|
32
|
+
delegate :description?, :description, :with_description, :with_description_content,
|
33
|
+
:heading?, :heading, :with_heading, :with_heading_content,
|
34
|
+
to: :@blankslate
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def before_render
|
39
|
+
if @loading
|
40
|
+
@blankslate.with_visual_image(src: asset_path("loading_indicator.svg"), alt: I18n.t(:label_loading))
|
41
|
+
else
|
42
|
+
@blankslate.with_visual_icon(size: :medium, **@icon_arguments)
|
43
|
+
end
|
44
|
+
|
45
|
+
content
|
46
|
+
end
|
47
|
+
|
48
|
+
def render?
|
49
|
+
heading.present?
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1 +1 @@
|
|
1
|
-
.SubHeader{align-items:center;display:grid;
|
1
|
+
.SubHeader{align-items:center;display:grid;grid-template-areas:"left middle right" "bottom bottom bottom";grid-template-columns:auto 1fr auto;margin-bottom:16px}.SubHeader--expandedSearch{grid-template-areas:"left left left" "bottom bottom bottom"}.SubHeader-rightPane{align-items:center;column-gap:12px;display:flex;grid-area:right}.SubHeader-middlePane{grid-area:middle;text-align:center}.SubHeader-bottomPane{grid-area:bottom}.SubHeader-leftPane{align-items:center;display:flex;gap:12px;grid-area:left;width:100%}.SubHeader-filterContainer{display:flex;gap:8px;width:100%}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["sub_header.pcss"],"names":[],"mappings":"AAEA,WAII,kBAAmB,CAHnB,YAAa,
|
1
|
+
{"version":3,"sources":["sub_header.pcss"],"names":[],"mappings":"AAEA,WAII,kBAAmB,CAHnB,YAAa,CACb,8DAA+D,CAC/D,mCAAoC,CAEpC,kBACJ,CAEA,2BACI,2DACJ,CAEA,qBAGI,kBAAmB,CACnB,eAAgB,CAFhB,YAAa,CADb,eAIJ,CAEA,sBACI,gBAAiB,CACjB,iBACJ,CAEA,sBACI,gBACJ,CAEA,oBAGI,kBAAmB,CADnB,YAAa,CAGb,QAAS,CAJT,cAAe,CAGf,UAEJ,CAEA,2BACI,YAAa,CAEb,OAAQ,CADR,UAEJ","file":"sub_header.css","sourcesContent":["/* CSS for SubHeader */\n\n.SubHeader {\n display: grid;\n grid-template-areas: \"left middle right\" \"bottom bottom bottom\";\n grid-template-columns: auto 1fr auto;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.SubHeader--expandedSearch {\n grid-template-areas: \"left left left\" \"bottom bottom bottom\";\n}\n\n.SubHeader-rightPane {\n grid-area: right;\n display: flex;\n align-items: center;\n column-gap: 12px;\n}\n\n.SubHeader-middlePane {\n grid-area: middle;\n text-align: center;\n}\n\n.SubHeader-bottomPane {\n grid-area: bottom;\n}\n\n.SubHeader-leftPane {\n grid-area: left;\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n}\n\n.SubHeader-filterContainer {\n display: flex;\n width: 100%;\n gap: 8px;\n}\n"]}
|
@@ -6,9 +6,10 @@
|
|
6
6
|
grid-template-columns: auto 1fr auto;
|
7
7
|
align-items: center;
|
8
8
|
margin-bottom: 16px;
|
9
|
+
}
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
.SubHeader--expandedSearch {
|
12
|
+
grid-template-areas: "left left left" "bottom bottom bottom";
|
12
13
|
}
|
13
14
|
|
14
15
|
.SubHeader-rightPane {
|
@@ -13,7 +13,7 @@ let SubHeaderElement = class SubHeaderElement extends HTMLElement {
|
|
13
13
|
for (const item of this.shownItemsOnExpandedFilter) {
|
14
14
|
item.classList.remove('d-none');
|
15
15
|
}
|
16
|
-
this.classList.add('
|
16
|
+
this.classList.add('SubHeader--expandedSearch');
|
17
17
|
this.filterInput.focus();
|
18
18
|
}
|
19
19
|
collapseFilterInput() {
|
@@ -23,7 +23,7 @@ let SubHeaderElement = class SubHeaderElement extends HTMLElement {
|
|
23
23
|
for (const item of this.shownItemsOnExpandedFilter) {
|
24
24
|
item.classList.add('d-none');
|
25
25
|
}
|
26
|
-
this.classList.remove('
|
26
|
+
this.classList.remove('SubHeader--expandedSearch');
|
27
27
|
}
|
28
28
|
};
|
29
29
|
__decorate([
|
@@ -15,7 +15,7 @@ class SubHeaderElement extends HTMLElement {
|
|
15
15
|
item.classList.remove('d-none')
|
16
16
|
}
|
17
17
|
|
18
|
-
this.classList.add('
|
18
|
+
this.classList.add('SubHeader--expandedSearch')
|
19
19
|
|
20
20
|
this.filterInput.focus()
|
21
21
|
}
|
@@ -29,7 +29,7 @@ class SubHeaderElement extends HTMLElement {
|
|
29
29
|
item.classList.add('d-none')
|
30
30
|
}
|
31
31
|
|
32
|
-
this.classList.remove('
|
32
|
+
this.classList.remove('SubHeader--expandedSearch')
|
33
33
|
}
|
34
34
|
}
|
35
35
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= render(Primer::OpenProject::FeedbackDialog.new) do |dialog| %>
|
2
|
+
<% dialog.with_show_button { "Click me" } %>
|
3
|
+
<% dialog.with_feedback_message do |message| %>
|
4
|
+
<% message.with_heading(tag: :h2).with_content("Action successful") %>
|
5
|
+
<% end %>
|
6
|
+
<% dialog.with_additional_content do %>
|
7
|
+
<% render(Primer::Beta::Text.new) { "You can render whatever component you want here." } %>
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%= render(Primer::OpenProject::FeedbackDialog.new(id: "my-dialog")) do |dialog| %>
|
2
|
+
<% dialog.with_show_button { "Click me" } %>
|
3
|
+
<% dialog.with_feedback_message do |message| %>
|
4
|
+
<% message.with_heading(tag: :h2).with_content("Action successful") %>
|
5
|
+
<% end %>
|
6
|
+
<% dialog.with_footer do %>
|
7
|
+
<%= render(Primer::Beta::Button.new("data-close-dialog-id": "my-dialog")) { "Cancel" } %>
|
8
|
+
<%= render(Primer::Beta::Button.new(scheme: :primary)) { "Accept" } %>
|
9
|
+
<% end %>
|
10
|
+
<% end %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= render(Primer::OpenProject::FeedbackDialog.new(id: "my-dialog")) do |dialog| %>
|
2
|
+
<% dialog.with_show_button { "Click me" } %>
|
3
|
+
<% dialog.with_feedback_message(icon_arguments: { icon: icon, color: icon_color }, loading: loading_state) do |message| %>
|
4
|
+
<% message.with_heading(tag: :h2).with_content("Awesome!") %>
|
5
|
+
<% message.with_description { "Great! Everything worked well." } if show_description %>
|
6
|
+
<% end %>
|
7
|
+
<% if show_additional_content %>
|
8
|
+
<% dialog.with_additional_content(display: :inline) do %>
|
9
|
+
<%= render(Primer::Alpha::Banner.new) { "Some additional content below" } %>
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
12
|
+
<% if custom_footer %>
|
13
|
+
<% dialog.with_footer do %>
|
14
|
+
<%= render(Primer::Beta::Button.new("data-close-dialog-id": "my-dialog")) { "Cancel" } %>
|
15
|
+
<%= render(Primer::Beta::Button.new(scheme: :primary)) { "Accept" } %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
@@ -0,0 +1,70 @@
|
|
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 FeedbackDialog
|
9
|
+
class FeedbackDialogPreview < ViewComponent::Preview
|
10
|
+
# @label Default
|
11
|
+
# @snapshot interactive
|
12
|
+
def default
|
13
|
+
render(Primer::OpenProject::FeedbackDialog.new(title: "Success dialog")) do |dialog|
|
14
|
+
dialog.with_show_button { "Click me" }
|
15
|
+
dialog.with_feedback_message do |message|
|
16
|
+
message.with_heading(tag: :h2) { "Success" }
|
17
|
+
message.with_description { "Great! Everything worked well." }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# @label Playground
|
23
|
+
# @param icon [Symbol] octicon
|
24
|
+
# @param icon_color [Symbol] select [default, muted, subtle, accent, success, attention, severe, danger, open, closed, done, sponsors, on_emphasis, inherit]
|
25
|
+
# @param loading_state [Boolean] toggle
|
26
|
+
# @param show_description toggle
|
27
|
+
# @param show_additional_content toggle
|
28
|
+
# @param custom_footer toggle
|
29
|
+
def playground(icon: :"check-circle", icon_color: :success, loading_state: false, show_description: true, show_additional_content: false, custom_footer: false)
|
30
|
+
render_with_template(locals: { icon: icon,
|
31
|
+
icon_color: icon_color,
|
32
|
+
loading_state: loading_state,
|
33
|
+
show_description: show_description,
|
34
|
+
show_additional_content: show_additional_content,
|
35
|
+
custom_footer: custom_footer })
|
36
|
+
end
|
37
|
+
|
38
|
+
# @label With additional content
|
39
|
+
def additional_content
|
40
|
+
render_with_template(locals: {})
|
41
|
+
end
|
42
|
+
|
43
|
+
# @label With custom icon
|
44
|
+
def custom_icon
|
45
|
+
render(Primer::OpenProject::FeedbackDialog.new(title: "Error message")) do |dialog|
|
46
|
+
dialog.with_show_button { "Click me" }
|
47
|
+
dialog.with_feedback_message(icon_arguments: { icon: :"x-circle", color: :danger }) do |message|
|
48
|
+
message.with_heading(tag: :h2) { "Ups, something went wrong" }
|
49
|
+
message.with_description { "Please try again or contact your administrator if the issue persists." }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# @label With custom footer
|
55
|
+
def custom_footer
|
56
|
+
render_with_template(locals: {})
|
57
|
+
end
|
58
|
+
|
59
|
+
# @label With loading spinner
|
60
|
+
def loading_spinner
|
61
|
+
render(Primer::OpenProject::FeedbackDialog.new(title: "Waiting...")) do |dialog|
|
62
|
+
dialog.with_show_button { "Click me" }
|
63
|
+
dialog.with_feedback_message(loading: true) do |message|
|
64
|
+
message.with_heading(tag: :h2) { "Please wait, your request is being processed." }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
# @label FeedbackMessage
|
6
|
+
class FeedbackMessagePreview < ViewComponent::Preview
|
7
|
+
# @label Default
|
8
|
+
# @snapshot
|
9
|
+
def default
|
10
|
+
render Primer::OpenProject::FeedbackMessage.new do |component|
|
11
|
+
component.with_heading(tag: :h2) { "Success" }
|
12
|
+
component.with_description { "You successfully created your first FeedbackMessage component" }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
# @label Playground
|
18
|
+
#
|
19
|
+
# @param icon [Symbol] octicon
|
20
|
+
# @param icon_color [Symbol] select [default, muted, subtle, accent, success, attention, severe, danger, open, closed, done, sponsors, on_emphasis, inherit]
|
21
|
+
# @param loading_state [Boolean] toggle
|
22
|
+
# @param title [String]
|
23
|
+
# @param description [String]
|
24
|
+
# @param narrow [Boolean] toggle
|
25
|
+
# @param spacious [Boolean] toggle
|
26
|
+
# @param border [Boolean] toggle
|
27
|
+
def playground(icon: "check-circle", icon_color: :success, loading_state: false, title: "Yeah!", description: "Some description below...", narrow: false, spacious: false, border: false)
|
28
|
+
render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: icon, color: icon_color}, loading: loading_state, narrow: narrow, spacious: spacious, border: border) do |component|
|
29
|
+
component.with_heading(tag: :h2).with_content(title)
|
30
|
+
component.with_description { description }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# @label With custom icon
|
35
|
+
def with_custom_icon
|
36
|
+
render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"op-enterprise-addons", classes: "upsale-colored" }) do |component|
|
37
|
+
component.with_heading(tag: :h2) { "You are a hero" }
|
38
|
+
component.with_description { "Thanks for supporting an open source project!" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# @label With custom color
|
43
|
+
def with_custom_color
|
44
|
+
render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"x-circle", color: :danger }) do |component|
|
45
|
+
component.with_heading(tag: :h2) { "Ups, something went wrong" }
|
46
|
+
component.with_description { "Please try again or contact your administrator." }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# @label With loading spinner
|
51
|
+
def loading_spinner
|
52
|
+
render(Primer::OpenProject::FeedbackMessage.new(loading: true)) do |component|
|
53
|
+
component.with_heading(tag: :h2) { "Please wait, your request is being processed." }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/static/arguments.json
CHANGED
@@ -5039,6 +5039,50 @@
|
|
5039
5039
|
}
|
5040
5040
|
]
|
5041
5041
|
},
|
5042
|
+
{
|
5043
|
+
"component": "OpenProject::FeedbackDialog",
|
5044
|
+
"status": "open_project",
|
5045
|
+
"a11y_reviewed": false,
|
5046
|
+
"short_name": "OpenProjectFeedbackDialog",
|
5047
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/feedback_dialog.rb",
|
5048
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/feedback_dialog/default/",
|
5049
|
+
"parameters": [
|
5050
|
+
{
|
5051
|
+
"name": "system_arguments",
|
5052
|
+
"type": "Hash",
|
5053
|
+
"default": "N/A",
|
5054
|
+
"description": "[System arguments](/system-arguments)"
|
5055
|
+
}
|
5056
|
+
]
|
5057
|
+
},
|
5058
|
+
{
|
5059
|
+
"component": "OpenProject::FeedbackMessage",
|
5060
|
+
"status": "open_project",
|
5061
|
+
"a11y_reviewed": false,
|
5062
|
+
"short_name": "OpenProjectFeedbackMessage",
|
5063
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/feedback_message.rb",
|
5064
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/feedback_message/default/",
|
5065
|
+
"parameters": [
|
5066
|
+
{
|
5067
|
+
"name": "icon_arguments",
|
5068
|
+
"type": "Hash",
|
5069
|
+
"default": "`{}`",
|
5070
|
+
"description": "special arguments for the icon"
|
5071
|
+
},
|
5072
|
+
{
|
5073
|
+
"name": "loading",
|
5074
|
+
"type": "Boolean",
|
5075
|
+
"default": "`false`",
|
5076
|
+
"description": "Show a loading spinner instead of an icon"
|
5077
|
+
},
|
5078
|
+
{
|
5079
|
+
"name": "system_arguments",
|
5080
|
+
"type": "Hash",
|
5081
|
+
"default": "N/A",
|
5082
|
+
"description": "[System arguments](/system-arguments)"
|
5083
|
+
}
|
5084
|
+
]
|
5085
|
+
},
|
5042
5086
|
{
|
5043
5087
|
"component": "OpenProject::FlexLayout",
|
5044
5088
|
"status": "open_project",
|
data/static/audited_at.json
CHANGED
@@ -118,6 +118,8 @@
|
|
118
118
|
"Primer::OpenProject::BorderGrid": "",
|
119
119
|
"Primer::OpenProject::BorderGrid::Cell": "",
|
120
120
|
"Primer::OpenProject::DragHandle": "",
|
121
|
+
"Primer::OpenProject::FeedbackDialog": "",
|
122
|
+
"Primer::OpenProject::FeedbackMessage": "",
|
121
123
|
"Primer::OpenProject::FlexLayout": "",
|
122
124
|
"Primer::OpenProject::GridLayout": "",
|
123
125
|
"Primer::OpenProject::GridLayout::Area": "",
|
data/static/classes.json
CHANGED
data/static/constants.json
CHANGED