playbook_ui 9.6.1 → 9.7.0.pre.alpha.a11y.btn

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_button/_button.jsx +8 -19
  3. data/app/pb_kits/playbook/pb_button/button.rb +6 -4
  4. data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.html.erb +1 -1
  5. data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.jsx +1 -1
  6. data/app/pb_kits/playbook/pb_button/docs/_button_link.html.erb +3 -3
  7. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +3 -0
  8. data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +3 -3
  9. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +3 -0
  10. data/app/pb_kits/playbook/pb_date/_date.jsx +3 -3
  11. data/app/pb_kits/playbook/pb_date/date.html.erb +2 -3
  12. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +8 -0
  13. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +10 -0
  14. data/app/pb_kits/playbook/pb_dialog/dialog_header.rb +23 -24
  15. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +1 -1
  16. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +1 -1
  17. data/app/pb_kits/playbook/pb_nav/docs/_block_nav.html.erb +41 -5
  18. data/app/pb_kits/playbook/pb_nav/docs/_block_nav.jsx +44 -6
  19. data/app/pb_kits/playbook/pb_select/_select.jsx +10 -1
  20. data/app/pb_kits/playbook/pb_select/_select.scss +27 -30
  21. data/app/pb_kits/playbook/pb_select/select.rb +5 -1
  22. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +5 -1
  24. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -13
  25. data/lib/playbook/version.rb +1 -1
  26. metadata +15 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ef80e99bb70a0a7346f50ffc0761b136be7db6bbca0dee07ff4a5cb57f3b777
4
- data.tar.gz: bb29fb62353081daa6404847ef516d8069f5ea058722002fb1c4b4b392c27e39
3
+ metadata.gz: 5d02c19ea477725a33c15757d8254c21348c16e9d8e5b82b85ec08ffb7e3ac4e
4
+ data.tar.gz: 75fd3538c8760afa2dcf2818bef4e91451ca0f985044223bdd118f33c740b568
5
5
  SHA512:
6
- metadata.gz: 3358c2044123dbade10b6cf2514091030618459e77cc20e35141b33a10216e660d8a3e30fd033a28c391fae76e125f045d170dc694657cd7c32e8c2d96ee9b9e
7
- data.tar.gz: e29867a0cce06fd7c726fb5ae2033287392f94689e1adc7480ad1416e04136e67fd290102f0c712dfc26184fe326c3709dcf266119b1d96ea10d9fcca0d6fb29
6
+ metadata.gz: 70a500505fe763ab166a92613bb5d3fbf6c6c7b88d53e1727003346c8f5d0e312e629167c840ec17272a63a2cf7f0b15b7657b3b89cd0065c68eb0683a08368e
7
+ data.tar.gz: 4a1e51d54b520cb7c40f32df8fca6e2f20760b9eb09cf40092b66b50a90a14b6744e50bcaccf5cbc604708861128db5fee6e4efd777eeecfc4ed9f56ac5cb900
@@ -2,16 +2,14 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import { buildDataProps } from '../utilities/props'
5
+ import { buildAriaProps, buildDataProps } from '../utilities/props'
6
6
  import { globalProps } from '../utilities/globalProps.js'
7
7
 
8
8
  import Icon from '../pb_icon/_icon.jsx'
9
9
 
10
10
  type EventHandler = (SyntheticInputEvent<HTMLInputElement>) => void
11
11
  type ButtonPropTypes = {
12
- aria?: {
13
- label: string,
14
- },
12
+ aria?: object,
15
13
  children?: array<React.ReactChild>,
16
14
  className?: string | array<string>,
17
15
  data?: object,
@@ -55,20 +53,9 @@ const buttonClassName = (props: ButtonPropTypes) => {
55
53
  return className
56
54
  }
57
55
 
58
- const buttonAriaProps = (props: ButtonPropTypes) => {
59
- const { aria } = props
60
- if (typeof aria !== 'object') return {}
61
- const { label } = aria
62
-
63
- const ariaProps = {}
64
-
65
- if (label !== null) ariaProps['aria-label'] = label
66
-
67
- return ariaProps
68
- }
69
-
70
56
  const Button = (props: ButtonPropTypes) => {
71
57
  const {
58
+ aria = {},
72
59
  children,
73
60
  className,
74
61
  data = {},
@@ -84,7 +71,7 @@ const Button = (props: ButtonPropTypes) => {
84
71
  value,
85
72
  } = props
86
73
 
87
- const buttonAria = buttonAriaProps(props)
74
+ const ariaProps = buildAriaProps(aria)
88
75
  const dataProps = buildDataProps(data)
89
76
  const css = classnames(
90
77
  buttonClassName(props),
@@ -114,11 +101,12 @@ const Button = (props: ButtonPropTypes) => {
114
101
  return (
115
102
  <If condition={link !== null}>
116
103
  <a
117
- {...buttonAria}
104
+ {...ariaProps}
118
105
  {...dataProps}
119
106
  className={css}
120
107
  href={link}
121
108
  id={id}
109
+ role="link"
122
110
  target={newWindow ? '_blank' : null}
123
111
  >
124
112
  <If condition={loading}>{loadingIcon}</If>
@@ -126,12 +114,13 @@ const Button = (props: ButtonPropTypes) => {
126
114
  </a>
127
115
  <Else />
128
116
  <button
129
- {...buttonAria}
117
+ {...ariaProps}
130
118
  {...dataProps}
131
119
  className={css}
132
120
  disabled={disabled}
133
121
  id={id}
134
122
  onClick={onClick}
123
+ role="button"
135
124
  type={htmlType}
136
125
  value={value}
137
126
  >
@@ -21,11 +21,12 @@ module Playbook
21
21
 
22
22
  def options
23
23
  {
24
- id: id,
25
- data: data,
24
+ aria: aria,
26
25
  class: classname,
26
+ data: data,
27
27
  disabled: disabled,
28
- aria: aria,
28
+ id: id,
29
+ role: "button",
29
30
  type: type,
30
31
  value: value,
31
32
  }.compact
@@ -34,7 +35,8 @@ module Playbook
34
35
  def link_options
35
36
  options.merge(
36
37
  href: link,
37
- target: new_window ? "_blank" : "_self"
38
+ role: "link",
39
+ target: new_window ? "_blank" : "_self",
38
40
  )
39
41
  end
40
42
 
@@ -1 +1 @@
1
- <%= pb_rails("button", props: { text: "Button with ARIA", aria: {label: "button"}, tag: "a", link: "http://google.com" }) %>
1
+ <%= pb_rails("button", props: { text: "Button with ARIA", aria: {label: "Go to Google"}, tag: "a", link: "http://google.com" }) %>
@@ -4,7 +4,7 @@ import { Button } from '../../'
4
4
  const ButtonAccessibility = (props) => (
5
5
  <div>
6
6
  <Button
7
- aria={{ label: 'button' }}
7
+ aria={{ label: 'Go to Google' }}
8
8
  link="https://google.com"
9
9
  tag="a"
10
10
  text="Button with ARIA"
@@ -1,3 +1,3 @@
1
- <%= pb_rails("button", props: { text: "A Tag Button", tag: "a", link: "http://google.com" }) %>
2
- <%= pb_rails("button", props: { text: "Open in new Window", new_window: true, link: "http://google.com" }) %>
3
- <%= pb_rails("button", props: { text: "A Tag Button Disabled", disabled: true, link: "http://google.com" }) %>
1
+ <%= pb_rails("button", props: { text: "A Tag Button", aria: { label: "Link to Google" }, tag: "a", link: "http://google.com" }) %>
2
+ <%= pb_rails("button", props: { text: "Open in new Window", aria: { label: "Link to Google in new window" }, new_window: true, link: "http://google.com" }) %>
3
+ <%= pb_rails("button", props: { text: "A Tag Button Disabled", aria: { label: "Disabled link to Google" }, disabled: true, link: "http://google.com" }) %>
@@ -4,12 +4,14 @@ import { Button } from '../../'
4
4
  const ButtonLink = (props) => (
5
5
  <div>
6
6
  <Button
7
+ aria={{ label: 'Link to Google' }}
7
8
  link="https://google.com"
8
9
  text="A Tag Button"
9
10
  {...props}
10
11
  />
11
12
  {' '}
12
13
  <Button
14
+ aria={{ label: 'Link to Google in new window' }}
13
15
  link="https://google.com"
14
16
  newWindow
15
17
  text="Open in New Window"
@@ -17,6 +19,7 @@ const ButtonLink = (props) => (
17
19
  />
18
20
  {' '}
19
21
  <Button
22
+ aria={{ label: 'Disabled link to Google' }}
20
23
  disabled
21
24
  link="https://google.com"
22
25
  text="A Tag Button Disabled"
@@ -1,3 +1,3 @@
1
- <%= pb_rails("button", props: { text: "Button Primary", loading: true }) %>
2
- <%= pb_rails("button", props: { text: "Button Primary", variant: "secondary", loading: true }) %>
3
- <%= pb_rails("button", props: { text: "Button Primary", variant: "link", loading: true }) %>
1
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", loading: true }) %>
2
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", variant: "secondary", loading: true }) %>
3
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", variant: "link", loading: true }) %>
@@ -4,12 +4,14 @@ import { Button } from '../../'
4
4
  const ButtonLoading = (props) => (
5
5
  <div>
6
6
  <Button
7
+ aria={{ label: 'Loading' }}
7
8
  loading
8
9
  text="Button Primary"
9
10
  {...props}
10
11
  />
11
12
  {' '}
12
13
  <Button
14
+ aria={{ label: 'Loading' }}
13
15
  loading
14
16
  text="Button Secondary"
15
17
  variant="secondary"
@@ -17,6 +19,7 @@ const ButtonLoading = (props) => (
17
19
  />
18
20
  {' '}
19
21
  <Button
22
+ aria={{ label: 'Loading' }}
20
23
  loading
21
24
  text="A Tag Button Disabled"
22
25
  variant="link"
@@ -95,16 +95,16 @@ const PbDate = (props: PbDateProps) => {
95
95
  <Else />
96
96
  <>
97
97
  <If condition={showIcon}>
98
- <Body
98
+ <Caption
99
99
  className="pb_icon_kit_container"
100
- color="light"
101
100
  tag="span"
102
101
  >
103
102
  <Icon
104
103
  fixedWidth
105
104
  icon="calendar-alt"
105
+ size="xs"
106
106
  />
107
- </Body>
107
+ </Caption>
108
108
  </If>
109
109
  <If condition={showDayOfWeek}>
110
110
  <Caption tag="div">
@@ -39,11 +39,10 @@
39
39
 
40
40
  <!-- icon -->
41
41
  <% if object.show_icon %>
42
- <%= pb_rails("body", props: {
43
- color: "light",
42
+ <%= pb_rails("caption", props: {
44
43
  tag: "div",
45
44
  }) do %>
46
- <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
45
+ <%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true, size: 'xs' }) %>
47
46
  <% end %>
48
47
  <% end %>
49
48
 
@@ -1,4 +1,12 @@
1
1
  <div>
2
+ <%= pb_rails("date", props: {
3
+ date: DateTime.now,
4
+ show_icon: true,
5
+ size: "sm"
6
+ }) %>
7
+
8
+ <br>
9
+
2
10
  <%= pb_rails("date", props: {
3
11
  date: DateTime.now,
4
12
  }) %>
@@ -4,6 +4,16 @@ import { Date as FormattedDate } from '../..'
4
4
  const DateVariants = (props) => {
5
5
  return (
6
6
  <div>
7
+ <FormattedDate
8
+ showIcon
9
+ size="sm"
10
+ value="1995-12-25"
11
+ {...props}
12
+ />
13
+
14
+ <br />
15
+ <br />
16
+
7
17
  <FormattedDate
8
18
  value="1995-12-25"
9
19
  {...props}
@@ -1,31 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- module PbDialog
5
- class DialogHeader
6
- include Playbook::Props
7
-
8
- partial "pb_dialog/child_kits/dialog_header"
4
+ module PbDialog
5
+ class DialogHeader
6
+ include Playbook::Props
9
7
 
10
- prop :closeable, type: Playbook::Props::Boolean, default: true
11
- prop :padding
12
- prop :separator, type: Playbook::Props::Boolean, default: true
13
- prop :spacing
14
- prop :text
15
- prop :title
16
-
17
- def dialog_header_options
18
- {
19
- id: id,
20
- closeable: closeable,
21
- padding: padding,
22
- separator: separator,
23
- spacing: spacing,
24
- text: text,
25
- title: title,
26
- }
27
- end
8
+ partial "pb_dialog/child_kits/dialog_header"
9
+
10
+ prop :closeable, type: Playbook::Props::Boolean, default: true
11
+ prop :padding
12
+ prop :separator, type: Playbook::Props::Boolean, default: true
13
+ prop :spacing
14
+ prop :text
15
+ prop :title
16
+
17
+ def dialog_header_options
18
+ {
19
+ id: id,
20
+ closeable: closeable,
21
+ padding: padding,
22
+ separator: separator,
23
+ spacing: spacing,
24
+ text: text,
25
+ title: title,
26
+ }
28
27
  end
29
28
  end
30
29
  end
31
-
30
+ end
@@ -14,7 +14,7 @@ type FlexItemPropTypes = {
14
14
  }
15
15
 
16
16
  const FlexItem = (props: FlexItemPropTypes) => {
17
- const { children, className, fixedSize, grow, overflow = null, shrink, flex } = props
17
+ const { children, className, fixedSize, grow, overflow = null, shrink, flex = 'none' } = props
18
18
  const growClass = grow === true ? 'grow' : ''
19
19
  const flexClass = flex !== 'none' ? `flex_${flex}` : ''
20
20
  const overflowClass = overflow ? `overflow_${overflow}` : ''
@@ -16,7 +16,7 @@ $selector: ".pb_nav_list";
16
16
  list-style: none;
17
17
  }
18
18
 
19
- [class*=_title] {
19
+ [class*=pb_nav_list_title] {
20
20
  padding: 0 $space_md $space_sm;
21
21
  }
22
22
 
@@ -1,6 +1,42 @@
1
- <%= pb_rails("nav", props: {title: "Menu", link: "#"}) do %>
2
- <%= pb_rails("nav/item", props: { link: "#", active: true }) do%>Photos<% end %>
3
- <%= pb_rails("nav/item", props: { link: "#" }) do%>Music<% end %>
4
- <%= pb_rails("nav/item", props: { link: "#" }) do%>Video<% end %>
5
- <%= pb_rails("nav/item", props: { link: "#" }) do%>Files<% end %>
1
+ <%= pb_rails("nav", props: {title: "Users", link: "#"}) do %>
2
+ <%= pb_rails("nav/item", props: { link: "#", active: true }) do%>
3
+ <%= pb_rails("user", props: {
4
+ name: "Anna Black",
5
+ territory: "PHL",
6
+ title: "Remodeling Consultant",
7
+ orientation: "horizontal",
8
+ align: "left",
9
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
10
+ }) %>
11
+ <% end %>
12
+ <%= pb_rails("nav/item", props: { link: "#" }) do%>
13
+ <%= pb_rails("user", props: {
14
+ name: "Julie Hamilton",
15
+ territory: "PHL",
16
+ title: "Inside Sales Agent",
17
+ orientation: "horizontal",
18
+ align: "left",
19
+ avatar_url: "https://randomuser.me/api/portraits/women/45.jpg"
20
+ }) %>
21
+ <% end %>
22
+ <%= pb_rails("nav/item", props: { link: "#" }) do%>
23
+ <%= pb_rails("user", props: {
24
+ name: "Dennis Wilks",
25
+ territory: "PHL",
26
+ title: "Senior Remodeling Consultant",
27
+ orientation: "horizontal",
28
+ align: "left",
29
+ avatar_url: "https://randomuser.me/api/portraits/men/44.jpg"
30
+ }) %>
31
+ <% end %>
32
+ <%= pb_rails("nav/item", props: { link: "#" }) do%>
33
+ <%= pb_rails("user", props: {
34
+ name: "Ronnie Martin",
35
+ territory: "PHL",
36
+ title: "Customer Development Representative",
37
+ orientation: "horizontal",
38
+ align: "left",
39
+ avatar_url: "https://randomuser.me/api/portraits/men/46.jpg"
40
+ }) %>
41
+ <% end %>
6
42
  <% end %>
@@ -1,12 +1,12 @@
1
1
  import React from 'react'
2
- import { Nav } from '../../'
2
+ import { Nav, User } from '../../'
3
3
  import NavItem from '../_item.jsx'
4
4
 
5
5
  const BlockNav = (props) => {
6
6
  return (
7
7
  <Nav
8
8
  link="#"
9
- title="Menu"
9
+ title="Users"
10
10
  {...props}
11
11
  >
12
12
  <NavItem
@@ -14,11 +14,49 @@ const BlockNav = (props) => {
14
14
  link="#"
15
15
  {...props}
16
16
  >
17
- {'Photos'}
17
+ <User
18
+ align="left"
19
+ avatarUrl="https://randomuser.me/api/portraits/women/44.jpg"
20
+ name="Anna Black"
21
+ orientation="horizontal"
22
+ territory="PHL"
23
+ title="Remodeling Consultant"
24
+ {...props}
25
+ />
26
+ </NavItem>
27
+ <NavItem link="#">
28
+ <User
29
+ align="left"
30
+ avatarUrl="https://randomuser.me/api/portraits/women/45.jpg"
31
+ name="Julie Hamilton"
32
+ orientation="horizontal"
33
+ territory="PHL"
34
+ title="Inside Sales Agent"
35
+ {...props}
36
+ />
37
+ </NavItem>
38
+ <NavItem link="#">
39
+ <User
40
+ align="left"
41
+ avatarUrl="https://randomuser.me/api/portraits/men/44.jpg"
42
+ name="Dennis Wilks"
43
+ orientation="horizontal"
44
+ territory="PHL"
45
+ title="Senior Remodeling Consultant"
46
+ {...props}
47
+ />
48
+ </NavItem>
49
+ <NavItem link="#">
50
+ <User
51
+ align="left"
52
+ avatarUrl="https://randomuser.me/api/portraits/men/46.jpg"
53
+ name="Ronnie Martin"
54
+ orientation="horizontal"
55
+ territory="PHL"
56
+ title="Customer Development Representative"
57
+ {...props}
58
+ />
18
59
  </NavItem>
19
- <NavItem link="#">{'Music'}</NavItem>
20
- <NavItem link="#">{'Video'}</NavItem>
21
- <NavItem link="#">{'Files'}</NavItem>
22
60
  </Nav>
23
61
  )
24
62
  }
@@ -37,6 +37,8 @@ type SelectProps = {
37
37
  id?: string,
38
38
  includeBlank?: string,
39
39
  label?: string,
40
+ margin: string,
41
+ marginBottom: string,
40
42
  multiple?: boolean,
41
43
  name?: string,
42
44
  required?: boolean,
@@ -74,7 +76,14 @@ const Select = ({
74
76
  const dataProps = buildDataProps(data)
75
77
  const optionsList = createOptions(options)
76
78
 
77
- const classes = classnames(buildCss('pb_select'), globalProps(props), className)
79
+ const classes = classnames(
80
+ buildCss('pb_select'),
81
+ globalProps({
82
+ ...props,
83
+ marginBottom: props.marginBottom || props.margin || 'sm',
84
+ }),
85
+ className)
86
+
78
87
  const selectWrapperClass = classnames(buildCss('pb_select_kit_wrapper'), { error }, className)
79
88
 
80
89
  return (
@@ -4,7 +4,6 @@
4
4
  @import "../tokens/colors";
5
5
 
6
6
  [class^=pb_select] {
7
- margin-bottom: $space_sm;
8
7
  select {
9
8
  @include pb_textarea_light;
10
9
  @include pb_body_light;
@@ -65,38 +64,36 @@
65
64
  transform: translateY(-50%);
66
65
  pointer-events: none;
67
66
  }
68
- &.dark {
69
- select {
70
- @include pb_textarea_dark;
71
- @include pb_body_light_dark;
72
- background: none;
73
- background-color: rgba($white,.10);
74
- box-shadow: inset 0 -11px 20px rgba($white, 0.05);
75
- text-shadow: 0 0 0 $text_dk_default;
76
- padding-right: $space_xl;
77
- white-space: nowrap;
78
- overflow: hidden;
79
- text-overflow: ellipsis;
80
- @media (hover:hover) {
81
- &:hover, &:active, &:focus {
82
- background-color: rgba($white,.05);
83
- }
84
- }
85
- &:focus{
86
- border-color: $active_dark;
67
+ }
68
+
69
+ [class^=pb_select].dark {
70
+ select {
71
+ @include pb_textarea_dark;
72
+ @include pb_body_light_dark;
73
+ background: none;
74
+ background-color: rgba($white,.10);
75
+ box-shadow: inset 0 -11px 20px rgba($white, 0.05);
76
+ text-shadow: 0 0 0 $text_dk_default;
77
+ padding-right: $space_xl;
78
+ white-space: nowrap;
79
+ overflow: hidden;
80
+ text-overflow: ellipsis;
81
+ @media (hover:hover) {
82
+ &:hover, &:active, &:focus {
83
+ background-color: rgba($white,.05);
87
84
  }
88
85
  }
89
- .pb_select_kit_caret {
90
- color: $white;
91
- }
92
- .pb_select_kit_wrapper {
93
- &.error {
94
- .pb_select_kit_wrapper {
95
- > select:first-child {
96
- border-color: $error_dark;
97
- }
86
+ }
87
+ .pb_select_kit_caret {
88
+ color: $white;
89
+ }
90
+ .pb_select_kit_wrapper {
91
+ &.error {
92
+ .pb_select_kit_wrapper {
93
+ > select:first-child {
94
+ border-color: $error_dark;
98
95
  }
99
96
  }
100
97
  }
101
98
  }
102
- }
99
+ }
@@ -17,13 +17,17 @@ module Playbook
17
17
  prop :required, type: Playbook::Props::Boolean, default: false
18
18
 
19
19
  def classname
20
- generate_classname("pb_select")
20
+ generate_classname("pb_select", select_margin_bottom, separator: " ")
21
21
  end
22
22
 
23
23
  def select_wrapper_class
24
24
  "pb_select_kit_wrapper" + error_class
25
25
  end
26
26
 
27
+ def select_margin_bottom
28
+ margin.present? || margin_bottom.present? ? nil : "mb_sm"
29
+ end
30
+
27
31
  def options_to_array
28
32
  options.map { |option| [option[:value_text] || option[:value], option[:value]] }
29
33
  end
@@ -8,7 +8,7 @@
8
8
  <% end %>
9
9
 
10
10
  <%= pb_rails("body") do %>
11
- When you make a selection, you will see it apear in the list below
11
+ When you make a selection, you will see it appear in the list below
12
12
  <% end %>
13
13
 
14
14
  <div data-selected-option></div>
@@ -7,7 +7,11 @@
7
7
  class: object.classname) do %>
8
8
  <div class="pb_typeahead_wrapper">
9
9
  <div class="pb_typeahead_loading_indicator" data-pb-typeahead-kit-loading-indicator>
10
- <i class="far fa-spinner fa-spin"></i>
10
+ <%= pb_rails("icon", props: {
11
+ icon: "spinner",
12
+ pulse: true,
13
+ fixed_width: true,
14
+ }) %>
11
15
  </div>
12
16
  <%= pb_rails("text_input", props: {
13
17
  type: "search",
@@ -3,8 +3,7 @@
3
3
  module Playbook
4
4
  module PbTypeahead
5
5
  class Typeahead < Playbook::KitBase
6
- prop :async, type: Playbook::Props::Boolean,
7
- default: false
6
+ prop :async, type: Playbook::Props::Boolean, default: false
8
7
  prop :default_options, type: Playbook::Props::HashArray, default: []
9
8
  prop :get_option_label
10
9
  prop :get_option_value
@@ -13,9 +12,7 @@ module Playbook
13
12
  prop :load_options
14
13
  prop :name
15
14
  prop :options, type: Playbook::Props::HashArray, default: []
16
- prop :pills, type: Playbook::Props::Boolean,
17
- default: false
18
-
15
+ prop :pills, type: Playbook::Props::Boolean, default: false
19
16
  prop :placeholder
20
17
  prop :search_term_minimum_length, default: 3
21
18
  prop :search_debounce_timeout, default: 250
@@ -45,14 +42,9 @@ module Playbook
45
42
  placeholder: placeholder,
46
43
  }
47
44
 
48
- base_options.merge!({getOptionLabel: get_option_label}) if get_option_label.present?
49
- base_options.merge!({getOptionValue: get_option_value}) if get_option_value.present?
50
-
51
- base_options.merge!({
52
- async: true,
53
- loadOptions: load_options,
54
- }) if async
55
-
45
+ base_options.merge!({ getOptionLabel: get_option_label }) if get_option_label.present?
46
+ base_options.merge!({ getOptionValue: get_option_value }) if get_option_value.present?
47
+ base_options.merge!({ async: true, loadOptions: load_options }) if async
56
48
  base_options
57
49
  end
58
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "9.6.1"
4
+ VERSION = "9.7.0.pre.alpha.a11y.btn"
5
5
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.6.1
4
+ version: 9.7.0.pre.alpha.a11y.btn
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
8
8
  - Power Devs
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-04-16 00:00:00.000000000 Z
12
+ date: 2021-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -285,22 +285,22 @@ dependencies:
285
285
  name: rspec-rails
286
286
  requirement: !ruby/object:Gem::Requirement
287
287
  requirements:
288
- - - ">="
289
- - !ruby/object:Gem::Version
290
- version: 3.8.0
291
288
  - - "~>"
292
289
  - !ruby/object:Gem::Version
293
290
  version: '3.8'
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ version: 3.8.0
294
294
  type: :development
295
295
  prerelease: false
296
296
  version_requirements: !ruby/object:Gem::Requirement
297
297
  requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- version: 3.8.0
301
298
  - - "~>"
302
299
  - !ruby/object:Gem::Version
303
300
  version: '3.8'
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: 3.8.0
304
304
  - !ruby/object:Gem::Dependency
305
305
  name: rspec-html-matchers
306
306
  requirement: !ruby/object:Gem::Requirement
@@ -2115,7 +2115,7 @@ homepage: http://playbook.powerapp.cloud
2115
2115
  licenses:
2116
2116
  - MIT
2117
2117
  metadata: {}
2118
- post_install_message:
2118
+ post_install_message:
2119
2119
  rdoc_options: []
2120
2120
  require_paths:
2121
2121
  - lib
@@ -2126,12 +2126,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
2126
2126
  version: '0'
2127
2127
  required_rubygems_version: !ruby/object:Gem::Requirement
2128
2128
  requirements:
2129
- - - ">="
2129
+ - - ">"
2130
2130
  - !ruby/object:Gem::Version
2131
- version: '0'
2131
+ version: 1.3.1
2132
2132
  requirements: []
2133
- rubygems_version: 3.0.3
2134
- signing_key:
2133
+ rubyforge_project:
2134
+ rubygems_version: 2.7.3
2135
+ signing_key:
2135
2136
  specification_version: 4
2136
2137
  summary: Playbook Design System
2137
2138
  test_files: []