playbook_ui 2.9.9 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +10 -4
  3. data/app/pb_kits/playbook/index.js +10 -0
  4. data/app/pb_kits/playbook/kits/pb_circle_icon_button.js +4 -0
  5. data/app/pb_kits/playbook/kits/pb_select.js +4 -0
  6. data/app/pb_kits/playbook/kits/pb_selectable_card.js +4 -0
  7. data/app/pb_kits/playbook/kits/pb_textarea.js +4 -0
  8. data/app/pb_kits/playbook/packs/examples.js +8 -0
  9. data/app/pb_kits/playbook/packs/kits.js +4 -2
  10. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -1
  11. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +3 -0
  12. data/app/pb_kits/playbook/pb_button/_button.jsx +4 -0
  13. data/app/pb_kits/playbook/pb_card/_card.scss +50 -17
  14. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +10 -0
  15. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +30 -0
  16. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +32 -0
  17. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +22 -0
  18. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_dark.html.erb +29 -0
  19. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_dark.jsx +38 -0
  20. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.html.erb +25 -0
  21. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.jsx +34 -0
  22. data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +9 -0
  23. data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +2 -0
  24. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.rb +4 -0
  26. data/app/pb_kits/playbook/pb_date/_date.jsx +51 -17
  27. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +10 -2
  28. data/app/pb_kits/playbook/pb_form/_form.scss +11 -0
  29. data/app/pb_kits/playbook/pb_form/_form_form_with.html.erb +3 -0
  30. data/app/pb_kits/playbook/pb_form/_form_simple_form.html.erb +3 -0
  31. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +14 -0
  32. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +36 -0
  33. data/app/pb_kits/playbook/pb_form/docs/example.yml +5 -0
  34. data/app/pb_kits/playbook/pb_form/form.rb +28 -0
  35. data/app/pb_kits/playbook/pb_form/form/form_with_form.rb +38 -0
  36. data/app/pb_kits/playbook/pb_form/form/simple_form_form.rb +45 -0
  37. data/app/pb_kits/playbook/pb_form/form_builder.rb +23 -0
  38. data/app/pb_kits/playbook/pb_form/form_builder/action_area.rb +40 -0
  39. data/app/pb_kits/playbook/pb_form/form_builder/form_with_form_builder.rb +11 -0
  40. data/app/pb_kits/playbook/pb_form/form_builder/simple_form_builder.rb +25 -0
  41. data/app/pb_kits/playbook/pb_form/form_builder/text_input_builder.rb +22 -0
  42. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +19 -14
  43. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.jsx +19 -0
  44. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_default.jsx +5 -4
  45. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_size.jsx +16 -0
  46. data/app/pb_kits/playbook/pb_icon_circle/docs/example.yml +2 -1
  47. data/app/pb_kits/playbook/pb_icon_circle/docs/index.js +2 -0
  48. data/app/pb_kits/playbook/pb_kit/dateTime.js +4 -0
  49. data/app/pb_kits/playbook/pb_layout/_layout.jsx +50 -48
  50. data/app/pb_kits/playbook/pb_layout/_layout.scss +8 -12
  51. data/app/pb_kits/playbook/pb_layout/_layout_mixin.scss +6 -0
  52. data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.html.erb +24 -0
  53. data/app/pb_kits/playbook/pb_layout/docs/_layout_default.jsx +15 -0
  54. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.html.erb +32 -0
  55. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.html.erb +32 -0
  56. data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.html.erb +8 -0
  57. data/app/pb_kits/playbook/pb_layout/docs/example.yml +5 -11
  58. data/app/pb_kits/playbook/pb_layout/docs/index.js +1 -1
  59. data/app/pb_kits/playbook/pb_layout/layout.rb +5 -7
  60. data/app/pb_kits/playbook/pb_message/_message.jsx +68 -11
  61. data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +59 -2
  62. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +23 -16
  63. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +15 -6
  64. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +10 -0
  65. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +10 -0
  66. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.html.erb +1 -0
  67. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +12 -0
  68. data/app/pb_kits/playbook/pb_section_separator/docs/example.yml +4 -2
  69. data/app/pb_kits/playbook/pb_section_separator/docs/index.js +3 -1
  70. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +4 -1
  71. data/app/pb_kits/playbook/pb_select/_select.html.erb +33 -0
  72. data/app/pb_kits/playbook/pb_select/_select.jsx +110 -0
  73. data/app/pb_kits/playbook/pb_select/_select.scss +50 -0
  74. data/app/pb_kits/playbook/pb_select/docs/_select_blank.html.erb +19 -0
  75. data/app/pb_kits/playbook/pb_select/docs/_select_blank.jsx +30 -0
  76. data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.html.erb +8 -0
  77. data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.jsx +19 -0
  78. data/app/pb_kits/playbook/pb_select/docs/_select_dark.html.erb +24 -0
  79. data/app/pb_kits/playbook/pb_select/docs/_select_dark.jsx +31 -0
  80. data/app/pb_kits/playbook/pb_select/docs/_select_default.html.erb +23 -0
  81. data/app/pb_kits/playbook/pb_select/docs/_select_default.jsx +30 -0
  82. data/app/pb_kits/playbook/pb_select/docs/_select_disabled.html.erb +19 -0
  83. data/app/pb_kits/playbook/pb_select/docs/_select_disabled.jsx +30 -0
  84. data/app/pb_kits/playbook/pb_select/docs/_select_disabled_options.html.erb +33 -0
  85. data/app/pb_kits/playbook/pb_select/docs/_select_disabled_options.jsx +44 -0
  86. data/app/pb_kits/playbook/pb_select/docs/_select_required.html.erb +17 -0
  87. data/app/pb_kits/playbook/pb_select/docs/_select_required.jsx +28 -0
  88. data/app/pb_kits/playbook/pb_select/docs/_select_value_text_same.html.erb +18 -0
  89. data/app/pb_kits/playbook/pb_select/docs/_select_value_text_same.jsx +29 -0
  90. data/app/pb_kits/playbook/pb_select/docs/example.yml +22 -0
  91. data/app/pb_kits/playbook/pb_select/docs/index.js +8 -0
  92. data/app/pb_kits/playbook/pb_select/docs/nitro_theme.gemspec +41 -0
  93. data/app/pb_kits/playbook/pb_select/select.rb +60 -0
  94. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +25 -0
  95. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +97 -0
  96. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +87 -0
  97. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.html.erb +25 -0
  98. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +48 -0
  99. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.html.erb +45 -0
  100. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.jsx +68 -0
  101. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb +39 -0
  102. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +67 -0
  103. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb +30 -0
  104. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +54 -0
  105. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +13 -0
  106. data/app/pb_kits/playbook/pb_selectable_card/docs/index.js +4 -0
  107. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +51 -0
  108. data/app/pb_kits/playbook/pb_stat_value/_stat_value.html.erb +1 -1
  109. data/app/pb_kits/playbook/pb_stat_value/stat_value.rb +5 -0
  110. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +13 -9
  111. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +12 -6
  112. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +44 -44
  113. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +68 -12
  114. data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +20 -0
  115. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +54 -0
  116. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +31 -0
  117. data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +51 -0
  118. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.html.erb +3 -0
  119. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.jsx +16 -0
  120. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark.html.erb +9 -0
  121. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_dark.jsx +21 -0
  122. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb +9 -0
  123. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +21 -0
  124. data/app/pb_kits/playbook/pb_textarea/docs/example.yml +15 -0
  125. data/app/pb_kits/playbook/pb_textarea/docs/index.js +3 -0
  126. data/app/pb_kits/playbook/pb_textarea/textarea.rb +30 -0
  127. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +3 -1
  128. data/app/pb_kits/playbook/pb_user/_user.html.erb +3 -1
  129. data/app/pb_kits/playbook/pb_user/_user.jsx +76 -16
  130. data/app/pb_kits/playbook/pb_user/docs/_user_default.jsx +42 -1
  131. data/app/pb_kits/playbook/pb_user/docs/_user_size.jsx +31 -0
  132. data/app/pb_kits/playbook/pb_user/docs/_user_text_only.jsx +24 -0
  133. data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size.jsx +37 -0
  134. data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.html.erb +40 -0
  135. data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.jsx +57 -0
  136. data/app/pb_kits/playbook/pb_user/docs/example.yml +8 -0
  137. data/app/pb_kits/playbook/pb_user/docs/index.js +5 -0
  138. data/app/pb_kits/playbook/pb_user/user.rb +12 -1
  139. data/app/pb_kits/playbook/props.rb +11 -3
  140. data/app/pb_kits/playbook/tokens/_colors.scss +16 -0
  141. data/app/pb_kits/playbook/tokens/_transition.scss +1 -0
  142. data/lib/playbook/version.rb +1 -1
  143. metadata +117 -15
  144. data/app/pb_kits/playbook/pb_layout/docs/_layout_lg.html.erb +0 -4
  145. data/app/pb_kits/playbook/pb_layout/docs/_layout_lg_dark.html.erb +0 -4
  146. data/app/pb_kits/playbook/pb_layout/docs/_layout_md.html.erb +0 -4
  147. data/app/pb_kits/playbook/pb_layout/docs/_layout_md_dark.html.erb +0 -4
  148. data/app/pb_kits/playbook/pb_layout/docs/_layout_sm.html.erb +0 -4
  149. data/app/pb_kits/playbook/pb_layout/docs/_layout_sm_dark.html.erb +0 -4
  150. data/app/pb_kits/playbook/pb_layout/docs/_layout_xl.html.erb +0 -4
  151. data/app/pb_kits/playbook/pb_layout/docs/_layout_xl_dark.html.erb +0 -4
  152. data/app/pb_kits/playbook/pb_layout/docs/_layout_xs.html.erb +0 -4
  153. data/app/pb_kits/playbook/pb_layout/docs/_layout_xs.jsx +0 -15
  154. data/app/pb_kits/playbook/pb_layout/docs/_layout_xs_dark.html.erb +0 -4
  155. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_default.jsx +0 -10
@@ -0,0 +1,15 @@
1
+ import React from "react"
2
+
3
+ import {
4
+ Layout,
5
+ } from "../.."
6
+
7
+ function LayoutDefault() {
8
+ return (
9
+ <div>
10
+ <h1>{`Coming Soon...`}</h1>
11
+ </div>
12
+ )
13
+ }
14
+
15
+ export default LayoutDefault;
@@ -0,0 +1,32 @@
1
+ <%= pb_rails("layout", props: {position: "left", size: "xs", collapse: "xs"}) do %>
2
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
3
+ <%= pb_rails("layout/body") do %> Body <% end %>
4
+ <% end %>
5
+
6
+ <br/><br/>
7
+
8
+ <%= pb_rails("layout", props: {position: "left", size: "sm", collapse: "sm"}) do %>
9
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
10
+ <%= pb_rails("layout/body") do %> Body <% end %>
11
+ <% end %>
12
+
13
+ <br/><br/>
14
+
15
+ <%= pb_rails("layout", props: {position: "left", size: "md", collapse: "sm"}) do %>
16
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
17
+ <%= pb_rails("layout/body") do %> Body <% end %>
18
+ <% end %>
19
+
20
+ <br/><br/>
21
+
22
+ <%= pb_rails("layout", props: {position: "left", size: "lg", collapse: "sm"}) do %>
23
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
24
+ <%= pb_rails("layout/body") do %> Body <% end %>
25
+ <% end %>
26
+
27
+ <br/><br/>
28
+
29
+ <%= pb_rails("layout", props: {position: "left", size: "xl", collapse: "sm"}) do %>
30
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
31
+ <%= pb_rails("layout/body") do %> Body <% end %>
32
+ <% end %>
@@ -0,0 +1,32 @@
1
+ <%= pb_rails("layout", props: {position: "left", size: "xs", collapse: "xs", variant: "dark"}) do %>
2
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
3
+ <%= pb_rails("layout/body") do %> Body <% end %>
4
+ <% end %>
5
+
6
+ <br/><br/>
7
+
8
+ <%= pb_rails("layout", props: {position: "left", size: "sm", collapse: "sm", variant: "dark"}) do %>
9
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
10
+ <%= pb_rails("layout/body") do %> Body <% end %>
11
+ <% end %>
12
+
13
+ <br/><br/>
14
+
15
+ <%= pb_rails("layout", props: {position: "left", size: "md", collapse: "sm", variant: "dark"}) do %>
16
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
17
+ <%= pb_rails("layout/body") do %> Body <% end %>
18
+ <% end %>
19
+
20
+ <br/><br/>
21
+
22
+ <%= pb_rails("layout", props: {position: "left", size: "lg", collapse: "sm", variant: "dark"}) do %>
23
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
24
+ <%= pb_rails("layout/body") do %> Body <% end %>
25
+ <% end %>
26
+
27
+ <br/><br/>
28
+
29
+ <%= pb_rails("layout", props: {position: "left", size: "xl", collapse: "sm", variant: "dark"}) do %>
30
+ <%= pb_rails("layout/sidebar") do %> Side <% end %>
31
+ <%= pb_rails("layout/body") do %> Body <% end %>
32
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= pb_rails("layout", props: {position: "left", size: "xs", collapse: "sm", transparent: true}) do %>
2
+ <%= pb_rails("layout/sidebar") do %>
3
+ <%= pb_rails("body", props: { text: "Side" }) %>
4
+ <% end %>
5
+ <%= pb_rails("layout/body") do %>
6
+ <%= pb_rails("body", props: { text: "Body" }) %>
7
+ <% end %>
8
+ <% end %>
@@ -1,14 +1,8 @@
1
1
  examples:
2
2
  rails:
3
- - layout_xs: Extra Small
4
- - layout_sm: Small
5
- - layout_md: Medium
6
- - layout_lg: Large
7
- - layout_xl: Extra Large
8
- - layout_xs_dark: Extra Small Dark
9
- - layout_sm_dark: Small Dark
10
- - layout_md_dark: Medium Dark
11
- - layout_lg_dark: Large Dark
12
- - layout_xl_dark: Extra Large Dark
3
+ - layout_colors: Colors
4
+ - layout_transparent: Transparent
5
+ - layout_sizes: Sizes
6
+ - layout_sizes_dark: Sizes Dark
13
7
  react:
14
- - layout_xs: Extra Small
8
+ - layout_default: Default
@@ -1 +1 @@
1
- export {default as LayoutXs} from './_layout_xs.jsx';
1
+ export {default as LayoutDefault} from './_layout_default.jsx';
@@ -10,27 +10,25 @@ module Playbook
10
10
  prop :collapse, type: Playbook::Props::Enum,
11
11
  values: %w[xs sm md lg xl],
12
12
  default: "xs"
13
- prop :dark, type: Playbook::Props::Boolean, default: false
14
13
  prop :full, type: Playbook::Props::Boolean, default: false
15
14
  prop :position, type: Playbook::Props::Enum,
16
15
  values: %w[left right],
17
16
  default: "left"
18
- prop :transparent, type: Playbook::Props::Boolean, default: false
19
17
  prop :size, type: Playbook::Props::Enum,
20
18
  values: %w[xs sm md lg xl],
21
19
  default: "md"
20
+ prop :transparent, type: Playbook::Props::Boolean, default: false
21
+ prop :variant, type: Playbook::Props::Enum,
22
+ values: %w[light dark gradient],
23
+ default: "light"
22
24
 
23
25
  def classname
24
- first_class = generate_classname("pb_layout", size, position, dark_class, transparent_class)
26
+ first_class = generate_classname("pb_layout_kit", "size_#{size}", position, variant, transparent_class)
25
27
  [first_class, full_class, collapse_class].reject(&:empty?).join(" ")
26
28
  end
27
29
 
28
30
  private
29
31
 
30
- def dark_class
31
- dark ? "dark" : nil
32
- end
33
-
34
32
  def full_class
35
33
  full ? "full" : ""
36
34
  end
@@ -1,21 +1,78 @@
1
1
  import React from 'react';
2
- import PropTypes from "prop-types";
3
2
 
4
- const propTypes = {
5
- className: PropTypes.string,
6
- id: PropTypes.string
7
- };
3
+ import {
4
+ Body,
5
+ Caption,
6
+ Avatar,
7
+ } from '../'
8
8
 
9
- class Message extends React.Component {
10
- render() {
9
+ type MessageProps = {
10
+ avatarName?: String,
11
+ avatarStatus?: String,
12
+ avatarUrl?: String,
13
+ label?: String,
14
+ message: String,
15
+ timestamp?: String,
16
+ }
17
+
18
+ const print_label = (label) => {
19
+ if ( label != null ) {
11
20
  return (
12
- <div className="pb_message">
13
- <span>MESSAGE CONTENT</span>
14
- </div>
21
+ <Caption>{`${label}`}</Caption>
22
+ )
23
+ }
24
+ }
25
+
26
+ const print_timestamp = (timestamp) => {
27
+ if ( timestamp != null ) {
28
+ return(
29
+ <Caption size='xs'>{`${timestamp}`}</Caption>
15
30
  )
16
31
  }
17
32
  }
18
33
 
19
- Message.propTypes = propTypes;
34
+ const Message = (props: MessageProps) => {
35
+ const {
36
+ avatarName='',
37
+ avatarUrl='',
38
+ label='',
39
+ message='',
40
+ timestamp='',
41
+ avatarStatus=null
42
+ } = props
43
+
44
+ const print_avatar = (avatarName, avatarUrl, avatarStatus) => {
45
+ if ( avatarUrl !== '' && avatarName !== '' ) {
46
+ return (
47
+ <Avatar name={avatarName} size='sm' imageUrl={avatarUrl} status={avatarStatus}/>
48
+ )
49
+ }
50
+ if ( avatarUrl === '' && avatarName !== '' ) {
51
+ return (
52
+ <Avatar name={avatarName} size='sm' status={avatarStatus}/>
53
+ )
54
+ }
55
+ }
56
+
57
+ const messageCSS = ( avatarUrl, avatarName ) => {
58
+ if (avatarUrl != '' || avatarName != '') {
59
+ return 'pb_message_kit_avatar'
60
+ }
61
+ else {
62
+ return 'pb_message_kit'
63
+ }
64
+ }
65
+
66
+ return (
67
+ <div className={messageCSS(avatarName, avatarUrl)}>
68
+ {print_avatar(avatarName, avatarUrl, avatarStatus)}
69
+ <div class="content_wrapper">
70
+ {print_label(label)}
71
+ <Body>{message}</Body>
72
+ {print_timestamp(timestamp)}
73
+ </div>
74
+ </div>
75
+ )
76
+ }
20
77
 
21
78
  export default Message;
@@ -1,9 +1,66 @@
1
1
  import React from "react"
2
- import Message from "../../"
2
+ import { Message } from "../../"
3
3
 
4
4
  function MessageDefault() {
5
5
  return (
6
- <h1>{`Coming Soon...`}</h1>
6
+ <div>
7
+
8
+ <Message
9
+ label='Message'
10
+ avatarName='Mike Bishop'
11
+ message='How can we assist you today?'
12
+ timestamp='20 seconds ago'
13
+ avatarUrl='https://randomuser.me/api/portraits/men/50.jpg'
14
+ avatarStatus="online"
15
+ />
16
+
17
+ <br/><br/>
18
+
19
+ <Message
20
+ label='Support'
21
+ avatarName='Wade Winningham'
22
+ message='We will escalate this issue to a Senior Support agent.'
23
+ timestamp='9 minutes ago'
24
+ avatarUrl='https://randomuser.me/api/portraits/men/14.jpg'
25
+ />
26
+
27
+ <br/><br/>
28
+
29
+ <Message
30
+ avatarName='Lisa Thompson'
31
+ message='To processs your order, I will need your full name.'
32
+ timestamp='4 hours ago'
33
+ avatarUrl='https://randomuser.me/api/portraits/women/39.jpg'
34
+ />
35
+
36
+ <br/><br/>
37
+
38
+ <Message
39
+ avatarName='Becca Jacobs'
40
+ label='Application'
41
+ message='Application for Kate Smith is waiting for your approval'
42
+ timestamp='2 days ago'
43
+ avatarUrl='https://randomuser.me/api/portraits/women/50.jpg'
44
+ />
45
+
46
+ <br/><br/>
47
+
48
+ <Message
49
+ avatarName='Timothy Wenhold'
50
+ label='Complaint'
51
+ message='We are so sorry you had a bad experience!'
52
+ timestamp='2 days ago'
53
+ />
54
+
55
+ <br/><br/>
56
+
57
+ <Message
58
+ label='Support'
59
+ message='Please hold for one moment, I will check with my manager.'
60
+ timestamp='2 days ago'
61
+ />
62
+
63
+ </div>
7
64
  )
8
65
  }
9
66
 
@@ -1,21 +1,28 @@
1
- import React from 'react';
2
- import PropTypes from "prop-types";
1
+ /* @flow */
2
+ import React from 'react'
3
+ import classnames from 'classnames'
3
4
 
4
- const propTypes = {
5
- className: PropTypes.string,
6
- id: PropTypes.string
5
+ import Caption from '../pb_caption/_caption.jsx'
6
+
7
+ type SectionSeparatorProps = {
8
+ className: String,
9
+ text: String,
10
+ variant?: 'card' | 'background'
7
11
  };
8
12
 
9
- class SectionSeparator extends React.Component {
10
- render() {
11
- return (
12
- <div className="pb_section_separator">
13
- <span>SECTION SEPARATOR CONTENT</span>
14
- </div>
15
- )
16
- }
17
- }
13
+ const SectionSeparator = ({
14
+ className,
15
+ text,
16
+ variant = 'card'
17
+ }: SectionSeparatorProps) => {
18
18
 
19
- SectionSeparator.propTypes = propTypes;
19
+ const css = classnames([`pb_section_separator_kit_${variant}`, className])
20
+
21
+ return (<div className={css}>
22
+ <span>
23
+ <Caption text={text}/>
24
+ </span>
25
+ </div>)
26
+ }
20
27
 
21
- export default SectionSeparator;
28
+ export default SectionSeparator
@@ -2,18 +2,27 @@
2
2
  @import "../tokens/spacing";
3
3
  @import "../pb_caption/caption";
4
4
 
5
+ $section_colors: (
6
+ background: $bg_light,
7
+ card: $card_light,
8
+ );
9
+
5
10
  [class^=pb_section_separator_kit] {
6
11
  display: flex;
7
12
  justify-content: center;
8
13
  align-items: center;
9
14
  position: relative;
10
15
 
11
- span {
12
- display: inline-block;
13
- padding: 0 $space_xs;
14
- background: $bg_light;
15
- position: relative;
16
- z-index: 1;
16
+ @each $color_name, $color_value in $section_colors {
17
+ &[class*=_#{$color_name}] {
18
+ span {
19
+ display: inline-block;
20
+ padding: 0 $space_xs;
21
+ background: #{$color_value};
22
+ position: relative;
23
+ z-index: 1;
24
+ }
25
+ }
17
26
  }
18
27
 
19
28
  &::after {
@@ -0,0 +1,10 @@
1
+ import React from "react"
2
+ import {SectionSeparator} from "../../"
3
+
4
+ function SectionSeparatorLine() {
5
+ return (
6
+ <SectionSeparator/>
7
+ )
8
+ }
9
+
10
+ export default SectionSeparatorLine
@@ -0,0 +1,10 @@
1
+ import React from "react"
2
+ import {SectionSeparator} from "../../"
3
+
4
+ function SectionSeparatorText() {
5
+ return (
6
+ <SectionSeparator text="Title Separator"/>
7
+ )
8
+ }
9
+
10
+ export default SectionSeparatorText
@@ -0,0 +1 @@
1
+ <%= pb_rails("section_separator", props: { text: "Title Separator", variant: "background"}) %>
@@ -0,0 +1,12 @@
1
+ import React from "react"
2
+ import {SectionSeparator} from "../../"
3
+
4
+ function SectionSeparatorTextBackground() {
5
+ return (
6
+ <SectionSeparator text="Title Separator"
7
+ variant="background"
8
+ />
9
+ )
10
+ }
11
+
12
+ export default SectionSeparatorTextBackground
@@ -3,7 +3,9 @@ examples:
3
3
  rails:
4
4
  - section_separator_text: Text Separator
5
5
  - section_separator_line: Line Separator
6
-
6
+ - section_separator_text_background: Background Variant
7
7
 
8
8
  react:
9
- - section_separator_default: Default
9
+ - section_separator_text: Text Separator
10
+ - section_separator_line: Line Separator
11
+ - section_separator_text_background: Background Variant