ui_bibz 3.0.0.alpha5 → 3.0.0.alpha6

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 (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