playbook_ui 9.4.0.pre.alpha2 → 9.6.1.pre.deps1
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/data/menu.yml +1 -0
- data/app/pb_kits/playbook/index.js +4 -3
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +2 -1
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +3 -2
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.jsx +67 -9
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +11 -45
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +6 -17
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +5 -12
- data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +16 -32
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +4 -23
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +8 -12
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +2 -9
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.html.erb +1 -8
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +1 -19
- data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +1 -1
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -6
- data/app/pb_kits/playbook/pb_icon/_icon.jsx +20 -5
- data/app/pb_kits/playbook/pb_icon/icon.html.erb +4 -2
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +1 -0
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
- data/app/pb_kits/playbook/pb_nav/_item.jsx +0 -2
- data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -2
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.jsx +205 -0
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +73 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.jsx +33 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.html.erb +3 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.jsx +31 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.md +1 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.html.erb +16 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.jsx +56 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.md +1 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +10 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +68 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.md +9 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.jsx +33 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.md +3 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.html.erb +26 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.jsx +54 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.md +1 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_passphrase/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +1 -0
- data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +36 -0
- data/app/pb_kits/playbook/pb_passphrase/passphrase.test.jsx +123 -0
- data/app/pb_kits/playbook/pb_passphrase/passwordStrength.js +55 -0
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +3 -7
- data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +2 -2
- data/app/pb_kits/playbook/react_rails_kits.js +1 -0
- data/lib/playbook/version.rb +1 -1
- metadata +35 -16
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.html.erb +0 -5
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.jsx +0 -38
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3b9ef21adf192741b943e8414384710c8dd469b4ff4e22ed575b644b768947d
|
4
|
+
data.tar.gz: 509d73ae151722f9197a7b306f3c654275cd5da415827f763272caf418aa36de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb93e79a227425f0aa6128daf4e796fd046e2f3cd4bd6bd285a87e203a86e4a292753beecd9ab2ae922c548358ce8b5e2ce91deec36d4288e5464d36b6bdf7e7
|
7
|
+
data.tar.gz: 18ac690831680a74b24379e326ca925a5dabc7acb0ac5b53cc657bca2766b1aff4c8e2a517faf12f1aa9876542e2a11ac09a60e0325911ff19fe72119b818e42
|
@@ -55,6 +55,7 @@
|
|
55
55
|
@import 'pb_multiple_users_stacked/multiple_users_stacked';
|
56
56
|
@import 'pb_nav/nav';
|
57
57
|
@import 'pb_online_status/online_status';
|
58
|
+
@import 'pb_passphrase/passphrase';
|
58
59
|
@import 'pb_person/person';
|
59
60
|
@import 'pb_person_contact/person_contact';
|
60
61
|
@import 'pb_pill/pill';
|
@@ -61,6 +61,7 @@ export MultipleUsersStacked from './pb_multiple_users_stacked/_multiple_users_st
|
|
61
61
|
export Nav from './pb_nav/_nav.jsx'
|
62
62
|
export NavItem from './pb_nav/_item.jsx'
|
63
63
|
export OnlineStatus from './pb_online_status/_online_status.jsx'
|
64
|
+
export Passphrase from './pb_passphrase/_passphrase.jsx'
|
64
65
|
export PbReactPopover from './pb_popover/_popover.jsx'
|
65
66
|
export Person from './pb_person/_person.jsx'
|
66
67
|
export PersonContact from './pb_person_contact/_person_contact.jsx'
|
@@ -84,13 +85,13 @@ export StatChange from './pb_stat_change/_stat_change.jsx'
|
|
84
85
|
export StatValue from './pb_stat_value/_stat_value.jsx'
|
85
86
|
export Table from './pb_table/_table.jsx'
|
86
87
|
export TableRow from './pb_table/_table_row.jsx'
|
87
|
-
export Textarea from './pb_textarea/_textarea.jsx'
|
88
88
|
export TextInput from './pb_text_input/_text_input.jsx'
|
89
|
+
export Textarea from './pb_textarea/_textarea.jsx'
|
89
90
|
export Time from './pb_time/_time.jsx'
|
90
|
-
export
|
91
|
+
export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
|
91
92
|
export TimeStacked from './pb_time_stacked/_time_stacked.jsx'
|
93
|
+
export Timeline from './pb_timeline/_timeline.jsx'
|
92
94
|
export Timestamp from './pb_timestamp/_timestamp.jsx'
|
93
|
-
export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
|
94
95
|
export Title from './pb_title/_title.jsx'
|
95
96
|
export TitleCount from './pb_title_count/_title_count.jsx'
|
96
97
|
export TitleDetail from './pb_title_detail/_title_detail.jsx'
|
@@ -53,9 +53,10 @@ const Checkbox = (props: CheckboxProps) => {
|
|
53
53
|
|
54
54
|
useEffect(() => {
|
55
55
|
if (checkRef.current) {
|
56
|
+
checkRef.current.checked = checked
|
56
57
|
checkRef.current.indeterminate = indeterminate
|
57
58
|
}
|
58
|
-
}, [indeterminate])
|
59
|
+
}, [indeterminate, checked])
|
59
60
|
|
60
61
|
return (
|
61
62
|
<label
|
@@ -4,12 +4,13 @@
|
|
4
4
|
$transition: $transition_cubic;
|
5
5
|
|
6
6
|
[class^=pb_checkbox_kit] {
|
7
|
-
display: inline-flex;
|
8
7
|
cursor: pointer;
|
8
|
+
display: inline-flex;
|
9
|
+
vertical-align: middle;
|
9
10
|
.pb_checkbox_label {
|
10
|
-
padding-left: $space_xs;
|
11
11
|
cursor: pointer;
|
12
12
|
font-size: $text_lt_default;
|
13
|
+
padding-left: $space_xs;
|
13
14
|
user-select: none;
|
14
15
|
}
|
15
16
|
|
@@ -1,15 +1,73 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import { Checkbox } from '../..'
|
1
|
+
import React, { useState } from 'react'
|
2
|
+
import { Checkbox, Table } from '../..'
|
3
3
|
|
4
4
|
const CheckboxIndeterminate = (props) => {
|
5
|
+
const [checkboxes, setCheckboxes] = useState([
|
6
|
+
{ name: 'Coffee', checked: false },
|
7
|
+
{ name: 'Ice Cream', checked: false },
|
8
|
+
{ name: 'Chocolate', checked: true },
|
9
|
+
])
|
10
|
+
|
11
|
+
const isAllChecked = !checkboxes.find((checkbox) => !checkbox.checked)
|
12
|
+
const isNoneChecked = !checkboxes.find((checkbox) => checkbox.checked)
|
13
|
+
|
14
|
+
const processCheckboxes = (checked) =>
|
15
|
+
checkboxes.slice(0).map((checkbox) => {
|
16
|
+
checkbox.checked = checked
|
17
|
+
return checkbox
|
18
|
+
})
|
19
|
+
|
20
|
+
const onToggleAll = () => {
|
21
|
+
setCheckboxes(
|
22
|
+
isNoneChecked ? processCheckboxes(true) : processCheckboxes(false)
|
23
|
+
)
|
24
|
+
}
|
25
|
+
|
26
|
+
const updateCheckboxes = (checkbox, index) => {
|
27
|
+
const newCheckboxes = checkboxes.slice(0)
|
28
|
+
newCheckboxes[index].checked = !checkbox.checked
|
29
|
+
setCheckboxes(newCheckboxes)
|
30
|
+
}
|
31
|
+
|
5
32
|
return (
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
33
|
+
<Table
|
34
|
+
container={false}
|
35
|
+
size="md"
|
36
|
+
>
|
37
|
+
<thead>
|
38
|
+
<tr>
|
39
|
+
<th>
|
40
|
+
<Checkbox
|
41
|
+
checked={isAllChecked}
|
42
|
+
indeterminate={!isAllChecked && !isNoneChecked}
|
43
|
+
name="checkbox-name"
|
44
|
+
onChange={onToggleAll}
|
45
|
+
text={isNoneChecked ? 'Check All' : 'Uncheck All'}
|
46
|
+
value="check-box value"
|
47
|
+
{...props}
|
48
|
+
/>
|
49
|
+
</th>
|
50
|
+
</tr>
|
51
|
+
</thead>
|
52
|
+
<tbody>
|
53
|
+
{checkboxes.map((checkbox, index) => (
|
54
|
+
<tr key={index}>
|
55
|
+
<td>
|
56
|
+
<Checkbox
|
57
|
+
checked={checkbox.checked}
|
58
|
+
name={checkbox.name}
|
59
|
+
onChange={() => {
|
60
|
+
updateCheckboxes(checkbox, index)
|
61
|
+
}}
|
62
|
+
text={checkbox.name}
|
63
|
+
value="check-box value"
|
64
|
+
{...props}
|
65
|
+
/>
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
))}
|
69
|
+
</tbody>
|
70
|
+
</Table>
|
13
71
|
)
|
14
72
|
}
|
15
73
|
|
@@ -9,7 +9,6 @@ import { globalProps } from '../utilities/globalProps.js'
|
|
9
9
|
|
10
10
|
type DateStackedProps = {
|
11
11
|
align?: "left" | "center" | "right",
|
12
|
-
bold?: boolean,
|
13
12
|
className?: string | array<string>,
|
14
13
|
dark?: boolean,
|
15
14
|
data?: string,
|
@@ -27,7 +26,6 @@ const sizes = {
|
|
27
26
|
const DateStacked = (props: DateStackedProps) => {
|
28
27
|
const {
|
29
28
|
align = 'left',
|
30
|
-
bold = false,
|
31
29
|
reverse = false,
|
32
30
|
className,
|
33
31
|
dark = false,
|
@@ -48,51 +46,19 @@ const DateStacked = (props: DateStackedProps) => {
|
|
48
46
|
const inputYear = dateTimestamp.toYear().toString()
|
49
47
|
|
50
48
|
return (
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
/>
|
63
|
-
</div>
|
64
|
-
<If condition={currentYear != inputYear}>
|
65
|
-
<Caption size="xs">{inputYear}</Caption>
|
66
|
-
</If>
|
67
|
-
</div>
|
68
|
-
<Else />
|
69
|
-
<>
|
70
|
-
<div className={classes}>
|
71
|
-
<div className="pb_date_stacked_day_month">
|
72
|
-
|
73
|
-
<Title
|
74
|
-
bold
|
75
|
-
dark={dark}
|
76
|
-
size="4"
|
77
|
-
text={dateTimestamp.toMonth()}
|
78
|
-
/>
|
79
|
-
<Title
|
80
|
-
bold
|
81
|
-
dark={dark}
|
82
|
-
size="4"
|
83
|
-
text={dateTimestamp.toDay()}
|
84
|
-
/>
|
85
|
-
<If condition={currentYear != inputYear}>
|
86
|
-
<Title size="4">{inputYear}</Title>
|
87
|
-
</If>
|
88
|
-
</div>
|
89
|
-
|
90
|
-
</div>
|
91
|
-
|
92
|
-
</>
|
49
|
+
<div className={classes}>
|
50
|
+
<div className="pb_date_stacked_day_month">
|
51
|
+
<Caption text={dateTimestamp.toMonth().toUpperCase()} />
|
52
|
+
<Title
|
53
|
+
dark={dark}
|
54
|
+
size={sizes[size]}
|
55
|
+
text={dateTimestamp.toDay()}
|
56
|
+
/>
|
57
|
+
</div>
|
58
|
+
<If condition={currentYear != inputYear}>
|
59
|
+
<Caption size="xs">{inputYear}</Caption>
|
93
60
|
</If>
|
94
61
|
</div>
|
95
|
-
|
96
62
|
)
|
97
63
|
}
|
98
64
|
|
@@ -3,22 +3,11 @@
|
|
3
3
|
data: object.data,
|
4
4
|
class: object.classname) do %>
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<% else %>
|
15
|
-
<div class="pb_date_stacked_day_month">
|
16
|
-
<%= pb_rails("title", props: { text: object.month, size: 4 }) %>
|
17
|
-
<%= pb_rails("title", props: { text: object.day, size: 4 }) do %><% end %>
|
18
|
-
<%= pb_rails("title", props: { text: object.year, size:4 }) %>
|
19
|
-
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<% end %>
|
6
|
+
<div class="pb_date_stacked_day_month">
|
7
|
+
<%= pb_rails("caption", props: { text: object.month }) %>
|
8
|
+
<%= pb_rails("title", props: { text: object.day , size: object.title_size }) do %>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
11
|
+
<%= pb_rails("caption", props: { text: object.year, size:"xs" }) %>
|
23
12
|
|
24
13
|
<% end %>
|
@@ -14,11 +14,9 @@ module Playbook
|
|
14
14
|
default: false
|
15
15
|
prop :dark, type: Playbook::Props::Boolean,
|
16
16
|
default: false
|
17
|
-
prop :bold, type: Playbook::Props::Boolean,
|
18
|
-
default: false
|
19
17
|
|
20
18
|
def classname
|
21
|
-
generate_classname("pb_date_stacked_kit", align, size,
|
19
|
+
generate_classname("pb_date_stacked_kit", align, size, reverse_class, dark_class)
|
22
20
|
end
|
23
21
|
|
24
22
|
def title_size
|
@@ -33,7 +31,10 @@ module Playbook
|
|
33
31
|
end
|
34
32
|
|
35
33
|
def month
|
36
|
-
|
34
|
+
month = Playbook::PbKit::PbDateTime.new(date)
|
35
|
+
content_tag(:time, datetime: month.to_iso) do
|
36
|
+
"#{month.to_month}"
|
37
|
+
end
|
37
38
|
end
|
38
39
|
|
39
40
|
def year
|
@@ -47,16 +48,8 @@ module Playbook
|
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
50
|
-
def bold_class
|
51
|
-
bold ? "bold" : nil
|
52
|
-
end
|
53
|
-
|
54
51
|
private
|
55
52
|
|
56
|
-
def pb_date_time
|
57
|
-
Playbook::PbKit::PbDateTime.new(date)
|
58
|
-
end
|
59
|
-
|
60
53
|
def reverse_class
|
61
54
|
reverse ? "reverse" : nil
|
62
55
|
end
|
@@ -6,12 +6,10 @@ examples:
|
|
6
6
|
- date_stacked_reverse: Day & Month Reverse
|
7
7
|
- date_stacked_sizes: Sizes
|
8
8
|
- date_stacked_align: Alignment
|
9
|
-
- date_stacked_bold: Bold
|
10
|
-
|
11
9
|
|
12
10
|
react:
|
13
11
|
- date_stacked_default: Default
|
14
12
|
- date_stacked_not_current_year: Not Current Year
|
15
13
|
- date_stacked_reverse: Day & Month Reverse
|
16
14
|
- date_stacked_sizes: Sizes
|
17
|
-
-
|
15
|
+
- date_stacked_align: Alignment
|
@@ -1,4 +1,3 @@
|
|
1
|
-
export { default as DateStackedBold } from './_date_stacked_bold.jsx'
|
2
1
|
export { default as DateStackedDefault } from './_date_stacked_default.jsx'
|
3
2
|
export { default as DateStackedNotCurrentYear } from './_date_stacked_not_current_year.jsx'
|
4
3
|
export { default as DateStackedReverse } from './_date_stacked_reverse.jsx'
|
@@ -1,59 +1,43 @@
|
|
1
|
-
|
2
1
|
/* @flow */
|
3
2
|
|
4
3
|
import React from 'react'
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
|
8
|
-
import { DateStacked, Flex, FlexItem, SectionSeparator, TimeStacked } from '../'
|
4
|
+
import { DateStacked, Flex, FlexItem, TimeStacked } from '../'
|
5
|
+
import { buildDataProps } from '../utilities/props'
|
6
|
+
import { globalProps } from '../utilities/globalProps.js'
|
9
7
|
|
10
8
|
type DateTimeStackedProps = {
|
9
|
+
data?: string,
|
11
10
|
id?: string,
|
12
|
-
date:
|
13
|
-
datetime: string,
|
11
|
+
date: date,
|
14
12
|
dark: boolean,
|
15
|
-
timeZone?: string,
|
16
13
|
}
|
17
14
|
|
18
15
|
const DateTimeStacked = (props: DateTimeStackedProps) => {
|
19
|
-
|
20
|
-
|
21
|
-
const {
|
22
|
-
date,
|
23
|
-
datetime,
|
24
|
-
dark,
|
25
|
-
timeZone = 'America/New_York',
|
26
|
-
} = props
|
27
|
-
|
28
|
-
const classes = buildCss('pb_date_time_stacked_kit', globalProps(props))
|
16
|
+
const { date, data = {}, dark } = props,
|
17
|
+
dataProps = buildDataProps(data)
|
29
18
|
|
30
19
|
return (
|
31
20
|
<Flex
|
32
|
-
|
33
|
-
|
34
|
-
|
21
|
+
className={globalProps(props)}
|
22
|
+
orientation="row"
|
23
|
+
vertical="center"
|
24
|
+
{...dataProps}
|
35
25
|
>
|
36
26
|
<FlexItem>
|
37
27
|
<DateStacked
|
38
28
|
align="right"
|
39
|
-
bold
|
40
29
|
dark={dark}
|
41
|
-
date={date
|
42
|
-
|
30
|
+
date={date}
|
31
|
+
reverse
|
32
|
+
size="sm"
|
43
33
|
/>
|
44
34
|
</FlexItem>
|
45
|
-
|
46
|
-
<SectionSeparator
|
47
|
-
className="date-time-padding"
|
48
|
-
orientation="vertical"
|
49
|
-
/>
|
50
35
|
<FlexItem>
|
51
36
|
<TimeStacked
|
52
|
-
className=
|
37
|
+
className="pb_date_time_stacked_kit"
|
53
38
|
dark={dark}
|
54
|
-
date={date || datetime}
|
55
39
|
tag="caption"
|
56
|
-
|
40
|
+
time={date}
|
57
41
|
/>
|
58
42
|
</FlexItem>
|
59
43
|
</Flex>
|
@@ -1,25 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
[class^=padding_month] {
|
4
|
-
padding-bottom: ($space_xs + 2) !important;
|
5
|
-
}
|
6
|
-
|
7
|
-
[class^=padding_day] {
|
8
|
-
padding-bottom: ($space_xs + 2) !important;
|
9
|
-
}
|
10
|
-
|
11
|
-
&[class*=_dark] {
|
12
|
-
& > * [class^=pb_title_kit] {
|
13
|
-
color: $text_dk_default;
|
14
|
-
}
|
15
|
-
& > * [class^=pb_caption_kit] {
|
16
|
-
color: $text_dk_light;
|
17
|
-
}
|
18
|
-
}
|
1
|
+
@import "../pb_title/title";
|
2
|
+
@import "../pb_body/body";
|
19
3
|
|
4
|
+
.pb_date_time_stacked_kit {
|
5
|
+
padding-left: $space-xs;
|
20
6
|
}
|
21
|
-
.date-time-padding {
|
22
|
-
padding-right: ($space_xs / 2);
|
23
|
-
padding-left: ($space_xs / 2);
|
24
|
-
}
|
25
|
-
|