matestack-ui-core 0.7.5 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +8 -0
- data/README.md +28 -216
- data/app/concepts/matestack/ui/core/abbr/abbr.haml +3 -3
- data/app/concepts/matestack/ui/core/abbr/abbr.rb +1 -8
- data/app/concepts/matestack/ui/core/action/action.haml +1 -1
- data/app/concepts/matestack/ui/core/action/action.js +120 -39
- data/app/concepts/matestack/ui/core/action/action.rb +40 -15
- data/app/concepts/matestack/ui/core/actionview/dynamic.haml +4 -4
- data/app/concepts/matestack/ui/core/address/address.haml +3 -3
- data/app/concepts/matestack/ui/core/address/address.rb +1 -1
- data/app/concepts/matestack/ui/core/app/app.haml +2 -3
- data/app/concepts/matestack/ui/core/app/app.js +6 -3
- data/app/concepts/matestack/ui/core/app/app.rb +33 -56
- data/app/concepts/matestack/ui/core/app/store.js +28 -2
- data/app/concepts/matestack/ui/core/area/area.haml +1 -1
- data/app/concepts/matestack/ui/core/area/area.rb +2 -14
- data/app/concepts/matestack/ui/core/article/article.haml +3 -3
- data/app/concepts/matestack/ui/core/article/article.rb +1 -1
- data/app/concepts/matestack/ui/core/aside/aside.haml +1 -1
- data/app/concepts/matestack/ui/core/aside/aside.rb +0 -1
- data/app/concepts/matestack/ui/core/async/async.haml +6 -2
- data/app/concepts/matestack/ui/core/async/async.js +43 -9
- data/app/concepts/matestack/ui/core/async/async.rb +29 -4
- data/app/concepts/matestack/ui/core/async/children_wrapper.haml +2 -0
- data/app/concepts/matestack/ui/core/b/b.haml +3 -3
- data/app/concepts/matestack/ui/core/b/b.rb +1 -1
- data/app/concepts/matestack/ui/core/bdi/bdi.haml +3 -3
- data/app/concepts/matestack/ui/core/bdi/bdi.rb +1 -0
- data/app/concepts/matestack/ui/core/bdo/bdo.haml +3 -3
- data/app/concepts/matestack/ui/core/bdo/bdo.rb +2 -7
- data/app/concepts/matestack/ui/core/blockquote/blockquote.haml +3 -3
- data/app/concepts/matestack/ui/core/blockquote/blockquote.rb +2 -7
- data/app/concepts/matestack/ui/core/br/br.haml +4 -4
- data/app/concepts/matestack/ui/core/br/br.rb +1 -1
- data/app/concepts/matestack/ui/core/button/button.haml +3 -3
- data/app/concepts/matestack/ui/core/button/button.rb +3 -7
- data/app/concepts/matestack/ui/core/cable/cable.haml +4 -0
- data/app/concepts/matestack/ui/core/cable/cable.js +100 -0
- data/app/concepts/matestack/ui/core/cable/cable.rb +28 -0
- data/app/concepts/matestack/ui/core/cable/children_wrapper.haml +2 -0
- data/app/concepts/matestack/ui/core/caption/caption.haml +3 -3
- data/app/concepts/matestack/ui/core/caption/caption.rb +1 -1
- data/app/concepts/matestack/ui/core/cite/cite.haml +3 -3
- data/app/concepts/matestack/ui/core/cite/cite.rb +1 -1
- data/app/concepts/matestack/ui/core/code/code.haml +3 -3
- data/app/concepts/matestack/ui/core/code/code.rb +1 -1
- data/app/concepts/matestack/ui/core/collection/content/content.js +2 -2
- data/app/concepts/matestack/ui/core/collection/content/content.rb +4 -6
- data/app/concepts/matestack/ui/core/collection/content/next/next.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/content/page/link/link.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +5 -3
- data/app/concepts/matestack/ui/core/collection/content/previous/previous.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/filter/filter.rb +4 -5
- data/app/concepts/matestack/ui/core/collection/filter/input/input.rb +11 -8
- data/app/concepts/matestack/ui/core/collection/filter/reset/reset.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/filter/select/select.haml +10 -0
- data/app/concepts/matestack/ui/core/collection/filter/select/select.rb +30 -0
- data/app/concepts/matestack/ui/core/collection/filter/submit/submit.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/helper.rb +14 -6
- data/app/concepts/matestack/ui/core/collection/order/order.js +1 -1
- data/app/concepts/matestack/ui/core/collection/order/order.rb +4 -5
- data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +9 -5
- data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.haml +1 -1
- data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.rb +0 -1
- data/app/concepts/matestack/ui/core/component/base.rb +430 -0
- data/app/concepts/matestack/ui/core/component/children.haml +2 -2
- data/app/concepts/matestack/ui/core/component/component.js +9 -46
- data/app/concepts/matestack/ui/core/component/dynamic.haml +1 -1
- data/app/concepts/matestack/ui/core/component/dynamic.rb +25 -247
- data/app/concepts/matestack/ui/core/component/static.rb +3 -12
- data/app/concepts/matestack/ui/core/data/data.haml +3 -3
- data/app/concepts/matestack/ui/core/data/data.rb +2 -5
- data/app/concepts/matestack/ui/core/datalist/datalist.haml +2 -2
- data/app/concepts/matestack/ui/core/datalist/datalist.rb +1 -2
- data/app/concepts/matestack/ui/core/dd/dd.haml +3 -3
- data/app/concepts/matestack/ui/core/dd/dd.rb +1 -1
- data/app/concepts/matestack/ui/core/del/del.haml +3 -3
- data/app/concepts/matestack/ui/core/del/del.rb +2 -0
- data/app/concepts/matestack/ui/core/details/details.haml +1 -1
- data/app/concepts/matestack/ui/core/details/details.rb +1 -1
- data/app/concepts/matestack/ui/core/dfn/dfn.haml +3 -3
- data/app/concepts/matestack/ui/core/dfn/dfn.rb +1 -1
- data/app/concepts/matestack/ui/core/dialog/dialog.haml +3 -3
- data/app/concepts/matestack/ui/core/dialog/dialog.rb +2 -5
- data/app/concepts/matestack/ui/core/div/div.haml +1 -1
- data/app/concepts/matestack/ui/core/div/div.rb +0 -1
- data/app/concepts/matestack/ui/core/dl/dl.haml +3 -3
- data/app/concepts/matestack/ui/core/dl/dl.rb +2 -2
- data/app/concepts/matestack/ui/core/dt/dt.haml +3 -3
- data/app/concepts/matestack/ui/core/dt/dt.rb +1 -1
- data/app/concepts/matestack/ui/core/em/em.haml +3 -3
- data/app/concepts/matestack/ui/core/em/em.rb +1 -1
- data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +4 -4
- data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +3 -6
- data/app/concepts/matestack/ui/core/figure/figure.haml +1 -1
- data/app/concepts/matestack/ui/core/figure/figure.rb +0 -1
- data/app/concepts/matestack/ui/core/footer/footer.haml +1 -1
- data/app/concepts/matestack/ui/core/footer/footer.rb +0 -1
- data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +79 -0
- data/app/concepts/matestack/ui/core/form/form.haml +1 -1
- data/app/concepts/matestack/ui/core/form/form.js +257 -123
- data/app/concepts/matestack/ui/core/form/form.rb +52 -19
- data/app/concepts/matestack/ui/core/form/has_errors.rb +54 -0
- data/app/concepts/matestack/ui/core/form/has_input_html_attributes.rb +13 -0
- data/app/concepts/matestack/ui/core/form/input/input.rb +32 -52
- data/app/concepts/matestack/ui/core/form/radio/radio.rb +71 -0
- data/app/concepts/matestack/ui/core/form/select/select.haml +9 -76
- data/app/concepts/matestack/ui/core/form/select/select.rb +44 -49
- data/app/concepts/matestack/ui/core/form/submit/submit.haml +1 -1
- data/app/concepts/matestack/ui/core/form/submit/submit.rb +5 -2
- data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +28 -0
- data/app/concepts/matestack/ui/core/form/utils.rb +47 -0
- data/app/concepts/matestack/ui/core/header/header.haml +1 -1
- data/app/concepts/matestack/ui/core/header/header.rb +0 -1
- data/app/concepts/matestack/ui/core/heading/heading.haml +4 -49
- data/app/concepts/matestack/ui/core/heading/heading.rb +1 -1
- data/app/concepts/matestack/ui/core/hr/hr.haml +1 -1
- data/app/concepts/matestack/ui/core/hr/hr.rb +0 -1
- data/app/concepts/matestack/ui/core/icon/icon.haml +3 -3
- data/app/concepts/matestack/ui/core/icon/icon.rb +1 -1
- data/app/concepts/matestack/ui/core/iframe/iframe.haml +3 -3
- data/app/concepts/matestack/ui/core/iframe/iframe.rb +3 -10
- data/app/concepts/matestack/ui/core/img/img.haml +1 -1
- data/app/concepts/matestack/ui/core/img/img.rb +8 -8
- data/app/concepts/matestack/ui/core/input/input.haml +1 -2
- data/app/concepts/matestack/ui/core/input/input.rb +4 -4
- data/app/concepts/matestack/ui/core/ins/ins.haml +3 -3
- data/app/concepts/matestack/ui/core/ins/ins.rb +2 -6
- data/app/concepts/matestack/ui/core/isolated/children_wrapper.haml +2 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.haml +10 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.js +108 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.rb +59 -0
- data/app/concepts/matestack/ui/core/js/core.js +6 -4
- data/app/concepts/matestack/ui/core/kbd/kbd.haml +3 -3
- data/app/concepts/matestack/ui/core/kbd/kbd.rb +1 -0
- data/app/concepts/matestack/ui/core/label/label.haml +3 -3
- data/app/concepts/matestack/ui/core/label/label.rb +2 -6
- data/app/concepts/matestack/ui/core/legend/legend.haml +3 -3
- data/app/concepts/matestack/ui/core/legend/legend.rb +1 -1
- data/app/concepts/matestack/ui/core/li/li.haml +3 -3
- data/app/concepts/matestack/ui/core/li/li.rb +2 -1
- data/app/concepts/matestack/ui/core/link/link.haml +3 -3
- data/app/concepts/matestack/ui/core/link/link.rb +10 -14
- data/app/concepts/matestack/ui/core/main/main.haml +1 -1
- data/app/concepts/matestack/ui/core/main/main.rb +0 -1
- data/app/concepts/matestack/ui/core/map/map.haml +1 -1
- data/app/concepts/matestack/ui/core/map/map.rb +1 -7
- data/app/concepts/matestack/ui/core/mark/mark.haml +3 -3
- data/app/concepts/matestack/ui/core/mark/mark.rb +1 -0
- data/app/concepts/matestack/ui/core/meter/meter.haml +1 -1
- data/app/concepts/matestack/ui/core/meter/meter.rb +1 -10
- data/app/concepts/matestack/ui/core/nav/nav.haml +1 -1
- data/app/concepts/matestack/ui/core/nav/nav.rb +0 -1
- data/app/concepts/matestack/ui/core/noscript/noscript.haml +3 -3
- data/app/concepts/matestack/ui/core/noscript/noscript.rb +1 -1
- data/app/concepts/matestack/ui/core/object/object.haml +1 -1
- data/app/concepts/matestack/ui/core/object/object.rb +1 -11
- data/app/concepts/matestack/ui/core/ol/ol.haml +1 -1
- data/app/concepts/matestack/ui/core/ol/ol.rb +1 -1
- data/app/concepts/matestack/ui/core/onclick/onclick.haml +1 -1
- data/app/concepts/matestack/ui/core/onclick/onclick.rb +1 -0
- data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +1 -1
- data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +1 -6
- data/app/concepts/matestack/ui/core/option/option.haml +3 -3
- data/app/concepts/matestack/ui/core/option/option.rb +2 -8
- data/app/concepts/matestack/ui/core/output/output.haml +3 -3
- data/app/concepts/matestack/ui/core/output/output.rb +2 -7
- data/app/concepts/matestack/ui/core/page/{content.js → content/content.js} +8 -2
- data/app/concepts/matestack/ui/core/page/content/content.rb +28 -0
- data/app/concepts/matestack/ui/core/page/page.haml +3 -9
- data/app/concepts/matestack/ui/core/page/page.rb +15 -175
- data/app/concepts/matestack/ui/core/paragraph/paragraph.haml +3 -3
- data/app/concepts/matestack/ui/core/paragraph/paragraph.rb +1 -1
- data/app/concepts/matestack/ui/core/param/param.haml +1 -1
- data/app/concepts/matestack/ui/core/param/param.rb +1 -6
- data/app/concepts/matestack/ui/core/partial/partial.rb +0 -1
- data/app/concepts/matestack/ui/core/picture/picture.haml +1 -1
- data/app/concepts/matestack/ui/core/pre/pre.haml +3 -3
- data/app/concepts/matestack/ui/core/pre/pre.rb +1 -1
- data/app/concepts/matestack/ui/core/progress/progress.haml +1 -1
- data/app/concepts/matestack/ui/core/progress/progress.rb +1 -10
- data/app/concepts/matestack/ui/core/q/q.haml +3 -3
- data/app/concepts/matestack/ui/core/q/q.rb +2 -7
- data/app/concepts/matestack/ui/core/rp/rp.haml +3 -3
- data/app/concepts/matestack/ui/core/rp/rp.rb +1 -1
- data/app/concepts/matestack/ui/core/rt/rt.haml +3 -3
- data/app/concepts/matestack/ui/core/rt/rt.rb +1 -1
- data/app/concepts/matestack/ui/core/ruby/ruby.haml +3 -3
- data/app/concepts/matestack/ui/core/ruby/ruby.rb +1 -1
- data/app/concepts/matestack/ui/core/s/s.haml +3 -3
- data/app/concepts/matestack/ui/core/s/s.rb +1 -1
- data/app/concepts/matestack/ui/core/samp/samp.haml +3 -3
- data/app/concepts/matestack/ui/core/samp/samp.rb +1 -0
- data/app/concepts/matestack/ui/core/section/section.haml +1 -1
- data/app/concepts/matestack/ui/core/section/section.rb +0 -1
- data/app/concepts/matestack/ui/core/slot/slot.rb +1 -2
- data/app/concepts/matestack/ui/core/small/small.haml +3 -3
- data/app/concepts/matestack/ui/core/small/small.rb +1 -1
- data/app/concepts/matestack/ui/core/span/span.haml +3 -3
- data/app/concepts/matestack/ui/core/span/span.rb +1 -1
- data/app/concepts/matestack/ui/core/strong/strong.haml +3 -3
- data/app/concepts/matestack/ui/core/strong/strong.rb +1 -1
- data/app/concepts/matestack/ui/core/sub/sub.haml +3 -3
- data/app/concepts/matestack/ui/core/sub/sub.rb +1 -1
- data/app/concepts/matestack/ui/core/summary/summary.haml +3 -3
- data/app/concepts/matestack/ui/core/summary/summary.rb +1 -1
- data/app/concepts/matestack/ui/core/sup/sup.haml +3 -3
- data/app/concepts/matestack/ui/core/sup/sup.rb +1 -1
- data/app/concepts/matestack/ui/core/table/table.haml +1 -1
- data/app/concepts/matestack/ui/core/table/table.rb +0 -1
- data/app/concepts/matestack/ui/core/tbody/tbody.haml +1 -1
- data/app/concepts/matestack/ui/core/tbody/tbody.rb +0 -1
- data/app/concepts/matestack/ui/core/td/td.haml +3 -3
- data/app/concepts/matestack/ui/core/td/td.rb +2 -1
- data/app/concepts/matestack/ui/core/template/template.haml +1 -1
- data/app/concepts/matestack/ui/core/textarea/textarea.haml +5 -0
- data/app/concepts/matestack/ui/core/textarea/textarea.rb +10 -0
- data/app/concepts/matestack/ui/core/tfoot/tfoot.haml +1 -1
- data/app/concepts/matestack/ui/core/tfoot/tfoot.rb +0 -1
- data/app/concepts/matestack/ui/core/th/th.haml +3 -3
- data/app/concepts/matestack/ui/core/th/th.rb +2 -1
- data/app/concepts/matestack/ui/core/thead/thead.haml +1 -1
- data/app/concepts/matestack/ui/core/thead/thead.rb +0 -1
- data/app/concepts/matestack/ui/core/time/time.haml +1 -1
- data/app/concepts/matestack/ui/core/time/time.rb +1 -7
- data/app/concepts/matestack/ui/core/toggle/toggle.haml +2 -0
- data/app/concepts/matestack/ui/core/toggle/toggle.js +71 -0
- data/app/concepts/matestack/ui/core/toggle/toggle.rb +13 -0
- data/app/concepts/matestack/ui/core/tr/tr.haml +1 -1
- data/app/concepts/matestack/ui/core/tr/tr.rb +0 -1
- data/app/concepts/matestack/ui/core/transition/transition.haml +3 -3
- data/app/concepts/matestack/ui/core/transition/transition.js +17 -1
- data/app/concepts/matestack/ui/core/transition/transition.rb +15 -8
- data/app/concepts/matestack/ui/core/u/u.haml +3 -3
- data/app/concepts/matestack/ui/core/u/u.rb +1 -1
- data/app/concepts/matestack/ui/core/ul/ul.haml +1 -1
- data/app/concepts/matestack/ui/core/ul/ul.rb +0 -1
- data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +3 -1
- data/app/concepts/matestack/ui/core/var/var.haml +3 -3
- data/app/concepts/matestack/ui/core/var/var.rb +1 -0
- data/app/concepts/matestack/ui/core/video/video.haml +2 -2
- data/app/concepts/matestack/ui/core/video/video.rb +4 -14
- data/app/concepts/matestack/ui/core/view/view.haml +1 -0
- data/app/concepts/matestack/ui/core/view/view.rb +30 -0
- data/app/concepts/matestack/ui/core/wbr/wbr.haml +5 -1
- data/app/concepts/matestack/ui/core/wbr/wbr.rb +1 -0
- data/app/concepts/matestack/ui/core/youtube/youtube.haml +1 -1
- data/app/concepts/matestack/ui/core/youtube/youtube.rb +18 -16
- data/app/helpers/matestack/ui/core/application_helper.rb +94 -20
- data/app/lib/matestack/ui/component.rb +1 -0
- data/app/lib/matestack/ui/core/has_view_context.rb +4 -4
- data/app/lib/matestack/ui/core/html_attributes.rb +43 -0
- data/app/lib/matestack/ui/core/properties.rb +161 -0
- data/app/lib/matestack/ui/core/rendering/default_renderer_class_determiner.rb +33 -0
- data/app/lib/matestack/ui/core/rendering/main_renderer.rb +200 -0
- data/app/lib/matestack/ui/isolated_component.rb +1 -0
- data/app/lib/matestack/ui/vue_js_component.rb +1 -0
- data/lib/matestack/ui/core.rb +4 -2
- data/lib/matestack/ui/core/cell.rb +0 -2
- data/lib/matestack/ui/core/component/registry.rb +47 -0
- data/lib/matestack/ui/core/components.rb +269 -0
- data/lib/matestack/ui/core/dsl.rb +6 -0
- data/lib/matestack/ui/core/engine.rb +16 -0
- data/lib/matestack/ui/core/version.rb +1 -1
- data/vendor/assets/javascripts/dist/manifest.json +6 -10
- data/vendor/assets/javascripts/dist/matestack-ui-core.js +834 -261
- data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -1
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +1 -1
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -1
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
- metadata +50 -65
- data/MIT-LICENSE +0 -20
- data/app/concepts/matestack/ui/core/absolute/absolute.haml +0 -3
- data/app/concepts/matestack/ui/core/absolute/absolute.rb +0 -17
- data/app/concepts/matestack/ui/core/collection/filter/input/input.haml +0 -2
- data/app/concepts/matestack/ui/core/component/response.haml +0 -2
- data/app/concepts/matestack/ui/core/component/response_dynamic.haml +0 -7
- data/app/concepts/matestack/ui/core/component/response_dynamic_without_rerender.haml +0 -3
- data/app/concepts/matestack/ui/core/component/static.haml +0 -1
- data/app/concepts/matestack/ui/core/form/inline/inline.haml +0 -6
- data/app/concepts/matestack/ui/core/form/inline/inline.rb +0 -9
- data/app/concepts/matestack/ui/core/form/input/input.haml +0 -38
- data/app/concepts/matestack/ui/core/html/html.haml +0 -3
- data/app/concepts/matestack/ui/core/html/html.js +0 -10
- data/app/concepts/matestack/ui/core/html/html.rb +0 -17
- data/app/concepts/matestack/ui/core/isolate/isolate.haml +0 -2
- data/app/concepts/matestack/ui/core/isolate/isolate.rb +0 -11
- data/app/concepts/matestack/ui/core/page/content.haml +0 -7
- data/app/concepts/matestack/ui/core/page/content.rb +0 -5
- data/app/concepts/matestack/ui/core/pg/pg.haml +0 -5
- data/app/concepts/matestack/ui/core/pg/pg.rb +0 -5
- data/app/lib/matestack/ui/core/app_node.rb +0 -53
- data/app/lib/matestack/ui/core/component_node.rb +0 -87
- data/app/lib/matestack/ui/core/page_node.rb +0 -100
- data/app/lib/matestack/ui/core/render.rb +0 -89
- data/app/lib/matestack/ui/core/to_cell.rb +0 -129
@@ -0,0 +1,33 @@
|
|
1
|
+
# Handles the default rendering mechanism
|
2
|
+
#
|
3
|
+
# Not really compatible with the new flexible naming schemes
|
4
|
+
module Matestack::Ui::Core::Rendering::DefaultRendererClassDeterminer
|
5
|
+
module_function
|
6
|
+
|
7
|
+
def determine_class(controller_path, action_name)
|
8
|
+
possible_default_render_matestack_page_class_names(controller_path, action_name).each do |class_name|
|
9
|
+
begin
|
10
|
+
return matestack_class = class_name.constantize
|
11
|
+
rescue NameError
|
12
|
+
end
|
13
|
+
end
|
14
|
+
return nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def possible_default_render_matestack_page_class_names(controller_path, action_name)
|
18
|
+
possible_default_render_matestack_page_paths(controller_path, action_name).collect { |page_path|
|
19
|
+
page_path.split("/").collect { |str| str.camelcase }.join("::")
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def possible_default_render_matestack_page_paths(controller_path, action_name)
|
24
|
+
paths = []
|
25
|
+
paths << "pages/#{controller_path}/#{action_name}"
|
26
|
+
paths << "pages/#{controller_path}" if action_name == "index"
|
27
|
+
paths << "pages/#{controller_path.singularize}" if action_name == "show"
|
28
|
+
paths << "#{controller_path}/#{action_name}_page"
|
29
|
+
paths << "#{controller_path}_page" if action_name == "index"
|
30
|
+
paths << "#{controller_path.singularize}_page" if action_name == "show"
|
31
|
+
paths
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,200 @@
|
|
1
|
+
# The main renderer that is usually called to determine how to perform rendering
|
2
|
+
module Matestack::Ui::Core::Rendering::MainRenderer
|
3
|
+
module_function
|
4
|
+
|
5
|
+
EMPTY_JSON = "{}"
|
6
|
+
|
7
|
+
# Instead of rendering without an app class, we always have an "empty" app class
|
8
|
+
# to fall back to
|
9
|
+
DEFAULT_APP_CLASS = Matestack::Ui::Core::App::App
|
10
|
+
|
11
|
+
def render(controller_instance, page_class, options)
|
12
|
+
app_class = resolve_app_class(controller_instance, options)
|
13
|
+
|
14
|
+
params = controller_instance.params
|
15
|
+
|
16
|
+
context = create_context_hash(controller_instance)
|
17
|
+
|
18
|
+
if params[:only_page]
|
19
|
+
# standalone page rendering, used when performing a transition
|
20
|
+
page_instance = page_class.new(controller_instance: controller_instance, context: context)
|
21
|
+
render_matestack_object(controller_instance, page_instance)
|
22
|
+
elsif (params[:component_key].present? && params[:component_class].blank?)
|
23
|
+
# async component rerendering from non isolated context
|
24
|
+
app_instance = app_class.new(page_class, controller_instance, context)
|
25
|
+
component_key = params[:component_key]
|
26
|
+
page_instance = page_class.new(controller_instance: controller_instance, context: context)
|
27
|
+
render_component(component_key, app_instance, controller_instance, context)
|
28
|
+
elsif (params[:component_class].present? && params[:component_key].blank?)
|
29
|
+
# isolated component rendering
|
30
|
+
component_class = params[:component_class]
|
31
|
+
page_instance = page_class.new(controller_instance: controller_instance, context: context)
|
32
|
+
public_options = JSON.parse(params[:public_options]).with_indifferent_access rescue nil
|
33
|
+
render_isolated_component(component_class, page_instance, controller_instance, context, public_options)
|
34
|
+
elsif (params[:component_class].present? && params[:component_key].present?)
|
35
|
+
# async component rerendering from isolated context
|
36
|
+
component_class_name = params[:component_class]
|
37
|
+
component_key = params[:component_key]
|
38
|
+
page_instance = page_class.new(controller_instance: controller_instance, context: context)
|
39
|
+
if params[:public_options].present?
|
40
|
+
public_options = JSON.parse(params[:public_options]).with_indifferent_access
|
41
|
+
else
|
42
|
+
public_options = nil
|
43
|
+
end
|
44
|
+
component_class = resolve_isolated_component(component_class_name)
|
45
|
+
if component_class
|
46
|
+
component_instance = component_class.new(public_options: public_options, context: context)
|
47
|
+
if component_instance.authorized?
|
48
|
+
render_component(component_key, component_instance, controller_instance, context)
|
49
|
+
else
|
50
|
+
raise "not authorized"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
else
|
54
|
+
if app_class == false
|
55
|
+
page_instance = page_class.new(controller_instance: controller_instance, context: context)
|
56
|
+
render_matestack_object(controller_instance, page_instance, layout: true)
|
57
|
+
else
|
58
|
+
app_instance = app_class.new(page_class, controller_instance, context)
|
59
|
+
render_matestack_object(controller_instance, app_instance, layout: true)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def create_context_hash(controller_instance)
|
65
|
+
{
|
66
|
+
view_context: controller_instance.view_context,
|
67
|
+
params: controller_instance.params,
|
68
|
+
request: controller_instance.request
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
72
|
+
def render_matestack_object(controller_instance, object, opts = {}, render_method = :show)
|
73
|
+
object.prepare
|
74
|
+
object.response if object.respond_to? :response
|
75
|
+
rendering_options = {html: object.call(render_method)}.merge!(opts)
|
76
|
+
controller_instance.render rendering_options
|
77
|
+
end
|
78
|
+
|
79
|
+
def render_component(component_key, app_or_page_instance, controller_instance, context)
|
80
|
+
matched_component = nil
|
81
|
+
|
82
|
+
app_or_page_instance.matestack_set_skip_defer(false)
|
83
|
+
|
84
|
+
app_or_page_instance.prepare
|
85
|
+
app_or_page_instance.response
|
86
|
+
|
87
|
+
matched_component = dig_for_component(component_key, app_or_page_instance)
|
88
|
+
|
89
|
+
unless matched_component.nil?
|
90
|
+
render_matestack_object(controller_instance, matched_component, {}, :render_content)
|
91
|
+
else
|
92
|
+
# some 404 probably
|
93
|
+
raise Exception, "Async component with id #{component_key} could not be found while rerendering."
|
94
|
+
end
|
95
|
+
rescue Exception => e
|
96
|
+
Rails.logger.warn e
|
97
|
+
render json: {}, status: :not_found
|
98
|
+
end
|
99
|
+
|
100
|
+
def dig_for_component component_key, component_instance
|
101
|
+
matched_component = nil
|
102
|
+
|
103
|
+
component_instance.children.each do |child|
|
104
|
+
if child.respond_to?(:get_component_key)
|
105
|
+
if child.get_component_key == component_key
|
106
|
+
matched_component = child
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
if matched_component.nil?
|
112
|
+
component_instance.children.each do |child|
|
113
|
+
if child.children.any?
|
114
|
+
matched_component = dig_for_component(component_key, child)
|
115
|
+
break if !matched_component.nil?
|
116
|
+
end
|
117
|
+
end
|
118
|
+
return matched_component
|
119
|
+
else
|
120
|
+
return matched_component
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
# TODO: too many arguments maybe get some of them together?
|
126
|
+
def render_isolated_component(component_class_name, page_instance, controller_instance, context, public_options = nil)
|
127
|
+
component_class = resolve_isolated_component(component_class_name)
|
128
|
+
|
129
|
+
if component_class
|
130
|
+
component_instance = component_class.new(public_options: public_options, context: context)
|
131
|
+
if component_instance.authorized?
|
132
|
+
render_matestack_object(controller_instance, component_instance, {}, :render_isolated_content)
|
133
|
+
else
|
134
|
+
# some 4xx? 404?
|
135
|
+
raise "not authorized"
|
136
|
+
end
|
137
|
+
else
|
138
|
+
# some 404 probably
|
139
|
+
raise "component not found"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def resolve_component(name)
|
144
|
+
constant = const_get(name)
|
145
|
+
# change to specific AsyncComponent parent class
|
146
|
+
if constant < Matestack::Ui::Core::Async::Async
|
147
|
+
constant
|
148
|
+
else
|
149
|
+
nil
|
150
|
+
end
|
151
|
+
rescue NameError
|
152
|
+
nil
|
153
|
+
end
|
154
|
+
|
155
|
+
def resolve_isolated_component(name)
|
156
|
+
constant = const_get(name)
|
157
|
+
if constant < Matestack::Ui::Core::Isolated::Isolated
|
158
|
+
constant
|
159
|
+
else
|
160
|
+
nil
|
161
|
+
end
|
162
|
+
rescue NameError
|
163
|
+
nil
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
def resolve_app_class(controller_instance, options)
|
168
|
+
app_class = DEFAULT_APP_CLASS
|
169
|
+
|
170
|
+
controller_level_app_class = controller_instance.class.get_matestack_app_class
|
171
|
+
action_level_app_class = options[:matestack_app]
|
172
|
+
|
173
|
+
if !controller_level_app_class.nil?
|
174
|
+
if controller_level_app_class == false
|
175
|
+
app_class = false
|
176
|
+
else
|
177
|
+
if controller_level_app_class.is_a?(Class) && (controller_level_app_class < Matestack::Ui::App)
|
178
|
+
app_class = controller_level_app_class
|
179
|
+
else
|
180
|
+
raise "#{controller_level_app_class} is not a valid Matestack::Ui::App class"
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
if !action_level_app_class.nil?
|
185
|
+
if action_level_app_class == false
|
186
|
+
app_class = false
|
187
|
+
else
|
188
|
+
matestack_app_class = action_level_app_class
|
189
|
+
if action_level_app_class.is_a?(Class) && (action_level_app_class < Matestack::Ui::App)
|
190
|
+
app_class = action_level_app_class
|
191
|
+
else
|
192
|
+
raise "#{action_level_app_class} is not a valid Matestack::Ui::App class"
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
return app_class
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Matestack::Ui::IsolatedComponent = Matestack::Ui::Core::Isolated::Isolated
|
@@ -0,0 +1 @@
|
|
1
|
+
Matestack::Ui::VueJsComponent = Matestack::Ui::Core::Component::Dynamic
|
data/lib/matestack/ui/core.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'trailblazer'
|
2
|
-
require 'trailblazer/rails'
|
3
1
|
require 'trailblazer/cell'
|
4
2
|
require 'cell/rails'
|
5
3
|
require 'cell/haml'
|
@@ -7,6 +5,10 @@ require 'cell/haml'
|
|
7
5
|
require "matestack/ui/core/cell"
|
8
6
|
require "matestack/ui/core/engine"
|
9
7
|
|
8
|
+
require "matestack/ui/core/dsl"
|
9
|
+
require "matestack/ui/core/component/registry"
|
10
|
+
require "matestack/ui/core/components"
|
11
|
+
|
10
12
|
module Matestack
|
11
13
|
module Ui
|
12
14
|
module Core
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Matestack::Ui::Core::Component
|
2
|
+
# Central Registration point for all component DSL methods.
|
3
|
+
#
|
4
|
+
# Keeps track of currently registered DSL methods to warn on
|
5
|
+
# conflicts. Adds them to a specified DSL module.
|
6
|
+
#
|
7
|
+
# Functions as a singleton as we don't want to have methods
|
8
|
+
# meaning something different within the same application.
|
9
|
+
#
|
10
|
+
# TODO: Potentially all DSL methods to further avoid conflicts?
|
11
|
+
module Registry
|
12
|
+
DEFAULT_DSL_MODULE = Matestack::Ui::Core::DSL
|
13
|
+
|
14
|
+
module_function
|
15
|
+
|
16
|
+
def register_component(dsl_name, component_class)
|
17
|
+
instance.register_component(dsl_name, component_class)
|
18
|
+
end
|
19
|
+
|
20
|
+
def register_components(components_hash)
|
21
|
+
components_hash.each do |dsl_name, component_class|
|
22
|
+
register_component dsl_name, component_class
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def instance(target_module = DEFAULT_DSL_MODULE)
|
27
|
+
@instance ||= Instance.new(target_module)
|
28
|
+
end
|
29
|
+
|
30
|
+
class Instance
|
31
|
+
|
32
|
+
attr_reader :target_module, :registered_components
|
33
|
+
|
34
|
+
def initialize(target_module)
|
35
|
+
@target_module = target_module
|
36
|
+
@registered_components = {}
|
37
|
+
end
|
38
|
+
|
39
|
+
def register_component(dsl_name, component_class)
|
40
|
+
target_module.define_method(dsl_name) do |*args, &block|
|
41
|
+
add_child component_class, *args, &block
|
42
|
+
end
|
43
|
+
registered_components[dsl_name] = component_class
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,269 @@
|
|
1
|
+
# Responsible for registering all the components under their names.
|
2
|
+
# TODO: Better file name?
|
3
|
+
|
4
|
+
# TODO: app folder isn't in the LOAD_PATH 🤔
|
5
|
+
# --> because of rails autoload when running as an engine, maybe add
|
6
|
+
# app to loadpath? But we might move away from app in favor of lib anyhow.
|
7
|
+
|
8
|
+
module Matestack::Ui::Core::Components
|
9
|
+
def self.require_app_path(path)
|
10
|
+
require_relative "../../../../app/#{path}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.require_core_component(name)
|
14
|
+
if name.include?("/")
|
15
|
+
require_app_path "concepts/matestack/ui/core/#{name}/#{name.split("/").last}"
|
16
|
+
else
|
17
|
+
require_app_path "concepts/matestack/ui/core/#{name}/#{name}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
require_app_path "helpers/matestack/ui/core/application_helper"
|
22
|
+
require_app_path "lib/matestack/ui/core/has_view_context"
|
23
|
+
require_app_path "lib/matestack/ui/core/html_attributes"
|
24
|
+
require_app_path "lib/matestack/ui/core/properties"
|
25
|
+
|
26
|
+
require_app_path "concepts/matestack/ui/core/component/base"
|
27
|
+
require_app_path "concepts/matestack/ui/core/component/dynamic"
|
28
|
+
require_app_path "concepts/matestack/ui/core/component/static"
|
29
|
+
|
30
|
+
require_core_component "abbr"
|
31
|
+
require_core_component "action"
|
32
|
+
require_core_component "address"
|
33
|
+
require_core_component "area"
|
34
|
+
require_core_component "article"
|
35
|
+
require_core_component "aside"
|
36
|
+
require_core_component "async"
|
37
|
+
require_core_component "b"
|
38
|
+
require_core_component "bdi"
|
39
|
+
require_core_component "bdo"
|
40
|
+
require_core_component "blockquote"
|
41
|
+
require_core_component "br"
|
42
|
+
require_core_component "button"
|
43
|
+
require_core_component "cable"
|
44
|
+
require_core_component "caption"
|
45
|
+
require_core_component "cite"
|
46
|
+
require_core_component "code"
|
47
|
+
require_core_component "form" # required before collection
|
48
|
+
require_app_path "concepts/matestack/ui/core/form/has_input_html_attributes" # required before collection
|
49
|
+
require_app_path "concepts/matestack/ui/core/collection/helper"
|
50
|
+
require_core_component "collection/content"
|
51
|
+
require_core_component "collection/content/next"
|
52
|
+
require_core_component "collection/content/page/link"
|
53
|
+
require_core_component "collection/content/previous"
|
54
|
+
require_core_component "collection/filter"
|
55
|
+
require_core_component "collection/filter/input"
|
56
|
+
require_core_component "collection/filter/reset"
|
57
|
+
require_core_component "collection/filter/select"
|
58
|
+
require_core_component "collection/filter/submit"
|
59
|
+
require_core_component "collection/order"
|
60
|
+
require_core_component "collection/order/toggle"
|
61
|
+
require_core_component "collection/order/toggle/indicator"
|
62
|
+
require_core_component "data"
|
63
|
+
require_core_component "datalist"
|
64
|
+
require_core_component "dd"
|
65
|
+
require_core_component "del"
|
66
|
+
require_core_component "details"
|
67
|
+
require_core_component "dfn"
|
68
|
+
require_core_component "dialog"
|
69
|
+
require_core_component "div"
|
70
|
+
require_core_component "dl"
|
71
|
+
require_core_component "dt"
|
72
|
+
require_core_component "em"
|
73
|
+
require_core_component "fieldset"
|
74
|
+
require_core_component "figure"
|
75
|
+
require_core_component "footer"
|
76
|
+
require_core_component "form/checkbox"
|
77
|
+
require_core_component "form/input"
|
78
|
+
require_core_component "form/radio"
|
79
|
+
require_core_component "form/select"
|
80
|
+
require_core_component "form/submit"
|
81
|
+
require_core_component "header"
|
82
|
+
require_core_component "heading"
|
83
|
+
require_core_component "hr"
|
84
|
+
require_core_component "icon"
|
85
|
+
require_core_component "iframe"
|
86
|
+
require_core_component "img"
|
87
|
+
require_core_component "input"
|
88
|
+
require_core_component "ins"
|
89
|
+
require_core_component "isolated"
|
90
|
+
require_core_component "kbd"
|
91
|
+
require_core_component "label"
|
92
|
+
require_core_component "legend"
|
93
|
+
require_core_component "li"
|
94
|
+
require_core_component "link"
|
95
|
+
require_core_component "main"
|
96
|
+
require_core_component "map"
|
97
|
+
require_core_component "mark"
|
98
|
+
require_core_component "meter"
|
99
|
+
require_core_component "nav"
|
100
|
+
require_core_component "noscript"
|
101
|
+
require_core_component "object"
|
102
|
+
require_core_component "ol"
|
103
|
+
require_core_component "onclick"
|
104
|
+
require_core_component "optgroup"
|
105
|
+
require_core_component "option"
|
106
|
+
require_core_component "output"
|
107
|
+
require_core_component "page"
|
108
|
+
require_core_component "page/content"
|
109
|
+
require_core_component "paragraph"
|
110
|
+
require_core_component "param"
|
111
|
+
require_core_component "picture"
|
112
|
+
require_core_component "plain"
|
113
|
+
require_core_component "pre"
|
114
|
+
require_core_component "progress"
|
115
|
+
require_core_component "q"
|
116
|
+
require_core_component "view"
|
117
|
+
require_core_component "rp"
|
118
|
+
require_core_component "rt"
|
119
|
+
require_core_component "ruby"
|
120
|
+
require_core_component "s"
|
121
|
+
require_core_component "samp"
|
122
|
+
require_core_component "section"
|
123
|
+
require_core_component "small"
|
124
|
+
require_core_component "span"
|
125
|
+
require_core_component "strong"
|
126
|
+
require_core_component "sub"
|
127
|
+
require_core_component "summary"
|
128
|
+
require_core_component "sup"
|
129
|
+
require_core_component "table"
|
130
|
+
require_core_component "tbody"
|
131
|
+
require_core_component "td"
|
132
|
+
require_core_component "template"
|
133
|
+
require_core_component "textarea" # textarea needs to be required before form/textarea
|
134
|
+
require_core_component "form/textarea"
|
135
|
+
require_core_component "tfoot"
|
136
|
+
require_core_component "th"
|
137
|
+
require_core_component "thead"
|
138
|
+
require_core_component "time"
|
139
|
+
require_core_component "toggle"
|
140
|
+
require_core_component "tr"
|
141
|
+
require_core_component "transition"
|
142
|
+
require_core_component "u"
|
143
|
+
require_core_component "ul"
|
144
|
+
require_core_component "unescaped"
|
145
|
+
require_core_component "var"
|
146
|
+
require_core_component "video"
|
147
|
+
require_core_component "wbr"
|
148
|
+
require_core_component "youtube"
|
149
|
+
end
|
150
|
+
|
151
|
+
Matestack::Ui::Core::Component::Registry.register_components(
|
152
|
+
abbr: Matestack::Ui::Core::Abbr::Abbr,
|
153
|
+
action: Matestack::Ui::Core::Action::Action,
|
154
|
+
address: Matestack::Ui::Core::Address::Address,
|
155
|
+
area: Matestack::Ui::Core::Area::Area,
|
156
|
+
article: Matestack::Ui::Core::Article::Article,
|
157
|
+
aside: Matestack::Ui::Core::Aside::Aside,
|
158
|
+
async: Matestack::Ui::Core::Async::Async,
|
159
|
+
b: Matestack::Ui::Core::B::B,
|
160
|
+
bdi: Matestack::Ui::Core::Bdi::Bdi,
|
161
|
+
bdo: Matestack::Ui::Core::Bdo::Bdo,
|
162
|
+
blockquote: Matestack::Ui::Core::Blockquote::Blockquote,
|
163
|
+
br: Matestack::Ui::Core::Br::Br,
|
164
|
+
button: Matestack::Ui::Core::Button::Button,
|
165
|
+
cable: Matestack::Ui::Core::Cable::Cable,
|
166
|
+
caption: Matestack::Ui::Core::Caption::Caption,
|
167
|
+
cite: Matestack::Ui::Core::Cite::Cite,
|
168
|
+
code: Matestack::Ui::Core::Code::Code,
|
169
|
+
collection_content: Matestack::Ui::Core::Collection::Content::Content,
|
170
|
+
collection_content_next: Matestack::Ui::Core::Collection::Content::Next::Next,
|
171
|
+
collection_content_page_link: Matestack::Ui::Core::Collection::Content::Page::Link::Link,
|
172
|
+
collection_content_previous: Matestack::Ui::Core::Collection::Content::Previous::Previous,
|
173
|
+
collection_filter: Matestack::Ui::Core::Collection::Filter::Filter,
|
174
|
+
collection_filter_input: Matestack::Ui::Core::Collection::Filter::Input::Input,
|
175
|
+
collection_filter_reset: Matestack::Ui::Core::Collection::Filter::Reset::Reset,
|
176
|
+
collection_filter_select: Matestack::Ui::Core::Collection::Filter::Select::Select,
|
177
|
+
collection_filter_submit: Matestack::Ui::Core::Collection::Filter::Submit::Submit,
|
178
|
+
collection_order: Matestack::Ui::Core::Collection::Order::Order,
|
179
|
+
collection_order_toggle: Matestack::Ui::Core::Collection::Order::Toggle::Toggle,
|
180
|
+
collection_order_toggle_indicator: Matestack::Ui::Core::Collection::Order::Toggle::Indicator::Indicator,
|
181
|
+
data: Matestack::Ui::Core::Data::Data,
|
182
|
+
datalist: Matestack::Ui::Core::Datalist::Datalist,
|
183
|
+
dd: Matestack::Ui::Core::Dd::Dd,
|
184
|
+
del: Matestack::Ui::Core::Del::Del,
|
185
|
+
details: Matestack::Ui::Core::Details::Details,
|
186
|
+
dfn: Matestack::Ui::Core::Dfn::Dfn,
|
187
|
+
dialog: Matestack::Ui::Core::Dialog::Dialog,
|
188
|
+
div: Matestack::Ui::Core::Div::Div,
|
189
|
+
dl: Matestack::Ui::Core::Dl::Dl,
|
190
|
+
dt: Matestack::Ui::Core::Dt::Dt,
|
191
|
+
em: Matestack::Ui::Core::Em::Em,
|
192
|
+
fieldset: Matestack::Ui::Core::Fieldset::Fieldset,
|
193
|
+
figure: Matestack::Ui::Core::Figure::Figure,
|
194
|
+
footer: Matestack::Ui::Core::Footer::Footer,
|
195
|
+
form: Matestack::Ui::Core::Form::Form,
|
196
|
+
form_checkbox: Matestack::Ui::Core::Form::Checkbox::Checkbox,
|
197
|
+
form_input: Matestack::Ui::Core::Form::Input::Input,
|
198
|
+
form_radio: Matestack::Ui::Core::Form::Radio::Radio,
|
199
|
+
form_select: Matestack::Ui::Core::Form::Select::Select,
|
200
|
+
form_submit: Matestack::Ui::Core::Form::Submit::Submit,
|
201
|
+
form_textarea: Matestack::Ui::Core::Form::Textarea::Textarea,
|
202
|
+
header: Matestack::Ui::Core::Header::Header,
|
203
|
+
heading: Matestack::Ui::Core::Heading::Heading,
|
204
|
+
hr: Matestack::Ui::Core::Hr::Hr,
|
205
|
+
icon: Matestack::Ui::Core::Icon::Icon,
|
206
|
+
italic: Matestack::Ui::Core::Icon::Icon, # alias icon as italic
|
207
|
+
iframe: Matestack::Ui::Core::Iframe::Iframe,
|
208
|
+
img: Matestack::Ui::Core::Img::Img,
|
209
|
+
input: Matestack::Ui::Core::Input::Input,
|
210
|
+
ins: Matestack::Ui::Core::Ins::Ins,
|
211
|
+
kbd: Matestack::Ui::Core::Kbd::Kbd,
|
212
|
+
label: Matestack::Ui::Core::Label::Label,
|
213
|
+
legend: Matestack::Ui::Core::Legend::Legend,
|
214
|
+
li: Matestack::Ui::Core::Li::Li,
|
215
|
+
link: Matestack::Ui::Core::Link::Link,
|
216
|
+
main: Matestack::Ui::Core::Main::Main,
|
217
|
+
map: Matestack::Ui::Core::Map::Map,
|
218
|
+
mark: Matestack::Ui::Core::Mark::Mark,
|
219
|
+
meter: Matestack::Ui::Core::Meter::Meter,
|
220
|
+
nav: Matestack::Ui::Core::Nav::Nav,
|
221
|
+
noscript: Matestack::Ui::Core::Noscript::Noscript,
|
222
|
+
object: Matestack::Ui::Core::Object::Object,
|
223
|
+
ol: Matestack::Ui::Core::Ol::Ol,
|
224
|
+
onclick: Matestack::Ui::Core::Onclick::Onclick,
|
225
|
+
optgroup: Matestack::Ui::Core::Optgroup::Optgroup,
|
226
|
+
option: Matestack::Ui::Core::Option::Option,
|
227
|
+
output: Matestack::Ui::Core::Output::Output,
|
228
|
+
paragraph: Matestack::Ui::Core::Paragraph::Paragraph,
|
229
|
+
pg: Matestack::Ui::Core::Paragraph::Paragraph, # alias paragraph as pg
|
230
|
+
page_content_wrapper: Matestack::Ui::Core::Page::Content::Content,
|
231
|
+
param: Matestack::Ui::Core::Param::Param,
|
232
|
+
picture: Matestack::Ui::Core::Picture::Picture,
|
233
|
+
plain: Matestack::Ui::Core::Plain::Plain,
|
234
|
+
pre: Matestack::Ui::Core::Pre::Pre,
|
235
|
+
progress: Matestack::Ui::Core::Progress::Progress,
|
236
|
+
q: Matestack::Ui::Core::Q::Q,
|
237
|
+
rails_view: Matestack::Ui::Core::View::View,
|
238
|
+
rp: Matestack::Ui::Core::Rp::Rp,
|
239
|
+
rt: Matestack::Ui::Core::Rt::Rt,
|
240
|
+
ruby: Matestack::Ui::Core::Ruby::Ruby,
|
241
|
+
s: Matestack::Ui::Core::S::S,
|
242
|
+
samp: Matestack::Ui::Core::Samp::Samp,
|
243
|
+
section: Matestack::Ui::Core::Section::Section,
|
244
|
+
small: Matestack::Ui::Core::Small::Small,
|
245
|
+
span: Matestack::Ui::Core::Span::Span,
|
246
|
+
strong: Matestack::Ui::Core::Strong::Strong,
|
247
|
+
sub: Matestack::Ui::Core::Sub::Sub,
|
248
|
+
summary: Matestack::Ui::Core::Summary::Summary,
|
249
|
+
sup: Matestack::Ui::Core::Sup::Sup,
|
250
|
+
table: Matestack::Ui::Core::Table::Table,
|
251
|
+
tbody: Matestack::Ui::Core::Tbody::Tbody,
|
252
|
+
td: Matestack::Ui::Core::Td::Td,
|
253
|
+
template: Matestack::Ui::Core::Template::Template,
|
254
|
+
textarea: Matestack::Ui::Core::Textarea::Textarea,
|
255
|
+
tfoot: Matestack::Ui::Core::Tfoot::Tfoot,
|
256
|
+
th: Matestack::Ui::Core::Th::Th,
|
257
|
+
thead: Matestack::Ui::Core::Thead::Thead,
|
258
|
+
time: Matestack::Ui::Core::Time::Time,
|
259
|
+
toggle: Matestack::Ui::Core::Toggle::Toggle,
|
260
|
+
tr: Matestack::Ui::Core::Tr::Tr,
|
261
|
+
transition: Matestack::Ui::Core::Transition::Transition,
|
262
|
+
u: Matestack::Ui::Core::U::U,
|
263
|
+
ul: Matestack::Ui::Core::Ul::Ul,
|
264
|
+
unescaped: Matestack::Ui::Core::Unescaped::Unescaped,
|
265
|
+
var: Matestack::Ui::Core::Var::Var,
|
266
|
+
video: Matestack::Ui::Core::Video::Video,
|
267
|
+
wbr: Matestack::Ui::Core::Wbr::Wbr,
|
268
|
+
youtube: Matestack::Ui::Core::Youtube::Youtube,
|
269
|
+
)
|