sdr_view_components 0.7.0 → 0.8.0
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 +31 -0
- data/app/components/sdr_view_components/elements/navigation/dropdown_divider_component.rb +23 -0
- data/app/components/sdr_view_components/elements/navigation/dropdown_header_component.rb +26 -0
- data/app/components/sdr_view_components/elements/navigation/dropdown_link_component.rb +29 -0
- data/app/components/sdr_view_components/elements/navigation/nav_item_component.rb +8 -3
- data/lib/sdr_view_components/version.rb +1 -1
- data/spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview/default.html.erb +10 -0
- data/spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview/with_header_and_divider.html.erb +16 -0
- data/spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview.rb +13 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2a7f0502701fd4d8fa40f595c582e8d3639edd747efabae9a9453386b23c3bff
|
|
4
|
+
data.tar.gz: 17b95f5d8d01a6af4af3dbb8a0d15b9a843a03e44ab8428793de0fae84dcaf79
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6411da75700daee1d917a8bd7bdc47cdebe312af9d63b535a974d5114fee4697024532d7b31fa95150b5f4fa438897df0e97a7500dddfef7907e05a5b0fc1aa8
|
|
7
|
+
data.tar.gz: 4a062e6024b31b4c83439615ecfd6533f293b8798d36327c3dca1280a56ac9e041b205a2e92f6509ba4d5deb78ff460cfc4593ded78feddd4f46395267459ee3
|
data/README.md
CHANGED
|
@@ -189,6 +189,37 @@ See the Lookbook preview for `SdrViewComponents::TabForm::TabListComponent` for
|
|
|
189
189
|
<% render SdrViewComponent::....>
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
+
### Navigation components
|
|
193
|
+
|
|
194
|
+
SdrViewComponents provides components for building navigation bar items and dropdown menus:
|
|
195
|
+
|
|
196
|
+
- `SdrViewComponents::Elements::Navigation::NavItemComponent` -- a single navigation link (or plain text, if no `path:` is given).
|
|
197
|
+
- `SdrViewComponents::Elements::Navigation::DropdownMenuComponent` -- a Bootstrap dropdown menu. Items are added via `with_item`, and can be any renderable object -- typically one of the components below.
|
|
198
|
+
- `SdrViewComponents::Elements::Navigation::DropdownLinkComponent` -- a link within a dropdown menu (renders with the `dropdown-item` class via `link_to`). Accepts `label:`, `link:`, `classes:`, `disabled:` (adds the `disabled` class), and any additional options passed on to `link_to`.
|
|
199
|
+
- `SdrViewComponents::Elements::Navigation::DropdownHeaderComponent` -- a non-interactive section label within a dropdown menu.
|
|
200
|
+
- `SdrViewComponents::Elements::Navigation::DropdownDividerComponent` -- a horizontal divider between groups of items within a dropdown menu.
|
|
201
|
+
|
|
202
|
+
```erb
|
|
203
|
+
<ul class="navbar-nav">
|
|
204
|
+
<%= render SdrViewComponents::Elements::Navigation::NavItemComponent.new(text: 'Home', path: '/') %>
|
|
205
|
+
|
|
206
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownMenuComponent.new(text: 'Options') do |dropdown| %>
|
|
207
|
+
<% dropdown.with_item do %>
|
|
208
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownHeaderComponent.new(text: 'Section 1') %>
|
|
209
|
+
<% end %>
|
|
210
|
+
<% dropdown.with_item do %>
|
|
211
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Action', link: '#') %>
|
|
212
|
+
<% end %>
|
|
213
|
+
<% dropdown.with_item do %>
|
|
214
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownDividerComponent.new %>
|
|
215
|
+
<% end %>
|
|
216
|
+
<% dropdown.with_item do %>
|
|
217
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Another action', link: '#') %>
|
|
218
|
+
<% end %>
|
|
219
|
+
<% end %>
|
|
220
|
+
</ul>
|
|
221
|
+
```
|
|
222
|
+
|
|
192
223
|
## Component library version
|
|
193
224
|
The [component-library](https://github.com/sul-dlss/component-library/) version is set in `lib/sdr_view_components/configuration.rb`.
|
|
194
225
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SdrViewComponents
|
|
4
|
+
module Elements
|
|
5
|
+
module Navigation
|
|
6
|
+
# Component for rendering a divider within a dropdown menu.
|
|
7
|
+
class DropdownDividerComponent < BaseComponent
|
|
8
|
+
def initialize(classes: [])
|
|
9
|
+
@classes = classes
|
|
10
|
+
super()
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
tag.hr class: classes
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def classes
|
|
18
|
+
merge_classes('dropdown-divider', @classes)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SdrViewComponents
|
|
4
|
+
module Elements
|
|
5
|
+
module Navigation
|
|
6
|
+
# Component for rendering a header within a dropdown menu.
|
|
7
|
+
class DropdownHeaderComponent < BaseComponent
|
|
8
|
+
def initialize(text:, classes: [])
|
|
9
|
+
@text = text
|
|
10
|
+
@classes = classes
|
|
11
|
+
super()
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
attr_reader :text
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
tag.span text, class: classes, role: 'heading'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
merge_classes('dropdown-header', @classes)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SdrViewComponents
|
|
4
|
+
module Elements
|
|
5
|
+
module Navigation
|
|
6
|
+
# Component for rendering a link within a dropdown menu.
|
|
7
|
+
class DropdownLinkComponent < BaseComponent
|
|
8
|
+
def initialize(label:, link:, classes: [], disabled: false, **options)
|
|
9
|
+
@label = label
|
|
10
|
+
@link = link
|
|
11
|
+
@classes = classes
|
|
12
|
+
@disabled = disabled
|
|
13
|
+
@options = options
|
|
14
|
+
super()
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_reader :label, :link, :disabled
|
|
18
|
+
|
|
19
|
+
def call
|
|
20
|
+
link_to label, link, class: classes, **@options
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def classes
|
|
24
|
+
merge_classes('dropdown-item', disabled ? 'disabled' : nil, @classes)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -5,10 +5,11 @@ module SdrViewComponents
|
|
|
5
5
|
module Navigation
|
|
6
6
|
# Component for navigation item link.
|
|
7
7
|
class NavItemComponent < BaseComponent
|
|
8
|
-
def initialize(text:, path: nil, data: {})
|
|
8
|
+
def initialize(text:, path: nil, data: {}, classes: [])
|
|
9
9
|
@text = text
|
|
10
10
|
@path = path
|
|
11
11
|
@data = data
|
|
12
|
+
@classes = classes
|
|
12
13
|
super()
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -17,12 +18,16 @@ module SdrViewComponents
|
|
|
17
18
|
def call
|
|
18
19
|
tag.li class: 'nav-item' do
|
|
19
20
|
if path.present?
|
|
20
|
-
link_to text, path, class:
|
|
21
|
+
link_to text, path, class: classes, data:
|
|
21
22
|
else
|
|
22
|
-
tag.span text, class:
|
|
23
|
+
tag.span text, class: classes
|
|
23
24
|
end
|
|
24
25
|
end
|
|
25
26
|
end
|
|
27
|
+
|
|
28
|
+
def classes
|
|
29
|
+
merge_classes('nav-link', @classes)
|
|
30
|
+
end
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<ul class="navbar-nav">
|
|
2
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownMenuComponent.new(text: 'Options') do |dropdown| %>
|
|
3
|
+
<% dropdown.with_item do %>
|
|
4
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Action', link: '#') %>
|
|
5
|
+
<% end %>
|
|
6
|
+
<% dropdown.with_item do %>
|
|
7
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Another action', link: '#') %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<% end %>
|
|
10
|
+
</ul>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<ul class="navbar-nav">
|
|
2
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownMenuComponent.new(text: 'Options') do |dropdown| %>
|
|
3
|
+
<% dropdown.with_item do %>
|
|
4
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownHeaderComponent.new(text: 'Section 1') %>
|
|
5
|
+
<% end %>
|
|
6
|
+
<% dropdown.with_item do %>
|
|
7
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Action', link: '#') %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<% dropdown.with_item do %>
|
|
10
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownDividerComponent.new %>
|
|
11
|
+
<% end %>
|
|
12
|
+
<% dropdown.with_item do %>
|
|
13
|
+
<%= render SdrViewComponents::Elements::Navigation::DropdownLinkComponent.new(label: 'Another action', link: '#') %>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
16
|
+
</ul>
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sdr_view_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aaron Collier
|
|
@@ -88,6 +88,9 @@ files:
|
|
|
88
88
|
- app/components/sdr_view_components/elements/modal_component.rb
|
|
89
89
|
- app/components/sdr_view_components/elements/nav_link_component.html.erb
|
|
90
90
|
- app/components/sdr_view_components/elements/nav_link_component.rb
|
|
91
|
+
- app/components/sdr_view_components/elements/navigation/dropdown_divider_component.rb
|
|
92
|
+
- app/components/sdr_view_components/elements/navigation/dropdown_header_component.rb
|
|
93
|
+
- app/components/sdr_view_components/elements/navigation/dropdown_link_component.rb
|
|
91
94
|
- app/components/sdr_view_components/elements/navigation/dropdown_menu_component.html.erb
|
|
92
95
|
- app/components/sdr_view_components/elements/navigation/dropdown_menu_component.rb
|
|
93
96
|
- app/components/sdr_view_components/elements/navigation/nav_item_component.rb
|
|
@@ -201,6 +204,9 @@ files:
|
|
|
201
204
|
- spec/components/previews/sdr_view_components/elements/modal_component_preview/default.html.erb
|
|
202
205
|
- spec/components/previews/sdr_view_components/elements/modal_component_preview/with_header_and_footer.html.erb
|
|
203
206
|
- spec/components/previews/sdr_view_components/elements/modal_component_preview/without_size.html.erb
|
|
207
|
+
- spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview.rb
|
|
208
|
+
- spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview/default.html.erb
|
|
209
|
+
- spec/components/previews/sdr_view_components/elements/navigation/dropdown_menu_component_preview/with_header_and_divider.html.erb
|
|
204
210
|
- spec/components/previews/sdr_view_components/elements/progress_bar_component_preview.rb
|
|
205
211
|
- spec/components/previews/sdr_view_components/elements/spinner_component_preview.rb
|
|
206
212
|
- spec/components/previews/sdr_view_components/elements/tabs/tab_list_component_preview.rb
|