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.
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",