playbook_ui 12.37.0.pre.alpha.PLAY951collapsiblenav31062 → 12.37.0.pre.alpha.PLAYaddingdatapropselectkit1071
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/pb_collapsible/_collapsible.scss +0 -6
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +3 -3
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +9 -10
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_color.jsx +2 -2
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +2 -2
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +8 -4
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.md +1 -1
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_size.jsx +5 -5
- data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +6 -7
- data/app/pb_kits/playbook/pb_collapsible/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_date/_date.tsx +7 -8
- data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +2 -2
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +29 -5
- data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +2 -2
- data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +5 -5
- data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +45 -31
- data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.tsx +5 -3
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +24 -21
- data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +1 -1
- data/app/pb_kits/playbook/pb_date_time/dateTime.test.js +1 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +2 -2
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +1 -1
- data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.tsx +6 -8
- data/app/pb_kits/playbook/pb_kit/dateTime.ts +146 -63
- data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +52 -31
- data/app/pb_kits/playbook/pb_message/_message.tsx +24 -24
- data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +16 -141
- data/app/pb_kits/playbook/pb_nav/_item.tsx +22 -33
- data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +6 -6
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +58 -79
- data/app/pb_kits/playbook/pb_nav/docs/{_collapsible_nav_emphasize.jsx → _collapsible_nav_custom_icons.jsx} +3 -5
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +3 -5
- data/app/pb_kits/playbook/pb_nav/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_nav/item.html.erb +4 -5
- data/app/pb_kits/playbook/pb_nav/item.rb +2 -17
- data/app/pb_kits/playbook/pb_select/docs/_select_data_attributes.html.erb +24 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_data_attributes.md +1 -0
- data/app/pb_kits/playbook/pb_select/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_select/select.html.erb +1 -1
- data/app/pb_kits/playbook/pb_time/_time.tsx +9 -11
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +46 -49
- data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +4 -6
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +11 -11
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +8 -11
- data/dist/playbook-rails.js +7 -7
- data/lib/playbook/version.rb +1 -1
- metadata +5 -11
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.jsx +0 -75
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.md +0 -3
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +0 -120
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.md +0 -1
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom.jsx +0 -57
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom.md +0 -1
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_emphasize.html.erb +0 -23
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_emphasize.md +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c4ed389de4d3d4fb6707f7b6d320cb5fab04f242dd3a85dd13d36fd27bed1bb
|
4
|
+
data.tar.gz: 730de6094c4243b515b6c07950896fff797c699b65214d691ba5cfe116137e59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 999f9f2a0a7b74a1db4a819b61dceef4a283fb3c2965185475cca1c73c0fdc071013bde30b9dd0b6df7a1cee7824b1085a822969ada3d299a8a130b8317d545c
|
7
|
+
data.tar.gz: 318dbf4af0bea085d7ca027bb6c5da323d73655f33d2704f3479c92a5694a61723bfabc57262bb68b4fb4ae0975a5d492ceee6d63c9f9151862dd1ab2e0c7de4
|
@@ -20,7 +20,7 @@ type CollapsibleProps = {
|
|
20
20
|
icon?: string | string[],
|
21
21
|
iconColor?: 'default' | 'light' | 'lighter' | 'link' | 'error' | 'success',
|
22
22
|
iconSize?: IconSizes,
|
23
|
-
|
23
|
+
iconClick?: ()=> void,
|
24
24
|
onClick?: ()=> void,
|
25
25
|
id?: string,
|
26
26
|
}
|
@@ -36,7 +36,7 @@ const Collapsible = ({
|
|
36
36
|
icon,
|
37
37
|
iconColor = 'default',
|
38
38
|
iconSize,
|
39
|
-
|
39
|
+
iconClick,
|
40
40
|
onClick,
|
41
41
|
id,
|
42
42
|
...props
|
@@ -66,7 +66,7 @@ const Collapsible = ({
|
|
66
66
|
className
|
67
67
|
)
|
68
68
|
return (
|
69
|
-
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, toggle, icon, iconSize, iconColor,
|
69
|
+
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, toggle, icon, iconSize, iconColor, iconClick, onClick }}>
|
70
70
|
<div
|
71
71
|
{...ariaProps}
|
72
72
|
{...dataProps}
|
@@ -33,7 +33,6 @@ type CollapsibleMainProps = {
|
|
33
33
|
children: React.ReactNode[] | React.ReactNode,
|
34
34
|
className?: string,
|
35
35
|
cursor?: string,
|
36
|
-
dark?: boolean,
|
37
36
|
onClick?: ()=> void
|
38
37
|
}
|
39
38
|
type IconColors = "default" | "light" | "lighter" | "link" | "error" | "success"
|
@@ -43,10 +42,10 @@ type IconProps = {
|
|
43
42
|
icon?: string[] | string
|
44
43
|
iconColor?: IconColors
|
45
44
|
iconSize?: IconSizes
|
46
|
-
|
45
|
+
iconClick?: ()=> void
|
47
46
|
}
|
48
47
|
|
49
|
-
const ToggleIcon = ({ collapsed, icon, iconSize, iconColor,
|
48
|
+
const ToggleIcon = ({ collapsed, icon, iconSize, iconColor, iconClick }: IconProps) => {
|
50
49
|
const color = colorMap[iconColor]
|
51
50
|
|
52
51
|
const showIcon = (icon: string |string[]) => {
|
@@ -57,9 +56,9 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor, onIconClick }: IconP
|
|
57
56
|
}
|
58
57
|
|
59
58
|
const handleIconClick = (e:any) => {
|
60
|
-
if (
|
59
|
+
if (iconClick) {
|
61
60
|
e.stopPropagation();
|
62
|
-
|
61
|
+
iconClick()
|
63
62
|
}
|
64
63
|
}
|
65
64
|
|
@@ -94,18 +93,18 @@ const CollapsibleMain = ({
|
|
94
93
|
cursor = 'pointer',
|
95
94
|
...props
|
96
95
|
}: CollapsibleMainProps): React.ReactElement=> {
|
97
|
-
const {collapsed, toggle, icon, iconSize, iconColor,
|
96
|
+
const {collapsed, toggle, icon, iconSize, iconColor, iconClick, onClick}: any = useContext(CollapsibleContext)
|
98
97
|
const mainCSS = buildCss('pb_collapsible_main_kit')
|
99
98
|
const mainSpacing = globalProps(props, { cursor })
|
100
99
|
|
101
|
-
const handleCollapsibleClick = () => {
|
100
|
+
const handleCollapsibleClick = (e:any) => {
|
102
101
|
toggle();
|
103
|
-
onClick && onClick()
|
102
|
+
onClick && onClick(e)
|
104
103
|
}
|
105
104
|
|
106
105
|
return (
|
107
106
|
<div className={classnames(mainCSS, className, mainSpacing)}>
|
108
|
-
<div onClick={handleCollapsibleClick}>
|
107
|
+
<div onClick={(e)=>handleCollapsibleClick(e)}>
|
109
108
|
<Flex
|
110
109
|
spacing="between"
|
111
110
|
vertical="center"
|
@@ -117,7 +116,7 @@ const CollapsibleMain = ({
|
|
117
116
|
iconColor={iconColor as IconColors}
|
118
117
|
iconSize={iconSize as IconSizes}
|
119
118
|
icon={icon as string[] | string}
|
120
|
-
|
119
|
+
iconClick={iconClick}
|
121
120
|
/>
|
122
121
|
</FlexItem>
|
123
122
|
</Flex>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import { Collapsible } from '../..'
|
3
3
|
|
4
|
-
const CollapsibleColor = (
|
4
|
+
const CollapsibleColor = () => (
|
5
5
|
<div>
|
6
6
|
<Collapsible
|
7
7
|
iconColor='default'
|
8
8
|
marginBottom="xs"
|
9
9
|
>
|
10
|
-
<Collapsible.Main
|
10
|
+
<Collapsible.Main>
|
11
11
|
<div>{'Default Section'}</div>
|
12
12
|
</Collapsible.Main>
|
13
13
|
<Collapsible.Content>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import { Collapsible } from '../..'
|
3
3
|
|
4
|
-
const CollapsibleDefault = (
|
4
|
+
const CollapsibleDefault = () => (
|
5
5
|
<Collapsible >
|
6
|
-
<Collapsible.Main
|
6
|
+
<Collapsible.Main>
|
7
7
|
<div>{'Main Section'}</div>
|
8
8
|
</Collapsible.Main>
|
9
9
|
<Collapsible.Content>
|
@@ -1,14 +1,18 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import { Collapsible } from '../..'
|
2
|
+
import { Collapsible, useCollapsible, Button } from '../..'
|
3
3
|
|
4
|
-
const CollapsibleIcons = (
|
4
|
+
const CollapsibleIcons = () => {
|
5
|
+
const [isCollapsed, setIsCollapsed] = useCollapsible(true)
|
5
6
|
|
6
7
|
return (
|
7
8
|
<>
|
8
|
-
<
|
9
|
+
<Button onClick={()=> setIsCollapsed(!isCollapsed)}>
|
10
|
+
{isCollapsed ? "Expand" : "Collapse"}
|
11
|
+
</Button>
|
12
|
+
<Collapsible collapsed={isCollapsed}
|
9
13
|
icon={['plus','minus']}
|
10
14
|
>
|
11
|
-
<Collapsible.Main
|
15
|
+
<Collapsible.Main>
|
12
16
|
<div>{'Main Section'}</div>
|
13
17
|
</Collapsible.Main>
|
14
18
|
<Collapsible.Content>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
##### Prop
|
2
|
-
|
2
|
+
This kit uses 'chevron-up' and 'chevron-down' icons as default for the toggle icons. To customize these icons, use the `icon` prop to pass in an array of two icons, the first will render when the collapisble is closed and the second will render when the collapsible is open. In this example, we are using `icon: ['plus','minus']`
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import { Collapsible } from '../..'
|
3
3
|
|
4
|
-
const CollapsibleSize = (
|
4
|
+
const CollapsibleSize = () => (
|
5
5
|
<div>
|
6
6
|
<Collapsible
|
7
7
|
iconSize="xs"
|
8
8
|
marginBottom="xs"
|
9
9
|
>
|
10
|
-
<Collapsible.Main
|
10
|
+
<Collapsible.Main>
|
11
11
|
<div>{'Extra Small Section'}</div>
|
12
12
|
</Collapsible.Main>
|
13
13
|
<Collapsible.Content>
|
@@ -22,7 +22,7 @@ const CollapsibleSize = (props) => (
|
|
22
22
|
iconSize="sm"
|
23
23
|
marginBottom="xs"
|
24
24
|
>
|
25
|
-
<Collapsible.Main
|
25
|
+
<Collapsible.Main>
|
26
26
|
<div>{'Small Section'}</div>
|
27
27
|
</Collapsible.Main>
|
28
28
|
<Collapsible.Content>
|
@@ -36,7 +36,7 @@ const CollapsibleSize = (props) => (
|
|
36
36
|
<Collapsible
|
37
37
|
marginBottom="xs"
|
38
38
|
>
|
39
|
-
<Collapsible.Main
|
39
|
+
<Collapsible.Main>
|
40
40
|
<div>{'Default Section'}</div>
|
41
41
|
</Collapsible.Main>
|
42
42
|
<Collapsible.Content>
|
@@ -51,7 +51,7 @@ const CollapsibleSize = (props) => (
|
|
51
51
|
iconSize="lg"
|
52
52
|
marginBottom="xs"
|
53
53
|
>
|
54
|
-
<Collapsible.Main
|
54
|
+
<Collapsible.Main>
|
55
55
|
<div>{'Large Section'}</div>
|
56
56
|
</Collapsible.Main>
|
57
57
|
<Collapsible.Content>
|
@@ -2,13 +2,12 @@ examples:
|
|
2
2
|
|
3
3
|
rails:
|
4
4
|
- collapsible_default: Default
|
5
|
-
- collapsible_size:
|
6
|
-
- collapsible_color:
|
7
|
-
- collapsible_icons: Custom Icons
|
5
|
+
- collapsible_size: Size
|
6
|
+
- collapsible_color: Color
|
7
|
+
# - collapsible_icons: Custom Icons
|
8
8
|
|
9
9
|
react:
|
10
10
|
- collapsible_default: Default
|
11
|
-
- collapsible_size:
|
12
|
-
- collapsible_color:
|
13
|
-
- collapsible_icons: Custom Icons
|
14
|
-
- collapsible_state: useCollapsible Hook
|
11
|
+
- collapsible_size: Size
|
12
|
+
- collapsible_color: Color
|
13
|
+
# - collapsible_icons: Custom Icons
|
@@ -1,5 +1,4 @@
|
|
1
1
|
export { default as CollapsibleDefault } from './_collapsible_default.jsx'
|
2
2
|
export { default as CollapsibleSize } from './_collapsible_size.jsx'
|
3
3
|
export { default as CollapsibleColor } from './_collapsible_color.jsx'
|
4
|
-
export { default as CollapsibleIcons } from './_collapsible_icons.jsx'
|
5
|
-
export {default as CollapsibleState } from './_collapsible_state.jsx'
|
4
|
+
export { default as CollapsibleIcons } from './_collapsible_icons.jsx'
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import classnames from "classnames";
|
3
3
|
|
4
|
-
import DateTime from "../pb_kit/dateTime";
|
5
4
|
import { buildAriaProps, buildCss, buildDataProps } from "../utilities/props";
|
6
5
|
import { globalProps } from "../utilities/globalProps";
|
6
|
+
import DateTime from '../pb_kit/dateTime';
|
7
7
|
|
8
8
|
import Body from "../pb_body/_body";
|
9
9
|
import Caption from "../pb_caption/_caption";
|
@@ -20,7 +20,7 @@ type PbDateProps = {
|
|
20
20
|
showIcon?: boolean;
|
21
21
|
size?: "sm" | "md" | "lg";
|
22
22
|
unstyled?: boolean;
|
23
|
-
value:
|
23
|
+
value: Date;
|
24
24
|
};
|
25
25
|
|
26
26
|
const PbDate = (props: PbDateProps) => {
|
@@ -37,12 +37,11 @@ const PbDate = (props: PbDateProps) => {
|
|
37
37
|
value,
|
38
38
|
} = props;
|
39
39
|
|
40
|
-
const
|
41
|
-
const
|
42
|
-
const
|
43
|
-
const
|
44
|
-
const
|
45
|
-
const currentYear = new Date().getFullYear().toString();
|
40
|
+
const weekday = DateTime.toWeekday(value);
|
41
|
+
const month = DateTime.toMonth(value);
|
42
|
+
const day = DateTime.toDay(value);
|
43
|
+
const year = DateTime.toYear(value);
|
44
|
+
const currentYear = new Date().getFullYear();
|
46
45
|
|
47
46
|
const ariaProps = buildAriaProps(aria);
|
48
47
|
const dataProps = buildDataProps(data);
|
@@ -7,7 +7,7 @@ const DateAlignment = (props) => {
|
|
7
7
|
<FormattedDate
|
8
8
|
dayOfWeek
|
9
9
|
icon
|
10
|
-
value=
|
10
|
+
value={new Date('25 Dec 1995')}
|
11
11
|
{...props}
|
12
12
|
/>
|
13
13
|
|
@@ -17,7 +17,7 @@ const DateAlignment = (props) => {
|
|
17
17
|
alignment="center"
|
18
18
|
dayOfWeek
|
19
19
|
icon
|
20
|
-
value=
|
20
|
+
value={new Date('25 Dec 2020')}
|
21
21
|
{...props}
|
22
22
|
/>
|
23
23
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import { Date as FormattedDate } from '../../'
|
2
|
+
import { Date as FormattedDate, Caption, Title } from '../../'
|
3
3
|
|
4
4
|
const DateDefault = (props) => {
|
5
5
|
return (
|
@@ -12,9 +12,20 @@ const DateDefault = (props) => {
|
|
12
12
|
|
13
13
|
<br />
|
14
14
|
|
15
|
+
<div style={{display: "flex", columnGap: 4}}>
|
16
|
+
<FormattedDate
|
17
|
+
size="sm"
|
18
|
+
value={"2012-08-03"}
|
19
|
+
{...props}
|
20
|
+
/>
|
21
|
+
<Caption>{"(Hyphenated Date)"}</Caption>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<br />
|
25
|
+
|
15
26
|
<FormattedDate
|
16
27
|
size="sm"
|
17
|
-
value=
|
28
|
+
value={new Date('03 Aug 2012')}
|
18
29
|
{...props}
|
19
30
|
/>
|
20
31
|
|
@@ -23,7 +34,7 @@ const DateDefault = (props) => {
|
|
23
34
|
<FormattedDate
|
24
35
|
showDayOfWeek
|
25
36
|
size="sm"
|
26
|
-
value=
|
37
|
+
value={new Date('03 Dec 2017')}
|
27
38
|
{...props}
|
28
39
|
/>
|
29
40
|
|
@@ -37,8 +48,21 @@ const DateDefault = (props) => {
|
|
37
48
|
|
38
49
|
<br />
|
39
50
|
|
51
|
+
<div style={{display: "flex", columnGap: 4}}>
|
52
|
+
<FormattedDate
|
53
|
+
value={"2012-08-03"}
|
54
|
+
{...props}
|
55
|
+
/>
|
56
|
+
<Title
|
57
|
+
size={4}
|
58
|
+
text={"(Hyphenated Date)"}
|
59
|
+
/>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<br />
|
63
|
+
|
40
64
|
<FormattedDate
|
41
|
-
value=
|
65
|
+
value={new Date('03 Aug 2012')}
|
42
66
|
{...props}
|
43
67
|
/>
|
44
68
|
|
@@ -46,7 +70,7 @@ const DateDefault = (props) => {
|
|
46
70
|
|
47
71
|
<FormattedDate
|
48
72
|
showDayOfWeek
|
49
|
-
value=
|
73
|
+
value={new Date('03 Dec 2017')}
|
50
74
|
{...props}
|
51
75
|
/>
|
52
76
|
</>
|
@@ -21,7 +21,7 @@ const DateUnstyled = (props) => {
|
|
21
21
|
<Title size={1}>
|
22
22
|
<FormattedDate
|
23
23
|
unstyled
|
24
|
-
value=
|
24
|
+
value={new Date('25 Dec 1995')}
|
25
25
|
{...props}
|
26
26
|
/>
|
27
27
|
</Title>
|
@@ -36,7 +36,7 @@ const DateUnstyled = (props) => {
|
|
36
36
|
showDayOfWeek
|
37
37
|
showIcon
|
38
38
|
unstyled
|
39
|
-
value=
|
39
|
+
value={new Date('25 Dec 1995')}
|
40
40
|
{...props}
|
41
41
|
/>
|
42
42
|
</Caption>
|
@@ -7,7 +7,7 @@ const DateVariants = (props) => {
|
|
7
7
|
<FormattedDate
|
8
8
|
showIcon
|
9
9
|
size="sm"
|
10
|
-
value=
|
10
|
+
value={new Date('25 Dec 1995')}
|
11
11
|
{...props}
|
12
12
|
/>
|
13
13
|
|
@@ -15,7 +15,7 @@ const DateVariants = (props) => {
|
|
15
15
|
<br />
|
16
16
|
|
17
17
|
<FormattedDate
|
18
|
-
value=
|
18
|
+
value={new Date('25 Dec 1995')}
|
19
19
|
{...props}
|
20
20
|
/>
|
21
21
|
|
@@ -24,7 +24,7 @@ const DateVariants = (props) => {
|
|
24
24
|
|
25
25
|
<FormattedDate
|
26
26
|
showIcon
|
27
|
-
value=
|
27
|
+
value={new Date('25 Dec 1995')}
|
28
28
|
{...props}
|
29
29
|
/>
|
30
30
|
|
@@ -33,7 +33,7 @@ const DateVariants = (props) => {
|
|
33
33
|
|
34
34
|
<FormattedDate
|
35
35
|
showDayOfWeek
|
36
|
-
value=
|
36
|
+
value={new Date('25 Dec 1995')}
|
37
37
|
{...props}
|
38
38
|
/>
|
39
39
|
|
@@ -43,7 +43,7 @@ const DateVariants = (props) => {
|
|
43
43
|
<FormattedDate
|
44
44
|
showDayOfWeek
|
45
45
|
showIcon
|
46
|
-
value=
|
46
|
+
value={new Date('25 Dec 1995')}
|
47
47
|
{...props}
|
48
48
|
/>
|
49
49
|
</div>
|
@@ -3,7 +3,7 @@ import classnames from "classnames";
|
|
3
3
|
|
4
4
|
import { globalProps } from "../utilities/globalProps";
|
5
5
|
import { buildCss, buildDataProps } from "../utilities/props";
|
6
|
-
import DateTime from
|
6
|
+
import DateTime from '../pb_kit/dateTime';
|
7
7
|
|
8
8
|
import Body from "../pb_body/_body";
|
9
9
|
import Caption from "../pb_caption/_caption";
|
@@ -21,18 +21,16 @@ type DateRangeInlineProps = {
|
|
21
21
|
endDate?: Date;
|
22
22
|
};
|
23
23
|
|
24
|
-
const dateTimestamp = (dateValue: Date
|
25
|
-
const date = new DateTime({ value: dateValue });
|
24
|
+
const dateTimestamp = (dateValue: Date, includeYear: boolean) => {
|
26
25
|
if (includeYear) {
|
27
|
-
return `${
|
26
|
+
return `${DateTime.toMonth(dateValue)} ${DateTime.toDay(dateValue)}, ${DateTime.toYear(dateValue)}`;
|
28
27
|
} else {
|
29
|
-
return `${
|
28
|
+
return `${DateTime.toMonth(dateValue)} ${DateTime.toDay(dateValue)}`;
|
30
29
|
}
|
31
30
|
};
|
32
31
|
|
33
|
-
const dateTimeIso = (dateValue: Date
|
34
|
-
|
35
|
-
return date.toIso();
|
32
|
+
const dateTimeIso = (dateValue: Date) => {
|
33
|
+
return DateTime.toIso(dateValue);
|
36
34
|
};
|
37
35
|
|
38
36
|
const DateRangeInline = (props: DateRangeInlineProps) => {
|
@@ -52,14 +50,17 @@ const DateRangeInline = (props: DateRangeInlineProps) => {
|
|
52
50
|
<>
|
53
51
|
{icon && (
|
54
52
|
<>
|
55
|
-
<Body color="light"
|
56
|
-
|
57
|
-
className="pb_date_range_inline_icon"
|
58
|
-
dark={dark}
|
59
|
-
fixedWidth
|
60
|
-
icon="calendar-alt"
|
61
|
-
size={size}
|
53
|
+
<Body color="light"
|
54
|
+
key={Math.random()}
|
62
55
|
tag="span"
|
56
|
+
>
|
57
|
+
<Icon
|
58
|
+
className="pb_date_range_inline_icon"
|
59
|
+
dark={dark}
|
60
|
+
fixedWidth
|
61
|
+
icon="calendar-alt"
|
62
|
+
size={size}
|
63
|
+
tag="span"
|
63
64
|
/>
|
64
65
|
</Body>
|
65
66
|
</>
|
@@ -78,7 +79,7 @@ const DateRangeInline = (props: DateRangeInlineProps) => {
|
|
78
79
|
|
79
80
|
const dateRangeClasses = buildCss("pb_date_range_inline_kit", align);
|
80
81
|
const dataProps = buildDataProps(data)
|
81
|
-
const renderTime = (date: Date
|
82
|
+
const renderTime = (date: Date) => {
|
82
83
|
return (
|
83
84
|
<time dateTime={dateTimeIso(date)}>
|
84
85
|
{dateInCurrentYear() ? (
|
@@ -92,24 +93,30 @@ const DateRangeInline = (props: DateRangeInlineProps) => {
|
|
92
93
|
|
93
94
|
return (
|
94
95
|
<div
|
95
|
-
|
96
|
-
|
96
|
+
{...dataProps}
|
97
|
+
className={classnames(dateRangeClasses, globalProps(props), className)}
|
97
98
|
>
|
98
99
|
<div className="pb_date_range_inline_wrapper">
|
99
100
|
{size == "xs" && (
|
100
101
|
<>
|
101
102
|
{iconContent()}
|
102
|
-
<Caption dark={dark}
|
103
|
+
<Caption dark={dark}
|
104
|
+
tag="span"
|
105
|
+
>
|
103
106
|
{renderTime(startDate)}
|
104
107
|
</Caption>
|
105
|
-
<Caption dark={dark}
|
108
|
+
<Caption dark={dark}
|
109
|
+
tag="span"
|
110
|
+
>
|
106
111
|
<Icon
|
107
|
-
|
108
|
-
|
109
|
-
|
112
|
+
className="pb_date_range_inline_arrow"
|
113
|
+
fixedWidth
|
114
|
+
icon="long-arrow-right"
|
110
115
|
/>
|
111
116
|
</Caption>
|
112
|
-
<Caption dark={dark}
|
117
|
+
<Caption dark={dark}
|
118
|
+
tag="span"
|
119
|
+
>
|
113
120
|
{renderTime(endDate)}
|
114
121
|
</Caption>
|
115
122
|
</>
|
@@ -118,18 +125,25 @@ const DateRangeInline = (props: DateRangeInlineProps) => {
|
|
118
125
|
{size == "sm" && (
|
119
126
|
<>
|
120
127
|
{iconContent()}
|
121
|
-
<Body dark={dark}
|
128
|
+
<Body dark={dark}
|
129
|
+
tag="span"
|
130
|
+
>
|
122
131
|
{renderTime(startDate)}
|
123
132
|
</Body>
|
124
|
-
<Body color="light"
|
125
|
-
<Icon
|
126
|
-
className="pb_date_range_inline_arrow"
|
133
|
+
<Body color="light"
|
127
134
|
dark={dark}
|
128
|
-
|
129
|
-
|
135
|
+
tag="span"
|
136
|
+
>
|
137
|
+
<Icon
|
138
|
+
className="pb_date_range_inline_arrow"
|
139
|
+
dark={dark}
|
140
|
+
fixedWidth
|
141
|
+
icon="long-arrow-right"
|
130
142
|
/>
|
131
143
|
</Body>
|
132
|
-
<Body dark={dark}
|
144
|
+
<Body dark={dark}
|
145
|
+
tag="span"
|
146
|
+
>
|
133
147
|
{renderTime(endDate)}
|
134
148
|
</Body>
|
135
149
|
</>
|
@@ -14,9 +14,9 @@ type DateRangeStackedProps = {
|
|
14
14
|
className?: string | string[],
|
15
15
|
data?: string,
|
16
16
|
dark?: boolean,
|
17
|
-
endDate:
|
17
|
+
endDate: Date,
|
18
18
|
id?: string,
|
19
|
-
startDate:
|
19
|
+
startDate: Date,
|
20
20
|
}
|
21
21
|
|
22
22
|
const DateRangeStacked = (props: DateRangeStackedProps) => {
|
@@ -29,7 +29,9 @@ const DateRangeStacked = (props: DateRangeStackedProps) => {
|
|
29
29
|
const dataProps = buildDataProps(data)
|
30
30
|
|
31
31
|
return (
|
32
|
-
<div {...dataProps}
|
32
|
+
<div {...dataProps}
|
33
|
+
className={css}
|
34
|
+
>
|
33
35
|
<Flex vertical="center">
|
34
36
|
<FlexItem>
|
35
37
|
<DateYearStacked
|