ndr_ui 4.1.2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,6 +50,7 @@ module NdrUi
50
50
  # # => <div class="modal-header">Check it out!!</div>
51
51
  def bootstrap_modal_header_tag(*args, &block)
52
52
  return bootstrap_modal_header_tag(capture(&block), *args) if block_given?
53
+
53
54
  options = args.extract_options!
54
55
  options.stringify_keys!
55
56
 
@@ -58,10 +59,11 @@ module NdrUi
58
59
  # end
59
60
 
60
61
  heading = content_tag(:h4, args.first, class: 'modal-title')
61
- heading = button_tag(content_tag(:span, '×', "aria-hidden": 'true'),
62
- type: 'button', class: 'close', "data-dismiss": 'modal',
63
- "aria-label": 'Close') + heading if options.delete('dismissible')
64
-
62
+ if options.delete('dismissible')
63
+ heading = button_tag(content_tag(:span, '×', 'aria-hidden': 'true'),
64
+ type: 'button', class: 'btn-close', 'data-bs-dismiss': 'modal',
65
+ 'aria-label': 'Close') + heading
66
+ end
65
67
  content_tag(:div, heading, class: 'modal-header')
66
68
  end
67
69
 
@@ -109,21 +111,21 @@ module NdrUi
109
111
  # <%= bootstrap_modal_footer_tag('Button text', readonly: true)
110
112
  # # =>
111
113
  # <div class="modal-footer">
112
- # <button name="button" type="submit" class="btn btn-default" data-dismiss="modal">
114
+ # <button name="button" type="submit" class="btn btn-default" data-bs-dismiss="modal">
113
115
  # Close
114
116
  # </button>
115
117
  # </div>
116
118
  #
117
119
  # <%= bootstrap_modal_footer_tag(readonly: false) do
118
- # button_tag('Non-readonly default', class: 'btn btn-default', "data-dismiss": 'modal') +
119
- # button_tag('Non-readonly primary', class: 'btn btn-primary', "data-dismiss": 'modal')
120
+ # button_tag('Non-readonly default', class: 'btn btn-default', 'data-bs-dismiss': 'modal') +
121
+ # button_tag('Non-readonly primary', class: 'btn btn-primary', 'data-bs-dismiss': 'modal')
120
122
  # end %>
121
123
  # # =>
122
124
  # <div class="modal-footer">
123
- # <button name="button" type="submit" class="btn btn-default" data-dismiss="modal">
125
+ # <button name="button" type="submit" class="btn btn-default" data-bs-dismiss="modal">
124
126
  # Non-readonly default
125
127
  # </button>
126
- # <button name="button" type="submit" class="btn btn-primary" data-dismiss="modal">
128
+ # <button name="button" type="submit" class="btn btn-primary" data-bs-dismiss="modal">
127
129
  # Non-readonly primary
128
130
  # </button>
129
131
  # </div>
@@ -131,7 +133,7 @@ module NdrUi
131
133
  # <%= bootstrap_modal_footer_tag('Button text') %>
132
134
  # # =>
133
135
  # <div class="modal-footer">
134
- # <button name="button" type="submit" class="btn btn-default" data-dismiss="modal">
136
+ # <button name="button" type="submit" class="btn btn-default" data-bs-dismiss="modal">
135
137
  # Button text
136
138
  # </button>
137
139
  # </div>
@@ -139,7 +141,7 @@ module NdrUi
139
141
  # <%= bootstrap_modal_footer_tag %>
140
142
  # # =>
141
143
  # <div class="modal-footer">
142
- # <button name="button" type="submit" class="btn btn-default" data-dismiss="modal">
144
+ # <button name="button" type="submit" class="btn btn-default" data-bs-dismiss="modal">
143
145
  # Don&#39;t save
144
146
  # </button>
145
147
  # <input type="submit" name="commit" value="Save" class="btn btn-primary"
@@ -189,7 +191,7 @@ module NdrUi
189
191
  # Pear form
190
192
  # </div>
191
193
  # <div class="modal-footer">
192
- # <button type="button" class="btn btn-default" data-dismiss="modal">
194
+ # <button type="button" class="btn btn-default" data-bs-dismiss="modal">
193
195
  # Don't save
194
196
  # </button>
195
197
  # <input name="commit" class="btn-primary btn" data-disable-with="Saving&hellip;"
@@ -216,7 +218,7 @@ module NdrUi
216
218
  end
217
219
 
218
220
  def bootstrap_modal_button(label)
219
- button_tag(label, class: 'btn btn-default', "data-dismiss": 'modal')
221
+ button_tag(label, class: 'btn btn-default', 'data-bs-dismiss': 'modal')
220
222
  end
221
223
 
222
224
  private
@@ -1,10 +1,23 @@
1
1
  module NdrUi
2
2
  # Provides helper methods for the Twitter Bootstrap framework
3
3
  module BootstrapHelper # rubocop:disable Metrics/ModuleLength
4
+ include ::NdrUi::Bootstrap::AccordionHelper
4
5
  include ::NdrUi::Bootstrap::BreadcrumbsHelper
6
+ include ::NdrUi::Bootstrap::CardHelper
5
7
  include ::NdrUi::Bootstrap::DropdownHelper
6
8
  include ::NdrUi::Bootstrap::ModalHelper
7
- include ::NdrUi::Bootstrap::PanelHelper
9
+
10
+ TYPE_STYLE_MAP = {
11
+ important: :danger,
12
+ default: :secondary
13
+ }.freeze
14
+
15
+ # ensure `form-control` and `form-select` classes added to select_tag
16
+ def select_tag(name, option_tags = nil, options = {})
17
+ options = css_class_options_merge(options, %w[form-control form-select])
18
+
19
+ super(name, option_tags, options)
20
+ end
8
21
 
9
22
  # Creates an alert box of the given +type+. It supports the following alert box types
10
23
  # <tt>:alert</tt>, <tt>:danger</tt>, <tt>:info</tt> and <tt>:success</tt>.
@@ -29,8 +42,8 @@ module NdrUi
29
42
  # ==== Examples
30
43
  #
31
44
  # <%= bootstrap_alert_tag(:info, 'Check it out!!') %>
32
- # # => <div class="alert alert-info"><a href="#" class="close"
33
- # data-dismiss="alert">&times;</a>Check it out!!</div>
45
+ # # => <div class="alert alert-info"><a href="#" class="btn-close"
46
+ # data-bs-dismiss="alert"></a>Check it out!!</div>
34
47
  #
35
48
  # You can use a block as well if your alert message is hard to fit into the message parameter.
36
49
  # ERb example:
@@ -38,8 +51,8 @@ module NdrUi
38
51
  # <%= bootstrap_alert_tag(:info) do %>
39
52
  # Check it out!!
40
53
  # <% end %>
41
- # # => <div class="alert alert-info"><button type="button" class="close"
42
- # data-dismiss="alert">&times;</button>Check it out!!</div>
54
+ # # => <div class="alert alert-info"><button type="button" class="btn-close"
55
+ # data-bs-dismiss="alert"></button>Check it out!!</div>
43
56
  #
44
57
  # Ids for css and/or javascript are easy to produce:
45
58
  #
@@ -51,7 +64,7 @@ module NdrUi
51
64
  if block_given?
52
65
  message = capture(&block)
53
66
  options = args[1] || {}
54
- return bootstrap_alert_tag(type, message, options)
67
+ bootstrap_alert_tag(type, message, options)
55
68
  else
56
69
  message = args[1] || ''
57
70
  options = args[2] || {}
@@ -65,10 +78,9 @@ module NdrUi
65
78
  end
66
79
  options['class'] = classes.join(' ')
67
80
 
68
- message = button_tag('&times;'.html_safe,
69
- type: 'button',
70
- class: 'close',
71
- "data-dismiss": 'alert') + message if options.delete('dismissible')
81
+ if options.delete('dismissible')
82
+ message = button_tag('', type: 'button', class: 'btn-close', 'data-bs-dismiss': 'alert') + message
83
+ end
72
84
  content_tag(:div, message, options)
73
85
  end
74
86
  end
@@ -87,8 +99,8 @@ module NdrUi
87
99
  # # => <span class="label label-info">Check it out!!</span>
88
100
  #
89
101
  def bootstrap_label_tag(type, message)
90
- classes = ['label', "label-#{type}"]
91
- content_tag(:span, message, class: classes.join(' '))
102
+ style = TYPE_STYLE_MAP[type] || type
103
+ content_tag(:span, message, class: "badge text-bg-#{style}")
92
104
  end
93
105
 
94
106
  # Creates an bootstrap badge of the given +type+. Bootstrap 3 does not support any types.
@@ -100,13 +112,11 @@ module NdrUi
100
112
  # ==== Examples
101
113
  #
102
114
  # <%= bootstrap_badge_tag(:success, 'Check it out!!') %>
103
- # # => <span class="badge">Check it out!!</span> <%# Bootstrap 3 %>
115
+ # # => <span class="badge rounded-pill text-bg-success">Check it out!!</span>
104
116
  #
105
- # TODO: In bootstrap 4, these will likely need to be implemented using "pill labels",
106
- # which will once again allow the `type` argument to colour them.
107
- #
108
- def bootstrap_badge_tag(_type, count)
109
- content_tag(:span, count, class: 'badge')
117
+ def bootstrap_badge_tag(type, count)
118
+ style = TYPE_STYLE_MAP[type] || type
119
+ content_tag(:span, count, class: "badge rounded-pill text-bg-#{style}")
110
120
  end
111
121
 
112
122
  # Creates a simple bootstrap navigation caret.
@@ -132,13 +142,15 @@ module NdrUi
132
142
  # ==== Examples
133
143
  #
134
144
  # <%= bootstrap_dropdown_toggle_tag('Check it out!!') %>
135
- # # => <a href="#" class="dropdown-toggle" data-toggle="dropdown">Check it
136
- # out!! <b class="caret"></b></a>
145
+ # # => <a href="#" role="button" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
146
+ # Check it out!! <b class="caret"></b></a>
137
147
  def bootstrap_dropdown_toggle_tag(body)
138
148
  link_to(ERB::Util.html_escape(body) + ' '.html_safe + bootstrap_caret_tag,
139
149
  '#',
140
- class: 'dropdown-toggle',
141
- 'data-toggle': 'dropdown')
150
+ role: 'button',
151
+ class: 'nav-link dropdown-toggle',
152
+ 'data-bs-toggle': 'dropdown',
153
+ 'aria-expanded': 'false')
142
154
  end
143
155
 
144
156
  # Creates a simple bootstrap icon.
@@ -149,10 +161,17 @@ module NdrUi
149
161
  #
150
162
  # ==== Examples
151
163
  #
152
- # <%= bootstrap_icon_tag(:search) %>
164
+ # <%= bootstrap_icon_tag(:search, :bi) %>
165
+ # # => <i class="bi-search"></i>
166
+ #
167
+ # <%= bootstrap_icon_tag(:search, :glyphicon) %>
153
168
  # # => <span class="glyphicon glyphicon-search"></span>
154
- def bootstrap_icon_tag(type)
155
- content_tag(:span, '', class: "glyphicon glyphicon-#{type}")
169
+ def bootstrap_icon_tag(type, set = :glyphicon)
170
+ if set == :bi
171
+ content_tag(:i, '', class: "bi-#{type}")
172
+ else
173
+ content_tag(:span, '', class: "glyphicon glyphicon-#{type}")
174
+ end
156
175
  end
157
176
 
158
177
  # Creates a simple bootstrap icon spinner.
@@ -184,16 +203,16 @@ module NdrUi
184
203
  # ==== Examples
185
204
  #
186
205
  # <%= bootstrap_tab_nav_tag("Fruits", "#fruits", true) %>
187
- # # => <li class="active"><a href="#fruits" data-toggle="tab">Fruits</a></li>
206
+ # # => <li class="active"><a href="#fruits" data-bs-toggle="tab">Fruits</a></li>
188
207
  def bootstrap_tab_nav_tag(title, linkto, active = false)
189
208
  content_tag('li',
190
- link_to(title, linkto, "data-toggle": 'tab'),
209
+ link_to(title, linkto, 'data-bs-toggle': 'tab'),
191
210
  active ? { class: 'active' } : {})
192
211
  end
193
212
 
194
213
  # Convenience wrapper for a bootstrap_list_link_to with badge
195
214
  def bootstrap_list_badge_and_link_to(type, count, name, path)
196
- html = content_tag(:div, bootstrap_badge_tag(type, count), class: 'pull-right') + name
215
+ html = content_tag(:div, bootstrap_badge_tag(type, count), class: 'float-end') + name
197
216
  bootstrap_list_link_to(html, path)
198
217
  end
199
218
 
@@ -219,25 +238,21 @@ module NdrUi
219
238
 
220
239
  # Identical signature to form_for, but uses NdrUi::BootstrapBuilder.
221
240
  # See ActionView::Helpers::FormHelper for details
222
- def bootstrap_form_for(record_or_name_or_array, *args, &proc)
241
+ def bootstrap_form_for(record_or_name_or_array, *args, &_proc)
223
242
  options = args.extract_options!
224
243
  options[:html] ||= {}
225
244
 
226
245
  # :horizontal
227
- if horizontal = options.delete(:horizontal)
228
- # set the form html class for horizontal bootstrap forms
229
- options[:html][:class] ||= ''
230
- classes = (options[:html][:class].split(' ') << 'form-horizontal').uniq.join(' ')
231
- options[:html][:class] = classes
232
- end
246
+ horizontal = options.delete(:horizontal)
233
247
 
234
248
  # stimuls controller, default `form_controller`
235
249
  options[:html][:'data-controller'] ||= ''
236
- controllers = (options[:html][:'data-controller'].split(' ') << 'form').uniq.join(' ')
250
+ controllers = (options[:html][:'data-controller'].split << 'form').uniq.join(' ')
237
251
  options[:html][:'data-controller'] = controllers
238
252
 
239
253
  # We switch autocomplete off by default
240
254
  raise 'autocomplete should be defined an html option' if options[:autocomplete]
255
+
241
256
  options[:html][:autocomplete] ||= 'off'
242
257
 
243
258
  form_for(record_or_name_or_array, *(args << options.merge(builder: NdrUi::BootstrapBuilder))) do |form|
@@ -256,21 +271,14 @@ module NdrUi
256
271
  options[:builder] = NdrUi::BootstrapBuilder
257
272
  horizontal = options.delete(:horizontal)
258
273
 
259
- # :horizontal
260
- if horizontal
261
- # set the form html class for horizontal bootstrap forms
262
- options[:html][:class] ||= ''
263
- classes = (options[:html][:class].split(' ') << 'form-horizontal').uniq.join(' ')
264
- options[:html][:class] = classes
265
- end
266
-
267
274
  # stimuls controller, default `form_controller`
268
275
  options[:html][:'data-controller'] ||= ''
269
- controllers = (options[:html][:'data-controller'].split(' ') << 'form').uniq.join(' ')
276
+ controllers = (options[:html][:'data-controller'].split << 'form').uniq.join(' ')
270
277
  options[:html][:'data-controller'] = controllers
271
278
 
272
279
  # We switch autocomplete off by default
273
280
  raise 'autocomplete should be defined an html option' if options[:autocomplete]
281
+
274
282
  options[:html][:autocomplete] ||= 'off'
275
283
 
276
284
  form_with(**options) do |form|
@@ -331,7 +339,7 @@ module NdrUi
331
339
  #
332
340
  # <%= bootstrap_progressbar_tag(40), type: :danger %>
333
341
  # # => <div class="progress progress-striped active" title="40%"><div
334
- # class="progress-bar progress-bar-danger" style="width:40%"></div></div>
342
+ # class="progress-bar bg-danger" style="width:40%"></div></div>
335
343
  #
336
344
  # ==== Browser compatibility
337
345
  #
@@ -349,7 +357,7 @@ module NdrUi
349
357
  classes << 'progress-striped'
350
358
 
351
359
  type = options.delete('type').to_s
352
- type = " progress-bar-#{type}" unless type.blank?
360
+ type = " bg-#{type}" if type.present?
353
361
 
354
362
  # Animate the progress bar unless something has broken:
355
363
  classes << 'active' unless type == 'danger'
@@ -372,22 +380,18 @@ module NdrUi
372
380
  # bootstrap_horizontal_form_group("The Label", [3, 9]) { 'This is the content' }
373
381
  # # =>
374
382
  # <div class="form-group">
375
- # <label class="col-sm-3 control-label">The Label</label>
383
+ # <label class="col-sm-3 col-form-label">The Label</label>
376
384
  # <div class="col-sm-9">This is the content</div>
377
385
  # </div>
378
386
  #
379
387
  def bootstrap_horizontal_form_group(label = nil, ratio = [2, 10], &block)
380
- label, ratio = nil, label if label.is_a?(Array)
381
-
382
388
  l, r = ratio[0..1].map(&:to_i)
383
389
  offset = label.nil? ? " col-sm-offset-#{l}" : ''
384
390
 
385
391
  # Main content:
386
392
  content = content_tag(:div, class: "col-sm-#{r}" + offset, &block)
387
393
  # Prepend optional label:
388
- unless label.nil?
389
- content = content_tag(:label, label, class: "col-sm-#{l} control-label") + content
390
- end
394
+ content = content_tag(:label, label, class: "col-sm-#{l} col-form-label") + content unless label.nil?
391
395
 
392
396
  content_tag(:div, content, class: 'form-group')
393
397
  end
@@ -454,12 +458,12 @@ module NdrUi
454
458
  # ==== Examples
455
459
  #
456
460
  # <%= new_link('#') %>
457
- # # => <a title="New" class="btn btn-primary btn-xs" href="#">
461
+ # # => <a title="New" class="btn btn-primary btn-sm" href="#">
458
462
  # <span class="glyphicon glyphicon-plus-sign"></span>
459
463
  # </a>
460
464
  #
461
465
  # <%= new_link(Post.new) %>
462
- # # => <a title="New" class="btn btn-primary btn-xs" href="/posts/new">
466
+ # # => <a title="New" class="btn btn-primary btn-sm" href="/posts/new">
463
467
  # <span class="glyphicon glyphicon-plus-sign"></span>
464
468
  # </a>
465
469
  #
@@ -469,7 +473,7 @@ module NdrUi
469
473
  path = new_polymorphic_path(path) if can_generate_polymorphic_path?(path)
470
474
 
471
475
  defaults = {
472
- icon: 'plus-sign', title: 'New', path: path, class: 'btn btn-primary btn-xs'
476
+ icon: 'plus-sign', title: 'New', path: path, class: 'btn btn-primary btn-sm'
473
477
  }
474
478
 
475
479
  link_to_with_icon(defaults.merge(options))
@@ -484,7 +488,7 @@ module NdrUi
484
488
  # ==== Examples
485
489
  #
486
490
  # <%= details_link('#') %>
487
- # # => <a title="Details" class="btn btn-default btn-xs" href="#">
491
+ # # => <a title="Details" class="btn btn-default btn-sm" href="#">
488
492
  # <span class="glyphicon glyphicon-share-alt"></span>
489
493
  # </a>
490
494
  #
@@ -503,7 +507,7 @@ module NdrUi
503
507
  # ==== Examples
504
508
  #
505
509
  # <%= edit_link(#) %>
506
- # # => <a title="Edit" class="btn btn-default btn-xs" href="#">
510
+ # # => <a title="Edit" class="btn btn-default btn-sm" href="#">
507
511
  # <span class="glyphicon glyphicon-pencil"></span>
508
512
  # </a>
509
513
  #
@@ -524,7 +528,7 @@ module NdrUi
524
528
  # ==== Examples
525
529
  #
526
530
  # <%= delete_link('#') %>
527
- # # => <a title="Delete" class="btn btn-xs btn-danger" rel="nofollow" href="#"
531
+ # # => <a title="Delete" class="btn btn-sm btn-outline-danger" rel="nofollow" href="#"
528
532
  # data-method="delete" data-confirm="Are you sure?">
529
533
  # <span class="glyphicon glyphicon-trash icon-white"></span>
530
534
  # </a>'
@@ -533,8 +537,8 @@ module NdrUi
533
537
 
534
538
  defaults = {
535
539
  icon: 'trash icon-white', title: 'Delete', path: path,
536
- class: 'btn btn-xs btn-danger', method: :delete,
537
- 'data-confirm': I18n.translate(:'ndr_ui.confirm_delete', locale: options[:locale])
540
+ class: 'btn btn-sm btn-outline-danger', method: :delete,
541
+ 'data-confirm': I18n.t(:'ndr_ui.confirm_delete', locale: options[:locale])
538
542
  }
539
543
 
540
544
  link_to_with_icon(defaults.merge(options))
@@ -575,13 +579,13 @@ module NdrUi
575
579
  # ==== Examples
576
580
  #
577
581
  # <%= link_to_with_icon( { icon: 'trash icon-white', title: 'Delete', path: '#' } ) %>
578
- # # => <a title="Delete" class="btn btn-default btn-xs" href="#">
582
+ # # => <a title="Delete" class="btn btn-default btn-sm" href="#">
579
583
  # <span class="glyphicon glyphicon-trash icon-white"></span>
580
584
  # </a>'
581
585
  def link_to_with_icon(options = {})
582
- options[:class] ||= 'btn btn-default btn-xs'
586
+ options[:class] ||= 'btn btn-default btn-sm'
583
587
  icon = bootstrap_icon_tag(options.delete(:icon))
584
- content = options.delete(:text) ? icon + ' ' + options[:title] : icon
588
+ content = options.delete(:text) ? "#{icon} #{options[:title]}" : icon
585
589
  link_to content, options.delete(:path), options
586
590
  end
587
591
 
@@ -6,10 +6,7 @@ module NdrUi
6
6
  options = options.symbolize_keys
7
7
  css_classes += options[:class].split(' ') if options.include?(:class)
8
8
  yield(css_classes) if block_given?
9
- options[:class] = css_classes.join(' ') unless css_classes.empty?
10
- unless css_classes == css_classes.uniq
11
- fail "Multiple css class definitions: #{css_classes.inspect}"
12
- end
9
+ options[:class] = css_classes.uniq.join(' ') unless css_classes.empty?
13
10
 
14
11
  options
15
12
  end
data/lib/ndr_ui/engine.rb CHANGED
@@ -1,6 +1,7 @@
1
- require 'bootstrap-sass/engine'
1
+ require 'bootstrap/engine'
2
2
  require 'jquery-rails'
3
3
  require 'sprockets/railtie'
4
+ require 'popper_js'
4
5
 
5
6
  module NdrUi
6
7
  # This is where we define the base class for the engine
@@ -2,5 +2,5 @@
2
2
 
3
3
  # This stores the current version of the NdrUi gem. Use semantic versioning http://semver.org
4
4
  module NdrUi
5
- VERSION = '4.1.2'
5
+ VERSION = '5.0.0'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.2
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - NDR Development Team
@@ -11,39 +11,33 @@ cert_chain: []
11
11
  date: 2025-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: bootstrap
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '6.1'
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '7.3'
19
+ version: 5.3.3
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: '6.1'
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '7.3'
26
+ version: 5.3.3
33
27
  - !ruby/object:Gem::Dependency
34
- name: bootstrap-sass
28
+ name: dartsass-sprockets
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
31
+ - - ">="
38
32
  - !ruby/object:Gem::Version
39
- version: 3.4.1
33
+ version: '0'
40
34
  type: :runtime
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
- - - "~>"
38
+ - - ">="
45
39
  - !ruby/object:Gem::Version
46
- version: 3.4.1
40
+ version: '0'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: jquery-rails
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +52,26 @@ dependencies:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
54
  version: '4.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '6.1'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '7.3'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '6.1'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '7.3'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: sprockets
63
77
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +114,20 @@ dependencies:
100
114
  - - ">="
101
115
  - !ruby/object:Gem::Version
102
116
  version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: psych
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: '5'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '5'
103
131
  - !ruby/object:Gem::Dependency
104
132
  name: mocha
105
133
  requirement: !ruby/object:Gem::Requirement
@@ -210,6 +238,8 @@ files:
210
238
  - LICENSE.txt
211
239
  - README.md
212
240
  - Rakefile
241
+ - app/assets/fonts/bootstrap-icons.woff
242
+ - app/assets/fonts/bootstrap-icons.woff2
213
243
  - app/assets/images/ndr_ui/indicator-danger.gif
214
244
  - app/assets/images/ndr_ui/indicator-white.gif
215
245
  - app/assets/images/ndr_ui/logo-partition.svg
@@ -218,6 +248,7 @@ files:
218
248
  - app/assets/javascripts/ndr_ui/datepicker.js
219
249
  - app/assets/javascripts/ndr_ui/index.js
220
250
  - app/assets/javascripts/ndr_ui/timeago.js
251
+ - app/assets/stylesheets/ndr_ui/bootstrap-icons.scss
221
252
  - app/assets/stylesheets/ndr_ui/datepicker.scss
222
253
  - app/assets/stylesheets/ndr_ui/index.scss
223
254
  - app/assets/stylesheets/ndr_ui/ndrs_styling.scss
@@ -229,11 +260,11 @@ files:
229
260
  - app/builders/ndr_ui/bootstrap/label_tooltips.rb
230
261
  - app/builders/ndr_ui/bootstrap/readonly.rb
231
262
  - app/builders/ndr_ui/bootstrap_builder.rb
232
- - app/helpers/ndr_ui/bootstrap/accordion.rb
263
+ - app/helpers/ndr_ui/bootstrap/accordion_helper.rb
233
264
  - app/helpers/ndr_ui/bootstrap/breadcrumbs_helper.rb
265
+ - app/helpers/ndr_ui/bootstrap/card_helper.rb
234
266
  - app/helpers/ndr_ui/bootstrap/dropdown_helper.rb
235
267
  - app/helpers/ndr_ui/bootstrap/modal_helper.rb
236
- - app/helpers/ndr_ui/bootstrap/panel_helper.rb
237
268
  - app/helpers/ndr_ui/bootstrap_helper.rb
238
269
  - app/helpers/ndr_ui/css_helper.rb
239
270
  - app/helpers/ndr_ui/timeago_helper.rb
@@ -1,87 +0,0 @@
1
- module NdrUi
2
- module Bootstrap
3
- # This provides accordion
4
- module PanelHelper
5
- PANEL_SUBCLASSES = %w(
6
- panel-default
7
- panel-primary
8
- panel-success
9
- panel-info
10
- panel-warning
11
- panel-danger
12
- ).freeze
13
-
14
- # Creates an accordion wrapper and creates a new NdrUi::Bootstrap::Accordion instance
15
- # Creates an plain or nested bootstrap accordion along with bootstrap_accordion_group
16
- # method at NdrUi::Bootstrap::Accordion class.
17
- #
18
- # ==== Signatures
19
- #
20
- # bootstrap_accordion_tag(dom_id) do |accordion|
21
- # #content for accordion items
22
- # end
23
- #
24
- # ==== Examples
25
- #
26
- # <%= bootstrap_accordion_group :fruit do |fruit_accordion| %>
27
- # <% end %>
28
- # # => <div id="fruit" class="accordion"></div>
29
- def bootstrap_accordion_tag(dom_id, &block)
30
- return unless block_given?
31
- accordion = ::NdrUi::Bootstrap::Accordion.new(dom_id, self)
32
- '<div id="'.html_safe + accordion.dom_id.to_s + '" class="panel-group">'.html_safe +
33
- capture { yield(accordion) } +
34
- '</div>'.html_safe
35
- end
36
-
37
- # Creates a bootstrap panel wrapper. the heading is wrapped in a panel-heading.
38
- # The content is not wrapped in a panel-body to enable seamless tables and lists.
39
- #
40
- # ==== Signatures
41
- #
42
- # bootstrap_panel_tag(heading, options = {}) do
43
- # #content for panel
44
- # end
45
- #
46
- # ==== Examples
47
- #
48
- # <%= bootstrap_panel_tag 'Apples', class: 'panel-warning', id: 'fruit' do %>
49
- # Check it out!!
50
- # <% end %>
51
- # # => <div id="fruit" class="panel panel-warning"><div class="panel-heading">Apples</div>
52
- # Check it out!!</div>
53
- def bootstrap_panel_tag(heading, options = {}, &block)
54
- return unless block_given?
55
- options.stringify_keys!
56
- classes = %w(panel)
57
- classes += options['class'].to_s.split(' ') if options.include?('class')
58
- classes << 'panel-default' if (classes & PANEL_SUBCLASSES).empty?
59
- options['class'] = classes.uniq.join(' ')
60
-
61
- content_tag(:div,
62
- content_tag(:div, heading, class: 'panel-heading') +
63
- capture(&block),
64
- options)
65
- end
66
-
67
- # Creates a simple bootstrap panel body.
68
- #
69
- # ==== Signatures
70
- #
71
- # bootstrap_panel_body_tag do
72
- # #content for panel body
73
- # end
74
- #
75
- # ==== Examples
76
- #
77
- # <%= bootstrap_panel_body_tag do %>
78
- # Check it out!!
79
- # <% end %>
80
- # # => <div class="panel-body">Check it out!!</div>
81
- def bootstrap_panel_body_tag(&block)
82
- return unless block_given?
83
- content_tag(:div, capture(&block), class: 'panel-body')
84
- end
85
- end
86
- end
87
- end