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.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -70
  3. data/app/components/bs5/alert_component.html.erb +1 -1
  4. data/app/components/bs5/alert_component.rb +2 -0
  5. data/app/components/bs5/badge_component.rb +2 -0
  6. data/app/components/bs5/breadcrumb_component.html.erb +9 -0
  7. data/app/components/bs5/breadcrumb_component.rb +12 -0
  8. data/app/components/bs5/button_tag_component.rb +121 -0
  9. data/app/components/bs5/close_button_component.html.erb +7 -0
  10. data/app/components/bs5/close_button_component.rb +29 -0
  11. data/app/components/bs5/example_component.html.erb +8 -0
  12. data/app/components/bs5/example_component.rb +44 -0
  13. data/app/controllers/bs5/application_controller.rb +9 -0
  14. data/app/controllers/bs5/examples_controller.rb +9 -0
  15. data/app/helpers/bs5/application_helper.rb +2 -0
  16. data/app/helpers/bs5/components_helper.rb +11 -10
  17. data/app/helpers/bs5/examples_helper.rb +9 -0
  18. data/app/models/bs5/application_record.rb +2 -0
  19. data/app/validators/style_validator.rb +2 -4
  20. data/app/views/bs5/examples/_accordion.html.erb +3 -0
  21. data/app/views/bs5/examples/_alert.html.erb +5 -0
  22. data/app/views/bs5/examples/_badge.html.erb +4 -0
  23. data/app/views/bs5/examples/_breadcrumb.html.erb +2 -0
  24. data/app/views/bs5/examples/_buttons.html.erb +7 -0
  25. data/app/views/bs5/examples/_close_button.html.erb +4 -0
  26. data/app/views/bs5/examples/accordion/default/_example.html.erb +2 -0
  27. data/app/views/bs5/examples/accordion/default/snippet.html.erb +11 -0
  28. data/app/views/bs5/examples/accordion/flush/_example.html.erb +2 -0
  29. data/app/views/bs5/examples/accordion/flush/snippet.html.erb +11 -0
  30. data/app/views/bs5/examples/alert/additional_content/_example.html.erb +2 -0
  31. data/app/views/bs5/examples/alert/additional_content/snippet.html.erb +6 -0
  32. data/app/views/bs5/examples/alert/default/_example.html.erb +2 -0
  33. data/app/views/bs5/examples/alert/default/snippet.html.erb +3 -0
  34. data/app/views/bs5/examples/alert/dismissable/_example.html.erb +2 -0
  35. data/app/views/bs5/examples/alert/dismissable/snippet.html.erb +3 -0
  36. data/app/views/bs5/examples/alert/style/_example.html.erb +2 -0
  37. data/app/views/bs5/examples/alert/style/snippet.html.erb +31 -0
  38. data/app/views/bs5/examples/badge/default/_example.html.erb +2 -0
  39. data/app/views/bs5/examples/badge/default/snippet.html.erb +6 -0
  40. data/app/views/bs5/examples/badge/pill/_example.html.erb +2 -0
  41. data/app/views/bs5/examples/badge/pill/snippet.html.erb +8 -0
  42. data/app/views/bs5/examples/badge/style/_example.html.erb +2 -0
  43. data/app/views/bs5/examples/badge/style/snippet.html.erb +8 -0
  44. data/app/views/bs5/examples/breadcrumb/default/_example.html.erb +2 -0
  45. data/app/views/bs5/examples/breadcrumb/default/snippet.html.erb +14 -0
  46. data/app/views/bs5/examples/buttons/block_buttons/_example.html.erb +5 -0
  47. data/app/views/bs5/examples/buttons/block_buttons/block_buttons.html.erb +4 -0
  48. data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_1.html.erb +4 -0
  49. data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_2.html.erb +4 -0
  50. data/app/views/bs5/examples/buttons/block_buttons/responsive_block_buttons_3.html.erb +4 -0
  51. data/app/views/bs5/examples/buttons/default/_example.html.erb +2 -0
  52. data/app/views/bs5/examples/buttons/default/snippet.html.erb +15 -0
  53. data/app/views/bs5/examples/buttons/outline/_example.html.erb +2 -0
  54. data/app/views/bs5/examples/buttons/outline/snippet.html.erb +19 -0
  55. data/app/views/bs5/examples/buttons/size/_example.html.erb +3 -0
  56. data/app/views/bs5/examples/buttons/size/large.html.erb +3 -0
  57. data/app/views/bs5/examples/buttons/size/small.html.erb +3 -0
  58. data/app/views/bs5/examples/buttons/style/_example.html.erb +2 -0
  59. data/app/views/bs5/examples/buttons/style/snippet.html.erb +19 -0
  60. data/app/views/bs5/examples/buttons/toggle_states/_example.html.erb +2 -0
  61. data/app/views/bs5/examples/buttons/toggle_states/snippet.html.erb +3 -0
  62. data/app/views/bs5/examples/close_button/default/_example.html.erb +2 -0
  63. data/app/views/bs5/examples/close_button/default/snippet.html.erb +1 -0
  64. data/app/views/bs5/examples/close_button/disabled/_example.html.erb +2 -0
  65. data/app/views/bs5/examples/close_button/disabled/snippet.html.erb +1 -0
  66. data/app/views/bs5/examples/close_button/white/_example.html.erb +2 -0
  67. data/app/views/bs5/examples/close_button/white/snippet.html.erb +1 -0
  68. data/app/views/bs5/examples/index.html.erb +23 -0
  69. data/app/views/layouts/bs5/application.html.erb +6 -7
  70. data/config/definitions.rb +31 -0
  71. data/config/locales/en.yml +6 -0
  72. data/config/routes.rb +5 -0
  73. data/lib/bs5.rb +3 -1
  74. data/lib/bs5/version.rb +1 -1
  75. data/lib/generators/bs5/install/install_generator.rb +28 -20
  76. data/lib/tasks/bs5_tasks.rake +1 -0
  77. data/lib/tasks/ci.rake +3 -0
  78. data/lib/tasks/rubocop.rake +5 -0
  79. metadata +102 -15
  80. data/app/jobs/bs5/application_job.rb +0 -4
  81. 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: STYLES.to_sentence)
7
+ record.errors.add(attribute, :inclusion, valid_styles: valid_styles.to_sentence)
10
8
  end
11
9
  end
@@ -0,0 +1,3 @@
1
+ <h2>Accordion</h2>
2
+ <%= render 'bs5/examples/accordion/default/example' %>
3
+ <%= render 'bs5/examples/accordion/flush/example' %>
@@ -0,0 +1,5 @@
1
+ <h2>Alert</h2>
2
+ <%= render 'bs5/examples/alert/default/example' %>
3
+ <%= render 'bs5/examples/alert/style/example' %>
4
+ <%= render 'bs5/examples/alert/additional_content/example' %>
5
+ <%= render 'bs5/examples/alert/dismissable/example' %>
@@ -0,0 +1,4 @@
1
+ <h2>Badge</h2>
2
+ <%= render 'bs5/examples/badge/default/example' %>
3
+ <%= render 'bs5/examples/badge/style/example' %>
4
+ <%= render 'bs5/examples/badge/pill/example' %>
@@ -0,0 +1,2 @@
1
+ <h2>Breadcrumb</h2>
2
+ <%= render 'bs5/examples/breadcrumb/default/example' %>
@@ -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,4 @@
1
+ <h2>Close button</h2>
2
+ <%= render 'bs5/examples/close_button/default/example' %>
3
+ <%= render 'bs5/examples/close_button/disabled/example' %>
4
+ <%= render 'bs5/examples/close_button/white/example' %>
@@ -0,0 +1,2 @@
1
+ <h3>Default</h3>
2
+ <%= bs5_example(snippet: 'accordion/default/snippet') %>
@@ -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,2 @@
1
+ <h3>Flush</h3>
2
+ <%= bs5_example(snippet: 'accordion/flush/snippet') %>
@@ -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,2 @@
1
+ <h3>Additional content</h3>
2
+ <%= bs5_example(snippet: 'alert/additional_content/snippet') %>
@@ -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,2 @@
1
+ <h3>Default</h3>
2
+ <%= bs5_example(snippet: 'alert/default/snippet') %>
@@ -0,0 +1,3 @@
1
+ <%= bs5_alert do %>
2
+ A simple primary alert—check it out!
3
+ <%- end %>
@@ -0,0 +1,2 @@
1
+ <h3>Dismissing</h3>
2
+ <%= bs5_example(snippet: 'alert/dismissable/snippet') %>
@@ -0,0 +1,3 @@
1
+ <%= bs5_alert(style: :warning, is_dismissable: true) do %>
2
+ <strong>Holy guacamole!</strong> You should check in on some of those fields below.
3
+ <%- end %>
@@ -0,0 +1,2 @@
1
+ <h3>Style</h3>
2
+ <%= bs5_example(snippet: 'alert/style/snippet') %>
@@ -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,2 @@
1
+ <h3>Example</h3>
2
+ <%= bs5_example(snippet: 'badge/default/snippet') %>
@@ -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,2 @@
1
+ <h3>Pill badges</h3>
2
+ <%= bs5_example(snippet: 'badge/pill/snippet') %>
@@ -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,2 @@
1
+ <h3>Background colors</h3>
2
+ <%= bs5_example(snippet: 'badge/style/snippet') %>
@@ -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,2 @@
1
+ <h3>Example</h3>
2
+ <%= bs5_example(snippet: 'breadcrumb/default/snippet') %>
@@ -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,4 @@
1
+ <div class="d-grid gap-2">
2
+ <%= bs5_button_tag %>
3
+ <%= bs5_button_tag %>
4
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="d-grid gap-2 d-md-block">
2
+ <%= bs5_button_tag %>
3
+ <%= bs5_button_tag %>
4
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="d-grid gap-2 col-6 mx-auto">
2
+ <%= bs5_button_tag %>
3
+ <%= bs5_button_tag %>
4
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="d-grid gap-2 d-md-flex justify-content-md-end">
2
+ <%= bs5_button_tag('Button', class: 'mr-md-2') %>
3
+ <%= bs5_button_tag %>
4
+ </div>
@@ -0,0 +1,2 @@
1
+ <h3>Example</h3>
2
+ <%= bs5_example(snippet: 'buttons/default/snippet') %>
@@ -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,2 @@
1
+ <h3>Outline</h3>
2
+ <%= bs5_example(snippet: 'buttons/outline/snippet') %>
@@ -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,3 @@
1
+ <h3>Sizes</h3>
2
+ <%= bs5_example(snippet: 'buttons/size/large') %>
3
+ <%= bs5_example(snippet: 'buttons/size/small') %>
@@ -0,0 +1,3 @@
1
+ <%= bs5_button_tag 'Large button', style: :primary, size: :large %>
2
+
3
+ <%= bs5_button_tag 'Large button', style: :secondary, size: :large %>
@@ -0,0 +1,3 @@
1
+ <%= bs5_button_tag 'Small button', style: :primary, size: :small %>
2
+
3
+ <%= bs5_button_tag 'Small button', style: :secondary, size: :small %>
@@ -0,0 +1,2 @@
1
+ <h3>Style</h3>
2
+ <%= bs5_example(snippet: 'buttons/style/snippet') %>
@@ -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,2 @@
1
+ <h3>Toggle states</h3>
2
+ <%= bs5_example(snippet: 'buttons/toggle_states/snippet') %>
@@ -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,2 @@
1
+ <h3>Default</h3>
2
+ <%= bs5_example(snippet: 'close_button/default/snippet') %>
@@ -0,0 +1 @@
1
+ <%= bs5_close_button %>
@@ -0,0 +1,2 @@
1
+ <h3>Disabled</h3>
2
+ <%= bs5_example(snippet: 'close_button/disabled/snippet') %>
@@ -0,0 +1 @@
1
+ <%= bs5_close_button(disabled: true) %>
@@ -0,0 +1,2 @@
1
+ <h3>White</h3>
2
+ <%= bs5_example(snippet: 'close_button/white/snippet') %>
@@ -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
- <%= csrf_meta_tags %>
6
- <%= csp_meta_tag %>
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>]
@@ -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}."