bs5 0.0.25 → 0.0.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/app/components/bs5/carousel/caption_component.html.erb +3 -0
  3. data/app/components/bs5/carousel/caption_component.rb +8 -0
  4. data/app/components/bs5/carousel/item_component.html.erb +4 -0
  5. data/app/components/bs5/carousel/item_component.rb +74 -0
  6. data/app/components/bs5/carousel_component.html.erb +30 -0
  7. data/app/components/bs5/carousel_component.rb +60 -0
  8. data/app/components/bs5/dropdown/item_component.html.erb +1 -0
  9. data/app/components/bs5/dropdown/item_component.rb +39 -0
  10. data/app/components/bs5/dropdown_component.html.erb +22 -0
  11. data/app/components/bs5/dropdown_component.rb +154 -0
  12. data/app/components/bs5/modal/body_component.html.erb +3 -0
  13. data/app/components/bs5/modal/body_component.rb +8 -0
  14. data/app/components/bs5/modal/controller_component.html.erb +1 -0
  15. data/app/components/bs5/modal/controller_component.rb +40 -0
  16. data/app/components/bs5/modal/footer_component.html.erb +4 -0
  17. data/app/components/bs5/modal/footer_component.rb +8 -0
  18. data/app/components/bs5/modal/header_component.html.erb +4 -0
  19. data/app/components/bs5/modal/header_component.rb +18 -0
  20. data/app/components/bs5/modal_component.html.erb +11 -0
  21. data/app/components/bs5/modal_component.rb +80 -0
  22. data/app/components/bs5/nav/item_component.html.erb +1 -0
  23. data/app/components/bs5/nav/item_component.rb +80 -0
  24. data/app/components/bs5/nav_component.html.erb +7 -0
  25. data/app/components/bs5/nav_component.rb +47 -0
  26. data/app/components/bs5/progress/bar_component.html.erb +1 -0
  27. data/app/components/bs5/progress/bar_component.rb +60 -0
  28. data/app/components/bs5/progress_component.html.erb +9 -0
  29. data/app/components/bs5/progress_component.rb +15 -0
  30. data/app/components/bs5/tabs/item_component.html.erb +3 -0
  31. data/app/components/bs5/tabs/item_component.rb +48 -0
  32. data/app/components/bs5/tabs/link_component.html.erb +1 -0
  33. data/app/components/bs5/tabs/link_component.rb +27 -0
  34. data/app/components/bs5/tabs_component.html.erb +16 -0
  35. data/app/components/bs5/tabs_component.rb +63 -0
  36. data/app/helpers/bs5/components_helper.rb +6 -3
  37. data/app/views/bs5/examples/alert/color/snippet.html.erb +8 -24
  38. data/app/views/bs5/examples/alert/default/snippet.html.erb +1 -3
  39. data/app/views/bs5/examples/carousel/_dark_variant.html.erb +2 -0
  40. data/app/views/bs5/examples/carousel/_examples.html.erb +13 -0
  41. data/app/views/bs5/examples/carousel/dark_variant/snippet1.html.erb +25 -0
  42. data/app/views/bs5/examples/carousel/examples/snippet1.html.erb +13 -0
  43. data/app/views/bs5/examples/carousel/examples/snippet2.html.erb +13 -0
  44. data/app/views/bs5/examples/carousel/examples/snippet3.html.erb +13 -0
  45. data/app/views/bs5/examples/carousel/examples/snippet4.html.erb +25 -0
  46. data/app/views/bs5/examples/carousel/examples/snippet5.html.erb +13 -0
  47. data/app/views/bs5/examples/carousel/examples/snippet6.html.erb +13 -0
  48. data/app/views/bs5/examples/dropdowns/dark/_example.html.erb +2 -0
  49. data/app/views/bs5/examples/dropdowns/dark/snippet.html.erb +7 -0
  50. data/app/views/bs5/examples/dropdowns/directions/_example.html.erb +7 -0
  51. data/app/views/bs5/examples/dropdowns/directions/snippet1.html.erb +17 -0
  52. data/app/views/bs5/examples/dropdowns/directions/snippet2.html.erb +17 -0
  53. data/app/views/bs5/examples/dropdowns/directions/snippet3.html.erb +17 -0
  54. data/app/views/bs5/examples/dropdowns/menu_alignment/_example.html.erb +5 -0
  55. data/app/views/bs5/examples/dropdowns/menu_alignment/snippet1.html.erb +5 -0
  56. data/app/views/bs5/examples/dropdowns/menu_alignment/snippet2.html.erb +7 -0
  57. data/app/views/bs5/examples/dropdowns/menu_alignment/snippet3.html.erb +7 -0
  58. data/app/views/bs5/examples/dropdowns/menu_content/_example.html.erb +9 -0
  59. data/app/views/bs5/examples/dropdowns/menu_content/snippet1.html.erb +5 -0
  60. data/app/views/bs5/examples/dropdowns/menu_content/snippet2.html.erb +7 -0
  61. data/app/views/bs5/examples/dropdowns/menu_content/snippet3.html.erb +10 -0
  62. data/app/views/bs5/examples/dropdowns/menu_content/snippet4.html.erb +24 -0
  63. data/app/views/bs5/examples/dropdowns/menu_items/_example.html.erb +7 -0
  64. data/app/views/bs5/examples/dropdowns/menu_items/snippet1.html.erb +5 -0
  65. data/app/views/bs5/examples/dropdowns/menu_items/snippet2.html.erb +6 -0
  66. data/app/views/bs5/examples/dropdowns/menu_items/snippet3.html.erb +5 -0
  67. data/app/views/bs5/examples/dropdowns/menu_items/snippet4.html.erb +5 -0
  68. data/app/views/bs5/examples/dropdowns/single/_example.html.erb +4 -0
  69. data/app/views/bs5/examples/dropdowns/single/snippet1.html.erb +5 -0
  70. data/app/views/bs5/examples/dropdowns/single/snippet2.html.erb +47 -0
  71. data/app/views/bs5/examples/dropdowns/single/snippet3.html.erb +47 -0
  72. data/app/views/bs5/examples/dropdowns/sizing/_example.html.erb +3 -0
  73. data/app/views/bs5/examples/dropdowns/sizing/snippet1.html.erb +17 -0
  74. data/app/views/bs5/examples/dropdowns/sizing/snippet2.html.erb +17 -0
  75. data/app/views/bs5/examples/dropdowns/split/_example.html.erb +3 -0
  76. data/app/views/bs5/examples/dropdowns/split/snippet1.html.erb +35 -0
  77. data/app/views/bs5/examples/dropdowns/split/snippet2.html.erb +47 -0
  78. data/app/views/bs5/examples/list_group/active/snippet.html.erb +5 -5
  79. data/app/views/bs5/examples/list_group/default/snippet.html.erb +5 -5
  80. data/app/views/bs5/examples/list_group/disabled/snippet.html.erb +5 -5
  81. data/app/views/bs5/examples/list_group/flush/snippet.html.erb +5 -5
  82. data/app/views/bs5/examples/list_group/horizontal/snippet.html.erb +18 -18
  83. data/app/views/bs5/examples/list_group/style/default.html.erb +8 -8
  84. data/app/views/bs5/examples/modal/_examples.html.erb +9 -0
  85. data/app/views/bs5/examples/modal/_fullscreen.html.erb +2 -0
  86. data/app/views/bs5/examples/modal/_optional_sizes.html.erb +2 -0
  87. data/app/views/bs5/examples/modal/examples/snippet1.html.erb +12 -0
  88. data/app/views/bs5/examples/modal/examples/snippet2.html.erb +12 -0
  89. data/app/views/bs5/examples/modal/examples/snippet3.html.erb +14 -0
  90. data/app/views/bs5/examples/modal/examples/snippet4.html.erb +12 -0
  91. data/app/views/bs5/examples/modal/fullscreen/snippet1.html.erb +55 -0
  92. data/app/views/bs5/examples/modal/optional_sizes/snippet1.html.erb +23 -0
  93. data/app/views/bs5/examples/navs_and_tabs/_base_nav.html.erb +2 -0
  94. data/app/views/bs5/examples/navs_and_tabs/_dropdowns.html.erb +5 -0
  95. data/app/views/bs5/examples/navs_and_tabs/_flex_utils.html.erb +2 -0
  96. data/app/views/bs5/examples/navs_and_tabs/_styles.html.erb +15 -0
  97. data/app/views/bs5/examples/navs_and_tabs/_tabs.html.erb +4 -0
  98. data/app/views/bs5/examples/navs_and_tabs/base_nav/snippet1.html.erb +6 -0
  99. data/app/views/bs5/examples/navs_and_tabs/dropdowns/snippet1.html.erb +14 -0
  100. data/app/views/bs5/examples/navs_and_tabs/dropdowns/snippet2.html.erb +14 -0
  101. data/app/views/bs5/examples/navs_and_tabs/flex_utils/snippet1.html.erb +6 -0
  102. data/app/views/bs5/examples/navs_and_tabs/styles/snippet1.html.erb +6 -0
  103. data/app/views/bs5/examples/navs_and_tabs/styles/snippet2.html.erb +6 -0
  104. data/app/views/bs5/examples/navs_and_tabs/styles/snippet3.html.erb +6 -0
  105. data/app/views/bs5/examples/navs_and_tabs/styles/snippet4.html.erb +6 -0
  106. data/app/views/bs5/examples/navs_and_tabs/styles/snippet5.html.erb +6 -0
  107. data/app/views/bs5/examples/navs_and_tabs/styles/snippet6.html.erb +6 -0
  108. data/app/views/bs5/examples/navs_and_tabs/styles/snippet7.html.erb +6 -0
  109. data/app/views/bs5/examples/navs_and_tabs/styles/snippet8.html.erb +6 -0
  110. data/app/views/bs5/examples/navs_and_tabs/styles/snippet9.html.erb +6 -0
  111. data/app/views/bs5/examples/navs_and_tabs/tabs/snippet1.html.erb +11 -0
  112. data/app/views/bs5/examples/navs_and_tabs/tabs/snippet2.html.erb +11 -0
  113. data/app/views/bs5/examples/navs_and_tabs/tabs/snippet3.html.erb +11 -0
  114. data/app/views/bs5/examples/progress/_animated.html.erb +2 -0
  115. data/app/views/bs5/examples/progress/_backgrounds.html.erb +2 -0
  116. data/app/views/bs5/examples/progress/_examples.html.erb +2 -0
  117. data/app/views/bs5/examples/progress/_labels.html.erb +2 -0
  118. data/app/views/bs5/examples/progress/_multiple_bars.html.erb +2 -0
  119. data/app/views/bs5/examples/progress/_striped.html.erb +2 -0
  120. data/app/views/bs5/examples/progress/animated/snippet1.html.erb +13 -0
  121. data/app/views/bs5/examples/progress/backgrounds/snippet1.html.erb +13 -0
  122. data/app/views/bs5/examples/progress/examples/snippet1.html.erb +17 -0
  123. data/app/views/bs5/examples/progress/labels/snippet1.html.erb +5 -0
  124. data/app/views/bs5/examples/progress/multiple_bars/snippet1.html.erb +5 -0
  125. data/app/views/bs5/examples/progress/striped/snippet1.html.erb +13 -0
  126. data/app/views/bs5/examples/toasts/default/snippet.html.erb +1 -1
  127. data/app/views/bs5/pages/carousel.html.erb +3 -0
  128. data/app/views/bs5/pages/dropdowns.html.erb +10 -0
  129. data/app/views/bs5/pages/modal.html.erb +4 -0
  130. data/app/views/bs5/pages/navs_and_tabs.html.erb +6 -0
  131. data/app/views/bs5/pages/progress.html.erb +7 -0
  132. data/app/views/layouts/bs5/pages.html.erb +5 -0
  133. data/lib/bs5/version.rb +1 -1
  134. metadata +122 -2
@@ -0,0 +1,16 @@
1
+ <% if items.any? %>
2
+ <%= vertical_container do %>
3
+ <nav>
4
+ <div class="<%= tablist_class %>" role="tablist">
5
+ <% items.each do |item| %>
6
+ <%= render Bs5::Tabs::LinkComponent.new(item) %>
7
+ <% end %>
8
+ </div>
9
+ </nav>
10
+ <div class="tab-content">
11
+ <% items.each do |item| %>
12
+ <%= item %>
13
+ <% end %>
14
+ </div>
15
+ <% end %>
16
+ <% end %>
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs5
4
+ class TabsComponent < ViewComponent::Base
5
+ include ViewComponent::SlotableV2
6
+
7
+ renders_many :items, Bs5::Tabs::ItemComponent
8
+
9
+ def initialize(options = {})
10
+ @options = options.symbolize_keys
11
+ extract_options
12
+ end
13
+
14
+ def before_render
15
+ items.each { |item| item.style = item_style }
16
+ end
17
+
18
+ private
19
+
20
+ def extract_options
21
+ @style = @options.delete(:style) || :pills
22
+ @vertical = @options.delete(:vertical)
23
+ end
24
+
25
+ def vertical_container(&block)
26
+ if vertical?
27
+ tag.div(class: 'd-flex align-items-start') do
28
+ capture(&block)
29
+ end
30
+ else
31
+ capture(&block)
32
+ end
33
+ end
34
+
35
+ def tablist_class
36
+ class_names = Array(@options[:class])
37
+ class_names << %w[nav]
38
+ class_names << style_class
39
+ class_names << vertical_class
40
+ class_names.join(' ')
41
+ end
42
+
43
+ def style_class
44
+ ["nav-#{@style}"]
45
+ end
46
+
47
+ def vertical_class
48
+ return unless vertical?
49
+
50
+ ['flex-column']
51
+ end
52
+
53
+ %i[vertical].each do |name|
54
+ define_method("#{name}?") do
55
+ !!instance_variable_get("@#{name}")
56
+ end
57
+ end
58
+
59
+ def item_style
60
+ @style.to_s.singularize
61
+ end
62
+ end
63
+ end
@@ -2,12 +2,15 @@
2
2
 
3
3
  module Bs5
4
4
  module ComponentsHelper
5
- COMPONENTS = %w[accordion alert badge close_button breadcrumb button_group button_tag button_to button_toolbar
6
- list_group spinner toast toast_container].freeze
5
+ COMPONENTS = %w[accordion alert badge breadcrumb button_group button_tag button_to button_toolbar
6
+ carousel close_button
7
+ dropdown list_group modal nav spinner
8
+ progress
9
+ tabs toast toast_container].freeze
7
10
 
8
11
  COMPONENTS.each do |name|
9
12
  define_method("bs5_#{name}") do |*args, &block|
10
- clazz = "Bs5::#{name.classify}Component".constantize
13
+ clazz = "Bs5::#{name.camelize}Component".constantize
11
14
  render_component(clazz, *args, &block)
12
15
  end
13
16
  end
@@ -1,31 +1,15 @@
1
- <%= bs5_alert(color: :primary) do %>
2
- A simple primary alert—check it out!
3
- <%- end %>
1
+ <%= bs5_alert(color: :primary) { "A simple primary alert—check it out!" } %>
4
2
 
5
- <%= bs5_alert(color: :secondary) do %>
6
- A simple secondary alert—check it out!
7
- <%- end %>
3
+ <%= bs5_alert(color: :secondary) { "A simple secondary alert—check it out!" } %>
8
4
 
9
- <%= bs5_alert(color: :success) do %>
10
- A simple success alert—check it out!
11
- <%- end %>
5
+ <%= bs5_alert(color: :success) { "A simple success alert—check it out!" } %>
12
6
 
13
- <%= bs5_alert(color: :danger) do %>
14
- A simple danger alert—check it out!
15
- <%- end %>
7
+ <%= bs5_alert(color: :danger) { "A simple danger alert—check it out!" } %>
16
8
 
17
- <%= bs5_alert(color: :warning) do %>
18
- A simple warning alert—check it out!
19
- <%- end %>
9
+ <%= bs5_alert(color: :warning) { "A simple warning alert—check it out!" } %>
20
10
 
21
- <%= bs5_alert(color: :info) do %>
22
- A simple info alert—check it out!
23
- <%- end %>
11
+ <%= bs5_alert(color: :info) { "A simple info alert—check it out!" } %>
24
12
 
25
- <%= bs5_alert(color: :light) do %>
26
- A simple light alert—check it out!
27
- <%- end %>
13
+ <%= bs5_alert(color: :light) { "A simple light alert—check it out!" } %>
28
14
 
29
- <%= bs5_alert(color: :dark) do %>
30
- A simple dark alert—check it out!
31
- <%- end %>
15
+ <%= bs5_alert(color: :dark) { "A simple dark alert—check it out!" } %>
@@ -1,3 +1 @@
1
- <%= bs5_alert do %>
2
- A simple primary alert—check it out!
3
- <%- end %>
1
+ <%= bs5_alert { "A simple primary alert—check it out!" } %>
@@ -0,0 +1,2 @@
1
+ <h2>Dark variant</h2>
2
+ <%= bs5_example(snippet: 'carousel/dark_variant/snippet1') %>
@@ -0,0 +1,13 @@
1
+ <h2>Examples</h2>
2
+ <h3>Slides only</h3>
3
+ <%= bs5_example(snippet: 'carousel/examples/snippet1') %>
4
+ <h3>With controls</h3>
5
+ <%= bs5_example(snippet: 'carousel/examples/snippet2') %>
6
+ <h3>With indicators</h3>
7
+ <%= bs5_example(snippet: 'carousel/examples/snippet3') %>
8
+ <h3>With captions</h3>
9
+ <%= bs5_example(snippet: 'carousel/examples/snippet4') %>
10
+ <h3>Crossfade</h3>
11
+ <%= bs5_example(snippet: 'carousel/examples/snippet5') %>
12
+ <h3>Individual <code>.carousel-item</code> interval</h3>
13
+ <%= bs5_example(snippet: 'carousel/examples/snippet6') %>
@@ -0,0 +1,25 @@
1
+ <%= bs5_carousel(controls: true, indicators: true, dark: true) do |c| %>
2
+ <% c.item do |i| %>
3
+ <%= image_tag 'https://picsum.photos/id/131/800/400?grayscale' %>
4
+ <%= i.caption do %>
5
+ <h5>First slide label</h5>
6
+ <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
7
+ <% end %>
8
+ <% end %>
9
+
10
+ <% c.item do |i| %>
11
+ <%= image_tag 'https://picsum.photos/id/383/800/400?grayscale' %>
12
+ <%= i.caption do %>
13
+ <h5>Second slide label</h5>
14
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
15
+ <% end %>
16
+ <% end %>
17
+
18
+ <% c.item do |i| %>
19
+ <%= image_tag 'https://picsum.photos/id/130/800/400' %>
20
+ <%= i.caption do %>
21
+ <h5>Third slide label</h5>
22
+ <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
23
+ <% end %>
24
+ <% end %>
25
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= bs5_carousel do |c| %>
2
+ <% c.item do %>
3
+ <%= image_tag 'https://picsum.photos/800/400?random=1' %>
4
+ <% end %>
5
+
6
+ <% c.item do %>
7
+ <%= image_tag 'https://picsum.photos/800/400?random=2' %>
8
+ <% end %>
9
+
10
+ <% c.item do %>
11
+ <%= image_tag 'https://picsum.photos/800/400?random=3' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= bs5_carousel(controls: true) do |c| %>
2
+ <% c.item do %>
3
+ <%= image_tag 'https://picsum.photos/800/400?random=1' %>
4
+ <% end %>
5
+
6
+ <% c.item do %>
7
+ <%= image_tag 'https://picsum.photos/800/400?random=2' %>
8
+ <% end %>
9
+
10
+ <% c.item do %>
11
+ <%= image_tag 'https://picsum.photos/800/400?random=3' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= bs5_carousel(controls: true, indicators: true) do |c| %>
2
+ <% c.item do %>
3
+ <%= image_tag 'https://picsum.photos/800/400?random=1' %>
4
+ <% end %>
5
+
6
+ <% c.item do %>
7
+ <%= image_tag 'https://picsum.photos/800/400?random=2' %>
8
+ <% end %>
9
+
10
+ <% c.item do %>
11
+ <%= image_tag 'https://picsum.photos/800/400?random=3' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <%= bs5_carousel(controls: true, indicators: true) do |c| %>
2
+ <% c.item do |i| %>
3
+ <%= image_tag 'https://picsum.photos/id/1042/800/400?blur=2' %>
4
+ <%= i.caption do %>
5
+ <h5>First slide label</h5>
6
+ <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
7
+ <% end %>
8
+ <% end %>
9
+
10
+ <% c.item do |i| %>
11
+ <%= image_tag 'https://picsum.photos/id/195/800/400?blur=2' %>
12
+ <%= i.caption do %>
13
+ <h5>Second slide label</h5>
14
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
15
+ <% end %>
16
+ <% end %>
17
+
18
+ <% c.item do |i| %>
19
+ <%= image_tag 'https://picsum.photos/id/960/800/400?blur=2' %>
20
+ <%= i.caption do %>
21
+ <h5>Third slide label</h5>
22
+ <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
23
+ <% end %>
24
+ <% end %>
25
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= bs5_carousel(controls: true, crossfade: true) do |c| %>
2
+ <% c.item do %>
3
+ <%= image_tag 'https://picsum.photos/800/400?random=1' %>
4
+ <% end %>
5
+
6
+ <% c.item do %>
7
+ <%= image_tag 'https://picsum.photos/800/400?random=2' %>
8
+ <% end %>
9
+
10
+ <% c.item do %>
11
+ <%= image_tag 'https://picsum.photos/800/400?random=3' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= bs5_carousel(controls: true, crossfade: true) do |c| %>
2
+ <% c.item(interval: 10_000) do %>
3
+ <%= image_tag 'https://picsum.photos/800/400?random=1' %>
4
+ <% end %>
5
+
6
+ <% c.item(interval: 2_000) do %>
7
+ <%= image_tag 'https://picsum.photos/800/400?random=2' %>
8
+ <% end %>
9
+
10
+ <% c.item do %>
11
+ <%= image_tag 'https://picsum.photos/800/400?random=3' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <h2>Dark dropdown</h2>
2
+ <%= bs5_example(snippet: 'dropdowns/dark/snippet') %>
@@ -0,0 +1,7 @@
1
+ <%= bs5_dropdown('Dropdown button', dark: true) do |d| %>
2
+ <%= d.item do %><%= link_to 'Action', '#', class: 'active' %><% end %>
3
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
5
+ <%= d.item %>
6
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
7
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <h2>Directions</h2>
2
+ <h3>Dropup</h3>
3
+ <%= bs5_example(snippet: 'dropdowns/directions/snippet1') %>
4
+ <h3>Dropright</h3>
5
+ <%= bs5_example(snippet: 'dropdowns/directions/snippet2') %>
6
+ <h3>Dropleft</h3>
7
+ <%= bs5_example(snippet: 'dropdowns/directions/snippet3') %>
@@ -0,0 +1,17 @@
1
+ <%= bs5_button_group do %>
2
+ <%= bs5_dropdown('Drop up', direction: :up) do |d| %>
3
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
5
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
6
+ <%= d.item %>
7
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
8
+ <% end %>
9
+ <% end %>
10
+
11
+ <%= bs5_dropdown('Split dropup', split: true, direction: :up) do |d| %>
12
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
13
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
14
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
15
+ <%= d.item %>
16
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
17
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <%= bs5_button_group do %>
2
+ <%= bs5_dropdown('Drop end', direction: :end) do |d| %>
3
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
5
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
6
+ <%= d.item %>
7
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
8
+ <% end %>
9
+ <% end %>
10
+
11
+ <%= bs5_dropdown('Split dropend', split: true, direction: :end) do |d| %>
12
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
13
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
14
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
15
+ <%= d.item %>
16
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
17
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <%= bs5_button_group do %>
2
+ <%= bs5_dropdown('Drop start', direction: :start) do |d| %>
3
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
5
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
6
+ <%= d.item %>
7
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
8
+ <% end %>
9
+ <% end %>
10
+
11
+ <%= bs5_dropdown('Split dropstart', split: true, direction: :start) do |d| %>
12
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
13
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
14
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
15
+ <%= d.item %>
16
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
17
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <h2>Menu alignment</h2>
2
+ <%= bs5_example(snippet: 'dropdowns/menu_alignment/snippet1') %>
3
+ <h3>Responsive alignment</h3>
4
+ <%= bs5_example(snippet: 'dropdowns/menu_alignment/snippet2') %>
5
+ <%= bs5_example(snippet: 'dropdowns/menu_alignment/snippet3') %>
@@ -0,0 +1,5 @@
1
+ <%= bs5_dropdown('Right-aligned menu example', align: :end) do |d| %>
2
+ <%= d.item do %><%= button_tag 'Action' %><% end %>
3
+ <%= d.item do %><%= button_tag 'Another action' %><% end %>
4
+ <%= d.item do %><%= button_tag 'Something else here' %><% end %>
5
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= bs5_button_group do %>
2
+ <%= bs5_dropdown('Left-aligned but right aligned when large screen', align: { end: :lg }) do |d| %>
3
+ <%= d.item do %><%= button_tag 'Action' %><% end %>
4
+ <%= d.item do %><%= button_tag 'Another action' %><% end %>
5
+ <%= d.item do %><%= button_tag 'Something else here' %><% end %>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= bs5_button_group do %>
2
+ <%= bs5_dropdown('Right-aligned but left aligned when large screen', align: { start: :lg }) do |d| %>
3
+ <%= d.item do %><%= button_tag 'Action' %><% end %>
4
+ <%= d.item do %><%= button_tag 'Another action' %><% end %>
5
+ <%= d.item do %><%= button_tag 'Something else here' %><% end %>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <h2>Menu content</h2>
2
+ <h3>Headers</h3>
3
+ <%= bs5_example(snippet: 'dropdowns/menu_content/snippet1') %>
4
+ <h3>Dividers</h3>
5
+ <%= bs5_example(snippet: 'dropdowns/menu_content/snippet2') %>
6
+ <h3>Text</h3>
7
+ <%= bs5_example(snippet: 'dropdowns/menu_content/snippet3') %>
8
+ <h3>Forms</h3>
9
+ <%= bs5_example(snippet: 'dropdowns/menu_content/snippet4') %>
@@ -0,0 +1,5 @@
1
+ <%= bs5_dropdown('Dropdown') do |d| %>
2
+ <%= d.item do %><h6 class="dropdown-header">Dropdown header</h6><% end %>
3
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
5
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= bs5_dropdown('Dropdown') do |d| %>
2
+ <%= d.item do %><%= link_to 'Action', '#' %><% end %>
3
+ <%= d.item do %><%= link_to 'Another action', '#' %><% end %>
4
+ <%= d.item do %><%= link_to 'Something else here', '#' %><% end %>
5
+ <%= d.item %>
6
+ <%= d.item do %><%= link_to 'Separated link', '#' %><% end %>
7
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <%= bs5_dropdown('Dropdown') do %>
2
+ <div class="p-4 text-muted" style="max-width: 200px;">
3
+ <p>
4
+ Some example text that's free-flowing within the dropdown menu.
5
+ </p>
6
+ <p class="mb-0">
7
+ And this is more example text.
8
+ </p>
9
+ </div>
10
+ <% end %>
@@ -0,0 +1,24 @@
1
+ <%= bs5_dropdown('Dropdown') do %>
2
+ <form class="px-4 py-3">
3
+ <div class="mb-3">
4
+ <label for="exampleDropdownFormEmail1" class="form-label">Email address</label>
5
+ <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com">
6
+ </div>
7
+ <div class="mb-3">
8
+ <label for="exampleDropdownFormPassword1" class="form-label">Password</label>
9
+ <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
10
+ </div>
11
+ <div class="mb-3">
12
+ <div class="form-check">
13
+ <input type="checkbox" class="form-check-input" id="dropdownCheck">
14
+ <label class="form-check-label" for="dropdownCheck">
15
+ Remember me
16
+ </label>
17
+ </div>
18
+ </div>
19
+ <button type="submit" class="btn btn-primary">Sign in</button>
20
+ </form>
21
+ <div class="dropdown-divider"></div>
22
+ <a class="dropdown-item" href="#">New around here? Sign up</a>
23
+ <a class="dropdown-item" href="#">Forgot password?</a>
24
+ <% end %>