Skip to content

Commit a9ee07d

Browse files
committed
Merge branch 'release/v0.2.3'
2 parents 88f0f7b + b78203b commit a9ee07d

File tree

17 files changed

+59
-114
lines changed

17 files changed

+59
-114
lines changed

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
turbo_material (0.2.1)
4+
turbo_material (0.2.3)
55
importmap-rails (~> 2.0.1)
66
rails (~> 7.1, >= 7.1.2)
77
stimulus-rails (~> 1.3)

app/assets/dist/turbo_material/tailwind.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/assets/javascripts/turbo_material/material_chips_select_controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export default class extends Controller {
3535

3636
addChip(content, value) {
3737
const chipEl = document.createElement('div');
38+
chipEl.role = 'row';
3839
chipEl.classList.add('mdc-chip');
3940
if (this.chipCssValue) {
4041
chipEl.classList.add(this.chipCssValue);

app/helpers/turbo_material/data_table_helper.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,19 @@ module DataTableHelper
33
def material_data_table(kwargs = {})
44
render "components/material_data_table", **kwargs
55
end
6+
7+
def aria_sort(key, default: false)
8+
return 'none' unless (params[:order] == key) || (params[:order].blank? && default)
9+
10+
(params[:reverse] == 'true') || (params[:reverse].blank? && default) ? 'descending' : 'ascending'
11+
end
12+
13+
def sort_arrow(aria_sort)
14+
aria_sort == 'descending' ? 'arrow_downward' : 'arrow_upward'
15+
end
16+
17+
def sort_class(aria_sort)
18+
aria_sort == 'none' ? '' : ' mdc-data-table__header-cell--sorted'
19+
end
620
end
721
end

app/views/common/_form.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="flex-col w-full">
1+
<div class="flex-col w-full p-2">
22
<div class="mx-auto px-6 py-3">
33
<%= form_with(url: '/', method: :get, html: { novalidate: true }) do |form| %>
44
<%= public_send local_assigns.delete(:helper_name).to_sym, **local_assigns.merge(form: form) %>

app/views/components/_chips_input.html.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<%# locals: (form:, disabled: false, required: false, name:, label: nil, id:, frame: nil, suffix: nil, type: 'text', url: nil, selected: [], options: [], value: nil) %>
1+
<%# locals: (form:, disabled: false, required: false, name:, label: nil, id:, frame: nil, suffix: nil, type: 'text', url: nil, selected: [], options: [], value: nil, fixed: false) %>
22
<%- id = [name, suffix].compact_blank.join('-') -%>
33
<div data-controller="material-chips-input"
44
data-material-chips-input-url-value="<%= url %>"
@@ -31,6 +31,6 @@
3131
<span class="mdc-line-ripple"></span>
3232
</label>
3333
<div class="mdc-menu-surface--anchor">
34-
<%= render partial: 'components/chips_input_options', locals: { options: options, suffix: suffix, name: name, label: label } %>
34+
<%= render partial: 'components/chips_input_options', locals: { options: options, suffix: suffix, name: name, label: label, fixed: fixed } %>
3535
</div>
3636
</div>

app/views/components/_chips_input_options.html.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<%# locals: (suffix:, options: [], label:, name:, opened: 'false') %>
1+
<%# locals: (suffix:, options: [], label:, name:, opened: 'false', fixed: false) %>
22
<%- id = [name, suffix].compact_blank.join('-') -%>
33
<div id="<%= "#{id}-panel" %>"
4-
class="mdc-menu-surface <%= (opened != 'true' || options.size.zero?) ? '' : 'mdc-menu-surface--open' %> !z-100 mdc-menu-surface--fullwidth"
4+
class="mdc-menu-surface <%= (opened != 'true' || options.size.zero?) ? '' : 'mdc-menu-surface--open' %> !z-100 <%= fixed ? 'mdc-menu-surface--fixed' : 'mdc-menu-surface--fullwidth' %>"
55
data-controller="material-menu-surface"
66
data-material-chips-input-target="panel" data-size="<%= options.size %>">
77
<ul class="mdc-deprecated-list max-h-64 overflow-y-auto"

app/views/components/_chips_select.html.erb

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
data-material-chips-select-modal-url-value="<%= modal_url %>"
1010
data-material-chips-select-chip-css-value="<%= chip_css %>"
1111
>
12-
<div class="mdc-select__anchor"
12+
<div class="mdc-select__anchor !h-fit !flex-row !flex-wrap"
1313
role="button"
1414
aria-haspopup="listbox"
1515
aria-expanded="false"
@@ -19,27 +19,10 @@
1919
<% if required %>aria-required="true"<% end %>
2020
>
2121
<span class="mdc-select__ripple"></span>
22-
<span id="<%= id %>-label" class="mdc-floating-label pb-1"><%= label || name.capitalize %></span>
23-
<div class="mdc-chip-set mdc-chip-set--input"></div>
24-
<span class="mdc-select__selected-text-container"><span id="<%= id %>-selected-text" class="mdc-select__selected-text !hidden"></span></span>
25-
<span class="mdc-select__dropdown-icon">
26-
<svg
27-
class="mdc-select__dropdown-icon-graphic"
28-
viewBox="7 10 10 5" focusable="false">
29-
<polygon
30-
class="mdc-select__dropdown-icon-inactive"
31-
stroke="none"
32-
fill-rule="evenodd"
33-
points="7 10 12 15 17 10">
34-
</polygon>
35-
<polygon
36-
class="mdc-select__dropdown-icon-active"
37-
stroke="none"
38-
fill-rule="evenodd"
39-
points="7 15 12 10 17 15">
40-
</polygon>
41-
</svg>
42-
</span>
22+
<span id="<%= id %>-label" class="mdc-floating-label !relative !w-full"><%= label || name.capitalize %></span>
23+
<div class="mdc-chip-set !grow !flex-wrap" role="grid"></div>
24+
<%= render 'components/select_dropdown_icon' %>
25+
<span class="mdc-select__selected-text-container !grow-0 !max-h-0"><span id="<%= id %>-selected-text" class="mdc-select__selected-text !hidden"></span></span>
4326
<span class="mdc-line-ripple"></span>
4427
</div>
4528
<%= form.hidden_field name.to_sym, value: value, data: { 'material-chips-select-target': 'hidden' } if form %>

app/views/components/_material_data_table.html.erb

Lines changed: 5 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</tr>
2424
</thead>
2525
<tbody class="mdc-data-table__content">
26-
<%= render partial: table_contents_partial, locals: { records: records } %>
26+
<%= render partial: table_contents_partial, locals: { records: records } %>
2727
</tbody>
2828
</table>
2929
</div>
@@ -42,64 +42,8 @@
4242
<% params.keys.select { |k| k.starts_with?('ransack') }.each do |key| -%>
4343
<%= form.hidden_field key, value: params[key] %>
4444
<%- end -%>
45-
<div class="mdc-select mdc-select--outlined mdc-select--no-label mdc-data-table__pagination-rows-per-page-select mdc-data-table__pagination-rows-per-page-select--outlined" data-controller="material-select">
46-
<%= form.hidden_field :per_page, value: pagy.items %>
47-
<div class="mdc-select__anchor" role="button" aria-haspopup="listbox"
48-
aria-labelledby="demo-pagination-select" tabindex="0">
49-
<span class="mdc-select__selected-text-container">
50-
<span id="demo-pagination-select" class="mdc-select__selected-text"><%= pagy.items %></span>
51-
</span>
52-
<span class="mdc-select__dropdown-icon">
53-
<svg
54-
class="mdc-select__dropdown-icon-graphic"
55-
viewBox="7 10 10 5">
56-
<polygon
57-
class="mdc-select__dropdown-icon-inactive"
58-
stroke="none"
59-
fill-rule="evenodd"
60-
points="7 10 12 15 17 10">
61-
</polygon>
62-
<polygon
63-
class="mdc-select__dropdown-icon-active"
64-
stroke="none"
65-
fill-rule="evenodd"
66-
points="7 15 12 10 17 15">
67-
</polygon>
68-
</svg>
69-
</span>
70-
<span class="mdc-notched-outline mdc-notched-outline--notched">
71-
<span class="mdc-notched-outline__leading"></span>
72-
<span class="mdc-notched-outline__trailing"></span>
73-
</span>
74-
</div>
75-
76-
<div class="mdc-select__menu mdc-menu mdc-menu-surface mdc-menu-surface--fullwidth" role="listbox">
77-
<ul class="mdc-list">
78-
<li class="mdc-select__option mdc-select__one-line-option mdc-list-item <%= pagy.items == 10 ? 'mdc-list-item--selected' : '' %> mdc-list-item--with-one-line"
79-
aria-selected="true" role="option" data-value="10">
80-
<span class="mdc-list-item__ripple"></span>
81-
<span class="mdc-list-item__content">
82-
<span class="mdc-list-item__primary-text">10</span>
83-
</span>
84-
</li>
85-
<li class="mdc-select__option mdc-select__one-line-option mdc-list-item <%= pagy.items == 20 ? 'mdc-list-item--selected' : '' %> mdc-list-item--with-one-line"
86-
role="option" data-value="20">
87-
<span class="mdc-list-item__ripple"></span>
88-
<span class="mdc-list-item__content">
89-
<span class="mdc-list-item__primary-text">20</span>
90-
</span>
91-
</li>
92-
<li class="mdc-select__option mdc-select__one-line-option mdc-list-item <%= pagy.items == 100 ? 'mdc-list-item--selected' : '' %> mdc-list-item--with-one-line"
93-
role="option" data-value="100">
94-
<span class="mdc-list-item__ripple"></span>
95-
<span class="mdc-list-item__content">
96-
<span class="mdc-list-item__primary-text">100</span>
97-
</span>
98-
</li>
99-
</ul>
100-
</div>
101-
</div>
102-
</div>
45+
<%= material_select name: 'per_page', form: form, id: 'per-page', options: per_page_options,
46+
value: pagy.items, outlined: true, additional_classes: 'mdc-data-table__pagination-rows-per-page-select mdc-data-table__pagination-rows-per-page-select--outlined' %>
10347
<%- end -%>
10448

10549
<div class="mdc-data-table__pagination-navigation">
@@ -127,6 +71,7 @@
12771
<div class="mdc-button__icon">last_page</div>
12872
<% end %>
12973
</div>
130-
</div>
74+
</div>
75+
</div>
13176
</div>
13277
</div>

app/views/components/_select.html.erb

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,24 +27,7 @@
2727
<%= selected_text || value %>
2828
</span>
2929
</span>
30-
<span class="mdc-select__dropdown-icon">
31-
<svg
32-
class="mdc-select__dropdown-icon-graphic"
33-
viewBox="7 10 10 5" focusable="false">
34-
<polygon
35-
class="mdc-select__dropdown-icon-inactive"
36-
stroke="none"
37-
fill-rule="evenodd"
38-
points="7 10 12 15 17 10">
39-
</polygon>
40-
<polygon
41-
class="mdc-select__dropdown-icon-active"
42-
stroke="none"
43-
fill-rule="evenodd"
44-
points="7 15 12 10 17 15">
45-
</polygon>
46-
</svg>
47-
</span>
30+
<%= render 'components/select_dropdown_icon' %>
4831
<%- unless outlined -%><span class="mdc-line-ripple"></span><%- end -%>
4932
</div>
5033

0 commit comments

Comments
 (0)