ui_bibz 3.0.0.alpha5 → 3.0.0.alpha6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/lib/ui_bibz/infos.rb +1 -1
  4. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +1 -1
  5. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +1 -1
  6. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +7 -1
  7. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +7 -1
  8. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -0
  9. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +5 -5
  10. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +1 -1
  11. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +19 -1
  12. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +13 -1
  13. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +1 -1
  14. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +3 -8
  15. data/lib/ui_bibz/ui/core/windows/modal.rb +6 -2
  16. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +7 -5
  17. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +3 -2
  18. data/lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb +47 -0
  19. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +14 -6
  20. data/lib/ui_bibz/utils/internationalization.rb +1 -1
  21. data/test/ui/core/forms/choices/checkbox_field_test.rb +2 -2
  22. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  23. data/test/ui/core/forms/dropdowns/dropdown_test.rb +1 -1
  24. data/test/ui/core/forms/numbers/range_field_test.rb +14 -0
  25. data/test/ui/core/forms/numbers/slider_field_test.rb +2 -2
  26. data/test/ui/core/forms/surrounds/surround_field_test.rb +24 -0
  27. data/test/ui/core/navigations/navbar_test.rb +2 -4
  28. data/test/ui/utils/breakdown_class_name_generator_test.rb +14 -0
  29. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: daf6fae8ebb33a996aababffe959f600d9cce3c84554a9574d54f8623bc12d8e
4
- data.tar.gz: 5f3aa30344b85d267698918a1dc63bbbc8a220fef61395e5f9ca141666175c82
3
+ metadata.gz: 38589277f9143465e38e93374fe2a2c2b5c98b6c419b817e71807258dd694d11
4
+ data.tar.gz: '087b07e3cecf23f9eace93ff8cab21324cbcbfaf30f7f26d1cf5af229a85c45a'
5
5
  SHA512:
6
- metadata.gz: b9fecae8a62e153525d66d32626d01be6cb28ae0fb777ccc99ff14fabcbf3cb802c84c6095acef8da1232b2d02508e7199d28102b12dae75f09a7d7acd1e5482
7
- data.tar.gz: 4c20b4a4117f93a2539a6121b6b86471585c10eac3df4aeaf51c0521224a1ffa70de65447559413b5ab2503f3cab07027a497ddf7f253d2c90012d43362a24ba
6
+ metadata.gz: 0116b98a6962813164b842c69424c368ab0dfb4425b05259c6b16b93d2067712a642182d4ec1147932cc6880c34fe29e2b7acfc84d2b5f7ef96d064d20bf4a5b
7
+ data.tar.gz: c54954c90ca0d394ead85a12f7ab2b353c860fa8d93c9b73bc82e7735cc9a23c9ec8e2cdd699d4d7b00fd2db0c84751c5cb22b381bf018122acafcd28be56183
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ui_bibz (3.0.0.alpha5)
4
+ ui_bibz (3.0.0.alpha6)
5
5
  rails (~> 6.0.3, >= 6.0.3.2)
6
6
  will-paginate-i18n
7
7
  will_paginate (~> 3.1.0)
@@ -159,13 +159,13 @@ GEM
159
159
  rake (13.0.1)
160
160
  regexp_parser (1.8.2)
161
161
  rexml (3.2.4)
162
- rubocop (1.0.0)
162
+ rubocop (1.1.0)
163
163
  parallel (~> 1.10)
164
164
  parser (>= 2.7.1.5)
165
165
  rainbow (>= 2.2.2, < 4.0)
166
166
  regexp_parser (>= 1.8)
167
167
  rexml
168
- rubocop-ast (>= 0.6.0)
168
+ rubocop-ast (>= 1.0.1)
169
169
  ruby-progressbar (~> 1.7)
170
170
  unicode-display_width (>= 1.4.0, < 2.0)
171
171
  rubocop-ast (1.1.0)
@@ -12,6 +12,6 @@ module UiBibz
12
12
  REPO = 'git+https://github.com/thooams/Ui-Bibz.git'
13
13
  EMAIL = 'thomas@hummel.link'
14
14
  AUTHOR = 'Thooams'
15
- VERSION = '3.0.0.alpha5'
15
+ VERSION = '3.0.0.alpha6'
16
16
  AUTHORS = ['Thooams'].freeze
17
17
  end
@@ -4,7 +4,7 @@ module UiBibzInputs
4
4
  class UiCheckboxFieldInput < BaseInput
5
5
  include UiBibz::Ui::Core::Forms::Choices
6
6
 
7
- def label
7
+ def label(_wrapper_options)
8
8
  false
9
9
  end
10
10
 
@@ -16,7 +16,7 @@ module UiBibz::Ui::Core::Forms::Buttons
16
16
  # You can add HTML attributes using the +html_options+.
17
17
  # You can pass arguments in options attribute:
18
18
  # * +status+ - status of element with symbol value:
19
- # (+:primary+, +:secondary+, +:info+, +:warning+, +:danger+, +:link+)
19
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
20
20
  # * +size+
21
21
  # (+:xs+, +:sm+, +:lg+)
22
22
  # * +outline+ - Boolean
@@ -70,7 +70,7 @@ module UiBibz::Ui::Core::Forms::Choices
70
70
  disabled: disabled?,
71
71
  indeterminate: options[:indeterminate],
72
72
  "data-action": options[:action],
73
- class: 'form-check-input'
73
+ class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
74
74
  }.tap do |html|
75
75
  html[:id] = html_options[:id] if html_options[:id]
76
76
  end
@@ -95,6 +95,12 @@ module UiBibz::Ui::Core::Forms::Choices
95
95
  super << component_wrapper_html_classes
96
96
  end
97
97
 
98
+ def input_status
99
+ "form-check-input-#{options[:status]}" if options[:status]
100
+ end
101
+
102
+ def status; end
103
+
98
104
  def inline
99
105
  'form-check-inline' if options[:inline]
100
106
  end
@@ -67,7 +67,7 @@ module UiBibz::Ui::Core::Forms::Choices
67
67
  {
68
68
  disabled: options[:state] == :disabled,
69
69
  "data-action": options[:action],
70
- class: 'form-check-input'
70
+ class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
71
71
  }
72
72
  end
73
73
 
@@ -79,6 +79,12 @@ module UiBibz::Ui::Core::Forms::Choices
79
79
  super << component_wrapper_html_classes
80
80
  end
81
81
 
82
+ def status; end
83
+
84
+ def input_status
85
+ "form-check-input-#{options[:status]}" if options[:status]
86
+ end
87
+
82
88
  def inline
83
89
  'form-check-inline' if options[:inline]
84
90
  end
@@ -43,6 +43,10 @@ module UiBibz::Ui::Core::Forms::Choices
43
43
  class SwitchField < UiBibz::Ui::Core::Forms::Choices::CheckboxField
44
44
  private
45
45
 
46
+ def component_options
47
+ { boolean: true }
48
+ end
49
+
46
50
  def component_html_classes
47
51
  ['form-check', 'form-switch', inline]
48
52
  end
@@ -29,7 +29,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
29
29
  # * +html_button+ - Hash
30
30
  # * +position+ - Symbol
31
31
  # (+:up+, +:right+, +:down+, +:left+)
32
- # * +alignement+ - Symbol
32
+ # * +alignment+ - Symbol
33
33
  # (+:right)
34
34
  #
35
35
  # ==== Signatures
@@ -124,15 +124,15 @@ module UiBibz::Ui::Core::Forms::Dropdowns
124
124
  end
125
125
 
126
126
  def ul_html
127
- content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', theme, alignement, open), 'arial-labelledby' => id
127
+ content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', theme, alignment, open), 'arial-labelledby' => id
128
128
  end
129
129
 
130
130
  def dropdown_tag
131
131
  options[:tag] || :button
132
132
  end
133
133
 
134
- def alignement
135
- "dropdown-menu-#{@options[:alignement]}" unless @options[:alignement].nil?
134
+ def alignment
135
+ "dropdown-menu-#{@options[:alignment]}" unless @options[:alignment].nil?
136
136
  end
137
137
 
138
138
  def position
@@ -148,7 +148,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
148
148
  end
149
149
 
150
150
  def inline
151
- 'btn-group' if @options[:inline] || @options[:alignement]
151
+ 'btn-group' if @options[:inline] || @options[:alignment]
152
152
  end
153
153
 
154
154
  def without_caret
@@ -69,7 +69,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
69
69
  private
70
70
 
71
71
  def component_html_classes
72
- ['btn-group', position, alignement, open, inline, keep_open]
72
+ ['btn-group', position, alignment, open, inline, keep_open]
73
73
  end
74
74
 
75
75
  def button_html
@@ -20,6 +20,12 @@ module UiBibz::Ui::Core::Forms::Numbers
20
20
  # * +step+ - [Float, Integer]
21
21
  # * +in+ - Array
22
22
  # * +within+ - Array
23
+ # * +status+ - status of element with symbol value:
24
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
25
+ # * +thumb_status+ - status of the thumb:
26
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
27
+ # * +track_status+ - status of track:
28
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
23
29
  #
24
30
  # ==== Signatures
25
31
  #
@@ -75,7 +81,19 @@ module UiBibz::Ui::Core::Forms::Numbers
75
81
  end
76
82
 
77
83
  def component_html_classes
78
- 'form-range'
84
+ ['form-range', status, thumb_status, track_status]
85
+ end
86
+
87
+ def status
88
+ "form-range-#{options[:status]}" if options[:status]
89
+ end
90
+
91
+ def thumb_status
92
+ "form-range-thumb-#{options[:thumb_status]}" if options[:thumb_status]
93
+ end
94
+
95
+ def track_status
96
+ "form-range-track-#{options[:track_status]}" if options[:track_status]
79
97
  end
80
98
 
81
99
  def option_label(value)
@@ -20,6 +20,10 @@ module UiBibz::Ui::Core::Forms::Numbers
20
20
  # * +step+ - [Float, Integer]
21
21
  # * +in+ - Array
22
22
  # * +within+ - Array
23
+ # * +status+ - status of element with symbol value:
24
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
25
+ # * +track_status+ - status of track:
26
+ # (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
23
27
  #
24
28
  # ==== Signatures
25
29
  #
@@ -114,13 +118,21 @@ module UiBibz::Ui::Core::Forms::Numbers
114
118
  end
115
119
 
116
120
  def component_html_classes
117
- ['slider', ('disabled' if disabled)]
121
+ ['slider', status, track_status, ('disabled' if disabled)]
118
122
  end
119
123
 
120
124
  def disabled
121
125
  'disabled' if options[:state] == :disabled || html_options[:disabled]
122
126
  end
123
127
 
128
+ def status
129
+ "slider-#{options[:status]}" if options[:status]
130
+ end
131
+
132
+ def track_status
133
+ "slider-track-#{options[:track_status]}" if options[:track_status]
134
+ end
135
+
124
136
  def range_name(suffix)
125
137
  if content.end_with?(']')
126
138
  content.dup.insert(-2, suffix)
@@ -59,7 +59,7 @@ module UiBibz::Ui::Core::Forms::Numbers
59
59
 
60
60
  def header_max
61
61
  content_tag :div, class: 'slider-header-max' do
62
- concat content_tag :label, options[:label_max] || 'max: '
62
+ concat content_tag :label, options[:label_max] || 'Max: '
63
63
  concat content_tag :span, options[:thumb_max], "data-unit": options[:unit] || options[:unit_max]
64
64
  end
65
65
  end
@@ -29,10 +29,8 @@ module UiBibz::Ui::Core::Forms::Surrounds
29
29
  #
30
30
  # ==== Signatures
31
31
  #
32
- # UiBibz::Ui::Core::Forms::Texts::TextField.new(content, options = {}, html_options = {}).render
33
- #
34
- # UiBibz::Ui::Core::Forms::Texts::TextField.new(options = {}, html_options = {}) do
35
- # content
32
+ # UiBibz::Ui::Core::Forms::Surrounds::Surround.new(options = {}, html_options = {}) do |s|
33
+ # s.
36
34
  # end.render
37
35
  #
38
36
  # ==== Examples
@@ -118,6 +116,7 @@ module UiBibz::Ui::Core::Forms::Surrounds
118
116
  end
119
117
 
120
118
  def dropdown_select_field(content = nil, options = nil, html_options = nil, &block)
119
+ html_options = (html_options || {}).merge("data-wrapper-classes": 'input-group-btn')
121
120
  @items << UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new(content, options, html_options, &block).render
122
121
  end
123
122
 
@@ -125,10 +124,6 @@ module UiBibz::Ui::Core::Forms::Surrounds
125
124
  @items << UiBibz::Ui::Core::Forms::Selects::SelectField.new(content, options, html_options, &block).render
126
125
  end
127
126
 
128
- def multi_select_field(content = nil, options = nil, html_options = nil, &block)
129
- @items << UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new(content, options, html_options, &block).render
130
- end
131
-
132
127
  def auto_complete_field(content = nil, options = nil, html_options = nil, &block)
133
128
  @items << UiBibz::Ui::Core::Forms::Texts::AutoCompleteField.new(content, options, html_options, &block).render
134
129
  end
@@ -88,7 +88,7 @@ module UiBibz::Ui::Core::Windows
88
88
  private
89
89
 
90
90
  def modal_dialog_classes
91
- UiBibz::Utils::Screwdriver.join_classes('modal-dialog', size, position, scrollable)
91
+ UiBibz::Utils::Screwdriver.join_classes('modal-dialog', fullscreen_size, size, position, scrollable)
92
92
  end
93
93
 
94
94
  def component_html_classes
@@ -105,10 +105,14 @@ module UiBibz::Ui::Core::Windows
105
105
  end
106
106
 
107
107
  # :xl, :lg, :sm or :xs
108
- def size
108
+ def fullscreen_size
109
109
  [modal, fullscreen, @options[:size], down].compact.join('-')
110
110
  end
111
111
 
112
+ def size
113
+ [modal, @options[:size]].compact.join('-') if @options[:size]
114
+ end
115
+
112
116
  def fullscreen
113
117
  'fullscreen' if @options[:fullscreen]
114
118
  end
@@ -13,8 +13,11 @@ module GlyphExtension
13
13
  # Render glyph with space html
14
14
  def glyph_with_space
15
15
  out = [glyph]
16
- out << ' ' if options[:text] != false
17
- out << content_tag(:span, ' ', class: 'empty-space') if options[:text] == false
16
+ out << if options[:text] == false
17
+ content_tag(:span, ' ', class: 'empty-space')
18
+ else
19
+ ' '
20
+ end
18
21
  out.join unless glyph.nil?
19
22
  end
20
23
 
@@ -22,10 +25,9 @@ module GlyphExtension
22
25
  def glyph
23
26
  options[:content] = content if options[:text] == false
24
27
 
25
- glyph_options = case options[:glyph]
26
- when Hash
28
+ glyph_options = if options[:glyph].is_a?(Hash)
27
29
  options[:glyph]
28
- when String
30
+ elsif options[:glyph]
29
31
  { name: options[:glyph] }
30
32
  else
31
33
  {}
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'ui_bibz/ui/ux/containers/components/panel_tab_group'
4
+ require 'ui_bibz/ui/ux/containers/components/panel_header_title'
4
5
  module UiBibz::Ui::Ux::Containers::Components
5
6
  # Create a panel header
6
7
  #
@@ -42,8 +43,8 @@ module UiBibz::Ui::Ux::Containers::Components
42
43
  end
43
44
  end
44
45
 
45
- def title(text)
46
- @content = content_tag :div, text, class: 'panel-title'
46
+ def title(content = nil, options = nil, html_options = nil, &block)
47
+ @content = PanelHeaderTitle.new(content, options, html_options, &block).render
47
48
  end
48
49
 
49
50
  def actions(content = nil, options = nil, html_options = nil, &block)
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UiBibz::Ui::Ux::Containers::Components
4
+ # Create a panel header
5
+ #
6
+ # ==== Attributes
7
+ #
8
+ # * +content+ - Content of element
9
+ # * +options+ - Options of element
10
+ # * +html_options+ - Html Options of element
11
+ #
12
+ # ==== Options
13
+ #
14
+ # You can add HTML attributes using the +html_options+.
15
+ # You can pass arguments in options attribute:
16
+ #
17
+ # ==== Signatures
18
+ #
19
+ # UiBibz::Ui::Core::Boxes::PanelHeader.new(content, options = nil, html_options = nil)
20
+ #
21
+ # UiBibz::Ui::Core::Boxes::CarHeader.new(options = nil, html_options = nil) do
22
+ # content
23
+ # end
24
+ #
25
+ # ==== Examples
26
+ #
27
+ # UiBibz::Ui::Core::Boxes::PanelHeader.new.render
28
+ #
29
+ # UiBibz::Ui::Core::Boxes::PanelHeader.new do
30
+ # 'Exemple'
31
+ # end.render
32
+ #
33
+ class PanelHeaderTitle < UiBibz::Ui::Core::Component
34
+ # See UiBibz::Ui::Core::Component.initialize
35
+
36
+ # Render html tag
37
+ def pre_render
38
+ content_tag :div, @content, html_options
39
+ end
40
+
41
+ private
42
+
43
+ def component_html_classes
44
+ 'panel-title'
45
+ end
46
+ end
47
+ end
@@ -12,6 +12,8 @@ module UiBibz::Utils
12
12
  @klass_name = klass_name
13
13
  end
14
14
 
15
+ # Possible options
16
+ # 3 or md: 3 or md: { num: 3 }, xs: { num: 4 }
15
17
  def class_names
16
18
  return @klass_name unless col_options?
17
19
 
@@ -19,9 +21,9 @@ module UiBibz::Utils
19
21
  @options.each do |key, value|
20
22
  kl << write_classes(key.to_sym, value) if BREAKPOINTS.include?(key.to_sym)
21
23
  end
22
- kl << write_classes(nil, @options) if kl.empty? || @options.key?('num')
24
+ kl << write_classes(nil, @options)
23
25
 
24
- kl
26
+ kl.delete_if(&:blank?)
25
27
  end
26
28
 
27
29
  private
@@ -30,11 +32,17 @@ module UiBibz::Utils
30
32
  (@options.keys.map(&:to_sym) & PARAMETERS).present?
31
33
  end
32
34
 
35
+ # md: 8 or md: { num: 3}, xs: { num: 4 }
33
36
  def write_classes(size, opts)
34
- @position = opts[:position]
35
- opts.map do |k, v|
36
- send(k, size, v) if POSITIONING.include?(k.to_sym)
37
- end.compact.join(' ')
37
+ if opts.is_a?(Hash)
38
+ @position = opts[:position]
39
+
40
+ opts.map do |k, v|
41
+ send(k, size, v) if POSITIONING.include?(k.to_sym)
42
+ end.compact.join(' ')
43
+ else
44
+ send('num', size, opts)
45
+ end
38
46
  end
39
47
 
40
48
  # col-md-9
@@ -12,7 +12,7 @@ module UiBibz::Utils
12
12
  end
13
13
 
14
14
  def translate
15
- I18n.t(@translation, options_with_default)
15
+ I18n.t(@translation, **options_with_default)
16
16
  end
17
17
 
18
18
  private
@@ -4,8 +4,8 @@ require 'test_helper'
4
4
 
5
5
  class CheckboxFieldTest < ActionView::TestCase
6
6
  test 'checkbox_field' do
7
- actual = UiBibz::Ui::Core::Forms::Choices::CheckboxField.new('John', { value: 1 }).render
8
- expected = "<div class=\"form-check\"><input type=\"checkbox\" name=\"John\" id=\"John\" value=\"1\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"John\">John</label></div>"
7
+ actual = UiBibz::Ui::Core::Forms::Choices::CheckboxField.new('John', { value: 1, status: :primary }).render
8
+ expected = "<div class=\"form-check\"><input type=\"checkbox\" name=\"John\" id=\"John\" value=\"1\" class=\"form-check-input form-check-input-primary\" /><label class=\"form-check-label\" for=\"John\">John</label></div>"
9
9
 
10
10
  assert_equal expected, actual
11
11
  end
@@ -5,7 +5,7 @@ require 'test_helper'
5
5
  class RadioFieldTest < ActionView::TestCase
6
6
  test 'radio_field' do
7
7
  actual = UiBibz::Ui::Core::Forms::Choices::RadioField.new('John', { value: 1, status: :primary, type: :square }).render
8
- expected = "<div class=\"form-check\"><input type=\"radio\" name=\"John\" id=\"John_1\" value=\"1\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"John_1\">John</label></div>"
8
+ expected = "<div class=\"form-check\"><input type=\"radio\" name=\"John\" id=\"John_1\" value=\"1\" class=\"form-check-input form-check-input-primary\" /><label class=\"form-check-label\" for=\"John_1\">John</label></div>"
9
9
 
10
10
  assert_equal expected, actual
11
11
  end
@@ -32,7 +32,7 @@ class DropdownTest < ActionView::TestCase
32
32
  end
33
33
 
34
34
  test 'Dropdown options' do
35
- actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Dropdown', position: :up, alignement: :right, status: :success, glyph: 'diamond').tap do |d|
35
+ actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Dropdown', position: :up, alignment: :right, status: :success, glyph: 'diamond').tap do |d|
36
36
  d.link 'Link 1', url: '#link1', glyph: 'eye'
37
37
  d.header 'header'
38
38
  d.link 'Link 2', url: '#link2'
@@ -37,4 +37,18 @@ class RangeFieldTest < ActionView::TestCase
37
37
 
38
38
  assert_equal expected, actual.render
39
39
  end
40
+
41
+ test "range status" do
42
+ actual = UiBibz::Ui::Core::Forms::Numbers::RangeField.new('myrange', value: 2, max: 3, status: :sucesss).render
43
+ expected = "<input type=\"range\" name=\"myrange\" id=\"myrange\" value=\"2\" class=\"form-range-sucesss form-range\" max=\"3\" />"
44
+
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ test "range thumb and track status" do
49
+ actual = UiBibz::Ui::Core::Forms::Numbers::RangeField.new('myrange', value: 2, max: 3, thumb_status: :sucesss, track_status: :dark).render
50
+ expected = "<input type=\"range\" name=\"myrange\" id=\"myrange\" value=\"2\" class=\"form-range form-range-thumb-sucesss form-range-track-dark\" max=\"3\" />"
51
+
52
+ assert_equal expected, actual
53
+ end
40
54
  end
@@ -11,8 +11,8 @@ class SliderFieldTest < ActionView::TestCase
11
11
  end
12
12
 
13
13
  test 'slider field with options' do
14
- actual = UiBibz::Ui::Core::Forms::Numbers::SliderField.new('myrange', thumb_max: 2, thumb_min: -7, min: -9, max: 6, step: 2, input_name_max: "price_max", input_name_min: "price_min").render
15
- expected = "<div class=\"slider\" min=\"-9\" max=\"6\" step=\"2\"><div><div class=\"slider-inverse-left\" style=\"width: 100%\"></div><div class=\"slider-inverse-right\" style=\"width: 100%\"></div><div class=\"slider-range\" style=\"left: 13%; right: 26%\"></div><div class=\"slider-thumb slider-thumb-left\" style=\"left: 13%\"></div><div class=\"slider-thumb slider-thumb-right\" style=\"left: 74%\"></div></div><input type=\"range\" name=\"price_min\" id=\"price_min\" value=\"-7\" max=\"6\" min=\"-9\" step=\"2\" /><input type=\"range\" name=\"price_max\" id=\"price_max\" value=\"2\" max=\"6\" min=\"-9\" step=\"2\" /></div>"
14
+ actual = UiBibz::Ui::Core::Forms::Numbers::SliderField.new('myrange', status: :secondary, track_status: :dark, thumb_max: 2, thumb_min: -7, min: -9, max: 6, step: 2, input_name_max: "price_max", input_name_min: "price_min").render
15
+ expected = "<div class=\"slider-secondary slider slider-track-dark\" min=\"-9\" max=\"6\" step=\"2\"><div><div class=\"slider-inverse-left\" style=\"width: 100%\"></div><div class=\"slider-inverse-right\" style=\"width: 100%\"></div><div class=\"slider-range\" style=\"left: 13%; right: 26%\"></div><div class=\"slider-thumb slider-thumb-left\" style=\"left: 13%\"></div><div class=\"slider-thumb slider-thumb-right\" style=\"left: 74%\"></div></div><input type=\"range\" name=\"price_min\" id=\"price_min\" value=\"-7\" max=\"6\" min=\"-9\" step=\"2\" /><input type=\"range\" name=\"price_max\" id=\"price_max\" value=\"2\" max=\"6\" min=\"-9\" step=\"2\" /></div>"
16
16
 
17
17
  assert_equal expected, actual
18
18
  end
@@ -67,4 +67,28 @@ class SurroundFieldTest < ActionView::TestCase
67
67
 
68
68
  assert_equal expected, actual
69
69
  end
70
+
71
+ test "surround with all fields" do
72
+ actual = UiBibz::Ui::Core::Forms::Surrounds::SurroundField.new.tap do |sf|
73
+ sf.glyph 'gem'
74
+ sf.addon "test"
75
+ sf.button "button"
76
+ sf.button_group do |bg|
77
+ bg.button "test"
78
+ end
79
+ sf.button_link "link", url: "#"
80
+ sf.checkbox_field :check
81
+ sf.radio_field :radio
82
+ sf.text_field :text
83
+ sf.date_picker_field :date
84
+ sf.dropdown_select_field :dropdown_select
85
+ sf.select_field :select
86
+ sf.auto_complete_field :auto
87
+ sf.button_refresh
88
+ end.render
89
+
90
+ expected = "<div class=\"input-group ui_surround_field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-gem\"></i></span><span class=\"input-group-text\">test</span><div class=\"input-group-btn\"><button class=\"btn-secondary btn\">button</button></div><div class=\"input-group-btn\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div><div class=\"input-group-btn\"><a class=\"btn-secondary btn\" role=\"button\" href=\"#\">link</a></div><div class=\"input-group-text\" label=\"false\"><input type=\"checkbox\" name=\"check\" id=\"check\" value=\"1\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"check\">check</label></div><div class=\"input-group-text\" label=\"false\"><input type=\"radio\" name=\"radio\" id=\"radio_\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"radio_\">radio</label></div><input type=\"text\" name=\"text\" id=\"text\" class=\"form-control\" /><input type=\"text\" name=\"date\" id=\"date\" data-date-locale=\"en\" data-provide=\"datepicker\" data-date-format=\"yyyy-mm-dd\" data-date-today-btn=\"linked\" data-date-toggle-active=\"true\" class=\"date_picker form-control\" /><select name=\"dropdown_select\" id=\"dropdown_select\" data-wrapper-classes=\"input-group-btn\" class=\"btn-secondary multi-select-field\"></select><select name=\"select\" id=\"select\" class=\"select-field form-control form-select\"></select><input type=\"text\" name=\"auto\" id=\"auto\" class=\"form-control auto-complete-field\" autocomplete=\"true\" list=\"auto-datalist\" /><datalist id=\"auto-datalist\"></datalist><span data-connect=\"{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;remote&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;&quot;,&quot;url&quot;:&quot;&quot;,&quot;data&quot;:[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div>"
91
+
92
+ assert_equal expected, actual
93
+ end
70
94
  end
@@ -3,16 +3,14 @@
3
3
  require 'test_helper'
4
4
  class NavbarTest < ActionView::TestCase
5
5
  test 'Navbar' do
6
- actual = UiBibz::Ui::Core::Navigations::Navbar.new.tap do |nb|
7
- end
6
+ actual = UiBibz::Ui::Core::Navigations::Navbar.new
8
7
  expected = "<nav class=\"navbar navbar-light navbar-expand-lg\"><div class=\"container\"><button class=\"navbar-toggler hidden-sm-up\" type=\"button\" data-toggle=\"collapse\" data-target=\"##{actual.id}\">☰</button><div class=\"navbar-collapse collapse\" id=\"#{actual.id}\"></div></div></nav>"
9
8
 
10
9
  assert_equal expected, actual.render
11
10
  end
12
11
 
13
12
  test 'Navbar with options' do
14
- actual = UiBibz::Ui::Core::Navigations::Navbar.new(title: 'Brand', expand_size: :xs, status: :primary, position: :top, brand_position: :right).tap do |nb|
15
- end
13
+ actual = UiBibz::Ui::Core::Navigations::Navbar.new(title: 'Brand', expand_size: :xs, status: :primary, position: :top, brand_position: :right)
16
14
  expected = "<nav class=\"bg-primary navbar navbar-light fixed-top navbar-expand-xs\"><div class=\"container\"><button class=\"navbar-toggler hidden-sm-up\" type=\"button\" data-toggle=\"collapse\" data-target=\"##{actual.id}\">☰</button><span class=\"navbar-brand\">Brand</span><div class=\"navbar-collapse collapse\" id=\"#{actual.id}\"></div></div></nav>"
17
15
 
18
16
  assert_equal expected, actual.render
@@ -57,4 +57,18 @@ class BreakdownClassNameGeneratorTest < ActionView::TestCase
57
57
 
58
58
  assert_equal expected, actual
59
59
  end
60
+
61
+ test "name generator with order" do
62
+ actual = UiBibz::Utils::BreakdownClassNameGenerator.new(md: { num: 2 }, order: 2).class_names
63
+ expected = %w[col-md-2 order-2]
64
+
65
+ assert_equal expected, actual
66
+ end
67
+
68
+ test "name generator with md: 8" do
69
+ actual = UiBibz::Utils::BreakdownClassNameGenerator.new(md: 8).class_names
70
+ expected = ["col-md-8"]
71
+
72
+ assert_equal expected, actual
73
+ end
60
74
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ui_bibz
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha5
4
+ version: 3.0.0.alpha6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thooams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-29 00:00:00.000000000 Z
11
+ date: 2020-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -427,6 +427,7 @@ files:
427
427
  - lib/ui_bibz/ui/ux/containers/components/panel_footer.rb
428
428
  - lib/ui_bibz/ui/ux/containers/components/panel_group.rb
429
429
  - lib/ui_bibz/ui/ux/containers/components/panel_header.rb
430
+ - lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb
430
431
  - lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb
431
432
  - lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb
432
433
  - lib/ui_bibz/ui/ux/containers/panel.rb