playbook_ui 3.4.0 → 3.5.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/packs/examples.js +3 -0
- data/app/pb_kits/playbook/pb_body/_body_mixins.scss +6 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +1 -1
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +11 -3
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +12 -0
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +10 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_dark_error.html.erb +7 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_dark_error.jsx +18 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_error.html.erb +6 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_error.jsx +17 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_enhanced_element/element_observer.js +67 -0
- data/app/pb_kits/playbook/pb_enhanced_element/index.js +62 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.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/form_builder/simple_form_builder.rb +1 -1
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.html.erb +1 -1
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +3 -1
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_dark.jsx +1 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.jsx +1 -0
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -0
- data/app/pb_kits/playbook/pb_list/_item.html.erb +5 -3
- data/app/pb_kits/playbook/pb_list/_list.html.erb +7 -3
- data/app/pb_kits/playbook/pb_list/item.rb +2 -0
- data/app/pb_kits/playbook/pb_list/list.rb +2 -0
- data/app/pb_kits/playbook/pb_radio/_radio.html.erb +1 -1
- data/app/pb_kits/playbook/pb_radio/_radio.jsx +7 -2
- data/app/pb_kits/playbook/pb_radio/_radio.scss +15 -5
- data/app/pb_kits/playbook/pb_radio/docs/_radio_dark_error.html.erb +7 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_dark_error.jsx +17 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_error.html.erb +6 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_error.jsx +16 -0
- data/app/pb_kits/playbook/pb_radio/docs/example.yml +4 -3
- data/app/pb_kits/playbook/pb_radio/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_radio/radio.rb +16 -8
- data/app/pb_kits/playbook/pb_select/_select.html.erb +2 -0
- data/app/pb_kits/playbook/pb_select/_select.jsx +27 -16
- data/app/pb_kits/playbook/pb_select/_select.scss +22 -1
- data/app/pb_kits/playbook/pb_select/docs/_select_dark_error.html.erb +25 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_dark_error.jsx +37 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_error.html.erb +24 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +35 -0
- data/app/pb_kits/playbook/pb_select/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_select/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_select/select.rb +14 -11
- data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +7 -1
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +22 -9
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +19 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_dark_error.html.erb +14 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_dark_error.jsx +18 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb +2 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +17 -0
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +12 -3
- data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +6 -0
- data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +15 -5
- data/app/pb_kits/playbook/pb_textarea/_textarea.scss +14 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark_error.html.erb +6 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark_error.jsx +20 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.html.erb +1 -0
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +19 -0
- data/app/pb_kits/playbook/pb_textarea/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_textarea/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_textarea/textarea.rb +13 -6
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +16 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +52 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +51 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_typeahead/index.js +158 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +28 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +2 -0
- data/lib/playbook/version.rb +1 -1
- metadata +30 -2
@@ -0,0 +1,37 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Body, Select } from '../..'
|
3
|
+
|
4
|
+
const SelectDarkError = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Select
|
8
|
+
dark
|
9
|
+
error="Please make a valid selection"
|
10
|
+
label="Favorite Food"
|
11
|
+
name="food"
|
12
|
+
options={[
|
13
|
+
{
|
14
|
+
value: '1',
|
15
|
+
valueText: 'Burgers',
|
16
|
+
},
|
17
|
+
{
|
18
|
+
value: '2',
|
19
|
+
selected: true,
|
20
|
+
valueText: 'Pizza',
|
21
|
+
},
|
22
|
+
{
|
23
|
+
value: '3',
|
24
|
+
valueText: 'Tacos',
|
25
|
+
},
|
26
|
+
]}
|
27
|
+
/>
|
28
|
+
<Body
|
29
|
+
dark
|
30
|
+
error="Please make a valid selection"
|
31
|
+
status="negative"
|
32
|
+
/>
|
33
|
+
</div>
|
34
|
+
)
|
35
|
+
}
|
36
|
+
|
37
|
+
export default SelectDarkError
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= pb_rails("select", props: {
|
2
|
+
error: "Please make a valid selection",
|
3
|
+
label: "Favorite Food",
|
4
|
+
name: "food",
|
5
|
+
options: [
|
6
|
+
{
|
7
|
+
value: "1",
|
8
|
+
value_text: "Burgers",
|
9
|
+
},
|
10
|
+
{
|
11
|
+
value: "2",
|
12
|
+
selected: true,
|
13
|
+
value_text: "Pizza",
|
14
|
+
},
|
15
|
+
{
|
16
|
+
value: "3",
|
17
|
+
value_text: "Tacos",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
value: "4",
|
21
|
+
value_text: "BBQ",
|
22
|
+
},
|
23
|
+
]
|
24
|
+
}) %>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Body, Select } from '../..'
|
3
|
+
|
4
|
+
const SelectError = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Select
|
8
|
+
error="Please make a valid selection"
|
9
|
+
label="Favorite Food"
|
10
|
+
name="food"
|
11
|
+
options={[
|
12
|
+
{
|
13
|
+
value: '1',
|
14
|
+
valueText: 'Burgers',
|
15
|
+
},
|
16
|
+
{
|
17
|
+
value: '2',
|
18
|
+
selected: true,
|
19
|
+
valueText: 'Pizza',
|
20
|
+
},
|
21
|
+
{
|
22
|
+
value: '3',
|
23
|
+
valueText: 'Tacos',
|
24
|
+
},
|
25
|
+
]}
|
26
|
+
/>
|
27
|
+
<Body
|
28
|
+
error="Please make a valid selection"
|
29
|
+
status="negative"
|
30
|
+
/>
|
31
|
+
</div>
|
32
|
+
)
|
33
|
+
}
|
34
|
+
|
35
|
+
export default SelectError
|
@@ -9,6 +9,8 @@ examples:
|
|
9
9
|
- select_value_text_same: Equal option value and value text
|
10
10
|
- select_custom_select: Custom Select
|
11
11
|
- select_dark: Dark Select
|
12
|
+
- select_error: Select w/ Error
|
13
|
+
- select_dark_error: Select Dark w/ Error
|
12
14
|
|
13
15
|
|
14
16
|
react:
|
@@ -20,3 +22,5 @@ examples:
|
|
20
22
|
- select_value_text_same: Equal option value and value text
|
21
23
|
- select_custom_select: Custom Select
|
22
24
|
- select_dark: Dark Select
|
25
|
+
- select_error: Select w/ Error
|
26
|
+
- select_dark_error: Select Dark w/ Error
|
@@ -6,3 +6,5 @@ export { default as SelectDisabled } from './_select_disabled.jsx'
|
|
6
6
|
export { default as SelectRequired } from './_select_required.jsx'
|
7
7
|
export { default as SelectCustomSelect } from './_select_custom_select.jsx'
|
8
8
|
export { default as SelectValueTextSame } from './_select_value_text_same.jsx'
|
9
|
+
export { default as SelectError } from './_select_error.jsx'
|
10
|
+
export { default as SelectDarkError } from './_select_dark_error.jsx'
|
@@ -11,26 +11,26 @@ module Playbook
|
|
11
11
|
|
12
12
|
partial "pb_select/select"
|
13
13
|
|
14
|
-
prop :
|
15
|
-
prop :
|
14
|
+
prop :blank_selection
|
15
|
+
prop :dark, type: Playbook::Props::Boolean, default: false
|
16
16
|
prop :disabled, type: Playbook::Props::Boolean, default: false
|
17
|
+
prop :error
|
18
|
+
prop :include_blank
|
19
|
+
prop :label
|
17
20
|
prop :multiple, type: Playbook::Props::Boolean, default: false
|
18
21
|
prop :name
|
19
22
|
prop :onchange
|
20
|
-
prop :include_blank
|
21
|
-
prop :blank_selection
|
22
23
|
prop :options, type: Playbook::Props::HashArray, required: false, default: []
|
23
|
-
prop :
|
24
|
+
prop :required, type: Playbook::Props::Boolean, default: false
|
24
25
|
|
25
26
|
def classname
|
26
|
-
generate_classname("pb_select", dark_class)
|
27
|
+
generate_classname("pb_select", dark_class) + error_class
|
27
28
|
end
|
28
29
|
|
29
30
|
def options_to_array
|
30
31
|
options.map { |option| [option[:value_text] || option[:value], option[:value]] }
|
31
32
|
end
|
32
33
|
|
33
|
-
|
34
34
|
def selected
|
35
35
|
selections = options.map { |option| option[:value] if option[:selected] == true }.compact
|
36
36
|
if selections.empty?
|
@@ -49,12 +49,15 @@ module Playbook
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
|
52
|
+
private
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
def error_class
|
55
|
+
error ? " error" : ""
|
56
|
+
end
|
57
57
|
|
58
|
+
def dark_class
|
59
|
+
dark ? "dark" : nil
|
60
|
+
end
|
58
61
|
end
|
59
62
|
end
|
60
63
|
end
|
@@ -6,7 +6,10 @@
|
|
6
6
|
<%= content_tag(:div,
|
7
7
|
class: "text_input_wrapper") do %>
|
8
8
|
<% if object.children.present? %>
|
9
|
-
|
9
|
+
<%= capture(&object.children) %>
|
10
|
+
<% if object.error %>
|
11
|
+
<%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error}) %>
|
12
|
+
<% end %>
|
10
13
|
<% else %>
|
11
14
|
<%= tag(:input,
|
12
15
|
id: object.id,
|
@@ -16,6 +19,9 @@
|
|
16
19
|
placeholder: object.placeholder,
|
17
20
|
type: object.type,
|
18
21
|
value: object.value) %>
|
22
|
+
<% if object.error %>
|
23
|
+
<%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error}) %>
|
24
|
+
<% end %>
|
19
25
|
<% end %>
|
20
26
|
<% end %>
|
21
27
|
<% end %>
|
@@ -1,23 +1,28 @@
|
|
1
1
|
/* @flow */
|
2
2
|
import React from 'react'
|
3
3
|
import classnames from 'classnames'
|
4
|
-
import {
|
4
|
+
import {
|
5
|
+
Body,
|
6
|
+
Caption,
|
7
|
+
} from '../'
|
5
8
|
|
6
9
|
type TextInputProps = {
|
7
|
-
className:
|
10
|
+
className: String,
|
8
11
|
dark: boolean,
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
error?: String,
|
13
|
+
name: String,
|
14
|
+
label: String,
|
15
|
+
onChange: (String) => void,
|
16
|
+
placeholder: String,
|
17
|
+
type: String,
|
18
|
+
value: String | number,
|
15
19
|
children: Node,
|
16
20
|
}
|
17
21
|
|
18
22
|
const TextInput = ({
|
19
23
|
className,
|
20
|
-
dark,
|
24
|
+
dark = false,
|
25
|
+
error,
|
21
26
|
name,
|
22
27
|
label,
|
23
28
|
onChange = () => {},
|
@@ -29,6 +34,7 @@ const TextInput = ({
|
|
29
34
|
const css = classnames([
|
30
35
|
`pb_text_input_kit${dark === true ? '_dark' : ''}`,
|
31
36
|
className,
|
37
|
+
error ? 'error' : null,
|
32
38
|
])
|
33
39
|
|
34
40
|
return (
|
@@ -50,6 +56,13 @@ const TextInput = ({
|
|
50
56
|
type={type}
|
51
57
|
value={value}
|
52
58
|
/>
|
59
|
+
<If condition={error}>
|
60
|
+
<Body
|
61
|
+
dark={dark}
|
62
|
+
status="negative"
|
63
|
+
text={error}
|
64
|
+
/>
|
65
|
+
</If>
|
53
66
|
</If>
|
54
67
|
</div>
|
55
68
|
</div>
|
@@ -42,5 +42,24 @@
|
|
42
42
|
@include pb_textarea_focus_dark;
|
43
43
|
}
|
44
44
|
}
|
45
|
+
|
46
|
+
&.error {
|
47
|
+
.text_input_wrapper {
|
48
|
+
> input:first-child {
|
49
|
+
border-color: $error_dark;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
&.error {
|
56
|
+
.text_input_wrapper {
|
57
|
+
[class*=pb_body_kit] {
|
58
|
+
margin-top: $space_xs / 2;
|
59
|
+
}
|
60
|
+
> input:first-child {
|
61
|
+
border-color: $error;
|
62
|
+
}
|
63
|
+
}
|
45
64
|
}
|
46
65
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= pb_rails("text_input", props: {
|
2
|
+
dark: true,
|
3
|
+
error: "Please enter a valid email address",
|
4
|
+
label: "Email Address",
|
5
|
+
type: "email",
|
6
|
+
placeholder: "Enter email address"
|
7
|
+
}) %>
|
8
|
+
|
9
|
+
<%= pb_rails("text_input", props: {
|
10
|
+
dark: true,
|
11
|
+
label: "Confirm Email Address",
|
12
|
+
type: "email",
|
13
|
+
placeholder: "Confirm email address"
|
14
|
+
}) %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import {
|
3
|
+
TextInput,
|
4
|
+
} from '../..'
|
5
|
+
|
6
|
+
const TextInputDarkError = () => (
|
7
|
+
<div>
|
8
|
+
<TextInput
|
9
|
+
dark
|
10
|
+
error="Please enter a valid email address"
|
11
|
+
label="Email Address"
|
12
|
+
placeholder="Enter email address"
|
13
|
+
type="email"
|
14
|
+
/>
|
15
|
+
</div>
|
16
|
+
)
|
17
|
+
|
18
|
+
export default TextInputDarkError
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<%= pb_rails("text_input", props: { error: "Please enter a valid email address", label: "Email Address", type: "email", placeholder: "Enter email address" }) %>
|
2
|
+
<%= pb_rails("text_input", props: { label: "Confirm Email Address", type: "email", placeholder: "Confirm email address" }) %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import {
|
3
|
+
TextInput,
|
4
|
+
} from '../..'
|
5
|
+
|
6
|
+
const TextInputError = () => (
|
7
|
+
<div>
|
8
|
+
<TextInput
|
9
|
+
error="Please enter a valid email address"
|
10
|
+
label="Email Address"
|
11
|
+
placeholder="Enter email address"
|
12
|
+
type="email"
|
13
|
+
/>
|
14
|
+
</div>
|
15
|
+
)
|
16
|
+
|
17
|
+
export default TextInputError
|
@@ -2,9 +2,13 @@ examples:
|
|
2
2
|
rails:
|
3
3
|
- text_input_default: Default
|
4
4
|
- text_input_dark: Dark
|
5
|
+
- text_input_error: With Error
|
6
|
+
- text_input_dark_error: Dark With Error
|
5
7
|
- text_input_custom: Custom
|
6
8
|
react:
|
7
9
|
- text_input_default: Default
|
8
10
|
- text_input_dark: Dark
|
11
|
+
- text_input_error: With Error
|
12
|
+
- text_input_dark_error: Dark With Error
|
9
13
|
- text_input_custom: Custom
|
10
14
|
|
@@ -1,3 +1,5 @@
|
|
1
1
|
export { default as TextInputDefault } from './_text_input_default.jsx'
|
2
2
|
export { default as TextInputDark } from './_text_input_dark.jsx'
|
3
|
+
export { default as TextInputDarkError } from './_text_input_dark_error.jsx'
|
3
4
|
export { default as TextInputCustom } from './_text_input_custom.jsx'
|
5
|
+
export { default as TextInputError } from './_text_input_error.jsx'
|
@@ -9,17 +9,26 @@ module Playbook
|
|
9
9
|
|
10
10
|
prop :dark, type: Playbook::Props::Boolean,
|
11
11
|
default: false
|
12
|
+
prop :disabled, type: Playbook::Props::Boolean,
|
13
|
+
default: false
|
14
|
+
prop :error
|
12
15
|
prop :label
|
13
16
|
prop :name
|
14
17
|
prop :placeholder
|
15
|
-
prop :
|
18
|
+
prop :required, type: Playbook::Props::Boolean,
|
19
|
+
default: false
|
16
20
|
prop :type, default: "text"
|
21
|
+
prop :value
|
17
22
|
|
18
23
|
def classname
|
19
|
-
generate_classname("pb_text_input_kit", dark_class)
|
24
|
+
generate_classname("pb_text_input_kit", dark_class) + error_class
|
20
25
|
end
|
21
26
|
|
22
|
-
|
27
|
+
private
|
28
|
+
|
29
|
+
def error_class
|
30
|
+
error ? " error" : ""
|
31
|
+
end
|
23
32
|
|
24
33
|
def dark_class
|
25
34
|
dark ? "dark" : nil
|
@@ -7,6 +7,9 @@
|
|
7
7
|
<% end %>
|
8
8
|
<% if object.children %>
|
9
9
|
<%= capture(&object.children) %>
|
10
|
+
<% if object.error %>
|
11
|
+
<%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error}) %>
|
12
|
+
<% end %>
|
10
13
|
<% else %>
|
11
14
|
<%= text_area(
|
12
15
|
:object,
|
@@ -16,5 +19,8 @@
|
|
16
19
|
:placeholder => object.placeholder,
|
17
20
|
:rows => object.rows,
|
18
21
|
:value => object.value )%>
|
22
|
+
<% if object.error %>
|
23
|
+
<%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error}) %>
|
24
|
+
<% end %>
|
19
25
|
<% end %>
|
20
26
|
<% end %>
|
@@ -2,13 +2,14 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
|
-
import { Caption } from '../'
|
5
|
+
import { Body, Caption } from '../'
|
6
6
|
import { type InputCallback } from '../types.js'
|
7
7
|
|
8
8
|
type TextareaProps = {
|
9
9
|
className?: String,
|
10
10
|
children?: Array<React.ReactChild>,
|
11
11
|
data?: String,
|
12
|
+
error?: String,
|
12
13
|
id?: String,
|
13
14
|
object?: String,
|
14
15
|
method?: String,
|
@@ -24,18 +25,20 @@ type TextareaProps = {
|
|
24
25
|
const Textarea = ({
|
25
26
|
className,
|
26
27
|
children,
|
28
|
+
dark = false,
|
29
|
+
error,
|
27
30
|
label,
|
31
|
+
name,
|
28
32
|
onChange = () => {},
|
29
33
|
placeholder,
|
30
|
-
value,
|
31
|
-
dark = false,
|
32
34
|
rows = 4,
|
33
|
-
|
35
|
+
value,
|
34
36
|
}: TextareaProps) => {
|
35
37
|
const textareaClass = `pb_textarea_kit${dark ? '_dark' : ''}`
|
38
|
+
const errorClass = error ? 'error' : null
|
36
39
|
|
37
40
|
return (
|
38
|
-
<div className={classnames(textareaClass, className)}>
|
41
|
+
<div className={classnames(textareaClass, className, errorClass)}>
|
39
42
|
<Caption
|
40
43
|
dark={dark}
|
41
44
|
text={label}
|
@@ -51,6 +54,13 @@ const Textarea = ({
|
|
51
54
|
rows={rows}
|
52
55
|
value={value}
|
53
56
|
/>
|
57
|
+
<If condition={error}>
|
58
|
+
<Body
|
59
|
+
dark={dark}
|
60
|
+
status="negative"
|
61
|
+
text={error}
|
62
|
+
/>
|
63
|
+
</If>
|
54
64
|
</If>
|
55
65
|
</div>
|
56
66
|
)
|