playbook_ui 13.27.0.pre.alpha.PBNTR48phonenumberform2852 → 13.27.0.pre.alpha.PBNTR294paginationstylingfix2899

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_avatar/Utilities/GetPlacementPropsHelper.tsx +16 -0
  3. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +16 -0
  4. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +1 -1
  5. data/app/pb_kits/playbook/pb_avatar/avatar.rb +4 -0
  6. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +47 -0
  7. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.html.erb +46 -66
  8. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +8 -29
  9. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.md +3 -0
  10. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.html.erb +13 -33
  11. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +48 -67
  12. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.md +3 -0
  13. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +0 -20
  14. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +2 -2
  15. data/app/pb_kits/playbook/pb_body/_body.scss +3 -0
  16. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  17. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +3 -3
  18. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -1
  19. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +5 -0
  20. data/app/pb_kits/playbook/pb_card/card.rb +1 -1
  21. data/app/pb_kits/playbook/pb_card/docs/_card_background.html.erb +20 -0
  22. data/app/pb_kits/playbook/pb_card/docs/_card_background.jsx +41 -1
  23. data/app/pb_kits/playbook/pb_card/docs/_card_background.md +1 -1
  24. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  26. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
  27. data/app/pb_kits/playbook/pb_detail/_detail_mixins.scss +1 -1
  28. data/app/pb_kits/playbook/pb_docs/kit_example.html.erb +3 -3
  29. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +2 -1
  30. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +4 -2
  31. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +3 -3
  32. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.html.erb +3 -3
  33. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.html.erb +3 -3
  34. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.html.erb +3 -3
  35. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.html.erb +3 -3
  36. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -3
  37. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +1 -0
  38. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +1 -0
  39. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +1 -1
  40. data/app/pb_kits/playbook/pb_dropdown/index.js +2 -1
  41. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +4 -2
  42. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
  43. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  44. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +15 -0
  45. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +8 -0
  46. data/app/pb_kits/playbook/pb_pagination/_pagination.scss +1 -1
  47. data/app/pb_kits/playbook/pb_title/_title.scss +5 -1
  48. data/app/pb_kits/playbook/tokens/_titles.scss +5 -1
  49. data/dist/playbook-rails.js +2 -2
  50. data/lib/playbook/forms/builder.rb +0 -1
  51. data/lib/playbook/version.rb +1 -1
  52. metadata +4 -3
  53. data/lib/playbook/forms/builder/phone_number_field.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95ac0ea9e7bb139ef4d92f659e024423095eae94e41850491e67c604bf11166a
4
- data.tar.gz: 5c7df5b7c03fe937e780f015f89c6f1b4d8a5444e0ad4c2b7403681d4d263df4
3
+ metadata.gz: df317431562db34f02e8780e9f2bdfda5acbf9fbb0f0bf9df3c9c3eb1893b0c0
4
+ data.tar.gz: 6d4a66b89f01aec006c4f383088d5b471e6c5e094107682a6defea39068c0e29
5
5
  SHA512:
6
- metadata.gz: 3610fe5c23968bb7313a2b1402347ddf034e97aced69a7add3bf4eb032ce0ac457cfb84a7e1d9bae10c460163fe8aeec71b680737f318105ab448e3c95770ae3
7
- data.tar.gz: a3a8edacab61267f15694d6bce0c72e38f8915180b39d6e6b8f43a789634e46c0c897ca0d14b4a6013457efefd124a9e1ceb00dd4b6bc73450d946c7c054b9b6
6
+ metadata.gz: adbdaaaa51705b69b8ce4e8ffd889dea79228e771ae456556de4c040b24c8e6eb0b79d33745153c338b0c06e66c5456c76b7af3b13d80d6acee740a7f4631b3c
7
+ data.tar.gz: 3682695def6dff69286da1a81b2b90f884f0482c6470aa315dcaaee929c03eedefea816608a9b21313ba5dfc6079cf55ef4adb1d02795c03e8a490584f9e0a22
@@ -9,6 +9,10 @@ export const getPlacementProps = (placement: string, size?: "md" | "lg" | "sm" |
9
9
  'bottom-left': { bottom: 'xs', left: 'xs' },
10
10
  'top-left': { top: 'xs', left: 'xs' },
11
11
  'bottom-right': { bottom: 'xs', right: 'xs' },
12
+ 'bottom-center': { bottom: "xs", className: "overlay_bottom_center" },
13
+ 'top-center': { top: "xs", className: "overlay_top_center" },
14
+ 'left-center': { left: "sm", className: "overlay_left_center" },
15
+ 'right-center': { right: "sm", className: "overlay_right_center" }
12
16
  };
13
17
  break;
14
18
 
@@ -18,6 +22,10 @@ export const getPlacementProps = (placement: string, size?: "md" | "lg" | "sm" |
18
22
  'bottom-left': { bottom: '0', left: 'xs' },
19
23
  'top-left': { top: '0', left: 'xs' },
20
24
  'bottom-right': { bottom: '0', right: 'xs' },
25
+ 'bottom-center': { bottom: "xs", className: "overlay_bottom_center" },
26
+ 'top-center': { top: "xs", className: "overlay_top_center" },
27
+ 'left-center': { left: "sm", className: "overlay_left_center" },
28
+ 'right-center': { right: "sm", className: "overlay_right_center" }
21
29
  };
22
30
  break;
23
31
 
@@ -28,6 +36,10 @@ export const getPlacementProps = (placement: string, size?: "md" | "lg" | "sm" |
28
36
  'bottom-left': { bottom: '0', left: '0' },
29
37
  'top-left': { top: '0', left: '0' },
30
38
  'bottom-right': { bottom: '0', right: '0' },
39
+ 'bottom-center': { bottom: "xs", className: "overlay_bottom_center" },
40
+ 'top-center': { top: "xs", className: "overlay_top_center" },
41
+ 'left-center': { left: "sm", className: "overlay_left_center" },
42
+ 'right-center': { right: "sm", className: "overlay_right_center" }
31
43
  };
32
44
  break;
33
45
 
@@ -37,6 +49,10 @@ export const getPlacementProps = (placement: string, size?: "md" | "lg" | "sm" |
37
49
  'bottom-left': { bottom: { value: "xxs", inset: true }, left: { value: "xxs", inset: true } },
38
50
  'top-left': { top: { value: "xxs", inset: true }, left: { value: "xxs", inset: true } },
39
51
  'bottom-right': { bottom: { value: "xxs", inset: true }, right: { value: "xxs", inset: true } },
52
+ 'bottom-center': { bottom: "xs", className: "overlay_bottom_center" },
53
+ 'top-center': { top: "xs", className: "overlay_top_center" },
54
+ 'left-center': { left: "sm", className: "overlay_left_center" },
55
+ 'right-center': { right: "sm", className: "overlay_right_center" }
40
56
  };
41
57
  break;
42
58
  }
@@ -26,6 +26,22 @@ $avatar-sizes: (
26
26
  flex-grow: 0;
27
27
  flex-basis: $size;
28
28
 
29
+ & > [class^=pb_flex_kit] {
30
+ [class^=pb_card_kit].overlay_bottom_center,
31
+ [class^=pb_card_kit].overlay_top_center {
32
+ left: 50%;
33
+ transform: translateX(-50%);
34
+ padding: 2px !important;
35
+ }
36
+
37
+ [class^=pb_card_kit].overlay_left_center,
38
+ [class^=pb_card_kit].overlay_right_center {
39
+ top: 50%;
40
+ transform: translateY(-50%);
41
+ padding: 2px !important;
42
+ }
43
+ }
44
+
29
45
  .avatar_wrapper {
30
46
  width: $size;
31
47
  height: $size;
@@ -7,7 +7,7 @@
7
7
  <% end %>
8
8
  <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", html_options: { style: "padding: 2px" }, position: "absolute" }.merge(specific_placement_style)) do %>
9
9
 
10
- <%= pb_rails("icon_circle", props: { size: "xxs", icon: object.component_overlay[:icon] }) %>
10
+ <%= pb_rails("icon_circle", props: { size: "xxs", icon: object.component_overlay[:icon], variant: object.component_overlay[:variant] }) %>
11
11
  <% end %>
12
12
  <% end %>
13
13
  <% elsif object.component_overlay && object.component_overlay[:component] == "badge" %>
@@ -71,6 +71,10 @@ module Playbook
71
71
  "bottom-left" => { bottom: top_bottom_offset, left: offset },
72
72
  "top-left" => { top: top_bottom_offset, left: offset },
73
73
  "bottom-right" => { bottom: top_bottom_offset, right: offset },
74
+ "bottom-center" => { bottom: "xs", classname: "overlay_bottom_center" },
75
+ "top-center" => { top: "xs", classname: "overlay_top_center" },
76
+ "left-center" => { left: "sm", classname: "overlay_left_center" },
77
+ "right-center" => { right: "sm", classname: "overlay_right_center" },
74
78
  }
75
79
  end
76
80
  end
@@ -42,3 +42,50 @@ test('uses the name prop as the alt property if no imageAlt prop is passed in',
42
42
 
43
43
  expect(image).toHaveAttribute('alt', name)
44
44
  })
45
+
46
+ test('renders with badge overlay', () => {
47
+ const componentOverlay = {
48
+ component: "badge",
49
+ placement: "top-right",
50
+ text: "New",
51
+ variant: "error"
52
+ };
53
+ render(
54
+ <Avatar
55
+ componentOverlay={componentOverlay}
56
+ data={{ testid: testId }}
57
+ imageAlt={imageAlt}
58
+ imageUrl={imageUrl}
59
+ name={name}
60
+ />
61
+ );
62
+
63
+ const badgeOverlay = screen.getByTestId(testId);
64
+
65
+ expect(badgeOverlay).toBeInTheDocument();
66
+ expect(badgeOverlay).toHaveClass('pb_avatar_kit_size_md');
67
+ expect(badgeOverlay).toHaveTextContent('New');
68
+ });
69
+
70
+ test('renders with iconCircle overlay', () => {
71
+ const componentOverlay = {
72
+ component: "iconCircle",
73
+ placement: "bottom-left",
74
+ icon: "plus",
75
+ variant: "blue"
76
+ };
77
+ render(
78
+ <Avatar
79
+ componentOverlay={componentOverlay}
80
+ data={{ testid: testId }}
81
+ imageAlt={imageAlt}
82
+ imageUrl={imageUrl}
83
+ name={name}
84
+ />
85
+ );
86
+
87
+ const iconCircleOverlay = screen.getByTestId(testId);
88
+
89
+ expect(iconCircleOverlay).toBeInTheDocument();
90
+ expect(iconCircleOverlay).toHaveClass('pb_avatar_kit_size_md');
91
+ });
@@ -1,71 +1,51 @@
1
- <%= pb_rails("avatar", props: {
2
- component_overlay: {
3
- component: "badge",
4
- text: "12",
5
- placement: "top-left"
6
- },
7
- name: "Terry Johnson",
8
- size: "xxs",
9
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
10
- margin_bottom: "sm"
11
- }) %>
12
1
 
13
- <%= pb_rails("avatar", props: {
14
- component_overlay: {
15
- component: "badge",
16
- text: "12",
17
- placement: "top-right"
18
- },
19
- name: "Terry Johnson",
20
- size: "xs",
21
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
22
- margin_bottom: "sm"
23
- }) %>
2
+ <%= pb_rails("avatar", props: {
3
+ component_overlay: {
4
+ component: "badge",
5
+ text: "12",
6
+ placement: "bottom-right"
7
+ },
8
+ name: "Terry Johnson",
9
+ size: "sm",
10
+ image_url: "https://randomuser.me/api/portraits/men/44.jpg",
11
+ margin_bottom: "sm"
12
+ }) %>
24
13
 
25
- <%= pb_rails("avatar", props: {
26
- component_overlay: {
27
- component: "badge",
28
- text: "12",
29
- placement: "bottom-right"
30
- },
31
- name: "Terry Johnson",
32
- size: "sm",
33
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
34
- margin_bottom: "sm"
35
- }) %>
14
+ <%= pb_rails("avatar", props: {
15
+ component_overlay: {
16
+ component: "badge",
17
+ text: "12",
18
+ placement: "top-left"
19
+ },
20
+ name: "Terry Johnson",
21
+ size: "md",
22
+ image_url: "https://randomuser.me/api/portraits/men/44.jpg",
23
+ margin_bottom: "sm"
24
+ }) %>
36
25
 
37
- <%= pb_rails("avatar", props: {
38
- component_overlay: {
39
- component: "badge",
40
- text: "12",
41
- placement: "bottom-left"
42
- },
43
- name: "Terry Johnson",
44
- size: "md",
45
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
46
- margin_bottom: "sm"
47
- }) %>
26
+ <%= pb_rails("avatar", props: {
27
+ component_overlay: {
28
+ component: "badge",
29
+ text: "On Roadtrip",
30
+ placement: "top-center",
31
+ variant: "info"
32
+ },
33
+ name: "Terry Johnson",
34
+ size: "lg",
35
+ image_url: "https://randomuser.me/api/portraits/men/44.jpg",
36
+ margin_bottom: "sm"
37
+ }) %>
48
38
 
49
- <%= pb_rails("avatar", props: {
50
- component_overlay: {
51
- component: "badge",
52
- text: "12",
53
- placement: "top-left"
54
- },
55
- name: "Terry Johnson",
56
- size: "lg",
57
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
58
- margin_bottom: "sm"
59
- }) %>
39
+ <%= pb_rails("avatar", props: {
40
+ component_overlay: {
41
+ component: "badge",
42
+ text: "Out of Office",
43
+ placement: "bottom-center",
44
+ variant: "error"
45
+ },
46
+ name: "Terry Johnson",
47
+ size: "xl",
48
+ image_url: "https://randomuser.me/api/portraits/men/44.jpg",
49
+ margin_bottom: "sm"
50
+ }) %>
60
51
 
61
- <%= pb_rails("avatar", props: {
62
- component_overlay: {
63
- component: "badge",
64
- text: "12",
65
- placement: "top-right"
66
- },
67
- name: "Terry Johnson",
68
- size: "xl",
69
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
70
- margin_bottom: "sm"
71
- }) %>
@@ -4,28 +4,6 @@ import { Avatar } from '../..'
4
4
  const AvatarBadgeComponentOverlay = () => {
5
5
  return (
6
6
  <div>
7
- <Avatar
8
- componentOverlay={{
9
- component: "badge",
10
- placement: "top-left",
11
- text: "12"
12
- }}
13
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
14
- marginBottom="sm"
15
- size="xxs"
16
- />
17
-
18
- <Avatar
19
- componentOverlay={{
20
- component: "badge",
21
- placement: "top-right",
22
- text: "12"
23
- }}
24
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
25
- marginBottom="sm"
26
- size="xs"
27
- />
28
-
29
7
  <Avatar
30
8
  componentOverlay={{
31
9
  component: "badge",
@@ -40,7 +18,7 @@ const AvatarBadgeComponentOverlay = () => {
40
18
  <Avatar
41
19
  componentOverlay={{
42
20
  component: "badge",
43
- placement: "bottom-left",
21
+ placement: "top-left",
44
22
  text: "12"
45
23
  }}
46
24
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
@@ -51,8 +29,9 @@ const AvatarBadgeComponentOverlay = () => {
51
29
  <Avatar
52
30
  componentOverlay={{
53
31
  component: "badge",
54
- placement: "top-left",
55
- text: "12"
32
+ placement: "top-center",
33
+ text: "On Roadtip",
34
+ variant: "info"
56
35
  }}
57
36
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
58
37
  marginBottom="sm"
@@ -62,14 +41,14 @@ const AvatarBadgeComponentOverlay = () => {
62
41
  <Avatar
63
42
  componentOverlay={{
64
43
  component: "badge",
65
- placement: "top-right",
66
- text: "12"
44
+ placement: "bottom-center",
45
+ text: "Out of Office",
46
+ variant: "error"
67
47
  }}
68
48
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
69
49
  marginBottom="sm"
70
50
  size="xl"
71
- />
72
-
51
+ />
73
52
  </div>
74
53
  )
75
54
  }
@@ -0,0 +1,3 @@
1
+ NOTE: All `componentOverlay` implementations require a `placement` prop, that accepts any of the following values: `top-right`, `top-left`, `bottom-right`, `bottom-left`, `top-center`, `bottom-center`, `left-center`, and `right-center`.
2
+
3
+ When passing the `badge` component as an overlay, you must also specify its text content,and you may optionally control the color by passing an [approved value](https://playbook.powerapp.cloud/kits/badge#colors) as a `variant`.
@@ -1,32 +1,9 @@
1
- <%= pb_rails("avatar", props: {
2
- component_overlay: {
3
- component: "icon_circle",
4
- icon: "plus",
5
- placement: "top-left"
6
- },
7
- name: "Terry Johnson",
8
- size: "xxs",
9
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
10
- margin_bottom: "sm"
11
- }) %>
12
-
13
- <%= pb_rails("avatar", props: {
14
- component_overlay: {
15
- component: "icon_circle",
16
- icon: "plus",
17
- placement: "top-right"
18
- },
19
- name: "Terry Johnson",
20
- size: "xs",
21
- image_url: "https://randomuser.me/api/portraits/men/44.jpg",
22
- margin_bottom: "sm"
23
- }) %>
24
-
25
1
  <%= pb_rails("avatar", props: {
26
2
  component_overlay: {
27
3
  component: "icon_circle",
28
- icon: "plus",
29
- placement: "bottom-right"
4
+ icon: "shield",
5
+ placement: "bottom-right",
6
+ variant: "royal"
30
7
  },
31
8
  name: "Terry Johnson",
32
9
  size: "sm",
@@ -37,8 +14,9 @@
37
14
  <%= pb_rails("avatar", props: {
38
15
  component_overlay: {
39
16
  component: "icon_circle",
40
- icon: "plus",
41
- placement: "bottom-left"
17
+ icon: "check",
18
+ placement: "top-right",
19
+ variant: "green"
42
20
  },
43
21
  name: "Terry Johnson",
44
22
  size: "md",
@@ -49,8 +27,9 @@
49
27
  <%= pb_rails("avatar", props: {
50
28
  component_overlay: {
51
29
  component: "icon_circle",
52
- icon: "plus",
53
- placement: "top-left"
30
+ icon: "lock",
31
+ placement: "top-left",
32
+ variant: "red"
54
33
  },
55
34
  name: "Terry Johnson",
56
35
  size: "lg",
@@ -61,11 +40,12 @@
61
40
  <%= pb_rails("avatar", props: {
62
41
  component_overlay: {
63
42
  component: "icon_circle",
64
- icon: "plus",
65
- placement: "top-right"
43
+ icon: "star",
44
+ placement: "left-center",
45
+ variant: "yellow"
66
46
  },
67
47
  name: "Terry Johnson",
68
48
  size: "xl",
69
49
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
70
50
  margin_bottom: "sm"
71
- }) %>
51
+ }) %>
@@ -4,73 +4,54 @@ import { Avatar } from '../..'
4
4
  const AvatarCircleIconComponentOverlay = () => {
5
5
  return (
6
6
  <div>
7
- <Avatar
8
- componentOverlay={{
9
- component: "iconCircle",
10
- icon: "plus",
11
- placement: "top-left"
12
- }}
13
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
14
- marginBottom="sm"
15
- size="xxs"
16
- />
17
-
18
- <Avatar
19
- componentOverlay={{
20
- component: "iconCircle",
21
- icon: "plus",
22
- placement: "top-right"
23
- }}
24
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
25
- marginBottom="sm"
26
- size="xs"
27
- />
28
-
29
- <Avatar
30
- componentOverlay={{
31
- component: "iconCircle",
32
- icon: "plus",
33
- placement: "bottom-right",
34
- }}
35
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
36
- marginBottom="sm"
37
- size="sm"
38
- />
39
-
40
- <Avatar
41
- componentOverlay={{
42
- component: "iconCircle",
43
- icon: "plus",
44
- placement: "bottom-left"
45
- }}
46
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
47
- marginBottom="sm"
48
- size="md"
49
- />
50
-
51
- <Avatar
52
- componentOverlay={{
53
- component: "iconCircle",
54
- icon: "plus",
55
- placement: "top-left"
56
- }}
57
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
58
- marginBottom="sm"
59
- size="lg"
60
- />
61
-
62
- <Avatar
63
- componentOverlay={{
64
- component: "iconCircle",
65
- icon: "plus",
66
- placement: "top-right"
67
- }}
68
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
69
- marginBottom="sm"
70
- size="xl"
71
- />
72
-
73
- </div>
7
+ <Avatar
8
+ componentOverlay={{
9
+ component: "iconCircle",
10
+ placement: "bottom-right",
11
+ icon: "shield",
12
+ variant: "royal"
13
+ }}
14
+ imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
15
+ marginBottom="sm"
16
+ size="sm"
17
+ />
18
+
19
+ <Avatar
20
+ componentOverlay={{
21
+ component: "iconCircle",
22
+ placement: "bottom-right",
23
+ icon: "check",
24
+ variant: "green"
25
+ }}
26
+ imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
27
+ marginBottom="sm"
28
+ size="md"
29
+ />
30
+
31
+ <Avatar
32
+ componentOverlay={{
33
+ component: "iconCircle",
34
+ placement: "top-left",
35
+ icon: "lock",
36
+ variant: "red"
37
+ }}
38
+ imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
39
+ marginBottom="sm"
40
+ size="lg"
41
+ />
42
+
43
+ <Avatar
44
+ componentOverlay={{
45
+ component: "iconCircle",
46
+ placement: "left-center",
47
+ icon: "star",
48
+ variant: "yellow"
49
+ }}
50
+ imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
51
+ marginBottom="sm"
52
+ size="xl"
53
+ />
54
+ </div>
74
55
  )
75
56
  }
76
57
 
@@ -0,0 +1,3 @@
1
+ NOTE: All `componentOverlay` implementations require a `placement` prop, that accepts any of the following values: `top-right`, `top-left`, `bottom-right`, `bottom-left`, `top-center`, `bottom-center`, `left-center`, and `right-center`.
2
+
3
+ When passing the `iconCircle` component as an overlay, you must also specify an `icon`, and you may optionally control the color by passing an [approved value](https://playbook.powerapp.cloud/kits/icon_circle/rails#color) as a `variant`.
@@ -57,26 +57,6 @@ const AvatarDefault = (props) => {
57
57
  status="offline"
58
58
  {...props}
59
59
  />
60
- <br/>
61
- <Avatar
62
- imageAlt="Terry Johnson Standing"
63
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
64
- name="Terry Johnson"
65
- overlay={{component:"badge", text: "6", variant: "notification", placement:"top-right"}}
66
- size="lg"
67
- status="offline"
68
- {...props}
69
- />
70
- <br/>
71
- <Avatar
72
- imageAlt="Terry Johnson Standing"
73
- imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
74
- name="Terry Johnson"
75
- overlay={{component:"icon", icon:"plus", variant:"royal", placement:"bottom-left"}}
76
- size="xl"
77
- status="offline"
78
- {...props}
79
- />
80
60
  </div>
81
61
  )
82
62
  }
@@ -4,14 +4,14 @@ examples:
4
4
  - avatar_monogram: Monogram
5
5
  - avatar_no_image: "Bad Image Link"
6
6
  - avatar_status: Status
7
- - avatar_circle_icon_component_overlay: Circle Icon Component Overlay
7
+ - avatar_circle_icon_component_overlay: Icon Circle Component Overlay
8
8
  - avatar_badge_component_overlay: Badge Component Overlay
9
9
  react:
10
10
  - avatar_default: Default
11
11
  - avatar_monogram: Monogram
12
12
  - avatar_no_image: "Bad Image Link"
13
13
  - avatar_status: Status
14
- - avatar_circle_icon_component_overlay: Circle Icon Component Overlay
14
+ - avatar_circle_icon_component_overlay: Icon Circle Component Overlay
15
15
  - avatar_badge_component_overlay: Badge Component Overlay
16
16
  swift:
17
17
  - avatar_default_swift: Default
@@ -45,6 +45,9 @@
45
45
  }
46
46
 
47
47
  &[class*=dark] {
48
+ a {
49
+ color: $active_dark;
50
+ }
48
51
  @include pb_body_dark();
49
52
  @each $dark_color_name, $dark_color_value in $pb_dark_body_colors{
50
53
  &[class*=_#{$dark_color_name}][class*=dark]{
@@ -15,7 +15,7 @@ $pb_dark_body_colors: (
15
15
  default: $text_dk_default,
16
16
  light: $text_dk_light,
17
17
  lighter: $text_dk_lighter,
18
- link: $primary_action_dark,
18
+ link: $active_dark,
19
19
  error: $error,
20
20
  success: $text_dk_success_sm,
21
21
  );
@@ -197,16 +197,16 @@ $pb_button_border_width: 0px;
197
197
 
198
198
  // Dark Link =============
199
199
  @mixin pb_button_link_dark {
200
- @include pb_button_variant($transparent, $white);
200
+ @include pb_button_variant($transparent, $active_dark);
201
201
 
202
202
  @media (hover:hover) {
203
203
  &:hover {
204
204
  @include pb_button_hover($transparent);
205
- color: rgba($white, $opacity_6)
205
+ color: rgba($active_dark, $opacity_6)
206
206
  }
207
207
  &:active {
208
208
  transition: none;
209
- @include pb_button_variant($transparent, $white);
209
+ @include pb_button_variant($transparent, $active_dark);
210
210
  }
211
211
  }
212
212
  }
@@ -13,7 +13,7 @@ $pb_caption_colors: (
13
13
  $pb_dark_caption_colors: (
14
14
  default: $text_dk_default,
15
15
  light: $text_dk_light,
16
- link: $primary,
16
+ link: $active_dark,
17
17
  success: $text_dk_success_sm,
18
18
  error: $error,
19
19
  );