bs5 0.0.3 → 0.0.4
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/README.md +19 -6
- data/app/components/bs5/alert_component.rb +5 -10
- data/app/components/bs5/badge_component.html.erb +1 -0
- data/app/components/bs5/badge_component.rb +38 -0
- data/app/helpers/bs5/components_helper.rb +8 -4
- data/app/validators/style_validator.rb +11 -0
- data/config/locales/en.yml +8 -0
- data/lib/bs5/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d4e64b1fb40e3224c42147923de60bb7233c2c2fbf411674e0bca31c093c837
|
4
|
+
data.tar.gz: 80ef0fe973d5cab69eb75e4834dbaed31c1886d13c4f6586aeed655d0a69ba2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4b8e31ace3f99001251e99f0e8c7d2ad8e2320008223c7b346eeca08fcd9e39d2b59c208e181720a2c6e611550a6913e11cc941b0c92a89dffd73b4bf9d615d
|
7
|
+
data.tar.gz: 10bcf562669a15ea680eea134048ab9ee32986e905e28173184ddf044842ac6dafdb507817a3154487e2fa5e567aaa2209313e25752b77e7699df18720adc630
|
data/README.md
CHANGED
@@ -33,7 +33,7 @@ $ gem install bs5
|
|
33
33
|
Run the following command to setup your project to use Bootstrap 5.
|
34
34
|
|
35
35
|
$ rails generate bs5:install
|
36
|
-
|
36
|
+
|
37
37
|
## Components
|
38
38
|
|
39
39
|
### [Accordion](https://v5.getbootstrap.com/docs/5.0/components/accordion/) ✅
|
@@ -51,6 +51,7 @@ Run the following command to setup your project to use Bootstrap 5.
|
|
51
51
|
<% end %>
|
52
52
|
<%- end %>
|
53
53
|
```
|
54
|
+
|
54
55
|
```
|
55
56
|
<%= bs5_accordion(flush: true) do |accordion| %>
|
56
57
|
<% accordion.slot(:item, title: 'Accordion Item #1') do %>
|
@@ -74,21 +75,33 @@ Run the following command to setup your project to use Bootstrap 5.
|
|
74
75
|
```
|
75
76
|
|
76
77
|
```
|
77
|
-
<%= bs5_alert(
|
78
|
+
<%= bs5_alert(style: :warning, is_dismissable: true) do %>
|
78
79
|
<strong>Holy guacamole!</strong> You should check in on some of those fields below.
|
79
80
|
<%- end %>
|
80
81
|
```
|
81
82
|
|
82
|
-
### [Badge](https://v5.getbootstrap.com/docs/5.0/components/badge/)
|
83
|
+
### [Badge](https://v5.getbootstrap.com/docs/5.0/components/badge/) ✅
|
83
84
|
|
84
|
-
|
85
|
+
```
|
86
|
+
<%= bs5_badge(text: 'New') %>
|
87
|
+
```
|
85
88
|
|
86
|
-
|
89
|
+
```
|
90
|
+
<%= bs5_badge(text: 'Warning', style: :warning) %>
|
91
|
+
```
|
92
|
+
|
93
|
+
```
|
94
|
+
<%= bs5_badge(text: 'Danger', style: :danger, pill: true) %>
|
95
|
+
```
|
96
|
+
|
97
|
+
|
98
|
+
### [Breadcrumb](https://v5.getbootstrap.com/docs/5.0/components/breadcrumb/)
|
87
99
|
|
100
|
+
### [Button](https://v5.getbootstrap.com/docs/5.0/components/buttons/)
|
88
101
|
|
89
102
|
## Previewing components
|
90
103
|
|
91
|
-
|
104
|
+
- http://localhost:3000/rails/view_components
|
92
105
|
|
93
106
|
## Contributing
|
94
107
|
|
@@ -2,18 +2,13 @@
|
|
2
2
|
|
3
3
|
module Bs5
|
4
4
|
class AlertComponent < ViewComponent::Base
|
5
|
-
|
5
|
+
attr_reader :style, :is_dismissable
|
6
6
|
|
7
7
|
include ActiveModel::Validations
|
8
|
+
validates :style, style: true
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
validates :type, inclusion: { in: TYPES, message: lambda do |_, data|
|
12
|
-
"#{data[:value].inspect} is not valid. Try #{TYPES.to_sentence(last_word_connector: ' or ')}."
|
13
|
-
end }
|
14
|
-
|
15
|
-
def initialize(type: :primary, is_dismissable: false)
|
16
|
-
@type = type.to_sym
|
10
|
+
def initialize(style: :primary, is_dismissable: false)
|
11
|
+
@style = style.to_sym
|
17
12
|
@is_dismissable = is_dismissable
|
18
13
|
end
|
19
14
|
|
@@ -34,7 +29,7 @@ module Bs5
|
|
34
29
|
end
|
35
30
|
|
36
31
|
def contextual_class
|
37
|
-
"alert-#{@
|
32
|
+
"alert-#{@style}"
|
38
33
|
end
|
39
34
|
end
|
40
35
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="<%= component_class %>"><%= text %></span>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bs5
|
4
|
+
class BadgeComponent < ViewComponent::Base
|
5
|
+
attr_reader :text, :style
|
6
|
+
|
7
|
+
include ActiveModel::Validations
|
8
|
+
validates :style, style: true
|
9
|
+
|
10
|
+
def initialize(text:, style: :secondary, pill: false)
|
11
|
+
@text = text
|
12
|
+
@style = style.to_sym
|
13
|
+
@pill = pill
|
14
|
+
end
|
15
|
+
|
16
|
+
def before_render
|
17
|
+
raise errors.full_messages.to_sentence if invalid?
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def component_class
|
23
|
+
class_names = ['badge', contextual_class]
|
24
|
+
class_names << %w[rounded-pill] if pill?
|
25
|
+
class_names.join(' ')
|
26
|
+
end
|
27
|
+
|
28
|
+
def pill?
|
29
|
+
@pill
|
30
|
+
end
|
31
|
+
|
32
|
+
def contextual_class
|
33
|
+
class_names = ["bg-#{@style}"]
|
34
|
+
class_names << %w[text-dark] if style.in?(%i[warning info light])
|
35
|
+
class_names.join(' ')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -2,16 +2,20 @@
|
|
2
2
|
|
3
3
|
module Bs5
|
4
4
|
module ComponentsHelper
|
5
|
+
def bs5_accordion(*args)
|
6
|
+
render AccordionComponent.new(*args) do |accordion|
|
7
|
+
yield accordion if block_given?
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
5
11
|
def bs5_alert(*args)
|
6
12
|
render AlertComponent.new(*args) do
|
7
13
|
yield if block_given?
|
8
14
|
end
|
9
15
|
end
|
10
16
|
|
11
|
-
def
|
12
|
-
render
|
13
|
-
yield accordion if block_given?
|
14
|
-
end
|
17
|
+
def bs5_badge(*args)
|
18
|
+
render BadgeComponent.new(*args)
|
15
19
|
end
|
16
20
|
end
|
17
21
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class StyleValidator < ActiveModel::EachValidator
|
4
|
+
STYLES = %i[primary secondary success danger warning info light dark].freeze
|
5
|
+
|
6
|
+
def validate_each(record, attribute, value)
|
7
|
+
return if value.in?(STYLES)
|
8
|
+
|
9
|
+
record.errors.add(attribute, :inclusion, valid_styles: STYLES.to_sentence)
|
10
|
+
end
|
11
|
+
end
|
data/lib/bs5/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bs5
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Baselier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -102,13 +102,17 @@ files:
|
|
102
102
|
- app/components/bs5/accordion_component.rb
|
103
103
|
- app/components/bs5/alert_component.html.erb
|
104
104
|
- app/components/bs5/alert_component.rb
|
105
|
+
- app/components/bs5/badge_component.html.erb
|
106
|
+
- app/components/bs5/badge_component.rb
|
105
107
|
- app/controllers/bs5/application_controller.rb
|
106
108
|
- app/helpers/bs5/application_helper.rb
|
107
109
|
- app/helpers/bs5/components_helper.rb
|
108
110
|
- app/jobs/bs5/application_job.rb
|
109
111
|
- app/mailers/bs5/application_mailer.rb
|
110
112
|
- app/models/bs5/application_record.rb
|
113
|
+
- app/validators/style_validator.rb
|
111
114
|
- app/views/layouts/bs5/application.html.erb
|
115
|
+
- config/locales/en.yml
|
112
116
|
- config/routes.rb
|
113
117
|
- lib/bs5.rb
|
114
118
|
- lib/bs5/engine.rb
|