playbook_ui 12.30.1 → 12.31.0.pre.alpha.PLAY814removemomentjs933
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/_playbook.scss +2 -0
- data/app/pb_kits/playbook/pb_badge/_badge.scss +5 -0
- data/app/pb_kits/playbook/pb_badge/_badge.tsx +1 -1
- data/app/pb_kits/playbook/pb_badge/badge.rb +1 -1
- data/app/pb_kits/playbook/pb_badge/badge.test.js +13 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_notification.html.erb +12 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_notification.jsx +25 -0
- data/app/pb_kits/playbook/pb_badge/docs/example.yml +2 -1
- data/app/pb_kits/playbook/pb_badge/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_hover.jsx +40 -0
- data/app/pb_kits/playbook/pb_button/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_button/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date/_date.tsx +7 -8
- 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 +139 -67
- data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +52 -31
- data/app/pb_kits/playbook/pb_message/_message.tsx +25 -25
- data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +33 -45
- data/app/pb_kits/playbook/pb_message/docs/_message_hover.jsx +41 -0
- data/app/pb_kits/playbook/pb_message/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_message/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +4 -1
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +8 -3
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb +76 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.jsx +88 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md +5 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +3 -0
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +7 -0
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +12 -7
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.html.erb +14 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.jsx +30 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.md +3 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dashed.html.erb +1 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dashed.jsx +13 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.html.erb +1 -1
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +1 -1
- data/app/pb_kits/playbook/pb_section_separator/docs/example.yml +6 -3
- data/app/pb_kits/playbook/pb_section_separator/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +4 -2
- data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +4 -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 +13 -12
- data/app/pb_kits/playbook/pb_title/_title.scss +18 -0
- data/app/pb_kits/playbook/pb_title/_title.tsx +20 -2
- data/app/pb_kits/playbook/pb_title/docs/_title_responsive.html.erb +1 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_responsive.jsx +16 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_responsive.md +1 -0
- data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_title/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_title/title.rb +21 -4
- data/app/pb_kits/playbook/pb_title/title.test.js +42 -29
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +8 -11
- data/app/pb_kits/playbook/tokens/_scale.scss +9 -0
- data/app/pb_kits/playbook/tokens/exports/_scale.scss +13 -0
- data/app/pb_kits/playbook/utilities/_border_radius.scss +31 -0
- data/app/pb_kits/playbook/utilities/_colors.scss +3 -0
- data/app/pb_kits/playbook/utilities/_hover.scss +47 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +22 -2
- data/dist/playbook-rails.js +7 -7
- data/lib/playbook/version.rb +2 -2
- metadata +26 -8
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +0 -120
@@ -28,6 +28,7 @@ type MultiLevelSelectProps = {
|
|
28
28
|
returnAllSelected?: boolean
|
29
29
|
treeData?: { [key: string]: string }[]
|
30
30
|
onSelect?: (prop: { [key: string]: any }) => void
|
31
|
+
selectedIds?: string[]
|
31
32
|
} & GlobalProps
|
32
33
|
|
33
34
|
const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
@@ -41,6 +42,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
41
42
|
returnAllSelected = false,
|
42
43
|
treeData,
|
43
44
|
onSelect = () => {},
|
45
|
+
selectedIds
|
44
46
|
} = props
|
45
47
|
|
46
48
|
const ariaProps = buildAriaProps(aria)
|
@@ -64,14 +66,14 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
64
66
|
//state for return for default
|
65
67
|
const [defaultReturn, setDefaultReturn] = useState([])
|
66
68
|
// Get expanded items from treeData.
|
67
|
-
const initialExpandedItems = getExpandedItems(treeData);
|
69
|
+
const initialExpandedItems = getExpandedItems(treeData, selectedIds);
|
68
70
|
// Initialize state with expanded items.
|
69
71
|
const [expanded, setExpanded] = useState(initialExpandedItems);
|
70
72
|
|
71
73
|
|
72
74
|
useEffect(() => {
|
73
|
-
setFormattedData(addCheckedAndParentProperty(treeData))
|
74
|
-
}, [treeData])
|
75
|
+
setFormattedData(addCheckedAndParentProperty(treeData, selectedIds))
|
76
|
+
}, [treeData, selectedIds])
|
75
77
|
|
76
78
|
useEffect(() => {
|
77
79
|
if (returnAllSelected) {
|
@@ -160,6 +162,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
160
162
|
//function to map over data and add parent_id + depth property to each item
|
161
163
|
const addCheckedAndParentProperty = (
|
162
164
|
treeData: { [key: string]: any }[],
|
165
|
+
selectedIds: string[],
|
163
166
|
parent_id: string = null,
|
164
167
|
depth: number = 0,
|
165
168
|
) => {
|
@@ -169,6 +172,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
169
172
|
return treeData.map((item: { [key: string]: any } | any) => {
|
170
173
|
const newItem = {
|
171
174
|
...item,
|
175
|
+
checked: selectedIds && selectedIds.length && selectedIds.includes(item.id),
|
172
176
|
parent_id,
|
173
177
|
depth,
|
174
178
|
}
|
@@ -179,6 +183,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
179
183
|
: item.children
|
180
184
|
newItem.children = addCheckedAndParentProperty(
|
181
185
|
children,
|
186
|
+
selectedIds,
|
182
187
|
newItem.id,
|
183
188
|
depth + 1
|
184
189
|
)
|
data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
<% treeData = [{
|
2
|
+
label: "Power Home Remodeling",
|
3
|
+
value: "Power Home Remodeling",
|
4
|
+
id: "100",
|
5
|
+
expanded: true,
|
6
|
+
children: [
|
7
|
+
{
|
8
|
+
label: "People",
|
9
|
+
value: "People",
|
10
|
+
id: "101",
|
11
|
+
children: [
|
12
|
+
{
|
13
|
+
label: "Talent Acquisition",
|
14
|
+
value: "Talent Acquisition",
|
15
|
+
id: "102",
|
16
|
+
},
|
17
|
+
{
|
18
|
+
label: "Business Affairs",
|
19
|
+
value: "Business Affairs",
|
20
|
+
id: "103",
|
21
|
+
children: [
|
22
|
+
{
|
23
|
+
label: "Initiatives",
|
24
|
+
value: "Initiatives",
|
25
|
+
id: "104",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
label: "Learning & Development",
|
29
|
+
value: "Learning & Development",
|
30
|
+
id: "105",
|
31
|
+
},
|
32
|
+
],
|
33
|
+
},
|
34
|
+
{
|
35
|
+
label: "People Experience",
|
36
|
+
value: "People Experience",
|
37
|
+
id: "106",
|
38
|
+
},
|
39
|
+
],
|
40
|
+
},
|
41
|
+
{
|
42
|
+
label: "Contact Center",
|
43
|
+
value: "Contact Center",
|
44
|
+
id: "107",
|
45
|
+
children: [
|
46
|
+
{
|
47
|
+
label: "Appointment Management",
|
48
|
+
value: "Appointment Management",
|
49
|
+
id: "108",
|
50
|
+
},
|
51
|
+
{
|
52
|
+
label: "Customer Service",
|
53
|
+
value: "Customer Service",
|
54
|
+
id: "109",
|
55
|
+
},
|
56
|
+
{
|
57
|
+
label: "Energy",
|
58
|
+
value: "Energy",
|
59
|
+
id: "110",
|
60
|
+
},
|
61
|
+
],
|
62
|
+
},
|
63
|
+
],
|
64
|
+
}] %>
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<%= pb_rails("multi_level_select", props: {
|
70
|
+
id: "multi-level-select-seelcted_ids",
|
71
|
+
name: "my_data_array_selected",
|
72
|
+
return_all_selected: true,
|
73
|
+
selected_ids:["110","102"],
|
74
|
+
tree_data: treeData,
|
75
|
+
}) %>
|
76
|
+
|
@@ -0,0 +1,88 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import MultiLevelSelect from "../_multi_level_select";
|
3
|
+
|
4
|
+
const treeData = [
|
5
|
+
{
|
6
|
+
label: "Power Home Remodeling",
|
7
|
+
value: "Power Home Remodeling",
|
8
|
+
id: "powerhome1",
|
9
|
+
expanded: true,
|
10
|
+
children: [
|
11
|
+
{
|
12
|
+
label: "People",
|
13
|
+
value: "People",
|
14
|
+
id: "people1",
|
15
|
+
children: [
|
16
|
+
{
|
17
|
+
label: "Talent Acquisition",
|
18
|
+
value: "Talent Acquisition",
|
19
|
+
id: "talent1",
|
20
|
+
},
|
21
|
+
{
|
22
|
+
label: "Business Affairs",
|
23
|
+
value: "Business Affairs",
|
24
|
+
id: "business1",
|
25
|
+
children: [
|
26
|
+
{
|
27
|
+
label: "Initiatives",
|
28
|
+
value: "Initiatives",
|
29
|
+
id: "initiative1",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
label: "Learning & Development",
|
33
|
+
value: "Learning & Development",
|
34
|
+
id: "development1",
|
35
|
+
},
|
36
|
+
],
|
37
|
+
},
|
38
|
+
{
|
39
|
+
label: "People Experience",
|
40
|
+
value: "People Experience",
|
41
|
+
id: "experience1",
|
42
|
+
},
|
43
|
+
],
|
44
|
+
},
|
45
|
+
{
|
46
|
+
label: "Contact Center",
|
47
|
+
value: "Contact Center",
|
48
|
+
id: "contact1",
|
49
|
+
children: [
|
50
|
+
{
|
51
|
+
label: "Appointment Management",
|
52
|
+
value: "Appointment Management",
|
53
|
+
id: "appointment1",
|
54
|
+
},
|
55
|
+
{
|
56
|
+
label: "Customer Service",
|
57
|
+
value: "Customer Service",
|
58
|
+
id: "customer1",
|
59
|
+
},
|
60
|
+
{
|
61
|
+
label: "Energy",
|
62
|
+
value: "Energy",
|
63
|
+
id: "energy1",
|
64
|
+
},
|
65
|
+
],
|
66
|
+
},
|
67
|
+
],
|
68
|
+
},
|
69
|
+
];
|
70
|
+
|
71
|
+
const MultiLevelSelectSelectedIds = (props) => {
|
72
|
+
return (
|
73
|
+
<div>
|
74
|
+
<MultiLevelSelect
|
75
|
+
id="multi-level-select-selected_ids"
|
76
|
+
onSelect={(selectedNodes) =>
|
77
|
+
console.log("Selected Items with Return All Selected Data", selectedNodes)
|
78
|
+
}
|
79
|
+
returnAllSelected
|
80
|
+
selectedIds={["energy1","talent1"]}
|
81
|
+
treeData={treeData}
|
82
|
+
{...props}
|
83
|
+
/>
|
84
|
+
</div>
|
85
|
+
);
|
86
|
+
};
|
87
|
+
|
88
|
+
export default MultiLevelSelectSelectedIds;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
`selected_ids` (Rails) / `selectedIds` (React) is an optional prop that accepts an array of ids that, if present, will mark the corresponding nodes on the treeData as checked on page load.
|
2
|
+
|
3
|
+
Items that include `checked:true` on the treeData itself will also be selected on page load, even without being passed to `selectedIds`.
|
4
|
+
|
5
|
+
When an item is marked as checked on page load by any means, the dropdown will expand to show the checked items for easier accessibility.
|
@@ -2,9 +2,11 @@ examples:
|
|
2
2
|
rails:
|
3
3
|
- multi_level_select_default: Default
|
4
4
|
- multi_level_select_return_all_selected: Return All Selected
|
5
|
+
- multi_level_select_selected_ids: Selected Ids
|
5
6
|
- multi_level_select_with_form: With Form
|
6
7
|
|
7
8
|
react:
|
8
9
|
- multi_level_select_default: Default
|
9
10
|
- multi_level_select_return_all_selected: Return All Selected
|
11
|
+
- multi_level_select_selected_ids: Selected Ids
|
10
12
|
|
@@ -1,2 +1,3 @@
|
|
1
1
|
export { default as MultiLevelSelectDefault } from './_multi_level_select_default.jsx'
|
2
|
-
export { default as MultiLevelSelectReturnAllSelected } from './_multi_level_select_return_all_selected.jsx'
|
2
|
+
export { default as MultiLevelSelectReturnAllSelected } from './_multi_level_select_return_all_selected.jsx'
|
3
|
+
export { default as MultiLevelSelectSelectedIds } from "./_multi_level_select_selected_ids.jsx"
|
@@ -9,6 +9,8 @@ module Playbook
|
|
9
9
|
default: []
|
10
10
|
prop :return_all_selected, type: Playbook::Props::Boolean,
|
11
11
|
default: false
|
12
|
+
prop :selected_ids, type: Playbook::Props::Array,
|
13
|
+
default: []
|
12
14
|
prop :input_display, type: Playbook::Props::Enum,
|
13
15
|
values: %w[pills none],
|
14
16
|
default: "pills"
|
@@ -24,6 +26,7 @@ module Playbook
|
|
24
26
|
name: name,
|
25
27
|
treeData: tree_data,
|
26
28
|
returnAllSelected: return_all_selected,
|
29
|
+
selectedIds: selected_ids,
|
27
30
|
}
|
28
31
|
end
|
29
32
|
end
|
@@ -8,10 +8,12 @@ import Caption from '../pb_caption/_caption'
|
|
8
8
|
|
9
9
|
type SectionSeparatorProps = {
|
10
10
|
aria?: { [key: string]: string; },
|
11
|
+
children?: React.ReactChild[] | React.ReactChild,
|
11
12
|
className?: string,
|
12
13
|
dark?: boolean,
|
13
14
|
data?: { [key: string]: string; },
|
14
15
|
id?: string,
|
16
|
+
lineStyle?: "solid" | "dashed",
|
15
17
|
orientation?: "horizontal" | "vertical",
|
16
18
|
text?: string,
|
17
19
|
variant?: "card" | "background",
|
@@ -20,9 +22,11 @@ type SectionSeparatorProps = {
|
|
20
22
|
const SectionSeparator = (props: SectionSeparatorProps) => {
|
21
23
|
const {
|
22
24
|
aria = {},
|
25
|
+
children,
|
23
26
|
className,
|
24
27
|
data = {},
|
25
28
|
id,
|
29
|
+
lineStyle = 'solid',
|
26
30
|
orientation = 'horizontal',
|
27
31
|
text,
|
28
32
|
dark = false,
|
@@ -30,21 +34,22 @@ const SectionSeparator = (props: SectionSeparatorProps) => {
|
|
30
34
|
} = props
|
31
35
|
const ariaProps = buildAriaProps(aria)
|
32
36
|
const dataProps = buildDataProps(data)
|
33
|
-
const classes = classnames(buildCss('pb_section_separator_kit', variant, orientation), globalProps(props), className)
|
37
|
+
const classes = classnames(buildCss('pb_section_separator_kit', variant, orientation, lineStyle === "dashed" ? lineStyle : ""), globalProps(props), className)
|
34
38
|
|
35
39
|
return (
|
36
40
|
|
37
41
|
<div
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
{...ariaProps}
|
43
|
+
{...dataProps}
|
44
|
+
className={classes}
|
45
|
+
id={id}
|
42
46
|
>
|
43
47
|
{
|
48
|
+
children && children ||
|
44
49
|
text && (
|
45
50
|
<span>
|
46
|
-
|
47
|
-
|
51
|
+
<Caption text={text} dark={dark} />
|
52
|
+
</span>
|
48
53
|
)
|
49
54
|
}
|
50
55
|
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= pb_rails("section_separator", props: { line_style: "dashed" }) do %>
|
2
|
+
<%= pb_rails("card", props: {
|
3
|
+
border_radius: "rounded",
|
4
|
+
justify_content: "center",
|
5
|
+
padding: "none"
|
6
|
+
}) do %>
|
7
|
+
<%= pb_rails("caption", props: {
|
8
|
+
text: "TODAY",
|
9
|
+
size: "xs",
|
10
|
+
padding_left: "xs",
|
11
|
+
padding_right: "xs"
|
12
|
+
}) %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { SectionSeparator, Card, Caption } from '../../'
|
3
|
+
|
4
|
+
const children = (
|
5
|
+
<Card
|
6
|
+
borderRadius="rounded"
|
7
|
+
justifyContent="center"
|
8
|
+
padding="none"
|
9
|
+
>
|
10
|
+
<Caption
|
11
|
+
paddingLeft="xs"
|
12
|
+
paddingRight="xs"
|
13
|
+
size="xs"
|
14
|
+
text="TODAY"
|
15
|
+
/>
|
16
|
+
</Card>
|
17
|
+
)
|
18
|
+
|
19
|
+
const SectionSeparatorChildren = (props) => {
|
20
|
+
return (
|
21
|
+
<SectionSeparator
|
22
|
+
{...props}
|
23
|
+
lineStyle='dashed'
|
24
|
+
>
|
25
|
+
{children}
|
26
|
+
</SectionSeparator>
|
27
|
+
)
|
28
|
+
}
|
29
|
+
|
30
|
+
export default SectionSeparatorChildren
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("section_separator", props: { line_style: "dashed" }) %>
|
@@ -1 +1 @@
|
|
1
|
-
<%= pb_rails("section_separator", props: { text: "
|
1
|
+
<%= pb_rails("section_separator", props: { text: "Text Separator" }) %>
|
@@ -1,12 +1,15 @@
|
|
1
1
|
examples:
|
2
2
|
|
3
3
|
rails:
|
4
|
-
- section_separator_text: Text Separator
|
5
4
|
- section_separator_line: Line Separator
|
5
|
+
- section_separator_dashed: Dashed Separator
|
6
|
+
- section_separator_text: Text Separator
|
6
7
|
- section_separator_vertical: Vertical
|
7
|
-
|
8
|
+
- section_separator_children: Children
|
8
9
|
|
9
10
|
react:
|
10
|
-
- section_separator_text: Text Separator
|
11
11
|
- section_separator_line: Line Separator
|
12
|
+
- section_separator_dashed: Dashed Separator
|
13
|
+
- section_separator_text: Text Separator
|
12
14
|
- section_separator_vertical: Vertical
|
15
|
+
- section_separator_children: Children
|
@@ -1,3 +1,5 @@
|
|
1
1
|
export { default as SectionSeparatorLine } from './_section_separator_line.jsx'
|
2
2
|
export { default as SectionSeparatorText } from './_section_separator_text.jsx'
|
3
3
|
export { default as SectionSeparatorVertical } from './_section_separator_vertical.jsx'
|
4
|
+
export { default as SectionSeparatorDashed } from './_section_separator_dashed.jsx'
|
5
|
+
export { default as SectionSeparatorChildren } from './_section_separator_children.jsx'
|
@@ -4,9 +4,11 @@
|
|
4
4
|
data: object.data,
|
5
5
|
class: object.classname) do %>
|
6
6
|
<% if object.orientation === 'horizontal' %>
|
7
|
-
<% if
|
7
|
+
<% if content %>
|
8
|
+
<%= content %>
|
9
|
+
<% elsif object.text %>
|
8
10
|
<span><%= pb_rails("caption", props: { text: object.text }) %></span>
|
9
|
-
<%end%>
|
11
|
+
<% end %>
|
10
12
|
<% end %>
|
11
13
|
<% if object.orientation === 'vertical' %>
|
12
14
|
<%= pb_rails("flex", props: { orientation: "column"}) do %>
|
@@ -12,9 +12,12 @@ module Playbook
|
|
12
12
|
default: "horizontal"
|
13
13
|
prop :dark, type: Playbook::Props::Boolean,
|
14
14
|
default: false
|
15
|
+
prop :line_style, type: Playbook::Props::Enum,
|
16
|
+
values: %w[dashed solid],
|
17
|
+
default: "solid"
|
15
18
|
|
16
19
|
def classname
|
17
|
-
generate_classname("pb_section_separator_kit", variant, orientation)
|
20
|
+
generate_classname("pb_section_separator_kit", variant, orientation, line_style == "dashed" ? "dashed" : nil)
|
18
21
|
end
|
19
22
|
|
20
23
|
private
|
@@ -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 { buildCss } from "../utilities/props";
|
6
5
|
import { globalProps, 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";
|
@@ -13,7 +13,7 @@ type TimeProps = {
|
|
13
13
|
align?: "left" | "center" | "right";
|
14
14
|
className?: string | string[];
|
15
15
|
data?: string;
|
16
|
-
date:
|
16
|
+
date: Date;
|
17
17
|
dark?: boolean;
|
18
18
|
id?: string;
|
19
19
|
showIcon?: boolean;
|
@@ -41,8 +41,6 @@ const Time = (props: TimeProps) => {
|
|
41
41
|
className
|
42
42
|
);
|
43
43
|
|
44
|
-
const dateTimestamp = new DateTime({ value: date, zone: timeZone });
|
45
|
-
|
46
44
|
return (
|
47
45
|
<div className={classes}>
|
48
46
|
{showIcon && (
|
@@ -70,18 +68,18 @@ const Time = (props: TimeProps) => {
|
|
70
68
|
)
|
71
69
|
)}
|
72
70
|
|
73
|
-
<time dateTime={date}>
|
71
|
+
<time dateTime={date.toString()}>
|
74
72
|
<span>
|
75
73
|
{unstyled
|
76
74
|
? (
|
77
75
|
<>
|
78
76
|
<span>
|
79
|
-
{
|
77
|
+
{DateTime.toTimeWithMeridiem(date, timeZone)}
|
80
78
|
</span>
|
81
79
|
{" "}
|
82
80
|
{showTimezone && (
|
83
81
|
<span>
|
84
|
-
{
|
82
|
+
{DateTime.toTimeZone(date, timeZone)}
|
85
83
|
</span>
|
86
84
|
)}
|
87
85
|
</>
|
@@ -92,13 +90,13 @@ const Time = (props: TimeProps) => {
|
|
92
90
|
<Body
|
93
91
|
className="pb_time"
|
94
92
|
tag="span"
|
95
|
-
text={
|
93
|
+
text={DateTime.toTimeWithMeridiem(date, timeZone)}
|
96
94
|
/>{" "}
|
97
95
|
{showTimezone && (
|
98
96
|
<Body
|
99
97
|
color="light"
|
100
98
|
tag="span"
|
101
|
-
text={
|
99
|
+
text={DateTime.toTimeZone(date, timeZone)}
|
102
100
|
/>
|
103
101
|
)}
|
104
102
|
</>
|
@@ -108,13 +106,13 @@ const Time = (props: TimeProps) => {
|
|
108
106
|
<Caption
|
109
107
|
color="light"
|
110
108
|
tag="span"
|
111
|
-
text={
|
109
|
+
text={DateTime.toTimeWithMeridiem(date, timeZone)}
|
112
110
|
/>{" "}
|
113
111
|
{showTimezone && (
|
114
112
|
<Caption
|
115
113
|
color="light"
|
116
114
|
tag="span"
|
117
|
-
text={
|
115
|
+
text={DateTime.toTimeZone(date, timeZone)}
|
118
116
|
/>
|
119
117
|
)}
|
120
118
|
</>
|