primer_view_components 0.0.17 → 0.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +102 -0
  3. data/app/assets/javascripts/primer_view_components.js +2 -0
  4. data/app/assets/javascripts/primer_view_components.js.map +1 -0
  5. data/app/components/primer/avatar_component.rb +27 -9
  6. data/app/components/primer/avatar_stack_component.html.erb +10 -0
  7. data/app/components/primer/avatar_stack_component.rb +81 -0
  8. data/app/components/primer/base_component.rb +8 -5
  9. data/app/components/primer/blankslate_component.html.erb +3 -3
  10. data/app/components/primer/blankslate_component.rb +18 -25
  11. data/app/components/primer/border_box_component.html.erb +4 -18
  12. data/app/components/primer/border_box_component.rb +75 -68
  13. data/app/components/primer/box_component.rb +10 -0
  14. data/app/components/primer/breadcrumb_component.rb +3 -2
  15. data/app/components/primer/button_component.rb +3 -3
  16. data/app/components/primer/button_group_component.html.erb +5 -0
  17. data/app/components/primer/button_group_component.rb +37 -0
  18. data/app/components/primer/button_marketing_component.rb +73 -0
  19. data/app/components/primer/component.rb +16 -0
  20. data/app/components/primer/counter_component.rb +16 -9
  21. data/app/components/primer/details_component.html.erb +2 -6
  22. data/app/components/primer/details_component.rb +28 -37
  23. data/app/components/primer/dropdown/menu_component.html.erb +12 -0
  24. data/app/components/primer/dropdown/menu_component.rb +48 -0
  25. data/app/components/primer/dropdown_component.html.erb +9 -0
  26. data/app/components/primer/dropdown_component.rb +75 -0
  27. data/app/components/primer/dropdown_menu_component.rb +35 -3
  28. data/app/components/primer/flash_component.html.erb +4 -7
  29. data/app/components/primer/flash_component.rb +18 -17
  30. data/app/components/primer/flex_component.rb +47 -9
  31. data/app/components/primer/flex_item_component.rb +16 -1
  32. data/app/components/primer/heading_component.rb +9 -0
  33. data/app/components/primer/label_component.rb +6 -6
  34. data/app/components/primer/layout_component.rb +2 -2
  35. data/app/components/primer/link_component.rb +6 -2
  36. data/app/components/primer/markdown_component.rb +293 -0
  37. data/app/components/primer/menu_component.html.erb +6 -0
  38. data/app/components/primer/menu_component.rb +71 -0
  39. data/app/components/primer/octicon_component.rb +13 -6
  40. data/app/components/primer/popover_component.rb +5 -3
  41. data/app/components/primer/primer.js +1 -0
  42. data/app/components/primer/primer.ts +1 -0
  43. data/app/components/primer/progress_bar_component.rb +6 -6
  44. data/app/components/primer/spinner_component.rb +8 -5
  45. data/app/components/primer/state_component.rb +23 -12
  46. data/app/components/primer/subhead_component.rb +6 -3
  47. data/app/components/primer/tab_container_component.js +1 -0
  48. data/app/components/primer/tab_container_component.rb +41 -0
  49. data/app/components/primer/tab_container_component.ts +1 -0
  50. data/app/components/primer/tab_nav_component.html.erb +17 -0
  51. data/app/components/primer/tab_nav_component.rb +108 -0
  52. data/app/components/primer/text_component.rb +1 -1
  53. data/app/components/primer/timeline_item_component.html.erb +4 -16
  54. data/app/components/primer/timeline_item_component.rb +41 -49
  55. data/app/components/primer/tooltip_component.rb +88 -0
  56. data/app/components/primer/truncate_component.rb +41 -0
  57. data/app/components/primer/underline_nav_component.rb +26 -1
  58. data/{lib → app/lib}/primer/class_name_helper.rb +1 -0
  59. data/app/lib/primer/classify.rb +280 -0
  60. data/app/lib/primer/classify/cache.rb +125 -0
  61. data/{lib → app/lib}/primer/fetch_or_fallback_helper.rb +1 -0
  62. data/{lib → app/lib}/primer/join_style_arguments_helper.rb +1 -0
  63. data/app/lib/primer/view_helper.rb +22 -0
  64. data/app/lib/primer/view_helper/dsl.rb +34 -0
  65. data/lib/primer/view_components.rb +32 -0
  66. data/lib/primer/view_components/engine.rb +11 -2
  67. data/lib/primer/view_components/version.rb +5 -1
  68. data/lib/yard/renders_many_handler.rb +19 -0
  69. data/lib/yard/renders_one_handler.rb +19 -0
  70. data/static/statuses.json +1 -0
  71. metadata +94 -24
  72. data/app/components/primer/view_components.rb +0 -52
  73. data/lib/primer/classify.rb +0 -250
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ class Classify
5
+ # :nodoc:
6
+ class Cache
7
+ # rubocop:disable Style/MutableConstant
8
+ LOOKUP = {}
9
+ # rubocop:enable Style/MutableConstant
10
+
11
+ class <<self
12
+ def read(memo, key, val, breakpoint)
13
+ value = LOOKUP.dig(breakpoint, key, val)
14
+ memo[:classes] << value if value
15
+ end
16
+
17
+ def clear!
18
+ LOOKUP.clear
19
+ end
20
+
21
+ def preload!
22
+ preload(
23
+ keys: Primer::Classify::MARGIN_DIRECTION_KEYS,
24
+ values: [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6]
25
+ )
26
+
27
+ preload(
28
+ keys: (Primer::Classify::SPACING_KEYS - Primer::Classify::MARGIN_DIRECTION_KEYS),
29
+ values: [0, 1, 2, 3, 4, 5, 6]
30
+ )
31
+
32
+ preload(
33
+ keys: Primer::Classify::DIRECTION_KEY,
34
+ values: [:row, :column]
35
+ )
36
+
37
+ preload(
38
+ keys: Primer::Classify::JUSTIFY_CONTENT_KEY,
39
+ values: [:flex_start, :flex_end, :center, :space_between, :space_around]
40
+ )
41
+
42
+ preload(
43
+ keys: Primer::Classify::ALIGN_ITEMS_KEY,
44
+ values: [:flex_start, :flex_end, :center, :baseline, :stretch]
45
+ )
46
+
47
+ preload(
48
+ keys: Primer::Classify::DISPLAY_KEY,
49
+ values: [:flex, :block, :inline_block, :inline_flex, :none, :table, :table_cell]
50
+ )
51
+
52
+ preload(
53
+ keys: [Primer::Classify::COLOR_KEY, Primer::Classify::BG_KEY],
54
+ values: [:blue, :gray_dark, :gray, :gray_light, :red, :orange, :orange_light, :yellow, :green, :purple, :white, :pink]
55
+ )
56
+
57
+ preload(
58
+ keys: Primer::Classify::VERTICAL_ALIGN_KEY,
59
+ values: [:baseline, :top, :middle, :bottom, :text_top, :text_bottom]
60
+ )
61
+
62
+ preload(
63
+ keys: Primer::Classify::WORD_BREAK_KEY,
64
+ values: [:break_all]
65
+ )
66
+
67
+ preload(
68
+ keys: :text_align,
69
+ values: [:left, :center, :right]
70
+ )
71
+
72
+ preload(
73
+ keys: :font_weight,
74
+ values: [:bold, :light, :normal]
75
+ )
76
+
77
+ preload(
78
+ keys: Primer::Classify::FLEX_KEY,
79
+ values: [1, :auto]
80
+ )
81
+
82
+ preload(
83
+ keys: [Primer::Classify::FLEX_GROW_KEY, Primer::Classify::FLEX_SHRINK_KEY],
84
+ values: [0]
85
+ )
86
+
87
+ preload(
88
+ keys: [Primer::Classify::ALIGN_SELF_KEY],
89
+ values: [:auto, :start, :end, :center, :baseline, :stretch]
90
+ )
91
+
92
+ preload(
93
+ keys: [Primer::Classify::WIDTH_KEY, Primer::Classify::HEIGHT_KEY],
94
+ values: [:fit, :fill]
95
+ )
96
+
97
+ preload(
98
+ keys: Primer::Classify::BOX_SHADOW_KEY,
99
+ values: [true, :medium, :large, :extra_large, :none]
100
+ )
101
+
102
+ preload(
103
+ keys: Primer::Classify::VISIBILITY_KEY,
104
+ values: [:hidden, :visible]
105
+ )
106
+ end
107
+
108
+ def preload(keys:, values:)
109
+ BREAKPOINTS.each do |breakpoint|
110
+ Array(keys).each do |key|
111
+ values.each do |value|
112
+ classes = { classes: [] }
113
+ Primer::Classify.send(:extract_value, classes, key, value, breakpoint)
114
+
115
+ LOOKUP[breakpoint] ||= {}
116
+ LOOKUP[breakpoint][key] ||= {}
117
+ LOOKUP[breakpoint][key][value] = classes[:classes].first
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -14,6 +14,7 @@
14
14
  # fetch_or_fallback([1,2,3], 1, 2) => 1
15
15
  # fetch_or_fallback([1,2,3], nil, 2) => 2
16
16
  module Primer
17
+ # :nodoc:
17
18
  module FetchOrFallbackHelper
18
19
  mattr_accessor :fallback_raises, default: true
19
20
 
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Primer
4
+ # :nodoc:
4
5
  module JoinStyleArgumentsHelper
5
6
  # Join two `style` arguments
6
7
  #
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ # Module to allow shorthand calls for registered Primer components
5
+ #
6
+ # Registered components can be called with
7
+ # `primer(:name, **kwargs) { block }` instead of
8
+ # `render Primer::NameComponent.new(**kwargs) { block }`
9
+ module ViewHelper
10
+ extend ActiveSupport::Concern
11
+
12
+ class ViewHelperNotFound < StandardError; end
13
+
14
+ def primer(name, **component_args, &block)
15
+ component = Primer::Component.primer_helpers[name]
16
+
17
+ raise ViewHelperNotFound, "no component defined for helper #{name}" if component.blank?
18
+
19
+ render component.new(**component_args), &block
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
4
+
5
+ module Primer
6
+ # :nodoc:
7
+ module ViewHelper
8
+ # DSL to allow components to register a View Helper for shorthand calls.
9
+ #
10
+ # Example:
11
+ #
12
+ # class MyComponent < ViewComponent::Base
13
+ # include Primer::ViewHelper::DSL
14
+ # view_helper :my_component
15
+ # end
16
+ module DSL
17
+ extend ActiveSupport::Concern
18
+
19
+ class ViewHelperAlreadyDefined < StandardError; end
20
+
21
+ included do
22
+ class_attribute :primer_helpers, instance_writer: false, default: {}
23
+ end
24
+
25
+ class_methods do
26
+ def view_helper(name)
27
+ raise ViewHelperAlreadyDefined, "#{name} is already defined" if primer_helpers[name].present?
28
+
29
+ primer_helpers[name] = self
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -4,6 +4,38 @@ require "primer/view_components/version"
4
4
  require "primer/view_components/engine"
5
5
 
6
6
  module Primer
7
+ # :nodoc:
7
8
  module ViewComponents
9
+ DEFAULT_STATUSES_PATH = File.expand_path("static")
10
+ DEFAULT_STATUS_FILE_NAME = "statuses.json"
11
+
12
+ # generate_statuses returns a hash mapping component name to
13
+ # the component's status sorted alphabetically by the component name.
14
+ def self.generate_statuses
15
+ statuses = Primer::Component.descendants.each_with_object({}) do |component, mem|
16
+ mem[component.to_s] = component.status.to_s
17
+ end
18
+
19
+ statuses.sort_by { |k, _v| k }.to_h
20
+ end
21
+
22
+ # dump_statuses generates the status hash and then serializes
23
+ # it as json at the given path
24
+ def self.dump_statuses(path: DEFAULT_STATUSES_PATH)
25
+ require "json"
26
+
27
+ statuses = generate_statuses
28
+
29
+ File.open(File.join(path, DEFAULT_STATUS_FILE_NAME), "w") do |f|
30
+ f.write(statuses.to_json)
31
+ f.write($INPUT_RECORD_SEPARATOR)
32
+ end
33
+ end
34
+
35
+ # read_statuses returns a JSON string matching the output of
36
+ # generate_statuses
37
+ def self.read_statuses(path: DEFAULT_STATUSES_PATH)
38
+ File.read(File.join(path, DEFAULT_STATUS_FILE_NAME))
39
+ end
8
40
  end
9
41
  end
@@ -1,11 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "rails/engine"
4
+
3
5
  module Primer
4
6
  module ViewComponents
7
+ # :nodoc:
5
8
  class Engine < ::Rails::Engine
6
9
  isolate_namespace Primer::ViewComponents
10
+ config.autoload_once_paths = %W[
11
+ #{root}/app/components
12
+ #{root}/app/lib
13
+ ]
14
+
15
+ initializer "primer_view_components.assets" do |app|
16
+ app.config.assets.precompile += %w[primer_view_components] if app.config.respond_to?(:assets)
17
+ end
7
18
  end
8
19
  end
9
20
  end
10
-
11
- require "#{Primer::ViewComponents::Engine.root}/app/components/primer/view_components.rb"
@@ -5,9 +5,13 @@ module Primer
5
5
  module VERSION
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 17
8
+ PATCH = 22
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH].join(".")
11
11
  end
12
12
  end
13
13
  end
14
+
15
+ # rubocop:disable Rails/Output
16
+ puts Primer::ViewComponents::VERSION::STRING if __FILE__ == $PROGRAM_NAME
17
+ # rubocop:enable Rails/Output
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD
4
+ # YARD Handler to parse `renders_many` calls.
5
+ class RendersManyHandler < YARD::Handlers::Ruby::Base
6
+ handles method_call(:renders_many)
7
+ namespace_only
8
+
9
+ process do
10
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
11
+ object = YARD::CodeObjects::MethodObject.new(namespace, name)
12
+ register(object)
13
+ parse_block(statement.last, owner: object)
14
+
15
+ object.dynamic = true
16
+ object[:renders_many] = true
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD
4
+ # YARD Handler to parse `renders_one` calls.
5
+ class RendersOneHandler < YARD::Handlers::Ruby::Base
6
+ handles method_call(:renders_one)
7
+ namespace_only
8
+
9
+ process do
10
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
11
+ object = YARD::CodeObjects::MethodObject.new(namespace, name)
12
+ register(object)
13
+ parse_block(statement.last, owner: object)
14
+
15
+ object.dynamic = true
16
+ object[:renders_one] = true
17
+ end
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ {"Primer::AvatarComponent":"beta","Primer::AvatarStackComponent":"alpha","Primer::BaseComponent":"alpha","Primer::BlankslateComponent":"alpha","Primer::BorderBoxComponent":"beta","Primer::BoxComponent":"stable","Primer::BreadcrumbComponent":"alpha","Primer::ButtonComponent":"alpha","Primer::ButtonGroupComponent":"alpha","Primer::ButtonMarketingComponent":"alpha","Primer::CounterComponent":"beta","Primer::DetailsComponent":"alpha","Primer::Dropdown::MenuComponent":"alpha","Primer::DropdownComponent":"alpha","Primer::DropdownMenuComponent":"deprecated","Primer::FlashComponent":"beta","Primer::FlexComponent":"alpha","Primer::FlexItemComponent":"alpha","Primer::HeadingComponent":"alpha","Primer::LabelComponent":"alpha","Primer::LayoutComponent":"alpha","Primer::LinkComponent":"beta","Primer::MarkdownComponent":"alpha","Primer::MenuComponent":"alpha","Primer::OcticonComponent":"beta","Primer::PopoverComponent":"alpha","Primer::ProgressBarComponent":"alpha","Primer::SpinnerComponent":"beta","Primer::StateComponent":"beta","Primer::SubheadComponent":"alpha","Primer::TabContainerComponent":"alpha","Primer::TabNavComponent":"alpha","Primer::TabNavComponent::TabComponent":"alpha","Primer::TextComponent":"alpha","Primer::TimelineItemComponent":"alpha","Primer::TimelineItemComponent::BadgeComponent":"alpha","Primer::TooltipComponent":"alpha","Primer::TruncateComponent":"alpha","Primer::UnderlineNavComponent":"alpha"}
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-10 00:00:00.000000000 Z
11
+ date: 2021-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: octicons_helper
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 9.0.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 13.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 9.0.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 13.0.0
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: rails
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -51,25 +71,33 @@ dependencies:
51
71
  - !ruby/object:Gem::Version
52
72
  version: '3.0'
53
73
  - !ruby/object:Gem::Dependency
54
- name: octicons_helper
74
+ name: allocation_tracer
55
75
  requirement: !ruby/object:Gem::Requirement
56
76
  requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 9.0.0
60
- - - "<"
77
+ - - "~>"
61
78
  - !ruby/object:Gem::Version
62
- version: 12.0.0
63
- type: :runtime
79
+ version: 0.6.3
80
+ type: :development
64
81
  prerelease: false
65
82
  version_requirements: !ruby/object:Gem::Requirement
66
83
  requirements:
67
- - - ">="
84
+ - - "~>"
68
85
  - !ruby/object:Gem::Version
69
- version: 9.0.0
70
- - - "<"
86
+ version: 0.6.3
87
+ - !ruby/object:Gem::Dependency
88
+ name: benchmark-ips
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
71
92
  - !ruby/object:Gem::Version
72
- version: 12.0.0
93
+ version: 2.8.4
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 2.8.4
73
101
  - !ruby/object:Gem::Dependency
74
102
  name: listen
75
103
  requirement: !ruby/object:Gem::Requirement
@@ -118,28 +146,42 @@ dependencies:
118
146
  requirements:
119
147
  - - '='
120
148
  - !ruby/object:Gem::Version
121
- version: '0.74'
149
+ version: '0.82'
122
150
  type: :development
123
151
  prerelease: false
124
152
  version_requirements: !ruby/object:Gem::Requirement
125
153
  requirements:
126
154
  - - '='
127
155
  - !ruby/object:Gem::Version
128
- version: '0.74'
156
+ version: '0.82'
129
157
  - !ruby/object:Gem::Dependency
130
158
  name: rubocop-github
131
159
  requirement: !ruby/object:Gem::Requirement
132
160
  requirements:
133
161
  - - "~>"
134
162
  - !ruby/object:Gem::Version
135
- version: 0.13.0
163
+ version: 0.16.0
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: 0.16.0
171
+ - !ruby/object:Gem::Dependency
172
+ name: rubocop-performance
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '1.7'
136
178
  type: :development
137
179
  prerelease: false
138
180
  version_requirements: !ruby/object:Gem::Requirement
139
181
  requirements:
140
182
  - - "~>"
141
183
  - !ruby/object:Gem::Version
142
- version: 0.13.0
184
+ version: '1.7'
143
185
  - !ruby/object:Gem::Dependency
144
186
  name: simplecov
145
187
  requirement: !ruby/object:Gem::Requirement
@@ -192,7 +234,11 @@ files:
192
234
  - CHANGELOG.md
193
235
  - LICENSE.txt
194
236
  - README.md
237
+ - app/assets/javascripts/primer_view_components.js
238
+ - app/assets/javascripts/primer_view_components.js.map
195
239
  - app/components/primer/avatar_component.rb
240
+ - app/components/primer/avatar_stack_component.html.erb
241
+ - app/components/primer/avatar_stack_component.rb
196
242
  - app/components/primer/base_component.rb
197
243
  - app/components/primer/blankslate_component.html.erb
198
244
  - app/components/primer/blankslate_component.rb
@@ -202,10 +248,17 @@ files:
202
248
  - app/components/primer/breadcrumb_component.html.erb
203
249
  - app/components/primer/breadcrumb_component.rb
204
250
  - app/components/primer/button_component.rb
251
+ - app/components/primer/button_group_component.html.erb
252
+ - app/components/primer/button_group_component.rb
253
+ - app/components/primer/button_marketing_component.rb
205
254
  - app/components/primer/component.rb
206
255
  - app/components/primer/counter_component.rb
207
256
  - app/components/primer/details_component.html.erb
208
257
  - app/components/primer/details_component.rb
258
+ - app/components/primer/dropdown/menu_component.html.erb
259
+ - app/components/primer/dropdown/menu_component.rb
260
+ - app/components/primer/dropdown_component.html.erb
261
+ - app/components/primer/dropdown_component.rb
209
262
  - app/components/primer/dropdown_menu_component.html.erb
210
263
  - app/components/primer/dropdown_menu_component.rb
211
264
  - app/components/primer/flash_component.html.erb
@@ -217,9 +270,14 @@ files:
217
270
  - app/components/primer/layout_component.html.erb
218
271
  - app/components/primer/layout_component.rb
219
272
  - app/components/primer/link_component.rb
273
+ - app/components/primer/markdown_component.rb
274
+ - app/components/primer/menu_component.html.erb
275
+ - app/components/primer/menu_component.rb
220
276
  - app/components/primer/octicon_component.rb
221
277
  - app/components/primer/popover_component.html.erb
222
278
  - app/components/primer/popover_component.rb
279
+ - app/components/primer/primer.js
280
+ - app/components/primer/primer.ts
223
281
  - app/components/primer/progress_bar_component.html.erb
224
282
  - app/components/primer/progress_bar_component.rb
225
283
  - app/components/primer/slot.rb
@@ -228,19 +286,31 @@ files:
228
286
  - app/components/primer/state_component.rb
229
287
  - app/components/primer/subhead_component.html.erb
230
288
  - app/components/primer/subhead_component.rb
289
+ - app/components/primer/tab_container_component.js
290
+ - app/components/primer/tab_container_component.rb
291
+ - app/components/primer/tab_container_component.ts
292
+ - app/components/primer/tab_nav_component.html.erb
293
+ - app/components/primer/tab_nav_component.rb
231
294
  - app/components/primer/text_component.rb
232
295
  - app/components/primer/timeline_item_component.html.erb
233
296
  - app/components/primer/timeline_item_component.rb
297
+ - app/components/primer/tooltip_component.rb
298
+ - app/components/primer/truncate_component.rb
234
299
  - app/components/primer/underline_nav_component.html.erb
235
300
  - app/components/primer/underline_nav_component.rb
236
- - app/components/primer/view_components.rb
237
- - lib/primer/class_name_helper.rb
238
- - lib/primer/classify.rb
239
- - lib/primer/fetch_or_fallback_helper.rb
240
- - lib/primer/join_style_arguments_helper.rb
301
+ - app/lib/primer/class_name_helper.rb
302
+ - app/lib/primer/classify.rb
303
+ - app/lib/primer/classify/cache.rb
304
+ - app/lib/primer/fetch_or_fallback_helper.rb
305
+ - app/lib/primer/join_style_arguments_helper.rb
306
+ - app/lib/primer/view_helper.rb
307
+ - app/lib/primer/view_helper/dsl.rb
241
308
  - lib/primer/view_components.rb
242
309
  - lib/primer/view_components/engine.rb
243
310
  - lib/primer/view_components/version.rb
311
+ - lib/yard/renders_many_handler.rb
312
+ - lib/yard/renders_one_handler.rb
313
+ - static/statuses.json
244
314
  homepage: https://github.com/primer/view_components
245
315
  licenses:
246
316
  - MIT
@@ -254,14 +324,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
254
324
  requirements:
255
325
  - - ">="
256
326
  - !ruby/object:Gem::Version
257
- version: 2.3.0
327
+ version: 2.5.0
258
328
  required_rubygems_version: !ruby/object:Gem::Requirement
259
329
  requirements:
260
330
  - - ">="
261
331
  - !ruby/object:Gem::Version
262
332
  version: '0'
263
333
  requirements: []
264
- rubygems_version: 3.1.2
334
+ rubygems_version: 3.0.3
265
335
  signing_key:
266
336
  specification_version: 4
267
337
  summary: ViewComponents for the Primer Design System