playbook_ui 6.0.1.pre.alpha6 → 6.1.0.pre.alpha4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -0
  3. data/app/pb_kits/playbook/data/menu.yml +2 -0
  4. data/app/pb_kits/playbook/index.js +3 -0
  5. data/app/pb_kits/playbook/packs/examples.js +5 -0
  6. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.html.erb +7 -0
  7. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.jsx +52 -0
  8. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +101 -0
  9. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.rb +29 -0
  10. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.html.erb +7 -0
  11. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.jsx +29 -0
  12. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.html.erb +7 -0
  13. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.jsx +34 -0
  14. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.html.erb +11 -0
  15. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.jsx +29 -0
  16. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.html.erb +11 -0
  17. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.jsx +34 -0
  18. data/app/pb_kits/playbook/pb_button_toolbar/docs/_description.md +1 -0
  19. data/app/pb_kits/playbook/pb_button_toolbar/docs/example.yml +15 -0
  20. data/app/pb_kits/playbook/pb_button_toolbar/docs/index.js +4 -0
  21. data/app/pb_kits/playbook/pb_caption/_caption.jsx +1 -5
  22. data/app/pb_kits/playbook/pb_caption/_caption.scss +0 -4
  23. data/app/pb_kits/playbook/pb_caption/caption.rb +1 -8
  24. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +0 -3
  25. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +40 -0
  26. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +105 -0
  27. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +59 -0
  28. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +43 -0
  29. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +91 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
  36. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
  37. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
  38. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
  39. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
  40. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
  41. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
  42. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
  43. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
  44. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
  45. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
  46. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +23 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +8 -0
  48. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +4 -7
  49. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +2 -2
  50. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +2 -2
  51. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -2
  52. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -2
  53. data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -2
  54. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +41 -0
  55. data/app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb +0 -1
  56. data/app/pb_kits/playbook/pb_kit/dateTime.js +5 -1
  57. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +5 -5
  58. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +10 -14
  59. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +1 -1
  60. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +1 -7
  61. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +26 -26
  62. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +1 -1
  63. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +1 -8
  64. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +8 -10
  65. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +1 -1
  66. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +1 -7
  67. data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +1 -1
  68. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +2 -1
  69. data/app/pb_kits/playbook/pb_time/_time.jsx +57 -14
  70. data/app/pb_kits/playbook/pb_time/_time.scss +17 -0
  71. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +27 -0
  72. data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +28 -0
  73. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +28 -0
  74. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +32 -0
  75. data/app/pb_kits/playbook/pb_time/docs/example.yml +4 -0
  76. data/app/pb_kits/playbook/pb_time/docs/index.js +4 -0
  77. data/app/pb_kits/playbook/pb_title/_title.jsx +2 -5
  78. data/app/pb_kits/playbook/pb_title/_title.scss +1 -1
  79. data/app/pb_kits/playbook/pb_title/title.rb +1 -9
  80. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +37 -29
  81. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom.jsx +31 -0
  82. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom_radio.html.erb +6 -6
  83. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom_radio.jsx +72 -0
  84. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.html.erb +1 -3
  85. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx +6 -19
  86. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_name.jsx +57 -0
  87. data/app/pb_kits/playbook/pb_toggle/docs/{_toggle_checked.html.erb → _toggle_size.html.erb} +2 -2
  88. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.jsx +44 -0
  89. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +8 -5
  90. data/app/pb_kits/playbook/pb_toggle/docs/index.js +4 -2
  91. data/app/pb_kits/playbook/vendor.js +6 -0
  92. data/lib/playbook/version.rb +1 -1
  93. metadata +50 -6
  94. data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +0 -26
  95. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_accessibility.jsx +0 -12
  96. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_data.jsx +0 -15
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbForm
5
+ module FormBuilder
6
+ module DatePickerField
7
+ # def date_field(name, props: {})
8
+ # # props[:name] = name
9
+
10
+ # input = super(name)
11
+ # puts name
12
+ # puts input
13
+
14
+ # @template.pb_rails("date_picker", props: props) do
15
+ # input
16
+ # end
17
+ # end
18
+ # def date_picker(name, props: {})
19
+ # predicate = name.to_s.split("_")[0]
20
+ # html_name = "#{predicate}[#{name}]"
21
+ # id = predicate + "_" + name.to_s
22
+
23
+ # props[:name] = html_name
24
+ # props[:picker_id] = id
25
+
26
+ # @template.pb_rails("date_picker", props: props)
27
+ # end
28
+ def date_picker(name, props: {})
29
+ prefix = @object_name
30
+ html_attribute_name = "#{prefix}[#{name}]"
31
+ html_id = "#{prefix}_#{name}"
32
+
33
+ props[:name] = html_attribute_name
34
+ props[:picker_id] = html_id
35
+
36
+ @template.pb_rails("date_picker", props: props)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -12,7 +12,6 @@ module Playbook
12
12
  options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
13
13
  options[:required] = true if props[:required]
14
14
  options[:placeholder] = props[:placeholder] || ""
15
- options[:value] = props[:value]
16
15
 
17
16
  if props.key?(:validation)
18
17
  validation = props[:validation]
@@ -74,7 +74,11 @@ export default class DateTime {
74
74
  }
75
75
 
76
76
  toTime() {
77
- return this.value.strftime('%I:%M')
77
+ const time = this.value.strftime('%I:%M')
78
+
79
+ // strftime adds a leading 0 on single hour times. ie 08:31.
80
+ // this removes that 0 to match the rails kit.
81
+ return time.charAt() === '0' ? time.slice(1) : time
78
82
  }
79
83
 
80
84
  toTimezone() {
@@ -35,11 +35,11 @@ const PopoverWithButton = () => {
35
35
  show={showPopover}
36
36
  >
37
37
  <List xpadding>
38
- <ListItem>{'Popularity'}</ListItem>
39
- <ListItem>{'Title'}</ListItem>
40
- <ListItem>{'Duration'}</ListItem>
41
- <ListItem>{'Date Started'}</ListItem>
42
- <ListItem>{'Date Ended'}</ListItem>
38
+ <ListItem><a>{'Popularity'}</a></ListItem>
39
+ <ListItem><a>{'Title'}</a></ListItem>
40
+ <ListItem><a>{'Duration'}</a></ListItem>
41
+ <ListItem><a>{'Date Started'}</a></ListItem>
42
+ <ListItem><a>{'Date Ended'}</a></ListItem>
43
43
  </List>
44
44
  </PbReactPopover>
45
45
  )
@@ -15,13 +15,12 @@ import {
15
15
 
16
16
  import { globalProps } from '../utilities/globalProps.js'
17
17
 
18
- type Props = {
19
- aria: Object,
18
+ type SelectableCardProps = {
19
+ aria?: object,
20
20
  checked: Boolean,
21
21
  children?: Array<React.ReactChild>,
22
22
  className?: String,
23
- dark?: Boolean,
24
- data: Object,
23
+ data: object,
25
24
  disabled?: Boolean,
26
25
  icon?: Boolean,
27
26
  id?: String,
@@ -38,7 +37,6 @@ const SelectableCard = ({
38
37
  checked = false,
39
38
  children,
40
39
  className,
41
- dark = false,
42
40
  data = {},
43
41
  disabled = false,
44
42
  icon = false,
@@ -49,17 +47,15 @@ const SelectableCard = ({
49
47
  text,
50
48
  value,
51
49
  ...props
52
- }: Props) => {
50
+ }: SelectableCardProps) => {
53
51
  const ariaProps = buildAriaProps(aria)
54
52
  const dataProps = buildDataProps(data)
55
53
 
56
- const css = buildCss({
57
- 'pb_selectable_card_kit': true,
58
- checked: checked,
59
- dark: dark,
60
- disabled: disabled,
61
- enabled: !disabled,
62
- })
54
+ const classes = classnames(buildCss('pb_selectable_card_kit',
55
+ { 'checked': checked,
56
+ 'disabled': disabled,
57
+ 'enabled': !disabled },
58
+ className), globalProps(props))
63
59
 
64
60
  const displayIcon = () => {
65
61
  if (icon === true) {
@@ -82,7 +78,7 @@ const SelectableCard = ({
82
78
  <div
83
79
  {...ariaProps}
84
80
  {...dataProps}
85
- className={classnames(css, className)}
81
+ className={classes}
86
82
  >
87
83
  <input
88
84
  {...props}
@@ -65,7 +65,7 @@ $pb_selectable_card_border: 2px;
65
65
  }
66
66
  }
67
67
 
68
- &[class*=_dark] {
68
+ &.dark {
69
69
  label {
70
70
  @include pb_card_dark;
71
71
  background: transparent;
@@ -9,8 +9,6 @@ module Playbook
9
9
 
10
10
  prop :checked, type: Playbook::Props::Boolean,
11
11
  default: false
12
- prop :dark, type: Playbook::Props::Boolean,
13
- default: false
14
12
  prop :disabled, type: Playbook::Props::Boolean,
15
13
  default: false
16
14
  prop :icon, type: Playbook::Props::Boolean,
@@ -26,7 +24,7 @@ module Playbook
26
24
 
27
25
 
28
26
  def classname
29
- generate_classname("pb_selectable_card_kit", checked_class, dark_class, enable_disabled_class)
27
+ generate_classname("pb_selectable_card_kit", checked_class, enable_disabled_class)
30
28
  end
31
29
 
32
30
  def input_id_present
@@ -39,10 +37,6 @@ module Playbook
39
37
  checked ? "checked" : nil
40
38
  end
41
39
 
42
- def dark_class
43
- dark ? "dark" : nil
44
- end
45
-
46
40
  def enable_disabled_class
47
41
  disabled ? "disabled" : "enabled"
48
42
  end
@@ -3,6 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { Body, SelectableCard, SelectableIcon } from '../'
6
+ import { globalProps } from '../utilities/globalProps.js'
6
7
 
7
8
  import {
8
9
  buildAriaProps,
@@ -28,39 +29,39 @@ type SelectableCardIconProps = {
28
29
  onChange?: (e) => void,
29
30
  }
30
31
 
31
- const SelectableCardIcon = ({
32
- aria = {},
33
- checkmark = false,
34
- checked = false,
35
- className,
36
- dark = false,
37
- data = {},
38
- disabled = false,
39
- icon,
40
- inputId,
41
- multi = true,
42
- name,
43
- titleText,
44
- bodyText,
45
- value,
46
- onChange,
47
- }: SelectableCardIconProps) => {
32
+ const SelectableCardIcon = (props: SelectableCardIconProps) => {
33
+ const {
34
+ aria = {},
35
+ checkmark = false,
36
+ checked = false,
37
+ className,
38
+ dark = false,
39
+ data = {},
40
+ disabled = false,
41
+ icon,
42
+ inputId,
43
+ multi = true,
44
+ name,
45
+ titleText,
46
+ bodyText,
47
+ value,
48
+ onChange,
49
+ } = props
50
+
48
51
  const ariaProps = buildAriaProps(aria)
49
52
  const dataProps = buildDataProps(data)
50
53
 
51
- const css = buildCss({
52
- 'pb_selectable_card_icon_kit': true,
53
- 'checked': checked,
54
- 'dark': dark,
55
- 'disabled': disabled,
56
- 'enabled': !disabled,
57
- })
54
+ const classes = classnames(buildCss('pb_selectable_card_icon_kit',
55
+ { 'checked': checked,
56
+ 'disabled': disabled,
57
+ 'enabled': !disabled },
58
+ className), globalProps(props))
58
59
 
59
60
  return (
60
61
  <div
61
62
  {...ariaProps}
62
63
  {...dataProps}
63
- className={classnames(css, className)}
64
+ className={classes}
64
65
  >
65
66
  <SelectableCard
66
67
  checked={checked}
@@ -76,7 +77,6 @@ const SelectableCardIcon = ({
76
77
  {
77
78
  <>
78
79
  <SelectableIcon
79
- dark={dark}
80
80
  icon={icon}
81
81
  inputs="disabled"
82
82
  size="2x"
@@ -32,7 +32,7 @@
32
32
  }
33
33
  }
34
34
 
35
- &[class*=_dark] {
35
+ &.dark {
36
36
 
37
37
  input[type="checkbox"],
38
38
  input[type="radio"] {
@@ -25,11 +25,8 @@ module Playbook
25
25
  default: false
26
26
  prop :value
27
27
 
28
- prop :dark, type: Playbook::Props::Boolean,
29
- default: false
30
-
31
28
  def classname
32
- generate_classname("pb_selectable_card_icon_kit", checked_class, dark_class, enabled_disabled_class)
29
+ generate_classname("pb_selectable_card_icon_kit", checked_class, enabled_disabled_class)
33
30
  end
34
31
 
35
32
  private
@@ -38,10 +35,6 @@ module Playbook
38
35
  checked ? "checked" : nil
39
36
  end
40
37
 
41
- def dark_class
42
- dark ? "dark" : nil
43
- end
44
-
45
38
  def enabled_disabled_class
46
39
  disabled ? "disabled" : "enabled"
47
40
  end
@@ -10,12 +10,13 @@ import {
10
10
  buildDataProps,
11
11
  } from '../utilities/props'
12
12
 
13
+ import { globalProps } from '../utilities/globalProps.js'
14
+
13
15
  type SelectableIconProps = {
14
16
  aria?: Object,
15
17
  checked?: Boolean,
16
18
  className?: String,
17
19
  disabled?: Boolean,
18
- dark?: Boolean,
19
20
  data?: Object,
20
21
  icon: String,
21
22
  inputId: String,
@@ -30,7 +31,6 @@ const SelectableIcon = ({
30
31
  aria = {},
31
32
  className,
32
33
  checked = false,
33
- dark = false,
34
34
  data = {},
35
35
  disabled = false,
36
36
  icon,
@@ -45,13 +45,11 @@ const SelectableIcon = ({
45
45
  const ariaProps = buildAriaProps(aria)
46
46
  const dataProps = buildDataProps(data)
47
47
 
48
- const css = buildCss({
49
- 'pb_selectable_icon_kit': true,
50
- 'checked': checked,
51
- 'dark': dark,
52
- 'disabled': disabled,
53
- 'enabled': !disabled,
54
- })
48
+ const classes = classnames(buildCss('pb_selectable_icon_kit',
49
+ { 'checked': checked,
50
+ 'disabled': disabled,
51
+ 'enabled': !disabled },
52
+ className), globalProps(props))
55
53
 
56
54
  const inputType = multi === false ? 'radio' : 'checkbox'
57
55
 
@@ -61,7 +59,7 @@ const SelectableIcon = ({
61
59
  <div
62
60
  {...ariaProps}
63
61
  {...dataProps}
64
- className={classnames(css, className)}
62
+ className={classes}
65
63
  >
66
64
  <If condition={inputs === 'disabled'}>
67
65
  <>
@@ -53,7 +53,7 @@
53
53
  }
54
54
 
55
55
 
56
- &[class*=_dark] {
56
+ &.dark {
57
57
 
58
58
  input[type="checkbox"],
59
59
  input[type="radio"] {
@@ -9,8 +9,6 @@ module Playbook
9
9
 
10
10
  # Icon props
11
11
  prop :icon, type: Playbook::Props::String
12
- prop :dark, type: Playbook::Props::Boolean,
13
- default: false
14
12
  # Title text
15
13
  prop :text, type: Playbook::Props::String
16
14
 
@@ -30,7 +28,7 @@ module Playbook
30
28
  default: "enabled"
31
29
 
32
30
  def classname
33
- generate_classname("pb_selectable_icon_kit", checked_class, dark_class, enabled_disabled_class)
31
+ generate_classname("pb_selectable_icon_kit", checked_class, enabled_disabled_class)
34
32
  end
35
33
 
36
34
  def input_id_present
@@ -43,10 +41,6 @@ module Playbook
43
41
  checked ? "checked" : nil
44
42
  end
45
43
 
46
- def dark_class
47
- dark ? "dark" : nil
48
- end
49
-
50
44
  def enabled_disabled_class
51
45
  disabled ? "disabled" : "enabled"
52
46
  end
@@ -3,7 +3,7 @@
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
5
  <% if object.label.present? %>
6
- <%= pb_rails("caption", props: {text: object.label, dark: object.dark, classname: "pb_textarea_kit_label"}) %>
6
+ <%= pb_rails("caption", props: {text: object.label, dark: object.dark}) %>
7
7
  <% end %>
8
8
  <% if object.children %>
9
9
  <%= capture(&object.children) %>
@@ -1,10 +1,11 @@
1
1
  @import "../pb_body/body_mixins";
2
2
  @import "./textarea_mixin";
3
3
  @import "../pb_title/title_mixin";
4
+ @import "../tokens/spacing";
4
5
 
5
6
  [class^=pb_textarea_kit] {
6
7
  margin-bottom: $space_sm;
7
- .pb_textarea_kit_label {
8
+ [class^=pb_caption_kit] {
8
9
  margin-bottom: $space_xs;
9
10
  display: block;
10
11
  }
@@ -1,21 +1,64 @@
1
+ /* @flow */
2
+
1
3
  import React from 'react'
2
- import PropTypes from 'prop-types'
4
+ import classnames from 'classnames'
3
5
 
4
- const propTypes = {
5
- className: PropTypes.string,
6
- id: PropTypes.string,
7
- }
6
+ import DateTime from '../pb_kit/dateTime.js'
7
+ import { buildCss } from '../utilities/props'
8
+ import { globalProps } from '../utilities/globalProps.js'
9
+
10
+ import { Body, Icon, Title } from '../'
8
11
 
9
- class Time extends React.Component {
10
- render() {
11
- return (
12
- <div className="pb_time">
13
- <span>{'TIME CONTENT'}</span>
14
- </div>
15
- )
16
- }
12
+ type TimeProps = {
13
+ align?: 'left" | "center' | 'right',
14
+ className?: String | Array<String>,
15
+ data?: String,
16
+ date: String,
17
+ id?: String,
18
+ showTimezone?: Boolean,
19
+ size?: 'lg' | 'sm' | 'xs',
17
20
  }
18
21
 
19
- Time.propTypes = propTypes
22
+ const Time = (props: TimeProps) => {
23
+ const { align, className, date, showTimezone, size } = props
24
+ const classes = classnames(
25
+ className,
26
+ buildCss('pb_time_kit', align, size),
27
+ globalProps(props)
28
+ )
29
+
30
+ const dateTimestamp = new DateTime({ value: date })
31
+
32
+ return (
33
+ <div className={classes}>
34
+ <span className="pb_body_kit">
35
+ <If condition={size === 'sm'}>
36
+ <Icon
37
+ fixedWidth
38
+ icon="clock"
39
+ />
40
+ {' '}
41
+ </If>
42
+ <time dateTime={date}>
43
+ <span>
44
+ <If condition={size !== 'lg'}>
45
+ <Body
46
+ tag="span"
47
+ text={dateTimestamp.toTimeWithMeridian()}
48
+ />
49
+ <Else />
50
+ <Title
51
+ size={3}
52
+ tag="span"
53
+ text={dateTimestamp.toTimeWithMeridian()}
54
+ />
55
+ </If>
56
+ { showTimezone && <span className="pb_time_timezone">{dateTimestamp.toTimezone()}</span> }
57
+ </span>
58
+ </time>
59
+ </span>
60
+ </div>
61
+ )
62
+ }
20
63
 
21
64
  export default Time