playbook_ui 7.1.0 → 7.3.0.pre.alpha1

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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  3. data/app/pb_kits/playbook/pb_caption/_caption.html.erb +7 -5
  4. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +11 -0
  5. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +28 -0
  6. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  7. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  8. data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
  9. data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
  10. data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
  11. data/app/pb_kits/playbook/pb_date/date.rb +21 -9
  12. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
  13. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
  14. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
  15. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
  16. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
  17. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
  18. data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
  19. data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
  20. data/app/pb_kits/playbook/pb_nav/_item.html.erb +3 -0
  21. data/app/pb_kits/playbook/pb_nav/_item.jsx +14 -1
  22. data/app/pb_kits/playbook/pb_nav/_nav.jsx +3 -0
  23. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +22 -3
  24. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.html.erb +6 -0
  25. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx +29 -0
  26. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb +7 -0
  27. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx +42 -0
  28. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md +1 -0
  29. data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -0
  30. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  31. data/app/pb_kits/playbook/pb_nav/item.rb +1 -0
  32. data/app/pb_kits/playbook/pb_nav/nav.rb +6 -1
  33. data/app/pb_kits/playbook/pb_pill/_pill.scss +1 -0
  34. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -3
  35. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +26 -47
  36. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +32 -0
  37. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +6 -2
  38. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +2 -1
  39. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +2 -1
  40. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx +9 -3
  41. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -1
  42. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +4 -4
  43. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_options.html.erb +16 -0
  44. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +3 -2
  45. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +16 -9
  46. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +3 -2
  47. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_options.html.erb +16 -0
  48. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +4 -3
  49. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +3 -0
  50. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +3 -3
  51. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_options.html.erb +15 -0
  52. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +3 -2
  53. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +10 -0
  54. data/app/pb_kits/playbook/pb_time/_time.html.erb +17 -20
  55. data/app/pb_kits/playbook/pb_time/_time.jsx +40 -27
  56. data/app/pb_kits/playbook/pb_time/_time.scss +4 -24
  57. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +4 -1
  58. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +11 -11
  59. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +13 -1
  60. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +4 -1
  61. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +3 -1
  62. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +7 -2
  63. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +3 -2
  64. data/app/pb_kits/playbook/props.rb +1 -1
  65. data/app/pb_kits/playbook/props/base.rb +6 -4
  66. data/lib/playbook/version.rb +1 -1
  67. metadata +21 -19
  68. data/lib/generators/kit/USAGE +0 -5
  69. data/lib/generators/kit/kit_generator.rb +0 -95
  70. data/lib/generators/kit/templates/kit_example_rails.erb.tt +0 -1
  71. data/lib/generators/kit/templates/kit_example_react.erb.tt +0 -10
  72. data/lib/generators/kit/templates/kit_example_yml.erb.tt +0 -9
  73. data/lib/generators/kit/templates/kit_html.erb.tt +0 -7
  74. data/lib/generators/kit/templates/kit_js.erb.tt +0 -1
  75. data/lib/generators/kit/templates/kit_jsx.erb.tt +0 -68
  76. data/lib/generators/kit/templates/kit_ruby.erb.tt +0 -11
  77. data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -11
  78. data/lib/generators/kit/templates/kit_scss.erb +0 -3
  79. data/lib/tasks/changelog.rake +0 -14
  80. data/lib/tasks/pb_release.rake +0 -88
  81. data/lib/tasks/playbook_tasks.rake +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f444fe64c94fe52134b58d54feab40314cc5c10a273dca136a837dd4f32bdae2
4
- data.tar.gz: 242b3eb07882d6e290cd1784e1916b129a4d65d3a49119bea18ac09f96890460
3
+ metadata.gz: ca983cabd6299f4dfad9ce14371ab208cd0a4a07d33a96a982b1d8738fdab2fe
4
+ data.tar.gz: b595faf637896b674152d5d99447d68afb91167b73613a0968a4dc97bebef410
5
5
  SHA512:
6
- metadata.gz: 295ff9b7e1d2612ea7a405e40241869d5ee31e2762961a32edb0ddb6443407d514929148c719e7c68a78bf62f9736e8520c22afc055aae15abd375be4eaa0a0e
7
- data.tar.gz: 66d67a743c7c465f8b68ae80f55b0438d196713ec917c9fcd104988f7969814f13c89af20f0fa9e84d5bde3dd5118a93e8638fcb6bd2eb32d2c9012ef98da614
6
+ metadata.gz: 44ec7a1bbb7d5caac83eaff177c2901369d5ca0988443256ead755384181fb4dd93821ebba314e49cd777f543fa7f151ec7677913eb3ed7554297c49418770ff
7
+ data.tar.gz: da094e6d8c732361affbed9a1bc563afd9ce2a4a42d95206af73482a2db773ce488d93fb97efcaf0d0bf888bb271745f0b2491bab370156de11b1e83d2ec2162
@@ -5,7 +5,7 @@ module Playbook
5
5
  class Body
6
6
  include Playbook::Props
7
7
  include ActionView::Helpers
8
-
8
+
9
9
  partial "pb_body/body"
10
10
 
11
11
  prop :color, type: Playbook::Props::Enum,
@@ -1,5 +1,7 @@
1
- <%= content_tag(object.tag, object.text,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- aria: object.aria) %>
1
+ <%= content_tag(object.tag,
2
+ aria: object.aria,
3
+ id: object.id,
4
+ data: object.data,
5
+ class: object.classname) do %>
6
+ <%= object.children.present? ? capture(&object.children) : object.text %>
7
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <%= pb_rails("caption") do %>
2
+ Block
3
+ <% end %>
4
+
5
+ <%= pb_rails("caption", props: { size: 'lg' }) do %>
6
+ Large Block
7
+ <% end %>
8
+
9
+ <%= pb_rails("caption", props: { size: 'xs' }) do %>
10
+ Subcaption Block
11
+ <% end %>
@@ -0,0 +1,28 @@
1
+ import React from 'react'
2
+ import { Caption } from '../../'
3
+
4
+ const CaptionBlock = (props) => {
5
+ return (
6
+ <div>
7
+ <Caption {...props}>
8
+ {'Block'}
9
+ </Caption>
10
+
11
+ <Caption
12
+ {...props}
13
+ size="lg"
14
+ >
15
+ {'Large Block'}
16
+ </Caption>
17
+
18
+ <Caption
19
+ {...props}
20
+ size="xs"
21
+ >
22
+ {'Subcaption Block'}
23
+ </Caption>
24
+ </div>
25
+ )
26
+ }
27
+
28
+ export default CaptionBlock
@@ -1,5 +1,7 @@
1
1
  examples:
2
2
  rails:
3
3
  - caption_light: Default
4
+ - caption_block: Block
4
5
  react:
5
6
  - caption_light: Default
7
+ - caption_block: Block
@@ -1,2 +1,3 @@
1
1
  export { default as CaptionLight } from './_caption_light.jsx'
2
2
  export { default as CaptionVariants } from './_caption_variants.jsx'
3
+ export { default as CaptionBlock } from './_caption_block.jsx'
@@ -1,14 +1,70 @@
1
1
  <%= content_tag(:div,
2
2
  id: object.id,
3
3
  data: object.data,
4
- class: object.classname) do %>
5
- <% if object.size == "lg" %>
6
- <%= pb_rails("title", props: { text: object.lg_date, size: 3 }) %>
7
- <% elsif object.size == "sm" %>
8
- <%= pb_rails("icon", props: { icon: "calendar", fixed_width: true }) %>
9
- <%= pb_rails("title", props: { tag: "span", text: object.sm_date, size: 4 }) %>
4
+ class: object.classname,
5
+ aria: object.aria) do %>
6
+
7
+ <% if object.size == "md" %>
8
+ <!-- icon -->
9
+ <% if object.show_icon %>
10
+ <%= pb_rails("body", props: {
11
+ color: "light",
12
+ tag: "div",
13
+ }) do %>
14
+ <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
15
+ <% end %>
16
+ <% end %>
17
+
18
+ <!-- day_of_week -->
19
+ <% if object.show_day_of_week %>
20
+ <%= pb_rails("title", props: { tag: "div", text: object.day_of_week, size: 4 }) %>
21
+ <%= pb_rails("body", props: {
22
+ text: "•",
23
+ color: "light",
24
+ tag: "div",
25
+ }) %>
26
+ <% end %>
27
+
28
+ <!-- month day, year -->
29
+
30
+ <%# if not current year %>
31
+ <% if object.year.to_s == DateTime.now.year.to_s %>
32
+ <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}", size: 4 }) %>
33
+ <%# if is current year %>
10
34
  <% else %>
11
- <%= pb_rails("title", props: { text: object.xs_date, size: 4 }) %>
35
+ <%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}, #{object.year}", size: 4 }) %>
36
+ <% end %>
37
+
38
+ <% else %>
39
+
40
+ <!-- icon -->
41
+ <% if object.show_icon %>
42
+ <%= pb_rails("body", props: {
43
+ color: "light",
44
+ tag: "div",
45
+ }) do %>
46
+ <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
47
+ <% end %>
48
+ <% end %>
49
+
50
+ <!-- day_of_week -->
51
+ <% if object.show_day_of_week %>
52
+ <%= pb_rails("caption", props: { tag: "div", text: object.day_of_week }) %>
53
+ <%= pb_rails("caption", props: {
54
+ text: "•",
55
+ color: "light",
56
+ tag: "div",
57
+ }) %>
58
+ <% end %>
59
+
60
+ <!-- month day, year -->
61
+
62
+ <%# if not current year %>
63
+ <% if object.year.to_s == DateTime.now.year.to_s %>
64
+ <%= pb_rails("caption", props: { tag: "span", text: "#{object.month} #{object.day}" }) %>
65
+ <%# if is current year %>
66
+ <% else %>
67
+ <%= pb_rails("caption", props: { tag: "span", text: "#{object.month} #{object.day}, #{object.year}" }) %>
68
+ <% end %>
12
69
  <% end %>
13
70
  <% end %>
14
-
@@ -2,82 +2,131 @@
2
2
 
3
3
  import React from 'react'
4
4
  import DateTime from '../pb_kit/dateTime.js'
5
- import { Icon } from '../'
5
+ import { Body, Caption, Icon, Title } from '../'
6
6
  import classnames from 'classnames'
7
7
  import { globalProps } from '../utilities/globalProps.js'
8
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
8
9
 
9
- const defaultDateString = (value: DateTime) => {
10
- const weekday = value.toWeekday().toUpperCase()
11
- const month = value.toMonth().toUpperCase()
12
- const day = value.toDay()
13
-
14
- return `${weekday} · ${month} ${day}`
15
- }
16
-
17
- const largeDateString = (value: DateTime) => {
18
- const month = value.toMonth().toUpperCase()
19
- const day = value.toDay()
20
-
21
- return `${month} ${day}`
22
- }
23
-
24
- type DateSubcomponent = {
25
- value: DateTime,
10
+ type PbDateProps = {
11
+ alignment?: "left" | "center" | "right",
12
+ aria: Object,
13
+ className?: string,
14
+ data?: Object,
15
+ id?: string,
16
+ showDayOfWeek?: boolean,
17
+ showIcon?: boolean,
18
+ size?: string,
19
+ value: string | date,
26
20
  }
27
21
 
28
- const ExtraSmallDate = ({ value, ...props }: DateSubcomponent) => (
29
- <h3 className={classnames('pb_title_kit_4', globalProps(props))}>
30
- {defaultDateString(value)}
31
- </h3>
32
- )
33
-
34
- const SmallDate = ({ value, ...props }: DateSubcomponent) => (
35
- <h3 className={classnames('pb_title_kit_4', globalProps(props))}>
36
- <Icon
37
- fixedWidth
38
- icon="calendar"
39
- />
40
- {defaultDateString(value)}
41
- </h3>
42
- )
22
+ const PbDate = (props: PbDateProps) => {
23
+ const {
24
+ aria = {},
25
+ alignment = 'left',
26
+ className,
27
+ data = {},
28
+ id,
29
+ showDayOfWeek = false,
30
+ showIcon = false,
31
+ size = 'md',
32
+ value,
33
+ } = props
43
34
 
44
- const LargeDate = ({ value, ...props }: DateSubcomponent) => (
45
- <h3 className={classnames('pb_title_kit_3', globalProps(props))}>
46
- {largeDateString(value)}
47
- </h3>
48
- )
35
+ const dateTimestamp = new DateTime({ value: value })
36
+ const weekday = dateTimestamp.toWeekday()
37
+ const month = dateTimestamp.toMonth()
38
+ const day = dateTimestamp.toDay()
39
+ const year = dateTimestamp.toYear()
40
+ const currentYear = new Date().getFullYear().toString()
49
41
 
50
- type PbDateProps = {
51
- size?: "xs" | "sm" | "lg",
52
- value?: string,
53
- className?: string
54
- }
42
+ const ariaProps = buildAriaProps(aria)
43
+ const dataProps = buildDataProps(data)
55
44
 
56
- const PbDate = ({ size, value, className, ...props }: PbDateProps) => {
57
- const date = new DateTime({ value: value })
45
+ const classes = classnames(
46
+ buildCss('pb_date_kit', alignment),
47
+ globalProps(props),
48
+ className
49
+ )
58
50
 
59
- if (size == 'xs')
60
- return (
61
- <ExtraSmallDate
62
- {...props}
63
- className={className}
64
- value={date}
65
- />
66
- )
67
- if (size == 'lg')
68
- return (
69
- <LargeDate
70
- {...props}
71
- className={className}
72
- value={date}
73
- />
74
- )
75
51
  return (
76
- <SmallDate
77
- {...props}
78
- className={className}
79
- value={date}
80
- />
52
+ <div
53
+ {...ariaProps}
54
+ {...dataProps}
55
+ className={classes}
56
+ id={id}
57
+ >
58
+ <If condition={size == 'md' || size == 'lg'}>
59
+
60
+ <Title
61
+ size={4}
62
+ tag="h4"
63
+ >
64
+ <If condition={showIcon}>
65
+ <Body
66
+ className="pb_icon_kit_container"
67
+ color="light"
68
+ tag="span"
69
+ >
70
+ <Icon
71
+ fixedWidth
72
+ icon="calendar-alt"
73
+ />
74
+ </Body>
75
+ </If>
76
+ <If condition={showDayOfWeek}>
77
+ {weekday}
78
+ <Body
79
+ color="light"
80
+ tag="span"
81
+ text=" • "
82
+ />
83
+ </If>
84
+ <span>
85
+ {month}
86
+ {' '}
87
+ {day}
88
+ </span>
89
+ <If condition={currentYear != year}>
90
+ <span>
91
+ {`, ${year}`}
92
+ </span>
93
+ </If>
94
+ </Title>
95
+ <Else />
96
+ <>
97
+ <If condition={showIcon}>
98
+ <Body
99
+ className="pb_icon_kit_container"
100
+ color="light"
101
+ tag="span"
102
+ >
103
+ <Icon
104
+ fixedWidth
105
+ icon="calendar-alt"
106
+ />
107
+ </Body>
108
+ </If>
109
+ <If condition={showDayOfWeek}>
110
+ <Caption tag="div">
111
+ {weekday}
112
+ </Caption>
113
+ <Caption
114
+ color="light"
115
+ tag="div"
116
+ text=" • "
117
+ />
118
+ </If>
119
+ <Caption tag="span">
120
+ {month}
121
+ {' '}
122
+ {day}
123
+ <If condition={currentYear != year}>
124
+ {`, ${year}`}
125
+ </If>
126
+ </Caption>
127
+ </>
128
+ </If>
129
+ </div>
81
130
  )
82
131
  }
83
132
 
@@ -1,2 +1,32 @@
1
1
  @import "../pb_icon/icon";
2
2
  @import "../pb_title/title";
3
+
4
+ [class^=pb_date_kit] {
5
+ display: flex;
6
+ flex-direction: row;
7
+ align-items: center;
8
+ > div, .pb_icon_kit_container {
9
+ margin-right: 4px !important;
10
+ }
11
+
12
+ &[class*=_center] {
13
+ display: flex;
14
+ flex-direction: row;
15
+ align-items: center;
16
+ justify-content: center;
17
+ margin-right: 4px !important;
18
+ }
19
+
20
+ &[class*=_right] {
21
+ display: flex;
22
+ flex-direction: row;
23
+ align-items: center;
24
+ justify-content: flex-end;
25
+ margin-left: 4px !important;
26
+ }
27
+ &.dark {
28
+ [class^=pb_title_kit] {
29
+ color: $text_dk_default !important;
30
+ }
31
+ }
32
+ }
@@ -10,25 +10,37 @@ module Playbook
10
10
  partial "pb_date/date"
11
11
 
12
12
  prop :date, required: true
13
+ prop :alignment, type: Playbook::Props::Enum,
14
+ values: %w[left center right],
15
+ default: "left"
16
+ prop :show_icon, type: Playbook::Props::Boolean,
17
+ default: false
18
+ prop :show_day_of_week, type: Playbook::Props::Boolean,
19
+ default: false
20
+ # Size to be deprecated.
13
21
  prop :size, type: Playbook::Props::Enum,
14
- values: %w[lg sm xs],
15
- default: "sm"
22
+ values: %w[lg md sm xs],
23
+ default: "md"
16
24
  prop :timezone, default: "America/New_York"
17
25
 
18
26
  def classname
19
- generate_classname("pb_date_kit")
27
+ generate_classname("pb_date_kit", alignment)
20
28
  end
21
29
 
22
- def xs_date
23
- "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
30
+ def day_of_week
31
+ pb_date_time.to_day_of_week
24
32
  end
25
33
 
26
- def lg_date
27
- "#{pb_date_time.to_month.upcase} #{pb_date_time.to_day}"
34
+ def day
35
+ pb_date_time.to_day
28
36
  end
29
37
 
30
- def sm_date
31
- "#{pb_date_time.to_day_of_week.upcase} &middot; #{pb_date_time.to_month.upcase} #{pb_date_time.to_day}".html_safe
38
+ def month
39
+ pb_date_time.to_month.capitalize
40
+ end
41
+
42
+ def year
43
+ pb_date_time.to_year
32
44
  end
33
45
 
34
46
  private