openproject-primer_view_components 0.26.0 → 0.28.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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/app/assets/javascripts/app/components/primer/open_project/zen_mode_button.d.ts +13 -0
  4. data/app/assets/javascripts/app/components/primer/primer.d.ts +1 -0
  5. data/app/assets/javascripts/primer_view_components.js +1 -1
  6. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  7. data/app/components/primer/open_project/page_header/dialog.rb +38 -0
  8. data/app/components/primer/open_project/page_header/menu.rb +38 -0
  9. data/app/components/primer/open_project/page_header.rb +29 -28
  10. data/app/components/primer/open_project/zen_mode_button.d.ts +13 -0
  11. data/app/components/primer/open_project/zen_mode_button.html.erb +11 -0
  12. data/app/components/primer/open_project/zen_mode_button.js +45 -0
  13. data/app/components/primer/open_project/zen_mode_button.rb +26 -0
  14. data/app/components/primer/open_project/zen_mode_button.ts +42 -0
  15. data/app/components/primer/primer.d.ts +1 -0
  16. data/app/components/primer/primer.js +1 -0
  17. data/app/components/primer/primer.ts +1 -0
  18. data/lib/primer/view_components/version.rb +1 -1
  19. data/previews/primer/open_project/page_header_preview/actions.html.erb +0 -8
  20. data/previews/primer/open_project/page_header_preview.rb +64 -0
  21. data/previews/primer/open_project/zen_mode_button_preview.rb +22 -0
  22. data/static/arguments.json +42 -4
  23. data/static/audited_at.json +3 -1
  24. data/static/constants.json +9 -2
  25. data/static/info_arch.json +144 -6
  26. data/static/previews.json +73 -0
  27. data/static/statuses.json +3 -1
  28. 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
- PageHeaderActionMenu.new(**system_arguments)
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
+ }
@@ -23,3 +23,4 @@ import '../../../lib/primer/forms/primer_text_field';
23
23
  import '../../../lib/primer/forms/toggle_switch_input';
24
24
  import './alpha/action_menu/action_menu_element';
25
25
  import './open_project/page_header_element';
26
+ import './open_project/zen_mode_button';
@@ -23,3 +23,4 @@ import '../../../lib/primer/forms/primer_text_field';
23
23
  import '../../../lib/primer/forms/toggle_switch_input';
24
24
  import './alpha/action_menu/action_menu_element';
25
25
  import './open_project/page_header_element';
26
+ import './open_project/zen_mode_button';
@@ -23,3 +23,4 @@ import '../../../lib/primer/forms/primer_text_field'
23
23
  import '../../../lib/primer/forms/toggle_switch_input'
24
24
  import './alpha/action_menu/action_menu_element'
25
25
  import './open_project/page_header_element'
26
+ import './open_project/zen_mode_button'
@@ -5,7 +5,7 @@ module Primer
5
5
  module ViewComponents
6
6
  module VERSION
7
7
  MAJOR = 0
8
- MINOR = 26
8
+ MINOR = 28
9
9
  PATCH = 0
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
@@ -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
@@ -4974,12 +4974,34 @@
4974
4974
  ]
4975
4975
  },
4976
4976
  {
4977
- "component": "OpenProject::PageHeader::PageHeaderActionMenu",
4977
+ "component": "OpenProject::PageHeader::Dialog",
4978
4978
  "status": "open_project",
4979
4979
  "a11y_reviewed": false,
4980
- "short_name": "OpenProjectPageHeaderPageHeaderActionMenu",
4981
- "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/page_header_action_menu.rb",
4982
- "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/page_header_action_menu/default/",
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",
@@ -121,7 +121,9 @@
121
121
  "Primer::OpenProject::GridLayout::Area": "",
122
122
  "Primer::OpenProject::InputGroup": "",
123
123
  "Primer::OpenProject::PageHeader": "",
124
- "Primer::OpenProject::PageHeader::PageHeaderActionMenu": "",
124
+ "Primer::OpenProject::PageHeader::Dialog": "",
125
+ "Primer::OpenProject::PageHeader::Menu": "",
126
+ "Primer::OpenProject::ZenModeButton": "",
125
127
  "Primer::Tooltip": "",
126
128
  "Primer::Truncate": ""
127
129
  }
@@ -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
- "PageHeaderActionMenu": "Primer::OpenProject::PageHeader::PageHeaderActionMenu"
1470
+ "Menu": "Primer::OpenProject::PageHeader::Menu"
1470
1471
  },
1471
- "Primer::OpenProject::PageHeader::PageHeaderActionMenu": {
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",