ui_bibz 3.0.13 → 4.0.0.beta3

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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -3
  3. data/.github/workflows/linter.yml +13 -12
  4. data/.overcommit.yml +6 -0
  5. data/.rubocop.yml +6 -0
  6. data/.ruby-version +1 -1
  7. data/Gemfile +19 -12
  8. data/Gemfile.lock +178 -138
  9. data/app/assets/config/ui_bibz.js +12 -0
  10. data/app/assets/javascripts/forms/formula.js +82 -0
  11. data/app/assets/javascripts/forms/input-connected.js +132 -0
  12. data/app/assets/javascripts/forms/jquery.multi-select-extend.js +52 -0
  13. data/app/assets/javascripts/forms.js +160 -0
  14. data/app/assets/javascripts/interfaces.js +56 -0
  15. data/app/assets/javascripts/tables.js +49 -0
  16. data/app/assets/javascripts/ui_bibz_js.js +37 -0
  17. data/app/assets/stylesheets/navigations/_nav.sass +2 -0
  18. data/app/assets/stylesheets/navigations/_navbar.sass +12 -0
  19. data/app/assets/stylesheets/navigations/_progress_bar.sass +2 -0
  20. data/app/assets/stylesheets/navigations/_toolbar.sass +3 -0
  21. data/app/assets/stylesheets/sass/_boxes.sass +1 -0
  22. data/app/assets/stylesheets/sass/_containers.sass +2 -0
  23. data/app/assets/stylesheets/sass/_fixes.sass +2 -0
  24. data/app/assets/stylesheets/sass/_forms.sass +8 -0
  25. data/app/assets/stylesheets/sass/_navigations.sass +4 -0
  26. data/app/assets/stylesheets/sass/_notifications.sass +4 -0
  27. data/app/assets/stylesheets/sass/_tables.sass +2 -0
  28. data/app/assets/stylesheets/sass/_variables_mixins_functions.sass +3 -0
  29. data/app/assets/stylesheets/sass/boxes/_card.sass +4 -0
  30. data/app/assets/stylesheets/sass/containers/_panel.scss +330 -0
  31. data/app/assets/stylesheets/sass/forms/_bootstrap_select.sass +5 -0
  32. data/app/assets/stylesheets/sass/forms/_button.sass +3 -0
  33. data/app/assets/stylesheets/sass/forms/_date_picker.sass +3 -0
  34. data/app/assets/stylesheets/sass/forms/_form_check.sass +10 -0
  35. data/app/assets/stylesheets/sass/forms/_formula_field.sass +17 -0
  36. data/app/assets/stylesheets/sass/forms/_multiselect.sass +44 -0
  37. data/app/assets/stylesheets/sass/forms/_range.sass +44 -0
  38. data/app/assets/stylesheets/sass/forms/_slider.sass +136 -0
  39. data/app/assets/stylesheets/sass/forms/_surround_field.sass +25 -0
  40. data/app/assets/stylesheets/sass/notifications/_badge.sass +5 -0
  41. data/app/assets/stylesheets/sass/notifications/_glyph.sass +3 -0
  42. data/app/assets/stylesheets/sass/notifications/_star.sass +2 -0
  43. data/app/assets/stylesheets/sass/notifications/_toast.sass +3 -0
  44. data/app/assets/stylesheets/sass/tables/_table.sass +39 -0
  45. data/app/assets/stylesheets/sass/tables/_table_card.sass +39 -0
  46. data/app/assets/stylesheets/ui_bibz.sass +26 -0
  47. data/bin/test +3 -5
  48. data/config/importmap.rb +19 -0
  49. data/config/initializers/assets.rb +5 -0
  50. data/config/initializers/will_paginate.rb +1 -3
  51. data/lib/ui_bibz/builders/data_html_options_builder.rb +118 -0
  52. data/lib/ui_bibz/builders/html_classes_builder.rb +89 -0
  53. data/lib/ui_bibz/builders/html_options_builder.rb +22 -0
  54. data/lib/ui_bibz/factory_methods/component_initialize_factory_method.rb +33 -0
  55. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +12 -12
  56. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +50 -50
  57. data/lib/ui_bibz/helpers/ui/core/icons_helper.rb +6 -6
  58. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +2 -2
  59. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +2 -2
  60. data/lib/ui_bibz/helpers/ui/core/navigations_helper.rb +12 -12
  61. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +4 -4
  62. data/lib/ui_bibz/helpers/ui/core/windows_helper.rb +10 -2
  63. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -2
  64. data/lib/ui_bibz/helpers/utils_helper.rb +2 -2
  65. data/lib/ui_bibz/infos.rb +3 -3
  66. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +12 -12
  67. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +1 -1
  68. data/lib/ui_bibz/rails/engine.rb +21 -4
  69. data/lib/ui_bibz/strategies/component_initialize_abstract_strategy.rb +27 -0
  70. data/lib/ui_bibz/strategies/component_initialize_block_strategy.rb +31 -0
  71. data/lib/ui_bibz/strategies/component_initialize_hash_strategy.rb +18 -0
  72. data/lib/ui_bibz/strategies/component_initialize_standard_strategy.rb +18 -0
  73. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +4 -4
  74. data/lib/ui_bibz/ui/concerns/notification_concern.rb +1 -1
  75. data/lib/ui_bibz/ui/core/boxes/card.rb +1 -1
  76. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +4 -4
  77. data/lib/ui_bibz/ui/core/boxes/card_column.rb +1 -1
  78. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +1 -1
  79. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +0 -3
  80. data/lib/ui_bibz/ui/core/boxes/card_group.rb +1 -1
  81. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +9 -9
  82. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +2 -2
  83. data/lib/ui_bibz/ui/core/boxes/components/card_list_group.rb +1 -1
  84. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +1 -1
  85. data/lib/ui_bibz/ui/core/component.rb +13 -62
  86. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +3 -1
  87. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +11 -11
  88. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -7
  89. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +2 -2
  90. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +5 -6
  91. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +1 -1
  92. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +15 -15
  93. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_link.rb +1 -1
  94. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +5 -5
  95. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +1 -1
  96. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +10 -10
  97. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +2 -2
  98. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +32 -32
  99. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +7 -8
  100. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -1
  101. data/lib/ui_bibz/ui/core/icons/glyph.rb +4 -3
  102. data/lib/ui_bibz/ui/core/layouts/row.rb +2 -2
  103. data/lib/ui_bibz/ui/core/lists/components/list.rb +4 -4
  104. data/lib/ui_bibz/ui/core/lists/list_group.rb +1 -1
  105. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +6 -4
  106. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -2
  107. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +6 -5
  108. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +2 -2
  109. data/lib/ui_bibz/ui/core/navigations/nav.rb +10 -6
  110. data/lib/ui_bibz/ui/core/navigations/navbar.rb +21 -19
  111. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -3
  112. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +5 -5
  113. data/lib/ui_bibz/ui/core/notifications/alert.rb +4 -5
  114. data/lib/ui_bibz/ui/core/notifications/badge.rb +6 -2
  115. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -1
  116. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +3 -3
  117. data/lib/ui_bibz/ui/core/notifications/toast.rb +8 -9
  118. data/lib/ui_bibz/ui/core/windows/components/offcanvas_body.rb +47 -0
  119. data/lib/ui_bibz/ui/core/windows/components/offcanvas_header.rb +54 -0
  120. data/lib/ui_bibz/ui/core/windows/modal.rb +9 -9
  121. data/lib/ui_bibz/ui/core/windows/offcanvas.rb +84 -0
  122. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +4 -20
  123. data/lib/ui_bibz/ui/extensions/core/component/klass_extension.rb +11 -19
  124. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +1 -1
  125. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +3 -3
  126. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +3 -3
  127. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +3 -3
  128. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +4 -4
  129. data/lib/ui_bibz/ui/ux/containers/panel.rb +13 -13
  130. data/lib/ui_bibz/ui/ux/tables/components/actions.rb +4 -4
  131. data/lib/ui_bibz/ui/ux/tables/components/column.rb +1 -1
  132. data/lib/ui_bibz/ui/ux/tables/components/columns.rb +2 -2
  133. data/lib/ui_bibz/ui/ux/tables/extensions/sortable.rb +1 -1
  134. data/lib/ui_bibz/ui/ux/tables/table.rb +5 -5
  135. data/lib/ui_bibz/ui/ux/tables/table_card.rb +6 -6
  136. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +1 -1
  137. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +3 -3
  138. data/lib/ui_bibz/utils/screwdriver.rb +1 -1
  139. data/lib/ui_bibz/view_objects/glyph_component_view_object.rb +38 -0
  140. data/lib/ui_bibz.rb +25 -0
  141. data/test/builders/data_html_classes_builder_test.rb +37 -0
  142. data/test/builders/html_classes_builder_test.rb +76 -0
  143. data/test/dummy/Rakefile +1 -1
  144. data/test/dummy/app/assets/stylesheets/application.css +1 -15
  145. data/test/dummy/app/channels/application_cable/channel.rb +6 -0
  146. data/test/dummy/app/channels/application_cable/connection.rb +6 -0
  147. data/test/dummy/app/jobs/application_job.rb +9 -0
  148. data/test/dummy/app/mailers/application_mailer.rb +6 -0
  149. data/test/dummy/app/views/layouts/application.html.erb +10 -12
  150. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  151. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  152. data/test/dummy/bin/rails +3 -3
  153. data/test/dummy/bin/rake +2 -2
  154. data/test/dummy/bin/setup +12 -12
  155. data/test/dummy/config/application.rb +13 -17
  156. data/test/dummy/config/boot.rb +3 -3
  157. data/test/dummy/config/database.yml +2 -2
  158. data/test/dummy/config/environment.rb +1 -1
  159. data/test/dummy/config/environments/development.rb +21 -16
  160. data/test/dummy/config/environments/production.rb +16 -41
  161. data/test/dummy/config/environments/test.rb +19 -8
  162. data/test/dummy/config/importmap.rb +11 -0
  163. data/test/dummy/config/initializers/content_security_policy.rb +21 -24
  164. data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -2
  165. data/test/dummy/config/initializers/inflections.rb +4 -4
  166. data/test/dummy/config/initializers/permissions_policy.rb +12 -0
  167. data/test/dummy/config/locales/en.yml +13 -3
  168. data/test/dummy/config/puma.rb +7 -2
  169. data/test/dummy/config/storage.yml +5 -5
  170. data/test/dummy/config.ru +2 -1
  171. data/test/simple_form_test.rb +24 -24
  172. data/test/ui/core/boxes/card_test.rb +2 -1
  173. data/test/ui/core/component_test.rb +2 -2
  174. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  175. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  176. data/test/ui/core/forms/buttons/button_refresh_test.rb +1 -1
  177. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  178. data/test/ui/core/forms/choices/box_switch_field_test.rb +10 -10
  179. data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
  180. data/test/ui/core/forms/choices/choice_group_test.rb +1 -1
  181. data/test/ui/core/forms/dropdowns/dropdown_test.rb +1 -1
  182. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  183. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +2 -2
  184. data/test/ui/core/forms/selects/select_field_test.rb +1 -1
  185. data/test/ui/core/forms/surrounds/surround_field_test.rb +4 -4
  186. data/test/ui/core/forms/texts/auto_complete_field_test.rb +2 -2
  187. data/test/ui/core/icons/glyph_test.rb +8 -4
  188. data/test/ui/core/icons/star_test.rb +12 -6
  189. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  190. data/test/ui/core/navigations/link_test.rb +1 -1
  191. data/test/ui/core/navigations/nav_test.rb +11 -0
  192. data/test/ui/core/notifications/alert_test.rb +1 -1
  193. data/test/ui/core/notifications/badge_test.rb +3 -3
  194. data/test/ui/core/notifications/popover_test.rb +4 -4
  195. data/test/ui/core/notifications/spinner_test.rb +1 -1
  196. data/test/ui/core/notifications/toast_test.rb +1 -1
  197. data/test/ui/core/notifications/tooltip_test.rb +4 -4
  198. data/test/ui/core/windows/offcanvas_test.rb +27 -0
  199. data/test/ui/ux/containers/panel_test.rb +1 -1
  200. data/test/ui/ux/tables/table_test.rb +3 -3
  201. data/test/view_objects/glyph_component_view_object_test.rb +17 -0
  202. data/ui_bibz.gemspec +6 -20
  203. data/vendor/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
  204. data/vendor/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
  205. data/vendor/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
  206. data/vendor/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
  207. data/vendor/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
  208. data/vendor/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
  209. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
  210. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
  211. data/vendor/assets/javascripts/bootstrap-markdown.js +1 -1555
  212. data/vendor/assets/javascripts/bootstrap-multiselect.min.js +40 -1176
  213. data/vendor/assets/javascripts/bootstrap-switch.min.js +9 -21
  214. data/vendor/assets/javascripts/bs-custom-file-input.min.js +0 -1
  215. data/vendor/assets/javascripts/fontawesome/all.js +5977 -0
  216. data/vendor/assets/javascripts/fontawesome/all.min.js +6 -0
  217. data/vendor/assets/javascripts/fontawesome/brands.js +749 -0
  218. data/vendor/assets/javascripts/fontawesome/brands.min.js +6 -0
  219. data/vendor/assets/javascripts/fontawesome/conflict-detection.js +1138 -0
  220. data/vendor/assets/javascripts/fontawesome/conflict-detection.min.js +6 -0
  221. data/vendor/assets/javascripts/fontawesome/fontawesome.js +3126 -0
  222. data/vendor/assets/javascripts/fontawesome/fontawesome.min.js +6 -0
  223. data/vendor/assets/javascripts/fontawesome/regular.js +445 -0
  224. data/vendor/assets/javascripts/fontawesome/regular.min.js +6 -0
  225. data/vendor/assets/javascripts/fontawesome/solid.js +1672 -0
  226. data/vendor/assets/javascripts/fontawesome/solid.min.js +6 -0
  227. data/vendor/assets/javascripts/fontawesome/v4-shims.js +225 -0
  228. data/vendor/assets/javascripts/fontawesome/v4-shims.min.js +6 -0
  229. data/vendor/assets/javascripts/fuzzysort.js +562 -0
  230. data/vendor/assets/javascripts/jquery-3.7.0.min.js +2 -0
  231. data/vendor/assets/javascripts/jquery.multi-select.min.js +725 -1
  232. data/vendor/assets/stylesheets/bootstrap-multiselect.sass +115 -0
  233. data/vendor/assets/stylesheets/bootstrap-switch.scss +211 -0
  234. data/vendor/assets/stylesheets/fontawesome/_animated.scss +142 -9
  235. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +13 -13
  236. data/vendor/assets/stylesheets/fontawesome/_core.scss +28 -6
  237. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +2 -1
  238. data/vendor/assets/stylesheets/fontawesome/_functions.scss +57 -0
  239. data/vendor/assets/stylesheets/fontawesome/_icons.scss +7 -1438
  240. data/vendor/assets/stylesheets/fontawesome/_list.scss +4 -4
  241. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +53 -34
  242. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +25 -18
  243. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +12 -3
  244. data/vendor/assets/stylesheets/fontawesome/_shims.scss +640 -664
  245. data/vendor/assets/stylesheets/fontawesome/_sizing.scss +16 -0
  246. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +5 -4
  247. data/vendor/assets/stylesheets/fontawesome/_variables.scss +4896 -1393
  248. data/vendor/assets/stylesheets/fontawesome/brands.scss +17 -10
  249. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +7 -2
  250. data/vendor/assets/stylesheets/fontawesome/regular.scss +13 -10
  251. data/vendor/assets/stylesheets/fontawesome/solid.scss +13 -11
  252. data/vendor/assets/stylesheets/fontawesome/v4-shims.scss +6 -1
  253. data/vendor/assets/stylesheets/multi-select.css +92 -0
  254. metadata +120 -348
  255. data/.gitlab-ci.yml +0 -17
  256. data/.travis.yml +0 -24
  257. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +0 -70
  258. data/structure.md +0 -68
  259. data/test/dummy/README.rdoc +0 -28
  260. data/test/dummy/app/assets/javascripts/application.js +0 -13
  261. data/test/dummy/app/javascripts/packs/index.js +0 -3
  262. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -9
  263. data/test/dummy/config/initializers/assets.rb +0 -14
  264. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -8
  265. data/test/dummy/config/initializers/cookies_serializer.rb +0 -7
  266. data/test/dummy/config/initializers/mime_types.rb +0 -5
  267. data/test/dummy/config/initializers/session_store.rb +0 -5
  268. data/test/dummy/config/initializers/ui_bibz.rb +0 -5
  269. data/test/dummy/config/initializers/wrap_parameters.rb +0 -16
  270. data/test/dummy/config/secrets.yml +0 -22
  271. data/test/dummy/config/spring.rb +0 -8
  272. data/test/dummy/test/models/user_test.rb +0 -9
  273. data/vendor/assets/fonts/fa-brands-400.eot +0 -0
  274. data/vendor/assets/fonts/fa-brands-400.svg +0 -3570
  275. data/vendor/assets/fonts/fa-brands-400.ttf +0 -0
  276. data/vendor/assets/fonts/fa-brands-400.woff +0 -0
  277. data/vendor/assets/fonts/fa-brands-400.woff2 +0 -0
  278. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  279. data/vendor/assets/fonts/fa-regular-400.svg +0 -803
  280. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  281. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  282. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  283. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  284. data/vendor/assets/fonts/fa-solid-900.svg +0 -4938
  285. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  286. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  287. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  288. data/vendor/assets/javascripts/all.js +0 -4441
  289. data/vendor/assets/javascripts/all.min.js +0 -5
  290. data/vendor/assets/stylesheets/all.min.css +0 -5
  291. data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
  292. data/vendor/assets/stylesheets/svg-with-js.css +0 -5
  293. /data/{test/dummy/app/mailers/.keep → app/assets/stylesheets/sass/forms/_dropdown.sass} +0 -0
  294. /data/{test/dummy/app/views/users/index.html.erb → app/assets/stylesheets/sass/forms/_input_refresh_button.sass} +0 -0
@@ -93,42 +93,42 @@ module UiBibz::Ui::Core::Forms::Selects
93
93
  end
94
94
 
95
95
  def clickable_opt_group
96
- add_html_data('enable_clickable_opt_groups') if options[:clickable_opt_group]
96
+ @data_html_options_builder.add('enable_clickable_opt_groups', value: options[:clickable_opt_group])
97
97
  end
98
98
 
99
99
  def collapsible_opt_group
100
- add_html_data('enable_collapsible_opt_groups') if options[:collapsible_opt_group]
100
+ @data_html_options_builder.add('enable_collapsible_opt_groups', value: options[:collapsible_opt_group])
101
101
  end
102
102
 
103
103
  def searchable
104
- add_html_data('enable_filtering') if options[:searchable]
105
- add_html_data('fuzzy_search') if options[:searchable] == :fuzzy
104
+ @data_html_options_builder.add('enable_filtering') if options[:searchable]
105
+ @data_html_options_builder.add('fuzzy_search') if options[:searchable] == :fuzzy
106
106
  end
107
107
 
108
108
  def n_selected_text
109
- add_html_data('n_selected_text', value: options[:n_selected_text]) if options[:n_selected_text]
109
+ @data_html_options_builder.add('n_selected_text', value: options[:n_selected_text])
110
110
  end
111
111
 
112
112
  def number_displayed
113
- add_html_data('number_displayed') if options[:number_displayed]
113
+ @data_html_options_builder.add('number_displayed', value: options[:number_displayed])
114
114
  end
115
115
 
116
116
  def select_all_options
117
- add_html_data('include_select_all_option') if options[:select_all_options]
117
+ @data_html_options_builder.add('include_select_all_option', value: options[:select_all_options])
118
118
  end
119
119
 
120
120
  def non_selected_text
121
- add_html_data('non_selected_text', value: options[:non_selected_text]) if options[:non_selected_text]
121
+ @data_html_options_builder.add('non_selected_text', value: options[:non_selected_text])
122
122
  end
123
123
 
124
124
  def dropdown_menu_classes
125
125
  classes = join_classes(theme, alignment, open)
126
- add_html_data('dropdown_menu_classes', value: classes.nil? ? nil : classes.join(' '))
126
+ @data_html_options_builder.add('dropdown_menu_classes', value: classes&.join(' '))
127
127
  end
128
128
 
129
129
  def dropdown_classes
130
130
  classes = join_classes(position, open)
131
- add_html_data('dropdown_classes', value: classes.nil? ? nil : classes.join(' '))
131
+ @data_html_options_builder.add('dropdown_classes', value: classes&.join(' '))
132
132
  end
133
133
 
134
134
  def position
@@ -71,11 +71,11 @@ module UiBibz::Ui::Core::Forms::Selects
71
71
  end
72
72
 
73
73
  def searchable
74
- add_html_data('searchable') if options[:searchable]
74
+ @data_html_options_builder.add('searchable', value: options[:searchable])
75
75
  end
76
76
 
77
77
  def selectable_opt_group
78
- add_html_data('selectable_optgroup') if options[:selectable_opt_group]
78
+ @data_html_options_builder.add('selectable_optgroup', value: options[:selectable_opt_group])
79
79
  end
80
80
 
81
81
  def status
@@ -52,7 +52,7 @@ module UiBibz::Ui::Core::Forms::Surrounds
52
52
  attr_reader :errors, :required_fields
53
53
 
54
54
  # See UiBibz::Ui::Core::Component.initialize
55
- def initialize(content = nil, options = nil, html_options = nil, &block)
55
+ def initialize(...)
56
56
  super
57
57
  @items = []
58
58
  @errors = []
@@ -64,68 +64,68 @@ module UiBibz::Ui::Core::Forms::Surrounds
64
64
  content_tag :div, @items.join.html_safe, html_options
65
65
  end
66
66
 
67
- def dropdown(content, options = nil, html_options = nil, &block)
68
- @items << SurroundDropdown.new(content, options, html_options).tap(&block).render
67
+ def dropdown(content, options = nil, html_options = nil, &)
68
+ @items << SurroundDropdown.new(content, options, html_options).tap(&).render
69
69
  end
70
70
 
71
- def input(attribute_name, options = {}, &block)
72
- @items << @options[:form].input(attribute_name, options.merge({ label: false, wrapper: false, error: false }), &block)
71
+ def input(attribute_name, options = {}, &)
72
+ @items << @options[:form].input(attribute_name, options.merge({ label: false, wrapper: false, error: false }), &)
73
73
  obj = @options[:form].object
74
74
  @errors << obj.errors[attribute_name] unless obj.errors[attribute_name].empty?
75
- @required_fields << (obj._validators[attribute_name].try(:first).class.to_s == 'ActiveRecord::Validations::PresenceValidator')
75
+ @required_fields << (obj._validators[attribute_name].try(:first).instance_of?(::ActiveRecord::Validations::PresenceValidator))
76
76
  end
77
77
 
78
- def glyph(content = nil, options = {}, html_options = nil, &block)
79
- @items << SurroundAddon.new(UiBibz::Ui::Core::Icons::Glyph.new(content, options, html_options, &block).render).render
78
+ def glyph(content = nil, options = {}, html_options = nil, &)
79
+ @items << SurroundAddon.new(UiBibz::Ui::Core::Icons::Glyph.new(content, options, html_options, &).render).render
80
80
  end
81
81
 
82
- def addon(content = nil, options = {}, html_options = nil, &block)
83
- @items << SurroundAddon.new(content, options, html_options, &block).render
82
+ def addon(content = nil, options = {}, html_options = nil, &)
83
+ @items << SurroundAddon.new(content, options, html_options, &).render
84
84
  end
85
85
 
86
- def button(content = nil, options = nil, html_options = nil, &block)
87
- @items << SurroundButton.new(content, options, html_options, &block).render
86
+ def button(content = nil, options = nil, html_options = nil, &)
87
+ @items << SurroundButton.new(content, options, html_options, &).render
88
88
  end
89
89
 
90
- def button_group(content = nil, options = nil, html_options = nil, &block)
91
- @items << SurroundButtonGroup.new(content, options, html_options).tap(&block).render
90
+ def button_group(content = nil, options = nil, html_options = nil, &)
91
+ @items << SurroundButtonGroup.new(content, options, html_options).tap(&).render
92
92
  end
93
93
 
94
- def button_link(content = nil, options = nil, html_options = nil, &block)
95
- @items << SurroundButtonLink.new(content, options, html_options, &block).render
94
+ def button_link(content = nil, options = nil, html_options = nil, &)
95
+ @items << SurroundButtonLink.new(content, options, html_options, &).render
96
96
  end
97
97
 
98
- def button_refresh(content = nil, options = nil, html_options = nil, &block)
99
- @items << SurroundButtonRefresh.new(content, options, html_options, &block).render
98
+ def button_refresh(content = nil, options = nil, html_options = nil, &)
99
+ @items << SurroundButtonRefresh.new(content, options, html_options, &).render
100
100
  end
101
101
 
102
- def checkbox_field(content = nil, options = nil, html_options = nil, &block)
103
- @items << SurroundCheckboxField.new(content, options, html_options, &block).render
102
+ def checkbox_field(content = nil, options = nil, html_options = nil, &)
103
+ @items << SurroundCheckboxField.new(content, options, html_options, &).render
104
104
  end
105
105
 
106
- def radio_field(content = nil, options = nil, html_options = nil, &block)
107
- @items << SurroundRadioField.new(content, options, html_options, &block).render
106
+ def radio_field(content = nil, options = nil, html_options = nil, &)
107
+ @items << SurroundRadioField.new(content, options, html_options, &).render
108
108
  end
109
109
 
110
- def text_field(content = nil, options = nil, html_options = nil, &block)
111
- @items << UiBibz::Ui::Core::Forms::Texts::TextField.new(content, options, html_options, &block).render
110
+ def text_field(content = nil, options = nil, html_options = nil, &)
111
+ @items << UiBibz::Ui::Core::Forms::Texts::TextField.new(content, options, html_options, &).render
112
112
  end
113
113
 
114
- def date_picker_field(content = nil, options = nil, html_options = nil, &block)
115
- @items << UiBibz::Ui::Core::Forms::Dates::DatePickerField.new(content, options, html_options, &block).render
114
+ def date_picker_field(content = nil, options = nil, html_options = nil, &)
115
+ @items << UiBibz::Ui::Core::Forms::Dates::DatePickerField.new(content, options, html_options, &).render
116
116
  end
117
117
 
118
- def dropdown_select_field(content = nil, options = nil, html_options = nil, &block)
118
+ def dropdown_select_field(content = nil, options = nil, html_options = nil, &)
119
119
  html_options = (html_options || {}).merge('data-wrapper-classes': 'input-group-btn')
120
- @items << UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new(content, options, html_options, &block).render
120
+ @items << UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new(content, options, html_options, &).render
121
121
  end
122
122
 
123
- def select_field(content = nil, options = nil, html_options = nil, &block)
124
- @items << UiBibz::Ui::Core::Forms::Selects::SelectField.new(content, options, html_options, &block).render
123
+ def select_field(content = nil, options = nil, html_options = nil, &)
124
+ @items << UiBibz::Ui::Core::Forms::Selects::SelectField.new(content, options, html_options, &).render
125
125
  end
126
126
 
127
- def auto_complete_field(content = nil, options = nil, html_options = nil, &block)
128
- @items << UiBibz::Ui::Core::Forms::Texts::AutoCompleteField.new(content, options, html_options, &block).render
127
+ def auto_complete_field(content = nil, options = nil, html_options = nil, &)
128
+ @items << UiBibz::Ui::Core::Forms::Texts::AutoCompleteField.new(content, options, html_options, &).render
129
129
  end
130
130
 
131
131
  # Not correctly implemented
@@ -56,7 +56,6 @@ module UiBibz::Ui::Core::Forms::Textareas
56
56
  private
57
57
 
58
58
  def component_html_data
59
- super
60
59
  provide
61
60
  autofocus
62
61
  savable
@@ -67,31 +66,31 @@ module UiBibz::Ui::Core::Forms::Textareas
67
66
  end
68
67
 
69
68
  def provide
70
- add_html_data('provide', value: 'markdown')
69
+ @data_html_options_builder.add('provide', value: 'markdown')
71
70
  end
72
71
 
73
72
  def autofocus
74
- add_html_data('autofocus') if options[:autofocus]
73
+ @data_html_options_builder.add('autofocus', value: options[:autofocus])
75
74
  end
76
75
 
77
76
  def savable
78
- add_html_data('savable') if options[:savable]
77
+ @data_html_options_builder.add('savable', value: options[:savable])
79
78
  end
80
79
 
81
80
  def hideable
82
- add_html_data('hideable') if options[:hideable]
81
+ @data_html_options_builder.add('hideable', value: options[:hideable])
83
82
  end
84
83
 
85
84
  def icon_library
86
- add_html_data('iconlibrary', value: 'fa')
85
+ @data_html_options_builder.add('iconlibrary', value: 'fa')
87
86
  end
88
87
 
89
88
  def hidden_buttons
90
- add_html_data('hiddenButtons', value: options[:hidden_buttons]) if options[:hidden_buttons]
89
+ @data_html_options_builder.add('hiddenButtons', value: options[:hidden_buttons])
91
90
  end
92
91
 
93
92
  def disabled_buttons
94
- add_html_data('disabledButtons', value: options[:disabled_buttons]) if options[:disabled_buttons]
93
+ @data_html_options_builder.add('disabledButtons', value: options[:disabled_buttons])
95
94
  end
96
95
 
97
96
  def status
@@ -21,7 +21,7 @@ module UiBibz::Ui::Core::Icons::Components
21
21
  end
22
22
 
23
23
  def transform
24
- add_html_data 'fa_transform', value: options[:transform] if options[:transform]
24
+ @data_html_options_builder.add 'fa_transform', value: options[:transform] if options[:transform]
25
25
  end
26
26
  end
27
27
  end
@@ -67,7 +67,7 @@ module UiBibz::Ui::Core::Icons
67
67
  private
68
68
 
69
69
  def component_html_classes
70
- join_classes(classes)
70
+ UiBibz::Builders::HtmlClassesBuilder.join_classes(classes)
71
71
  end
72
72
 
73
73
  def component_html_data
@@ -124,7 +124,7 @@ module UiBibz::Ui::Core::Icons
124
124
  end
125
125
 
126
126
  def transform
127
- add_html_data 'fa_transform', value: options[:transform] if options[:transform]
127
+ @data_html_options_builder.add 'fa_transform', value: options[:transform]
128
128
  end
129
129
 
130
130
  def content
@@ -136,7 +136,8 @@ module UiBibz::Ui::Core::Icons
136
136
  end
137
137
 
138
138
  def match_style
139
- { solid: 'fas', regular: 'far', light: 'fal', brands: 'fab' }
139
+ { solid: 'fa-solid', regular: 'fa-regular', light: 'fa-light',
140
+ brands: 'fa-brands', duotone: 'fa-duotone', thin: 'fa-thin' }
140
141
  end
141
142
 
142
143
  def label
@@ -60,8 +60,8 @@ module UiBibz::Ui::Core::Layouts
60
60
  content_tag :div, @items.join.html_safe, html_options
61
61
  end
62
62
 
63
- def col(content = nil, options = nil, html_options = nil, &block)
64
- @items << UiBibz::Ui::Core::Layouts::Col.new(content, options, html_options, &block).render
63
+ def col(content = nil, options = nil, html_options = nil, &)
64
+ @items << UiBibz::Ui::Core::Layouts::Col.new(content, options, html_options, &).render
65
65
  end
66
66
 
67
67
  private
@@ -71,13 +71,13 @@ module UiBibz::Ui::Core::Lists::Components
71
71
  end
72
72
 
73
73
  # Add header which is a component
74
- def header(content = nil, options = nil, html_options = nil, &block)
75
- @header = UiBibz::Ui::Core::Lists::Components::ListHeader.new content, options, html_options, &block
74
+ def header(content = nil, options = nil, html_options = nil, &)
75
+ @header = UiBibz::Ui::Core::Lists::Components::ListHeader.new(content, options, html_options, &)
76
76
  end
77
77
 
78
78
  # Add body which is a component
79
- def body(content = nil, options = nil, html_options = nil, &block)
80
- @body = UiBibz::Ui::Core::Lists::Components::ListBody.new content, options, html_options, &block
79
+ def body(content = nil, options = nil, html_options = nil, &)
80
+ @body = UiBibz::Ui::Core::Lists::Components::ListBody.new(content, options, html_options, &)
81
81
  end
82
82
 
83
83
  private
@@ -74,7 +74,7 @@ module UiBibz::Ui::Core::Lists
74
74
  include UiBibz::Ui::Concerns::HtmlConcern
75
75
 
76
76
  # See UiBibz::Ui::Core::Component.initialize
77
- def initialize(content = nil, options = nil, html_options = nil, &block)
77
+ def initialize(...)
78
78
  super
79
79
  @lists = []
80
80
  end
@@ -71,7 +71,7 @@ module UiBibz::Ui::Core::Navigations
71
71
  include UiBibz::Ui::Concerns::HtmlConcern
72
72
 
73
73
  # See UiBibz::Ui::Core::Component.initialize
74
- def initialize(content = nil, options = nil, html_options = nil, &block)
74
+ def initialize(...)
75
75
  super
76
76
  @links = []
77
77
  generate_links unless @content.nil?
@@ -86,14 +86,16 @@ module UiBibz::Ui::Core::Navigations
86
86
 
87
87
  # Add breadcrumb link items
88
88
  # See UiBibz::Ui::Core::BreadcrumbLink
89
- def link(content = nil, options = nil, html_options = nil, &block)
90
- @links << UiBibz::Ui::Core::Navigations::Components::BreadcrumbLink.new(content, options, html_options, &block).render
89
+ def link(content = nil, options = nil, html_options = nil, &)
90
+ @links << UiBibz::Ui::Core::Navigations::Components::BreadcrumbLink.new(content, options, html_options, &).render
91
91
  end
92
92
 
93
93
  private
94
94
 
95
95
  def component_html_options
96
- super.merge({ 'arial-label': 'breadcrumb' })
96
+ html_opts = super.merge({ 'arial-label': 'breadcrumb' })
97
+ html_opts = html_opts.merge(style: "--bs-breadcrumb-divider: '#{@options[:divider]}';") unless @options[:divider].nil?
98
+ html_opts
97
99
  end
98
100
 
99
101
  def model_name
@@ -40,8 +40,7 @@ module UiBibz::Ui::Core::Navigations
40
40
  end
41
41
 
42
42
  def component_html_data
43
- super
44
- add_html_data 'link', value: options[:link] if options[:link]
43
+ @data_html_options_builder.add 'link', value: options[:link]
45
44
  end
46
45
  end
47
46
  end
@@ -49,7 +49,7 @@ module UiBibz::Ui::Core::Navigations
49
49
  attr_accessor :html_options
50
50
 
51
51
  def initialize(model_or_url, options = {}, &block)
52
- init_haml_helpers
52
+ # init_haml_helpers
53
53
  @content = block
54
54
  @model_or_url = model_or_url
55
55
  @options = options
@@ -60,22 +60,23 @@ module UiBibz::Ui::Core::Navigations
60
60
  def render
61
61
  case type
62
62
  when :form_for
63
- @form = form_for(@model_or_url, html_options, &@content)
63
+ form_for(@model_or_url, html_options, &@content)
64
64
  when :ui_form_for
65
65
  begin
66
- @form = ui_form_for(@model_or_url, html_options, &@content)
66
+ ui_form_for(@model_or_url, html_options, &@content)
67
67
  rescue e
68
68
  raise 'You must install simple form to use ui_form_for.'
69
69
  end
70
70
  else
71
- @form = form_tag_with_body(html_options, capture(&@content))
71
+ context = eval('self', @content.binding, __FILE__, __LINE__)
72
+ form_tag_with_body(html_options, context.capture(&@content))
72
73
  end
73
74
  end
74
75
 
75
76
  private
76
77
 
77
78
  def new_option
78
- (@options || {}).merge({ class: UiBibz::Utils::Screwdriver.join_classes('d-flex', @options[:class]) })
79
+ (@options || {}).merge({ class: UiBibz::Builders::HtmlClassesBuilder.join_classes('d-flex', @options[:class]) })
79
80
  end
80
81
 
81
82
  def protect_against_forgery?
@@ -49,7 +49,7 @@ module UiBibz::Ui::Core::Navigations
49
49
  attr_accessor :html_options
50
50
 
51
51
  def initialize(model_or_url, options = {}, &block)
52
- init_haml_helpers
52
+ # init_haml_helpers
53
53
  @content = block
54
54
  @model_or_url = model_or_url
55
55
  @options = options
@@ -75,7 +75,7 @@ module UiBibz::Ui::Core::Navigations
75
75
  private
76
76
 
77
77
  def new_option
78
- (@options || {}).merge({ class: UiBibz::Utils::Screwdriver.join_classes('btn-group', @options[:class]) })
78
+ (@options || {}).merge({ class: UiBibz::Builders::HtmlClassesBuilder.join_classes('btn-group', @options[:class]) })
79
79
  end
80
80
 
81
81
  def protect_against_forgery?
@@ -70,7 +70,7 @@ module UiBibz::Ui::Core::Navigations
70
70
  include UiBibz::Ui::Concerns::NavigationConcern
71
71
 
72
72
  # See UiBibz::Ui::Core::Component.initialize
73
- def initialize(content = nil, options = nil, html_options = nil, &block)
73
+ def initialize(...)
74
74
  super
75
75
  @items = []
76
76
  end
@@ -99,20 +99,20 @@ module UiBibz::Ui::Core::Navigations
99
99
  end
100
100
 
101
101
  # Add nav in nav
102
- def nav(content = nil, options = {}, html_options = nil, &block)
103
- @items << UiBibz::Ui::Core::Component.new(Nav.new(content, options).tap(&block).render, {}, html_options)
102
+ def nav(content = nil, options = {}, html_options = nil, &)
103
+ @items << UiBibz::Ui::Core::Component.new(Nav.new(content, options).tap(&).render, {}, html_options)
104
104
  end
105
105
 
106
106
  # Add nav dropdown items
107
107
  # See UiBibz::Ui::Core::Navigations::NavDropdown
108
- def dropdown(content = nil, options = {}, html_options = nil, &block)
109
- @items << NavDropdown.new(content, options, html_options).tap(&block)
108
+ def dropdown(content = nil, options = {}, html_options = nil, &)
109
+ @items << NavDropdown.new(content, options, html_options).tap(&)
110
110
  end
111
111
 
112
112
  protected
113
113
 
114
114
  def component_html_classes
115
- [nav_class, type, position, stacked, justify, fill]
115
+ [nav_class, type, position, stacked, justify, fill, underline]
116
116
  end
117
117
 
118
118
  def component_html_options
@@ -173,5 +173,9 @@ module UiBibz::Ui::Core::Navigations
173
173
  def nav_tags
174
174
  @options[:nav_tags]
175
175
  end
176
+
177
+ def underline
178
+ 'nav-underline' if @options[:underline]
179
+ end
176
180
  end
177
181
  end
@@ -78,7 +78,7 @@ module UiBibz::Ui::Core::Navigations
78
78
  include UiBibz::Ui::Concerns::NavigationConcern
79
79
 
80
80
  # See UiBibz::Ui::Core::Component.initialize
81
- def initialize(content = nil, options = nil, html_options = nil, &block)
81
+ def initialize(...)
82
82
  super
83
83
  @items = []
84
84
  end
@@ -87,42 +87,44 @@ module UiBibz::Ui::Core::Navigations
87
87
  def pre_render
88
88
  content_tag :nav, html_options do
89
89
  UiBibz::Ui::Core::Layouts::Container.new(options[:container], options[:container_html]) do
90
- if brand_position == :left
91
- concat title
92
- concat @navbar_toggle_html
90
+ capture do
91
+ if brand_position == :left
92
+ concat title
93
+ concat @navbar_toggle_html
94
+ end
95
+ concat navbar_toggle_button_html
96
+ if brand_position == :right
97
+ concat title
98
+ concat @navbar_toggle_html
99
+ end
100
+ concat body_html
93
101
  end
94
- concat navbar_toggle_button_html
95
- if brand_position == :right
96
- concat title
97
- concat @navbar_toggle_html
98
- end
99
- concat body_html
100
102
  end.render
101
103
  end
102
104
  end
103
105
 
104
106
  # Add navbar nav items
105
107
  # See UiBibz::Ui::Core::NavbarNav
106
- def nav(content = nil, options = nil, html_options = nil, &block)
108
+ def nav(content = nil, options = nil, html_options = nil, &)
107
109
  options ||= {}
108
- @items << UiBibz::Ui::Core::Navigations::NavbarNav.new(content, options, html_options).tap(&block)
110
+ @items << UiBibz::Ui::Core::Navigations::NavbarNav.new(content, options, html_options).tap(&)
109
111
  end
110
112
 
111
113
  # Add navbar form items
112
114
  # See UiBibz::Ui::Core::NavbarForm
113
- def form(model_or_url, options = {}, &block)
114
- @items << UiBibz::Ui::Core::Navigations::NavbarForm.new(model_or_url, options, &block)
115
+ def form(model_or_url, options = {}, &)
116
+ @items << UiBibz::Ui::Core::Navigations::NavbarForm.new(model_or_url, options, &)
115
117
  end
116
118
 
117
119
  # Not use !!!!!
118
120
  # Add navbar text items
119
121
  # See UiBibz::Ui::Core::NavbarText
120
- def text(content = nil, options = nil, html_options = nil, &block)
121
- @items << UiBibz::Ui::Core::Navigations::NavbarText.new(content, options, html_options, &block)
122
+ def text(content = nil, options = nil, html_options = nil, &)
123
+ @items << UiBibz::Ui::Core::Navigations::NavbarText.new(content, options, html_options, &)
122
124
  end
123
125
 
124
- def brand(content = nil, options = nil, html_options = nil, &block)
125
- @brand = UiBibz::Ui::Core::Navigations::NavbarBrand.new(content, options, html_options, &block).render
126
+ def brand(content = nil, options = nil, html_options = nil, &)
127
+ @brand = UiBibz::Ui::Core::Navigations::NavbarBrand.new(content, options, html_options, &).render
126
128
  end
127
129
 
128
130
  def id
@@ -153,7 +155,7 @@ module UiBibz::Ui::Core::Navigations
153
155
  end
154
156
 
155
157
  def body_html
156
- content_tag :div, class: 'navbar-collapse collapse', id: id do
158
+ content_tag(:div, class: 'navbar-collapse collapse', id:) do
157
159
  concat @items.map(&:render).join.html_safe
158
160
  end
159
161
  end
@@ -56,7 +56,7 @@ module UiBibz::Ui::Core::Navigations
56
56
  include UiBibz::Ui::Concerns::HtmlConcern
57
57
 
58
58
  # See UiBibz::Ui::Core::Component.initialize
59
- def initialize(content = nil, options = nil, html_options = nil, &block)
59
+ def initialize(...)
60
60
  super
61
61
  @items = []
62
62
  end
@@ -70,8 +70,8 @@ module UiBibz::Ui::Core::Navigations
70
70
 
71
71
  # Add nav link items
72
72
  # See UiBibz::Ui::Core::Navigations::NavLink
73
- def link(content = nil, options = {}, html_options = nil, &block)
74
- @items << PaginationLink.new(content, options, html_options, &block).render
73
+ def link(content = nil, options = {}, html_options = nil, &)
74
+ @items << PaginationLink.new(content, options, html_options, &).render
75
75
  end
76
76
 
77
77
  private
@@ -55,7 +55,7 @@ module UiBibz::Ui::Core::Navigations
55
55
  include UiBibz::Ui::Concerns::HtmlConcern
56
56
 
57
57
  # See UiBibz::Ui::Core::Component.initialize
58
- def initialize(content = nil, options = nil, html_options = nil, &block)
58
+ def initialize(...)
59
59
  super
60
60
  @items = []
61
61
  end
@@ -65,10 +65,10 @@ module UiBibz::Ui::Core::Navigations
65
65
  content_tag :div, @items.map(&:render).join.html_safe, html_options
66
66
  end
67
67
 
68
- def button_group(cont = nil, opt = nil, hopt = nil, &block)
68
+ def button_group(cont = nil, opt = nil, hopt = nil, &)
69
69
  cont = @options.merge(cont || {})
70
70
  (cont || {}).delete(:class)
71
- @items << UiBibz::Ui::Core::Forms::Buttons::ButtonGroup.new(cont, opt, hopt).tap(&block)
71
+ @items << UiBibz::Ui::Core::Forms::Buttons::ButtonGroup.new(cont, opt, hopt).tap(&)
72
72
  end
73
73
 
74
74
  def spacer(num = 'auto')
@@ -78,8 +78,8 @@ module UiBibz::Ui::Core::Navigations
78
78
 
79
79
  # Add navbar form items
80
80
  # See UiBibz::Ui::Core::ToolbarForm
81
- def form(model_or_url, options = {}, &block)
82
- @items << UiBibz::Ui::Core::Navigations::ToolbarForm.new(model_or_url, options, &block)
81
+ def form(model_or_url, options = {}, &)
82
+ @items << UiBibz::Ui::Core::Navigations::ToolbarForm.new(model_or_url, options, &)
83
83
  end
84
84
 
85
85
  private
@@ -49,7 +49,7 @@ module UiBibz::Ui::Core::Notifications
49
49
  #
50
50
  class Alert < UiBibz::Ui::Core::Component
51
51
  # See UiBibz::Ui::Core::Component.initialize
52
- def initialize(content = nil, options = nil, html_options = nil, &block)
52
+ def initialize(...)
53
53
  super
54
54
  header(@content, tap: false) unless @tapped
55
55
  end
@@ -74,15 +74,14 @@ module UiBibz::Ui::Core::Notifications
74
74
  end
75
75
 
76
76
  # Add Body which is a component
77
- def body(content = nil, options = nil, html_options = nil, &block)
78
- @body = UiBibz::Ui::Core::Notifications::Components::AlertBody.new(content, options, html_options, &block).render
77
+ def body(content = nil, options = nil, html_options = nil, &)
78
+ @body = UiBibz::Ui::Core::Notifications::Components::AlertBody.new(content, options, html_options, &).render
79
79
  end
80
80
 
81
81
  private
82
82
 
83
83
  def component_html_data
84
- super
85
- add_html_data 'timeout', value: options[:timeout] if options[:timeout]
84
+ @data_html_options_builder.add 'timeout', value: options[:timeout]
86
85
  end
87
86
 
88
87
  def component_html_classes
@@ -62,15 +62,19 @@ module UiBibz::Ui::Core::Notifications
62
62
  end
63
63
 
64
64
  def component_html_classes
65
- ['badge', type]
65
+ ['badge', type, corner]
66
66
  end
67
67
 
68
68
  def status
69
- "bg-#{@options[:status] || :default}"
69
+ "bg-#{@options[:status] || :secondary}"
70
70
  end
71
71
 
72
72
  def type
73
73
  'rounded-pill' if @options[:type] == :pill
74
74
  end
75
+
76
+ def corner
77
+ 'position-absolute top-0 start-100 translate-middle' if @options[:corner]
78
+ end
75
79
  end
76
80
  end
@@ -50,7 +50,7 @@ module UiBibz::Ui::Core::Notifications::Components
50
50
  if options[:image].is_a?(String)
51
51
  image_tag(options[:image], class: 'rounded me-2', alt: sanitize_text(options[:image])) unless options[:image].nil?
52
52
  else
53
- options[:image][:class] = UiBibz::Utils::Screwdriver.join_classes(options[:image][:class], 'rounded me-2')
53
+ options[:image][:class] = UiBibz::Builders::HtmlClassesBuilder.join_classes(options[:image][:class], 'rounded me-2')
54
54
  if options[:image].delete(:pack)
55
55
  image_pack_tag(options[:image].delete(:href), **options[:image])
56
56
  else