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
@@ -7,7 +7,6 @@ module Voom
7
7
 
8
8
  def initialize(**attribs_, &block)
9
9
  super(type: :header,
10
- context: context,
11
10
  **attribs_, &block)
12
11
  self.title(attribs.delete(:title)) if attribs.key?(:title)
13
12
  @image = attribs.delete(:image)
@@ -16,26 +15,24 @@ module Voom
16
15
 
17
16
  def button(icon=nil, **attributes, &block)
18
17
  return @button if locked?
19
- @button = Components::Button.new(icon: icon, position:[:top, :right], parent: self, context: context, **attributes, &block)
18
+ @button = Components::Button.new(icon: icon, parent: self, **attributes, &block)
20
19
  end
21
20
 
22
21
  def menu(**attribs, &block)
23
22
  return @menu if locked?
24
23
  @menu = Components::Menu.new(parent: self,
25
- context: context,
26
24
  **attribs, &block)
27
25
  end
28
26
 
29
27
  def nav(**attribs, &block)
30
28
  return @nav if locked?
31
29
  @nav = Components::Menu.new(parent: self,
32
- context: context,
33
30
  **attribs, &block)
34
31
  end
35
32
 
36
33
  def title(*text, **attribs, &block)
37
34
  return @title if locked?
38
- @title = Components::Typography.new(parent: self, type: :text, text: text, context: context, **attribs, &block)
35
+ @title = Components::Typography.new(parent: self, type: :text, text: text, **attribs, &block)
39
36
  end
40
37
 
41
38
  end
@@ -1,4 +1,4 @@
1
- require_relative 'input'
1
+ require 'voom/presenters/dsl/components/input'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -8,7 +8,7 @@ module Voom
8
8
  attr_reader :name
9
9
 
10
10
  def initialize(**attribs_, &block)
11
- super(type: :hidden_field, context: context,
11
+ super(type: :hidden_field,
12
12
  **attribs_, &block)
13
13
  expand!
14
14
  end
@@ -1,6 +1,6 @@
1
- require_relative 'mixins/event'
2
- require_relative 'mixins/tooltips'
3
- require_relative 'icon_base'
1
+ require 'voom/presenters/dsl/components/mixins/event'
2
+ require 'voom/presenters/dsl/components/mixins/tooltips'
3
+ require 'voom/presenters/dsl/components/icon_base'
4
4
 
5
5
  module Voom
6
6
  module Presenters
@@ -10,8 +10,7 @@ module Voom
10
10
  include Mixins::Tooltips
11
11
 
12
12
  def initialize(**attribs_, &block)
13
- super(context: context,
14
- **attribs_, &block)
13
+ super(**attribs_, &block)
15
14
  expand!
16
15
  end
17
16
  end
@@ -1,5 +1,5 @@
1
- require_relative 'mixins/event'
2
- require_relative 'mixins/tooltips'
1
+ require 'voom/presenters/dsl/components/mixins/event'
2
+ require 'voom/presenters/dsl/components/mixins/tooltips'
3
3
 
4
4
  module Voom
5
5
  module Presenters
@@ -10,7 +10,7 @@ module Voom
10
10
  attr_reader :icon, :color, :size, :position
11
11
 
12
12
  def initialize(**attribs_, &block)
13
- super(type: :icon, context: context,
13
+ super(type: :icon,
14
14
  **attribs_, &block)
15
15
  @icon = attribs.delete(:icon)
16
16
  @color = attribs.delete(:color)
@@ -1,4 +1,4 @@
1
- require_relative 'toggle_base'
1
+ require 'voom/presenters/dsl/components/toggle_base'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -8,7 +8,7 @@ module Voom
8
8
  attr_accessor :icon, :selected, :disabled
9
9
 
10
10
  def initialize(**attribs_, &block)
11
- super(type: :icon_toggle, context: context, **attribs_, &block)
11
+ super(type: :icon_toggle, **attribs_, &block)
12
12
  @icon = attribs.delete(:icon)
13
13
  @selected = attribs.delete(:selected) { false }
14
14
  @disabled = attribs.delete(:disabled) { false }
@@ -1,5 +1,5 @@
1
- require_relative 'mixins/event'
2
- require_relative 'mixins/tooltips'
1
+ require 'voom/presenters/dsl/components/mixins/event'
2
+ require 'voom/presenters/dsl/components/mixins/tooltips'
3
3
 
4
4
  module Voom
5
5
  module Presenters
@@ -11,7 +11,7 @@ module Voom
11
11
  attr_accessor :image, :height, :width, :position, :selected, :url
12
12
 
13
13
  def initialize(**attribs_, &block)
14
- super(type: :image, context: context,
14
+ super(type: :image,
15
15
  **attribs_, &block)
16
16
  @image = attribs.delete(:image)
17
17
  @height = attribs.delete(:height)
@@ -1,5 +1,5 @@
1
- require_relative 'mixins/event'
2
- require_relative 'mixins/tooltips'
1
+ require 'voom/presenters/dsl/components/mixins/event'
2
+ require 'voom/presenters/dsl/components/mixins/tooltips'
3
3
 
4
4
  module Voom
5
5
  module Presenters
@@ -1,9 +1,9 @@
1
- require_relative 'lists/line'
2
- require_relative 'lists/separator'
3
- require_relative 'lists/header'
4
- require_relative 'mixins/content'
5
- require_relative 'mixins/append'
6
- require_relative 'mixins/attaches'
1
+ require 'voom/presenters/dsl/components/lists/line'
2
+ require 'voom/presenters/dsl/components/lists/separator'
3
+ require 'voom/presenters/dsl/components/lists/header'
4
+ require 'voom/presenters/dsl/components/mixins/content'
5
+ require 'voom/presenters/dsl/components/mixins/append'
6
+ require 'voom/presenters/dsl/components/mixins/attaches'
7
7
 
8
8
  module Voom
9
9
  module Presenters
@@ -14,11 +14,14 @@ module Voom
14
14
  include Mixins::Append
15
15
  include Mixins::Attaches
16
16
 
17
- attr_reader :lines, :lines_only, :selectable, :total_lines
17
+ attr_reader :lines, :lines_only, :color, :border, :selectable, :total_lines
18
18
  attr_accessor :components
19
19
 
20
20
  def initialize(**attribs_, &block)
21
21
  super(type: :list, **attribs_, &block)
22
+ @color = attribs.delete(:color) { nil }
23
+ @border = attribs.delete(:border) { nil }
24
+
22
25
  @lines_only = attribs.delete(:lines_only) { false }
23
26
  @selectable = attribs.delete(:selectable) { false }
24
27
  @lines = []
@@ -31,17 +34,16 @@ module Voom
31
34
  def add_select_control!(text)
32
35
  return unless @selectable && !@lines_only
33
36
  @lines << Lists::Header.new(parent: self,
34
- context: context,
35
37
  total_lines: @total_lines,
36
38
  checkbox: {text: text})
37
39
  end
38
40
 
39
41
  def line(text=nil, **attribs, &block)
40
- @lines << Lists::Line.new(parent:self, context: context, text: text, selectable: selectable, **attribs, &block)
42
+ @lines << Lists::Line.new(parent:self, text: text, selectable: selectable, **attribs, &block)
41
43
  end
42
44
 
43
45
  def separator(**attribs, &block)
44
- @lines << Lists::Separator.new(parent:self, context: context, **attribs, &block)
46
+ @lines << Lists::Separator.new(parent:self, **attribs, &block)
45
47
  end
46
48
  end
47
49
  end
@@ -1,5 +1,5 @@
1
- require_relative '../icon'
2
- require_relative '../icon_toggle'
1
+ require 'voom/presenters/dsl/components/icon'
2
+ require 'voom/presenters/dsl/components/icon_toggle'
3
3
 
4
4
 
5
5
  module Voom
@@ -19,7 +19,6 @@ module Voom
19
19
  return @icon if locked?
20
20
  @action_type = :icon
21
21
  @icon = Icon.new(parent: self, icon: icon,
22
- context: context,
23
22
  **attribs, &block)
24
23
  end
25
24
 
@@ -27,41 +26,41 @@ module Voom
27
26
  def menu(**attribs, &block)
28
27
  return @menu if locked?
29
28
  @action_type = :menu
30
- @menu = Menu.new(parent: self, context: context,
29
+ @menu = Menu.new(parent: self,
31
30
  **attribs, &block)
32
31
  end
33
32
 
34
33
  def checkbox(**attribs, &block)
35
34
  return @checkbox if locked?
36
35
  @action_type = :checkbox
37
- @checkbox = Checkbox.new(parent: self, context: context,
36
+ @checkbox = Checkbox.new(parent: self,
38
37
  **attribs, &block)
39
38
  end
40
39
 
41
40
  def radio_button(**attribs, &block)
42
41
  return @radio_button if locked?
43
42
  @action_type = :radio_button
44
- @radio_button = RadioButton.new(parent: self, context: context,
43
+ @radio_button = RadioButton.new(parent: self,
45
44
  **attribs, &block)
46
45
  end
47
46
 
48
47
  def switch(**attribs, &block)
49
48
  return @switch if locked?
50
49
  @action_type = :switch
51
- @switch = Switch.new(parent: self, context: context,
50
+ @switch = Switch.new(parent: self,
52
51
  **attribs, &block)
53
52
  end
54
53
 
55
54
  def icon_toggle(icon=nil, **attribs, &block)
56
55
  return @icon_toggle if locked?
57
56
  @action_type = :icon_toggle
58
- @icon_toggle = IconToggle.new(parent: self, icon: icon, context: context, **attribs, &block)
57
+ @icon_toggle = IconToggle.new(parent: self, icon: icon, **attribs, &block)
59
58
  end
60
59
 
61
60
  def button(text=nil, **attribs, &block)
62
61
  return @button if locked?
63
62
  @action_type = :button
64
- @button = Components::Button.new(text: text, parent: self, context: context, **attribs, &block)
63
+ @button = Components::Button.new(text: text, parent: self, **attribs, &block)
65
64
  end
66
65
  end
67
66
  end
@@ -1,4 +1,4 @@
1
- require_relative 'action'
1
+ require 'voom/presenters/dsl/components/lists/action'
2
2
 
3
3
  module Voom
4
4
  module Presenters
@@ -14,44 +14,44 @@ module Voom
14
14
 
15
15
 
16
16
  def icon(icon=nil, **attribs, &block)
17
- action = Lists::Action.new(parent: self, context: context)
17
+ action = Lists::Action.new(parent: self)
18
18
  action.icon(icon, **attribs, &block)
19
19
  @actions << action
20
20
  end
21
21
 
22
22
 
23
23
  def menu(**attribs, &block)
24
- action = Lists::Action.new(parent: self, context: context)
24
+ action = Lists::Action.new(parent: self)
25
25
  action.menu(**attribs, &block)
26
26
  @actions << action
27
27
  end
28
28
 
29
29
  def checkbox(**attribs, &block)
30
- action = Lists::Action.new(parent: self, context: context)
30
+ action = Lists::Action.new(parent: self)
31
31
  action.checkbox(**attribs, &block)
32
32
  @actions << action
33
33
  end
34
34
 
35
35
  def radio_button(**attribs, &block)
36
- action = Lists::Action.new(parent: self, context: context)
36
+ action = Lists::Action.new(parent: self)
37
37
  action.radio_button(**attribs, &block)
38
38
  @actions << action
39
39
  end
40
40
 
41
41
  def switch(**attribs, &block)
42
- action = Lists::Action.new(parent: self, context: context)
42
+ action = Lists::Action.new(parent: self)
43
43
  action.switch(**attribs, &block)
44
44
  @actions << action
45
45
  end
46
46
 
47
47
  def icon_toggle(icon=nil, **attribs, &block)
48
- action = Lists::Action.new(parent: self, context: context)
48
+ action = Lists::Action.new(parent: self)
49
49
  action.icon_toggle(icon, **attribs, &block)
50
50
  @actions << action
51
51
  end
52
52
 
53
53
  def button(text=nil, **attribs, &block)
54
- action = Lists::Action.new(parent: self, context: context)
54
+ action = Lists::Action.new(parent: self)
55
55
  action.button(text, **attribs, &block)
56
56
  @actions << action
57
57
  end
@@ -6,8 +6,8 @@ module Voom
6
6
  class Header < Line
7
7
  attr_accessor :total_lines
8
8
 
9
- def initialize(context:, **attribs_, &block)
10
- super(type: :header, context: context, **attribs_, &block)
9
+ def initialize(**attribs_, &block)
10
+ super(type: :header, **attribs_, &block)
11
11
  @total_lines = attribs.delete(:total_lines) || 0
12
12
  expand!
13
13
  end
@@ -1,8 +1,9 @@
1
- require_relative 'actions'
2
- require_relative '../icon'
3
- require_relative '../avatar'
4
- require_relative '../typography'
5
- require_relative '../mixins/event'
1
+ require 'voom/presenters/dsl/components/lists/actions'
2
+ require 'voom/presenters/dsl/components/icon'
3
+ require 'voom/presenters/dsl/components/avatar'
4
+ require 'voom/presenters/dsl/components/typography'
5
+ require 'voom/presenters/dsl/components/mixins/event'
6
+ require 'voom/presenters/dsl/components/mixins/tooltips'
6
7
 
7
8
  module Voom
8
9
  module Presenters
@@ -11,6 +12,7 @@ module Voom
11
12
  module Lists
12
13
  class Line < EventBase
13
14
  extend Gem::Deprecate
15
+ include Mixins::Tooltips
14
16
 
15
17
  attr_accessor :selected, :selectable
16
18
 
@@ -25,7 +27,7 @@ module Voom
25
27
  self.avatar(attribs.delete(:avatar)) if attribs.key?(:avatar)
26
28
  self.icon(attribs.delete(:icon)) if attribs.key?(:icon)
27
29
  self.checkbox(attribs.delete(:checkbox)) if attribs.key?(:checkbox) && !@selectable
28
- self.checkbox(attribs.slice(:name, :value)) if @selectable
30
+ self.checkbox(attribs.slice(:name, :value, :checked)) if @selectable
29
31
 
30
32
  @actions = []
31
33
  expand!
@@ -33,35 +35,33 @@ module Voom
33
35
 
34
36
  def text(*text, **attribs, &block)
35
37
  return @text if locked?
36
- @text = Components::Typography.new(parent: self, type: :text, text: text, context: context, **attribs, &block)
38
+ @text = Components::Typography.new(parent: self, type: :text, text: text, **attribs, &block)
37
39
  end
38
40
 
39
41
  def subtitle(*text, **attribs, &block)
40
42
  return @subtitle if locked?
41
- @subtitle = Components::Typography.new(parent: self, type: :subtitle, text: text, context: context, **attribs, &block)
43
+ @subtitle = Components::Typography.new(parent: self, type: :subtitle, text: text, **attribs, &block)
42
44
  end
43
45
 
44
46
  def info(*text, **attribs, &block)
45
47
  return @info if locked?
46
- @info = Components::Typography.new(parent: self, type: :info, text: text, context: context, **attribs, &block)
48
+ @info = Components::Typography.new(parent: self, type: :info, text: text, **attribs, &block)
47
49
  end
48
50
 
49
51
  def body(*text, **attribs, &block)
50
52
  return @body if locked?
51
- @body = Components::Typography.new(parent: self, type: :body, text: text, context: context, **attribs, &block)
53
+ @body = Components::Typography.new(parent: self, type: :body, text: text, **attribs, &block)
52
54
  end
53
55
 
54
56
  def avatar(avatar = nil, **attribs, &block)
55
57
  return @avatar if locked?
56
58
  @avatar = Avatar.new(parent: self, avatar: avatar,
57
- context: context,
58
59
  **attribs, &block)
59
60
  end
60
61
 
61
62
  def icon(icon=nil, **attribs, &block)
62
63
  return @icon if locked?
63
64
  @icon = Icon.new(parent: self, icon: icon,
64
- context: context,
65
65
  **attribs, &block)
66
66
  end
67
67
 
@@ -69,7 +69,6 @@ module Voom
69
69
  return @checkbox if locked?
70
70
  field_name = @selectable ? "#{attributes.delete(:name)}[]" : attributes.delete(:name)
71
71
  @checkbox = Components::Checkbox.new(parent: self,
72
- context: context,
73
72
  name: field_name,
74
73
  **attributes,
75
74
  &block)
@@ -77,14 +76,12 @@ module Voom
77
76
 
78
77
  def menu(**attributes, &block)
79
78
  return @menu if locked?
80
- @menu = Components::Menu.new(parent: self, context: context, **attributes, &block)
79
+ @menu = Components::Menu.new(parent: self, **attributes, &block)
81
80
  end
82
81
 
83
82
  def actions(**attribs, &block)
84
83
  return @actions if locked?
85
- Actions.new(@actions, parent: self,
86
- context: context,
87
- **attribs, &block)
84
+ Lists::Actions.new(@actions, parent: self, **attribs, &block)
88
85
  end
89
86
  alias action actions
90
87
  deprecate :action, :actions, 2018, 8
@@ -4,8 +4,8 @@ module Voom
4
4
  module Components
5
5
  module Lists
6
6
  class Separator < Base
7
- def initialize(context:, **attribs_, &block)
8
- super(type: :separator, context: context, **attribs_, &block)
7
+ def initialize(**attribs_, &block)
8
+ super(type: :separator, **attribs_, &block)
9
9
  expand!
10
10
  end
11
11
  end
@@ -1,7 +1,8 @@
1
- require_relative 'mixins/event'
2
- require_relative 'mixins/tooltips'
3
- require_relative 'mixins/attaches'
4
- require_relative 'mixins/buttons'
1
+ require 'voom/presenters/dsl/components/mixins/event'
2
+ require 'voom/presenters/dsl/components/mixins/tooltips'
3
+ require 'voom/presenters/dsl/components/mixins/attaches'
4
+ require 'voom/presenters/dsl/components/mixins/buttons'
5
+ require 'voom/presenters/dsl/components/mixins/typography'
5
6
 
6
7
  module Voom
7
8
  module Presenters
@@ -17,27 +18,24 @@ module Voom
17
18
  @position = attribs.delete(:position) || :left
18
19
  @placement = attribs.delete(:placement) || :default
19
20
  @color = attribs.delete(:color)
20
- @open = attributes.delete(:open){false}
21
+ @open = attributes.delete(:open) {false}
21
22
  expand!
22
23
  end
23
-
24
+
24
25
  def item(first_text = nil, text: nil, **attribs, &block)
25
26
  the_text = first_text || text
26
27
  @items << Item.new(parent: self, text: the_text,
27
- context: context,
28
28
  **attribs, &block)
29
29
  end
30
30
 
31
31
  def divider(**attribs, &block)
32
32
  @items << Divider.new(parent: self,
33
- context: context,
34
33
  **attribs, &block)
35
34
  end
36
35
 
37
36
  def label(**attribs, &block)
38
37
  return @label if locked?
39
38
  @label = Label.new(parent: self,
40
- context: context,
41
39
  **attribs, &block)
42
40
  end
43
41
 
@@ -45,6 +43,7 @@ module Voom
45
43
 
46
44
  class Item < EventBase
47
45
  include Mixins::Tooltips
46
+ include Mixins::Typography
48
47
 
49
48
  attr_accessor :text, :disabled, :selected
50
49
 
@@ -52,14 +51,14 @@ module Voom
52
51
  super(type: :item, **attribs_, &block)
53
52
  @text = attribs.delete(:text)
54
53
  @disabled = attribs.delete(:disabled)
55
- @selected = attribs.delete(:selected) { false }
54
+ @selected = attribs.delete(:selected) {false}
55
+ @components = []
56
56
  expand!
57
57
  end
58
58
 
59
59
  def icon(icon=nil, **attribs, &block)
60
60
  return @icon if locked?
61
61
  @icon = Icon.new(parent: self, icon: icon,
62
- context: context,
63
62
  **attribs, &block)
64
63
  end
65
64
  end
@@ -75,7 +74,6 @@ module Voom
75
74
  super(type: :divider, **attribs, &block)
76
75
  end
77
76
  end
78
-
79
77
  end
80
78
  end
81
79
  end