ui_bibz 2.5.3 → 3.0.0.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +2 -2
  3. data/.gitignore +3 -2
  4. data/.rubocop.yml +107 -1
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +1 -0
  8. data/Gemfile.lock +102 -111
  9. data/README.md +9 -52
  10. data/Rakefile +3 -2
  11. data/bin/test +7 -0
  12. data/config/initializers/will_paginate.rb +2 -1
  13. data/lib/ui_bibz.rb +17 -3
  14. data/lib/ui_bibz/concerns/models/searchable.rb +3 -3
  15. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -1
  16. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +20 -1
  17. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +10 -2
  18. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +1 -1
  19. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +9 -5
  20. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -6
  21. data/lib/ui_bibz/infos.rb +11 -5
  22. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +15 -2
  23. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +4 -7
  24. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +6 -9
  25. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
  26. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_field_input.rb +23 -0
  27. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  28. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +12 -0
  29. data/lib/ui_bibz/rails/engine.rb +1 -16
  30. data/lib/ui_bibz/railtie.rb +6 -0
  31. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +67 -0
  32. data/lib/ui_bibz/ui/concerns/html_concern.rb +16 -0
  33. data/lib/ui_bibz/ui/core/boxes/card.rb +5 -50
  34. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +2 -0
  35. data/lib/ui_bibz/ui/core/boxes/card_column.rb +3 -1
  36. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +3 -1
  37. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +60 -0
  38. data/lib/ui_bibz/ui/core/boxes/card_group.rb +3 -1
  39. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +0 -3
  40. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_subtitle.rb +47 -0
  41. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +0 -3
  42. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +1 -4
  43. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +15 -0
  44. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +65 -0
  45. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +0 -3
  46. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +2 -4
  47. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +1 -4
  48. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +65 -0
  49. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +0 -4
  50. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +1 -4
  51. data/lib/ui_bibz/ui/core/component.rb +16 -9
  52. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +1 -1
  53. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +9 -11
  54. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -3
  55. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +0 -3
  56. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +0 -3
  57. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -10
  58. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +14 -10
  59. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +22 -2
  60. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +24 -12
  61. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +11 -6
  62. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +1 -5
  63. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +12 -15
  64. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +0 -1
  65. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +0 -3
  66. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +19 -20
  67. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -5
  68. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +20 -10
  69. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +16 -8
  70. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +20 -3
  71. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +33 -5
  72. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +132 -0
  73. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +71 -0
  74. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +0 -3
  75. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -62
  76. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +0 -3
  77. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +2 -5
  78. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +1 -4
  79. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +0 -3
  80. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +0 -3
  81. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +0 -3
  82. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +1 -12
  83. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +9 -4
  84. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +0 -3
  85. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +9 -4
  86. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +0 -3
  87. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +1 -4
  88. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -7
  89. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +2 -5
  90. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +0 -3
  91. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +0 -3
  92. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -4
  93. data/lib/ui_bibz/ui/core/icons/glyph.rb +1 -4
  94. data/lib/ui_bibz/ui/core/icons/star.rb +0 -3
  95. data/lib/ui_bibz/ui/core/layouts/col.rb +5 -42
  96. data/lib/ui_bibz/ui/core/layouts/container.rb +9 -6
  97. data/lib/ui_bibz/ui/core/layouts/row.rb +32 -2
  98. data/lib/ui_bibz/ui/core/lists/components/list.rb +6 -8
  99. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +0 -3
  100. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +0 -3
  101. data/lib/ui_bibz/ui/core/lists/list_group.rb +9 -6
  102. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +3 -2
  103. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +0 -3
  104. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -5
  105. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +3 -1
  106. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +15 -6
  107. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +0 -4
  108. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -4
  109. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +0 -3
  110. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +0 -3
  111. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +4 -4
  112. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +1 -4
  113. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +0 -3
  114. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +0 -3
  115. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +3 -3
  116. data/lib/ui_bibz/ui/core/navigations/link.rb +0 -3
  117. data/lib/ui_bibz/ui/core/navigations/nav.rb +37 -10
  118. data/lib/ui_bibz/ui/core/navigations/navbar.rb +28 -7
  119. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -1
  120. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +10 -5
  121. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +2 -0
  122. data/lib/ui_bibz/ui/core/notifications/alert.rb +2 -2
  123. data/lib/ui_bibz/ui/core/notifications/badge.rb +2 -5
  124. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +0 -3
  125. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +4 -10
  126. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +0 -3
  127. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +0 -3
  128. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -6
  129. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +7 -5
  130. data/lib/ui_bibz/ui/core/notifications/spinner.rb +0 -3
  131. data/lib/ui_bibz/ui/core/notifications/toast.rb +14 -3
  132. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +0 -3
  133. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +0 -3
  134. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +1 -7
  135. data/lib/ui_bibz/ui/core/windows/modal.rb +61 -14
  136. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +4 -2
  137. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +9 -9
  138. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +2 -2
  139. data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +0 -3
  140. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +2 -0
  141. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +2 -0
  142. data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +0 -3
  143. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +2 -0
  144. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +1 -4
  145. data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +0 -4
  146. data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +0 -3
  147. data/lib/ui_bibz/ui/ux/containers/panel.rb +4 -2
  148. data/lib/ui_bibz/ui/ux/tables/components/thead.rb +0 -3
  149. data/lib/ui_bibz/ui/ux/tables/table.rb +2 -4
  150. data/lib/ui_bibz/ui/ux/tables/table_card.rb +4 -3
  151. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +5 -5
  152. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +74 -0
  153. data/lib/ui_bibz/utils/internationalization.rb +1 -1
  154. data/lib/ui_bibz/utils/screwdriver.rb +16 -10
  155. data/test/dummy/Rakefile +1 -1
  156. data/test/dummy/app/javascripts/packs/index.js +3 -0
  157. data/test/dummy/app/models/user.rb +1 -0
  158. data/test/dummy/app/views/layouts/application.html.erb +4 -1
  159. data/{app/ui/.keep → test/dummy/app/views/users/index.html.erb} +0 -0
  160. data/test/dummy/bin/setup +17 -13
  161. data/test/dummy/config.ru +2 -1
  162. data/test/dummy/config/application.rb +1 -0
  163. data/test/dummy/config/cable.yml +10 -0
  164. data/test/dummy/config/database.yml +1 -1
  165. data/test/dummy/config/environment.rb +1 -1
  166. data/test/dummy/config/environments/development.rb +33 -12
  167. data/test/dummy/config/environments/production.rb +52 -19
  168. data/test/dummy/config/environments/test.rb +18 -12
  169. data/test/dummy/config/initializers/application_controller_renderer.rb +9 -0
  170. data/test/dummy/config/initializers/assets.rb +4 -3
  171. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -1
  172. data/test/dummy/config/initializers/content_security_policy.rb +29 -0
  173. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  174. data/test/dummy/config/initializers/inflections.rb +0 -1
  175. data/test/dummy/config/initializers/mime_types.rb +0 -1
  176. data/test/dummy/config/initializers/wrap_parameters.rb +2 -2
  177. data/test/dummy/config/puma.rb +40 -0
  178. data/test/dummy/config/routes.rb +3 -0
  179. data/test/dummy/config/spring.rb +8 -0
  180. data/test/dummy/config/storage.yml +34 -0
  181. data/test/dummy/db/migrate/20150123191805_create_users.rb +1 -1
  182. data/test/dummy/db/schema.rb +24 -24
  183. data/test/dummy/public/404.html +6 -6
  184. data/test/dummy/public/422.html +6 -6
  185. data/test/dummy/public/500.html +6 -6
  186. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  187. data/test/dummy/public/apple-touch-icon.png +0 -0
  188. data/test/dummy/storage/.keep +0 -0
  189. data/test/simple_form_test.rb +45 -44
  190. data/test/store_test.rb +5 -5
  191. data/test/test_helper.rb +18 -9
  192. data/test/ui/core/boxes/card_grid_test.rb +17 -0
  193. data/test/ui/core/boxes/card_test.rb +46 -12
  194. data/test/ui/core/boxes/jumbotron_test.rb +2 -2
  195. data/test/ui/core/component_test.rb +1 -1
  196. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  197. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  198. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  199. data/test/ui/core/forms/choices/checkbox_field_test.rb +8 -1
  200. data/test/ui/core/forms/choices/choice_group_test.rb +11 -9
  201. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  202. data/test/ui/core/forms/dates/date_picker_field_test.rb +1 -1
  203. data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
  204. data/test/ui/core/forms/files/file_field_test.rb +12 -0
  205. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  206. data/test/ui/core/forms/numbers/range_field_test.rb +23 -2
  207. data/test/ui/core/forms/numbers/slider_field_test.rb +26 -0
  208. data/test/ui/core/forms/selects/multi_column_field_test.rb +1 -1
  209. data/test/ui/core/forms/selects/multi_select_field_test.rb +7 -7
  210. data/test/ui/core/forms/selects/select_field_test.rb +3 -3
  211. data/test/ui/core/forms/surrounds/surround_field_test.rb +15 -3
  212. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +1 -1
  213. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -8
  214. data/test/ui/core/forms/texts/text_field_test.rb +2 -2
  215. data/test/ui/core/layouts/col_test.rb +11 -2
  216. data/test/ui/core/layouts/container_test.rb +15 -1
  217. data/test/ui/core/layouts/row_test.rb +68 -3
  218. data/test/ui/core/lists/list_group_test.rb +1 -1
  219. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  220. data/test/ui/core/navigations/link_test.rb +1 -1
  221. data/test/ui/core/navigations/nav_test.rb +17 -5
  222. data/test/ui/core/navigations/navbar_test.rb +5 -4
  223. data/test/ui/core/navigations/tab_group_test.rb +4 -4
  224. data/test/ui/core/notifications/alert_test.rb +2 -2
  225. data/test/ui/core/notifications/badge_test.rb +3 -3
  226. data/test/ui/core/notifications/progress_bar_test.rb +1 -1
  227. data/test/ui/core/notifications/toast_test.rb +10 -1
  228. data/test/ui/core/windows/modal_test.rb +15 -1
  229. data/test/ui/utils/breakdown_class_name_generator_test.rb +60 -0
  230. data/test/ui/ux/containers/panel_test.rb +5 -5
  231. data/test/ui/ux/tables/table_test.rb +6 -6
  232. data/test/ui_bibz_test.rb +1 -1
  233. data/ui_bibz.gemspec +16 -16
  234. metadata +99 -109
  235. data/.rubocop_todo.yml +0 -25
  236. data/app/assets/javascripts/fix_bootstrap.coffee +0 -7
  237. data/app/assets/javascripts/form.coffee +0 -83
  238. data/app/assets/javascripts/formula.coffee +0 -69
  239. data/app/assets/javascripts/input-connected.coffee +0 -101
  240. data/app/assets/javascripts/interface.coffee +0 -55
  241. data/app/assets/javascripts/jquery.multi-select-extend.coffee +0 -38
  242. data/app/assets/javascripts/table.coffee +0 -36
  243. data/app/assets/javascripts/ui_bibz.coffee.erb +0 -75
  244. data/app/assets/stylesheets/_custom_variables.sass +0 -20
  245. data/app/assets/stylesheets/_panel.scss +0 -315
  246. data/app/assets/stylesheets/bootstrap-switch.sass +0 -159
  247. data/app/assets/stylesheets/boxes.sass +0 -5
  248. data/app/assets/stylesheets/containers.sass +0 -2
  249. data/app/assets/stylesheets/fix-bootstrap-4.sass +0 -19
  250. data/app/assets/stylesheets/fix_addon.sass +0 -216
  251. data/app/assets/stylesheets/forms.sass +0 -91
  252. data/app/assets/stylesheets/navigations.sass +0 -17
  253. data/app/assets/stylesheets/notifications.sass +0 -42
  254. data/app/assets/stylesheets/tables.sass +0 -66
  255. data/app/assets/stylesheets/ui_bibz.sass.erb +0 -55
  256. data/lib/generators/ui_bibz/install_generator.rb +0 -17
  257. data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +0 -5
  258. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +0 -125
  259. data/lib/ui_bibz/ui/core/icons/glyph_group.rb +0 -101
  260. data/test/dummy/bin/bundle +0 -5
  261. data/test/ui/core/forms/files/text_field_test.rb +0 -12
  262. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +0 -84
  263. data/test/ui/core/icons/glyph_group_test.rb +0 -37
@@ -3,9 +3,6 @@
3
3
  module UiBibz::Ui::Core::Icons::Components
4
4
  class GlyphText < UiBibz::Ui::Core::Component
5
5
  # See UiBibz::Ui::Core::Component.initialize
6
- def initialize(content, options = nil, html_options = nil, &block)
7
- super
8
- end
9
6
 
10
7
  # Render html tag
11
8
  def pre_render
@@ -24,7 +21,7 @@ module UiBibz::Ui::Core::Icons::Components
24
21
  end
25
22
 
26
23
  def transform
27
- add_html_data 'fa_transform', options[:transform] if options[:transform]
24
+ add_html_data 'fa_transform', value: options[:transform] if options[:transform]
28
25
  end
29
26
  end
30
27
  end
@@ -58,9 +58,6 @@ module UiBibz::Ui::Core::Icons
58
58
  # end
59
59
  class Glyph < UiBibz::Ui::Core::Component
60
60
  # See UiBibz::Ui::Core::Component.initialize
61
- def initialize(content, options = nil, html_options = nil, &block)
62
- super
63
- end
64
61
 
65
62
  # Render html tag
66
63
  def pre_render
@@ -127,7 +124,7 @@ module UiBibz::Ui::Core::Icons
127
124
  end
128
125
 
129
126
  def transform
130
- add_html_data 'fa_transform', options[:transform] if options[:transform]
127
+ add_html_data 'fa_transform', value: options[:transform] if options[:transform]
131
128
  end
132
129
 
133
130
  def content
@@ -45,9 +45,6 @@ module UiBibz::Ui::Core::Icons
45
45
  #
46
46
  class Star < UiBibz::Ui::Core::Component
47
47
  # See UiBibz::Ui::Core::Component.initialize
48
- def initialize(content = nil, options = nil, html_options = nil, &block)
49
- super
50
- end
51
48
 
52
49
  # Render html tag
53
50
  def pre_render
@@ -25,6 +25,7 @@ module UiBibz::Ui::Core::Layouts
25
25
  # * +md+ - Hash
26
26
  # * +lg+ - Hash
27
27
  # * +xl+ - Hash
28
+ # * +xxl+ - Hash
28
29
  #
29
30
  # ==== Signatures
30
31
  #
@@ -51,6 +52,9 @@ module UiBibz::Ui::Core::Layouts
51
52
  class Col < UiBibz::Ui::Core::Component
52
53
  # See UiBibz::Ui::Core::Component.initialize
53
54
  def initialize(content = nil, options = nil, html_options = nil, &block)
55
+ unless block.nil?
56
+ content = content.is_a?(Integer) ? { num: content } : content
57
+ end
54
58
  super
55
59
  end
56
60
 
@@ -62,48 +66,7 @@ module UiBibz::Ui::Core::Layouts
62
66
  private
63
67
 
64
68
  def component_html_classes
65
- col_classes
66
- end
67
-
68
- def col_classes
69
- kl = []
70
- @options.each do |ke, va|
71
- kl << write_classes(ke, va) if %w[xs sm md lg xl].include?(ke)
72
- end
73
- if not_col_options?
74
- kl = 'col'
75
- elsif kl.empty?
76
- kl << write_classes(:md, @options)
77
- end
78
- kl
79
- end
80
-
81
- def not_col_options?
82
- (@options.keys & %w[xs sm md lg xl num offset push pull]).empty?
83
- end
84
-
85
- def write_classes(size, opts)
86
- opts.map { |k, v| send(k, size.to_sym, v) if %w[num offset push pull].include?(k) }.join(' ')
87
- end
88
-
89
- # col-md-9
90
- def num(size, number)
91
- size == :auto ? 'col' : "col-#{size}-#{number}"
92
- end
93
-
94
- # col-md-offset-9
95
- def offset(size, number)
96
- "offset-#{size}-#{number}"
97
- end
98
-
99
- # col-md-push-9
100
- def push(size, number)
101
- "col-#{size}-push-#{number}"
102
- end
103
-
104
- # col-md-pull-9
105
- def pull(size, number)
106
- "col-#{size}-pull-#{number}"
69
+ UiBibz::Utils::BreakdownClassNameGenerator.new(@options).class_names
107
70
  end
108
71
  end
109
72
  end
@@ -42,9 +42,6 @@ module UiBibz::Ui::Core::Layouts
42
42
  #
43
43
  class Container < UiBibz::Ui::Core::Component
44
44
  # See UiBibz::Ui::Core::Component.initialize
45
- def initialize(content = nil, options = nil, html_options = nil, &block)
46
- super
47
- end
48
45
 
49
46
  # Render html tag
50
47
  def pre_render
@@ -54,11 +51,17 @@ module UiBibz::Ui::Core::Layouts
54
51
  private
55
52
 
56
53
  def component_html_classes
57
- type
54
+ klass_name
58
55
  end
59
56
 
60
- def type
61
- options[:type] == :fluid ? 'container-fluid' : 'container'
57
+ def klass_name
58
+ if options[:type] == :fluid
59
+ 'container-fluid'
60
+ elsif options[:size]
61
+ "container-#{options[:size]}"
62
+ else
63
+ 'container'
64
+ end
62
65
  end
63
66
  end
64
67
  end
@@ -25,6 +25,12 @@ module UiBibz::Ui::Core::Layouts
25
25
  # #content
26
26
  # end
27
27
  #
28
+ # UiBibz::Ui::Core::Layouts::Row.new(options = {}, html_options = {}) do |row|
29
+ # row.col do
30
+ # # content
31
+ # end
32
+ # end
33
+ #
28
34
  # ==== Helper
29
35
  #
30
36
  # row(content, options = {}, html_options = {})
@@ -33,21 +39,45 @@ module UiBibz::Ui::Core::Layouts
33
39
  # content
34
40
  # end
35
41
  #
42
+ # row(options = {}, html_options = {}) do |row|
43
+ # row.col do
44
+ # content
45
+ # end
46
+ # end
47
+ #
36
48
  class Row < UiBibz::Ui::Core::Component
49
+ include UiBibz::Ui::Concerns::HtmlConcern
50
+
37
51
  # See UiBibz::Ui::Core::Component.initialize
38
52
  def initialize(content = nil, options = nil, html_options = nil, &block)
53
+ unless block.nil?
54
+ content = content.is_a?(Integer) ? { num: content } : content
55
+ end
39
56
  super
57
+ @items = [@content]
40
58
  end
41
59
 
42
60
  # Render html tag
43
61
  def pre_render
44
- content_tag :div, content, html_options
62
+ content_tag :div, @items.join.html_safe, html_options
63
+ end
64
+
65
+ def col(content = nil, options = nil, html_options = nil, &block)
66
+ @items << UiBibz::Ui::Core::Layouts::Col.new(content, options, html_options, &block).render
45
67
  end
46
68
 
47
69
  private
48
70
 
49
71
  def component_html_classes
50
- options[:type] == :form ? 'form-row' : 'row'
72
+ [
73
+ 'row',
74
+ (UiBibz::Utils::BreakdownClassNameGenerator.new(@options[:gutters], 'g').class_names if @options[:gutters]),
75
+ (UiBibz::Utils::BreakdownClassNameGenerator.new(@options, 'row-cols').class_names if breakpoints_present?)
76
+ ]
77
+ end
78
+
79
+ def breakpoints_present?
80
+ @options.keys.size - (@options.keys.map(&:to_sym) - [UiBibz::Ui::Core::Component::BREAKPOINTS, :num].flatten).size != 0
51
81
  end
52
82
  end
53
83
  end
@@ -20,7 +20,6 @@ module UiBibz::Ui::Core::Lists::Components
20
20
  # * +state+ - status of element with symbol value:
21
21
  # (+:active+, +:disabled+)
22
22
  # * +url+
23
- # * +tap+ - Boolean to add header and body
24
23
  # * +status+ - status of element with symbol value:
25
24
  # (+:default+, +:primary+, +:info+, +:warning+, +:danger+)
26
25
  # * +glyph+ - Add glyph with name or hash options
@@ -30,7 +29,7 @@ module UiBibz::Ui::Core::Lists::Components
30
29
  #
31
30
  # ==== Signatures
32
31
  #
33
- # UiBibz::Ui::Core::Lists::Components::List.new(tap: true) do |l|
32
+ # UiBibz::Ui::Core::Lists::Components::List.new do |l|
34
33
  # l.header content = nil, options = nil, html_options = nil, &block
35
34
  # l.body content = nil, options = nil, html_options = nil, &block
36
35
  # end
@@ -49,7 +48,7 @@ module UiBibz::Ui::Core::Lists::Components
49
48
  # 'Test 2'
50
49
  # end.render
51
50
  #
52
- # UiBibz::Ui::Core::List.new(tap: true, state: :active) do |l|
51
+ # UiBibz::Ui::Core::List.new(state: :active) do |l|
53
52
  # l.header 'My title', nil, class: 'my-title'
54
53
  # l.body do
55
54
  # 'My content'
@@ -57,16 +56,15 @@ module UiBibz::Ui::Core::Lists::Components
57
56
  # end.render
58
57
  #
59
58
  class List < UiBibz::Ui::Core::Component
59
+ include UiBibz::Ui::Concerns::HtmlConcern
60
+
60
61
  # See UiBibz::Ui::Core::Component.initialize
61
- def initialize(content = nil, options = nil, html_options = nil, &block)
62
- super
63
- end
64
62
 
65
63
  # Render html tag
66
64
  def pre_render
67
65
  content_tag tag_type, html_options do
68
66
  concat glyph_and_content_html if @content
69
- concat header_html if @body
67
+ concat header_html if @header
70
68
  concat body_html if @body
71
69
  concat badge_html if @options[:badge]
72
70
  end
@@ -105,7 +103,7 @@ module UiBibz::Ui::Core::Lists::Components
105
103
  end
106
104
 
107
105
  def header_classes
108
- 'flex-column align-items-start' unless options[:tap].nil?
106
+ 'flex-column align-items-start' if @options[:tap]
109
107
  end
110
108
 
111
109
  def tag_type_class
@@ -17,9 +17,6 @@ module UiBibz::Ui::Core::Lists::Components
17
17
  # You can pass arguments in options attribute:
18
18
  class ListBody < UiBibz::Ui::Core::Component
19
19
  # See UiBibz::Ui::Core::Component.initialize
20
- def initialize(content = nil, options = nil, html_options = nil, &block)
21
- super
22
- end
23
20
 
24
21
  # Render html tag
25
22
  def pre_render
@@ -17,9 +17,6 @@ module UiBibz::Ui::Core::Lists::Components
17
17
  # You can pass arguments in options attribute:
18
18
  class ListHeader < UiBibz::Ui::Core::Component
19
19
  # See UiBibz::Ui::Core::Component.initialize
20
- def initialize(content = nil, options = nil, html_options = nil, &block)
21
- super
22
- end
23
20
 
24
21
  # Render html tag
25
22
  def pre_render
@@ -22,7 +22,7 @@ module UiBibz::Ui::Core::Lists
22
22
  #
23
23
  # ==== Signatures
24
24
  #
25
- # UiBibz::Ui::Core::ListGroup.new().tap |lg|
25
+ # UiBibz::Ui::Core::ListGroup.new.tap |lg|
26
26
  # ...
27
27
  # lg.list content = nil, options = nil, html_options = nil, &block
28
28
  # ...
@@ -30,7 +30,7 @@ module UiBibz::Ui::Core::Lists
30
30
  #
31
31
  # ==== Examples
32
32
  #
33
- # UiBibz::Ui::Core::ListGroup.new().tap do |d|
33
+ # UiBibz::Ui::Core::ListGroup.new.tap do |d|
34
34
  # d.list 'Test', status: :success
35
35
  # d.list 'Test2', status: :primary
36
36
  # end.render
@@ -40,7 +40,7 @@ module UiBibz::Ui::Core::Lists
40
40
  # d.list(status: :primary) do
41
41
  # 'Test 2'
42
42
  # end
43
- # d.list(tap: true, state: :active) do |l|
43
+ # d.list(state: :active) do |l|
44
44
  # l.header 'My title', nil, class: 'my-title'
45
45
  # l.body do
46
46
  # 'My content'
@@ -50,12 +50,12 @@ module UiBibz::Ui::Core::Lists
50
50
  #
51
51
  # ==== Helper
52
52
  #
53
- # list_group( options = { tap: true }, html_options = {}) do |l|
53
+ # list_group( options = {}, html_options = {}) do |l|
54
54
  # l.list(content, options = {}, html_options = {})
55
55
  # l.list(options = {}, html_options = {}) do
56
56
  # content
57
57
  # end
58
- # l.list(options = { tap: true }, html_options = {}) do |li|
58
+ # l.list(options = {}, html_options = {}) do |li|
59
59
  # li.header(content, options = {}, html_options = {})
60
60
  # # or
61
61
  # li.header(options = {}, html_options = {}) do
@@ -71,6 +71,8 @@ module UiBibz::Ui::Core::Lists
71
71
  # end
72
72
  #
73
73
  class ListGroup < UiBibz::Ui::Core::Component
74
+ include UiBibz::Ui::Concerns::HtmlConcern
75
+
74
76
  # See UiBibz::Ui::Core::Component.initialize
75
77
  def initialize(content = nil, options = nil, html_options = nil, &block)
76
78
  super
@@ -87,7 +89,8 @@ module UiBibz::Ui::Core::Lists
87
89
  def list(content = nil, options = {}, html_options = nil, &block)
88
90
  options = options.merge({ tag_type: @options[:tag_type] }) unless @options[:tag_type].nil?
89
91
 
90
- @lists << if tap?(content, options)
92
+ @lists << if tapped?(block)
93
+ content = (content || {}).merge(tap: true)
91
94
  UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options).tap(&block).render
92
95
  else
93
96
  UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options, &block).render
@@ -8,7 +8,6 @@ module UiBibz::Ui::Core::Navigations
8
8
  # Separators are automatically added in CSS through +:before+ and +content+.
9
9
  #
10
10
  # This element is an extend of UiBibz::Ui::Core::Component.
11
- # You can use tap method to add link items.
12
11
  #
13
12
  # ==== Attributes
14
13
  #
@@ -56,7 +55,7 @@ module UiBibz::Ui::Core::Navigations
56
55
  #
57
56
  # ==== Helper
58
57
  #
59
- # ui_breadcrumb({tap: true}) do |b|
58
+ # ui_breadcrumb do |b|
60
59
  # b.link(content, options = {}, html_options = {})
61
60
  # b.link(options = {}, html_options = {}) do
62
61
  # content
@@ -69,6 +68,8 @@ module UiBibz::Ui::Core::Navigations
69
68
  # ui_breadcrumb(@users, { link_label: name, link_url: user_path(:id) })
70
69
  #
71
70
  class Breadcrumb < UiBibz::Ui::Core::Component
71
+ include UiBibz::Ui::Concerns::HtmlConcern
72
+
72
73
  # See UiBibz::Ui::Core::Component.initialize
73
74
  def initialize(content = nil, options = nil, html_options = nil, &block)
74
75
  super
@@ -41,9 +41,6 @@ module UiBibz::Ui::Core::Navigations::Components
41
41
  #
42
42
  class BreadcrumbLink < UiBibz::Ui::Core::Navigations::Link
43
43
  # See UiBibz::Ui::Core::Component.initialize
44
- def initialize(content = nil, options = nil, html_options = nil, &block)
45
- super
46
- end
47
44
 
48
45
  # Render html tag
49
46
  def pre_render
@@ -44,9 +44,6 @@ module UiBibz::Ui::Core::Navigations
44
44
  #
45
45
  class NavDropdown < UiBibz::Ui::Core::Forms::Dropdowns::Dropdown
46
46
  # See UiBibz::Ui::Core::Dropdown.initialize
47
- def initialize(content, options = nil, html_options = nil, &block)
48
- super
49
- end
50
47
 
51
48
  # Render html tag
52
49
  def pre_render
@@ -59,11 +56,11 @@ module UiBibz::Ui::Core::Navigations
59
56
  private
60
57
 
61
58
  def component_html_classes
62
- [type, 'nav-item', without_caret]
59
+ [position, open, keep_open, 'nav-item', without_caret]
63
60
  end
64
61
 
65
62
  def link_html
66
- link_to button_content, '#', class: join_classes(size, 'dropdown-toggle', 'nav-link'), 'data-toggle' => 'dropdown', 'aria-expanded' => false
63
+ content_tag :a, button_content, class: join_classes(size, state, 'dropdown-toggle', 'nav-link'), 'data-toggle' => 'dropdown', 'aria-expanded' => false
67
64
  end
68
65
  end
69
66
  end
@@ -41,6 +41,8 @@ module UiBibz::Ui::Core::Navigations
41
41
  # end.render
42
42
  #
43
43
  class NavLink < UiBibz::Ui::Core::Component
44
+ include UiBibz::Ui::Concerns::HtmlConcern
45
+
44
46
  # See UiBibz::Ui::Core::Component.initialize
45
47
  def initialize(content = nil, options = nil, html_options = nil, &block)
46
48
  super
@@ -49,7 +51,7 @@ module UiBibz::Ui::Core::Navigations
49
51
 
50
52
  # Render html tag
51
53
  def pre_render
52
- if options[:nav_tags] == :a || options[:nav_type] == 'nav-links'
54
+ if options[:nav_tags] == :a || %w[nav-links list-group].include?(options[:nav_type])
53
55
  UiBibz::Ui::Core::Navigations::NavLinkLink.new(content, options, html_options).render
54
56
  else
55
57
  cont = if options[:tag_type] == :span
@@ -20,13 +20,10 @@ module UiBibz::Ui::Core::Navigations
20
20
  #
21
21
  class NavLinkLink < UiBibz::Ui::Core::Component
22
22
  # UiBibz::Ui::Core::Component.initialize
23
- def initialize(content = nil, options = nil, html_options = nil, &block)
24
- super
25
- end
26
23
 
27
24
  # Render html tag
28
25
  def pre_render
29
- link_to options[:url], html_options do
26
+ content_tag :a, { href: options[:url] }.merge(html_options) do
30
27
  concat glyph_and_content_html
31
28
  concat tag_html if options[:tag]
32
29
  end
@@ -35,11 +32,23 @@ module UiBibz::Ui::Core::Navigations
35
32
  private
36
33
 
37
34
  def component_html_classes
38
- 'nav-link'
35
+ if options[:nav_type] == 'list-group'
36
+ 'list-group-item list-group-item-action'
37
+ else
38
+ 'nav-link'
39
+ end
39
40
  end
40
41
 
41
42
  def component_html_options
42
- options[:nav_type] == 'nav-tabs' ? { 'data-toggle' => 'tab', role: 'tab' } : {}
43
+ html_tag_base = { 'data-toggle' => 'tab', role: 'tab' }
44
+ case options[:nav_type]
45
+ when 'nav-tabs'
46
+ html_tag_base
47
+ when 'list-group'
48
+ html_tag_base.merge("aria-controls": sanitize_text(content))
49
+ else
50
+ {}
51
+ end.merge(options[:a_html] || {})
43
52
  end
44
53
  end
45
54
  end