playbook_ui 8.2.0.pre.alpha2 → 8.2.0.pre.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/data/menu.yml +2 -1
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +14 -2
  6. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +1 -1
  7. data/app/pb_kits/playbook/pb_avatar/avatar.rb +5 -2
  8. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +5 -2
  9. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.html.erb +5 -0
  10. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +5 -0
  11. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.html.erb +4 -0
  12. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.jsx +4 -0
  13. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.jsx +6 -0
  14. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +2 -1
  15. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +2 -0
  16. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +4 -0
  17. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +4 -0
  18. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +2 -0
  19. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +2 -0
  20. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +2 -0
  21. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +2 -0
  22. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +8 -0
  23. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +8 -0
  24. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +2 -0
  25. data/app/pb_kits/playbook/pb_avatar_action_button/pb_avatar_action_button.test.js +31 -0
  26. data/app/pb_kits/playbook/pb_caption/_caption.jsx +3 -2
  27. data/app/pb_kits/playbook/pb_caption/caption.rb +1 -1
  28. data/app/pb_kits/playbook/pb_card/_card.jsx +18 -3
  29. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -1
  30. data/app/pb_kits/playbook/pb_card/card.rb +3 -0
  31. data/app/pb_kits/playbook/pb_card/docs/_card_tag.html.erb +25 -0
  32. data/app/pb_kits/playbook/pb_card/docs/_card_tag.jsx +59 -0
  33. data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
  34. data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
  35. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +31 -9
  36. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +28 -19
  37. data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +11 -3
  38. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +6 -1
  39. data/app/pb_kits/playbook/pb_checkbox/checkbox.test.js +94 -0
  40. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.jsx +0 -1
  41. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +7 -0
  42. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.jsx +16 -0
  43. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +2 -0
  44. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
  45. data/app/pb_kits/playbook/pb_dialog/_close_icon.jsx +23 -0
  46. data/app/pb_kits/playbook/pb_dialog/_dialog.html.erb +10 -0
  47. data/app/pb_kits/playbook/pb_dialog/_dialog.jsx +142 -0
  48. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +133 -0
  49. data/app/pb_kits/playbook/pb_dialog/_dialog_context.jsx +3 -0
  50. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_body.jsx +21 -0
  51. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_footer.jsx +36 -0
  52. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.jsx +68 -0
  53. data/app/pb_kits/playbook/pb_dialog/dialog.rb +47 -0
  54. data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +23 -0
  55. data/app/pb_kits/playbook/pb_dialog/dialog_header.rb +31 -0
  56. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.jsx +53 -0
  57. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.md +2 -0
  58. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx +27 -0
  59. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.jsx +27 -0
  60. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.md +2 -0
  61. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_separators.jsx +119 -0
  62. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_separators.md +2 -0
  63. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.jsx +28 -0
  64. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.md +2 -0
  65. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx +93 -0
  66. data/app/pb_kits/playbook/pb_dialog/docs/example.yml +10 -0
  67. data/app/pb_kits/playbook/pb_dialog/docs/index.js +6 -0
  68. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  69. data/app/pb_kits/playbook/pb_form/form_builder.rb +4 -2
  70. data/app/pb_kits/playbook/pb_form/form_builder/action_area.rb +14 -7
  71. data/app/pb_kits/playbook/pb_form/form_with.rb +0 -1
  72. data/app/pb_kits/playbook/pb_form/simple_form.html.erb +2 -4
  73. data/app/pb_kits/playbook/pb_form/simple_form.rb +4 -0
  74. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +2 -0
  75. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +1 -1
  76. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +1 -1
  77. data/app/pb_kits/playbook/react_rails_kits.js +4 -0
  78. data/lib/playbook/version.rb +2 -1
  79. metadata +35 -8
  80. data/app/pb_kits/playbook/pb_form/form_builder/action_area.html.erb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6d260fd8cb3c808cd647ea9150feb6c68ddaefef55e69cdb28986d8689ea7ad
4
- data.tar.gz: be549c62b03d8e89c5746a8cfeb4ccceedf4da2dbe7e1ff27dc609c2d574224b
3
+ metadata.gz: 30941eb0f16c5ea56d646c08cdcdcd5338423bc2d09787995ec11d82725a5cf5
4
+ data.tar.gz: b31ecc30e83182a59de76eeba28a6973b0f9b5dcea13d8c37fabc9959ee0fe18
5
5
  SHA512:
6
- metadata.gz: d3d1a839484d63aafb17d2e2c03daa56781bae403120e652dc5d20af205c857d92c0e2ef2a6b9116dad6f19fb1514f657e949d774ab096ed13d6bcf14566097e
7
- data.tar.gz: a57ea0a32d351f774cdf73ef1fe572199b7207be7e1cf863538c09d68617ce9d3b352d34a111695b3a2b91f93c1fbb9c73775a08e6254d5321c878a14323e02b
6
+ metadata.gz: 0cd98f212aaee69b433a737a3fb49520a8d4d48d2f0f32268c493c14da2672b9808910e11011d11ee883bee8b0756252c43c0b146016ad490598d70b904f522f
7
+ data.tar.gz: 6e8177d180817e06d691f83e377d3a63f93bc367bcb1af0fe051fedc2735a8445142faecd2fab8418fda777d1f243637f8859c36cd2b2cdc270355cc2fe5a063
@@ -25,6 +25,7 @@
25
25
  @import 'pb_date_stacked/date_stacked';
26
26
  @import 'pb_date_time_stacked/date_time_stacked';
27
27
  @import 'pb_date_year_stacked/date_year_stacked';
28
+ @import 'pb_dialog/dialog';
28
29
  @import 'pb_distribution_bar/distribution_bar';
29
30
  @import 'pb_file_upload/file_upload';
30
31
  @import 'pb_filter/filter';
@@ -16,6 +16,7 @@ kits:
16
16
  - gauge
17
17
  - legend
18
18
  - line_graph
19
+ - dialog
19
20
  - filter
20
21
  - fixed_confirmation_toast
21
22
  - flex
@@ -47,7 +48,6 @@ kits:
47
48
  - multiple_users
48
49
  - multiple_users_stacked
49
50
  - nav
50
- - online_status
51
51
  - tags:
52
52
  - badge
53
53
  - hashtag
@@ -96,3 +96,4 @@ kits:
96
96
  - weekday_stacked
97
97
  - user
98
98
  - user_badge
99
+
@@ -29,6 +29,7 @@ export DateStacked from './pb_date_stacked/_date_stacked.jsx'
29
29
  export DateTime from './pb_date_time/_date_time.jsx'
30
30
  export DateTimeStacked from './pb_date_time_stacked/_date_time_stacked.jsx'
31
31
  export DateYearStacked from './pb_date_year_stacked/_date_year_stacked.jsx'
32
+ export Dialog from './pb_dialog/_dialog.jsx'
32
33
  export DistributionBar from './pb_distribution_bar/_distribution_bar.jsx'
33
34
  export FileUpload from './pb_file_upload/_file_upload.jsx'
34
35
  export Filter from './pb_filter/_filter.jsx'
@@ -15,6 +15,7 @@ type AvatarProps = {
15
15
  data?: object,
16
16
  dark?: boolean,
17
17
  id?: string,
18
+ imageAlt?: string,
18
19
  imageUrl: string,
19
20
  name: string,
20
21
  size?: "md" | "lg" | "sm" | "xl" | "xs",
@@ -27,7 +28,18 @@ const firstTwoInitials = (name) =>
27
28
  .substring(0, 2)
28
29
 
29
30
  const Avatar = (props: AvatarProps) => {
30
- const { aria = {}, className, data = {}, name = null, id = '', imageUrl, size = 'md', status = null, dark = false } = props
31
+ const {
32
+ aria = {},
33
+ className,
34
+ data = {},
35
+ name = null,
36
+ id = '',
37
+ imageAlt = '',
38
+ imageUrl,
39
+ size = 'md',
40
+ status = null,
41
+ dark = false,
42
+ } = props
31
43
  const dataProps = buildDataProps(data)
32
44
  const ariaProps = buildAriaProps(aria)
33
45
  const classes = classnames(
@@ -55,7 +67,7 @@ const Avatar = (props: AvatarProps) => {
55
67
  >
56
68
  <If condition={imageUrl && !error}>
57
69
  <Image
58
- alt={name}
70
+ alt={imageAlt}
59
71
  onError={handleError}
60
72
  url={imageUrl}
61
73
  />
@@ -4,7 +4,7 @@
4
4
  class: object.classname,
5
5
  aria: object.aria) do %>
6
6
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
7
- <%= pb_rails("image", props: { url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
7
+ <%= pb_rails("image", props: { alt: object.image_alt, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
8
8
  <% end %>
9
9
  <%= pb_rails("online_status", props: object.online_status_props) if object.status %>
10
10
  <% end %>
@@ -3,8 +3,11 @@
3
3
  module Playbook
4
4
  module PbAvatar
5
5
  class Avatar < Playbook::KitBase
6
- prop :image_url
7
- prop :name, default: ""
6
+ prop :image_url, type: Playbook::Props::String
7
+ prop :image_alt, type: Playbook::Props::String,
8
+ default: ""
9
+ prop :name, type: Playbook::Props::String,
10
+ default: ""
8
11
  prop :size, type: Playbook::Props::Enum,
9
12
  values: %w[xs sm md base lg xl],
10
13
  default: "md"
@@ -5,23 +5,26 @@ import Avatar from './_avatar'
5
5
 
6
6
  const imageUrl = 'https://randomuser.me/api/portraits/men/44.jpg',
7
7
  testId = 'tjohnson',
8
- name = 'Terry Johnson'
8
+ name = 'Terry Johnson',
9
+ imageAlt = 'Terry Johnson Standing'
9
10
 
10
11
  test('loads the given image url and name', () => {
11
12
  render(
12
13
  <Avatar
13
14
  data={{ testid: testId }}
15
+ imageAlt={imageAlt}
14
16
  imageUrl={imageUrl}
15
17
  name={name}
16
18
  />
17
19
  )
18
20
 
19
21
  const kit = screen.getByTestId(testId)
20
- const image = screen.getByAltText(name)
22
+ const image = screen.getByAltText(imageAlt)
21
23
  const initials = name.split(/\s/)[0].substr(0, 1) + name.split(/\s/)[1].substr(0, 1)
22
24
 
23
25
  expect(kit).toHaveClass('pb_avatar_kit_md')
24
26
  expect(kit).toHaveAttribute('data-initials', initials)
25
27
  expect(image).toHaveAttribute('data-src', imageUrl)
26
28
  expect(image).toHaveAttribute('src', imageUrl)
29
+ expect(image).toHaveAttribute('alt', imageAlt)
27
30
  })
@@ -1,6 +1,7 @@
1
1
  <%= pb_rails("avatar", props: {
2
2
  name: "Terry Johnson",
3
3
  size: "xs",
4
+ image_alt: "Terry Johnson Standing",
4
5
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
5
6
  status: "online"
6
7
  }) %>
@@ -10,6 +11,7 @@
10
11
  <%= pb_rails("avatar", props: {
11
12
  name: "Terry Johnson",
12
13
  size: "sm",
14
+ image_alt: "Terry Johnson Standing",
13
15
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
14
16
  status: "away"
15
17
  }) %>
@@ -19,6 +21,7 @@
19
21
  <%= pb_rails("avatar", props: {
20
22
  name: "Terry Johnson",
21
23
  size: "md",
24
+ image_alt: "Terry Johnson Standing",
22
25
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
23
26
  status: "offline"
24
27
  }) %>
@@ -28,6 +31,7 @@
28
31
  <%= pb_rails("avatar", props: {
29
32
  name: "Terry Johnson",
30
33
  size: "lg",
34
+ image_alt: "Terry Johnson Standing",
31
35
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
32
36
  status: "online"
33
37
  }) %>
@@ -37,6 +41,7 @@
37
41
  <%= pb_rails("avatar", props: {
38
42
  name: "Terry Johnson",
39
43
  size: "xl",
44
+ image_alt: "Terry Johnson Standing",
40
45
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
41
46
  status: "away"
42
47
  }) %>
@@ -5,6 +5,7 @@ const AvatarDefault = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Avatar
8
+ imageAlt="Terry Johnson Standing"
8
9
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
9
10
  name="Terry Johnson"
10
11
  size="xs"
@@ -13,6 +14,7 @@ const AvatarDefault = (props) => {
13
14
  />
14
15
  <br />
15
16
  <Avatar
17
+ imageAlt="Terry Johnson Standing"
16
18
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
17
19
  name="Terry Johnson"
18
20
  size="sm"
@@ -21,6 +23,7 @@ const AvatarDefault = (props) => {
21
23
  />
22
24
  <br />
23
25
  <Avatar
26
+ imageAlt="Terry Johnson Standing"
24
27
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
25
28
  name="Terry Johnson"
26
29
  size="md"
@@ -29,6 +32,7 @@ const AvatarDefault = (props) => {
29
32
  />
30
33
  <br />
31
34
  <Avatar
35
+ imageAlt="Terry Johnson Standing"
32
36
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
33
37
  name="Terry Johnson"
34
38
  size="lg"
@@ -37,6 +41,7 @@ const AvatarDefault = (props) => {
37
41
  />
38
42
  <br />
39
43
  <Avatar
44
+ imageAlt="Terry Johnson Standing"
40
45
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
41
46
  name="Terry Johnson"
42
47
  size="xl"
@@ -1,6 +1,7 @@
1
1
  <%= pb_rails("avatar", props: {
2
2
  name: "Terry Johnson",
3
3
  size: "sm",
4
+ image_alt: "Terry Johnson Status",
4
5
  image_url: "https://randomuser.me/api/portraits/men/44.jpg"
5
6
  }) %>
6
7
 
@@ -9,6 +10,7 @@
9
10
  <%= pb_rails("avatar", props: {
10
11
  name: "Terry Johnson",
11
12
  size: "sm",
13
+ image_alt: "Terry Johnson Online",
12
14
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
13
15
  status: "online"
14
16
  }) %>
@@ -18,6 +20,7 @@
18
20
  <%= pb_rails("avatar", props: {
19
21
  name: "Terry Johnson",
20
22
  size: "sm",
23
+ image_alt: "Terry Johnson Away",
21
24
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
22
25
  status: "away"
23
26
  }) %>
@@ -27,6 +30,7 @@
27
30
  <%= pb_rails("avatar", props: {
28
31
  name: "Terry Johnson",
29
32
  size: "sm",
33
+ image_alt: "Terry Johnson Offline",
30
34
  image_url: "https://randomuser.me/api/portraits/men/44.jpg",
31
35
  status: "offline"
32
36
  }) %>
@@ -5,6 +5,7 @@ const AvatarStatus = (props) => {
5
5
  return (
6
6
  <>
7
7
  <Avatar
8
+ imageAlt="Terry Johnson Status"
8
9
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
9
10
  name="Terry Johnson"
10
11
  size="sm"
@@ -14,6 +15,7 @@ const AvatarStatus = (props) => {
14
15
  <br />
15
16
 
16
17
  <Avatar
18
+ imageAlt="Terry Johnson Online"
17
19
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
18
20
  name="Terry Johnson"
19
21
  size="sm"
@@ -24,6 +26,7 @@ const AvatarStatus = (props) => {
24
26
  <br />
25
27
 
26
28
  <Avatar
29
+ imageAlt="Terry Johnson Away"
27
30
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
28
31
  name="Terry Johnson"
29
32
  size="sm"
@@ -34,6 +37,7 @@ const AvatarStatus = (props) => {
34
37
  <br />
35
38
 
36
39
  <Avatar
40
+ imageAlt="Terry Johnson Offline"
37
41
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
38
42
  name="Terry Johnson"
39
43
  size="sm"
@@ -15,10 +15,12 @@ import { globalProps } from '../utilities/globalProps.js'
15
15
  type AvatarActionButtonProps = {
16
16
  action?: string,
17
17
  aria: Object,
18
+ linkAriaLabel?: string,
18
19
  className?: string,
19
20
  dark?: boolean,
20
21
  data?: Object,
21
22
  id?: string,
23
+ imageAlt?: string,
22
24
  imageUrl?: string,
23
25
  linkUrl?: string,
24
26
  name?: string,
@@ -31,10 +33,12 @@ const AvatarActionButton = (props: AvatarActionButtonProps) => {
31
33
  const {
32
34
  action = 'add',
33
35
  aria = {},
36
+ linkAriaLabel,
34
37
  className,
35
38
  dark = false,
36
39
  data = {},
37
40
  id,
41
+ imageAlt = '',
38
42
  imageUrl,
39
43
  linkUrl,
40
44
  name,
@@ -67,10 +71,12 @@ const AvatarActionButton = (props: AvatarActionButtonProps) => {
67
71
  id={id}
68
72
  >
69
73
  <a
74
+ aria-label={linkAriaLabel}
70
75
  href={linkUrl}
71
76
  onClick={onClick}
72
77
  >
73
78
  <Avatar
79
+ imageAlt={imageAlt}
74
80
  imageUrl={imageUrl}
75
81
  name={name}
76
82
  size={size}
@@ -14,11 +14,12 @@
14
14
  <% end %>
15
15
  <% end %>
16
16
 
17
- <%= link_to object.link_url, id: object.tooltip_id do %>
17
+ <%= link_to object.link_url, id: object.tooltip_id, 'aria-label': object.link_aria_label do %>
18
18
  <%= pb_rails("avatar", props: {
19
19
  dark: object.dark,
20
20
  name: object.name,
21
21
  size: object.size,
22
+ image_alt: object.image_alt,
22
23
  image_url: object.image_url,
23
24
  class: "avatar_action"
24
25
  }) %>
@@ -5,6 +5,8 @@ module Playbook
5
5
  class AvatarActionButton < Playbook::KitBase
6
6
  prop :action, type: Playbook::Props::String,
7
7
  default: "add"
8
+ prop :link_aria_label, type: Playbook::Props::String
9
+ prop :image_alt, type: Playbook::Props::String
8
10
  prop :image_url, type: Playbook::Props::String
9
11
  prop :link_url, type: Playbook::Props::String, default: "#"
10
12
  prop :tooltip_text, type: Playbook::Props::String
@@ -1,13 +1,17 @@
1
1
  <div class="pb--doc-demo-row">
2
2
 
3
3
  <%= pb_rails("avatar_action_button", props: {
4
+ link_aria_label: "Add Sophia Carden",
4
5
  name: "Sophia Carden",
6
+ image_alt: "Add Sophia Carden",
5
7
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
6
8
  action: "add",
7
9
  }) %>
8
10
 
9
11
  <%= pb_rails("avatar_action_button", props: {
12
+ link_aria_label: "Remove Sophia Carden",
10
13
  name: "Sophia Carden",
14
+ image_alt: "Remove Sophia Carden",
11
15
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
12
16
  action: "remove",
13
17
  }) %>
@@ -5,13 +5,17 @@ const AvatarActionButtonActions = (props) => (
5
5
  <div className="pb--doc-demo-row">
6
6
  <AvatarActionButton
7
7
  action="add"
8
+ imageAlt="Add Sophia Carden"
8
9
  imageUrl="https://randomuser.me/api/portraits/women/8.jpg"
10
+ linkAriaLabel="Add Sophia Carden"
9
11
  name="Sophia Carden"
10
12
  {...props}
11
13
  />
12
14
  <AvatarActionButton
13
15
  action="remove"
16
+ imageAlt="Remove Sophia Carden"
14
17
  imageUrl="https://randomuser.me/api/portraits/women/8.jpg"
18
+ linkAriaLabel="Remove Sophia Carden"
15
19
  name="Sophia Carden"
16
20
  {...props}
17
21
  />
@@ -1,7 +1,9 @@
1
1
  <div class="pb--doc-demo-row">
2
2
 
3
3
  <%= pb_rails("avatar_action_button", props: {
4
+ link_aria_label: "Sophia Carden",
4
5
  name: "Sophia Carden",
6
+ image_alt: "Sophia Carden",
5
7
  image_url: "https://randomuser.me/api/portraits/women/8.jpg"
6
8
  }) %>
7
9
 
@@ -4,7 +4,9 @@ import { AvatarActionButton } from '../../'
4
4
  const AvatarActionButtonDefault = (props) => (
5
5
  <div className="pb--doc-demo-row">
6
6
  <AvatarActionButton
7
+ imageAlt="Sophia Carden"
7
8
  imageUrl="https://randomuser.me/api/portraits/women/8.jpg"
9
+ linkAriaLabel="Sophia Carden"
8
10
  name="Sophia Carden"
9
11
  {...props}
10
12
  />
@@ -4,7 +4,9 @@ import { AvatarActionButton } from '../../'
4
4
  const AvatarActionButtonOnClick = (props) => (
5
5
  <div className="pb--doc-demo-row">
6
6
  <AvatarActionButton
7
+ imageAlt="Sophia Carden"
7
8
  imageUrl="https://randomuser.me/api/portraits/women/8.jpg"
9
+ linkAriaLabel="Alert Sophia Carden"
8
10
  linkUrl="https://www.google.com"
9
11
  name="Sophia Carden"
10
12
  onClick={() => alert('clicked!')}
@@ -1,9 +1,11 @@
1
1
  <div class="pb--doc-demo-row">
2
2
 
3
3
  <%= pb_rails("avatar_action_button", props: {
4
+ link_aria_label: "Alert Sophia Carden",
4
5
  name: "Sophia Carden",
5
6
  id: "clickable",
6
7
  link_url: "http://www.google.com",
8
+ image_alt: "Sophia Carden",
7
9
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
8
10
  }) %>
9
11
 
@@ -1,25 +1,33 @@
1
1
  <div class="pb--doc-demo-row">
2
2
 
3
3
  <%= pb_rails("avatar_action_button", props: {
4
+ link_aria_label: "Sophia Carden",
4
5
  name: "Sophia Carden",
6
+ image_alt: "Sophia Carden",
5
7
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
6
8
  placement: "bottom_left"
7
9
  }) %>
8
10
 
9
11
  <%= pb_rails("avatar_action_button", props: {
12
+ link_aria_label: "Sophia Carden",
10
13
  name: "Sophia Carden",
14
+ image_alt: "Sophia Carden",
11
15
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
12
16
  placement: "bottom_right"
13
17
  }) %>
14
18
 
15
19
  <%= pb_rails("avatar_action_button", props: {
20
+ link_aria_label: "Sophia Carden",
16
21
  name: "Sophia Carden",
22
+ image_alt: "Sophia Carden",
17
23
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
18
24
  placement: "top_left"
19
25
  }) %>
20
26
 
21
27
  <%= pb_rails("avatar_action_button", props: {
28
+ link_aria_label: "Sophia Carden",
22
29
  name: "Sophia Carden",
30
+ image_alt: "Sophia Carden",
23
31
  image_url: "https://randomuser.me/api/portraits/women/8.jpg",
24
32
  placement: "top_right"
25
33
  }) %>