coprl 0.1.0 → 3.0.0.beta.1
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 +59 -6
- 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 +43 -0
- data/.gitignore +50 -7
- data/.releaserc +11 -0
- data/.ruby-version +2 -0
- data/CHANGELOG.md +160 -0
- data/CODE-OF-CONDUCT.md +73 -0
- data/CONTRIBUTING.md +60 -0
- data/Gemfile +24 -6
- data/Gemfile.lock +172 -0
- data/HISTORY.md +61 -0
- data/{LICENSE.txt → LICENSE} +6 -6
- data/Procfile +1 -0
- data/README.md +121 -19
- data/ROADMAP.md +6 -0
- data/Rakefile +3 -9
- data/app/demo/components.pom +19 -0
- data/app/demo/components/avatars.pom +40 -0
- data/app/demo/components/badges.pom +26 -0
- data/app/demo/components/buttons.pom +63 -0
- data/app/demo/components/cards.pom +84 -0
- data/app/demo/components/chips.pom +103 -0
- data/app/demo/components/content.pom +111 -0
- data/app/demo/components/date_fields.pom +106 -0
- data/app/demo/components/datetime_fields.pom +113 -0
- data/app/demo/components/dialogs.pom +195 -0
- data/app/demo/components/drawers.pom +35 -0
- data/app/demo/components/expansion_panels.pom +20 -0
- data/app/demo/components/fabs-mini.pom +17 -0
- data/app/demo/components/fabs.pom +16 -0
- data/app/demo/components/file_inputs.pom +52 -0
- data/app/demo/components/footers.pom +36 -0
- data/app/demo/components/google_maps.pom +22 -0
- data/app/demo/components/headers.pom +101 -0
- data/app/demo/components/hidden_fields.pom +18 -0
- data/app/demo/components/icons.pom +125 -0
- data/app/demo/components/image_lists.pom +100 -0
- data/app/demo/components/images.pom +45 -0
- data/app/demo/components/layouts.pom +54 -0
- data/app/demo/components/lists.pom +168 -0
- data/app/demo/components/menus.pom +53 -0
- data/app/demo/components/multi_selects.pom +29 -0
- data/app/demo/components/nav/drawer.pom +5 -0
- data/app/demo/components/nav/menu.pom +54 -0
- 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 +69 -0
- data/app/demo/components/sliders.pom +54 -0
- data/app/demo/components/snackbar.pom +35 -0
- data/app/demo/components/snackbar_attached.pom +6 -0
- data/app/demo/components/steppers.pom +178 -0
- data/app/demo/components/tab_bars.pom +66 -0
- data/app/demo/components/tables.pom +121 -0
- data/app/demo/components/text_areas.pom +38 -0
- data/app/demo/components/text_fields.pom +114 -0
- data/app/demo/components/time_fields.pom +59 -0
- data/app/demo/components/toggles.pom +122 -0
- data/app/demo/components/tooltips.pom +119 -0
- data/app/demo/components/unordered_list.pom +81 -0
- data/app/demo/custom_css.pom +37 -0
- data/app/demo/events.pom +29 -0
- data/app/demo/events/actions/autocomplete.pom +32 -0
- data/app/demo/events/actions/clear.pom +25 -0
- data/app/demo/events/actions/deletes.pom +24 -0
- data/app/demo/events/actions/dialog.pom +19 -0
- data/app/demo/events/actions/dialogs/discard.pom +9 -0
- data/app/demo/events/actions/dialogs/show_dialog.pom +11 -0
- data/app/demo/events/actions/dialogs/trigger.pom +86 -0
- data/app/demo/events/actions/last_response.pom +40 -0
- data/app/demo/events/actions/loads.pom +29 -0
- data/app/demo/events/actions/posts.pom +23 -0
- data/app/demo/events/actions/prompt_if_dirty.pom +54 -0
- data/app/demo/events/actions/replace_text.pom +6 -0
- data/app/demo/events/actions/replaces.pom +21 -0
- data/app/demo/events/actions/snackbar.pom +19 -0
- data/app/demo/events/actions/toggle_visiblity.pom +22 -0
- data/app/demo/events/actions/updates.pom +24 -0
- data/app/demo/events/content_as_form.pom +313 -0
- data/app/demo/events/field_level.pom +20 -0
- data/app/demo/events/form_level.pom +24 -0
- data/app/demo/events/nav/drawer.pom +25 -0
- data/app/demo/events/parallel.pom +44 -0
- data/app/demo/events/tagged_input.pom +37 -0
- data/app/demo/formatting_tokens.pom +125 -0
- data/app/demo/hello_world.pom +3 -0
- data/app/demo/helpers/indented_grid.rb +14 -0
- data/app/demo/index.pom +26 -0
- data/app/demo/markdown.pom +67 -0
- data/app/demo/namespaces.pom +89 -0
- data/app/demo/nav/top_nav.pom +60 -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/code.pom +20 -0
- data/app/demo/shared/context_list.pom +29 -0
- data/app/demo/shared/debug.pom +17 -0
- data/app/demo/styles.pom +42 -0
- data/bin/console +14 -7
- data/component-status.yml +219 -0
- data/config.ru +41 -0
- data/coprl.gemspec +35 -27
- data/docs/migrating_from_v2_to_v3.md +33 -0
- data/docs/settings.md +81 -0
- data/exe/coprl +2 -2
- data/lib/coprl.rb +22 -4
- data/lib/coprl/container_methods.rb +40 -0
- data/lib/coprl/logger_methods.rb +11 -0
- data/lib/coprl/parameters.rb +73 -0
- data/lib/coprl/presenters/api/app.rb +86 -0
- data/lib/coprl/presenters/api/router.rb +10 -0
- data/lib/coprl/presenters/app.rb +55 -0
- data/lib/coprl/presenters/cli.rb +28 -0
- data/lib/coprl/presenters/container_item.rb +16 -0
- data/lib/coprl/presenters/demo/dragon_drop.rb +48 -0
- data/lib/coprl/presenters/demo/echo.rb +36 -0
- data/lib/coprl/presenters/demo/search-terms.yml +50 -0
- data/lib/coprl/presenters/demo/search.rb +29 -0
- data/lib/coprl/presenters/demo/slow.rb +18 -0
- data/lib/coprl/presenters/dsl/components/actions/autocomplete.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/base.rb +65 -0
- data/lib/coprl/presenters/dsl/components/actions/clear.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/close_dialog.rb +17 -0
- data/lib/coprl/presenters/dsl/components/actions/deletes.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/dialog.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/loads.rb +31 -0
- data/lib/coprl/presenters/dsl/components/actions/navigates.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/post_message.rb +17 -0
- data/lib/coprl/presenters/dsl/components/actions/posts.rb +20 -0
- data/lib/coprl/presenters/dsl/components/actions/prompt_if_dirty.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/remove.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/replaces.rb +25 -0
- data/lib/coprl/presenters/dsl/components/actions/snackbar.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/stepper.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/toggle_disabled.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/toggle_visibility.rb +15 -0
- data/lib/coprl/presenters/dsl/components/actions/updates.rb +20 -0
- data/lib/coprl/presenters/dsl/components/avatar.rb +22 -0
- data/lib/coprl/presenters/dsl/components/badge.rb +19 -0
- data/lib/coprl/presenters/dsl/components/base.rb +100 -0
- data/lib/coprl/presenters/dsl/components/button.rb +60 -0
- data/lib/coprl/presenters/dsl/components/card.rb +135 -0
- data/lib/coprl/presenters/dsl/components/checkbox.rb +17 -0
- data/lib/coprl/presenters/dsl/components/chip.rb +50 -0
- data/lib/coprl/presenters/dsl/components/chipset.rb +33 -0
- data/lib/coprl/presenters/dsl/components/content.rb +57 -0
- data/lib/coprl/presenters/dsl/components/date_field.rb +34 -0
- data/lib/coprl/presenters/dsl/components/datetime_base.rb +46 -0
- data/lib/coprl/presenters/dsl/components/datetime_field.rb +23 -0
- data/lib/coprl/presenters/dsl/components/dialog.rb +80 -0
- data/lib/coprl/presenters/dsl/components/drawer.rb +45 -0
- data/lib/coprl/presenters/dsl/components/event.rb +178 -0
- data/lib/coprl/presenters/dsl/components/event_base.rb +18 -0
- data/lib/coprl/presenters/dsl/components/expansion_panel.rb +49 -0
- data/lib/coprl/presenters/dsl/components/file_input.rb +34 -0
- data/lib/coprl/presenters/dsl/components/footer.rb +25 -0
- data/lib/coprl/presenters/dsl/components/form.rb +33 -0
- data/lib/coprl/presenters/dsl/components/grid.rb +110 -0
- data/lib/coprl/presenters/dsl/components/header.rb +58 -0
- data/lib/coprl/presenters/dsl/components/hidden_field.rb +23 -0
- data/lib/coprl/presenters/dsl/components/icon.rb +18 -0
- data/lib/coprl/presenters/dsl/components/icon_base.rb +22 -0
- data/lib/coprl/presenters/dsl/components/icon_toggle.rb +19 -0
- data/lib/coprl/presenters/dsl/components/image.rb +84 -0
- data/lib/coprl/presenters/dsl/components/image_list.rb +43 -0
- data/lib/coprl/presenters/dsl/components/input.rb +30 -0
- data/lib/coprl/presenters/dsl/components/link.rb +33 -0
- data/lib/coprl/presenters/dsl/components/list.rb +47 -0
- data/lib/coprl/presenters/dsl/components/lists/action.rb +69 -0
- data/lib/coprl/presenters/dsl/components/lists/actions.rb +60 -0
- data/lib/coprl/presenters/dsl/components/lists/header.rb +19 -0
- data/lib/coprl/presenters/dsl/components/lists/line.rb +105 -0
- data/lib/coprl/presenters/dsl/components/lists/separator.rb +16 -0
- data/lib/coprl/presenters/dsl/components/menu.rb +123 -0
- data/lib/coprl/presenters/dsl/components/mixins/append.rb +20 -0
- data/lib/coprl/presenters/dsl/components/mixins/attaches.rb +22 -0
- data/lib/coprl/presenters/dsl/components/mixins/avatar.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/buttons.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/chips.rb +18 -0
- data/lib/coprl/presenters/dsl/components/mixins/chipset.rb +19 -0
- data/lib/coprl/presenters/dsl/components/mixins/common.rb +55 -0
- data/lib/coprl/presenters/dsl/components/mixins/content.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/date_time_fields.rb +26 -0
- data/lib/coprl/presenters/dsl/components/mixins/dialogs.rb +16 -0
- data/lib/coprl/presenters/dsl/components/mixins/event.rb +17 -0
- data/lib/coprl/presenters/dsl/components/mixins/expansion_panels.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/file_inputs.rb +16 -0
- data/lib/coprl/presenters/dsl/components/mixins/google_maps.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/grids.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/helpers.rb +20 -0
- data/lib/coprl/presenters/dsl/components/mixins/icons.rb +16 -0
- data/lib/coprl/presenters/dsl/components/mixins/image_lists.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/images.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/last_response.rb +48 -0
- data/lib/coprl/presenters/dsl/components/mixins/menus.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/padding.rb +42 -0
- data/lib/coprl/presenters/dsl/components/mixins/progress.rb +16 -0
- data/lib/coprl/presenters/dsl/components/mixins/selects.rb +22 -0
- data/lib/coprl/presenters/dsl/components/mixins/sliders.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/snackbars.rb +17 -0
- data/lib/coprl/presenters/dsl/components/mixins/steppers.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/tab_bars.rb +17 -0
- data/lib/coprl/presenters/dsl/components/mixins/tables.rb +15 -0
- data/lib/coprl/presenters/dsl/components/mixins/text_fields.rb +36 -0
- data/lib/coprl/presenters/dsl/components/mixins/toggles.rb +35 -0
- data/lib/coprl/presenters/dsl/components/mixins/tooltips.rb +17 -0
- data/lib/coprl/presenters/dsl/components/mixins/typography.rb +117 -0
- data/lib/coprl/presenters/dsl/components/mixins/yield_to.rb +15 -0
- data/lib/coprl/presenters/dsl/components/multi_select.rb +56 -0
- data/lib/coprl/presenters/dsl/components/number_field.rb +20 -0
- data/lib/coprl/presenters/dsl/components/page.rb +28 -0
- data/lib/coprl/presenters/dsl/components/page_title.rb +31 -0
- data/lib/coprl/presenters/dsl/components/progress.rb +27 -0
- data/lib/coprl/presenters/dsl/components/radio_button.rb +14 -0
- data/lib/coprl/presenters/dsl/components/rich_text_area.rb +20 -0
- data/lib/coprl/presenters/dsl/components/select.rb +72 -0
- data/lib/coprl/presenters/dsl/components/separator.rb +21 -0
- data/lib/coprl/presenters/dsl/components/slider.rb +38 -0
- data/lib/coprl/presenters/dsl/components/snackbar.rb +32 -0
- data/lib/coprl/presenters/dsl/components/stepper.rb +96 -0
- data/lib/coprl/presenters/dsl/components/switch.rb +14 -0
- data/lib/coprl/presenters/dsl/components/tab_bar.rb +50 -0
- data/lib/coprl/presenters/dsl/components/table.rb +193 -0
- data/lib/coprl/presenters/dsl/components/text_area.rb +19 -0
- data/lib/coprl/presenters/dsl/components/text_field.rb +113 -0
- data/lib/coprl/presenters/dsl/components/time_field.rb +21 -0
- data/lib/coprl/presenters/dsl/components/toggle_base.rb +25 -0
- data/lib/coprl/presenters/dsl/components/tooltip.rb +24 -0
- data/lib/coprl/presenters/dsl/components/typography.rb +31 -0
- data/lib/coprl/presenters/dsl/components/unordered_list.rb +50 -0
- data/lib/coprl/presenters/dsl/definer.rb +9 -0
- data/lib/coprl/presenters/dsl/definition.rb +34 -0
- data/lib/coprl/presenters/dsl/invalid_presenter.rb +8 -0
- data/lib/coprl/presenters/dsl/lockable.rb +11 -0
- data/lib/coprl/presenters/dsl/protect_from_forgery.rb +43 -0
- data/lib/coprl/presenters/dsl/user_interface.rb +157 -0
- data/lib/coprl/presenters/errors.rb +1 -0
- data/lib/coprl/presenters/errors/invalid_dsl.rb +8 -0
- data/lib/coprl/presenters/errors/parameter_validation.rb +8 -0
- data/lib/coprl/presenters/errors/unprocessable.rb +8 -0
- data/lib/coprl/presenters/generators/inflectors.rb +59 -0
- data/lib/coprl/presenters/generators/plugin.rb +121 -0
- data/lib/coprl/presenters/generators/templates/plugin/.gitignore +12 -0
- data/lib/coprl/presenters/generators/templates/plugin/Gemfile.tt +6 -0
- data/lib/coprl/presenters/generators/templates/plugin/LICENSE.txt.tt +21 -0
- data/lib/coprl/presenters/generators/templates/plugin/README.md +253 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/components/actions/action.rb.tt +16 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/components/actions/dsl.rb.tt +22 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/components/component.rb.tt +18 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/components/dsl.rb.tt +19 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/helpers/helper.rb.tt +15 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/plugin.rb.tt +9 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/web_client/components/actions/data.rb.tt +17 -0
- data/lib/coprl/presenters/generators/templates/plugin/lib/coprl/presenters/plugins/web_client/components/render.rb.tt +27 -0
- data/lib/coprl/presenters/generators/templates/plugin/presenter_plugin.gemspec.tt +21 -0
- data/lib/coprl/presenters/generators/templates/plugin/views/assets/css/components/component.css.tt +21 -0
- data/lib/coprl/presenters/generators/templates/plugin/views/assets/js/components/actions/action.js.tt +15 -0
- data/lib/coprl/presenters/generators/templates/plugin/views/assets/js/components/component.js.tt +39 -0
- data/lib/coprl/presenters/generators/templates/plugin/views/components/application/component.erb.tt +14 -0
- data/lib/coprl/presenters/generators/templates/plugin/views/components/application/component_header.erb.tt +20 -0
- data/lib/coprl/presenters/helpers.rb +12 -0
- data/lib/coprl/presenters/helpers/date.rb +22 -0
- data/lib/coprl/presenters/helpers/errors.rb +11 -0
- data/lib/coprl/presenters/helpers/inflector.rb +16 -0
- data/lib/coprl/presenters/helpers/rails.rb +43 -0
- data/lib/coprl/presenters/helpers/rails/currency.rb +16 -0
- data/lib/coprl/presenters/helpers/rails/model_table.rb +60 -0
- data/lib/coprl/presenters/helpers/redact.rb +13 -0
- data/lib/coprl/presenters/helpers/route.rb +24 -0
- data/lib/coprl/presenters/helpers/time.rb +27 -0
- data/lib/coprl/presenters/namespace.rb +12 -0
- data/lib/coprl/presenters/pluggable.rb +37 -0
- data/lib/coprl/presenters/plugins.rb +7 -0
- data/lib/coprl/presenters/plugins/google_maps.rb +24 -0
- data/lib/coprl/presenters/plugins/google_maps/google_map.erb +10 -0
- data/lib/coprl/presenters/plugins/google_maps/google_map.rb +41 -0
- data/lib/coprl/presenters/rails/engine.rb +19 -0
- data/lib/coprl/presenters/rails/railtie.rb +41 -0
- data/lib/coprl/presenters/registry.rb +64 -0
- data/lib/coprl/presenters/router.rb +59 -0
- data/lib/coprl/presenters/settings.rb +81 -0
- data/lib/coprl/presenters/version.rb +7 -0
- data/lib/coprl/presenters/views.rb +17 -0
- data/lib/coprl/presenters/web_client/app.rb +121 -0
- data/lib/coprl/presenters/web_client/component_decorator_factory.rb +27 -0
- data/lib/coprl/presenters/web_client/component_html_decorator.rb +50 -0
- data/lib/coprl/presenters/web_client/component_renderer.rb +49 -0
- data/lib/coprl/presenters/web_client/custom_css.rb +66 -0
- data/lib/coprl/presenters/web_client/custom_render.rb +31 -0
- data/lib/coprl/presenters/web_client/helpers/color.rb +18 -0
- data/lib/coprl/presenters/web_client/helpers/drag_and_drop.rb +21 -0
- data/lib/coprl/presenters/web_client/helpers/equal.rb +7 -0
- data/lib/coprl/presenters/web_client/helpers/expand_hash.rb +19 -0
- data/lib/coprl/presenters/web_client/helpers/form_helpers.rb +14 -0
- data/lib/coprl/presenters/web_client/helpers/headers.rb +40 -0
- data/lib/coprl/presenters/web_client/helpers/html_safe.rb +8 -0
- data/lib/coprl/presenters/web_client/helpers/includes.rb +11 -0
- data/lib/coprl/presenters/web_client/helpers/inflector.rb +7 -0
- data/lib/coprl/presenters/web_client/helpers/markdown.rb +29 -0
- data/lib/coprl/presenters/web_client/helpers/padding_helpers.rb +21 -0
- data/lib/coprl/presenters/web_client/helpers/rails.rb +12 -0
- data/lib/coprl/presenters/web_client/helpers/rails/escape_html.rb +9 -0
- data/lib/coprl/presenters/web_client/helpers/rails/local_variables.rb +11 -0
- data/lib/coprl/presenters/web_client/helpers/rails/namespaced.rb +12 -0
- data/lib/coprl/presenters/web_client/helpers/rails/partials.rb +20 -0
- data/lib/coprl/presenters/web_client/helpers/rails/raw.rb +9 -0
- data/lib/coprl/presenters/web_client/helpers/rails/safe_markdown.rb +9 -0
- data/lib/coprl/presenters/web_client/helpers/render_component.rb +11 -0
- data/lib/coprl/presenters/web_client/helpers/shared.rb +18 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra.rb +11 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra/escape_html.rb +9 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra/local_variables.rb +11 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra/partials.rb +27 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra/raw.rb +9 -0
- data/lib/coprl/presenters/web_client/helpers/sinatra/safe_markdown.rb +10 -0
- data/lib/coprl/presenters/web_client/helpers/snake_to_camel.rb +12 -0
- data/lib/coprl/presenters/web_client/helpers/transform_hash.rb +20 -0
- data/lib/coprl/presenters/web_client/helpers/unique_id.rb +7 -0
- data/lib/coprl/presenters/web_client/plugin_headers.rb +37 -0
- data/lib/coprl/presenters/web_client/plugin_views_path.rb +35 -0
- data/lib/coprl/presenters/web_client/router.rb +10 -0
- data/lib/coprl/serializer.rb +43 -0
- data/lib/coprl/symbol/to_str.rb +29 -0
- data/lib/coprl/trace.rb +17 -0
- data/lib/hash_ext/traverse.rb +14 -0
- data/public/bundle.css +18256 -0
- data/public/bundle.js +60195 -0
- data/public/dialog-polyfill.js +738 -0
- data/public/favicon.ico +0 -0
- data/public/img/demo/dog.png +0 -0
- data/public/img/demo/grace-hopper-headshot.png +0 -0
- data/public/img/demo/grace-hopper-wide.png +0 -0
- data/public/img/demo/grace-hopper.png +0 -0
- data/public/img/demo/image_card.jpg +0 -0
- data/public/img/demo/rx.png +0 -0
- data/public/img/demo/welcome_card.jpg +0 -0
- data/public/img/settings/blue.png +0 -0
- data/public/img/settings/green.png +0 -0
- data/public/img/settings/orange.png +0 -0
- data/public/img/settings/purple.png +0 -0
- data/public/img/settings/red.png +0 -0
- data/public/img/settings/teal.png +0 -0
- data/public/img/settings/white.png +0 -0
- data/public/img/settings/yellow.png +0 -0
- data/public/presenters/custom_css.css +26 -0
- data/public/scripts.js +289 -0
- data/public/style-bundle.js +73 -0
- data/public/styles.css +16 -0
- data/public/wc.js +52950 -0
- data/rails-engine/app/controllers/coprl_controller.rb +24 -0
- data/rails-engine/app/helpers/coprl_helper.rb +3 -0
- data/rails-engine/app/views/application/_show.html.pom +2 -0
- data/rails-engine/app/views/coprl/show.html.pom +2 -0
- data/rails-engine/app/views/layouts/coprl.html.erb +21 -0
- data/rails-engine/config.ru +1 -0
- data/rails-engine/config/initializers/presenters.rb +43 -0
- data/rails-engine/config/routes.rb +13 -0
- data/scripts/build.sh +10 -0
- data/views/mdc/.babelrc +8 -0
- data/views/mdc/.eslintrc.yml +24 -0
- data/views/mdc/.gitignore +1 -0
- data/views/mdc/.nvmrc +1 -0
- data/views/mdc/assets/js/app.js +34 -0
- data/views/mdc/assets/js/components/base-component.js +163 -0
- 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 +77 -0
- data/views/mdc/assets/js/components/cards.js +14 -0
- data/views/mdc/assets/js/components/checkboxes.js +15 -0
- data/views/mdc/assets/js/components/chips.js +109 -0
- 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 +186 -0
- data/views/mdc/assets/js/components/dialogs.js +135 -0
- 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 +277 -0
- 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 +94 -0
- data/views/mdc/assets/js/components/events/base.js +167 -0
- data/views/mdc/assets/js/components/events/clears.js +29 -0
- data/views/mdc/assets/js/components/events/close_dialog.js +50 -0
- data/views/mdc/assets/js/components/events/dialog.js +43 -0
- data/views/mdc/assets/js/components/events/encode.js +8 -0
- data/views/mdc/assets/js/components/events/errors.js +225 -0
- data/views/mdc/assets/js/components/events/loads.js +62 -0
- data/views/mdc/assets/js/components/events/navigates.js +19 -0
- 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 +218 -0
- 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 +135 -0
- data/views/mdc/assets/js/components/events/snackbar.js +23 -0
- 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 +72 -0
- 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 +14 -0
- 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 +14 -0
- data/views/mdc/assets/js/components/images.js +19 -0
- data/views/mdc/assets/js/components/initialize.js +82 -0
- data/views/mdc/assets/js/components/lists.js +92 -0
- data/views/mdc/assets/js/components/menus.js +79 -0
- data/views/mdc/assets/js/components/mixins/dirtyable.js +22 -0
- data/views/mdc/assets/js/components/mixins/event-handler.js +13 -0
- data/views/mdc/assets/js/components/mixins/visibility-observer.js +35 -0
- data/views/mdc/assets/js/components/multi-select.js +75 -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 +56 -0
- data/views/mdc/assets/js/components/sliders.js +67 -0
- data/views/mdc/assets/js/components/snackbar.js +26 -0
- data/views/mdc/assets/js/components/steppers.js +48 -0
- data/views/mdc/assets/js/components/switches.js +14 -0
- data/views/mdc/assets/js/components/tab-bars.js +28 -0
- data/views/mdc/assets/js/components/text-fields.js +157 -0
- 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/form-data.js +12 -0
- data/views/mdc/assets/js/utils/urls.js +57 -0
- data/views/mdc/assets/js/wc.js +111 -0
- data/views/mdc/assets/scss/app.scss +47 -0
- data/views/mdc/assets/scss/components/avatar.scss +85 -0
- data/views/mdc/assets/scss/components/button.scss +76 -0
- data/views/mdc/assets/scss/components/card.scss +60 -0
- data/views/mdc/assets/scss/components/checkbox.scss +1 -0
- data/views/mdc/assets/scss/components/chip.scss +34 -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 +29 -0
- data/views/mdc/assets/scss/components/dialog.scss +8 -0
- 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 +153 -0
- data/views/mdc/assets/scss/components/fab.scss +27 -0
- data/views/mdc/assets/scss/components/file-input.scss +18 -0
- data/views/mdc/assets/scss/components/grid.scss +81 -0
- 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 +57 -0
- data/views/mdc/assets/scss/components/image-list.scss +18 -0
- data/views/mdc/assets/scss/components/image.scss +22 -0
- data/views/mdc/assets/scss/components/list.scss +43 -0
- data/views/mdc/assets/scss/components/menu.scss +28 -0
- data/views/mdc/assets/scss/components/multi-select.scss +44 -0
- 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 +23 -0
- 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 +5 -0
- data/views/mdc/assets/scss/components/stepper.scss +235 -0
- data/views/mdc/assets/scss/components/switch.scss +15 -0
- data/views/mdc/assets/scss/components/tab-bars.scss +4 -0
- data/views/mdc/assets/scss/components/textfield.scss +19 -0
- data/views/mdc/assets/scss/components/tooltip.scss +3 -0
- data/views/mdc/assets/scss/components/typography.scss +35 -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 +8 -0
- 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 +54 -0
- data/views/mdc/assets/scss/theme.scss +78 -0
- data/views/mdc/body/_dismissable-drawer.erb +34 -0
- data/views/mdc/body/_footer.erb +1 -0
- data/views/mdc/body/_header.erb +39 -0
- data/views/mdc/body/_modal-drawer.erb +35 -0
- data/views/mdc/body/_postamble.erb +17 -0
- data/views/mdc/body/_preamble.erb +26 -0
- data/views/mdc/body/_snackbar.erb +16 -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 +25 -0
- data/views/mdc/body/footers/_large.erb +27 -0
- data/views/mdc/body/footers/_menu_item.erb +6 -0
- data/views/mdc/body/footers/_small.erb +14 -0
- data/views/mdc/components/_avatar.erb +31 -0
- data/views/mdc/components/_badge.erb +2 -0
- data/views/mdc/components/_body.erb +2 -0
- data/views/mdc/components/_button.erb +28 -0
- data/views/mdc/components/_caption.erb +2 -0
- data/views/mdc/components/_card.erb +71 -0
- data/views/mdc/components/_checkbox.erb +34 -0
- data/views/mdc/components/_chip.erb +56 -0
- data/views/mdc/components/_chipset.erb +17 -0
- data/views/mdc/components/_content.erb +36 -0
- data/views/mdc/components/_date.erb +1 -0
- data/views/mdc/components/_datetime.erb +33 -0
- data/views/mdc/components/_dialog.erb +50 -0
- data/views/mdc/components/_event.erb +12 -0
- data/views/mdc/components/_expansion_panel.erb +13 -0
- data/views/mdc/components/_file_input.erb +17 -0
- data/views/mdc/components/_form.erb +14 -0
- data/views/mdc/components/_grid.erb +43 -0
- data/views/mdc/components/_headline.erb +4 -0
- data/views/mdc/components/_hidden_field.erb +5 -0
- data/views/mdc/components/_icon.erb +35 -0
- data/views/mdc/components/_icon_toggle.erb +16 -0
- data/views/mdc/components/_image.erb +25 -0
- data/views/mdc/components/_image_list.erb +38 -0
- data/views/mdc/components/_link.erb +4 -0
- data/views/mdc/components/_list.erb +20 -0
- data/views/mdc/components/_menu.erb +45 -0
- data/views/mdc/components/_multi_select.erb +33 -0
- data/views/mdc/components/_number_field.erb +38 -0
- data/views/mdc/components/_overline.erb +2 -0
- data/views/mdc/components/_page_title.erb +4 -0
- data/views/mdc/components/_progress.erb +11 -0
- data/views/mdc/components/_radio_button.erb +20 -0
- data/views/mdc/components/_render.erb +3 -0
- data/views/mdc/components/_rich_text_area.erb +22 -0
- data/views/mdc/components/_select.erb +43 -0
- data/views/mdc/components/_separator.erb +3 -0
- data/views/mdc/components/_slider.erb +43 -0
- data/views/mdc/components/_snackbar.erb +13 -0
- data/views/mdc/components/_stepper.erb +47 -0
- data/views/mdc/components/_subtitle.erb +4 -0
- data/views/mdc/components/_switch.erb +29 -0
- data/views/mdc/components/_tab_bar.erb +35 -0
- data/views/mdc/components/_table.erb +28 -0
- data/views/mdc/components/_text_area.erb +18 -0
- data/views/mdc/components/_text_field.erb +39 -0
- data/views/mdc/components/_time.erb +1 -0
- data/views/mdc/components/_tooltip.erb +5 -0
- data/views/mdc/components/_typography.erb +15 -0
- data/views/mdc/components/_unordered_list.erb +10 -0
- 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/buttons/_button.erb +27 -0
- data/views/mdc/components/buttons/_fab.erb +23 -0
- data/views/mdc/components/buttons/_icon.erb +24 -0
- data/views/mdc/components/buttons/_image.erb +25 -0
- data/views/mdc/components/list/_actions.erb +6 -0
- data/views/mdc/components/list/_avatar.erb +6 -0
- data/views/mdc/components/list/_checkbox.erb +5 -0
- data/views/mdc/components/list/_header.erb +37 -0
- data/views/mdc/components/list/_hidden_field.erb +3 -0
- data/views/mdc/components/list/_icon.erb +6 -0
- data/views/mdc/components/list/_info.erb +1 -0
- data/views/mdc/components/list/_line.erb +45 -0
- data/views/mdc/components/list/_menu.erb +28 -0
- data/views/mdc/components/list/_separator.erb +1 -0
- data/views/mdc/components/list/actions/_button.erb +1 -0
- data/views/mdc/components/list/actions/_checkbox.erb +1 -0
- data/views/mdc/components/list/actions/_icon.erb +1 -0
- data/views/mdc/components/list/actions/_icon_toggle.erb +1 -0
- data/views/mdc/components/list/actions/_radio_button.erb +1 -0
- data/views/mdc/components/list/actions/_switch.erb +1 -0
- data/views/mdc/components/shared/_hint_error_display.erb +9 -0
- data/views/mdc/components/shared/_input_label.erb +7 -0
- data/views/mdc/components/stepper/_step.erb +33 -0
- 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 +17 -0
- data/views/mdc/components/table/_pagination.erb +11 -0
- data/views/mdc/components/table/_row.erb +16 -0
- data/views/mdc/components/unordered_list/_icon.erb +2 -0
- data/views/mdc/components/unordered_list/_list_item.erb +7 -0
- data/views/mdc/init-depends.sh +2 -0
- data/views/mdc/layout.erb +18 -0
- data/views/mdc/package-lock.json +16461 -0
- data/views/mdc/package.json +76 -0
- data/views/mdc/web.erb +5 -0
- data/views/mdc/webpack.config.js +60 -0
- metadata +900 -19
- data/.rspec +0 -3
- data/.rubocop.yml +0 -10
- data/CODE_OF_CONDUCT.md +0 -84
- data/lib/coprl/version.rb +0 -5
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
require 'date'
|
|
2
|
+
|
|
3
|
+
Coprl::Presenters.define(:date_fields) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Date Fields'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
body <<~DOC
|
|
11
|
+
A date separates user display format from the value format.
|
|
12
|
+
|
|
13
|
+
The default date user display [format](/formatting_tokens#date) can be configured globally using the following:
|
|
14
|
+
|
|
15
|
+
````
|
|
16
|
+
Coprl::Presenters::Settings.configure do |config|
|
|
17
|
+
config.presenters.components.defaults.date.format = 'F j, Y'
|
|
18
|
+
end
|
|
19
|
+
````
|
|
20
|
+
|
|
21
|
+
The value format for date times can be the following:
|
|
22
|
+
|
|
23
|
+
* Ruby Time/DateTime objects.
|
|
24
|
+
* ISO/Chronologically Date Strings, e.g. "2017-02-26"
|
|
25
|
+
DOC
|
|
26
|
+
grid do
|
|
27
|
+
column 6 do
|
|
28
|
+
date_field name: :skydive_at,
|
|
29
|
+
format: 'F j, Y' do
|
|
30
|
+
label 'Select your date to skydive'
|
|
31
|
+
icon :event
|
|
32
|
+
event :change do
|
|
33
|
+
replaces :context_list, :context_list
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
column 6 do
|
|
38
|
+
attach :context_list
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
grid do
|
|
42
|
+
column 6 do
|
|
43
|
+
title 'Min Date'
|
|
44
|
+
date_field min_date: "2020-01-01"
|
|
45
|
+
|
|
46
|
+
title 'Max Date'
|
|
47
|
+
date_field max_date: "2017-12-15"
|
|
48
|
+
|
|
49
|
+
title 'Min Date (today)'
|
|
50
|
+
date_field min_date: :today
|
|
51
|
+
|
|
52
|
+
title 'Min (today), Max (14 days from now)'
|
|
53
|
+
date_field min_date: :today, max_date: DateTime.new(2025, 4, 9) # Or in rails Time.now + 14.days
|
|
54
|
+
|
|
55
|
+
title 'Disabling specific dates'
|
|
56
|
+
date_field disable: ["2025-01-30", "2025-02-21", "2025-03-08", DateTime.new(2025, 4, 9)]
|
|
57
|
+
|
|
58
|
+
title 'Disable range of dates'
|
|
59
|
+
date_field disable: [
|
|
60
|
+
{
|
|
61
|
+
from: "2025-04-01",
|
|
62
|
+
to: "2025-05-01"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
from: "2025-09-01",
|
|
66
|
+
to: "2025-12-01"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
title 'Enabling specific dates'
|
|
71
|
+
date_field enable: [
|
|
72
|
+
{
|
|
73
|
+
from: "2025-04-01",
|
|
74
|
+
to: "2025-05-01"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
from: "2025-09-01",
|
|
78
|
+
to: "2025-12-01"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
title 'Selecting multiple dates'
|
|
82
|
+
date_field mode: :multiple
|
|
83
|
+
|
|
84
|
+
title 'Preloading multiple dates'
|
|
85
|
+
date_field mode: :multiple do
|
|
86
|
+
value ["2016-10-20", "2016-11-04"]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
title 'Range'
|
|
90
|
+
date_field mode: :range
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
grid do
|
|
95
|
+
column 6 do
|
|
96
|
+
title 'As a simple text field'
|
|
97
|
+
text 'You can use the date field without a picker and get a simple auto-formatting text input.'
|
|
98
|
+
date_field picker: false do
|
|
99
|
+
label 'Birthdate'
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
attach :code, file: __FILE__
|
|
106
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
require 'date'
|
|
2
|
+
|
|
3
|
+
Coprl::Presenters.define(:datetime_fields) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
attach :component_drawer
|
|
7
|
+
page_title 'Date Time'
|
|
8
|
+
|
|
9
|
+
indented_grid do
|
|
10
|
+
body <<~DOC
|
|
11
|
+
A date time separates user display format from the value format.
|
|
12
|
+
|
|
13
|
+
The default date time user display [format](/formatting_tokens#date) can be configured globally using the following:
|
|
14
|
+
|
|
15
|
+
````
|
|
16
|
+
Coprl::Presenters::Settings.configure do |config|
|
|
17
|
+
config.presenters.components.defaults.datetime.format = 'F j, Y H:i'
|
|
18
|
+
end
|
|
19
|
+
````
|
|
20
|
+
|
|
21
|
+
The value format for date times can be the following:
|
|
22
|
+
|
|
23
|
+
* Ruby Time/DateTime objects.
|
|
24
|
+
* ISO Date Strings, e.g. "2017-02-26T19:40:03.243Z"
|
|
25
|
+
* Chronologically Date Strings, e.g., YYYY-MM-DD HH:MM
|
|
26
|
+
DOC
|
|
27
|
+
grid do
|
|
28
|
+
column 6 do
|
|
29
|
+
datetime_field name: :skydive_at,
|
|
30
|
+
format: 'F j, Y h:i K' do
|
|
31
|
+
value Time.new(2019, 10, 31)
|
|
32
|
+
label 'Select your date and time to skydive'
|
|
33
|
+
icon :event
|
|
34
|
+
event :change do
|
|
35
|
+
replaces :context_list, :context_list
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
column 6 do
|
|
40
|
+
attach :context_list
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
grid do
|
|
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
|
+
|
|
51
|
+
title 'Min Date'
|
|
52
|
+
datetime_field min_date: "2020-01-01 00:15"
|
|
53
|
+
|
|
54
|
+
title 'Max Date'
|
|
55
|
+
datetime_field max_date: "2017-12-15 02:00"
|
|
56
|
+
|
|
57
|
+
title 'Min Date (today)'
|
|
58
|
+
datetime_field min_date: :today
|
|
59
|
+
|
|
60
|
+
title 'Min (today), Max (Halloween 2025)'
|
|
61
|
+
datetime_field min_date: :today, max_date: Time.new(2025, 10, 31) # Or in rails Time.now + 14.days
|
|
62
|
+
|
|
63
|
+
title 'Disabling specific dates'
|
|
64
|
+
datetime_field disable: ["2025-01-30", "2025-02-21", "2025-03-08", DateTime.new(2025, 4, 9)]
|
|
65
|
+
|
|
66
|
+
title 'Disable range of dates'
|
|
67
|
+
datetime_field disable: [
|
|
68
|
+
{
|
|
69
|
+
from: "2025-04-01",
|
|
70
|
+
to: "2025-05-01"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
from: "2025-09-01",
|
|
74
|
+
to: "2025-12-01"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
title 'Enabling specific dates'
|
|
79
|
+
datetime_field enable: [
|
|
80
|
+
{
|
|
81
|
+
from: "2025-04-01",
|
|
82
|
+
to: "2025-05-01"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
from: "2025-09-01",
|
|
86
|
+
to: "2025-12-01"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
title 'Selecting multiple dates'
|
|
90
|
+
datetime_field mode: :multiple
|
|
91
|
+
|
|
92
|
+
title 'Preloading multiple dates'
|
|
93
|
+
datetime_field mode: :multiple do
|
|
94
|
+
value ["2016-10-20", "2016-11-04"]
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
title 'Min Time'
|
|
98
|
+
datetime_field min_time: "9:00"
|
|
99
|
+
|
|
100
|
+
title 'Max Time'
|
|
101
|
+
datetime_field max_time: "20:00"
|
|
102
|
+
|
|
103
|
+
title 'Range'
|
|
104
|
+
datetime_field mode: :range
|
|
105
|
+
|
|
106
|
+
title '24 hour time'
|
|
107
|
+
datetime_field time_24hr: true, format: 'H:i'
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
end
|
|
112
|
+
attach :code, file: __FILE__
|
|
113
|
+
end
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Coprl::Presenters.define(:dialogs) do
|
|
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
|
|
71
|
+
attach :top_nav
|
|
72
|
+
attach :component_drawer
|
|
73
|
+
page_title 'Dialogs'
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
indented_grid do
|
|
77
|
+
body 'Simple dialog with disabled button'
|
|
78
|
+
button 'Show Dialog' do
|
|
79
|
+
event :click do
|
|
80
|
+
dialog :hold_on
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
dialog id: :hold_on do
|
|
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
|
|
149
|
+
|
|
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
|
|
185
|
+
end
|
|
186
|
+
|
|
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
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
attach :code, file: __FILE__
|
|
194
|
+
end
|
|
195
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require_relative '../helpers/indented_grid'
|
|
2
|
+
|
|
3
|
+
Coprl::Presenters.define(:drawers) do
|
|
4
|
+
helpers Demo::Helpers::IndentedGrid
|
|
5
|
+
attach :top_nav
|
|
6
|
+
page_title 'Drawers'
|
|
7
|
+
|
|
8
|
+
drawer do
|
|
9
|
+
menu do
|
|
10
|
+
item 'About (Drawer)' do
|
|
11
|
+
event :click do
|
|
12
|
+
loads :index
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
item 'Components (Drawer)' do
|
|
17
|
+
event :click do
|
|
18
|
+
loads :components
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
item 'Styles (Drawer)' do
|
|
23
|
+
event :click do
|
|
24
|
+
loads :styles
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
indented_grid do
|
|
31
|
+
headline 'Drawers'
|
|
32
|
+
|
|
33
|
+
attach :code, file: __FILE__
|
|
34
|
+
end
|
|
35
|
+
end
|