playbook_ui 14.9.0.pre.alpha.play1703errorstatealignment4889 → 14.9.0.pre.alpha.play1742globalheightfixes4925
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +53 -49
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.html.erb +29 -36
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +9 -4
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +2 -2
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +2 -2
- data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +2 -2
- data/app/pb_kits/playbook/pb_form_group/_form_group.scss +3 -15
- data/app/pb_kits/playbook/pb_layout/_layout.tsx +30 -11
- data/app/pb_kits/playbook/pb_link/_link.scss +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +75 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +108 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.md +2 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +94 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.md +0 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.jsx +83 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md +3 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.jsx +120 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/example.yml +5 -0
- data/app/pb_kits/playbook/pb_table/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_table/styles/_all.scss +2 -1
- data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +35 -0
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +106 -1
- data/dist/chunks/{_typeahead-4sdDeM4X.js → _typeahead-D-DFD48D.js} +3 -3
- data/dist/chunks/_weekday_stacked-CCO9Egzl.js +45 -0
- data/dist/chunks/{lib-CVPInSs5.js → lib-CuCy3_xO.js} +3 -3
- data/dist/chunks/{pb_form_validation-CDLJ5eAG.js → pb_form_validation-D37k10a0.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +17 -6
- data/dist/chunks/_weekday_stacked-CblTZ9cd.js +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65c48523db92e25026da29dafc1e1d48373dd867a8d467a8a57eaaae093f26a0
|
4
|
+
data.tar.gz: b6044dcebf4a60671de1db8ed4a6252426679eceb2946a6eea71b4b944710dae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c60478ac6a44d1ac360a61be53aace6afe588dc0f1ac47d595b0344ad08dbf1b49e3b76a8c2c7fbf6378dd90832f6244534671a389927faffac43044eac87b74
|
7
|
+
data.tar.gz: a8b5110687957cd2879660f4617e1ed2b764d905d0bae7e17543c31dfb8f406d7704cd43fc18bcb466d893e89d28e408f2d35d9b6794557861fe813099138fa9
|
@@ -1,66 +1,70 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
|
2
|
+
import ReactDOMServer from 'react-dom/server'
|
3
3
|
import BarGraph from '../_bar_graph'
|
4
|
+
import Icon from '../../pb_icon/_icon'
|
5
|
+
|
6
|
+
const chartData = [
|
7
|
+
{
|
8
|
+
name: 'Role',
|
9
|
+
data: [0, 200, 300, 654, 656],
|
10
|
+
},
|
11
|
+
{
|
12
|
+
name: 'Company',
|
13
|
+
data: [150, 524, 320, 440, 500],
|
14
|
+
},
|
15
|
+
]
|
4
16
|
|
5
|
-
const
|
6
|
-
|
7
|
-
|
8
|
-
}
|
9
|
-
|
10
|
-
|
11
|
-
}
|
12
|
-
name: 'Sales & Distribution',
|
13
|
-
data: [3387, 743, 1344, 434, 440],
|
14
|
-
}, {
|
15
|
-
name: 'Project Development',
|
16
|
-
data: [3227, 878, 999, 780, 1000],
|
17
|
-
}, {
|
18
|
-
name: 'Other',
|
19
|
-
data: [1111, 677, 3245, 500, 200],
|
20
|
-
}]
|
17
|
+
const renderIcon = (iconName, color) => {
|
18
|
+
return ReactDOMServer.renderToStaticMarkup(
|
19
|
+
<Icon
|
20
|
+
color={color}
|
21
|
+
icon={iconName}
|
22
|
+
/>)
|
23
|
+
};
|
21
24
|
|
22
25
|
const barGraphOptions = {
|
23
|
-
|
24
|
-
|
25
|
-
style: {
|
26
|
-
color: "red"
|
27
|
-
}
|
26
|
+
yAxis: {
|
27
|
+
tickInterval: 5,
|
28
28
|
},
|
29
29
|
xAxis: {
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
}
|
49
|
-
|
30
|
+
categories: ['1', '2', '3', '4', '5'],
|
31
|
+
labels: {
|
32
|
+
useHTML: true,
|
33
|
+
formatter: function () {
|
34
|
+
switch (this.value) {
|
35
|
+
case '1':
|
36
|
+
return `${renderIcon('frown', 'error')}`;
|
37
|
+
case '2':
|
38
|
+
return `${renderIcon('frown', 'warning')}`;
|
39
|
+
case '3':
|
40
|
+
return `${renderIcon('frown-open', 'neutral')}`;
|
41
|
+
case '4':
|
42
|
+
return `${renderIcon('smile', 'category_7')}`;
|
43
|
+
case '5':
|
44
|
+
return `${renderIcon('smile-beam', 'success')}`;
|
45
|
+
default:
|
46
|
+
return ''
|
47
|
+
}
|
48
|
+
},
|
49
|
+
style: {
|
50
|
+
fontSize: '1.4em',
|
51
|
+
},
|
52
|
+
y: 42,
|
53
|
+
},
|
54
|
+
},
|
55
|
+
legend: {
|
56
|
+
itemMarginTop: 62,
|
57
|
+
},
|
50
58
|
}
|
51
59
|
|
52
|
-
const BarGraphCustom = (
|
60
|
+
const BarGraphCustom = () => (
|
53
61
|
<div>
|
54
62
|
<BarGraph
|
55
|
-
axisTitle="Number of Employees"
|
56
63
|
chartData={chartData}
|
57
64
|
customOptions={barGraphOptions}
|
58
|
-
id="
|
59
|
-
|
65
|
+
id="happiness-dashboard"
|
66
|
+
legend
|
60
67
|
title="Bar Graph with Custom Overrides"
|
61
|
-
xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
|
62
|
-
yAxisMin={0}
|
63
|
-
{...props}
|
64
68
|
/>
|
65
69
|
</div>
|
66
70
|
)
|
@@ -1,49 +1,42 @@
|
|
1
1
|
<% data = [{
|
2
|
-
|
3
|
-
|
2
|
+
name: 'Role',
|
3
|
+
data: [0, 200, 300, 654, 656],
|
4
4
|
}, {
|
5
|
-
|
6
|
-
|
7
|
-
}, {
|
8
|
-
name: 'Sales & Distribution',
|
9
|
-
data: [3387,743,1344,434,440,]
|
10
|
-
}, {
|
11
|
-
name: 'Project Development',
|
12
|
-
data: [3227,878,999,780,1000]
|
13
|
-
}, {
|
14
|
-
name: 'Other',
|
15
|
-
data: [1111,677,3245,500,200]
|
5
|
+
name: 'Company',
|
6
|
+
data: [150, 524, 320, 440, 500],
|
16
7
|
}] %>
|
17
8
|
|
18
9
|
<% bar_graph_options = {
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
10
|
+
customOptions: {
|
11
|
+
yAxis: {
|
12
|
+
tickInterval: 5,
|
13
|
+
},
|
14
|
+
xAxis: {
|
15
|
+
categories: [
|
16
|
+
raw(pb_rails("icon", props: { icon: "frown", color: "error", size: "2x" })),
|
17
|
+
raw(pb_rails("icon", props: { icon: "frown", color: "warning", size: "2x" })),
|
18
|
+
raw(pb_rails("icon", props: { icon: "frown-open", color: "neutral", size: "2x" })),
|
19
|
+
raw(pb_rails("icon", props: { icon: "smile", color: "category_7", size: "2x" })),
|
20
|
+
raw(pb_rails("icon", props: { icon: "smile-beam", color: "success", size: "2x" }))
|
21
|
+
],
|
22
|
+
labels: {
|
23
|
+
useHTML: true,
|
24
|
+
sytle: {
|
25
|
+
fontSize: '1.4em',
|
25
26
|
},
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
],
|
34
|
-
labels: {
|
35
|
-
useHTML: true,
|
36
|
-
}
|
37
|
-
}
|
38
|
-
}
|
27
|
+
y: 42,
|
28
|
+
},
|
29
|
+
},
|
30
|
+
legend: {
|
31
|
+
itemMarginTop: 62,
|
32
|
+
},
|
33
|
+
}
|
39
34
|
} %>
|
40
35
|
|
41
36
|
<%= pb_rails("bar_graph", props: {
|
42
|
-
axis_title: 'Number of Employees',
|
43
37
|
chart_data: data,
|
44
38
|
id: "bar-default",
|
45
|
-
|
46
|
-
subtitle: 'Subtitle to replace',
|
39
|
+
legend: true,
|
47
40
|
title: 'Bar Graph with Custom Overrides',
|
48
41
|
custom_options: bar_graph_options
|
49
|
-
}) %>
|
42
|
+
}) %>
|
@@ -2,7 +2,7 @@ import React, { useEffect, ReactElement } from 'react'
|
|
2
2
|
import classnames from 'classnames'
|
3
3
|
import useCollapsible from './useCollapsible'
|
4
4
|
|
5
|
-
import { globalProps, globalInlineProps } from '../utilities/globalProps'
|
5
|
+
import { globalProps, globalInlineProps, GlobalProps } from '../utilities/globalProps'
|
6
6
|
import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
|
7
7
|
|
8
8
|
import CollapsibleContent from './child_kits/CollapsibleContent'
|
@@ -32,6 +32,7 @@ type CollapsibleProps = {
|
|
32
32
|
onClick?: ()=> void,
|
33
33
|
htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
|
34
34
|
id?: string,
|
35
|
+
tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'tr' | 'th' | 'td' | 'thead' | 'col',
|
35
36
|
}
|
36
37
|
|
37
38
|
const Collapsible = ({
|
@@ -47,8 +48,9 @@ const Collapsible = ({
|
|
47
48
|
onIconClick,
|
48
49
|
onClick,
|
49
50
|
id,
|
51
|
+
tag = 'div',
|
50
52
|
...props
|
51
|
-
}: CollapsibleProps): React.ReactElement => {
|
53
|
+
}: CollapsibleProps & GlobalProps): React.ReactElement => {
|
52
54
|
const [isCollapsed, toggle, setIsCollapsed] = useCollapsible(collapsed)
|
53
55
|
|
54
56
|
useEffect(()=> {
|
@@ -76,9 +78,12 @@ const Collapsible = ({
|
|
76
78
|
className
|
77
79
|
)
|
78
80
|
const dynamicInlineProps = globalInlineProps(props)
|
81
|
+
|
82
|
+
const Tag: React.ReactElement | any = `${tag}`;
|
83
|
+
|
79
84
|
return (
|
80
85
|
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, toggle, icon, iconSize, iconColor, onIconClick, onClick }}>
|
81
|
-
<
|
86
|
+
<Tag
|
82
87
|
{...ariaProps}
|
83
88
|
{...dataProps}
|
84
89
|
{...htmlProps}
|
@@ -96,7 +101,7 @@ const Collapsible = ({
|
|
96
101
|
<CollapsibleContent {...contentProps}>
|
97
102
|
{contentChildren}
|
98
103
|
</CollapsibleContent>
|
99
|
-
</
|
104
|
+
</Tag>
|
100
105
|
</CollapsibleContext.Provider>
|
101
106
|
)
|
102
107
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import classnames from 'classnames'
|
2
2
|
import React, { useContext, useRef, useEffect } from 'react'
|
3
3
|
import { buildCss } from '../../utilities/props'
|
4
|
-
import { globalProps } from '../../utilities/globalProps'
|
4
|
+
import { globalProps, GlobalProps } from '../../utilities/globalProps'
|
5
5
|
import { hideElement, showElement } from '../_helper_functions'
|
6
6
|
|
7
7
|
import CollapsibleContext from '../context'
|
@@ -15,7 +15,7 @@ const CollapsibleContent = ({
|
|
15
15
|
children,
|
16
16
|
className,
|
17
17
|
...props
|
18
|
-
}: CollapsibleContentProps): React.ReactElement => {
|
18
|
+
}: CollapsibleContentProps & GlobalProps): React.ReactElement => {
|
19
19
|
const context: {[key: string]: boolean | string} = useContext(CollapsibleContext)
|
20
20
|
const contentCSS = buildCss('pb_collapsible_content_kit')
|
21
21
|
const contentSpacing = globalProps(props)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import classnames from 'classnames'
|
4
4
|
import React, { useContext } from 'react'
|
5
5
|
import { buildCss } from '../../utilities/props'
|
6
|
-
import { globalProps } from '../../utilities/globalProps'
|
6
|
+
import { globalProps, GlobalProps } from '../../utilities/globalProps'
|
7
7
|
|
8
8
|
import Flex from '../../pb_flex/_flex'
|
9
9
|
import FlexItem from '../../pb_flex/_flex_item'
|
@@ -25,7 +25,7 @@ const CollapsibleMain = ({
|
|
25
25
|
className,
|
26
26
|
cursor = 'pointer',
|
27
27
|
...props
|
28
|
-
}: CollapsibleMainProps): React.ReactElement=> {
|
28
|
+
}: CollapsibleMainProps & GlobalProps): React.ReactElement=> {
|
29
29
|
const {collapsed, toggle, icon, iconSize, iconColor, onIconClick, onClick}: any = useContext(CollapsibleContext)
|
30
30
|
const mainCSS = buildCss('pb_collapsible_main_kit')
|
31
31
|
const mainSpacing = globalProps(props, { cursor })
|
@@ -287,7 +287,6 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
287
287
|
{...ariaProps}
|
288
288
|
{...dataProps}
|
289
289
|
{...htmlProps}
|
290
|
-
style={dynamicInlineProps}
|
291
290
|
className={classnames(drawerClassNames.base, {
|
292
291
|
[drawerClassNames.afterOpen]:
|
293
292
|
animationState === "afterOpen",
|
@@ -296,6 +295,7 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
296
295
|
})}
|
297
296
|
id={id}
|
298
297
|
onClick={(e) => e.stopPropagation()}
|
298
|
+
style={dynamicInlineProps}
|
299
299
|
>
|
300
300
|
{children}
|
301
301
|
</div>
|
@@ -306,7 +306,6 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
306
306
|
{...dataProps}
|
307
307
|
{...htmlProps}
|
308
308
|
className={classes}
|
309
|
-
style={dynamicInlineProps}
|
310
309
|
>
|
311
310
|
{isModalVisible && (
|
312
311
|
<div
|
@@ -327,6 +326,7 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
327
326
|
animationState === "beforeClose",
|
328
327
|
})}
|
329
328
|
onClick={(e) => e.stopPropagation()}
|
329
|
+
style={dynamicInlineProps}
|
330
330
|
>
|
331
331
|
{children}
|
332
332
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
[class^=pb_form_group_kit] {
|
2
2
|
display: inline-flex;
|
3
3
|
flex-direction: row;
|
4
|
-
align-items: flex-
|
4
|
+
align-items: flex-end;
|
5
5
|
justify-content: flex-start;
|
6
6
|
|
7
7
|
&[class*=_full] {
|
@@ -12,18 +12,6 @@
|
|
12
12
|
}
|
13
13
|
}
|
14
14
|
|
15
|
-
&:has(.pb_text_input_kit):has(.pb_text_input_kit_label){
|
16
|
-
align-items: flex-end;
|
17
|
-
}
|
18
|
-
|
19
|
-
&:has(.pb_text_input_kit.error):has(.pb_text_input_kit_label){
|
20
|
-
align-items: center;
|
21
|
-
}
|
22
|
-
|
23
|
-
&:has(.pb_phone_number_input):has(.pb_text_input_kit.error):has(.pb_text_input_kit_label){
|
24
|
-
align-items: center;
|
25
|
-
}
|
26
|
-
|
27
15
|
& [class^=pb_text_input_kit] .text_input_wrapper,
|
28
16
|
& [class^=pb_date_picker_kit] .input_wrapper,
|
29
17
|
& [class^=pb_select] {
|
@@ -39,7 +27,7 @@
|
|
39
27
|
border-bottom-right-radius: 0;
|
40
28
|
border-top-right-radius: 0;
|
41
29
|
border-right-width: 0;
|
42
|
-
|
30
|
+
|
43
31
|
&:focus {
|
44
32
|
outline: $primary solid 1px;
|
45
33
|
outline-offset: -1px;
|
@@ -162,7 +150,7 @@
|
|
162
150
|
& > [class^=pb_selectable_card_kit] input[type="checkbox"]:not(:checked) ~ label, [class^=pb_selectable_card_kit] input[type="radio"]:not(:checked) ~ label {
|
163
151
|
&:hover {
|
164
152
|
border-right-color: $slate;
|
165
|
-
}
|
153
|
+
}
|
166
154
|
}
|
167
155
|
|
168
156
|
& > [class^=pb_selectable_card_kit]:not(:first-child) label {
|
@@ -24,34 +24,37 @@ type LayoutPropTypes = {
|
|
24
24
|
type LayoutSideProps = {
|
25
25
|
children: React.ReactNode[] | React.ReactNode,
|
26
26
|
className?: string,
|
27
|
-
}
|
27
|
+
} & GlobalProps
|
28
28
|
|
29
29
|
type LayoutBodyProps = {
|
30
30
|
children: React.ReactNode[] | React.ReactNode,
|
31
31
|
className?: string,
|
32
|
-
}
|
32
|
+
} & GlobalProps
|
33
33
|
|
34
34
|
type LayoutItemProps = {
|
35
35
|
children: React.ReactNode[] | React.ReactNode,
|
36
36
|
className?: string,
|
37
37
|
size?: "sm" | "md" | "lg"
|
38
|
-
}
|
38
|
+
} & GlobalProps
|
39
39
|
|
40
40
|
type LayoutHeaderProps = {
|
41
41
|
children: React.ReactNode[] | React.ReactNode,
|
42
42
|
className?: string,
|
43
|
-
}
|
43
|
+
} & GlobalProps
|
44
44
|
|
45
45
|
type LayoutFooterProps = {
|
46
46
|
children: React.ReactNode[] | React.ReactNode,
|
47
47
|
className?: string,
|
48
|
-
}
|
48
|
+
} & GlobalProps
|
49
49
|
|
50
|
-
// Side component
|
51
50
|
const Side = (props: LayoutSideProps) => {
|
52
51
|
const { children, className } = props
|
52
|
+
const dynamicInlineProps = globalInlineProps(props)
|
53
53
|
return (
|
54
|
-
<div
|
54
|
+
<div
|
55
|
+
className={classnames('layout_sidebar', globalProps(props), className)}
|
56
|
+
style={dynamicInlineProps}
|
57
|
+
>
|
55
58
|
{children}
|
56
59
|
</div>
|
57
60
|
)
|
@@ -60,8 +63,12 @@ const Side = (props: LayoutSideProps) => {
|
|
60
63
|
// Body component
|
61
64
|
const Body = (props: LayoutBodyProps) => {
|
62
65
|
const { children, className } = props
|
66
|
+
const dynamicInlineProps = globalInlineProps(props)
|
63
67
|
return (
|
64
|
-
<div
|
68
|
+
<div
|
69
|
+
className={classnames('layout_body', globalProps(props), className)}
|
70
|
+
style={dynamicInlineProps}
|
71
|
+
>
|
65
72
|
{children}
|
66
73
|
</div>
|
67
74
|
)
|
@@ -71,8 +78,12 @@ const Body = (props: LayoutBodyProps) => {
|
|
71
78
|
const Item = (props: LayoutItemProps) => {
|
72
79
|
const { children, className, size = 'sm' } = props
|
73
80
|
const sizeClass = `size_${size}`
|
81
|
+
const dynamicInlineProps = globalInlineProps(props)
|
74
82
|
return (
|
75
|
-
<div
|
83
|
+
<div
|
84
|
+
className={classnames('layout_item', sizeClass, globalProps(props), className)}
|
85
|
+
style={dynamicInlineProps}
|
86
|
+
>
|
76
87
|
{children}
|
77
88
|
</div>
|
78
89
|
)
|
@@ -81,8 +92,12 @@ const Item = (props: LayoutItemProps) => {
|
|
81
92
|
// Header component
|
82
93
|
const Header = (props: LayoutHeaderProps) => {
|
83
94
|
const { children, className } = props
|
95
|
+
const dynamicInlineProps = globalInlineProps(props)
|
84
96
|
return (
|
85
|
-
<div
|
97
|
+
<div
|
98
|
+
className={classnames('layout_header', globalProps(props), className)}
|
99
|
+
style={dynamicInlineProps}
|
100
|
+
>
|
86
101
|
{children}
|
87
102
|
</div>
|
88
103
|
)
|
@@ -91,8 +106,12 @@ const Header = (props: LayoutHeaderProps) => {
|
|
91
106
|
// Footer component
|
92
107
|
const Footer = (props: LayoutFooterProps) => {
|
93
108
|
const { children, className } = props
|
109
|
+
const dynamicInlineProps = globalInlineProps(props)
|
94
110
|
return (
|
95
|
-
<div
|
111
|
+
<div
|
112
|
+
className={classnames('layout_footer', globalProps(props), className)}
|
113
|
+
style={dynamicInlineProps}
|
114
|
+
>
|
96
115
|
{children}
|
97
116
|
</div>
|
98
117
|
)
|
@@ -17,7 +17,7 @@
|
|
17
17
|
outline-offset: 2px;
|
18
18
|
}
|
19
19
|
&:visited {
|
20
|
-
color: $
|
20
|
+
color: darken($primary_action, 10%);
|
21
21
|
}
|
22
22
|
&.dark {
|
23
23
|
@include pb_link($active_dark);
|
@@ -34,7 +34,7 @@
|
|
34
34
|
}
|
35
35
|
|
36
36
|
&:visited {
|
37
|
-
color: $
|
37
|
+
color: darken($primary_action, 10%);
|
38
38
|
}
|
39
39
|
}
|
40
40
|
}
|
@@ -48,7 +48,7 @@
|
|
48
48
|
}
|
49
49
|
|
50
50
|
&:visited {
|
51
|
-
color: $
|
51
|
+
color: darken($primary_action, 10%);
|
52
52
|
}
|
53
53
|
}
|
54
54
|
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Table, Icon, Body, Card } from 'playbook-ui'
|
3
|
+
|
4
|
+
const TableWithCollapsible = (props) => {
|
5
|
+
|
6
|
+
const Content = () => {
|
7
|
+
return (
|
8
|
+
<Card
|
9
|
+
borderNone
|
10
|
+
borderRadius="none"
|
11
|
+
padding="md"
|
12
|
+
{...props}
|
13
|
+
>
|
14
|
+
<Body {...props}>Nested content inside a Table Row</Body>
|
15
|
+
</Card>
|
16
|
+
);
|
17
|
+
};
|
18
|
+
|
19
|
+
return (
|
20
|
+
<Table
|
21
|
+
size="sm"
|
22
|
+
{...props}
|
23
|
+
>
|
24
|
+
<Table.Head>
|
25
|
+
<Table.Row>
|
26
|
+
<Table.Header>{'Column 1'}</Table.Header>
|
27
|
+
<Table.Header>{'Column 2'}</Table.Header>
|
28
|
+
<Table.Header>{'Column 3'}</Table.Header>
|
29
|
+
<Table.Header>{'Column 4'}</Table.Header>
|
30
|
+
<Table.Header>{'Column 5'}</Table.Header>
|
31
|
+
<Table.Header>{''}</Table.Header>
|
32
|
+
</Table.Row>
|
33
|
+
|
34
|
+
</Table.Head>
|
35
|
+
<Table.Body>
|
36
|
+
<Table.Row collapsible
|
37
|
+
collapsibleContent={<Content/>}
|
38
|
+
{...props}
|
39
|
+
>
|
40
|
+
<Table.Cell>{'Value 1'}</Table.Cell>
|
41
|
+
<Table.Cell>{'Value 2'}</Table.Cell>
|
42
|
+
<Table.Cell>{'Value 3'}</Table.Cell>
|
43
|
+
<Table.Cell>{'Value 4'}</Table.Cell>
|
44
|
+
<Table.Cell>{'Value 5'}</Table.Cell>
|
45
|
+
<Table.Cell textAlign="right">{
|
46
|
+
<Icon
|
47
|
+
color="primary"
|
48
|
+
fixedWidth
|
49
|
+
icon="chevron-down"
|
50
|
+
/>}
|
51
|
+
</Table.Cell>
|
52
|
+
|
53
|
+
</Table.Row>
|
54
|
+
<Table.Row>
|
55
|
+
<Table.Cell>{'Value 1'}</Table.Cell>
|
56
|
+
<Table.Cell>{'Value 2'}</Table.Cell>
|
57
|
+
<Table.Cell>{'Value 3'}</Table.Cell>
|
58
|
+
<Table.Cell>{'Value 4'}</Table.Cell>
|
59
|
+
<Table.Cell>{'Value 5'}</Table.Cell>
|
60
|
+
<Table.Cell>{''}</Table.Cell>
|
61
|
+
</Table.Row>
|
62
|
+
<Table.Row>
|
63
|
+
<Table.Cell>{'Value 1'}</Table.Cell>
|
64
|
+
<Table.Cell>{'Value 2'}</Table.Cell>
|
65
|
+
<Table.Cell>{'Value 3'}</Table.Cell>
|
66
|
+
<Table.Cell>{'Value 4'}</Table.Cell>
|
67
|
+
<Table.Cell>{'Value 5'}</Table.Cell>
|
68
|
+
<Table.Cell>{''}</Table.Cell>
|
69
|
+
</Table.Row>
|
70
|
+
</Table.Body>
|
71
|
+
</Table>
|
72
|
+
)
|
73
|
+
}
|
74
|
+
|
75
|
+
export default TableWithCollapsible
|
@@ -0,0 +1 @@
|
|
1
|
+
The `collapsible` prop can be used on any Table Row to add a collapsible area. Use the additional `collapsibleContent` prop to add any content to the collapsible Row.
|