primer_view_components 0.0.7 → 0.0.8
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 +18 -0
- data/README.md +4 -0
- data/app/components/primer/base_component.rb +1 -3
- data/app/components/primer/blankslate_component.html.erb +8 -2
- data/app/components/primer/blankslate_component.rb +5 -8
- data/app/components/primer/flash_component.html.erb +14 -0
- data/app/components/primer/flash_component.rb +43 -0
- data/app/components/primer/octicon_component.rb +27 -0
- data/app/components/primer/view_components.rb +2 -0
- data/lib/primer/classify.rb +4 -0
- data/lib/primer/view_components/version.rb +1 -1
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25626f31190d4622e822db5eb8f435f103c0a77668cb78c1db16eec60ac4dfb9
|
4
|
+
data.tar.gz: e551785879e69a0bd7c2ae62a97a39f311dc3dbc415bc5dade637d97fa297910
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a77219748e0c7018f789df844cd6f6e83159b2fef82a5b81985c277d0427d85442e4e14c6f9934e387afc3f1d2291f31a3d88c9630c8f4910bae992d39a0188
|
7
|
+
data.tar.gz: 15b0b2a9faa1603f57d263a2a6b18f2eb4e1aa325d8c261bfce9f803571ae9a5075b1d51f8a5f3bf31bc7f12662dbe914f7380f71518fe6896b947f2d000757b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
# main
|
2
|
+
|
3
|
+
# 0.0.8
|
4
|
+
|
5
|
+
* Add support for border margins, such as: `border_top: 0`.
|
6
|
+
|
7
|
+
*Natasha Umer*
|
8
|
+
|
9
|
+
* Add FlashComponent and OcticonComponent.
|
10
|
+
|
11
|
+
*Joel Hawksley*
|
12
|
+
|
13
|
+
## Breaking changes
|
14
|
+
|
15
|
+
* BlankslateComponent accepts `icon_size` instead of `icon_height`.
|
16
|
+
|
17
|
+
*Joel Hawksley*
|
18
|
+
|
1
19
|
# 0.0.7
|
2
20
|
|
3
21
|
* Use `octicons_helper` v11.0.0.
|
data/README.md
CHANGED
@@ -77,6 +77,10 @@ Some components have their own specific arguments, but they can all be styled wi
|
|
77
77
|
| `font_weight` | `text-<value>` | `font_weight: :bold` → `.text-bold` |
|
78
78
|
| `border` | `border-<value>` | `border: :bottom` → `.border-bottom` |
|
79
79
|
| `border_color` | `border-<value>` | `border: :green` → `.border-green` |
|
80
|
+
| `border_top` | `border-top-<value>` | `border_top: 0` → `.border-top-0` |
|
81
|
+
| `border_bottom` | `border-bottom-<value>` | `border_bottom: 0` → `.border-bottom-0` |
|
82
|
+
| `border_left` | `border-left-<value>` | `border_left: 0` → `.border-left-0` |
|
83
|
+
| `border_right` | `border-right-<value>` | `border_right: 0` → `.border-right-0` |
|
80
84
|
| `word_break` | `wb-<value>` | `word_break: :break_all` → `.wb-break-all` |
|
81
85
|
| `direction` | `flex-<value>` | `direction: :row` → `.flex-row` |
|
82
86
|
| `justify_content` | `flex-justify-<value>` | `justify_content: :center` → `.flex-justify-center` |
|
@@ -1,13 +1,19 @@
|
|
1
1
|
<%= render Primer::BaseComponent.new(**@kwargs) do %>
|
2
2
|
<% if @icon.present? %>
|
3
|
-
<%=
|
3
|
+
<%= render(Primer::OcticonComponent.new(
|
4
|
+
icon: @icon,
|
5
|
+
size: @icon_size,
|
6
|
+
class: "blankslate-icon"
|
7
|
+
)) %>
|
4
8
|
<% end %>
|
5
9
|
|
6
10
|
<% if @image_src.present? && @image_alt.present? %>
|
7
11
|
<%= image_tag "#{@image_src}", class: "mb-3", size: "56x56", alt: "#{@image_alt}" %>
|
8
12
|
<% end %>
|
9
13
|
|
10
|
-
|
14
|
+
<% if @title.present? %>
|
15
|
+
<%= render Primer::BaseComponent.new(tag: @title_tag, mb: 1) do %><%= @title %><% end %>
|
16
|
+
<% end %>
|
11
17
|
|
12
18
|
<% if @description.present? %>
|
13
19
|
<p><%= @description %></p>
|
@@ -7,7 +7,7 @@ module Primer
|
|
7
7
|
#
|
8
8
|
# The `Primer::BlankslateComponent` supports the following arguments to add a basic blankslate:
|
9
9
|
#
|
10
|
-
# 1. `title` (`String`
|
10
|
+
# 1. `title` (`String` optional). Text that appears in a larger bold font.
|
11
11
|
# 2. `description` (`String` optional). Text that appears below the title. Typically a whole sentence.
|
12
12
|
#
|
13
13
|
# ```ruby
|
@@ -114,13 +114,10 @@ module Primer
|
|
114
114
|
# ```
|
115
115
|
class BlankslateComponent < Primer::Component
|
116
116
|
def initialize(
|
117
|
-
|
118
|
-
title:,
|
119
|
-
|
120
|
-
# optional
|
117
|
+
title: "",
|
121
118
|
title_tag: :h3,
|
122
119
|
icon: "",
|
123
|
-
|
120
|
+
icon_size: :medium,
|
124
121
|
image_src: "",
|
125
122
|
image_alt: " ",
|
126
123
|
description: "",
|
@@ -138,7 +135,7 @@ module Primer
|
|
138
135
|
**kwargs
|
139
136
|
)
|
140
137
|
@kwargs = kwargs
|
141
|
-
@kwargs[:tag]
|
138
|
+
@kwargs[:tag] ||= :div
|
142
139
|
@kwargs[:classes] = class_names(
|
143
140
|
@kwargs[:classes],
|
144
141
|
"blankslate",
|
@@ -149,7 +146,7 @@ module Primer
|
|
149
146
|
|
150
147
|
@title_tag = title_tag
|
151
148
|
@icon = icon
|
152
|
-
@
|
149
|
+
@icon_size = icon_size
|
153
150
|
@image_src = image_src
|
154
151
|
@image_alt = image_alt
|
155
152
|
@title = title
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= render Primer::BaseComponent.new(**@kwargs) do %>
|
2
|
+
<%= render(Primer::OcticonComponent.new(icon: @icon)) if @icon %>
|
3
|
+
<%= content %>
|
4
|
+
<% if @dismissible %>
|
5
|
+
<button class="flash-close js-flash-close" type="button" aria-label="Close">
|
6
|
+
<%= render(Primer::OcticonComponent.new(icon: "x")) %>
|
7
|
+
</button>
|
8
|
+
<% end %>
|
9
|
+
<% if actions.present? %>
|
10
|
+
<%= render Primer::BaseComponent.new(**actions.kwargs) do %>
|
11
|
+
<%= actions.content %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
class FlashComponent < Primer::Component
|
5
|
+
include ViewComponent::Slotable
|
6
|
+
|
7
|
+
with_slot :actions, class_name: "Actions"
|
8
|
+
|
9
|
+
DEFAULT_VARIANT = :default
|
10
|
+
VARIANT_MAPPINGS = {
|
11
|
+
DEFAULT_VARIANT => "",
|
12
|
+
:warning => "flash-warn",
|
13
|
+
:danger => "flash-error",
|
14
|
+
:success => "flash-success"
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
def initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **kwargs)
|
18
|
+
@icon = icon
|
19
|
+
@dismissible = dismissible
|
20
|
+
@kwargs = kwargs
|
21
|
+
@kwargs[:tag] = :div
|
22
|
+
@kwargs[:classes] = class_names(
|
23
|
+
@kwargs[:classes],
|
24
|
+
"flash",
|
25
|
+
VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_MAPPINGS.keys, variant.to_sym, DEFAULT_VARIANT)],
|
26
|
+
"flash-full": full
|
27
|
+
)
|
28
|
+
@kwargs[:mb] ||= spacious ? 4 : nil
|
29
|
+
end
|
30
|
+
|
31
|
+
class Actions < ViewComponent::Slot
|
32
|
+
include ClassNameHelper
|
33
|
+
|
34
|
+
attr_reader :kwargs
|
35
|
+
|
36
|
+
def initialize(**kwargs)
|
37
|
+
@kwargs = kwargs
|
38
|
+
@kwargs[:tag] = :div
|
39
|
+
@kwargs[:classes] = class_names(@kwargs[:classes], "flash-action")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
class OcticonComponent < Primer::Component
|
5
|
+
include Primer::ClassNameHelper
|
6
|
+
include OcticonsHelper
|
7
|
+
|
8
|
+
SIZE_DEFAULT = :small
|
9
|
+
SIZE_MAPPINGS = {
|
10
|
+
SIZE_DEFAULT => 16,
|
11
|
+
:medium => 32,
|
12
|
+
:large => 64,
|
13
|
+
}.freeze
|
14
|
+
SIZE_OPTIONS = SIZE_MAPPINGS.keys
|
15
|
+
|
16
|
+
def initialize(icon:, size: SIZE_DEFAULT, **kwargs)
|
17
|
+
@icon, @kwargs = icon, kwargs
|
18
|
+
|
19
|
+
@kwargs[:height] = SIZE_MAPPINGS[size.to_sym]
|
20
|
+
@kwargs[:class] = class_names(@kwargs[:class], Primer::Classify.call(**@kwargs)[:class])
|
21
|
+
end
|
22
|
+
|
23
|
+
def call
|
24
|
+
octicon(@icon, **@kwargs)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -33,12 +33,14 @@ require_relative "button_component"
|
|
33
33
|
require_relative "counter_component"
|
34
34
|
require_relative "details_component"
|
35
35
|
require_relative "dropdown_menu_component"
|
36
|
+
require_relative "flash_component"
|
36
37
|
require_relative "flex_component"
|
37
38
|
require_relative "flex_item_component"
|
38
39
|
require_relative "heading_component"
|
39
40
|
require_relative "label_component"
|
40
41
|
require_relative "layout_component"
|
41
42
|
require_relative "link_component"
|
43
|
+
require_relative "octicon_component"
|
42
44
|
require_relative "popover_component"
|
43
45
|
require_relative "progress_bar_component"
|
44
46
|
require_relative "state_component"
|
data/lib/primer/classify.rb
CHANGED
@@ -78,11 +78,13 @@ module Primer
|
|
78
78
|
}
|
79
79
|
}.freeze
|
80
80
|
BORDER_KEYS = [:border, :border_color].freeze
|
81
|
+
BORDER_MARGIN_KEYS = [:border_top, :border_bottom, :border_left, :border_right].freeze
|
81
82
|
TYPOGRAPHY_KEYS = [:font_size].freeze
|
82
83
|
VALID_KEYS = (
|
83
84
|
CONCAT_KEYS +
|
84
85
|
BOOLEAN_MAPPINGS.keys +
|
85
86
|
BORDER_KEYS +
|
87
|
+
BORDER_MARGIN_KEYS +
|
86
88
|
TYPOGRAPHY_KEYS +
|
87
89
|
TEXT_KEYS +
|
88
90
|
[
|
@@ -196,6 +198,8 @@ module Primer
|
|
196
198
|
memo[:classes] << "wb-#{dasherized_val}"
|
197
199
|
elsif BORDER_KEYS.include?(key)
|
198
200
|
memo[:classes] << "border-#{dasherized_val}"
|
201
|
+
elsif BORDER_MARGIN_KEYS.include?(key)
|
202
|
+
memo[:classes] << "#{key.to_s.dasherize}-#{val}"
|
199
203
|
elsif key == DIRECTION_KEY
|
200
204
|
memo[:classes] << "flex#{breakpoint}-#{dasherized_val}"
|
201
205
|
elsif key == JUSTIFY_CONTENT_KEY
|
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.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -168,7 +168,7 @@ dependencies:
|
|
168
168
|
- - "~>"
|
169
169
|
- !ruby/object:Gem::Version
|
170
170
|
version: 0.9.25
|
171
|
-
description:
|
171
|
+
description:
|
172
172
|
email:
|
173
173
|
- opensource+primer_view_components@github.com
|
174
174
|
executables: []
|
@@ -194,6 +194,8 @@ files:
|
|
194
194
|
- app/components/primer/details_component.rb
|
195
195
|
- app/components/primer/dropdown_menu_component.html.erb
|
196
196
|
- app/components/primer/dropdown_menu_component.rb
|
197
|
+
- app/components/primer/flash_component.html.erb
|
198
|
+
- app/components/primer/flash_component.rb
|
197
199
|
- app/components/primer/flex_component.rb
|
198
200
|
- app/components/primer/flex_item_component.rb
|
199
201
|
- app/components/primer/heading_component.rb
|
@@ -201,6 +203,7 @@ files:
|
|
201
203
|
- app/components/primer/layout_component.html.erb
|
202
204
|
- app/components/primer/layout_component.rb
|
203
205
|
- app/components/primer/link_component.rb
|
206
|
+
- app/components/primer/octicon_component.rb
|
204
207
|
- app/components/primer/popover_component.html.erb
|
205
208
|
- app/components/primer/popover_component.rb
|
206
209
|
- app/components/primer/progress_bar_component.html.erb
|
@@ -226,7 +229,7 @@ licenses:
|
|
226
229
|
- MIT
|
227
230
|
metadata:
|
228
231
|
allowed_push_host: https://rubygems.org
|
229
|
-
post_install_message:
|
232
|
+
post_install_message:
|
230
233
|
rdoc_options: []
|
231
234
|
require_paths:
|
232
235
|
- lib
|
@@ -242,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
245
|
version: '0'
|
243
246
|
requirements: []
|
244
247
|
rubygems_version: 3.1.2
|
245
|
-
signing_key:
|
248
|
+
signing_key:
|
246
249
|
specification_version: 4
|
247
250
|
summary: ViewComponents for the Primer Design System
|
248
251
|
test_files: []
|