openproject-primer_view_components 0.43.0 → 0.44.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 +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