primer_view_components 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +1 -1
  4. data/app/assets/javascripts/app/components/primer/primer.d.ts +0 -1
  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_bar.css +1 -1
  10. data/app/components/primer/alpha/action_bar.css.json +1 -4
  11. data/app/components/primer/alpha/action_bar.css.map +1 -1
  12. data/app/components/primer/alpha/action_bar.pcss +1 -17
  13. data/app/components/primer/alpha/action_bar_element.js +21 -9
  14. data/app/components/primer/alpha/action_list/item.rb +0 -2
  15. data/app/components/primer/alpha/action_list.css +1 -1
  16. data/app/components/primer/alpha/action_list.css.map +1 -1
  17. data/app/components/primer/alpha/action_list.rb +0 -1
  18. data/app/components/primer/alpha/action_menu/action_menu_element.js +52 -26
  19. data/app/components/primer/alpha/action_menu/action_menu_element.ts +9 -6
  20. data/app/components/primer/alpha/action_menu/list.rb +0 -9
  21. data/app/components/primer/alpha/action_menu.html.erb +20 -18
  22. data/app/components/primer/alpha/auto_complete.css +1 -1
  23. data/app/components/primer/alpha/auto_complete.css.map +1 -1
  24. data/app/components/primer/alpha/button_marketing.css +1 -1
  25. data/app/components/primer/alpha/button_marketing.css.map +1 -1
  26. data/app/components/primer/alpha/dialog/header.rb +1 -1
  27. data/app/components/primer/alpha/dropdown.css +1 -1
  28. data/app/components/primer/alpha/dropdown.css.map +1 -1
  29. data/app/components/primer/alpha/layout.css +1 -1
  30. data/app/components/primer/alpha/layout.css.map +1 -1
  31. data/app/components/primer/alpha/menu.css +1 -1
  32. data/app/components/primer/alpha/menu.css.map +1 -1
  33. data/app/components/primer/alpha/nav_list/divider.rb +1 -0
  34. data/app/components/primer/alpha/nav_list/group.rb +1 -0
  35. data/app/components/primer/alpha/nav_list/heading.rb +1 -0
  36. data/app/components/primer/alpha/nav_list/item.rb +1 -0
  37. data/app/components/primer/alpha/nav_list.rb +1 -0
  38. data/app/components/primer/alpha/octicon_symbols.html.erb +1 -1
  39. data/app/components/primer/alpha/overlay.css +1 -1
  40. data/app/components/primer/alpha/overlay.css.json +0 -2
  41. data/app/components/primer/alpha/overlay.css.map +1 -1
  42. data/app/components/primer/alpha/overlay.pcss +0 -12
  43. data/app/components/primer/alpha/segmented_control.css +1 -1
  44. data/app/components/primer/alpha/segmented_control.css.json +0 -1
  45. data/app/components/primer/alpha/segmented_control.css.map +1 -1
  46. data/app/components/primer/alpha/segmented_control.js +2 -1
  47. data/app/components/primer/alpha/segmented_control.pcss +0 -4
  48. data/app/components/primer/alpha/tab_nav.css +1 -1
  49. data/app/components/primer/alpha/tab_nav.css.map +1 -1
  50. data/app/components/primer/alpha/text_field.css +1 -1
  51. data/app/components/primer/alpha/text_field.css.json +11 -5
  52. data/app/components/primer/alpha/text_field.css.map +1 -1
  53. data/app/components/primer/alpha/text_field.pcss +10 -1
  54. data/app/components/primer/alpha/toggle_switch.css +1 -1
  55. data/app/components/primer/alpha/toggle_switch.css.map +1 -1
  56. data/app/components/primer/alpha/underline_nav.css +1 -1
  57. data/app/components/primer/alpha/underline_nav.css.map +1 -1
  58. data/app/components/primer/alpha/x_banner.js +2 -1
  59. data/app/components/primer/anchored_position.js +2 -1
  60. data/app/components/primer/beta/auto_complete/item.rb +1 -1
  61. data/app/components/primer/beta/avatar.rb +1 -1
  62. data/app/components/primer/beta/base_button.rb +1 -1
  63. data/app/components/primer/beta/blankslate.css +1 -1
  64. data/app/components/primer/beta/blankslate.css.json +1 -0
  65. data/app/components/primer/beta/blankslate.css.map +1 -1
  66. data/app/components/primer/beta/blankslate.html.erb +16 -14
  67. data/app/components/primer/beta/blankslate.pcss +52 -2
  68. data/app/components/primer/beta/border_box.css +1 -1
  69. data/app/components/primer/beta/border_box.css.map +1 -1
  70. data/app/components/primer/beta/button.css +1 -1
  71. data/app/components/primer/beta/button.css.json +0 -1
  72. data/app/components/primer/beta/button.css.map +1 -1
  73. data/app/components/primer/beta/button.html.erb +18 -20
  74. data/app/components/primer/beta/button.pcss +0 -5
  75. data/app/components/primer/beta/button.rb +3 -0
  76. data/app/components/primer/beta/button_group.css +1 -1
  77. data/app/components/primer/beta/button_group.css.json +2 -4
  78. data/app/components/primer/beta/button_group.css.map +1 -1
  79. data/app/components/primer/beta/button_group.html.erb +3 -1
  80. data/app/components/primer/beta/button_group.pcss +2 -4
  81. data/app/components/primer/beta/button_group.rb +41 -12
  82. data/app/components/primer/beta/clipboard_copy.rb +4 -0
  83. data/app/components/primer/beta/clipboard_copy_button.rb +25 -0
  84. data/app/components/primer/beta/counter.rb +1 -1
  85. data/app/components/primer/beta/flash.html.erb +1 -1
  86. data/app/components/primer/beta/icon_button.html.erb +4 -6
  87. data/app/components/primer/beta/icon_button.rb +1 -3
  88. data/app/components/primer/beta/label.css +1 -1
  89. data/app/components/primer/beta/label.css.map +1 -1
  90. data/app/components/primer/beta/link.css +1 -1
  91. data/app/components/primer/beta/link.css.map +1 -1
  92. data/app/components/primer/beta/nav_list.js +14 -7
  93. data/app/components/primer/beta/subhead.css +1 -1
  94. data/app/components/primer/beta/subhead.css.json +2 -0
  95. data/app/components/primer/beta/subhead.css.map +1 -1
  96. data/app/components/primer/beta/subhead.pcss +8 -1
  97. data/app/components/primer/beta/subhead.rb +9 -1
  98. data/app/components/primer/focus_group.js +2 -1
  99. data/app/components/primer/primer.d.ts +0 -1
  100. data/app/components/primer/primer.js +0 -1
  101. data/app/components/primer/primer.pcss +0 -2
  102. data/app/components/primer/primer.ts +0 -1
  103. data/app/forms/action_menu_form.rb +20 -0
  104. data/app/forms/immediate_validation_form.rb +2 -2
  105. data/app/lib/primer/fetch_or_fallback_helper.rb +0 -1
  106. data/app/lib/primer/octicon/cache.rb +1 -1
  107. data/lib/primer/classify.rb +0 -2
  108. data/lib/primer/forms/action_menu.html.erb +6 -0
  109. data/lib/primer/forms/action_menu.rb +25 -0
  110. data/lib/primer/forms/acts_as_component.rb +0 -3
  111. data/lib/primer/forms/base.rb +0 -1
  112. data/lib/primer/forms/base_component.rb +0 -2
  113. data/lib/primer/forms/dsl/action_menu_input.rb +36 -0
  114. data/lib/primer/forms/dsl/input.rb +8 -1
  115. data/lib/primer/forms/dsl/input_methods.rb +9 -0
  116. data/lib/primer/forms/dsl/text_field_input.rb +8 -0
  117. data/lib/primer/forms/primer_base_component_wrapper.rb +0 -2
  118. data/lib/primer/forms/primer_text_field.js +40 -5
  119. data/lib/primer/forms/primer_text_field.ts +39 -7
  120. data/lib/primer/forms/validation_message.html.erb +2 -1
  121. data/lib/primer/static/generate_info_arch.rb +7 -3
  122. data/lib/primer/static/generate_previews.rb +0 -2
  123. data/lib/primer/view_components/engine.rb +5 -1
  124. data/lib/primer/view_components/linters/base_linter.rb +3 -2
  125. data/lib/primer/view_components/linters/deprecated_components_counter.rb +1 -1
  126. data/lib/primer/view_components/linters/disallow_action_list.rb +1 -0
  127. data/lib/primer/view_components/linters/severity_schema.rb +1 -0
  128. data/lib/primer/view_components/version.rb +2 -3
  129. data/lib/primer/yard/lookbook_pages_backend.rb +0 -2
  130. data/lib/rubocop/cop/primer/base_cop.rb +1 -1
  131. data/lib/rubocop/cop/primer/deprecated_arguments.rb +0 -2
  132. data/lib/rubocop/cop/primer/deprecated_components.rb +1 -1
  133. data/lib/rubocop/cop/primer/deprecated_label_schemes.rb +1 -1
  134. data/lib/rubocop/cop/primer/deprecated_label_variants.rb +1 -1
  135. data/previews/primer/alpha/octicon_symbols_preview/default.html.erb +6 -0
  136. data/previews/primer/alpha/octicon_symbols_preview/playground.html.erb +13 -0
  137. data/previews/primer/alpha/octicon_symbols_preview.rb +21 -0
  138. data/previews/primer/alpha/text_field_preview.rb +5 -0
  139. data/previews/primer/beta/avatar_preview.rb +6 -0
  140. data/previews/primer/beta/button_group_preview.rb +11 -0
  141. data/previews/primer/beta/clipboard_copy_button_preview.rb +29 -0
  142. data/previews/primer/beta/subhead_preview.rb +32 -4
  143. data/previews/primer/forms_preview/action_menu_form.html.erb +3 -0
  144. data/previews/primer/forms_preview.rb +4 -0
  145. data/static/arguments.json +75 -13
  146. data/static/audited_at.json +2 -0
  147. data/static/classes.json +9 -3
  148. data/static/constants.json +16 -1
  149. data/static/info_arch.json +335 -32
  150. data/static/previews.json +146 -0
  151. data/static/statuses.json +2 -0
  152. metadata +12 -2
@@ -3165,7 +3165,7 @@
3165
3165
  "name": "subtitle",
3166
3166
  "type": "String",
3167
3167
  "default": "`nil`",
3168
- "description": "Provides dditional context for the dialog, also setting the `aria-describedby` attribute."
3168
+ "description": "Provides additional context for the dialog, also setting the `aria-describedby` attribute."
3169
3169
  },
3170
3170
  {
3171
3171
  "name": "show_divider",
@@ -4932,7 +4932,7 @@
4932
4932
  },
4933
4933
  {
4934
4934
  "fully_qualified_name": "Primer::Alpha::NavList",
4935
- "description": "",
4935
+ "description": ":nodoc:",
4936
4936
  "accessibility_docs": null,
4937
4937
  "is_form_component": false,
4938
4938
  "is_published": true,
@@ -4982,7 +4982,7 @@
4982
4982
  "subcomponents": [
4983
4983
  {
4984
4984
  "fully_qualified_name": "Primer::Alpha::NavList::Item",
4985
- "description": "",
4985
+ "description": ":nodoc:",
4986
4986
  "accessibility_docs": null,
4987
4987
  "is_form_component": false,
4988
4988
  "is_published": true,
@@ -5102,7 +5102,7 @@
5102
5102
  },
5103
5103
  {
5104
5104
  "fully_qualified_name": "Primer::Alpha::NavList::Heading",
5105
- "description": "",
5105
+ "description": ":nodoc:",
5106
5106
  "accessibility_docs": null,
5107
5107
  "is_form_component": false,
5108
5108
  "is_published": true,
@@ -5154,7 +5154,7 @@
5154
5154
  },
5155
5155
  {
5156
5156
  "fully_qualified_name": "Primer::Alpha::NavList::Divider",
5157
- "description": "",
5157
+ "description": ":nodoc:",
5158
5158
  "accessibility_docs": null,
5159
5159
  "is_form_component": false,
5160
5160
  "is_published": true,
@@ -5194,7 +5194,7 @@
5194
5194
  },
5195
5195
  {
5196
5196
  "fully_qualified_name": "Primer::Alpha::NavList::Group",
5197
- "description": "",
5197
+ "description": ":nodoc:",
5198
5198
  "accessibility_docs": null,
5199
5199
  "is_form_component": false,
5200
5200
  "is_published": true,
@@ -5438,7 +5438,32 @@
5438
5438
 
5439
5439
  ],
5440
5440
  "previews": [
5441
-
5441
+ {
5442
+ "preview_path": "primer/alpha/octicon_symbols/playground",
5443
+ "name": "playground",
5444
+ "snapshot": "false",
5445
+ "skip_rules": {
5446
+ "wont_fix": [
5447
+ "region"
5448
+ ],
5449
+ "will_fix": [
5450
+ "color-contrast"
5451
+ ]
5452
+ }
5453
+ },
5454
+ {
5455
+ "preview_path": "primer/alpha/octicon_symbols/default",
5456
+ "name": "default",
5457
+ "snapshot": "true",
5458
+ "skip_rules": {
5459
+ "wont_fix": [
5460
+ "region"
5461
+ ],
5462
+ "will_fix": [
5463
+ "color-contrast"
5464
+ ]
5465
+ }
5466
+ }
5442
5467
  ],
5443
5468
  "subcomponents": [
5444
5469
 
@@ -7062,7 +7087,7 @@
7062
7087
  {
7063
7088
  "fully_qualified_name": "Primer::Alpha::TabNav",
7064
7089
  "description": "Use `TabNav` to style navigation with a tab-based selected state, typically used for navigation placed at the top of the page.\nFor panel navigation, use {{#link_to_component}}Primer::Alpha::TabPanels{{/link_to_component}} instead.",
7065
- "accessibility_docs": "- By default, `TabNav` renders links within a `<nav>` element. `<nav>` has an\n implicit landmark role of `navigation` which should be reserved for main links.\n For all other set of links, set tag to `:div`.\n- See <%= link_to_component(Primer::Alpha::Navigation::Tab) %> for additional\n accessibility considerations.",
7090
+ "accessibility_docs": "- By default, `TabNav` renders links within a `<nav>` element. `<nav>` has an\n implicit landmark role of `navigation` which should be reserved for main links.\n For all other set of links, set tag to `:div`.\n- See {{#link_to_component}}Primer::Alpha::Navigation::Tab{{/link_to_component}} for additional\n accessibility considerations.",
7066
7091
  "is_form_component": false,
7067
7092
  "is_published": true,
7068
7093
  "requires_js": false,
@@ -7972,6 +7997,19 @@
7972
7997
  ]
7973
7998
  }
7974
7999
  },
8000
+ {
8001
+ "preview_path": "primer/alpha/text_field/with_auto_check_accepted",
8002
+ "name": "with_auto_check_accepted",
8003
+ "snapshot": "false",
8004
+ "skip_rules": {
8005
+ "wont_fix": [
8006
+ "region"
8007
+ ],
8008
+ "will_fix": [
8009
+ "color-contrast"
8010
+ ]
8011
+ }
8012
+ },
7975
8013
  {
7976
8014
  "preview_path": "primer/alpha/text_field/with_auto_check_error",
7977
8015
  "name": "with_auto_check_error",
@@ -8461,7 +8499,7 @@
8461
8499
  {
8462
8500
  "fully_qualified_name": "Primer::Alpha::UnderlineNav",
8463
8501
  "description": "Use `UnderlineNav` to style navigation links with a minimal\nunderlined selected state, typically placed at the top\nof the page.\n\nFor panel navigation, use {{#link_to_component}}Primer::Alpha::UnderlinePanels{{/link_to_component}} instead.",
8464
- "accessibility_docs": "- By default, `UnderlineNav` renders links within a `<nav>` element. `<nav>` has an\n implicit landmark role of `navigation` which should be reserved for main links.\n For all other set of links, set tag to `:div`.\n- See <%= link_to_component(Primer::Alpha::Navigation::Tab) %> for additional\n accessibility considerations.",
8502
+ "accessibility_docs": "- By default, `UnderlineNav` renders links within a `<nav>` element. `<nav>` has an\n implicit landmark role of `navigation` which should be reserved for main links.\n For all other set of links, set tag to `:div`.\n- See {{#link_to_component}}Primer::Alpha::Navigation::Tab{{/link_to_component}} for additional\n accessibility considerations.",
8465
8503
  "is_form_component": false,
8466
8504
  "is_published": true,
8467
8505
  "requires_js": false,
@@ -9233,7 +9271,7 @@
9233
9271
  "name": "size",
9234
9272
  "type": "Integer",
9235
9273
  "default": "`20`",
9236
- "description": "One of `16`, `20`, `24`, `32`, `40`, `48`, or `80`."
9274
+ "description": "One of `16`, `20`, `24`, `32`, `40`, `48`, `64`, or `80`."
9237
9275
  },
9238
9276
  {
9239
9277
  "name": "shape",
@@ -9378,6 +9416,19 @@
9378
9416
  ]
9379
9417
  }
9380
9418
  },
9419
+ {
9420
+ "preview_path": "primer/beta/avatar/size_64",
9421
+ "name": "size_64",
9422
+ "snapshot": "true",
9423
+ "skip_rules": {
9424
+ "wont_fix": [
9425
+ "region"
9426
+ ],
9427
+ "will_fix": [
9428
+ "color-contrast"
9429
+ ]
9430
+ }
9431
+ },
9381
9432
  {
9382
9433
  "preview_path": "primer/beta/avatar/size_80",
9383
9434
  "name": "size_80",
@@ -9625,7 +9676,7 @@
9625
9676
  "name": "tag",
9626
9677
  "type": "Symbol",
9627
9678
  "default": "`:button`",
9628
- "description": "One of `:a`, `:button`, or `:summary`."
9679
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
9629
9680
  },
9630
9681
  {
9631
9682
  "name": "type",
@@ -10189,7 +10240,7 @@
10189
10240
  {
10190
10241
  "fully_qualified_name": "Primer::Beta::BorderBox::Header",
10191
10242
  "description": "`BorderBox::Header` is used inside `BorderBox` to render its header slot.",
10192
- "accessibility_docs": "When using `header.with_title`, set `tag` to one of `h1`, `h2`, `h3`, etc. based on what is appropriate for the page context. <%= link_to_heading_practices %>",
10243
+ "accessibility_docs": "When using `header.with_title`, set `tag` to one of `h1`, `h2`, `h3`, etc. based on what is appropriate for the page context. [Learn more about best heading practices (WAI Headings)](https://www.w3.org/WAI/tutorials/page-structure/headings/)",
10193
10244
  "is_form_component": false,
10194
10245
  "is_published": true,
10195
10246
  "requires_js": false,
@@ -10400,6 +10451,12 @@
10400
10451
  "source": "https://github.com/primer/view_components/tree/main/app/components/primer/beta/button.rb",
10401
10452
  "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/beta/button/default/",
10402
10453
  "parameters": [
10454
+ {
10455
+ "name": "base_button_class",
10456
+ "type": "Class",
10457
+ "default": "`Primer::Beta::BaseButton`",
10458
+ "description": "The button class to render."
10459
+ },
10403
10460
  {
10404
10461
  "name": "scheme",
10405
10462
  "type": "Symbol",
@@ -10428,7 +10485,7 @@
10428
10485
  "name": "tag",
10429
10486
  "type": "Symbol",
10430
10487
  "default": "`:button`",
10431
- "description": "One of `:a`, `:button`, or `:summary`."
10488
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
10432
10489
  },
10433
10490
  {
10434
10491
  "name": "type",
@@ -10771,19 +10828,43 @@
10771
10828
  "slots": [
10772
10829
  {
10773
10830
  "name": "buttons",
10774
- "description": "Required list of buttons to be rendered.",
10831
+ "description": "List of buttons to be rendered. Add buttons via the `#with_button` and `#with_clipboard_copy_button` methods (see below).",
10832
+ "parameters": [
10833
+
10834
+ ]
10835
+ }
10836
+ ],
10837
+ "methods": [
10838
+ {
10839
+ "name": "with_button",
10840
+ "description": "Adds a button.",
10775
10841
  "parameters": [
10776
10842
  {
10777
- "name": "kwargs",
10843
+ "name": "icon",
10844
+ "type": "Symbol",
10845
+ "default": "`nil`",
10846
+ "description": "If included, adds a {{#link_to_component}}Primer::Beta::IconButton{{/link_to_component}} with the given {{link_to_octicons}}. Otherwise, a {{#link_to_component}}Primer::Beta::Button{{/link_to_component}} is added instead."
10847
+ },
10848
+ {
10849
+ "name": "system_arguments",
10850
+ "type": "Hash",
10851
+ "default": "N/A",
10852
+ "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."
10853
+ }
10854
+ ]
10855
+ },
10856
+ {
10857
+ "name": "with_clipboard_copy_button",
10858
+ "description": "Adds a {{#link_to_component}}Primer::Beta::ClipboardCopyButton{{/link_to_component}}.",
10859
+ "parameters": [
10860
+ {
10861
+ "name": "system_arguments",
10778
10862
  "type": "Hash",
10779
10863
  "default": "N/A",
10780
- "description": "The same arguments as {{#link_to_component}}Primer::Beta::Button{{/link_to_component}}"
10864
+ "description": "The arguments accepted by {{#link_to_component}}Primer::Beta::ClipboardCopyButton{{/link_to_component}}."
10781
10865
  }
10782
10866
  ]
10783
10867
  }
10784
- ],
10785
- "methods": [
10786
-
10787
10868
  ],
10788
10869
  "previews": [
10789
10870
  {
@@ -10850,6 +10931,19 @@
10850
10931
  "color-contrast"
10851
10932
  ]
10852
10933
  }
10934
+ },
10935
+ {
10936
+ "preview_path": "primer/beta/button_group/with_clipboard_copy_button",
10937
+ "name": "with_clipboard_copy_button",
10938
+ "snapshot": "true",
10939
+ "skip_rules": {
10940
+ "wont_fix": [
10941
+ "region"
10942
+ ],
10943
+ "will_fix": [
10944
+ "color-contrast"
10945
+ ]
10946
+ }
10853
10947
  }
10854
10948
  ],
10855
10949
  "subcomponents": [
@@ -10858,7 +10952,7 @@
10858
10952
  },
10859
10953
  {
10860
10954
  "fully_qualified_name": "Primer::Beta::ClipboardCopy",
10861
- "description": "Use `ClipboardCopy` to copy element text content or input values to the clipboard.",
10955
+ "description": "Use `ClipboardCopy` to copy element text content or input values to the clipboard.\n\nThis component by itself is not styled as a button, and can therefore only be used in limited circumstances.\nIf you're looking for a button, consider using {{#link_to_component}}Primer::Beta::ClipboardCopyButton{{/link_to_component}}\ninstead.",
10862
10956
  "accessibility_docs": "Always set an accessible label to help the user interact with the component.",
10863
10957
  "is_form_component": false,
10864
10958
  "is_published": true,
@@ -10959,6 +11053,195 @@
10959
11053
 
10960
11054
  ]
10961
11055
  },
11056
+ {
11057
+ "fully_qualified_name": "Primer::Beta::ClipboardCopyBaseButton",
11058
+ "description": "Internal\n\n:nodoc:",
11059
+ "accessibility_docs": null,
11060
+ "is_form_component": false,
11061
+ "is_published": true,
11062
+ "requires_js": false,
11063
+ "component": "ClipboardCopyBaseButton",
11064
+ "status": "beta",
11065
+ "a11y_reviewed": false,
11066
+ "short_name": "ClipboardCopyBaseButton",
11067
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/beta/clipboard_copy_base_button.rb",
11068
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/beta/clipboard_copy_base_button/default/",
11069
+ "parameters": [
11070
+ {
11071
+ "name": "tag",
11072
+ "type": "Symbol",
11073
+ "default": "`:button`",
11074
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
11075
+ },
11076
+ {
11077
+ "name": "type",
11078
+ "type": "Symbol",
11079
+ "default": "`:button`",
11080
+ "description": "One of `:button`, `:reset`, or `:submit`."
11081
+ },
11082
+ {
11083
+ "name": "block",
11084
+ "type": "Boolean",
11085
+ "default": "`false`",
11086
+ "description": "Whether button is full-width with `display: block`."
11087
+ },
11088
+ {
11089
+ "name": "disabled",
11090
+ "type": "Boolean",
11091
+ "default": "`false`",
11092
+ "description": "Whether or not the button is disabled. If true, this option forces `tag:` to `:button`."
11093
+ },
11094
+ {
11095
+ "name": "inactive",
11096
+ "type": "Boolean",
11097
+ "default": "`false`",
11098
+ "description": "Whether the button looks visually disabled, but can still accept all the same interactions as an enabled button."
11099
+ },
11100
+ {
11101
+ "name": "system_arguments",
11102
+ "type": "Hash",
11103
+ "default": "N/A",
11104
+ "description": "{{link_to_system_arguments_docs}}"
11105
+ }
11106
+ ],
11107
+ "slots": [
11108
+
11109
+ ],
11110
+ "methods": [
11111
+
11112
+ ],
11113
+ "previews": [
11114
+
11115
+ ],
11116
+ "subcomponents": [
11117
+
11118
+ ]
11119
+ },
11120
+ {
11121
+ "fully_qualified_name": "Primer::Beta::ClipboardCopyButton",
11122
+ "description": "`ClipboardCopyButton` uses the `ClipboardCopy` component to copy text to the clipboard,\nstyled as a Primer button. It can be used wherever a button is desired, and works well\nwith components like `ButtonGroup`.",
11123
+ "accessibility_docs": null,
11124
+ "is_form_component": false,
11125
+ "is_published": true,
11126
+ "requires_js": false,
11127
+ "component": "ClipboardCopyButton",
11128
+ "status": "beta",
11129
+ "a11y_reviewed": false,
11130
+ "short_name": "ClipboardCopyButton",
11131
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/beta/clipboard_copy_button.rb",
11132
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/beta/clipboard_copy_button/default/",
11133
+ "parameters": [
11134
+ {
11135
+ "name": "system_arguments",
11136
+ "type": "Hash",
11137
+ "default": "N/A",
11138
+ "description": "The arguments accepted by {{#link_to_component}}Primer::Beta::Button{{/link_to_component}} and {{#link_to_component}}Primer::Beta::ClipboardCopy{{/link_to_component}}."
11139
+ }
11140
+ ],
11141
+ "slots": [
11142
+ {
11143
+ "name": "leading_visual",
11144
+ "description": "Leading visuals appear to the left of the button text.\n\nUse:\n\n- `leading_visual_icon` for a {{#link_to_component}}Primer::Beta::Octicon{{/link_to_component}}.\n\n- `leading_visual_svg` to render a SVG.",
11145
+ "parameters": [
11146
+ {
11147
+ "name": "system_arguments",
11148
+ "type": "Hash",
11149
+ "default": "N/A",
11150
+ "description": "Same arguments as {{#link_to_component}}Primer::Beta::Octicon{{/link_to_component}}."
11151
+ }
11152
+ ]
11153
+ },
11154
+ {
11155
+ "name": "trailing_visual",
11156
+ "description": "Trailing visuals appear to the right of the button text.\n\nUse:\n\n- `trailing_visual_counter` for a {{#link_to_component}}Primer::Beta::Counter{{/link_to_component}}.",
11157
+ "parameters": [
11158
+ {
11159
+ "name": "system_arguments",
11160
+ "type": "Hash",
11161
+ "default": "N/A",
11162
+ "description": "Same arguments as {{#link_to_component}}Primer::Beta::Counter{{/link_to_component}}."
11163
+ }
11164
+ ]
11165
+ },
11166
+ {
11167
+ "name": "trailing_action",
11168
+ "description": "Trailing action appears to the right of the trailing visual.\n\nUse:\n\n- `trailing_action_icon` for a {{#link_to_component}}Primer::Beta::Octicon{{/link_to_component}}.",
11169
+ "parameters": [
11170
+ {
11171
+ "name": "system_arguments",
11172
+ "type": "Hash",
11173
+ "default": "N/A",
11174
+ "description": "Same arguments as {{#link_to_component}}Primer::Beta::Octicon{{/link_to_component}}."
11175
+ }
11176
+ ]
11177
+ },
11178
+ {
11179
+ "name": "tooltip",
11180
+ "description": "`Tooltip` that appears on mouse hover or keyboard focus over the button. Use tooltips sparingly and as a last resort.\n**Important:** This tooltip defaults to `type: :description`. In a few scenarios, `type: :label` may be more appropriate.\nConsult the {{#link_to_component}}Primer::Alpha::Tooltip{{/link_to_component}} documentation for more information.",
11181
+ "parameters": [
11182
+ {
11183
+ "name": "type",
11184
+ "type": "Symbol",
11185
+ "default": "`:description`",
11186
+ "description": "One of `:description` or `:label`."
11187
+ },
11188
+ {
11189
+ "name": "system_arguments",
11190
+ "type": "Hash",
11191
+ "default": "N/A",
11192
+ "description": "Same arguments as {{#link_to_component}}Primer::Alpha::Tooltip{{/link_to_component}}."
11193
+ }
11194
+ ]
11195
+ }
11196
+ ],
11197
+ "methods": [
11198
+
11199
+ ],
11200
+ "previews": [
11201
+ {
11202
+ "preview_path": "primer/beta/clipboard_copy_button/playground",
11203
+ "name": "playground",
11204
+ "snapshot": "false",
11205
+ "skip_rules": {
11206
+ "wont_fix": [
11207
+ "region"
11208
+ ],
11209
+ "will_fix": [
11210
+ "color-contrast"
11211
+ ]
11212
+ }
11213
+ },
11214
+ {
11215
+ "preview_path": "primer/beta/clipboard_copy_button/default",
11216
+ "name": "default",
11217
+ "snapshot": "true",
11218
+ "skip_rules": {
11219
+ "wont_fix": [
11220
+ "region"
11221
+ ],
11222
+ "will_fix": [
11223
+ "color-contrast"
11224
+ ]
11225
+ }
11226
+ },
11227
+ {
11228
+ "preview_path": "primer/beta/clipboard_copy_button/with_tooltip",
11229
+ "name": "with_tooltip",
11230
+ "snapshot": "true",
11231
+ "skip_rules": {
11232
+ "wont_fix": [
11233
+ "region"
11234
+ ],
11235
+ "will_fix": [
11236
+ "color-contrast"
11237
+ ]
11238
+ }
11239
+ }
11240
+ ],
11241
+ "subcomponents": [
11242
+
11243
+ ]
11244
+ },
10962
11245
  {
10963
11246
  "fully_qualified_name": "Primer::Beta::CloseButton",
10964
11247
  "description": "Use `CloseButton` to render an `×` without default button styles.\n\n[0]: https://primer.style/view-components/system-arguments#html-attributes",
@@ -11589,7 +11872,7 @@
11589
11872
  {
11590
11873
  "fully_qualified_name": "Primer::Beta::Heading",
11591
11874
  "description": "`Heading` should be used to communicate page organization and hierarchy.\n\n- Set tag to one of `:h1`, `:h2`, `:h3`, `:h4`, `:h5`, `:h6` based on what is appropriate for the page context.\n- Use `Heading` as the title of a section or sub section.\n- Do not use `Heading` for styling alone. For simply styling text, consider using {{#link_to_component}}Primer::Beta::Text{{/link_to_component}} with relevant {{link_to_typography_docs}}\n such as `font_size` and `font_weight`.\n- Do not jump heading levels. For instance, do not follow a `<h1>` with an `<h3>`. Heading levels should increase by one in ascending order.",
11592
- "accessibility_docs": "While sighted users rely on visual cues such as font size changes to determine what the heading is, assistive technology users rely on programatic cues that can be read out.\nWhen text on a page is visually implied to be a heading, ensure that it is coded as a heading. Additionally, visually implied heading level and coded heading level should be\nconsistent. [See WCAG success criteria: 1.3.1: Info and Relationships](https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html)\n\nHeadings allow assistive technology users to quickly navigate around a page. Navigation to text that is not meant to be a heading can be a confusing experience.\n<%= link_to_heading_practices %>",
11875
+ "accessibility_docs": "While sighted users rely on visual cues such as font size changes to determine what the heading is, assistive technology users rely on programatic cues that can be read out.\nWhen text on a page is visually implied to be a heading, ensure that it is coded as a heading. Additionally, visually implied heading level and coded heading level should be\nconsistent. [See WCAG success criteria: 1.3.1: Info and Relationships](https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html)\n\nHeadings allow assistive technology users to quickly navigate around a page. Navigation to text that is not meant to be a heading can be a confusing experience.\n[Learn more about best heading practices (WAI Headings)](https://www.w3.org/WAI/tutorials/page-structure/headings/)",
11593
11876
  "is_form_component": false,
11594
11877
  "is_published": true,
11595
11878
  "requires_js": false,
@@ -11675,13 +11958,7 @@
11675
11958
  "name": "tag",
11676
11959
  "type": "Symbol",
11677
11960
  "default": "N/A",
11678
- "description": "One of `:a`, `:button`, or `:summary`."
11679
- },
11680
- {
11681
- "name": "wrapper_arguments",
11682
- "type": "Hash",
11683
- "default": "`{}`",
11684
- "description": "Optional keyword arguments to be passed to the wrapper `<div>` tag."
11961
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
11685
11962
  },
11686
11963
  {
11687
11964
  "name": "scheme",
@@ -13751,7 +14028,7 @@
13751
14028
  {
13752
14029
  "fully_qualified_name": "Primer::Beta::Subhead",
13753
14030
  "description": "Use `Subhead` as the start of a section. The `:heading` slot will render an `<h2>` font-sized text.\n\n- Optionally set the `:description` slot to render a short description and the `:actions` slot for a related action.\n- Use a succinct, one-line description for the `:description` slot. For longer descriptions, omit the description slot and render a paragraph below the `Subhead`.\n- Use the actions slot to render a related action to the right of the heading. Use {{#link_to_component}}Primer::ButtonComponent{{/link_to_component}} or {{#link_to_component}}Primer::Beta::Link{{/link_to_component}}.",
13754
- "accessibility_docs": "The `:heading` slot defaults to rendering a `<div>`. Update the tag to a heading element with the appropriate level to improve page navigation for assistive technologies.\n<%= link_to_heading_practices %>",
14031
+ "accessibility_docs": "The `:heading` slot defaults to rendering a `<div>`. Update the tag to a heading element with the appropriate level to improve page navigation for assistive technologies.\n[Learn more about best heading practices (WAI Headings)](https://www.w3.org/WAI/tutorials/page-structure/headings/)",
13755
14032
  "is_form_component": false,
13756
14033
  "is_published": true,
13757
14034
  "requires_js": false,
@@ -13925,6 +14202,32 @@
13925
14202
  "color-contrast"
13926
14203
  ]
13927
14204
  }
14205
+ },
14206
+ {
14207
+ "preview_path": "primer/beta/subhead/large_header",
14208
+ "name": "large_header",
14209
+ "snapshot": "false",
14210
+ "skip_rules": {
14211
+ "wont_fix": [
14212
+ "region"
14213
+ ],
14214
+ "will_fix": [
14215
+ "color-contrast"
14216
+ ]
14217
+ }
14218
+ },
14219
+ {
14220
+ "preview_path": "primer/beta/subhead/medium_header",
14221
+ "name": "medium_header",
14222
+ "snapshot": "false",
14223
+ "skip_rules": {
14224
+ "wont_fix": [
14225
+ "region"
14226
+ ],
14227
+ "will_fix": [
14228
+ "color-contrast"
14229
+ ]
14230
+ }
13928
14231
  }
13929
14232
  ],
13930
14233
  "subcomponents": [
@@ -14288,7 +14591,7 @@
14288
14591
  {
14289
14592
  "fully_qualified_name": "Primer::BlankslateComponent",
14290
14593
  "description": "Use `Blankslate` when there is a lack of content within a page or section. Use as placeholder to tell users why something isn't there.",
14291
- "accessibility_docs": "`Blankslate` renders an `<h3>` element for the title by default. Update the heading level based on what is appropriate for your page hierarchy by setting `title_tag`.\n<%= link_to_heading_practices %>",
14594
+ "accessibility_docs": "`Blankslate` renders an `<h3>` element for the title by default. Update the heading level based on what is appropriate for your page hierarchy by setting `title_tag`.\n[Learn more about best heading practices (WAI Headings)](https://www.w3.org/WAI/tutorials/page-structure/headings/)",
14292
14595
  "is_form_component": false,
14293
14596
  "is_published": true,
14294
14597
  "requires_js": false,
@@ -14541,7 +14844,7 @@
14541
14844
  "name": "tag",
14542
14845
  "type": "Symbol",
14543
14846
  "default": "`:button`",
14544
- "description": "One of `:a`, `:button`, or `:summary`."
14847
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
14545
14848
  },
14546
14849
  {
14547
14850
  "name": "type",
@@ -14740,7 +15043,7 @@
14740
15043
  "name": "tag",
14741
15044
  "type": "Symbol",
14742
15045
  "default": "N/A",
14743
- "description": "One of `:a`, `:button`, or `:summary`."
15046
+ "description": "One of `:a`, `:button`, `:clipboard-copy`, or `:summary`."
14744
15047
  },
14745
15048
  {
14746
15049
  "name": "type",