kenui 3.0.5 → 3.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd6226c1beb4a91af254594af74755357cf65684963f97df52dbf78c9038e8ec
4
- data.tar.gz: ddcc71ba974ab433fd473fed5655a339cd934f6bbf937d90c8a4a8bcefff0fdf
3
+ metadata.gz: '066229acdd636d7d7543519552424250387dd943bbcb578c832cd04776e5e73a'
4
+ data.tar.gz: 43dab5be6545a8b75e8ad094aa206e37f5e2b612933eedbd533dd30c3973514b
5
5
  SHA512:
6
- metadata.gz: 562d7984201c7af84c4e5260efa36140cb8b92fff3a9a0ff6af4943774a1337232c3a34cfa39db6ff941fb542bcfb76df64c4db47088b05914f2897cd1ab0ee6
7
- data.tar.gz: fb05e097dfdc329555ad3389b070fdc5d3b3f028e7e86c84ef8becf3b238864fd039b44fef796a2d3e63ae08603f09694cfcd994b8559e9e6e15e8f17d7037bb
6
+ metadata.gz: 4cdcead0624dc2d3982af7f56a8f46506dda7ba945acb3e340f120095b51884cdfc9d17943b17178b11080306334fddf9433109aab42052191531f1d1d31c0b9
7
+ data.tar.gz: 855fe27c05ca2d93b23e38cf5798c089bfea5da36ab1aba305dac12de69ce891694fe05e83e9850793528acec44faf97b71a6c6404532be965e8bb56879dc9f5
@@ -0,0 +1,3 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.8337 4.1665L4.16699 15.8332M4.16699 4.1665L15.8337 15.8332" stroke="#A4A7AE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -5,77 +5,237 @@
5
5
 
6
6
  /* The switch - the box around the slider */
7
7
  .switch {
8
- position: relative;
9
- display: inline-block;
10
- width: 36px;
11
- height: 20px;
8
+ position: relative;
9
+ display: inline-block;
10
+ width: 36px;
11
+ height: 20px;
12
12
  }
13
13
 
14
14
  /* Hide default HTML checkbox */
15
- .switch input {display:none;}
15
+ .switch input {
16
+ display: none;
17
+ }
16
18
 
17
19
  /* The slider */
18
20
  .slider {
19
- position: absolute;
20
- cursor: pointer;
21
- top: 0;
22
- left: 0;
23
- right: 0;
24
- bottom: 0;
25
- background-color: #ccc;
26
- -webkit-transition: .4s;
27
- transition: .4s;
21
+ position: absolute;
22
+ cursor: pointer;
23
+ top: 0;
24
+ left: 0;
25
+ right: 0;
26
+ bottom: 0;
27
+ background-color: #ccc;
28
+ -webkit-transition: 0.4s;
29
+ transition: 0.4s;
28
30
  }
29
31
 
30
32
  .slider:before {
31
- position: absolute;
32
- content: "";
33
- height: 16px;
34
- width: 16px;
35
- left: 2px;
36
- bottom: 2px;
37
- background-color: white;
38
- -webkit-transition: .4s;
39
- transition: .4s;
33
+ position: absolute;
34
+ content: "";
35
+ height: 16px;
36
+ width: 16px;
37
+ left: 2px;
38
+ bottom: 2px;
39
+ background-color: white;
40
+ -webkit-transition: 0.4s;
41
+ transition: 0.4s;
40
42
  }
41
43
 
42
44
  input:checked + .slider {
43
- background-color: #00919d;
45
+ background-color: #00919d;
44
46
  }
45
47
 
46
48
  input:focus + .slider {
47
- box-shadow: 0 0 1px #2196F3;
49
+ box-shadow: 0 0 1px #2196f3;
48
50
  }
49
51
 
50
52
  input:checked + .slider:before {
51
- -webkit-transform: translateX(16px);
52
- -ms-transform: translateX(16px);
53
- transform: translateX(16px);
53
+ -webkit-transform: translateX(16px);
54
+ -ms-transform: translateX(16px);
55
+ transform: translateX(16px);
54
56
  }
55
57
 
56
58
  /* Rounded sliders */
57
59
  .slider.round {
58
- border-radius: 26px;
60
+ border-radius: 26px;
59
61
  }
60
62
 
61
63
  .slider.round:before {
62
- border-radius: 50%;
64
+ border-radius: 50%;
63
65
  }
64
66
 
65
67
  label.capitalize {
66
- text-transform: capitalize;
68
+ text-transform: capitalize;
67
69
  }
68
70
 
69
71
  #events {
70
- margin-bottom: 15px;
72
+ margin-bottom: 15px;
73
+ }
74
+
75
+ #events .form-group {
76
+ margin-bottom: 0;
77
+ }
78
+
79
+ .event-class {
80
+ word-wrap: break-word;
81
+ max-width: 400px;
82
+ font-size: 0.8em;
83
+ }
84
+
85
+ /* app/views/kenui/email_notifications/_configure_events_modal.html.erb */
86
+
87
+ .configure-email-notifications-modal .modal-content {
88
+ border-radius: 1rem;
89
+ min-width: 40.5rem;
90
+ }
91
+
92
+ .configure-email-notifications-modal .modal-body {
93
+ padding-bottom: 0 !important;
94
+ padding-top: 1.25rem !important;
95
+ }
96
+
97
+ .configure-email-notifications-modal .modal-header {
98
+ padding: 1.5rem 1.5rem 1rem 1.5rem !important;
99
+ }
100
+
101
+ .configure-email-notifications-modal .modal-footer {
102
+ padding: 1rem 1.5rem 1.5rem 1.5rem !important;
103
+ }
104
+
105
+ .configure-email-notifications-modal .modal-title {
106
+ font-weight: 600;
107
+ font-size: 1.125rem;
108
+ line-height: 1.75rem;
109
+ color: #181d27;
110
+ }
111
+
112
+ .configure-email-notifications-modal .modal-header .icon-container {
113
+ display: inline-flex;
114
+ justify-content: center;
115
+ align-items: center;
116
+ border: 0.0625rem solid #d5d7da;
117
+ border-radius: 0.375rem;
118
+ width: 2.5rem;
119
+ height: 2.5rem;
120
+ padding: 0.25rem;
121
+ }
122
+
123
+ .configure-email-notifications-modal .modal-header .icon-container img {
124
+ width: 1.25rem;
125
+ height: 1.25rem;
126
+ }
127
+
128
+ .configure-email-notifications-modal .close-button {
129
+ background: transparent;
130
+ padding: 0;
131
+ margin-top: -1.25rem;
132
+ }
133
+
134
+ .configure-email-notifications-modal .close-button:hover {
135
+ background: transparent;
136
+ padding: 0;
137
+ }
138
+
139
+ .configure-email-notifications-modal .control-label {
140
+ font-size: 0.875rem !important;
141
+ font-weight: 500 !important;
142
+ line-height: 1.25rem !important;
143
+ color: #414651 !important;
144
+ }
145
+
146
+ .configure-email-notifications-modal .form-group.d-flex.pb-3 .form-control {
147
+ height: 2.5rem;
148
+ border-radius: 0.375rem;
149
+ }
150
+
151
+ /* app/views/kenui/email_notifications/index.html.erb */
152
+
153
+ .email-notifications-index #accounts-table {
154
+ margin-top: 1.5rem !important;
155
+ margin-bottom: 1.5rem !important;
156
+ }
157
+ .email-notifications-index .e-notifications-details-header {
158
+ display: flex;
159
+ align-items: start;
160
+ justify-content: space-between;
161
+ padding: 0;
162
+ border-bottom: 0.0625rem solid #e9eaeb;
163
+ }
164
+
165
+ .email-notifications-index .e-notifications-details-header h2 {
166
+ font-weight: 600;
167
+ font-size: 1.125rem;
168
+ color: #414651;
169
+ margin-bottom: 1.25rem;
170
+ }
171
+
172
+ .email-notifications-index table {
173
+ overflow-x: auto;
174
+ min-width: 100%;
175
+ }
176
+
177
+ .email-notifications-index table.dataTable tbody td:first-child {
178
+ font-weight: 600 !important;
179
+ }
180
+
181
+ .email-notifications-index table.dataTable tbody td:last-child {
182
+ text-align: end !important;
183
+ }
184
+
185
+ .email-notifications-index table.dataTable tbody tr > td:only-child {
186
+ text-align: center !important;
187
+ }
188
+
189
+ .email-notifications-index table th {
190
+ padding: 0.375rem 0.75rem !important;
191
+ font-weight: 500;
192
+ font-size: 0.875rem;
193
+ color: #717680;
194
+ text-transform: capitalize;
195
+ }
196
+
197
+ .email-notifications-index table td,
198
+ .email-notifications-index table td a {
199
+ font-weight: 500;
200
+ font-size: 0.875rem !important;
201
+ padding: 1rem 0.5rem !important;
202
+ color: #535862 !important;
203
+ text-decoration: none !important;
204
+ white-space: wrap;
205
+ }
206
+
207
+ .email-notifications-index #accounts-table_filter {
208
+ margin-top: -2.75rem !important;
209
+ }
210
+
211
+ #accounts-table_length {
212
+ display: none;
213
+ }
214
+
215
+ .email-notifications-index #accounts-table th:first-of-type {
216
+ padding-left: 0.75rem !important;
217
+ }
218
+
219
+ .email-notifications-index #accounts-table td a {
220
+ padding: 0 !important;
221
+ }
222
+
223
+ .email-notifications-index #accounts-table_filter input {
224
+ width: 20rem;
225
+ height: 2.2rem;
226
+ padding: 0.3rem 1rem;
227
+ border: 0.0625rem solid #e5e7eb;
228
+ border-radius: 0.375rem;
229
+ font-weight: 500;
230
+ font-size: 0.875rem;
231
+ line-height: 1.25rem;
232
+ color: #414651;
233
+ outline: none;
71
234
  }
72
235
 
73
- #events .form-group{
74
- margin-bottom: 0;
236
+ .email-notifications-index #accounts-table_filter input:focus {
237
+ border: 0.0625rem solid #1a73e8;
238
+ outline: none;
239
+ box-shadow: 0;
75
240
  }
76
241
 
77
- .event-class{
78
- word-wrap: break-word;
79
- max-width: 400px;
80
- font-size: .8em;
81
- }
@@ -34,10 +34,10 @@ module Kenui
34
34
  row.name,
35
35
  view_context.link_to(row.account_id, "/accounts/#{row.account_id}"),
36
36
  events,
37
- view_context.link_to('<i class="fa fa-cog" aria-hidden="true"></i>'.html_safe,
37
+ view_context.link_to('Edit'.html_safe,
38
38
  '#configureEmailNotification',
39
39
  data: { name: row.name, account_id: row.account_id,
40
- events: events, toggle: 'modal', target: '#configureEmailNotification' })
40
+ events: events, bs_toggle: 'modal', target: '#configureEmailNotification' })
41
41
  ]
42
42
  end
43
43
 
@@ -66,8 +66,10 @@ module Kenui
66
66
  def set_configuration
67
67
  configuration = params.require(:configuration)
68
68
 
69
+ event_types = Array(configuration[:event_types]).reject(&:blank?)
70
+
69
71
  is_success, message = Kenui::EmailNotificationService.set_configuration_per_account(configuration[:account_id],
70
- configuration[:event_types],
72
+ event_types,
71
73
  'kenui', nil, nil,
72
74
  options_for_klient)
73
75
 
@@ -0,0 +1,8 @@
1
+ <%#
2
+ This is a placeholder breadcrumb component for standalone gem usage.
3
+
4
+ This placeholder prevents "missing template" errors when running
5
+ the gem independently during development or testing.
6
+ %>
7
+
8
+ <!-- Breadcrumb placeholder for standalone gem -->
@@ -0,0 +1,8 @@
1
+ <%#
2
+ This is a placeholder button component for standalone gem usage.
3
+
4
+ This placeholder prevents "missing template" errors when running
5
+ the gem independently during development or testing.
6
+ %>
7
+
8
+ <!-- Button placeholder for standalone gem -->
@@ -0,0 +1,8 @@
1
+ <%#
2
+ This is a placeholder sidebar component for standalone gem usage.
3
+
4
+ This placeholder prevents "missing template" errors when running
5
+ the gem independently during development or testing.
6
+ %>
7
+
8
+ <!-- Sidebar placeholder for standalone gem -->
@@ -1,38 +1,70 @@
1
- <div class="modal fade" id="configureEmailNotification" tabindex="-1" role="dialog">
1
+ <div class="modal fade configure-email-notifications-modal" id="configureEmailNotification" tabindex="-1" role="dialog" aria-labelledby="configureEmailNotificationLabel" aria-hidden="true">
2
2
  <div class="modal-dialog" role="document">
3
- <div class="modal-content column-block">
4
- <div>
5
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
6
- <h1 class="modal-title">Configure email notifications</h1>
3
+ <div class="modal-content">
4
+ <div class="modal-header">
5
+ <h5 class="modal-title d-flex align-items-center gap-3" id="configureEmailNotificationLabel">
6
+ <span class="icon-container">
7
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
8
+ <path d="M9.58301 2.91699H3.84227C2.87066 2.91699 2.08301 3.70464 2.08301 4.67625V16.1577C2.08301 17.1293 2.87066 17.917 3.84227 17.917H15.3238C16.2953 17.917 17.083 17.1293 17.083 16.1577V10.417" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M17.9163 4.99967C17.9163 6.61051 16.6105 7.91634 14.9997 7.91634C13.3888 7.91634 12.083 6.61051 12.083 4.99967C12.083 3.38884 13.3888 2.08301 14.9997 2.08301C16.6105 2.08301 17.9163 3.38884 17.9163 4.99967Z" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
10
+ <path d="M6.25 10.417H9.58333" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
11
+ <path d="M6.25 13.75H12.9167" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12
+ </svg>
13
+ </span>
14
+ Configure Email Notifications
15
+ </h5>
16
+ <button type="button" class="close close-button custom-hover" data-bs-dismiss="modal" aria-label="Close">
17
+ <span aria-hidden="true">
18
+ <%= image_tag("kaui/modal/close.svg", width: 20, height: 20) %>
19
+ </span>
20
+ </button>
7
21
  </div>
8
- <div class="modal-body">
9
- <%= form_for :configuration, :url => email_notifications_configuration_path , :method => :post, :html => {:class => 'form-horizontal'} do |f| %>
10
- <div class='form-group'>
11
- <%= f.label :name, 'Name', :class => 'col-sm-4 control-label' %>
12
- <div class="col-sm-8">
13
- <%= f.text_field :name, :class => 'form-control', :readonly => true %>
14
- </div>
22
+ <%= form_for :configuration, :url => email_notifications_configuration_path , :method => :post, :html => {:class => 'form-horizontal'} do |f| %>
23
+ <div class="modal-body">
24
+ <div class='form-group d-flex pb-3'>
25
+ <%= f.label :name, 'Name', :class => 'col-sm-3 control-label' %>
26
+ <div class="col-sm-9">
27
+ <%= f.text_field :name, :class => 'form-control', :readonly => true %>
15
28
  </div>
16
- <div class='form-group'>
17
- <%= f.label :account_id, 'Account id', :class => 'col-sm-4 control-label' %>
18
- <div class="col-sm-8">
19
- <%= f.text_field :account_id, :class => 'form-control', :readonly => true %>
20
- </div>
29
+ </div>
30
+ <div class='form-group d-flex pb-3'>
31
+ <%= f.label :account_id, 'Account id', :class => 'col-sm-3 control-label' %>
32
+ <div class="col-sm-9">
33
+ <%= f.text_field :account_id, :class => 'form-control', :readonly => true %>
21
34
  </div>
35
+ </div>
36
+ <div class='form-group d-flex'>
37
+ <%= f.label 'Configured events', :class => 'col-sm-3 control-label' %>
22
38
  <div id="events">
23
39
 
24
40
  </div>
41
+ </div>
42
+ </div>
43
+ <div class="modal-footer">
44
+ <%= render "kaui/components/button/button", {
45
+ label: 'Close',
46
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
47
+ type: "button",
48
+ html_class: "kaui-button custom-hover",
49
+ html_options: {
50
+ data: {
51
+ bs_dismiss: "modal",
52
+ aria_label: "Close"
53
+ }
54
+ }
55
+ } %>
56
+ <%= render "kaui/components/button/button", {
57
+ label: 'Save',
58
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
59
+ type: "submit",
60
+ html_class: "kaui-dropdown custom-hover",
61
+ } %>
62
+ </div>
63
+ <% end %>
64
+ </div>
65
+ </div>
66
+ </div>
25
67
 
26
- <div class="form-group">
27
- <div class="col-sm-offset-4 col-sm-8">
28
- <%= submit_tag 'Save', :class => 'btn btn-default' %>
29
- </div>
30
- </div>
31
- <% end %>
32
- </div>
33
- </div><!-- /.modal-content -->
34
- </div><!-- /.modal-dialog -->
35
- </div><!-- /.modal -->
36
68
 
37
69
  <%= javascript_tag do %>
38
70
  $(document).ready(function() {
@@ -49,33 +81,46 @@
49
81
  $(elem).prop('checked',false);
50
82
  });
51
83
 
52
- var events = (e.relatedTarget.dataset['events']).split(',');
84
+ var eventsData = e.relatedTarget.dataset['events'] || '';
85
+ var events = eventsData.split(',');
53
86
  $.each( events, function( index, val ) {
54
87
  var trimmedVal = val.trim();
55
88
  if (trimmedVal) {
56
- var selector = "#" + trimmedVal;
57
- $(selector).prop('checked', true);
89
+ $('#configureEmailNotification').find('input[type="checkbox"][value]').each(function() {
90
+ if ($(this).attr('value') === trimmedVal) {
91
+ $(this).prop('checked', true);
92
+ return false;
93
+ }
94
+ });
58
95
  }
59
96
  });
60
97
  });
61
98
 
62
- function getEventsToConsider(){
63
- $.getJSON("<%= email_notification_events_to_consider_path %>", function( response ) {
64
- var events = [];
65
- $.each( response.data, function( index, val ) {
66
- events.push( '<div class="form-group">' +
67
- '<div class="col-sm-offset-4 col-sm-6">' +
68
- ' <div class="row"><div class="col-sm-4"><label class="switch">' +
69
- ' <input type="checkbox" value="' + val + '" name="configuration[event_types][]" id="' + val + '">' +
70
- ' <span class="slider round"></span>' +
71
- ' </label></div>' +
72
- ' <label class="col-sm-8 capitalize">' + val + '</label>' +
73
- '</div></div>' +
74
- '</div>');
75
- });
99
+ function getEventsToConsider() {
100
+ $.getJSON("<%= email_notification_events_to_consider_path %>", function(response) {
101
+ var $eventsContainer = $("#events");
102
+ $eventsContainer.empty();
103
+
104
+ $.each(response.data, function(index, val) {
105
+ const safeId = 'event_' + index;
106
+
107
+ var $formGroup = $('<div>').addClass('form-group d-flex align-items-center gap-2 mb-2');
108
+ var $checkbox = $('<input>')
109
+ .attr('type', 'checkbox')
110
+ .attr('value', val)
111
+ .attr('name', 'configuration[event_types][]')
112
+ .attr('id', safeId);
113
+ var $label = $('<label>')
114
+ .addClass('capitalize mb-0')
115
+ .attr('for', safeId)
116
+ .text(val);
76
117
 
77
- $("#events").html(events.join( "" ));
118
+ $formGroup.append($checkbox).append($label);
119
+ $eventsContainer.append($formGroup);
78
120
  });
121
+ });
79
122
  }
123
+
124
+
80
125
  });
81
126
  <% end %>
@@ -1,35 +1,44 @@
1
- <div class="search">
2
-
3
- <div class="column-block">
4
-
5
- <h1>Email notifications configuration - Showing accounts</h1>
6
-
7
- <table id="accounts-table" class="table table-condensed mobile-data">
8
- <thead>
9
- <tr>
10
- <th>Name</th>
11
- <th>ID</th>
12
- <th>Events</th>
13
- <th></th>
14
- </tr>
15
- </thead>
16
- <tbody>
17
- <tr>
18
- <td colspan="3" class="dataTables_empty">Loading data from server</td>
19
- </tr>
20
- </tbody>
21
- </table>
22
-
1
+ <div class="kaui-container email-notifications-index">
2
+ <%= render partial: 'kaui/components/breadcrumb/breadcrumb', locals: {
3
+ breadcrumbs: [
4
+ { label: 'Settings', href: '/' },
5
+ { label: "E-notifications", href: '#' }
6
+ ]
7
+ } %>
8
+
9
+ <div class="d-flex" style="gap: 4rem;">
10
+ <%= render :template => 'kaui/layouts/kaui_setting_sidebar' %>
11
+
12
+ <div class="e-notifications-details w-100">
13
+ <div class="d-flex flex-column">
14
+ <div class="e-notifications-details-header">
15
+ <h2>E-notifications</h2>
16
+ </div>
17
+
18
+ <table id="accounts-table" class="">
19
+ <thead>
20
+ <tr>
21
+ <th>Name</th>
22
+ <th>ID</th>
23
+ <th>Events</th>
24
+ <th></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ </tbody>
29
+ </table>
30
+
31
+ <%= render :partial => 'configure_events_modal' %>
32
+ </div>
33
+ </div>
23
34
  </div>
24
-
25
- <%= render :partial => 'configure_events_modal' %>
26
-
27
35
  </div>
28
36
 
29
37
  <%= javascript_tag do %>
30
38
  $(document).ready(function() {
39
+ $('#accounts-table_length').hide();
31
40
  var table = $('#accounts-table').DataTable({
32
- "pagingType": "simple",
41
+ "pagingType": "full_numbers",
33
42
  "language": {
34
43
  "info": "Showing _START_ to _END_ of _TOTAL_ entries"
35
44
  },
@@ -46,5 +55,8 @@
46
55
  ]
47
56
  });
48
57
 
58
+ table.one('draw', function() {
59
+ $('#accounts-table_length').show();
60
+ });
49
61
  });
50
62
  <% end %>
data/lib/kenui/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kenui
4
- VERSION = '3.0.5'
4
+ VERSION = '3.0.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kenui
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kill Bill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-10 00:00:00.000000000 Z
11
+ date: 2025-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: killbill-assets-ui
@@ -62,6 +62,7 @@ files:
62
62
  - README.md
63
63
  - Rakefile
64
64
  - app/assets/config/kenui_manifest.js
65
+ - app/assets/images/kaui/modal/close.svg
65
66
  - app/assets/javascripts/application.js
66
67
  - app/assets/javascripts/kenui/email_notifications.js
67
68
  - app/assets/javascripts/kenui/kenui.js
@@ -72,6 +73,9 @@ files:
72
73
  - app/controllers/kenui/engine_controller.rb
73
74
  - app/helpers/kenui/application_helper.rb
74
75
  - app/services/kenui/email_notification_service.rb
76
+ - app/views/kaui/components/breadcrumb/_breadcrumb.html.erb
77
+ - app/views/kaui/components/button/_button.html.erb
78
+ - app/views/kaui/layouts/kaui_setting_sidebar.html.erb
75
79
  - app/views/kenui/email_notifications/_configure_events_modal.html.erb
76
80
  - app/views/kenui/email_notifications/index.html.erb
77
81
  - app/views/kenui/layouts/kenui_application.html.erb