playbook_ui 8.0.0.pre.alpha5 → 8.1.1

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +8 -7
  3. data/app/pb_kits/playbook/data/menu.yml +1 -0
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/pb_card/card_header.rb +7 -7
  6. data/app/pb_kits/playbook/pb_collapsible/_collapsible.jsx +84 -0
  7. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +15 -0
  8. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.jsx +40 -0
  9. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.jsx +59 -0
  10. data/app/pb_kits/playbook/pb_collapsible/collapsible.html.erb +7 -0
  11. data/app/pb_kits/playbook/pb_collapsible/collapsible.rb +11 -0
  12. data/app/pb_kits/playbook/pb_collapsible/collapsible.test.js +50 -0
  13. data/app/pb_kits/playbook/pb_collapsible/collapsible_content.html.erb +7 -0
  14. data/app/pb_kits/playbook/pb_collapsible/collapsible_content.rb +17 -0
  15. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +16 -0
  16. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +15 -0
  17. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.html.erb +10 -0
  18. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +19 -0
  19. data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +9 -0
  20. data/app/pb_kits/playbook/pb_collapsible/docs/index.js +1 -0
  21. data/app/pb_kits/playbook/pb_collapsible/index.js +79 -0
  22. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +6 -2
  23. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +1 -1
  24. data/app/pb_kits/playbook/pb_docs/kit_example.rb +1 -1
  25. data/app/pb_kits/playbook/pb_form/_form.scss +5 -1
  26. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +2 -2
  27. data/app/pb_kits/playbook/pb_form/form.rb +11 -2
  28. data/app/pb_kits/playbook/pb_form/form_builder.rb +4 -2
  29. data/app/pb_kits/playbook/pb_form/form_builder/action_area.rb +14 -7
  30. data/app/pb_kits/playbook/pb_form/form_with.html.erb +7 -14
  31. data/app/pb_kits/playbook/pb_form/form_with.rb +13 -6
  32. data/app/pb_kits/playbook/pb_form/simple_form.html.erb +2 -4
  33. data/app/pb_kits/playbook/pb_form/simple_form.rb +4 -0
  34. data/app/pb_kits/playbook/pb_nav/_item.jsx +2 -0
  35. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  36. data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -2
  37. data/app/pb_kits/playbook/pb_nav/nav.html.erb +1 -1
  38. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +1 -1
  39. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +5 -0
  40. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.html.erb +5 -0
  41. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.jsx +7 -0
  42. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.md +1 -1
  43. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.rb +1 -1
  44. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +43 -26
  45. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +18 -0
  46. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb +18 -5
  47. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +10 -5
  48. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +7 -3
  49. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.rb +8 -30
  50. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.test.js +33 -0
  51. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +4 -3
  52. data/app/pb_kits/playbook/vendor.js +3 -0
  53. data/lib/playbook/props/base.rb +1 -1
  54. data/lib/playbook/version.rb +1 -1
  55. metadata +21 -6
  56. data/app/pb_kits/playbook/pb_form/form.html.erb +0 -7
  57. data/app/pb_kits/playbook/pb_form/form_builder/action_area.html.erb +0 -3
@@ -18,7 +18,7 @@ module Playbook
18
18
  # could this possibly be [sm, md, lg]?
19
19
  prop :width, default: "100%"
20
20
  prop :variant, type: Playbook::Props::Enum,
21
- values: %w[default positive negative],
21
+ values: %w[default positive negative warning],
22
22
  default: "default"
23
23
 
24
24
  def number_value
@@ -4,50 +4,67 @@ import React from 'react'
4
4
  import classnames from 'classnames'
5
5
 
6
6
  import DateTime from '../pb_kit/dateTime.js'
7
- import { buildCss } from '../utilities/props'
8
- import { Body, Caption } from '../'
7
+ import { buildCss, buildDataProps } from '../utilities/props'
9
8
  import { deprecatedProps, globalProps } from '../utilities/globalProps.js'
10
9
 
10
+ import { Body, Caption } from '../'
11
+
11
12
  type TimeStackedProps = {
12
13
  align?: 'left' | 'center' | 'right',
13
14
  className?: string | array<string>,
14
15
  dark?: boolean,
15
- data?: string,
16
- date: string,
16
+ data?: object,
17
+ date?: string,
17
18
  id?: string,
18
- tag?: 'body' | 'caption',
19
+ time: number | Date,
20
+ timeZone?: string,
19
21
  }
20
22
 
21
- const TimeStacked = (props: TimeStackedProps) => {
22
- const { align, className, dark, date } = props
23
- deprecatedProps('TimeStacked', ['tag'])
23
+ const TimeStackedDefault = (props: TimeStackedProps) => {
24
+ if (props.date) deprecatedProps('Time Stacked', ['date']) //date prop is deprecated, use time instead
25
+
26
+ const {
27
+ align = 'left',
28
+ className,
29
+ dark,
30
+ data = {},
31
+ date,
32
+ time,
33
+ timeZone,
34
+ } = props
35
+
24
36
  const classes = classnames(
25
37
  buildCss('pb_time_stacked_kit', align),
26
38
  globalProps(props),
27
- className,
39
+ className
28
40
  )
41
+ const dataProps = buildDataProps(data)
29
42
 
30
- const dateTimestamp = new DateTime({ value: date })
43
+ const dateTimestamp = new DateTime({ value: date ? date : new Date(time), zone: timeZone })
31
44
 
32
45
  return (
33
- <div className={classes}>
34
- <div
35
- align={align}
36
- className="pb_time_stacked_day_month"
46
+ <div
47
+ className={classes}
48
+ {...dataProps}
49
+ >
50
+ <Body
51
+ className={classnames('pb_time_stacked', 'time-spacing')}
52
+ color="light"
53
+ dark={dark}
37
54
  >
38
- <Body
39
- color="light"
40
- dark={dark}
41
- text={dateTimestamp.toTimeWithMeridian()}
42
- />
43
- <Caption
44
- color="light"
45
- dark={dark}
46
- text={dateTimestamp.toTimezone()}
47
- />
48
- </div>
55
+ <time>
56
+ {dateTimestamp.toTimeWithMeridian()}
57
+ <Caption
58
+ className="pb_time_stacked"
59
+ color="light"
60
+ dark={dark}
61
+ tag="span"
62
+ text={dateTimestamp.toTimezone()}
63
+ />
64
+ </time>
65
+ </Body>
49
66
  </div>
50
67
  )
51
68
  }
52
69
 
53
- export default TimeStacked
70
+ export default TimeStackedDefault
@@ -1,3 +1,21 @@
1
1
  @import "../pb_title/title";
2
2
  @import "../pb_caption/caption";
3
3
  @import "../tokens/colors";
4
+
5
+ [class^=pb_time_stacked_kit] {
6
+ &[class*=_center] {
7
+ text-align: center;
8
+ }
9
+
10
+ &[class*=_right] {
11
+ text-align: right;
12
+ }
13
+
14
+ }
15
+
16
+ .time-spacing {
17
+ time {
18
+ display: inline-grid;
19
+ margin-bottom: $space_xs - 6px;
20
+ }
21
+ }
@@ -1,5 +1,18 @@
1
- <%= pb_rails("time_stacked", props: { date: DateTime.now }) %>
2
- <br/>
3
- <%= pb_rails("time_stacked", props: { align: "center", date: DateTime.now }) %>
4
- <br/>
5
- <%= pb_rails("time_stacked", props: { align: "right", date: DateTime.now }) %>
1
+ <%= pb_rails("time_stacked", props: {
2
+ time: DateTime.now,
3
+ align: "left",
4
+ }) %>
5
+
6
+ <br>
7
+
8
+ <%= pb_rails("time_stacked", props: {
9
+ time: Time.now,
10
+ align: "center"
11
+ }) %>
12
+
13
+ <br>
14
+
15
+ <%= pb_rails("time_stacked", props: {
16
+ time: Time.now,
17
+ align: "right"
18
+ }) %>
@@ -5,18 +5,23 @@ const TimeStackedDefault = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <TimeStacked
8
+ time={new Date()}
9
+ timeZone="America/New_York"
8
10
  {...props}
9
- date={new Date()}
10
11
  />
12
+ <br />
11
13
  <TimeStacked
12
- {...props}
13
14
  align="center"
14
- date={new Date()}
15
+ time={new Date()}
16
+ timeZone="America/New_York"
17
+ {...props}
15
18
  />
19
+ <br />
16
20
  <TimeStacked
17
- {...props}
18
21
  align="right"
19
- date={new Date()}
22
+ time={new Date()}
23
+ timeZone="America/New_York"
24
+ {...props}
20
25
  />
21
26
  </div>
22
27
  )
@@ -1,8 +1,12 @@
1
1
  <%= content_tag(:div,
2
- align: object.align,
3
2
  id: object.id,
4
3
  data: object.data,
5
4
  class: object.classname) do %>
6
- <%= pb_rails("body", props: { text: object.format_time_string, color: "light" }) %>
7
- <%= pb_rails("caption", props: { text: object.format_timezone, color: "light" }) %>
5
+
6
+ <%= pb_rails("body", props: { color: "light", classname: "pb_time_stacked time-spacing" }) do %>
7
+ <time>
8
+ <%= object.format_time_string %>
9
+ <%= pb_rails("caption", props: { color: "light", tag: "span", text: object.pb_date_time.to_timezone.upcase, classname: "pb_time_stacked" }) %>
10
+ </time>
11
+ <% end %>
8
12
  <% end %>
@@ -3,49 +3,27 @@
3
3
  module Playbook
4
4
  module PbTimeStacked
5
5
  class TimeStacked < Playbook::KitBase
6
+ prop :time, required: true
6
7
  prop :align, type: Playbook::Props::Enum,
7
8
  values: %w[left center right],
8
9
  default: "left"
9
- prop :classnames, type: Playbook::Props::String,
10
- default: nil
11
- prop :dark, type: Playbook::Props::Boolean,
12
- default: false
13
- prop :date, type: Playbook::Props::Date, required: true
10
+ prop :timezone, default: "America/New_York"
14
11
 
15
12
  def classname
16
- generate_classname("pb_time_stacked_kit", dark_class)
17
- end
18
-
19
- def day
20
- day = Playbook::PbKit::PbDateTime.new(date)
21
- content_tag(:time, datetime: day.to_iso) do
22
- day.to_day.to_s
23
- end
24
- end
25
-
26
- def month
27
- month = Playbook::PbKit::PbDateTime.new(date)
28
- content_tag(:time, datetime: month.to_iso) do
29
- month.to_month.to_s
30
- end
13
+ # convert deprecated prop values
14
+ generate_classname("pb_time_stacked_kit", align)
31
15
  end
32
16
 
33
17
  def format_time_string
34
- "#{pb_date_time.to_full_hour}:#{pb_date_time.to_minutes}#{pb_date_time.to_meridian}"
18
+ "#{pb_date_time.to_hour}:#{pb_date_time.to_minutes}#{pb_date_time.to_meridian}"
35
19
  end
36
20
 
37
- def format_timezone
38
- pb_date_time.to_timezone
39
- end
40
-
41
- private
42
-
43
- def dark_class
44
- dark ? "dark" : nil
21
+ def format_timezone_string
22
+ pb_date_time.to_timezone.to_s
45
23
  end
46
24
 
47
25
  def pb_date_time
48
- Playbook::PbKit::PbDateTime.new(date)
26
+ Playbook::PbKit::PbDateTime.new(time, timezone)
49
27
  end
50
28
  end
51
29
  end
@@ -0,0 +1,33 @@
1
+ import { renderKit, screen } from '../utilities/test-utils'
2
+
3
+ import TimeStacked from './_time_stacked'
4
+
5
+ /*eslint no-multiple-empty-lines: 0*/
6
+
7
+ test('returns the namespaced class', () => {
8
+ const props = {
9
+ data: { testid: 'default' },
10
+ time: new Date,
11
+ }
12
+
13
+ renderKit(TimeStacked, props)
14
+ expect(screen.getByTestId('default')).toHaveClass('pb_time_stacked_kit_left')
15
+
16
+ renderKit(TimeStacked, props, {
17
+ align: 'center',
18
+ data: { testid: 'center' },
19
+ })
20
+ expect(screen.getByTestId('center')).toHaveClass('pb_time_stacked_kit_center')
21
+
22
+ renderKit(TimeStacked, props, {
23
+ align: 'right',
24
+ data: { testid: 'right' },
25
+ })
26
+ expect(screen.getByTestId('right')).toHaveClass('pb_time_stacked_kit_right')
27
+
28
+ renderKit(TimeStacked, props, {
29
+ dark: true,
30
+ data: { testid: 'dark' },
31
+ })
32
+ expect(screen.getByTestId('dark')).toHaveClass('pb_time_stacked_kit_left dark')
33
+ })
@@ -46,7 +46,7 @@ $tooltip_shadow: rgba(60, 106, 172, 0.18);
46
46
  content: " ";
47
47
  position: absolute;
48
48
  top: 100%;
49
- left: 50%;
49
+ left: calc(50% - 10px);
50
50
  border-color: $white transparent transparent transparent;
51
51
  border-style: solid;
52
52
  border-width: 10px;
@@ -95,9 +95,10 @@ $tooltip_shadow: rgba(60, 106, 172, 0.18);
95
95
  box-shadow: -8px 0 28px 0 $tooltip_shadow;
96
96
  margin: 0 0 0 $space_sm;
97
97
  .arrow {
98
- left: -#{$space_xs};
99
- top: $arrow_vertical_offset;
98
+ left: -18px;
99
+ right: auto;
100
100
  margin-bottom: 0;
101
+ top: $arrow_vertical_offset;
101
102
  transform: rotate(90deg);
102
103
  }
103
104
  &.flipped .arrow {
@@ -12,6 +12,9 @@ window.datePickerHelper = datePickerHelper
12
12
  // Lazy image loading
13
13
  import 'lazysizes'
14
14
 
15
+ import PbCollapsible from './pb_collapsible'
16
+ PbCollapsible.start()
17
+
15
18
  import PbPopover from './pb_popover'
16
19
  PbPopover.start()
17
20
 
@@ -46,4 +46,4 @@ module Playbook
46
46
  end
47
47
  end
48
48
  end
49
- end
49
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "8.0.0.pre.alpha5"
4
+ VERSION = "8.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0.pre.alpha5
4
+ version: 8.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-02-23 00:00:00.000000000 Z
12
+ date: 2021-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -663,6 +663,22 @@ files:
663
663
  - app/pb_kits/playbook/pb_circle_icon_button/docs/_footer.md
664
664
  - app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml
665
665
  - app/pb_kits/playbook/pb_circle_icon_button/docs/index.js
666
+ - app/pb_kits/playbook/pb_collapsible/_collapsible.jsx
667
+ - app/pb_kits/playbook/pb_collapsible/_collapsible.scss
668
+ - app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.jsx
669
+ - app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.jsx
670
+ - app/pb_kits/playbook/pb_collapsible/collapsible.html.erb
671
+ - app/pb_kits/playbook/pb_collapsible/collapsible.rb
672
+ - app/pb_kits/playbook/pb_collapsible/collapsible.test.js
673
+ - app/pb_kits/playbook/pb_collapsible/collapsible_content.html.erb
674
+ - app/pb_kits/playbook/pb_collapsible/collapsible_content.rb
675
+ - app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb
676
+ - app/pb_kits/playbook/pb_collapsible/collapsible_main.rb
677
+ - app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.html.erb
678
+ - app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx
679
+ - app/pb_kits/playbook/pb_collapsible/docs/example.yml
680
+ - app/pb_kits/playbook/pb_collapsible/docs/index.js
681
+ - app/pb_kits/playbook/pb_collapsible/index.js
666
682
  - app/pb_kits/playbook/pb_contact/_contact.jsx
667
683
  - app/pb_kits/playbook/pb_contact/_contact.scss
668
684
  - app/pb_kits/playbook/pb_contact/contact.html.erb
@@ -955,10 +971,8 @@ files:
955
971
  - app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb
956
972
  - app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.md
957
973
  - app/pb_kits/playbook/pb_form/docs/example.yml
958
- - app/pb_kits/playbook/pb_form/form.html.erb
959
974
  - app/pb_kits/playbook/pb_form/form.rb
960
975
  - app/pb_kits/playbook/pb_form/form_builder.rb
961
- - app/pb_kits/playbook/pb_form/form_builder/action_area.html.erb
962
976
  - app/pb_kits/playbook/pb_form/form_builder/action_area.rb
963
977
  - app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb
964
978
  - app/pb_kits/playbook/pb_form/form_builder/collection_select_field.rb
@@ -1809,6 +1823,7 @@ files:
1809
1823
  - app/pb_kits/playbook/pb_time_stacked/docs/index.js
1810
1824
  - app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb
1811
1825
  - app/pb_kits/playbook/pb_time_stacked/time_stacked.rb
1826
+ - app/pb_kits/playbook/pb_time_stacked/time_stacked.test.js
1812
1827
  - app/pb_kits/playbook/pb_timeline/_item.jsx
1813
1828
  - app/pb_kits/playbook/pb_timeline/_timeline.jsx
1814
1829
  - app/pb_kits/playbook/pb_timeline/_timeline.scss
@@ -2057,9 +2072,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2057
2072
  version: '0'
2058
2073
  required_rubygems_version: !ruby/object:Gem::Requirement
2059
2074
  requirements:
2060
- - - ">"
2075
+ - - ">="
2061
2076
  - !ruby/object:Gem::Version
2062
- version: 1.3.1
2077
+ version: '0'
2063
2078
  requirements: []
2064
2079
  rubyforge_project:
2065
2080
  rubygems_version: 2.7.3
@@ -1,7 +0,0 @@
1
- <%=
2
- pb_rails("form/#{form_system}", props: {
3
- options: form_system_options,
4
- children: children,
5
- validate: validate
6
- })
7
- %>
@@ -1,3 +0,0 @@
1
- <ol class="pb-form-actions">
2
- <%= content %>
3
- </ol>