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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require_relative '../helpers/indented_grid'
|
|
2
2
|
|
|
3
|
-
Voom::Presenters.define(:
|
|
3
|
+
Voom::Presenters.define(:content) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
|
5
5
|
attach :top_nav
|
|
6
6
|
attach :component_drawer
|
|
@@ -10,10 +10,10 @@ Voom::Presenters.define(:forms) do
|
|
|
10
10
|
column 1
|
|
11
11
|
column 4 do
|
|
12
12
|
card do
|
|
13
|
-
|
|
13
|
+
headline 'Posts in Form'
|
|
14
14
|
body 'This demonstrates that a change event on **ANY** form input will send all the form inputs to the event action. '\
|
|
15
15
|
'This works with posts and replace actions'
|
|
16
|
-
|
|
16
|
+
content do
|
|
17
17
|
text_field name: :myfield do
|
|
18
18
|
label 'Data to post'
|
|
19
19
|
end
|
|
@@ -50,7 +50,7 @@ Voom::Presenters.define(:date_fields) do
|
|
|
50
50
|
date_field min_date: :today
|
|
51
51
|
|
|
52
52
|
title 'Min (today), Max (14 days from now)'
|
|
53
|
-
date_field min_date: :today, max_date: DateTime.
|
|
53
|
+
date_field min_date: :today, max_date: DateTime.new(2025, 4, 9) # Or in rails Time.now + 14.days
|
|
54
54
|
|
|
55
55
|
title 'Disabling specific dates'
|
|
56
56
|
date_field disable: ["2025-01-30", "2025-02-21", "2025-03-08", DateTime.new(2025, 4, 9)]
|
|
@@ -42,6 +42,12 @@ Voom::Presenters.define(:datetime_fields) do
|
|
|
42
42
|
end
|
|
43
43
|
grid do
|
|
44
44
|
column 6 do
|
|
45
|
+
|
|
46
|
+
title 'With Floating Label'
|
|
47
|
+
datetime_field name: :start_datetime do
|
|
48
|
+
label 'Date of Birth...'
|
|
49
|
+
end
|
|
50
|
+
|
|
45
51
|
title 'Min Date'
|
|
46
52
|
datetime_field min_date: "2020-01-01 00:15"
|
|
47
53
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Voom::Presenters.define(:file_inputs) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'File Inputs'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
form do
|
|
11
|
+
file_input name: :upload
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
attach :code, file: __FILE__
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Voom::Presenters.define(:maps) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Maps'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
subheading 'Static Maps'
|
|
11
|
+
|
|
12
|
+
google_map address: '125 Park Street, Traverse City, MI', height: 300, width: 400
|
|
13
|
+
|
|
14
|
+
attach :code, file: __FILE__
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
@@ -2,18 +2,18 @@ require_relative '../helpers/indented_grid'
|
|
|
2
2
|
|
|
3
3
|
Voom::Presenters.define(:layouts) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
attach :top_nav
|
|
7
7
|
attach :component_drawer
|
|
8
8
|
page_title 'Layouts'
|
|
9
9
|
|
|
10
10
|
indented_grid do
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
headline 'Grid'
|
|
13
13
|
|
|
14
14
|
grid do
|
|
15
15
|
(1..12).each do |size|
|
|
16
|
-
column 1, color:
|
|
16
|
+
column 1, color: :lightgray do
|
|
17
17
|
body '1'
|
|
18
18
|
end
|
|
19
19
|
end
|
|
@@ -29,7 +29,14 @@ Voom::Presenters.define(:layouts) do
|
|
|
29
29
|
|
|
30
30
|
grid do
|
|
31
31
|
column 6, color: :lightgray do
|
|
32
|
-
body '6'
|
|
32
|
+
body '6 wide with sub-grid of 12'
|
|
33
|
+
grid do
|
|
34
|
+
(1..12).each do |size|
|
|
35
|
+
column 1, color: :white do
|
|
36
|
+
body '1'
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
33
40
|
end
|
|
34
41
|
column 4, color: :lightgray do
|
|
35
42
|
body '4'
|
|
@@ -39,6 +46,31 @@ Voom::Presenters.define(:layouts) do
|
|
|
39
46
|
end
|
|
40
47
|
end
|
|
41
48
|
|
|
49
|
+
headline 'Grid Padding'
|
|
50
|
+
body 'You can control the grid padding with the `padding` attribute.',
|
|
51
|
+
'By default a top most grid has padding on all four sides.',
|
|
52
|
+
'A nested grid has top and bottom padding only. (No right and left padding.)',
|
|
53
|
+
'Vaid values are `:all`, `:none` and an array that specifies sides to pad: `[:top, :right, :bottom, :left]`. (Same as `:none`)',
|
|
54
|
+
'You can also pad columns. Column padding is half as wide as grid padding. '
|
|
55
|
+
grid padding: :top do
|
|
56
|
+
column 6, color: :lightgray do
|
|
57
|
+
body '6 wide with sub-grid of 12'
|
|
58
|
+
grid padding: :none do
|
|
59
|
+
(1..12).each do |size|
|
|
60
|
+
column 1, color: :white do
|
|
61
|
+
body '1'
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
column 4, color: :lightgray, padding: [:top, :left, :bottom] do
|
|
67
|
+
body '4'
|
|
68
|
+
end
|
|
69
|
+
column 2, color: :lightgray do
|
|
70
|
+
body '2'
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
42
74
|
attach :code, file: __FILE__
|
|
43
75
|
end
|
|
44
76
|
end
|
|
@@ -91,6 +91,31 @@ Voom::Presenters.define(:lists) do
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
+
headline 'Multiple controls'
|
|
95
|
+
list do
|
|
96
|
+
actors.each_with_index do |actor, index|
|
|
97
|
+
line do
|
|
98
|
+
text actor.name
|
|
99
|
+
actions do
|
|
100
|
+
case index%4
|
|
101
|
+
when 0
|
|
102
|
+
checkbox
|
|
103
|
+
icon :delete
|
|
104
|
+
when 1
|
|
105
|
+
radio_button
|
|
106
|
+
icon :delete
|
|
107
|
+
when 2
|
|
108
|
+
switch
|
|
109
|
+
icon :delete
|
|
110
|
+
when 3
|
|
111
|
+
icon_toggle :star
|
|
112
|
+
icon :delete
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
94
119
|
headline 'Two line'
|
|
95
120
|
|
|
96
121
|
list do
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
Voom::Presenters.define('component_menu') do
|
|
2
2
|
helpers Voom::Presenters::Helpers::Inflector
|
|
3
3
|
menu side: :left do
|
|
4
|
-
%i(
|
|
5
|
-
|
|
4
|
+
%i(
|
|
5
|
+
cards lists expansion_panels tables text_fields
|
|
6
|
+
selects buttons fabs fabs_mini dialogs
|
|
7
|
+
layouts headers drawers footers menus
|
|
8
|
+
toggles chips snackbar badges tooltips
|
|
9
|
+
hidden_fields text_areas steppers sliders tab_bars
|
|
10
|
+
content icons datetime_fields date_fields time_fields
|
|
11
|
+
maps file_inputs
|
|
12
|
+
).sort.each do |comp|
|
|
6
13
|
item titleize(comp) do
|
|
7
14
|
event :click do
|
|
8
15
|
loads comp
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Voom::Presenters.define(:sliders) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Sliders'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
|
|
11
|
+
title 'Continuous Slider'
|
|
12
|
+
slider discrete: false
|
|
13
|
+
|
|
14
|
+
title 'Discrete Slider'
|
|
15
|
+
slider discrete: true
|
|
16
|
+
|
|
17
|
+
title 'Discrete Slider with tick marks'
|
|
18
|
+
subheading '1 to 50 in steps of 2'
|
|
19
|
+
slider discrete: true, show_tracker_marks: true, value_min: 0, value_max: 50, step: 2 do
|
|
20
|
+
value 10
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
title 'Slider with change event'
|
|
24
|
+
slider discrete: true, show_tracker_marks: true, value_min: 0, value_max: 50, step: 2 do
|
|
25
|
+
value 10
|
|
26
|
+
event :change do
|
|
27
|
+
snackbar "Slider value changed"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
button 'Show hidden slider', type: :flat, color: :secondary do
|
|
32
|
+
event :click do
|
|
33
|
+
toggle_visibility :hidden_slider, action: :show
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
content id: :hidden_slider, hidden: true do
|
|
37
|
+
title 'I was a hidden slider'
|
|
38
|
+
subheading 'This slider was hidden when the page was first rendered. Now that it was made visible, it should work properly.'
|
|
39
|
+
slider discrete: true, show_tracker_marks: true, value_min: 0, value_max: 50, step: 2 do
|
|
40
|
+
value 10
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
attach :code, file: __FILE__
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
@@ -19,6 +19,16 @@ Voom::Presenters.define(:snackbar) do
|
|
|
19
19
|
snackbar 'You clicked snackbar the button!'
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
+
|
|
23
|
+
blank
|
|
24
|
+
|
|
25
|
+
title 'Response from a POST'
|
|
26
|
+
body 'You can return a string or array of strings in your CRUD response (`messages.snackbar`) and it will display after the event fires.'
|
|
27
|
+
button 'Show Snackbar from Response' do
|
|
28
|
+
event :click do
|
|
29
|
+
posts '/_echo_snackbar_', snackbar_echo: 'Your operation succeeded!'
|
|
30
|
+
end
|
|
31
|
+
end
|
|
22
32
|
end
|
|
23
33
|
|
|
24
34
|
attach :code, file: __FILE__
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Voom::Presenters.define(:steppers) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Stepper'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
|
|
11
|
+
title 'Horizontal Stepper'
|
|
12
|
+
stepper id: :my_stepper_id do
|
|
13
|
+
step id: :step1 do
|
|
14
|
+
label 'Step 1'
|
|
15
|
+
|
|
16
|
+
card do
|
|
17
|
+
text 'Make a choice:'
|
|
18
|
+
|
|
19
|
+
select name: :step_type do
|
|
20
|
+
option do
|
|
21
|
+
value ''
|
|
22
|
+
text 'Select something...'
|
|
23
|
+
end
|
|
24
|
+
option do
|
|
25
|
+
value 'type1'
|
|
26
|
+
text 'Step 2 Variation 1'
|
|
27
|
+
end
|
|
28
|
+
option do
|
|
29
|
+
value 'type2'
|
|
30
|
+
text 'Step 2 Variation 2'
|
|
31
|
+
end
|
|
32
|
+
event :change do
|
|
33
|
+
replaces :step2_content, :step2_form
|
|
34
|
+
stepper :continue
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
text_field do
|
|
39
|
+
label 'Text...'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
text_field do
|
|
43
|
+
label 'Text...'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
actions do
|
|
49
|
+
continue do
|
|
50
|
+
event :click do
|
|
51
|
+
posts 'to_nowhere_fails' # stepper should NOT advance
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
step id: :step2 do
|
|
59
|
+
label 'Middle Step'
|
|
60
|
+
attach :step2_form, step_type: :type1
|
|
61
|
+
actions do
|
|
62
|
+
continue
|
|
63
|
+
back
|
|
64
|
+
cancel
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
step id: :step3 do
|
|
69
|
+
label 'Final Step'
|
|
70
|
+
actions do
|
|
71
|
+
continue
|
|
72
|
+
back
|
|
73
|
+
cancel
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
title 'Vertical Stepper'
|
|
79
|
+
|
|
80
|
+
stepper orientation: :vertical do
|
|
81
|
+
step id: :step1 do
|
|
82
|
+
label 'Step 1'
|
|
83
|
+
headline 'Look at me:'
|
|
84
|
+
text_area
|
|
85
|
+
|
|
86
|
+
text_field do
|
|
87
|
+
label 'Text...'
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
text_field do
|
|
91
|
+
label 'Text...'
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
text_field do
|
|
95
|
+
label 'Text...'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
text_field do
|
|
99
|
+
label 'Text...'
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
actions do
|
|
103
|
+
continue
|
|
104
|
+
cancel
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
step id: :step2 do
|
|
108
|
+
label 'Step 2'
|
|
109
|
+
headline 'Hey Now!'
|
|
110
|
+
select do
|
|
111
|
+
label 'Text...'
|
|
112
|
+
option do
|
|
113
|
+
value 'value1'
|
|
114
|
+
text 'First value'
|
|
115
|
+
end
|
|
116
|
+
option do
|
|
117
|
+
value 'value2'
|
|
118
|
+
text 'Second value'
|
|
119
|
+
end
|
|
120
|
+
event :change do
|
|
121
|
+
snackbar 'item changed'
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
actions do
|
|
127
|
+
continue
|
|
128
|
+
back
|
|
129
|
+
cancel
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
step id: :step3 do
|
|
134
|
+
label 'Step 3'
|
|
135
|
+
|
|
136
|
+
headline 'Finally:'
|
|
137
|
+
text_field name: :numeric do
|
|
138
|
+
label 'Number...'
|
|
139
|
+
pattern /-?[0-9]*(\.[0-9]+)?/
|
|
140
|
+
hint 'Input is not a number!'
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
actions do
|
|
144
|
+
continue
|
|
145
|
+
back
|
|
146
|
+
cancel
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
attach :code, file: __FILE__
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
Voom::Presenters.define(:step2_form) do
|
|
157
|
+
content id: :step2_content do
|
|
158
|
+
type = context.fetch('step_type') {context.fetch(:step_type) {nil}}
|
|
159
|
+
attach "step2_#{type}_form" if type
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
Voom::Presenters.define(:step2_type1_form) do
|
|
164
|
+
helpers Demo::Helpers::IndentedGrid
|
|
165
|
+
indented_grid do
|
|
166
|
+
headline 'Form of Type1'
|
|
167
|
+
title 'Continuous Slider'
|
|
168
|
+
slider discrete: true, show_tracker_marks: true, value_min: 0, value_max: 50, step: 2 do
|
|
169
|
+
value 10
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
Voom::Presenters.define(:step2_type2_form) do
|
|
175
|
+
headline 'Form of Type2'
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
|