primer_view_components 0.11.0 → 0.13.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/app/assets/javascripts/app/components/primer/alpha/tool_tip.d.ts +1 -0
  4. data/app/assets/javascripts/primer_view_components.js +1 -1
  5. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  6. data/app/assets/styles/primer_view_components.css +1 -1
  7. data/app/assets/styles/primer_view_components.css.map +1 -1
  8. data/app/components/primer/alpha/action_bar_element.js +8 -3
  9. data/app/components/primer/alpha/action_bar_element.ts +8 -1
  10. data/app/components/primer/alpha/action_list/form_wrapper.html.erb +4 -2
  11. data/app/components/primer/alpha/action_list/form_wrapper.rb +20 -9
  12. data/app/components/primer/alpha/action_menu/action_menu_element.js +1 -10
  13. data/app/components/primer/alpha/action_menu/action_menu_element.ts +0 -11
  14. data/app/components/primer/alpha/action_menu.rb +120 -3
  15. data/app/components/primer/alpha/modal_dialog.js +10 -13
  16. data/app/components/primer/alpha/modal_dialog.ts +10 -13
  17. data/app/components/primer/alpha/segmented_control/item.html.erb +1 -8
  18. data/app/components/primer/alpha/segmented_control/item.rb +38 -4
  19. data/app/components/primer/alpha/segmented_control.css +1 -1
  20. data/app/components/primer/alpha/segmented_control.css.json +14 -13
  21. data/app/components/primer/alpha/segmented_control.css.map +1 -1
  22. data/app/components/primer/alpha/segmented_control.pcss +75 -66
  23. data/app/components/primer/alpha/segmented_control.rb +10 -0
  24. data/app/components/primer/alpha/text_field.css +1 -1
  25. data/app/components/primer/alpha/tool_tip.d.ts +1 -0
  26. data/app/components/primer/alpha/tool_tip.js +26 -93
  27. data/app/components/primer/alpha/tool_tip.ts +25 -91
  28. data/app/components/primer/beta/base_button.rb +4 -0
  29. data/app/components/primer/beta/button.css +1 -1
  30. data/app/components/primer/beta/button.css.map +1 -1
  31. data/app/components/primer/beta/button.pcss +6 -2
  32. data/lib/primer/accessibility.rb +3 -1
  33. data/lib/primer/static/generate_info_arch.rb +86 -5
  34. data/lib/primer/view_components/version.rb +1 -1
  35. data/previews/primer/alpha/action_menu_preview/single_select_form_items.html.erb +31 -0
  36. data/previews/primer/alpha/action_menu_preview/with_actions.html.erb +1 -1
  37. data/previews/primer/alpha/action_menu_preview.rb +8 -2
  38. data/previews/primer/alpha/check_box_preview.rb +1 -0
  39. data/previews/primer/alpha/dialog_preview/autofocus_element.html.erb +8 -0
  40. data/previews/primer/alpha/dialog_preview.rb +5 -0
  41. data/previews/primer/alpha/radio_button_preview.rb +1 -0
  42. data/previews/primer/alpha/segmented_control_preview.rb +35 -0
  43. data/previews/primer/alpha/tooltip_preview/tooltip_with_dialog_moving_focus_to_input.html.erb +23 -0
  44. data/previews/primer/alpha/tooltip_preview.rb +6 -1
  45. data/previews/primer/beta/button_group_preview.rb +6 -6
  46. data/previews/primer/beta/button_preview.rb +20 -2
  47. data/previews/primer/beta/icon_button_preview.rb +3 -0
  48. data/static/arguments.json +6 -0
  49. data/static/classes.json +12 -0
  50. data/static/constants.json +12 -1
  51. data/static/info_arch.json +125 -160
  52. data/static/previews.json +91 -172
  53. metadata +5 -310
@@ -0,0 +1,23 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "my-dialog", title: "Confirm focus")) do |d| %>
2
+ <%= render(Primer::Alpha::Dialog::Body.new()) do %>
3
+ Are you sure you want to focus the input?
4
+ <% end %>
5
+ <%= render(Primer::Alpha::Dialog::Footer.new()) do %>
6
+ <%= render(Primer::Beta::Button.new(id: "yes-button", data: { "close-dialog-id": "my-dialog" })) { "Yes" } %>
7
+ <%= render(Primer::Beta::Button.new(scheme: :primary, data: { "close-dialog-id": "my-dialog" })) { "Yes but in green" } %>
8
+ <% end %>
9
+ <% d.with_show_button do |b| %>
10
+ Focus input
11
+ <% b.with_tooltip(text: "This is a tooltip in an Overlay") %>
12
+ <% end %>
13
+ <% end %>
14
+ <label>
15
+ An input
16
+ <input type="text" id="input">
17
+ </label>
18
+ <script>
19
+ document.querySelector('#my-dialog').addEventListener('cancel', function () {
20
+ console.log('!!')
21
+ setTimeout(() => document.querySelector('#input').focus(), 0);
22
+ });
23
+ </script>
@@ -78,11 +78,16 @@ module Primer
78
78
  # @!endgroup
79
79
 
80
80
  # @label Tooltip inside Primer::Alpha::Overlay
81
- def tooltip_inside_primer_overlay(direction: :s, tooltip_text: "You can press a button")
81
+ def tooltip_inside_primer_overlay
82
82
  render_with_template(
83
83
  locals: {}
84
84
  )
85
85
  end
86
+
87
+ # @label Tooltip with button moving focus to input
88
+ def tooltip_with_dialog_moving_focus_to_input
89
+ render_with_template(locals: {})
90
+ end
86
91
  end
87
92
  end
88
93
  end
@@ -55,16 +55,16 @@ module Primer
55
55
  # @snapshot
56
56
  def all_tags
57
57
  render(Primer::Beta::ButtonGroup.new) do |component|
58
- component.with_button(id: "button-1", tag: :button) do |component|
59
- component.with_tooltip(text: "Button Tooltip")
58
+ component.with_button(id: "button-1", tag: :button) do |button|
59
+ button.with_tooltip(text: "Button Tooltip")
60
60
  "Button 1"
61
61
  end
62
- component.with_button(id: "button-2", tag: :a) do |component|
63
- component.with_tooltip(text: "Button Tooltip")
62
+ component.with_button(id: "button-2", tag: :a) do |button|
63
+ button.with_tooltip(text: "Button Tooltip")
64
64
  "Button 2"
65
65
  end
66
- component.with_button(id: "button-3", tag: :summary) do |component|
67
- component.with_tooltip(text: "Button Tooltip")
66
+ component.with_button(id: "button-3", tag: :summary) do |button|
67
+ button.with_tooltip(text: "Button Tooltip")
68
68
  "Button 3"
69
69
  end
70
70
  end
@@ -18,6 +18,7 @@ module Primer
18
18
  # @param size select [small, medium, large]
19
19
  # @param block toggle
20
20
  # @param disabled toggle
21
+ # @param inactive toggle
21
22
  # @param align_content select [center, start]
22
23
  # @param tag select [a, summary, button]
23
24
  def playground(
@@ -27,7 +28,8 @@ module Primer
27
28
  id: "button-preview",
28
29
  align_content: :center,
29
30
  tag: :button,
30
- disabled: false
31
+ disabled: false,
32
+ inactive: false
31
33
  )
32
34
  render(Primer::Beta::Button.new(
33
35
  scheme: scheme,
@@ -36,7 +38,8 @@ module Primer
36
38
  id: id,
37
39
  align_content: align_content,
38
40
  tag: tag,
39
- disabled: disabled
41
+ disabled: disabled,
42
+ inactive: inactive
40
43
  )) do |_c|
41
44
  "Button"
42
45
  end
@@ -341,6 +344,21 @@ module Primer
341
344
  align_content: align_content
342
345
  })
343
346
  end
347
+
348
+ # @label Inactive
349
+ # @param inactive toggle
350
+ # @snapshot
351
+ def inactive(
352
+ id: "button-preview",
353
+ inactive: true
354
+ )
355
+ render(Primer::Beta::Button.new(
356
+ id: id,
357
+ inactive: inactive
358
+ )) do |_c|
359
+ "Button"
360
+ end
361
+ end
344
362
  end
345
363
  end
346
364
  end
@@ -9,6 +9,7 @@ module Primer
9
9
  # @param size select [small, medium, large]
10
10
  # @param aria_label text
11
11
  # @param disabled toggle
12
+ # @param inactive toggle
12
13
  # @param tag select [a, summary, button]
13
14
  # @param icon [Symbol] octicon
14
15
  # @param show_tooltip toggle
@@ -18,6 +19,7 @@ module Primer
18
19
  id: "button-preview",
19
20
  tag: :button,
20
21
  disabled: false,
22
+ inactive: false,
21
23
  icon: :plus,
22
24
  aria_label: "Button",
23
25
  show_tooltip: true
@@ -28,6 +30,7 @@ module Primer
28
30
  id: id,
29
31
  tag: tag,
30
32
  disabled: disabled,
33
+ inactive: inactive,
31
34
  icon: icon,
32
35
  "aria-label": aria_label,
33
36
  show_tooltip: show_tooltip
@@ -3128,6 +3128,12 @@
3128
3128
  "default": "`false`",
3129
3129
  "description": "Whether or not the button is disabled. If true, this option forces `tag:` to `:button`."
3130
3130
  },
3131
+ {
3132
+ "name": "inactive",
3133
+ "type": "Boolean",
3134
+ "default": "`false`",
3135
+ "description": "Whether the button looks visually disabled, but can still accept all the same interactions as an enabled button."
3136
+ },
3131
3137
  {
3132
3138
  "name": "system_arguments",
3133
3139
  "type": "Hash",
data/static/classes.json CHANGED
@@ -477,6 +477,18 @@
477
477
  "SegmentedControl--fullWidth": [
478
478
  "Primer::Alpha::SegmentedControl"
479
479
  ],
480
+ "SegmentedControl--iconOnly": [
481
+ "Primer::Alpha::SegmentedControl"
482
+ ],
483
+ "SegmentedControl--large": [
484
+ "Primer::Alpha::SegmentedControl"
485
+ ],
486
+ "SegmentedControl--medium": [
487
+ "Primer::Alpha::SegmentedControl"
488
+ ],
489
+ "SegmentedControl--small": [
490
+ "Primer::Alpha::SegmentedControl"
491
+ ],
480
492
  "SegmentedControl-item": [
481
493
  "Primer::Alpha::SegmentedControl"
482
494
  ],
@@ -544,9 +544,20 @@
544
544
  "Primer::Alpha::RadioButtonGroup": {
545
545
  },
546
546
  "Primer::Alpha::SegmentedControl": {
547
+ "DEFAULT_SIZE": "medium",
547
548
  "FULL_WIDTH_DEFAULT": false,
548
549
  "HIDE_LABELS_DEFAULT": false,
549
- "Item": "Primer::Alpha::SegmentedControl::Item"
550
+ "Item": "Primer::Alpha::SegmentedControl::Item",
551
+ "SIZE_MAPPINGS": {
552
+ "small": "SegmentedControl--small",
553
+ "medium": "SegmentedControl--medium",
554
+ "large": "SegmentedControl--large"
555
+ },
556
+ "SIZE_OPTIONS": [
557
+ "small",
558
+ "medium",
559
+ "large"
560
+ ]
550
561
  },
551
562
  "Primer::Alpha::SegmentedControl::Item": {
552
563
  },
@@ -1128,8 +1128,8 @@
1128
1128
  },
1129
1129
  {
1130
1130
  "fully_qualified_name": "Primer::Alpha::ActionMenu",
1131
- "description": "ActionMenu is used for actions, navigation, to display secondary options, or single/multi select lists. They appear when users interact with buttons, actions, or other controls.\n\nThe only allowed elements for the `Item` components are: `:a`, `:button`, and `:clipboard-copy`. The default is `:button`.",
1132
- "accessibility_docs": "The action for the menu item needs to be on the element with `role=\"menuitem\"`. Semantics are removed for everything nested inside of it. When a menu item is selected, the menu will close immediately.\n\nAdditional information around the keyboard functionality and implementation can be found on the [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.2/#menu).",
1131
+ "description": "ActionMenu is used for actions, navigation, to display secondary options, or single/multi select lists. They appear when\nusers interact with buttons, actions, or other controls.\n\nThe only allowed elements for the `Item` components are: `:a`, `:button`, and `:clipboard-copy`. The default is `:button`.\n\n### Select variants\n\nWhile `ActionMenu`s default to a list of buttons that can link to other pages, copy text to the clipboard, etc, they also support\n`single` and `multiple` select variants. The single select variant allows a single item to be \"selected\" (i.e. marked \"active\")\nwhen clicked, which will cause a check mark to appear to the left of the item text. When the `multiple` select variant is chosen,\nmultiple items may be selected and check marks will appear next to each selected item.\n\nUse the `select_variant:` option to control which variant the `ActionMenu` uses. For more information, see the documentation on\nsupported arguments below.\n\n### Dynamic labels\n\nWhen using the `single` select variant, an optional label indicating the selected item can be displayed inside the menu button.\nDynamic labels can also be prefixed with custom text.\n\nPass `dynamic_label: true` to enable dynamic label behavior, and pass `dynamic_label_prefix: \"<string>\"` to set a custom prefix.\nFor more information, see the documentation on supported arguments below.\n\n### `ActionMenu`s as form inputs\n\nWhen using either the `single` or `multiple` select variants, `ActionMenu`s can be used as form inputs. They behave very\nsimilarly to how HTML `<select>` boxes behave, and play nicely with Rails' built-in form mechanisms. Pass arguments via the\n`form_arguments:` argument, including the Rails form builder object and the name of the field:\n\n```erb\n<% form_with(url: update_merge_strategy_path) do |f| %>\n <%= render(Primer::Alpha::ActionMenu.new(form_arguments: { builder: f, name: \"merge_strategy\" })) do |menu| %>\n <% menu.with_item(label: \"Fast forward\", data: { value: \"fast_forward\" }) %>\n <% menu.with_item(label: \"Recursive\", data: { value: \"recursive\" }) %>\n <% menu.with_item(label: \"Ours\", data: { value: \"ours\" }) %>\n <% menu.with_item(label: \"Theirs\", data: { value: \"theirs\" }) %>\n <% end %>\n<% end %>\n```\n\nThe value of the `data: { value: ... }` argument is sent to the server on submit, keyed using the name provided above\n(eg. `\"merge_strategy\"`). If no value is provided for an item, the value of that item is the item's label. Here's the\ncorresponding `MergeStrategyController` that might be written to handle the form above:\n\n```ruby\nclass MergeStrategyController < ApplicationController\n def update\n puts \"You chose #{merge_strategy_params[:merge_strategy]}\"\n end\n\n private\n\n def merge_strategy_params\n params.permit(:merge_strategy)\n end\nend\n```\n\n### `ActionMenu` items that submit forms\n\nWhereas `ActionMenu` items normally permit navigation via `<a>` tags which make HTTP `get` requests, `ActionMenu` items\nalso permit navigation via `POST` requests. To enable this behavior, include the `href:` argument as normal, but also pass\nthe `form_arguments:` argument to the appropriate item:\n\n```erb\n<%= render(Primer::Alpha::ActionMenu.new) do |menu| %>\n <% menu.with_item(\n label: \"Repository\",\n href: update_repo_grouping_path,\n form_arguments: {\n method: :post,\n name: \"group_by\",\n value: \"repository\"\n }\n ) %>\n<% end %>\n```\n\nMake sure to specify `method: :post`, as the default is `:get`. When clicked, the list item will submit a POST request to\nthe URL passed in the `href:` argument, including a parameter named `\"group_by\"` with a value of `\"repository\"`. If no value\nis given, the name, eg. `\"group_by\"`, will be used as the value.\n\nIt is possible to include multiple fields on submit. Instead of passing the `name:` and `value:` arguments, pass an array via\nthe `inputs:` argument:\n\n```erb\n<%= render(Primer::Alpha::ActionMenu.new) do |menu| %>\n <% menu.with_show_button { \"Group By\" } %>\n <% menu.with_item(\n label: \"Repository\",\n href: update_repo_grouping_path,\n form_arguments: {\n method: :post,\n inputs: [{\n name: \"group_by\",\n value: \"repository\"\n }, {\n name: \"some_other_field\",\n value: \"some value\",\n }],\n }\n ) %>\n<% end %>\n```\n\n### Form arguments\n\nThe following table summarizes the arguments allowed in the `form_arguments:` hash mentioned above.\n\n|Name |Type |Default|Description|\n|:----------------|:-------------|:------|:----------|\n|`method` |`Symbol` |`:get` |The HTTP request method to use to submit the form. One of `:get`, `:post`, `:patch`, `:put`, `:delete`, or `:head`|\n|`name` |`String` |`nil` |The name of the field that will be sent to the server on submit.|\n|`value` |`String` |`nil` |The value of the field that will be sent to the server on submit.|\n|`input_arguments`|`Hash` |`{}` |Additional key/value pairs to emit as HTML attributes on the `<input type=\"hidden\">` element.|\n|`inputs` |`Array<Hash>` |`[]` |An array of hashes representing HTML `<input type=\"hidden\">` elements. Must contain at least `name:` and `value:` keys. If additional key/value pairs are provided, they are emitted as HTML attributes on the `<input>` element. This argument supercedes the `name:`, `value:`, and `:input_arguments` arguments listed above.|\n\nThe elements of the `inputs:` array will be emitted as HTML `<input type=\"hidden\">` elements.",
1132
+ "accessibility_docs": "The action for the menu item needs to be on the element with `role=\"menuitem\"`. Semantics are removed for everything\nnested inside of it. When a menu item is selected, the menu will close immediately.\n\nAdditional information around the keyboard functionality and implementation can be found on the\n[WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.2/#menu).",
1133
1133
  "is_form_component": false,
1134
1134
  "is_published": true,
1135
1135
  "requires_js": true,
@@ -1530,6 +1530,19 @@
1530
1530
  ]
1531
1531
  }
1532
1532
  },
1533
+ {
1534
+ "preview_path": "primer/alpha/action_menu/single_select_form_items",
1535
+ "name": "single_select_form_items",
1536
+ "snapshot": "false",
1537
+ "skip_rules": {
1538
+ "wont_fix": [
1539
+ "region"
1540
+ ],
1541
+ "will_fix": [
1542
+ "color-contrast"
1543
+ ]
1544
+ }
1545
+ },
1533
1546
  {
1534
1547
  "preview_path": "primer/alpha/action_menu/multiple_select_form",
1535
1548
  "name": "multiple_select_form",
@@ -2576,84 +2589,7 @@
2576
2589
 
2577
2590
  ],
2578
2591
  "previews": [
2579
- {
2580
- "preview_path": "primer/alpha/check_box/playground",
2581
- "name": "playground",
2582
- "snapshot": "false",
2583
- "skip_rules": {
2584
- "wont_fix": [
2585
- "region"
2586
- ],
2587
- "will_fix": [
2588
- "color-contrast"
2589
- ]
2590
- }
2591
- },
2592
- {
2593
- "preview_path": "primer/alpha/check_box/default",
2594
- "name": "default",
2595
- "snapshot": "false",
2596
- "skip_rules": {
2597
- "wont_fix": [
2598
- "region"
2599
- ],
2600
- "will_fix": [
2601
- "color-contrast"
2602
- ]
2603
- }
2604
- },
2605
- {
2606
- "preview_path": "primer/alpha/check_box/with_caption",
2607
- "name": "with_caption",
2608
- "snapshot": "true",
2609
- "skip_rules": {
2610
- "wont_fix": [
2611
- "region"
2612
- ],
2613
- "will_fix": [
2614
- "color-contrast"
2615
- ]
2616
- }
2617
- },
2618
- {
2619
- "preview_path": "primer/alpha/check_box/checked",
2620
- "name": "checked",
2621
- "snapshot": "false",
2622
- "skip_rules": {
2623
- "wont_fix": [
2624
- "region"
2625
- ],
2626
- "will_fix": [
2627
- "color-contrast"
2628
- ]
2629
- }
2630
- },
2631
- {
2632
- "preview_path": "primer/alpha/check_box/visually_hide_label",
2633
- "name": "visually_hide_label",
2634
- "snapshot": "false",
2635
- "skip_rules": {
2636
- "wont_fix": [
2637
- "region"
2638
- ],
2639
- "will_fix": [
2640
- "color-contrast"
2641
- ]
2642
- }
2643
- },
2644
- {
2645
- "preview_path": "primer/alpha/check_box/disabled",
2646
- "name": "disabled",
2647
- "snapshot": "false",
2648
- "skip_rules": {
2649
- "wont_fix": [
2650
- "region"
2651
- ],
2652
- "will_fix": [
2653
- "color-contrast"
2654
- ]
2655
- }
2656
- }
2592
+
2657
2593
  ],
2658
2594
  "subcomponents": [
2659
2595
 
@@ -3106,6 +3042,19 @@
3106
3042
  "color-contrast"
3107
3043
  ]
3108
3044
  }
3045
+ },
3046
+ {
3047
+ "preview_path": "primer/alpha/dialog/autofocus_element",
3048
+ "name": "autofocus_element",
3049
+ "snapshot": "false",
3050
+ "skip_rules": {
3051
+ "wont_fix": [
3052
+ "region"
3053
+ ],
3054
+ "will_fix": [
3055
+ "color-contrast"
3056
+ ]
3057
+ }
3109
3058
  }
3110
3059
  ],
3111
3060
  "subcomponents": [
@@ -5988,84 +5937,7 @@
5988
5937
 
5989
5938
  ],
5990
5939
  "previews": [
5991
- {
5992
- "preview_path": "primer/alpha/radio_button/playground",
5993
- "name": "playground",
5994
- "snapshot": "false",
5995
- "skip_rules": {
5996
- "wont_fix": [
5997
- "region"
5998
- ],
5999
- "will_fix": [
6000
- "color-contrast"
6001
- ]
6002
- }
6003
- },
6004
- {
6005
- "preview_path": "primer/alpha/radio_button/default",
6006
- "name": "default",
6007
- "snapshot": "true",
6008
- "skip_rules": {
6009
- "wont_fix": [
6010
- "region"
6011
- ],
6012
- "will_fix": [
6013
- "color-contrast"
6014
- ]
6015
- }
6016
- },
6017
- {
6018
- "preview_path": "primer/alpha/radio_button/with_caption",
6019
- "name": "with_caption",
6020
- "snapshot": "true",
6021
- "skip_rules": {
6022
- "wont_fix": [
6023
- "region"
6024
- ],
6025
- "will_fix": [
6026
- "color-contrast"
6027
- ]
6028
- }
6029
- },
6030
- {
6031
- "preview_path": "primer/alpha/radio_button/checked",
6032
- "name": "checked",
6033
- "snapshot": "true",
6034
- "skip_rules": {
6035
- "wont_fix": [
6036
- "region"
6037
- ],
6038
- "will_fix": [
6039
- "color-contrast"
6040
- ]
6041
- }
6042
- },
6043
- {
6044
- "preview_path": "primer/alpha/radio_button/visually_hide_label",
6045
- "name": "visually_hide_label",
6046
- "snapshot": "true",
6047
- "skip_rules": {
6048
- "wont_fix": [
6049
- "region"
6050
- ],
6051
- "will_fix": [
6052
- "color-contrast"
6053
- ]
6054
- }
6055
- },
6056
- {
6057
- "preview_path": "primer/alpha/radio_button/disabled",
6058
- "name": "disabled",
6059
- "snapshot": "true",
6060
- "skip_rules": {
6061
- "wont_fix": [
6062
- "region"
6063
- ],
6064
- "will_fix": [
6065
- "color-contrast"
6066
- ]
6067
- }
6068
- }
5940
+
6069
5941
  ],
6070
5942
  "subcomponents": [
6071
5943
 
@@ -6409,6 +6281,45 @@
6409
6281
  ]
6410
6282
  }
6411
6283
  },
6284
+ {
6285
+ "preview_path": "primer/alpha/segmented_control/trailing_label_width_small",
6286
+ "name": "trailing_label_width_small",
6287
+ "snapshot": "true",
6288
+ "skip_rules": {
6289
+ "wont_fix": [
6290
+ "region"
6291
+ ],
6292
+ "will_fix": [
6293
+ "color-contrast"
6294
+ ]
6295
+ }
6296
+ },
6297
+ {
6298
+ "preview_path": "primer/alpha/segmented_control/trailing_label_width_medium",
6299
+ "name": "trailing_label_width_medium",
6300
+ "snapshot": "true",
6301
+ "skip_rules": {
6302
+ "wont_fix": [
6303
+ "region"
6304
+ ],
6305
+ "will_fix": [
6306
+ "color-contrast"
6307
+ ]
6308
+ }
6309
+ },
6310
+ {
6311
+ "preview_path": "primer/alpha/segmented_control/trailing_label_width_large",
6312
+ "name": "trailing_label_width_large",
6313
+ "snapshot": "true",
6314
+ "skip_rules": {
6315
+ "wont_fix": [
6316
+ "region"
6317
+ ],
6318
+ "will_fix": [
6319
+ "color-contrast"
6320
+ ]
6321
+ }
6322
+ },
6412
6323
  {
6413
6324
  "preview_path": "primer/alpha/segmented_control/icon_only_small",
6414
6325
  "name": "icon_only_small",
@@ -6568,10 +6479,32 @@
6568
6479
  }
6569
6480
  ],
6570
6481
  "slots": [
6571
-
6482
+ {
6483
+ "name": "trailing_visual_label",
6484
+ "description": "Optional trailing Label",
6485
+ "parameters": [
6486
+ {
6487
+ "name": "system_arguments",
6488
+ "type": "Hash",
6489
+ "default": "N/A",
6490
+ "description": "The arguments accepted by {{#link_to_component}}Primer::Beta::Button{{/link_to_component}}'s `with_trailing_visual_label` slot."
6491
+ }
6492
+ ]
6493
+ }
6572
6494
  ],
6573
6495
  "methods": [
6574
-
6496
+ {
6497
+ "name": "with_trailing_visual_label",
6498
+ "description": "Optional trailing label.",
6499
+ "parameters": [
6500
+ {
6501
+ "name": "system_arguments",
6502
+ "type": "Hash",
6503
+ "default": "N/A",
6504
+ "description": "The arguments accepted by {{#link_to_component}}Primer::Beta::Button{{/link_to_component}}'s `with_trailing_visual_label` slot."
6505
+ }
6506
+ ]
6507
+ }
6575
6508
  ],
6576
6509
  "previews": [
6577
6510
 
@@ -8352,6 +8285,19 @@
8352
8285
  "color-contrast"
8353
8286
  ]
8354
8287
  }
8288
+ },
8289
+ {
8290
+ "preview_path": "primer/alpha/tooltip/tooltip_with_dialog_moving_focus_to_input",
8291
+ "name": "tooltip_with_dialog_moving_focus_to_input",
8292
+ "snapshot": "false",
8293
+ "skip_rules": {
8294
+ "wont_fix": [
8295
+ "region"
8296
+ ],
8297
+ "will_fix": [
8298
+ "color-contrast"
8299
+ ]
8300
+ }
8355
8301
  }
8356
8302
  ],
8357
8303
  "subcomponents": [
@@ -9545,6 +9491,12 @@
9545
9491
  "default": "`false`",
9546
9492
  "description": "Whether or not the button is disabled. If true, this option forces `tag:` to `:button`."
9547
9493
  },
9494
+ {
9495
+ "name": "inactive",
9496
+ "type": "Boolean",
9497
+ "default": "`false`",
9498
+ "description": "Whether the button looks visually disabled, but can still accept all the same interactions as an enabled button."
9499
+ },
9548
9500
  {
9549
9501
  "name": "system_arguments",
9550
9502
  "type": "Hash",
@@ -10610,6 +10562,19 @@
10610
10562
  "color-contrast"
10611
10563
  ]
10612
10564
  }
10565
+ },
10566
+ {
10567
+ "preview_path": "primer/beta/button/inactive",
10568
+ "name": "inactive",
10569
+ "snapshot": "true",
10570
+ "skip_rules": {
10571
+ "wont_fix": [
10572
+ "region"
10573
+ ],
10574
+ "will_fix": [
10575
+ "color-contrast"
10576
+ ]
10577
+ }
10613
10578
  }
10614
10579
  ],
10615
10580
  "subcomponents": [