playbook_ui 13.33.1 → 13.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_background/background.html.erb +2 -11
  3. data/app/pb_kits/playbook/pb_body/body.html.erb +1 -6
  4. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.html.erb +1 -6
  5. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.html.erb +1 -6
  6. data/app/pb_kits/playbook/pb_caption/caption.html.erb +1 -6
  7. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -7
  8. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +1 -1
  9. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_color.jsx +2 -2
  10. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main.jsx +31 -32
  11. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_rails.html.erb +3 -2
  12. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon.jsx +33 -32
  13. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon_rails.html.erb +3 -7
  14. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +1 -0
  15. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.jsx +9 -0
  16. data/app/pb_kits/playbook/pb_contact/_contact.tsx +25 -19
  17. data/app/pb_kits/playbook/pb_contact/contact.html.erb +6 -3
  18. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +71 -64
  19. data/app/pb_kits/playbook/pb_detail/detail.html.erb +1 -6
  20. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -6
  21. data/app/pb_kits/playbook/pb_dialog/dialog_body.html.erb +1 -6
  22. data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +2 -5
  23. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +1 -6
  24. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +7 -3
  25. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +1 -1
  26. data/app/pb_kits/playbook/pb_dropdown/index.js +37 -31
  27. data/app/pb_kits/playbook/pb_flex/flex.html.erb +1 -5
  28. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +4 -0
  29. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +11 -0
  30. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +52 -17
  31. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_icon.html.erb +5 -0
  32. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_icon.jsx +19 -0
  33. data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +2 -1
  34. data/app/pb_kits/playbook/pb_form_pill/docs/index.js +1 -1
  35. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +16 -9
  36. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +6 -1
  37. data/app/pb_kits/playbook/pb_hashtag/hashtag.html.erb +1 -6
  38. data/app/pb_kits/playbook/pb_highlight/highlight.html.erb +1 -5
  39. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.html.erb +1 -5
  40. data/app/pb_kits/playbook/pb_icon/_icon.scss +17 -0
  41. data/app/pb_kits/playbook/pb_icon/_icon.tsx +3 -0
  42. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.html.erb +5 -0
  43. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.jsx +34 -0
  44. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.md +1 -0
  45. data/app/pb_kits/playbook/pb_icon/docs/example.yml +2 -0
  46. data/app/pb_kits/playbook/pb_icon/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_icon/icon.rb +9 -1
  48. data/app/pb_kits/playbook/pb_icon/icon.test.js +22 -9
  49. data/app/pb_kits/playbook/pb_star_rating/_star_rating.tsx +132 -201
  50. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx +28 -33
  51. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_interactive.jsx +14 -0
  52. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +2 -0
  53. data/app/pb_kits/playbook/pb_star_rating/stars/utils.tsx +81 -0
  54. data/app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx +56 -0
  55. data/app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_interactive.tsx +64 -0
  56. data/dist/playbook-rails.js +6 -6
  57. data/lib/playbook/version.rb +2 -2
  58. metadata +11 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1c022847164064a888eae5ec0664e37bf3bfa352884159303d093fa8cfe6d5e
4
- data.tar.gz: 04f74d04da0122d153510b4b44268be3d4c22c70a6ddb539be0ce483ba0fd4ac
3
+ metadata.gz: 7f2cb628a1802af0ae043163aec1b56821b21a2d91c1c17cc00154f2abc14e7e
4
+ data.tar.gz: cbbe7f33a75536e453823c0ca0a4645602165848eddc1d482a1b57c5236780cb
5
5
  SHA512:
6
- metadata.gz: f65e1607e01a68c4fc7246cfd325699398931b4e6a42ac859a49a6d763f8efdd9c422e397926aac968c028f8ad77f338cb0028df2c007162d43bde076bfc6f34
7
- data.tar.gz: 847a1fb9bccb3dbbaca66cfe8a9d5e9f40cb81b5db45b4c0a4374d5f25b52267afc5402248820ecea28775ef2e8e42bc1aa9e28bfc1497f00187af22006a2569
6
+ metadata.gz: ab5b25504dd6804769c95fad71a87a158bcb6f4832a4847a279b3eec324ff6376fb60a2148d5eb9a1be3ef5fab9fc27e81c676df6b32b76e40c4e74ee6bf1477
7
+ data.tar.gz: 7d5c990c0b0302c5844182adccaafd191a9f216d862d28843c4a4976be04483d6e5bb88995d19264a6707319aede8b05c11f2e78c3e7ee9e6b17220b7b300b05
@@ -1,23 +1,14 @@
1
1
  <% if object.image_url.present? %>
2
- <%= content_tag(object.tag,
3
- aria: object.aria,
4
- data: object.data,
5
- id: object.id,
6
- class: object.classname,
2
+ <%= pb_content_tag(object.tag,
7
3
  style: "background-image: url('#{object.image_url}');
8
4
  background-repeat: #{object.background_repeat};
9
5
  background-size: #{object.background_size};
10
6
  background-position: #{object.background_position};",
11
- **combined_html_options
12
7
  ) do %>
13
8
  <%= content.presence %>
14
9
  <% end %>
15
10
  <% else %>
16
- <%= content_tag(object.tag,
17
- aria: object.aria,
18
- data: object.data,
19
- id: object.id,
20
- class: object.classname,
11
+ <%= pb_content_tag(object.tag,
21
12
  style: object.custom_background_color
22
13
  ) do %>
23
14
  <%= content.presence %>
@@ -1,8 +1,3 @@
1
- <%= content_tag(object.tag,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(object.tag) do %>
7
2
  <%= object.content %>
8
3
  <% end %>
@@ -1,9 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- aria: object.aria,
6
- **combined_html_options) do%>
1
+ <%= pb_content_tag do%>
7
2
  <%= content_tag(object.link ? 'a' : 'span', class: 'bread_crumb_item', href: object.link) do %>
8
3
  <%= content.presence %>
9
4
  <% end %>
@@ -1,8 +1,3 @@
1
- <%= content_tag(:nav,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(:nav) do %>
7
2
  <%= content.presence %>
8
3
  <% end %>
@@ -1,8 +1,3 @@
1
- <%= content_tag(object.tag,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(object.tag) do %>
7
2
  <%= content.presence || object.text %>
8
3
  <% end %>
@@ -1,10 +1,4 @@
1
- <%= content_tag(object.tag,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- aria: object.aria,
6
- dark: object.dark,
7
- **combined_html_options) do %>
1
+ <%= pb_content_tag(object.tag) do %>
8
2
  <%= content.presence %>
9
3
  <% end %>
10
4
 
@@ -18,7 +18,7 @@
18
18
  height: auto;
19
19
  }
20
20
  .icon_wrapper:hover {
21
- color: $primary
21
+ color: $primary_action_dark
22
22
  }
23
23
 
24
24
  .dark {
@@ -19,7 +19,7 @@ const CollapsibleColor = (props) => (
19
19
  </Collapsible.Content>
20
20
  </Collapsible>
21
21
  <Collapsible
22
- iconColor='light'
22
+ iconColor='lighter'
23
23
  marginBottom="xs"
24
24
  >
25
25
  <Collapsible.Main>
@@ -34,7 +34,7 @@ const CollapsibleColor = (props) => (
34
34
  </Collapsible.Content>
35
35
  </Collapsible>
36
36
  <Collapsible
37
- iconColor='lighter'
37
+ iconColor='light'
38
38
  marginBottom="xs"
39
39
  >
40
40
  <Collapsible.Main>
@@ -1,72 +1,71 @@
1
1
  import React from 'react'
2
- import { Collapsible, useCollapsible, Background, Flex, Title, List, ListItem } from '../..'
2
+ import PropTypes from 'prop-types'
3
+ import { Collapsible, useCollapsible, Flex, Title, List, ListItem } from '../..'
3
4
 
4
- const CollapsibleCustomMain = () => {
5
+ const CollapsibleCustomMain = (props) => {
5
6
  const [isCollapsed, setIsCollapsed] = useCollapsible(true)
6
7
 
7
8
  return (
8
- <>
9
- <Collapsible
10
- collapsed={isCollapsed}
11
- >
12
- <Background
13
- backgroundColor="white"
14
- cursor="pointer"
15
- htmlOptions={{onClick:() => setIsCollapsed(!isCollapsed)}}
16
- position="sticky"
17
- top="0"
18
- >
19
- <Flex
20
- align="center"
21
- gap="sm"
22
- justify="between"
23
- >
24
- <Title
25
- size={4}
26
- text="Custom Main Section"
27
- />
28
- </Flex>
29
- </Background>
30
- <Collapsible.Content padding="none">
9
+ <>
10
+ <Collapsible collapsed={isCollapsed}>
11
+ <Flex
12
+ align="center"
13
+ cursor="pointer"
14
+ gap="sm"
15
+ htmlOptions={{onClick:() => setIsCollapsed(!isCollapsed)}}
16
+ justify="between"
17
+ position="sticky"
18
+ top="0"
19
+ >
20
+ <Title
21
+ dark={props.dark}
22
+ size={4}
23
+ text="Custom Main Section" />
24
+ </Flex>
25
+ <Collapsible.Content
26
+ padding="none">
31
27
  <div>
32
- <List>
28
+ <List>
33
29
  <ListItem
34
30
  align="stretch"
35
31
  flexDirection="column"
36
32
  >
37
- Checklist item
33
+ {"Checklist item"}
38
34
  </ListItem>
39
35
  <ListItem
40
36
  align="stretch"
41
37
  flexDirection="column"
42
38
  >
43
- Checklist item
39
+ {"Checklist item"}
44
40
  </ListItem>
45
41
  <ListItem
46
42
  align="stretch"
47
43
  flexDirection="column"
48
44
  >
49
- Checklist item
45
+ {"Checklist item"}
50
46
  </ListItem>
51
47
  <ListItem
52
48
  align="stretch"
53
49
  flexDirection="column"
54
50
  >
55
- Checklist item
51
+ {"Checklist item"}
56
52
  </ListItem>
57
53
  <ListItem
58
54
  align="stretch"
59
55
  flexDirection="column"
60
56
  >
61
- Checklist item
57
+ {"Checklist item"}
62
58
  </ListItem>
63
59
  </List>
64
60
  </div>
65
61
  </Collapsible.Content>
66
62
  </Collapsible>
67
-
68
63
  </>
69
64
  )
70
65
  }
71
66
 
67
+ CollapsibleCustomMain.propTypes = {
68
+ dark: PropTypes.bool,
69
+ }
70
+
72
71
  export default CollapsibleCustomMain
@@ -1,5 +1,5 @@
1
1
  <%= pb_rails("collapsible", props: { name: "default-example" }) do %>
2
- <%= pb_rails("background", props: { background_color: "white", position: "sticky", top: "0", cursor:"pointer", data: {"collapsible-main": "true"} }) do %>
2
+ <%= pb_rails("flex", props: { position: "sticky", top: "0", cursor: "pointer", data: { "collapsible-main": "true", align: "center", gap: "sm", justify: "between" } }) do %>
3
3
  <%= pb_rails("flex", props: {align:"center", gap:"sm", justify:"between"}) do %>
4
4
  <%= pb_rails("title", props: { text: "Custom Main Section", tag: "h4", size: 4 }) %>
5
5
  <% end %>
@@ -16,4 +16,5 @@
16
16
  <% end %>
17
17
  <% end %>
18
18
  <% end %>
19
-
19
+
20
+
@@ -1,73 +1,74 @@
1
1
  import React from 'react'
2
- import { Collapsible, useCollapsible, Background, Flex, Title, List, ListItem } from '../..'
2
+ import PropTypes from 'prop-types'
3
+ import { Collapsible, useCollapsible, Flex, Title, List, ListItem } from '../..'
3
4
 
4
- const CollapsibleCustomMainWithIcon = () => {
5
+ const CollapsibleCustomMainWithIcon = (props) => {
5
6
  const [isCollapsed, setIsCollapsed] = useCollapsible(true)
6
7
 
7
8
  return (
8
- <>
9
- <Collapsible
10
- collapsed={isCollapsed}
11
- >
12
- <Background
13
- backgroundColor="white"
14
- cursor="pointer"
15
- htmlOptions={{onClick:() => setIsCollapsed(!isCollapsed)}}
16
- position="sticky"
17
- top="0"
18
- >
19
- <Flex
20
- align="center"
21
- gap="sm"
22
- justify="between"
23
- >
24
- <Title
25
- size={4}
26
- text="Custom Main Section"
27
- />
28
- <Collapsible.Icon collapsed={isCollapsed}/>
29
- </Flex>
30
- </Background>
31
- <Collapsible.Content padding="none">
9
+ <>
10
+ <Collapsible collapsed={isCollapsed}>
11
+ <Flex
12
+ align="center"
13
+ cursor="pointer"
14
+ gap="sm"
15
+ htmlOptions={{onClick:() => setIsCollapsed(!isCollapsed)}}
16
+ justify="between"
17
+ position="sticky"
18
+ top="0"
19
+ >
20
+ <Title
21
+ dark={props.dark}
22
+ size={4}
23
+ text="Custom Main Section"
24
+ />
25
+ <Collapsible.Icon collapsed={isCollapsed} />
26
+ </Flex>
27
+ <Collapsible.Content
28
+ padding="none"
29
+ >
32
30
  <div>
33
31
  <List>
34
32
  <ListItem
35
33
  align="stretch"
36
34
  flexDirection="column"
37
35
  >
38
- Checklist item
36
+ {"Checklist item"}
39
37
  </ListItem>
40
38
  <ListItem
41
39
  align="stretch"
42
40
  flexDirection="column"
43
41
  >
44
- Checklist item
42
+ {"Checklist item"}
45
43
  </ListItem>
46
44
  <ListItem
47
45
  align="stretch"
48
46
  flexDirection="column"
49
47
  >
50
- Checklist item
48
+ {"Checklist item"}
51
49
  </ListItem>
52
50
  <ListItem
53
51
  align="stretch"
54
52
  flexDirection="column"
55
53
  >
56
- Checklist item
54
+ {"Checklist item"}
57
55
  </ListItem>
58
56
  <ListItem
59
57
  align="stretch"
60
58
  flexDirection="column"
61
59
  >
62
- Checklist item
60
+ {"Checklist item"}
63
61
  </ListItem>
64
62
  </List>
65
63
  </div>
66
64
  </Collapsible.Content>
67
65
  </Collapsible>
68
-
69
66
  </>
70
67
  )
71
68
  }
72
69
 
70
+ CollapsibleCustomMainWithIcon.propTypes = {
71
+ dark: PropTypes.bool,
72
+ }
73
+
73
74
  export default CollapsibleCustomMainWithIcon
@@ -1,12 +1,8 @@
1
1
  <%= pb_rails("collapsible", props: { name: "default-example" }) do %>
2
- <%= pb_rails("background", props: { background_color: "white", position: "sticky", top: "0", cursor:"pointer", data: {"collapsible-main": "true"} }) do %>
3
- <%= pb_rails("flex", props: {align:"center", gap:"sm", justify:"between"}) do %>
4
- <%= pb_rails("title", props: { text: "Custom Main Section", tag: "h4", size: 4 }) %>
2
+ <%= pb_rails("flex", props: { position: "sticky", top: "0", cursor: "pointer", data: { "collapsible-main": "true" }, align: "center", gap: "sm", justify: "between" }) do %>
3
+ <%= pb_rails("title", props: { text: "Custom Main Section", tag: "h4", size: 4 }) %>
5
4
  <%= pb_rails("collapsible/collapsible_icon") %>
6
- <% end %>
7
- <% end %>
8
- <%= pb_rails("flex", props: { align: "center", justify: "between" }) do %>
9
- <% end %>
5
+ <% end %>
10
6
  <%= pb_rails("collapsible/collapsible_content", props: { padding: "none" }) do %>
11
7
  <%= pb_rails("list", props: {ordered: false, dark: false, borderless: false}) do %>
12
8
  <%= pb_rails("list/item") do %> Checklist Item <% end %>
@@ -7,6 +7,7 @@ const CollapsibleIcons = (props) => {
7
7
  <>
8
8
  <Collapsible
9
9
  icon={['plus','minus']}
10
+ iconColor='white'
10
11
  >
11
12
  <Collapsible.Main {...props}>
12
13
  <div>{'Main Section'}</div>
@@ -1,4 +1,5 @@
1
1
  import React from 'react'
2
+ import PropTypes from 'prop-types';
2
3
  import { Collapsible, useCollapsible, Button } from '../..'
3
4
 
4
5
  const CollapsibleState = (props) => {
@@ -7,6 +8,7 @@ const CollapsibleState = (props) => {
7
8
  return (
8
9
  <>
9
10
  <Button
11
+ dark={props.dark}
10
12
  onClick={() => setIsCollapsed(!isCollapsed)}
11
13
  padding="none"
12
14
  variant="link"
@@ -17,6 +19,7 @@ const CollapsibleState = (props) => {
17
19
  <Collapsible
18
20
  collapsed={isCollapsed}
19
21
  icon={["plus", "minus"]}
22
+ iconColor='white'
20
23
  padding="none"
21
24
  >
22
25
  <Collapsible.Main padding="sm"
@@ -35,6 +38,7 @@ const CollapsibleState = (props) => {
35
38
  <Collapsible
36
39
  collapsed={isCollapsed}
37
40
  icon={["plus", "minus"]}
41
+ iconColor='white'
38
42
  padding="none"
39
43
  >
40
44
  <Collapsible.Main padding="sm"
@@ -53,6 +57,7 @@ const CollapsibleState = (props) => {
53
57
  <Collapsible
54
58
  collapsed={isCollapsed}
55
59
  icon={["plus", "minus"]}
60
+ iconColor='white'
56
61
  padding="none"
57
62
  >
58
63
  <Collapsible.Main padding="sm"
@@ -72,4 +77,8 @@ const CollapsibleState = (props) => {
72
77
  )
73
78
  }
74
79
 
80
+ CollapsibleState.propTypes = {
81
+ dark: PropTypes.bool,
82
+ }
83
+
75
84
  export default CollapsibleState
@@ -8,23 +8,23 @@ import Body from '../pb_body/_body'
8
8
  import Caption from '../pb_caption/_caption'
9
9
  import Icon from '../pb_icon/_icon'
10
10
 
11
- const contactTypeMap: { [key: string]: string; } = {
11
+ const contactTypeMap: { [key: string]: string } = {
12
12
  'cell': 'mobile',
13
13
  'email': 'envelope',
14
+ 'extension': 'phone-plus',
14
15
  'home': 'phone',
15
16
  'work': 'phone-office',
16
17
  'work-cell': 'phone-laptop',
17
18
  'wrong-phone': 'phone-slash',
18
- 'extension': 'phone-plus',
19
19
  }
20
20
 
21
21
  const formatContact = (contactString: string, contactType: string) => {
22
- if (contactType == 'email') return contactString
22
+ if (contactType === 'email') return contactString
23
23
 
24
24
  const cleaned = contactString.replace(/\D/g, '')
25
25
  const phoneNumber = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/)
26
26
 
27
- if(contactType == 'extension') {
27
+ if (contactType === 'extension') {
28
28
  return cleaned.match(/^\d{4}$/)
29
29
  }
30
30
 
@@ -40,19 +40,20 @@ const formatContact = (contactString: string, contactType: string) => {
40
40
  phoneNumber[4],
41
41
  ].join('')
42
42
  }
43
-
43
+
44
44
  return null
45
45
  }
46
46
 
47
47
  type ContactProps = {
48
- aria?: { [key: string]: string; },
49
- className?: string | string[],
50
- contactDetail?: string,
51
- contactType?: string,
52
- contactValue: string,
53
- data?: {[key: string]: string},
54
- htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
55
- id?: string,
48
+ aria?: { [key: string]: string }
49
+ className?: string | string[]
50
+ contactDetail?: string
51
+ contactType?: string
52
+ contactValue: string
53
+ data?: { [key: string]: string }
54
+ dark?: boolean
55
+ htmlOptions?: { [key: string]: string | number | boolean | (() => void) }
56
+ id?: string
56
57
  }
57
58
 
58
59
  const Contact = (props: ContactProps): React.ReactElement => {
@@ -63,8 +64,10 @@ const Contact = (props: ContactProps): React.ReactElement => {
63
64
  contactType,
64
65
  contactValue,
65
66
  data = {},
67
+ dark = false,
66
68
  htmlOptions = {},
67
- id } = props
69
+ id,
70
+ } = props
68
71
  const ariaProps = buildAriaProps(aria)
69
72
  const dataProps = buildDataProps(data)
70
73
  const htmlProps = buildHtmlProps(htmlOptions)
@@ -73,6 +76,7 @@ const Contact = (props: ContactProps): React.ReactElement => {
73
76
  globalProps(props),
74
77
  className
75
78
  )
79
+
76
80
  return (
77
81
  <div
78
82
  {...ariaProps}
@@ -83,25 +87,27 @@ const Contact = (props: ContactProps): React.ReactElement => {
83
87
  >
84
88
  <Body
85
89
  className="pb_contact_kit"
86
- color="light"
90
+ color={"light"}
91
+ dark={dark}
87
92
  tag="span"
88
93
  >
89
94
  <Icon
95
+ dark={dark}
90
96
  fixedWidth
91
97
  icon={contactTypeMap[contactType] || 'phone'}
92
98
  />
93
99
  {` ${formatContact(contactValue, contactType)} `}
94
- {
95
- contactDetail &&
100
+ {contactDetail && (
96
101
  <Caption
102
+ dark={dark}
97
103
  size="xs"
98
104
  tag="span"
99
105
  text={contactDetail}
100
106
  />
101
- }
107
+ )}
102
108
  </Body>
103
109
  </div>
104
110
  )
105
111
  }
106
112
 
107
- export default Contact
113
+ export default Contact
@@ -2,18 +2,21 @@
2
2
  <%= pb_rails("body", props: {
3
3
  tag: "span",
4
4
  classname: "pb_contact_kit",
5
- color: "light"
5
+ color: "light",
6
+ dark: object.dark
6
7
  }) do %>
7
8
  <%= pb_rails("icon", props: {
8
9
  icon: object.contact_icon,
9
- fixed_width: true
10
+ fixed_width: true,
11
+ dark: object.dark
10
12
  }) %>
11
13
  <%= object.formatted_contact_value if object.contact_value %>
12
14
 
13
15
  <%= pb_rails("caption", props: {
14
16
  text: object.contact_detail,
15
17
  tag: 'span',
16
- size: 'xs'
18
+ size: 'xs',
19
+ dark: object.dark
17
20
  }) if object.contact_detail %>
18
21
  <% end %>
19
22
  <% end %>