bs5 0.0.4 → 0.0.9
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 +1 -70
- data/app/components/bs5/alert_component.html.erb +1 -1
- data/app/components/bs5/alert_component.rb +2 -0
- data/app/components/bs5/badge_component.rb +2 -0
- data/app/components/bs5/breadcrumb_component.html.erb +9 -0
- data/app/components/bs5/breadcrumb_component.rb +12 -0
- data/app/components/bs5/button_tag_component.rb +121 -0
- data/app/components/bs5/close_button_component.html.erb +7 -0
- data/app/components/bs5/close_button_component.rb +29 -0
- data/app/components/bs5/example_component.html.erb +8 -0
- data/app/components/bs5/example_component.rb +44 -0
- data/app/controllers/bs5/application_controller.rb +9 -0
- data/app/controllers/bs5/examples_controller.rb +9 -0
- data/app/helpers/bs5/application_helper.rb +2 -0
- data/app/helpers/bs5/components_helper.rb +11 -10
- data/app/helpers/bs5/examples_helper.rb +9 -0
- data/app/models/bs5/application_record.rb +2 -0
- data/app/validators/style_validator.rb +2 -4
- data/app/views/bs5/examples/_accordion.html.erb +3 -0
- data/app/views/bs5/examples/_alert.html.erb +5 -0
- data/app/views/bs5/examples/_badge.html.erb +4 -0
- data/app/views/bs5/examples/_breadcrumb.html.erb +2 -0
- data/app/views/bs5/examples/_buttons.html.erb +7 -0
- data/app/views/bs5/examples/_close_button.html.erb +4 -0
- data/app/views/bs5/examples/accordion/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/accordion/default/snippet.html.erb +11 -0
- data/app/views/bs5/examples/accordion/flush/_example.html.erb +2 -0
- data/app/views/bs5/examples/accordion/flush/snippet.html.erb +11 -0
- data/app/views/bs5/examples/alert/additional_content/_example.html.erb +2 -0
- data/app/views/bs5/examples/alert/additional_content/snippet.html.erb +6 -0
- data/app/views/bs5/examples/alert/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/alert/default/snippet.html.erb +3 -0
- data/app/views/bs5/examples/alert/dismissable/_example.html.erb +2 -0
- data/app/views/bs5/examples/alert/dismissable/snippet.html.erb +3 -0
- data/app/views/bs5/examples/alert/style/_example.html.erb +2 -0
- data/app/views/bs5/examples/alert/style/snippet.html.erb +31 -0
- data/app/views/bs5/examples/badge/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/badge/default/snippet.html.erb +6 -0
- data/app/views/bs5/examples/badge/pill/_example.html.erb +2 -0
- data/app/views/bs5/examples/badge/pill/snippet.html.erb +8 -0
- data/app/views/bs5/examples/badge/style/_example.html.erb +2 -0
- data/app/views/bs5/examples/badge/style/snippet.html.erb +8 -0
- data/app/views/bs5/examples/breadcrumb/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/breadcrumb/default/snippet.html.erb +14 -0
- data/app/views/bs5/examples/buttons/block_buttons/_example.html.erb +5 -0
- data/app/views/bs5/examples/buttons/block_buttons/block_buttons.html.erb +4 -0
- data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_1.html.erb +4 -0
- data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_2.html.erb +4 -0
- data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_3.html.erb +4 -0
- data/app/views/bs5/examples/buttons/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/buttons/default/snippet.html.erb +15 -0
- data/app/views/bs5/examples/buttons/outline/_example.html.erb +2 -0
- data/app/views/bs5/examples/buttons/outline/snippet.html.erb +19 -0
- data/app/views/bs5/examples/buttons/size/_example.html.erb +3 -0
- data/app/views/bs5/examples/buttons/size/large.html.erb +3 -0
- data/app/views/bs5/examples/buttons/size/small.html.erb +3 -0
- data/app/views/bs5/examples/buttons/style/_example.html.erb +2 -0
- data/app/views/bs5/examples/buttons/style/snippet.html.erb +19 -0
- data/app/views/bs5/examples/buttons/toggle_states/_example.html.erb +2 -0
- data/app/views/bs5/examples/buttons/toggle_states/snippet.html.erb +3 -0
- data/app/views/bs5/examples/close_button/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/close_button/default/snippet.html.erb +1 -0
- data/app/views/bs5/examples/close_button/disabled/_example.html.erb +2 -0
- data/app/views/bs5/examples/close_button/disabled/snippet.html.erb +1 -0
- data/app/views/bs5/examples/close_button/white/_example.html.erb +2 -0
- data/app/views/bs5/examples/close_button/white/snippet.html.erb +1 -0
- data/app/views/bs5/examples/index.html.erb +23 -0
- data/app/views/layouts/bs5/application.html.erb +6 -7
- data/config/definitions.rb +31 -0
- data/config/locales/en.yml +6 -0
- data/config/routes.rb +5 -0
- data/lib/bs5.rb +3 -1
- data/lib/bs5/version.rb +1 -1
- data/lib/generators/bs5/install/install_generator.rb +28 -20
- data/lib/tasks/bs5_tasks.rake +1 -0
- data/lib/tasks/ci.rake +3 -0
- data/lib/tasks/rubocop.rake +5 -0
- metadata +102 -15
- data/app/jobs/bs5/application_job.rb +0 -4
- data/app/mailers/bs5/application_mailer.rb +0 -6
@@ -1,11 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class StyleValidator < ActiveModel::EachValidator
|
4
|
-
STYLES = %i[primary secondary success danger warning info light dark].freeze
|
5
|
-
|
6
4
|
def validate_each(record, attribute, value)
|
7
|
-
return if value.in?(STYLES)
|
5
|
+
return if value.in?(valid_styles = record.class::STYLES)
|
8
6
|
|
9
|
-
record.errors.add(attribute, :inclusion, valid_styles:
|
7
|
+
record.errors.add(attribute, :inclusion, valid_styles: valid_styles.to_sentence)
|
10
8
|
end
|
11
9
|
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<h2>Buttons</h2>
|
2
|
+
<%= render 'bs5/examples/buttons/default/example' %>
|
3
|
+
<%= render 'bs5/examples/buttons/style/example' %>
|
4
|
+
<%= render 'bs5/examples/buttons/outline/example' %>
|
5
|
+
<%= render 'bs5/examples/buttons/size/example' %>
|
6
|
+
<%= render 'bs5/examples/buttons/block_buttons/example' %>
|
7
|
+
<%= render 'bs5/examples/buttons/toggle_states/example' %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= bs5_accordion do |accordion| %>
|
2
|
+
<% accordion.slot(:item, title: 'Accordion Item #1', collapsed: false) do %>
|
3
|
+
<strong>This is the first item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
4
|
+
<% end %>
|
5
|
+
<% accordion.slot(:item, title: 'Accordion Item #2') do %>
|
6
|
+
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
7
|
+
<% end %>
|
8
|
+
<% accordion.slot(:item, title: 'Accordion Item #3') do %>
|
9
|
+
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
|
10
|
+
<% end %>
|
11
|
+
<%- end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= bs5_accordion(flush: true) do |accordion| %>
|
2
|
+
<% accordion.slot(:item, title: 'Accordion Item #1') do %>
|
3
|
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
|
4
|
+
<% end %>
|
5
|
+
<% accordion.slot(:item, title: 'Accordion Item #2') do %>
|
6
|
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
|
7
|
+
<% end %>
|
8
|
+
<% accordion.slot(:item, title: 'Accordion Item #3') do %>
|
9
|
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
|
10
|
+
<% end %>
|
11
|
+
<%- end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<%= bs5_alert(style: :success) do %>
|
2
|
+
<h4 class="alert-heading">Well done!</h4>
|
3
|
+
<p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
|
4
|
+
<hr>
|
5
|
+
<p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
|
6
|
+
<%- end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<%= bs5_alert(style: :primary) do %>
|
2
|
+
A simple primary alert—check it out!
|
3
|
+
<%- end %>
|
4
|
+
|
5
|
+
<%= bs5_alert(style: :secondary) do %>
|
6
|
+
A simple secondary alert—check it out!
|
7
|
+
<%- end %>
|
8
|
+
|
9
|
+
<%= bs5_alert(style: :success) do %>
|
10
|
+
A simple success alert—check it out!
|
11
|
+
<%- end %>
|
12
|
+
|
13
|
+
<%= bs5_alert(style: :danger) do %>
|
14
|
+
A simple danger alert—check it out!
|
15
|
+
<%- end %>
|
16
|
+
|
17
|
+
<%= bs5_alert(style: :warning) do %>
|
18
|
+
A simple warning alert—check it out!
|
19
|
+
<%- end %>
|
20
|
+
|
21
|
+
<%= bs5_alert(style: :info) do %>
|
22
|
+
A simple info alert—check it out!
|
23
|
+
<%- end %>
|
24
|
+
|
25
|
+
<%= bs5_alert(style: :light) do %>
|
26
|
+
A simple light alert—check it out!
|
27
|
+
<%- end %>
|
28
|
+
|
29
|
+
<%= bs5_alert(style: :dark) do %>
|
30
|
+
A simple dark alert—check it out!
|
31
|
+
<%- end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<h1>Example heading <%= bs5_badge(text: 'New') %></h1>
|
2
|
+
<h2>Example heading <%= bs5_badge(text: 'New') %></h2>
|
3
|
+
<h3>Example heading <%= bs5_badge(text: 'New') %></h3>
|
4
|
+
<h4>Example heading <%= bs5_badge(text: 'New') %></h4>
|
5
|
+
<h5>Example heading <%= bs5_badge(text: 'New') %></h5>
|
6
|
+
<h6>Example heading <%= bs5_badge(text: 'New') %></h6>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= bs5_badge(text: 'Primary', style: :primary, pill: true) %>
|
2
|
+
<%= bs5_badge(text: 'Secondary', style: :secondary, pill: true) %>
|
3
|
+
<%= bs5_badge(text: 'Sucess', style: :success, pill: true) %>
|
4
|
+
<%= bs5_badge(text: 'Danger', style: :danger, pill: true) %>
|
5
|
+
<%= bs5_badge(text: 'Warning', style: :warning, pill: true) %>
|
6
|
+
<%= bs5_badge(text: 'Info', style: :info, pill: true) %>
|
7
|
+
<%= bs5_badge(text: 'Light', style: :light, pill: true) %>
|
8
|
+
<%= bs5_badge(text: 'Dark', style: :dark, pill: true) %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= bs5_badge(text: 'Primary', style: :primary) %>
|
2
|
+
<%= bs5_badge(text: 'Secondary', style: :secondary) %>
|
3
|
+
<%= bs5_badge(text: 'Success', style: :success) %>
|
4
|
+
<%= bs5_badge(text: 'Danger', style: :danger) %>
|
5
|
+
<%= bs5_badge(text: 'Warning', style: :warning) %>
|
6
|
+
<%= bs5_badge(text: 'Info', style: :info) %>
|
7
|
+
<%= bs5_badge(text: 'Light', style: :light) %>
|
8
|
+
<%= bs5_badge(text: 'Dark', style: :dark) %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= bs5_breadcrumb do |breadcrumb| %>
|
2
|
+
<% breadcrumb.slot(:item) do %>Home<% end %>
|
3
|
+
<%- end %>
|
4
|
+
|
5
|
+
<%= bs5_breadcrumb do |breadcrumb| %>
|
6
|
+
<% breadcrumb.slot(:item) do %><a href="#">Home</a><% end %>
|
7
|
+
<% breadcrumb.slot(:item) do %>Library<% end %>
|
8
|
+
<%- end %>
|
9
|
+
|
10
|
+
<%= bs5_breadcrumb do |breadcrumb| %>
|
11
|
+
<% breadcrumb.slot(:item) do %><a href="#">Home</a><% end %>
|
12
|
+
<% breadcrumb.slot(:item) do %><a href="#">Library</a><% end %>
|
13
|
+
<% breadcrumb.slot(:item) do %>Data<% end %>
|
14
|
+
<%- end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<h3>Block buttons</h3>
|
2
|
+
<%= bs5_example(snippet: 'buttons/block_buttons/block_buttons') %>
|
3
|
+
<%= bs5_example(snippet: 'buttons/block_buttons/responsive_block_buttons_1') %>
|
4
|
+
<%= bs5_example(snippet: 'buttons/block_buttons/responsive_block_buttons_2') %>
|
5
|
+
<%= bs5_example(snippet: 'buttons/block_buttons/responsive_block_buttons_3') %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= bs5_button_tag %>
|
2
|
+
|
3
|
+
<%= bs5_button_tag 'Reset', type: 'reset' %>
|
4
|
+
|
5
|
+
<%= bs5_button_tag 'Button', type: 'button' %>
|
6
|
+
|
7
|
+
<%= bs5_button_tag 'Reset', type: 'reset', disabled: true %>
|
8
|
+
|
9
|
+
<%= bs5_button_tag(type: 'button') do %>
|
10
|
+
<%= content_tag(:strong, 'Ask me!') %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= bs5_button_tag 'Save', data: { confirm: 'Are you sure?' } %>
|
14
|
+
|
15
|
+
<%= bs5_button_tag 'Checkout', data: { disable_with: 'Please wait...' } %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= bs5_button_tag 'Primary', style: :primary, outline: true %>
|
2
|
+
|
3
|
+
<%= bs5_button_tag 'Secondary', style: :secondary, outline: true %>
|
4
|
+
|
5
|
+
<%= bs5_button_tag 'Success', style: :success, outline: true %>
|
6
|
+
|
7
|
+
<%= bs5_button_tag 'Danger', style: :danger, outline: true %>
|
8
|
+
|
9
|
+
<%= bs5_button_tag(style: :warning, outline: true, type: 'button') do %>
|
10
|
+
<%= content_tag(:strong, 'Warning') %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= bs5_button_tag 'Info', style: :info, outline: true %>
|
14
|
+
|
15
|
+
<%= bs5_button_tag 'Light', style: :light, outline: true %>
|
16
|
+
|
17
|
+
<%= bs5_button_tag 'Dark', style: :dark, outline: true %>
|
18
|
+
|
19
|
+
<%= bs5_button_tag 'Link', style: :link, outline: true %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= bs5_button_tag 'Primary', style: :primary %>
|
2
|
+
|
3
|
+
<%= bs5_button_tag 'Secondary', style: :secondary %>
|
4
|
+
|
5
|
+
<%= bs5_button_tag 'Success', style: :success %>
|
6
|
+
|
7
|
+
<%= bs5_button_tag 'Danger', style: :danger %>
|
8
|
+
|
9
|
+
<%= bs5_button_tag(style: :warning, type: 'button') do %>
|
10
|
+
<%= content_tag(:strong, 'Warning') %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= bs5_button_tag 'Info', style: :info %>
|
14
|
+
|
15
|
+
<%= bs5_button_tag 'Light', style: :light %>
|
16
|
+
|
17
|
+
<%= bs5_button_tag 'Dark', style: :dark %>
|
18
|
+
|
19
|
+
<%= bs5_button_tag 'Link', style: :link %>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<%= bs5_button_tag('Toggle button', data: { toggle: 'button' }, autocomplete: 'off') %>
|
2
|
+
<%= bs5_button_tag('Active toggle button', class: 'active', data: { toggle: 'button' }, autocomplete: 'off', aria: { pressed: true }) %>
|
3
|
+
<%= bs5_button_tag('Disabled toggle button', data: { toggle: 'button' }, autocomplete: 'off', disabled: true) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= bs5_close_button %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= bs5_close_button(disabled: true) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= bs5_close_button(white: true) %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="col">
|
3
|
+
<div class="sticky-top">
|
4
|
+
<ul class="nav flex-column">
|
5
|
+
<li>Accordion</li>
|
6
|
+
<li>Alert</li>
|
7
|
+
<li>Badge</li>
|
8
|
+
<li>Close button</li>
|
9
|
+
<li>Breadcrumb</li>
|
10
|
+
<li>Buttons</li>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
<div class="col-10">
|
15
|
+
<h1>Bootstrap Examples</h1>
|
16
|
+
<%= render 'accordion' %>
|
17
|
+
<%= render 'alert' %>
|
18
|
+
<%= render 'badge' %>
|
19
|
+
<%= render 'close_button' %>
|
20
|
+
<%= render 'breadcrumb' %>
|
21
|
+
<%= render 'buttons' %>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -2,14 +2,13 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Bs5</title>
|
5
|
-
<%=
|
6
|
-
<%=
|
7
|
-
|
8
|
-
<%= stylesheet_link_tag "bs5/application", media: "all" %>
|
5
|
+
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
6
|
+
<%= stylesheet_pack_tag 'styles', media: 'all', 'data-turbolinks-track': 'reload' %>
|
7
|
+
<style><%= Rouge::Themes::Github.render(scope: '.highlight') %></style>
|
9
8
|
</head>
|
10
9
|
<body>
|
11
|
-
|
12
|
-
<%= yield %>
|
13
|
-
|
10
|
+
<div class="container">
|
11
|
+
<%= yield %>
|
12
|
+
</div>
|
14
13
|
</body>
|
15
14
|
</html>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# The following comments fill some of the gaps in Solargraph's understanding of
|
2
|
+
# Rails apps. Since they're all in YARD, they get mapped in Solargraph but
|
3
|
+
# ignored at runtime.
|
4
|
+
#
|
5
|
+
# You can put this file anywhere in the project, as long as it gets included in
|
6
|
+
# the workspace maps. It's recommended that you keep it in a standalone file
|
7
|
+
# instead of pasting it into an existing one.
|
8
|
+
#
|
9
|
+
# @!parse
|
10
|
+
# class ActionController::Base
|
11
|
+
# include ActionController::MimeResponds
|
12
|
+
# extend ActiveSupport::Callbacks::ClassMethods
|
13
|
+
# extend AbstractController::Callbacks::ClassMethods
|
14
|
+
# end
|
15
|
+
# class ActiveRecord::Base
|
16
|
+
# extend ActiveRecord::QueryMethods
|
17
|
+
# extend ActiveRecord::FinderMethods
|
18
|
+
# extend ActiveRecord::Associations::ClassMethods
|
19
|
+
# extend ActiveRecord::Inheritance::ClassMethods
|
20
|
+
# include ActiveRecord::Persistence
|
21
|
+
# end
|
22
|
+
# @!override ActiveRecord::FinderMethods#find
|
23
|
+
# @overload find(id)
|
24
|
+
# @param id [Integer]
|
25
|
+
# @return [self]
|
26
|
+
# @overload find(list)
|
27
|
+
# @param list [Array]
|
28
|
+
# @return [Array<self>]
|
29
|
+
# @overload find(*args)
|
30
|
+
# @return [Array<self>]
|
31
|
+
# @return [self, Array<self>]
|
data/config/locales/en.yml
CHANGED
@@ -6,3 +6,9 @@ en:
|
|
6
6
|
attributes:
|
7
7
|
style:
|
8
8
|
inclusion: "is not included in the list: %{valid_styles}."
|
9
|
+
bs5/button_tag_component:
|
10
|
+
attributes:
|
11
|
+
style:
|
12
|
+
inclusion: "is not included in the list: %{valid_styles}."
|
13
|
+
size:
|
14
|
+
inclusion: "is not included in the list: %{valid_sizes}."
|