primer_view_components 0.0.51 → 0.0.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +159 -0
  3. data/app/components/primer/alpha/tab_nav.html.erb +11 -0
  4. data/app/components/primer/alpha/tab_nav.rb +130 -0
  5. data/app/components/primer/{tab_nav_component.html.erb → alpha/tab_panels.html.erb} +3 -8
  6. data/app/components/primer/alpha/tab_panels.rb +82 -0
  7. data/app/components/primer/alpha/underline_nav.html.erb +15 -0
  8. data/app/components/primer/alpha/underline_nav.rb +137 -0
  9. data/app/components/primer/{underline_nav_component.html.erb → alpha/underline_panels.html.erb} +3 -8
  10. data/app/components/primer/alpha/underline_panels.rb +86 -0
  11. data/app/components/primer/base_component.rb +1 -1
  12. data/app/components/primer/beta/avatar_stack.rb +9 -9
  13. data/app/components/primer/{breadcrumb_component.html.erb → beta/breadcrumbs.html.erb} +2 -1
  14. data/app/components/primer/beta/breadcrumbs.rb +61 -0
  15. data/app/components/primer/beta/truncate.html.erb +5 -0
  16. data/app/components/primer/beta/truncate.rb +110 -0
  17. data/app/components/primer/border_box_component.rb +27 -1
  18. data/app/components/primer/clipboard_copy.rb +1 -1
  19. data/app/components/primer/dropdown.rb +7 -7
  20. data/app/components/primer/icon_button.rb +1 -1
  21. data/app/components/primer/navigation/tab_component.rb +8 -6
  22. data/app/components/primer/octicon_component.rb +6 -1
  23. data/app/components/primer/progress_bar_component.rb +0 -3
  24. data/app/components/primer/tab_container_component.rb +1 -1
  25. data/app/lib/primer/class_name_helper.rb +14 -13
  26. data/app/lib/primer/fetch_or_fallback_helper.rb +2 -0
  27. data/app/lib/primer/octicon/cache.rb +10 -2
  28. data/app/lib/primer/tab_nav_helper.rb +35 -0
  29. data/app/lib/primer/tabbed_component_helper.rb +5 -5
  30. data/app/lib/primer/underline_nav_helper.rb +44 -0
  31. data/app/lib/primer/view_helper.rb +1 -0
  32. data/lib/primer/classify/cache.rb +0 -6
  33. data/lib/primer/classify/flex.rb +1 -1
  34. data/lib/primer/classify/functional_colors.rb +1 -1
  35. data/lib/primer/classify/utilities.rb +17 -2
  36. data/lib/primer/classify/utilities.yml +35 -0
  37. data/lib/primer/classify/validation.rb +18 -0
  38. data/lib/primer/classify.rb +4 -13
  39. data/lib/primer/view_components/constants.rb +1 -1
  40. data/lib/primer/view_components/linters/argument_mappers/base.rb +34 -8
  41. data/lib/primer/view_components/linters/argument_mappers/button.rb +5 -6
  42. data/lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb +4 -3
  43. data/lib/primer/view_components/linters/argument_mappers/close_button.rb +43 -0
  44. data/lib/primer/view_components/linters/argument_mappers/flash.rb +32 -0
  45. data/lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb +48 -5
  46. data/lib/primer/view_components/linters/argument_mappers/label.rb +3 -4
  47. data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +5 -7
  48. data/lib/primer/view_components/linters/autocorrectable.rb +6 -4
  49. data/lib/primer/view_components/linters/{helpers.rb → base_linter.rb} +69 -29
  50. data/lib/primer/view_components/linters/button_component_migration_counter.rb +4 -3
  51. data/lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb +3 -4
  52. data/lib/primer/view_components/linters/close_button_component_migration_counter.rb +110 -3
  53. data/lib/primer/view_components/linters/flash_component_migration_counter.rb +18 -3
  54. data/lib/primer/view_components/linters/label_component_migration_counter.rb +2 -3
  55. data/lib/primer/view_components/version.rb +1 -1
  56. data/lib/rubocop/config/default.yml +5 -0
  57. data/lib/rubocop/cop/primer/base_cop.rb +28 -0
  58. data/lib/rubocop/cop/primer/deprecated_arguments.rb +263 -0
  59. data/lib/rubocop/cop/primer/no_tag_memoize.rb +1 -0
  60. data/lib/rubocop/cop/primer/primer_octicon.rb +178 -0
  61. data/lib/rubocop/cop/primer/system_argument_instead_of_class.rb +4 -32
  62. data/lib/rubocop/cop/primer.rb +1 -2
  63. data/lib/tasks/coverage.rake +4 -0
  64. data/lib/tasks/docs.rake +10 -8
  65. data/lib/tasks/utilities.rake +7 -3
  66. data/lib/yard/docs_helper.rb +6 -3
  67. data/static/arguments.yml +82 -64
  68. data/static/classes.yml +10 -0
  69. data/static/constants.json +44 -30
  70. data/static/statuses.json +10 -6
  71. metadata +57 -18
  72. data/app/components/primer/auto_complete/auto_component.d.ts +0 -1
  73. data/app/components/primer/auto_complete/auto_component.js +0 -1
  74. data/app/components/primer/breadcrumb_component.rb +0 -57
  75. data/app/components/primer/tab_nav_component.rb +0 -151
  76. data/app/components/primer/underline_nav_component.rb +0 -187
  77. data/lib/primer/classify/functional_text_colors.rb +0 -64
@@ -2,9 +2,8 @@
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
 
6
+ # :nocov:
8
7
  module RuboCop
9
8
  module Cop
10
9
  module Primer
@@ -15,7 +14,7 @@ module RuboCop
15
14
  #
16
15
  # good
17
16
  # Component.new(mr: 1)
18
- class SystemArgumentInsteadOfClass < RuboCop::Cop::Cop
17
+ class SystemArgumentInsteadOfClass < BaseCop
19
18
  INVALID_MESSAGE = <<~STR
20
19
  Avoid using CSS classes when you can use System Arguments: https://primer.style/view-components/system-arguments.
21
20
  STR
@@ -48,37 +47,10 @@ module RuboCop
48
47
 
49
48
  def autocorrect(node)
50
49
  lambda do |corrector|
51
- system_arguments = ::Primer::Classify::Utilities.classes_to_hash(node.value.value)
52
- corrector.replace(node.loc.expression, arguments_as_string(system_arguments))
50
+ args = ::Primer::Classify::Utilities.classes_to_args(node.value.value)
51
+ corrector.replace(node.loc.expression, args)
53
52
  end
54
53
  end
55
-
56
- private
57
-
58
- # We only verify SystemArguments if it's a `.new` call on a component or
59
- # a ViewHleper call.
60
- def valid_node?(node)
61
- view_helpers.include?(node.method_name) || (node.method_name == :new && ::Primer::ViewComponents::STATUSES.key?(node.receiver.const_name))
62
- end
63
-
64
- def view_helpers
65
- ::Primer::ViewHelper::HELPERS.keys.map { |key| "primer_#{key}".to_sym }
66
- end
67
-
68
- def arguments_as_string(system_arguments)
69
- system_arguments.map do |key, value|
70
- val = case value
71
- when Symbol
72
- ":#{value}"
73
- when String
74
- value.to_json
75
- else
76
- value
77
- end
78
-
79
- "#{key}: #{val}"
80
- end.join(", ")
81
- end
82
54
  end
83
55
  end
84
56
  end
@@ -1,4 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rubocop/cop/primer/no_tag_memoize"
4
- require "rubocop/cop/primer/system_argument_instead_of_class"
3
+ Dir[File.join(__dir__, "primer", "*.rb")].sort.each { |file| require file }
@@ -9,6 +9,10 @@ namespace :coverage do
9
9
 
10
10
  SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"], "rails" do
11
11
  formatter SimpleCov::Formatter::Console
12
+
13
+ add_group "Ignored Code" do |src_file|
14
+ File.readlines(src_file.filename).grep(/:nocov:/).any?
15
+ end
12
16
  end
13
17
  end
14
18
  end
data/lib/tasks/docs.rake CHANGED
@@ -40,7 +40,7 @@ namespace :docs do
40
40
  Primer::BlankslateComponent,
41
41
  Primer::BorderBoxComponent,
42
42
  Primer::BoxComponent,
43
- Primer::BreadcrumbComponent,
43
+ Primer::Beta::Breadcrumbs,
44
44
  Primer::ButtonComponent,
45
45
  Primer::ButtonGroup,
46
46
  Primer::Alpha::ButtonMarketing,
@@ -68,13 +68,15 @@ 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,
75
74
  Primer::Tooltip,
76
75
  Primer::Truncate,
77
- Primer::UnderlineNavComponent
76
+ Primer::Beta::Truncate,
77
+ Primer::Alpha::UnderlineNav,
78
+ Primer::Alpha::TabNav,
79
+ Primer::Alpha::TabPanels
78
80
  ]
79
81
 
80
82
  js_components = [
@@ -84,9 +86,9 @@ namespace :docs do
84
86
  Primer::Beta::AutoComplete,
85
87
  Primer::ClipboardCopy,
86
88
  Primer::TabContainerComponent,
87
- Primer::TabNavComponent,
88
89
  Primer::TimeAgoComponent,
89
- Primer::UnderlineNavComponent
90
+ Primer::Alpha::UnderlinePanels,
91
+ Primer::Alpha::TabPanels
90
92
  ]
91
93
 
92
94
  all_components = Primer::Component.descendants - [Primer::BaseComponent]
@@ -204,7 +206,7 @@ namespace :docs do
204
206
  f.puts
205
207
  f.puts("### `#{slot_documentation.name.to_s.capitalize}`")
206
208
 
207
- if slot_documentation.base_docstring.present?
209
+ if slot_documentation.base_docstring.to_s.present?
208
210
  f.puts
209
211
  f.puts(view_context.render(inline: slot_documentation.base_docstring))
210
212
  end
@@ -238,7 +240,7 @@ namespace :docs do
238
240
  f.puts
239
241
  html = view_context.render(inline: code)
240
242
  html.scan(/class="([^"]*)"/) do |classnames|
241
- classes_found_in_examples.concat(classnames[0].split(" ").reject { |c| c.starts_with?("octicon", "js", "my-") }.map { ".#{_1}"})
243
+ classes_found_in_examples.concat(classnames[0].split.reject { |c| c.starts_with?("octicon", "js", "my-") }.map { ".#{_1}" })
242
244
  end
243
245
  f.puts("<Example src=\"#{html.tr('"', "\'").delete("\n")}\" />")
244
246
  f.puts
@@ -382,7 +384,7 @@ namespace :docs do
382
384
  end
383
385
 
384
386
  def pretty_default_value(tag, component)
385
- params = tag.object.parameters.find { |param| [tag.name.to_s, tag.name.to_s + ":"].include?(param[0]) }
387
+ params = tag.object.parameters.find { |param| [tag.name.to_s, "#{tag.name}:"].include?(param[0]) }
386
388
  default = tag.defaults&.first || params&.second
387
389
 
388
390
  return "N/A" unless default
@@ -8,8 +8,11 @@ namespace :utilities do
8
8
  require "primer/classify/utilities"
9
9
 
10
10
  # Keys that are looked for to be included in the utilities.yml file
11
+ # rubocop:disable Lint/ConstantDefinitionInBlock
11
12
  SUPPORTED_KEYS = %i[
12
13
  anim
14
+ color-icon
15
+ color-text
13
16
  d
14
17
  float
15
18
  height
@@ -23,6 +26,7 @@ namespace :utilities do
23
26
  ].freeze
24
27
 
25
28
  BREAKPOINTS = [nil, "sm", "md", "lg", "xl"].freeze
29
+ # rubocop:enable Lint/ConstantDefinitionInBlock
26
30
 
27
31
  css_data =
28
32
  JSON.parse(
@@ -38,7 +42,7 @@ namespace :utilities do
38
42
  css_data.each do |selector|
39
43
  selector.sub!(/^./, "")
40
44
  # Next if selector has ancestors or sibling selectors
41
- next if selector.match?(/[:><~\[\.]/)
45
+ next if selector.match?(/[:><~\[.]/)
42
46
  next unless SUPPORTED_KEYS.any? { |key| selector.start_with?("#{key}-") }
43
47
 
44
48
  # Dupe so we still have the selector at the end of slicing it up
@@ -50,7 +54,7 @@ namespace :utilities do
50
54
  next unless classname.match?(Regexp.new(k))
51
55
 
52
56
  key = v
53
- classname.sub!(Regexp.new(k + "-"), "")
57
+ classname.sub!(Regexp.new("#{k}-"), "")
54
58
  end
55
59
 
56
60
  # If we didn't find a replacement, grab the first text before hyphen
@@ -66,7 +70,7 @@ namespace :utilities do
66
70
  end
67
71
 
68
72
  # Change the rest from hypens to underscores
69
- classname.sub!(/\-/, "_")
73
+ classname.sub!(/-/, "_")
70
74
 
71
75
  # convert padding/margin negative values ie n7 to -7
72
76
  classname.sub!(/^n/, "-") if classname.match?(/^n[0-9]/)
@@ -1,13 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :nocov:
4
+
3
5
  module YARD
4
6
  # Helper methods to use for yard documentation
5
7
  module DocsHelper
6
8
  def one_of(enumerable, lower: false, sort: true)
7
9
  # Sort the array if requested
8
10
  if sort
9
- compare = ->(a, b) { a.class == b.class ? a <=> b : a.class.to_s <=> b.class.to_s }
10
- enumerable = enumerable.sort { |a, b| compare.call(a, b) }
11
+ enumerable = enumerable.sort do |a, b|
12
+ a.instance_of?(b.class) ? a <=> b : a.class.to_s <=> b.class.to_s
13
+ end
11
14
  end
12
15
 
13
16
  values =
@@ -58,7 +61,7 @@ module YARD
58
61
  def status_module_and_short_name(component)
59
62
  name_with_status = component.name.gsub(/Primer::|Component/, "")
60
63
 
61
- m = name_with_status.match(/(?<status>Beta|Alpha|Deprecated)?(::)?(?<name>.*)/)
64
+ m = name_with_status.match(/(?<status>Beta|Alpha|Deprecated)?(?<_colons>::)?(?<name>.*)/)
62
65
  [m[:status]&.downcase, m[:name].gsub("::", "")]
63
66
  end
64
67
 
data/static/arguments.yml CHANGED
@@ -22,6 +22,74 @@
22
22
  type: Hash
23
23
  default: N/A
24
24
  description: "[System arguments](/system-arguments)"
25
+ - component: TabNav
26
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/tab_nav.rb
27
+ parameters:
28
+ - name: tag
29
+ type: Symbol
30
+ default: "`:nav`"
31
+ description: One of `:div` and `:nav`.
32
+ - name: label
33
+ type: String
34
+ default: N/A
35
+ description: Sets an `aria-label` that helps assistive technology users understand
36
+ the purpose of the links, and distinguish it from similar elements.
37
+ - name: body_arguments
38
+ type: Hash
39
+ default: "`{}`"
40
+ description: "[System arguments](/system-arguments) for the body wrapper."
41
+ - name: system_arguments
42
+ type: Hash
43
+ default: N/A
44
+ description: "[System arguments](/system-arguments)"
45
+ - component: TabPanels
46
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/tab_panels.rb
47
+ parameters:
48
+ - name: label
49
+ type: String
50
+ default: N/A
51
+ description: Sets an `aria-label` that helps assistive technology users understand
52
+ the purpose of the tabs.
53
+ - name: align
54
+ type: Symbol
55
+ default: N/A
56
+ description: One of `:left` and `:right`. - Defaults to left
57
+ - name: body_arguments
58
+ type: Hash
59
+ default: "`{}`"
60
+ description: "[System arguments](/system-arguments) for the body wrapper."
61
+ - name: wrapper_arguments
62
+ type: Hash
63
+ default: "`{}`"
64
+ description: "[System arguments](/system-arguments) for the `TabContainer` wrapper."
65
+ - name: system_arguments
66
+ type: Hash
67
+ default: N/A
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)"
25
93
  - component: BaseButton
26
94
  source: https://github.com/primer/view_components/tree/main/app/components/primer/base_button.rb
27
95
  parameters:
@@ -132,6 +200,13 @@
132
200
  type: Hash
133
201
  default: N/A
134
202
  description: "[System arguments](/system-arguments)"
203
+ - component: Breadcrumbs
204
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/breadcrumbs.rb
205
+ parameters:
206
+ - name: system_arguments
207
+ type: Hash
208
+ default: N/A
209
+ description: "[System arguments](/system-arguments)"
135
210
  - component: Text
136
211
  source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/text.rb
137
212
  parameters:
@@ -143,6 +218,13 @@
143
218
  type: Hash
144
219
  default: N/A
145
220
  description: "[System arguments](/system-arguments)"
221
+ - component: Truncate
222
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/truncate.rb
223
+ parameters:
224
+ - name: system_arguments
225
+ type: Hash
226
+ default: N/A
227
+ description: "[System arguments](/system-arguments)"
146
228
  - component: Blankslate
147
229
  source: https://github.com/primer/view_components/tree/main/app/components/primer/blankslate_component.rb
148
230
  parameters:
@@ -228,13 +310,6 @@
228
310
  type: Hash
229
311
  default: N/A
230
312
  description: "[System arguments](/system-arguments)"
231
- - component: Breadcrumb
232
- source: https://github.com/primer/view_components/tree/main/app/components/primer/breadcrumb_component.rb
233
- parameters:
234
- - name: system_arguments
235
- type: Hash
236
- default: N/A
237
- description: "[System arguments](/system-arguments)"
238
313
  - component: Button
239
314
  source: https://github.com/primer/view_components/tree/main/app/components/primer/button_component.rb
240
315
  parameters:
@@ -831,33 +906,6 @@
831
906
  type: Hash
832
907
  default: N/A
833
908
  description: "[System arguments](/system-arguments)"
834
- - component: TabNav
835
- source: https://github.com/primer/view_components/tree/main/app/components/primer/tab_nav_component.rb
836
- parameters:
837
- - name: label
838
- type: String
839
- default: N/A
840
- description: Used to set the `aria-label` on the top level `<nav>` element.
841
- - name: with_panel
842
- type: Boolean
843
- default: "`false`"
844
- description: Whether the TabNav should navigate through pages or panels. When
845
- true, [TabContainer](/components/tabcontainer) is rendered along with JavaScript
846
- behavior. Additionally, the `tab` slot will render as a button as opposed to
847
- an anchor.
848
- - name: body_arguments
849
- type: Hash
850
- default: "`{}`"
851
- description: "[System arguments](/system-arguments) for the body wrapper."
852
- - name: wrapper_arguments
853
- type: Hash
854
- default: "`{}`"
855
- description: "[System arguments](/system-arguments) for the `TabContainer` wrapper.
856
- Only applies if `with_panel` is `true`."
857
- - name: system_arguments
858
- type: Hash
859
- default: N/A
860
- description: "[System arguments](/system-arguments)"
861
909
  - component: TimeAgo
862
910
  source: https://github.com/primer/view_components/tree/main/app/components/primer/time_ago_component.rb
863
911
  parameters:
@@ -941,33 +989,3 @@
941
989
  type: Hash
942
990
  default: N/A
943
991
  description: "[System arguments](/system-arguments)"
944
- - component: UnderlineNav
945
- source: https://github.com/primer/view_components/tree/main/app/components/primer/underline_nav_component.rb
946
- parameters:
947
- - name: label
948
- type: String
949
- default: N/A
950
- description: The `aria-label` on top level `<nav>` element.
951
- - name: with_panel
952
- type: Boolean
953
- default: "`false`"
954
- description: Whether the `UnderlineNav` should navigate through pages or panels.
955
- When true, [TabContainer](/components/tabcontainer) is rendered along with JavaScript
956
- behavior.
957
- - name: align
958
- type: Symbol
959
- default: "`:left`"
960
- description: One of `:left` and `:right`. - Defaults to left
961
- - name: body_arguments
962
- type: Hash
963
- default: "`{ tag: BODY_TAG_DEFAULT }`"
964
- description: "[System arguments](/system-arguments) for the body wrapper."
965
- - name: wrapper_arguments
966
- type: Hash
967
- default: "`{}`"
968
- description: "[System arguments](/system-arguments) for the `TabContainer` wrapper.
969
- Only applies if `with_panel` is `true`."
970
- - name: system_arguments
971
- type: Hash
972
- default: N/A
973
- description: "[System arguments](/system-arguments)"
data/static/classes.yml CHANGED
@@ -10,6 +10,9 @@
10
10
  - ".Box-footer"
11
11
  - ".Box-header"
12
12
  - ".Box-row"
13
+ - ".Box-row--blue"
14
+ - ".Box-row--gray"
15
+ - ".Box-row--yellow"
13
16
  - ".BtnGroup"
14
17
  - ".BtnGroup-item"
15
18
  - ".Counter"
@@ -49,6 +52,10 @@
49
52
  - ".TimelineItem-avatar"
50
53
  - ".TimelineItem-badge"
51
54
  - ".TimelineItem-body"
55
+ - ".Truncate"
56
+ - ".Truncate-text"
57
+ - ".Truncate-text--expandable"
58
+ - ".Truncate-text--primary"
52
59
  - ".UnderlineNav"
53
60
  - ".UnderlineNav--right"
54
61
  - ".UnderlineNav-actions"
@@ -69,6 +76,7 @@
69
76
  - ".border"
70
77
  - ".border-bottom-0"
71
78
  - ".breadcrumb-item"
79
+ - ".breadcrumb-item-selected"
72
80
  - ".btn"
73
81
  - ".btn-block"
74
82
  - ".btn-danger"
@@ -107,6 +115,7 @@
107
115
  - ".custom-class"
108
116
  - ".d-flex"
109
117
  - ".d-inline-block"
118
+ - ".d-inline-flex"
110
119
  - ".details-overlay"
111
120
  - ".details-reset"
112
121
  - ".dropdown"
@@ -168,6 +177,7 @@
168
177
  - ".tabnav-tabs"
169
178
  - ".text-bold"
170
179
  - ".text-left"
180
+ - ".text-normal"
171
181
  - ".tooltipped"
172
182
  - ".tooltipped-n"
173
183
  - ".tooltipped-no-delay"
@@ -33,6 +33,32 @@
33
33
  "large"
34
34
  ]
35
35
  },
36
+ "Primer::Alpha::TabNav": {
37
+ "BODY_TAG_DEFAULT": "ul",
38
+ "TAG_DEFAULT": "nav",
39
+ "TAG_OPTIONS": [
40
+ "nav",
41
+ "div"
42
+ ]
43
+ },
44
+ "Primer::Alpha::TabPanels": {
45
+ "BODY_TAG_DEFAULT": "ul",
46
+ "TAG_DEFAULT": "nav",
47
+ "TAG_OPTIONS": [
48
+ "nav",
49
+ "div"
50
+ ]
51
+ },
52
+ "Primer::Alpha::UnderlineNav": {
53
+ "BODY_TAG_DEFAULT": "ul",
54
+ "TAG_DEFAULT": "nav",
55
+ "TAG_OPTIONS": [
56
+ "nav",
57
+ "div"
58
+ ]
59
+ },
60
+ "Primer::Alpha::UnderlinePanels": {
61
+ },
36
62
  "Primer::BaseButton": {
37
63
  "DEFAULT_TAG": "button",
38
64
  "DEFAULT_TYPE": "button",
@@ -82,27 +108,39 @@
82
108
  "span"
83
109
  ]
84
110
  },
111
+ "Primer::Beta::Breadcrumbs": {
112
+ "Item": "Primer::Beta::Breadcrumbs::Item"
113
+ },
114
+ "Primer::Beta::Breadcrumbs::Item": {
115
+ },
85
116
  "Primer::Beta::Text": {
86
117
  "DEFAULT_TAG": "span"
87
118
  },
119
+ "Primer::Beta::Truncate": {
120
+ "TruncateText": "Primer::Beta::Truncate::TruncateText"
121
+ },
122
+ "Primer::Beta::Truncate::TruncateText": {
123
+ },
88
124
  "Primer::BlankslateComponent": {
89
125
  },
90
126
  "Primer::BorderBoxComponent": {
91
127
  "DEFAULT_PADDING": "default",
128
+ "DEFAULT_ROW_SCHEME": "default",
92
129
  "PADDING_MAPPINGS": {
93
130
  "default": "",
94
131
  "condensed": "Box--condensed",
95
132
  "spacious": "Box--spacious"
96
133
  },
97
- "PADDING_SUGGESTION": "Perhaps you could consider using :padding options of default, condensed, and spacious?"
134
+ "PADDING_SUGGESTION": "Perhaps you could consider using :padding options of default, condensed, and spacious?",
135
+ "ROW_SCHEME_MAPPINGS": {
136
+ "default": "",
137
+ "neutral": "Box-row--gray",
138
+ "info": "Box-row--blue",
139
+ "warning": "Box-row--yellow"
140
+ }
98
141
  },
99
142
  "Primer::BoxComponent": {
100
143
  },
101
- "Primer::BreadcrumbComponent": {
102
- "ItemComponent": "Primer::BreadcrumbComponent::ItemComponent"
103
- },
104
- "Primer::BreadcrumbComponent::ItemComponent": {
105
- },
106
144
  "Primer::ButtonComponent": {
107
145
  "DEFAULT_SCHEME": "default",
108
146
  "DEFAULT_VARIANT": "medium",
@@ -562,13 +600,6 @@
562
600
  },
563
601
  "Primer::TabContainerComponent": {
564
602
  },
565
- "Primer::TabNavComponent": {
566
- "DEFAULT_EXTRA_ALIGN": "left",
567
- "EXTRA_ALIGN_OPTIONS": [
568
- "left",
569
- "right"
570
- ]
571
- },
572
603
  "Primer::TimeAgoComponent": {
573
604
  },
574
605
  "Primer::TimelineItemComponent": {
@@ -607,22 +638,5 @@
607
638
  "p",
608
639
  "strong"
609
640
  ]
610
- },
611
- "Primer::UnderlineNavComponent": {
612
- "ACTIONS_TAG_DEFAULT": "div",
613
- "ACTIONS_TAG_OPTIONS": [
614
- "div",
615
- "span"
616
- ],
617
- "ALIGN_DEFAULT": "left",
618
- "ALIGN_OPTIONS": [
619
- "left",
620
- "right"
621
- ],
622
- "BODY_TAG_DEFAULT": "div",
623
- "BODY_TAG_OPTIONS": [
624
- "div",
625
- "ul"
626
- ]
627
641
  }
628
642
  }