playbook_ui 7.8.2 → 7.11.0.pre.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/playbook/application_controller.rb +5 -3
- data/app/helpers/playbook/application_helper.rb +13 -19
- data/app/helpers/playbook/pb_doc_helper.rb +41 -20
- data/app/helpers/playbook/pb_kit_helper.rb +1 -25
- data/app/helpers/playbook/pb_sample_helper.rb +24 -23
- data/app/pb_kits/playbook/config/_kit_example.html.erb +18 -4
- data/app/pb_kits/playbook/config/_kit_ui.html.erb +21 -21
- data/app/pb_kits/playbook/pb_currency/_currency.html.erb +1 -1
- data/app/pb_kits/playbook/pb_currency/_currency.jsx +16 -1
- data/app/pb_kits/playbook/pb_currency/_currency.scss +23 -1
- data/app/pb_kits/playbook/pb_currency/currency.rb +22 -0
- data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.html.erb → _currency_alignment.html.erb} +3 -3
- data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.jsx → _currency_alignment.jsx} +5 -5
- data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.html.erb +7 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx +17 -0
- data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.html.erb → _currency_size.html.erb} +8 -7
- data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.jsx → _currency_size.jsx} +9 -8
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +24 -0
- data/app/pb_kits/playbook/pb_currency/docs/{_currency_medium.jsx → _currency_variants.jsx} +13 -10
- data/app/pb_kits/playbook/pb_currency/docs/example.yml +8 -6
- data/app/pb_kits/playbook/pb_currency/docs/index.js +4 -3
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_anti_patterns.html.erb +23 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +4 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +2 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +8 -8
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.html.erb +27 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.jsx +44 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +4 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +2 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +4 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +1 -0
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +2 -2
- data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -2
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +0 -41
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.md +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.html.erb +35 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +47 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +7 -9
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +22 -0
- data/app/pb_kits/playbook/pb_nav/_item.jsx +3 -0
- data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +47 -0
- data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +2 -46
- data/app/pb_kits/playbook/pb_nav/docs/_new_tab.html.erb +6 -0
- data/app/pb_kits/playbook/pb_nav/docs/_new_tab.jsx +34 -0
- data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.html.erb +6 -0
- data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.jsx +33 -0
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -1
- data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_nav/item.rb +5 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +1 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/_trix_styles.scss +375 -0
- data/app/pb_kits/playbook/pb_stat_change/_stat_change.html.erb +1 -1
- data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +8 -4
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.html.erb +17 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +28 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.html.erb +20 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +31 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.md +1 -0
- data/app/pb_kits/playbook/pb_stat_change/docs/example.yml +6 -4
- data/app/pb_kits/playbook/pb_stat_change/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +12 -7
- data/app/pb_kits/playbook/pb_table/_table.scss +1 -57
- data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +32 -0
- data/app/pb_kits/playbook/pb_table/styles/_all.scss +4 -3
- data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +24 -0
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +0 -1
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +1 -1
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +10 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +5 -1
- data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +2 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +19 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +10 -2
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -0
- data/app/pb_kits/playbook/react_rails_kits.js +1 -0
- data/lib/playbook.rb +7 -17
- data/lib/playbook/engine.rb +0 -3
- data/lib/playbook/markdown/template_handler.rb +45 -0
- data/{app/pb_kits → lib}/playbook/props.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/array.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/base.rb +19 -3
- data/{app/pb_kits → lib}/playbook/props/boolean.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/date.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/enum.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/hash.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/hash_array.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/number.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/number_array.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/numeric.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/percentage.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/proc.rb +0 -0
- data/{app/pb_kits → lib}/playbook/props/string.rb +0 -0
- data/lib/playbook/version.rb +1 -1
- metadata +52 -30
- data/app/helpers/playbook/layout_helper.rb +0 -9
- data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.html.erb +0 -21
- data/app/pb_kits/playbook/pb_table/styles/_mixins.scss +0 -0
@@ -1,23 +1,23 @@
|
|
1
1
|
<%= pb_rails("date_picker", props: {
|
2
|
-
default_date:
|
2
|
+
default_date: DateTime.current.utc.iso8601,
|
3
3
|
format: "m-d-Y",
|
4
4
|
picker_id: "date-picker-format1"
|
5
5
|
}) %>
|
6
6
|
|
7
7
|
<%= pb_rails("date_picker", props: {
|
8
|
-
default_date:
|
8
|
+
default_date: DateTime.current.utc.iso8601,
|
9
9
|
format: "m/d/y",
|
10
10
|
picker_id: "date-picker-format2"
|
11
11
|
}) %>
|
12
12
|
|
13
13
|
<%= pb_rails("date_picker", props: {
|
14
|
-
default_date:
|
14
|
+
default_date: DateTime.current.utc.iso8601,
|
15
15
|
format: "n-j-y",
|
16
16
|
picker_id: "date-picker-format3"
|
17
17
|
}) %>
|
18
18
|
|
19
19
|
<%= pb_rails("date_picker", props: {
|
20
|
-
default_date:
|
20
|
+
default_date: DateTime.current.utc.iso8601,
|
21
21
|
format: "Y-d-m",
|
22
22
|
picker_id: "date-picker-format4"
|
23
23
|
}) %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= pb_rails("date_picker", props: {
|
2
2
|
label: "Dynamic dates",
|
3
|
-
max_date: (
|
4
|
-
min_date: (
|
3
|
+
max_date: (DateTime.current + 1.day).utc.iso8601,
|
4
|
+
min_date: (DateTime.current - 1.day).utc.iso8601,
|
5
5
|
picker_id: "date-picker-min-max1"
|
6
6
|
}) %>
|
7
7
|
|
@@ -1,7 +1,9 @@
|
|
1
|
-
Playbook's date picker is built using [flatpickr](https://flatpickr.js.org/), a vanilla js library. Common date picker use cases and features have been adapted into simple prop based configuration detailed in the docs below. You can implement additional features and functionality by accessing a flatpickr instance directly. This is done with the following code.
|
1
|
+
Playbook's date picker is built using [flatpickr](https://flatpickr.js.org/), a vanilla js library. Common date picker use cases and features have been adapted into simple prop based configuration detailed in the docs below. You can implement additional features and functionality by accessing a flatpickr instance directly (demonstrated in the 'flatpickr methods' example below). This is done with the following code.
|
2
2
|
|
3
3
|
`const fpInstance = document.querySelector('#pickerId')._flatpickr`
|
4
4
|
|
5
5
|
`pickerId` is a prop passed to the date picker kit. Flatpickr uses this id to target an input and attach a flatpickr instance to that input.
|
6
6
|
|
7
|
-
To learn more [visit flatpickr's docs](https://flatpickr.js.org/instance-methods-properties-elements/) or see the hook doc section below for an applied example.
|
7
|
+
To learn more [visit flatpickr's docs](https://flatpickr.js.org/instance-methods-properties-elements/) or see the hook doc section below for an applied example.
|
8
|
+
|
9
|
+
The Date Picker works best with Javascript Date Objects or ISO Date strings. If you're programming in js use Date Objects. If you're using rails convert your date object (with timezone) to UTC and then to an ISO Date string. For example, `DateTime.now.utc.iso8601`. This ensures that the string passed to the Date Picker kit behaves as expected.
|
@@ -11,8 +11,10 @@ examples:
|
|
11
11
|
- date_picker_disabled: Disabled Dates
|
12
12
|
- date_picker_min_max: Min Max
|
13
13
|
- date_picker_error: Error
|
14
|
+
- date_picker_flatpickr_methods: Flatpickr Methods
|
14
15
|
- date_picker_hooks: Hooks
|
15
16
|
- date_picker_year_range: Year Range
|
17
|
+
- date_picker_anti_patterns: Anti-Patterns
|
16
18
|
|
17
19
|
|
18
20
|
react:
|
@@ -27,6 +29,6 @@ examples:
|
|
27
29
|
- date_picker_disabled: Disabled Dates
|
28
30
|
- date_picker_min_max: Min Max
|
29
31
|
- date_picker_error: Error
|
32
|
+
- date_picker_flatpickr_methods: Flatpickr Methods
|
30
33
|
- date_picker_hooks: Hooks
|
31
34
|
- date_picker_year_range: Year Range
|
32
|
-
|
@@ -10,4 +10,5 @@ export { default as DatePickerDisabled } from './_date_picker_disabled.jsx'
|
|
10
10
|
export { default as DatePickerMinMax } from './_date_picker_min_max.jsx'
|
11
11
|
export { default as DatePickerError } from './_date_picker_error.jsx'
|
12
12
|
export { default as DatePickerHooks } from './_date_picker_hooks.jsx'
|
13
|
+
export { default as DatePickerFlatpickrMethods } from './_date_picker_flatpickr_methods.jsx'
|
13
14
|
export { default as DatePickerYearRange } from './_date_picker_year_range.jsx'
|
@@ -27,7 +27,6 @@ const renderOptions = (options: SortOptions, value: SortValue[], handleChange: (
|
|
27
27
|
return (
|
28
28
|
<ListItem key={`option-${next.name}-${next.dir}`}>
|
29
29
|
<Button
|
30
|
-
icon={directionIcon(next.dir)}
|
31
30
|
onClick={partial(handleChange, next)}
|
32
31
|
text={` ${label}`}
|
33
32
|
variant="link"
|
@@ -56,15 +55,16 @@ const SortMenu = ({ dark, options, value, onChange }: SortMenuProps) => {
|
|
56
55
|
dark={dark}
|
57
56
|
id="sort-button"
|
58
57
|
onClick={toggle}
|
58
|
+
paddingRight="none"
|
59
59
|
variant="link"
|
60
60
|
>
|
61
61
|
{map(value, ({ dir, name }) => (
|
62
62
|
<span key={`current-sort-${name}-${dir}`}>
|
63
|
+
{` ${options[name]}`}
|
63
64
|
<Icon
|
64
65
|
dark={dark}
|
65
66
|
icon={directionIcon(dir)}
|
66
67
|
/>
|
67
|
-
{` ${options[name]}`}
|
68
68
|
</span>
|
69
69
|
))}
|
70
70
|
</Button>
|
@@ -11,47 +11,6 @@ const FilterNoBackground = (props) => {
|
|
11
11
|
]
|
12
12
|
return (
|
13
13
|
<>
|
14
|
-
<Filter
|
15
|
-
{...props}
|
16
|
-
background={false}
|
17
|
-
filters={{
|
18
|
-
'Full Name': 'John Wick',
|
19
|
-
'City': 'Las Vegas',
|
20
|
-
}}
|
21
|
-
results={3}
|
22
|
-
sortOptions={{
|
23
|
-
popularity: 'Popularity',
|
24
|
-
// eslint-disable-next-line
|
25
|
-
manager_title: 'Manager\'s Title',
|
26
|
-
// eslint-disable-next-line
|
27
|
-
manager_name: 'Manager\'s Name',
|
28
|
-
}}
|
29
|
-
sortValue={[{ name: 'popularity', dir: 'desc' }]}
|
30
|
-
>
|
31
|
-
<TextInput
|
32
|
-
label="Full Name"
|
33
|
-
placeholder="Enter name"
|
34
|
-
/>
|
35
|
-
|
36
|
-
<Select
|
37
|
-
blankSelection="Select One..."
|
38
|
-
label="Territory"
|
39
|
-
name="location"
|
40
|
-
options={options}
|
41
|
-
/>
|
42
|
-
<Flex
|
43
|
-
spacing="between"
|
44
|
-
>
|
45
|
-
<Button
|
46
|
-
text="Apply"
|
47
|
-
/>
|
48
|
-
<Button
|
49
|
-
text="Clear"
|
50
|
-
variant="secondary"
|
51
|
-
/>
|
52
|
-
</Flex>
|
53
|
-
</Filter>
|
54
|
-
|
55
14
|
<Filter
|
56
15
|
{...props}
|
57
16
|
background={false}
|
@@ -0,0 +1 @@
|
|
1
|
+
To remove the background from a filter, add the prop `background` with a value of `false`.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%=
|
2
|
+
pb_rails("filter", props: {
|
3
|
+
id: "2",
|
4
|
+
filters: [
|
5
|
+
{ name: "name", value: "John Wick" }
|
6
|
+
],
|
7
|
+
results: 546,
|
8
|
+
template: "single"
|
9
|
+
}) do
|
10
|
+
%>
|
11
|
+
<%
|
12
|
+
example_collection = [
|
13
|
+
OpenStruct.new(name: "Alabama", value: 1),
|
14
|
+
OpenStruct.new(name: "Alaska", value: 2),
|
15
|
+
OpenStruct.new(name: "Arizona", value: 3),
|
16
|
+
OpenStruct.new(name: "Arkansas", value: 4),
|
17
|
+
OpenStruct.new(name: "California", value: 5),
|
18
|
+
OpenStruct.new(name: "Colorado", value: 6),
|
19
|
+
OpenStruct.new(name: "Connecticut", value: 7),
|
20
|
+
OpenStruct.new(name: "Delaware", value: 8),
|
21
|
+
OpenStruct.new(name: "Florida", value: 9),
|
22
|
+
OpenStruct.new(name: "Georgia", value: 10),
|
23
|
+
]
|
24
|
+
%>
|
25
|
+
|
26
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
27
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
28
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
29
|
+
|
30
|
+
<%= form.actions do |action| %>
|
31
|
+
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
32
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
33
|
+
<% end %>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Button, Filter, Flex, Select, TextInput } from '../../'
|
3
|
+
|
4
|
+
const FilterNoSort = (props) => {
|
5
|
+
const options = [
|
6
|
+
{ value: 'USA' },
|
7
|
+
{ value: 'Canada' },
|
8
|
+
{ value: 'Brazil' },
|
9
|
+
{ value: 'Philippines' },
|
10
|
+
{ value: 'A Galaxy Far Far Away Like Really Far Away' },
|
11
|
+
]
|
12
|
+
return (
|
13
|
+
<Filter
|
14
|
+
{...props}
|
15
|
+
filters={{
|
16
|
+
'Full Name': 'John Wick',
|
17
|
+
}}
|
18
|
+
results={546}
|
19
|
+
sortValue={[{ name: 'popularity', dir: 'desc' }]}
|
20
|
+
>
|
21
|
+
<TextInput
|
22
|
+
label="Full Name"
|
23
|
+
placeholder="Enter name"
|
24
|
+
/>
|
25
|
+
|
26
|
+
<Select
|
27
|
+
blankSelection="Select One..."
|
28
|
+
label="Territory"
|
29
|
+
name="location"
|
30
|
+
options={options}
|
31
|
+
/>
|
32
|
+
<Flex
|
33
|
+
spacing="between"
|
34
|
+
>
|
35
|
+
<Button
|
36
|
+
text="Apply"
|
37
|
+
/>
|
38
|
+
<Button
|
39
|
+
text="Clear"
|
40
|
+
variant="secondary"
|
41
|
+
/>
|
42
|
+
</Flex>
|
43
|
+
</Filter>
|
44
|
+
)
|
45
|
+
}
|
46
|
+
|
47
|
+
export default FilterNoSort
|
@@ -4,6 +4,7 @@ examples:
|
|
4
4
|
- filter_default: Default
|
5
5
|
- filter_no_background: No Background
|
6
6
|
- filter_single: Single
|
7
|
+
- filter_no_sort: No Sort
|
7
8
|
- filter_only: Filter Only
|
8
9
|
- sort_only: Sort Only
|
9
10
|
|
@@ -11,5 +12,6 @@ examples:
|
|
11
12
|
- filter_default: Default
|
12
13
|
- filter_no_background: No Background
|
13
14
|
- filter_single: Single
|
15
|
+
- filter_no_sort: No Sort
|
14
16
|
- filter_only: Filter Only
|
15
17
|
- sort_only: Sort Only
|
@@ -1,5 +1,6 @@
|
|
1
1
|
export { default as FilterDefault } from './_filter_default.jsx'
|
2
2
|
export { default as FilterSingle } from './_filter_single.jsx'
|
3
|
+
export { default as FilterNoSort } from './_filter_no_sort.jsx'
|
3
4
|
export { default as FilterNoBackground } from './_filter_no_background.jsx'
|
4
5
|
export { default as FilterOnly } from './_filter_only.jsx'
|
5
6
|
export { default as SortOnly } from './_sort_only.jsx'
|
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
<%= pb_rails("flex", props: {orientation: "row", vertical: "center"}) do %>
|
2
|
+
<%= pb_rails("flex", props: {orientation: "row", padding_right: "lg", vertical: "center"}) do %>
|
3
3
|
|
4
4
|
<% if (object.template != "sort_only") %>
|
5
5
|
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "filter", id:"filter#{object.id}"}) %>
|
@@ -11,23 +11,24 @@
|
|
11
11
|
<%= pb_rails("caption", props: { text: filter[:name]}) %>
|
12
12
|
<%= pb_rails("title", props: { size: 4, tag:"h4", text: filter[:value]}) %>
|
13
13
|
</div>
|
14
|
-
<% end %>
|
14
|
+
<% end %>
|
15
15
|
<div class="right_gradient"></div>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
<% end %>
|
19
19
|
|
20
20
|
|
21
|
-
|
22
21
|
<% if (object.template == "single" ) || (object.template == "sort_only") %>
|
23
|
-
<%= pb_rails("caption", props: {text: object.result_text, size:"xs", classname:"filter-results"})%>
|
24
|
-
|
22
|
+
<%= pb_rails("caption", props: {text: object.result_text, size:"xs", classname:"filter-results"})%>
|
23
|
+
<% unless object.sort_menu == [{}] %>
|
24
|
+
<%= pb_rails("button", props: {variant: "link",id: "sort-button#{object.id}",padding_right: "none"}) do %>
|
25
25
|
<% object.sort_menu.each do |item| %>
|
26
26
|
<% if item[:active] == true %>
|
27
27
|
<%= item[:item] %>
|
28
28
|
<%= pb_rails("icon", props: { icon: object.sort_icon(item[:direction]), fixed_width: true }) %>
|
29
29
|
<% end %>
|
30
30
|
<% end %>
|
31
|
+
<% end %>
|
31
32
|
<% end %>
|
32
33
|
<% end %>
|
33
34
|
|
@@ -40,7 +41,7 @@
|
|
40
41
|
<%= pb_rails("title_count", props: {title: "Results:",count: object.results, align:"center"}) %>
|
41
42
|
<%= pb_rails("flex", props: {orientation: "row", vertical: "center"}) do %>
|
42
43
|
<%= pb_rails("caption", props: { text: "sort by:"}) %>
|
43
|
-
<%= pb_rails("button", props: {variant: "link"
|
44
|
+
<%= pb_rails("button", props: {variant: "link", padding_right: "none", id: "sort-button#{object.id}"}) do %>
|
44
45
|
<% object.sort_menu.each do |item| %>
|
45
46
|
<% if item[:active] == true %>
|
46
47
|
<%= item[:item] %>
|
@@ -51,6 +52,3 @@
|
|
51
52
|
<% end %>
|
52
53
|
<% end %>
|
53
54
|
<% end %>
|
54
|
-
|
55
|
-
|
56
|
-
|
@@ -2,6 +2,7 @@
|
|
2
2
|
@import "../tokens/colors";
|
3
3
|
@import "../tokens/animation-curves";
|
4
4
|
@import "../tokens/typography";
|
5
|
+
@import "./subtle_mixin";
|
5
6
|
|
6
7
|
$selector: ".pb_nav_list";
|
7
8
|
|
@@ -71,6 +72,27 @@ $selector: ".pb_nav_list";
|
|
71
72
|
}
|
72
73
|
}
|
73
74
|
}
|
75
|
+
|
76
|
+
// Subtle Variant
|
77
|
+
&[class*=_subtle] {
|
78
|
+
@include subtle;
|
79
|
+
// Horizontal Overrides
|
80
|
+
[class*=pb_nav_list_kit_item] {
|
81
|
+
margin: 0;
|
82
|
+
}
|
83
|
+
[class*=_active] {
|
84
|
+
background-color: $active_light;
|
85
|
+
&[class*=dark] {
|
86
|
+
background-color: rgba($white, $opacity_1);
|
87
|
+
}
|
88
|
+
[class*=_item_link] {
|
89
|
+
[class*=_item_text]{
|
90
|
+
color: $primary;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
74
96
|
&[class*=dark]{
|
75
97
|
[class*=pb_nav_list_kit_item]{
|
76
98
|
[class*=_link]{
|
@@ -18,6 +18,7 @@ type NavItemProps = {
|
|
18
18
|
imageUrl: String,
|
19
19
|
link: string,
|
20
20
|
onClick?: EventHandler,
|
21
|
+
target?: '_blank' | '_self' | '_parent' | '_top',
|
21
22
|
text: string,
|
22
23
|
}
|
23
24
|
|
@@ -34,6 +35,7 @@ const NavItem = (props: NavItemProps) => {
|
|
34
35
|
imageUrl,
|
35
36
|
link,
|
36
37
|
onClick = () => {},
|
38
|
+
target = '_self',
|
37
39
|
text = '',
|
38
40
|
} = props
|
39
41
|
const Tag = link ? 'a' : 'div'
|
@@ -54,6 +56,7 @@ const NavItem = (props: NavItemProps) => {
|
|
54
56
|
className="pb_nav_list_item_link"
|
55
57
|
href={link}
|
56
58
|
onClick={onClick}
|
59
|
+
target={target}
|
57
60
|
>
|
58
61
|
<If condition={imageUrl}>
|
59
62
|
<div
|
@@ -0,0 +1,47 @@
|
|
1
|
+
@mixin subtle {
|
2
|
+
[class*=pb_nav_list_kit_item] {
|
3
|
+
list-style: none;
|
4
|
+
border-radius: $border_rad_heavier;
|
5
|
+
border-bottom: 0;
|
6
|
+
margin: $space_xs ($space_sm - 2px);
|
7
|
+
[class*=_link] {
|
8
|
+
text-decoration: none;
|
9
|
+
display: flex;
|
10
|
+
align-items: center;
|
11
|
+
border: none;
|
12
|
+
padding: $space_xs ($space_sm - 2px);
|
13
|
+
transition-property: color, background-color;
|
14
|
+
transition-duration: 0.15s;
|
15
|
+
transition-timing-function: $bezier;
|
16
|
+
border-radius: $border_rad_heavier;
|
17
|
+
@include pb_body($text_lt_default);
|
18
|
+
[class*=_icon_left] {
|
19
|
+
margin-right: ($space_xs + 2px);
|
20
|
+
color: $text_lt_lighter;
|
21
|
+
}
|
22
|
+
[class*=_icon_right] {
|
23
|
+
margin-left: ($space_xs + 2px);
|
24
|
+
color: $text_lt_default;
|
25
|
+
}
|
26
|
+
[class*=_text] {
|
27
|
+
flex: 1;
|
28
|
+
font-weight: $regular;
|
29
|
+
}
|
30
|
+
@media (hover:hover) {
|
31
|
+
&:hover {
|
32
|
+
background-color: rgba($primary, 0.03);
|
33
|
+
[class*=_icon] {
|
34
|
+
color: $primary;
|
35
|
+
}
|
36
|
+
[class*=_text] {
|
37
|
+
color: $primary;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
&[class*=_active] [class*=_link] {
|
43
|
+
@include pb_title_4;
|
44
|
+
color: $primary;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|