playbook_ui 4.5.2 → 4.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/playbook/pb_sample_helper.rb +37 -0
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/config/_kit_ui.html.erb +3 -3
- data/app/pb_kits/playbook/data/menu.yml +1 -1
- data/app/pb_kits/playbook/index.js +2 -0
- data/app/pb_kits/playbook/packs/application.js +44 -4
- data/app/pb_kits/playbook/packs/examples.js +2 -6
- data/app/pb_kits/playbook/packs/samples.js +1 -36
- data/app/pb_kits/playbook/packs/site_styles/_samples.scss +3 -2
- data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +3 -3
- data/app/pb_kits/playbook/pb_avatar/docs/_avatar_monogram.md +2 -0
- data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.md +2 -0
- data/app/pb_kits/playbook/pb_avatar/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_avatar/docs/_footer.md +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.html.erb +0 -2
- data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_body/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_body/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_default.md +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_full_width.md +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.md +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_caption/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_caption/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_contact/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_default.md +1 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_footer.md +4 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_description.md +1 -0
- data/app/pb_kits/playbook/{pb_editor/_editor.html.erb → pb_filter/_filter.html.erb} +1 -1
- data/app/pb_kits/playbook/pb_filter/_filter.jsx +88 -0
- data/app/pb_kits/playbook/pb_filter/_filter.scss +82 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +45 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +9 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +46 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/filter.rb +34 -0
- data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +43 -0
- data/app/pb_kits/playbook/pb_filter/templates/_single.html.erb +42 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.html.erb +1 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.md +2 -0
- data/app/pb_kits/playbook/pb_flex/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.md +1 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.md +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_description.md +10 -0
- data/app/pb_kits/playbook/pb_form/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.md +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.md +1 -0
- data/app/pb_kits/playbook/pb_hashtag/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_hashtag/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_highlight/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_highlight/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.md +1 -0
- data/app/pb_kits/playbook/pb_icon/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_icon/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_icon/docs/_icon_animate.md +1 -0
- data/app/pb_kits/playbook/pb_icon/docs/_icon_pull.md +1 -0
- data/app/pb_kits/playbook/pb_icon_circle/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_icon_circle/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_icon_value/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_image/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.md +1 -0
- data/app/pb_kits/playbook/pb_label_value/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_label_value/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_label_value/docs/_label_value_default.md +1 -0
- data/app/pb_kits/playbook/pb_label_value/docs/index.html.erb +25 -0
- data/app/pb_kits/playbook/pb_layout/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_legend/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_legend/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_legend/docs/_legend_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.html.erb +0 -3
- data/app/pb_kits/playbook/pb_list/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_message/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_message/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_message/docs/_message_default.md +1 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_nav/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_online_status/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_person/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_person/docs/_footer.md +3 -0
- data/app/pb_kits/playbook/pb_person/docs/_person_default.md +1 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/_footer.md +3 -0
- data/app/pb_kits/playbook/pb_pill/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_popover/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_progress_simple/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_progress_simple/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_radio/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_radio/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_error.md +1 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_section_separator/docs/_footer.md +1 -1
- data/app/pb_kits/playbook/pb_select/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_select/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_error.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.md +2 -0
- data/app/pb_kits/playbook/pb_source/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_star_rating/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_stat_value/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_stat_value/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_lg.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_md.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +1 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.md +1 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.md +1 -0
- data/app/pb_kits/playbook/pb_time/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_time/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_default.md +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md +1 -0
- data/app/pb_kits/playbook/pb_title/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +33 -15
- data/app/pb_kits/playbook/pb_title_count/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_title_count/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.jsx +12 -1
- data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.md +1 -0
- data/app/pb_kits/playbook/pb_title_detail/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_title_detail/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.md +1 -0
- data/app/pb_kits/playbook/pb_toggle/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_toggle/docs/_footer.md +3 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +2 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_user/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_user/docs/_footer.md +0 -0
- data/app/pb_kits/playbook/pb_user_badge/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_user_badge/docs/_footer.md +2 -0
- data/app/pb_kits/playbook/pb_user_badge/docs/_user_badge_default.md +1 -0
- data/app/pb_kits/playbook/vendor.js +3 -0
- data/app/views/layouts/playbook/samples.html.erb +0 -17
- data/app/views/playbook/samples/dashboards/{dashboards.html.erb → index.html.erb} +17 -20
- data/app/views/playbook/samples/dashboards/index.jsx +130 -0
- data/app/views/playbook/samples/sample_show.html.erb +14 -3
- data/fonts/{fontawesome.min.js → fontawesome-min.js} +2 -2
- data/fonts/regular-min.js +5 -0
- data/lib/generators/kit/kit_generator.rb +0 -6
- data/lib/playbook/version.rb +1 -1
- metadata +147 -12
- data/app/pb_kits/playbook/kits/pb_flex.js +0 -4
- data/app/pb_kits/playbook/kits/pb_highlight.js +0 -4
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.md +0 -1
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.md +0 -1
- data/app/views/playbook/samples/dashboards/dashboards.jsx +0 -35
- data/fonts/regular.min.js +0 -5
- data/lib/generators/kit/templates/kit_pack.erb.tt +0 -4
@@ -0,0 +1,82 @@
|
|
1
|
+
@import "../tokens/spacing";
|
2
|
+
@import "../tokens/colors";
|
3
|
+
|
4
|
+
[class^=pb_filter_kit] {
|
5
|
+
[class^=pb_circle_icon_button_kit]{
|
6
|
+
padding-left: $space_sm !important;
|
7
|
+
padding-top: $space_sm !important;
|
8
|
+
padding-bottom: $space_sm !important;
|
9
|
+
}
|
10
|
+
[class^=pb_card_body_kit][class*=_md]{
|
11
|
+
padding: 0 !important;
|
12
|
+
}
|
13
|
+
[class^=pb_list_kit] li{
|
14
|
+
padding: 0 $space_sm !important;
|
15
|
+
}
|
16
|
+
[class^=pb-form]{
|
17
|
+
padding: $space_sm ;
|
18
|
+
}
|
19
|
+
[class^=pb_button_kit][class*=_link]{
|
20
|
+
flex-shrink:0;
|
21
|
+
padding: 0 $space_xs !important;
|
22
|
+
[id^="sort"]{
|
23
|
+
margin-left: $space_xs !important;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
.sort-by{
|
27
|
+
flex-shrink:0;
|
28
|
+
margin-left: $space_xs !important;
|
29
|
+
}
|
30
|
+
.filter-results{
|
31
|
+
margin-left: $space_xs !important;
|
32
|
+
margin-right: $space_xs !important;
|
33
|
+
flex-shrink:0 !important;
|
34
|
+
}
|
35
|
+
.filter-bottom{
|
36
|
+
padding-left: $space_sm !important;
|
37
|
+
padding-right: $space_sm !important;
|
38
|
+
}
|
39
|
+
.maskContainer{
|
40
|
+
display: flex;
|
41
|
+
overflow-x: hidden;
|
42
|
+
align-items: center;
|
43
|
+
flex-grow: 1;
|
44
|
+
}
|
45
|
+
.filters {
|
46
|
+
display: flex;
|
47
|
+
flex-shrink: 1;
|
48
|
+
flex-wrap: nowrap;
|
49
|
+
overflow-x: scroll;
|
50
|
+
padding-right: 80px;
|
51
|
+
padding-top: $space_md;
|
52
|
+
padding-bottom: $space_md;
|
53
|
+
|
54
|
+
&::-webkit-scrollbar{
|
55
|
+
display: none;
|
56
|
+
}
|
57
|
+
.filter {
|
58
|
+
flex: 0 0 auto;
|
59
|
+
padding-left: $space_xs;
|
60
|
+
padding-right: $space_xs;
|
61
|
+
border-right: 1px solid $border_light !important;
|
62
|
+
}
|
63
|
+
|
64
|
+
}
|
65
|
+
.maskContainer::after {
|
66
|
+
content: " ";
|
67
|
+
background-image: linear-gradient(to right, rgba($card_light,.3) , rgba($card_light,1));
|
68
|
+
height: 48px;
|
69
|
+
padding-left: $space_xl;
|
70
|
+
margin-left: -$space_lg;
|
71
|
+
z-index: 1;
|
72
|
+
}
|
73
|
+
.maskContainer::before {
|
74
|
+
content: " ";
|
75
|
+
background-image: linear-gradient(to left, rgba($card_light,.3) , rgba($card_light,1));
|
76
|
+
height: 48px;
|
77
|
+
padding-right: $space_sm;
|
78
|
+
margin-right: -$space_xs;
|
79
|
+
z-index: 1;
|
80
|
+
}
|
81
|
+
|
82
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<% 5.times do%>
|
2
|
+
<br>
|
3
|
+
<%end%>
|
4
|
+
|
5
|
+
<%= pb_rails("filter", props: {
|
6
|
+
id: "1",
|
7
|
+
filters: [
|
8
|
+
{name: "name", value: "John Wick"}
|
9
|
+
],
|
10
|
+
sort_menu: [
|
11
|
+
{item:"Popularity", link:"#", active: true, direction:"des"},
|
12
|
+
{item:"Title", link:"#", active: false},
|
13
|
+
{item:"Name", link:"#", active: false},
|
14
|
+
],
|
15
|
+
results: 546
|
16
|
+
}) do%>
|
17
|
+
<%
|
18
|
+
example_collection = [
|
19
|
+
OpenStruct.new(name: "Alabama", value: 1),
|
20
|
+
OpenStruct.new(name: "Alaska", value: 2),
|
21
|
+
OpenStruct.new(name: "Arizona", value: 3),
|
22
|
+
OpenStruct.new(name: "Arkansas", value: 4),
|
23
|
+
OpenStruct.new(name: "California", value: 5),
|
24
|
+
OpenStruct.new(name: "Colorado", value: 6),
|
25
|
+
OpenStruct.new(name: "Connecticut", value: 7),
|
26
|
+
OpenStruct.new(name: "Delaware", value: 8),
|
27
|
+
OpenStruct.new(name: "Florida", value: 9),
|
28
|
+
OpenStruct.new(name: "Georgia", value: 10),
|
29
|
+
]
|
30
|
+
%>
|
31
|
+
|
32
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
33
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
34
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
35
|
+
|
36
|
+
<%= form.actions do |action| %>
|
37
|
+
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
38
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
39
|
+
<% end %>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
<% end %>
|
43
|
+
<% 5.times do%>
|
44
|
+
<br>
|
45
|
+
<%end%>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<% 5.times do%>
|
2
|
+
<br>
|
3
|
+
<%end%>
|
4
|
+
|
5
|
+
<%= pb_rails("filter", props: {
|
6
|
+
id:"2",
|
7
|
+
filters: [
|
8
|
+
{name: "name", value: "John Wick"}
|
9
|
+
],
|
10
|
+
sort_menu: [
|
11
|
+
{item:"Popularity", link:"#", active: true, direction:"des"},
|
12
|
+
{item:"Title", link:"#", active: false},
|
13
|
+
{item:"Name", link:"#", active: false},
|
14
|
+
],
|
15
|
+
results: 546,
|
16
|
+
template: "single"
|
17
|
+
}) do%>
|
18
|
+
<%
|
19
|
+
example_collection = [
|
20
|
+
OpenStruct.new(name: "Alabama", value: 1),
|
21
|
+
OpenStruct.new(name: "Alaska", value: 2),
|
22
|
+
OpenStruct.new(name: "Arizona", value: 3),
|
23
|
+
OpenStruct.new(name: "Arkansas", value: 4),
|
24
|
+
OpenStruct.new(name: "California", value: 5),
|
25
|
+
OpenStruct.new(name: "Colorado", value: 6),
|
26
|
+
OpenStruct.new(name: "Connecticut", value: 7),
|
27
|
+
OpenStruct.new(name: "Delaware", value: 8),
|
28
|
+
OpenStruct.new(name: "Florida", value: 9),
|
29
|
+
OpenStruct.new(name: "Georgia", value: 10),
|
30
|
+
]
|
31
|
+
%>
|
32
|
+
|
33
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
34
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
35
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
36
|
+
|
37
|
+
<%= form.actions do |action| %>
|
38
|
+
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
39
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
40
|
+
<% end %>
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
<% end %>
|
44
|
+
<% 5.times do%>
|
45
|
+
<br>
|
46
|
+
<%end%>
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as FilterDefault } from './_filter_default.jsx'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbFilter
|
5
|
+
class Filter
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_filter/filter"
|
9
|
+
|
10
|
+
prop :filters, type: Playbook::Props::HashArray, default: [{name: ''}]
|
11
|
+
prop :sort_menu, type: Playbook::Props::HashArray, default: [{}]
|
12
|
+
prop :results, type: Playbook::Props::Numeric
|
13
|
+
prop :template, type: Playbook::Props::Enum,
|
14
|
+
values: %w[default single],
|
15
|
+
default: "default"
|
16
|
+
|
17
|
+
|
18
|
+
def classname
|
19
|
+
generate_classname("pb_filter_kit")
|
20
|
+
end
|
21
|
+
|
22
|
+
def sort_icon(direction)
|
23
|
+
case direction
|
24
|
+
when "asc"
|
25
|
+
"sort-amount-up"
|
26
|
+
when "des"
|
27
|
+
"sort-amount-down"
|
28
|
+
else
|
29
|
+
""
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<%= pb_rails("card",props: {padding:"none"}) do%>
|
2
|
+
<%= pb_rails("flex", props: {orientation: "row", vertical: "center"}) do %>
|
3
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "filter", id:"filter"}) %>
|
4
|
+
<div class="maskContainer">
|
5
|
+
<div class="filters">
|
6
|
+
<div class="left_gradient"></div> <% object.filters.each do |filter| %>
|
7
|
+
<div class="filter">
|
8
|
+
<%= pb_rails("caption", props: { text: filter[:name]}) %>
|
9
|
+
<%= pb_rails("title", props: { size: 4, tag:"h4", text: filter[:value]}) %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
<div class="right_gradient"></div>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
<%= pb_rails("section_separator") %>
|
17
|
+
<%= pb_rails("flex", props: {orientation: "row", vertical: "center", spacing: "between", classname: "filter-bottom"}) do %>
|
18
|
+
<%= pb_rails("title_count", props: {title: "Results:",count: object.results, align:"center"}) %>
|
19
|
+
<%= pb_rails("flex", props: {orientation: "row", vertical: "center"}) do %>
|
20
|
+
<%= pb_rails("caption", props: { text: "sort by:"}) %>
|
21
|
+
<%= pb_rails("button", props: {variant: "link" ,classname: "p-0 ml-3",id: "sort-button"}) do %>
|
22
|
+
<% object.sort_menu.each do |item| %>
|
23
|
+
<% if item[:active] == true %>
|
24
|
+
<%= item[:item] %>
|
25
|
+
<%= pb_rails("icon", props: { icon: object.sort_icon(item[:direction]), fixed_width: true }) %>
|
26
|
+
<%end%>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<%= pb_rails("popover", props: {trigger_element_id: "filter", tooltip_id: "filter-form", position: 'bottom'}) do %>
|
34
|
+
<%= capture(&object.children) %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<%= pb_rails("popover", props: { trigger_element_id: "sort-button", tooltip_id: "sort-filter-btn-tooltip", position: 'bottom'}) do %>
|
38
|
+
<%= pb_rails("list") do %>
|
39
|
+
<% object.sort_menu.each do |item| %>
|
40
|
+
<%= pb_rails("list/item") do%> <%= pb_rails("button", props: {variant: "link" ,classname: "p-0", text: item[:item], link: item[:url]}) %><% end %>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
43
|
+
<% end %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%= pb_rails("card",props: {padding:"none"}) do%>
|
2
|
+
<%= pb_rails("flex", props: {orientation: "row", vertical: "center"}) do %>
|
3
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "filter", id:"filter#{object.id}"}) %>
|
4
|
+
|
5
|
+
<div class="maskContainer">
|
6
|
+
<div class="filters">
|
7
|
+
<div class="left_gradient"></div>
|
8
|
+
<% object.filters.each do |filter| %>
|
9
|
+
<div class="filter">
|
10
|
+
<%= pb_rails("caption", props: { text: filter[:name]}) %>
|
11
|
+
<%= pb_rails("title", props: { size: 4, tag:"h4", text: filter[:value]}) %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
<div class="right_gradient"></div>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<%= pb_rails("caption", props: {text: "#{object.results} Results", size:"xs", classname:"filter-results"}) %>
|
19
|
+
<%= pb_rails("button", props: {variant: "link",id: "sort-button#{object.id}"}) do %>
|
20
|
+
<% object.sort_menu.each do |item| %>
|
21
|
+
<% if item[:active] == true %>
|
22
|
+
<%= item[:item] %>
|
23
|
+
<%= pb_rails("icon", props: { icon: object.sort_icon(item[:direction]), fixed_width: true }) %>
|
24
|
+
<%end%>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
31
|
+
|
32
|
+
<%= pb_rails("popover", props: {trigger_element_id: "filter#{object.id}", tooltip_id: "filter-form#{object.id}", position: 'bottom'}) do %>
|
33
|
+
<%= capture(&object.children) %>
|
34
|
+
<% end %>
|
35
|
+
|
36
|
+
<%= pb_rails("popover", props: { trigger_element_id: "sort-button#{object.id}", tooltip_id: "sort-filter-btn-tooltip#{object.id}", position: 'bottom'}) do %>
|
37
|
+
<%= pb_rails("list") do %>
|
38
|
+
<% object.sort_menu.each do |item| %>
|
39
|
+
<%= pb_rails("list/item") do%> <%= pb_rails("button", props: {variant: "link" ,classname: "p-0", text: item[:item]}) %><% end %>
|
40
|
+
<% end %>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
This kit is used to build most of the complex interfaces. The Flex Kit is used the same way flex box is used.
|
@@ -0,0 +1 @@
|
|
1
|
+
Display: block
|
@@ -0,0 +1 @@
|
|
1
|
+
Display: inline
|
@@ -0,0 +1,10 @@
|
|
1
|
+
The `form` kit provides consumers with a convenient, consistently styled `<form>` wrapper.
|
2
|
+
|
3
|
+
### Form Helpers
|
4
|
+
|
5
|
+
There are currently two form helper options for Rails: [`form_with`](https://apidock.com/rails/ActionView/Helpers/FormHelper/form_with) and [`simple_form`](https://github.com/heartcombo/simple_form).
|
6
|
+
|
7
|
+
**Note:** It is suggested to use `form_with` for newer or more progressive Rails applications and `simple_form` for older legacy forms where simple_form is already implemented and a complete overhaul might not make sense.
|
8
|
+
|
9
|
+
This kit does make use of other kits such as text_input, select and typeahead to name a few. Doing so provides UI consistency within forms and makes adding a form to your page easier.
|
10
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
Validation displays an error with red border and red text below indicating that the user must fill out the field.
|
@@ -0,0 +1 @@
|
|
1
|
+
Validation displays an error with red border and red text below indicating that the user must fill out the field.
|
@@ -0,0 +1 @@
|
|
1
|
+
Hashtag is used to display home, project and other forms of IDs. They can be used as a link.
|
@@ -0,0 +1 @@
|
|
1
|
+
Highlight is used to pick out or emphasize content.
|
@@ -0,0 +1 @@
|
|
1
|
+
This kit can be used to display the address for a homeowner/project. It contains street address, APT format, City, state and zip. A Project hashtag can be used as a prop to link back to a project.
|
@@ -0,0 +1 @@
|
|
1
|
+
Use this kit on tables, card displays, or on modals. It's versatile for displaying in the most condensed areas.
|
@@ -0,0 +1 @@
|
|
1
|
+
An icon is a graphic symbol that represents an object (ie a file) or a function. They can be used to give the user feedback.
|
@@ -0,0 +1 @@
|
|
1
|
+
A spinner icon can show a user that something is loading or saving.
|
@@ -0,0 +1 @@
|
|
1
|
+
Icon Pull can be used to indicate that the user can perform a pull action.
|
@@ -0,0 +1 @@
|
|
1
|
+
Similar to Icon, Icon Circle is a graphical symbol within a circle used to visually indicate an object or function.
|
@@ -0,0 +1 @@
|
|
1
|
+
Icon Value leverages our icon kit, to display a value of some sort in the interface. Typically, this includes a numerical value.
|
@@ -0,0 +1 @@
|
|
1
|
+
A responsive image component.
|
@@ -0,0 +1 @@
|
|
1
|
+
This kit combines the caption and pill kit with all its variants.
|
@@ -0,0 +1 @@
|
|
1
|
+
Use this kit to display a label and a value with a certain status or color to highlight its significance or meaning. It can be a good design use to highlight the value incase it is important.
|
@@ -0,0 +1 @@
|
|
1
|
+
This kit can be very versatile when used to display text data. It includes the caption kit and the body text kit.
|