voom-presenters 0.1.12 → 2.0.2
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/.circleci/config.yml +1 -1
- data/.gem_release.yml +1 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/ISSUE_TEMPLATE/questions-support.md +10 -0
- data/.github/workflows/semantic-release.yml +42 -0
- data/.gitignore +4 -2
- data/.releaserc +15 -0
- data/.ruby-version +2 -1
- data/CHANGELOG.md +143 -0
- data/CODE-OF-CONDUCT.md +73 -0
- data/CONTRIBUTING.md +60 -0
- data/Gemfile +12 -3
- data/Gemfile.lock +104 -64
- data/HISTORY.md +61 -0
- data/Procfile +1 -0
- data/README.md +48 -24
- data/app/demo/component_status.pom +1 -1
- data/app/demo/components/avatars.pom +40 -0
- data/app/demo/components/cards.pom +11 -4
- data/app/demo/components/chips.pom +65 -52
- data/app/demo/components/content.pom +111 -0
- data/app/demo/components/date_fields.pom +1 -1
- data/app/demo/components/datetime_fields.pom +6 -0
- data/app/demo/components/dialogs.pom +175 -6
- data/app/demo/components/drawers.pom +1 -1
- data/app/demo/components/file_inputs.pom +52 -0
- data/app/demo/components/footers.pom +1 -1
- data/app/demo/components/google_maps.pom +22 -0
- data/app/demo/components/headers.pom +80 -20
- data/app/demo/components/icons.pom +86 -55
- data/app/demo/components/image_lists.pom +100 -0
- data/app/demo/components/images.pom +45 -0
- data/app/demo/components/layouts.pom +15 -5
- data/app/demo/components/lists.pom +51 -17
- data/app/demo/components/menus.pom +14 -4
- data/app/demo/components/nav/menu.pom +40 -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/number_fields.pom +53 -0
- data/app/demo/components/padding.pom +96 -0
- data/app/demo/components/progress.pom +71 -0
- data/app/demo/components/selects.pom +44 -5
- data/app/demo/components/sliders.pom +54 -0
- data/app/demo/components/snackbar.pom +10 -0
- data/app/demo/components/steppers.pom +178 -0
- data/app/demo/components/tab_bars.pom +66 -0
- data/app/demo/components/tables.pom +96 -13
- data/app/demo/components/text_areas.pom +23 -3
- data/app/demo/components/text_fields.pom +75 -17
- data/app/demo/components/toggles.pom +83 -16
- data/app/demo/components/tooltips.pom +10 -10
- data/app/demo/components/unordered_list.pom +81 -0
- data/app/demo/custom_css.pom +37 -0
- data/app/demo/events/actions/autocomplete.pom +3 -3
- data/app/demo/events/actions/clear.pom +25 -0
- data/app/demo/events/actions/dialogs/discard.pom +9 -0
- data/app/demo/events/actions/dialogs/show_dialog.pom +4 -2
- data/app/demo/events/actions/last_response.pom +40 -0
- data/app/demo/events/actions/loads.pom +16 -6
- data/app/demo/events/actions/posts.pom +1 -1
- data/app/demo/events/actions/prompt_if_dirty.pom +54 -0
- data/app/demo/events/actions/toggle_visiblity.pom +4 -3
- data/app/demo/events/content_as_form.pom +313 -0
- data/app/demo/events/nav/drawer.pom +7 -3
- data/app/demo/events/parallel.pom +44 -0
- 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 +24 -0
- data/app/demo/patterns.pom +19 -0
- data/app/demo/patterns/drag_drop.pom +89 -0
- data/app/demo/patterns/floating_card.pom +29 -0
- data/app/demo/patterns/search_select.pom +106 -0
- data/app/demo/plugins/chart.pom +254 -0
- data/app/demo/plugins/image_crop.pom +44 -0
- data/app/demo/plugins/index.pom +29 -0
- data/app/demo/plugins/nav/drawer.pom +19 -0
- data/app/demo/shared/context_list.pom +2 -2
- data/app/demo/styles.pom +24 -12
- data/bin/console +4 -4
- data/component-status.yml +26 -26
- data/config.ru +21 -10
- data/docs/settings.md +81 -0
- data/exe/presenters +3 -0
- data/lib/hash_ext/traverse.rb +14 -0
- data/lib/voom.rb +25 -0
- data/lib/voom/container_methods.rb +2 -2
- data/lib/voom/engine.rb +5 -0
- data/lib/voom/presenters/api/app.rb +46 -13
- data/lib/voom/presenters/api/router.rb +3 -87
- data/lib/voom/presenters/app.rb +3 -3
- data/lib/voom/presenters/cli.rb +28 -0
- data/lib/voom/presenters/demo/dragon_drop.rb +48 -0
- data/lib/voom/presenters/demo/echo.rb +7 -0
- data/lib/voom/presenters/demo/slow.rb +18 -0
- data/lib/voom/presenters/dsl/components/actions/autocomplete.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/base.rb +65 -0
- data/lib/voom/presenters/dsl/components/actions/clear.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/close_dialog.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/deletes.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/dialog.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/loads.rb +31 -0
- data/lib/voom/presenters/dsl/components/actions/navigates.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/post_message.rb +17 -0
- data/lib/voom/presenters/dsl/components/actions/posts.rb +20 -0
- data/lib/voom/presenters/dsl/components/actions/prompt_if_dirty.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/remove.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/replaces.rb +25 -0
- data/lib/voom/presenters/dsl/components/actions/snackbar.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/stepper.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/toggle_disabled.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/toggle_visibility.rb +15 -0
- data/lib/voom/presenters/dsl/components/actions/updates.rb +20 -0
- data/lib/voom/presenters/dsl/components/avatar.rb +5 -10
- data/lib/voom/presenters/dsl/components/badge.rb +0 -2
- data/lib/voom/presenters/dsl/components/base.rb +37 -21
- data/lib/voom/presenters/dsl/components/button.rb +23 -17
- data/lib/voom/presenters/dsl/components/card.rb +54 -42
- data/lib/voom/presenters/dsl/components/checkbox.rb +2 -2
- data/lib/voom/presenters/dsl/components/chip.rb +10 -13
- data/lib/voom/presenters/dsl/components/chipset.rb +33 -0
- data/lib/voom/presenters/dsl/components/content.rb +33 -13
- data/lib/voom/presenters/dsl/components/date_field.rb +1 -1
- data/lib/voom/presenters/dsl/components/datetime_base.rb +0 -3
- data/lib/voom/presenters/dsl/components/datetime_field.rb +0 -2
- data/lib/voom/presenters/dsl/components/dialog.rb +41 -13
- data/lib/voom/presenters/dsl/components/drawer.rb +13 -8
- data/lib/voom/presenters/dsl/components/event.rb +117 -60
- data/lib/voom/presenters/dsl/components/event_base.rb +1 -3
- data/lib/voom/presenters/dsl/components/expansion_panel.rb +3 -6
- data/lib/voom/presenters/dsl/components/file_input.rb +34 -0
- data/lib/voom/presenters/dsl/components/footer.rb +2 -2
- data/lib/voom/presenters/dsl/components/form.rb +3 -16
- data/lib/voom/presenters/dsl/components/grid.rb +64 -22
- data/lib/voom/presenters/dsl/components/header.rb +19 -6
- data/lib/voom/presenters/dsl/components/hidden_field.rb +1 -3
- data/lib/voom/presenters/dsl/components/icon.rb +3 -6
- data/lib/voom/presenters/dsl/components/icon_base.rb +6 -8
- data/lib/voom/presenters/dsl/components/icon_toggle.rb +3 -5
- data/lib/voom/presenters/dsl/components/image.rb +61 -13
- data/lib/voom/presenters/dsl/components/image_list.rb +43 -0
- data/lib/voom/presenters/dsl/components/input.rb +14 -5
- data/lib/voom/presenters/dsl/components/link.rb +33 -0
- data/lib/voom/presenters/dsl/components/list.rb +11 -16
- data/lib/voom/presenters/dsl/components/lists/action.rb +11 -14
- data/lib/voom/presenters/dsl/components/lists/actions.rb +60 -0
- data/lib/voom/presenters/dsl/components/lists/header.rb +2 -2
- data/lib/voom/presenters/dsl/components/lists/line.rb +40 -29
- data/lib/voom/presenters/dsl/components/lists/separator.rb +2 -2
- data/lib/voom/presenters/dsl/components/menu.rb +56 -16
- data/lib/voom/presenters/dsl/components/mixins/append.rb +2 -2
- data/lib/voom/presenters/dsl/components/mixins/attaches.rb +7 -3
- data/lib/voom/presenters/dsl/components/mixins/avatar.rb +1 -4
- data/lib/voom/presenters/dsl/components/mixins/buttons.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/chips.rb +0 -3
- data/lib/voom/presenters/dsl/components/mixins/chipset.rb +19 -0
- data/lib/voom/presenters/dsl/components/mixins/common.rb +21 -16
- 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 +0 -3
- data/lib/voom/presenters/dsl/components/mixins/event.rb +2 -4
- 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/image_lists.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/last_response.rb +48 -0
- data/lib/voom/presenters/dsl/components/mixins/menus.rb +1 -1
- data/lib/voom/presenters/dsl/components/mixins/padding.rb +42 -0
- data/lib/voom/presenters/dsl/components/mixins/progress.rb +16 -0
- 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 +17 -0
- data/lib/voom/presenters/dsl/components/mixins/tables.rb +15 -0
- data/lib/voom/presenters/dsl/components/mixins/text_fields.rb +10 -3
- data/lib/voom/presenters/dsl/components/mixins/toggles.rb +0 -5
- data/lib/voom/presenters/dsl/components/mixins/tooltips.rb +0 -1
- data/lib/voom/presenters/dsl/components/mixins/typography.rb +91 -14
- data/lib/voom/presenters/dsl/components/mixins/yield_to.rb +2 -2
- data/lib/voom/presenters/dsl/components/number_field.rb +20 -0
- data/lib/voom/presenters/dsl/components/page.rb +0 -1
- data/lib/voom/presenters/dsl/components/page_title.rb +31 -0
- data/lib/voom/presenters/dsl/components/progress.rb +27 -0
- data/lib/voom/presenters/dsl/components/radio_button.rb +0 -1
- data/lib/voom/presenters/dsl/components/rich_text_area.rb +20 -0
- data/lib/voom/presenters/dsl/components/select.rb +23 -12
- data/lib/voom/presenters/dsl/components/separator.rb +21 -0
- data/lib/voom/presenters/dsl/components/slider.rb +38 -0
- data/lib/voom/presenters/dsl/components/snackbar.rb +2 -2
- data/lib/voom/presenters/dsl/components/stepper.rb +96 -0
- data/lib/voom/presenters/dsl/components/switch.rb +0 -2
- data/lib/voom/presenters/dsl/components/tab_bar.rb +50 -0
- data/lib/voom/presenters/dsl/components/table.rb +126 -35
- data/lib/voom/presenters/dsl/components/text_area.rb +4 -5
- data/lib/voom/presenters/dsl/components/text_field.rb +55 -16
- data/lib/voom/presenters/dsl/components/time_field.rb +0 -2
- data/lib/voom/presenters/dsl/components/toggle_base.rb +8 -6
- data/lib/voom/presenters/dsl/components/tooltip.rb +1 -2
- data/lib/voom/presenters/dsl/components/typography.rb +6 -7
- data/lib/voom/presenters/dsl/components/unordered_list.rb +50 -0
- data/lib/voom/presenters/dsl/definer.rb +0 -4
- data/lib/voom/presenters/dsl/definition.rb +9 -6
- data/lib/voom/presenters/dsl/protect_from_forgery.rb +43 -0
- data/lib/voom/presenters/dsl/user_interface.rb +43 -32
- data/lib/voom/presenters/errors.rb +1 -0
- data/lib/voom/presenters/errors/invalid_dsl.rb +8 -0
- data/lib/voom/presenters/errors/parameter_validation.rb +1 -3
- data/lib/voom/presenters/generators/inflectors.rb +59 -0
- data/lib/voom/presenters/generators/plugin.rb +115 -0
- data/lib/voom/presenters/generators/templates/plugin/.gitignore +12 -0
- data/lib/voom/presenters/generators/templates/plugin/Gemfile +6 -0
- data/lib/voom/presenters/generators/templates/plugin/LICENSE.txt.tt +21 -0
- data/lib/voom/presenters/generators/templates/plugin/README.md +253 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/actions/action.rb.tt +16 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/actions/dsl.rb.tt +22 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/component.rb.tt +18 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/components/dsl.rb.tt +19 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/helpers/helper.rb.tt +15 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/plugin.rb.tt +9 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/web_client/components/actions/data.rb.tt +17 -0
- data/lib/voom/presenters/generators/templates/plugin/lib/voom/presenters/plugins/web_client/components/render.rb.tt +23 -0
- data/lib/voom/presenters/generators/templates/plugin/presenter_plugin.gemspec.tt +21 -0
- data/lib/voom/presenters/generators/templates/plugin/views/assets/css/components/component.css.tt +21 -0
- data/lib/voom/presenters/generators/templates/plugin/views/assets/js/components/actions/action.js.tt +15 -0
- data/lib/voom/presenters/generators/templates/plugin/views/assets/js/components/component.js.tt +39 -0
- data/lib/voom/presenters/generators/templates/plugin/views/components/component.erb.tt +14 -0
- data/lib/voom/presenters/generators/templates/plugin/views/components/component_header.erb.tt +20 -0
- data/lib/voom/presenters/helpers.rb +2 -8
- data/lib/voom/presenters/helpers/date.rb +3 -3
- data/lib/voom/presenters/helpers/inflector.rb +1 -1
- data/lib/voom/presenters/helpers/rails.rb +18 -6
- data/lib/voom/presenters/helpers/rails/model_table.rb +14 -6
- data/lib/voom/presenters/helpers/redact.rb +13 -0
- data/lib/voom/presenters/helpers/route.rb +15 -2
- data/lib/voom/presenters/helpers/time.rb +1 -1
- data/lib/voom/presenters/namespace.rb +12 -0
- data/lib/voom/presenters/pluggable.rb +37 -0
- data/lib/voom/presenters/plugins.rb +7 -0
- data/lib/voom/presenters/plugins/google_maps.rb +24 -0
- data/lib/voom/presenters/plugins/google_maps/google_map.erb +10 -0
- data/lib/voom/presenters/plugins/google_maps/google_map.rb +41 -0
- data/lib/voom/presenters/{dsl.rb → registry.rb} +14 -10
- data/lib/voom/presenters/router.rb +59 -0
- data/lib/voom/presenters/settings.rb +70 -39
- data/lib/voom/presenters/version.rb +3 -1
- data/lib/voom/presenters/web_client/app.rb +121 -34
- data/lib/voom/presenters/web_client/component_decorator_factory.rb +27 -0
- data/lib/voom/presenters/web_client/component_html_decorator.rb +50 -0
- data/lib/voom/presenters/web_client/component_renderer.rb +49 -0
- data/lib/voom/presenters/web_client/custom_css.rb +65 -0
- data/lib/voom/presenters/web_client/custom_render.rb +31 -0
- data/lib/voom/presenters/web_client/helpers/expand_hash.rb +19 -0
- data/lib/voom/presenters/web_client/helpers/form_helpers.rb +14 -0
- data/lib/voom/presenters/web_client/helpers/padding_helpers.rb +21 -0
- data/lib/voom/presenters/web_client/plugin_headers.rb +37 -0
- data/lib/voom/presenters/web_client/router.rb +3 -89
- data/lib/voom/railtie.rb +37 -0
- data/lib/voom/serializer.rb +2 -2
- data/lib/voom/symbol/to_str.rb +3 -3
- data/lib/voom/trace.rb +0 -2
- data/presenters.gemspec +11 -6
- data/public/bundle.css +18221 -0
- data/public/bundle.js +59949 -0
- data/public/img/demo/avatar.jpg +0 -0
- data/public/presenters/custom_css.css +26 -0
- data/public/style-bundle.js +2 -2
- data/public/wc.js +52704 -0
- data/scripts/build.sh +10 -0
- data/views/mdc/.babelrc +8 -0
- data/views/mdc/.eslintrc.yml +24 -0
- data/views/mdc/.nvmrc +1 -0
- data/views/mdc/assets/js/app.js +30 -6
- data/views/mdc/assets/js/components/base-component.js +160 -2
- data/views/mdc/assets/js/components/base-container.js +87 -0
- data/views/mdc/assets/js/components/base-toggle.js +56 -0
- data/views/mdc/assets/js/components/button.js +71 -9
- data/views/mdc/assets/js/components/cards.js +13 -2
- data/views/mdc/assets/js/components/checkboxes.js +11 -11
- data/views/mdc/assets/js/components/chips.js +104 -7
- data/views/mdc/assets/js/components/content.js +14 -0
- data/views/mdc/assets/js/components/data-tables.js +15 -0
- data/views/mdc/assets/js/components/datetime.js +83 -20
- data/views/mdc/assets/js/components/dialogs.js +130 -27
- data/views/mdc/assets/js/components/drag_n_drop.js +182 -0
- data/views/mdc/assets/js/components/drawer.js +43 -0
- data/views/mdc/assets/js/components/events.js +195 -68
- data/views/mdc/assets/js/components/events/action_parameter.js +62 -0
- data/views/mdc/assets/js/components/events/action_parameter.test.js +62 -0
- data/views/mdc/assets/js/components/events/autocomplete.js +15 -17
- data/views/mdc/assets/js/components/events/base.js +142 -16
- data/views/mdc/assets/js/components/events/clears.js +15 -12
- data/views/mdc/assets/js/components/events/close_dialog.js +50 -0
- data/views/mdc/assets/js/components/events/dialog.js +32 -14
- data/views/mdc/assets/js/components/events/encode.js +8 -0
- data/views/mdc/assets/js/components/events/errors.js +175 -92
- data/views/mdc/assets/js/components/events/loads.js +50 -11
- data/views/mdc/assets/js/components/events/navigates.js +17 -15
- data/views/mdc/assets/js/components/events/plugin.js +18 -0
- data/views/mdc/assets/js/components/events/post_message.js +21 -0
- data/views/mdc/assets/js/components/events/posts.js +169 -47
- data/views/mdc/assets/js/components/events/prompt_if_dirty.js +67 -0
- data/views/mdc/assets/js/components/events/removes.js +21 -0
- data/views/mdc/assets/js/components/events/replaces.js +110 -57
- data/views/mdc/assets/js/components/events/snackbar.js +10 -10
- data/views/mdc/assets/js/components/events/stepper.js +21 -0
- data/views/mdc/assets/js/components/events/toggle_disabled.js +41 -0
- data/views/mdc/assets/js/components/events/toggle_visibility.js +62 -16
- data/views/mdc/assets/js/components/file-inputs.js +76 -0
- data/views/mdc/assets/js/components/form-fields.js +16 -0
- data/views/mdc/assets/js/components/forms.js +9 -60
- data/views/mdc/assets/js/components/get_event_target.js +15 -0
- data/views/mdc/assets/js/components/grid.js +21 -0
- data/views/mdc/assets/js/components/header.js +20 -0
- data/views/mdc/assets/js/components/hidden-fields.js +44 -0
- data/views/mdc/assets/js/components/icon-toggles.js +10 -17
- data/views/mdc/assets/js/components/images.js +19 -0
- data/views/mdc/assets/js/components/initialize.js +62 -18
- data/views/mdc/assets/js/components/lists.js +10 -5
- data/views/mdc/assets/js/components/menus.js +66 -20
- data/views/mdc/assets/js/components/mixins/dirtyable.js +22 -0
- data/views/mdc/assets/js/components/mixins/event-handler.js +7 -7
- data/views/mdc/assets/js/components/mixins/visibility-observer.js +35 -0
- data/views/mdc/assets/js/components/plugins.js +86 -0
- data/views/mdc/assets/js/components/progress.js +31 -0
- data/views/mdc/assets/js/components/radios.js +14 -0
- data/views/mdc/assets/js/components/rich-text-area.js +227 -0
- data/views/mdc/assets/js/components/rich-text-area/horizontal-rule-blot.js +23 -0
- data/views/mdc/assets/js/components/root_document.js +5 -0
- data/views/mdc/assets/js/components/selects.js +41 -30
- data/views/mdc/assets/js/components/sliders.js +67 -0
- data/views/mdc/assets/js/components/snackbar.js +17 -23
- data/views/mdc/assets/js/components/steppers.js +48 -0
- data/views/mdc/assets/js/components/switches.js +10 -32
- data/views/mdc/assets/js/components/tab-bars.js +28 -0
- data/views/mdc/assets/js/components/text-fields.js +117 -43
- data/views/mdc/assets/js/components/tooltip.js +17 -0
- data/views/mdc/assets/js/components/typography.js +28 -0
- data/views/mdc/assets/js/components/uninitialize.js +7 -0
- 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/js/wc.js +111 -0
- data/views/mdc/assets/scss/app.scss +20 -5
- data/views/mdc/assets/scss/components/avatar.scss +51 -7
- data/views/mdc/assets/scss/components/button.scss +20 -7
- data/views/mdc/assets/scss/components/card.scss +13 -7
- data/views/mdc/assets/scss/components/checkbox.scss +0 -4
- data/views/mdc/assets/scss/components/chip.scss +4 -0
- data/views/mdc/assets/scss/components/content.scss +36 -0
- data/views/mdc/assets/scss/components/data-table.scss +91 -0
- data/views/mdc/assets/scss/components/datetime.scss +7 -2
- data/views/mdc/assets/scss/components/dialog.scss +7 -2
- data/views/mdc/assets/scss/components/drag_n_drop.scss +17 -0
- data/views/mdc/assets/scss/components/drawer.scss +82 -0
- data/views/mdc/assets/scss/components/expansion-panel.scss +2 -2
- data/views/mdc/assets/scss/components/fab.scss +23 -4
- data/views/mdc/assets/scss/components/file-input.scss +18 -0
- data/views/mdc/assets/scss/components/grid.scss +74 -3
- data/views/mdc/assets/scss/components/header.scss +21 -0
- data/views/mdc/assets/scss/components/icon-button-toggles.scss +2 -0
- data/views/mdc/assets/scss/components/icon.scss +23 -0
- data/views/mdc/assets/scss/components/image-list.scss +18 -0
- data/views/mdc/assets/scss/components/image.scss +14 -16
- data/views/mdc/assets/scss/components/list.scss +19 -0
- data/views/mdc/assets/scss/components/menu.scss +14 -3
- data/views/mdc/assets/scss/components/progress.scss +1 -0
- data/views/mdc/assets/scss/components/radio.scss +4 -0
- data/views/mdc/assets/scss/components/rich-text-area.scss +73 -0
- data/views/mdc/assets/scss/components/select.scss +6 -3
- data/views/mdc/assets/scss/components/separator.scss +3 -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 +13 -4
- data/views/mdc/assets/scss/components/tab-bars.scss +4 -0
- data/views/mdc/assets/scss/components/textfield.scss +14 -3
- data/views/mdc/assets/scss/components/tooltip.scss +3 -0
- data/views/mdc/assets/scss/components/typography.scss +10 -0
- data/views/mdc/assets/scss/components/unordered-lists.scss +17 -0
- data/views/mdc/assets/scss/components/vendor/quill.snow.css +945 -0
- data/views/mdc/assets/scss/material.blue_grey-orange.min.css +1 -1
- data/views/mdc/assets/scss/media.scss +39 -0
- data/views/mdc/assets/scss/palette.scss +16 -0
- data/views/mdc/assets/scss/styles.scss +40 -1
- data/views/mdc/assets/scss/theme.scss +25 -2
- data/views/mdc/body/dismissable-drawer.erb +34 -0
- data/views/mdc/body/drawer/divider.erb +1 -0
- data/views/mdc/body/drawer/item.erb +13 -0
- data/views/mdc/body/drawer/label.erb +1 -0
- data/views/mdc/body/drawers/menu.erb +1 -1
- data/views/mdc/body/footers/menu_item.erb +2 -2
- data/views/mdc/body/header.erb +38 -30
- data/views/mdc/body/modal-drawer.erb +35 -0
- data/views/mdc/body/snackbar.erb +12 -6
- data/views/mdc/components/actions/autocomplete.rb +8 -0
- data/views/mdc/components/actions/clear.rb +11 -0
- data/views/mdc/components/actions/close_dialog.rb +10 -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 +17 -0
- data/views/mdc/components/actions/navigates.rb +11 -0
- data/views/mdc/components/actions/post.rb +14 -0
- data/views/mdc/components/actions/post_message.rb +10 -0
- data/views/mdc/components/actions/prompt_if_dirty.rb +17 -0
- data/views/mdc/components/actions/remove.rb +10 -0
- data/views/mdc/components/actions/replaces.rb +16 -0
- data/views/mdc/components/actions/resolver.rb +39 -0
- data/views/mdc/components/actions/snackbar.rb +12 -0
- data/views/mdc/components/actions/stepper.rb +10 -0
- data/views/mdc/components/actions/toggle_disabled.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/avatar.erb +12 -7
- data/views/mdc/components/badge.erb +1 -1
- data/views/mdc/components/button.erb +10 -8
- data/views/mdc/components/buttons/button.erb +19 -14
- data/views/mdc/components/buttons/fab.erb +9 -2
- data/views/mdc/components/buttons/icon.erb +12 -5
- data/views/mdc/components/buttons/image.erb +11 -5
- data/views/mdc/components/{display.erb → caption.erb} +0 -0
- data/views/mdc/components/card.erb +67 -41
- data/views/mdc/components/checkbox.erb +32 -23
- data/views/mdc/components/chip.erb +39 -22
- data/views/mdc/components/chipset.erb +18 -0
- data/views/mdc/components/content.erb +37 -11
- data/views/mdc/components/datetime.erb +12 -17
- data/views/mdc/components/dialog.erb +45 -22
- data/views/mdc/components/drag_and_drop/drag_and_drop.rb +16 -0
- data/views/mdc/components/event.erb +3 -9
- data/views/mdc/components/expansion_panel.erb +8 -6
- data/views/mdc/components/file_input.erb +17 -0
- data/views/mdc/components/form.erb +7 -8
- data/views/mdc/components/grid.erb +27 -10
- data/views/mdc/components/headline.erb +2 -0
- data/views/mdc/components/hidden_field.erb +5 -1
- data/views/mdc/components/icon.erb +7 -5
- data/views/mdc/components/icon_toggle.erb +9 -8
- data/views/mdc/components/image.erb +23 -5
- data/views/mdc/components/image_list.erb +38 -0
- data/views/mdc/components/link.erb +3 -13
- data/views/mdc/components/list.erb +9 -4
- data/views/mdc/components/list/actions/switch.erb +1 -1
- data/views/mdc/components/list/avatar.erb +2 -1
- data/views/mdc/components/list/header.erb +5 -3
- data/views/mdc/components/list/hidden_field.erb +3 -0
- data/views/mdc/components/list/icon.erb +2 -1
- data/views/mdc/components/list/line.erb +24 -13
- data/views/mdc/components/list/menu.erb +7 -2
- data/views/mdc/components/list/separator.erb +1 -1
- data/views/mdc/components/menu.erb +20 -16
- data/views/mdc/components/number_field.erb +38 -0
- data/views/mdc/components/{subheading.erb → overline.erb} +0 -0
- data/views/mdc/components/page_title.erb +2 -2
- data/views/mdc/components/progress.erb +11 -0
- data/views/mdc/components/radio_button.erb +19 -10
- data/views/mdc/components/render.erb +2 -3
- data/views/mdc/components/rich_text_area.erb +22 -0
- data/views/mdc/components/select.erb +28 -8
- data/views/mdc/components/separator.erb +3 -0
- data/views/mdc/components/shared/hint_error_display.erb +9 -0
- data/views/mdc/components/shared/input_label.erb +7 -0
- data/views/mdc/components/slider.erb +43 -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 +28 -12
- data/views/mdc/components/tab_bar.erb +35 -0
- data/views/mdc/components/table.erb +28 -13
- data/views/mdc/components/table/checkbox.erb +20 -0
- data/views/mdc/components/table/column.erb +18 -0
- data/views/mdc/components/table/footer.erb +8 -0
- data/views/mdc/components/table/header.erb +14 -4
- data/views/mdc/components/table/pagination.erb +11 -24
- data/views/mdc/components/table/row.erb +7 -5
- data/views/mdc/components/text_area.erb +15 -7
- data/views/mdc/components/text_field.erb +38 -28
- data/views/mdc/components/tooltip.erb +2 -2
- data/views/mdc/components/typography.erb +7 -5
- data/views/mdc/components/unordered_list.erb +10 -0
- data/views/mdc/components/unordered_list/icon.erb +3 -0
- data/views/mdc/components/unordered_list/list_item.erb +7 -0
- data/views/mdc/layout.erb +45 -31
- data/views/mdc/package-lock.json +11786 -6868
- data/views/mdc/package.json +66 -29
- data/views/mdc/web.erb +4 -0
- data/views/mdc/webpack.config.js +14 -1
- metadata +341 -32
- data/app/demo/components/forms.pom +0 -31
- data/lib/voom-presenters.rb +0 -9
- data/lib/voom/presenters-engine.rb +0 -41
- data/lib/voom/presenters.rb +0 -13
- data/lib/voom/presenters/dsl/components/action.rb +0 -35
- data/lib/voom/presenters/web_client/markdown_render.rb +0 -16
- data/public/.gitignore +0 -2
- data/scripts/bump.sh +0 -4
- data/scripts/deploy-demo.sh +0 -2
- data/scripts/release.sh +0 -5
- data/views/mdc/assets/js/dialog-polyfill.js +0 -738
- data/views/mdc/assets/js/material.js +0 -3996
- data/views/mdc/assets/scss/components/icon-toggles.scss +0 -9
- data/views/mdc/assets/scss/components/table-pagination.scss +0 -65
- data/views/mdc/assets/scss/components/vendor/flatpickr.min.css +0 -13
- data/views/mdc/body/drawer.erb +0 -18
- data/views/mdc/components/modal.erb +0 -15
- data/views/mdc/components/static.erb +0 -7
@@ -25,8 +25,15 @@ Voom::Presenters.define(:cards) do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
blank
|
29
|
+
headline 'Square', inline: true
|
30
|
+
switch checked: true do
|
31
|
+
tooltip 'Hide/Show Square Card'
|
32
|
+
event :click do
|
33
|
+
toggle_visibility 'square_card'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
card id: 'square_card', width: '330px' do
|
30
37
|
media height: '200px', color: '#46B6AC' do
|
31
38
|
image 'img/demo/dog.png', position: [:bottom, :right]
|
32
39
|
title 'Update', color: :white, position: :bottom
|
@@ -55,8 +62,8 @@ Voom::Presenters.define(:cards) do
|
|
55
62
|
color: :white, position: :top
|
56
63
|
end
|
57
64
|
actions do
|
58
|
-
button 'Add to Calendar'
|
59
|
-
button icon: :event
|
65
|
+
button 'Add to Calendar', color: :secondary
|
66
|
+
button icon: :event, color: :secondary
|
60
67
|
end
|
61
68
|
end
|
62
69
|
|
@@ -7,84 +7,97 @@ Voom::Presenters.define(:chips) do
|
|
7
7
|
page_title 'Chips'
|
8
8
|
|
9
9
|
indented_grid do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
chipset do
|
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
|
15
17
|
end
|
16
|
-
|
17
18
|
subheading 'leading icon'
|
18
|
-
|
19
|
+
chipset do
|
20
|
+
chip 'Jane Smith', icon: :face
|
21
|
+
end
|
19
22
|
|
20
23
|
subheading 'trailing icon'
|
21
|
-
|
22
|
-
|
24
|
+
chipset do
|
25
|
+
chip 'Jane Smith' do
|
26
|
+
icon :more_vert, position: :right
|
27
|
+
end
|
23
28
|
end
|
24
29
|
|
25
30
|
subheading 'leading and trailing icon'
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
heading 'Events'
|
31
|
-
|
32
|
-
chip 'Jane Smith' do
|
33
|
-
icon :face, position: :left
|
34
|
-
icon :more_vert, position: :right
|
35
|
-
event :click do
|
36
|
-
snackbar 'chip clicked!'
|
31
|
+
chipset do
|
32
|
+
chip 'Jane Smith' do
|
33
|
+
icon :face, position: :left
|
34
|
+
icon :more_vert, position: :right
|
37
35
|
end
|
38
36
|
end
|
37
|
+
heading 'Events'
|
39
38
|
|
40
|
-
|
41
|
-
|
39
|
+
chipset do
|
40
|
+
chip 'Jane Smith' do
|
41
|
+
icon :face, position: :left
|
42
|
+
icon :more_vert, position: :right
|
42
43
|
event :click do
|
43
|
-
snackbar '
|
44
|
+
snackbar 'chip clicked!'
|
44
45
|
end
|
45
46
|
end
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
chip do
|
54
|
-
text 'Jane Smith' do
|
55
|
-
event :click do
|
56
|
-
snackbar 'text clicked'
|
47
|
+
chip do
|
48
|
+
text 'Jane Smith' do
|
49
|
+
event :click do
|
50
|
+
snackbar 'text clicked'
|
51
|
+
end
|
57
52
|
end
|
58
|
-
|
59
|
-
|
53
|
+
icon :face, position: :left
|
54
|
+
icon :more_vert, position: :right
|
60
55
|
event :click do
|
61
|
-
snackbar '
|
56
|
+
snackbar 'chip clicked!'
|
62
57
|
end
|
63
58
|
end
|
64
|
-
icon :more_vert, position: :right
|
65
|
-
event :click do
|
66
|
-
snackbar 'chip clicked!'
|
67
|
-
end
|
68
|
-
end
|
69
59
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
60
|
+
chip do
|
61
|
+
text 'Jane Smith' do
|
62
|
+
event :click do
|
63
|
+
snackbar 'text clicked'
|
64
|
+
end
|
74
65
|
end
|
75
|
-
|
76
|
-
|
66
|
+
icon :face, position: :left do
|
67
|
+
event :click do
|
68
|
+
snackbar 'left icon clicked'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
icon :more_vert, position: :right
|
77
72
|
event :click do
|
78
|
-
snackbar '
|
73
|
+
snackbar 'chip clicked!'
|
79
74
|
end
|
80
75
|
end
|
81
|
-
|
82
|
-
|
83
|
-
|
76
|
+
|
77
|
+
chip do
|
78
|
+
text 'Jane Smith' do
|
79
|
+
event :click do
|
80
|
+
snackbar 'text clicked'
|
81
|
+
end
|
82
|
+
end
|
83
|
+
icon :face, position: :left do
|
84
|
+
event :click do
|
85
|
+
snackbar 'left icon clicked'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
icon :more_vert, position: :right do
|
89
|
+
event :click do
|
90
|
+
snackbar 'right icon clicked'
|
91
|
+
end
|
84
92
|
end
|
85
93
|
end
|
86
94
|
end
|
87
95
|
|
96
|
+
title 'Chips as input', id: :input_chips
|
97
|
+
body 'You can set the name and value attributes of a chip, they then can be posted.
|
98
|
+
An example of this can be found in the [search select](/search_select) pattern demo.'
|
99
|
+
|
100
|
+
|
88
101
|
attach :code, file: __FILE__
|
89
102
|
end
|
90
103
|
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
2
|
+
|
3
|
+
Voom::Presenters.define(:content) do
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
5
|
+
attach :top_nav
|
6
|
+
attach :component_drawer
|
7
|
+
page_title 'Content'
|
8
|
+
|
9
|
+
indented_grid do
|
10
|
+
headline 'Content blocks are wrappers for content and layout'
|
11
|
+
body %(They have many uses this demo will outline their attributes and their common use cases.)
|
12
|
+
blank
|
13
|
+
body %(See the [padding demo](#{presenters_path(:padding)}) for example on how padding works in content blocks.)
|
14
|
+
blank
|
15
|
+
|
16
|
+
title 'Content as a block element'
|
17
|
+
content do
|
18
|
+
text 'A content block with no attributes can turn an inline element into a block element', inline: true
|
19
|
+
end
|
20
|
+
text '..continuing text', inline: true
|
21
|
+
blank
|
22
|
+
|
23
|
+
title 'Attribute: `inline`'
|
24
|
+
content padding: :bottom3 do
|
25
|
+
text 'Inline controls the behavior of the content block within its context. It does not afffect the layout or flow' +
|
26
|
+
'of components within it. This provides a powerful method for building custom layouts'
|
27
|
+
content do
|
28
|
+
content inline: true, width: '500px', background_color: :cyan, padding: :full do
|
29
|
+
card do
|
30
|
+
text 'Section One (Chips in a block)'
|
31
|
+
chipset do
|
32
|
+
chip 'Chip 1'
|
33
|
+
chip 'Chip 1', color: :primary
|
34
|
+
chip 'Chip 2', color: :secondary
|
35
|
+
chip color: :hotpink do
|
36
|
+
text 'Chip 3', color: :white
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
content inline: false, width: '20%', position: [:top, :right] do
|
42
|
+
card do
|
43
|
+
text 'Section Two'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
content inline: true, width: '20%' do
|
47
|
+
card do
|
48
|
+
text 'Section Three'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
blank
|
54
|
+
|
55
|
+
title 'Attribute: `hidden`'
|
56
|
+
text 'A content block can be hidden and shown in response to page events.'
|
57
|
+
content id: :peekaboo, hidden: true do
|
58
|
+
title 'Peekabo'
|
59
|
+
end
|
60
|
+
button :show_hide do
|
61
|
+
event :click do
|
62
|
+
toggle_visibility :peekaboo
|
63
|
+
end
|
64
|
+
end
|
65
|
+
blank
|
66
|
+
|
67
|
+
title 'Attributes: `width` and `height`'
|
68
|
+
text 'A content block can set its width and height. Units can be pixels, rems or percentages.'
|
69
|
+
content width: '50%', height: '8rem' do
|
70
|
+
card do
|
71
|
+
title "I'm wider! and taller!"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
blank
|
75
|
+
|
76
|
+
title 'Attributes: `position`'
|
77
|
+
text 'A content block can be positioned to be :top, :right, :bottom, :left or a combination of the container its inside'
|
78
|
+
content id: :parent, width: '50%', height: '8rem' do
|
79
|
+
content position: [:bottom, :right] do
|
80
|
+
card do
|
81
|
+
title "I'm on the bottom right"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
blank
|
86
|
+
|
87
|
+
title 'Attributes: `text_align`'
|
88
|
+
text %(A content block can define how its typography will be alligned inside it.
|
89
|
+
Valid values: left|right|center|justify)
|
90
|
+
content width: '50%', height: '8rem' do
|
91
|
+
content text_align: :center do
|
92
|
+
title "I'm centered text", inline: 'true'
|
93
|
+
title ".. me 2", inline: 'true'
|
94
|
+
end
|
95
|
+
end
|
96
|
+
blank
|
97
|
+
|
98
|
+
title 'Attribute: `float`'
|
99
|
+
text 'A content block can float above the other content. This is useful for things like type ahead previews. Or hovering previews.'
|
100
|
+
content float: true do
|
101
|
+
card do
|
102
|
+
title "I'm floating!"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
text "xxxxxxxxxxxxxxxx I'm text that is obscured by the floating card in the content block above me"
|
106
|
+
blank
|
107
|
+
|
108
|
+
|
109
|
+
attach :code, file: __FILE__
|
110
|
+
end
|
111
|
+
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
|
|
@@ -2,11 +2,79 @@ require_relative '../helpers/indented_grid'
|
|
2
2
|
|
3
3
|
Voom::Presenters.define(:dialogs) do
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
|
+
helpers do
|
6
|
+
def dlg_form
|
7
|
+
form do
|
8
|
+
text_field name: :myfield do
|
9
|
+
label 'Data to post'
|
10
|
+
end
|
11
|
+
grid padding: :none do
|
12
|
+
column 4, padding: :none do
|
13
|
+
date_field do
|
14
|
+
label 'Date Field'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
column 4
|
18
|
+
column 4 do
|
19
|
+
time_field do
|
20
|
+
label 'Time Field'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
text_field name: :myfield2 do
|
25
|
+
label 'More Data to post'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def shakespeare
|
31
|
+
<<-HEREDOC
|
32
|
+
This is a really really long description. Shakespeare once said:
|
33
|
+
To be, or not to be: that is the question:
|
34
|
+
Whether 'tis nobler in the mind to suffer
|
35
|
+
The slings and arrows of outrageous fortune,
|
36
|
+
Or to take arms against a sea of troubles,
|
37
|
+
And by opposing end them? To die: to sleep;
|
38
|
+
No more; and by a sleep to say we end
|
39
|
+
The heart-ache and the thousand natural shocks
|
40
|
+
That flesh is heir to, 'tis a consummation
|
41
|
+
Devoutly to be wish'd. To die, to sleep;
|
42
|
+
To sleep: perchance to dream: ay, there's the rub;
|
43
|
+
For in that sleep of death what dreams may come
|
44
|
+
When we have shuffled off this mortal coil,
|
45
|
+
Must give us pause: there's the respect
|
46
|
+
That makes calamity of so long life;
|
47
|
+
For who would bear the whips and scorns of time,
|
48
|
+
The oppressor's wrong, the proud man's contumely,
|
49
|
+
The pangs of despised love, the law's delay,
|
50
|
+
The insolence of office and the spurns
|
51
|
+
That patient merit of the unworthy takes,
|
52
|
+
When he himself might his quietus make
|
53
|
+
With a bare bodkin? who would fardels bear,
|
54
|
+
To grunt and sweat under a weary life,
|
55
|
+
But that the dread of something after death,
|
56
|
+
The undiscover'd country from whose bourn
|
57
|
+
No traveller returns, puzzles the will
|
58
|
+
And makes us rather bear those ills we have
|
59
|
+
Than fly to others that we know not of?
|
60
|
+
Thus conscience does make cowards of us all;
|
61
|
+
And thus the native hue of resolution
|
62
|
+
Is sicklied o'er with the pale cast of thought,
|
63
|
+
And enterprises of great pith and moment
|
64
|
+
With this regard their currents turn awry,
|
65
|
+
And lose the name of action.--Soft you now!
|
66
|
+
The fair Ophelia! Nymph, in thy orisons
|
67
|
+
Be all my sins remember'd!
|
68
|
+
HEREDOC
|
69
|
+
end
|
70
|
+
end
|
5
71
|
attach :top_nav
|
6
72
|
attach :component_drawer
|
7
73
|
page_title 'Dialogs'
|
8
74
|
|
75
|
+
|
9
76
|
indented_grid do
|
77
|
+
body 'Simple dialog with disabled button'
|
10
78
|
button 'Show Dialog' do
|
11
79
|
event :click do
|
12
80
|
dialog :hold_on
|
@@ -14,13 +82,114 @@ Voom::Presenters.define(:dialogs) do
|
|
14
82
|
end
|
15
83
|
|
16
84
|
dialog id: :hold_on do
|
17
|
-
title "
|
18
|
-
body 'This is an example of the Material Design
|
85
|
+
title "MDC Dialog"
|
86
|
+
body 'This is an example of the Material Design Component for the web dialog component. Please use responsibly.'
|
87
|
+
|
88
|
+
actions do
|
89
|
+
button 'Close'
|
90
|
+
button 'Disabled action', disabled: true
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
body 'Dialog with width set'
|
95
|
+
button 'Show Dialog' do
|
96
|
+
event :click do
|
97
|
+
dialog :width_demo
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
dialog id: :width_demo, width: '400px' do
|
102
|
+
title "MDC Dialog"
|
103
|
+
body shakespeare
|
104
|
+
|
105
|
+
actions do
|
106
|
+
button 'Close'
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
grid do
|
111
|
+
column 9 do
|
112
|
+
body 'Dialog with form'
|
113
|
+
button 'With Form' do
|
114
|
+
event :click do
|
115
|
+
dialog :with_form
|
116
|
+
end
|
117
|
+
end
|
118
|
+
body 'Dialog with multiple forms'
|
119
|
+
button 'Muliple Forms' do
|
120
|
+
event :click do
|
121
|
+
dialog :multi_form_dialog
|
122
|
+
end
|
123
|
+
end
|
124
|
+
body 'Dialog with height and width'
|
125
|
+
button 'Height/Width' do
|
126
|
+
event :click do
|
127
|
+
dialog :height_width_dialog
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
column 3 do
|
133
|
+
attach :context_list
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
dialog id: :with_form do
|
138
|
+
title "Dialog with Form"
|
139
|
+
dlg_form
|
140
|
+
actions do
|
141
|
+
button 'Close'
|
142
|
+
button 'Update' do
|
143
|
+
event :click do
|
144
|
+
replaces :context_list, :context_list
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
19
149
|
|
20
|
-
|
21
|
-
|
150
|
+
dialog id: :multi_form_dialog do
|
151
|
+
title "Dialog with Multiple Forms"
|
152
|
+
subtitle
|
153
|
+
form do
|
154
|
+
text_field name: :myfield do
|
155
|
+
label 'Data to post'
|
156
|
+
end
|
157
|
+
text_field name: :myfield2 do
|
158
|
+
label 'More Data to post'
|
159
|
+
end
|
160
|
+
subtitle "These are normal buttons and will not automatically close the dialog. However, you can call 'close_dialog' to programatically close the dialog."
|
161
|
+
button 'Close' do
|
162
|
+
event :click do
|
163
|
+
close_dialog :multi_form_dialog
|
164
|
+
end
|
165
|
+
end
|
166
|
+
button 'Update (and remain open)' do
|
167
|
+
event :click do
|
168
|
+
replaces :context_list, :context_list
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
separator
|
173
|
+
content tag: :second_form_input do
|
174
|
+
dlg_form
|
175
|
+
end
|
176
|
+
subtitle 'The buttons below are Dialog Action buttons. When clicked, they will process any configured actions, then automatically clsoe the dialog.'
|
177
|
+
actions do
|
178
|
+
button 'Close'
|
179
|
+
button 'Update' do
|
180
|
+
event :click do
|
181
|
+
replaces :context_list, :context_list, input_tag: :second_form_input
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
22
185
|
end
|
23
186
|
|
24
|
-
|
187
|
+
dialog id: :height_width_dialog, height: '500px', width: '500px' do
|
188
|
+
title "Dialog with set dimensions"
|
189
|
+
body "MDC dialogs have default styles of max-width 560px (for 592px viewport or larger) and min-width 280px."
|
190
|
+
end
|
25
191
|
end
|
26
|
-
|
192
|
+
|
193
|
+
attach :code, file: __FILE__
|
194
|
+
end
|
195
|
+
|