polaris_view_components 2.0.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/polaris_view_components/dropzone_controller.js +1 -1
- data/app/assets/javascripts/polaris_view_components/modal_controller.js +2 -1
- data/app/assets/javascripts/polaris_view_components/polaris_controller.js +4 -0
- data/app/assets/javascripts/polaris_view_components.js +6 -2
- data/app/assets/stylesheets/polaris_view_components/button.pcss +8 -1
- data/app/assets/stylesheets/polaris_view_components/option_list.pcss +7 -0
- data/app/assets/stylesheets/polaris_view_components.css +11 -3
- data/app/components/polaris/autocomplete/option_component.html.erb +5 -0
- data/app/components/polaris/autocomplete/option_component.rb +3 -8
- data/app/components/polaris/autocomplete_component.html.erb +3 -1
- data/app/components/polaris/autocomplete_component.rb +7 -3
- data/app/components/polaris/avatar_component.html.erb +2 -0
- data/app/components/polaris/avatar_component.rb +2 -0
- data/app/components/polaris/choice_list_component.rb +1 -0
- data/app/components/polaris/form_layout/group_component.rb +2 -2
- data/app/components/polaris/frame/top_bar_component.html.erb +5 -17
- data/app/components/polaris/frame/top_bar_component.rb +1 -0
- data/app/components/polaris/frame_component.html.erb +1 -1
- data/app/components/polaris/navigation/item_component.html.erb +31 -13
- data/app/components/polaris/navigation/item_component.rb +11 -0
- data/app/components/polaris/option_list/radio_button_component.html.erb +22 -0
- data/app/components/polaris/option_list/radio_button_component.rb +7 -17
- data/app/components/polaris/top_bar/user_menu_component.html.erb +51 -22
- data/app/components/polaris/top_bar/user_menu_component.rb +2 -1
- data/app/helpers/polaris/form_builder.rb +8 -0
- data/app/helpers/polaris/view_helper.rb +8 -1
- data/lib/polaris/view_components/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d31c4bdf79eb1b9306c46f8506c57a26fdaffb6af1ddf0d5ae48f560faffeb9
|
4
|
+
data.tar.gz: fa9fe8d5d9450fcb128970910a3b5ec1828d5cafda8a80bc745e41122a81ca60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 825ec26adbde83a5f56f3288bb5c2c4294c741a28965f90d25fa28b2acfdb29cae9b1efdb9692f29bf1599d35dc39ed55653cab78eabbb2fdb12a8acdb082603
|
7
|
+
data.tar.gz: 3447d874bdc8b3905f63b5bdcdb1a1d063d706451e71a5ce063b7d33694a0b1be5576416f25e1d74919760e302bd283571c52ac78a52173f85f091e16126a067
|
data/README.md
CHANGED
@@ -57,7 +57,7 @@ rake
|
|
57
57
|
|
58
58
|
## Releases
|
59
59
|
|
60
|
-
The library follows [semantic versioning](https://semver.org/). To draft a new release you need to run `
|
60
|
+
The library follows [semantic versioning](https://semver.org/). To draft a new release you need to run `bin/release` with a new version number:
|
61
61
|
|
62
62
|
```bash
|
63
63
|
bin/release VERSION
|
@@ -94,9 +94,9 @@ export default class extends Controller {
|
|
94
94
|
this.stopEvent(e)
|
95
95
|
if (this.disabled) return
|
96
96
|
|
97
|
+
const fileList = getDataTransferFiles(e)
|
97
98
|
this.clearFiles()
|
98
99
|
|
99
|
-
const fileList = getDataTransferFiles(e)
|
100
100
|
const { files, acceptedFiles, rejectedFiles } = this.getValidatedFiles(fileList)
|
101
101
|
this.dragTargets = []
|
102
102
|
|
@@ -14,7 +14,8 @@ export default class extends Controller {
|
|
14
14
|
|
15
15
|
open() {
|
16
16
|
this.element.classList.remove(this.hiddenClass)
|
17
|
-
|
17
|
+
const dropElement = `<div class="${this.backdropClass}" data-controller="polaris" data-target="#${this.element.id}" data-action="click->polaris#closeModal"></div>`
|
18
|
+
this.element.insertAdjacentHTML('afterend', dropElement)
|
18
19
|
this.backdrop = this.element.nextElementSibling
|
19
20
|
}
|
20
21
|
|
@@ -451,8 +451,8 @@ class Dropzone extends Controller {
|
|
451
451
|
onChange(e) {
|
452
452
|
this.stopEvent(e);
|
453
453
|
if (this.disabled) return;
|
454
|
-
this.clearFiles();
|
455
454
|
const fileList = getDataTransferFiles(e);
|
455
|
+
this.clearFiles();
|
456
456
|
const {files: files, acceptedFiles: acceptedFiles, rejectedFiles: rejectedFiles} = this.getValidatedFiles(fileList);
|
457
457
|
this.dragTargets = [];
|
458
458
|
this.files = files;
|
@@ -833,7 +833,8 @@ class Modal extends Controller {
|
|
833
833
|
}
|
834
834
|
open() {
|
835
835
|
this.element.classList.remove(this.hiddenClass);
|
836
|
-
|
836
|
+
const dropElement = `<div class="${this.backdropClass}" data-controller="polaris" data-target="#${this.element.id}" data-action="click->polaris#closeModal"></div>`;
|
837
|
+
this.element.insertAdjacentHTML("afterend", dropElement);
|
837
838
|
this.backdrop = this.element.nextElementSibling;
|
838
839
|
}
|
839
840
|
close() {
|
@@ -878,6 +879,9 @@ class Polaris extends Controller {
|
|
878
879
|
openModal() {
|
879
880
|
this.findElement("modal").open();
|
880
881
|
}
|
882
|
+
closeModal() {
|
883
|
+
this.findElement("modal").close();
|
884
|
+
}
|
881
885
|
disableButton() {
|
882
886
|
this.findElement("button").disable();
|
883
887
|
}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
/* Polaris no longer uses different button styling depending on the context,
|
2
2
|
so we can override all buttons at once. */
|
3
3
|
html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button {
|
4
|
+
|
5
|
+
|
4
6
|
&:not(.Polaris-Button--plain) {
|
5
7
|
&:hover {
|
6
8
|
box-shadow: var(--pc-button-shadow-hover);
|
@@ -52,13 +54,18 @@ html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button {
|
|
52
54
|
}
|
53
55
|
|
54
56
|
/* Destructive */
|
55
|
-
&.Polaris-Button--destructive
|
57
|
+
&.Polaris-Button--destructive,
|
58
|
+
&.Polaris-Button--destructive:is(.Polaris-Button--primary) {
|
56
59
|
--pc-button-color: var(--p-color-bg-fill-critical);
|
57
60
|
--pc-button-text: var(--p-color-bg-surface);
|
58
61
|
--pc-button-color-hover: var(--p-color-bg-fill-critical-hover);
|
59
62
|
--pc-button-color-active: var(--p-color-bg-fill-critical-active);
|
60
63
|
--pc-button-color-depressed: var(--p-color-bg-fill-critical-selected);
|
61
64
|
box-shadow: var(--p-shadow-button-primary-critical);
|
65
|
+
|
66
|
+
&:active {
|
67
|
+
background: var(--pc-button-color-active);
|
68
|
+
}
|
62
69
|
}
|
63
70
|
|
64
71
|
/* Primary */
|
@@ -309,14 +309,17 @@
|
|
309
309
|
background: var(--p-color-bg-fill-tertiary);
|
310
310
|
}/* Loading */html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--loading svg {
|
311
311
|
fill: var(--p-color-icon-disabled);
|
312
|
-
}/* Destructive */html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--destructive
|
312
|
+
}/* Destructive */html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--destructive,
|
313
|
+
html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--destructive:is(.Polaris-Button--primary) {
|
313
314
|
--pc-button-color: var(--p-color-bg-fill-critical);
|
314
315
|
--pc-button-text: var(--p-color-bg-surface);
|
315
316
|
--pc-button-color-hover: var(--p-color-bg-fill-critical-hover);
|
316
317
|
--pc-button-color-active: var(--p-color-bg-fill-critical-active);
|
317
318
|
--pc-button-color-depressed: var(--p-color-bg-fill-critical-selected);
|
318
319
|
box-shadow: var(--p-shadow-button-primary-critical);
|
319
|
-
}
|
320
|
+
}html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--destructive:active, html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--destructive:is(.Polaris-Button--primary):active {
|
321
|
+
background: var(--pc-button-color-active);
|
322
|
+
}/* Primary */html[class~="Polaris-Summer-Editions-2023"] .Polaris-Button.Polaris-Button--primary {
|
320
323
|
--pc-button-bg-gradient: var(--p-color-button-gradient-bg-fill);
|
321
324
|
--pc-button-color: var(--pc-button-bg-gradient), var(--p-color-bg-fill-brand);
|
322
325
|
--pc-button-text: var(--p-color-bg-surface);
|
@@ -567,7 +570,12 @@
|
|
567
570
|
}html[class~="Polaris-Summer-Editions-2023"] .Polaris-OptionList-Option__Checkbox .Polaris-Checkbox__Icon > svg {
|
568
571
|
fill: var(--p-color-text-brand-on-bg-fill);
|
569
572
|
color: var(--p-color-text-brand-on-bg-fill);
|
570
|
-
}
|
573
|
+
}.Polaris-OptionList-Option__Layout {
|
574
|
+
width: 100%;
|
575
|
+
display: flex;
|
576
|
+
justify-content: space-between;
|
577
|
+
align-items: center;
|
578
|
+
}html[class~="Polaris-Summer-Editions-2023"] .Polaris-Page-Header {
|
571
579
|
font-weight: var(--p-font-weight-bold);
|
572
580
|
}html[class~="Polaris-Summer-Editions-2023"] .Polaris-Page-Header--smallTitle .Polaris-Header-Title {
|
573
581
|
font-size: var(--p-font-size-300);
|
@@ -1,5 +1,8 @@
|
|
1
1
|
module Polaris
|
2
2
|
class Autocomplete::OptionComponent < Component
|
3
|
+
renders_one :prefix
|
4
|
+
renders_one :suffix
|
5
|
+
|
3
6
|
def initialize(
|
4
7
|
label:,
|
5
8
|
multiple: false,
|
@@ -23,13 +26,5 @@ module Polaris
|
|
23
26
|
prepend_option(args[:data], :action, "polaris-autocomplete#select")
|
24
27
|
end
|
25
28
|
end
|
26
|
-
|
27
|
-
def call
|
28
|
-
if @multiple
|
29
|
-
render OptionList::CheckboxComponent.new(**system_arguments)
|
30
|
-
else
|
31
|
-
render OptionList::RadioButtonComponent.new(**system_arguments)
|
32
|
-
end
|
33
|
-
end
|
34
29
|
end
|
35
30
|
end
|
@@ -2,7 +2,9 @@
|
|
2
2
|
<%= render(Polaris::PopoverComponent.new(**popover_arguments)) do |popover| %>
|
3
3
|
<% popover.with_activator do %>
|
4
4
|
<%= text_field %>
|
5
|
-
<% if @
|
5
|
+
<% if @form.present? && @attribute.present? %>
|
6
|
+
<%= @form.hidden_field @attribute, data: {polaris_autocomplete_target: "hiddenInput"} %>
|
7
|
+
<% else %>
|
6
8
|
<%= hidden_field_tag @name, nil, data: {polaris_autocomplete_target: "hiddenInput"} %>
|
7
9
|
<% end %>
|
8
10
|
<% end %>
|
@@ -11,7 +11,7 @@ module Polaris
|
|
11
11
|
system_arguments[:input_options][:data] ||= {}
|
12
12
|
system_arguments[:input_options][:data][:polaris_autocomplete_target] = "input"
|
13
13
|
|
14
|
-
TextFieldComponent.new(**system_arguments)
|
14
|
+
TextFieldComponent.new(form: @form, attribute: @attribute, name: @name, **system_arguments)
|
15
15
|
end
|
16
16
|
renders_many :sections, ->(**system_arguments) do
|
17
17
|
Autocomplete::SectionComponent.new(multiple: @multiple, **system_arguments)
|
@@ -22,16 +22,20 @@ module Polaris
|
|
22
22
|
renders_one :empty_state
|
23
23
|
|
24
24
|
def initialize(
|
25
|
+
form: nil,
|
26
|
+
attribute: nil,
|
27
|
+
name: nil,
|
25
28
|
multiple: false,
|
26
29
|
url: nil,
|
27
|
-
name: nil,
|
28
30
|
selected: [],
|
29
31
|
popover_arguments: {},
|
30
32
|
**system_arguments
|
31
33
|
)
|
34
|
+
@form = form
|
35
|
+
@attribute = attribute
|
36
|
+
@name = name
|
32
37
|
@multiple = multiple
|
33
38
|
@url = url
|
34
|
-
@name = name
|
35
39
|
@selected = selected
|
36
40
|
@popover_arguments = popover_arguments
|
37
41
|
@system_arguments = system_arguments
|
@@ -9,6 +9,8 @@
|
|
9
9
|
<%= @initials %>
|
10
10
|
</text>
|
11
11
|
</svg>
|
12
|
+
<% elsif @icon %>
|
13
|
+
<%= polaris_icon(name: @icon) %>
|
12
14
|
<% else %>
|
13
15
|
<svg class="Polaris-Avatar__Svg" viewBox="0 0 40 40">
|
14
16
|
<path fill="currentColor" d="M8.28 27.5A14.95 14.95 0 0120 21.8c4.76 0 8.97 2.24 11.72 5.7a14.02 14.02 0 01-8.25 5.91 14.82 14.82 0 01-6.94 0 14.02 14.02 0 01-8.25-5.9zM13.99 12.78a6.02 6.02 0 1112.03 0 6.02 6.02 0 01-12.03 0z"></path>
|
@@ -27,6 +27,7 @@ module Polaris
|
|
27
27
|
size: SIZE_DEFAULT,
|
28
28
|
shape: SHAPE_DEFAULT,
|
29
29
|
source: nil,
|
30
|
+
icon: nil,
|
30
31
|
**system_arguments
|
31
32
|
)
|
32
33
|
@customer = customer
|
@@ -35,6 +36,7 @@ module Polaris
|
|
35
36
|
@size = size
|
36
37
|
@shape = shape
|
37
38
|
@source = source
|
39
|
+
@icon = icon
|
38
40
|
@system_arguments = system_arguments
|
39
41
|
end
|
40
42
|
|
@@ -3,7 +3,7 @@ class Polaris::FormLayout::GroupComponent < Polaris::Component
|
|
3
3
|
|
4
4
|
renders_many :items, "GroupItemComponent"
|
5
5
|
|
6
|
-
def initialize(position:, condensed: false, **system_arguments)
|
6
|
+
def initialize(position:, condensed: false, wrapper_arguments: {}, **system_arguments)
|
7
7
|
@position = position
|
8
8
|
|
9
9
|
@system_arguments = system_arguments
|
@@ -13,7 +13,7 @@ class Polaris::FormLayout::GroupComponent < Polaris::Component
|
|
13
13
|
"Polaris-FormLayout__Items"
|
14
14
|
)
|
15
15
|
|
16
|
-
@wrapper_arguments =
|
16
|
+
@wrapper_arguments = wrapper_arguments
|
17
17
|
@wrapper_arguments[:tag] = "div"
|
18
18
|
@wrapper_arguments[:role] = "group"
|
19
19
|
@wrapper_arguments[:classes] = class_names(
|
@@ -27,31 +27,19 @@
|
|
27
27
|
</div>
|
28
28
|
|
29
29
|
<div class="Polaris-TopBar__RightContent">
|
30
|
-
<div>
|
31
|
-
<div
|
32
|
-
|
30
|
+
<div class="Polaris-TopBar__SecondaryMenu">
|
31
|
+
<div>
|
32
|
+
<div class="Polaris-TopBar-Menu__ActivatorWrapper">
|
33
|
+
<%= secondary_menu %>
|
34
|
+
</div>
|
33
35
|
</div>
|
34
36
|
</div>
|
35
|
-
</div>
|
36
|
-
|
37
37
|
|
38
|
-
<%
|
39
|
-
=begin%>
|
40
|
-
|
41
|
-
<div class="Polaris-TopBar__Contents">
|
42
|
-
<div class="Polaris-TopBar__SearchField">
|
43
|
-
<%= search_field %>
|
44
|
-
</div>
|
45
|
-
<div class="Polaris-TopBar__SecondaryMenu">
|
46
|
-
<%= secondary_menu %>
|
47
|
-
</div>
|
48
38
|
<div>
|
49
39
|
<div class="Polaris-TopBar-Menu__ActivatorWrapper">
|
50
40
|
<%= user_menu %>
|
51
41
|
</div>
|
52
42
|
</div>
|
53
43
|
</div>
|
54
|
-
<%
|
55
|
-
=end%>
|
56
44
|
</div>
|
57
45
|
<% end %>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class Polaris::Frame::TopBarComponent < Polaris::Component
|
2
2
|
renders_one :user_menu, Polaris::TopBar::UserMenuComponent
|
3
3
|
renders_one :search_field
|
4
|
+
renders_one :secondary_menu
|
4
5
|
|
5
6
|
def initialize(logo:, **system_arguments)
|
6
7
|
@logo = logo.is_a?(Hash) ? Polaris::Logo.new(**logo) : logo
|
@@ -28,7 +28,7 @@
|
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
|
31
|
-
<div data-polaris-frame-target="navigationOverlay"></div>
|
31
|
+
<div data-polaris-frame-target="navigationOverlay" data-action="click->polaris-frame#closeMenu"></div>
|
32
32
|
|
33
33
|
<main class="Polaris-Frame__Main">
|
34
34
|
<div class="Polaris-Frame__Content">
|
@@ -1,19 +1,37 @@
|
|
1
1
|
<%= render Polaris::BaseComponent.new(**system_arguments) do %>
|
2
2
|
<div class="Polaris-Navigation__ItemWrapper">
|
3
|
-
<div class="
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
<div class="<%= @item_inner_wrapper_classes %>">
|
4
|
+
<% if @action_type == :link %>
|
5
|
+
<%= link_to @url, **link_arguments do %>
|
6
|
+
<% if @icon.present? %>
|
7
|
+
<div class="Polaris-Navigation__Icon">
|
8
|
+
<%= polaris_icon(name: @icon) %>
|
9
|
+
</div>
|
10
|
+
<% end %>
|
11
|
+
<span class="Polaris-Navigation__Text">
|
12
|
+
<%= @label %>
|
13
|
+
</span>
|
14
|
+
<% if @badge.present? %>
|
15
|
+
<div class="Polaris-Navigation__Badge">
|
16
|
+
<%= polaris_badge { @badge } %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
9
19
|
<% end %>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
20
|
+
<% else %>
|
21
|
+
<%= button_to @url, **link_arguments do %>
|
22
|
+
<% if @icon.present? %>
|
23
|
+
<div class="Polaris-Navigation__Icon">
|
24
|
+
<%= polaris_icon(name: @icon) %>
|
25
|
+
</div>
|
26
|
+
<% end %>
|
27
|
+
<span class="Polaris-Navigation__Text">
|
28
|
+
<%= @label %>
|
29
|
+
</span>
|
30
|
+
<% if @badge.present? %>
|
31
|
+
<div class="Polaris-Navigation__Badge">
|
32
|
+
<%= polaris_badge { @badge } %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
17
35
|
<% end %>
|
18
36
|
<% end %>
|
19
37
|
<% if secondary_actions.present? %>
|
@@ -12,6 +12,7 @@ class Polaris::Navigation::ItemComponent < Polaris::Component
|
|
12
12
|
selected: false,
|
13
13
|
disabled: false,
|
14
14
|
external: false,
|
15
|
+
action_type: :link,
|
15
16
|
link_arguments: {},
|
16
17
|
**system_arguments
|
17
18
|
)
|
@@ -23,7 +24,9 @@ class Polaris::Navigation::ItemComponent < Polaris::Component
|
|
23
24
|
@disabled = disabled
|
24
25
|
@external = external
|
25
26
|
@system_arguments = system_arguments
|
27
|
+
@action_type = action_type
|
26
28
|
@link_arguments = link_arguments
|
29
|
+
@item_inner_wrapper_classes = item_inner_wrapper_classes
|
27
30
|
end
|
28
31
|
|
29
32
|
def system_arguments
|
@@ -47,6 +50,14 @@ class Polaris::Navigation::ItemComponent < Polaris::Component
|
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
53
|
+
def item_inner_wrapper_classes
|
54
|
+
class_names(
|
55
|
+
"Polaris-Navigation__ItemInnerWrapper",
|
56
|
+
"Polaris-Navigation__ItemInnerWrapper--selected": @selected,
|
57
|
+
"Polaris-Navigation__ItemInnerDisabled": @disabled
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
50
61
|
def link_classes
|
51
62
|
class_names(
|
52
63
|
"Polaris-Navigation__Item",
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% pref = prefix || @prefix %>
|
2
|
+
<% suf = suffix || @suffix %>
|
3
|
+
|
4
|
+
<%= render(Polaris::BaseComponent.new(**wrapper_arguments)) do %>
|
5
|
+
<%= tag.label(
|
6
|
+
class: "Polaris-OptionList-Option__SingleSelectOption",
|
7
|
+
data: {
|
8
|
+
polaris_option_list_target: "radioButton",
|
9
|
+
action: "click->polaris-option-list#update"
|
10
|
+
}
|
11
|
+
) do %>
|
12
|
+
<%= tag.div(class: "Polaris-OptionList-Option__Layout", style: suf.blank? ? "justify-content: normal;" : "") do %>
|
13
|
+
<% if pref %>
|
14
|
+
<%= tag.div(pref, style: "margin-right: 5px;") %>
|
15
|
+
<% end %>
|
16
|
+
<%= tag.div { safe_join [radio_button, @label] } %>
|
17
|
+
<% if suf %>
|
18
|
+
<%= tag.div(suf, style: "margin-left: 5px;") %>
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
@@ -1,12 +1,19 @@
|
|
1
1
|
class Polaris::OptionList::RadioButtonComponent < Polaris::Component
|
2
|
+
renders_one :prefix
|
3
|
+
renders_one :suffix
|
4
|
+
|
2
5
|
def initialize(
|
3
6
|
label:,
|
4
7
|
value:,
|
8
|
+
prefix: nil,
|
9
|
+
suffix: nil,
|
5
10
|
wrapper_arguments: {},
|
6
11
|
**system_arguments
|
7
12
|
)
|
8
13
|
@label = label
|
9
14
|
@value = value
|
15
|
+
@prefix = prefix
|
16
|
+
@suffix = suffix
|
10
17
|
@wrapper_arguments = wrapper_arguments
|
11
18
|
@system_arguments = system_arguments
|
12
19
|
end
|
@@ -31,23 +38,6 @@ class Polaris::OptionList::RadioButtonComponent < Polaris::Component
|
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
34
|
-
def call
|
35
|
-
render(Polaris::BaseComponent.new(**wrapper_arguments)) do
|
36
|
-
tag.label(
|
37
|
-
class: "Polaris-OptionList-Option__SingleSelectOption",
|
38
|
-
data: {
|
39
|
-
polaris_option_list_target: "radioButton",
|
40
|
-
action: "click->polaris-option-list#update"
|
41
|
-
}
|
42
|
-
) do
|
43
|
-
safe_join [
|
44
|
-
radio_button,
|
45
|
-
@label
|
46
|
-
]
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
41
|
def radio_button
|
52
42
|
render Polaris::BaseRadioButton.new(value: @value, **system_arguments)
|
53
43
|
end
|
@@ -5,28 +5,57 @@
|
|
5
5
|
class="Polaris-TopBar-Menu__Activator"
|
6
6
|
data-action="polaris-popover#toggle click@window->polaris-popover#hide"
|
7
7
|
>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
8
|
+
<% if @show_avatar_first %>
|
9
|
+
<div class="Polaris-MessageIndicator__MessageIndicatorWrapper">
|
10
|
+
<%= avatar %>
|
11
|
+
</div>
|
12
|
+
<span class="Polaris-TopBar-UserMenu__Details">
|
13
|
+
<%= polaris_text(
|
14
|
+
as: :p,
|
15
|
+
font_weight: :medium,
|
16
|
+
truncate: true,
|
17
|
+
alignment: :start
|
18
|
+
) do %>
|
19
|
+
<%= @name %>
|
20
|
+
<% end %>
|
21
|
+
<% if @detail.present? %>
|
22
|
+
<%= polaris_text(
|
23
|
+
as: :p,
|
24
|
+
variant: :bodySm,
|
25
|
+
truncate: true,
|
26
|
+
alignment: :start,
|
27
|
+
color: :subdued
|
28
|
+
) do %>
|
29
|
+
<%= @detail %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
</span>
|
33
|
+
<% else %>
|
34
|
+
<span class="Polaris-TopBar-UserMenu__Details">
|
35
|
+
<%= polaris_text(
|
36
|
+
as: :p,
|
37
|
+
font_weight: :medium,
|
38
|
+
truncate: true,
|
39
|
+
alignment: :start
|
40
|
+
) do %>
|
41
|
+
<%= @name %>
|
42
|
+
<% end %>
|
43
|
+
<% if @detail.present? %>
|
44
|
+
<%= polaris_text(
|
45
|
+
as: :p,
|
46
|
+
variant: :bodySm,
|
47
|
+
truncate: true,
|
48
|
+
alignment: :start,
|
49
|
+
color: :subdued
|
50
|
+
) do %>
|
51
|
+
<%= @detail %>
|
52
|
+
<% end %>
|
53
|
+
<% end %>
|
54
|
+
</span>
|
55
|
+
<div class="Polaris-MessageIndicator__MessageIndicatorWrapper">
|
56
|
+
<%= avatar %>
|
57
|
+
</div>
|
58
|
+
<% end %>
|
30
59
|
</button>
|
31
60
|
<% end %>
|
32
61
|
|
@@ -1,9 +1,10 @@
|
|
1
1
|
class Polaris::TopBar::UserMenuComponent < Polaris::Component
|
2
2
|
renders_one :avatar, Polaris::AvatarComponent
|
3
3
|
|
4
|
-
def initialize(name:, detail
|
4
|
+
def initialize(name:, detail: nil, show_avatar_first: false, **system_arguments)
|
5
5
|
@name = name
|
6
6
|
@detail = detail
|
7
|
+
@show_avatar_first = show_avatar_first
|
7
8
|
@system_arguments = system_arguments
|
8
9
|
end
|
9
10
|
end
|
@@ -117,5 +117,13 @@ module Polaris
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
end
|
120
|
+
|
121
|
+
def polaris_autocomplete(method, **options, &block)
|
122
|
+
options[:error] ||= error_for(method)
|
123
|
+
if options[:error_hidden] && options[:error]
|
124
|
+
options[:error] = !!options[:error]
|
125
|
+
end
|
126
|
+
render Polaris::AutocompleteComponent.new(form: self, attribute: method, name: method, **options), &block
|
127
|
+
end
|
120
128
|
end
|
121
129
|
end
|
@@ -100,7 +100,14 @@ module Polaris
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def polaris_icon_source(name)
|
103
|
-
|
103
|
+
paths = [
|
104
|
+
ViewComponents::Engine.root.join("app", "assets", "icons", "polaris", "#{name}.svg"),
|
105
|
+
Rails.root.join("app", "assets", "icons", "polaris", "#{name}.svg")
|
106
|
+
]
|
107
|
+
|
108
|
+
path = paths.find { |path| File.exist?(path) }
|
109
|
+
return unless path
|
110
|
+
|
104
111
|
file = File.read(path)
|
105
112
|
doc = Nokogiri::HTML::DocumentFragment.parse(file)
|
106
113
|
svg = doc.at_css "svg"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polaris_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Gamble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-07-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -706,6 +706,7 @@ files:
|
|
706
706
|
- app/components/polaris/action_list_component.html.erb
|
707
707
|
- app/components/polaris/action_list_component.rb
|
708
708
|
- app/components/polaris/autocomplete/action_component.rb
|
709
|
+
- app/components/polaris/autocomplete/option_component.html.erb
|
709
710
|
- app/components/polaris/autocomplete/option_component.rb
|
710
711
|
- app/components/polaris/autocomplete/section_component.html.erb
|
711
712
|
- app/components/polaris/autocomplete/section_component.rb
|
@@ -822,6 +823,7 @@ files:
|
|
822
823
|
- app/components/polaris/option_list/checkbox_component.html.erb
|
823
824
|
- app/components/polaris/option_list/checkbox_component.rb
|
824
825
|
- app/components/polaris/option_list/option_component.rb
|
826
|
+
- app/components/polaris/option_list/radio_button_component.html.erb
|
825
827
|
- app/components/polaris/option_list/radio_button_component.rb
|
826
828
|
- app/components/polaris/option_list/section_component.html.erb
|
827
829
|
- app/components/polaris/option_list/section_component.rb
|
@@ -934,7 +936,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
934
936
|
- !ruby/object:Gem::Version
|
935
937
|
version: '0'
|
936
938
|
requirements: []
|
937
|
-
rubygems_version: 3.5.
|
939
|
+
rubygems_version: 3.5.10
|
938
940
|
signing_key:
|
939
941
|
specification_version: 4
|
940
942
|
summary: ViewComponents for Polaris Design System
|