voom-presenters 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +54 -0
- data/.ruby-version +1 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +104 -0
- data/LICENSE +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +45 -0
- data/ROADMAP.md +21 -0
- data/Rakefile +6 -0
- data/app/demo/component_status.pom +76 -0
- data/app/demo/components.pom +19 -0
- data/app/demo/components/badges.pom +25 -0
- data/app/demo/components/buttons.pom +51 -0
- data/app/demo/components/cards.pom +79 -0
- data/app/demo/components/chips.pom +91 -0
- data/app/demo/components/dialogs.pom +27 -0
- data/app/demo/components/drawers.pom +34 -0
- data/app/demo/components/expansion_panels.pom +21 -0
- data/app/demo/components/fabs-mini.pom +18 -0
- data/app/demo/components/fabs.pom +16 -0
- data/app/demo/components/footers.pom +36 -0
- data/app/demo/components/forms.pom +30 -0
- data/app/demo/components/headers.pom +37 -0
- data/app/demo/components/hidden_fields.pom +20 -0
- data/app/demo/components/icons.pom +94 -0
- data/app/demo/components/layouts.pom +44 -0
- data/app/demo/components/lists.pom +124 -0
- data/app/demo/components/menus.pom +43 -0
- data/app/demo/components/nav/drawer.pom +5 -0
- data/app/demo/components/nav/menu.pom +15 -0
- data/app/demo/components/selects.pom +30 -0
- data/app/demo/components/snackbar.pom +24 -0
- data/app/demo/components/snackbar_attached.pom +6 -0
- data/app/demo/components/tables.pom +39 -0
- data/app/demo/components/text_areas.pom +19 -0
- data/app/demo/components/text_fields.pom +57 -0
- data/app/demo/components/toggles.pom +29 -0
- data/app/demo/components/tooltips.pom +120 -0
- data/app/demo/event/actions.rb +86 -0
- data/app/demo/event/actions/dialog/show_dialog.pom +9 -0
- data/app/demo/event/actions/dialog/trigger.pom +86 -0
- data/app/demo/event/actions/nav/drawer.pom +5 -0
- data/app/demo/event/actions/nav/menu.pom +19 -0
- data/app/demo/event/autocomplete.pom +27 -0
- data/app/demo/event/field_level.pom +22 -0
- data/app/demo/event/form_level.pom +26 -0
- data/app/demo/event/nav/drawer.pom +5 -0
- data/app/demo/event/nav/menu.pom +14 -0
- data/app/demo/event/new_text.pom +6 -0
- data/app/demo/events.pom +98 -0
- data/app/demo/helpers/indented_grid.rb +14 -0
- data/app/demo/index.pom +19 -0
- data/app/demo/markdown.pom +73 -0
- data/app/demo/nav/top_nav.pom +42 -0
- data/app/demo/shared/code.pom +20 -0
- data/app/demo/shared/context_list.pom +29 -0
- data/app/demo/shared/debug.pom +17 -0
- data/app/demo/styles.pom +26 -0
- data/bin/console +22 -0
- data/bin/setup +8 -0
- data/component-status.yml +219 -0
- data/config.ru +21 -0
- data/lib/voom-presenters.rb +9 -0
- data/lib/voom/container_methods.rb +40 -0
- data/lib/voom/logger_methods.rb +11 -0
- data/lib/voom/parameters.rb +73 -0
- data/lib/voom/presenters-engine.rb +40 -0
- data/lib/voom/presenters.rb +13 -0
- data/lib/voom/presenters/api/app.rb +53 -0
- data/lib/voom/presenters/api/router.rb +94 -0
- data/lib/voom/presenters/app.rb +55 -0
- data/lib/voom/presenters/container_item.rb +16 -0
- data/lib/voom/presenters/demo/echo.rb +29 -0
- data/lib/voom/presenters/demo/search-terms.yml +50 -0
- data/lib/voom/presenters/demo/search.rb +29 -0
- data/lib/voom/presenters/dsl.rb +60 -0
- data/lib/voom/presenters/dsl/components/action.rb +35 -0
- data/lib/voom/presenters/dsl/components/avatar.rb +27 -0
- data/lib/voom/presenters/dsl/components/badge.rb +21 -0
- data/lib/voom/presenters/dsl/components/base.rb +78 -0
- data/lib/voom/presenters/dsl/components/button.rb +49 -0
- data/lib/voom/presenters/dsl/components/card.rb +119 -0
- data/lib/voom/presenters/dsl/components/checkbox.rb +16 -0
- data/lib/voom/presenters/dsl/components/chip.rb +48 -0
- data/lib/voom/presenters/dsl/components/content.rb +33 -0
- data/lib/voom/presenters/dsl/components/date_time.rb +17 -0
- data/lib/voom/presenters/dsl/components/dialog.rb +50 -0
- data/lib/voom/presenters/dsl/components/drawer.rb +40 -0
- data/lib/voom/presenters/dsl/components/event.rb +101 -0
- data/lib/voom/presenters/dsl/components/event_base.rb +20 -0
- data/lib/voom/presenters/dsl/components/expansion_panel.rb +46 -0
- data/lib/voom/presenters/dsl/components/footer.rb +25 -0
- data/lib/voom/presenters/dsl/components/form.rb +42 -0
- data/lib/voom/presenters/dsl/components/grid.rb +64 -0
- data/lib/voom/presenters/dsl/components/header.rb +33 -0
- data/lib/voom/presenters/dsl/components/hidden_field.rb +25 -0
- data/lib/voom/presenters/dsl/components/icon.rb +21 -0
- data/lib/voom/presenters/dsl/components/icon_base.rb +24 -0
- data/lib/voom/presenters/dsl/components/icon_toggle.rb +21 -0
- data/lib/voom/presenters/dsl/components/image.rb +36 -0
- data/lib/voom/presenters/dsl/components/input.rb +19 -0
- data/lib/voom/presenters/dsl/components/list.rb +39 -0
- data/lib/voom/presenters/dsl/components/lists/action.rb +72 -0
- data/lib/voom/presenters/dsl/components/lists/line.rb +83 -0
- data/lib/voom/presenters/dsl/components/lists/separator.rb +16 -0
- data/lib/voom/presenters/dsl/components/menu.rb +66 -0
- data/lib/voom/presenters/dsl/components/mixins/append.rb +20 -0
- data/lib/voom/presenters/dsl/components/mixins/attaches.rb +18 -0
- data/lib/voom/presenters/dsl/components/mixins/avatar.rb +18 -0
- data/lib/voom/presenters/dsl/components/mixins/buttons.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/chips.rb +21 -0
- data/lib/voom/presenters/dsl/components/mixins/common.rb +50 -0
- data/lib/voom/presenters/dsl/components/mixins/content.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/dialogs.rb +19 -0
- data/lib/voom/presenters/dsl/components/mixins/event.rb +19 -0
- data/lib/voom/presenters/dsl/components/mixins/expansion_panels.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/grids.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/helpers.rb +20 -0
- data/lib/voom/presenters/dsl/components/mixins/icons.rb +17 -0
- data/lib/voom/presenters/dsl/components/mixins/images.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/menus.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/selects.rb +17 -0
- data/lib/voom/presenters/dsl/components/mixins/snackbars.rb +18 -0
- data/lib/voom/presenters/dsl/components/mixins/text_fields.rb +35 -0
- data/lib/voom/presenters/dsl/components/mixins/toggles.rb +40 -0
- data/lib/voom/presenters/dsl/components/mixins/tooltips.rb +18 -0
- data/lib/voom/presenters/dsl/components/mixins/typography.rb +37 -0
- data/lib/voom/presenters/dsl/components/page.rb +29 -0
- data/lib/voom/presenters/dsl/components/radio_button.rb +14 -0
- data/lib/voom/presenters/dsl/components/select.rb +64 -0
- data/lib/voom/presenters/dsl/components/snackbar.rb +32 -0
- data/lib/voom/presenters/dsl/components/switch.rb +14 -0
- data/lib/voom/presenters/dsl/components/table.rb +102 -0
- data/lib/voom/presenters/dsl/components/text_area.rb +20 -0
- data/lib/voom/presenters/dsl/components/text_field.rb +74 -0
- data/lib/voom/presenters/dsl/components/toggle_base.rb +26 -0
- data/lib/voom/presenters/dsl/components/tooltip.rb +25 -0
- data/lib/voom/presenters/dsl/components/typography.rb +25 -0
- data/lib/voom/presenters/dsl/definer.rb +13 -0
- data/lib/voom/presenters/dsl/definition.rb +31 -0
- data/lib/voom/presenters/dsl/invalid_presenter.rb +8 -0
- data/lib/voom/presenters/dsl/lockable.rb +15 -0
- data/lib/voom/presenters/dsl/user_interface.rb +135 -0
- data/lib/voom/presenters/errors/parameter_validation.rb +10 -0
- data/lib/voom/presenters/errors/unprocessable.rb +8 -0
- data/lib/voom/presenters/helpers.rb +18 -0
- data/lib/voom/presenters/helpers/currency.rb +14 -0
- data/lib/voom/presenters/helpers/date.rb +22 -0
- data/lib/voom/presenters/helpers/errors.rb +11 -0
- data/lib/voom/presenters/helpers/inflector.rb +16 -0
- data/lib/voom/presenters/helpers/rails.rb +60 -0
- data/lib/voom/presenters/helpers/route.rb +11 -0
- data/lib/voom/presenters/helpers/time.rb +27 -0
- data/lib/voom/presenters/settings.rb +35 -0
- data/lib/voom/presenters/version.rb +5 -0
- data/lib/voom/presenters/web_client/app.rb +128 -0
- data/lib/voom/presenters/web_client/markdown_render.rb +16 -0
- data/lib/voom/presenters/web_client/router.rb +96 -0
- data/lib/voom/serializer.rb +43 -0
- data/lib/voom/symbol/to_str.rb +29 -0
- data/lib/voom/trace.rb +19 -0
- data/presenters.gemspec +37 -0
- data/public/.gitignore +2 -0
- data/public/bundle.css +11413 -0
- data/public/bundle.js +16456 -0
- data/public/dialog-polyfill.js +738 -0
- data/public/favicon.ico +0 -0
- data/public/img/demo/dog.png +0 -0
- data/public/img/demo/image_card.jpg +0 -0
- data/public/img/demo/rx.png +0 -0
- data/public/img/demo/welcome_card.jpg +0 -0
- data/public/img/settings/blue.png +0 -0
- data/public/img/settings/green.png +0 -0
- data/public/img/settings/orange.png +0 -0
- data/public/img/settings/purple.png +0 -0
- data/public/img/settings/red.png +0 -0
- data/public/img/settings/teal.png +0 -0
- data/public/img/settings/white.png +0 -0
- data/public/img/settings/yellow.png +0 -0
- data/public/scripts.js +289 -0
- data/public/style-bundle.js +73 -0
- data/public/styles.css +16 -0
- data/views/mdc/.gitignore +1 -0
- data/views/mdc/assets/js/app.js +10 -0
- data/views/mdc/assets/js/components/base-component.js +5 -0
- data/views/mdc/assets/js/components/button.js +15 -0
- data/views/mdc/assets/js/components/cards.js +3 -0
- data/views/mdc/assets/js/components/checkboxes.js +15 -0
- data/views/mdc/assets/js/components/chips.js +12 -0
- data/views/mdc/assets/js/components/date-time.js +6 -0
- data/views/mdc/assets/js/components/dialogs.js +32 -0
- data/views/mdc/assets/js/components/events.js +151 -0
- data/views/mdc/assets/js/components/events/autocomplete.js +96 -0
- data/views/mdc/assets/js/components/events/base.js +41 -0
- data/views/mdc/assets/js/components/events/dialog.js +25 -0
- data/views/mdc/assets/js/components/events/errors.js +142 -0
- data/views/mdc/assets/js/components/events/loads.js +22 -0
- data/views/mdc/assets/js/components/events/navigates.js +17 -0
- data/views/mdc/assets/js/components/events/posts.js +99 -0
- data/views/mdc/assets/js/components/events/replaces.js +82 -0
- data/views/mdc/assets/js/components/events/selects.js +28 -0
- data/views/mdc/assets/js/components/events/snackbar.js +23 -0
- data/views/mdc/assets/js/components/events/toggle_visiblity.js +19 -0
- data/views/mdc/assets/js/components/forms.js +57 -0
- data/views/mdc/assets/js/components/icon-toggles.js +21 -0
- data/views/mdc/assets/js/components/initialize.js +34 -0
- data/views/mdc/assets/js/components/lists.js +4 -0
- data/views/mdc/assets/js/components/menus.js +31 -0
- data/views/mdc/assets/js/components/mixins/event-handler.js +13 -0
- data/views/mdc/assets/js/components/selects.js +45 -0
- data/views/mdc/assets/js/components/snackbar.js +32 -0
- data/views/mdc/assets/js/components/text-fields.js +77 -0
- data/views/mdc/assets/js/dialog-polyfill.js +738 -0
- data/views/mdc/assets/js/material.js +3996 -0
- data/views/mdc/assets/js/utils/urls.js +54 -0
- data/views/mdc/assets/scss/app.scss +31 -0
- data/views/mdc/assets/scss/components/avatar.scss +41 -0
- data/views/mdc/assets/scss/components/button.scss +47 -0
- data/views/mdc/assets/scss/components/card.scss +54 -0
- data/views/mdc/assets/scss/components/checkbox.scss +5 -0
- data/views/mdc/assets/scss/components/chip.scss +30 -0
- data/views/mdc/assets/scss/components/datetime.scss +0 -0
- data/views/mdc/assets/scss/components/dialog.scss +3 -0
- data/views/mdc/assets/scss/components/expansion-panel.scss +153 -0
- data/views/mdc/assets/scss/components/fab.scss +8 -0
- data/views/mdc/assets/scss/components/grid.scss +10 -0
- data/views/mdc/assets/scss/components/icon-toggles.scss +9 -0
- data/views/mdc/assets/scss/components/icon.scss +34 -0
- data/views/mdc/assets/scss/components/image.scss +24 -0
- data/views/mdc/assets/scss/components/list.scss +9 -0
- data/views/mdc/assets/scss/components/menu.scss +17 -0
- data/views/mdc/assets/scss/components/select.scss +16 -0
- data/views/mdc/assets/scss/components/snackbar.scss +5 -0
- data/views/mdc/assets/scss/components/switch.scss +6 -0
- data/views/mdc/assets/scss/components/table-pagination.scss +65 -0
- data/views/mdc/assets/scss/components/textfield.scss +1 -0
- data/views/mdc/assets/scss/components/typography.scss +25 -0
- data/views/mdc/assets/scss/material.blue_grey-orange.min.css +8 -0
- data/views/mdc/assets/scss/styles.scss +11 -0
- data/views/mdc/assets/scss/theme.scss +5 -0
- data/views/mdc/body/drawer.erb +18 -0
- data/views/mdc/body/drawers/menu.erb +25 -0
- data/views/mdc/body/footer.erb +1 -0
- data/views/mdc/body/footers/large.erb +27 -0
- data/views/mdc/body/footers/menu_item.erb +6 -0
- data/views/mdc/body/footers/small.erb +14 -0
- data/views/mdc/body/header.erb +25 -0
- data/views/mdc/body/snackbar.erb +10 -0
- data/views/mdc/components/avatar.erb +24 -0
- data/views/mdc/components/badge.erb +2 -0
- data/views/mdc/components/body.erb +2 -0
- data/views/mdc/components/button.erb +17 -0
- data/views/mdc/components/buttons/button.erb +20 -0
- data/views/mdc/components/buttons/fab.erb +22 -0
- data/views/mdc/components/buttons/icon.erb +24 -0
- data/views/mdc/components/card.erb +49 -0
- data/views/mdc/components/checkbox.erb +22 -0
- data/views/mdc/components/chip.erb +31 -0
- data/views/mdc/components/content.erb +11 -0
- data/views/mdc/components/date_time.erb +30 -0
- data/views/mdc/components/dialog.erb +27 -0
- data/views/mdc/components/display.erb +2 -0
- data/views/mdc/components/event.erb +18 -0
- data/views/mdc/components/expansion_panel.erb +11 -0
- data/views/mdc/components/form.erb +15 -0
- data/views/mdc/components/grid.erb +24 -0
- data/views/mdc/components/headline.erb +2 -0
- data/views/mdc/components/hidden_field.erb +1 -0
- data/views/mdc/components/icon.erb +30 -0
- data/views/mdc/components/icon_toggle.erb +15 -0
- data/views/mdc/components/image.erb +7 -0
- data/views/mdc/components/link.erb +14 -0
- data/views/mdc/components/list.erb +14 -0
- data/views/mdc/components/list/actions.erb +6 -0
- data/views/mdc/components/list/actions/button.erb +1 -0
- data/views/mdc/components/list/actions/checkbox.erb +1 -0
- data/views/mdc/components/list/actions/icon.erb +1 -0
- data/views/mdc/components/list/actions/icon_toggle.erb +1 -0
- data/views/mdc/components/list/actions/radio_button.erb +1 -0
- data/views/mdc/components/list/actions/switch.erb +1 -0
- data/views/mdc/components/list/avatar.erb +5 -0
- data/views/mdc/components/list/checkbox.erb +5 -0
- data/views/mdc/components/list/icon.erb +5 -0
- data/views/mdc/components/list/info.erb +1 -0
- data/views/mdc/components/list/line.erb +34 -0
- data/views/mdc/components/list/menu.erb +23 -0
- data/views/mdc/components/list/separator.erb +1 -0
- data/views/mdc/components/menu.erb +29 -0
- data/views/mdc/components/modal.erb +15 -0
- data/views/mdc/components/radio_button.erb +11 -0
- data/views/mdc/components/render.erb +4 -0
- data/views/mdc/components/select.erb +22 -0
- data/views/mdc/components/snackbar.erb +17 -0
- data/views/mdc/components/static.erb +7 -0
- data/views/mdc/components/subheading.erb +2 -0
- data/views/mdc/components/switch.erb +13 -0
- data/views/mdc/components/table.erb +13 -0
- data/views/mdc/components/table/header.erb +7 -0
- data/views/mdc/components/table/pagination.erb +24 -0
- data/views/mdc/components/table/row.erb +14 -0
- data/views/mdc/components/text_area.erb +8 -0
- data/views/mdc/components/text_field.erb +27 -0
- data/views/mdc/components/title.erb +4 -0
- data/views/mdc/components/tooltip.erb +5 -0
- data/views/mdc/components/typography.erb +13 -0
- data/views/mdc/init-depends.sh +2 -0
- data/views/mdc/layout.erb +50 -0
- data/views/mdc/package-lock.json +11524 -0
- data/views/mdc/package.json +39 -0
- data/views/mdc/web.erb +1 -0
- data/views/mdc/webpack.config.js +47 -0
- metadata +539 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:cards) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
|
9
|
+
indented_grid do
|
10
|
+
display 'Cards'
|
11
|
+
|
12
|
+
headline 'Wide'
|
13
|
+
card width: '512px' do
|
14
|
+
media do
|
15
|
+
image 'img/demo/welcome_card.jpg', width: 512, height: 176
|
16
|
+
title 'Welcome', color: :white, position: :bottom
|
17
|
+
button icon: :share_icon, color: :white do
|
18
|
+
menu do
|
19
|
+
item 'Share with mom'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
text "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis pellentesque lacus eleifend lacinia... "
|
24
|
+
|
25
|
+
actions do
|
26
|
+
button 'Get Started', color: :primary
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
headline 'Square'
|
31
|
+
card width: '330px' do
|
32
|
+
media height: '200px', color: '#46B6AC' do
|
33
|
+
image 'img/demo/dog.png', position: [:bottom, :right]
|
34
|
+
title 'Update', color: :white, position: :bottom
|
35
|
+
end
|
36
|
+
text "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis."
|
37
|
+
|
38
|
+
actions do
|
39
|
+
button 'View Updates', color: :primary
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
headline 'Image'
|
44
|
+
card width: '330px' do
|
45
|
+
media do
|
46
|
+
image 'img/demo/image_card.jpg', width: 330, height: 330
|
47
|
+
title 'image.jpg', position: :bottom, color: :white
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
headline 'Event'
|
52
|
+
card width: '330px' do
|
53
|
+
media height: '230px', color: :MidnightBlue do
|
54
|
+
title ['Featured event:',
|
55
|
+
"May 24, 2016",
|
56
|
+
"7-11pm"],
|
57
|
+
color: :white, position: :top
|
58
|
+
end
|
59
|
+
actions do
|
60
|
+
button 'Add to Calendar'
|
61
|
+
button icon: :event
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
#
|
66
|
+
# headline 'Example'
|
67
|
+
# card width: '21rem', height: '42rem' do
|
68
|
+
# title ['Auckland Sky Tower',
|
69
|
+
# 'Auckland, New Zealand'] do
|
70
|
+
# background 'https://www.askideas.com/media/43/The-Sky-Tower-In-Auckland-New-Zealand.jpg'
|
71
|
+
# end
|
72
|
+
# text ["The Sky Tower is an observation and telecommunications tower located in Auckland,",
|
73
|
+
# "New Zealand. It is 328 metres (1,076 ft) tall, making it the tallest man-made structure",
|
74
|
+
# "in the Southern Hemisphere."].join(' ')
|
75
|
+
# end
|
76
|
+
|
77
|
+
attach :code, file: __FILE__
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:chips) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
indented_grid do
|
9
|
+
heading 'Chips'
|
10
|
+
|
11
|
+
chip 'Chip 1'
|
12
|
+
chip 'Chip 1', color: :primary
|
13
|
+
chip 'Chip 2', color: :secondary
|
14
|
+
chip color: :hotpink do
|
15
|
+
text 'Chip 3', color: :white
|
16
|
+
end
|
17
|
+
|
18
|
+
subheading 'leading icon'
|
19
|
+
chip 'Jane Smith', icon: :face
|
20
|
+
|
21
|
+
subheading 'trailing icon'
|
22
|
+
chip 'Jane Smith' do
|
23
|
+
icon :more_vert, position: :right
|
24
|
+
end
|
25
|
+
|
26
|
+
subheading 'leading and trailing icon'
|
27
|
+
chip 'Jane Smith' do
|
28
|
+
icon :face, position: :left
|
29
|
+
icon :more_vert, position: :right
|
30
|
+
end
|
31
|
+
heading 'Events'
|
32
|
+
|
33
|
+
chip 'Jane Smith' do
|
34
|
+
icon :face, position: :left
|
35
|
+
icon :more_vert, position: :right
|
36
|
+
event :click do
|
37
|
+
snackbar 'chip clicked!'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
chip do
|
42
|
+
text 'Jane Smith' do
|
43
|
+
event :click do
|
44
|
+
snackbar 'text clicked'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
icon :face, position: :left
|
48
|
+
icon :more_vert, position: :right
|
49
|
+
event :click do
|
50
|
+
snackbar 'chip clicked!'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
chip do
|
55
|
+
text 'Jane Smith' do
|
56
|
+
event :click do
|
57
|
+
snackbar 'text clicked'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
icon :face, position: :left do
|
61
|
+
event :click do
|
62
|
+
snackbar 'left icon clicked'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
icon :more_vert, position: :right
|
66
|
+
event :click do
|
67
|
+
snackbar 'chip clicked!'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
chip do
|
72
|
+
text 'Jane Smith' do
|
73
|
+
event :click do
|
74
|
+
snackbar 'text clicked'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
icon :face, position: :left do
|
78
|
+
event :click do
|
79
|
+
snackbar 'left icon clicked'
|
80
|
+
end
|
81
|
+
end
|
82
|
+
icon :more_vert, position: :right do
|
83
|
+
event :click do
|
84
|
+
snackbar 'right icon clicked'
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
attach :code, file: __FILE__
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:dialogs) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
indented_grid do
|
9
|
+
display 'Dialogs'
|
10
|
+
|
11
|
+
button 'Show Dialog' do
|
12
|
+
event :click do
|
13
|
+
dialog :hold_on
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
dialog id: :hold_on do
|
18
|
+
title "MDL Dialog"
|
19
|
+
body 'This is an example of the Material Design Lite dialog component. Please use responsibly.'
|
20
|
+
|
21
|
+
button 'Disabled action', disabled: true
|
22
|
+
button 'Close'
|
23
|
+
end
|
24
|
+
|
25
|
+
attach :code, file: __FILE__
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:drawers) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
|
7
|
+
drawer do
|
8
|
+
menu do
|
9
|
+
item 'About (Drawer)' do
|
10
|
+
event :click do
|
11
|
+
loads :index
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
item 'Components (Drawer)' do
|
16
|
+
event :click do
|
17
|
+
loads :components
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
item 'Styles (Drawer)' do
|
22
|
+
event :click do
|
23
|
+
loads :styles
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
indented_grid do
|
30
|
+
display 'Drawers'
|
31
|
+
|
32
|
+
attach :code, file: __FILE__
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:expansion_panels) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
indented_grid do
|
9
|
+
display 'Expansion Panels'
|
10
|
+
|
11
|
+
expansion_panel do
|
12
|
+
text 'Personal data'
|
13
|
+
secondary_text 'Type your name and age'
|
14
|
+
content do
|
15
|
+
body "The canvas is 'transparent' for screen reader users. HTML content included in the HTML5 canvas sub DOM is announced and navigable by screen reader users and is navigable by keyboard users."
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
attach :code, file: __FILE__
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:fabs_mini) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
indented_grid do
|
9
|
+
display 'Float Action Button'
|
10
|
+
|
11
|
+
# Mini Floating action buttons
|
12
|
+
headline 'Mini FAB'
|
13
|
+
body '*Mini size: Only used to create visual continuity with other screen elements*'
|
14
|
+
button icon: :add, type: :fab, size: :small
|
15
|
+
|
16
|
+
attach :code, file: __FILE__
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:fabs) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
indented_grid do
|
9
|
+
display 'Floating Action Button'
|
10
|
+
|
11
|
+
headline 'FAB'
|
12
|
+
button icon: :add, type: :fab, color: :primary
|
13
|
+
|
14
|
+
attach :code, file: __FILE__
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:footers) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
|
9
|
+
footer type: :small do
|
10
|
+
menu 'Stuff' do
|
11
|
+
item 'About (Footer)' do
|
12
|
+
event :click do
|
13
|
+
loads :index
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
item 'Components (Footer)' do
|
18
|
+
event :click do
|
19
|
+
loads :components
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
item 'Styles (Footer)' do
|
24
|
+
event :click do
|
25
|
+
loads :styles
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
indented_grid do
|
32
|
+
display 'Footers'
|
33
|
+
|
34
|
+
attach :code, file: __FILE__
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:forms) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
|
8
|
+
grid do
|
9
|
+
column 1
|
10
|
+
column 4 do
|
11
|
+
card do
|
12
|
+
display 'Posts in Form'
|
13
|
+
body 'This demonstrates that a change event on **ANY** form input will send all the form inputs to the event action. '\
|
14
|
+
'This works with posts and replace actions'
|
15
|
+
form do
|
16
|
+
text_field name: :myfield do
|
17
|
+
label 'Data to post'
|
18
|
+
end
|
19
|
+
text_field name: :myfield2 do
|
20
|
+
label 'More Data to post'
|
21
|
+
end
|
22
|
+
event :change do
|
23
|
+
replaces :context_list, :context_list
|
24
|
+
end
|
25
|
+
end
|
26
|
+
attach :context_list
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:headers) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
|
6
|
+
attach :top_nav
|
7
|
+
attach :component_drawer
|
8
|
+
|
9
|
+
|
10
|
+
header 'Presenters Demo' do
|
11
|
+
menu do
|
12
|
+
item 'About (Header)' do
|
13
|
+
event :click do
|
14
|
+
loads :index
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
item 'Components (Header)' do
|
19
|
+
event :click do
|
20
|
+
loads :components
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
item 'Styles (Header)' do
|
25
|
+
event :click do
|
26
|
+
loads :styles
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
indented_grid do
|
33
|
+
display 'Headers'
|
34
|
+
|
35
|
+
attach :code, file: __FILE__
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:hidden_fields) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
|
6
|
+
attach :top_nav
|
7
|
+
attach :component_drawer
|
8
|
+
|
9
|
+
indented_grid do
|
10
|
+
headline 'Hidden'
|
11
|
+
|
12
|
+
form do
|
13
|
+
hidden_field name: :idoit_id do
|
14
|
+
value 'do it!'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
attach :code, file: __FILE__
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
Voom::Presenters.define(:icons) do
|
2
|
+
attach :top_nav
|
3
|
+
attach :component_drawer
|
4
|
+
|
5
|
+
helpers do
|
6
|
+
def small_card(&block)
|
7
|
+
card height: '100px', width: '100px' do
|
8
|
+
yield_to(&block) # Special method that yields in the correct binding context
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
grid do
|
14
|
+
column 1
|
15
|
+
column 10 do
|
16
|
+
display 'Icons'
|
17
|
+
body 'An icon is commonly used on a menu, button, chip, list or card. They can be used standalone as well.'
|
18
|
+
|
19
|
+
headline 'Plain'
|
20
|
+
title 'Material design icons'
|
21
|
+
body 'By default the icon name will be assumed to be [material design](https://material.io/icons/).'
|
22
|
+
icon :thumb_up
|
23
|
+
|
24
|
+
title 'Font awesome icons'
|
25
|
+
body "[Font awesome](https://fontawesome.com/icons?d=gallery) icons can also be used."\
|
26
|
+
'You provide the font awesome class.'
|
27
|
+
body 'For example: `fa-thumbs-up`:', level: 2
|
28
|
+
icon 'fa-thumbs-up'
|
29
|
+
body 'You can also optionally add the font awesome style prefix, if not provided it defaults to `fas` (solid).', level: 2
|
30
|
+
body 'For example: `far fa-thumbs-up`:', level: 2
|
31
|
+
icon 'far fa-thumbs-up'
|
32
|
+
|
33
|
+
|
34
|
+
headline 'Color'
|
35
|
+
title 'primary'
|
36
|
+
icon :thumb_up, color: :primary
|
37
|
+
title 'secondary'
|
38
|
+
icon :thumb_up, color: :secondary
|
39
|
+
title 'custom'
|
40
|
+
icon :thumb_up, color: :hotpink
|
41
|
+
|
42
|
+
headline 'Size'
|
43
|
+
body 'You can specify the size of an icon'
|
44
|
+
icon :thumb_up, color: :hotpink, size: '64px'
|
45
|
+
|
46
|
+
title 'Position'
|
47
|
+
body "'Icon's can be positioned to left, right, top, and bottom"
|
48
|
+
|
49
|
+
grid do
|
50
|
+
column 1 do
|
51
|
+
small_card do
|
52
|
+
icon :face, position: :left
|
53
|
+
end
|
54
|
+
end
|
55
|
+
column 1 do
|
56
|
+
small_card do
|
57
|
+
icon :face, position: :right
|
58
|
+
end
|
59
|
+
end
|
60
|
+
column 1 do
|
61
|
+
small_card do
|
62
|
+
icon :face, position: :top
|
63
|
+
end
|
64
|
+
end
|
65
|
+
column 1 do
|
66
|
+
small_card do
|
67
|
+
icon :face, position: :bottom
|
68
|
+
end
|
69
|
+
end
|
70
|
+
column 1 do
|
71
|
+
small_card do
|
72
|
+
icon :face, position: [:top, :right]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
column 1 do
|
76
|
+
small_card do
|
77
|
+
icon :face, position: [:bottom, :right]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
headline 'Events'
|
83
|
+
body 'Icons can be bound to events. For example the `click` event.'
|
84
|
+
|
85
|
+
icon :face, position: :left do
|
86
|
+
event :click do
|
87
|
+
snackbar 'icon clicked'
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
attach :code, file: __FILE__
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|