playbook_ui 12.36.0 → 12.37.0.pre.alpha.PLAYaddingdatapropselectkit1071
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/index.js +2 -1
- data/app/pb_kits/playbook/pb_badge/docs/_badge_colors_swift.md +33 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_default_swift.md +9 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_notification_swift.md +9 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_props_swift.md +6 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_rounded_swift.md +9 -0
- data/app/pb_kits/playbook/pb_badge/docs/example.yml +7 -0
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +15 -13
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +24 -8
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +1 -1
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +15 -4
- data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_collapsible/useCollapsible.tsx +14 -0
- 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 +22 -1
- data/app/pb_kits/playbook/pb_nav/_item.tsx +26 -2
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +59 -79
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom_icons.jsx +4 -6
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_nav/item.rb +5 -1
- data/app/pb_kits/playbook/pb_pill/docs/_pill_default_swift.md +5 -0
- data/app/pb_kits/playbook/pb_pill/docs/_pill_props_swift.md +5 -0
- data/app/pb_kits/playbook/pb_pill/docs/_pill_variants_swift.md +10 -0
- data/app/pb_kits/playbook/pb_pill/docs/example.yml +5 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_alignment_swift.md +16 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_swift.md +18 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_default_swift.md +15 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_error_swift.md +14 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_orientation_swift.md +15 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_padding_swift.md +31 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_props_swift.md +10 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_spacing_swift.md +36 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_subtitle_swift.md +13 -0
- data/app/pb_kits/playbook/pb_radio/docs/example.yml +11 -0
- 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_text_input/docs/_text_input_options.html.erb +12 -0
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +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_timestamp/docs/_timestamp_align_swift.md +45 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default_swift.md +26 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_swift.md +25 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_props_swift.md +10 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_swift.md +67 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_swift.md +19 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +8 -0
- 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 +2 -2
- metadata +34 -8
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +0 -120
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
|
|
@@ -129,4 +129,5 @@ export { default as PbTypeahead } from './pb_typeahead'
|
|
|
129
129
|
export { default as dialogHelper } from './pb_dialog/dialogHelper'
|
|
130
130
|
|
|
131
131
|
//Theming
|
|
132
|
-
export {default as mapTheme} from './pb_map/pbMapTheme'
|
|
132
|
+
export {default as mapTheme} from './pb_map/pbMapTheme'
|
|
133
|
+
export {default as useCollapsible} from './pb_collapsible/useCollapsible'
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
```swift
|
|
4
|
+
HStack {
|
|
5
|
+
PBBadge(text: "1", rounded: true, variant: .chat)
|
|
6
|
+
PBBadge(text: "4", variant: .chat)
|
|
7
|
+
PBBadge(text: "1000", variant: .chat)
|
|
8
|
+
|
|
9
|
+
PBBadge(text: "1", rounded: true, variant: .error)
|
|
10
|
+
PBBadge(text: "4", variant: .error)
|
|
11
|
+
PBBadge(text: "1000", variant: .error)
|
|
12
|
+
|
|
13
|
+
PBBadge(text: "1", rounded: true, variant: .info)
|
|
14
|
+
PBBadge(text: "4", variant: .info)
|
|
15
|
+
PBBadge(text: "1000", variant: .info)
|
|
16
|
+
|
|
17
|
+
PBBadge(text: "1", rounded: true, variant: .neutral)
|
|
18
|
+
PBBadge(text: "4", variant: .neutral)
|
|
19
|
+
PBBadge(text: "1000", variant: .neutral)
|
|
20
|
+
|
|
21
|
+
PBBadge(text: "1", rounded: true, variant: .primary)
|
|
22
|
+
PBBadge(text: "4", variant: .primary)
|
|
23
|
+
PBBadge(text: "1000", variant: .primary)
|
|
24
|
+
|
|
25
|
+
PBBadge(text: "1", rounded: true, variant: .success)
|
|
26
|
+
PBBadge(text: "4", variant: .success)
|
|
27
|
+
PBBadge(text: "1000", variant: .success)
|
|
28
|
+
|
|
29
|
+
PBBadge(text: "1", rounded: true, variant: .warning)
|
|
30
|
+
PBBadge(text: "4", variant: .warning)
|
|
31
|
+
PBBadge(text: "1000", variant: .warning)
|
|
32
|
+
}
|
|
33
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
```swift
|
|
4
|
+
HStack {
|
|
5
|
+
PBBadge(text: "+1", variant: .primary)
|
|
6
|
+
PBBadge(text: "+4", variant: .primary)
|
|
7
|
+
PBBadge(text: "+1000", variant: .primary)
|
|
8
|
+
}
|
|
9
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
```swift
|
|
4
|
+
HStack {
|
|
5
|
+
PBBadge(text: "1", rounded: true, variant: .chat)
|
|
6
|
+
PBBadge(text: "4", variant: .chat)
|
|
7
|
+
PBBadge(text: "1000", variant: .chat)
|
|
8
|
+
}
|
|
9
|
+
```
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
### Props
|
|
2
|
+
| Name | Type | Description | Default | Values |
|
|
3
|
+
| --- | ----------- | --------- | --------- | --------- |
|
|
4
|
+
| **text** | `String` | Specifies the value of the Badge | | |
|
|
5
|
+
| **rounded** | `Bool` | Displays the rounded variant | `false` | |
|
|
6
|
+
| **variant** | `Variant` | Changes the color of the Badge | `.primary` | `.chat` `.error` `.info` `.neutral` `.primary` `.success` `.warning` |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
```swift
|
|
4
|
+
HStack {
|
|
5
|
+
PBBadge(text: "+1", rounded: true, variant: .primary)
|
|
6
|
+
PBBadge(text: "+4", rounded: true, variant: .primary)
|
|
7
|
+
PBBadge(text: "+1000", rounded: true, variant: .primary)
|
|
8
|
+
}
|
|
9
|
+
```
|
|
@@ -10,3 +10,10 @@ examples:
|
|
|
10
10
|
- badge_rounded: Rounded
|
|
11
11
|
- badge_colors: Colors
|
|
12
12
|
- badge_notification: Notification
|
|
13
|
+
|
|
14
|
+
swift:
|
|
15
|
+
- badge_default_swift: Rectangle
|
|
16
|
+
- badge_rounded_swift: Rounded
|
|
17
|
+
- badge_colors_swift: Colors
|
|
18
|
+
- badge_notification_swift: Notification
|
|
19
|
+
- badge_props_swift: ""
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useEffect } from 'react'
|
|
2
2
|
import classnames from 'classnames'
|
|
3
|
+
import useCollapsible from './useCollapsible'
|
|
3
4
|
|
|
4
5
|
import { globalProps } from '../utilities/globalProps'
|
|
5
6
|
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
|
@@ -16,20 +17,15 @@ type CollapsibleProps = {
|
|
|
16
17
|
className?: string,
|
|
17
18
|
collapsed?: boolean,
|
|
18
19
|
data?: object,
|
|
19
|
-
icon?: string | string[]
|
|
20
|
+
icon?: string | string[],
|
|
20
21
|
iconColor?: 'default' | 'light' | 'lighter' | 'link' | 'error' | 'success',
|
|
21
|
-
iconSize?: IconSizes
|
|
22
|
+
iconSize?: IconSizes,
|
|
23
|
+
iconClick?: ()=> void,
|
|
24
|
+
onClick?: ()=> void,
|
|
22
25
|
id?: string,
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
const useCollapsible = (initial = false) => {
|
|
26
|
-
const [collapsed, setCollapsed] = useState(initial)
|
|
27
28
|
|
|
28
|
-
return [
|
|
29
|
-
collapsed,
|
|
30
|
-
() => setCollapsed((t) => !t),
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
29
|
|
|
34
30
|
const Collapsible = ({
|
|
35
31
|
aria = {},
|
|
@@ -40,10 +36,17 @@ const Collapsible = ({
|
|
|
40
36
|
icon,
|
|
41
37
|
iconColor = 'default',
|
|
42
38
|
iconSize,
|
|
39
|
+
iconClick,
|
|
40
|
+
onClick,
|
|
43
41
|
id,
|
|
44
42
|
...props
|
|
45
43
|
}: CollapsibleProps) => {
|
|
46
|
-
const [isCollapsed,
|
|
44
|
+
const [isCollapsed, toggle, setIsCollapsed] = useCollapsible(collapsed)
|
|
45
|
+
|
|
46
|
+
useEffect(()=> {
|
|
47
|
+
setIsCollapsed(collapsed)
|
|
48
|
+
},[collapsed])
|
|
49
|
+
|
|
47
50
|
const CollapsibleParent = React.Children.toArray(children) as JSX.Element[]
|
|
48
51
|
|
|
49
52
|
if (CollapsibleParent.length !== 2) {
|
|
@@ -62,9 +65,8 @@ const Collapsible = ({
|
|
|
62
65
|
globalProps(props),
|
|
63
66
|
className
|
|
64
67
|
)
|
|
65
|
-
|
|
66
68
|
return (
|
|
67
|
-
<CollapsibleContext.Provider value={{ collapsed: isCollapsed,
|
|
69
|
+
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, toggle, icon, iconSize, iconColor, iconClick, onClick }}>
|
|
68
70
|
<div
|
|
69
71
|
{...ariaProps}
|
|
70
72
|
{...dataProps}
|
|
@@ -33,7 +33,7 @@ type CollapsibleMainProps = {
|
|
|
33
33
|
children: React.ReactNode[] | React.ReactNode,
|
|
34
34
|
className?: string,
|
|
35
35
|
cursor?: string,
|
|
36
|
-
|
|
36
|
+
onClick?: ()=> void
|
|
37
37
|
}
|
|
38
38
|
type IconColors = "default" | "light" | "lighter" | "link" | "error" | "success"
|
|
39
39
|
|
|
@@ -42,9 +42,10 @@ type IconProps = {
|
|
|
42
42
|
icon?: string[] | string
|
|
43
43
|
iconColor?: IconColors
|
|
44
44
|
iconSize?: IconSizes
|
|
45
|
+
iconClick?: ()=> void
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
const ToggleIcon = ({ collapsed, icon, iconSize, iconColor }: IconProps) => {
|
|
48
|
+
const ToggleIcon = ({ collapsed, icon, iconSize, iconColor, iconClick }: IconProps) => {
|
|
48
49
|
const color = colorMap[iconColor]
|
|
49
50
|
|
|
50
51
|
const showIcon = (icon: string |string[]) => {
|
|
@@ -54,6 +55,13 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor }: IconProps) => {
|
|
|
54
55
|
return icon
|
|
55
56
|
}
|
|
56
57
|
|
|
58
|
+
const handleIconClick = (e:any) => {
|
|
59
|
+
if (iconClick) {
|
|
60
|
+
e.stopPropagation();
|
|
61
|
+
iconClick()
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
57
65
|
return (
|
|
58
66
|
<>
|
|
59
67
|
{collapsed ? (
|
|
@@ -61,6 +69,7 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor }: IconProps) => {
|
|
|
61
69
|
className="icon_wrapper"
|
|
62
70
|
key={icon ? showIcon(icon)[0] : "chevron-down"}
|
|
63
71
|
style={{ verticalAlign: "middle", color: color }}
|
|
72
|
+
onClick={(e)=> handleIconClick(e)}
|
|
64
73
|
>
|
|
65
74
|
<Icon icon={icon ? showIcon(icon)[0] : "chevron-down"} size={iconSize} />
|
|
66
75
|
</div>
|
|
@@ -69,6 +78,7 @@ const ToggleIcon = ({ collapsed, icon, iconSize, iconColor }: IconProps) => {
|
|
|
69
78
|
className="icon_wrapper"
|
|
70
79
|
key={icon ? showIcon(icon)[1] : "chevron-up"}
|
|
71
80
|
style={{ verticalAlign: "middle", color: color }}
|
|
81
|
+
onClick={(e)=> handleIconClick(e)}
|
|
72
82
|
>
|
|
73
83
|
<Icon icon={icon ? showIcon(icon)[1] : "chevron-up"} size={iconSize} />
|
|
74
84
|
</div>
|
|
@@ -83,13 +93,18 @@ const CollapsibleMain = ({
|
|
|
83
93
|
cursor = 'pointer',
|
|
84
94
|
...props
|
|
85
95
|
}: CollapsibleMainProps): React.ReactElement=> {
|
|
86
|
-
const
|
|
96
|
+
const {collapsed, toggle, icon, iconSize, iconColor, iconClick, onClick}: any = useContext(CollapsibleContext)
|
|
87
97
|
const mainCSS = buildCss('pb_collapsible_main_kit')
|
|
88
98
|
const mainSpacing = globalProps(props, { cursor })
|
|
89
99
|
|
|
100
|
+
const handleCollapsibleClick = (e:any) => {
|
|
101
|
+
toggle();
|
|
102
|
+
onClick && onClick(e)
|
|
103
|
+
}
|
|
104
|
+
|
|
90
105
|
return (
|
|
91
106
|
<div className={classnames(mainCSS, className, mainSpacing)}>
|
|
92
|
-
<div onClick={
|
|
107
|
+
<div onClick={(e)=>handleCollapsibleClick(e)}>
|
|
93
108
|
<Flex
|
|
94
109
|
spacing="between"
|
|
95
110
|
vertical="center"
|
|
@@ -97,10 +112,11 @@ const CollapsibleMain = ({
|
|
|
97
112
|
<FlexItem>{children}</FlexItem>
|
|
98
113
|
<FlexItem>
|
|
99
114
|
<ToggleIcon
|
|
100
|
-
collapsed={
|
|
101
|
-
iconColor={
|
|
102
|
-
iconSize={
|
|
103
|
-
icon={
|
|
115
|
+
collapsed={collapsed as () => void}
|
|
116
|
+
iconColor={iconColor as IconColors}
|
|
117
|
+
iconSize={iconSize as IconSizes}
|
|
118
|
+
icon={icon as string[] | string}
|
|
119
|
+
iconClick={iconClick}
|
|
104
120
|
/>
|
|
105
121
|
</FlexItem>
|
|
106
122
|
</Flex>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<%= content.presence %>
|
|
10
10
|
<% end %>
|
|
11
11
|
<%= pb_rails("flex/flex_item") do %>
|
|
12
|
-
<div style="color: <%= object.icon_color %>">
|
|
12
|
+
<div style="color: <%= object.icon_color %>" class="icon_wrapper" >
|
|
13
13
|
<% if object.icon.present? %>
|
|
14
14
|
<%= pb_rails("icon", props: { icon: object.show_icon(object.icon)[0], id:"collapsible_open_icon", size: object.size }) %>
|
|
15
15
|
<%= pb_rails("icon", props: { icon: object.show_icon(object.icon)[1], id:"collapsible_close_icon", size: object.size }) %>
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import { Collapsible } from '../..'
|
|
2
|
+
import { Collapsible, useCollapsible, Button } from '../..'
|
|
3
3
|
|
|
4
|
-
const CollapsibleIcons = () =>
|
|
5
|
-
|
|
4
|
+
const CollapsibleIcons = () => {
|
|
5
|
+
const [isCollapsed, setIsCollapsed] = useCollapsible(true)
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<>
|
|
9
|
+
<Button onClick={()=> setIsCollapsed(!isCollapsed)}>
|
|
10
|
+
{isCollapsed ? "Expand" : "Collapse"}
|
|
11
|
+
</Button>
|
|
12
|
+
<Collapsible collapsed={isCollapsed}
|
|
13
|
+
icon={['plus','minus']}
|
|
14
|
+
>
|
|
6
15
|
<Collapsible.Main>
|
|
7
16
|
<div>{'Main Section'}</div>
|
|
8
17
|
</Collapsible.Main>
|
|
@@ -14,6 +23,8 @@ const CollapsibleIcons = () => (
|
|
|
14
23
|
</div>
|
|
15
24
|
</Collapsible.Content>
|
|
16
25
|
</Collapsible>
|
|
17
|
-
|
|
26
|
+
</>
|
|
27
|
+
)
|
|
28
|
+
}
|
|
18
29
|
|
|
19
30
|
export default CollapsibleIcons
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {useState} from 'react';
|
|
2
|
+
|
|
3
|
+
const useCollapsible = (initial= true) => {
|
|
4
|
+
const [collapsed, setCollapsed] = useState(initial)
|
|
5
|
+
|
|
6
|
+
const toggle = () => setCollapsed((prev) => !prev)
|
|
7
|
+
return [
|
|
8
|
+
collapsed,
|
|
9
|
+
toggle,
|
|
10
|
+
setCollapsed as any,
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default useCollapsible
|
|
@@ -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
|