playbook_ui 11.3.0 → 11.4.0

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/index.js +1 -0
  3. data/app/pb_kits/playbook/pb_button/_button.tsx +6 -6
  4. data/app/pb_kits/playbook/pb_circle_icon_button/{_circle_icon_button.jsx → _circle_icon_button.tsx} +6 -10
  5. data/app/pb_kits/playbook/pb_contact/contact.test.js +45 -1
  6. data/app/pb_kits/playbook/pb_currency/{_currency.jsx → _currency.tsx} +17 -12
  7. data/app/pb_kits/playbook/pb_date/_date.tsx +101 -0
  8. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +10 -9
  9. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +80 -0
  10. data/app/pb_kits/playbook/pb_icon/_icon.tsx +1 -0
  11. data/app/pb_kits/playbook/pb_icon_circle/{_icon_circle.jsx → _icon_circle.tsx} +2 -4
  12. data/app/pb_kits/playbook/pb_kit/{dateTime.js → dateTime.ts} +5 -6
  13. data/app/pb_kits/playbook/pb_label_pill/{_label_pill.jsx → _label_pill.tsx} +2 -4
  14. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +1 -1
  16. data/app/pb_kits/playbook/pb_pill/_pill.tsx +1 -1
  17. data/app/pb_kits/playbook/pb_section_separator/{_section_separator.jsx → _section_separator.tsx} +7 -8
  18. data/app/pb_kits/playbook/pb_time/_time.tsx +92 -0
  19. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +1 -1
  20. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +1 -1
  22. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +1 -1
  23. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +1 -1
  24. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +1 -1
  25. data/app/pb_kits/playbook/pb_title/_title.tsx +1 -1
  26. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +49 -6
  27. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +144 -0
  28. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default_react.jsx +59 -0
  29. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default_react.md +5 -0
  30. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_icon.erb +10 -0
  31. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_icon.jsx +52 -0
  32. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_icon.md +1 -0
  33. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_interaction.jsx +40 -0
  34. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_interaction.md +1 -0
  35. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_margin.jsx +39 -0
  36. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_margin.md +3 -0
  37. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +1 -1
  38. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +7 -1
  39. data/app/pb_kits/playbook/pb_tooltip/docs/index.js +4 -0
  40. data/app/pb_kits/playbook/pb_tooltip/tooltip.test.jsx +50 -0
  41. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +37 -0
  42. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.md +1 -0
  43. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
  44. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +2 -2
  45. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +10 -2
  46. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +1 -1
  47. data/app/pb_kits/playbook/playbook-doc.js +2 -0
  48. data/lib/playbook/version.rb +2 -2
  49. metadata +25 -11
  50. data/app/pb_kits/playbook/pb_date/_date.jsx +0 -138
  51. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +0 -93
  52. data/app/pb_kits/playbook/pb_time/_time.jsx +0 -90
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 829ab73754749eeb3476c40cfaba3fb74e62e92744f725772b851b3c084a81ce
4
- data.tar.gz: e42dc4f35cb80676454745307afba58a5d33e7deae5f68ff36074a28e78e3299
3
+ metadata.gz: 638051af443b06b03b9de8a9092d21f8ce06f3806e60bd43cec8463ce428a69a
4
+ data.tar.gz: c43d207810694a318a13280bb917b8a295cb44310e05433a262639bee6b8778e
5
5
  SHA512:
6
- metadata.gz: 6c74669ef536138bc842fb3b2867d68716e10b15af93ea73233593bad06c7c0f01494d30e29cba67c7a2526401a854bf6ad00b259829a2adcfe4795969dbbcb5
7
- data.tar.gz: 169d399c99f5fddd984fedb81e3701b85e918da087546259e84989bbf5f17a0227a9787494a8f524c2a50d38eccfc4badab2e9810e3e0b5cecd5585bb85883ac
6
+ metadata.gz: 80aad4d2179d46bc3332b631a1f4e4e90640d61b3cbd3bfa1894cd8e5710f20ecea86f8d71cada0811e9ac434a99c70cd31a7622c33df2434d82370b5f0a9157
7
+ data.tar.gz: 8a8562a4d3efced667089ca24567758a341255de55f885d1068c7722b301886d427f07943a03ae391d47a1b1d5b4ce279d7bb80a42d7e53042ed9b22ab71d4dc
@@ -98,6 +98,7 @@ export { default as Title } from './pb_title/_title'
98
98
  export { default as TitleCount } from './pb_title_count/_title_count'
99
99
  export { default as TitleDetail } from './pb_title_detail/_title_detail'
100
100
  export { default as Toggle } from './pb_toggle/_toggle'
101
+ export { default as Tooltip } from './pb_tooltip/_tooltip'
101
102
  export { default as TreemapChart } from './pb_treemap_chart/_treemap_chart'
102
103
  export { default as Typeahead } from './pb_typeahead/_typeahead'
103
104
  export { default as User } from './pb_user/_user'
@@ -8,10 +8,10 @@ import Icon from '../pb_icon/_icon'
8
8
  type EventHandler = (React.MouseEventHandler<HTMLElement>)
9
9
 
10
10
  type ButtonPropTypes = {
11
- aria?: {[key: string]: string},
11
+ aria?: { [key: string]: string },
12
12
  children?: React.ReactChild[] | React.ReactChild,
13
13
  className?: string | string[],
14
- data?: {[key: string]: string},
14
+ data?: { [key: string]: string },
15
15
  disabled?: boolean,
16
16
  fixedWidth?: boolean,
17
17
  form?: string,
@@ -24,11 +24,11 @@ type ButtonPropTypes = {
24
24
  onClick?: EventHandler,
25
25
  size?: 'sm' | 'md' | 'lg',
26
26
  text?: string,
27
- type: 'inline' | null,
27
+ type?: 'inline' | null,
28
28
  htmlType: 'submit' | 'reset' | 'button' | undefined,
29
29
  value?: string | null,
30
30
  variant: 'primary' | 'secondary' | 'link',
31
- wrapperClass: string,
31
+ wrapperClass?: string,
32
32
  } & GlobalProps
33
33
 
34
34
  const buttonClassName = (props: ButtonPropTypes) => {
@@ -99,8 +99,8 @@ const Button = (props: ButtonPropTypes) => {
99
99
  )
100
100
 
101
101
  const ifLoading = () => {
102
- if (loading){
103
- return(
102
+ if (loading) {
103
+ return (
104
104
  <>
105
105
  {loadingIcon}
106
106
  </>
@@ -1,11 +1,7 @@
1
- /* @flow */
2
-
3
1
  import React from 'react'
4
2
  import classnames from 'classnames'
5
3
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
6
4
 
7
- import type { Callback } from '../types'
8
-
9
5
  import { noop } from '../utilities/props'
10
6
  import { globalProps } from '../utilities/globalProps'
11
7
 
@@ -13,21 +9,21 @@ import Button from '../pb_button/_button'
13
9
  import Icon from '../pb_icon/_icon'
14
10
 
15
11
  type CircleIconButtonProps = {
16
- aria?: object,
12
+ aria?: { [key: string]: string },
17
13
  className?: string,
18
14
  dark?: boolean,
19
- data?: object,
15
+ data?: { [key: string]: string },
20
16
  disabled?: boolean,
21
17
  icon: string,
22
18
  id?: string,
23
19
  link?: string,
24
- onClick?: Callback,
20
+ onClick?: React.MouseEventHandler<HTMLElement>,
25
21
  newWindow?: boolean,
26
- type?: 'button' | 'submit' | 'reset',
22
+ type?: 'button' | 'submit' | 'reset' | undefined,
27
23
  variant?: 'primary' | 'secondary' | 'link',
28
24
  }
29
25
 
30
- const CircleIconButton = (props: CircleIconButtonProps) => {
26
+ const CircleIconButton = (props: CircleIconButtonProps): React.ReactElement => {
31
27
  const {
32
28
  aria = {},
33
29
  className,
@@ -61,11 +57,11 @@ const CircleIconButton = (props: CircleIconButtonProps) => {
61
57
  <Button
62
58
  dark={dark}
63
59
  disabled={disabled}
60
+ htmlType={type}
64
61
  link={link}
65
62
  newWindow={newWindow}
66
63
  onClick={onClick}
67
64
  text={null}
68
- type={type}
69
65
  variant={variant}
70
66
  >
71
67
  <Icon
@@ -17,7 +17,7 @@ test('returns namespaced class name', () => {
17
17
  })
18
18
 
19
19
  test('returns correct icon', () => {
20
- render(
20
+ render(
21
21
  <>
22
22
  <Contact
23
23
  contactDetail="Cell"
@@ -85,3 +85,47 @@ test('returns correct icon', () => {
85
85
  expect(screen.getByTestId('test-extension').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-plus')
86
86
  expect(screen.getByTestId('test-empty').querySelector('.pb_icon_kit')).toHaveClass('fa-phone')
87
87
  })
88
+
89
+ test("not compliant values return null in phone related contact types", () => {
90
+ const notCompliantValues = [
91
+ "349-185-998223",
92
+ "349-1858",
93
+ "",
94
+ "2",
95
+ "string",
96
+ ]
97
+ const contactTypes = [
98
+ "cell",
99
+ "work",
100
+ "work-cell",
101
+ "wrong-number",
102
+ "wrong-phone",
103
+ "wrong-type",
104
+ "extension",
105
+ ]
106
+
107
+ const buildData = contactTypes.reduce((response, type) => {
108
+ notCompliantValues.forEach((value) => response.push({ type, value }))
109
+ return response
110
+ }, [])
111
+
112
+ const { rerender } = render(
113
+ <Contact
114
+ contactType=""
115
+ contactValue=""
116
+ data={{ testid: `contact-kit-null-test` }}
117
+ />
118
+ )
119
+ buildData.map(({ type, value }) => {
120
+ rerender(
121
+ <Contact
122
+ contactType={type}
123
+ contactValue={value}
124
+ data={{ testid: `contact-kit-null-test` }}
125
+ />
126
+ )
127
+ expect(screen.getByTestId("contact-kit-null-test")).toHaveTextContent(
128
+ "null"
129
+ )
130
+ })
131
+ })
@@ -1,5 +1,3 @@
1
- /* @flow */
2
-
3
1
  import React from 'react'
4
2
  import classnames from 'classnames'
5
3
 
@@ -14,10 +12,10 @@ type CurrencyProps = {
14
12
  abbreviate?: boolean,
15
13
  align?: 'center' | 'left' | 'right',
16
14
  amount: string,
17
- aria?: object,
15
+ aria?: {[key:string]:string},
18
16
  className?: string,
19
17
  dark?: boolean,
20
- data?: object,
18
+ data?: {[key:string]:string},
21
19
  decimals?: 'default' | 'matching',
22
20
  emphasized?: boolean,
23
21
  id?: string,
@@ -28,7 +26,7 @@ type CurrencyProps = {
28
26
  unit?: string,
29
27
  }
30
28
 
31
- const sizes = {
29
+ const sizes: {lg: 1, md: 3, sm: 4} = {
32
30
  lg: 1,
33
31
  md: 3,
34
32
  sm: 4,
@@ -68,12 +66,12 @@ const Currency = (props: CurrencyProps) => {
68
66
  const ariaProps = buildAriaProps(aria)
69
67
  const dataProps = buildDataProps(data)
70
68
  const classes = classnames(
71
- buildCss('pb_currency_kit', align, size, { dark }),
69
+ buildCss('pb_currency_kit', align, size),
72
70
  globalProps(props),
73
71
  className
74
72
  )
75
73
 
76
- const getFormattedNumber = (input) => new Intl.NumberFormat('en-US', {
74
+ const getFormattedNumber = (input: number | any ) => new Intl.NumberFormat('en-US', {
77
75
  notation: 'compact',
78
76
  maximumFractionDigits: 1,
79
77
  }).format(input)
@@ -126,11 +124,18 @@ const Currency = (props: CurrencyProps) => {
126
124
  dark={dark}
127
125
  >
128
126
  {getAbbreviation}
129
- <If condition={unit}>
130
- {unit}
131
- <Else />
132
- {getDecimalValue}
133
- </If>
127
+ {
128
+ unit ? (
129
+ <>
130
+ {unit}
131
+ </>
132
+ ) : (
133
+ <>
134
+ {getDecimalValue}
135
+ </>
136
+ )
137
+ }
138
+
134
139
  </Body>
135
140
  </div>
136
141
  </div>
@@ -0,0 +1,101 @@
1
+ import React from "react";
2
+ import classnames from "classnames";
3
+
4
+ import DateTime from "../pb_kit/dateTime";
5
+ import { buildAriaProps, buildCss, buildDataProps } from "../utilities/props";
6
+ import { globalProps } from "../utilities/globalProps";
7
+
8
+ import Body from "../pb_body/_body";
9
+ import Caption from "../pb_caption/_caption";
10
+ import Icon from "../pb_icon/_icon";
11
+ import Title from "../pb_title/_title";
12
+
13
+ type PbDateProps = {
14
+ alignment?: "left" | "center" | "right";
15
+ aria: { [key: string]: string };
16
+ className?: string;
17
+ data?: { [key: string]: string };
18
+ id?: string;
19
+ showDayOfWeek?: boolean;
20
+ showIcon?: boolean;
21
+ size?: "sm" | "md" | "lg";
22
+ value: string | Date;
23
+ };
24
+
25
+ const PbDate = (props: PbDateProps) => {
26
+ const {
27
+ aria = {},
28
+ alignment = "left",
29
+ className,
30
+ data = {},
31
+ id,
32
+ showDayOfWeek = false,
33
+ showIcon = false,
34
+ size = "md",
35
+ value,
36
+ } = props;
37
+
38
+ const dateTimestamp = new DateTime({ value: value });
39
+ const weekday = dateTimestamp.toWeekday();
40
+ const month = dateTimestamp.toMonth();
41
+ const day = dateTimestamp.toDay();
42
+ const year = dateTimestamp.toYear();
43
+ const currentYear = new Date().getFullYear().toString();
44
+
45
+ const ariaProps = buildAriaProps(aria);
46
+ const dataProps = buildDataProps(data);
47
+
48
+ const classes = classnames(
49
+ buildCss("pb_date_kit", alignment),
50
+ globalProps(props),
51
+ className
52
+ );
53
+
54
+ return (
55
+ <div {...ariaProps} {...dataProps} className={classes} id={id}>
56
+ {size == "md" || size == "lg" ? (
57
+ <Title size={4} tag="h4">
58
+ {showIcon && (
59
+ <Body className="pb_icon_kit_container" color="light" tag="span">
60
+ <Icon fixedWidth icon="calendar-alt" />
61
+ </Body>
62
+ )}
63
+
64
+ {showDayOfWeek && (
65
+ <>
66
+ {weekday}
67
+ <Body color="light" tag="span" text=" • " />
68
+ </>
69
+ )}
70
+
71
+ <span>
72
+ {month} {day}
73
+ </span>
74
+ {currentYear != year && <span>{`, ${year}`}</span>}
75
+ </Title>
76
+ ) : (
77
+ <>
78
+ {showIcon && (
79
+ <Caption className="pb_icon_kit_container" tag="span">
80
+ <Icon fixedWidth icon="calendar-alt" size="sm" />
81
+ </Caption>
82
+ )}
83
+
84
+ {showDayOfWeek && (
85
+ <>
86
+ <Caption tag="div">{weekday}</Caption>
87
+ <Caption color="light" tag="div" text=" • " />
88
+ </>
89
+ )}
90
+
91
+ <Caption tag="span">
92
+ {month} {day}
93
+ {currentYear != year && <>{`, ${year}`}</>}
94
+ </Caption>
95
+ </>
96
+ )}
97
+ </div>
98
+ );
99
+ };
100
+
101
+ export default PbDate;
@@ -5,16 +5,15 @@ import { fireEvent, render, screen, waitFor, within } from '../utilities/test-ut
5
5
  import DatePicker from './_date_picker'
6
6
  import { getTimezoneText } from './plugins/timeSelect'
7
7
 
8
+
9
+
10
+ jest.setSystemTime(new Date('01/01/2020'));
8
11
  const DEFAULT_DATE = new Date()
9
- DEFAULT_DATE.setFullYear(2022)
10
- DEFAULT_DATE.setMonth(1)
11
- DEFAULT_DATE.setDate(1)
12
- DEFAULT_DATE.setHours(12)
13
- DEFAULT_DATE.setMinutes(0)
12
+
14
13
 
15
14
  describe('DatePicker Kit', () => {
16
15
  beforeEach(() => {
17
- jest.spyOn(console, 'error').mockImplementation(() => {});
16
+ jest.spyOn(console, 'error').mockImplementation(() => { });
18
17
  });
19
18
 
20
19
  test('renders DatePicker input field', () => {
@@ -44,10 +43,12 @@ describe('DatePicker Kit', () => {
44
43
 
45
44
  const kit = screen.getByTestId(testId)
46
45
 
46
+
47
47
  const input = within(kit).getByPlaceholderText('Select Date')
48
48
  expect(input).toBeInTheDocument()
49
+
49
50
  await waitFor(() => {
50
- expect(input).toHaveValue('02/01/2022')
51
+ expect(input).toHaveValue('01/01/2020')
51
52
  })
52
53
  })
53
54
 
@@ -143,7 +144,7 @@ describe('DatePicker Kit', () => {
143
144
  }),
144
145
  )
145
146
  await waitFor(() => {
146
- expect(input).toHaveValue('02/01/2022 at 12:00 AM')
147
+ expect(input).toHaveValue('01/01/2020 at 12:00 AM')
147
148
  })
148
149
 
149
150
  fireEvent(
@@ -154,7 +155,7 @@ describe('DatePicker Kit', () => {
154
155
  }),
155
156
  )
156
157
  await waitFor(() => {
157
- expect(input).toHaveValue('02/01/2022 at 12:00 PM')
158
+ expect(input).toHaveValue('01/01/2020 at 12:00 PM')
158
159
  })
159
160
  })
160
161
  })
@@ -0,0 +1,80 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import classnames from "classnames";
3
+
4
+ import { globalProps } from "../utilities/globalProps";
5
+
6
+ import Icon from "../pb_icon/_icon";
7
+ import Title from "../pb_title/_title";
8
+
9
+ const iconMap = {
10
+ success: "check",
11
+ error: "exclamation-triangle",
12
+ neutral: "info-circle",
13
+ tip: "info-circle",
14
+ };
15
+
16
+ type FixedConfirmationToastProps = {
17
+ className?: string;
18
+ closeable?: boolean;
19
+ data?: string;
20
+ horizontal?: "right" | "left" | "center";
21
+ id?: string;
22
+ multiLine?: boolean;
23
+ onClose?: () => void;
24
+ open?: boolean;
25
+ status?: "success" | "error" | "neutral" | "tip";
26
+ text: string;
27
+ vertical?: "top" | "bottom";
28
+ };
29
+
30
+ const FixedConfirmationToast = (props: FixedConfirmationToastProps) => {
31
+ const [showToast, toggleToast] = useState(true);
32
+ const {
33
+ className,
34
+ closeable = false,
35
+ horizontal,
36
+ multiLine = false,
37
+ onClose = () => {},
38
+ open = true,
39
+ status = "neutral",
40
+ text,
41
+ vertical,
42
+ } = props;
43
+ const css = classnames(
44
+ `pb_fixed_confirmation_toast_kit_${status}`,
45
+ { _multi_line: multiLine },
46
+ { [`positioned_toast ${vertical} ${horizontal}`]: vertical && horizontal },
47
+ globalProps(props),
48
+ className
49
+ );
50
+ const icon = iconMap[status];
51
+
52
+ useEffect(() => {
53
+ toggleToast(open);
54
+ }, [open]);
55
+
56
+ const handleClick = () => {
57
+ toggleToast(!closeable);
58
+ onClose();
59
+ };
60
+
61
+ return (
62
+ <>
63
+ {showToast && (
64
+ <div className={css} onClick={handleClick}>
65
+ {icon && <Icon className="pb_icon" fixedWidth icon={icon} />}
66
+ <Title
67
+ className="pb_fixed_confirmation_toast_text"
68
+ size={4}
69
+ text={text}
70
+ />
71
+ {closeable && (
72
+ <Icon className="pb_icon" fixedWidth={false} icon="times" />
73
+ )}
74
+ </div>
75
+ )}
76
+ </>
77
+ );
78
+ };
79
+
80
+ export default FixedConfirmationToast;
@@ -16,6 +16,7 @@ export type IconSizes = "lg"
16
16
  | "8x"
17
17
  | "9x"
18
18
  | "10x"
19
+ | ""
19
20
 
20
21
  type IconProps = {
21
22
  aria?: {[key: string]: string},
@@ -1,5 +1,3 @@
1
- /* @flow */
2
-
3
1
  import React from 'react'
4
2
 
5
3
  import classnames from 'classnames'
@@ -10,10 +8,10 @@ import { globalProps } from '../utilities/globalProps'
10
8
  import Icon from '../pb_icon/_icon'
11
9
 
12
10
  type IconCircleProps = {
13
- aria?: object,
11
+ aria?: {[key:string]: string},
14
12
  className?: string,
15
13
  dark?: boolean,
16
- data?: object,
14
+ data?: {[key:string]: string},
17
15
  icon: string,
18
16
  id?: string,
19
17
  size?: "base" | "xs" | "sm" | "md" | "lg" | "xl",
@@ -1,23 +1,22 @@
1
- /* @flow */
2
- /*eslint-disable flowtype/space-before-type-colon */
3
1
 
4
- import moment from 'moment'
2
+ import moment, { Moment } from 'moment'
5
3
  import 'moment-strftime'
6
4
  import 'moment-timezone'
7
5
 
8
6
  type DateTimeType = {
9
- value: String | Date,
10
- zone?: String,
7
+ value: string | Date,
8
+ zone?: string,
11
9
  }
12
10
 
13
11
  const ABBR_DAYS = ['SU', 'M', 'T', 'W', 'TH', 'F', 'S']
14
12
 
15
13
  export default class DateTime {
14
+ value: Moment & any
16
15
  constructor({ value, zone = 'America/New_York' }: DateTimeType) {
17
16
  this.value = this.convertToTimestampZone(value, zone)
18
17
  }
19
18
 
20
- convertToTimestampZone(value, zone) {
19
+ convertToTimestampZone(value: string | Date, zone: string) {
21
20
  return moment(value).tz(zone)
22
21
  }
23
22
 
@@ -1,5 +1,3 @@
1
- /* @flow */
2
-
3
1
  import React from 'react'
4
2
  import classnames from 'classnames'
5
3
  import { globalProps } from '../utilities/globalProps'
@@ -10,9 +8,9 @@ import Pill from '../pb_pill/_pill'
10
8
  import Caption from '../pb_caption/_caption'
11
9
 
12
10
  type LabelPillProps = {
13
- aria?: object,
11
+ aria?: {[key: string]:string},
14
12
  className?: string,
15
- data?: object,
13
+ data?: {[key: string]:string},
16
14
  id?: string,
17
15
  label?: string,
18
16
  pillValue?: string,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import DateTime from '../pb_kit/dateTime.js'
5
+ import DateTime from '../pb_kit/dateTime'
6
6
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
7
7
  import { globalProps } from '../utilities/globalProps'
8
8
 
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
 
6
- import DateTime from '../pb_kit/dateTime.js'
6
+ import DateTime from '../pb_kit/dateTime'
7
7
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
8
8
  import { globalProps } from '../utilities/globalProps'
9
9
 
@@ -11,7 +11,7 @@ type PillProps = {
11
11
  data?: {[key: string]: string},
12
12
  id?: string,
13
13
  text: string,
14
- variant?: "success" | "warning" | "error" | "info" | "neutral",
14
+ variant?: "success" | "warning" | "error" | "info" | "neutral" | "primary",
15
15
  textTransform?: "none" | "lowercase"
16
16
  } & GlobalProps
17
17
 
@@ -1,4 +1,3 @@
1
- /* @flow */
2
1
  import React from 'react'
3
2
  import classnames from 'classnames'
4
3
 
@@ -8,10 +7,10 @@ import { globalProps } from '../utilities/globalProps'
8
7
  import Caption from '../pb_caption/_caption'
9
8
 
10
9
  type SectionSeparatorProps = {
11
- aria: object,
10
+ aria: { [key: string]: string; },
12
11
  className: string,
13
12
  dark?: boolean,
14
- data: object,
13
+ data: { [key: string]: string; },
15
14
  id: string,
16
15
  orientation?: "horizontal" | "vertical",
17
16
  text: string,
@@ -40,13 +39,13 @@ const SectionSeparator = (props: SectionSeparatorProps) => {
40
39
  className={classes}
41
40
  id={id}
42
41
  >
43
-
44
- <If condition={text}>
45
- <span>
42
+ {
43
+ text && (
44
+ <span>
46
45
  <Caption text={text} />
47
46
  </span>
48
- </If>
49
-
47
+ )
48
+ }
50
49
  </div>
51
50
  )
52
51
  }