openproject-primer_view_components 0.25.1 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -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/assets/styles/primer_view_components.css +1 -1
  8. data/app/assets/styles/primer_view_components.css.map +1 -1
  9. data/app/components/primer/alpha/action_list/item.rb +1 -1
  10. data/app/components/primer/alpha/action_list.js +15 -12
  11. data/app/components/primer/alpha/action_list.ts +12 -9
  12. data/app/components/primer/alpha/dialog.css +1 -1
  13. data/app/components/primer/alpha/dialog.css.json +1 -0
  14. data/app/components/primer/alpha/dialog.css.map +1 -1
  15. data/app/components/primer/alpha/dialog.pcss +4 -0
  16. data/app/components/primer/alpha/overlay/header.html.erb +1 -0
  17. data/app/components/primer/alpha/overlay/header.rb +12 -0
  18. data/app/components/primer/alpha/tool_tip.js +1 -1
  19. data/app/components/primer/alpha/tool_tip.ts +1 -1
  20. data/app/components/primer/open_project/page_header/dialog.rb +38 -0
  21. data/app/components/primer/open_project/page_header/menu.rb +38 -0
  22. data/app/components/primer/open_project/page_header.rb +16 -27
  23. data/app/components/primer/open_project/zen_mode_button.d.ts +13 -0
  24. data/app/components/primer/open_project/zen_mode_button.html.erb +11 -0
  25. data/app/components/primer/open_project/zen_mode_button.js +45 -0
  26. data/app/components/primer/open_project/zen_mode_button.rb +23 -0
  27. data/app/components/primer/open_project/zen_mode_button.ts +42 -0
  28. data/app/components/primer/primer.d.ts +1 -0
  29. data/app/components/primer/primer.js +1 -0
  30. data/app/components/primer/primer.ts +1 -0
  31. data/lib/primer/view_components/version.rb +2 -2
  32. data/previews/primer/alpha/action_list_preview.rb +19 -1
  33. data/previews/primer/alpha/overlay_preview/overlay_with_header_filter.html.erb +16 -0
  34. data/previews/primer/alpha/overlay_preview.rb +4 -0
  35. data/previews/primer/alpha/tab_nav_preview.rb +1 -1
  36. data/previews/primer/alpha/tab_panels_preview.rb +2 -2
  37. data/previews/primer/alpha/underline_nav_preview.rb +3 -3
  38. data/previews/primer/alpha/underline_panels_preview.rb +38 -0
  39. data/previews/primer/beta/avatar_stack_preview.rb +1 -1
  40. data/previews/primer/beta/breadcrumbs_preview.rb +2 -2
  41. data/previews/primer/beta/nav_list_preview.rb +9 -3
  42. data/previews/primer/open_project/page_header_preview/actions.html.erb +0 -8
  43. data/previews/primer/open_project/page_header_preview.rb +48 -0
  44. data/previews/primer/open_project/zen_mode_button_preview.rb +22 -0
  45. data/static/arguments.json +42 -4
  46. data/static/audited_at.json +3 -1
  47. data/static/classes.json +3 -0
  48. data/static/constants.json +7 -2
  49. data/static/info_arch.json +183 -8
  50. data/static/previews.json +99 -0
  51. data/static/statuses.json +3 -1
  52. metadata +12 -2
@@ -10,7 +10,7 @@ module Primer
10
10
  # @param align [Symbol] select [left, right]
11
11
  def playground(number_of_panels: 3, align: :left)
12
12
  render(Primer::Alpha::TabPanels.new(label: "label", align: align)) do |component|
13
- Array.new(number_of_panels || 3) do |i|
13
+ Array.new(number_of_panels&.to_i || 3) do |i|
14
14
  component.with_tab(selected: i.zero?, id: "tab-#{i + 1}") do |tab|
15
15
  tab.with_panel { "Panel #{i + 1}" }
16
16
  tab.with_text { "Tab #{i + 1}" }
@@ -26,7 +26,7 @@ module Primer
26
26
  # @snapshot
27
27
  def default(number_of_panels: 3, align: :left)
28
28
  render(Primer::Alpha::TabPanels.new(label: "label", align: align)) do |component|
29
- Array.new(number_of_panels || 3) do |i|
29
+ Array.new(number_of_panels&.to_i || 3) do |i|
30
30
  component.with_tab(selected: i.zero?, id: "tab-#{i + 1}") do |tab|
31
31
  tab.with_panel { "Panel #{i + 1}" }
32
32
  tab.with_text { "Tab #{i + 1}" }
@@ -15,7 +15,7 @@ module Primer
15
15
  label: label,
16
16
  tag: tag,
17
17
  align: align,
18
- number_of_panels: number_of_panels
18
+ number_of_panels: number_of_panels.to_i,
19
19
  })
20
20
  end
21
21
 
@@ -31,7 +31,7 @@ module Primer
31
31
  label: label,
32
32
  tag: tag,
33
33
  align: align,
34
- number_of_panels: number_of_panels
34
+ number_of_panels: number_of_panels.to_i,
35
35
  })
36
36
  end
37
37
 
@@ -44,7 +44,7 @@ module Primer
44
44
  # @param number_of_panels [Integer] number
45
45
  def with_icons_and_counters(label: "With icons and counters", number_of_panels: 3, align: :left, tag: :nav)
46
46
  render(Primer::Alpha::UnderlineNav.new(label: label, tag: tag, align: align)) do |component|
47
- Array.new(number_of_panels || 3) do |i|
47
+ Array.new(number_of_panels.to_i || 3) do |i|
48
48
  component.with_tab(href: "#", selected: i.zero?) do |tab|
49
49
  tab.with_icon(icon: :star)
50
50
  tab.with_text { "Item #{i + 1}" }
@@ -21,9 +21,44 @@ module Primer
21
21
 
22
22
  # @label Default options
23
23
  #
24
+ # @snapshot
24
25
  # @param number_of_panels [Integer] number
25
26
  # @param align [Symbol] select [left, right]
26
27
  def default(number_of_panels: 3, align: :left)
28
+ render(Primer::Alpha::UnderlinePanels.new(label: "Test navigation", align: align)) do |component|
29
+ Array.new(number_of_panels&.to_i || 3) do |i|
30
+ component.with_tab(selected: i.zero?, id: "tab-#{i + 1}") do |tab|
31
+ tab.with_panel { "Panel #{i + 1}" }
32
+ tab.with_text { "Tab #{i + 1}" }
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ # @label With Icons and Counters
39
+ #
40
+ # @snapshot
41
+ # @param number_of_panels [Integer] number
42
+ # @param align [Symbol] select [left, right]
43
+ def with_icons_and_counters(number_of_panels: 3, align: :left)
44
+ render(Primer::Alpha::UnderlinePanels.new(label: "Test navigation", align: align)) do |component|
45
+ Array.new(number_of_panels || 3) do |i|
46
+ component.with_tab(selected: i.zero?, id: "tab-#{i + 1}") do |tab|
47
+ tab.with_panel { "Panel #{i + 1}" }
48
+ tab.with_text { "Tab #{i + 1}" }
49
+ tab.with_icon(icon: :star)
50
+ tab.with_counter(count: (i + 1) * 5)
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ # @label With Actions
57
+ #
58
+ # @snapshot
59
+ # @param number_of_panels [Integer] number
60
+ # @param align [Symbol] select [left, right]
61
+ def with_actions(number_of_panels: 3, align: :right)
27
62
  render(Primer::Alpha::UnderlinePanels.new(label: "Test navigation", align: align)) do |component|
28
63
  Array.new(number_of_panels || 3) do |i|
29
64
  component.with_tab(selected: i.zero?, id: "tab-#{i + 1}") do |tab|
@@ -31,6 +66,9 @@ module Primer
31
66
  tab.with_text { "Tab #{i + 1}" }
32
67
  end
33
68
  end
69
+ component.with_actions do
70
+ "Actions Content"
71
+ end
34
72
  end
35
73
  end
36
74
  end
@@ -13,7 +13,7 @@ module Primer
13
13
  # @param tooltip_label text
14
14
  def playground(number_of_avatars: 1, tag: :div, align: :left, tooltipped: false, tooltip_label: "This is a tooltip!")
15
15
  render(Primer::Beta::AvatarStack.new(tag: tag, align: align, tooltipped: tooltipped, body_arguments: { label: tooltip_label })) do |component|
16
- Array.new(number_of_avatars || 1) do
16
+ Array.new(number_of_avatars&.to_i || 1) do
17
17
  component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
18
18
  end
19
19
  end
@@ -9,7 +9,7 @@ module Primer
9
9
  # @param number_of_links [Integer] number
10
10
  def playground(number_of_links: 2)
11
11
  render(Primer::Beta::Breadcrumbs.new) do |component|
12
- Array.new(number_of_links || 3) do |i|
12
+ Array.new(number_of_links&.to_i || 3) do |i|
13
13
  component.with_item(href: "##{i}") { "Breadcrumb Item #{i + 1}" }
14
14
  end
15
15
  end
@@ -21,7 +21,7 @@ module Primer
21
21
  # @snapshot
22
22
  def default(number_of_links: 2)
23
23
  render(Primer::Beta::Breadcrumbs.new) do |component|
24
- Array.new(number_of_links || 3) do |i|
24
+ Array.new(number_of_links&.to_i || 3) do |i|
25
25
  component.with_item(href: "##{i}") { "Breadcrumb Item #{i + 1}" }
26
26
  end
27
27
  end
@@ -139,9 +139,15 @@ module Primer
139
139
  component.with_item(
140
140
  label: "Really really long label that may wrap, truncate, or appear as a tooltip",
141
141
  truncate_label: truncate_label
142
- ) do |item|
143
- item.with_trailing_visual_icon(icon: :plus)
144
- end
142
+ )
143
+ component.with_item(
144
+ label: "Really really long label that may wrap, truncate, or appear as a tooltip",
145
+ truncate_label: truncate_label
146
+ )
147
+ component.with_item(
148
+ label: "Really really long label that may wrap, truncate, or appear as a tooltip",
149
+ truncate_label: truncate_label
150
+ )
145
151
  end
146
152
  end
147
153
 
@@ -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
@@ -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
  }
data/static/classes.json CHANGED
@@ -420,6 +420,9 @@
420
420
  "Overlay-header": [
421
421
  "Primer::Alpha::Dialog"
422
422
  ],
423
+ "Overlay-headerFilter": [
424
+ "Primer::Alpha::Dialog"
425
+ ],
423
426
  "PageHeader": [
424
427
  "Primer::OpenProject::PageHeader"
425
428
  ],
@@ -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
- "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": {
1472
1477
  },
1473
1478
  "Primer::Tooltip": {
1474
1479
  "ALIGN_DEFAULT": "default",
@@ -6081,6 +6081,19 @@
6081
6081
  "color-contrast"
6082
6082
  ]
6083
6083
  }
6084
+ },
6085
+ {
6086
+ "preview_path": "primer/alpha/overlay/overlay_with_header_filter",
6087
+ "name": "overlay_with_header_filter",
6088
+ "snapshot": "false",
6089
+ "skip_rules": {
6090
+ "wont_fix": [
6091
+ "region"
6092
+ ],
6093
+ "will_fix": [
6094
+ "color-contrast"
6095
+ ]
6096
+ }
6084
6097
  }
6085
6098
  ],
6086
6099
  "subcomponents": [
@@ -6142,7 +6155,18 @@
6142
6155
  }
6143
6156
  ],
6144
6157
  "slots": [
6145
-
6158
+ {
6159
+ "name": "filter",
6160
+ "description": "Optional filter slot for adding a filter input to the header.",
6161
+ "parameters": [
6162
+ {
6163
+ "name": "system_arguments",
6164
+ "type": "Hash",
6165
+ "default": "N/A",
6166
+ "description": "{{link_to_system_arguments_docs}}"
6167
+ }
6168
+ ]
6169
+ }
6146
6170
  ],
6147
6171
  "methods": [
6148
6172
 
@@ -9141,7 +9165,33 @@
9141
9165
  {
9142
9166
  "preview_path": "primer/alpha/underline_panels/default",
9143
9167
  "name": "default",
9144
- "snapshot": "false",
9168
+ "snapshot": "true",
9169
+ "skip_rules": {
9170
+ "wont_fix": [
9171
+ "region"
9172
+ ],
9173
+ "will_fix": [
9174
+ "color-contrast"
9175
+ ]
9176
+ }
9177
+ },
9178
+ {
9179
+ "preview_path": "primer/alpha/underline_panels/with_icons_and_counters",
9180
+ "name": "with_icons_and_counters",
9181
+ "snapshot": "true",
9182
+ "skip_rules": {
9183
+ "wont_fix": [
9184
+ "region"
9185
+ ],
9186
+ "will_fix": [
9187
+ "color-contrast"
9188
+ ]
9189
+ }
9190
+ },
9191
+ {
9192
+ "preview_path": "primer/alpha/underline_panels/with_actions",
9193
+ "name": "with_actions",
9194
+ "snapshot": "true",
9145
9195
  "skip_rules": {
9146
9196
  "wont_fix": [
9147
9197
  "region"
@@ -16555,6 +16605,32 @@
16555
16605
  ]
16556
16606
  }
16557
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
+ },
16558
16634
  {
16559
16635
  "preview_path": "primer/open_project/page_header/leading_action",
16560
16636
  "name": "leading_action",
@@ -16587,18 +16663,58 @@
16587
16663
  ]
16588
16664
  },
16589
16665
  {
16590
- "fully_qualified_name": "Primer::OpenProject::PageHeader::PageHeaderActionMenu",
16591
- "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",
16592
16708
  "accessibility_docs": null,
16593
16709
  "is_form_component": false,
16594
16710
  "is_published": true,
16595
16711
  "requires_js": false,
16596
- "component": "OpenProject::PageHeader::PageHeaderActionMenu",
16712
+ "component": "OpenProject::PageHeader::Menu",
16597
16713
  "status": "open_project",
16598
16714
  "a11y_reviewed": false,
16599
- "short_name": "OpenProjectPageHeaderPageHeaderActionMenu",
16600
- "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/page_header/page_header_action_menu.rb",
16601
- "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/page_header/page_header_action_menu/default/",
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/",
16602
16718
  "parameters": [
16603
16719
  {
16604
16720
  "name": "menu_arguments",
@@ -16626,6 +16742,65 @@
16626
16742
 
16627
16743
  ]
16628
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
+ },
16629
16804
  {
16630
16805
  "fully_qualified_name": "Primer::Tooltip",
16631
16806
  "description": "`Tooltip` is a wrapper component that will apply a tooltip to the provided content.",