voom-presenters 0.1.13 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +186 -0
  4. data/Gemfile.lock +37 -38
  5. data/HISTORY.md +61 -0
  6. data/README.md +23 -1
  7. data/app/demo/components/chips.pom +6 -0
  8. data/app/demo/components/{forms.pom → content.pom} +3 -3
  9. data/app/demo/components/date_fields.pom +1 -1
  10. data/app/demo/components/datetime_fields.pom +6 -0
  11. data/app/demo/components/drawers.pom +1 -1
  12. data/app/demo/components/file_inputs.pom +16 -0
  13. data/app/demo/components/footers.pom +1 -1
  14. data/app/demo/components/google_maps.pom +17 -0
  15. data/app/demo/components/headers.pom +1 -1
  16. data/app/demo/components/layouts.pom +36 -4
  17. data/app/demo/components/lists.pom +25 -0
  18. data/app/demo/components/nav/menu.pom +9 -2
  19. data/app/demo/components/nav/pattern_drawer.pom +5 -0
  20. data/app/demo/components/nav/pattern_menu.pom +12 -0
  21. data/app/demo/components/sliders.pom +49 -0
  22. data/app/demo/components/snackbar.pom +10 -0
  23. data/app/demo/components/steppers.pom +178 -0
  24. data/app/demo/components/tab_bars.pom +51 -0
  25. data/app/demo/components/tables.pom +85 -13
  26. data/app/demo/components/text_areas.pom +13 -0
  27. data/app/demo/components/text_fields.pom +20 -8
  28. data/app/demo/components/toggles.pom +50 -14
  29. data/app/demo/components/tooltips.pom +2 -6
  30. data/app/demo/events/actions/clear.pom +23 -0
  31. data/app/demo/events/actions/loads.pom +16 -6
  32. data/app/demo/events/actions/posts.pom +1 -1
  33. data/app/demo/events/actions/toggle_visiblity.pom +4 -3
  34. data/app/demo/events/nav/drawer.pom +2 -2
  35. data/app/demo/events/tagged_input.pom +37 -0
  36. data/app/demo/hello_world.pom +3 -0
  37. data/app/demo/markdown.pom +1 -0
  38. data/app/demo/namespaces.pom +89 -0
  39. data/app/demo/nav/top_nav.pom +12 -0
  40. data/app/demo/patterns.pom +19 -0
  41. data/app/demo/patterns/search_select.pom +104 -0
  42. data/app/demo/shared/context_list.pom +1 -1
  43. data/app/demo/styles.pom +21 -11
  44. data/component-status.yml +11 -11
  45. data/config.ru +2 -1
  46. data/lib/voom/container_methods.rb +1 -1
  47. data/lib/voom/presenters-engine.rb +29 -26
  48. data/lib/voom/presenters.rb +15 -9
  49. data/lib/voom/presenters/api/app.rb +18 -5
  50. data/lib/voom/presenters/api/router.rb +11 -49
  51. data/lib/voom/presenters/demo/echo.rb +5 -0
  52. data/lib/voom/presenters/dsl.rb +10 -4
  53. data/lib/voom/presenters/dsl/components/actions/base.rb +37 -0
  54. data/lib/voom/presenters/dsl/components/actions/clear.rb +17 -0
  55. data/lib/voom/presenters/dsl/components/actions/deletes.rb +17 -0
  56. data/lib/voom/presenters/dsl/components/actions/dialog.rb +17 -0
  57. data/lib/voom/presenters/dsl/components/actions/loads.rb +32 -0
  58. data/lib/voom/presenters/dsl/components/actions/navigates.rb +17 -0
  59. data/lib/voom/presenters/dsl/components/actions/posts.rb +17 -0
  60. data/lib/voom/presenters/dsl/components/actions/remove.rb +17 -0
  61. data/lib/voom/presenters/dsl/components/actions/replaces.rb +25 -0
  62. data/lib/voom/presenters/dsl/components/actions/snackbar.rb +17 -0
  63. data/lib/voom/presenters/dsl/components/actions/stepper.rb +17 -0
  64. data/lib/voom/presenters/dsl/components/actions/toggle_visibility.rb +17 -0
  65. data/lib/voom/presenters/dsl/components/actions/updates.rb +17 -0
  66. data/lib/voom/presenters/dsl/components/avatar.rb +4 -5
  67. data/lib/voom/presenters/dsl/components/badge.rb +1 -1
  68. data/lib/voom/presenters/dsl/components/base.rb +20 -11
  69. data/lib/voom/presenters/dsl/components/button.rb +12 -10
  70. data/lib/voom/presenters/dsl/components/card.rb +18 -19
  71. data/lib/voom/presenters/dsl/components/checkbox.rb +3 -1
  72. data/lib/voom/presenters/dsl/components/chip.rb +9 -10
  73. data/lib/voom/presenters/dsl/components/content.rb +21 -11
  74. data/lib/voom/presenters/dsl/components/date_field.rb +1 -1
  75. data/lib/voom/presenters/dsl/components/datetime_base.rb +1 -2
  76. data/lib/voom/presenters/dsl/components/datetime_field.rb +1 -1
  77. data/lib/voom/presenters/dsl/components/dialog.rb +10 -6
  78. data/lib/voom/presenters/dsl/components/drawer.rb +6 -4
  79. data/lib/voom/presenters/dsl/components/event.rb +55 -39
  80. data/lib/voom/presenters/dsl/components/event_base.rb +2 -2
  81. data/lib/voom/presenters/dsl/components/expansion_panel.rb +5 -5
  82. data/lib/voom/presenters/dsl/components/file_input.rb +22 -0
  83. data/lib/voom/presenters/dsl/components/footer.rb +1 -1
  84. data/lib/voom/presenters/dsl/components/form.rb +17 -15
  85. data/lib/voom/presenters/dsl/components/google_map.rb +40 -0
  86. data/lib/voom/presenters/dsl/components/grid.rb +58 -18
  87. data/lib/voom/presenters/dsl/components/header.rb +2 -5
  88. data/lib/voom/presenters/dsl/components/hidden_field.rb +2 -2
  89. data/lib/voom/presenters/dsl/components/icon.rb +4 -5
  90. data/lib/voom/presenters/dsl/components/icon_base.rb +3 -3
  91. data/lib/voom/presenters/dsl/components/icon_toggle.rb +2 -2
  92. data/lib/voom/presenters/dsl/components/image.rb +3 -3
  93. data/lib/voom/presenters/dsl/components/input.rb +2 -2
  94. data/lib/voom/presenters/dsl/components/list.rb +12 -10
  95. data/lib/voom/presenters/dsl/components/lists/action.rb +8 -9
  96. data/lib/voom/presenters/dsl/components/lists/actions.rb +8 -8
  97. data/lib/voom/presenters/dsl/components/lists/header.rb +2 -2
  98. data/lib/voom/presenters/dsl/components/lists/line.rb +14 -17
  99. data/lib/voom/presenters/dsl/components/lists/separator.rb +2 -2
  100. data/lib/voom/presenters/dsl/components/menu.rb +10 -12
  101. data/lib/voom/presenters/dsl/components/mixins/attaches.rb +9 -3
  102. data/lib/voom/presenters/dsl/components/mixins/avatar.rb +0 -1
  103. data/lib/voom/presenters/dsl/components/mixins/buttons.rb +1 -1
  104. data/lib/voom/presenters/dsl/components/mixins/chips.rb +1 -2
  105. data/lib/voom/presenters/dsl/components/mixins/common.rb +20 -14
  106. data/lib/voom/presenters/dsl/components/mixins/content.rb +1 -1
  107. data/lib/voom/presenters/dsl/components/mixins/date_time_fields.rb +0 -3
  108. data/lib/voom/presenters/dsl/components/mixins/dialogs.rb +1 -2
  109. data/lib/voom/presenters/dsl/components/mixins/event.rb +3 -3
  110. data/lib/voom/presenters/dsl/components/mixins/expansion_panels.rb +1 -1
  111. data/lib/voom/presenters/dsl/components/mixins/file_inputs.rb +16 -0
  112. data/lib/voom/presenters/dsl/components/mixins/google_maps.rb +15 -0
  113. data/lib/voom/presenters/dsl/components/mixins/grids.rb +1 -1
  114. data/lib/voom/presenters/dsl/components/mixins/icons.rb +0 -1
  115. data/lib/voom/presenters/dsl/components/mixins/menus.rb +1 -1
  116. data/lib/voom/presenters/dsl/components/mixins/selects.rb +0 -1
  117. data/lib/voom/presenters/dsl/components/mixins/sliders.rb +15 -0
  118. data/lib/voom/presenters/dsl/components/mixins/snackbars.rb +0 -1
  119. data/lib/voom/presenters/dsl/components/mixins/steppers.rb +15 -0
  120. data/lib/voom/presenters/dsl/components/mixins/tab_bars.rb +15 -0
  121. data/lib/voom/presenters/dsl/components/mixins/text_fields.rb +5 -3
  122. data/lib/voom/presenters/dsl/components/mixins/toggles.rb +1 -4
  123. data/lib/voom/presenters/dsl/components/mixins/tooltips.rb +0 -1
  124. data/lib/voom/presenters/dsl/components/mixins/typography.rb +43 -13
  125. data/lib/voom/presenters/dsl/components/page.rb +0 -1
  126. data/lib/voom/presenters/dsl/components/radio_button.rb +1 -1
  127. data/lib/voom/presenters/dsl/components/rich_text_area.rb +26 -0
  128. data/lib/voom/presenters/dsl/components/select.rb +4 -5
  129. data/lib/voom/presenters/dsl/components/slider.rb +39 -0
  130. data/lib/voom/presenters/dsl/components/snackbar.rb +2 -2
  131. data/lib/voom/presenters/dsl/components/stepper.rb +106 -0
  132. data/lib/voom/presenters/dsl/components/switch.rb +1 -1
  133. data/lib/voom/presenters/dsl/components/tab_bar.rb +53 -0
  134. data/lib/voom/presenters/dsl/components/table.rb +99 -27
  135. data/lib/voom/presenters/dsl/components/text_area.rb +4 -3
  136. data/lib/voom/presenters/dsl/components/text_field.rb +8 -12
  137. data/lib/voom/presenters/dsl/components/time_field.rb +1 -1
  138. data/lib/voom/presenters/dsl/components/toggle_base.rb +2 -2
  139. data/lib/voom/presenters/dsl/components/tooltip.rb +1 -2
  140. data/lib/voom/presenters/dsl/components/typography.rb +4 -5
  141. data/lib/voom/presenters/dsl/definer.rb +2 -2
  142. data/lib/voom/presenters/dsl/definition.rb +6 -4
  143. data/lib/voom/presenters/dsl/user_interface.rb +17 -21
  144. data/lib/voom/presenters/errors/parameter_validation.rb +1 -1
  145. data/lib/voom/presenters/helpers.rb +5 -5
  146. data/lib/voom/presenters/helpers/date.rb +3 -3
  147. data/lib/voom/presenters/helpers/rails.rb +7 -2
  148. data/lib/voom/presenters/helpers/rails/model_table.rb +14 -6
  149. data/lib/voom/presenters/helpers/route.rb +6 -0
  150. data/lib/voom/presenters/helpers/time.rb +1 -1
  151. data/lib/voom/presenters/namespace.rb +12 -0
  152. data/lib/voom/presenters/settings.rb +58 -37
  153. data/lib/voom/presenters/version.rb +1 -1
  154. data/lib/voom/presenters/web_client/app.rb +50 -20
  155. data/lib/voom/presenters/web_client/markdown_render.rb +24 -11
  156. data/lib/voom/presenters/web_client/router.rb +17 -52
  157. data/lib/voom/serializer.rb +2 -2
  158. data/lib/voom/trace.rb +1 -1
  159. data/presenters.gemspec +2 -1
  160. data/public/style-bundle.js +2 -2
  161. data/scripts/bump.sh +1 -0
  162. data/scripts/changelog.sh +5 -0
  163. data/scripts/deploy-demo.sh +1 -0
  164. data/scripts/release.sh +1 -1
  165. data/scripts/tag.sh +5 -0
  166. data/views/mdc/.babelrc +8 -0
  167. data/views/mdc/.eslintrc.yml +23 -0
  168. data/views/mdc/assets/js/app.js +19 -6
  169. data/views/mdc/assets/js/components/base-component.js +25 -2
  170. data/views/mdc/assets/js/components/base-container.js +47 -0
  171. data/views/mdc/assets/js/components/button.js +3 -10
  172. data/views/mdc/assets/js/components/cards.js +11 -0
  173. data/views/mdc/assets/js/components/checkboxes.js +30 -7
  174. data/views/mdc/assets/js/components/chips.js +38 -5
  175. data/views/mdc/assets/js/components/content.js +13 -0
  176. data/views/mdc/assets/js/components/data-tables.js +38 -0
  177. data/views/mdc/assets/js/components/datetime.js +61 -21
  178. data/views/mdc/assets/js/components/dialogs.js +25 -19
  179. data/views/mdc/assets/js/components/events.js +13 -3
  180. data/views/mdc/assets/js/components/events/base.js +13 -3
  181. data/views/mdc/assets/js/components/events/errors.js +1 -1
  182. data/views/mdc/assets/js/components/events/posts.js +53 -13
  183. data/views/mdc/assets/js/components/events/removes.js +20 -0
  184. data/views/mdc/assets/js/components/events/replaces.js +35 -36
  185. data/views/mdc/assets/js/components/events/stepper.js +23 -0
  186. data/views/mdc/assets/js/components/events/toggle_visibility.js +15 -11
  187. data/views/mdc/assets/js/components/file-inputs.js +29 -0
  188. data/views/mdc/assets/js/components/forms.js +8 -59
  189. data/views/mdc/assets/js/components/grid.js +20 -0
  190. data/views/mdc/assets/js/components/hidden-fields.js +33 -0
  191. data/views/mdc/assets/js/components/icon-toggles.js +7 -14
  192. data/views/mdc/assets/js/components/initialize.js +20 -1
  193. data/views/mdc/assets/js/components/lists.js +1 -1
  194. data/views/mdc/assets/js/components/menus.js +12 -13
  195. data/views/mdc/assets/js/components/mixins/visibility-observer.js +34 -0
  196. data/views/mdc/assets/js/components/radios.js +39 -0
  197. data/views/mdc/assets/js/components/rich-text-area.js +43 -0
  198. data/views/mdc/assets/js/components/selects.js +24 -23
  199. data/views/mdc/assets/js/components/sliders.js +56 -0
  200. data/views/mdc/assets/js/components/snackbar.js +14 -23
  201. data/views/mdc/assets/js/components/steppers.js +48 -0
  202. data/views/mdc/assets/js/components/switches.js +24 -23
  203. data/views/mdc/assets/js/components/tab-bars.js +14 -0
  204. data/views/mdc/assets/js/components/text-fields.js +37 -35
  205. data/views/mdc/assets/js/config.js +27 -0
  206. data/views/mdc/assets/js/mdl-stepper.js +1108 -0
  207. data/views/mdc/assets/js/utils/compatibility.js +9 -0
  208. data/views/mdc/assets/js/utils/config.js +73 -0
  209. data/views/mdc/assets/js/utils/config.test.js +59 -0
  210. data/views/mdc/assets/js/utils/urls.js +5 -2
  211. data/views/mdc/assets/scss/app.scss +11 -3
  212. data/views/mdc/assets/scss/components/button.scss +17 -2
  213. data/views/mdc/assets/scss/components/card.scss +8 -3
  214. data/views/mdc/assets/scss/components/checkbox.scss +0 -4
  215. data/views/mdc/assets/scss/components/content.scss +11 -0
  216. data/views/mdc/assets/scss/components/data-table.scss +80 -0
  217. data/views/mdc/assets/scss/components/datetime.scss +6 -0
  218. data/views/mdc/assets/scss/components/fab.scss +2 -1
  219. data/views/mdc/assets/scss/components/file-input.scss +22 -0
  220. data/views/mdc/assets/scss/components/grid.scss +59 -3
  221. data/views/mdc/assets/scss/components/image.scss +6 -0
  222. data/views/mdc/assets/scss/components/list.scss +13 -0
  223. data/views/mdc/assets/scss/components/menu.scss +1 -0
  224. data/views/mdc/assets/scss/components/radio.scss +4 -0
  225. data/views/mdc/assets/scss/components/rich-text-area.scss +37 -0
  226. data/views/mdc/assets/scss/components/slider.scss +1 -0
  227. data/views/mdc/assets/scss/components/snackbar.scss +1 -5
  228. data/views/mdc/assets/scss/components/stepper.scss +235 -0
  229. data/views/mdc/assets/scss/components/switch.scss +4 -5
  230. data/views/mdc/assets/scss/components/tab-bars.scss +4 -0
  231. data/views/mdc/assets/scss/components/textfield.scss +8 -1
  232. data/views/mdc/assets/scss/components/typography.scss +4 -0
  233. data/views/mdc/assets/scss/components/vendor/flatpickr.min.css +2 -2
  234. data/views/mdc/assets/scss/components/vendor/quill.snow.css +945 -0
  235. data/views/mdc/assets/scss/styles.scss +3 -2
  236. data/views/mdc/assets/scss/theme.scss +6 -0
  237. data/views/mdc/body/header.erb +1 -0
  238. data/views/mdc/body/snackbar.erb +1 -1
  239. data/views/mdc/components/actions/clear.rb +11 -0
  240. data/views/mdc/components/actions/delete.rb +11 -0
  241. data/views/mdc/components/actions/dialog.rb +11 -0
  242. data/views/mdc/components/actions/loads.rb +11 -0
  243. data/views/mdc/components/actions/navigates.rb +11 -0
  244. data/views/mdc/components/actions/post.rb +17 -0
  245. data/views/mdc/components/actions/remove.rb +10 -0
  246. data/views/mdc/components/actions/replaces.rb +12 -0
  247. data/views/mdc/components/actions/snackbar.rb +10 -0
  248. data/views/mdc/components/actions/stepper.rb +10 -0
  249. data/views/mdc/components/actions/toggle_visibility.rb +10 -0
  250. data/views/mdc/components/actions/update.rb +10 -0
  251. data/views/mdc/components/button.erb +9 -6
  252. data/views/mdc/components/buttons/button.erb +10 -5
  253. data/views/mdc/components/buttons/fab.erb +8 -2
  254. data/views/mdc/components/buttons/icon.erb +9 -2
  255. data/views/mdc/components/buttons/image.erb +9 -4
  256. data/views/mdc/components/{display.erb → caption.erb} +0 -0
  257. data/views/mdc/components/card.erb +6 -3
  258. data/views/mdc/components/checkbox.erb +21 -9
  259. data/views/mdc/components/chip.erb +12 -3
  260. data/views/mdc/components/content.erb +6 -1
  261. data/views/mdc/components/datetime.erb +21 -13
  262. data/views/mdc/components/dialog.erb +4 -1
  263. data/views/mdc/components/event.erb +5 -9
  264. data/views/mdc/components/file_input.erb +13 -0
  265. data/views/mdc/components/form.erb +19 -5
  266. data/views/mdc/components/google_map.erb +9 -0
  267. data/views/mdc/components/grid.erb +18 -4
  268. data/views/mdc/components/headline.erb +2 -0
  269. data/views/mdc/components/hidden_field.erb +6 -1
  270. data/views/mdc/components/icon_toggle.erb +1 -1
  271. data/views/mdc/components/list.erb +5 -2
  272. data/views/mdc/components/list/actions/switch.erb +1 -1
  273. data/views/mdc/components/list/line.erb +7 -6
  274. data/views/mdc/components/menu.erb +8 -12
  275. data/views/mdc/components/{subheading.erb → overline.erb} +0 -0
  276. data/views/mdc/components/radio_button.erb +20 -10
  277. data/views/mdc/components/rich_text_area.erb +19 -0
  278. data/views/mdc/components/select.erb +7 -3
  279. data/views/mdc/components/slider.erb +41 -0
  280. data/views/mdc/components/snackbar.erb +2 -6
  281. data/views/mdc/components/stepper.erb +47 -0
  282. data/views/mdc/components/stepper/step.erb +33 -0
  283. data/views/mdc/components/{title.erb → subtitle.erb} +0 -0
  284. data/views/mdc/components/switch.erb +27 -12
  285. data/views/mdc/components/tab_bar.erb +29 -0
  286. data/views/mdc/components/table.erb +4 -2
  287. data/views/mdc/components/table/checkbox.erb +17 -0
  288. data/views/mdc/components/table/header.erb +13 -4
  289. data/views/mdc/components/table/pagination.erb +14 -23
  290. data/views/mdc/components/table/row.erb +3 -1
  291. data/views/mdc/components/text_area.erb +17 -7
  292. data/views/mdc/components/text_field.erb +31 -13
  293. data/views/mdc/components/typography.erb +2 -2
  294. data/views/mdc/layout.erb +33 -31
  295. data/views/mdc/package-lock.json +11019 -6996
  296. data/views/mdc/package.json +46 -27
  297. data/views/mdc/webpack.config.js +1 -0
  298. metadata +112 -13
  299. data/app/demo/events/actions/autocomplete.pom +0 -32
  300. data/lib/voom/presenters/dsl/components/action.rb +0 -35
  301. data/views/mdc/assets/js/components/events/autocomplete.js +0 -96
  302. data/views/mdc/assets/js/material.js +0 -3996
  303. data/views/mdc/assets/scss/components/table-pagination.scss +0 -65
  304. data/views/mdc/components/modal.erb +0 -15
  305. data/views/mdc/components/static.erb +0 -7
@@ -1,13 +1,19 @@
1
+ require 'voom/presenters/namespace'
2
+
1
3
  module Voom
2
4
  module Presenters
3
5
  module DSL
4
6
  module Components
5
7
  module Mixins
6
8
  module Attaches
7
- def attach(presenter, **context_, &yield_block)
9
+ include Namespace
10
+ def attach(presenter, **params, &yield_block)
8
11
  @_yield_block_ = yield_block
9
- pom = Voom::Presenters::App[presenter].call.expand_child(parent: self, context: context.merge(context_))
10
- @components += pom.components
12
+ fq_presenter = _expand_namespace_(presenter, namespace)
13
+ presenter = Presenters::App.registered?(fq_presenter) ? fq_presenter : presenter
14
+ pom = Voom::Presenters::App[presenter].call.expand_child(parent: self, context: context.merge(params))
15
+ @components += pom.components if @components
16
+ pom
11
17
  end
12
18
  end
13
19
  end
@@ -7,7 +7,6 @@ module Voom
7
7
  def avatar(avatar = nil, **attribs, &block)
8
8
  return @avatar if locked?
9
9
  @avatar = Components::Avatar.new(parent: self, avatar: avatar,
10
- context: context,
11
10
  **attribs, &block)
12
11
  end
13
12
  end
@@ -5,7 +5,7 @@ module Voom
5
5
  module Mixins
6
6
  module Buttons
7
7
  def button(text=nil, **attributes, &block)
8
- self << Components::Button.new(text: text, parent: self, context: context, **attributes, &block)
8
+ self << Components::Button.new(text: text, parent: self, **attributes, &block)
9
9
  end
10
10
  end
11
11
  end
@@ -1,4 +1,4 @@
1
- require_relative 'append'
1
+ require 'voom/presenters/dsl/components/mixins/append'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -10,7 +10,6 @@ module Voom
10
10
 
11
11
  def chip(text= nil, **attribs, &block)
12
12
  self << Components::Chip.new(parent: self, text: text,
13
- context: context,
14
13
  **attribs, &block)
15
14
  end
16
15
  end
@@ -1,11 +1,14 @@
1
- require_relative 'append'
2
- require_relative 'toggles'
3
- require_relative 'typography'
4
- require_relative 'grids'
5
- require_relative 'buttons'
6
- require_relative 'expansion_panels'
7
- require_relative 'content'
8
- require_relative 'menus'
1
+ require 'voom/presenters/dsl/components/mixins/append'
2
+ require 'voom/presenters/dsl/components/mixins/toggles'
3
+ require 'voom/presenters/dsl/components/mixins/typography'
4
+ require 'voom/presenters/dsl/components/mixins/grids'
5
+ require 'voom/presenters/dsl/components/mixins/buttons'
6
+ require 'voom/presenters/dsl/components/mixins/expansion_panels'
7
+ require 'voom/presenters/dsl/components/mixins/content'
8
+ require 'voom/presenters/dsl/components/mixins/menus'
9
+ require 'voom/presenters/dsl/components/mixins/google_maps'
10
+ require 'voom/presenters/dsl/components/mixins/tab_bars'
11
+ require 'voom/presenters/dsl/components/mixins/images'
9
12
 
10
13
  module Voom
11
14
  module Presenters
@@ -21,26 +24,29 @@ module Voom
21
24
  include Mixins::ExpansionPanels
22
25
  include Mixins::Content
23
26
  include Mixins::Menus
24
-
27
+ include Mixins::GoogleMaps
28
+ include Mixins::TabBars
29
+ include Mixins::Images
30
+
25
31
  def badge(badge=nil, **attributes, &block)
26
- self << Components::Badge.new(parent: self, badge: badge, context: context, **attributes, &block)
32
+ self << Components::Badge.new(parent: self, badge: badge, **attributes, &block)
27
33
  end
28
34
 
29
35
  def card(**attributes, &block)
30
- self << Components::Card.new(parent: self, context: context, **attributes, &block)
36
+ self << Components::Card.new(parent: self, **attributes, &block)
31
37
  end
32
38
 
33
39
  def form(id: nil, **attributes, &block)
34
- self << Components::Form.new(parent: self, id: id, context: context, **attributes, &block)
40
+ self << Components::Form.new(parent: self, id: id, **attributes, &block)
35
41
  end
36
42
 
37
43
  def list(**attributes, &block)
38
44
  self << Components::List.new(parent: self,
39
- context: context, **attributes, &block)
45
+ **attributes, &block)
40
46
  end
41
47
 
42
48
  def table(**attributes, &block)
43
- self << Components::Table.new(parent: self, context: context, **attributes, &block)
49
+ self << Components::Table.new(parent: self, **attributes, &block)
44
50
  end
45
51
  end
46
52
  end
@@ -5,7 +5,7 @@ module Voom
5
5
  module Mixins
6
6
  module Content
7
7
  def content(**attributes, &block)
8
- self << Components::Content.new(parent: self, context: context, **attributes, &block)
8
+ self << Components::Content.new(parent: self, **attributes, &block)
9
9
  end
10
10
  end
11
11
  end
@@ -6,19 +6,16 @@ module Voom
6
6
  module DateTimeFields
7
7
  def datetime_field(**attribs, &block)
8
8
  self << Components::DatetimeField.new(parent: self,
9
- context: context,
10
9
  **attribs, &block)
11
10
  end
12
11
 
13
12
  def date_field(**attribs, &block)
14
13
  self << Components::DateField.new(parent: self,
15
- context: context,
16
14
  **attribs, &block)
17
15
  end
18
16
 
19
17
  def time_field(**attribs, &block)
20
18
  self << Components::TimeField.new(parent: self,
21
- context: context,
22
19
  **attribs, &block)
23
20
  end
24
21
  end
@@ -1,4 +1,4 @@
1
- require_relative '../dialog'
1
+ require 'voom/presenters/dsl/components/dialog'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -8,7 +8,6 @@ module Voom
8
8
  module Dialogs
9
9
  def dialog(**attributes, &block)
10
10
  @components << Components::Dialog.new(parent: self,
11
- context: context,
12
11
  **attributes, &block)
13
12
  end
14
13
  end
@@ -1,4 +1,4 @@
1
- require_relative '../event'
1
+ require 'voom/presenters/dsl/components/event'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -7,9 +7,9 @@ module Voom
7
7
  module Mixins
8
8
  module Event
9
9
  attr_reader :events
10
- def event(event, **params, &block)
10
+ def event(event, &block)
11
11
  @events ||= []
12
- @events << Components::Event.new(parent: self, event: event, context: context&.merge(params), &block)
12
+ @events << Components::Event.new(parent: self, event: event, &block)
13
13
  end
14
14
  end
15
15
  end
@@ -5,7 +5,7 @@ module Voom
5
5
  module Mixins
6
6
  module ExpansionPanels
7
7
  def expansion_panel(text=nil, **attributes, &block)
8
- self << Components::ExpansionPanel.new(parent: self, text: text, context: context, **attributes, &block)
8
+ self << Components::ExpansionPanel.new(parent: self, text: text, **attributes, &block)
9
9
  end
10
10
  end
11
11
  end
@@ -0,0 +1,16 @@
1
+ module Voom
2
+ module Presenters
3
+ module DSL
4
+ module Components
5
+ module Mixins
6
+ module FileInputs
7
+ def file_input(**attribs, &block)
8
+ self << Components::FileInput.new(parent: self,
9
+ **attribs, &block)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Voom
2
+ module Presenters
3
+ module DSL
4
+ module Components
5
+ module Mixins
6
+ module GoogleMaps
7
+ def google_map(**attributes, &block)
8
+ self << Components::GoogleMap.new(parent: self, **attributes, &block)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -5,7 +5,7 @@ module Voom
5
5
  module Mixins
6
6
  module Grids
7
7
  def grid(color: nil, **attributes, &block)
8
- self << Components::Grid.new(parent: self, color: color, context: context, **attributes, &block)
8
+ self << Components::Grid.new(parent: self, color: color, **attributes, &block)
9
9
  end
10
10
  end
11
11
  end
@@ -6,7 +6,6 @@ module Voom
6
6
  module Icons
7
7
  def icon(icon=nil, **attribs, &block)
8
8
  self << Components::Icon.new(parent: self, icon: icon,
9
- context: context,
10
9
  **attribs, &block)
11
10
  end
12
11
  end
@@ -5,7 +5,7 @@ module Voom
5
5
  module Mixins
6
6
  module Menus
7
7
  def menu(**attributes, &block)
8
- self << Components::Menu.new(parent: self, context: context, **attributes, &block)
8
+ self << Components::Menu.new(parent: self, **attributes, &block)
9
9
  end
10
10
  end
11
11
  end
@@ -6,7 +6,6 @@ module Voom
6
6
  module Selects
7
7
  def select(**attribs, &block)
8
8
  self << Components::Select.new(parent: self,
9
- context: context,
10
9
  **attribs, &block)
11
10
  end
12
11
  end
@@ -0,0 +1,15 @@
1
+ module Voom
2
+ module Presenters
3
+ module DSL
4
+ module Components
5
+ module Mixins
6
+ module Sliders
7
+ def slider(**attributes, &block)
8
+ self << Components::Slider.new(parent: self, **attributes, &block)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -7,7 +7,6 @@ module Voom
7
7
  def snackbar(text=nil, **attribs, &block)
8
8
  self << Components::Snackbar.new(parent: self,
9
9
  text: text,
10
- context: context,
11
10
  **attribs, &block)
12
11
  end
13
12
  end
@@ -0,0 +1,15 @@
1
+ module Voom
2
+ module Presenters
3
+ module DSL
4
+ module Components
5
+ module Mixins
6
+ module Steppers
7
+ def stepper(**attributes, &block)
8
+ self << Components::Stepper.new(parent: self, **attributes, &block)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Voom
2
+ module Presenters
3
+ module DSL
4
+ module Components
5
+ module Mixins
6
+ module TabBars
7
+ def tab_bar(**attribs, &block)
8
+ self << Components::TabBar.new(parent: self, **attribs, &block)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -6,21 +6,23 @@ module Voom
6
6
  module TextFields
7
7
  def text_field(**attribs, &block)
8
8
  self << Components::TextField.new(parent: self,
9
- context: context,
10
9
  **attribs, &block)
11
10
  end
12
11
 
13
12
  def text_area(**attribs, &block)
14
13
  self << Components::TextArea.new(parent: self,
15
- context: context,
16
14
  **attribs, &block)
17
15
  end
18
16
 
19
17
  def hidden_field(**attribs, &block)
20
18
  self << Components::HiddenField.new(parent: self,
21
- context: context,
22
19
  **attribs, &block)
23
20
  end
21
+
22
+ def rich_text_area(**attribs, &block)
23
+ self << Components::RichTextArea.new(parent: self,
24
+ **attribs, &block)
25
+ end
24
26
  end
25
27
  end
26
28
  end
@@ -1,4 +1,4 @@
1
- require_relative 'append'
1
+ require 'voom/presenters/dsl/components/mixins/append'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -14,13 +14,11 @@ module Voom
14
14
 
15
15
  def radio_button(**attribs, &block)
16
16
  self << RadioButton.new(parent: self,
17
- context: context,
18
17
  **attribs, &block)
19
18
  end
20
19
 
21
20
  def switch(**attribs, &block)
22
21
  self << Switch.new(parent: self,
23
- context: context,
24
22
  **attribs, &block)
25
23
  end
26
24
 
@@ -28,7 +26,6 @@ module Voom
28
26
  trace { attribs.inspect }
29
27
  self << IconToggle.new(parent: self,
30
28
  icon: icon,
31
- context: context,
32
29
  **attribs, &block)
33
30
  end
34
31
  end
@@ -7,7 +7,6 @@ module Voom
7
7
  def tooltip(text= nil, **attribs, &block)
8
8
  return @tooltip if locked?
9
9
  @tooltip = Components::Tooltip.new(parent: self, text: text,
10
- context: context,
11
10
  **attribs, &block)
12
11
  end
13
12
  end
@@ -1,4 +1,4 @@
1
- require_relative 'append'
1
+ require 'voom/presenters/dsl/components/mixins/append'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -8,29 +8,59 @@ module Voom
8
8
  module Typography
9
9
  include Mixins::Append
10
10
 
11
- def display(*text, **attributes, &block)
12
- self << Components::Typography.new(parent: self, type: :display, text: text, context: context, **attributes, &block)
11
+ def headline(*text, level: nil, **attributes, &block)
12
+ self << Components::Typography.new(parent: self, type: :headline, text: text,
13
+ level: level || Settings.default(:headline, :level),
14
+ **attributes, &block)
13
15
  end
14
- alias heading display
15
16
 
16
- def headline(*text, **attributes, &block)
17
- self << Components::Typography.new(parent: self, type: :headline, text: text, context: context, **attributes, &block)
17
+ alias heading headline
18
+ alias display headline
19
+
20
+ def title(*text, level: nil, **attributes, &block)
21
+ headline(text, level: level || Settings.default(:title, :level), **attributes, &block)
18
22
  end
19
23
 
20
- def title(*text, **attributes, &block)
21
- self << Components::Typography.new(parent: self, type: :title, text: text, context: context, **attributes, &block)
24
+ def subtitle(*text, level: 1, **attributes, &block)
25
+ self << Components::Typography.new(parent: self, type: :subtitle, text: text, level: level,
26
+ **attributes, &block)
22
27
  end
23
28
 
29
+ alias subheading subtitle
30
+
24
31
  def page_title(*text, **attributes, &block)
25
- self << Components::Typography.new(parent: self, type: :page_title, text: text, context: context, level: 1, **attributes, &block)
32
+ self << Components::Typography.new(parent: self, type: :page_title, text: text,
33
+ level: 1, **attributes, &block)
34
+ end
35
+
36
+ def body(*text, level: 1, **attributes, &block)
37
+ self << Components::Typography.new(parent: self, type: :body, text: text, level: level,
38
+ **attributes, &block)
39
+ end
40
+
41
+ def blank(level: 1, **attributes, &block)
42
+ self << Components::Typography.new(parent: self, type: :body, text: ['&nbsp;'], level: level,
43
+ **attributes, &block)
44
+ end
45
+
46
+ def caption(*text, **attributes, &block)
47
+ self << Components::Typography.new(parent: self, type: :caption, text: text,
48
+ **attributes, &block)
49
+ end
50
+
51
+ def overline(*text, **attributes, &block)
52
+ self << Components::Typography.new(parent: self, type: :overline, text: text,
53
+ **attributes, &block)
26
54
  end
27
55
 
28
- def subheading(*text, **attributes, &block)
29
- self << Components::Typography.new(parent: self, type: :subheading, text: text, context: context, **attributes, &block)
56
+ def separator(**attributes, &block)
57
+ self << Components::Typography.new(parent: self, type: :body, text: ['---'],
58
+ **attributes, &block)
30
59
  end
31
60
 
32
- def body(*text, **attributes, &block)
33
- self << Components::Typography.new(parent: self, type: :body, text: text, context: context, **attributes, &block)
61
+ def link(text, url, **attributes, &block)
62
+ self << Components::Typography.new(parent: self, type: :body, text: ["[#{text}](#{url})"],
63
+ **attributes, &block)
34
64
  end
35
65
  end
36
66
  end