ui_bibz 2.5.6 → 3.0.0.alpha8

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/.gitignore +3 -2
  3. data/.rubocop.yml +78 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +1 -0
  7. data/Gemfile.lock +92 -104
  8. data/README.md +9 -52
  9. data/Rakefile +3 -2
  10. data/bin/test +7 -0
  11. data/config/initializers/will_paginate.rb +2 -1
  12. data/lib/ui_bibz.rb +17 -3
  13. data/lib/ui_bibz/concerns/models/searchable.rb +3 -3
  14. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -1
  15. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +20 -1
  16. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +10 -2
  17. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +1 -1
  18. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +9 -5
  19. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -6
  20. data/lib/ui_bibz/infos.rb +11 -5
  21. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +15 -2
  22. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +4 -7
  23. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +6 -9
  24. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
  25. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_field_input.rb +23 -0
  26. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  27. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +12 -0
  28. data/lib/ui_bibz/rails/engine.rb +1 -16
  29. data/lib/ui_bibz/railtie.rb +6 -0
  30. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +67 -0
  31. data/lib/ui_bibz/ui/concerns/html_concern.rb +16 -0
  32. data/lib/ui_bibz/ui/core/boxes/card.rb +5 -50
  33. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +2 -0
  34. data/lib/ui_bibz/ui/core/boxes/card_column.rb +3 -1
  35. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +3 -1
  36. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +60 -0
  37. data/lib/ui_bibz/ui/core/boxes/card_group.rb +3 -1
  38. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +0 -3
  39. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_subtitle.rb +47 -0
  40. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +0 -3
  41. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +1 -4
  42. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +15 -0
  43. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +65 -0
  44. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +0 -3
  45. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +2 -4
  46. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +1 -4
  47. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +65 -0
  48. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +0 -4
  49. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +1 -4
  50. data/lib/ui_bibz/ui/core/component.rb +16 -9
  51. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +2 -2
  52. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +9 -11
  53. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -3
  54. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +0 -3
  55. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +0 -3
  56. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -10
  57. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +20 -10
  58. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +22 -2
  59. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +24 -12
  60. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +17 -6
  61. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +5 -5
  62. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +12 -15
  63. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +0 -1
  64. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +0 -3
  65. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +19 -20
  66. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -5
  67. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +20 -10
  68. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +18 -8
  69. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +20 -3
  70. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +51 -5
  71. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +144 -0
  72. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +71 -0
  73. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +0 -3
  74. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -62
  75. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +0 -3
  76. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +2 -5
  77. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +1 -4
  78. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +1 -6
  79. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +0 -3
  80. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +1 -6
  81. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +1 -12
  82. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +9 -4
  83. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +0 -3
  84. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +9 -4
  85. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +0 -3
  86. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +4 -12
  87. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -7
  88. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +2 -5
  89. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +0 -3
  90. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +0 -3
  91. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -4
  92. data/lib/ui_bibz/ui/core/icons/glyph.rb +1 -4
  93. data/lib/ui_bibz/ui/core/icons/star.rb +0 -3
  94. data/lib/ui_bibz/ui/core/layouts/col.rb +5 -42
  95. data/lib/ui_bibz/ui/core/layouts/container.rb +9 -6
  96. data/lib/ui_bibz/ui/core/layouts/row.rb +32 -2
  97. data/lib/ui_bibz/ui/core/lists/components/list.rb +6 -8
  98. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +0 -3
  99. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +0 -3
  100. data/lib/ui_bibz/ui/core/lists/list_group.rb +9 -6
  101. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +3 -2
  102. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +0 -3
  103. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -5
  104. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +3 -1
  105. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +15 -6
  106. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +0 -4
  107. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -4
  108. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +0 -3
  109. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +0 -3
  110. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +4 -4
  111. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +1 -4
  112. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +0 -3
  113. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +0 -3
  114. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +3 -3
  115. data/lib/ui_bibz/ui/core/navigations/link.rb +0 -3
  116. data/lib/ui_bibz/ui/core/navigations/nav.rb +37 -10
  117. data/lib/ui_bibz/ui/core/navigations/navbar.rb +31 -8
  118. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -1
  119. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +10 -5
  120. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +2 -0
  121. data/lib/ui_bibz/ui/core/notifications/alert.rb +2 -2
  122. data/lib/ui_bibz/ui/core/notifications/badge.rb +2 -5
  123. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +0 -3
  124. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +4 -10
  125. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +0 -3
  126. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +0 -3
  127. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -6
  128. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +7 -5
  129. data/lib/ui_bibz/ui/core/notifications/spinner.rb +0 -3
  130. data/lib/ui_bibz/ui/core/notifications/toast.rb +14 -3
  131. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +0 -3
  132. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +0 -3
  133. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +1 -7
  134. data/lib/ui_bibz/ui/core/windows/modal.rb +65 -14
  135. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +6 -2
  136. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +9 -9
  137. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +2 -2
  138. data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +1 -1
  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 +4 -6
  145. data/lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb +47 -0
  146. data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +0 -4
  147. data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +0 -3
  148. data/lib/ui_bibz/ui/ux/containers/panel.rb +4 -2
  149. data/lib/ui_bibz/ui/ux/tables/components/thead.rb +0 -3
  150. data/lib/ui_bibz/ui/ux/tables/table.rb +2 -4
  151. data/lib/ui_bibz/ui/ux/tables/table_card.rb +4 -3
  152. data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +3 -3
  153. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +8 -8
  154. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +82 -0
  155. data/lib/ui_bibz/utils/internationalization.rb +2 -2
  156. data/lib/ui_bibz/utils/screwdriver.rb +16 -10
  157. data/test/dummy/Rakefile +1 -1
  158. data/test/dummy/app/javascripts/packs/index.js +3 -0
  159. data/test/dummy/app/views/layouts/application.html.erb +4 -1
  160. data/{app/ui/.keep → test/dummy/app/views/users/index.html.erb} +0 -0
  161. data/test/dummy/bin/setup +17 -13
  162. data/test/dummy/config.ru +2 -1
  163. data/test/dummy/config/application.rb +1 -0
  164. data/test/dummy/config/cable.yml +10 -0
  165. data/test/dummy/config/database.yml +1 -1
  166. data/test/dummy/config/environment.rb +1 -1
  167. data/test/dummy/config/environments/development.rb +33 -12
  168. data/test/dummy/config/environments/production.rb +52 -19
  169. data/test/dummy/config/environments/test.rb +18 -12
  170. data/test/dummy/config/initializers/application_controller_renderer.rb +9 -0
  171. data/test/dummy/config/initializers/assets.rb +4 -3
  172. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -1
  173. data/test/dummy/config/initializers/content_security_policy.rb +29 -0
  174. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  175. data/test/dummy/config/initializers/inflections.rb +0 -1
  176. data/test/dummy/config/initializers/mime_types.rb +0 -1
  177. data/test/dummy/config/initializers/wrap_parameters.rb +2 -2
  178. data/test/dummy/config/puma.rb +40 -0
  179. data/test/dummy/config/routes.rb +3 -0
  180. data/test/dummy/config/spring.rb +8 -0
  181. data/test/dummy/config/storage.yml +34 -0
  182. data/test/dummy/db/migrate/20150123191805_create_users.rb +1 -1
  183. data/test/dummy/db/schema.rb +24 -24
  184. data/test/dummy/public/404.html +6 -6
  185. data/test/dummy/public/422.html +6 -6
  186. data/test/dummy/public/500.html +6 -6
  187. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  188. data/test/dummy/public/apple-touch-icon.png +0 -0
  189. data/test/dummy/storage/.keep +0 -0
  190. data/test/simple_form_test.rb +45 -44
  191. data/test/store_test.rb +5 -5
  192. data/test/test_helper.rb +18 -9
  193. data/test/ui/core/boxes/card_grid_test.rb +17 -0
  194. data/test/ui/core/boxes/card_test.rb +46 -12
  195. data/test/ui/core/boxes/jumbotron_test.rb +2 -2
  196. data/test/ui/core/component_test.rb +1 -1
  197. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  198. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  199. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  200. data/test/ui/core/forms/choices/checkbox_field_test.rb +9 -2
  201. data/test/ui/core/forms/choices/choice_group_test.rb +11 -9
  202. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  203. data/test/ui/core/forms/dates/date_picker_field_test.rb +1 -1
  204. data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
  205. data/test/ui/core/forms/files/file_field_test.rb +12 -0
  206. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  207. data/test/ui/core/forms/numbers/range_field_test.rb +37 -2
  208. data/test/ui/core/forms/numbers/slider_field_test.rb +26 -0
  209. data/test/ui/core/forms/selects/multi_column_field_test.rb +1 -1
  210. data/test/ui/core/forms/selects/multi_select_field_test.rb +7 -7
  211. data/test/ui/core/forms/selects/select_field_test.rb +3 -3
  212. data/test/ui/core/forms/surrounds/surround_field_test.rb +40 -4
  213. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +1 -1
  214. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -8
  215. data/test/ui/core/forms/texts/text_field_test.rb +2 -2
  216. data/test/ui/core/layouts/col_test.rb +11 -2
  217. data/test/ui/core/layouts/container_test.rb +15 -1
  218. data/test/ui/core/layouts/row_test.rb +68 -3
  219. data/test/ui/core/lists/list_group_test.rb +1 -1
  220. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  221. data/test/ui/core/navigations/link_test.rb +1 -1
  222. data/test/ui/core/navigations/nav_test.rb +17 -5
  223. data/test/ui/core/navigations/navbar_test.rb +7 -8
  224. data/test/ui/core/navigations/tab_group_test.rb +4 -4
  225. data/test/ui/core/notifications/alert_test.rb +2 -2
  226. data/test/ui/core/notifications/badge_test.rb +3 -3
  227. data/test/ui/core/notifications/progress_bar_test.rb +1 -1
  228. data/test/ui/core/notifications/toast_test.rb +10 -1
  229. data/test/ui/core/windows/modal_test.rb +15 -1
  230. data/test/ui/utils/breakdown_class_name_generator_test.rb +74 -0
  231. data/test/ui/ux/containers/panel_test.rb +5 -5
  232. data/test/ui/ux/tables/table_test.rb +6 -6
  233. data/test/ui_bibz_test.rb +1 -1
  234. data/ui_bibz.gemspec +16 -16
  235. metadata +100 -108
  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
@@ -53,9 +53,6 @@ module UiBibz::Ui::Core::Forms::Buttons
53
53
  include ConnectExtension
54
54
 
55
55
  # See UiBibz::Ui::Core::Component.initialize
56
- def initialize(content = nil, options = nil, html_options = nil, &block)
57
- super
58
- end
59
56
 
60
57
  def pre_render
61
58
  button_refresh_html_tag
@@ -58,9 +58,6 @@ module UiBibz::Ui::Core::Forms::Buttons
58
58
  #
59
59
  class ButtonGroupDropdown < UiBibz::Ui::Core::Forms::Dropdowns::Dropdown
60
60
  # See UiBibz::Ui::Core::Forms::Buttons::Button.initialize
61
- def initialize(content = nil, options = nil, html_options = nil, &block)
62
- super
63
- end
64
61
 
65
62
  private
66
63
 
@@ -58,9 +58,6 @@ module UiBibz::Ui::Core::Forms::Buttons
58
58
  #
59
59
  class ButtonGroupSplitDropdown < UiBibz::Ui::Core::Forms::Dropdowns::SplitDropdown
60
60
  # See UiBibz::Ui::Core::Forms::Buttons::Button.initialize
61
- def initialize(content = nil, options = nil, html_options = nil, &block)
62
- super
63
- end
64
61
 
65
62
  private
66
63
 
@@ -47,9 +47,6 @@ module UiBibz::Ui::Core::Forms::Choices
47
47
  #
48
48
  class BoxSwitchField < UiBibz::Ui::Core::Component
49
49
  # See UiBibz::Ui::Core::Component.initialize
50
- def initialize(content = nil, options = nil, html_options = nil, &block)
51
- super
52
- end
53
50
 
54
51
  # Render html tag
55
52
  def pre_render
@@ -91,7 +88,7 @@ module UiBibz::Ui::Core::Forms::Choices
91
88
 
92
89
  # '', 'mini', 'small', 'normal', 'large'
93
90
  def size
94
- add_html_data('size', matching_size[options[:size]]) unless options[:size].nil?
91
+ add_html_data('size', value: matching_size[options[:size]]) unless options[:size].nil?
95
92
  end
96
93
 
97
94
  def matching_size
@@ -100,7 +97,7 @@ module UiBibz::Ui::Core::Forms::Choices
100
97
 
101
98
  # true, false => default : true
102
99
  def animate
103
- add_html_data('animate', options.delete(:animate)) unless options[:animate].nil?
100
+ add_html_data('animate', value: options.delete(:animate)) unless options[:animate].nil?
104
101
  end
105
102
 
106
103
  # active, disabled => default : active
@@ -110,27 +107,27 @@ module UiBibz::Ui::Core::Forms::Choices
110
107
 
111
108
  # 'primary', 'info', 'success', 'warning', 'danger', 'default' => default : default
112
109
  def left_color
113
- add_html_data('on_color', options[:left_color]) unless options[:left_color].nil?
110
+ add_html_data('on_color', value: options[:left_color]) unless options[:left_color].nil?
114
111
  end
115
112
 
116
113
  # 'primary', 'info', 'success', 'warning', 'danger', 'default' => default : default
117
114
  def right_color
118
- add_html_data('off_color', options[:right_color]) unless options[:right_color].nil?
115
+ add_html_data('off_color', value: options[:right_color]) unless options[:right_color].nil?
119
116
  end
120
117
 
121
118
  # String => default : "ON"
122
119
  def left_text
123
- add_html_data('on_text', options[:left_text]) unless options[:left_text].nil?
120
+ add_html_data('on_text', value: options[:left_text]) unless options[:left_text].nil?
124
121
  end
125
122
 
126
123
  # String => default : "OFF"
127
124
  def right_text
128
- add_html_data('off_text', options[:right_text]) unless options[:right_text].nil?
125
+ add_html_data('off_text', value: options[:right_text]) unless options[:right_text].nil?
129
126
  end
130
127
 
131
128
  # String => default : '&nbsp;'
132
129
  def middle_text
133
- add_html_data('label_text', options[:middle_text]) unless options[:middle_text].nil?
130
+ add_html_data('label_text', value: options[:middle_text]) unless options[:middle_text].nil?
134
131
  end
135
132
 
136
133
  def inline
@@ -20,7 +20,8 @@ module UiBibz::Ui::Core::Forms::Choices
20
20
  # * +inline+ - Boolean
21
21
  # * +checked+ - Boolean
22
22
  # * +action+ - String Stimulus Option
23
- # * +label+ - String
23
+ # * +label+ - [String/Boolean]
24
+ # * +boolean+ - Boolean Add an hidden field for rails
24
25
  #
25
26
  # ==== Signatures
26
27
  #
@@ -48,9 +49,6 @@ module UiBibz::Ui::Core::Forms::Choices
48
49
  #
49
50
  class CheckboxField < UiBibz::Ui::Core::Component
50
51
  # See UiBibz::Ui::Core::Component.initialize
51
- def initialize(content = nil, options = nil, html_options = nil, &block)
52
- super
53
- end
54
52
 
55
53
  # Render html tag
56
54
  def pre_render
@@ -61,9 +59,9 @@ module UiBibz::Ui::Core::Forms::Choices
61
59
 
62
60
  def checkbox_field_html_tag
63
61
  content_tag(:div, html_options.except(:id, 'data-action')) do
64
- concat hidden_field_tag content, '0', id: "#{content}-hidden"
62
+ concat hidden_field_tag content, '0', id: "#{content}-hidden" if options[:boolean]
65
63
  concat check_box_tag content, options[:value] || '1', options[:checked] || html_options[:checked], checkbox_html_options
66
- concat label_tag label_name, label_content, class: 'custom-control-label'
64
+ concat label_tag(label_name, label_content, class: 'form-check-label') if options[:label] != false
67
65
  end
68
66
  end
69
67
 
@@ -72,8 +70,10 @@ module UiBibz::Ui::Core::Forms::Choices
72
70
  disabled: disabled?,
73
71
  indeterminate: options[:indeterminate],
74
72
  "data-action": options[:action],
75
- class: 'custom-control-input'
76
- }
73
+ class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
74
+ }.tap do |html|
75
+ html[:id] = html_options[:id] if html_options[:id]
76
+ end
77
77
  end
78
78
 
79
79
  def label_name
@@ -92,11 +92,21 @@ module UiBibz::Ui::Core::Forms::Choices
92
92
  end
93
93
 
94
94
  def component_html_classes
95
- super << ['custom-control', 'custom-checkbox', inline]
95
+ super << component_wrapper_html_classes
96
+ end
97
+
98
+ def input_status
99
+ "form-check-input-#{options[:status]}" if options[:status]
96
100
  end
97
101
 
102
+ def status; end
103
+
98
104
  def inline
99
- 'custom-control-inline' if options[:inline]
105
+ 'form-check-inline' if options[:inline]
106
+ end
107
+
108
+ def component_wrapper_html_classes
109
+ ['form-check', inline]
100
110
  end
101
111
  end
102
112
  end
@@ -47,9 +47,17 @@ module UiBibz::Ui::Core::Forms::Choices
47
47
  # end
48
48
  #
49
49
  class ChoiceGroup < UiBibz::Ui::Core::Forms::Buttons::ButtonGroup
50
+ include UiBibz::Ui::Concerns::HtmlConcern
51
+ attr_reader :errors, :required_fields, :items
52
+
50
53
  # See UiBibz::Ui::Core::Forms::Choices::Button.initialize
54
+ #
51
55
  def initialize(content = nil, options = nil, html_options = nil, &block)
52
56
  super
57
+ @items = []
58
+ @errors = []
59
+ @required_fields = []
60
+ @radio_name = @options[:name] || generate_id('choice')
53
61
  end
54
62
 
55
63
  def choice(content = nil, opts = nil, html_options = nil, &block)
@@ -59,7 +67,19 @@ module UiBibz::Ui::Core::Forms::Choices
59
67
  content = @options.merge(content || {})
60
68
  end
61
69
 
62
- @items << Choice.new(content, opts, html_options, &block).render
70
+ opts = opts.merge(name: @radio_name) if opts[:type] == :radio
71
+
72
+ @items << Choice.new(content, opts, html_options, &block)
73
+ end
74
+
75
+ def input(attribute_name, options = {}, &block)
76
+ new_options = options.merge(old_label: options[:label], label: false, wrapper: false, error: false)
77
+ new_options = new_options.merge(name: @radio_name, type: :radio) if @options[:type] == :radio
78
+
79
+ @items << @options[:form].input(attribute_name, new_options, &block)
80
+ obj = @options[:form].object
81
+ @errors << obj.errors[attribute_name] unless obj.errors[attribute_name].empty?
82
+ @required_fields << (obj._validators[attribute_name].try(:first).class.to_s == 'ActiveRecord::Validations::PresenceValidator')
63
83
  end
64
84
 
65
85
  private
@@ -74,7 +94,7 @@ module UiBibz::Ui::Core::Forms::Choices
74
94
 
75
95
  def component_html_data
76
96
  super
77
- add_html_data 'toggle', 'buttons'
97
+ add_html_data 'toggle', value: 'buttons'
78
98
  end
79
99
  end
80
100
  end
@@ -54,27 +54,39 @@ module UiBibz::Ui::Core::Forms::Choices
54
54
  #
55
55
  class Choice < UiBibz::Ui::Core::Forms::Buttons::Button
56
56
  # See UiBibz::Ui::Core::Forms::Choices::Button.initialize
57
- def initialize(content = nil, options = nil, html_options = nil, &block)
58
- super
59
- end
60
57
 
61
58
  # Render html tag
62
59
  def pre_render
63
60
  button_choice_html_tag
64
61
  end
65
62
 
63
+ def input_options
64
+ @input_options ||= { type: type, autocomplete: :off, class: 'btn-check' }
65
+ .merge(checked)
66
+ .merge(value)
67
+ .merge(name)
68
+ .merge({ id: input_id })
69
+ .merge(input_html_options)
70
+ end
71
+
66
72
  private
67
73
 
68
74
  def button_choice_html_tag
69
- content_tag :label, html_options do
75
+ capture do
70
76
  concat tag(:input, input_options)
71
- concat glyph_and_content_html(options[:text].nil? ? @content : ' ')
72
- concat badge_html unless options[:badge].nil?
77
+ concat label_tag
73
78
  end
74
79
  end
75
80
 
76
- def input_options
77
- { type: type, autocomplete: :off }.merge(checked).merge(value).merge(name).merge(id).merge(input_html_options)
81
+ def label_tag
82
+ if options[:label]
83
+ content_tag :label, options[:label], html_options.merge(for: input_id)
84
+ else
85
+ content_tag :label, html_options.merge(for: input_id) do
86
+ concat glyph_and_content_html(options[:text].nil? ? @content : ' ')
87
+ concat badge_html unless options[:badge].nil?
88
+ end
89
+ end
78
90
  end
79
91
 
80
92
  def checked
@@ -89,10 +101,6 @@ module UiBibz::Ui::Core::Forms::Choices
89
101
  @options[:name].nil? ? {} : { name: @options[:name] }
90
102
  end
91
103
 
92
- def id
93
- @options[:id].nil? ? {} : { id: @options[:id] }
94
- end
95
-
96
104
  def input_html_options
97
105
  @options[:input_html_options].nil? ? {} : @options[:input_html_options]
98
106
  end
@@ -104,5 +112,9 @@ module UiBibz::Ui::Core::Forms::Choices
104
112
  def status
105
113
  ['btn', outline, options[:status] || :secondary].compact.join('-')
106
114
  end
115
+
116
+ def input_id
117
+ @input_id ||= @options[:id] || generate_id('choice')
118
+ end
107
119
  end
108
120
  end
@@ -48,9 +48,6 @@ module UiBibz::Ui::Core::Forms::Choices
48
48
  #
49
49
  class RadioField < UiBibz::Ui::Core::Forms::Choices::CheckboxField
50
50
  # See UiBibz::Ui::Core::Component.initialize
51
- def initialize(content = nil, options = nil, html_options = nil, &block)
52
- super
53
- end
54
51
 
55
52
  # Render html tag
56
53
  def pre_render
@@ -62,7 +59,7 @@ module UiBibz::Ui::Core::Forms::Choices
62
59
  def radio_field_html_tag
63
60
  content_tag :div, html_options.except(:id) do
64
61
  concat radio_button_tag content, options[:value], options[:checked] || false, checkbox_html_options
65
- concat label_tag label_name, label_content, class: 'custom-control-label'
62
+ concat label_tag(label_name, label_content, class: 'form-check-label') if options[:label] != false
66
63
  end
67
64
  end
68
65
 
@@ -70,7 +67,7 @@ module UiBibz::Ui::Core::Forms::Choices
70
67
  {
71
68
  disabled: options[:state] == :disabled,
72
69
  "data-action": options[:action],
73
- class: 'custom-control-input'
70
+ class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
74
71
  }
75
72
  end
76
73
 
@@ -79,7 +76,21 @@ module UiBibz::Ui::Core::Forms::Choices
79
76
  end
80
77
 
81
78
  def component_html_classes
82
- ['custom-control', 'custom-radio', inline]
79
+ super << component_wrapper_html_classes
80
+ end
81
+
82
+ def status; end
83
+
84
+ def input_status
85
+ "form-check-input-#{options[:status]}" if options[:status]
86
+ end
87
+
88
+ def inline
89
+ 'form-check-inline' if options[:inline]
90
+ end
91
+
92
+ def component_wrapper_html_classes
93
+ ['form-check', inline]
83
94
  end
84
95
  end
85
96
  end
@@ -41,14 +41,14 @@ module UiBibz::Ui::Core::Forms::Choices
41
41
  # end
42
42
  #
43
43
  class SwitchField < UiBibz::Ui::Core::Forms::Choices::CheckboxField
44
- def initialize(content = nil, options = nil, html_options = nil, &block)
45
- super
46
- end
47
-
48
44
  private
49
45
 
46
+ def component_options
47
+ { boolean: true }
48
+ end
49
+
50
50
  def component_html_classes
51
- ['custom-control', 'custom-switch', inline]
51
+ ['form-check', 'form-switch', inline]
52
52
  end
53
53
  end
54
54
  end
@@ -45,9 +45,6 @@ module UiBibz::Ui::Core::Forms::Dates
45
45
  #
46
46
  class DatePickerField < 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
@@ -98,15 +95,15 @@ module UiBibz::Ui::Core::Forms::Dates
98
95
  end
99
96
 
100
97
  def date_locale
101
- add_html_data 'date_locale', I18n.locale.to_s
98
+ add_html_data 'date_locale', value: I18n.locale.to_s
102
99
  end
103
100
 
104
101
  def provide
105
- add_html_data 'provide', 'datepicker'
102
+ add_html_data 'provide', value: 'datepicker'
106
103
  end
107
104
 
108
105
  def format
109
- add_html_data 'date_format', picker_pattern
106
+ add_html_data 'date_format', value: picker_pattern
110
107
  end
111
108
 
112
109
  def picker_pattern
@@ -114,7 +111,7 @@ module UiBibz::Ui::Core::Forms::Dates
114
111
  end
115
112
 
116
113
  def today_btn
117
- add_html_data 'date_today_btn', 'linked'
114
+ add_html_data 'date_today_btn', value: 'linked'
118
115
  end
119
116
 
120
117
  def today_highlight
@@ -130,35 +127,35 @@ module UiBibz::Ui::Core::Forms::Dates
130
127
  end
131
128
 
132
129
  def dates_disabled
133
- add_html_data('dates_disabled', [options[:dates_disabled]].flatten) if options[:dates_disabled]
130
+ add_html_data('dates_disabled', value: [options[:dates_disabled]].flatten) if options[:dates_disabled]
134
131
  end
135
132
 
136
133
  def toggle_active
137
- add_html_data('date_toggle_active', true)
134
+ add_html_data('date_toggle_active')
138
135
  end
139
136
 
140
137
  def display_mode
141
- add_html_data('date_start_view', views[options[:display_mode]]) if options[:display_mode]
138
+ add_html_data('date_start_view', value: views[options[:display_mode]]) if options[:display_mode]
142
139
  end
143
140
 
144
141
  def display_mode_min
145
- add_html_data('date_min_view_mode', views[options[:display_mode_min]]) if options[:display_mode_min]
142
+ add_html_data('date_min_view_mode', value: views[options[:display_mode_min]]) if options[:display_mode_min]
146
143
  end
147
144
 
148
145
  def display_mode_max
149
- add_html_data('date_max_view_mode', views[options[:display_mode_max]]) if options[:display_mode_max]
146
+ add_html_data('date_max_view_mode', value: views[options[:display_mode_max]]) if options[:display_mode_max]
150
147
  end
151
148
 
152
149
  def days_of_week_disabled
153
- add_html_data('date_days_of_week_disabled', [options[:days_of_week_disabled]].flatten) if options[:days_of_week_disabled]
150
+ add_html_data('date_days_of_week_disabled', value: [options[:days_of_week_disabled]].flatten) if options[:days_of_week_disabled]
154
151
  end
155
152
 
156
153
  def days_of_week_highlighted
157
- add_html_data('date_days_of_week_highlighted', [options[:days_of_week_highlighted]].flatten) if options[:days_of_week_highlighted]
154
+ add_html_data('date_days_of_week_highlighted', value: [options[:days_of_week_highlighted]].flatten) if options[:days_of_week_highlighted]
158
155
  end
159
156
 
160
157
  def multiple
161
- add_html_data('date_multidate', options[:multiple]) if options[:multiple]
158
+ add_html_data('date_multidate', value: options[:multiple]) if options[:multiple]
162
159
  end
163
160
 
164
161
  # :lg, :sm or :xs
@@ -5,7 +5,6 @@ module UiBibz::Ui::Core::Forms::Dropdowns::Components
5
5
  #
6
6
  class DropdownDivider < UiBibz::Ui::Base
7
7
  # See UiBibz::Ui::Core::Component.initialize
8
- def initialize; end
9
8
 
10
9
  # Render html tag
11
10
  def render
@@ -34,9 +34,6 @@ module UiBibz::Ui::Core::Forms::Dropdowns::Components
34
34
  #
35
35
  class DropdownHeader < UiBibz::Ui::Core::Component
36
36
  # See UiBibz::Ui::Core::Component.initialize
37
- def initialize(content = nil, options = nil, html_options = nil, &block)
38
- super
39
- end
40
37
 
41
38
  # Render html tag
42
39
  def pre_render
@@ -7,7 +7,6 @@ module UiBibz::Ui::Core::Forms::Dropdowns
7
7
  # Create a dropdown
8
8
  #
9
9
  # This element is an extend of UiBibz::Ui::Core::Component.
10
- # You can use tap method to add list items.
11
10
  #
12
11
  # ==== Attributes
13
12
  #
@@ -28,6 +27,10 @@ module UiBibz::Ui::Core::Forms::Dropdowns
28
27
  # * +size+ - Integer
29
28
  # * +type+ - Symbol
30
29
  # * +html_button+ - Hash
30
+ # * +position+ - Symbol
31
+ # (+:up+, +:right+, +:down+, +:left+)
32
+ # * +alignment+ - Symbol
33
+ # (+:right)
31
34
  #
32
35
  # ==== Signatures
33
36
  #
@@ -50,7 +53,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
50
53
  #
51
54
  # ==== Helper
52
55
  #
53
- # dropdown(name, options = { tap: true }, html_options = {}) do |d|
56
+ # dropdown(name, options = {}, html_options = {}) do |d|
54
57
  # d.link(content, options = {}, html_options = {})
55
58
  # d.link(options = {}, html_options = {}) do
56
59
  # content
@@ -63,6 +66,8 @@ module UiBibz::Ui::Core::Forms::Dropdowns
63
66
  # end
64
67
  #
65
68
  class Dropdown < UiBibz::Ui::Core::Component
69
+ include UiBibz::Ui::Concerns::HtmlConcern
70
+
66
71
  def initialize(content, options = nil, html_options = nil, &block)
67
72
  super
68
73
  @items = []
@@ -95,16 +100,6 @@ module UiBibz::Ui::Core::Forms::Dropdowns
95
100
  @items << UiBibz::Ui::Core::Forms::Dropdowns::Components::DropdownLink.new(content, options, html_options, &block).render
96
101
  end
97
102
 
98
- # Add html component
99
- def html(content = nil, &block)
100
- if !block.nil?
101
- context = eval('self', block.binding) # rubocop:disable Style/EvalWithLocation
102
- @items << context.capture(&block)
103
- else
104
- @items << content
105
- end
106
- end
107
-
108
103
  def id
109
104
  @id ||= html_options[:id] || generate_id('dropdown')
110
105
  end
@@ -112,7 +107,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
112
107
  protected
113
108
 
114
109
  def component_html_classes
115
- [type, open, inline, without_caret, keep_open]
110
+ [position, open, inline, without_caret, keep_open]
116
111
  end
117
112
 
118
113
  def button_content
@@ -122,26 +117,26 @@ module UiBibz::Ui::Core::Forms::Dropdowns
122
117
  def button_html
123
118
  html_button = options[:html_button] || {}
124
119
  if options[:tag] == :a
125
- content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'), href: '#', role: 'button', 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, 'id' => id }.merge(html_button)
120
+ content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'), role: 'button', 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, 'id' => id }.merge(html_button)
126
121
  else
127
122
  content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'), type: 'button', 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, 'id' => id }.merge(html_button)
128
123
  end
129
124
  end
130
125
 
131
126
  def ul_html
132
- content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', position, open), 'arial-labelledby' => id
127
+ content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', theme, alignment, open), 'arial-labelledby' => id
133
128
  end
134
129
 
135
130
  def dropdown_tag
136
131
  options[:tag] || :button
137
132
  end
138
133
 
139
- def position
140
- "dropdown-menu-#{@options[:position]}" unless @options[:position].nil?
134
+ def alignment
135
+ "dropdown-menu-#{@options[:alignment]}" unless @options[:alignment].nil?
141
136
  end
142
137
 
143
- def type
144
- @options[:type] || 'dropdown'
138
+ def position
139
+ "drop#{@options[:position] || 'down'}"
145
140
  end
146
141
 
147
142
  def open
@@ -153,7 +148,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
153
148
  end
154
149
 
155
150
  def inline
156
- 'btn-group' if @options[:inline]
151
+ 'btn-group' if @options[:inline] || @options[:alignment]
157
152
  end
158
153
 
159
154
  def without_caret
@@ -172,5 +167,9 @@ module UiBibz::Ui::Core::Forms::Dropdowns
172
167
  def size
173
168
  "btn-#{@options[:size]}" if @options[:size]
174
169
  end
170
+
171
+ def theme
172
+ 'dropdown-menu-dark' if @options[:theme]
173
+ end
175
174
  end
176
175
  end