voom-presenters 0.1.13 → 0.2.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/.ruby-version +1 -1
- data/CHANGELOG.md +186 -0
- data/Gemfile.lock +37 -38
- data/HISTORY.md +61 -0
- data/README.md +23 -1
- data/app/demo/components/chips.pom +6 -0
- data/app/demo/components/{forms.pom → content.pom} +3 -3
- data/app/demo/components/date_fields.pom +1 -1
- data/app/demo/components/datetime_fields.pom +6 -0
- data/app/demo/components/drawers.pom +1 -1
- data/app/demo/components/file_inputs.pom +16 -0
- data/app/demo/components/footers.pom +1 -1
- data/app/demo/components/google_maps.pom +17 -0
- data/app/demo/components/headers.pom +1 -1
- data/app/demo/components/layouts.pom +36 -4
- data/app/demo/components/lists.pom +25 -0
- data/app/demo/components/nav/menu.pom +9 -2
- data/app/demo/components/nav/pattern_drawer.pom +5 -0
- data/app/demo/components/nav/pattern_menu.pom +12 -0
- data/app/demo/components/sliders.pom +49 -0
- data/app/demo/components/snackbar.pom +10 -0
- data/app/demo/components/steppers.pom +178 -0
- data/app/demo/components/tab_bars.pom +51 -0
- data/app/demo/components/tables.pom +85 -13
- data/app/demo/components/text_areas.pom +13 -0
- data/app/demo/components/text_fields.pom +20 -8
- data/app/demo/components/toggles.pom +50 -14
- data/app/demo/components/tooltips.pom +2 -6
- data/app/demo/events/actions/clear.pom +23 -0
- data/app/demo/events/actions/loads.pom +16 -6
- data/app/demo/events/actions/posts.pom +1 -1
- data/app/demo/events/actions/toggle_visiblity.pom +4 -3
- data/app/demo/events/nav/drawer.pom +2 -2
- data/app/demo/events/tagged_input.pom +37 -0
- data/app/demo/hello_world.pom +3 -0
- data/app/demo/markdown.pom +1 -0
- data/app/demo/namespaces.pom +89 -0
- data/app/demo/nav/top_nav.pom +12 -0
- data/app/demo/patterns.pom +19 -0
- data/app/demo/patterns/search_select.pom +104 -0
- data/app/demo/shared/context_list.pom +1 -1
- data/app/demo/styles.pom +21 -11
- data/component-status.yml +11 -11
- data/config.ru +2 -1
- data/lib/voom/container_methods.rb +1 -1
- data/lib/voom/presenters-engine.rb +29 -26
- data/lib/voom/presenters.rb +15 -9
- data/lib/voom/presenters/api/app.rb +18 -5
- data/lib/voom/presenters/api/router.rb +11 -49
- data/lib/voom/presenters/demo/echo.rb +5 -0
- data/lib/voom/presenters/dsl.rb +10 -4
- data/lib/voom/presenters/dsl/components/actions/base.rb +37 -0
- data/lib/voom/presenters/dsl/components/actions/clear.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/deletes.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/dialog.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/loads.rb +32 -0
- data/lib/voom/presenters/dsl/components/actions/navigates.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/posts.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/remove.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/replaces.rb +25 -0
- data/lib/voom/presenters/dsl/components/actions/snackbar.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/stepper.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/toggle_visibility.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/updates.rb +17 -0
- data/lib/voom/presenters/dsl/components/avatar.rb +4 -5
- data/lib/voom/presenters/dsl/components/badge.rb +1 -1
- data/lib/voom/presenters/dsl/components/base.rb +20 -11
- data/lib/voom/presenters/dsl/components/button.rb +12 -10
- data/lib/voom/presenters/dsl/components/card.rb +18 -19
- data/lib/voom/presenters/dsl/components/checkbox.rb +3 -1
- data/lib/voom/presenters/dsl/components/chip.rb +9 -10
- data/lib/voom/presenters/dsl/components/content.rb +21 -11
- data/lib/voom/presenters/dsl/components/date_field.rb +1 -1
- data/lib/voom/presenters/dsl/components/datetime_base.rb +1 -2
- data/lib/voom/presenters/dsl/components/datetime_field.rb +1 -1
- data/lib/voom/presenters/dsl/components/dialog.rb +10 -6
- data/lib/voom/presenters/dsl/components/drawer.rb +6 -4
- data/lib/voom/presenters/dsl/components/event.rb +55 -39
- data/lib/voom/presenters/dsl/components/event_base.rb +2 -2
- data/lib/voom/presenters/dsl/components/expansion_panel.rb +5 -5
- data/lib/voom/presenters/dsl/components/file_input.rb +22 -0
- data/lib/voom/presenters/dsl/components/footer.rb +1 -1
- data/lib/voom/presenters/dsl/components/form.rb +17 -15
- data/lib/voom/presenters/dsl/components/google_map.rb +40 -0
- data/lib/voom/presenters/dsl/components/grid.rb +58 -18
- data/lib/voom/presenters/dsl/components/header.rb +2 -5
- data/lib/voom/presenters/dsl/components/hidden_field.rb +2 -2
- data/lib/voom/presenters/dsl/components/icon.rb +4 -5
- data/lib/voom/presenters/dsl/components/icon_base.rb +3 -3
- data/lib/voom/presenters/dsl/components/icon_toggle.rb +2 -2
- data/lib/voom/presenters/dsl/components/image.rb +3 -3
- data/lib/voom/presenters/dsl/components/input.rb +2 -2
- data/lib/voom/presenters/dsl/components/list.rb +12 -10
- data/lib/voom/presenters/dsl/components/lists/action.rb +8 -9
- data/lib/voom/presenters/dsl/components/lists/actions.rb +8 -8
- data/lib/voom/presenters/dsl/components/lists/header.rb +2 -2
- data/lib/voom/presenters/dsl/components/lists/line.rb +14 -17
- data/lib/voom/presenters/dsl/components/lists/separator.rb +2 -2
- data/lib/voom/presenters/dsl/components/menu.rb +10 -12
- data/lib/voom/presenters/dsl/components/mixins/attaches.rb +9 -3
- data/lib/voom/presenters/dsl/components/mixins/avatar.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/buttons.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/chips.rb +1 -2
- data/lib/voom/presenters/dsl/components/mixins/common.rb +20 -14
- data/lib/voom/presenters/dsl/components/mixins/content.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/date_time_fields.rb +0 -3
- data/lib/voom/presenters/dsl/components/mixins/dialogs.rb +1 -2
- data/lib/voom/presenters/dsl/components/mixins/event.rb +3 -3
- data/lib/voom/presenters/dsl/components/mixins/expansion_panels.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/file_inputs.rb +16 -0
- data/lib/voom/presenters/dsl/components/mixins/google_maps.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/grids.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/icons.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/menus.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/selects.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/sliders.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/snackbars.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/steppers.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/tab_bars.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/text_fields.rb +5 -3
- data/lib/voom/presenters/dsl/components/mixins/toggles.rb +1 -4
- data/lib/voom/presenters/dsl/components/mixins/tooltips.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/typography.rb +43 -13
- data/lib/voom/presenters/dsl/components/page.rb +0 -1
- data/lib/voom/presenters/dsl/components/radio_button.rb +1 -1
- data/lib/voom/presenters/dsl/components/rich_text_area.rb +26 -0
- data/lib/voom/presenters/dsl/components/select.rb +4 -5
- data/lib/voom/presenters/dsl/components/slider.rb +39 -0
- data/lib/voom/presenters/dsl/components/snackbar.rb +2 -2
- data/lib/voom/presenters/dsl/components/stepper.rb +106 -0
- data/lib/voom/presenters/dsl/components/switch.rb +1 -1
- data/lib/voom/presenters/dsl/components/tab_bar.rb +53 -0
- data/lib/voom/presenters/dsl/components/table.rb +99 -27
- data/lib/voom/presenters/dsl/components/text_area.rb +4 -3
- data/lib/voom/presenters/dsl/components/text_field.rb +8 -12
- data/lib/voom/presenters/dsl/components/time_field.rb +1 -1
- data/lib/voom/presenters/dsl/components/toggle_base.rb +2 -2
- data/lib/voom/presenters/dsl/components/tooltip.rb +1 -2
- data/lib/voom/presenters/dsl/components/typography.rb +4 -5
- data/lib/voom/presenters/dsl/definer.rb +2 -2
- data/lib/voom/presenters/dsl/definition.rb +6 -4
- data/lib/voom/presenters/dsl/user_interface.rb +17 -21
- data/lib/voom/presenters/errors/parameter_validation.rb +1 -1
- data/lib/voom/presenters/helpers.rb +5 -5
- data/lib/voom/presenters/helpers/date.rb +3 -3
- data/lib/voom/presenters/helpers/rails.rb +7 -2
- data/lib/voom/presenters/helpers/rails/model_table.rb +14 -6
- data/lib/voom/presenters/helpers/route.rb +6 -0
- data/lib/voom/presenters/helpers/time.rb +1 -1
- data/lib/voom/presenters/namespace.rb +12 -0
- data/lib/voom/presenters/settings.rb +58 -37
- data/lib/voom/presenters/version.rb +1 -1
- data/lib/voom/presenters/web_client/app.rb +50 -20
- data/lib/voom/presenters/web_client/markdown_render.rb +24 -11
- data/lib/voom/presenters/web_client/router.rb +17 -52
- data/lib/voom/serializer.rb +2 -2
- data/lib/voom/trace.rb +1 -1
- data/presenters.gemspec +2 -1
- data/public/style-bundle.js +2 -2
- data/scripts/bump.sh +1 -0
- data/scripts/changelog.sh +5 -0
- data/scripts/deploy-demo.sh +1 -0
- data/scripts/release.sh +1 -1
- data/scripts/tag.sh +5 -0
- data/views/mdc/.babelrc +8 -0
- data/views/mdc/.eslintrc.yml +23 -0
- data/views/mdc/assets/js/app.js +19 -6
- data/views/mdc/assets/js/components/base-component.js +25 -2
- data/views/mdc/assets/js/components/base-container.js +47 -0
- data/views/mdc/assets/js/components/button.js +3 -10
- data/views/mdc/assets/js/components/cards.js +11 -0
- data/views/mdc/assets/js/components/checkboxes.js +30 -7
- data/views/mdc/assets/js/components/chips.js +38 -5
- data/views/mdc/assets/js/components/content.js +13 -0
- data/views/mdc/assets/js/components/data-tables.js +38 -0
- data/views/mdc/assets/js/components/datetime.js +61 -21
- data/views/mdc/assets/js/components/dialogs.js +25 -19
- data/views/mdc/assets/js/components/events.js +13 -3
- data/views/mdc/assets/js/components/events/base.js +13 -3
- data/views/mdc/assets/js/components/events/errors.js +1 -1
- data/views/mdc/assets/js/components/events/posts.js +53 -13
- data/views/mdc/assets/js/components/events/removes.js +20 -0
- data/views/mdc/assets/js/components/events/replaces.js +35 -36
- data/views/mdc/assets/js/components/events/stepper.js +23 -0
- data/views/mdc/assets/js/components/events/toggle_visibility.js +15 -11
- data/views/mdc/assets/js/components/file-inputs.js +29 -0
- data/views/mdc/assets/js/components/forms.js +8 -59
- data/views/mdc/assets/js/components/grid.js +20 -0
- data/views/mdc/assets/js/components/hidden-fields.js +33 -0
- data/views/mdc/assets/js/components/icon-toggles.js +7 -14
- data/views/mdc/assets/js/components/initialize.js +20 -1
- data/views/mdc/assets/js/components/lists.js +1 -1
- data/views/mdc/assets/js/components/menus.js +12 -13
- data/views/mdc/assets/js/components/mixins/visibility-observer.js +34 -0
- data/views/mdc/assets/js/components/radios.js +39 -0
- data/views/mdc/assets/js/components/rich-text-area.js +43 -0
- data/views/mdc/assets/js/components/selects.js +24 -23
- data/views/mdc/assets/js/components/sliders.js +56 -0
- data/views/mdc/assets/js/components/snackbar.js +14 -23
- data/views/mdc/assets/js/components/steppers.js +48 -0
- data/views/mdc/assets/js/components/switches.js +24 -23
- data/views/mdc/assets/js/components/tab-bars.js +14 -0
- data/views/mdc/assets/js/components/text-fields.js +37 -35
- data/views/mdc/assets/js/config.js +27 -0
- data/views/mdc/assets/js/mdl-stepper.js +1108 -0
- data/views/mdc/assets/js/utils/compatibility.js +9 -0
- data/views/mdc/assets/js/utils/config.js +73 -0
- data/views/mdc/assets/js/utils/config.test.js +59 -0
- data/views/mdc/assets/js/utils/urls.js +5 -2
- data/views/mdc/assets/scss/app.scss +11 -3
- data/views/mdc/assets/scss/components/button.scss +17 -2
- data/views/mdc/assets/scss/components/card.scss +8 -3
- data/views/mdc/assets/scss/components/checkbox.scss +0 -4
- data/views/mdc/assets/scss/components/content.scss +11 -0
- data/views/mdc/assets/scss/components/data-table.scss +80 -0
- data/views/mdc/assets/scss/components/datetime.scss +6 -0
- data/views/mdc/assets/scss/components/fab.scss +2 -1
- data/views/mdc/assets/scss/components/file-input.scss +22 -0
- data/views/mdc/assets/scss/components/grid.scss +59 -3
- data/views/mdc/assets/scss/components/image.scss +6 -0
- data/views/mdc/assets/scss/components/list.scss +13 -0
- data/views/mdc/assets/scss/components/menu.scss +1 -0
- data/views/mdc/assets/scss/components/radio.scss +4 -0
- data/views/mdc/assets/scss/components/rich-text-area.scss +37 -0
- data/views/mdc/assets/scss/components/slider.scss +1 -0
- data/views/mdc/assets/scss/components/snackbar.scss +1 -5
- data/views/mdc/assets/scss/components/stepper.scss +235 -0
- data/views/mdc/assets/scss/components/switch.scss +4 -5
- data/views/mdc/assets/scss/components/tab-bars.scss +4 -0
- data/views/mdc/assets/scss/components/textfield.scss +8 -1
- data/views/mdc/assets/scss/components/typography.scss +4 -0
- data/views/mdc/assets/scss/components/vendor/flatpickr.min.css +2 -2
- data/views/mdc/assets/scss/components/vendor/quill.snow.css +945 -0
- data/views/mdc/assets/scss/styles.scss +3 -2
- data/views/mdc/assets/scss/theme.scss +6 -0
- data/views/mdc/body/header.erb +1 -0
- data/views/mdc/body/snackbar.erb +1 -1
- data/views/mdc/components/actions/clear.rb +11 -0
- data/views/mdc/components/actions/delete.rb +11 -0
- data/views/mdc/components/actions/dialog.rb +11 -0
- data/views/mdc/components/actions/loads.rb +11 -0
- data/views/mdc/components/actions/navigates.rb +11 -0
- data/views/mdc/components/actions/post.rb +17 -0
- data/views/mdc/components/actions/remove.rb +10 -0
- data/views/mdc/components/actions/replaces.rb +12 -0
- data/views/mdc/components/actions/snackbar.rb +10 -0
- data/views/mdc/components/actions/stepper.rb +10 -0
- data/views/mdc/components/actions/toggle_visibility.rb +10 -0
- data/views/mdc/components/actions/update.rb +10 -0
- data/views/mdc/components/button.erb +9 -6
- data/views/mdc/components/buttons/button.erb +10 -5
- data/views/mdc/components/buttons/fab.erb +8 -2
- data/views/mdc/components/buttons/icon.erb +9 -2
- data/views/mdc/components/buttons/image.erb +9 -4
- data/views/mdc/components/{display.erb → caption.erb} +0 -0
- data/views/mdc/components/card.erb +6 -3
- data/views/mdc/components/checkbox.erb +21 -9
- data/views/mdc/components/chip.erb +12 -3
- data/views/mdc/components/content.erb +6 -1
- data/views/mdc/components/datetime.erb +21 -13
- data/views/mdc/components/dialog.erb +4 -1
- data/views/mdc/components/event.erb +5 -9
- data/views/mdc/components/file_input.erb +13 -0
- data/views/mdc/components/form.erb +19 -5
- data/views/mdc/components/google_map.erb +9 -0
- data/views/mdc/components/grid.erb +18 -4
- data/views/mdc/components/headline.erb +2 -0
- data/views/mdc/components/hidden_field.erb +6 -1
- data/views/mdc/components/icon_toggle.erb +1 -1
- data/views/mdc/components/list.erb +5 -2
- data/views/mdc/components/list/actions/switch.erb +1 -1
- data/views/mdc/components/list/line.erb +7 -6
- data/views/mdc/components/menu.erb +8 -12
- data/views/mdc/components/{subheading.erb → overline.erb} +0 -0
- data/views/mdc/components/radio_button.erb +20 -10
- data/views/mdc/components/rich_text_area.erb +19 -0
- data/views/mdc/components/select.erb +7 -3
- data/views/mdc/components/slider.erb +41 -0
- data/views/mdc/components/snackbar.erb +2 -6
- data/views/mdc/components/stepper.erb +47 -0
- data/views/mdc/components/stepper/step.erb +33 -0
- data/views/mdc/components/{title.erb → subtitle.erb} +0 -0
- data/views/mdc/components/switch.erb +27 -12
- data/views/mdc/components/tab_bar.erb +29 -0
- data/views/mdc/components/table.erb +4 -2
- data/views/mdc/components/table/checkbox.erb +17 -0
- data/views/mdc/components/table/header.erb +13 -4
- data/views/mdc/components/table/pagination.erb +14 -23
- data/views/mdc/components/table/row.erb +3 -1
- data/views/mdc/components/text_area.erb +17 -7
- data/views/mdc/components/text_field.erb +31 -13
- data/views/mdc/components/typography.erb +2 -2
- data/views/mdc/layout.erb +33 -31
- data/views/mdc/package-lock.json +11019 -6996
- data/views/mdc/package.json +46 -27
- data/views/mdc/webpack.config.js +1 -0
- metadata +112 -13
- data/app/demo/events/actions/autocomplete.pom +0 -32
- data/lib/voom/presenters/dsl/components/action.rb +0 -35
- data/views/mdc/assets/js/components/events/autocomplete.js +0 -96
- data/views/mdc/assets/js/material.js +0 -3996
- data/views/mdc/assets/scss/components/table-pagination.scss +0 -65
- data/views/mdc/components/modal.erb +0 -15
- data/views/mdc/components/static.erb +0 -7
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Voom::Presenters.define(:tab_bars) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Tab Bars'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
|
|
11
|
+
title 'Standard Tab Bar'
|
|
12
|
+
tab_bar do
|
|
13
|
+
tab 'One', selected: true
|
|
14
|
+
tab 'Two'
|
|
15
|
+
tab 'Three'
|
|
16
|
+
end
|
|
17
|
+
separator
|
|
18
|
+
|
|
19
|
+
title 'Tabs with icons next to labels'
|
|
20
|
+
tab_bar do
|
|
21
|
+
tab 'One', icon: :thumb_up
|
|
22
|
+
tab 'Two', icon: :face, selected: true
|
|
23
|
+
tab 'Three', icon: :thumb_down
|
|
24
|
+
end
|
|
25
|
+
separator
|
|
26
|
+
|
|
27
|
+
title 'Tabs with icons above labels'
|
|
28
|
+
tab_bar do
|
|
29
|
+
tab 'One', icon: :thumb_up, stacked: true, selected: true
|
|
30
|
+
tab 'Two', icon: :face, stacked: true
|
|
31
|
+
tab 'Three', icon: :thumb_down, stacked: true
|
|
32
|
+
end
|
|
33
|
+
separator
|
|
34
|
+
|
|
35
|
+
title 'Scrolling Tabs'
|
|
36
|
+
tab_bar do
|
|
37
|
+
15.times do |idx|
|
|
38
|
+
tab "Tab Number-#{idx}", selected: idx == 3 do
|
|
39
|
+
event :click do
|
|
40
|
+
snackbar 'tab clicked'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
attach :code, file: __FILE__
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
@@ -9,30 +9,102 @@ Voom::Presenters.define(:tables) do
|
|
|
9
9
|
helpers do
|
|
10
10
|
def items
|
|
11
11
|
[
|
|
12
|
-
OpenStruct.new(material: 'Acrylic (Transparent)', quantity: 50, price: '$2.90'),
|
|
13
|
-
OpenStruct.new(material: 'Plywood (Birch)', quantity: 10, price: '$1.25'),
|
|
14
|
-
OpenStruct.new(material: 'Laminate (Gold on Blue)', quantity: 50, price: '$2.35')
|
|
12
|
+
OpenStruct.new(id: 1, material: 'Acrylic (Transparent)', quantity: 50, price: '$2.90'),
|
|
13
|
+
OpenStruct.new(id: 2, material: 'Plywood (Birch)', quantity: 10, price: '$1.25'),
|
|
14
|
+
OpenStruct.new(id: 3, material: 'Laminate (Gold on Blue)', quantity: 50, price: '$2.35')
|
|
15
|
+
]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def drivers
|
|
19
|
+
[
|
|
20
|
+
OpenStruct.new(name: 'Kimi Räikkönen', team: 'Scuderia Ferrari', country: 'Finland'),
|
|
21
|
+
OpenStruct.new(name: 'Daniel Ricciardo', team: 'Red Bull', country: 'Australia'),
|
|
22
|
+
OpenStruct.new(name: 'Lewis Hamilton', team: 'Mercedes', country: 'Great Britain'),
|
|
23
|
+
OpenStruct.new(name: 'Fernando Alonso', team: 'Mclaren', country: 'Spain'),
|
|
24
|
+
OpenStruct.new(name: 'Charles LeClerc', team: 'Sauber', country: 'Monaco')
|
|
15
25
|
]
|
|
16
26
|
end
|
|
17
27
|
end
|
|
18
28
|
|
|
19
29
|
indented_grid do
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
grid do
|
|
31
|
+
column 12 do
|
|
32
|
+
content id: :drivers do
|
|
33
|
+
title 'Non-Selectable'
|
|
34
|
+
table do
|
|
35
|
+
header do
|
|
36
|
+
column 'Name'
|
|
37
|
+
column 'Team'
|
|
38
|
+
column 'Country'
|
|
39
|
+
end
|
|
40
|
+
drivers.each do |driver|
|
|
41
|
+
row do
|
|
42
|
+
column driver.name
|
|
43
|
+
column driver.team
|
|
44
|
+
column driver.country
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
pagination page_size: 5,
|
|
48
|
+
total: drivers.count,
|
|
49
|
+
current_page: context.fetch(:page){ 1 },
|
|
50
|
+
replace_id: 'drivers',
|
|
51
|
+
replace_presenter: 'drivers_presenter'
|
|
52
|
+
end
|
|
53
|
+
end
|
|
25
54
|
end
|
|
55
|
+
end
|
|
26
56
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
57
|
+
form do
|
|
58
|
+
grid do
|
|
59
|
+
column 12 do
|
|
60
|
+
title 'Selectable (with form)'
|
|
61
|
+
table selectable: true do
|
|
62
|
+
header do
|
|
63
|
+
column 'Material'
|
|
64
|
+
column 'Quantity'
|
|
65
|
+
column 'Unit price'
|
|
66
|
+
end
|
|
67
|
+
items.each do |item|
|
|
68
|
+
row name: :id, value: item.id do
|
|
69
|
+
column item.material
|
|
70
|
+
column item.quantity
|
|
71
|
+
column item.price
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
column 12 do
|
|
77
|
+
button 'SUBMIT', type: :raised do
|
|
78
|
+
event :click do
|
|
79
|
+
replaces :context_list, :context_list
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
attach :context_list
|
|
32
83
|
end
|
|
33
84
|
end
|
|
34
85
|
end
|
|
35
86
|
|
|
87
|
+
grid wide: true do
|
|
88
|
+
column 12 do
|
|
89
|
+
title 'Wide (scrollable)', id: :scrollable
|
|
90
|
+
table do
|
|
91
|
+
header do
|
|
92
|
+
(1..18).each do |idx|
|
|
93
|
+
column "Column #{idx}"
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
items.each do |item|
|
|
97
|
+
row do
|
|
98
|
+
(1..6).each do
|
|
99
|
+
column item.material
|
|
100
|
+
column item.quantity
|
|
101
|
+
column item.price
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
36
108
|
attach :code, file: __FILE__
|
|
37
109
|
end
|
|
38
110
|
end
|
|
@@ -11,8 +11,21 @@ Voom::Presenters.define(:text_areas) do
|
|
|
11
11
|
|
|
12
12
|
text_area name: :notes, rows: 3 do
|
|
13
13
|
label 'Text lines...'
|
|
14
|
+
hint 'Default behavior is full width'
|
|
14
15
|
end
|
|
15
16
|
|
|
17
|
+
|
|
18
|
+
text_area name: :notes, rows: 5, cols: 60, full_width: false do
|
|
19
|
+
label 'Five by Sixty'
|
|
20
|
+
hint 'Or specify using rows and columns'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
rich_text_area name: :notes, placeholder: 'Text entered here is saved as HTML' do
|
|
24
|
+
label 'Rich Text Area'
|
|
25
|
+
hint 'Default is full width and 25 rows'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
16
29
|
attach :code, file: __FILE__
|
|
17
30
|
end
|
|
18
31
|
end
|
|
@@ -13,33 +13,45 @@ Voom::Presenters.define(:text_fields) do
|
|
|
13
13
|
label 'Text...'
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
title 'Password'
|
|
17
17
|
|
|
18
18
|
text_field name: :password, password: true do
|
|
19
19
|
label 'Password'
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
headline 'Numeric'
|
|
23
|
-
|
|
24
23
|
# Client side validation with hints
|
|
25
|
-
|
|
24
|
+
title 'With Hints'
|
|
26
25
|
text_field name: :numeric do
|
|
27
26
|
label 'Number...'
|
|
28
27
|
pattern /-?[0-9]*(\.[0-9]+)?/
|
|
29
|
-
hint 'Input
|
|
28
|
+
hint 'Input should be a number!'
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
title 'With Errors'
|
|
33
32
|
text_field name: :guess_me do
|
|
34
33
|
label 'Guess a number...'
|
|
35
34
|
pattern /-?[0-9]*(\.[0-9]+)?/
|
|
36
35
|
value '7'
|
|
37
|
-
error 'Input is not
|
|
36
|
+
error 'Input is not the right number!'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
title 'With Leading Icon'
|
|
41
|
+
text_field name: :numeric do
|
|
42
|
+
label 'Amount'
|
|
43
|
+
icon :attach_money, position: :left
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
title 'With Trailing Icon'
|
|
47
|
+
text_field name: :numeric do
|
|
48
|
+
label 'Name'
|
|
49
|
+
icon :remove_red_eye
|
|
38
50
|
end
|
|
39
51
|
|
|
40
52
|
card do
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
headline 'Field Level Events'
|
|
54
|
+
title 'Text Fields'
|
|
43
55
|
body 'This demonstrates that a change event will submit the field value to the event action. '\
|
|
44
56
|
'This works with posts and replace actions'
|
|
45
57
|
text_field name: :myfield do
|
|
@@ -7,26 +7,62 @@ Voom::Presenters.define(:toggles) do
|
|
|
7
7
|
page_title 'Toggles'
|
|
8
8
|
|
|
9
9
|
indented_grid do
|
|
10
|
-
|
|
10
|
+
title 'CHECKBOX'
|
|
11
11
|
checkbox
|
|
12
|
-
checkbox checked: true
|
|
12
|
+
checkbox checked: true, text: "I am initially checked"
|
|
13
|
+
checkbox indeterminate: true, text: "I am indeterminate"
|
|
14
|
+
checkbox disabled: true, text: "I am disabled"
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
radio_button checked: true
|
|
16
|
-
radio_button
|
|
16
|
+
title 'RADIO BUTTON'
|
|
17
|
+
radio_button name: :radio, value: 'one', checked: true, text: "One"
|
|
18
|
+
radio_button name: :radio, value: 'two', text: "Two"
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
title 'ICON TOGGLE'
|
|
19
21
|
icon_toggle 'format_bold', checked: true
|
|
20
22
|
icon_toggle 'format_italic'
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
title 'SWITCH'
|
|
25
|
+
grid do
|
|
26
|
+
column 6 do
|
|
27
|
+
switch checked: true
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
grid do
|
|
31
|
+
column 6 do
|
|
32
|
+
switch
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
grid do
|
|
36
|
+
column 6 do
|
|
37
|
+
switch disabled: true
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
grid do
|
|
41
|
+
column 10, padding: :none do
|
|
42
|
+
switch text: "This is a long text label that should display even longer wraps to another line?"
|
|
43
|
+
end
|
|
44
|
+
column 10, padding: :none do
|
|
45
|
+
checkbox text: "This is a long text label that should display even longer wraps to another line?"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
button :on_dialog do
|
|
51
|
+
event :click do
|
|
52
|
+
dialog :toggle_dlg
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
dialog id: :toggle_dlg, width: '30rem' do
|
|
56
|
+
form do
|
|
57
|
+
switch name: :reset_password_email, checked: true, text: 'Send reset password email'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
25
61
|
|
|
26
62
|
grid do
|
|
27
63
|
column 6 do
|
|
28
|
-
|
|
29
|
-
|
|
64
|
+
headline 'Field Level Events', level: 3
|
|
65
|
+
title 'Text Fields'
|
|
30
66
|
body 'This demonstrates that a change event will submit the field value to the event action. '\
|
|
31
67
|
'This works with posts and replace actions'
|
|
32
68
|
switch name: :myfield do
|
|
@@ -34,8 +70,8 @@ Voom::Presenters.define(:toggles) do
|
|
|
34
70
|
replaces :context_list, :context_list
|
|
35
71
|
end
|
|
36
72
|
end
|
|
37
|
-
|
|
38
|
-
|
|
73
|
+
|
|
74
|
+
headline 'Posts in Form', level: 3
|
|
39
75
|
body 'This demonstrates that a change event on **ANY** form input will send all the form inputs to the event action. '\
|
|
40
76
|
'This works with posts and replace actions'
|
|
41
77
|
form do
|
|
@@ -52,4 +88,4 @@ Voom::Presenters.define(:toggles) do
|
|
|
52
88
|
end
|
|
53
89
|
attach :code, file: __FILE__
|
|
54
90
|
end
|
|
55
|
-
end
|
|
91
|
+
end
|
|
@@ -95,12 +95,8 @@ Voom::Presenters.define(:tooltips) do
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
display 'Typography', level: 4 do
|
|
101
|
-
tooltip 'I do nothing.'
|
|
102
|
-
end
|
|
103
|
-
|
|
98
|
+
headline 'Styles', level: 3
|
|
99
|
+
|
|
104
100
|
headline 'Headline' do
|
|
105
101
|
tooltip 'I do nothing.'
|
|
106
102
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Voom::Presenters.define(:clear_action) do
|
|
2
|
+
helpers Demo::Helpers::IndentedGrid
|
|
3
|
+
attach :top_nav
|
|
4
|
+
attach :events_drawer
|
|
5
|
+
|
|
6
|
+
indented_grid do
|
|
7
|
+
heading 'Clear'
|
|
8
|
+
body 'Allows you to clear an input control.',
|
|
9
|
+
'Takes the id of the element to clear.'
|
|
10
|
+
|
|
11
|
+
text_field id: :input_to_clear do
|
|
12
|
+
label 'Input to clear'
|
|
13
|
+
value 'Clear me'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
button 'clear' do
|
|
17
|
+
event :click do
|
|
18
|
+
clear :input_to_clear
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
attach :code, file: __FILE__
|
|
23
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Voom::Presenters.define(:
|
|
1
|
+
Voom::Presenters.define(:loads_action) do
|
|
2
2
|
helpers Demo::Helpers::IndentedGrid
|
|
3
3
|
attach :top_nav
|
|
4
4
|
attach :events_drawer
|
|
@@ -7,13 +7,23 @@ Voom::Presenters.define(:toggle_visibility_action) do
|
|
|
7
7
|
heading 'Loads'
|
|
8
8
|
body 'Loads a new presenter, replacing the whole page.'
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
content do
|
|
11
|
+
subheading "#{context['reloaded'] ? "Reloaded" : 'Loads'} another presenter"
|
|
12
|
+
button 'loads this page' do
|
|
13
|
+
event :click do
|
|
14
|
+
loads :loads_action, reloaded: true, nil_value:nil
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
heading context['reloaded'] ? "Reloaded" : 'Loaded'
|
|
18
|
+
end
|
|
19
|
+
content do
|
|
20
|
+
subheading "An absolute URL loads another page"
|
|
21
|
+
button 'loads google.com' do
|
|
22
|
+
event :click do
|
|
23
|
+
loads 'https://google.com'
|
|
24
|
+
end
|
|
14
25
|
end
|
|
15
26
|
end
|
|
16
|
-
heading context['reloaded'] ? "Reloaded" : 'Loaded'
|
|
17
27
|
end
|
|
18
28
|
attach :code, file: __FILE__
|
|
19
29
|
end
|
|
@@ -7,9 +7,10 @@ Voom::Presenters.define(:toggle_visibility_action) do
|
|
|
7
7
|
heading 'Toggle Visibility'
|
|
8
8
|
body 'Allows you to toggle visibility of content on and off on events.',
|
|
9
9
|
'Takes the id of the element to toggle.',
|
|
10
|
-
"Optionally takes :on or :off to force visibility."
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
"Optionally takes :on or :off to force visibility.",
|
|
11
|
+
"`show :toggle_me` **is the same as** `toggle_visibility :toggle_me, on: true`",
|
|
12
|
+
"`hide :toggle_me` **is the same as** `toggle_visibility :toggle_me, on: false`"
|
|
13
|
+
|
|
13
14
|
button 'toggle visibility' do
|
|
14
15
|
event :click do
|
|
15
16
|
toggle_visibility :toggle_me
|
|
@@ -2,14 +2,14 @@ Voom::Presenters.define(:events_drawer) do
|
|
|
2
2
|
helpers Voom::Presenters::Helpers::Inflector
|
|
3
3
|
drawer 'Events' do
|
|
4
4
|
menu do
|
|
5
|
-
%i(field_level_events form_level_events).sort.each do |comp|
|
|
5
|
+
%i(field_level_events form_level_events tagged_input).sort.each do |comp|
|
|
6
6
|
item titleize(comp) do
|
|
7
7
|
event :click do
|
|
8
8
|
loads comp
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
|
-
%i(dialog
|
|
12
|
+
%i(dialog replaces loads toggle_visibility snackbar updates deletes posts clear).sort.each do |comp|
|
|
13
13
|
item titleize(comp) do
|
|
14
14
|
event :click do
|
|
15
15
|
loads "#{comp}_action"
|