playbook_ui 2.9.9 → 3.0.0
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 +10 -4
- data/app/pb_kits/playbook/index.js +10 -0
- data/app/pb_kits/playbook/kits/pb_circle_icon_button.js +4 -0
- data/app/pb_kits/playbook/kits/pb_select.js +4 -0
- data/app/pb_kits/playbook/kits/pb_selectable_card.js +4 -0
- data/app/pb_kits/playbook/kits/pb_textarea.js +4 -0
- data/app/pb_kits/playbook/packs/examples.js +8 -0
- data/app/pb_kits/playbook/packs/kits.js +4 -2
- data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -1
- data/app/pb_kits/playbook/pb_body/_body_mixins.scss +3 -0
- data/app/pb_kits/playbook/pb_button/_button.jsx +4 -0
- data/app/pb_kits/playbook/pb_card/_card.scss +50 -17
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +10 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +30 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +32 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +22 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_dark.html.erb +29 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_dark.jsx +38 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.html.erb +25 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.jsx +34 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.rb +4 -0
- data/app/pb_kits/playbook/pb_date/_date.jsx +51 -17
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +10 -2
- data/app/pb_kits/playbook/pb_form/_form.scss +11 -0
- data/app/pb_kits/playbook/pb_form/_form_form_with.html.erb +3 -0
- data/app/pb_kits/playbook/pb_form/_form_simple_form.html.erb +3 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +14 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +36 -0
- data/app/pb_kits/playbook/pb_form/docs/example.yml +5 -0
- data/app/pb_kits/playbook/pb_form/form.rb +28 -0
- data/app/pb_kits/playbook/pb_form/form/form_with_form.rb +38 -0
- data/app/pb_kits/playbook/pb_form/form/simple_form_form.rb +45 -0
- data/app/pb_kits/playbook/pb_form/form_builder.rb +23 -0
- data/app/pb_kits/playbook/pb_form/form_builder/action_area.rb +40 -0
- data/app/pb_kits/playbook/pb_form/form_builder/form_with_form_builder.rb +11 -0
- data/app/pb_kits/playbook/pb_form/form_builder/simple_form_builder.rb +25 -0
- data/app/pb_kits/playbook/pb_form/form_builder/text_input_builder.rb +22 -0
- data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +19 -14
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.jsx +19 -0
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_default.jsx +5 -4
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_size.jsx +16 -0
- data/app/pb_kits/playbook/pb_icon_circle/docs/example.yml +2 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_kit/dateTime.js +4 -0
- data/app/pb_kits/playbook/pb_layout/_layout.jsx +50 -48
- data/app/pb_kits/playbook/pb_layout/_layout.scss +8 -12
- data/app/pb_kits/playbook/pb_layout/_layout_mixin.scss +6 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.html.erb +24 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_default.jsx +15 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.html.erb +32 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.html.erb +32 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.html.erb +8 -0
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +5 -11
- data/app/pb_kits/playbook/pb_layout/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_layout/layout.rb +5 -7
- data/app/pb_kits/playbook/pb_message/_message.jsx +68 -11
- data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +59 -2
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +23 -16
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +15 -6
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +10 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +10 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.html.erb +1 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +12 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/example.yml +4 -2
- data/app/pb_kits/playbook/pb_section_separator/docs/index.js +3 -1
- data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +4 -1
- data/app/pb_kits/playbook/pb_select/_select.html.erb +33 -0
- data/app/pb_kits/playbook/pb_select/_select.jsx +110 -0
- data/app/pb_kits/playbook/pb_select/_select.scss +50 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_blank.html.erb +19 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_blank.jsx +30 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.html.erb +8 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.jsx +19 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_dark.html.erb +24 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_dark.jsx +31 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_default.html.erb +23 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_default.jsx +30 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_disabled.html.erb +19 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_disabled.jsx +30 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_disabled_options.html.erb +33 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_disabled_options.jsx +44 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_required.html.erb +17 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_required.jsx +28 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_value_text_same.html.erb +18 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_value_text_same.jsx +29 -0
- data/app/pb_kits/playbook/pb_select/docs/example.yml +22 -0
- data/app/pb_kits/playbook/pb_select/docs/index.js +8 -0
- data/app/pb_kits/playbook/pb_select/docs/nitro_theme.gemspec +41 -0
- data/app/pb_kits/playbook/pb_select/select.rb +60 -0
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +25 -0
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +97 -0
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +87 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.html.erb +25 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +48 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.html.erb +45 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.jsx +68 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb +39 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +67 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb +30 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +54 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +13 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +51 -0
- data/app/pb_kits/playbook/pb_stat_value/_stat_value.html.erb +1 -1
- data/app/pb_kits/playbook/pb_stat_value/stat_value.rb +5 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +13 -9
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +12 -6
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +44 -44
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +68 -12
- data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +20 -0
- data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +54 -0
- data/app/pb_kits/playbook/pb_textarea/_textarea.scss +31 -0
- data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +51 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.html.erb +3 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.jsx +16 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark.html.erb +9 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark.jsx +21 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb +9 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +21 -0
- data/app/pb_kits/playbook/pb_textarea/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_textarea/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_textarea/textarea.rb +30 -0
- data/app/pb_kits/playbook/pb_title/_title_mixin.scss +3 -1
- data/app/pb_kits/playbook/pb_user/_user.html.erb +3 -1
- data/app/pb_kits/playbook/pb_user/_user.jsx +76 -16
- data/app/pb_kits/playbook/pb_user/docs/_user_default.jsx +42 -1
- data/app/pb_kits/playbook/pb_user/docs/_user_size.jsx +31 -0
- data/app/pb_kits/playbook/pb_user/docs/_user_text_only.jsx +24 -0
- data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size.jsx +37 -0
- data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.html.erb +40 -0
- data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.jsx +57 -0
- data/app/pb_kits/playbook/pb_user/docs/example.yml +8 -0
- data/app/pb_kits/playbook/pb_user/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_user/user.rb +12 -1
- data/app/pb_kits/playbook/props.rb +11 -3
- data/app/pb_kits/playbook/tokens/_colors.scss +16 -0
- data/app/pb_kits/playbook/tokens/_transition.scss +1 -0
- data/lib/playbook/version.rb +1 -1
- metadata +117 -15
- data/app/pb_kits/playbook/pb_layout/docs/_layout_lg.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_lg_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_md.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_md_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sm.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sm_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_xl.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_xl_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_xs.html.erb +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_xs.jsx +0 -15
- data/app/pb_kits/playbook/pb_layout/docs/_layout_xs_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_default.jsx +0 -10
@@ -0,0 +1,25 @@
|
|
1
|
+
<div class="pb--doc-demo-row">
|
2
|
+
|
3
|
+
<%= pb_rails("selectable_card", props: {
|
4
|
+
input_id: "block",
|
5
|
+
name: "block",
|
6
|
+
value: "block",
|
7
|
+
checked: true
|
8
|
+
}) do %>
|
9
|
+
<%= pb_rails("title", props: { text: "Block", size: 4 }) %>
|
10
|
+
<%= pb_rails("body", props: { tag: "span"}) do %>
|
11
|
+
This uses block
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<br><br>
|
16
|
+
|
17
|
+
<%= pb_rails("selectable_card", props: {
|
18
|
+
input_id: "tag",
|
19
|
+
name: "tag",
|
20
|
+
value: "tag",
|
21
|
+
text: "This passes in text",
|
22
|
+
checked: false
|
23
|
+
}) %>
|
24
|
+
|
25
|
+
</div>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import {
|
3
|
+
Body,
|
4
|
+
SelectableCard,
|
5
|
+
Title
|
6
|
+
} from "../../"
|
7
|
+
|
8
|
+
class SelectableCardBlock extends React.Component {
|
9
|
+
state = {
|
10
|
+
block: true,
|
11
|
+
tag: false
|
12
|
+
}
|
13
|
+
|
14
|
+
handleSelect = event => {
|
15
|
+
this.setState({
|
16
|
+
[event.target.id]: event.target.checked
|
17
|
+
})
|
18
|
+
}
|
19
|
+
|
20
|
+
render() {
|
21
|
+
return (
|
22
|
+
<div class="pb--doc-demo-row">
|
23
|
+
|
24
|
+
<SelectableCard
|
25
|
+
inputId="block"
|
26
|
+
name="block"
|
27
|
+
value="block"
|
28
|
+
checked={this.state.block}
|
29
|
+
onChange={this.handleSelect}>
|
30
|
+
<Title text="Block" size={4} />
|
31
|
+
<Body tag="span">This uses block</Body>
|
32
|
+
</SelectableCard>
|
33
|
+
|
34
|
+
<SelectableCard
|
35
|
+
inputId="tag"
|
36
|
+
name="tag"
|
37
|
+
value="tag"
|
38
|
+
checked={this.state.tag}
|
39
|
+
onChange={this.handleSelect}
|
40
|
+
text="This passes text through the tag">
|
41
|
+
</SelectableCard>
|
42
|
+
|
43
|
+
</div>
|
44
|
+
)
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
export default SelectableCardBlock;
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<div class="pb--doc-demo-row">
|
2
|
+
|
3
|
+
<%= pb_rails("selectable_card", props: {
|
4
|
+
input_id: "selected_with_icon_dark",
|
5
|
+
name: "selected_with_icon_dark",
|
6
|
+
value: "selected_with_icon_dark",
|
7
|
+
checked: true,
|
8
|
+
icon: true,
|
9
|
+
dark: true
|
10
|
+
}) do %>
|
11
|
+
Selected, with icon
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= pb_rails("selectable_card", props: {
|
15
|
+
input_id: "selected_without_icon_dark",
|
16
|
+
name: "selected_without_icon_dark",
|
17
|
+
value: "selected_without_icon_dark",
|
18
|
+
checked: true,
|
19
|
+
icon: false,
|
20
|
+
dark: true
|
21
|
+
}) do %>
|
22
|
+
Selected, without icon
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<%= pb_rails("selectable_card", props: {
|
26
|
+
input_id: "unselected_dark",
|
27
|
+
name: "unselected_dark",
|
28
|
+
value: "unselected_dark",
|
29
|
+
checked: false,
|
30
|
+
dark: true
|
31
|
+
}) do %>
|
32
|
+
Unselected
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<%= pb_rails("selectable_card", props: {
|
36
|
+
input_id: "unselected_dark",
|
37
|
+
name: "unselected_dark",
|
38
|
+
value: "unselected_dark",
|
39
|
+
disabled: true,
|
40
|
+
dark: true
|
41
|
+
}) do %>
|
42
|
+
Disabled
|
43
|
+
<% end %>
|
44
|
+
|
45
|
+
</div>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import SelectableCard from "../_selectable_card.jsx"
|
3
|
+
|
4
|
+
class SelectableCardDark extends React.Component {
|
5
|
+
state = {
|
6
|
+
selected_with_icon_dark: true,
|
7
|
+
selected_without_icon_dark: true,
|
8
|
+
unselected_dark: false
|
9
|
+
}
|
10
|
+
|
11
|
+
handleSelect = event => {
|
12
|
+
this.setState({
|
13
|
+
[event.target.id]: event.target.checked
|
14
|
+
})
|
15
|
+
}
|
16
|
+
|
17
|
+
render() {
|
18
|
+
return (
|
19
|
+
<div class="pb--doc-demo-row">
|
20
|
+
|
21
|
+
<SelectableCard
|
22
|
+
dark
|
23
|
+
inputId="selected_with_icon_dark"
|
24
|
+
name="selected_with_icon_dark"
|
25
|
+
value="selected_with_icon_dark"
|
26
|
+
icon={true}
|
27
|
+
checked={this.state.selected_with_icon_dark}
|
28
|
+
onChange={this.handleSelect}>
|
29
|
+
{'Selected, with icon'}
|
30
|
+
</SelectableCard>
|
31
|
+
|
32
|
+
<SelectableCard
|
33
|
+
dark
|
34
|
+
inputId="selected_without_icon_dark"
|
35
|
+
name="selected_without_icon_dark"
|
36
|
+
value="selected_without_icon_dark"
|
37
|
+
icon={false}
|
38
|
+
checked={this.state.selected_without_icon_dark}
|
39
|
+
onChange={this.handleSelect}>
|
40
|
+
{'Selected, without icon'}
|
41
|
+
</SelectableCard>
|
42
|
+
|
43
|
+
<SelectableCard
|
44
|
+
dark
|
45
|
+
inputId="unselected_dark"
|
46
|
+
name="unselected_dark"
|
47
|
+
value="unselected_dark"
|
48
|
+
checked={this.state.unselected_dark}
|
49
|
+
onChange={this.handleSelect}>
|
50
|
+
{'Unselected'}
|
51
|
+
</SelectableCard>
|
52
|
+
|
53
|
+
<SelectableCard
|
54
|
+
dark
|
55
|
+
inputId="unselected_dark"
|
56
|
+
name="unselected_dark"
|
57
|
+
value="unselected_dark"
|
58
|
+
disabled={true}
|
59
|
+
onChange={this.handleSelect}>
|
60
|
+
{'Unselected'}
|
61
|
+
</SelectableCard>
|
62
|
+
|
63
|
+
</div>
|
64
|
+
)
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
export default SelectableCardDark;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<div class="pb--doc-demo-row">
|
2
|
+
|
3
|
+
<%= pb_rails("selectable_card", props: {
|
4
|
+
input_id: "selected_with_icon",
|
5
|
+
name: "selected_with_icon",
|
6
|
+
value: "selected_with_icon",
|
7
|
+
checked: true,
|
8
|
+
icon: true
|
9
|
+
}) do %>
|
10
|
+
Selected, with icon
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= pb_rails("selectable_card", props: {
|
14
|
+
input_id: "selected_without_icon",
|
15
|
+
name: "selected_without_icon",
|
16
|
+
value: "selected_without_icon",
|
17
|
+
checked: true,
|
18
|
+
}) do %>
|
19
|
+
Selected, without icon
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<%= pb_rails("selectable_card", props: {
|
23
|
+
input_id: "unselected",
|
24
|
+
name: "unselected",
|
25
|
+
value: "unselected",
|
26
|
+
}) do %>
|
27
|
+
Unselected
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<%= pb_rails("selectable_card", props: {
|
31
|
+
input_id: "disabled",
|
32
|
+
name: "disabled",
|
33
|
+
value: "disabled",
|
34
|
+
disabled: true
|
35
|
+
}) do %>
|
36
|
+
Disabled
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
</div>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import SelectableCard from "../_selectable_card.jsx"
|
3
|
+
import Icon from "../../pb_icon/_icon.jsx"
|
4
|
+
|
5
|
+
|
6
|
+
class SelectableCardDefault extends React.Component {
|
7
|
+
state = {
|
8
|
+
selected_with_icon: true,
|
9
|
+
selected_without_icon: true,
|
10
|
+
unselected: false
|
11
|
+
}
|
12
|
+
|
13
|
+
handleSelect = event => {
|
14
|
+
this.setState({
|
15
|
+
[event.target.id]: event.target.checked
|
16
|
+
})
|
17
|
+
}
|
18
|
+
|
19
|
+
render() {
|
20
|
+
return (
|
21
|
+
<div class="pb--doc-demo-row">
|
22
|
+
|
23
|
+
<SelectableCard
|
24
|
+
inputId="selected_with_icon"
|
25
|
+
name="selected_with_icon"
|
26
|
+
value="selected_with_icon"
|
27
|
+
icon={true}
|
28
|
+
checked={this.state.selected_with_icon}
|
29
|
+
onChange={this.handleSelect}>
|
30
|
+
{`Selected, with icon`}
|
31
|
+
</SelectableCard>
|
32
|
+
|
33
|
+
<SelectableCard
|
34
|
+
inputId="selected_without_icon"
|
35
|
+
name="selected_without_icon"
|
36
|
+
value="selected_without_icon"
|
37
|
+
icon={false}
|
38
|
+
checked={this.state.selected_without_icon}
|
39
|
+
onChange={this.handleSelect}>
|
40
|
+
{`Selected, without icon`}
|
41
|
+
</SelectableCard>
|
42
|
+
|
43
|
+
<SelectableCard
|
44
|
+
inputId="unselected"
|
45
|
+
name="unselected"
|
46
|
+
value="unselected"
|
47
|
+
checked={this.state.unselected}
|
48
|
+
onChange={this.handleSelect}>
|
49
|
+
{`Unselected`}
|
50
|
+
</SelectableCard>
|
51
|
+
|
52
|
+
<SelectableCard
|
53
|
+
inputId="disabled"
|
54
|
+
name="disabled"
|
55
|
+
value="disabled"
|
56
|
+
disabled={true}
|
57
|
+
checked={this.state.disabled}
|
58
|
+
onChange={this.handleSelect}>
|
59
|
+
{`Disabled`}
|
60
|
+
</SelectableCard>
|
61
|
+
|
62
|
+
</div>
|
63
|
+
)
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
export default SelectableCardDefault;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<div class="pb--doc-demo-row">
|
2
|
+
|
3
|
+
<%= pb_rails("selectable_card", props: {
|
4
|
+
input_id: "male",
|
5
|
+
name: "gender",
|
6
|
+
value: "male",
|
7
|
+
multi: false
|
8
|
+
}) do %>
|
9
|
+
Male
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= pb_rails("selectable_card", props: {
|
13
|
+
input_id: "female",
|
14
|
+
name: "gender",
|
15
|
+
value: "female",
|
16
|
+
multi: false
|
17
|
+
}) do %>
|
18
|
+
Female
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<%= pb_rails("selectable_card", props: {
|
22
|
+
input_id: "other",
|
23
|
+
name: "gender",
|
24
|
+
value: "other",
|
25
|
+
multi: false
|
26
|
+
}) do %>
|
27
|
+
Other
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
</div>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import SelectableCard from "../_selectable_card.jsx";
|
3
|
+
|
4
|
+
class SelectableCardSingleSelect extends React.Component {
|
5
|
+
state = {
|
6
|
+
selected: null
|
7
|
+
}
|
8
|
+
|
9
|
+
handleSelect = event => {
|
10
|
+
this.setState({
|
11
|
+
selected: event.target.value
|
12
|
+
})
|
13
|
+
}
|
14
|
+
|
15
|
+
render() {
|
16
|
+
return (
|
17
|
+
<div class="pb--doc-demo-row">
|
18
|
+
|
19
|
+
<SelectableCard
|
20
|
+
inputId="male1"
|
21
|
+
name="gender"
|
22
|
+
value="male"
|
23
|
+
multi={false}
|
24
|
+
checked={this.state.selected === 'male'}
|
25
|
+
onChange={this.handleSelect.bind(this)}>
|
26
|
+
{`Male`}
|
27
|
+
</SelectableCard>
|
28
|
+
|
29
|
+
<SelectableCard
|
30
|
+
inputId="female1"
|
31
|
+
name="gender"
|
32
|
+
value="female"
|
33
|
+
multi={false}
|
34
|
+
checked={this.state.selected === 'female'}
|
35
|
+
onChange={this.handleSelect.bind(this)}>
|
36
|
+
{`Female`}
|
37
|
+
</SelectableCard>
|
38
|
+
|
39
|
+
<SelectableCard
|
40
|
+
inputId="other1"
|
41
|
+
name="gender"
|
42
|
+
value="other"
|
43
|
+
multi={false}
|
44
|
+
checked={this.state.selected === 'other'}
|
45
|
+
onChange={this.handleSelect.bind(this)}>
|
46
|
+
{`Other`}
|
47
|
+
</SelectableCard>
|
48
|
+
|
49
|
+
</div>
|
50
|
+
);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
export default SelectableCardSingleSelect;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
examples:
|
2
|
+
|
3
|
+
rails:
|
4
|
+
- selectable_card_default: Default
|
5
|
+
- selectable_card_single_select: Single Select
|
6
|
+
- selectable_card_block: Block
|
7
|
+
- selectable_card_dark: Dark
|
8
|
+
|
9
|
+
react:
|
10
|
+
- selectable_card_default: Default
|
11
|
+
- selectable_card_single_select: Single Select
|
12
|
+
- selectable_card_block: Block
|
13
|
+
- selectable_card_dark: Dark
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export {default as SelectableCardDefault} from './_selectable_card_default.jsx';
|
2
|
+
export {default as SelectableCardSingleSelect} from './_selectable_card_single_select.jsx';
|
3
|
+
export {default as SelectableCardDark} from './_selectable_card_dark.jsx';
|
4
|
+
export {default as SelectableCardBlock} from './_selectable_card_block.jsx';
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbSelectableCard
|
5
|
+
class SelectableCard
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_selectable_card/selectable_card"
|
9
|
+
|
10
|
+
prop :checked, type: Playbook::Props::Boolean,
|
11
|
+
default: false
|
12
|
+
prop :dark, type: Playbook::Props::Boolean,
|
13
|
+
default: false
|
14
|
+
prop :disabled, type: Playbook::Props::Boolean,
|
15
|
+
default: false
|
16
|
+
prop :icon, type: Playbook::Props::Boolean,
|
17
|
+
default: false
|
18
|
+
prop :multi, type: Playbook::Props::Boolean,
|
19
|
+
default: true
|
20
|
+
prop :input_id, type: Playbook::Props::String
|
21
|
+
prop :name
|
22
|
+
prop :text
|
23
|
+
prop :value
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
def classname
|
29
|
+
generate_classname("pb_selectable_card_kit", checked_class, dark_class, enable_disabled_class)
|
30
|
+
end
|
31
|
+
|
32
|
+
def input_id_present
|
33
|
+
input_id.present? ? input_id : name
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def checked_class
|
39
|
+
checked ? "checked" : nil
|
40
|
+
end
|
41
|
+
|
42
|
+
def dark_class
|
43
|
+
dark ? "dark" : nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def enable_disabled_class
|
47
|
+
disabled ? "disabled" : "enabled"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|