playbook_ui 7.1.0 → 7.3.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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