primer_view_components 0.0.48 → 0.0.52

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +155 -0
  3. data/app/components/primer/base_component.rb +2 -2
  4. data/app/components/primer/beta/avatar.rb +1 -1
  5. data/app/components/primer/{avatar_stack_component.html.erb → beta/avatar_stack.html.erb} +0 -0
  6. data/app/components/primer/beta/avatar_stack.rb +92 -0
  7. data/app/components/primer/beta/truncate.html.erb +5 -0
  8. data/app/components/primer/beta/truncate.rb +110 -0
  9. data/app/components/primer/border_box_component.rb +27 -1
  10. data/app/components/primer/clipboard_copy.html.erb +2 -2
  11. data/app/components/primer/clipboard_copy.rb +1 -1
  12. data/app/components/primer/dropdown.rb +7 -7
  13. data/app/components/primer/icon_button.rb +1 -1
  14. data/app/components/primer/image_crop.html.erb +4 -4
  15. data/app/components/primer/label_component.rb +13 -12
  16. data/app/components/primer/navigation/tab_component.rb +16 -2
  17. data/app/components/primer/progress_bar_component.rb +0 -3
  18. data/app/components/primer/tab_nav_component.rb +4 -3
  19. data/app/components/primer/truncate.rb +1 -1
  20. data/app/components/primer/underline_nav_component.rb +3 -2
  21. data/app/lib/primer/fetch_or_fallback_helper.rb +2 -0
  22. data/app/lib/primer/octicon/cache.rb +1 -1
  23. data/app/lib/primer/tabbed_component_helper.rb +1 -1
  24. data/app/lib/primer/view_helper.rb +1 -0
  25. data/lib/primer/classify.rb +4 -16
  26. data/lib/primer/classify/cache.rb +0 -5
  27. data/lib/primer/classify/flex.rb +1 -1
  28. data/lib/primer/classify/functional_colors.rb +1 -1
  29. data/lib/primer/classify/utilities.rb +51 -13
  30. data/lib/primer/classify/utilities.yml +16 -0
  31. data/lib/primer/classify/validation.rb +18 -0
  32. data/lib/primer/view_components.rb +34 -6
  33. data/lib/primer/view_components/constants.rb +55 -0
  34. data/lib/primer/view_components/linters/argument_mappers/base.rb +100 -0
  35. data/lib/primer/view_components/linters/argument_mappers/button.rb +33 -46
  36. data/lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb +19 -0
  37. data/lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb +67 -0
  38. data/lib/primer/view_components/linters/argument_mappers/label.rb +49 -0
  39. data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +6 -5
  40. data/lib/primer/view_components/linters/autocorrectable.rb +30 -0
  41. data/lib/primer/view_components/linters/button_component_migration_counter.rb +9 -23
  42. data/lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb +21 -0
  43. data/lib/primer/view_components/linters/close_button_component_migration_counter.rb +16 -0
  44. data/lib/primer/view_components/linters/helpers.rb +47 -42
  45. data/lib/primer/view_components/linters/label_component_migration_counter.rb +25 -0
  46. data/lib/primer/view_components/version.rb +1 -1
  47. data/lib/rubocop/config/default.yml +5 -0
  48. data/lib/rubocop/cop/primer.rb +1 -2
  49. data/lib/rubocop/cop/primer/deprecated_arguments.rb +173 -0
  50. data/lib/rubocop/cop/primer/no_tag_memoize.rb +1 -0
  51. data/lib/rubocop/cop/primer/primer_octicon.rb +178 -0
  52. data/lib/rubocop/cop/primer/system_argument_instead_of_class.rb +12 -16
  53. data/lib/tasks/constants.rake +12 -0
  54. data/lib/tasks/coverage.rake +4 -0
  55. data/lib/tasks/docs.rake +27 -25
  56. data/lib/tasks/utilities.rake +9 -13
  57. data/lib/yard/docs_helper.rb +15 -5
  58. data/static/arguments.yml +980 -0
  59. data/static/assets/view-components.svg +18 -0
  60. data/static/classes.yml +182 -0
  61. data/static/constants.json +640 -0
  62. data/static/statuses.json +4 -2
  63. metadata +29 -10
  64. data/app/components/primer/avatar_stack_component.rb +0 -90
data/static/statuses.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "Primer::Alpha::ButtonMarketing": "alpha",
3
- "Primer::AvatarStackComponent": "beta",
4
3
  "Primer::BaseButton": "beta",
5
4
  "Primer::BaseComponent": "beta",
6
5
  "Primer::Beta::AutoComplete": "beta",
7
6
  "Primer::Beta::AutoComplete::Input": "alpha",
8
7
  "Primer::Beta::AutoComplete::Item": "beta",
9
8
  "Primer::Beta::Avatar": "beta",
9
+ "Primer::Beta::AvatarStack": "beta",
10
10
  "Primer::Beta::Text": "beta",
11
+ "Primer::Beta::Truncate": "beta",
12
+ "Primer::Beta::Truncate::TruncateText": "alpha",
11
13
  "Primer::BlankslateComponent": "beta",
12
14
  "Primer::BorderBoxComponent": "beta",
13
15
  "Primer::BoxComponent": "stable",
@@ -15,7 +17,7 @@
15
17
  "Primer::BreadcrumbComponent::ItemComponent": "alpha",
16
18
  "Primer::ButtonComponent": "beta",
17
19
  "Primer::ButtonGroup": "beta",
18
- "Primer::ClipboardCopy": "alpha",
20
+ "Primer::ClipboardCopy": "beta",
19
21
  "Primer::CloseButton": "beta",
20
22
  "Primer::CounterComponent": "beta",
21
23
  "Primer::DetailsComponent": "beta",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.48
4
+ version: 0.0.52
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: 2021-07-21 00:00:00.000000000 Z
11
+ date: 2021-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: octicons
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 13.0.0
47
+ version: '15'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 13.0.0
54
+ version: '15'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: view_component
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -218,14 +218,14 @@ dependencies:
218
218
  requirements:
219
219
  - - '='
220
220
  - !ruby/object:Gem::Version
221
- version: '0.82'
221
+ version: 1.13.0
222
222
  type: :development
223
223
  prerelease: false
224
224
  version_requirements: !ruby/object:Gem::Requirement
225
225
  requirements:
226
226
  - - '='
227
227
  - !ruby/object:Gem::Version
228
- version: '0.82'
228
+ version: 1.13.0
229
229
  - !ruby/object:Gem::Dependency
230
230
  name: rubocop-github
231
231
  requirement: !ruby/object:Gem::Requirement
@@ -355,8 +355,6 @@ files:
355
355
  - app/components/primer/auto_complete/auto_complete.js
356
356
  - app/components/primer/auto_complete/auto_component.d.ts
357
357
  - app/components/primer/auto_complete/auto_component.js
358
- - app/components/primer/avatar_stack_component.html.erb
359
- - app/components/primer/avatar_stack_component.rb
360
358
  - app/components/primer/base_button.rb
361
359
  - app/components/primer/base_component.rb
362
360
  - app/components/primer/beta/auto_complete.rb
@@ -366,7 +364,11 @@ files:
366
364
  - app/components/primer/beta/auto_complete/auto_complete.ts
367
365
  - app/components/primer/beta/auto_complete/item.rb
368
366
  - app/components/primer/beta/avatar.rb
367
+ - app/components/primer/beta/avatar_stack.html.erb
368
+ - app/components/primer/beta/avatar_stack.rb
369
369
  - app/components/primer/beta/text.rb
370
+ - app/components/primer/beta/truncate.html.erb
371
+ - app/components/primer/beta/truncate.rb
370
372
  - app/components/primer/blankslate_component.html.erb
371
373
  - app/components/primer/blankslate_component.rb
372
374
  - app/components/primer/border_box_component.html.erb
@@ -476,21 +478,34 @@ files:
476
478
  - lib/primer/classify/grid.rb
477
479
  - lib/primer/classify/utilities.rb
478
480
  - lib/primer/classify/utilities.yml
481
+ - lib/primer/classify/validation.rb
479
482
  - lib/primer/view_components.rb
483
+ - lib/primer/view_components/constants.rb
480
484
  - lib/primer/view_components/engine.rb
481
485
  - lib/primer/view_components/linters.rb
486
+ - lib/primer/view_components/linters/argument_mappers/base.rb
482
487
  - lib/primer/view_components/linters/argument_mappers/button.rb
488
+ - lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb
483
489
  - lib/primer/view_components/linters/argument_mappers/conversion_error.rb
490
+ - lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb
491
+ - lib/primer/view_components/linters/argument_mappers/label.rb
484
492
  - lib/primer/view_components/linters/argument_mappers/system_arguments.rb
493
+ - lib/primer/view_components/linters/autocorrectable.rb
485
494
  - lib/primer/view_components/linters/button_component_migration_counter.rb
495
+ - lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb
496
+ - lib/primer/view_components/linters/close_button_component_migration_counter.rb
486
497
  - lib/primer/view_components/linters/flash_component_migration_counter.rb
487
498
  - lib/primer/view_components/linters/helpers.rb
499
+ - lib/primer/view_components/linters/label_component_migration_counter.rb
488
500
  - lib/primer/view_components/statuses.rb
489
501
  - lib/primer/view_components/version.rb
490
502
  - lib/rubocop/config/default.yml
491
503
  - lib/rubocop/cop/primer.rb
504
+ - lib/rubocop/cop/primer/deprecated_arguments.rb
492
505
  - lib/rubocop/cop/primer/no_tag_memoize.rb
506
+ - lib/rubocop/cop/primer/primer_octicon.rb
493
507
  - lib/rubocop/cop/primer/system_argument_instead_of_class.rb
508
+ - lib/tasks/constants.rake
494
509
  - lib/tasks/coverage.rake
495
510
  - lib/tasks/docs.rake
496
511
  - lib/tasks/statuses.rake
@@ -498,6 +513,10 @@ files:
498
513
  - lib/yard/docs_helper.rb
499
514
  - lib/yard/renders_many_handler.rb
500
515
  - lib/yard/renders_one_handler.rb
516
+ - static/arguments.yml
517
+ - static/assets/view-components.svg
518
+ - static/classes.yml
519
+ - static/constants.json
501
520
  - static/statuses.json
502
521
  homepage: https://github.com/primer/view_components
503
522
  licenses:
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Primer
4
- # Use `AvatarStack` to stack multiple avatars together.
5
- class AvatarStackComponent < Primer::Component
6
- status :beta
7
-
8
- ALIGN_DEFAULT = :left
9
- ALIGN_OPTIONS = [ALIGN_DEFAULT, :right].freeze
10
-
11
- DEFAULT_TAG = :div
12
- TAG_OPTIONS = [DEFAULT_TAG, :span].freeze
13
-
14
- DEFAULT_BODY_TAG = :div
15
- BODY_TAG_OPTIONS = [DEFAULT_BODY_TAG, :span].freeze
16
- # Required list of stacked avatars.
17
- #
18
- # @param kwargs [Hash] The same arguments as <%= link_to_component(Primer::Beta::Avatar) %>.
19
- renders_many :avatars, "Primer::Beta::Avatar"
20
-
21
- # @example Default
22
- # <%= render(Primer::AvatarStackComponent.new) do |c| %>
23
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
24
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
25
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
26
- # <% end %>
27
- #
28
- # @example Align right
29
- # <%= render(Primer::AvatarStackComponent.new(align: :right)) do |c| %>
30
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
31
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
32
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
33
- # <% end %>
34
- #
35
- # @example With tooltip
36
- # <%= render(Primer::AvatarStackComponent.new(tooltipped: true, body_arguments: { label: 'This is a tooltip!' })) do |c| %>
37
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
38
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
39
- # <%= c.avatar(src: "http://placekitten.com/200/200", alt: "@kittenuser") %>
40
- # <% end %>
41
- #
42
- # @param tag [Symbol] <%= one_of(Primer::AvatarStackComponent::TAG_OPTIONS) %>
43
- # @param align [Symbol] <%= one_of(Primer::AvatarStackComponent::ALIGN_OPTIONS) %>
44
- # @param tooltipped [Boolean] Whether to add a tooltip to the stack or not.
45
- # @param body_arguments [Hash] Parameters to add to the Body. If `tooltipped` is set, has the same arguments as <%= link_to_component(Primer::Tooltip) %>.
46
- # The default tag is <%= pretty_value(Primer::AvatarStackComponent::DEFAULT_BODY_TAG) %> but can be changed using `tag:`
47
- # to <%= one_of(Primer::AvatarStackComponent::BODY_TAG_OPTIONS, lower: true) %>
48
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
49
- def initialize(tag: DEFAULT_TAG, align: ALIGN_DEFAULT, tooltipped: false, body_arguments: {}, **system_arguments)
50
- @align = fetch_or_fallback(ALIGN_OPTIONS, align, ALIGN_DEFAULT)
51
- @system_arguments = system_arguments
52
- @tooltipped = tooltipped
53
- @body_arguments = body_arguments
54
-
55
- body_tag = @body_arguments[:tag] || DEFAULT_BODY_TAG
56
- @body_arguments[:tag] = fetch_or_fallback(BODY_TAG_OPTIONS, body_tag, DEFAULT_BODY_TAG)
57
- @body_arguments[:classes] = class_names(
58
- "AvatarStack-body",
59
- @body_arguments[:classes]
60
- )
61
-
62
- @system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, DEFAULT_TAG)
63
- @system_arguments[:classes] = class_names(
64
- "AvatarStack",
65
- system_arguments[:classes],
66
- "AvatarStack--right" => @align == :right
67
- )
68
- end
69
-
70
- def body_component
71
- if @tooltipped
72
- Primer::Tooltip.new(**@body_arguments)
73
- else
74
- Primer::BaseComponent.new(**@body_arguments)
75
- end
76
- end
77
-
78
- def before_render
79
- @system_arguments[:classes] = class_names(
80
- @system_arguments[:classes],
81
- "AvatarStack--two" => avatars.size == 2,
82
- "AvatarStack--three-plus" => avatars.size > 2
83
- )
84
- end
85
-
86
- def render?
87
- avatars.any?
88
- end
89
- end
90
- end