openproject-primer_view_components 0.43.1 → 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 +6 -0
- data/app/assets/images/loading_indicator.svg +1 -0
- 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/lib/primer/view_components/version.rb +2 -2
- 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/constants.json +4 -0
- data/static/info_arch.json +269 -0
- data/static/previews.json +159 -0
- data/static/statuses.json +2 -0
- metadata +11 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2c8b72cee2a4e5d81359374555888262643967a991bcfaee6f03abd73f0c4db
|
4
|
+
data.tar.gz: cd1858331f693d28d9e02c4a5aef2dcc6ca24b8f9deec6f39b58900b79eb2282
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 178952d872a6290f49a9503cfa82851300bf88aef45f01543e8f52eb1664974854416948f60643101dd01ffbc26aa2f0a0af1aa8891d811d9b50163696552dab
|
7
|
+
data.tar.gz: 1ec117ba4b39632420f716559d6d3bd100b5c3bf4564b35479ef3af566ba7a31deef0e3f753fcb94f832a52f58f15727aad45e2d8f43c48f6beb5041354d7c48
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.44.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- [#167](https://github.com/opf/primer_view_components/pull/167) [`1049ebf`](https://github.com/opf/primer_view_components/commit/1049ebf66abb16efc271212a45d6cc655abd301f) Thanks [@HDinger](https://github.com/HDinger)! - Add `FeedbackDialog` and `FeedbackMessage` components to display different kinds of user feedback
|
8
|
+
|
3
9
|
## 0.43.1
|
4
10
|
|
5
11
|
### Patch Changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg"><g><rect x="-16" y="-16" width="32" height="32" fill="none" stroke="#a3eea8" stroke-width="4" rx="10" transform="translate(32 32)"><animate attributeName="stroke-width" attributeType="XML" dur="4s" repeatCount="indefinite" values="0;4;0;0" keyTimes="0;0.35;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/><animateTransform attributeName="transform" additive="sum" attributeType="XML" type="scale" dur="4s" repeatCount="indefinite" values="0.5;0.5;1.6;0.5" keyTimes="0;0.35;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></rect><rect x="-16" y="-16" width="32" height="32" fill="#35c53f" rx="5" transform="translate(32 32)"><animateTransform attributeName="transform" additive="sum" attributeType="XML" type="scale" dur="4s" repeatCount="indefinite" values="1;1.3;1.1;1" keyTimes="0;0.5;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></rect><animateTransform attributeName="transform" attributeType="XML" additive="sum" type="rotate" dur="4s" repeatCount="indefinite" values="45 32 32;1080 32 32;945 32 32" keyTimes="0;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></g></svg>
|
@@ -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
|
@@ -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/constants.json
CHANGED
data/static/info_arch.json
CHANGED
@@ -17294,6 +17294,275 @@
|
|
17294
17294
|
|
17295
17295
|
]
|
17296
17296
|
},
|
17297
|
+
{
|
17298
|
+
"fully_qualified_name": "Primer::OpenProject::FeedbackDialog",
|
17299
|
+
"description": "A pre-configured dialog which includes the FeedbackMessage",
|
17300
|
+
"accessibility_docs": null,
|
17301
|
+
"is_form_component": false,
|
17302
|
+
"is_published": true,
|
17303
|
+
"requires_js": false,
|
17304
|
+
"component": "OpenProject::FeedbackDialog",
|
17305
|
+
"status": "open_project",
|
17306
|
+
"a11y_reviewed": false,
|
17307
|
+
"short_name": "OpenProjectFeedbackDialog",
|
17308
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/feedback_dialog.rb",
|
17309
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/feedback_dialog/default/",
|
17310
|
+
"parameters": [
|
17311
|
+
{
|
17312
|
+
"name": "system_arguments",
|
17313
|
+
"type": "Hash",
|
17314
|
+
"default": "N/A",
|
17315
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17316
|
+
}
|
17317
|
+
],
|
17318
|
+
"slots": [
|
17319
|
+
{
|
17320
|
+
"name": "feedback_message",
|
17321
|
+
"description": "A feedback message with some defaults that are necessary for rendering nicely",
|
17322
|
+
"parameters": [
|
17323
|
+
{
|
17324
|
+
"name": "heading",
|
17325
|
+
"type": "String",
|
17326
|
+
"default": "N/A",
|
17327
|
+
"description": "the heading for the success message"
|
17328
|
+
},
|
17329
|
+
{
|
17330
|
+
"name": "description",
|
17331
|
+
"type": "String",
|
17332
|
+
"default": "N/A",
|
17333
|
+
"description": "the description for the success message"
|
17334
|
+
},
|
17335
|
+
{
|
17336
|
+
"name": "icon_arguments",
|
17337
|
+
"type": "Hash",
|
17338
|
+
"default": "N/A",
|
17339
|
+
"description": "the system_arguments for the icon"
|
17340
|
+
},
|
17341
|
+
{
|
17342
|
+
"name": "system_arguments",
|
17343
|
+
"type": "Hash",
|
17344
|
+
"default": "N/A",
|
17345
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17346
|
+
}
|
17347
|
+
]
|
17348
|
+
},
|
17349
|
+
{
|
17350
|
+
"name": "additional_content",
|
17351
|
+
"description": "Optional additional_content like a form input or toast.",
|
17352
|
+
"parameters": [
|
17353
|
+
{
|
17354
|
+
"name": "system_arguments",
|
17355
|
+
"type": "Hash",
|
17356
|
+
"default": "N/A",
|
17357
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17358
|
+
}
|
17359
|
+
]
|
17360
|
+
},
|
17361
|
+
{
|
17362
|
+
"name": "footer",
|
17363
|
+
"description": null,
|
17364
|
+
"parameters": [
|
17365
|
+
|
17366
|
+
]
|
17367
|
+
}
|
17368
|
+
],
|
17369
|
+
"methods": [
|
17370
|
+
|
17371
|
+
],
|
17372
|
+
"previews": [
|
17373
|
+
{
|
17374
|
+
"preview_path": "primer/open_project/feedback_dialog/default",
|
17375
|
+
"name": "default",
|
17376
|
+
"snapshot": "interactive",
|
17377
|
+
"skip_rules": {
|
17378
|
+
"wont_fix": [
|
17379
|
+
"region"
|
17380
|
+
],
|
17381
|
+
"will_fix": [
|
17382
|
+
"color-contrast"
|
17383
|
+
]
|
17384
|
+
}
|
17385
|
+
},
|
17386
|
+
{
|
17387
|
+
"preview_path": "primer/open_project/feedback_dialog/playground",
|
17388
|
+
"name": "playground",
|
17389
|
+
"snapshot": "false",
|
17390
|
+
"skip_rules": {
|
17391
|
+
"wont_fix": [
|
17392
|
+
"region"
|
17393
|
+
],
|
17394
|
+
"will_fix": [
|
17395
|
+
"color-contrast"
|
17396
|
+
]
|
17397
|
+
}
|
17398
|
+
},
|
17399
|
+
{
|
17400
|
+
"preview_path": "primer/open_project/feedback_dialog/additional_content",
|
17401
|
+
"name": "additional_content",
|
17402
|
+
"snapshot": "false",
|
17403
|
+
"skip_rules": {
|
17404
|
+
"wont_fix": [
|
17405
|
+
"region"
|
17406
|
+
],
|
17407
|
+
"will_fix": [
|
17408
|
+
"color-contrast"
|
17409
|
+
]
|
17410
|
+
}
|
17411
|
+
},
|
17412
|
+
{
|
17413
|
+
"preview_path": "primer/open_project/feedback_dialog/custom_icon",
|
17414
|
+
"name": "custom_icon",
|
17415
|
+
"snapshot": "false",
|
17416
|
+
"skip_rules": {
|
17417
|
+
"wont_fix": [
|
17418
|
+
"region"
|
17419
|
+
],
|
17420
|
+
"will_fix": [
|
17421
|
+
"color-contrast"
|
17422
|
+
]
|
17423
|
+
}
|
17424
|
+
},
|
17425
|
+
{
|
17426
|
+
"preview_path": "primer/open_project/feedback_dialog/custom_footer",
|
17427
|
+
"name": "custom_footer",
|
17428
|
+
"snapshot": "false",
|
17429
|
+
"skip_rules": {
|
17430
|
+
"wont_fix": [
|
17431
|
+
"region"
|
17432
|
+
],
|
17433
|
+
"will_fix": [
|
17434
|
+
"color-contrast"
|
17435
|
+
]
|
17436
|
+
}
|
17437
|
+
},
|
17438
|
+
{
|
17439
|
+
"preview_path": "primer/open_project/feedback_dialog/loading_spinner",
|
17440
|
+
"name": "loading_spinner",
|
17441
|
+
"snapshot": "false",
|
17442
|
+
"skip_rules": {
|
17443
|
+
"wont_fix": [
|
17444
|
+
"region"
|
17445
|
+
],
|
17446
|
+
"will_fix": [
|
17447
|
+
"color-contrast"
|
17448
|
+
]
|
17449
|
+
}
|
17450
|
+
}
|
17451
|
+
],
|
17452
|
+
"subcomponents": [
|
17453
|
+
|
17454
|
+
]
|
17455
|
+
},
|
17456
|
+
{
|
17457
|
+
"fully_qualified_name": "Primer::OpenProject::FeedbackMessage",
|
17458
|
+
"description": "A view component for messages, inspired by the Primer Blankslate,\nwhich serves a different use-case (messages for when data is missing).\nWe decided to wrap the Blankslate, because we don't want to have to adapt\nlots of different usages if Primer decides to change the Blankslate\nin a way that does not go well with our \"misuse\".",
|
17459
|
+
"accessibility_docs": null,
|
17460
|
+
"is_form_component": false,
|
17461
|
+
"is_published": true,
|
17462
|
+
"requires_js": false,
|
17463
|
+
"component": "OpenProject::FeedbackMessage",
|
17464
|
+
"status": "open_project",
|
17465
|
+
"a11y_reviewed": false,
|
17466
|
+
"short_name": "OpenProjectFeedbackMessage",
|
17467
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/feedback_message.rb",
|
17468
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/feedback_message/default/",
|
17469
|
+
"parameters": [
|
17470
|
+
{
|
17471
|
+
"name": "icon_arguments",
|
17472
|
+
"type": "Hash",
|
17473
|
+
"default": "`{}`",
|
17474
|
+
"description": "special arguments for the icon"
|
17475
|
+
},
|
17476
|
+
{
|
17477
|
+
"name": "loading",
|
17478
|
+
"type": "Boolean",
|
17479
|
+
"default": "`false`",
|
17480
|
+
"description": "Show a loading spinner instead of an icon"
|
17481
|
+
},
|
17482
|
+
{
|
17483
|
+
"name": "system_arguments",
|
17484
|
+
"type": "Hash",
|
17485
|
+
"default": "N/A",
|
17486
|
+
"description": "{{link_to_system_arguments_docs}}"
|
17487
|
+
}
|
17488
|
+
],
|
17489
|
+
"slots": [
|
17490
|
+
|
17491
|
+
],
|
17492
|
+
"methods": [
|
17493
|
+
|
17494
|
+
],
|
17495
|
+
"previews": [
|
17496
|
+
{
|
17497
|
+
"preview_path": "primer/open_project/feedback_message/default",
|
17498
|
+
"name": "default",
|
17499
|
+
"snapshot": "true",
|
17500
|
+
"skip_rules": {
|
17501
|
+
"wont_fix": [
|
17502
|
+
"region"
|
17503
|
+
],
|
17504
|
+
"will_fix": [
|
17505
|
+
"color-contrast"
|
17506
|
+
]
|
17507
|
+
}
|
17508
|
+
},
|
17509
|
+
{
|
17510
|
+
"preview_path": "primer/open_project/feedback_message/playground",
|
17511
|
+
"name": "playground",
|
17512
|
+
"snapshot": "false",
|
17513
|
+
"skip_rules": {
|
17514
|
+
"wont_fix": [
|
17515
|
+
"region"
|
17516
|
+
],
|
17517
|
+
"will_fix": [
|
17518
|
+
"color-contrast"
|
17519
|
+
]
|
17520
|
+
}
|
17521
|
+
},
|
17522
|
+
{
|
17523
|
+
"preview_path": "primer/open_project/feedback_message/with_custom_icon",
|
17524
|
+
"name": "with_custom_icon",
|
17525
|
+
"snapshot": "false",
|
17526
|
+
"skip_rules": {
|
17527
|
+
"wont_fix": [
|
17528
|
+
"region"
|
17529
|
+
],
|
17530
|
+
"will_fix": [
|
17531
|
+
"color-contrast"
|
17532
|
+
]
|
17533
|
+
}
|
17534
|
+
},
|
17535
|
+
{
|
17536
|
+
"preview_path": "primer/open_project/feedback_message/with_custom_color",
|
17537
|
+
"name": "with_custom_color",
|
17538
|
+
"snapshot": "false",
|
17539
|
+
"skip_rules": {
|
17540
|
+
"wont_fix": [
|
17541
|
+
"region"
|
17542
|
+
],
|
17543
|
+
"will_fix": [
|
17544
|
+
"color-contrast"
|
17545
|
+
]
|
17546
|
+
}
|
17547
|
+
},
|
17548
|
+
{
|
17549
|
+
"preview_path": "primer/open_project/feedback_message/loading_spinner",
|
17550
|
+
"name": "loading_spinner",
|
17551
|
+
"snapshot": "false",
|
17552
|
+
"skip_rules": {
|
17553
|
+
"wont_fix": [
|
17554
|
+
"region"
|
17555
|
+
],
|
17556
|
+
"will_fix": [
|
17557
|
+
"color-contrast"
|
17558
|
+
]
|
17559
|
+
}
|
17560
|
+
}
|
17561
|
+
],
|
17562
|
+
"subcomponents": [
|
17563
|
+
|
17564
|
+
]
|
17565
|
+
},
|
17297
17566
|
{
|
17298
17567
|
"fully_qualified_name": "Primer::OpenProject::FlexLayout",
|
17299
17568
|
"description": "A layouting component used to arrange multiple components next / below each other",
|
data/static/previews.json
CHANGED
@@ -3647,6 +3647,165 @@
|
|
3647
3647
|
}
|
3648
3648
|
]
|
3649
3649
|
},
|
3650
|
+
{
|
3651
|
+
"name": "feedback_dialog",
|
3652
|
+
"component": "OpenProject::FeedbackDialog",
|
3653
|
+
"status": "open_project",
|
3654
|
+
"lookup_path": "primer/open_project/feedback_dialog",
|
3655
|
+
"examples": [
|
3656
|
+
{
|
3657
|
+
"preview_path": "primer/open_project/feedback_dialog/default",
|
3658
|
+
"name": "default",
|
3659
|
+
"snapshot": "interactive",
|
3660
|
+
"skip_rules": {
|
3661
|
+
"wont_fix": [
|
3662
|
+
"region"
|
3663
|
+
],
|
3664
|
+
"will_fix": [
|
3665
|
+
"color-contrast"
|
3666
|
+
]
|
3667
|
+
}
|
3668
|
+
},
|
3669
|
+
{
|
3670
|
+
"preview_path": "primer/open_project/feedback_dialog/playground",
|
3671
|
+
"name": "playground",
|
3672
|
+
"snapshot": "false",
|
3673
|
+
"skip_rules": {
|
3674
|
+
"wont_fix": [
|
3675
|
+
"region"
|
3676
|
+
],
|
3677
|
+
"will_fix": [
|
3678
|
+
"color-contrast"
|
3679
|
+
]
|
3680
|
+
}
|
3681
|
+
},
|
3682
|
+
{
|
3683
|
+
"preview_path": "primer/open_project/feedback_dialog/additional_content",
|
3684
|
+
"name": "additional_content",
|
3685
|
+
"snapshot": "false",
|
3686
|
+
"skip_rules": {
|
3687
|
+
"wont_fix": [
|
3688
|
+
"region"
|
3689
|
+
],
|
3690
|
+
"will_fix": [
|
3691
|
+
"color-contrast"
|
3692
|
+
]
|
3693
|
+
}
|
3694
|
+
},
|
3695
|
+
{
|
3696
|
+
"preview_path": "primer/open_project/feedback_dialog/custom_icon",
|
3697
|
+
"name": "custom_icon",
|
3698
|
+
"snapshot": "false",
|
3699
|
+
"skip_rules": {
|
3700
|
+
"wont_fix": [
|
3701
|
+
"region"
|
3702
|
+
],
|
3703
|
+
"will_fix": [
|
3704
|
+
"color-contrast"
|
3705
|
+
]
|
3706
|
+
}
|
3707
|
+
},
|
3708
|
+
{
|
3709
|
+
"preview_path": "primer/open_project/feedback_dialog/custom_footer",
|
3710
|
+
"name": "custom_footer",
|
3711
|
+
"snapshot": "false",
|
3712
|
+
"skip_rules": {
|
3713
|
+
"wont_fix": [
|
3714
|
+
"region"
|
3715
|
+
],
|
3716
|
+
"will_fix": [
|
3717
|
+
"color-contrast"
|
3718
|
+
]
|
3719
|
+
}
|
3720
|
+
},
|
3721
|
+
{
|
3722
|
+
"preview_path": "primer/open_project/feedback_dialog/loading_spinner",
|
3723
|
+
"name": "loading_spinner",
|
3724
|
+
"snapshot": "false",
|
3725
|
+
"skip_rules": {
|
3726
|
+
"wont_fix": [
|
3727
|
+
"region"
|
3728
|
+
],
|
3729
|
+
"will_fix": [
|
3730
|
+
"color-contrast"
|
3731
|
+
]
|
3732
|
+
}
|
3733
|
+
}
|
3734
|
+
]
|
3735
|
+
},
|
3736
|
+
{
|
3737
|
+
"name": "feedback_message",
|
3738
|
+
"component": "OpenProject::FeedbackMessage",
|
3739
|
+
"status": "open_project",
|
3740
|
+
"lookup_path": "primer/open_project/feedback_message",
|
3741
|
+
"examples": [
|
3742
|
+
{
|
3743
|
+
"preview_path": "primer/open_project/feedback_message/default",
|
3744
|
+
"name": "default",
|
3745
|
+
"snapshot": "true",
|
3746
|
+
"skip_rules": {
|
3747
|
+
"wont_fix": [
|
3748
|
+
"region"
|
3749
|
+
],
|
3750
|
+
"will_fix": [
|
3751
|
+
"color-contrast"
|
3752
|
+
]
|
3753
|
+
}
|
3754
|
+
},
|
3755
|
+
{
|
3756
|
+
"preview_path": "primer/open_project/feedback_message/playground",
|
3757
|
+
"name": "playground",
|
3758
|
+
"snapshot": "false",
|
3759
|
+
"skip_rules": {
|
3760
|
+
"wont_fix": [
|
3761
|
+
"region"
|
3762
|
+
],
|
3763
|
+
"will_fix": [
|
3764
|
+
"color-contrast"
|
3765
|
+
]
|
3766
|
+
}
|
3767
|
+
},
|
3768
|
+
{
|
3769
|
+
"preview_path": "primer/open_project/feedback_message/with_custom_icon",
|
3770
|
+
"name": "with_custom_icon",
|
3771
|
+
"snapshot": "false",
|
3772
|
+
"skip_rules": {
|
3773
|
+
"wont_fix": [
|
3774
|
+
"region"
|
3775
|
+
],
|
3776
|
+
"will_fix": [
|
3777
|
+
"color-contrast"
|
3778
|
+
]
|
3779
|
+
}
|
3780
|
+
},
|
3781
|
+
{
|
3782
|
+
"preview_path": "primer/open_project/feedback_message/with_custom_color",
|
3783
|
+
"name": "with_custom_color",
|
3784
|
+
"snapshot": "false",
|
3785
|
+
"skip_rules": {
|
3786
|
+
"wont_fix": [
|
3787
|
+
"region"
|
3788
|
+
],
|
3789
|
+
"will_fix": [
|
3790
|
+
"color-contrast"
|
3791
|
+
]
|
3792
|
+
}
|
3793
|
+
},
|
3794
|
+
{
|
3795
|
+
"preview_path": "primer/open_project/feedback_message/loading_spinner",
|
3796
|
+
"name": "loading_spinner",
|
3797
|
+
"snapshot": "false",
|
3798
|
+
"skip_rules": {
|
3799
|
+
"wont_fix": [
|
3800
|
+
"region"
|
3801
|
+
],
|
3802
|
+
"will_fix": [
|
3803
|
+
"color-contrast"
|
3804
|
+
]
|
3805
|
+
}
|
3806
|
+
}
|
3807
|
+
]
|
3808
|
+
},
|
3650
3809
|
{
|
3651
3810
|
"name": "flash",
|
3652
3811
|
"component": "Flash",
|
data/static/statuses.json
CHANGED
@@ -118,6 +118,8 @@
|
|
118
118
|
"Primer::OpenProject::BorderGrid": "open_project",
|
119
119
|
"Primer::OpenProject::BorderGrid::Cell": "open_project",
|
120
120
|
"Primer::OpenProject::DragHandle": "open_project",
|
121
|
+
"Primer::OpenProject::FeedbackDialog": "open_project",
|
122
|
+
"Primer::OpenProject::FeedbackMessage": "open_project",
|
121
123
|
"Primer::OpenProject::FlexLayout": "open_project",
|
122
124
|
"Primer::OpenProject::GridLayout": "open_project",
|
123
125
|
"Primer::OpenProject::GridLayout::Area": "open_project",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openproject-primer_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.44.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- CHANGELOG.md
|
83
83
|
- LICENSE.txt
|
84
84
|
- README.md
|
85
|
+
- app/assets/images/loading_indicator.svg
|
85
86
|
- app/assets/javascripts/app/components/primer/alpha/action_bar_element.d.ts
|
86
87
|
- app/assets/javascripts/app/components/primer/alpha/action_list.d.ts
|
87
88
|
- app/assets/javascripts/app/components/primer/alpha/action_menu/action_menu_element.d.ts
|
@@ -489,6 +490,10 @@ files:
|
|
489
490
|
- app/components/primer/open_project/drag_handle.html.erb
|
490
491
|
- app/components/primer/open_project/drag_handle.pcss
|
491
492
|
- app/components/primer/open_project/drag_handle.rb
|
493
|
+
- app/components/primer/open_project/feedback_dialog.html.erb
|
494
|
+
- app/components/primer/open_project/feedback_dialog.rb
|
495
|
+
- app/components/primer/open_project/feedback_message.html.erb
|
496
|
+
- app/components/primer/open_project/feedback_message.rb
|
492
497
|
- app/components/primer/open_project/flex_layout.html.erb
|
493
498
|
- app/components/primer/open_project/flex_layout.rb
|
494
499
|
- app/components/primer/open_project/grid_layout.html.erb
|
@@ -985,6 +990,11 @@ files:
|
|
985
990
|
- previews/primer/forms_preview/text_field_and_checkbox_form.html.erb
|
986
991
|
- previews/primer/open_project/border_grid_preview.rb
|
987
992
|
- previews/primer/open_project/drag_handle_preview.rb
|
993
|
+
- previews/primer/open_project/feedback_dialog_preview.rb
|
994
|
+
- previews/primer/open_project/feedback_dialog_preview/additional_content.html.erb
|
995
|
+
- previews/primer/open_project/feedback_dialog_preview/custom_footer.html.erb
|
996
|
+
- previews/primer/open_project/feedback_dialog_preview/playground.html.erb
|
997
|
+
- previews/primer/open_project/feedback_message_preview.rb
|
988
998
|
- previews/primer/open_project/flex_layout_preview.rb
|
989
999
|
- previews/primer/open_project/grid_layout_preview.rb
|
990
1000
|
- previews/primer/open_project/input_group_preview.rb
|