playbook_ui 9.3.0.pre.alpha.password.strength.1 → 9.4.0.pre.alpha2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -1
  3. data/app/pb_kits/playbook/data/menu.yml +0 -1
  4. data/app/pb_kits/playbook/index.js +3 -4
  5. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +45 -11
  6. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +17 -6
  7. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +12 -5
  8. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.html.erb +5 -0
  9. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.jsx +38 -0
  10. data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +3 -1
  11. data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +1 -0
  12. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +32 -16
  13. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +23 -4
  14. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +12 -8
  15. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +9 -2
  16. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +35 -0
  17. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.html.erb +8 -1
  18. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +19 -1
  19. data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +1 -1
  20. data/app/pb_kits/playbook/pb_flex/_flex.jsx +6 -1
  21. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +7 -3
  22. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +2 -2
  23. data/app/pb_kits/playbook/react_rails_kits.js +0 -1
  24. data/lib/playbook/version.rb +1 -1
  25. metadata +5 -25
  26. data/app/pb_kits/playbook/pb_passphrase/_passphrase.jsx +0 -205
  27. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +0 -63
  28. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.jsx +0 -33
  29. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.html.erb +0 -3
  30. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.jsx +0 -31
  31. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_default.md +0 -1
  32. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.html.erb +0 -16
  33. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.jsx +0 -56
  34. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_input_props.md +0 -1
  35. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +0 -10
  36. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +0 -68
  37. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.md +0 -9
  38. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.jsx +0 -33
  39. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.md +0 -3
  40. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.html.erb +0 -26
  41. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.jsx +0 -54
  42. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_tips.md +0 -1
  43. data/app/pb_kits/playbook/pb_passphrase/docs/example.yml +0 -15
  44. data/app/pb_kits/playbook/pb_passphrase/docs/index.js +0 -6
  45. data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +0 -1
  46. data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +0 -41
  47. data/app/pb_kits/playbook/pb_passphrase/passphrase.test.jsx +0 -123
  48. data/app/pb_kits/playbook/pb_passphrase/passwordStrength.js +0 -55
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f2f364f3ddeeb9deedacb265c4740dc30e2ee30674ffac2b201a83a7ab04dfe
4
- data.tar.gz: 34ba1be5b7fb2c41b49c4942239f365ea13793e34ed1195894d5172ca5cfca61
3
+ metadata.gz: f839b72cd21876e826496faaa29c3d306c24dd29eb714e46bc269fe88c39f445
4
+ data.tar.gz: b8ee3b0cc53c15e3898c95777c96d394b5a7f9d6b659322add05c61cbfcf1b4b
5
5
  SHA512:
6
- metadata.gz: d03d13b429587603b894ad28a093ac0e0ff27c47dda184f0f655ba017405e7fcf6b14c2f75907b6c57c47156639fb9c5eba0d232bcf535bfbde2ba8fca9d0dcf
7
- data.tar.gz: 989a00fe0377210d658918ebf38ef93f49621a9c4bdfd6c87c87f8914d09aa7f40ec58eaa1a46ddaaef52aca55d30662bf63049c4638352ec8705d684e19777c
6
+ metadata.gz: cfdc5aa4001dd522efc77c2919c45ce514eebe0a6f8b8754ebecdce36823f5647880432f3f4a66e540a48a6683864a35ce7aca7117709b8a35ce3e06511813c3
7
+ data.tar.gz: 3ca9ce55526340f77d313ff6e9e1bb5e3fd34cb4319df3a9432511b8852872653410658d456746fb949bbf96105c7d300c598c928a6099f776a8b70e2847552c
@@ -55,7 +55,6 @@
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';
59
58
  @import 'pb_person/person';
60
59
  @import 'pb_person_contact/person_contact';
61
60
  @import 'pb_pill/pill';
@@ -26,7 +26,6 @@ kits:
26
26
  - form
27
27
  - form_group
28
28
  - form_pill
29
- - passphrase
30
29
  - radio
31
30
  - rich_text_editor
32
31
  - select
@@ -61,7 +61,6 @@ 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'
65
64
  export PbReactPopover from './pb_popover/_popover.jsx'
66
65
  export Person from './pb_person/_person.jsx'
67
66
  export PersonContact from './pb_person_contact/_person_contact.jsx'
@@ -85,13 +84,13 @@ export StatChange from './pb_stat_change/_stat_change.jsx'
85
84
  export StatValue from './pb_stat_value/_stat_value.jsx'
86
85
  export Table from './pb_table/_table.jsx'
87
86
  export TableRow from './pb_table/_table_row.jsx'
88
- export TextInput from './pb_text_input/_text_input.jsx'
89
87
  export Textarea from './pb_textarea/_textarea.jsx'
88
+ export TextInput from './pb_text_input/_text_input.jsx'
90
89
  export Time from './pb_time/_time.jsx'
91
- export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
92
- export TimeStacked from './pb_time_stacked/_time_stacked.jsx'
93
90
  export Timeline from './pb_timeline/_timeline.jsx'
91
+ export TimeStacked from './pb_time_stacked/_time_stacked.jsx'
94
92
  export Timestamp from './pb_timestamp/_timestamp.jsx'
93
+ export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
95
94
  export Title from './pb_title/_title.jsx'
96
95
  export TitleCount from './pb_title_count/_title_count.jsx'
97
96
  export TitleDetail from './pb_title_detail/_title_detail.jsx'
@@ -9,6 +9,7 @@ import { globalProps } from '../utilities/globalProps.js'
9
9
 
10
10
  type DateStackedProps = {
11
11
  align?: "left" | "center" | "right",
12
+ bold?: boolean,
12
13
  className?: string | array<string>,
13
14
  dark?: boolean,
14
15
  data?: string,
@@ -26,6 +27,7 @@ const sizes = {
26
27
  const DateStacked = (props: DateStackedProps) => {
27
28
  const {
28
29
  align = 'left',
30
+ bold = false,
29
31
  reverse = false,
30
32
  className,
31
33
  dark = false,
@@ -46,19 +48,51 @@ const DateStacked = (props: DateStackedProps) => {
46
48
  const inputYear = dateTimestamp.toYear().toString()
47
49
 
48
50
  return (
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>
51
+
52
+ <div>
53
+ <If condition={bold == false}>
54
+
55
+ <div className={classes}>
56
+ <div className="pb_date_stacked_day_month">
57
+ <Caption text={dateTimestamp.toMonth().toUpperCase()} />
58
+ <Title
59
+ dark={dark}
60
+ size={sizes[size]}
61
+ text={dateTimestamp.toDay()}
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
+ </>
60
93
  </If>
61
94
  </div>
95
+
62
96
  )
63
97
  }
64
98
 
@@ -3,11 +3,22 @@
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
5
 
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" }) %>
6
+ <% if object.bold == false %>
7
+
8
+ <div class="pb_date_stacked_day_month">
9
+ <%= pb_rails("caption", props: { text: object.month }) %>
10
+ <%= pb_rails("title", props: { text: object.day , size: object.title_size }) do %><% end %>
11
+ <%= pb_rails("caption", props: { text: object.year, size:"xs" }) %>
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 %>
12
23
 
13
24
  <% end %>
@@ -14,9 +14,11 @@ 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
17
19
 
18
20
  def classname
19
- generate_classname("pb_date_stacked_kit", align, size, reverse_class, dark_class)
21
+ generate_classname("pb_date_stacked_kit", align, size, bold, reverse_class, dark_class)
20
22
  end
21
23
 
22
24
  def title_size
@@ -31,10 +33,7 @@ module Playbook
31
33
  end
32
34
 
33
35
  def month
34
- month = Playbook::PbKit::PbDateTime.new(date)
35
- content_tag(:time, datetime: month.to_iso) do
36
- "#{month.to_month}"
37
- end
36
+ pb_date_time.to_month.capitalize
38
37
  end
39
38
 
40
39
  def year
@@ -48,8 +47,16 @@ module Playbook
48
47
  end
49
48
  end
50
49
 
50
+ def bold_class
51
+ bold ? "bold" : nil
52
+ end
53
+
51
54
  private
52
55
 
56
+ def pb_date_time
57
+ Playbook::PbKit::PbDateTime.new(date)
58
+ end
59
+
53
60
  def reverse_class
54
61
  reverse ? "reverse" : nil
55
62
  end
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "left", bold: true }) %>
2
+ <br>
3
+ <%= pb_rails("date_stacked", props: { date: Date.new(2018, 03, 20), align: "center", bold: true }) %>
4
+ <br>
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "right", bold: true }) %>
@@ -0,0 +1,38 @@
1
+ import React from 'react'
2
+ import DateStacked from '../_date_stacked.jsx'
3
+
4
+ const DateStackedBold = (props) => {
5
+ return (
6
+ <div>
7
+ <DateStacked
8
+ align="left"
9
+ bold
10
+ date={new Date()}
11
+ {...props}
12
+ />
13
+
14
+ <br />
15
+
16
+ <DateStacked
17
+ align="center"
18
+ bold
19
+ date={new Date('20 Mar 2018')}
20
+ {...props}
21
+ />
22
+
23
+ <br />
24
+
25
+ <DateStacked
26
+ align="right"
27
+ bold
28
+ date={new Date()}
29
+ {...props}
30
+ />
31
+
32
+ <br />
33
+
34
+ </div>
35
+ )
36
+ }
37
+
38
+ export default DateStackedBold
@@ -6,10 +6,12 @@ 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
+
9
11
 
10
12
  react:
11
13
  - date_stacked_default: Default
12
14
  - date_stacked_not_current_year: Not Current Year
13
15
  - date_stacked_reverse: Day & Month Reverse
14
16
  - date_stacked_sizes: Sizes
15
- - date_stacked_align: Alignment
17
+ - date_stacked_bold: Bold
@@ -1,3 +1,4 @@
1
+ export { default as DateStackedBold } from './_date_stacked_bold.jsx'
1
2
  export { default as DateStackedDefault } from './_date_stacked_default.jsx'
2
3
  export { default as DateStackedNotCurrentYear } from './_date_stacked_not_current_year.jsx'
3
4
  export { default as DateStackedReverse } from './_date_stacked_reverse.jsx'
@@ -1,43 +1,59 @@
1
+
1
2
  /* @flow */
2
3
 
3
4
  import React from 'react'
4
- import { DateStacked, Flex, FlexItem, TimeStacked } from '../'
5
- import { buildDataProps } from '../utilities/props'
6
- import { globalProps } from '../utilities/globalProps.js'
5
+ import { buildCss } from '../utilities/props'
6
+ import { deprecatedProps, globalProps } from '../utilities/globalProps.js'
7
+
8
+ import { DateStacked, Flex, FlexItem, SectionSeparator, TimeStacked } from '../'
7
9
 
8
10
  type DateTimeStackedProps = {
9
- data?: string,
10
11
  id?: string,
11
- date: date,
12
+ date: string,
13
+ datetime: string,
12
14
  dark: boolean,
15
+ timeZone?: string,
13
16
  }
14
17
 
15
18
  const DateTimeStacked = (props: DateTimeStackedProps) => {
16
- const { date, data = {}, dark } = props,
17
- dataProps = buildDataProps(data)
19
+ if (props.date) deprecatedProps('Date Time Stacked', ['date'])
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))
18
29
 
19
30
  return (
20
31
  <Flex
21
- className={globalProps(props)}
22
- orientation="row"
23
- vertical="center"
24
- {...dataProps}
32
+ inline="flex-container"
33
+ vertical="stretch"
34
+ {...props}
25
35
  >
26
36
  <FlexItem>
27
37
  <DateStacked
28
38
  align="right"
39
+ bold
29
40
  dark={dark}
30
- date={date}
31
- reverse
32
- size="sm"
41
+ date={date || datetime}
42
+ timeZone={timeZone}
33
43
  />
34
44
  </FlexItem>
45
+
46
+ <SectionSeparator
47
+ className="date-time-padding"
48
+ orientation="vertical"
49
+ />
35
50
  <FlexItem>
36
51
  <TimeStacked
37
- className="pb_date_time_stacked_kit"
52
+ className={classes}
38
53
  dark={dark}
54
+ date={date || datetime}
39
55
  tag="caption"
40
- time={date}
56
+ timeZone={timeZone}
41
57
  />
42
58
  </FlexItem>
43
59
  </Flex>
@@ -1,6 +1,25 @@
1
- @import "../pb_title/title";
2
- @import "../pb_body/body";
1
+ [class^=pb_date_time_stacked] {
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
+ }
3
19
 
4
- .pb_date_time_stacked_kit {
5
- padding-left: $space-xs;
6
20
  }
21
+ .date-time-padding {
22
+ padding-right: ($space_xs / 2);
23
+ padding-left: ($space_xs / 2);
24
+ }
25
+
@@ -1,13 +1,17 @@
1
1
  <%= content_tag(:div,
2
2
  id: object.id,
3
3
  data: object.data,
4
- class: object.classname) do %>
5
- <%= pb_rails("flex", props: { orientation: "row", vertical: "center" }) do %>
6
- <%= pb_rails("flex/flex_item") do %>
7
- <%= pb_rails("date_stacked", props: { align: "right", date: object.date, reverse: true, size: "sm", dark: object.dark }) %>
4
+ class: object.classname,
5
+ aria: object.aria) do %>
6
+
7
+ <%= pb_rails("flex", props: {classname: "flex-container", vertical: "stretch"}) do %>
8
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
9
+ <%= pb_rails("date_stacked", props: { date: object.date_time_value, size: "sm", align: "right", bold: true, dark: object.dark }) %>
8
10
  <% end %>
9
- <%= pb_rails("flex/flex_item") do %>
10
- <%= pb_rails("time_stacked", props: { classname: "pb_date_time_stacked_kit", time: object.date, tag: "caption" }) %>
11
+ <%= pb_rails("section_separator", props: { orientation: "vertical", classname: "date-time-padding" }) %>
12
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
13
+ <%= pb_rails("time_stacked", props: { time: object.date_time_value, dark: object.dark, timezone: object.timezone }) %>
11
14
  <% end %>
12
- <% end %>
13
- <% end %>
15
+ <% end %>
16
+
17
+ <% end %>
@@ -3,10 +3,17 @@
3
3
  module Playbook
4
4
  module PbDateTimeStacked
5
5
  class DateTimeStacked < Playbook::KitBase
6
- prop :date, type: Playbook::Props::Date,
6
+ prop :date, deprecated: true
7
+ prop :date_time, type: Playbook::Props::Date,
7
8
  default: ::DateTime.current
8
9
  prop :dark, type: Playbook::Props::Boolean,
9
10
  default: false
11
+ prop :timezone, type: Playbook::Props::String,
12
+ default: "America/New_York"
13
+
14
+ def date_time_value
15
+ date || date_time
16
+ end
10
17
  end
11
18
  end
12
- end
19
+ end
@@ -0,0 +1,35 @@
1
+ import { ensureAccessible, renderKit } from '../utilities/test-utils'
2
+ import { DateTimeStacked } from '../'
3
+
4
+ /* eslint-disable jsx-control-statements/jsx-jcs-no-undef */
5
+
6
+ const props = {
7
+ data: { testid: 'datetimestacked' },
8
+ datetime: new Date('Wed Mar 31 2021 12:00:00 GMT-0500'),
9
+ }
10
+
11
+ test('Kit renders date time', () => {
12
+ const kit = renderKit(DateTimeStacked, props)
13
+ expect(kit).toBeInTheDocument()
14
+ })
15
+
16
+ it('Should be accessible', async () => {
17
+ ensureAccessible(DateTimeStacked, props)
18
+ })
19
+
20
+ test('renders time in default timezone', () => {
21
+ const kit = renderKit(DateTimeStacked, props)
22
+ expect(kit).toHaveTextContent(/Mar311:00pEDT/i)
23
+ })
24
+
25
+ test('renders time in timezone', () => {
26
+ props.timeZone = 'Asia/Tokyo'
27
+ const kit = renderKit(DateTimeStacked, props)
28
+ expect(kit).toHaveTextContent(/Mar312:00aJST/i)
29
+ })
30
+
31
+ test('renders time in timezone', () => {
32
+ props.timeZone = 'America/Denver'
33
+ const kit = renderKit(DateTimeStacked, props)
34
+ expect(kit).toHaveTextContent(/Mar3111:00aMDT/i)
35
+ })