ui_bibz 2.2.2 → 2.3.0
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/app/assets/javascripts/form.coffee +1 -5
- data/app/assets/javascripts/interface.coffee +8 -0
- data/app/assets/javascripts/ui_bibz.coffee.erb +1 -1
- data/app/assets/stylesheets/forms.sass +5 -0
- data/app/assets/stylesheets/notifications.sass +8 -1
- data/config/initializers/will_paginate.rb +1 -1
- data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -0
- data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +17 -0
- data/lib/ui_bibz/infos.rb +2 -2
- data/lib/ui_bibz/ui/base.rb +1 -1
- data/lib/ui_bibz/ui/core/boxes/card.rb +2 -0
- data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +65 -0
- data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +12 -1
- data/lib/ui_bibz/ui/core/component.rb +12 -4
- data/lib/ui_bibz/ui/core/forms/buttons/button.rb +14 -4
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +0 -1
- data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +4 -2
- data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +9 -12
- data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +7 -14
- data/lib/ui_bibz/ui/core/navigations/link.rb +12 -0
- data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +50 -0
- data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +62 -0
- data/lib/ui_bibz/ui/core/notifications/spinner.rb +89 -0
- data/lib/ui_bibz/ui/core/notifications/toast.rb +97 -0
- data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +16 -5
- data/lib/ui_bibz.rb +3 -0
- data/test/simple_form_test.rb +7 -7
- data/test/ui/core/component_test.rb +1 -0
- data/test/ui/core/forms/buttons/button_group_test.rb +3 -3
- data/test/ui/core/forms/buttons/button_test.rb +44 -9
- data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
- data/test/ui/core/forms/selects/dropdown_select_field_test.rb +10 -10
- data/test/ui/core/forms/selects/select_field_test.rb +2 -2
- data/test/ui/core/forms/surrounds/surround_field_test.rb +2 -2
- data/test/ui/core/navigations/link_test.rb +26 -0
- data/test/ui/core/navigations/navbar_test.rb +1 -1
- data/test/ui/core/navigations/toolbar_test.rb +2 -2
- data/test/ui/core/notifications/spinner_test.rb +33 -0
- data/test/ui/core/notifications/toast_test.rb +15 -0
- data/test/ui/ux/containers/panel_test.rb +4 -4
- data/ui_bibz.gemspec +1 -1
- data/vendor/assets/javascripts/bootstrap-select.js.map +1 -1
- data/vendor/assets/javascripts/bootstrap-select.min.js +3 -3
- data/vendor/assets/stylesheets/bootstrap-select.css.map +1 -1
- data/vendor/assets/stylesheets/bootstrap-select.min.css +3 -3
- metadata +19 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bb30ee2a67229de4844d20f26278dd14780ea2b6d385cf2694a40410120cccf
|
4
|
+
data.tar.gz: 258345dcfd10af021551eedbdddd844b93a6f8854bd82cfdacb18c4b4e341b79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cbddb81ee89849fafbc96197d7a769e711592ed506e6332701138d129bb9c742c959acb78391ffa93c4c4be67acc642bbf709da40c1de4b3322a1d3174a6088
|
7
|
+
data.tar.gz: a42596aa4b47ed030cfec591164dbddd0a8f8e53b754b69cc66b49ac04eb085b7c4d80661305c673225c4f7a28fdb01878ba6258267d1b62d396f058d3d08a2d
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ui_bibz (2.
|
5
|
-
bootstrap (= 4.
|
4
|
+
ui_bibz (2.3.0)
|
5
|
+
bootstrap (= 4.3.1)
|
6
6
|
haml
|
7
7
|
haml-rails
|
8
8
|
jquery-rails (>= 3.1.0)
|
@@ -61,7 +61,7 @@ GEM
|
|
61
61
|
autoprefixer-rails (9.4.7)
|
62
62
|
execjs
|
63
63
|
awesome_print (1.8.0)
|
64
|
-
bootstrap (4.
|
64
|
+
bootstrap (4.3.1)
|
65
65
|
autoprefixer-rails (>= 9.1.0)
|
66
66
|
popper_js (>= 1.14.3, < 2)
|
67
67
|
sassc-rails (>= 2.0.0)
|
@@ -216,7 +216,7 @@ DEPENDENCIES
|
|
216
216
|
minitest
|
217
217
|
simple_form
|
218
218
|
simplecov
|
219
|
-
sqlite3
|
219
|
+
sqlite3 (= 1.3.13)
|
220
220
|
ui_bibz!
|
221
221
|
|
222
222
|
BUNDLED WITH
|
@@ -13,11 +13,7 @@
|
|
13
13
|
$('.ui-bibz-connect').inputConnected()
|
14
14
|
|
15
15
|
selectPicker: ->
|
16
|
-
$('select.dropdown-select-field').selectpicker
|
17
|
-
iconBase: 'fa'
|
18
|
-
tickIcon: 'fa-check'
|
19
|
-
#style: 'btn-secondary'
|
20
|
-
showTick: false
|
16
|
+
$('select.dropdown-select-field').selectpicker()
|
21
17
|
|
22
18
|
switch: ->
|
23
19
|
$('input.switch-field').bootstrapSwitch({ size: 'large' })
|
@@ -8,6 +8,8 @@
|
|
8
8
|
@popover()
|
9
9
|
@notify()
|
10
10
|
@fileInputBrowser()
|
11
|
+
@toast()
|
12
|
+
@collapse()
|
11
13
|
|
12
14
|
nav: ->
|
13
15
|
#$('.nav-tabs .nav-item .nav-link').tab('show')
|
@@ -48,3 +50,9 @@
|
|
48
50
|
else if (!el.is(':checked'))
|
49
51
|
el.prop('readonly', true)
|
50
52
|
el.prop('indeterminate', true)
|
53
|
+
|
54
|
+
toast: ->
|
55
|
+
$('.toast').toast()
|
56
|
+
|
57
|
+
collapse: ->
|
58
|
+
$('.collapse').collapse()
|
@@ -23,5 +23,12 @@
|
|
23
23
|
.fab
|
24
24
|
line-height: 0.7 !important
|
25
25
|
|
26
|
-
span:not(.input-group-addon) .glyph
|
26
|
+
span:not(.input-group-addon, .btn) .glyph
|
27
27
|
margin-top: -0.1rem
|
28
|
+
|
29
|
+
.input-group-btn span svg
|
30
|
+
margin: 0.25rem
|
31
|
+
|
32
|
+
.toast .toast-header img
|
33
|
+
width: 20px
|
34
|
+
height: 20px
|
@@ -15,6 +15,15 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# Card Accordion
|
19
|
+
#
|
20
|
+
# +options+ (Hash)
|
21
|
+
# +html_options+ (Hash)
|
22
|
+
#
|
23
|
+
def ui_card_accordion content = nil, options = nil, html_options = nil, &block
|
24
|
+
UiBibz::Ui::Core::Boxes::CardAccordion.new(content, options, html_options).tap(&block).render
|
25
|
+
end
|
26
|
+
|
18
27
|
# Card Group Component
|
19
28
|
#
|
20
29
|
# +options+ (Hash)
|
@@ -34,6 +34,23 @@ module UiBibz::Helpers::Ui::Core::NotificationsHelper
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
# Toast Component
|
38
|
+
#
|
39
|
+
# +options+ (Hash)
|
40
|
+
# +html_options+ (Hash)
|
41
|
+
def ui_toast content = nil, options = nil, html_options = nil, &block
|
42
|
+
UiBibz::Ui::Core::Notifications::Toast.new(content, options, html_options).tap(&block).render
|
43
|
+
end
|
44
|
+
|
45
|
+
# Spinner Component
|
46
|
+
#
|
47
|
+
# +options+ (Hash)
|
48
|
+
# +html_options+ (Hash)
|
49
|
+
#
|
50
|
+
def ui_spinner content = nil, options = nil, html_options = nil, &block
|
51
|
+
UiBibz::Ui::Core::Notifications::Spinner.new(content, options, html_options, &block).render
|
52
|
+
end
|
53
|
+
|
37
54
|
private
|
38
55
|
|
39
56
|
def is_tap content, options
|
data/lib/ui_bibz/infos.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module UiBibz
|
2
2
|
NAME = "Ui Bibz"
|
3
|
-
VERSION = "2.
|
3
|
+
VERSION = "2.3.0"
|
4
4
|
DESCRIPTION = "A Rails Interface Framework using Bootstrap."
|
5
5
|
SUMMARY = "Create your project with Ui Bibz. Over a thirty reusable components built to provide iconography, dropdowns, input groups, navigation, alerts, and much more."
|
6
6
|
LICENSE = "MIT"
|
7
7
|
FONTAWESOME_VERSION = "5.7.0"
|
8
|
-
BOOTSTRAP_VERSION = "4.
|
8
|
+
BOOTSTRAP_VERSION = "4.3.1"
|
9
9
|
end
|
data/lib/ui_bibz/ui/base.rb
CHANGED
@@ -108,8 +108,10 @@ module UiBibz::Ui::Core::Boxes
|
|
108
108
|
def body content = nil, options = nil, html_options = nil, &block
|
109
109
|
options, content = inherit_options(content, options, block)
|
110
110
|
if is_tap(content, options)
|
111
|
+
content = (content || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
|
111
112
|
@items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options).tap(&block).render
|
112
113
|
else
|
114
|
+
options = (options || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
|
113
115
|
@items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options, &block).render
|
114
116
|
end
|
115
117
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module UiBibz::Ui::Core::Boxes
|
2
|
+
|
3
|
+
# Create a card accordion
|
4
|
+
#
|
5
|
+
# ==== Attributes
|
6
|
+
#
|
7
|
+
# * +content+ - Content of element
|
8
|
+
# * +options+ - Options of element
|
9
|
+
# * +html_options+ - Html Options of element
|
10
|
+
#
|
11
|
+
# ==== Options
|
12
|
+
#
|
13
|
+
# You can add HTML attributes using the +html_options+.
|
14
|
+
# You can pass arguments in options attribute:
|
15
|
+
#
|
16
|
+
# ==== Signatures
|
17
|
+
#
|
18
|
+
# UiBibz::Ui::Core::Boxes::CardAccordion.new(content, options = nil, html_options = nil)
|
19
|
+
#
|
20
|
+
# UiBibz::Ui::Core::Boxes::CardAccordion.new(options = nil, html_options = nil) do |cg|
|
21
|
+
# cg.card content, options, html_options, &block
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# ==== Examples
|
25
|
+
#
|
26
|
+
# UiBibz::Ui::Core::Boxes::CardAccordion.new do |cg|
|
27
|
+
# cg.card 'Exemple 1'
|
28
|
+
# cg.card 'Exemple 2'
|
29
|
+
# cg.card 'Exemple 3'
|
30
|
+
# end.render
|
31
|
+
#
|
32
|
+
class CardAccordion < UiBibz::Ui::Core::Component
|
33
|
+
|
34
|
+
# See UiBibz::Ui::Core::Component.initialize
|
35
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
36
|
+
super
|
37
|
+
@items = []
|
38
|
+
end
|
39
|
+
|
40
|
+
# Render html tag
|
41
|
+
def pre_render
|
42
|
+
content_tag :div, @items.join.html_safe, html_options
|
43
|
+
end
|
44
|
+
|
45
|
+
def card content = nil, options = nil, html_options = nil, &block
|
46
|
+
content = (content || {}).merge({ parent_collapse: id })
|
47
|
+
@items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def id
|
53
|
+
@id ||= generate_id("card-accordion-id")
|
54
|
+
end
|
55
|
+
|
56
|
+
def component_html_classes
|
57
|
+
"accordion"
|
58
|
+
end
|
59
|
+
|
60
|
+
def component_html_options
|
61
|
+
{ id: id }
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -42,7 +42,13 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
42
42
|
|
43
43
|
# Render html tag
|
44
44
|
def pre_render
|
45
|
-
|
45
|
+
if options[:collapse]
|
46
|
+
content_tag :div, class: join_classes("collapse", show), id: options[:collapse], "data-parent": "##{ options[:parent_collapse] }" do
|
47
|
+
content_tag :div, @items.join.html_safe, html_options
|
48
|
+
end
|
49
|
+
else
|
50
|
+
content_tag :div, @items.join.html_safe, html_options
|
51
|
+
end
|
46
52
|
end
|
47
53
|
|
48
54
|
def title content = nil, options = nil, html_options = nil, &block
|
@@ -67,5 +73,10 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
67
73
|
"text-#{ @options[:status] }" if @options[:outline]
|
68
74
|
end
|
69
75
|
|
76
|
+
def show
|
77
|
+
ap @options[:show]
|
78
|
+
"show" if @options[:show]
|
79
|
+
end
|
80
|
+
|
70
81
|
end
|
71
82
|
end
|
@@ -104,11 +104,18 @@ module UiBibz::Ui::Core
|
|
104
104
|
# Override this method to add html data
|
105
105
|
def component_html_data
|
106
106
|
# To stimulusjs
|
107
|
-
|
108
|
-
add_html_data
|
109
|
-
|
107
|
+
data_target = html_options.try(:[], :data).try(:[], :target) || options.try(:delete, :target)
|
108
|
+
add_html_data(:target, data_target) unless data_target.nil?
|
109
|
+
|
110
|
+
data_controller = html_options.try(:[], :data).try(:[], :controller) || options.try(:delete, :controller)
|
111
|
+
add_html_data(:controller, data_controller) unless data_controller.nil?
|
112
|
+
|
113
|
+
data_action = html_options.try(:[], :data).try(:[], :action) || options.try(:delete, :action)
|
114
|
+
add_html_data(:action, data_action) unless data_action.nil?
|
115
|
+
|
110
116
|
# To turbolinks
|
111
|
-
|
117
|
+
data_turbolinks = html_options.try(:[], :data).try(:[], :turbolinks) || options.try(:delete, :turbolinks)
|
118
|
+
add_html_data(:turbolinks, data_turbolinks) unless data_turbolinks.nil?
|
112
119
|
end
|
113
120
|
|
114
121
|
# Override this method to add html Options
|
@@ -163,6 +170,7 @@ module UiBibz::Ui::Core
|
|
163
170
|
def initialize_component_html_data
|
164
171
|
component_html_data
|
165
172
|
popover_data_html
|
173
|
+
tooltip_data_html
|
166
174
|
end
|
167
175
|
|
168
176
|
def initialize_component_html_options
|
@@ -65,6 +65,7 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
65
65
|
|
66
66
|
def button_html_tag
|
67
67
|
content_tag :button, html_options do
|
68
|
+
concat spinner_html unless options[:spinner].nil?
|
68
69
|
concat glyph_and_content_html(options[:text].nil? ? @content : '')
|
69
70
|
concat badge_html unless options[:badge].nil?
|
70
71
|
end
|
@@ -77,18 +78,20 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
77
78
|
def component_html_options
|
78
79
|
opts = super
|
79
80
|
opts = opts.merge(toggle) unless options[:toggle].nil?
|
81
|
+
opts = opts.merge(collapse) unless options[:collapse].nil?
|
80
82
|
opts = opts.merge(active_html_options) if options[:state] == :active
|
81
83
|
opts = opts.merge({ disabled: 'disabled' }) if options[:state] == :disabled
|
82
84
|
opts
|
83
85
|
end
|
84
86
|
|
85
|
-
def
|
86
|
-
|
87
|
-
|
87
|
+
def collapse
|
88
|
+
attrs = { "data-toggle": "collapse", "data-target": "##{ options[:collapse] }" }
|
89
|
+
attrs = attrs.merge({ "aria-expanded": true }) if options[:active_collapse]
|
90
|
+
attrs
|
88
91
|
end
|
89
92
|
|
90
93
|
def status
|
91
|
-
["btn", outline, options[:status]].compact.join('-')
|
94
|
+
["btn", outline, options[:status] || "secondary"].compact.join('-')
|
92
95
|
end
|
93
96
|
|
94
97
|
def outline
|
@@ -125,6 +128,13 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
125
128
|
end
|
126
129
|
end
|
127
130
|
|
131
|
+
def spinner_html
|
132
|
+
opts = { size: :sm, tag: :span, class: options[:text] == false ? nil : 'mr-2' }
|
133
|
+
opts = opts.merge(options[:spinner]) if options[:spinner].kind_of? Hash
|
134
|
+
|
135
|
+
UiBibz::Ui::Core::Notifications::Spinner.new(nil, opts).render
|
136
|
+
end
|
137
|
+
|
128
138
|
# :lg, :sm or :xs
|
129
139
|
def size
|
130
140
|
"btn-#{ options[:size] }" if options[:size]
|
@@ -60,7 +60,6 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
60
60
|
private
|
61
61
|
|
62
62
|
def checkbox_field_html_tag
|
63
|
-
options[:action] = html_options[:data].delete(:action)
|
64
63
|
content_tag(:div, html_options.except(:id, "data-action")) do
|
65
64
|
concat hidden_field_tag content, '0', id: "#{ content }-hidden"
|
66
65
|
concat check_box_tag content, options[:value] || '1', options[:checked] || html_options[:checked], checkbox_html_options
|
@@ -26,6 +26,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
|
|
26
26
|
# * +name+ - String
|
27
27
|
# * +size+ - Integer
|
28
28
|
# * +type+ - Symbol
|
29
|
+
# * +html_button+ - Hash
|
29
30
|
#
|
30
31
|
# ==== Signatures
|
31
32
|
#
|
@@ -119,10 +120,11 @@ module UiBibz::Ui::Core::Forms::Dropdowns
|
|
119
120
|
end
|
120
121
|
|
121
122
|
def button_html
|
123
|
+
html_button = options[:html_button] || {}
|
122
124
|
if options[:tag] == :a
|
123
|
-
content_tag dropdown_tag, button_content, class: join_classes("btn", button_status, state, size, "dropdown-toggle"), href: '#', role: 'button', "data-toggle" => 'dropdown', "aria-haspopup" => true, "aria-expanded" => false, "id" => id
|
125
|
+
content_tag dropdown_tag, button_content, { class: join_classes("btn", button_status, state, size, "dropdown-toggle"), href: '#', role: 'button', "data-toggle" => 'dropdown', "aria-haspopup" => true, "aria-expanded" => false, "id" => id }.merge(html_button)
|
124
126
|
else
|
125
|
-
content_tag dropdown_tag, button_content, class: join_classes("btn", button_status, state, size, "dropdown-toggle"), type: 'button', "data-toggle" => 'dropdown', "aria-haspopup" => true, "aria-expanded" => false, "id" => id
|
127
|
+
content_tag dropdown_tag, button_content, { class: join_classes("btn", button_status, state, size, "dropdown-toggle"), type: 'button', "data-toggle" => 'dropdown', "aria-haspopup" => true, "aria-expanded" => false, "id" => id }.merge(html_button)
|
126
128
|
end
|
127
129
|
end
|
128
130
|
|
@@ -75,16 +75,17 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
75
75
|
private
|
76
76
|
|
77
77
|
def component_html_options
|
78
|
-
super.merge({
|
79
|
-
multiple:
|
80
|
-
disabled
|
81
|
-
include_blank
|
82
|
-
prompt
|
83
|
-
|
78
|
+
super.merge({}.tap do |h|
|
79
|
+
h[:multiple] = true if options[:multiple]
|
80
|
+
h[:disabled] = options[:state] == :disabled
|
81
|
+
h[:include_blank] = options[:include_blank]
|
82
|
+
h[:prompt] = options[:prompt]
|
83
|
+
h[:title] = options[:placeholder] unless options[:placeholder].nil?
|
84
|
+
end)
|
84
85
|
end
|
85
86
|
|
86
87
|
def component_html_classes
|
87
|
-
super << ['dropdown-select-field', show_tick,
|
88
|
+
super << ['dropdown-select-field', show_tick, dropup]
|
88
89
|
end
|
89
90
|
|
90
91
|
def component_html_data
|
@@ -114,7 +115,7 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
114
115
|
end
|
115
116
|
|
116
117
|
def style
|
117
|
-
add_html_data('style', "btn-#{ options[:status]}")
|
118
|
+
add_html_data('style', "btn-#{ options[:status] || :secondary }")
|
118
119
|
end
|
119
120
|
|
120
121
|
def menu_size
|
@@ -139,10 +140,6 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
139
140
|
'show-tick' if options[:show_tick]
|
140
141
|
end
|
141
142
|
|
142
|
-
def show_menu_arrow
|
143
|
-
'show-menu-arrow' if options[:show_menu_arrow]
|
144
|
-
end
|
145
|
-
|
146
143
|
def dropup
|
147
144
|
'dropup' if options[:dropup]
|
148
145
|
end
|
@@ -18,15 +18,8 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
18
18
|
# * +status+ - status of élement with symbol value:
|
19
19
|
# (+:primary+, +:secondary+, +:info+, +:warning+, +:danger+, +:link+)
|
20
20
|
# * +option_tags+ - Array, Object [required]
|
21
|
-
# * +
|
22
|
-
#
|
23
|
-
# * +selected_text_format+ - String
|
24
|
-
# * +menu_size+ - Integer
|
25
|
-
# * +header+ - String
|
26
|
-
# * +actions_box+ - Boolean
|
27
|
-
# * +show_tick+ - Boolean
|
28
|
-
# * +show_menu_arrow+ - Boolean
|
29
|
-
# * +dropup+ - Boolean
|
21
|
+
# * +size+
|
22
|
+
# (+:xs+, +:sm+, +:lg+)
|
30
23
|
# * +append+ - String, Html
|
31
24
|
# * +prepend+ - String, Html
|
32
25
|
# * +connect+ - Hash
|
@@ -55,11 +48,11 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
55
48
|
#
|
56
49
|
# ==== Examples
|
57
50
|
#
|
58
|
-
# UiBibz::Ui::Core::Forms::Selects::SelectField.new('fruits', { option_tags: list_of_fruits
|
51
|
+
# UiBibz::Ui::Core::Forms::Selects::SelectField.new('fruits', { option_tags: list_of_fruits }, { class: 'test' }).render
|
59
52
|
#
|
60
|
-
# UiBibz::Ui::Core::Forms::Selects::SelectField.new({ option_tags: list_of_fruits
|
53
|
+
# UiBibz::Ui::Core::Forms::Selects::SelectField.new({ option_tags: list_of_fruits }, { class: 'test' }) do
|
61
54
|
# 'fruits'
|
62
|
-
# end
|
55
|
+
# end.render
|
63
56
|
#
|
64
57
|
# ==== Helper
|
65
58
|
#
|
@@ -75,7 +68,7 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
75
68
|
private
|
76
69
|
|
77
70
|
def component_html_classes
|
78
|
-
super << ["select-field", "form-control", size]
|
71
|
+
super << ["select-field", "form-control", "custom-select", size]
|
79
72
|
end
|
80
73
|
|
81
74
|
def component_options
|
@@ -83,7 +76,7 @@ module UiBibz::Ui::Core::Forms::Selects
|
|
83
76
|
end
|
84
77
|
|
85
78
|
def size
|
86
|
-
"
|
79
|
+
"custom-select-#{ options[:size] }" unless options[:size].nil?
|
87
80
|
end
|
88
81
|
|
89
82
|
end
|
@@ -52,6 +52,18 @@ module UiBibz::Ui::Core::Navigations
|
|
52
52
|
|
53
53
|
private
|
54
54
|
|
55
|
+
def component_html_options
|
56
|
+
opts = super
|
57
|
+
opts = opts.merge(collapse) unless options[:collapse].nil?
|
58
|
+
opts
|
59
|
+
end
|
60
|
+
|
61
|
+
def collapse
|
62
|
+
attrs = { role: "button", "data-toggle": "collapse", "data-target": "##{ options[:collapse] }" }
|
63
|
+
attrs = attrs.merge({ "aria-expanded": true }) if options[:active_collapse]
|
64
|
+
attrs
|
65
|
+
end
|
66
|
+
|
55
67
|
def text
|
56
68
|
@options[:text].nil? ? true : @options[:text]
|
57
69
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module UiBibz::Ui::Core::Notifications::Components
|
2
|
+
|
3
|
+
# Create a alert body
|
4
|
+
#
|
5
|
+
# ==== Attributes
|
6
|
+
#
|
7
|
+
# * +content+ - Content of element
|
8
|
+
# * +options+ - Options of element
|
9
|
+
# * +html_options+ - Html Options of element
|
10
|
+
#
|
11
|
+
# ==== Options
|
12
|
+
#
|
13
|
+
# You can add HTML attributes using the +html_options+.
|
14
|
+
# You can pass arguments in options attribute:
|
15
|
+
#
|
16
|
+
# ==== Signatures
|
17
|
+
#
|
18
|
+
# UiBibz::Ui::Core::Notifications::ToastBody.new(content, options = nil, html_options = nil)
|
19
|
+
#
|
20
|
+
# UiBibz::Ui::Core::Notifications::ToastBody.new(options = nil, html_options = nil) do
|
21
|
+
# content
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# ==== Examples
|
25
|
+
#
|
26
|
+
# UiBibz::Ui::Core::Notifications::ToastBody.new.render
|
27
|
+
#
|
28
|
+
# UiBibz::Ui::Core::Notifications::ToastBody.new do
|
29
|
+
# 'Exemple'
|
30
|
+
# end.render
|
31
|
+
#
|
32
|
+
class ToastBody < UiBibz::Ui::Core::Component
|
33
|
+
|
34
|
+
# See UiBibz::Ui::Core::Component.initialize
|
35
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
36
|
+
super
|
37
|
+
end
|
38
|
+
|
39
|
+
def pre_render
|
40
|
+
content_tag :div, content, html_options
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def component_html_classes
|
46
|
+
"toast-body"
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module UiBibz::Ui::Core::Notifications::Components
|
2
|
+
|
3
|
+
# Create a alert body
|
4
|
+
#
|
5
|
+
# ==== Attributes
|
6
|
+
#
|
7
|
+
# * +content+ - Content of element
|
8
|
+
# * +options+ - Options of element
|
9
|
+
# * +html_options+ - Html Options of element
|
10
|
+
#
|
11
|
+
# ==== Options
|
12
|
+
#
|
13
|
+
# You can add HTML attributes using the +html_options+.
|
14
|
+
# You can pass arguments in options attribute:
|
15
|
+
#
|
16
|
+
# ==== Signatures
|
17
|
+
#
|
18
|
+
# UiBibz::Ui::Core::Notifications::ToastHeader.new(content, options = nil, html_options = nil)
|
19
|
+
#
|
20
|
+
# UiBibz::Ui::Core::Notifications::ToastHeader.new(options = nil, html_options = nil) do
|
21
|
+
# content
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# ==== Examples
|
25
|
+
#
|
26
|
+
# UiBibz::Ui::Core::Notifications::ToastHeader.new.render
|
27
|
+
#
|
28
|
+
# UiBibz::Ui::Core::Notifications::ToastHeader.new do
|
29
|
+
# 'Exemple'
|
30
|
+
# end.render
|
31
|
+
#
|
32
|
+
class ToastHeader < UiBibz::Ui::Core::Component
|
33
|
+
|
34
|
+
# See UiBibz::Ui::Core::Component.initialize
|
35
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
36
|
+
super
|
37
|
+
end
|
38
|
+
|
39
|
+
def pre_render
|
40
|
+
content_tag :div, html_options do
|
41
|
+
concat UiBibz::Ui::Core::Icons::Glyph.new(options[:glyph], class: 'mr-2').render unless options[:glyph].nil?
|
42
|
+
concat image_tag(options[:img], class: 'rounded mr-2') unless options[:img].nil?
|
43
|
+
concat content_tag(:strong, content, class: 'mr-auto')
|
44
|
+
concat content_tag(:small, options[:time], class: 'text-muted') unless options[:time].nil?
|
45
|
+
concat close_button
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def close_button
|
52
|
+
content_tag :button, class: 'ml-2 mb-1 close', "data-dismiss": "toast", "aria-label": "Close" do
|
53
|
+
content_tag(:span, "×", "aria-hidden": true).html_safe
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def component_html_classes
|
58
|
+
"toast-header"
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|