playbook_ui 12.25.0.pre.alpha.PLAY818multilevelrebuild779 → 12.25.0.pre.alpha.play824786
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/pb_detail/_detail.scss +44 -0
- data/app/pb_kits/playbook/pb_detail/_detail.tsx +55 -0
- data/app/pb_kits/playbook/pb_detail/_detail_mixins.scss +29 -0
- data/app/pb_kits/playbook/pb_detail/detail.html.erb +7 -0
- data/app/pb_kits/playbook/pb_detail/detail.rb +31 -0
- data/app/pb_kits/playbook/pb_detail/detail.test.jsx +46 -0
- data/app/pb_kits/playbook/pb_detail/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_bold.html.erb +34 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_bold.jsx +49 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_bold.md +1 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.html.erb +24 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.jsx +38 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.md +6 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_default.html.erb +3 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_default.jsx +13 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_styled.html.erb +22 -0
- data/app/pb_kits/playbook/pb_detail/docs/_detail_styled.jsx +32 -0
- data/app/pb_kits/playbook/pb_detail/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_detail/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +109 -44
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +14 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +60 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +6 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +110 -62
- data/app/pb_kits/playbook/playbook-doc.js +2 -0
- data/app/pb_kits/playbook/utilities/object.ts +3 -0
- data/dist/menu.yml +1 -0
- data/dist/playbook-rails.js +2 -2
- data/lib/playbook/forms/builder/intl_telephone_field.rb +12 -0
- data/lib/playbook/forms/builder.rb +1 -0
- data/lib/playbook/version.rb +1 -1
- metadata +24 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d16e0bc40834178270464f25bde81545d40620d3c632b7adda792ae7f7e6bed
|
4
|
+
data.tar.gz: 10ac729f13f811e0f16f4e83dfddcfd897ff2bbb234fdd012d3737f70a1c2c0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b8880be33d9fbe2f373640058faa2392f405c0404b9f83d54831f709ecd06ae500834cbc66c0d36e4ae840724825ad56c03eece94df03eea9d1601bd24da115
|
7
|
+
data.tar.gz: 8a1c0f8500386822a9f30217ea506eb463000d2d83db924ba3e90f1e3b3b0dff88ebd2f24b30e945e3b5e65d1e2f31900cf18fb6d347a47afec1d2ea7423950d
|
@@ -31,6 +31,7 @@ export { default as DateStacked } from './pb_date_stacked/_date_stacked'
|
|
31
31
|
export { default as DateTime } from './pb_date_time/_date_time'
|
32
32
|
export { default as DateTimeStacked } from './pb_date_time_stacked/_date_time_stacked'
|
33
33
|
export { default as DateYearStacked } from './pb_date_year_stacked/_date_year_stacked'
|
34
|
+
export { default as Detail} from './pb_detail/_detail'
|
34
35
|
export { default as Dialog } from './pb_dialog/_dialog'
|
35
36
|
export { default as DistributionBar } from './pb_distribution_bar/_distribution_bar'
|
36
37
|
export { default as FileUpload } from './pb_file_upload/_file_upload'
|
@@ -0,0 +1,44 @@
|
|
1
|
+
@import "./detail_mixins";
|
2
|
+
@import "../tokens/titles";
|
3
|
+
@import "../tokens/typography";
|
4
|
+
|
5
|
+
[class^=pb_detail_kit]{
|
6
|
+
@include pb_detail;
|
7
|
+
|
8
|
+
@each $color_name, $color_value in $pb_detail_colors {
|
9
|
+
&[class*=_#{$color_name}] {
|
10
|
+
@include pb_detail($color_value);
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
@each $dark_color_name, $dark_color_value in $pb_dark_detail_colors{
|
15
|
+
&[class*=_#{$dark_color_name}][class*=dark]{
|
16
|
+
@include pb_detail($dark_color_value)
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
// Styles
|
21
|
+
&.bold,
|
22
|
+
&.bold.dark,
|
23
|
+
b,
|
24
|
+
strong {
|
25
|
+
font-weight: $bold;
|
26
|
+
}
|
27
|
+
|
28
|
+
a {
|
29
|
+
color: $primary;
|
30
|
+
&:hover {
|
31
|
+
cursor: pointer;
|
32
|
+
color: $text_lt_default;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
em {
|
37
|
+
font-weight: $bold;
|
38
|
+
}
|
39
|
+
|
40
|
+
small {
|
41
|
+
font-size: $font_smaller;
|
42
|
+
letter-spacing: $lspace_loose;
|
43
|
+
}
|
44
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import classnames from 'classnames'
|
3
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
4
|
+
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
5
|
+
|
6
|
+
type DetailProps = {
|
7
|
+
aria?: { [key: string]: string },
|
8
|
+
bold?: boolean,
|
9
|
+
children?: React.ReactChild[] | React.ReactChild,
|
10
|
+
className?: string,
|
11
|
+
color?: 'light' | 'default' | 'lighter' | 'link' | 'error' | 'success',
|
12
|
+
dark?: boolean,
|
13
|
+
data?: { [key: string]: string },
|
14
|
+
id?: string,
|
15
|
+
tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div',
|
16
|
+
text?: string,
|
17
|
+
} & GlobalProps
|
18
|
+
|
19
|
+
const Detail = (props: DetailProps) => {
|
20
|
+
const {
|
21
|
+
aria = {},
|
22
|
+
bold = false,
|
23
|
+
children,
|
24
|
+
className,
|
25
|
+
color = 'light',
|
26
|
+
data = {},
|
27
|
+
id = '',
|
28
|
+
tag = 'div',
|
29
|
+
text= ''
|
30
|
+
} = props
|
31
|
+
|
32
|
+
const ariaProps: {[key: string]: any} = buildAriaProps(aria)
|
33
|
+
const dataProps: {[key: string]: any} = buildDataProps(data)
|
34
|
+
const isBold = bold ? "bold" : null
|
35
|
+
const classes = classnames(
|
36
|
+
buildCss('pb_detail_kit', color),
|
37
|
+
isBold,
|
38
|
+
globalProps(props),
|
39
|
+
className
|
40
|
+
)
|
41
|
+
const Tag: React.ReactElement | any = `${tag}`
|
42
|
+
|
43
|
+
return (
|
44
|
+
<Tag
|
45
|
+
{...ariaProps}
|
46
|
+
{...dataProps}
|
47
|
+
className={classes}
|
48
|
+
id={id}
|
49
|
+
>
|
50
|
+
{text || children}
|
51
|
+
</Tag>
|
52
|
+
)
|
53
|
+
}
|
54
|
+
|
55
|
+
export default Detail
|
@@ -0,0 +1,29 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
@import "../tokens/line_height";
|
3
|
+
@import "../tokens/typography";
|
4
|
+
|
5
|
+
$pb_detail_colors: (
|
6
|
+
light: $text_lt_light,
|
7
|
+
default: $text_lt_default,
|
8
|
+
lighter: $text_lt_lighter,
|
9
|
+
link: $primary,
|
10
|
+
error: $error,
|
11
|
+
success: $text_lt_success_sm,
|
12
|
+
);
|
13
|
+
|
14
|
+
$pb_dark_detail_colors: (
|
15
|
+
light: $text_dk_light,
|
16
|
+
default: $text_dk_default,
|
17
|
+
lighter: $text_dk_lighter,
|
18
|
+
link: $primary,
|
19
|
+
error: $error_dark,
|
20
|
+
success: $text_dk_success_sm,
|
21
|
+
);
|
22
|
+
|
23
|
+
@mixin pb_detail($color: $text_lt_light) {
|
24
|
+
line-height: $lh_tight;
|
25
|
+
color: $color;
|
26
|
+
font-size: $text_small;
|
27
|
+
font-weight: $regular;
|
28
|
+
font-family: $font-family-base;
|
29
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbDetail
|
5
|
+
class Detail < Playbook::KitBase
|
6
|
+
prop :bold, type: Playbook::Props::Boolean,
|
7
|
+
default: false
|
8
|
+
prop :color, type: Playbook::Props::Enum,
|
9
|
+
values: %w[light default lighter link error success],
|
10
|
+
default: "light"
|
11
|
+
prop :tag, type: Playbook::Props::Enum,
|
12
|
+
values: %w[h1 h2 h3 h4 h5 h6 p span div],
|
13
|
+
default: "div"
|
14
|
+
prop :text
|
15
|
+
|
16
|
+
def classname
|
17
|
+
generate_classname("pb_detail_kit", color) + is_bold
|
18
|
+
end
|
19
|
+
|
20
|
+
def content
|
21
|
+
super.presence || text
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def is_bold
|
27
|
+
bold ? " bold" : ""
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
3
|
+
|
4
|
+
import Detail from './_detail'
|
5
|
+
|
6
|
+
test('returns namespaced class name', () => {
|
7
|
+
render(
|
8
|
+
<Detail
|
9
|
+
data={{ testid: 'primary-test' }}
|
10
|
+
text="Test class name"
|
11
|
+
/>
|
12
|
+
)
|
13
|
+
|
14
|
+
const kit = screen.getByTestId('primary-test')
|
15
|
+
expect(kit).toHaveClass('pb_detail_kit_light')
|
16
|
+
})
|
17
|
+
|
18
|
+
test('with colors', () => {
|
19
|
+
['light', 'default', 'lighter', 'link', 'success', 'error'].forEach((color) => {
|
20
|
+
const testId = `colors-test-${color}`
|
21
|
+
|
22
|
+
render(
|
23
|
+
<Detail
|
24
|
+
color={color}
|
25
|
+
data={{ testid: testId }}
|
26
|
+
text="Test colors"
|
27
|
+
/>
|
28
|
+
)
|
29
|
+
|
30
|
+
const kit = screen.getByTestId(testId)
|
31
|
+
expect(kit).toHaveClass(`pb_detail_kit_${color}`)
|
32
|
+
})
|
33
|
+
})
|
34
|
+
|
35
|
+
test('bold font-weight should be 600', () => {
|
36
|
+
render(
|
37
|
+
<Detail
|
38
|
+
bold
|
39
|
+
data={{ testid: 'primary-test' }}
|
40
|
+
text="Test bold prop"
|
41
|
+
/>
|
42
|
+
)
|
43
|
+
|
44
|
+
const kit = screen.getByTestId('primary-test')
|
45
|
+
expect(kit).toHaveClass("bold")
|
46
|
+
})
|
@@ -0,0 +1 @@
|
|
1
|
+
Used for tables or designs with large amounts of data or text.
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<%= pb_rails("detail", props: {
|
2
|
+
bold: true,
|
3
|
+
text: "I am a bold detail kit"
|
4
|
+
}) %>
|
5
|
+
|
6
|
+
<%= pb_rails("detail", props: {
|
7
|
+
bold: true,
|
8
|
+
color: "default",
|
9
|
+
text: "I am a bold detail kit"
|
10
|
+
}) %>
|
11
|
+
|
12
|
+
<%= pb_rails("detail", props: {
|
13
|
+
bold: true,
|
14
|
+
color: "lighter",
|
15
|
+
text: "I am a bold detail kit"
|
16
|
+
}) %>
|
17
|
+
|
18
|
+
<%= pb_rails("detail", props: {
|
19
|
+
bold: true,
|
20
|
+
color: "link",
|
21
|
+
text: "I am a bold detail kit"
|
22
|
+
}) %>
|
23
|
+
|
24
|
+
<%= pb_rails("detail", props: {
|
25
|
+
bold: true,
|
26
|
+
color: "error",
|
27
|
+
text: "I am a bold detail kit"
|
28
|
+
}) %>
|
29
|
+
|
30
|
+
<%= pb_rails("detail", props: {
|
31
|
+
bold: true,
|
32
|
+
color: "success",
|
33
|
+
text: "I am a bold detail kit"
|
34
|
+
}) %>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Detail } from '../..'
|
3
|
+
|
4
|
+
const DetailBold = (props) => (
|
5
|
+
<div>
|
6
|
+
<Detail
|
7
|
+
bold
|
8
|
+
text="I am a bold detail kit"
|
9
|
+
{...props}
|
10
|
+
/>
|
11
|
+
|
12
|
+
<Detail
|
13
|
+
bold
|
14
|
+
color="default"
|
15
|
+
text="I am a bold detail kit"
|
16
|
+
{...props}
|
17
|
+
/>
|
18
|
+
|
19
|
+
<Detail
|
20
|
+
bold
|
21
|
+
color="lighter"
|
22
|
+
text="I am a bold detail kit"
|
23
|
+
{...props}
|
24
|
+
/>
|
25
|
+
|
26
|
+
<Detail
|
27
|
+
bold
|
28
|
+
color="link"
|
29
|
+
text="I am a bold detail kit"
|
30
|
+
{...props}
|
31
|
+
/>
|
32
|
+
|
33
|
+
<Detail
|
34
|
+
bold
|
35
|
+
color="error"
|
36
|
+
text="I am a bold detail kit"
|
37
|
+
{...props}
|
38
|
+
/>
|
39
|
+
|
40
|
+
<Detail
|
41
|
+
bold
|
42
|
+
color="success"
|
43
|
+
text="I am a bold detail kit"
|
44
|
+
{...props}
|
45
|
+
/>
|
46
|
+
</div>
|
47
|
+
)
|
48
|
+
|
49
|
+
export default DetailBold
|
@@ -0,0 +1 @@
|
|
1
|
+
Use the `bold` prop to strongly emphasis your text.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= pb_rails("detail", props: {
|
2
|
+
text: "I am a detail kit",
|
3
|
+
color: "default"
|
4
|
+
}) %>
|
5
|
+
|
6
|
+
<%= pb_rails("detail", props: {
|
7
|
+
text: "I am a detail kit",
|
8
|
+
color: "lighter"
|
9
|
+
}) %>
|
10
|
+
|
11
|
+
<%= pb_rails("detail", props: {
|
12
|
+
text: "I am a detail kit",
|
13
|
+
color: "link"
|
14
|
+
}) %>
|
15
|
+
|
16
|
+
<%= pb_rails("detail", props: {
|
17
|
+
text: "I am a detail kit",
|
18
|
+
color: "error"
|
19
|
+
}) %>
|
20
|
+
|
21
|
+
<%= pb_rails("detail", props: {
|
22
|
+
text: "I am a detail kit",
|
23
|
+
color: "success"
|
24
|
+
}) %>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Detail } from '../..'
|
3
|
+
|
4
|
+
const DetailColors = (props) => (
|
5
|
+
<div>
|
6
|
+
<Detail
|
7
|
+
color="default"
|
8
|
+
text="I am a detail kit"
|
9
|
+
{...props}
|
10
|
+
/>
|
11
|
+
|
12
|
+
<Detail
|
13
|
+
color="lighter"
|
14
|
+
text="I am a detail kit"
|
15
|
+
{...props}
|
16
|
+
/>
|
17
|
+
|
18
|
+
<Detail
|
19
|
+
color="link"
|
20
|
+
text="I am a detail kit"
|
21
|
+
{...props}
|
22
|
+
/>
|
23
|
+
|
24
|
+
<Detail
|
25
|
+
color="error"
|
26
|
+
text="I am a detail kit"
|
27
|
+
{...props}
|
28
|
+
/>
|
29
|
+
|
30
|
+
<Detail
|
31
|
+
color="success"
|
32
|
+
text="I am a detail kit"
|
33
|
+
{...props}
|
34
|
+
/>
|
35
|
+
</div>
|
36
|
+
)
|
37
|
+
|
38
|
+
export default DetailColors
|
@@ -0,0 +1,6 @@
|
|
1
|
+
##### Prop
|
2
|
+
This kit uses the `light` color by default, and can be replaced with colors below:
|
3
|
+
|
4
|
+
`default` `lighter` `link` `error` `success`
|
5
|
+
|
6
|
+
These colors are not for standard usage. You can use the `color` prop to make fixes if colors are not appearing properly, but consult your UX team members if you are deciding to implement it.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= pb_rails("detail") do %>
|
2
|
+
<b>This text is using the <%="<b>"%> tag.</b>
|
3
|
+
<br />
|
4
|
+
<br />
|
5
|
+
<strong>This text is using the <%="<strong>"%> tag.</strong>
|
6
|
+
<br />
|
7
|
+
<br />
|
8
|
+
<a>This text is using the <%="<a>"%> tag.</a>
|
9
|
+
<br />
|
10
|
+
<br />
|
11
|
+
<i>This text is using the <%="<i>"%> tag.</i>
|
12
|
+
<br />
|
13
|
+
<br />
|
14
|
+
This <em>word</em> is using an <%="<em>"%> tag.
|
15
|
+
<br />
|
16
|
+
<br />
|
17
|
+
<small>This text is using the <%="<small>"%> tag.</small>
|
18
|
+
<br />
|
19
|
+
<br />
|
20
|
+
<u>This text is using the <%="<u>"%> tag.</u>
|
21
|
+
<br />
|
22
|
+
<% end %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Detail } from '../..'
|
3
|
+
|
4
|
+
const DetailStyled = (props) => (
|
5
|
+
<>
|
6
|
+
<Detail {...props}>
|
7
|
+
<b>{"This text is using the <b> tag."}</b>
|
8
|
+
<br />
|
9
|
+
<br />
|
10
|
+
<strong>{"This text is using the <strong> tag."}</strong>
|
11
|
+
<br />
|
12
|
+
<br />
|
13
|
+
<a>{"This text is using the <a> tag."}</a>
|
14
|
+
<br />
|
15
|
+
<br />
|
16
|
+
<i>{"This text is using the <i> tag."}</i>
|
17
|
+
<br />
|
18
|
+
<br />
|
19
|
+
{"This "}<em>{"word"}</em>{" is using an <em> tag."}
|
20
|
+
<br />
|
21
|
+
<br />
|
22
|
+
<small>{"This text is using the <small> tag."}</small>
|
23
|
+
<br />
|
24
|
+
<br />
|
25
|
+
<u>{"This text is using the <u> tag."}</u>
|
26
|
+
<br />
|
27
|
+
<br />
|
28
|
+
</Detail>
|
29
|
+
</>
|
30
|
+
)
|
31
|
+
|
32
|
+
export default DetailStyled
|