playbook_ui 12.37.0 → 12.38.0.pre.alpha.PBNTR78selectkitmultipleprop1094

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_date/_date.tsx +7 -8
  3. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +2 -2
  4. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +29 -5
  5. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +2 -2
  6. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +5 -5
  7. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +45 -31
  8. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.tsx +5 -3
  9. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +24 -21
  10. data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +1 -1
  11. data/app/pb_kits/playbook/pb_date_time/dateTime.test.js +1 -1
  12. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +2 -2
  13. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +1 -1
  14. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.tsx +6 -8
  15. data/app/pb_kits/playbook/pb_kit/dateTime.ts +146 -63
  16. data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +52 -31
  17. data/app/pb_kits/playbook/pb_message/_message.tsx +24 -24
  18. data/app/pb_kits/playbook/pb_select/_select.scss +37 -0
  19. data/app/pb_kits/playbook/pb_select/_select.tsx +9 -5
  20. data/app/pb_kits/playbook/pb_select/docs/_select_attributes.html.erb +26 -0
  21. data/app/pb_kits/playbook/pb_select/docs/_select_attributes.md +1 -0
  22. data/app/pb_kits/playbook/pb_select/docs/_select_multiple.html.erb +36 -0
  23. data/app/pb_kits/playbook/pb_select/docs/_select_multiple.jsx +50 -0
  24. data/app/pb_kits/playbook/pb_select/docs/_select_multiple.md +1 -0
  25. data/app/pb_kits/playbook/pb_select/docs/example.yml +3 -0
  26. data/app/pb_kits/playbook/pb_select/docs/index.js +1 -0
  27. data/app/pb_kits/playbook/pb_select/select.html.erb +5 -9
  28. data/app/pb_kits/playbook/pb_select/select.rb +14 -0
  29. data/app/pb_kits/playbook/pb_select/select.test.js +17 -0
  30. data/app/pb_kits/playbook/pb_time/_time.tsx +9 -11
  31. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +46 -49
  32. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +4 -6
  33. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +11 -11
  34. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +8 -11
  35. data/dist/playbook-rails.js +7 -7
  36. data/lib/playbook/version.rb +2 -2
  37. metadata +12 -8
  38. 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: 92ab5b99e6bc4d33881e4087db34763fd0d818607d0412cbe5305e9a376c6c31
4
- data.tar.gz: 0ed7902b4ebff49a4dbc5dd60e7e6411311ab7fdee3bf0812501a6d2fe63a0f5
3
+ metadata.gz: db3404c038f74f5dc80f8ac748ec308d00cb5608d770d128a913c002779eff95
4
+ data.tar.gz: 52184a80d6d7f1c60a26602b0df4c67add01871f8b2a68a96f486ab45f6bd356
5
5
  SHA512:
6
- metadata.gz: 40657ad869c7a5ca5aa6494a5d4ef300f1e00aa30fe8f4fac97402b4fe169f46dbccdf166fa926a91543c6751b410471dcb1ad0add23601b99e71758204f3cd2
7
- data.tar.gz: 3b44c5fd8f3a0fad567fd4ff9064273ea86e86b5dec6ec283cc419fff7fad6a354571b4d7e77fafb59391fd913c0431f6764a00b895896aec9d1cc11ab1c8880
6
+ metadata.gz: c94c56cb47932177e285f3d6f81778c6ce490f50f4a47d1efc51aa99c48f047f97dc6db289041cf5d6fedb5a815d7980bc530df015bede6bbc965c57fe0e8dfc
7
+ data.tar.gz: 2fe8f9b14b8e5ac44cbab98f38625f71cce0fb8f580108cbb439c024b4dad0541a6662fb3e77df798fa88ff6a689ed68de89ddb4c95139d834f5da10a14b2ffb
@@ -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: string | Date;
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 dateTimestamp = new DateTime({ value: value });
41
- const weekday = dateTimestamp.toWeekday();
42
- const month = dateTimestamp.toMonth();
43
- const day = dateTimestamp.toDay();
44
- const year = dateTimestamp.toYear();
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="1995-12-25"
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="2020-12-25"
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="2012-08-03"
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="2017-12-03"
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="2012-08-03"
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="2017-12-03"
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="1995-12-25"
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="1995-12-25"
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="1995-12-25"
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="1995-12-25"
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="1995-12-25"
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="1995-12-25"
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="1995-12-25"
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 "../pb_kit/dateTime";
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 | string, includeYear: boolean) => {
25
- const date = new DateTime({ value: dateValue });
24
+ const dateTimestamp = (dateValue: Date, includeYear: boolean) => {
26
25
  if (includeYear) {
27
- return `${date.toMonth()} ${date.toDay()}, ${date.toYear()}`;
26
+ return `${DateTime.toMonth(dateValue)} ${DateTime.toDay(dateValue)}, ${DateTime.toYear(dateValue)}`;
28
27
  } else {
29
- return `${date.toMonth()} ${date.toDay()}`;
28
+ return `${DateTime.toMonth(dateValue)} ${DateTime.toDay(dateValue)}`;
30
29
  }
31
30
  };
32
31
 
33
- const dateTimeIso = (dateValue: Date | string) => {
34
- const date = new DateTime({ value: dateValue });
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" key={Math.random()} tag="span">
56
- <Icon
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 | string) => {
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
- {...dataProps}
96
- className={classnames(dateRangeClasses, globalProps(props), className)}
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} tag="span">
103
+ <Caption dark={dark}
104
+ tag="span"
105
+ >
103
106
  {renderTime(startDate)}
104
107
  </Caption>
105
- <Caption dark={dark} tag="span">
108
+ <Caption dark={dark}
109
+ tag="span"
110
+ >
106
111
  <Icon
107
- className="pb_date_range_inline_arrow"
108
- fixedWidth
109
- icon="long-arrow-right"
112
+ className="pb_date_range_inline_arrow"
113
+ fixedWidth
114
+ icon="long-arrow-right"
110
115
  />
111
116
  </Caption>
112
- <Caption dark={dark} tag="span">
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} tag="span">
128
+ <Body dark={dark}
129
+ tag="span"
130
+ >
122
131
  {renderTime(startDate)}
123
132
  </Body>
124
- <Body color="light" dark={dark} tag="span">
125
- <Icon
126
- className="pb_date_range_inline_arrow"
133
+ <Body color="light"
127
134
  dark={dark}
128
- fixedWidth
129
- icon="long-arrow-right"
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} tag="span">
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: string,
17
+ endDate: Date,
18
18
  id?: string,
19
- startDate: string,
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} className={css}>
32
+ <div {...dataProps}
33
+ className={css}
34
+ >
33
35
  <Flex vertical="center">
34
36
  <FlexItem>
35
37
  <DateYearStacked
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
 
3
3
  import classnames from "classnames";
4
- import DateTime from "../pb_kit/dateTime";
5
4
  import { buildCss, buildDataProps } from "../utilities/props";
6
5
  import { globalProps } from "../utilities/globalProps";
6
+ import DateTime from '../pb_kit/dateTime';
7
7
 
8
8
  import Caption from "../pb_caption/_caption";
9
9
  import Title from "../pb_title/_title";
@@ -14,7 +14,7 @@ type DateStackedProps = {
14
14
  className?: string | string[];
15
15
  dark?: boolean;
16
16
  data?: string;
17
- date: string | Date;
17
+ date: Date;
18
18
  size?: "sm" | "md";
19
19
  id?: string;
20
20
  reverse?: boolean;
@@ -45,39 +45,42 @@ const DateStacked = (props: DateStackedProps) => {
45
45
  className
46
46
  );
47
47
 
48
- const currentYear = new Date().getFullYear().toString();
49
- const dateTimestamp = new DateTime({ value: date });
50
- const inputYear = dateTimestamp.toYear().toString();
48
+ const currentYear = new Date().getFullYear()
49
+ const inputYear = DateTime.toYear(date);
51
50
  const dataProps = buildDataProps(data)
52
51
 
53
52
  return (
54
53
  <>
55
54
  {bold == false ? (
56
- <div {...dataProps} className={classes}>
55
+ <div {...dataProps}
56
+ className={classes}
57
+ >
57
58
  <div className="pb_date_stacked_day_month">
58
- <Caption text={dateTimestamp.toMonth().toUpperCase()} />
59
+ <Caption text={DateTime.toMonth(date).toUpperCase()} />
59
60
  <Title
60
- dark={dark}
61
- size={sizes[size]}
62
- text={dateTimestamp.toDay()}
61
+ dark={dark}
62
+ size={sizes[size]}
63
+ text={DateTime.toDay(date).toString()}
63
64
  />
64
65
  </div>
65
66
  {currentYear != inputYear && <Caption size="xs">{inputYear}</Caption>}
66
67
  </div>
67
68
  ) : (
68
- <div {...dataProps} className={classes}>
69
+ <div {...dataProps}
70
+ className={classes}
71
+ >
69
72
  <div className="pb_date_stacked_day_month">
70
- <Title
71
- bold
72
- dark={dark}
73
- size="4"
74
- text={dateTimestamp.toMonth()}
73
+ <Title
74
+ bold
75
+ dark={dark}
76
+ size="4"
77
+ text={DateTime.toMonth(date)}
75
78
  />
76
- <Title
77
- bold
78
- dark={dark}
79
- size="4"
80
- text={dateTimestamp.toDay()}
79
+ <Title
80
+ bold
81
+ dark={dark}
82
+ size="4"
83
+ text={DateTime.toDay(date).toString()}
81
84
  />
82
85
  {currentYear != inputYear && <Title size="4">{inputYear}</Title>}
83
86
  </div>
@@ -13,7 +13,7 @@ type DateTimeProps = {
13
13
  aria?: { [key: string]: string; },
14
14
  className?: string,
15
15
  data?: { [key: string]: string; },
16
- datetime: string,
16
+ datetime: Date,
17
17
  id?: string,
18
18
  size?: "sm" | "md",
19
19
  showDayOfWeek: boolean,
@@ -89,7 +89,7 @@ describe('DateTime Kit', () => {
89
89
  const kit = screen.getByTestId(testId)
90
90
  const text = kit.querySelector('.pb_time_kit_md.ml_sm')
91
91
 
92
- expect(text.textContent).toEqual('2:00p JST')
92
+ expect(text.textContent).toEqual('2:00p GMT+9')
93
93
  })
94
94
  test('renders DatePicker size', () => {
95
95
  render(
@@ -12,8 +12,8 @@ import DateStacked from '../pb_date_stacked/_date_stacked'
12
12
 
13
13
  type DateTimeStackedProps = {
14
14
  id?: string,
15
- date: string,
16
- datetime: string,
15
+ date: Date,
16
+ datetime: Date,
17
17
  dark: boolean,
18
18
  timeZone?: string,
19
19
  }
@@ -34,7 +34,7 @@ test('renders time in default timezone', () => {
34
34
  test('renders time in timezone', () => {
35
35
  props.timeZone = 'Asia/Tokyo'
36
36
  const kit = renderKit(DateTimeStacked, props)
37
- expect(kit).toHaveTextContent(`${monthDayYear}2:00aJST`)
37
+ expect(kit).toHaveTextContent(`${monthDayYear}2:00aGMT+9`)
38
38
  })
39
39
 
40
40
  test('renders time in timezone', () => {
@@ -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, 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 Title from '../pb_title/_title'
@@ -13,13 +13,12 @@ type DateYearStackedProps = {
13
13
  className?: string | string[],
14
14
  dark?: boolean,
15
15
  data?: string,
16
- date: string,
16
+ date: Date,
17
17
  id?: string,
18
18
  }
19
19
 
20
20
  const DateYearStacked = (props: DateYearStackedProps) => {
21
21
  const { align = 'left', className, dark = false, date, data={} } = props
22
- const dateTimestamp = new DateTime({ value: date })
23
22
  const css = classnames(
24
23
  buildCss('pb_date_year_stacked', align),
25
24
  globalProps(props),
@@ -29,15 +28,14 @@ const DateYearStacked = (props: DateYearStackedProps) => {
29
28
 
30
29
  return (
31
30
  <div {...dataProps}
32
- className={css}>
31
+ className={css}
32
+ >
33
33
  <Title
34
34
  dark={dark}
35
35
  size={4}
36
- text={`${dateTimestamp.toDay()} ${dateTimestamp
37
- .toMonth()
38
- .toUpperCase()}`}
36
+ text={`${DateTime.toDay(date)} ${DateTime.toMonth(date).toUpperCase()}`}
39
37
  />
40
- <Body color="light">{dateTimestamp.toYear()}</Body>
38
+ <Body color="light">{DateTime.toYear(date)}</Body>
41
39
  </div>
42
40
  )
43
41
  }