primer_view_components 0.0.11 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
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