playbook_ui 3.2.0 → 3.3.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 +1 -0
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/kits/pb_radio.js +4 -0
- data/app/pb_kits/playbook/packs/examples.js +2 -0
- data/app/pb_kits/playbook/packs/kits.js +1 -0
- data/app/pb_kits/playbook/pb_caption/_caption.jsx +2 -2
- data/app/pb_kits/playbook/pb_card/_card.jsx +17 -24
- data/app/pb_kits/playbook/pb_card/_card.scss +2 -2
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +12 -8
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +16 -8
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +8 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.html.erb +3 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.jsx +18 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +19 -11
- data/app/pb_kits/playbook/pb_radio/_radio.html.erb +16 -0
- data/app/pb_kits/playbook/pb_radio/_radio.jsx +63 -0
- data/app/pb_kits/playbook/pb_radio/_radio.scss +40 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_custom.html.erb +27 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_custom.jsx +43 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_dark.html.erb +25 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_dark.jsx +30 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_default.html.erb +22 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_default.jsx +27 -0
- data/app/pb_kits/playbook/pb_radio/docs/example.yml +14 -0
- data/app/pb_kits/playbook/pb_radio/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_radio/radio.rb +46 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +15 -9
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.html.erb +3 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.jsx +20 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +1 -0
- data/lib/playbook/version.rb +1 -1
- metadata +21 -5
- data/app/pb_kits/playbook/pb_select/docs/nitro_theme.gemspec +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz: '
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0624588df3f0146bc99a772eea3c4c8efc06b3a5299aea28ec1cdf3ad4320071'
|
4
|
+
data.tar.gz: 76e97087be0d0b643a645e48d0ba6c020f5dbfb3c153ca7ff8f5004c45372e7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 343f4902e4562ca958b73ac21a3c2b8fb5549a9133d6d9ae134b0ad0194eb2f1be9df329563454af7be4dd792a35d956a30cb9a19d441bc6bbfb449ac2f2451a
|
7
|
+
data.tar.gz: bbd5040560708a09b452103e13ddbbaa9ca6d4e669f06d3fdb129978034bdb5c68ce605c6d9897c3ba07311ca4957ec0d55315bfb78ff0042d610be57ebe2548
|
@@ -40,6 +40,7 @@
|
|
40
40
|
@import 'pb_pill/pill';
|
41
41
|
@import 'pb_progress_pills/progress_pills';
|
42
42
|
@import 'pb_progress_simple/progress_simple';
|
43
|
+
@import 'pb_radio/radio';
|
43
44
|
@import 'pb_section_separator/section_separator';
|
44
45
|
@import 'pb_select/select';
|
45
46
|
@import 'pb_selectable_card/selectable_card';
|
@@ -41,6 +41,7 @@ export PersonContact from './pb_person_contact/_person_contact.jsx'
|
|
41
41
|
export Pill from './pb_pill/_pill.jsx'
|
42
42
|
export ProgressPills from './pb_progress_pills/_progress_pills.jsx'
|
43
43
|
export ProgressSimple from './pb_progress_simple/_progress_simple.jsx'
|
44
|
+
export Radio from './pb_radio/_radio.jsx'
|
44
45
|
export SectionSeparator from './pb_section_separator/_section_separator.jsx'
|
45
46
|
export Select from './pb_select/_select.jsx'
|
46
47
|
export SelectableCard from './pb_selectable_card/_selectable_card.jsx'
|
@@ -52,6 +52,7 @@ import * as PersonContact from 'pb_person_contact/docs'
|
|
52
52
|
import * as Pill from 'pb_pill/docs'
|
53
53
|
import * as ProgressPills from 'pb_progress_pills/docs'
|
54
54
|
import * as ProgressSimple from 'pb_progress_simple/docs'
|
55
|
+
import * as Radio from 'pb_radio/docs'
|
55
56
|
import * as SectionSeparator from 'pb_section_separator/docs'
|
56
57
|
import * as Select from 'pb_select/docs'
|
57
58
|
import * as SelectableCard from 'pb_selectable_card/docs'
|
@@ -111,6 +112,7 @@ WebpackerReact.setup(PersonContact)
|
|
111
112
|
WebpackerReact.setup(Pill)
|
112
113
|
WebpackerReact.setup(ProgressPills)
|
113
114
|
WebpackerReact.setup(ProgressSimple)
|
115
|
+
WebpackerReact.setup(Radio)
|
114
116
|
WebpackerReact.setup(SectionSeparator)
|
115
117
|
WebpackerReact.setup(Select)
|
116
118
|
WebpackerReact.setup(SelectableCard)
|
@@ -37,6 +37,7 @@ import '../kits/pb_person_contact.js'
|
|
37
37
|
import '../kits/pb_pill.js'
|
38
38
|
import '../kits/pb_progress_pills.js'
|
39
39
|
import '../kits/pb_progress_simple.js'
|
40
|
+
import '../kits/pb_radio.js'
|
40
41
|
import '../kits/pb_section_separator.js'
|
41
42
|
import '../kits/pb_select.js'
|
42
43
|
import '../kits/pb_selectable_card.js'
|
@@ -23,9 +23,9 @@ const Caption = ({
|
|
23
23
|
}: CaptionProps) => {
|
24
24
|
const Tag = `${tag}`
|
25
25
|
|
26
|
-
const css = classnames(
|
26
|
+
const css = classnames(buildCss('pb_caption_kit', size, {
|
27
27
|
'dark': dark,
|
28
|
-
}))
|
28
|
+
}), className)
|
29
29
|
|
30
30
|
return (
|
31
31
|
<Tag className={css}>
|
@@ -3,11 +3,13 @@
|
|
3
3
|
import React from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
5
|
|
6
|
+
import { buildCss } from '../utilities/props'
|
7
|
+
|
6
8
|
type CardPropTypes = {
|
7
9
|
children: Array<React.ReactNode> | React.ReactNode,
|
8
10
|
className?: String,
|
9
11
|
highlight?: {
|
10
|
-
position?:
|
12
|
+
position?: 'side' | 'top',
|
11
13
|
color?: String
|
12
14
|
},
|
13
15
|
padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
@@ -15,35 +17,26 @@ type CardPropTypes = {
|
|
15
17
|
shadow?: 'none' | 'shallow' | 'default' | 'deep' | 'deeper' | 'deepest',
|
16
18
|
}
|
17
19
|
|
18
|
-
const
|
20
|
+
const Card = ({
|
21
|
+
children,
|
22
|
+
className,
|
19
23
|
highlight = {},
|
24
|
+
padding = 'md',
|
20
25
|
selected = false,
|
21
26
|
shadow = 'none',
|
22
27
|
}: CardPropTypes) => {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
const bodyCSS = ({ padding = 'md' }: CardPropTypes) => {
|
32
|
-
let css = 'pb_card_body_kit'
|
33
|
-
css += `_${padding}`
|
34
|
-
return css
|
35
|
-
}
|
36
|
-
|
37
|
-
const Card = (props: CardPropTypes) => {
|
38
|
-
const {
|
39
|
-
children,
|
40
|
-
className,
|
41
|
-
} = props
|
28
|
+
const bodyCSS = buildCss('pb_card_body_kit', padding)
|
29
|
+
const cardCss = buildCss('pb_card_kit', `shadow_${shadow}`, {
|
30
|
+
selected,
|
31
|
+
deselected: !selected,
|
32
|
+
[`highlight_${highlight.position}`]: highlight.position,
|
33
|
+
[`highlight_${highlight.color}`]: highlight.color,
|
34
|
+
})
|
42
35
|
|
43
36
|
return (
|
44
|
-
<div className={classnames(
|
45
|
-
<div className={bodyCSS
|
46
|
-
{
|
37
|
+
<div className={classnames(cardCss, className)}>
|
38
|
+
<div className={bodyCSS}>
|
39
|
+
{children}
|
47
40
|
</div>
|
48
41
|
</div>
|
49
42
|
)
|
@@ -80,7 +80,7 @@ $pb_card_highlight_size: 4px;
|
|
80
80
|
overflow: hidden;
|
81
81
|
}
|
82
82
|
|
83
|
-
&[class*=
|
83
|
+
&[class*=_highlight_top] {
|
84
84
|
@each $color_name, $color_value in $pb_card_highlight_colors {
|
85
85
|
&[class*=_highlight_#{$color_name}]::before {
|
86
86
|
@include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
|
@@ -88,7 +88,7 @@ $pb_card_highlight_size: 4px;
|
|
88
88
|
}
|
89
89
|
}
|
90
90
|
|
91
|
-
&[class*=
|
91
|
+
&[class*=_highlight_side] {
|
92
92
|
@each $color_name, $color_value in $pb_card_highlight_colors {
|
93
93
|
&[class*=_highlight_#{$color_name}]::before {
|
94
94
|
@include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
|
@@ -1,11 +1,15 @@
|
|
1
1
|
<%= content_tag(:label, id: object.id,
|
2
2
|
data: object.data,
|
3
|
-
class: object.classname) do %>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
class: object.classname) do %>
|
4
|
+
<% if object.children %>
|
5
|
+
<%= capture(&object.children) %>
|
6
|
+
<% else %>
|
7
|
+
<%= object.input %>
|
8
|
+
<% end %>
|
9
|
+
<span class="pb_checkbox_checkmark">
|
10
|
+
<%= pb_rails("icon", props: { icon: "check", id: "check_icon", classname: "check_icon", fixed_width: true}) %>
|
11
|
+
</span>
|
12
|
+
<span class="pb_checkbox_label">
|
13
|
+
<%= pb_rails("body", props: { text: object.text, dark: object.dark }) %>
|
14
|
+
</span>
|
11
15
|
<% end %>
|
@@ -10,7 +10,8 @@ type CheckboxProps = {
|
|
10
10
|
name: String,
|
11
11
|
text: String,
|
12
12
|
value: String,
|
13
|
-
|
13
|
+
children: Node,
|
14
|
+
onChange: (Boolean) => void,
|
14
15
|
}
|
15
16
|
|
16
17
|
const Checkbox = ({
|
@@ -19,6 +20,8 @@ const Checkbox = ({
|
|
19
20
|
name = '',
|
20
21
|
text = '',
|
21
22
|
value = '',
|
23
|
+
children = null,
|
24
|
+
onChange = () => {},
|
22
25
|
|
23
26
|
}: CheckboxProps) => {
|
24
27
|
const bodyClassName = {
|
@@ -33,13 +36,18 @@ const Checkbox = ({
|
|
33
36
|
(dark === true ? '_dark' : '')
|
34
37
|
}
|
35
38
|
>
|
36
|
-
{
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
<If condition={children}>
|
40
|
+
{children}
|
41
|
+
<Else />
|
42
|
+
<input
|
43
|
+
defaultChecked={checked}
|
44
|
+
name={name}
|
45
|
+
onChange={onChange}
|
46
|
+
type="checkbox"
|
47
|
+
value={value}
|
48
|
+
/>
|
49
|
+
</If>
|
50
|
+
|
43
51
|
<span className="pb_checkbox_checkmark">
|
44
52
|
<Icon
|
45
53
|
className="check_icon"
|
@@ -4,6 +4,10 @@ module Playbook
|
|
4
4
|
module PbCheckbox
|
5
5
|
class Checkbox
|
6
6
|
include Playbook::Props
|
7
|
+
include ActionView::Helpers::FormTagHelper
|
8
|
+
include ActionView::Context
|
9
|
+
|
10
|
+
|
7
11
|
|
8
12
|
partial "pb_checkbox/checkbox"
|
9
13
|
|
@@ -21,6 +25,10 @@ module Playbook
|
|
21
25
|
generate_classname("pb_checkbox_kit", dark_class, checked_class)
|
22
26
|
end
|
23
27
|
|
28
|
+
def input
|
29
|
+
check_box_tag(name, value, checked)
|
30
|
+
end
|
31
|
+
|
24
32
|
private
|
25
33
|
|
26
34
|
def checked_class
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Checkbox } from '../../'
|
3
|
+
|
4
|
+
const CheckboxCustom = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Checkbox text="Custom Checkbox">
|
8
|
+
<input
|
9
|
+
name="custom-name"
|
10
|
+
type="checkbox"
|
11
|
+
value="custom-value"
|
12
|
+
/>
|
13
|
+
</Checkbox>
|
14
|
+
</div>
|
15
|
+
)
|
16
|
+
}
|
17
|
+
|
18
|
+
export default CheckboxCustom
|
@@ -1,24 +1,32 @@
|
|
1
1
|
/* @flow */
|
2
2
|
|
3
3
|
import React from 'react'
|
4
|
+
|
5
|
+
import classnames from 'classnames'
|
6
|
+
|
4
7
|
import { Icon } from '../'
|
8
|
+
import { buildCss } from '../utilities/props'
|
5
9
|
|
6
|
-
|
7
|
-
className
|
8
|
-
icon:
|
9
|
-
|
10
|
-
|
11
|
-
variant: String,
|
10
|
+
type IconCircleProps = {
|
11
|
+
className?: string,
|
12
|
+
icon: string,
|
13
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
14
|
+
variant?: 'default' | 'royal' | 'blue' | 'purple' | 'teal' | 'red' | 'yellow' | 'green',
|
12
15
|
}
|
13
16
|
|
14
17
|
const IconCircle = ({
|
18
|
+
className,
|
15
19
|
icon,
|
16
20
|
size = 'md',
|
17
21
|
variant = 'default',
|
18
|
-
}: IconCircleProps) =>
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
)
|
22
|
+
}: IconCircleProps) => {
|
23
|
+
const css = buildCss('pb_icon_circle_kit', size, variant)
|
24
|
+
|
25
|
+
return (
|
26
|
+
<div className={classnames(className, css)}>
|
27
|
+
<Icon icon={icon} />
|
28
|
+
</div>
|
29
|
+
)
|
30
|
+
}
|
23
31
|
|
24
32
|
export default IconCircle
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= content_tag(:label,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
value: object.value,
|
5
|
+
checked: object.checked,
|
6
|
+
class: object.classname) do %>
|
7
|
+
|
8
|
+
<% if object.children %>
|
9
|
+
<%= capture(&object.children) %>
|
10
|
+
<% else %>
|
11
|
+
<%= radio_button_tag object.name, object.value, object.selected %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<span class="pb_radio_button"></span>
|
15
|
+
<%= pb_rails("body", props: { text: object.text, dark: object.dark}) %>
|
16
|
+
<% end %>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
/* @flow */
|
2
|
+
/*eslint-disable react/no-multi-comp, flowtype/space-before-type-colon */
|
3
|
+
|
4
|
+
import React from 'react'
|
5
|
+
import Body from '../pb_body/_body.jsx'
|
6
|
+
|
7
|
+
type RadioProps = {
|
8
|
+
className?: String,
|
9
|
+
data?: String,
|
10
|
+
id?: String,
|
11
|
+
label: String,
|
12
|
+
name: String,
|
13
|
+
value: String,
|
14
|
+
checked?: Boolean,
|
15
|
+
dark?: Boolean,
|
16
|
+
text: String,
|
17
|
+
children?: Node,
|
18
|
+
onChange: (Boolean)=>void,
|
19
|
+
}
|
20
|
+
|
21
|
+
const Radio = (props: RadioProps) => {
|
22
|
+
const {
|
23
|
+
checked = false,
|
24
|
+
children,
|
25
|
+
className,
|
26
|
+
dark = false,
|
27
|
+
data,
|
28
|
+
id,
|
29
|
+
label,
|
30
|
+
name,
|
31
|
+
value,
|
32
|
+
text,
|
33
|
+
onChange = () => {},
|
34
|
+
} = props
|
35
|
+
|
36
|
+
return (
|
37
|
+
<label
|
38
|
+
className={'pb_radio_kit' + (dark === true ? '_dark ' : ' ') + className}
|
39
|
+
htmlFor={id}
|
40
|
+
>
|
41
|
+
<If condition={children}>
|
42
|
+
{children}
|
43
|
+
<Else />
|
44
|
+
<input
|
45
|
+
data={data}
|
46
|
+
defaultChecked={checked}
|
47
|
+
name={name}
|
48
|
+
onChange={onChange}
|
49
|
+
text={text}
|
50
|
+
type="radio"
|
51
|
+
value={value}
|
52
|
+
/>
|
53
|
+
</If>
|
54
|
+
<span className="pb_radio_button" />
|
55
|
+
<Body
|
56
|
+
dark={dark}
|
57
|
+
text={label}
|
58
|
+
/>
|
59
|
+
</label>
|
60
|
+
)
|
61
|
+
}
|
62
|
+
|
63
|
+
export default Radio
|
@@ -0,0 +1,40 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
@import "../tokens/spacing";
|
3
|
+
@import "../pb_body/body";
|
4
|
+
@import "../tokens/transition";
|
5
|
+
|
6
|
+
[class^=pb_radio_kit] {
|
7
|
+
display: inline-flex;
|
8
|
+
|
9
|
+
.pb_radio_button {
|
10
|
+
width: 22px;
|
11
|
+
height: 22px;
|
12
|
+
border-radius: 1000px;
|
13
|
+
border: 2px solid $border_light;
|
14
|
+
margin-right: $space_xs;
|
15
|
+
transition-property: border-color, border;
|
16
|
+
transition-duration: $transition_short;
|
17
|
+
transition-timing-function: $easeIn;
|
18
|
+
}
|
19
|
+
|
20
|
+
&:hover .pb_radio_button {
|
21
|
+
border-color: $primary_action;
|
22
|
+
}
|
23
|
+
|
24
|
+
input {
|
25
|
+
position: relative;
|
26
|
+
display: none;
|
27
|
+
&:checked ~ .pb_radio_button {
|
28
|
+
border: 6px solid $primary;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
&[class*=_dark] {
|
32
|
+
input:checked ~ .pb_radio_button {
|
33
|
+
border: 6px solid $primary;
|
34
|
+
}
|
35
|
+
|
36
|
+
&:hover .pb_radio_button {
|
37
|
+
border-color: $primary_action;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%= pb_rails("radio", props: {
|
2
|
+
text: "Power",
|
3
|
+
name: "group 1",
|
4
|
+
value: "Power"
|
5
|
+
}) do %>
|
6
|
+
<input type="radio" text="power" name="group 1" value="power">
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<br>
|
10
|
+
|
11
|
+
<%= pb_rails("radio", props: {
|
12
|
+
text: "Nitro",
|
13
|
+
name: "group 1",
|
14
|
+
value: "Power"
|
15
|
+
}) do %>
|
16
|
+
<input type="radio" text="nitro" name="group 1" value="nitro">
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<br>
|
20
|
+
|
21
|
+
<%= pb_rails("radio", props: {
|
22
|
+
text: "Google",
|
23
|
+
name: "group 1",
|
24
|
+
value: "Google"
|
25
|
+
}) do %>
|
26
|
+
<input type="radio" text="google" name="group 1" value="google">
|
27
|
+
<% end %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Radio } from '../../'
|
3
|
+
|
4
|
+
const RadioCustom = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Radio
|
8
|
+
className="my_custom_class"
|
9
|
+
label="Custom Power"
|
10
|
+
>
|
11
|
+
<input
|
12
|
+
defaultChecked
|
13
|
+
name="custom"
|
14
|
+
type="radio"
|
15
|
+
value="power"
|
16
|
+
/>
|
17
|
+
</Radio>
|
18
|
+
<br />
|
19
|
+
<Radio
|
20
|
+
className="my_custom_class"
|
21
|
+
label="Custom Nitro"
|
22
|
+
>
|
23
|
+
<input
|
24
|
+
name="custom"
|
25
|
+
type="radio"
|
26
|
+
value="nitro"
|
27
|
+
/>
|
28
|
+
</Radio>
|
29
|
+
<br />
|
30
|
+
<Radio
|
31
|
+
className="my_custom_class"
|
32
|
+
label="Custom Google"
|
33
|
+
>
|
34
|
+
<input
|
35
|
+
name="custom"
|
36
|
+
type="radio"
|
37
|
+
value="google"
|
38
|
+
/>
|
39
|
+
</Radio>
|
40
|
+
</div>
|
41
|
+
)
|
42
|
+
}
|
43
|
+
export default RadioCustom
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%= pb_rails("radio", props: {
|
2
|
+
text: "Power",
|
3
|
+
name: "group 2",
|
4
|
+
value: 'Power',
|
5
|
+
dark: true
|
6
|
+
}) %>
|
7
|
+
|
8
|
+
<br>
|
9
|
+
|
10
|
+
<%= pb_rails("radio", props: {
|
11
|
+
text: "Nitro",
|
12
|
+
name: "group 2",
|
13
|
+
value: "Nitro",
|
14
|
+
checked: true,
|
15
|
+
dark: true
|
16
|
+
}) %>
|
17
|
+
|
18
|
+
<br>
|
19
|
+
|
20
|
+
<%= pb_rails("radio", props: {
|
21
|
+
text: "Google",
|
22
|
+
name: "group 2",
|
23
|
+
value: "Google",
|
24
|
+
dark: true
|
25
|
+
}) %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Radio } from '../../'
|
3
|
+
|
4
|
+
const RadioDark = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Radio
|
8
|
+
dark
|
9
|
+
label="Power"
|
10
|
+
name="Group1"
|
11
|
+
value="Power"
|
12
|
+
/>
|
13
|
+
<br />
|
14
|
+
<Radio
|
15
|
+
dark
|
16
|
+
label="Nitro"
|
17
|
+
name="Group1"
|
18
|
+
value="Nitro"
|
19
|
+
/>
|
20
|
+
<br />
|
21
|
+
<Radio
|
22
|
+
dark
|
23
|
+
label="Google"
|
24
|
+
name="Group1"
|
25
|
+
value="Google"
|
26
|
+
/>
|
27
|
+
</div>
|
28
|
+
)
|
29
|
+
}
|
30
|
+
export default RadioDark
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= pb_rails("radio", props: {
|
2
|
+
text: "Power",
|
3
|
+
name: "group 1",
|
4
|
+
value: "Power"
|
5
|
+
}) %>
|
6
|
+
|
7
|
+
<br>
|
8
|
+
|
9
|
+
<%= pb_rails("radio", props: {
|
10
|
+
text: "Nitro",
|
11
|
+
name: "group 1",
|
12
|
+
value: "Nitro",
|
13
|
+
checked: true
|
14
|
+
}) %>
|
15
|
+
|
16
|
+
<br>
|
17
|
+
|
18
|
+
<%= pb_rails("radio", props: {
|
19
|
+
text: "Google",
|
20
|
+
name: "group 1",
|
21
|
+
value: "Google"
|
22
|
+
}) %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Radio } from '../../'
|
3
|
+
|
4
|
+
const RadioDefault = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Radio
|
8
|
+
label="Power"
|
9
|
+
name="Group2"
|
10
|
+
value="Power"
|
11
|
+
/>
|
12
|
+
<br />
|
13
|
+
<Radio
|
14
|
+
label="Nitro"
|
15
|
+
name="Group2"
|
16
|
+
value="Nitro"
|
17
|
+
/>
|
18
|
+
<br />
|
19
|
+
<Radio
|
20
|
+
label="Google"
|
21
|
+
name="Group2"
|
22
|
+
value="Google"
|
23
|
+
/>
|
24
|
+
</div>
|
25
|
+
)
|
26
|
+
}
|
27
|
+
export default RadioDefault
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "action_view"
|
4
|
+
|
5
|
+
module Playbook
|
6
|
+
module PbRadio
|
7
|
+
class Radio
|
8
|
+
include ActionView::Helpers::FormTagHelper
|
9
|
+
include ActionView::Context
|
10
|
+
include Playbook::Props
|
11
|
+
|
12
|
+
partial "pb_radio/radio"
|
13
|
+
|
14
|
+
prop :checked, type: Playbook::Props::Boolean,
|
15
|
+
default: false
|
16
|
+
prop :dark, type: Playbook::Props::Boolean,
|
17
|
+
default: false
|
18
|
+
prop :name, type: Playbook::Props::String,
|
19
|
+
default: "radio_name"
|
20
|
+
prop :text, type: Playbook::Props::String,
|
21
|
+
default: "Radio Text"
|
22
|
+
prop :value, type: Playbook::Props::String,
|
23
|
+
default: "radio_text"
|
24
|
+
prop :object
|
25
|
+
def classname
|
26
|
+
generate_classname("pb_radio_kit", dark_class)
|
27
|
+
end
|
28
|
+
|
29
|
+
def input
|
30
|
+
check_box_tag(name, value, checked)
|
31
|
+
end
|
32
|
+
|
33
|
+
def selected
|
34
|
+
if checked == true
|
35
|
+
"checked"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def dark_class
|
42
|
+
dark ? "dark" : nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
/* @flow */
|
2
|
-
|
3
2
|
import React from 'react'
|
4
3
|
import classnames from 'classnames'
|
5
4
|
import { Caption } from '../'
|
@@ -13,6 +12,7 @@ type TextInputProps = {
|
|
13
12
|
placeholder: string,
|
14
13
|
type: string,
|
15
14
|
value: string | number,
|
15
|
+
children: Node,
|
16
16
|
}
|
17
17
|
|
18
18
|
const TextInput = ({
|
@@ -24,6 +24,7 @@ const TextInput = ({
|
|
24
24
|
placeholder,
|
25
25
|
type = 'text',
|
26
26
|
value,
|
27
|
+
children = null,
|
27
28
|
}: TextInputProps) => {
|
28
29
|
const css = classnames([
|
29
30
|
`pb_text_input_kit${dark === true ? '_dark' : ''}`,
|
@@ -33,18 +34,23 @@ const TextInput = ({
|
|
33
34
|
return (
|
34
35
|
<div className={css}>
|
35
36
|
<Caption
|
37
|
+
className="pb_text_input_kit_label"
|
36
38
|
dark={dark}
|
37
39
|
text={label}
|
38
40
|
/>
|
39
41
|
<div className="text_input_wrapper">
|
40
|
-
<
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
42
|
+
<If condition={children}>
|
43
|
+
{children}
|
44
|
+
<Else />
|
45
|
+
<input
|
46
|
+
className="text_input"
|
47
|
+
name={name}
|
48
|
+
onChange={onChange}
|
49
|
+
placeholder={placeholder}
|
50
|
+
type={type}
|
51
|
+
value={value}
|
52
|
+
/>
|
53
|
+
</If>
|
48
54
|
</div>
|
49
55
|
</div>
|
50
56
|
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { TextInput } from '../../'
|
3
|
+
|
4
|
+
const TextInputCustom = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<TextInput
|
8
|
+
label="Custom Label"
|
9
|
+
>
|
10
|
+
<input
|
11
|
+
name="custom-name"
|
12
|
+
placeholder="custom-placeholder"
|
13
|
+
type="text"
|
14
|
+
/>
|
15
|
+
</TextInput>
|
16
|
+
</div>
|
17
|
+
)
|
18
|
+
}
|
19
|
+
|
20
|
+
export default TextInputCustom
|
@@ -2,4 +2,4 @@
|
|
2
2
|
<%= pb_rails("text_input", props: { label: "Last Name", placeholder: "Enter last name" }) %>
|
3
3
|
<%= pb_rails("text_input", props: { label: "Phone Number", type: "phone", placeholder: "Enter phone number" }) %>
|
4
4
|
<%= pb_rails("text_input", props: { label: "Email Address", type: "email", placeholder: "Enter email address" }) %>
|
5
|
-
<%= pb_rails("text_input", props: { label: "Zip Code", type: "number", placeholder: "Enter zip code" }) %>
|
5
|
+
<%= pb_rails("text_input", props: { label: "Zip Code", type: "number", placeholder: "Enter zip code" }) %>
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-01-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version: 5.1.6
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '7.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
version: 5.1.6
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '7.0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: activesupport
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -439,6 +439,7 @@ files:
|
|
439
439
|
- app/pb_kits/playbook/kits/pb_pill.js
|
440
440
|
- app/pb_kits/playbook/kits/pb_progress_pills.js
|
441
441
|
- app/pb_kits/playbook/kits/pb_progress_simple.js
|
442
|
+
- app/pb_kits/playbook/kits/pb_radio.js
|
442
443
|
- app/pb_kits/playbook/kits/pb_section_separator.js
|
443
444
|
- app/pb_kits/playbook/kits/pb_select.js
|
444
445
|
- app/pb_kits/playbook/kits/pb_selectable_card.js
|
@@ -579,6 +580,8 @@ files:
|
|
579
580
|
- app/pb_kits/playbook/pb_checkbox/_checkbox.scss
|
580
581
|
- app/pb_kits/playbook/pb_checkbox/checkbox.rb
|
581
582
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_checked.html.erb
|
583
|
+
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.html.erb
|
584
|
+
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.jsx
|
582
585
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_dark.html.erb
|
583
586
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_dark.jsx
|
584
587
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.html.erb
|
@@ -966,6 +969,18 @@ files:
|
|
966
969
|
- app/pb_kits/playbook/pb_progress_simple/docs/example.yml
|
967
970
|
- app/pb_kits/playbook/pb_progress_simple/docs/index.js
|
968
971
|
- app/pb_kits/playbook/pb_progress_simple/progress_simple.rb
|
972
|
+
- app/pb_kits/playbook/pb_radio/_radio.html.erb
|
973
|
+
- app/pb_kits/playbook/pb_radio/_radio.jsx
|
974
|
+
- app/pb_kits/playbook/pb_radio/_radio.scss
|
975
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_custom.html.erb
|
976
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_custom.jsx
|
977
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_dark.html.erb
|
978
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_dark.jsx
|
979
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_default.html.erb
|
980
|
+
- app/pb_kits/playbook/pb_radio/docs/_radio_default.jsx
|
981
|
+
- app/pb_kits/playbook/pb_radio/docs/example.yml
|
982
|
+
- app/pb_kits/playbook/pb_radio/docs/index.js
|
983
|
+
- app/pb_kits/playbook/pb_radio/radio.rb
|
969
984
|
- app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb
|
970
985
|
- app/pb_kits/playbook/pb_section_separator/_section_separator.jsx
|
971
986
|
- app/pb_kits/playbook/pb_section_separator/_section_separator.scss
|
@@ -999,7 +1014,6 @@ files:
|
|
999
1014
|
- app/pb_kits/playbook/pb_select/docs/_select_value_text_same.jsx
|
1000
1015
|
- app/pb_kits/playbook/pb_select/docs/example.yml
|
1001
1016
|
- app/pb_kits/playbook/pb_select/docs/index.js
|
1002
|
-
- app/pb_kits/playbook/pb_select/docs/nitro_theme.gemspec
|
1003
1017
|
- app/pb_kits/playbook/pb_select/select.rb
|
1004
1018
|
- app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb
|
1005
1019
|
- app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx
|
@@ -1094,6 +1108,8 @@ files:
|
|
1094
1108
|
- app/pb_kits/playbook/pb_text_input/_text_input.html.erb
|
1095
1109
|
- app/pb_kits/playbook/pb_text_input/_text_input.jsx
|
1096
1110
|
- app/pb_kits/playbook/pb_text_input/_text_input.scss
|
1111
|
+
- app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.html.erb
|
1112
|
+
- app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.jsx
|
1097
1113
|
- app/pb_kits/playbook/pb_text_input/docs/_text_input_dark.html.erb
|
1098
1114
|
- app/pb_kits/playbook/pb_text_input/docs/_text_input_dark.jsx
|
1099
1115
|
- app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb
|
@@ -1,41 +0,0 @@
|
|
1
|
-
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = "nitro_theme"
|
5
|
-
s.version = "0.0.1"
|
6
|
-
s.authors = ["Nitro Developers"]
|
7
|
-
s.email = ["dev@powerhrg.com"]
|
8
|
-
s.homepage = "http://nitro.powerhrg.com"
|
9
|
-
s.summary = "Nitro's visual theme"
|
10
|
-
s.description = "Nitro's visual theme, including page layout, styling and navigation"
|
11
|
-
|
12
|
-
s.files = Dir["{app,config,db,lib}/**/*"] + ["Rakefile", "README.md"]
|
13
|
-
|
14
|
-
s.add_dependency "bootstrap-sass", "3.3.5.1"
|
15
|
-
s.add_dependency "coffee-rails", "4.2.2"
|
16
|
-
s.add_dependency "jquery-rails", "4.3.1"
|
17
|
-
s.add_dependency "lodash-rails", "3.10.1"
|
18
|
-
s.add_dependency "naughty"
|
19
|
-
s.add_dependency "nitro_auth"
|
20
|
-
s.add_dependency "nitro_react"
|
21
|
-
s.add_dependency "nitro_sg", "3.0.2"
|
22
|
-
s.add_dependency "playbook_ui", "2.9.1"
|
23
|
-
s.add_dependency "rails", "5.1.6.2"
|
24
|
-
# should sassc version change, adjust umbrella Gemfile & Dockerfile accordingly
|
25
|
-
s.add_dependency "sassc", "1.11.4"
|
26
|
-
s.add_dependency "sassc-rails", "1.3.0"
|
27
|
-
s.add_dependency "simple_form", "4.0.1"
|
28
|
-
s.add_dependency "sprockets-rails", "2.3.3"
|
29
|
-
s.add_dependency "turbolinks", "~> 5"
|
30
|
-
s.add_dependency "will_paginate", "3.1.6"
|
31
|
-
s.add_dependency "will_paginate-bootstrap", "1.0.1"
|
32
|
-
|
33
|
-
s.add_development_dependency "nitro_linting"
|
34
|
-
s.add_development_dependency "pry-byebug", "3.5.0"
|
35
|
-
s.add_development_dependency "rainbow", "2.2.2"
|
36
|
-
s.add_development_dependency "rspec-rails"
|
37
|
-
s.add_development_dependency "simplecov", "0.15.1"
|
38
|
-
s.add_development_dependency "test-unit", "3.1.5"
|
39
|
-
s.add_development_dependency "timecop"
|
40
|
-
s.add_development_dependency "yard", "0.9.20"
|
41
|
-
end
|