playbook_ui 7.4.0.pre.alpha1 → 7.4.0.pre.test4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +3 -1
- data/app/pb_kits/playbook/data/menu.yml +2 -2
- data/app/pb_kits/playbook/index.js +2 -2
- data/app/pb_kits/playbook/pb_background/_background.html.erb +14 -0
- data/app/pb_kits/playbook/pb_background/_background.jsx +63 -0
- data/app/pb_kits/playbook/pb_background/_background.scss +35 -0
- data/app/pb_kits/playbook/pb_background/background.rb +35 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_image.html.erb +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +30 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_white.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +14 -0
- data/app/pb_kits/playbook/pb_background/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_background/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_background/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
- data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
- data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
- data/app/pb_kits/playbook/pb_date/date.rb +20 -9
- data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
- data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +19 -14
- data/app/pb_kits/playbook/pb_date_time/_date_time.html.erb +31 -0
- data/app/pb_kits/playbook/pb_date_time/_date_time.jsx +73 -0
- data/app/pb_kits/playbook/pb_date_time/_date_time.scss +26 -0
- data/app/pb_kits/playbook/pb_date_time/date_time.rb +29 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb +17 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +35 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb +20 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +38 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb +26 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +75 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_time/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_date_time/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -1
- data/app/pb_kits/playbook/pb_flex/_flex.scss +4 -0
- data/app/pb_kits/playbook/pb_flex/flex.rb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +52 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +19 -1
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -1
- data/app/pb_kits/playbook/pb_list/_list.jsx +2 -9
- data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +46 -19
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +46 -10
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +4 -4
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +14 -2
- data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx +20 -0
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +8 -15
- data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +1 -6
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +10 -4
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.md +20 -4
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +4 -0
- data/lib/playbook/version.rb +1 -1
- metadata +41 -19
- data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +0 -92
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb +0 -11
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +0 -47
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +0 -17
- data/app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb +0 -18
- data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb +0 -13
- data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +0 -34
- data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb +0 -13
- data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +0 -38
- data/app/pb_kits/playbook/pb_selectable_list/docs/example.yml +0 -12
- data/app/pb_kits/playbook/pb_selectable_list/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +0 -24
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +0 -29
@@ -0,0 +1,20 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React, { useEffect } from 'react'
|
4
|
+
import { components } from 'react-select'
|
5
|
+
|
6
|
+
const ClearContainer = (props: any) => {
|
7
|
+
const { selectProps, clearValue } = props
|
8
|
+
useEffect(() => {
|
9
|
+
document.addEventListener(`pb-typeahead-kit-${selectProps.id}:clear`, clearValue)
|
10
|
+
}, true)
|
11
|
+
|
12
|
+
return (
|
13
|
+
<components.ClearIndicator
|
14
|
+
className="clear_indicator"
|
15
|
+
{...props}
|
16
|
+
/>
|
17
|
+
)
|
18
|
+
}
|
19
|
+
|
20
|
+
export default ClearContainer
|
@@ -13,24 +13,17 @@ type Props = {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
const MultiValue = (props: Props) => {
|
16
|
-
const {
|
17
|
-
|
18
|
-
removeProps,
|
19
|
-
selectProps,
|
20
|
-
} = props
|
16
|
+
const { removeProps } = props
|
17
|
+
const { imageUrl, label } = props.data
|
21
18
|
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
const multiValueRemoveEvent = new CustomEvent('pb-typeahead-kit-result-option-remove', { detail: data })
|
26
|
-
document.dispatchEvent(multiValueRemoveEvent)
|
19
|
+
const formPillProps = {
|
20
|
+
marginRight: 'xs',
|
21
|
+
name: label,
|
27
22
|
}
|
28
23
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
removeProps.onClick()
|
33
|
-
}
|
24
|
+
if (typeof imageUrl === 'string') formPillProps.avatarUrl = imageUrl
|
25
|
+
|
26
|
+
const handleOnClick = removeProps.onClick
|
34
27
|
|
35
28
|
return (
|
36
29
|
<components.MultiValueContainer
|
@@ -13,14 +13,9 @@ const Option = (props: any) => {
|
|
13
13
|
label,
|
14
14
|
} = props.data
|
15
15
|
|
16
|
-
const handleOptionClicked = () => {
|
17
|
-
const resultSelectedEvent = new CustomEvent('pb-typeahead-kit-result-option-select', { detail: props.data })
|
18
|
-
document.dispatchEvent(resultSelectedEvent)
|
19
|
-
}
|
20
|
-
|
21
16
|
return (
|
22
17
|
<components.Option {...props}>
|
23
|
-
<div
|
18
|
+
<div>
|
24
19
|
<Choose>
|
25
20
|
<When condition={imageUrl}>
|
26
21
|
<User
|
@@ -7,19 +7,25 @@
|
|
7
7
|
]
|
8
8
|
%>
|
9
9
|
|
10
|
-
<%= pb_rails("typeahead", props: { options: options, label: "Colors", name: :foo, pills: true }) %>
|
10
|
+
<%= pb_rails("typeahead", props: { id: "typeahead-pills-example1", default_options: [options.first], options: options, label: "Colors", name: :foo, pills: true }) %>
|
11
|
+
|
12
|
+
<%= pb_rails("button", props: {id: "clear-pills", text: "Clear All Options", variant: "secondary"}) %>
|
11
13
|
|
12
14
|
<!-- This section is an example of the available JavaScript event hooks -->
|
13
15
|
<%= javascript_tag defer: "defer" do %>
|
14
|
-
document.addEventListener("pb-typeahead-kit-result-option-select", function(event) {
|
16
|
+
document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-select", function(event) {
|
15
17
|
console.log('Option selected')
|
16
18
|
console.dir(event.detail)
|
17
19
|
})
|
18
|
-
document.addEventListener("pb-typeahead-kit-result-option-remove", function(event) {
|
20
|
+
document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-remove", function(event) {
|
19
21
|
console.log('Option removed')
|
20
22
|
console.dir(event.detail)
|
21
23
|
})
|
22
|
-
document.addEventListener("pb-typeahead-kit-result-clear", function() {
|
24
|
+
document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-clear", function() {
|
23
25
|
console.log('All options cleared')
|
24
26
|
})
|
27
|
+
|
28
|
+
document.querySelector('#clear-pills').addEventListener('click', function() {
|
29
|
+
document.dispatchEvent(new CustomEvent('pb-typeahead-kit-typeahead-pills-example1:clear'))
|
30
|
+
})
|
25
31
|
<% end %>
|
@@ -1,8 +1,24 @@
|
|
1
1
|
Typeahead kit is data-driven. The minimum default fields are `label` and `value`.
|
2
2
|
|
3
|
-
`{ label:
|
3
|
+
This is an example of an option: `{ label: 'Windows', value: '#FFA500' }`
|
4
|
+
|
5
|
+
#### Rails: Default Options
|
6
|
+
|
7
|
+
You can also pass `default_options` which will populate the initial pill selections:
|
8
|
+
|
9
|
+
`default_options: [{ label: 'Windows', value: '#FFA500' }]`
|
4
10
|
|
5
11
|
#### Rails: Subscribing to JS Events
|
6
|
-
|
7
|
-
|
8
|
-
`
|
12
|
+
|
13
|
+
JavaScript events are triggered based on actions you take within the kit such as selection, removal and clearing.
|
14
|
+
This kit utilizes a default `id` prop named `react-select-input`. It is **highly advised** to send your own unique `id` prop when using this kit to ensure these events do not unintentionally affect other instances of the kit in the same view. The examples below will use the unique `id` prop named `typeahead-pills-example1`:
|
15
|
+
|
16
|
+
`pb-typeahead-kit-typeahead-pills-example1-result-option-select` event to perform custom work when an option is clicked.
|
17
|
+
`pb-typeahead-kit-typeahead-pills-example1-result-option-remove` event to perform custom work when a pill is clicked.
|
18
|
+
`pb-typeahead-kit-typeahead-pills-example1-result-option-clear` event to perform custom work when all pills are removed upon clicking the X.
|
19
|
+
|
20
|
+
#### Rails: Publishing JS Events
|
21
|
+
|
22
|
+
The same rule regarding the `id` prop applies to publishing JS events. The examples below will use the unique `id` prop named `typeahead-pills-example1`:
|
23
|
+
|
24
|
+
`pb-typeahead-kit-typeahead-pills-example1:clear` event to clear all options.
|
@@ -7,6 +7,8 @@ module Playbook
|
|
7
7
|
|
8
8
|
prop :async, type: Playbook::Props::Boolean,
|
9
9
|
default: false
|
10
|
+
prop :default_options, type: Playbook::Props::HashArray, default: []
|
11
|
+
prop :id
|
10
12
|
prop :label
|
11
13
|
prop :load_options
|
12
14
|
prop :name
|
@@ -35,6 +37,8 @@ module Playbook
|
|
35
37
|
|
36
38
|
def typeahead_with_pills_options
|
37
39
|
base_options = {
|
40
|
+
defaultValue: default_options,
|
41
|
+
id: id,
|
38
42
|
isMulti: true,
|
39
43
|
label: label,
|
40
44
|
options: options,
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.4.0.pre.
|
4
|
+
version: 7.4.0.pre.test4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
8
8
|
- Power Devs
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-10-
|
12
|
+
date: 2020-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -445,6 +445,23 @@ files:
|
|
445
445
|
- app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb
|
446
446
|
- app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml
|
447
447
|
- app/pb_kits/playbook/pb_avatar_action_button/docs/index.js
|
448
|
+
- app/pb_kits/playbook/pb_background/_background.html.erb
|
449
|
+
- app/pb_kits/playbook/pb_background/_background.jsx
|
450
|
+
- app/pb_kits/playbook/pb_background/_background.scss
|
451
|
+
- app/pb_kits/playbook/pb_background/background.rb
|
452
|
+
- app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb
|
453
|
+
- app/pb_kits/playbook/pb_background/docs/_background_dark.jsx
|
454
|
+
- app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb
|
455
|
+
- app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx
|
456
|
+
- app/pb_kits/playbook/pb_background/docs/_background_image.html.erb
|
457
|
+
- app/pb_kits/playbook/pb_background/docs/_background_image.jsx
|
458
|
+
- app/pb_kits/playbook/pb_background/docs/_background_light.html.erb
|
459
|
+
- app/pb_kits/playbook/pb_background/docs/_background_light.jsx
|
460
|
+
- app/pb_kits/playbook/pb_background/docs/_background_white.html.erb
|
461
|
+
- app/pb_kits/playbook/pb_background/docs/_background_white.jsx
|
462
|
+
- app/pb_kits/playbook/pb_background/docs/_description.md
|
463
|
+
- app/pb_kits/playbook/pb_background/docs/example.yml
|
464
|
+
- app/pb_kits/playbook/pb_background/docs/index.js
|
448
465
|
- app/pb_kits/playbook/pb_badge/_badge.html.erb
|
449
466
|
- app/pb_kits/playbook/pb_badge/_badge.jsx
|
450
467
|
- app/pb_kits/playbook/pb_badge/_badge.scss
|
@@ -668,10 +685,14 @@ files:
|
|
668
685
|
- app/pb_kits/playbook/pb_date/_date.jsx
|
669
686
|
- app/pb_kits/playbook/pb_date/_date.scss
|
670
687
|
- app/pb_kits/playbook/pb_date/date.rb
|
688
|
+
- app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb
|
689
|
+
- app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx
|
671
690
|
- app/pb_kits/playbook/pb_date/docs/_date_default.html.erb
|
672
691
|
- app/pb_kits/playbook/pb_date/docs/_date_default.jsx
|
673
692
|
- app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb
|
674
693
|
- app/pb_kits/playbook/pb_date/docs/_date_timezone.md
|
694
|
+
- app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb
|
695
|
+
- app/pb_kits/playbook/pb_date/docs/_date_variants.jsx
|
675
696
|
- app/pb_kits/playbook/pb_date/docs/_description.md
|
676
697
|
- app/pb_kits/playbook/pb_date/docs/example.yml
|
677
698
|
- app/pb_kits/playbook/pb_date/docs/index.js
|
@@ -759,6 +780,19 @@ files:
|
|
759
780
|
- app/pb_kits/playbook/pb_date_stacked/docs/_footer.md
|
760
781
|
- app/pb_kits/playbook/pb_date_stacked/docs/example.yml
|
761
782
|
- app/pb_kits/playbook/pb_date_stacked/docs/index.js
|
783
|
+
- app/pb_kits/playbook/pb_date_time/_date_time.html.erb
|
784
|
+
- app/pb_kits/playbook/pb_date_time/_date_time.jsx
|
785
|
+
- app/pb_kits/playbook/pb_date_time/_date_time.scss
|
786
|
+
- app/pb_kits/playbook/pb_date_time/date_time.rb
|
787
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb
|
788
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx
|
789
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb
|
790
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx
|
791
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb
|
792
|
+
- app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx
|
793
|
+
- app/pb_kits/playbook/pb_date_time/docs/_description.md
|
794
|
+
- app/pb_kits/playbook/pb_date_time/docs/example.yml
|
795
|
+
- app/pb_kits/playbook/pb_date_time/docs/index.js
|
762
796
|
- app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.html.erb
|
763
797
|
- app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx
|
764
798
|
- app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss
|
@@ -1462,19 +1496,6 @@ files:
|
|
1462
1496
|
- app/pb_kits/playbook/pb_selectable_icon/docs/example.yml
|
1463
1497
|
- app/pb_kits/playbook/pb_selectable_icon/docs/index.js
|
1464
1498
|
- app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb
|
1465
|
-
- app/pb_kits/playbook/pb_selectable_list/_item.jsx
|
1466
|
-
- app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb
|
1467
|
-
- app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx
|
1468
|
-
- app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss
|
1469
|
-
- app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb
|
1470
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb
|
1471
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx
|
1472
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb
|
1473
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx
|
1474
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/example.yml
|
1475
|
-
- app/pb_kits/playbook/pb_selectable_list/docs/index.js
|
1476
|
-
- app/pb_kits/playbook/pb_selectable_list/selectable_list.rb
|
1477
|
-
- app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb
|
1478
1499
|
- app/pb_kits/playbook/pb_source/_source.html.erb
|
1479
1500
|
- app/pb_kits/playbook/pb_source/_source.jsx
|
1480
1501
|
- app/pb_kits/playbook/pb_source/_source.scss
|
@@ -1749,6 +1770,7 @@ files:
|
|
1749
1770
|
- app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb
|
1750
1771
|
- app/pb_kits/playbook/pb_typeahead/_typeahead.jsx
|
1751
1772
|
- app/pb_kits/playbook/pb_typeahead/_typeahead.scss
|
1773
|
+
- app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx
|
1752
1774
|
- app/pb_kits/playbook/pb_typeahead/components/Control.jsx
|
1753
1775
|
- app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx
|
1754
1776
|
- app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx
|
@@ -1868,7 +1890,7 @@ homepage: http://playbook.powerapp.cloud
|
|
1868
1890
|
licenses:
|
1869
1891
|
- MIT
|
1870
1892
|
metadata: {}
|
1871
|
-
post_install_message:
|
1893
|
+
post_install_message:
|
1872
1894
|
rdoc_options: []
|
1873
1895
|
require_paths:
|
1874
1896
|
- lib
|
@@ -1883,9 +1905,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1883
1905
|
- !ruby/object:Gem::Version
|
1884
1906
|
version: 1.3.1
|
1885
1907
|
requirements: []
|
1886
|
-
rubyforge_project:
|
1908
|
+
rubyforge_project:
|
1887
1909
|
rubygems_version: 2.7.3
|
1888
|
-
signing_key:
|
1910
|
+
signing_key:
|
1889
1911
|
specification_version: 4
|
1890
1912
|
summary: Playbook Design System
|
1891
1913
|
test_files: []
|
@@ -1,92 +0,0 @@
|
|
1
|
-
/* @flow */
|
2
|
-
import React, { Node } from 'react'
|
3
|
-
import classnames from 'classnames'
|
4
|
-
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
5
|
-
import { globalProps } from '../utilities/globalProps.js'
|
6
|
-
import { Checkbox, ListItem, Radio } from '..'
|
7
|
-
|
8
|
-
type SelectableListItemProps = {
|
9
|
-
aria?: object,
|
10
|
-
children: array<Node> | Node,
|
11
|
-
checked?: boolean,
|
12
|
-
className?: string,
|
13
|
-
data?: object,
|
14
|
-
defaultChecked?: boolean,
|
15
|
-
id?: string,
|
16
|
-
label?: string,
|
17
|
-
text?: string,
|
18
|
-
name?: string,
|
19
|
-
value?: string,
|
20
|
-
variant?: string,
|
21
|
-
onChange: (boolean)=>void,
|
22
|
-
}
|
23
|
-
|
24
|
-
const SelectableListItem = ({
|
25
|
-
aria = {},
|
26
|
-
checked = false,
|
27
|
-
children,
|
28
|
-
className,
|
29
|
-
data = {},
|
30
|
-
defaultChecked,
|
31
|
-
id,
|
32
|
-
label,
|
33
|
-
text,
|
34
|
-
name = '',
|
35
|
-
value = '',
|
36
|
-
variant,
|
37
|
-
onChange = () => {},
|
38
|
-
...props
|
39
|
-
}: SelectableListItemProps) => {
|
40
|
-
const ariaProps = buildAriaProps(aria)
|
41
|
-
const dataProps = buildDataProps(data)
|
42
|
-
const classes = classnames(
|
43
|
-
buildCss('pb_selectable_list_item_kit'),
|
44
|
-
globalProps(props),
|
45
|
-
className
|
46
|
-
)
|
47
|
-
|
48
|
-
return (
|
49
|
-
<ListItem {...props}>
|
50
|
-
<div
|
51
|
-
{...ariaProps}
|
52
|
-
{...dataProps}
|
53
|
-
className={classes}
|
54
|
-
htmlFor={id}
|
55
|
-
>
|
56
|
-
<Choose>
|
57
|
-
<When condition={variant == 'checkbox'}>
|
58
|
-
<Checkbox
|
59
|
-
checked={checked}
|
60
|
-
id={id}
|
61
|
-
name={name}
|
62
|
-
onChange={onChange}
|
63
|
-
// eslint suppressor, text is needed to display on screen
|
64
|
-
text={label || (text && false)}
|
65
|
-
type="checkbox"
|
66
|
-
value={value}
|
67
|
-
{...props}
|
68
|
-
/>
|
69
|
-
{children}
|
70
|
-
</When>
|
71
|
-
<When condition={variant == 'radio'}>
|
72
|
-
<Radio
|
73
|
-
defaultChecked={defaultChecked}
|
74
|
-
id={id}
|
75
|
-
label={label}
|
76
|
-
name={name}
|
77
|
-
onChange={onChange}
|
78
|
-
type="radio"
|
79
|
-
value={value}
|
80
|
-
{...props}
|
81
|
-
/>
|
82
|
-
{children}
|
83
|
-
</When>
|
84
|
-
<Otherwise>{children}</Otherwise>
|
85
|
-
</Choose>
|
86
|
-
|
87
|
-
</div>
|
88
|
-
</ListItem>
|
89
|
-
)
|
90
|
-
}
|
91
|
-
|
92
|
-
export default SelectableListItem
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%= content_tag(:div,
|
2
|
-
aria: object.aria,
|
3
|
-
class: object.classname,
|
4
|
-
data: object.data,
|
5
|
-
id: object.id) do %>
|
6
|
-
<%= pb_rails("list") do %>
|
7
|
-
<% object.items.each do |item| %>
|
8
|
-
<%= pb_rails("selectable_list/selectable_list_item", props: item.merge(variant: object.variant) )%>
|
9
|
-
<% end %>
|
10
|
-
<% end %>
|
11
|
-
<% end %>
|
@@ -1,47 +0,0 @@
|
|
1
|
-
/* @flow */
|
2
|
-
import React from 'react'
|
3
|
-
import classnames from 'classnames'
|
4
|
-
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
5
|
-
import { globalProps } from '../utilities/globalProps.js'
|
6
|
-
import { List } from '..'
|
7
|
-
import SelectableListItem from './_item.jsx'
|
8
|
-
|
9
|
-
type SelectableListProps = {
|
10
|
-
aria?: object,
|
11
|
-
children?: Node,
|
12
|
-
className?: string,
|
13
|
-
data?: object,
|
14
|
-
id?: string,
|
15
|
-
variant?: 'checkbox' | 'radio',
|
16
|
-
}
|
17
|
-
|
18
|
-
const SelectableList = (props: SelectableListProps) => {
|
19
|
-
const {
|
20
|
-
aria = {},
|
21
|
-
children,
|
22
|
-
className,
|
23
|
-
data = {},
|
24
|
-
id,
|
25
|
-
} = props
|
26
|
-
|
27
|
-
const ariaProps = buildAriaProps(aria)
|
28
|
-
const classes = classnames(buildCss('pb_selectable_list_kit'), globalProps(props), className)
|
29
|
-
const dataProps = buildDataProps(data)
|
30
|
-
|
31
|
-
return (
|
32
|
-
<div
|
33
|
-
{...ariaProps}
|
34
|
-
{...dataProps}
|
35
|
-
className={classes}
|
36
|
-
id={id}
|
37
|
-
>
|
38
|
-
<List {...props}>
|
39
|
-
{children}
|
40
|
-
</List>
|
41
|
-
</div>
|
42
|
-
)
|
43
|
-
}
|
44
|
-
|
45
|
-
SelectableList.Item = SelectableListItem
|
46
|
-
|
47
|
-
export default SelectableList
|
@@ -1,17 +0,0 @@
|
|
1
|
-
@import "../tokens/colors";
|
2
|
-
@import "../tokens/spacing";
|
3
|
-
|
4
|
-
[class^=pb_selectable_list]{
|
5
|
-
margin-bottom: 0px;
|
6
|
-
[class^=pb_item_kit] {
|
7
|
-
&:hover {
|
8
|
-
background-color: $bg_light;
|
9
|
-
}
|
10
|
-
}
|
11
|
-
[class^=pb_radio_kit] {
|
12
|
-
margin-left: $space_xs;
|
13
|
-
}
|
14
|
-
[class^=pb_checkbox_kit] {
|
15
|
-
margin-left: $space_xs;
|
16
|
-
}
|
17
|
-
}
|