primer_view_components 0.0.11 → 0.0.16

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -1
  3. data/README.md +3 -1
  4. data/app/components/primer/avatar_component.rb +11 -11
  5. data/app/components/primer/base_component.rb +101 -9
  6. data/app/components/primer/blankslate_component.html.erb +5 -5
  7. data/app/components/primer/blankslate_component.rb +31 -6
  8. data/app/components/primer/border_box_component.html.erb +5 -5
  9. data/app/components/primer/border_box_component.rb +34 -34
  10. data/app/components/primer/box_component.rb +5 -5
  11. data/app/components/primer/breadcrumb_component.html.erb +2 -2
  12. data/app/components/primer/breadcrumb_component.rb +12 -12
  13. data/app/components/primer/button_component.rb +9 -9
  14. data/app/components/primer/counter_component.rb +16 -15
  15. data/app/components/primer/details_component.html.erb +1 -1
  16. data/app/components/primer/details_component.rb +15 -15
  17. data/app/components/primer/dropdown_menu_component.html.erb +1 -1
  18. data/app/components/primer/dropdown_menu_component.rb +6 -6
  19. data/app/components/primer/flash_component.html.erb +2 -2
  20. data/app/components/primer/flash_component.rb +13 -13
  21. data/app/components/primer/flex_component.rb +5 -5
  22. data/app/components/primer/flex_item_component.rb +5 -5
  23. data/app/components/primer/heading_component.rb +4 -4
  24. data/app/components/primer/label_component.rb +22 -16
  25. data/app/components/primer/layout_component.html.erb +1 -1
  26. data/app/components/primer/layout_component.rb +6 -6
  27. data/app/components/primer/link_component.rb +8 -8
  28. data/app/components/primer/octicon_component.rb +10 -10
  29. data/app/components/primer/popover_component.html.erb +1 -1
  30. data/app/components/primer/popover_component.rb +26 -26
  31. data/app/components/primer/progress_bar_component.html.erb +2 -2
  32. data/app/components/primer/progress_bar_component.rb +14 -14
  33. data/app/components/primer/spinner_component.html.erb +1 -1
  34. data/app/components/primer/spinner_component.rb +12 -11
  35. data/app/components/primer/state_component.rb +8 -8
  36. data/app/components/primer/subhead_component.html.erb +4 -4
  37. data/app/components/primer/subhead_component.rb +26 -26
  38. data/app/components/primer/text_component.rb +5 -5
  39. data/app/components/primer/timeline_item_component.html.erb +4 -4
  40. data/app/components/primer/timeline_item_component.rb +28 -28
  41. data/app/components/primer/underline_nav_component.html.erb +1 -1
  42. data/app/components/primer/underline_nav_component.rb +5 -5
  43. data/lib/primer/classify.rb +7 -6
  44. data/lib/primer/view_components/version.rb +1 -1
  45. metadata +6 -6
@@ -3,14 +3,14 @@
3
3
  module Primer
4
4
  # A basic wrapper component for most layout related needs.
5
5
  class BoxComponent < Primer::Component
6
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
7
- def initialize(**kwargs)
8
- @kwargs = kwargs
9
- @kwargs[:tag] = :div
6
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
7
+ def initialize(**system_arguments)
8
+ @system_arguments = system_arguments
9
+ @system_arguments[:tag] = :div
10
10
  end
11
11
 
12
12
  def call
13
- render(Primer::BaseComponent.new(**@kwargs)) { content }
13
+ render(Primer::BaseComponent.new(**@system_arguments)) { content }
14
14
  end
15
15
  end
16
16
  end
@@ -1,8 +1,8 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <ol>
3
3
  <% items.each do |item| %>
4
4
  <%# The <li> and <a> need to be on the same line to prevent unwanted whitespace %>
5
- <%= render Primer::BaseComponent.new(**item.kwargs) do %><%- if item.href.present? %><a href="<%= item.href %>"><%= item.content %></a><%- else %><%= item.content %><%- end %><%- end %>
5
+ <%= render Primer::BaseComponent.new(**item.system_arguments) do %><%- if item.href.present? %><a href="<%= item.href %>"><%= item.content %></a><%- else %><%= item.content %><%- end %><%- end %>
6
6
  <% end %>
7
7
  </ol>
8
8
  <% end %>
@@ -14,11 +14,11 @@ module Primer
14
14
  # <% component.slot(:item, selected: true) do %>Team<% end %>
15
15
  # <% end %>
16
16
  #
17
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
18
- def initialize(**kwargs)
19
- @kwargs = kwargs
20
- @kwargs[:tag] = :nav
21
- @kwargs[:aria] = { label: "Breadcrumb" }
17
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
18
+ def initialize(**system_arguments)
19
+ @system_arguments = system_arguments
20
+ @system_arguments[:tag] = :nav
21
+ @system_arguments[:aria] = { label: "Breadcrumb" }
22
22
  end
23
23
 
24
24
  def render?
@@ -27,18 +27,18 @@ module Primer
27
27
 
28
28
  # _Note: if both `href` and `selected: true` are passed in, `href` will be ignored and the item will not be rendered as a link._
29
29
  class BreadcrumbItem < Primer::Slot
30
- attr_reader :href, :kwargs
30
+ attr_reader :href, :system_arguments
31
31
 
32
32
  # @param href [String] The URL to link to.
33
33
  # @param selected [Boolean] Whether or not the item is selected and not rendered as a link.
34
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
35
- def initialize(href: nil, selected: false, **kwargs)
36
- @href, @kwargs = href, kwargs
34
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
35
+ def initialize(href: nil, selected: false, **system_arguments)
36
+ @href, @system_arguments = href, system_arguments
37
37
 
38
38
  @href = nil if selected
39
- @kwargs[:tag] = :li
40
- @kwargs[:"aria-current"] = "page" if selected
41
- @kwargs[:classes] = "breadcrumb-item #{@kwargs[:classes]}"
39
+ @system_arguments[:tag] = :li
40
+ @system_arguments[:"aria-current"] = "page" if selected
41
+ @system_arguments[:classes] = "breadcrumb-item #{@system_arguments[:classes]}"
42
42
  end
43
43
  end
44
44
  end
@@ -48,20 +48,20 @@ module Primer
48
48
  tag: DEFAULT_TAG,
49
49
  type: DEFAULT_TYPE,
50
50
  group_item: false,
51
- **kwargs
51
+ **system_arguments
52
52
  )
53
- @kwargs = kwargs
54
- @kwargs[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, DEFAULT_TAG)
53
+ @system_arguments = system_arguments
54
+ @system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, DEFAULT_TAG)
55
55
 
56
- if @kwargs[:tag] == :a
57
- @kwargs[:role] = :button
56
+ if @system_arguments[:tag] == :a
57
+ @system_arguments[:role] = :button
58
58
  else
59
- @kwargs[:type] = type
59
+ @system_arguments[:type] = type
60
60
  end
61
61
 
62
- @kwargs[:classes] = class_names(
62
+ @system_arguments[:classes] = class_names(
63
63
  "btn",
64
- kwargs[:classes],
64
+ system_arguments[:classes],
65
65
  BUTTON_TYPE_MAPPINGS[fetch_or_fallback(BUTTON_TYPE_OPTIONS, button_type, DEFAULT_BUTTON_TYPE)],
66
66
  VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_OPTIONS, variant, DEFAULT_VARIANT)],
67
67
  "BtnGroup-item" => group_item
@@ -69,7 +69,7 @@ module Primer
69
69
  end
70
70
 
71
71
  def call
72
- render(Primer::BaseComponent.new(**@kwargs)) { content }
72
+ render(Primer::BaseComponent.new(**@system_arguments)) { content }
73
73
  end
74
74
  end
75
75
  end
@@ -16,11 +16,11 @@ module Primer
16
16
  #
17
17
  # @param count [Integer, Float::INFINITY, nil] The number to be displayed (e.x. # of issues, pull requests)
18
18
  # @param scheme [Symbol] Color scheme. One of `SCHEME_MAPPINGS.keys`.
19
- # @param limit [Integer] Maximum value to display. (e.x. if count == 6,000 and limit == 5000, counter will display "5,000+")
19
+ # @param limit [Integer, nil] Maximum value to display. Pass `nil` for no limit. (e.x. if `count` == 6,000 and `limit` == 5000, counter will display "5,000+")
20
20
  # @param hide_if_zero [Boolean] If true, a `hidden` attribute is added to the counter if `count` is zero.
21
21
  # @param text [String] Text to display instead of count.
22
22
  # @param round [Boolean] Whether to apply our standard rounding logic to value.
23
- # @param kwargs [Hash] Style arguments to be passed to Primer::Classify
23
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
24
24
  def initialize(
25
25
  count: 0,
26
26
  scheme: DEFAULT_SCHEME,
@@ -28,23 +28,24 @@ module Primer
28
28
  hide_if_zero: false,
29
29
  text: "",
30
30
  round: false,
31
- **kwargs
31
+ **system_arguments
32
32
  )
33
- @count, @limit, @hide_if_zero, @text, @round, @kwargs = count, limit, hide_if_zero, text, round, kwargs
33
+ @count, @limit, @hide_if_zero, @text, @round, @system_arguments = count, limit, hide_if_zero, text, round, system_arguments
34
34
 
35
- @kwargs[:title] = title
36
- @kwargs[:tag] = :span
37
- @kwargs[:classes] = class_names(
38
- @kwargs[:classes],
35
+ @has_limit = !@limit.nil?
36
+ @system_arguments[:title] = title
37
+ @system_arguments[:tag] = :span
38
+ @system_arguments[:classes] = class_names(
39
+ @system_arguments[:classes],
39
40
  SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_MAPPINGS.keys, scheme, DEFAULT_SCHEME)]
40
41
  )
41
42
  if count == 0 && hide_if_zero
42
- @kwargs[:hidden] = true
43
+ @system_arguments[:hidden] = true
43
44
  end
44
45
  end
45
46
 
46
47
  def call
47
- render(Primer::BaseComponent.new(**@kwargs)) { value }
48
+ render(Primer::BaseComponent.new(**@system_arguments)) { value }
48
49
  end
49
50
 
50
51
  private
@@ -58,8 +59,8 @@ module Primer
58
59
  "Infinity"
59
60
  else
60
61
  count = @count.to_i
61
- str = number_with_delimiter([count, @limit].min)
62
- str += "+" if count > @limit
62
+ str = number_with_delimiter(@has_limit ? [count, @limit].min : count)
63
+ str += "+" if (@has_limit && count > @limit)
63
64
  str
64
65
  end
65
66
  end
@@ -73,16 +74,16 @@ module Primer
73
74
  "∞"
74
75
  else
75
76
  if @round
76
- count = [@count.to_i, @limit].min
77
+ count = @has_limit ? [@count.to_i, @limit].min : @count.to_i
77
78
  precision = count.between?(100_000, 999_999) ? 0 : 1
78
79
  units = {thousand: "k", million: "m", billion: "b"}
79
80
  str = number_to_human(count, precision: precision, significant: false, units: units, format: "%n%u")
80
81
  else
81
82
  @count = @count.to_i
82
- str = number_with_delimiter([@count, @limit].min)
83
+ str = number_with_delimiter(@has_limit ? [@count, @limit].min : @count)
83
84
  end
84
85
 
85
- str += "+" if @count.to_i > @limit
86
+ str += "+" if (@has_limit && @count.to_i > @limit)
86
87
  str
87
88
  end
88
89
  end
@@ -1,4 +1,4 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <%= render summary.component do %>
3
3
  <%= summary.content %>
4
4
  <% end %>
@@ -19,11 +19,11 @@ module Primer
19
19
  with_slot :body, class_name: "Body"
20
20
  with_slot :summary, class_name: "Summary"
21
21
 
22
- def initialize(overlay: NO_OVERLAY, reset: false, **kwargs)
23
- @kwargs = kwargs
24
- @kwargs[:tag] = :details
25
- @kwargs[:classes] = class_names(
26
- kwargs[:classes],
22
+ def initialize(overlay: NO_OVERLAY, reset: false, **system_arguments)
23
+ @system_arguments = system_arguments
24
+ @system_arguments[:tag] = :details
25
+ @system_arguments[:classes] = class_names(
26
+ system_arguments[:classes],
27
27
  OVERLAY_MAPPINGS[fetch_or_fallback(OVERLAY_MAPPINGS.keys, overlay, NO_OVERLAY)],
28
28
  "details-reset" => reset
29
29
  )
@@ -34,29 +34,29 @@ module Primer
34
34
  end
35
35
 
36
36
  class Summary < Primer::Slot
37
- def initialize(button: true, **kwargs)
37
+ def initialize(button: true, **system_arguments)
38
38
  @button = button
39
39
 
40
- @kwargs = kwargs
41
- @kwargs[:tag] = :summary
42
- @kwargs[:role] = "button"
40
+ @system_arguments = system_arguments
41
+ @system_arguments[:tag] = :summary
42
+ @system_arguments[:role] = "button"
43
43
  end
44
44
 
45
45
  def component
46
- return Primer::BaseComponent.new(**@kwargs) unless @button
46
+ return Primer::BaseComponent.new(**@system_arguments) unless @button
47
47
 
48
- Primer::ButtonComponent.new(**@kwargs)
48
+ Primer::ButtonComponent.new(**@system_arguments)
49
49
  end
50
50
  end
51
51
 
52
52
  class Body < Primer::Slot
53
- def initialize(**kwargs)
54
- @kwargs = kwargs
55
- @kwargs[:tag] ||= :div
53
+ def initialize(**system_arguments)
54
+ @system_arguments = system_arguments
55
+ @system_arguments[:tag] ||= :div
56
56
  end
57
57
 
58
58
  def component
59
- Primer::BaseComponent.new(**@kwargs)
59
+ Primer::BaseComponent.new(**@system_arguments)
60
60
  end
61
61
  end
62
62
  end
@@ -1,4 +1,4 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <% if @header.present? %>
3
3
  <div class="dropdown-header">
4
4
  <%= @header %>
@@ -11,14 +11,14 @@ module Primer
11
11
  DIRECTION_DEFAULT = :se
12
12
  DIRECTION_OPTIONS = [DIRECTION_DEFAULT, :sw, :w, :e, :ne, :s]
13
13
 
14
- def initialize(direction: DIRECTION_DEFAULT, scheme: SCHEME_DEFAULT, header: nil, **kwargs)
15
- @header, @direction, @kwargs = header, direction, kwargs
14
+ def initialize(direction: DIRECTION_DEFAULT, scheme: SCHEME_DEFAULT, header: nil, **system_arguments)
15
+ @header, @direction, @system_arguments = header, direction, system_arguments
16
16
 
17
- @kwargs[:tag] = "details-menu"
18
- @kwargs[:role] = "menu"
17
+ @system_arguments[:tag] = "details-menu"
18
+ @system_arguments[:role] = "menu"
19
19
 
20
- @kwargs[:classes] = class_names(
21
- @kwargs[:classes],
20
+ @system_arguments[:classes] = class_names(
21
+ @system_arguments[:classes],
22
22
  "dropdown-menu",
23
23
  "dropdown-menu-#{fetch_or_fallback(DIRECTION_OPTIONS, direction, DIRECTION_DEFAULT)}",
24
24
  SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_MAPPINGS.keys, scheme, SCHEME_DEFAULT)]
@@ -1,4 +1,4 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <%= render(Primer::OcticonComponent.new(icon: @icon)) if @icon %>
3
3
  <%= content %>
4
4
  <% if @dismissible %>
@@ -7,7 +7,7 @@
7
7
  </button>
8
8
  <% end %>
9
9
  <% if actions.present? %>
10
- <%= render Primer::BaseComponent.new(**actions.kwargs) do %>
10
+ <%= render Primer::BaseComponent.new(**actions.system_arguments) do %>
11
11
  <%= actions.content %>
12
12
  <% end %>
13
13
  <% end %>
@@ -42,31 +42,31 @@ module Primer
42
42
  # @param dismissible [Boolean] Whether the component can be dismissed with an X button.
43
43
  # @param icon [String] Name of Octicon icon to use.
44
44
  # @param variant [Symbol] <%= one_of(Primer::FlashComponent::VARIANT_MAPPINGS.keys) %>
45
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
46
- def initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **kwargs)
45
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
46
+ def initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **system_arguments)
47
47
  @icon = icon
48
48
  @dismissible = dismissible
49
- @kwargs = kwargs
50
- @kwargs[:tag] = :div
51
- @kwargs[:classes] = class_names(
52
- @kwargs[:classes],
49
+ @system_arguments = system_arguments
50
+ @system_arguments[:tag] = :div
51
+ @system_arguments[:classes] = class_names(
52
+ @system_arguments[:classes],
53
53
  "flash",
54
54
  VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_MAPPINGS.keys, variant, DEFAULT_VARIANT)],
55
55
  "flash-full": full
56
56
  )
57
- @kwargs[:mb] ||= spacious ? 4 : nil
57
+ @system_arguments[:mb] ||= spacious ? 4 : nil
58
58
  end
59
59
 
60
60
  class Actions < ViewComponent::Slot
61
61
  include ClassNameHelper
62
62
 
63
- attr_reader :kwargs
63
+ attr_reader :system_arguments
64
64
 
65
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
66
- def initialize(**kwargs)
67
- @kwargs = kwargs
68
- @kwargs[:tag] = :div
69
- @kwargs[:classes] = class_names(@kwargs[:classes], "flash-action")
65
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
66
+ def initialize(**system_arguments)
67
+ @system_arguments = system_arguments
68
+ @system_arguments[:tag] = :div
69
+ @system_arguments[:classes] = class_names(@system_arguments[:classes], "flash-action")
70
70
  end
71
71
  end
72
72
  end
@@ -37,7 +37,7 @@ module Primer
37
37
  flex_wrap: FLEX_WRAP_DEFAULT,
38
38
  align_items: ALIGN_ITEMS_DEFAULT,
39
39
  direction: nil,
40
- **kwargs
40
+ **system_arguments
41
41
  )
42
42
  @align_items = fetch_or_fallback(ALIGN_ITEMS_OPTIONS, align_items, ALIGN_ITEMS_DEFAULT)
43
43
  @justify_content = fetch_or_fallback(JUSTIFY_CONTENT_OPTIONS, justify_content, JUSTIFY_CONTENT_DEFAULT)
@@ -51,13 +51,13 @@ module Primer
51
51
  DEFAULT_DIRECTION
52
52
  end
53
53
 
54
- @kwargs = kwargs.merge({ direction: @direction }.compact)
55
- @kwargs[:classes] = class_names(@kwargs[:classes], component_class_names)
56
- @kwargs[:display] = fetch_or_fallback(INLINE_OPTIONS, inline, INLINE_DEFAULT) ? :inline_flex : :flex
54
+ @system_arguments = system_arguments.merge({ direction: @direction }.compact)
55
+ @system_arguments[:classes] = class_names(@system_arguments[:classes], component_class_names)
56
+ @system_arguments[:display] = fetch_or_fallback(INLINE_OPTIONS, inline, INLINE_DEFAULT) ? :inline_flex : :flex
57
57
  end
58
58
 
59
59
  def call
60
- render(Primer::BoxComponent.new(**@kwargs)) { content }
60
+ render(Primer::BoxComponent.new(**@system_arguments)) { content }
61
61
  end
62
62
 
63
63
  private
@@ -5,17 +5,17 @@ module Primer
5
5
  FLEX_AUTO_DEFAULT = false
6
6
  FLEX_AUTO_ALLOWED_VALUES = [FLEX_AUTO_DEFAULT, true]
7
7
 
8
- def initialize(flex_auto: FLEX_AUTO_DEFAULT, **kwargs)
9
- @kwargs = kwargs
10
- @kwargs[:classes] =
8
+ def initialize(flex_auto: FLEX_AUTO_DEFAULT, **system_arguments)
9
+ @system_arguments = system_arguments
10
+ @system_arguments[:classes] =
11
11
  class_names(
12
- @kwargs[:classes],
12
+ @system_arguments[:classes],
13
13
  "flex-auto" => fetch_or_fallback(FLEX_AUTO_ALLOWED_VALUES, flex_auto, FLEX_AUTO_DEFAULT)
14
14
  )
15
15
  end
16
16
 
17
17
  def call
18
- render(Primer::BoxComponent.new(**@kwargs)) { content }
18
+ render(Primer::BoxComponent.new(**@system_arguments)) { content }
19
19
  end
20
20
  end
21
21
  end
@@ -2,13 +2,13 @@
2
2
 
3
3
  module Primer
4
4
  class HeadingComponent < Primer::Component
5
- def initialize(**kwargs)
6
- @kwargs = kwargs
7
- @kwargs[:tag] ||= :h1
5
+ def initialize(**system_arguments)
6
+ @system_arguments = system_arguments
7
+ @system_arguments[:tag] ||= :h1
8
8
  end
9
9
 
10
10
  def call
11
- render(Primer::BaseComponent.new(**@kwargs)) { content }
11
+ render(Primer::BaseComponent.new(**@system_arguments)) { content }
12
12
  end
13
13
  end
14
14
  end
@@ -3,12 +3,18 @@
3
3
  module Primer
4
4
  # Use labels to add contextual metadata to a design.
5
5
  class LabelComponent < Primer::Component
6
- SCHEME_MAPPINGS = {
7
- # gray
6
+ NEW_SCHEME_MAPPINGS = {
7
+ primary: "Label--primary",
8
+ secondary: "Label--secondary",
9
+ info: "Label--info",
10
+ success: "Label--success",
11
+ warning: "Label--warning",
12
+ danger: "Label--danger",
13
+ }
14
+
15
+ DEPRECATED_SCHEME_MAPPINGS = {
8
16
  gray: "Label--gray",
9
17
  dark_gray: "Label--gray-darker",
10
-
11
- # colored
12
18
  yellow: "Label--yellow",
13
19
  orange: "Label--orange",
14
20
  red: "Label--red",
@@ -16,11 +22,11 @@ module Primer
16
22
  blue: "Label--blue",
17
23
  purple: "Label--purple",
18
24
  pink: "Label--pink",
19
-
20
- # Deprecated
21
25
  outline: "Label--outline",
22
26
  green_outline: "Label--outline-green",
23
27
  }.freeze
28
+
29
+ SCHEME_MAPPINGS = NEW_SCHEME_MAPPINGS.merge(DEPRECATED_SCHEME_MAPPINGS)
24
30
  SCHEME_OPTIONS = SCHEME_MAPPINGS.keys << nil
25
31
 
26
32
  VARIANT_MAPPINGS = {
@@ -42,24 +48,24 @@ module Primer
42
48
  # <%= render(Primer::LabelComponent.new(title: "Label: Label", variant: :large)) { "Large" } %>
43
49
  #
44
50
  # @param title [String] `title` attribute for the component element.
45
- # @param scheme [Symbol] <%= one_of(Primer::LabelComponent::SCHEME_OPTIONS) %>
51
+ # @param scheme [Symbol] <%= one_of(Primer::LabelComponent::DEPRECATED_SCHEME_MAPPINGS.keys) %>
46
52
  # @param variant [Symbol] <%= one_of(Primer::LabelComponent::VARIANT_OPTIONS) %>
47
- # @param kwargs [Hash] <%= link_to_style_arguments_docs %>
48
- def initialize(title:, scheme: nil, variant: nil, **kwargs)
49
- @kwargs = kwargs
50
- @kwargs[:bg] = :blue if scheme.nil?
51
- @kwargs[:tag] ||= :span
52
- @kwargs[:title] = title
53
- @kwargs[:classes] = class_names(
53
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
54
+ def initialize(title:, scheme: nil, variant: nil, **system_arguments)
55
+ @system_arguments = system_arguments
56
+ @system_arguments[:bg] = :blue if scheme.nil?
57
+ @system_arguments[:tag] ||= :span
58
+ @system_arguments[:title] = title
59
+ @system_arguments[:classes] = class_names(
54
60
  "Label",
55
- kwargs[:classes],
61
+ system_arguments[:classes],
56
62
  SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_OPTIONS, scheme)],
57
63
  VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_OPTIONS, variant)]
58
64
  )
59
65
  end
60
66
 
61
67
  def call
62
- render(Primer::BaseComponent.new(**@kwargs)) { content }
68
+ render(Primer::BaseComponent.new(**@system_arguments)) { content }
63
69
  end
64
70
  end
65
71
  end