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
@@ -0,0 +1,24 @@
1
+ <%= pb_rails("date", props: {
2
+ date: DateTime.now,
3
+ show_icon: true,
4
+ show_day_of_week: true
5
+ }) %>
6
+
7
+ <br><br>
8
+
9
+ <%= pb_rails("date", props: {
10
+ date: DateTime.now,
11
+ show_icon: true,
12
+ show_day_of_week: true,
13
+ alignment: "center"
14
+ }) %>
15
+
16
+ <br><br>
17
+
18
+ <%= pb_rails("date", props: {
19
+ date: DateTime.now,
20
+ show_icon: true,
21
+ show_day_of_week: true,
22
+ alignment: "right"
23
+ }) %>
24
+
@@ -0,0 +1,35 @@
1
+ import React from 'react'
2
+ import { Date as FormattedDate } from '../..'
3
+
4
+ const DateAlignment = (props) => {
5
+ return (
6
+ <div>
7
+ <FormattedDate
8
+ dayOfWeek
9
+ icon
10
+ value="1995-12-25"
11
+ {...props}
12
+ />
13
+
14
+ <br />
15
+
16
+ <FormattedDate
17
+ alignment="center"
18
+ dayOfWeek
19
+ icon
20
+ value="2020-12-25"
21
+ {...props}
22
+ />
23
+
24
+ <br />
25
+
26
+ <FormattedDate
27
+ alignment="right"
28
+ value={new Date()}
29
+ {...props}
30
+ />
31
+ </div>
32
+ )
33
+ }
34
+
35
+ export default DateAlignment
@@ -1,24 +1,39 @@
1
1
  <%= pb_rails("date", props: {
2
2
  date: Date.today,
3
- size: "lg"
3
+ size: "sm"
4
4
  }) %>
5
5
 
6
6
  <br>
7
7
 
8
8
  <%= pb_rails("date", props: {
9
- date: DateTime.now
9
+ date: "2012-08-02T15:49:29Z",
10
+ size: "sm"
10
11
  }) %>
11
12
 
12
13
  <br>
13
14
 
14
15
  <%= pb_rails("date", props: {
15
- date: DateTime.now,
16
- timezone: "Asia/Tokyo"
16
+ date: "2017-12-02T15:49:29Z",
17
+ show_day_of_week: true,
18
+ size: "sm"
19
+ }) %>
20
+
21
+ <br>
22
+ <br>
23
+
24
+ <%= pb_rails("date", props: {
25
+ date: Date.today,
26
+ }) %>
27
+
28
+ <br>
29
+
30
+ <%= pb_rails("date", props: {
31
+ date: "2012-08-02T15:49:29Z",
17
32
  }) %>
18
33
 
19
34
  <br>
20
35
 
21
36
  <%= pb_rails("date", props: {
22
- date: Date.new(2010, 11, 12),
23
- size: "xs"
37
+ date: "2017-12-02T15:49:29Z",
38
+ show_day_of_week: true
24
39
  }) %>
@@ -1,28 +1,59 @@
1
1
  import React from 'react'
2
- import { Date } from '../../'
2
+ import { Date as FormattedDate } from '../../'
3
3
 
4
- const DateDefault = () => {
4
+ const DateDefault = (props) => {
5
5
  return (
6
- <div>
7
- <Date
8
- size="lg"
9
- value="1995-12-25"
6
+ <>
7
+ <FormattedDate
8
+ size="sm"
9
+ value={new Date()}
10
+ {...props}
10
11
  />
11
12
 
12
13
  <br />
13
14
 
14
- <Date
15
- value="17 Mar 69"
15
+ <FormattedDate
16
+ size="sm"
17
+ value="2012-08-03"
18
+ {...props}
16
19
  />
17
20
 
18
21
  <br />
19
22
 
20
- <Date
21
- size="xs"
22
- value="2020-04-20T04:20:00.000Z"
23
+ <FormattedDate
24
+ showDayOfWeek
25
+ size="sm"
26
+ value="2017-12-03"
27
+ {...props}
23
28
  />
24
- </div>
29
+
30
+ <br />
31
+ <br />
32
+
33
+ <FormattedDate
34
+ value={new Date()}
35
+ {...props}
36
+ />
37
+
38
+ <br />
39
+
40
+ <FormattedDate
41
+ value="2012-08-03"
42
+ {...props}
43
+ />
44
+
45
+ <br />
46
+
47
+ <FormattedDate
48
+ showDayOfWeek
49
+ value="2017-12-03"
50
+ {...props}
51
+ />
52
+ </>
25
53
  )
26
54
  }
27
55
 
28
56
  export default DateDefault
57
+
58
+ // *Development Note* - We are reviewing this kit for a potential name change due to naming collisions when `new Date()` is used.
59
+ // To avoid this bug, please use name spacing as shown in the code examples. ie `import { Date as AliasedComponentName } from '../../'
@@ -0,0 +1,27 @@
1
+ <div>
2
+ <%= pb_rails("date", props: {
3
+ date: DateTime.now,
4
+ }) %>
5
+
6
+ <br>
7
+
8
+ <%= pb_rails("date", props: {
9
+ date: DateTime.now,
10
+ show_icon: true
11
+ }) %>
12
+
13
+ <br>
14
+
15
+ <%= pb_rails("date", props: {
16
+ date: DateTime.now,
17
+ show_day_of_week: true
18
+ }) %>
19
+
20
+ <br>
21
+
22
+ <%= pb_rails("date", props: {
23
+ date: DateTime.now,
24
+ show_icon: true,
25
+ show_day_of_week: true
26
+ }) %>
27
+ </div>
@@ -0,0 +1,43 @@
1
+ import React from 'react'
2
+ import { Date as FormattedDate } from '../..'
3
+
4
+ const DateVariants = (props) => {
5
+ return (
6
+ <div>
7
+ <FormattedDate
8
+ value="1995-12-25"
9
+ {...props}
10
+ />
11
+
12
+ <br />
13
+ <br />
14
+
15
+ <FormattedDate
16
+ showIcon
17
+ value="1995-12-25"
18
+ {...props}
19
+ />
20
+
21
+ <br />
22
+ <br />
23
+
24
+ <FormattedDate
25
+ showDayOfWeek
26
+ value="1995-12-25"
27
+ {...props}
28
+ />
29
+
30
+ <br />
31
+ <br />
32
+
33
+ <FormattedDate
34
+ showDayOfWeek
35
+ showIcon
36
+ value="1995-12-25"
37
+ {...props}
38
+ />
39
+ </div>
40
+ )
41
+ }
42
+
43
+ export default DateVariants
@@ -2,9 +2,13 @@ examples:
2
2
 
3
3
  rails:
4
4
  - date_default: Default
5
+ - date_variants: Variants
6
+ - date_alignment: Alignment
5
7
  - date_timezone: Timezones
6
8
 
7
9
 
8
10
  react:
9
11
  - date_default: Default
12
+ - date_variants: Variants
13
+ - date_alignment: Alignment
10
14
 
@@ -1 +1,3 @@
1
1
  export { default as DateDefault } from './_date_default.jsx'
2
+ export { default as DateVariants } from './_date_variants.jsx'
3
+ export { default as DateAlignment } from './_date_alignment.jsx'
@@ -5,6 +5,9 @@
5
5
  id: object.id) do %>
6
6
  <%= content_tag(object.tag,
7
7
  object.link ? object.link_options : object.options) do %>
8
+ <% if object.image_url %>
9
+ <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
10
+ <% end %>
8
11
  <% if object.icon_left %>
9
12
  <%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
10
13
  <% end %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import { Icon } from '../'
5
+ import { Icon, Image } from '../'
6
6
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
7
7
  import { globalProps } from '../utilities/globalProps.js'
8
8
 
@@ -15,6 +15,7 @@ type NavItemProps = {
15
15
  iconLeft: string,
16
16
  iconRight: string,
17
17
  id?: string,
18
+ imageUrl: String,
18
19
  link: string,
19
20
  onClick?: EventHandler,
20
21
  text: string,
@@ -30,6 +31,7 @@ const NavItem = (props: NavItemProps) => {
30
31
  iconLeft,
31
32
  iconRight,
32
33
  id,
34
+ imageUrl,
33
35
  link,
34
36
  onClick = () => {},
35
37
  text = '',
@@ -53,6 +55,17 @@ const NavItem = (props: NavItemProps) => {
53
55
  href={link}
54
56
  onClick={onClick}
55
57
  >
58
+ <If condition={imageUrl}>
59
+ <div
60
+ className="pb_nav_list_item_icon_section"
61
+ key={imageUrl}
62
+ >
63
+ <Image
64
+ className="pb_nav_img_wrapper"
65
+ url={imageUrl}
66
+ />
67
+ </div>
68
+ </If>
56
69
  <If condition={iconLeft}>
57
70
  <div
58
71
  className="pb_nav_list_item_icon_section"
@@ -8,6 +8,7 @@ import { globalProps } from '../utilities/globalProps.js'
8
8
 
9
9
  type NavProps = {
10
10
  aria?: object,
11
+ borderless?: boolean,
11
12
  children?: React.Node,
12
13
  className?: string | array<string>,
13
14
  data?: object,
@@ -22,6 +23,7 @@ type NavProps = {
22
23
  const Nav = (props: NavProps) => {
23
24
  const {
24
25
  aria = {},
26
+ borderless = false,
25
27
  children,
26
28
  className,
27
29
  data = {},
@@ -39,6 +41,7 @@ const Nav = (props: NavProps) => {
39
41
  const cardCss = classnames(
40
42
  buildCss('pb_nav_list', variant, orientation, {
41
43
  highlight: highlight,
44
+ borderless: borderless,
42
45
  }),
43
46
  globalProps(props),
44
47
  className
@@ -40,7 +40,7 @@ $selector: ".pb_nav_list";
40
40
  text-decoration: none;
41
41
  display: flex;
42
42
  align-items: center;
43
- padding: $space_sm $space_md $space_sm ($space_md - 3px);
43
+ padding: $space_sm $space_sm $space_sm ($space_sm - 3px);
44
44
  border: 0 solid transparent;
45
45
  border-width: 0 0 0 3px;
46
46
  transition-property: color, border-color, background-color;
@@ -59,7 +59,7 @@ $selector: ".pb_nav_list";
59
59
  }
60
60
  [class*=_icon_left] {
61
61
  font-size: $font_large;
62
- margin-right: $space_sm;
62
+ margin-right: $space_xs;
63
63
  color: $text_lt_lighter;
64
64
  }
65
65
  [class*=_icon_right] {
@@ -69,10 +69,14 @@ $selector: ".pb_nav_list";
69
69
  }
70
70
  [class*=_text] {
71
71
  font-size: $font_base;
72
- font-weight: $bold;
73
72
  color: $text_lt_default;
74
73
  flex: 1;
75
74
  }
75
+ [class*=_img_left] {
76
+ margin-right: $space_xs;
77
+ height: 20px;
78
+ width: 25px;
79
+ }
76
80
  }
77
81
  &:last-child {
78
82
  border-bottom: 0;
@@ -167,4 +171,19 @@ $selector: ".pb_nav_list";
167
171
  }
168
172
  }
169
173
 
174
+ //Borderless
175
+ &[class*=_borderless] {
176
+ [class*=pb_nav_list_kit_item] {
177
+ list-style: none;
178
+ border-bottom: 0;
179
+ }
180
+ }
181
+
182
+ }
183
+
184
+ //Image Wrapper
185
+ .pb_nav_img_wrapper {
186
+ width: 24px;
187
+ height: 24px;
188
+ margin-right: $space_xs;
170
189
  }
@@ -0,0 +1,6 @@
1
+ <%= pb_rails("nav", props: {borderless: true}) do %>
2
+ <%= pb_rails("nav/item", props: { text: "Photos", link: "#" }) %>
3
+ <%= pb_rails("nav/item", props: { text: "Music", link: "#" }) %>
4
+ <%= pb_rails("nav/item", props: { text: "Video", link: "#", active: true }) %>
5
+ <%= pb_rails("nav/item", props: { text: "Files", link: "#" }) %>
6
+ <% end %>
@@ -0,0 +1,29 @@
1
+ import React from 'react'
2
+ import { Nav } from '../../'
3
+ import NavItem from '../_item.jsx'
4
+
5
+ const BorderlessNav = () => {
6
+ return (
7
+ <Nav borderless>
8
+ <NavItem
9
+ active
10
+ link="#"
11
+ text="All Categories"
12
+ />
13
+ <NavItem
14
+ link="#"
15
+ text="Food"
16
+ />
17
+ <NavItem
18
+ link="#"
19
+ text="Digital"
20
+ />
21
+ <NavItem
22
+ link="#"
23
+ text="Design Art"
24
+ />
25
+ </Nav>
26
+ )
27
+ }
28
+
29
+ export default BorderlessNav
@@ -0,0 +1,7 @@
1
+ <%= pb_rails("nav", props: {title: "Browse", link: "#"}) do %>
2
+ <%= pb_rails("nav/item", props: { image_url: "https://upload.wikimedia.org/wikipedia/commons/0/00/Apple_News_icon_%28macOS%29.png", text: "News Feed" }) %>
3
+ <%= pb_rails("nav/item", props: { image_url: "https://p7.hiclipart.com/preview/928/339/723/messages-iphone-apple-imessage-iphone-thumbnail.jpg", link: "#", text: "Messages", active: true }) %>
4
+ <%= pb_rails("nav/item", props: { image_url: "https://www.clipartmax.com/png/middle/103-1038653_circle-icons-calendar-svg-event-icon.png", icon_right: "angle-down", link: "#", text: "Events" }) %>
5
+ <%= pb_rails("nav/item", props: { image_url: "https://www.pngitem.com/pimgs/m/228-2289227_find-friends-icon-png-image-iphone-find-my.png", link: "#", text: "Friends" }) %>
6
+ <%= pb_rails("nav/item", props: { image_url: "https://img.favpng.com/18/5/20/blue-human-behavior-silhouette-area-communication-png-favpng-wLT3QYknSwc68uu9GAUHGS5FY_t.jpg", icon_right: "angle-down", link: "#", text: "Groups" }) %>
7
+ <% end %>