primer_view_components 0.0.54 → 0.0.55
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +37 -0
- data/app/components/primer/alpha/tab_nav.html.erb +11 -0
- data/app/components/primer/alpha/tab_nav.rb +130 -0
- data/app/components/primer/{tab_nav_component.html.erb → alpha/tab_panels.html.erb} +3 -8
- data/app/components/primer/alpha/tab_panels.rb +82 -0
- data/app/components/primer/alpha/underline_nav.rb +1 -7
- data/app/components/primer/alpha/underline_panels.html.erb +1 -1
- data/app/components/primer/base_component.rb +1 -1
- data/app/components/primer/beta/breadcrumbs.html.erb +2 -1
- data/app/components/primer/beta/breadcrumbs.rb +15 -13
- data/app/components/primer/navigation/tab_component.rb +2 -2
- data/app/components/primer/octicon_component.rb +6 -1
- data/app/components/primer/tab_container_component.rb +1 -1
- data/app/lib/primer/class_name_helper.rb +14 -13
- data/app/lib/primer/octicon/cache.rb +10 -2
- data/app/lib/primer/tab_nav_helper.rb +35 -0
- data/app/lib/primer/tabbed_component_helper.rb +3 -3
- data/lib/primer/classify/cache.rb +0 -6
- data/lib/primer/classify/utilities.rb +1 -1
- data/lib/primer/classify/utilities.yml +35 -0
- data/lib/primer/classify.rb +0 -5
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/rubocop/cop/primer/base_cop.rb +28 -0
- data/lib/rubocop/cop/primer/deprecated_arguments.rb +1 -15
- data/lib/rubocop/cop/primer/system_argument_instead_of_class.rb +1 -15
- data/lib/tasks/docs.rake +5 -5
- data/lib/tasks/utilities.rake +2 -0
- data/static/arguments.yml +29 -36
- data/static/classes.yml +1 -0
- data/static/constants.json +16 -17
- data/static/statuses.json +2 -1
- metadata +22 -5
- data/app/components/primer/tab_nav_component.rb +0 -151
- data/lib/primer/classify/functional_text_colors.rb +0 -64
@@ -41,7 +41,12 @@ module Primer
|
|
41
41
|
system_arguments.delete(:width)
|
42
42
|
end
|
43
43
|
|
44
|
-
cache_key = Primer::Octicon::Cache.get_key(
|
44
|
+
cache_key = Primer::Octicon::Cache.get_key(
|
45
|
+
symbol: icon_key,
|
46
|
+
size: size,
|
47
|
+
height: system_arguments[:height],
|
48
|
+
width: system_arguments[:width]
|
49
|
+
)
|
45
50
|
|
46
51
|
@system_arguments = system_arguments
|
47
52
|
@system_arguments[:tag] = :svg
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Primer
|
4
4
|
# Use `TabContainer` to create tabbed content with keyboard support. This component does not add any styles.
|
5
|
-
# It only provides the tab functionality. If you want styled Tabs you can look at <%= link_to_component(Primer::
|
5
|
+
# It only provides the tab functionality. If you want styled Tabs you can look at <%= link_to_component(Primer::Alpha::TabNav) %>.
|
6
6
|
#
|
7
7
|
# This component requires javascript.
|
8
8
|
class TabContainerComponent < Primer::Component
|
@@ -7,22 +7,23 @@ module Primer
|
|
7
7
|
# :nodoc:
|
8
8
|
module ClassNameHelper
|
9
9
|
def class_names(*args)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
10
|
+
[].tap do |classes|
|
11
|
+
args.each do |class_name|
|
12
|
+
case class_name
|
13
|
+
when String
|
14
|
+
classes << class_name if class_name.present?
|
15
|
+
when Hash
|
16
|
+
class_name.each do |key, val|
|
17
|
+
classes << key if val
|
18
|
+
end
|
19
|
+
when Array
|
20
|
+
classes << class_names(*class_name).presence
|
19
21
|
end
|
20
|
-
when Array
|
21
|
-
classes << class_names(*class_name).presence
|
22
22
|
end
|
23
|
-
end
|
24
23
|
|
25
|
-
|
24
|
+
classes.compact!
|
25
|
+
classes.uniq!
|
26
|
+
end.join(" ")
|
26
27
|
end
|
27
28
|
end
|
28
29
|
end
|
@@ -9,8 +9,9 @@ module Primer
|
|
9
9
|
PRELOADED_ICONS = [:alert, :check, :"chevron-down", :paste, :clock, :"dot-fill", :info, :"kebab-horizontal", :link, :lock, :mail, :pencil, :plus, :question, :repo, :search, :"shield-lock", :star, :trash, :x].freeze
|
10
10
|
|
11
11
|
class << self
|
12
|
-
def get_key(
|
13
|
-
|
12
|
+
def get_key(**kwargs)
|
13
|
+
correct_key_args?(**kwargs)
|
14
|
+
kwargs.hash
|
14
15
|
end
|
15
16
|
|
16
17
|
def read(key)
|
@@ -36,6 +37,13 @@ module Primer
|
|
36
37
|
def preload!
|
37
38
|
PRELOADED_ICONS.each { |icon| Primer::OcticonComponent.new(icon: icon) }
|
38
39
|
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def correct_key_args?(symbol:, size:, width: nil, height: nil)
|
44
|
+
# This method does nothing but will raise an ArgumentError if the
|
45
|
+
# wrong args are passed.
|
46
|
+
end
|
39
47
|
end
|
40
48
|
end
|
41
49
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/concern"
|
4
|
+
|
5
|
+
module Primer
|
6
|
+
# Helper to share tab validation logic between components.
|
7
|
+
# The component will raise an error if there are 0 or 2+ selected tabs.
|
8
|
+
module TabNavHelper
|
9
|
+
extend ActiveSupport::Concern
|
10
|
+
|
11
|
+
EXTRA_ALIGN_DEFAULT = :left
|
12
|
+
EXTRA_ALIGN_OPTIONS = [EXTRA_ALIGN_DEFAULT, :right].freeze
|
13
|
+
|
14
|
+
def tab_nav_tab_classes(classes)
|
15
|
+
class_names(
|
16
|
+
"tabnav-tab",
|
17
|
+
classes
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def tab_nav_classes(classes)
|
22
|
+
class_names(
|
23
|
+
"tabnav",
|
24
|
+
classes
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def tab_nav_body_classes(classes)
|
29
|
+
class_names(
|
30
|
+
"tabnav-tabs",
|
31
|
+
classes
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -16,11 +16,11 @@ module Primer
|
|
16
16
|
|
17
17
|
private
|
18
18
|
|
19
|
-
def
|
20
|
-
|
19
|
+
def aria_label_for_page_nav(label)
|
20
|
+
@system_arguments[:tag] == :nav ? @system_arguments[:"aria-label"] = label : @body_arguments[:"aria-label"] = label
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
23
|
+
def tab_container_wrapper(with_panel:, **system_arguments)
|
24
24
|
return yield unless with_panel
|
25
25
|
|
26
26
|
render Primer::TabContainerComponent.new(**system_arguments) do
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require_relative "flex"
|
4
4
|
require_relative "functional_background_colors"
|
5
5
|
require_relative "functional_border_colors"
|
6
|
-
require_relative "functional_text_colors"
|
7
6
|
require_relative "grid"
|
8
7
|
|
9
8
|
module Primer
|
@@ -55,11 +54,6 @@ module Primer
|
|
55
54
|
values: Primer::Classify::Grid::COL_VALUES
|
56
55
|
)
|
57
56
|
|
58
|
-
preload(
|
59
|
-
keys: [Primer::Classify::COLOR_KEY],
|
60
|
-
values: Primer::Classify::FunctionalTextColors::OPTIONS
|
61
|
-
)
|
62
|
-
|
63
57
|
preload(
|
64
58
|
keys: [Primer::Classify::BG_KEY],
|
65
59
|
values: Primer::Classify::FunctionalBackgroundColors::OPTIONS
|
@@ -175,7 +175,7 @@ module Primer
|
|
175
175
|
unless supported_value?(key, val)
|
176
176
|
raise ArgumentError, "#{val} is not a valid value for :#{key}. Use one of #{mappings(key)}" unless ENV["RAILS_ENV"] == "production"
|
177
177
|
|
178
|
-
return ""
|
178
|
+
return "#{key.to_s.dasherize}-#{val.to_s.dasherize}"
|
179
179
|
end
|
180
180
|
|
181
181
|
nil
|
@@ -22,6 +22,39 @@
|
|
22
22
|
- anim-hover-grow
|
23
23
|
:rotate:
|
24
24
|
- anim-rotate
|
25
|
+
:color:
|
26
|
+
:text_primary:
|
27
|
+
- color-text-primary
|
28
|
+
:text_secondary:
|
29
|
+
- color-text-secondary
|
30
|
+
:text_tertiary:
|
31
|
+
- color-text-tertiary
|
32
|
+
:text_link:
|
33
|
+
- color-text-link
|
34
|
+
:text_success:
|
35
|
+
- color-text-success
|
36
|
+
:text_warning:
|
37
|
+
- color-text-warning
|
38
|
+
:text_danger:
|
39
|
+
- color-text-danger
|
40
|
+
:text_inverse:
|
41
|
+
- color-text-inverse
|
42
|
+
:text_white:
|
43
|
+
- color-text-white
|
44
|
+
:icon_primary:
|
45
|
+
- color-icon-primary
|
46
|
+
:icon_secondary:
|
47
|
+
- color-icon-secondary
|
48
|
+
:icon_tertiary:
|
49
|
+
- color-icon-tertiary
|
50
|
+
:icon_info:
|
51
|
+
- color-icon-info
|
52
|
+
:icon_danger:
|
53
|
+
- color-icon-danger
|
54
|
+
:icon_success:
|
55
|
+
- color-icon-success
|
56
|
+
:icon_warning:
|
57
|
+
- color-icon-warning
|
25
58
|
:position:
|
26
59
|
:static:
|
27
60
|
- position-static
|
@@ -1220,6 +1253,8 @@
|
|
1220
1253
|
- py-lg-12
|
1221
1254
|
- py-xl-12
|
1222
1255
|
:word_break:
|
1256
|
+
:break_word:
|
1257
|
+
- wb-break-word
|
1223
1258
|
:break_all:
|
1224
1259
|
- wb-break-all
|
1225
1260
|
:display:
|
data/lib/primer/classify.rb
CHANGED
@@ -4,7 +4,6 @@ require_relative "classify/cache"
|
|
4
4
|
require_relative "classify/flex"
|
5
5
|
require_relative "classify/functional_background_colors"
|
6
6
|
require_relative "classify/functional_border_colors"
|
7
|
-
require_relative "classify/functional_text_colors"
|
8
7
|
require_relative "classify/grid"
|
9
8
|
require_relative "classify/utilities"
|
10
9
|
require_relative "classify/validation"
|
@@ -15,7 +14,6 @@ module Primer
|
|
15
14
|
# Keys where we can simply translate { key: value } into ".key-value"
|
16
15
|
CONCAT_KEYS = %i[text box_shadow].freeze
|
17
16
|
|
18
|
-
COLOR_KEY = :color
|
19
17
|
BG_KEY = :bg
|
20
18
|
TEXT_KEYS = %i[font_family font_style font_weight text_align text_transform].freeze
|
21
19
|
BOX_SHADOW_KEY = :box_shadow
|
@@ -88,7 +86,6 @@ module Primer
|
|
88
86
|
BORDER_KEY,
|
89
87
|
BORDER_COLOR_KEY,
|
90
88
|
BORDER_RADIUS_KEY,
|
91
|
-
COLOR_KEY,
|
92
89
|
BG_KEY,
|
93
90
|
BOX_SHADOW_KEY,
|
94
91
|
CONTAINER_KEY
|
@@ -176,8 +173,6 @@ module Primer
|
|
176
173
|
else
|
177
174
|
memo[:classes] << Primer::Classify::FunctionalBackgroundColors.color(val)
|
178
175
|
end
|
179
|
-
elsif key == COLOR_KEY
|
180
|
-
memo[:classes] << Primer::Classify::FunctionalTextColors.color(val)
|
181
176
|
elsif key == BORDER_KEY
|
182
177
|
border_value = if val == true
|
183
178
|
"border"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rubocop"
|
4
|
+
require "primer/view_components/statuses"
|
5
|
+
require_relative "../../../../app/lib/primer/view_helper"
|
6
|
+
|
7
|
+
module RuboCop
|
8
|
+
module Cop
|
9
|
+
module Primer
|
10
|
+
# :nodoc:
|
11
|
+
class BaseCop < RuboCop::Cop::Cop
|
12
|
+
# We only verify SystemArguments if it's a `.new` call on a component or
|
13
|
+
# a ViewHeleper call.
|
14
|
+
def valid_node?(node)
|
15
|
+
return if node.nil?
|
16
|
+
|
17
|
+
view_helpers.include?(node.method_name) || (node.method_name == :new && !node.receiver.nil? && ::Primer::ViewComponents::STATUSES.key?(node.receiver.const_name))
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def view_helpers
|
23
|
+
::Primer::ViewHelper::HELPERS.keys.map { |key| "primer_#{key}".to_sym }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "rubocop"
|
4
|
-
require "primer/view_components/statuses"
|
5
|
-
require_relative "../../../../app/lib/primer/view_helper"
|
6
4
|
|
7
5
|
# :nocov:
|
8
6
|
module RuboCop
|
@@ -15,7 +13,7 @@ module RuboCop
|
|
15
13
|
#
|
16
14
|
# good
|
17
15
|
# Component.new(foo: :bar)
|
18
|
-
class DeprecatedArguments <
|
16
|
+
class DeprecatedArguments < BaseCop
|
19
17
|
INVALID_MESSAGE = <<~STR
|
20
18
|
Avoid using deprecated arguments: https://primer.style/view-components/deprecated.
|
21
19
|
STR
|
@@ -259,18 +257,6 @@ module RuboCop
|
|
259
257
|
corrector.replace(node, replacement) if replacement.present?
|
260
258
|
end
|
261
259
|
end
|
262
|
-
|
263
|
-
private
|
264
|
-
|
265
|
-
# We only verify SystemArguments if it's a `.new` call on a component or
|
266
|
-
# a ViewHleper call.
|
267
|
-
def valid_node?(node)
|
268
|
-
view_helpers.include?(node.method_name) || (node.method_name == :new && ::Primer::ViewComponents::STATUSES.key?(node.receiver.const_name))
|
269
|
-
end
|
270
|
-
|
271
|
-
def view_helpers
|
272
|
-
::Primer::ViewHelper::HELPERS.keys.map { |key| "primer_#{key}".to_sym }
|
273
|
-
end
|
274
260
|
end
|
275
261
|
end
|
276
262
|
end
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
require "rubocop"
|
4
4
|
require "primer/classify/utilities"
|
5
|
-
require "primer/view_components/statuses"
|
6
|
-
require_relative "../../../../app/lib/primer/view_helper"
|
7
5
|
|
8
6
|
# :nocov:
|
9
7
|
module RuboCop
|
@@ -16,7 +14,7 @@ module RuboCop
|
|
16
14
|
#
|
17
15
|
# good
|
18
16
|
# Component.new(mr: 1)
|
19
|
-
class SystemArgumentInsteadOfClass <
|
17
|
+
class SystemArgumentInsteadOfClass < BaseCop
|
20
18
|
INVALID_MESSAGE = <<~STR
|
21
19
|
Avoid using CSS classes when you can use System Arguments: https://primer.style/view-components/system-arguments.
|
22
20
|
STR
|
@@ -53,18 +51,6 @@ module RuboCop
|
|
53
51
|
corrector.replace(node.loc.expression, args)
|
54
52
|
end
|
55
53
|
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
# We only verify SystemArguments if it's a `.new` call on a component or
|
60
|
-
# a ViewHleper call.
|
61
|
-
def valid_node?(node)
|
62
|
-
view_helpers.include?(node.method_name) || (node.method_name == :new && ::Primer::ViewComponents::STATUSES.key?(node.receiver.const_name))
|
63
|
-
end
|
64
|
-
|
65
|
-
def view_helpers
|
66
|
-
::Primer::ViewHelper::HELPERS.keys.map { |key| "primer_#{key}".to_sym }
|
67
|
-
end
|
68
54
|
end
|
69
55
|
end
|
70
56
|
end
|
data/lib/tasks/docs.rake
CHANGED
@@ -68,7 +68,6 @@ namespace :docs do
|
|
68
68
|
Primer::SpinnerComponent,
|
69
69
|
Primer::SubheadComponent,
|
70
70
|
Primer::TabContainerComponent,
|
71
|
-
Primer::TabNavComponent,
|
72
71
|
Primer::Beta::Text,
|
73
72
|
Primer::TimeAgoComponent,
|
74
73
|
Primer::TimelineItemComponent,
|
@@ -76,7 +75,8 @@ namespace :docs do
|
|
76
75
|
Primer::Truncate,
|
77
76
|
Primer::Beta::Truncate,
|
78
77
|
Primer::Alpha::UnderlineNav,
|
79
|
-
Primer::Alpha::
|
78
|
+
Primer::Alpha::TabNav,
|
79
|
+
Primer::Alpha::TabPanels
|
80
80
|
]
|
81
81
|
|
82
82
|
js_components = [
|
@@ -86,9 +86,9 @@ namespace :docs do
|
|
86
86
|
Primer::Beta::AutoComplete,
|
87
87
|
Primer::ClipboardCopy,
|
88
88
|
Primer::TabContainerComponent,
|
89
|
-
Primer::TabNavComponent,
|
90
89
|
Primer::TimeAgoComponent,
|
91
|
-
Primer::Alpha::UnderlinePanels
|
90
|
+
Primer::Alpha::UnderlinePanels,
|
91
|
+
Primer::Alpha::TabPanels
|
92
92
|
]
|
93
93
|
|
94
94
|
all_components = Primer::Component.descendants - [Primer::BaseComponent]
|
@@ -206,7 +206,7 @@ namespace :docs do
|
|
206
206
|
f.puts
|
207
207
|
f.puts("### `#{slot_documentation.name.to_s.capitalize}`")
|
208
208
|
|
209
|
-
if slot_documentation.base_docstring.present?
|
209
|
+
if slot_documentation.base_docstring.to_s.present?
|
210
210
|
f.puts
|
211
211
|
f.puts(view_context.render(inline: slot_documentation.base_docstring))
|
212
212
|
end
|
data/lib/tasks/utilities.rake
CHANGED
data/static/arguments.yml
CHANGED
@@ -22,8 +22,8 @@
|
|
22
22
|
type: Hash
|
23
23
|
default: N/A
|
24
24
|
description: "[System arguments](/system-arguments)"
|
25
|
-
- component:
|
26
|
-
source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/
|
25
|
+
- component: TabNav
|
26
|
+
source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/tab_nav.rb
|
27
27
|
parameters:
|
28
28
|
- name: tag
|
29
29
|
type: Symbol
|
@@ -34,10 +34,6 @@
|
|
34
34
|
default: N/A
|
35
35
|
description: Sets an `aria-label` that helps assistive technology users understand
|
36
36
|
the purpose of the links, and distinguish it from similar elements.
|
37
|
-
- name: align
|
38
|
-
type: Symbol
|
39
|
-
default: "`:left`"
|
40
|
-
description: One of `:left` and `:right`. - Defaults to left
|
41
37
|
- name: body_arguments
|
42
38
|
type: Hash
|
43
39
|
default: "`{}`"
|
@@ -46,8 +42,8 @@
|
|
46
42
|
type: Hash
|
47
43
|
default: N/A
|
48
44
|
description: "[System arguments](/system-arguments)"
|
49
|
-
- component:
|
50
|
-
source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/
|
45
|
+
- component: TabPanels
|
46
|
+
source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/tab_panels.rb
|
51
47
|
parameters:
|
52
48
|
- name: label
|
53
49
|
type: String
|
@@ -56,7 +52,7 @@
|
|
56
52
|
the purpose of the tabs.
|
57
53
|
- name: align
|
58
54
|
type: Symbol
|
59
|
-
default:
|
55
|
+
default: N/A
|
60
56
|
description: One of `:left` and `:right`. - Defaults to left
|
61
57
|
- name: body_arguments
|
62
58
|
type: Hash
|
@@ -70,6 +66,30 @@
|
|
70
66
|
type: Hash
|
71
67
|
default: N/A
|
72
68
|
description: "[System arguments](/system-arguments)"
|
69
|
+
- component: UnderlineNav
|
70
|
+
source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/underline_nav.rb
|
71
|
+
parameters:
|
72
|
+
- name: tag
|
73
|
+
type: Symbol
|
74
|
+
default: "`:nav`"
|
75
|
+
description: One of `:div` and `:nav`.
|
76
|
+
- name: label
|
77
|
+
type: String
|
78
|
+
default: N/A
|
79
|
+
description: Sets an `aria-label` that helps assistive technology users understand
|
80
|
+
the purpose of the links, and distinguish it from similar elements.
|
81
|
+
- name: align
|
82
|
+
type: Symbol
|
83
|
+
default: "`:left`"
|
84
|
+
description: One of `:left` and `:right`. - Defaults to left
|
85
|
+
- name: body_arguments
|
86
|
+
type: Hash
|
87
|
+
default: "`{}`"
|
88
|
+
description: "[System arguments](/system-arguments) for the body wrapper."
|
89
|
+
- name: system_arguments
|
90
|
+
type: Hash
|
91
|
+
default: N/A
|
92
|
+
description: "[System arguments](/system-arguments)"
|
73
93
|
- component: BaseButton
|
74
94
|
source: https://github.com/primer/view_components/tree/main/app/components/primer/base_button.rb
|
75
95
|
parameters:
|
@@ -886,33 +906,6 @@
|
|
886
906
|
type: Hash
|
887
907
|
default: N/A
|
888
908
|
description: "[System arguments](/system-arguments)"
|
889
|
-
- component: TabNav
|
890
|
-
source: https://github.com/primer/view_components/tree/main/app/components/primer/tab_nav_component.rb
|
891
|
-
parameters:
|
892
|
-
- name: label
|
893
|
-
type: String
|
894
|
-
default: N/A
|
895
|
-
description: Used to set the `aria-label` on the top level `<nav>` element.
|
896
|
-
- name: with_panel
|
897
|
-
type: Boolean
|
898
|
-
default: "`false`"
|
899
|
-
description: Whether the TabNav should navigate through pages or panels. When
|
900
|
-
true, [TabContainer](/components/tabcontainer) is rendered along with JavaScript
|
901
|
-
behavior. Additionally, the `tab` slot will render as a button as opposed to
|
902
|
-
an anchor.
|
903
|
-
- name: body_arguments
|
904
|
-
type: Hash
|
905
|
-
default: "`{}`"
|
906
|
-
description: "[System arguments](/system-arguments) for the body wrapper."
|
907
|
-
- name: wrapper_arguments
|
908
|
-
type: Hash
|
909
|
-
default: "`{}`"
|
910
|
-
description: "[System arguments](/system-arguments) for the `TabContainer` wrapper.
|
911
|
-
Only applies if `with_panel` is `true`."
|
912
|
-
- name: system_arguments
|
913
|
-
type: Hash
|
914
|
-
default: N/A
|
915
|
-
description: "[System arguments](/system-arguments)"
|
916
909
|
- component: TimeAgo
|
917
910
|
source: https://github.com/primer/view_components/tree/main/app/components/primer/time_ago_component.rb
|
918
911
|
parameters:
|