primer_view_components 0.0.10 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -1
  3. data/README.md +2 -175
  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 +1 -1
  7. data/app/components/primer/blankslate_component.rb +6 -6
  8. data/app/components/primer/border_box_component.html.erb +5 -5
  9. data/app/components/primer/border_box_component.rb +45 -33
  10. data/app/components/primer/box_component.rb +6 -4
  11. data/app/components/primer/breadcrumb_component.html.erb +2 -2
  12. data/app/components/primer/breadcrumb_component.rb +23 -30
  13. data/app/components/primer/button_component.rb +26 -9
  14. data/app/components/primer/component.rb +1 -0
  15. data/app/components/primer/counter_component.rb +16 -15
  16. data/app/components/primer/details_component.html.erb +1 -1
  17. data/app/components/primer/details_component.rb +18 -18
  18. data/app/components/primer/dropdown_menu_component.html.erb +1 -1
  19. data/app/components/primer/dropdown_menu_component.rb +6 -6
  20. data/app/components/primer/flash_component.html.erb +2 -2
  21. data/app/components/primer/flash_component.rb +42 -12
  22. data/app/components/primer/flex_component.rb +5 -5
  23. data/app/components/primer/flex_item_component.rb +5 -5
  24. data/app/components/primer/heading_component.rb +4 -4
  25. data/app/components/primer/label_component.rb +37 -14
  26. data/app/components/primer/layout_component.html.erb +1 -1
  27. data/app/components/primer/layout_component.rb +22 -5
  28. data/app/components/primer/link_component.rb +17 -7
  29. data/app/components/primer/octicon_component.rb +20 -7
  30. data/app/components/primer/popover_component.html.erb +1 -1
  31. data/app/components/primer/popover_component.rb +61 -23
  32. data/app/components/primer/progress_bar_component.html.erb +2 -2
  33. data/app/components/primer/progress_bar_component.rb +40 -30
  34. data/app/components/primer/slot.rb +1 -0
  35. data/app/components/primer/spinner_component.html.erb +1 -1
  36. data/app/components/primer/spinner_component.rb +12 -11
  37. data/app/components/primer/state_component.rb +26 -14
  38. data/app/components/primer/subhead_component.html.erb +4 -4
  39. data/app/components/primer/subhead_component.rb +68 -43
  40. data/app/components/primer/text_component.rb +10 -4
  41. data/app/components/primer/timeline_item_component.html.erb +4 -4
  42. data/app/components/primer/timeline_item_component.rb +48 -24
  43. data/app/components/primer/underline_nav_component.html.erb +1 -1
  44. data/app/components/primer/underline_nav_component.rb +5 -5
  45. data/lib/primer/classify.rb +7 -6
  46. data/lib/primer/view_components/version.rb +1 -1
  47. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4ccf1dd55332ea7b350841d78e04a0f56a0f036749638c30041582500cc561c
4
- data.tar.gz: f948087b2dba1cd217296a08260db95a8973cf8e58d4e1240a2c45295ef17e24
3
+ metadata.gz: c2957082e3fcbcfe88a4bed4f13c1dd8e46971a4792f4e4539cf396293d2b753
4
+ data.tar.gz: 0cfc136341d4b04c8602851085131fb35eea924439c8b577081993e2540e4992
5
5
  SHA512:
6
- metadata.gz: 2359e308fa78d78b5cb0f4e76791bfcd6a9714b7295320d04f293f0b7e0351c4fbad90a13743c61e9401de9c69c1269ee791167638715e7fafc594a47b8a242b
7
- data.tar.gz: 2089d76d7cdef40b4bce9871d2b0ade0f492751ba057dc99e6fabc4654390656e0cdef57004931d66b1ea75f6189581dbf840bedbb7b89ee6d0fbfdb31d13136
6
+ metadata.gz: ba13e8bb5fab035a22483269d350ede659f95a36feaf07031c88076750c2ec9775bf3f8a34e65807dfdf5b874a3ba9efb0cdfdfafefcbaa22bef0f55b98e86ee
7
+ data.tar.gz: d9c0d1615202ddc1f0a193a8555812cb97ad1f371df7e8ed2ce66ee2899f41a266af10d3e9eda205d187fb0e20f154a82034bda8e5f732c48ec17ab0cee9c9ac
@@ -2,6 +2,40 @@
2
2
 
3
3
  ## main
4
4
 
5
+ ## 0.0.15
6
+
7
+ * Add ability to disable `limit` on Counter.
8
+
9
+ *Christian Giordano*
10
+
11
+ * Rename `v` system argument to `visibility`.
12
+
13
+ *Joel Hawksley*
14
+
15
+ ## 0.0.14
16
+
17
+ * Add functional colors to Label.
18
+
19
+ *Joel Hawksley*
20
+
21
+ ## 0.0.13
22
+
23
+ * Add support for `xl` breakpoint.
24
+
25
+ *Joel Hawksley*
26
+
27
+ ## 0.0.12
28
+
29
+ * Adds support for disabling inline box-sizing style for `SpinnerComponent` via style parameter `Primer::SpinnerComponent.new(style: nil)`.
30
+
31
+ *Chris Wilson*
32
+
33
+ ## 0.0.11
34
+
35
+ * Renames DetailsComponent::OVERLAY_DEFAULT to DetailsComponent::NO_OVERLAY to more correctly describe its value.
36
+
37
+ *Justin Kenyon*
38
+
5
39
  ## 0.0.10
6
40
 
7
41
  * Add SpinnerComponent
@@ -76,7 +110,7 @@
76
110
 
77
111
  ## 0.0.3
78
112
 
79
- * Add support for responsive `float` style argument.
113
+ * Add support for responsive `float` system argument.
80
114
 
81
115
  *Joel Hawksley*
82
116
 
data/README.md CHANGED
@@ -8,182 +8,9 @@
8
8
 
9
9
  _Note: This library is in pre-release development and should not be considered stable._
10
10
 
11
- ## Design philosophy
11
+ ## Documentation
12
12
 
13
- Primer ViewComponents aims to mimic the API of [Primer Components](https://github.com/primer/components), while using [Primer CSS](https://github.com/primer/css) under the hood.
14
-
15
- ## Installation
16
-
17
- In `Gemfile`, add:
18
-
19
- ```ruby
20
- gem "primer_view_components"
21
- ```
22
-
23
- In `config/application.rb`, add **after the application definition**
24
-
25
- ```ruby
26
- require "primer/view_components/engine"
27
- ```
28
-
29
- ## Usage
30
-
31
- ### Built-in styling arguments
32
-
33
- Primer components should be styled using the built-in arguments when possible. Most Primer utility classes for spacing, alignment, display, and colors have equivalent component arguments.
34
-
35
- Example label built with Primer CSS:
36
-
37
- ```html
38
- <span title="Label: Suggested" class="Label Label--outline Label--outline-green ml-2 v-align-middle">Suggested</span>
39
- ```
40
-
41
- The same label using `Primer::LabelComponent`:
42
-
43
- ```erb
44
- <%= render Primer::LabelComponent.new(ml: 2, vertical_align: :middle, scheme: :green, title: "Label: Suggested") do %>
45
- Suggested
46
- <% end %>
47
- ```
48
-
49
- Some components have their own specific arguments, but they can all be styled with the following arguments.
50
-
51
- | Component argument | Primer class | Example |
52
- | --------------- | --------------- | -------- |
53
- | `m` | `m-<value>` | `m: 4` → `.m-4` |
54
- | `my` | `my-<value>` | `my: 4` → `.my-4` |
55
- | `mx` | `my-<value>` | `mx: 4` → `.mx-4` |
56
- | `mt` | `mt-<value>` | `mt: 4` → `.mt-4` |
57
- | `mb` | `mb-<value>` | `mb: 4` → `.mb-4` |
58
- | `ml` | `ml-<value>` | `ml: 4` → `.ml-4` |
59
- | `mr` | `mr-<value>` | `mr: 4` → `.mr-4` |
60
- | `p` | `p-<value>` | `p: 4` → `.p-4` |
61
- | `py` | `py-<value>` | `py: 4` → `.py-4` |
62
- | `px` | `py-<value>` | `px: 4` → `.px-4` |
63
- | `pt` | `pt-<value>` | `pt: 4` → `.pt-4` |
64
- | `pb` | `pb-<value>` | `pb: 4` → `.pb-4` |
65
- | `pl` | `pl-<value>` | `pl: 4` → `.pl-4` |
66
- | `pr` | `pr-<value>` | `pr: 4` → `.pr-4` |
67
- | `pr` | `pr-<value>` | `pr: 4` → `.pr-4` |
68
- | `f` | `f-<value>` | `f: 4` → `.f-4` |
69
- | `color` | `color-<value>` | `color: :red_500` → `.color-red-500` |
70
- | `text` | `text-<value>` | `text: :green` → `.text-green` |
71
- | `bg` | `bg-<value>` | `bg: :blue_light` → `.bg-blue-light` |
72
- | `display` | `d-<value>` | `display: :none` → `.d-none` |
73
- | `float` | `float-<value>` | `float: :right` → `.float-right` |
74
- | `vertical_align` | `v-align-<value>` | `vertical_align: :baseline` → `.v-align-baseline` |
75
- | `text_align` | `text-<value>` | `text_align: :right` → `.text-right` |
76
- | `font_size` | `f<value>` | `font_size: 4` → `.f4` |
77
- | `font_weight` | `text-<value>` | `font_weight: :bold` → `.text-bold` |
78
- | `border` | `border-<value>` | `border: :bottom` → `.border-bottom` |
79
- | `border_color` | `border-<value>` | `border: :green` → `.border-green` |
80
- | `border_top` | `border-top-<value>` | `border_top: 0` → `.border-top-0` |
81
- | `border_bottom` | `border-bottom-<value>` | `border_bottom: 0` → `.border-bottom-0` |
82
- | `border_left` | `border-left-<value>` | `border_left: 0` → `.border-left-0` |
83
- | `border_right` | `border-right-<value>` | `border_right: 0` → `.border-right-0` |
84
- | `word_break` | `wb-<value>` | `word_break: :break_all` → `.wb-break-all` |
85
- | `direction` | `flex-<value>` | `direction: :row` → `.flex-row` |
86
- | `justify_content` | `flex-justify-<value>` | `justify_content: :center` → `.flex-justify-center` |
87
- | `align_items` | `flex-items-<value>` | `align_items: :baseline` → `.flex-items-baseline` |
88
- | `box_shadow` | `box-shadow-<value>` | `box_shadow: :medium` → `.box-shadow-medium` |
89
-
90
- #### Boolean arguments
91
-
92
- | Component arguments | True | False |
93
- | -------------- | ------- | ------ |
94
- | `underline` | `underline: true` → `.text-underline` | `underline: false` → `.no-underline` |
95
- | `top` | n/a | `top: false` → `.top-0` |
96
- | `bottom` | n/a | `bottom: false` → `.bottom-0` |
97
- | `left` | n/a | `left: false` → `.left-0` |
98
- | `right` | n/a | `right: false` → `.right-0` |
99
-
100
- #### Responsive arguments
101
-
102
- Different classes can be used for different breakpoints just like in Primer CSS. Simply use an array with the four values required for `[none, small, medium, large]`. If no breakpoint is needed for a breakpoint, pass `nil`.
103
-
104
- Example heading built with Primer CSS:
105
-
106
- ```html
107
- <h1 class="mt-0 mt-lg-4">Hello world</h1>
108
- ```
109
-
110
- The same label using `Primer::HeadingComponent`:
111
-
112
- ```erb
113
- <%= render Primer::HeadingComponent.new(mt: [0, nil, nil, 4]) do %>
114
- Hello world
115
- <% end %>
116
- ```
117
-
118
- ## Contributing
119
-
120
- Bug reports and pull requests are welcome on GitHub at [https://github.com/primer/view_components](https://github.com/primer/view_components). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
121
-
122
- ### Setting up
123
-
124
- Run
125
-
126
- ```bash
127
- script/setup
128
- ```
129
-
130
- To install all necessary dependencies.
131
-
132
- ### Running tests
133
-
134
- To run the full test suite:
135
-
136
- ```bash
137
- bundle exec rake
138
- ```
139
-
140
- ### Writing documentation
141
-
142
- Documentation is written as [YARD](https://yardoc.org/) comments directly in the source code, compiled into Markdown via `rake docs:build` and served by [Doctocat](https://github.com/primer/doctocat).
143
-
144
- ### Storybook / Documentation
145
-
146
- To run Storybook and the documentation site, run:
147
-
148
- ```bash
149
- script/dev
150
- ```
151
-
152
- _Note: Overmind is required to run script/dev._
153
-
154
- ### Developing with another app
155
-
156
- In your `Gemfile`, change:
157
-
158
- ```ruby
159
- gem "primer_view_components"
160
- ```
161
-
162
- to
163
-
164
- ```ruby
165
- gem "primer_view_components", path: "path_to_the_gem" # e.g. path: "~/primer/view_components"
166
- ```
167
-
168
- Then, `bundle install` to update references. You'll now be able to see changes from the gem without having to build it.
169
- Remember that restarting the Rails server is necessary to see changes, as the gem is loaded at boot time.
170
-
171
- To minimize the number of restarts, we recommend checking the component in Storybook first, and then when it's in a good state,
172
- you can check it in your app.
173
-
174
- ### Documentation
175
-
176
- Document components with [YARD](https://yardoc.org/). Docs are published to [RubyDoc.info](https://rubydoc.info/github/primer/view_components).
177
-
178
- ## Deploying to Heroku
179
-
180
- We have both `staging` and `production` environments. To deploy Storybook to Heroku, run the following in `#primer-view-components-ops`:
181
-
182
- ```bash
183
- .deploy primer-view-components</branch> to <environment>
184
- ```
185
-
186
- If no `branch` is passed, `main` will be deployed.
13
+ Visit [https://primer.style/view-components/](https://primer.style/view-components//) to view documentation.
187
14
 
188
15
  ## License
189
16
 
@@ -15,25 +15,25 @@ module Primer
15
15
  # @param alt [String] Passed through to alt on img tag
16
16
  # @param size [Integer] Adds the avatar-small class if less than 24
17
17
  # @param square [Boolean] Used to create a square avatar.
18
- def initialize(src:, alt:, size: 20, square: false, **kwargs)
19
- @kwargs = kwargs
20
- @kwargs[:tag] = :img
21
- @kwargs[:src] = src
22
- @kwargs[:alt] = alt
23
- @kwargs[:size] = size
24
- @kwargs[:height] = size
25
- @kwargs[:width] = size
18
+ def initialize(src:, alt:, size: 20, square: false, **system_arguments)
19
+ @system_arguments = system_arguments
20
+ @system_arguments[:tag] = :img
21
+ @system_arguments[:src] = src
22
+ @system_arguments[:alt] = alt
23
+ @system_arguments[:size] = size
24
+ @system_arguments[:height] = size
25
+ @system_arguments[:width] = size
26
26
 
27
- @kwargs[:classes] = class_names(
27
+ @system_arguments[:classes] = class_names(
28
28
  "avatar",
29
- kwargs[:classes],
29
+ system_arguments[:classes],
30
30
  "avatar--small" => size < SMALL_THRESHOLD,
31
31
  "CircleBadge" => !square
32
32
  )
33
33
  end
34
34
 
35
35
  def call
36
- render(Primer::BaseComponent.new(**@kwargs)) { content }
36
+ render(Primer::BaseComponent.new(**@system_arguments)) { content }
37
37
  end
38
38
  end
39
39
  end
@@ -1,22 +1,114 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Primer
4
- # Base component used by other Primer components.
4
+ # All Primer ViewComponents accept a standard set of options called system arguments, mimicking the [styled-system API](https://styled-system.com/table) used by [Primer React](https://primer.style/components/system-props).
5
+ #
6
+ # Under the hood, system arguments are [mapped](https://github.com/primer/view_components/blob/main/lib/primer/classify.rb) to Primer CSS classes, with any remaining options passed to Rails' [`content_tag`](https://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-content_tag).
7
+ #
8
+ # ## Responsive values
9
+ #
10
+ # To apply different values across responsive breakpoints, pass an array with up to five values in the order `[default, small, medium, large, xlarge]`. To skip a breakpoint, pass `nil`.
11
+ #
12
+ # For example:
13
+ #
14
+ # ```erb
15
+ # <%= render Primer::HeadingComponent.new(mt: [0, nil, nil, 4, 2]) do %>
16
+ # Hello world
17
+ # <% end %>
18
+ # ```
19
+ #
20
+ # Renders:
21
+ #
22
+ # ```html
23
+ # <h1 class="mt-0 mt-lg-4 mt-xl-2">Hello world</h1>
24
+ # ```
25
+ #
26
+ # ## HTML attributes
27
+ #
28
+ # System arguments include most HTML attributes. For example:
29
+ #
30
+ # | Name | Type | Description |
31
+ # | :- | :- | :- |
32
+ # | `width` | `Integer` | Width. |
33
+ # | `height` | `Integer` | Height. |
34
+ # | `data` | `Hash` | Data attributes: `data: { foo: :bar }` renders `data-foo='bar'`. |
35
+ # | `aria` | `Hash` | Aria attributes: `aria: { label: "foo" }` renders `aria-label='foo'`. |
36
+ # | `title` | `String` | The `title` attribute. |
37
+ # | `hidden` | `Boolean` | Whether to assign the `hidden` attribute. |
5
38
  class BaseComponent < Primer::Component
6
39
  TEST_SELECTOR_TAG = :test_selector
7
-
40
+ # @param test_selector [String] Adds `data-test-selector='given value'` in non-Production environments for testing purposes.
41
+ #
42
+ # @param m [Integer] Margin. <%= one_of((-6..6).to_a) %>
43
+ # @param mt [Integer] Margin left. <%= one_of((-6..6).to_a) %>
44
+ # @param mr [Integer] Margin right. <%= one_of((-6..6).to_a) %>
45
+ # @param mb [Integer] Margin bottom. <%= one_of((-6..6).to_a) %>
46
+ # @param ml [Integer] Margin left. <%= one_of((-6..6).to_a) %>
47
+ # @param mx [Integer] Horizontal margins. <%= one_of((-6..6).to_a + [:auto]) %>
48
+ # @param my [Integer] Vertical margins. <%= one_of((-6..6).to_a) %>
49
+ # @param p [Integer] Padding. <%= one_of((0..6).to_a) %>
50
+ # @param pt [Integer] Padding left. <%= one_of((0..6).to_a) %>
51
+ # @param pr [Integer] Padding right. <%= one_of((0..6).to_a) %>
52
+ # @param pb [Integer] Padding bottom. <%= one_of((0..6).to_a) %>
53
+ # @param pl [Integer] Padding left. <%= one_of((0..6).to_a) %>
54
+ # @param px [Integer] Horizontal padding. <%= one_of((0..6).to_a) %>
55
+ # @param py [Integer] Vertical padding. <%= one_of((0..6).to_a) %>
56
+ #
57
+ # @param position [Symbol] <%= one_of([:relative, :absolute, :fixed]) %>
58
+ #
59
+ # @param top [Boolean] If `false`, sets `top: 0`.
60
+ # @param right [Boolean] If `false`, sets `right: 0`.
61
+ # @param bottom [Boolean] If `false`, sets `bottom: 0`.
62
+ # @param left [Boolean] If `false`, sets `left: 0`.
63
+ #
64
+ # @param display [Symbol] <%= one_of([:block, :none, :inline, :inline_block, :table, :table_cell]) %>
65
+ #
66
+ # @param v [Symbol] Visibility. <%= one_of([:hidden, :visible]) %>
67
+ #
68
+ # @param hide [Symbol] Hide the element at a specific breakpoint. <%= one_of([:sm, :md, :lg, :xl]) %>
69
+ #
70
+ # @param vertical_align [Symbol] <%= one_of([:baseline, :top, :middle, :bottom, :text_top, :text_bottom]) %>
71
+ #
72
+ # @param float [Symbol] <%= one_of([:left, :right]) %>
73
+ #
74
+ # @param col [Integer] Number of columns.
75
+ #
76
+ # @param underline [Boolean] Whether text should be underlined.
77
+ #
78
+ # @param color [Symbol] Text color. <%= one_of([:blue, :red, :gray_light, :gray, :gray_dark, :green, :orange, :orange_light, :purple, :pink, :white, :inherit]) %> Note: this API is subject to change as we move to functional colors.
79
+ # @param bg [String, Symbol] Background color. Accepts either a hex value as a String or a color name as a Symbol.
80
+ #
81
+ # @param box_shadow [Boolean, Symbol] Box shadow. <%= one_of([true, :medium, :large, :extra_large, :none]) %>
82
+ # @param border [Symbol] <%= one_of([:left, :top, :bottom, :right, :y, :x]) %>
83
+ # @param border_color [Symbol] <%= one_of([:blue, :blue_light, :gray, :gray_dark, :green, :purple, :red, :red_light, :white, :yellow, :black_fade]) %> Note: this API is subject to change as we move to functional colors.
84
+ # @param border_top [Integer] Set to `0` to remove the top border.
85
+ # @param border_bottom [Integer] Set to `0` to remove the bottom border.
86
+ # @param border_left [Integer] Set to `0` to remove the left border.
87
+ # @param border_right [Integer] Set to `0` to remove the right border.
88
+ #
89
+ # @param font_size [String, Integer] <%= one_of(["00", 0, 1, 2, 3, 4, 5, 6]) %>
90
+ # @param text_align [Symbol] Text alignment. <%= one_of([:left, :right, :center]) %>
91
+ # @param font_weight [Symbol] Font weight. <%= one_of([:light, :normal, :bold]) %>
92
+ #
93
+ # @param flex [Integer, Symbol] <%= one_of([1, :auto]) %>
94
+ # @param flex_grow [Integer] To enable, set to `0`.
95
+ # @param flex_shrink [Integer] To enable, set to `0`.
96
+ # @param align_self [Symbol] <%= one_of([:auto, :start, :end, :center, :baseline, :stretch]) %>
97
+ # @param justify_content [Symbol] <%= one_of([:flex_start, :flex_end, :center, :space_between, :space_around]) %>
98
+ # @param align_items [Symbol] <%= one_of([:flex_start, :flex_end, :center, :baseline, :stretch]) %>
99
+ # @param width [Symbol] <%= one_of([:fit, :fill]) %>
100
+ # @param height [Symbol] <%= one_of([:fit, :fill]) %>
8
101
  #
9
- # @example 34|Default
10
- # <%= render(Primer::BaseComponent.new(tag: :a, href: "http://www.google.com", mt: 4)) { "Link" } %>
102
+ # @param word_break [Symbol] Whether to break words on line breaks. Can only be `:break_all`.
11
103
  #
12
- # @param tag [Symbol] HTML tag name to be passed to tag.send(tag)
13
- # @param classes [String] CSS class name value to be concatenated with generated Primer CSS classes
14
- def initialize(tag:, classes: nil, **args)
104
+ # @param tag [Symbol] HTML tag name to be passed to `tag.send`.
105
+ # @param classes [String] CSS class name value to be concatenated with generated Primer CSS classes.
106
+ def initialize(tag:, classes: nil, **system_arguments)
15
107
  @tag = tag
16
- @result = Primer::Classify.call(**args.merge(classes: classes))
108
+ @result = Primer::Classify.call(**system_arguments.merge(classes: classes))
17
109
 
18
110
  # Filter out Primer keys so they don't get assigned as HTML attributes
19
- @content_tag_args = add_test_selector(args).except(*Primer::Classify::VALID_KEYS)
111
+ @content_tag_args = add_test_selector(system_arguments).except(*Primer::Classify::VALID_KEYS)
20
112
  end
21
113
 
22
114
  def call
@@ -1,4 +1,4 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <% if @icon.present? %>
3
3
  <%= render(Primer::OcticonComponent.new(
4
4
  icon: @icon,
@@ -56,7 +56,7 @@ module Primer
56
56
  # @param title [String] Text that appears in a larger bold font.
57
57
  # @param title_tag [Symbol] HTML tag to use for title.
58
58
  # @param icon [String] Octicon icon to use at top of component.
59
- # @param icon_size [Symbol] One of <%= Primer::OcticonComponent::SIZE_MAPPINGS.keys.map { |k| "`:#{k}`" }.to_sentence %>
59
+ # @param icon_size [Symbol] <%= one_of(Primer::OcticonComponent::SIZE_MAPPINGS) %>
60
60
  # @param image_src [String] Image to display.
61
61
  # @param image_alt [String] Alt text for image.
62
62
  # @param description [String] Text that appears below the title. Typically a whole sentence.
@@ -87,12 +87,12 @@ module Primer
87
87
  large: false,
88
88
  spacious: false,
89
89
 
90
- **kwargs
90
+ **system_arguments
91
91
  )
92
- @kwargs = kwargs
93
- @kwargs[:tag] ||= :div
94
- @kwargs[:classes] = class_names(
95
- @kwargs[:classes],
92
+ @system_arguments = system_arguments
93
+ @system_arguments[:tag] ||= :div
94
+ @system_arguments[:classes] = class_names(
95
+ @system_arguments[:classes],
96
96
  "blankslate",
97
97
  "blankslate-narrow": narrow,
98
98
  "blankslate-large": large,
@@ -1,25 +1,25 @@
1
- <%= render Primer::BaseComponent.new(**@kwargs) do %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <% if header %>
3
- <%= render Primer::BaseComponent.new(**header.kwargs) do %>
3
+ <%= render Primer::BaseComponent.new(**header.system_arguments) do %>
4
4
  <%= header.content %>
5
5
  <% end %>
6
6
  <% end %>
7
7
  <% if body %>
8
- <%= render Primer::BaseComponent.new(**body.kwargs) do %>
8
+ <%= render Primer::BaseComponent.new(**body.system_arguments) do %>
9
9
  <%= body.content %>
10
10
  <% end %>
11
11
  <% end %>
12
12
  <% if rows.any? %>
13
13
  <ul>
14
14
  <% rows.each do |row| %>
15
- <%= render Primer::BaseComponent.new(**row.kwargs) do %>
15
+ <%= render Primer::BaseComponent.new(**row.system_arguments) do %>
16
16
  <%= row.content %>
17
17
  <% end %>
18
18
  <% end %>
19
19
  </ul>
20
20
  <% end %>
21
21
  <% if footer %>
22
- <%= render Primer::BaseComponent.new(**footer.kwargs) do %>
22
+ <%= render Primer::BaseComponent.new(**footer.system_arguments) do %>
23
23
  <%= footer.content %>
24
24
  <% end %>
25
25
  <% end %>