playbook_ui 6.3.1 → 6.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/data/menu.yml +1 -0
  4. data/app/pb_kits/playbook/index.js +2 -0
  5. data/app/pb_kits/playbook/packs/examples.js +2 -1
  6. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +0 -1
  7. data/app/pb_kits/playbook/pb_button/_button.jsx +1 -0
  8. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +32 -18
  9. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +3 -7
  10. data/app/pb_kits/playbook/pb_button/docs/_button_default_dark.jsx +3 -0
  11. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +2 -0
  12. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +2 -0
  13. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +16 -8
  14. data/app/pb_kits/playbook/pb_caption/_caption.jsx +3 -1
  15. data/app/pb_kits/playbook/pb_caption/_caption.scss +3 -0
  16. data/app/pb_kits/playbook/pb_caption/caption.rb +4 -1
  17. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb +1 -0
  18. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +16 -0
  19. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.md +3 -0
  20. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  21. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  22. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -0
  23. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +12 -6
  24. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +2 -1
  25. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +39 -0
  26. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +146 -0
  27. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +33 -0
  28. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +85 -0
  29. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +171 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +4 -0
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +13 -0
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
  36. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
  37. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
  38. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
  39. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
  40. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
  41. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
  42. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.md +1 -0
  43. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.html.erb +4 -0
  44. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.jsx +13 -0
  45. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.html.erb +37 -0
  46. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.jsx +37 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.md +1 -0
  48. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +26 -0
  49. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +32 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.md +3 -0
  51. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
  52. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
  53. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.md +1 -0
  54. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.html.erb +4 -0
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx +13 -0
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md +1 -0
  61. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb +7 -0
  62. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx +16 -0
  63. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md +1 -0
  64. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +7 -0
  65. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +35 -0
  66. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +14 -0
  67. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +32 -0
  68. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_day_styles.scss +53 -0
  69. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +785 -0
  70. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_header_styles.scss +108 -0
  71. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_overrides.scss +44 -0
  72. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +1 -1
  73. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +1 -1
  74. data/app/pb_kits/playbook/pb_filter/_filter.scss +1 -1
  75. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  76. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  77. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -0
  78. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -0
  79. data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -0
  80. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +20 -0
  81. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +5 -2
  82. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +3 -1
  83. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +7 -5
  84. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +6 -4
  85. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +18 -14
  86. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
  87. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +0 -1
  88. data/app/pb_kits/playbook/pb_radio/_radio.scss +9 -4
  89. data/app/pb_kits/playbook/pb_select/_select.scss +8 -4
  90. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -3
  91. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +35 -37
  92. data/app/pb_kits/playbook/pb_table/styles/_hover.scss +15 -12
  93. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +6 -4
  94. data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +6 -4
  95. data/app/pb_kits/playbook/pb_table/table.rb +3 -3
  96. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +1 -0
  97. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -17
  98. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +4 -4
  99. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
  100. data/app/pb_kits/playbook/pb_time/_time.jsx +7 -5
  101. data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +0 -2
  102. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -3
  103. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -3
  104. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +59 -0
  105. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.md +11 -0
  106. data/app/pb_kits/playbook/pb_time/docs/example.yml +1 -0
  107. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  108. data/app/pb_kits/playbook/pb_title/_title.jsx +1 -1
  109. data/app/pb_kits/playbook/pb_title/_title.scss +5 -5
  110. data/app/pb_kits/playbook/pb_title/docs/_title_variants.html.erb +1 -0
  111. data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +17 -0
  112. data/app/pb_kits/playbook/pb_title/docs/_title_variants.md +3 -0
  113. data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -0
  114. data/app/pb_kits/playbook/pb_title/docs/index.js +1 -0
  115. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +4 -2
  116. data/app/pb_kits/playbook/vendor.js +6 -0
  117. data/lib/playbook/version.rb +1 -1
  118. metadata +59 -4
@@ -18,9 +18,11 @@ $pb_selectable_card_border: 2px;
18
18
  padding: $space_sm + 1;
19
19
  cursor: pointer;
20
20
 
21
- &:hover {
22
- box-shadow: $shadow-deep;
23
- border-color: $slate;
21
+ @media (hover:hover) {
22
+ &:hover {
23
+ box-shadow: $shadow-deep;
24
+ border-color: $slate;
25
+ }
24
26
  }
25
27
 
26
28
  .pb_selectable_card_circle {
@@ -66,6 +68,7 @@ $pb_selectable_card_border: 2px;
66
68
  }
67
69
 
68
70
  &.dark {
71
+ color: $white;
69
72
  label {
70
73
  @include pb_card_dark;
71
74
  background: transparent;
@@ -1,82 +1,80 @@
1
+ @import "../tokens/transition";
2
+
1
3
  [class^=pb_selectable_icon] {
2
4
 
3
- text-align: center;
4
- cursor: pointer;
5
+ text-align: center;
6
+ cursor: pointer;
7
+ transition: all $transition_short ease;
8
+ @media (hover:hover) {
9
+ &:hover * {
10
+ transition: all $transition_short ease;
11
+ transform: translateY(-2px);
12
+ }
13
+ }
5
14
 
6
- :hover * {
7
- filter: drop-shadow(0 0 8px rgba($shadow, 0.25));
8
- transition-duration: $transition_short;
9
- transition-timing-function: $easeIn;
10
- }
15
+ * {
16
+ cursor: pointer;
17
+ }
11
18
 
12
- * {
13
- cursor: pointer;
14
- }
19
+ h4 {
20
+ margin-top: $space_xs !important;
21
+ user-select: none;
22
+ transition: color $transition_short ease;
23
+ }
15
24
 
16
- h4 {
17
- margin-top: $space_xs !important;
18
- user-select: none;
19
- }
25
+ label {
26
+ transition: color $transition_short ease;
27
+ }
20
28
 
21
- &[class*=_disabled] {
29
+ &[class*=_disabled] {
22
30
  opacity: $opacity_6;
23
31
  cursor: not-allowed;
24
-
25
32
  * {
26
- cursor: not-allowed;
33
+ cursor: not-allowed;
27
34
  }
28
35
  }
29
36
 
30
- input[type="checkbox"],
31
- input[type="radio"] {
37
+ input[type="checkbox"],
38
+ input[type="radio"] {
32
39
  -webkit-appearance: none;
33
40
  -moz-appearance: none;
34
41
  display: none;
35
42
  appearance: none;
36
-
37
- transition-property: color;
38
- transition-duration: $transition_short;
43
+ transition: color $transition_short ease;
39
44
 
40
45
  &:checked ~ label * {
41
- transition-timing-function: $easeIn;
46
+ transition: color $transition_short ease;
42
47
  color: $primary;
43
48
  }
44
49
 
45
50
  &:not(:checked) ~ label {
46
- transition-timing-function: $easeOut;
51
+ transition: color $transition_short ease;
47
52
  color: $slate;
48
53
 
49
- h4 {
50
- transition-delay: .15s;
51
- }
52
54
  }
53
55
  }
54
56
 
55
57
 
56
- &.dark {
57
-
58
+ &.dark {
58
59
  input[type="checkbox"],
59
60
  input[type="radio"] {
60
61
  -webkit-appearance: none;
61
62
  -moz-appearance: none;
62
63
  display: none;
63
64
  appearance: none;
64
-
65
- transition-property: color;
66
- transition-duration: $transition_short;
67
-
68
-
65
+ transition: color $transition_short ease;
66
+
69
67
  &:checked ~ label * {
70
- transition-timing-function: $easeIn;
68
+ transition: color $transition_short ease;
71
69
  color: $active_dark !important;
72
70
  }
73
71
 
74
72
  &:not(:checked) ~ label {
75
- transition-timing-function: $easeOut;
73
+ transition: color $transition_short ease;
76
74
  color: $text_dk_lighter;
77
75
 
78
76
  h4 {
79
- transition-delay: .15s;
77
+ transition: color $transition_short ease;
80
78
  color: $text_dk_default;
81
79
  }
82
80
  }
@@ -19,14 +19,16 @@ $transition-speed: 0.2s;
19
19
  transition: all $transition-speed ease;
20
20
  }
21
21
 
22
- &:hover {
23
- box-shadow: 0 2px 10px 0 rgba($slate, $opacity-6);
22
+ @media (hover:hover) {
23
+ &:hover {
24
+ box-shadow: 0 2px 10px 0 rgba($slate, $opacity-6);
24
25
 
25
- td {
26
- background: $white;
27
- border-color: darken($border_light, 10%);
28
- border-top-width: 1px;
29
- border-top-color: transparent;
26
+ td {
27
+ background: $white;
28
+ border-color: darken($border_light, 10%);
29
+ border-top-width: 1px;
30
+ border-top-color: transparent;
31
+ }
30
32
  }
31
33
  }
32
34
  }
@@ -38,11 +40,12 @@ $transition-speed: 0.2s;
38
40
  border-top-color: $border_light;
39
41
  border-top-width: 1px;
40
42
  }
41
-
42
- &:hover {
43
- td {
44
- border-top-width: 1px;
45
- border-top-color: $border_light;
43
+ @media (hover:hover) {
44
+ &:hover {
45
+ td {
46
+ border-top-width: 1px;
47
+ border-top-color: $border_light;
48
+ }
46
49
  }
47
50
  }
48
51
  }
@@ -91,10 +91,12 @@
91
91
  }
92
92
  }
93
93
  }
94
- &:hover {
95
- tbody {
96
- tr {
97
- box-shadow: 0 0 0 $white !important;
94
+ @media (hover:hover) {
95
+ &:hover {
96
+ tbody {
97
+ tr {
98
+ box-shadow: 0 0 0 $white !important;
99
+ }
98
100
  }
99
101
  }
100
102
  }
@@ -42,10 +42,12 @@ $table-dark-card-bg: $bg_dark;
42
42
  &:not(.no-hover) {
43
43
  tbody {
44
44
  tr {
45
- &:hover {
46
- td {
47
- border-color: $border_dark !important;
48
- background: $bg_dark;
45
+ @media (hover:hover) {
46
+ &:hover {
47
+ td {
48
+ border-color: $border_dark !important;
49
+ background: $bg_dark;
50
+ }
49
51
  }
50
52
  }
51
53
  }
@@ -33,9 +33,9 @@ module Playbook
33
33
 
34
34
  private
35
35
 
36
- def dark_class
37
- dark ? "table-dark" : nil
38
- end
36
+ def dark_class
37
+ dark ? "table-dark" : nil
38
+ end
39
39
 
40
40
  def data_table_class
41
41
  data_table ? "data_table" : nil
@@ -14,6 +14,7 @@
14
14
  <% end %>
15
15
  <% else %>
16
16
  <%= tag(:input,
17
+ autocomplete: object.autocomplete ? nil : "off",
17
18
  class: "text_input",
18
19
  data: object.validation_data,
19
20
  disabled: object.disabled,
@@ -13,6 +13,7 @@ type TextInputProps = {
13
13
  aria?: object,
14
14
  className: string,
15
15
  data?: object,
16
+ dark?: boolean,
16
17
  disabled?: boolean,
17
18
  error?: string,
18
19
  id?: string,
@@ -26,23 +27,25 @@ type TextInputProps = {
26
27
  children: Node,
27
28
  }
28
29
 
29
- const TextInput = ({
30
- aria = {},
31
- className,
32
- data = {},
33
- disabled,
34
- error,
35
- id,
36
- name,
37
- label,
38
- onChange = () => {},
39
- placeholder,
40
- required,
41
- type = 'text',
42
- value,
43
- children = null,
44
- ...props
45
- }: TextInputProps) => {
30
+ const TextInput = (props: TextInputProps) => {
31
+ const {
32
+ aria = {},
33
+ className,
34
+ data = {},
35
+ dark = false,
36
+ disabled,
37
+ error,
38
+ id,
39
+ name,
40
+ label,
41
+ onChange = () => {},
42
+ placeholder,
43
+ required,
44
+ type = 'text',
45
+ value,
46
+ children = null,
47
+ } = props
48
+
46
49
  const ariaProps = buildAriaProps(aria)
47
50
  const dataProps = buildDataProps(data)
48
51
  const css = classnames([
@@ -60,6 +63,7 @@ const TextInput = ({
60
63
  >
61
64
  <Caption
62
65
  className="pb_text_input_kit_label"
66
+ dark={dark}
63
67
  text={label}
64
68
  />
65
69
  <div className="text_input_wrapper">
@@ -17,7 +17,7 @@
17
17
  @include pb_body_light;
18
18
  }
19
19
 
20
- > input:first-child {
20
+ input {
21
21
  @include pb_textarea_light;
22
22
  @include pb_title_4;
23
23
  overflow: hidden;
@@ -38,7 +38,7 @@
38
38
  @include pb_body_light_dark;
39
39
  }
40
40
 
41
- > input:first-child {
41
+ input {
42
42
  @include pb_textarea_dark;
43
43
  @include pb_title_4;
44
44
  @include pb_title_dark;
@@ -54,7 +54,7 @@
54
54
 
55
55
  &.error {
56
56
  .text_input_wrapper {
57
- > input:first-child {
57
+ input {
58
58
  border-color: $error_dark;
59
59
  }
60
60
  }
@@ -66,7 +66,7 @@
66
66
  [class*=pb_body_kit] {
67
67
  margin-top: $space_xs / 2;
68
68
  }
69
- > input:first-child {
69
+ input {
70
70
  border-color: $error;
71
71
  }
72
72
  }
@@ -7,6 +7,8 @@ module Playbook
7
7
 
8
8
  partial "pb_text_input/text_input"
9
9
 
10
+ prop :autocomplete, type: Playbook::Props::Boolean,
11
+ default: true
10
12
  prop :disabled, type: Playbook::Props::Boolean,
11
13
  default: false
12
14
  prop :error
@@ -10,24 +10,24 @@ import { globalProps } from '../utilities/globalProps.js'
10
10
  import { Body, Icon, Title } from '../'
11
11
 
12
12
  type TimeProps = {
13
- align?: 'left" | "center' | 'right',
13
+ align?: 'left' | 'center' | 'right',
14
14
  className?: string | array<string>,
15
15
  data?: string,
16
16
  date: string,
17
17
  id?: string,
18
- showTimezone?: boolean,
19
18
  size?: 'lg' | 'sm' | 'xs',
19
+ timeZone?: string,
20
20
  }
21
21
 
22
22
  const Time = (props: TimeProps) => {
23
- const { align, className, date, showTimezone, size } = props
23
+ const { align, className, date, size, timeZone } = props
24
24
  const classes = classnames(
25
25
  className,
26
26
  buildCss('pb_time_kit', align, size),
27
27
  globalProps(props)
28
28
  )
29
29
 
30
- const dateTimestamp = new DateTime({ value: date })
30
+ const dateTimestamp = new DateTime({ value: date, zone: timeZone })
31
31
 
32
32
  return (
33
33
  <div className={classes}>
@@ -53,7 +53,9 @@ const Time = (props: TimeProps) => {
53
53
  text={dateTimestamp.toTimeWithMeridian()}
54
54
  />
55
55
  </If>
56
- { showTimezone && <span className="pb_time_timezone">{dateTimestamp.toTimezone()}</span> }
56
+ <If condition={timeZone !== undefined}>
57
+ <span className="pb_time_timezone">{dateTimestamp.toTimezone()}</span>
58
+ </If>
57
59
  </span>
58
60
  </time>
59
61
  </span>
@@ -12,14 +12,12 @@ const TimeDark = () => {
12
12
  <Time
13
13
  dark
14
14
  date={new Date()}
15
- showTimezone
16
15
  size="lg"
17
16
  />
18
17
  <br />
19
18
  <Time
20
19
  dark
21
20
  date={new Date()}
22
- showTimezone
23
21
  />
24
22
  </div>
25
23
  )
@@ -6,19 +6,17 @@ const TimeDefault = () => {
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
- showTimezone
10
9
  size="lg"
10
+ timeZone="America/New_York"
11
11
  />
12
12
  <br />
13
13
  <Time
14
14
  date={new Date().getTime()}
15
- showTimezone
16
15
  size="sm"
17
16
  />
18
17
  <br />
19
18
  <Time
20
19
  date="2012-08-02T09:49:29Z"
21
- showTimezone
22
20
  size="xs"
23
21
  />
24
22
  </div>
@@ -6,7 +6,6 @@ const TimeStamp = () => {
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
- showTimezone
10
9
  size="sm"
11
10
  />
12
11
 
@@ -14,7 +13,6 @@ const TimeStamp = () => {
14
13
 
15
14
  <Time
16
15
  date={new Date().getTime()}
17
- showTimezone
18
16
  size="sm"
19
17
  />
20
18
 
@@ -22,7 +20,6 @@ const TimeStamp = () => {
22
20
 
23
21
  <Time
24
22
  date="2012-08-02T15:49:29Z"
25
- showTimezone
26
23
  size="sm"
27
24
  />
28
25
  </div>
@@ -0,0 +1,59 @@
1
+ import React from 'react'
2
+ import Time from '../_time.jsx'
3
+
4
+ const TimeTimeZone = () => {
5
+ const zones = {
6
+ east: 'America/New_York',
7
+ central: 'America/Chicago',
8
+ mountain: 'America/Denver',
9
+ west: 'America/Los_Angeles',
10
+ asia: 'Asia/Tokyo',
11
+ }
12
+ return (
13
+ <div>
14
+ <h4>{'East Coast'}</h4>
15
+ <Time
16
+ date={new Date().toLocaleString('en-US', { timeZone: zones.east })}
17
+ size="lg"
18
+ timeZone={zones.east}
19
+ />
20
+ <br />
21
+ <br />
22
+ <h4>{'Central'}</h4>
23
+ <Time
24
+ date={new Date().toLocaleString('en-US', { timeZone: zones.central })}
25
+ size="sm"
26
+ timeZone={zones.central}
27
+ />
28
+ <br />
29
+ <br />
30
+ <h4>{'Mountain'}</h4>
31
+ <Time
32
+ date={new Date().toLocaleString('en-US', { timeZone: zones.mountain })}
33
+ size="sm"
34
+ timeZone={zones.mountain}
35
+ />
36
+
37
+ <br />
38
+ <br />
39
+ <h4>{'West Coast'}</h4>
40
+ <Time
41
+ date={new Date().toLocaleString('en-US', { timeZone: zones.west })}
42
+ size="sm"
43
+ timeZone={zones.west}
44
+ />
45
+
46
+ <br />
47
+ <br />
48
+ <h4>{'Tokyo, Japan'}</h4>
49
+ <Time
50
+ date={new Date('2012-08-02T09:49:29Z').toLocaleString('en-US', { timeZone: zones.asia })}
51
+ size="sm"
52
+ timeZone={zones.asia}
53
+ />
54
+
55
+ </div>
56
+ )
57
+ }
58
+
59
+ export default TimeTimeZone