openproject-primer_view_components 0.26.0 → 0.27.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 +10 -0
- data/app/assets/javascripts/app/components/primer/open_project/zen_mode_button.d.ts +13 -0
- data/app/assets/javascripts/app/components/primer/primer.d.ts +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/components/primer/open_project/page_header/dialog.rb +38 -0
- data/app/components/primer/open_project/page_header/menu.rb +38 -0
- data/app/components/primer/open_project/page_header.rb +16 -27
- data/app/components/primer/open_project/zen_mode_button.d.ts +13 -0
- data/app/components/primer/open_project/zen_mode_button.html.erb +11 -0
- data/app/components/primer/open_project/zen_mode_button.js +45 -0
- data/app/components/primer/open_project/zen_mode_button.rb +23 -0
- data/app/components/primer/open_project/zen_mode_button.ts +42 -0
- data/app/components/primer/primer.d.ts +1 -0
- data/app/components/primer/primer.js +1 -0
- data/app/components/primer/primer.ts +1 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/previews/primer/open_project/page_header_preview/actions.html.erb +0 -8
- data/previews/primer/open_project/page_header_preview.rb +48 -0
- data/previews/primer/open_project/zen_mode_button_preview.rb +22 -0
- data/static/arguments.json +42 -4
- data/static/audited_at.json +3 -1
- data/static/constants.json +7 -2
- data/static/info_arch.json +131 -6
- data/static/previews.json +60 -0
- data/static/statuses.json +3 -1
- metadata +11 -2
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
class PageHeader
|
6
|
+
# A Helper class to create ActionMenus inside the PageHeader action slot
|
7
|
+
# Do not use standalone
|
8
|
+
class Dialog < Primer::Component
|
9
|
+
status :open_project
|
10
|
+
|
11
|
+
# @param dialog_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::Dialog) %>.
|
12
|
+
# @param button_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Beta::Button) %> or <%= link_to_component(Primer::Beta::IconButton) %>, depending on the value of the `icon:` argument.
|
13
|
+
def initialize(dialog_arguments: {}, button_arguments: {})
|
14
|
+
callback = button_arguments.delete(:button_block)
|
15
|
+
|
16
|
+
@dialog = Primer::Alpha::Dialog.new(**dialog_arguments)
|
17
|
+
@button = @dialog.with_show_button(**button_arguments) do |button|
|
18
|
+
callback&.call(button)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def render_in(view_context, &block)
|
23
|
+
super(view_context) do
|
24
|
+
block&.call(@dialog, @button)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def before_render
|
29
|
+
content
|
30
|
+
end
|
31
|
+
|
32
|
+
def call
|
33
|
+
render(@dialog)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
class PageHeader
|
6
|
+
# A Helper class to create ActionMenus inside the PageHeader action slot
|
7
|
+
# It should not be used standalone
|
8
|
+
class Menu < Primer::Component
|
9
|
+
status :open_project
|
10
|
+
|
11
|
+
# @param menu_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::ActionMenu) %>.
|
12
|
+
# @param button_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Beta::Button) %> or <%= link_to_component(Primer::Beta::IconButton) %>, depending on the value of the `icon:` argument.
|
13
|
+
def initialize(menu_arguments: {}, button_arguments: {})
|
14
|
+
callback = button_arguments.delete(:button_block)
|
15
|
+
|
16
|
+
@menu = Primer::Alpha::ActionMenu.new(**menu_arguments)
|
17
|
+
@button = @menu.with_show_button(**button_arguments) do |button|
|
18
|
+
callback&.call(button)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def render_in(view_context, &block)
|
23
|
+
super(view_context) do
|
24
|
+
block&.call(@menu, @button)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def before_render
|
29
|
+
content
|
30
|
+
end
|
31
|
+
|
32
|
+
def call
|
33
|
+
render(@menu)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -97,7 +97,20 @@ module Primer
|
|
97
97
|
# Add the options individually to the mobile menu in the template
|
98
98
|
@desktop_menu_block = block
|
99
99
|
|
100
|
-
|
100
|
+
Primer::OpenProject::PageHeader::Menu.new(**system_arguments)
|
101
|
+
},
|
102
|
+
},
|
103
|
+
dialog: {
|
104
|
+
renders: lambda { |mobile_icon:, mobile_label:, **system_arguments|
|
105
|
+
deny_tag_argument(**system_arguments)
|
106
|
+
|
107
|
+
# The id will be automatically calculated for the trigger button, so we have to behave the same, for the mobile click to work
|
108
|
+
system_arguments[:button_arguments][:id] = "dialog-show-#{system_arguments[:dialog_arguments][:id]}"
|
109
|
+
|
110
|
+
system_arguments[:button_arguments] = set_action_arguments(system_arguments[:button_arguments])
|
111
|
+
add_option_to_mobile_menu(system_arguments[:button_arguments], mobile_icon, mobile_label, :default)
|
112
|
+
|
113
|
+
Primer::OpenProject::PageHeader::Dialog.new(**system_arguments)
|
101
114
|
},
|
102
115
|
},
|
103
116
|
}
|
@@ -183,6 +196,8 @@ module Primer
|
|
183
196
|
|
184
197
|
def render?
|
185
198
|
raise ArgumentError, "PageHeader needs a title and a breadcrumb. Please use the `with_title` and `with_breadcrumbs` slot" unless breadcrumbs? || Rails.env.production?
|
199
|
+
raise ArgumentError, "PageHeader allows only a maximum of 5 actions" if actions.count > 5
|
200
|
+
|
186
201
|
title? && breadcrumbs?
|
187
202
|
end
|
188
203
|
|
@@ -253,32 +268,6 @@ module Primer
|
|
253
268
|
def anchor_tag_string?(item)
|
254
269
|
item.is_a?(String) && item.start_with?("\u003c")
|
255
270
|
end
|
256
|
-
|
257
|
-
# A Helper class to create ActionMenus inside the PageHeader action slot
|
258
|
-
class PageHeaderActionMenu < Primer::Component
|
259
|
-
status :open_project
|
260
|
-
|
261
|
-
# @param menu_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Alpha::ActionMenu) %>.
|
262
|
-
# @param button_arguments [Hash] The arguments accepted by <%= link_to_component(Primer::Beta::Button) %> or <%= link_to_component(Primer::Beta::IconButton) %>, depending on the value of the `icon:` argument.
|
263
|
-
def initialize(menu_arguments: {}, button_arguments: {})
|
264
|
-
@menu = Primer::Alpha::ActionMenu.new(**menu_arguments)
|
265
|
-
@button = @menu.with_show_button(icon: "triangle-down", **button_arguments)
|
266
|
-
end
|
267
|
-
|
268
|
-
def render_in(view_context, &block)
|
269
|
-
super(view_context) do
|
270
|
-
block.call(@menu, @button)
|
271
|
-
end
|
272
|
-
end
|
273
|
-
|
274
|
-
def before_render
|
275
|
-
content
|
276
|
-
end
|
277
|
-
|
278
|
-
def call
|
279
|
-
render(@menu)
|
280
|
-
end
|
281
|
-
end
|
282
271
|
end
|
283
272
|
end
|
284
273
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
declare class ZenModeButtonElement extends HTMLElement {
|
2
|
+
button: HTMLElement;
|
3
|
+
inZenMode: boolean;
|
4
|
+
private deactivateZenMode;
|
5
|
+
private activateZenMode;
|
6
|
+
performAction(): void;
|
7
|
+
}
|
8
|
+
declare global {
|
9
|
+
interface Window {
|
10
|
+
ZenModeButtonElement: typeof ZenModeButtonElement;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
export {};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
|
2
|
+
<%= render(
|
3
|
+
Primer::Beta::IconButton.new(
|
4
|
+
scheme: :default,
|
5
|
+
id: "zenModeButton",
|
6
|
+
icon: "screen-normal",
|
7
|
+
aria: { label: I18n.t("zen_mode") },
|
8
|
+
data: { target: "zen-mode-button.button", action: "click:zen-mode-button#performAction" }
|
9
|
+
)
|
10
|
+
) %>
|
11
|
+
<% end %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { controller, target } from '@github/catalyst';
|
8
|
+
let ZenModeButtonElement = class ZenModeButtonElement extends HTMLElement {
|
9
|
+
constructor() {
|
10
|
+
super(...arguments);
|
11
|
+
this.inZenMode = false;
|
12
|
+
}
|
13
|
+
deactivateZenMode() {
|
14
|
+
this.inZenMode = false;
|
15
|
+
this.button.setAttribute('aria-pressed', 'false');
|
16
|
+
if (document.exitFullscreen) {
|
17
|
+
void document.exitFullscreen();
|
18
|
+
}
|
19
|
+
}
|
20
|
+
activateZenMode() {
|
21
|
+
this.inZenMode = true;
|
22
|
+
this.button.setAttribute('aria-pressed', 'true');
|
23
|
+
if (document.documentElement.requestFullscreen) {
|
24
|
+
void document.documentElement.requestFullscreen();
|
25
|
+
}
|
26
|
+
}
|
27
|
+
performAction() {
|
28
|
+
if (this.inZenMode) {
|
29
|
+
this.deactivateZenMode();
|
30
|
+
}
|
31
|
+
else {
|
32
|
+
this.activateZenMode();
|
33
|
+
}
|
34
|
+
}
|
35
|
+
};
|
36
|
+
__decorate([
|
37
|
+
target
|
38
|
+
], ZenModeButtonElement.prototype, "button", void 0);
|
39
|
+
ZenModeButtonElement = __decorate([
|
40
|
+
controller
|
41
|
+
], ZenModeButtonElement);
|
42
|
+
if (!window.customElements.get('zen-mode-button')) {
|
43
|
+
window.ZenModeButtonElement = ZenModeButtonElement;
|
44
|
+
window.customElements.define('zen-mode-button', ZenModeButtonElement);
|
45
|
+
}
|
@@ -0,0 +1,23 @@
|
|
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 ZenModeButton < Primer::Component
|
9
|
+
status :open_project
|
10
|
+
|
11
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
12
|
+
def initialize(**system_arguments)
|
13
|
+
@system_arguments = system_arguments
|
14
|
+
@system_arguments[:tag] = "zen-mode-button"
|
15
|
+
@system_arguments[:classes] =
|
16
|
+
class_names(
|
17
|
+
@system_arguments[:classes],
|
18
|
+
"ZenModeButton"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import {controller, target} from '@github/catalyst'
|
2
|
+
|
3
|
+
@controller
|
4
|
+
class ZenModeButtonElement extends HTMLElement {
|
5
|
+
@target button: HTMLElement
|
6
|
+
inZenMode = false
|
7
|
+
|
8
|
+
private deactivateZenMode() {
|
9
|
+
this.inZenMode = false
|
10
|
+
this.button.setAttribute('aria-pressed', 'false')
|
11
|
+
if (document.exitFullscreen) {
|
12
|
+
void document.exitFullscreen()
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
private activateZenMode() {
|
17
|
+
this.inZenMode = true
|
18
|
+
this.button.setAttribute('aria-pressed', 'true')
|
19
|
+
if (document.documentElement.requestFullscreen) {
|
20
|
+
void document.documentElement.requestFullscreen()
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
public performAction() {
|
25
|
+
if (this.inZenMode) {
|
26
|
+
this.deactivateZenMode()
|
27
|
+
} else {
|
28
|
+
this.activateZenMode()
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
declare global {
|
34
|
+
interface Window {
|
35
|
+
ZenModeButtonElement: typeof ZenModeButtonElement
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
if (!window.customElements.get('zen-mode-button')) {
|
40
|
+
window.ZenModeButtonElement = ZenModeButtonElement
|
41
|
+
window.customElements.define('zen-mode-button', ZenModeButtonElement)
|
42
|
+
}
|
@@ -14,12 +14,4 @@
|
|
14
14
|
<% end %>
|
15
15
|
<% component.with_action_button(mobile_icon: nil, mobile_label: nil) { "Hide on mobile" } %>
|
16
16
|
<% component.with_action_icon_button(icon: "trash", mobile_icon: "trash", label: "Delete", scheme: :danger) %>
|
17
|
-
<% component.with_action_menu(menu_arguments: { anchor_align: :end }, button_arguments: { icon: "op-kebab-vertical", "aria-label": "Some actions" }) do |menu, button| %>
|
18
|
-
<% menu.with_item(label: "Subitem 1") do |item| %>
|
19
|
-
<% item.with_leading_visual_icon(icon: :paste) %>
|
20
|
-
<% end %>
|
21
|
-
<% menu.with_item(label: "Subitem 2") do |item| %>
|
22
|
-
<% item.with_leading_visual_icon(icon: :log) %>
|
23
|
-
<% end %>
|
24
|
-
<% end %>
|
25
17
|
<% end %>
|
@@ -56,6 +56,54 @@ module Primer
|
|
56
56
|
render_with_template(locals: {})
|
57
57
|
end
|
58
58
|
|
59
|
+
# @label With a menu inside the actions
|
60
|
+
def menu_actions
|
61
|
+
callback = lambda do |button|
|
62
|
+
button.with_leading_visual_icon(icon: :alert)
|
63
|
+
"Click me"
|
64
|
+
end
|
65
|
+
|
66
|
+
render(Primer::OpenProject::PageHeader.new) do |component|
|
67
|
+
component.with_title { "Great news" }
|
68
|
+
component.with_breadcrumbs([{ href: "/foo", text: "Foo" }, { href: "/bar", text: "Bar" }, "Baz"])
|
69
|
+
|
70
|
+
component.with_action_button(mobile_icon: "star", mobile_label: "Star") do |button|
|
71
|
+
button.with_leading_visual_icon(icon: "star")
|
72
|
+
"Star"
|
73
|
+
end
|
74
|
+
component.with_action_menu(menu_arguments: { anchor_align: :end },
|
75
|
+
button_arguments: { button_block: callback }) do |menu|
|
76
|
+
menu.with_item(label: "Subitem 1") do |item|
|
77
|
+
item.with_leading_visual_icon(icon: :paste)
|
78
|
+
end
|
79
|
+
menu.with_item(label: "Subitem 2") do |item|
|
80
|
+
item.with_leading_visual_icon(icon: :log)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# @label With a dialog inside the actions
|
87
|
+
def dialog_actions
|
88
|
+
callback = lambda do |button|
|
89
|
+
button.with_leading_visual_icon(icon: :plus)
|
90
|
+
"Open dialog"
|
91
|
+
end
|
92
|
+
|
93
|
+
render(Primer::OpenProject::PageHeader.new) do |component|
|
94
|
+
component.with_title { "Great news" }
|
95
|
+
component.with_breadcrumbs([{ href: "/foo", text: "Foo" }, { href: "/bar", text: "Bar" }, "Baz"])
|
96
|
+
|
97
|
+
component.with_action_icon_button(icon: :trash, mobile_icon: :trash, label: "Delete", scheme: :danger)
|
98
|
+
|
99
|
+
component.with_action_dialog(mobile_icon: :plus, mobile_label: "Open dialog",
|
100
|
+
dialog_arguments: { id: "my_dialog", title: "A great dialog" },
|
101
|
+
button_arguments: { button_block: callback }) do |d|
|
102
|
+
d.with_body { "Hello" }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
59
107
|
# @label With leading action (on wide)
|
60
108
|
# **Leading action** is only shown on **wide screens** by default.
|
61
109
|
# If you want to override that behaviour please use the system_argument: **display**
|
@@ -0,0 +1,22 @@
|
|
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 ZenModeButton
|
9
|
+
class ZenModeButtonPreview < ViewComponent::Preview
|
10
|
+
# @label Default
|
11
|
+
# @snapshot
|
12
|
+
def default
|
13
|
+
render(Primer::OpenProject::ZenModeButton.new)
|
14
|
+
end
|
15
|
+
|
16
|
+
# @label Playground
|
17
|
+
def playground
|
18
|
+
render(Primer::OpenProject::ZenModeButton.new)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/static/arguments.json
CHANGED
@@ -4974,12 +4974,34 @@
|
|
4974
4974
|
]
|
4975
4975
|
},
|
4976
4976
|
{
|
4977
|
-
"component": "OpenProject::PageHeader::
|
4977
|
+
"component": "OpenProject::PageHeader::Dialog",
|
4978
4978
|
"status": "open_project",
|
4979
4979
|
"a11y_reviewed": false,
|
4980
|
-
"short_name": "
|
4981
|
-
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/
|
4982
|
-
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/
|
4980
|
+
"short_name": "OpenProjectPageHeaderDialog",
|
4981
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/dialog.rb",
|
4982
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/dialog/default/",
|
4983
|
+
"parameters": [
|
4984
|
+
{
|
4985
|
+
"name": "dialog_arguments",
|
4986
|
+
"type": "Hash",
|
4987
|
+
"default": "`{}`",
|
4988
|
+
"description": "The arguments accepted by [Dialog](/components/alpha/dialog)."
|
4989
|
+
},
|
4990
|
+
{
|
4991
|
+
"name": "button_arguments",
|
4992
|
+
"type": "Hash",
|
4993
|
+
"default": "`{}`",
|
4994
|
+
"description": "The arguments accepted by [Button](/components/beta/button) or [IconButton](/components/beta/iconbutton), depending on the value of the `icon:` argument."
|
4995
|
+
}
|
4996
|
+
]
|
4997
|
+
},
|
4998
|
+
{
|
4999
|
+
"component": "OpenProject::PageHeader::Menu",
|
5000
|
+
"status": "open_project",
|
5001
|
+
"a11y_reviewed": false,
|
5002
|
+
"short_name": "OpenProjectPageHeaderMenu",
|
5003
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/menu.rb",
|
5004
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/menu/default/",
|
4983
5005
|
"parameters": [
|
4984
5006
|
{
|
4985
5007
|
"name": "menu_arguments",
|
@@ -4995,6 +5017,22 @@
|
|
4995
5017
|
}
|
4996
5018
|
]
|
4997
5019
|
},
|
5020
|
+
{
|
5021
|
+
"component": "OpenProject::ZenModeButton",
|
5022
|
+
"status": "open_project",
|
5023
|
+
"a11y_reviewed": false,
|
5024
|
+
"short_name": "OpenProjectZenModeButton",
|
5025
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/zen_mode_button.rb",
|
5026
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/zen_mode_button/default/",
|
5027
|
+
"parameters": [
|
5028
|
+
{
|
5029
|
+
"name": "system_arguments",
|
5030
|
+
"type": "Hash",
|
5031
|
+
"default": "N/A",
|
5032
|
+
"description": "[System arguments](/system-arguments)"
|
5033
|
+
}
|
5034
|
+
]
|
5035
|
+
},
|
4998
5036
|
{
|
4999
5037
|
"component": "Tooltip",
|
5000
5038
|
"status": "deprecated",
|
data/static/audited_at.json
CHANGED
@@ -121,7 +121,9 @@
|
|
121
121
|
"Primer::OpenProject::GridLayout::Area": "",
|
122
122
|
"Primer::OpenProject::InputGroup": "",
|
123
123
|
"Primer::OpenProject::PageHeader": "",
|
124
|
-
"Primer::OpenProject::PageHeader::
|
124
|
+
"Primer::OpenProject::PageHeader::Dialog": "",
|
125
|
+
"Primer::OpenProject::PageHeader::Menu": "",
|
126
|
+
"Primer::OpenProject::ZenModeButton": "",
|
125
127
|
"Primer::Tooltip": "",
|
126
128
|
"Primer::Truncate": ""
|
127
129
|
}
|
data/static/constants.json
CHANGED
@@ -1449,6 +1449,7 @@
|
|
1449
1449
|
"block",
|
1450
1450
|
"none"
|
1451
1451
|
],
|
1452
|
+
"Dialog": "Primer::OpenProject::PageHeader::Dialog",
|
1452
1453
|
"HEADER_VARIANT_OPTIONS": [
|
1453
1454
|
"medium",
|
1454
1455
|
"large"
|
@@ -1466,9 +1467,13 @@
|
|
1466
1467
|
"flex",
|
1467
1468
|
"none"
|
1468
1469
|
],
|
1469
|
-
"
|
1470
|
+
"Menu": "Primer::OpenProject::PageHeader::Menu"
|
1470
1471
|
},
|
1471
|
-
"Primer::OpenProject::PageHeader::
|
1472
|
+
"Primer::OpenProject::PageHeader::Dialog": {
|
1473
|
+
},
|
1474
|
+
"Primer::OpenProject::PageHeader::Menu": {
|
1475
|
+
},
|
1476
|
+
"Primer::OpenProject::ZenModeButton": {
|
1472
1477
|
},
|
1473
1478
|
"Primer::Tooltip": {
|
1474
1479
|
"ALIGN_DEFAULT": "default",
|
data/static/info_arch.json
CHANGED
@@ -16605,6 +16605,32 @@
|
|
16605
16605
|
]
|
16606
16606
|
}
|
16607
16607
|
},
|
16608
|
+
{
|
16609
|
+
"preview_path": "primer/open_project/page_header/menu_actions",
|
16610
|
+
"name": "menu_actions",
|
16611
|
+
"snapshot": "false",
|
16612
|
+
"skip_rules": {
|
16613
|
+
"wont_fix": [
|
16614
|
+
"region"
|
16615
|
+
],
|
16616
|
+
"will_fix": [
|
16617
|
+
"color-contrast"
|
16618
|
+
]
|
16619
|
+
}
|
16620
|
+
},
|
16621
|
+
{
|
16622
|
+
"preview_path": "primer/open_project/page_header/dialog_actions",
|
16623
|
+
"name": "dialog_actions",
|
16624
|
+
"snapshot": "false",
|
16625
|
+
"skip_rules": {
|
16626
|
+
"wont_fix": [
|
16627
|
+
"region"
|
16628
|
+
],
|
16629
|
+
"will_fix": [
|
16630
|
+
"color-contrast"
|
16631
|
+
]
|
16632
|
+
}
|
16633
|
+
},
|
16608
16634
|
{
|
16609
16635
|
"preview_path": "primer/open_project/page_header/leading_action",
|
16610
16636
|
"name": "leading_action",
|
@@ -16637,18 +16663,58 @@
|
|
16637
16663
|
]
|
16638
16664
|
},
|
16639
16665
|
{
|
16640
|
-
"fully_qualified_name": "Primer::OpenProject::PageHeader::
|
16641
|
-
"description": "A Helper class to create ActionMenus inside the PageHeader action slot",
|
16666
|
+
"fully_qualified_name": "Primer::OpenProject::PageHeader::Dialog",
|
16667
|
+
"description": "A Helper class to create ActionMenus inside the PageHeader action slot\nDo not use standalone",
|
16668
|
+
"accessibility_docs": null,
|
16669
|
+
"is_form_component": false,
|
16670
|
+
"is_published": true,
|
16671
|
+
"requires_js": false,
|
16672
|
+
"component": "OpenProject::PageHeader::Dialog",
|
16673
|
+
"status": "open_project",
|
16674
|
+
"a11y_reviewed": false,
|
16675
|
+
"short_name": "OpenProjectPageHeaderDialog",
|
16676
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/dialog.rb",
|
16677
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/dialog/default/",
|
16678
|
+
"parameters": [
|
16679
|
+
{
|
16680
|
+
"name": "dialog_arguments",
|
16681
|
+
"type": "Hash",
|
16682
|
+
"default": "`{}`",
|
16683
|
+
"description": "The arguments accepted by {{#link_to_component}}Primer::Alpha::Dialog{{/link_to_component}}."
|
16684
|
+
},
|
16685
|
+
{
|
16686
|
+
"name": "button_arguments",
|
16687
|
+
"type": "Hash",
|
16688
|
+
"default": "`{}`",
|
16689
|
+
"description": "The arguments accepted by {{#link_to_component}}Primer::Beta::Button{{/link_to_component}} or {{#link_to_component}}Primer::Beta::IconButton{{/link_to_component}}, depending on the value of the `icon:` argument."
|
16690
|
+
}
|
16691
|
+
],
|
16692
|
+
"slots": [
|
16693
|
+
|
16694
|
+
],
|
16695
|
+
"methods": [
|
16696
|
+
|
16697
|
+
],
|
16698
|
+
"previews": [
|
16699
|
+
|
16700
|
+
],
|
16701
|
+
"subcomponents": [
|
16702
|
+
|
16703
|
+
]
|
16704
|
+
},
|
16705
|
+
{
|
16706
|
+
"fully_qualified_name": "Primer::OpenProject::PageHeader::Menu",
|
16707
|
+
"description": "A Helper class to create ActionMenus inside the PageHeader action slot\nIt should not be used standalone",
|
16642
16708
|
"accessibility_docs": null,
|
16643
16709
|
"is_form_component": false,
|
16644
16710
|
"is_published": true,
|
16645
16711
|
"requires_js": false,
|
16646
|
-
"component": "OpenProject::PageHeader::
|
16712
|
+
"component": "OpenProject::PageHeader::Menu",
|
16647
16713
|
"status": "open_project",
|
16648
16714
|
"a11y_reviewed": false,
|
16649
|
-
"short_name": "
|
16650
|
-
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/
|
16651
|
-
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/
|
16715
|
+
"short_name": "OpenProjectPageHeaderMenu",
|
16716
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/menu.rb",
|
16717
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/menu/default/",
|
16652
16718
|
"parameters": [
|
16653
16719
|
{
|
16654
16720
|
"name": "menu_arguments",
|
@@ -16676,6 +16742,65 @@
|
|
16676
16742
|
|
16677
16743
|
]
|
16678
16744
|
},
|
16745
|
+
{
|
16746
|
+
"fully_qualified_name": "Primer::OpenProject::ZenModeButton",
|
16747
|
+
"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.",
|
16748
|
+
"accessibility_docs": "Add any accessibility considerations",
|
16749
|
+
"is_form_component": false,
|
16750
|
+
"is_published": true,
|
16751
|
+
"requires_js": false,
|
16752
|
+
"component": "OpenProject::ZenModeButton",
|
16753
|
+
"status": "open_project",
|
16754
|
+
"a11y_reviewed": false,
|
16755
|
+
"short_name": "OpenProjectZenModeButton",
|
16756
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/zen_mode_button.rb",
|
16757
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/zen_mode_button/default/",
|
16758
|
+
"parameters": [
|
16759
|
+
{
|
16760
|
+
"name": "system_arguments",
|
16761
|
+
"type": "Hash",
|
16762
|
+
"default": "N/A",
|
16763
|
+
"description": "{{link_to_system_arguments_docs}}"
|
16764
|
+
}
|
16765
|
+
],
|
16766
|
+
"slots": [
|
16767
|
+
|
16768
|
+
],
|
16769
|
+
"methods": [
|
16770
|
+
|
16771
|
+
],
|
16772
|
+
"previews": [
|
16773
|
+
{
|
16774
|
+
"preview_path": "primer/open_project/zen_mode_button/default",
|
16775
|
+
"name": "default",
|
16776
|
+
"snapshot": "true",
|
16777
|
+
"skip_rules": {
|
16778
|
+
"wont_fix": [
|
16779
|
+
"region"
|
16780
|
+
],
|
16781
|
+
"will_fix": [
|
16782
|
+
"color-contrast"
|
16783
|
+
]
|
16784
|
+
}
|
16785
|
+
},
|
16786
|
+
{
|
16787
|
+
"preview_path": "primer/open_project/zen_mode_button/playground",
|
16788
|
+
"name": "playground",
|
16789
|
+
"snapshot": "false",
|
16790
|
+
"skip_rules": {
|
16791
|
+
"wont_fix": [
|
16792
|
+
"region"
|
16793
|
+
],
|
16794
|
+
"will_fix": [
|
16795
|
+
"color-contrast"
|
16796
|
+
]
|
16797
|
+
}
|
16798
|
+
}
|
16799
|
+
],
|
16800
|
+
"subcomponents": [
|
16801
|
+
|
16802
|
+
]
|
16803
|
+
},
|
16679
16804
|
{
|
16680
16805
|
"fully_qualified_name": "Primer::Tooltip",
|
16681
16806
|
"description": "`Tooltip` is a wrapper component that will apply a tooltip to the provided content.",
|