primer_view_components 0.0.20 → 0.0.21

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbf044be0f96f8b0e1e7e7f3d06b6e1c6a5a9171b87ae19eb6ba4034724567db
4
- data.tar.gz: 116e2fedfe01623fb65cde89990f6988c9ccc557702c73428dd48c6a199ecf0f
3
+ metadata.gz: 62c2e7e2e043daf8288aa72a91d674af96180cc0430c8d59c5fdbf5764e19b59
4
+ data.tar.gz: 75b205867ce0f2835ee32d9a859032d02eef6dbb98b8ff5c9d485001893fce5b
5
5
  SHA512:
6
- metadata.gz: d114ba5fb5d3ff3d18f77d709befab2b9a6eb86a3f1abdc8bffb613af25e66874972d69e6aaabae553007c61cee947c46d7c37db75b504fe5fd49dd1f95d933a
7
- data.tar.gz: 53cf3366dc7d0bebe8c0754ec411317da160a3cc549d0bfe02616ef4ed769a05e2d4a244be7c5038fcacf2626a232fb998af0ad340f19eda58306c6d0469b89b
6
+ metadata.gz: f6ad3831ccbb77616d668036954108e3642ffe747ee2837714761ebc54ca353b654813cad3396bb31e4a94f03f6e84f5ae52c75cf07387fffd24758d73967b70
7
+ data.tar.gz: 79d4aca35c8556fcbbcbab8fb6cf5d4e5440f920508af5ed880bb200a03820869a576ebafd3200ff756a3b7a580855c8b1c77ba71a65f085367fc80ac063e49f
data/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## main
4
4
 
5
+ ## 0.0.21
6
+
7
+ * **Breaking change**: Upgrade `FlashComponent` to use Slots V2.
8
+
9
+ *Joel Hawksley, Simon Taranto*
10
+
11
+ * **Breaking change**: Upgrade `BlankslateComponent` to use Slots V2.
12
+
13
+ *Manuel Puyol*
14
+
15
+ * **Breaking change**: Upgrade `TimelineItemComponent` to use Slots V2.
16
+
17
+ *Manuel Puyol*
18
+
5
19
  ## 0.0.20
6
20
 
7
21
  * Fix bug when empty string was passed to Classify.
@@ -12,7 +26,7 @@
12
26
 
13
27
  * Add support for functional colors to `color` system argument.
14
28
 
15
- *Jake Shorty
29
+ *Jake Shorty*
16
30
 
17
31
  * Add `AvatarStack`, `Dropdown`, `Markdown` and `Menu` components.
18
32
 
@@ -16,11 +16,11 @@ module Primer
16
16
  # @example auto|Link
17
17
  # <%= render(Primer::AvatarComponent.new(href: "#", src: "http://placekitten.com/200/200", alt: "@kittenuser")) %>
18
18
  #
19
- # @param src [String] The source url of the avatar image
20
- # @param alt [String] Passed through to alt on img tag
21
- # @param size [Integer] Adds the avatar-small class if less than 24
19
+ # @param src [String] The source url of the avatar image.
20
+ # @param alt [String] Passed through to alt on img tag.
21
+ # @param size [Integer] Adds the avatar-small class if less than 24.
22
22
  # @param square [Boolean] Used to create a square avatar.
23
- # @param href [String] The URL to link to. If used, component will be wrapped by an `<a>` tag
23
+ # @param href [String] The URL to link to. If used, component will be wrapped by an `<a>` tag.
24
24
  # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
25
25
  def initialize(src:, alt:, size: 20, square: false, href: nil, **system_arguments)
26
26
  @href = href
@@ -1,6 +1,6 @@
1
1
  <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
2
  <% if spinner.present? %>
3
- <%= render spinner.component %>
3
+ <%= spinner %>
4
4
  <% elsif @icon.present? %>
5
5
  <%= render(Primer::OcticonComponent.new(
6
6
  icon: @icon,
@@ -3,9 +3,15 @@
3
3
  module Primer
4
4
  # Use Primer::BlankslateComponent when there is a lack of content within a page or section. Use as placeholder to tell users why something isn't there.
5
5
  class BlankslateComponent < Primer::Component
6
- include ViewComponent::Slotable
6
+ include ViewComponent::SlotableV2
7
7
 
8
- with_slot :spinner, class_name: "Spinner"
8
+ # Optional Spinner.
9
+ #
10
+ # @param kwargs [Hash] The same arguments as <%= link_to_component(Primer::SpinnerComponent) %>.
11
+ renders_one :spinner, lambda { |**system_arguments|
12
+ system_arguments[:mb] ||= 3
13
+ Primer::SpinnerComponent.new(**system_arguments)
14
+ }
9
15
 
10
16
  #
11
17
  # @example auto|Basic
@@ -26,7 +32,7 @@ module Primer
26
32
  # title: "Title",
27
33
  # description: "Description",
28
34
  # ) do |component| %>
29
- # <% component.slot(:spinner, size: :large) %>
35
+ # <% component.spinner(size: :large) %>
30
36
  # <% end %>
31
37
  #
32
38
  # @example auto|Custom content|Pass custom content as a block in place of `description`.
@@ -124,19 +130,5 @@ module Primer
124
130
  @link_text = link_text
125
131
  @link_url = link_url
126
132
  end
127
-
128
- # :nodoc:
129
- class Spinner < Primer::Slot
130
- # @param size [Symbol] <%= one_of(Primer::SpinnerComponent::SIZE_MAPPINGS) %>
131
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
132
- def initialize(**system_arguments)
133
- @system_arguments = system_arguments
134
- @system_arguments[:mb] ||= 3
135
- end
136
-
137
- def component
138
- Primer::SpinnerComponent.new(**@system_arguments)
139
- end
140
- end
141
133
  end
142
134
  end
@@ -6,9 +6,6 @@
6
6
  <%= render(Primer::OcticonComponent.new(icon: "x")) %>
7
7
  </button>
8
8
  <% end %>
9
- <% if actions.present? %>
10
- <%= render Primer::BaseComponent.new(**actions.system_arguments) do %>
11
- <%= actions.content %>
12
- <% end %>
13
- <% end %>
9
+
10
+ <%= action %>
14
11
  <% end %>
@@ -3,9 +3,17 @@
3
3
  module Primer
4
4
  # Use the Flash component to inform users of successful or pending actions.
5
5
  class FlashComponent < Primer::Component
6
- include ViewComponent::Slotable
6
+ include ViewComponent::SlotableV2
7
7
 
8
- with_slot :actions, class_name: "Actions"
8
+ # Optional action content showed on the right side of the component.
9
+ #
10
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
11
+ renders_one :action, lambda { |**system_arguments|
12
+ system_arguments[:tag] = :div
13
+ system_arguments[:classes] = class_names(system_arguments[:classes], "flash-action")
14
+
15
+ Primer::BaseComponent.new(**system_arguments)
16
+ }
9
17
 
10
18
  DEFAULT_VARIANT = :default
11
19
  VARIANT_MAPPINGS = {
@@ -32,7 +40,7 @@ module Primer
32
40
  # @example auto|With actions
33
41
  # <%= render(Primer::FlashComponent.new) do |component| %>
34
42
  # This is a flash message with actions!
35
- # <% component.slot(:actions) do %>
43
+ # <% component.action do %>
36
44
  # <%= render(Primer::ButtonComponent.new(variant: :small)) { "Take action" } %>
37
45
  # <% end %>
38
46
  # <% end %>
@@ -60,17 +68,5 @@ module Primer
60
68
  def self.status
61
69
  Primer::Component::STATUSES[:beta]
62
70
  end
63
-
64
- # :nodoc:
65
- class Actions < Primer::Slot
66
- attr_reader :system_arguments
67
-
68
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
69
- def initialize(**system_arguments)
70
- @system_arguments = system_arguments
71
- @system_arguments[:tag] = :div
72
- @system_arguments[:classes] = class_names(@system_arguments[:classes], "flash-action")
73
- end
74
- end
75
71
  end
76
72
  end
@@ -1,17 +1,5 @@
1
- <%= render Primer::BaseComponent.new(**system_arguments) do %>
2
- <% if avatar %>
3
- <%= render Primer::AvatarComponent.new(alt: avatar.alt, src: avatar.src, size: avatar.size, square: avatar.square, **avatar.system_arguments) %>
4
- <% end %>
5
-
6
- <% if badge %>
7
- <%= render Primer::BaseComponent.new(**badge.system_arguments) do %>
8
- <%= octicon badge.icon %>
9
- <% end %>
10
- <% end %>
11
-
12
- <% if body %>
13
- <%= render Primer::BaseComponent.new(**body.system_arguments) do %>
14
- <%= body.content %>
15
- <% end %>
16
- <% end %>
1
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
2
+ <%= avatar %>
3
+ <%= badge %>
4
+ <%= body %>
17
5
  <% end %>
@@ -3,20 +3,45 @@
3
3
  module Primer
4
4
  # Use `TimelineItem` to display items on a vertical timeline, connected by badge elements.
5
5
  class TimelineItemComponent < Primer::Component
6
- include ViewComponent::Slotable
6
+ include ViewComponent::SlotableV2
7
7
 
8
- with_slot :avatar, class_name: "Avatar"
9
- with_slot :badge, class_name: "Badge"
10
- with_slot :body, class_name: "Body"
8
+ # Avatar to be rendered to the left of the Badge.
9
+ #
10
+ # @param kwargs [Hash] The same arguments as <%= link_to_component(Primer::AvatarComponent) %>.
11
+ renders_one :avatar, lambda { |src:, size: 40, square: true, **system_arguments|
12
+ system_arguments[:classes] = class_names(
13
+ "TimelineItem-avatar",
14
+ system_arguments[:classes]
15
+ )
16
+
17
+ Primer::AvatarComponent.new(src: src, size: size, square: square, **system_arguments)
18
+ }
11
19
 
12
- attr_reader :system_arguments
20
+ # Badge that will be connected to other TimelineItems.
21
+ #
22
+ # @param icon [String] Name of [Octicon](https://primer.style/octicons/) to use.
23
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
24
+ renders_one :badge, "BadgeComponent"
25
+
26
+ # Body to be rendered to the left of the Badge.
27
+ #
28
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
29
+ renders_one :body, lambda { |**system_arguments|
30
+ system_arguments[:tag] = :div
31
+ system_arguments[:classes] = class_names(
32
+ "TimelineItem-body",
33
+ system_arguments[:classes]
34
+ )
35
+
36
+ Primer::BaseComponent.new(**system_arguments)
37
+ }
13
38
 
14
39
  # @example auto|Default
15
40
  # <div style="padding-left: 60px">
16
41
  # <%= render(Primer::TimelineItemComponent.new) do |component| %>
17
- # <% component.slot(:avatar, src: "https://github.com/github.png", alt: "github") %>
18
- # <% component.slot(:badge, bg: :green, color: :white, icon: :check) %>
19
- # <% component.slot(:body) { "Success!" } %>
42
+ # <% component.avatar(src: "https://github.com/github.png", alt: "github") %>
43
+ # <% component.badge(bg: :green, color: :white, icon: :check) %>
44
+ # <% component.body { "Success!" } %>
20
45
  # <% end %>
21
46
  # </div>
22
47
  #
@@ -36,36 +61,9 @@ module Primer
36
61
  avatar.present? || badge.present? || body.present?
37
62
  end
38
63
 
39
- # :nodoc:
40
- class Avatar < Primer::Slot
41
- attr_reader :system_arguments, :alt, :src, :size, :square
42
-
43
- # @param alt [String] Alt text for avatar image.
44
- # @param src [String] Src attribute for avatar image.
45
- # @param size [Integer] Image size.
46
- # @param square [Boolean] Whether to round the edges of the image.
47
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
48
- def initialize(alt: nil, src: nil, size: 40, square: true, **system_arguments)
49
- @alt = alt
50
- @src = src
51
- @size = size
52
- @square = square
53
-
54
- @system_arguments = system_arguments
55
- @system_arguments[:tag] = :div
56
- @system_arguments[:classes] = class_names(
57
- "TimelineItem-avatar",
58
- system_arguments[:classes]
59
- )
60
- end
61
- end
62
-
63
- # :nodoc:
64
- class Badge < Primer::Slot
65
- attr_reader :system_arguments, :icon
66
-
67
- # @param icon [String] Name of [Octicon](https://primer.style/octicons/) to use.
68
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
64
+ # This component is part of `Primer::TimelineItemComponent` and should not be
65
+ # used as a standalone component.
66
+ class BadgeComponent < Primer::Component
69
67
  def initialize(icon: nil, **system_arguments)
70
68
  @icon = icon
71
69
 
@@ -76,20 +74,11 @@ module Primer
76
74
  system_arguments[:classes]
77
75
  )
78
76
  end
79
- end
80
-
81
- # :nodoc:
82
- class Body < Primer::Slot
83
- attr_reader :system_arguments
84
77
 
85
- # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
86
- def initialize(**system_arguments)
87
- @system_arguments = system_arguments
88
- @system_arguments[:tag] = :div
89
- @system_arguments[:classes] = class_names(
90
- "TimelineItem-body",
91
- system_arguments[:classes]
92
- )
78
+ def call
79
+ render(Primer::BaseComponent.new(**@system_arguments)) do
80
+ render(Primer::OcticonComponent.new(icon: @icon))
81
+ end
93
82
  end
94
83
  end
95
84
  end
@@ -5,7 +5,7 @@ module Primer
5
5
  module VERSION
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 20
8
+ PATCH = 21
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH].join(".")
11
11
  end
data/static/statuses.json CHANGED
@@ -1 +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":"alpha","Primer::SubheadComponent":"alpha","Primer::TextComponent":"alpha","Primer::TimelineItemComponent":"alpha","Primer::TooltipComponent":"alpha","Primer::TruncateComponent":"alpha","Primer::UnderlineNavComponent":"alpha"}
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":"alpha","Primer::SubheadComponent":"alpha","Primer::TextComponent":"alpha","Primer::TimelineItemComponent":"alpha","Primer::TimelineItemComponent::BadgeComponent":"alpha","Primer::TooltipComponent":"alpha","Primer::TruncateComponent":"alpha","Primer::UnderlineNavComponent":"alpha"}
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.20
4
+ version: 0.0.21
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-02-19 00:00:00.000000000 Z
11
+ date: 2021-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octicons_helper