openproject-primer_view_components 0.26.0 → 0.28.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 +20 -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 +29 -28
- 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 +26 -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 +64 -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 +9 -2
- data/static/info_arch.json +144 -6
- data/static/previews.json +73 -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
|
@@ -71,8 +71,18 @@ module Primer
|
|
71
71
|
|
72
72
|
Primer::Beta::Button.new(**system_arguments)
|
73
73
|
},
|
74
|
+
zen_mode_button: lambda { |mobile_icon: Primer::OpenProject::ZenModeButton::ZEN_MODE_BUTTON_ICON, mobile_label: Primer::OpenProject::ZenModeButton::ZEN_MODE_BUTTON_LABEL, **system_arguments|
|
75
|
+
deny_tag_argument(**system_arguments)
|
76
|
+
system_arguments = set_action_arguments(system_arguments, scheme: DEFAULT_ACTION_SCHEME)
|
77
|
+
add_option_to_mobile_menu(system_arguments, mobile_icon, mobile_label, DEFAULT_ACTION_SCHEME)
|
78
|
+
|
79
|
+
Primer::OpenProject::ZenModeButton.new(**system_arguments)
|
80
|
+
},
|
81
|
+
|
74
82
|
link: lambda { |mobile_icon:, mobile_label:, scheme: DEFAULT_ACTION_SCHEME, **system_arguments|
|
75
83
|
deny_tag_argument(**system_arguments)
|
84
|
+
system_arguments[:target] ||= "_top"
|
85
|
+
|
76
86
|
system_arguments = set_action_arguments(system_arguments, scheme: scheme)
|
77
87
|
add_option_to_mobile_menu(system_arguments, mobile_icon, mobile_label, scheme)
|
78
88
|
|
@@ -97,7 +107,20 @@ module Primer
|
|
97
107
|
# Add the options individually to the mobile menu in the template
|
98
108
|
@desktop_menu_block = block
|
99
109
|
|
100
|
-
|
110
|
+
Primer::OpenProject::PageHeader::Menu.new(**system_arguments)
|
111
|
+
},
|
112
|
+
},
|
113
|
+
dialog: {
|
114
|
+
renders: lambda { |mobile_icon:, mobile_label:, **system_arguments|
|
115
|
+
deny_tag_argument(**system_arguments)
|
116
|
+
|
117
|
+
# The id will be automatically calculated for the trigger button, so we have to behave the same, for the mobile click to work
|
118
|
+
system_arguments[:button_arguments][:id] = "dialog-show-#{system_arguments[:dialog_arguments][:id]}"
|
119
|
+
|
120
|
+
system_arguments[:button_arguments] = set_action_arguments(system_arguments[:button_arguments])
|
121
|
+
add_option_to_mobile_menu(system_arguments[:button_arguments], mobile_icon, mobile_label, :default)
|
122
|
+
|
123
|
+
Primer::OpenProject::PageHeader::Dialog.new(**system_arguments)
|
101
124
|
},
|
102
125
|
},
|
103
126
|
}
|
@@ -138,6 +161,8 @@ module Primer
|
|
138
161
|
|
139
162
|
link_arguments[:icon] = fetch_or_fallback(BACK_BUTTON_ICON_OPTIONS, DEFAULT_BACK_BUTTON_ICON)
|
140
163
|
link_arguments[:href] = parsed_parent_item[:href]
|
164
|
+
link_arguments[:target] = "_top"
|
165
|
+
|
141
166
|
link_arguments[:classes] = class_names(link_arguments[:classes], "PageHeader-parentLink")
|
142
167
|
link_arguments[:display] ||= DEFAULT_PARENT_LINK_DISPLAY
|
143
168
|
|
@@ -156,7 +181,7 @@ module Primer
|
|
156
181
|
if item.is_a?(String)
|
157
182
|
breadcrumbs.with_item(href: "#") { item }
|
158
183
|
else
|
159
|
-
breadcrumbs.with_item(href: item[:href]) { item[:text] }
|
184
|
+
breadcrumbs.with_item(href: item[:href], target: "_top") { item[:text] }
|
160
185
|
end
|
161
186
|
end
|
162
187
|
end
|
@@ -183,6 +208,8 @@ module Primer
|
|
183
208
|
|
184
209
|
def render?
|
185
210
|
raise ArgumentError, "PageHeader needs a title and a breadcrumb. Please use the `with_title` and `with_breadcrumbs` slot" unless breadcrumbs? || Rails.env.production?
|
211
|
+
raise ArgumentError, "PageHeader allows only a maximum of 5 actions" if actions.count > 5
|
212
|
+
|
186
213
|
title? && breadcrumbs?
|
187
214
|
end
|
188
215
|
|
@@ -253,32 +280,6 @@ module Primer
|
|
253
280
|
def anchor_tag_string?(item)
|
254
281
|
item.is_a?(String) && item.start_with?("\u003c")
|
255
282
|
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
283
|
end
|
283
284
|
end
|
284
285
|
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: ZEN_MODE_BUTTON_ICON,
|
7
|
+
aria: { label: ZEN_MODE_BUTTON_LABEL },
|
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,26 @@
|
|
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
|
+
ZEN_MODE_BUTTON_LABEL = I18n.t("label_zen_mode")
|
12
|
+
ZEN_MODE_BUTTON_ICON = "screen-full"
|
13
|
+
|
14
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
15
|
+
def initialize(**system_arguments)
|
16
|
+
@system_arguments = system_arguments
|
17
|
+
@system_arguments[:tag] = "zen-mode-button"
|
18
|
+
@system_arguments[:classes] =
|
19
|
+
class_names(
|
20
|
+
@system_arguments[:classes],
|
21
|
+
"ZenModeButton"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
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,70 @@ 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
|
+
|
107
|
+
# @label With a ZenModeButton inside the actions
|
108
|
+
# The missing label will be resolved automatically when included into the core
|
109
|
+
def zen_mode_button_actions
|
110
|
+
render(Primer::OpenProject::PageHeader.new) do |component|
|
111
|
+
component.with_title { "Great news" }
|
112
|
+
component.with_breadcrumbs([{ href: "/foo", text: "Foo" }, { href: "/bar", text: "Bar" }, "Baz"])
|
113
|
+
|
114
|
+
# The missing label will be resolved automatically when included into the core
|
115
|
+
component.with_action_zen_mode_button
|
116
|
+
component.with_action_button(mobile_icon: "plus", mobile_label: "Meeting", scheme: :primary) do |button|
|
117
|
+
button.with_leading_visual_icon(icon: "plus")
|
118
|
+
"Meeting"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
59
123
|
# @label With leading action (on wide)
|
60
124
|
# **Leading action** is only shown on **wide screens** by default.
|
61
125
|
# 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,15 @@
|
|
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": {
|
1477
|
+
"ZEN_MODE_BUTTON_ICON": "screen-full",
|
1478
|
+
"ZEN_MODE_BUTTON_LABEL": "Translation missing: en.label_zen_mode"
|
1472
1479
|
},
|
1473
1480
|
"Primer::Tooltip": {
|
1474
1481
|
"ALIGN_DEFAULT": "default",
|