playbook_ui 12.2.0 → 12.3.0.pre.alpha.patchtest1

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/_playbook.scss +3 -0
  3. data/app/pb_kits/playbook/data/menu.yml +1 -0
  4. data/app/pb_kits/playbook/index.js +3 -2
  5. data/app/pb_kits/playbook/pb_button/_button.scss +0 -5
  6. data/app/pb_kits/playbook/pb_button/_button.tsx +4 -0
  7. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +39 -4
  8. data/app/pb_kits/playbook/pb_button/button.rb +2 -0
  9. data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.jsx +1 -0
  10. data/app/pb_kits/playbook/pb_button/docs/_button_block_content.jsx +1 -0
  11. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +4 -0
  12. data/app/pb_kits/playbook/pb_button/docs/_button_form.jsx +1 -0
  13. data/app/pb_kits/playbook/pb_button/docs/_button_full_width.jsx +1 -0
  14. data/app/pb_kits/playbook/pb_button/docs/_button_icon_options.html.erb +2 -2
  15. data/app/pb_kits/playbook/pb_button/docs/_button_icon_options.jsx +4 -0
  16. data/app/pb_kits/playbook/pb_button/docs/_button_link.html.erb +3 -3
  17. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +6 -0
  18. data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +3 -3
  19. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +6 -0
  20. data/app/pb_kits/playbook/pb_button/docs/_button_options.jsx +1 -0
  21. data/app/pb_kits/playbook/pb_button/docs/_button_size.html.erb +3 -3
  22. data/app/pb_kits/playbook/pb_button/docs/_button_size.jsx +6 -0
  23. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +26 -19
  24. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +24 -0
  25. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +10 -2
  26. data/app/pb_kits/playbook/pb_map/_map.scss +8 -0
  27. data/app/pb_kits/playbook/pb_map/_map.tsx +40 -0
  28. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +52 -0
  29. data/app/pb_kits/playbook/pb_map/docs/_map_default.md +13 -0
  30. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +64 -0
  31. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.md +8 -0
  32. data/app/pb_kits/playbook/pb_map/docs/example.yml +7 -0
  33. data/app/pb_kits/playbook/pb_map/docs/index.js +2 -0
  34. data/app/pb_kits/playbook/pb_map/map.test.jsx +17 -0
  35. data/app/pb_kits/playbook/pb_progress_simple/{_progress_simple.jsx → _progress_simple.tsx} +7 -5
  36. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.test.js +120 -0
  37. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +4 -9
  38. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +11 -2
  39. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +0 -2
  40. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +95 -0
  41. data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx +1 -1
  42. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +1 -0
  43. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.html.erb +19 -0
  44. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx +39 -0
  45. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.md +1 -0
  46. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -0
  47. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
  48. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
  49. data/app/pb_kits/playbook/playbook-doc.js +2 -0
  50. data/app/pb_kits/playbook/tokens/_colors.scss +3 -1
  51. data/app/pb_kits/playbook/utilities/_focus.scss +12 -0
  52. data/lib/playbook/version.rb +2 -2
  53. metadata +20 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74b102cf8c343860ef1b90352dabf96dfa1fee84c9e4912a287e6fe6a32dcabe
4
- data.tar.gz: d25cb119dd297fe0512df07650aa237cf5be8eb80f2e79d32480da547c599b2c
3
+ metadata.gz: '0928d7277d3ae8bafae0638314ca0e5b76d4fd09e8c402e281644196b7917903'
4
+ data.tar.gz: f62293859cddfd9bfe8493e9fd3a40a7515881e99262a329e8914390b99a632c
5
5
  SHA512:
6
- metadata.gz: a58a8f1cce99f05841d01f1a3fc64dcfb40121ffea77b1bead4c1cb6b83c2f6edd89a61a62df302452ea0defac80c070484d26fa05024ed36a35139152c56c84
7
- data.tar.gz: 17e5d846daf75ea0ba6bb333e2a464910dd18435ed7414c69a60dd07ff9845a9404a1d3b2dd9aa1c46ba49a8d67d9295813272b9b0cb789bbc8cae4cef65c6f1
6
+ metadata.gz: afba11e867700ad41542a1e6a6dbff294bbe0d56dbee36ea7484cce52b8c8fc7575dc08c4f63fee38518833102abcc1815b57a4d2b71276291a1a5058a221ea7
7
+ data.tar.gz: bb698f0b069b59bfac04f05235f1a3a0f73b1ca3fe7e0c00613ba213a398307ee7666f29820f9249ef410ff48395c2b3674bf18d2815fd81f7e23d1aac14d86c
@@ -51,6 +51,7 @@
51
51
  @import 'pb_line_graph/line_graph';
52
52
  @import 'pb_list/list';
53
53
  @import 'pb_loading_inline/loading_inline';
54
+ @import 'pb_map/map';
54
55
  @import 'pb_message/message';
55
56
  @import 'pb_multiple_users/multiple_users';
56
57
  @import 'pb_multiple_users_stacked/multiple_users_stacked';
@@ -104,3 +105,5 @@
104
105
  @import './utilities/line_height';
105
106
  @import './utilities/display';
106
107
  @import './utilities/flexbox';
108
+ @import './utilities/focus';
109
+
@@ -55,6 +55,7 @@ kits:
55
55
  - lightbox
56
56
  - list
57
57
  - loading_inline
58
+ - map
58
59
  - nav
59
60
  - tags:
60
61
  - badge
@@ -10,8 +10,8 @@ export { default as Background } from './pb_background/_background'
10
10
  export { default as Badge } from './pb_badge/_badge'
11
11
  export { default as BarGraph } from './pb_bar_graph/_bar_graph'
12
12
  export { default as Body } from './pb_body/_body'
13
- export { default as BreadCrumbs } from './pb_bread_crumbs/_bread_crumbs'
14
13
  export { default as BreadCrumbItem } from './pb_bread_crumbs/_bread_crumb_item'
14
+ export { default as BreadCrumbs } from './pb_bread_crumbs/_bread_crumbs'
15
15
  export { default as Button } from './pb_button/_button'
16
16
  export { default as ButtonToolbar } from './pb_button_toolbar/_button_toolbar'
17
17
  export { default as Caption } from './pb_caption/_caption'
@@ -53,11 +53,12 @@ export { default as LabelPill } from './pb_label_pill/_label_pill'
53
53
  export { default as LabelValue } from './pb_label_value/_label_value'
54
54
  export { default as Layout } from './pb_layout/_layout'
55
55
  export { default as Legend } from './pb_legend/_legend'
56
+ export { default as Lightbox } from './pb_lightbox/_lightbox'
56
57
  export { default as LineGraph } from './pb_line_graph/_line_graph'
57
58
  export { default as List } from './pb_list/_list'
58
- export { default as Lightbox } from './pb_lightbox/_lightbox'
59
59
  export { default as ListItem } from './pb_list/_list_item'
60
60
  export { default as LoadingInline } from './pb_loading_inline/_loading_inline'
61
+ export { default as Map} from './pb_map/_map'
61
62
  export { default as Message } from './pb_message/_message'
62
63
  export { default as MultipleUsers } from './pb_multiple_users/_multiple_users'
63
64
  export { default as MultipleUsersStacked } from './pb_multiple_users_stacked/_multiple_users_stacked'
@@ -29,11 +29,6 @@ $pb_button_sizes: (
29
29
  }
30
30
  &[class*=_link] {
31
31
  @include pb_button_link;
32
- @media (hover:hover) {
33
- &:hover {
34
- color: $text_lt_default;
35
- }
36
- }
37
32
  }
38
33
 
39
34
  // Disabled =================
@@ -23,6 +23,7 @@ type ButtonPropTypes = {
23
23
  loading?: boolean,
24
24
  newWindow?: boolean,
25
25
  onClick?: EventHandler,
26
+ tabIndex?: number,
26
27
  size?: 'sm' | 'md' | 'lg',
27
28
  text?: string,
28
29
  type?: 'inline' | null,
@@ -66,6 +67,7 @@ const Button = (props: ButtonPropTypes) => {
66
67
  id,
67
68
  loading = false,
68
69
  onClick,
70
+ tabIndex,
69
71
  link = null,
70
72
  newWindow = false,
71
73
  text,
@@ -128,6 +130,7 @@ const Button = (props: ButtonPropTypes) => {
128
130
  id={id}
129
131
  rel="noreferrer"
130
132
  role="link"
133
+ tabIndex={tabIndex}
131
134
  target={newWindow ? '_blank' : null}
132
135
  >
133
136
  {ifLoading()}
@@ -144,6 +147,7 @@ const Button = (props: ButtonPropTypes) => {
144
147
  id={id}
145
148
  onClick={onClick}
146
149
  role="button"
150
+ tabIndex={tabIndex}
147
151
  type={htmlType}
148
152
  value={value}
149
153
  >
@@ -5,6 +5,7 @@
5
5
  @import "../tokens/spacing";
6
6
  @import "../tokens/transition";
7
7
  @import "../tokens/typography";
8
+ @import "../utilities/focus";
8
9
 
9
10
  $pb_button_size: 40px;
10
11
  $pb_button_v_padding: 7px;
@@ -37,7 +38,7 @@ $pb_button_border_width: 0px;
37
38
  padding: $pb_button_v_padding $pb_button_h_padding;
38
39
  cursor: pointer;
39
40
  outline: none;
40
- transition: background $transition_default ease, color $transition_default ease;
41
+ transition: background $transition_default ease, color $transition_default ease, box-shadow $transition_default ease;
41
42
  box-sizing: border-box;
42
43
  display: inline-flex;
43
44
  align-items: center;
@@ -46,6 +47,12 @@ $pb_button_border_width: 0px;
46
47
  width: fit-content;
47
48
  font-family: $font_family_base;
48
49
  white-space: nowrap;
50
+
51
+ @include focus;
52
+
53
+ &[class*=dark] {
54
+ @include focus-dark
55
+ }
49
56
 
50
57
  .loading-icon {
51
58
  position: absolute;
@@ -62,9 +69,8 @@ $pb_button_border_width: 0px;
62
69
  margin-left: $space_xs;
63
70
  }
64
71
 
65
- &:hover, &:focus {
72
+ &:hover {
66
73
  outline: none;
67
-
68
74
  }
69
75
 
70
76
  &:active {
@@ -86,6 +92,10 @@ $pb_button_border_width: 0px;
86
92
  &:hover {
87
93
  @include pb_button_hover;
88
94
  }
95
+ &:active {
96
+ transition: none;
97
+ @include pb_button_variant($primary_action);
98
+ }
89
99
  }
90
100
  }
91
101
 
@@ -97,6 +107,10 @@ $pb_button_border_width: 0px;
97
107
  &:hover {
98
108
  @include pb_button_hover(rgba($primary_action, $opacity_3));
99
109
  }
110
+ &:active {
111
+ transition: none;
112
+ @include pb_button_variant(rgba($primary_action, 0.05), $primary_action);
113
+ }
100
114
  }
101
115
  }
102
116
 
@@ -107,6 +121,11 @@ $pb_button_border_width: 0px;
107
121
  @media (hover:hover) {
108
122
  &:hover {
109
123
  @include pb_button_hover($transparent);
124
+ color: $text_lt_default;
125
+ }
126
+ &:active {
127
+ transition: none;
128
+ @include pb_button_variant($transparent, $primary_action);
110
129
  }
111
130
  }
112
131
  }
@@ -116,6 +135,9 @@ $pb_button_border_width: 0px;
116
135
  $disabled_color: rgba($charcoal, $opacity_5);
117
136
  @include pb_button_variant(rgba($slate, $opacity_4), $disabled_color);
118
137
  pointer-events: none;
138
+ &:focus {
139
+ outline: none;
140
+ }
119
141
  }
120
142
 
121
143
  // Block =======================
@@ -145,17 +167,25 @@ $pb_button_border_width: 0px;
145
167
  &:hover {
146
168
  @include pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken));
147
169
  }
170
+ &:active {
171
+ transition: none;
172
+ @include pb_button_variant($primary_action);
173
+ }
148
174
  }
149
175
  }
150
176
 
151
177
  // Dark Secondary ==============
152
178
  @mixin pb_button_secondary_dark{
153
- @include pb_button_variant(rgba($white, 0.2), $white);
179
+ @include pb_button_variant(rgba($white, $opacity_2), $white);
154
180
 
155
181
  @media (hover:hover) {
156
182
  &:hover {
157
183
  @include pb_button_hover(rgba($primary_action, $opacity_2));
158
184
  }
185
+ &:active {
186
+ transition: none;
187
+ @include pb_button_variant(rgba($white, $opacity_2), $white);
188
+ }
159
189
  }
160
190
  }
161
191
 
@@ -166,6 +196,11 @@ $pb_button_border_width: 0px;
166
196
  @media (hover:hover) {
167
197
  &:hover {
168
198
  @include pb_button_hover($transparent);
199
+ color: rgba($white, $opacity_6)
200
+ }
201
+ &:active {
202
+ transition: none;
203
+ @include pb_button_variant($transparent, $white);
169
204
  }
170
205
  }
171
206
  }
@@ -34,6 +34,7 @@ module Playbook
34
34
  disabled: disabled,
35
35
  id: id,
36
36
  role: "button",
37
+ tabindex: 0,
37
38
  type: type,
38
39
  value: value,
39
40
  form: form,
@@ -45,6 +46,7 @@ module Playbook
45
46
  option[:href] = link
46
47
  option[:role] = "link"
47
48
  option[:target] = "_blank" if new_window
49
+ option[:tabindex] = 0
48
50
  end
49
51
  end
50
52
 
@@ -6,6 +6,7 @@ const ButtonAccessibility = (props) => (
6
6
  <Button
7
7
  aria={{ label: 'Go to Google' }}
8
8
  link="https://google.com"
9
+ tabIndex={0}
9
10
  tag="a"
10
11
  text="Button with ARIA"
11
12
  {...props}
@@ -5,6 +5,7 @@ const ButtonBlockContent = (props) => (
5
5
  <div>
6
6
  <Button fixedWidth
7
7
  {...props}
8
+ tabIndex={0}
8
9
  >
9
10
  <Pill marginRight="xs"
10
11
  text="5"
@@ -6,12 +6,14 @@ const ButtonDefault = (props) => (
6
6
  <Button
7
7
  marginRight='lg'
8
8
  onClick={() => alert("button clicked!")}
9
+ tabIndex={0}
9
10
  text='Button Primary'
10
11
  {...props}
11
12
  />{" "}
12
13
  <Button
13
14
  marginRight='lg'
14
15
  onClick={() => alert("button clicked!")}
16
+ tabIndex={0}
15
17
  text='Button Secondary'
16
18
  variant='secondary'
17
19
  {...props}
@@ -19,6 +21,7 @@ const ButtonDefault = (props) => (
19
21
  <Button
20
22
  marginRight='lg'
21
23
  onClick={() => alert("button clicked!")}
24
+ tabIndex={0}
22
25
  text='Button Link'
23
26
  variant='link'
24
27
  {...props}
@@ -27,6 +30,7 @@ const ButtonDefault = (props) => (
27
30
  disabled
28
31
  marginRight='lg'
29
32
  onClick={() => alert("button clicked!")}
33
+ tabIndex={0}
30
34
  text='Button Disabled'
31
35
  {...props}
32
36
  />
@@ -5,6 +5,7 @@ const ButtonForm = (props) => (
5
5
  <div>
6
6
  <Button
7
7
  form="form-id"
8
+ tabIndex={0}
8
9
  text="Button with Form Attribute"
9
10
  {...props}
10
11
  />
@@ -5,6 +5,7 @@ const ButtonFullWidth = (props) => (
5
5
  <div>
6
6
  <Button
7
7
  fullWidth
8
+ tabIndex={0}
8
9
  text="Button Full Width"
9
10
  {...props}
10
11
  />
@@ -1,2 +1,2 @@
1
- <%= pb_rails("button", props: { icon: "plus", text: "Icon on Left" }) %>
2
- <%= pb_rails("button", props: { icon: "chevron-right", icon_right: true, text: "Icon on Right" }) %>
1
+ <%= pb_rails("button", props: { icon: "plus", text: "Icon on Left", margin_right: "lg" }) %>
2
+ <%= pb_rails("button", props: { icon: "chevron-right", icon_right: true, text: "Icon on Right", margin_right: "lg" }) %>
@@ -6,6 +6,8 @@ const ButtonIconOptions = (props) => (
6
6
  <Button
7
7
  fixedWidth
8
8
  icon='plus'
9
+ marginRight='lg'
10
+ tabIndex={0}
9
11
  text="Icon on Left"
10
12
  {...props}
11
13
  />
@@ -14,6 +16,8 @@ const ButtonIconOptions = (props) => (
14
16
  fixedWidth
15
17
  icon='chevron-right'
16
18
  iconRight
19
+ marginRight='lg'
20
+ tabIndex={0}
17
21
  text="Icon on Right"
18
22
  {...props}
19
23
  />
@@ -1,3 +1,3 @@
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" }) %>
1
+ <%= pb_rails("button", props: { text: "A Tag Button", aria: { label: "Link to Google" }, tag: "a", link: "http://google.com", margin_right: "lg" }) %>
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",margin_right: "lg" }) %>
3
+ <%= pb_rails("button", props: { text: "A Tag Button Disabled", aria: { label: "Disabled link to Google" }, disabled: true, link: "http://google.com",margin_right: "lg" }) %>
@@ -6,6 +6,8 @@ const ButtonLink = (props) => (
6
6
  <Button
7
7
  aria={{ label: 'Link to Google' }}
8
8
  link="https://google.com"
9
+ marginRight='lg'
10
+ tabIndex={0}
9
11
  text="A Tag Button"
10
12
  {...props}
11
13
  />
@@ -13,7 +15,9 @@ const ButtonLink = (props) => (
13
15
  <Button
14
16
  aria={{ label: 'Link to Google in new window' }}
15
17
  link="https://google.com"
18
+ marginRight='lg'
16
19
  newWindow
20
+ tabIndex={0}
17
21
  text="Open in New Window"
18
22
  {...props}
19
23
  />
@@ -22,6 +26,8 @@ const ButtonLink = (props) => (
22
26
  aria={{ label: 'Disabled link to Google' }}
23
27
  disabled
24
28
  link="https://google.com"
29
+ marginRight='lg'
30
+ tabIndex={0}
25
31
  text="A Tag Button Disabled"
26
32
  {...props}
27
33
  />
@@ -1,3 +1,3 @@
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 }) %>
1
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", loading: true, margin_right: "lg" }) %>
2
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", variant: "secondary", loading: true, margin_right: "lg" }) %>
3
+ <%= pb_rails("button", props: { aria: { label: "Loading" }, text: "Button Primary", variant: "link", loading: true, margin_right: "lg" }) %>
@@ -6,6 +6,8 @@ const ButtonLoading = (props) => (
6
6
  <Button
7
7
  aria={{ label: 'Loading' }}
8
8
  loading
9
+ marginRight='lg'
10
+
9
11
  text="Button Primary"
10
12
  {...props}
11
13
  />
@@ -13,6 +15,8 @@ const ButtonLoading = (props) => (
13
15
  <Button
14
16
  aria={{ label: 'Loading' }}
15
17
  loading
18
+ marginRight='lg'
19
+ tabIndex={0}
16
20
  text="Button Secondary"
17
21
  variant="secondary"
18
22
  {...props}
@@ -21,6 +25,8 @@ const ButtonLoading = (props) => (
21
25
  <Button
22
26
  aria={{ label: 'Loading' }}
23
27
  loading
28
+ marginRight='lg'
29
+ tabIndex={0}
24
30
  text="A Tag Button Disabled"
25
31
  variant="link"
26
32
  {...props}
@@ -6,6 +6,7 @@ const ButtonOptions = (props) => (
6
6
  <Button
7
7
  htmlType="submit"
8
8
  onClick={() => alert('Click!')}
9
+ tabIndex={0}
9
10
  text="Button with options"
10
11
  value="1234"
11
12
  {...props}
@@ -1,3 +1,3 @@
1
- <%= pb_rails("button", props: { text: "Button sm size", size: "sm" }) %>
2
- <%= pb_rails("button", props: { text: "Button md size", size: "md" }) %>
3
- <%= pb_rails("button", props: { text: "Button lg size", size: "lg" }) %>
1
+ <%= pb_rails("button", props: { text: "Button sm size", size: "sm", margin_right: "lg" }) %>
2
+ <%= pb_rails("button", props: { text: "Button md size", size: "md", margin_right: "lg" }) %>
3
+ <%= pb_rails("button", props: { text: "Button lg size", size: "lg", margin_right: "lg" }) %>
@@ -4,19 +4,25 @@ import { Button } from '../../'
4
4
  const ButtonSize = (props) => (
5
5
  <div>
6
6
  <Button
7
+ marginRight='lg'
7
8
  size="sm"
9
+ tabIndex={0}
8
10
  text="Button sm size"
9
11
  {...props}
10
12
  />
11
13
  {' '}
12
14
  <Button
15
+ marginRight='lg'
13
16
  size="md"
17
+ tabIndex={0}
14
18
  text="Button md size"
15
19
  {...props}
16
20
  />
17
21
  {' '}
18
22
  <Button
23
+ marginRight='lg'
19
24
  size="lg"
25
+ tabIndex={0}
20
26
  text="Button lg size"
21
27
  {...props}
22
28
  />
@@ -21,7 +21,7 @@ $transition: $transition_cubic;
21
21
  border-radius: $border_rad_light;
22
22
  height: 22px;
23
23
  position: relative;
24
- transition: background $transition_default ease, border-color $transition_default ease;
24
+ transition: background $transition_default ease, box-shadow $transition_default ease;
25
25
  width: 22px;
26
26
  .check_icon,
27
27
  .indeterminate_icon {
@@ -40,7 +40,7 @@ $transition: $transition_cubic;
40
40
 
41
41
  @media (hover:hover) {
42
42
  &:hover input ~ .pb_checkbox_checkmark {
43
- border-color: $primary_action;
43
+ background-color: $bg_light;
44
44
  }
45
45
  }
46
46
 
@@ -52,13 +52,19 @@ $transition: $transition_cubic;
52
52
  position: relative;
53
53
  width: 0;
54
54
  left: $offscreen;
55
+
55
56
  &:focus ~ .pb_checkbox_checkmark {
56
- border-color: $primary_action;
57
+ box-shadow: 0px 0px 0px 2px $white, 0px 0px 0px 4px $primary;
57
58
  }
58
59
  &:checked ~ .pb_checkbox_checkmark,
59
60
  & ~ .pb_checkbox_indeterminate {
60
61
  background-color: $primary_action;
61
62
  border-color: $primary_action;
63
+
64
+ &:hover {
65
+ background-color: $primary_action;
66
+ border-color: $primary_action;
67
+ }
62
68
  }
63
69
  &:checked ~ .pb_checkbox_checkmark,
64
70
  & ~ .pb_checkbox_indeterminate {
@@ -70,35 +76,36 @@ $transition: $transition_cubic;
70
76
  }
71
77
  }
72
78
 
73
- &[class*=_dark] {
74
- input:checked ~ .pb_checkbox_checkmark {
75
- background-color: $primary_action;
76
- border-color: $primary_action;
79
+ &.dark {
80
+ input {
81
+ &:focus ~ .pb_checkbox_checkmark {
82
+ box-shadow: 0px 0px 0px 2px $bg_dark_card, 0px 0px 0px 4px $primary;
83
+ }
77
84
  }
78
-
85
+
79
86
  @media (hover:hover) {
80
87
  &:hover .pb_checkbox_checkmark {
81
- border-color: $primary_action;
88
+ background-color: rgba($white,.05);
82
89
  }
83
90
  }
84
91
 
85
- &.error {
86
- > .pb_checkbox_checkmark {
87
- border-color: $error_dark;
88
- }
89
- }
90
92
  &.pb_checkbox_kit_error {
91
93
  > .pb_checkbox_checkmark {
92
94
  border-color: $error_dark;
95
+ }
96
+
97
+ input {
98
+ &:checked ~ .pb_checkbox_checkmark,
99
+ & ~ .pb_checkbox_indeterminate {
100
+ border-color: $primary;
101
+ &:hover {
102
+ border-color: $primary;
103
+ }
104
+ }
93
105
  }
94
106
  }
95
107
  }
96
108
 
97
- &.error {
98
- > .pb_checkbox_checkmark {
99
- border-color: $error;
100
- }
101
- }
102
109
  &.pb_checkbox_kit_error {
103
110
  > .pb_checkbox_checkmark {
104
111
  border-color: $error;
@@ -23,10 +23,34 @@ $pb_button_styles: [
23
23
  padding: 0;
24
24
  }
25
25
 
26
+ @mixin pb_circle_icon_button_active {
27
+ &:active {
28
+ transition: none;
29
+ @include pb_button_variant(rgba($primary_action, 0.05), $primary_action);
30
+ }
31
+ }
32
+
33
+ @mixin pb_circle_icon_button_active_dark {
34
+ &:active {
35
+ transition: none;
36
+ @include pb_button_variant(rgba($white, $opacity_2), $white);
37
+ }
38
+ }
39
+
26
40
  [class^=pb_circle_icon_button_kit] {
27
41
  @each $style in $pb_button_styles {
28
42
  [class^=pb_button_kit][class*=_#{$style}] {
29
43
  @include pb_circle_icon_button;
30
44
  }
31
45
  }
46
+ :first-child {
47
+ &[class*=_link] {
48
+ @include pb_circle_icon_button_active;
49
+ }
50
+ &.dark {
51
+ &[class*=_link] {
52
+ @include pb_circle_icon_button_active_dark;
53
+ }
54
+ }
55
+ }
32
56
  }
@@ -92,7 +92,12 @@
92
92
  & > [class^=pb_selectable_card_kit]:not(:last-child) label {
93
93
  border-bottom-right-radius: 0;
94
94
  border-top-right-radius: 0;
95
- border-right-width: 0;
95
+ border-right-color: transparent;
96
+ }
97
+ & > [class^=pb_selectable_card_kit] input[type="checkbox"]:not(:checked) ~ label, [class^=pb_selectable_card_kit] input[type="radio"]:not(:checked) ~ label {
98
+ &:hover {
99
+ border-right-color: $slate;
100
+ }
96
101
  }
97
102
 
98
103
  & > [class^=pb_selectable_card_kit]:not(:first-child) label {
@@ -112,7 +117,10 @@
112
117
 
113
118
  & > [class^=pb_selectable_card_icon_kit]:not(:last-child) {
114
119
  [class^=pb_selectable_card_kit] input[type="checkbox"]:not(:checked) ~ label, [class^=pb_selectable_card_kit] input[type="radio"]:not(:checked)~ label {
115
- border-right-width: 0;
120
+ border-right-color: transparent;
121
+ &:hover {
122
+ border-right-color: $slate;
123
+ }
116
124
  }
117
125
  }
118
126
 
@@ -0,0 +1,8 @@
1
+ @import "../tokens/typography";
2
+ @import "../tokens/colors";
3
+ @import "../tokens/shadows";
4
+
5
+ .pb_map {
6
+ font-family: $font_family_base !important;
7
+
8
+ }
@@ -0,0 +1,40 @@
1
+ import React from 'react'
2
+ import classnames from 'classnames'
3
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
4
+ import { globalProps } from '../utilities/globalProps'
5
+
6
+
7
+ type MapProps = {
8
+ aria?: { [key: string]: string },
9
+ children?: React.ReactChild[] | React.ReactNode,
10
+ className?: string,
11
+ data?: { [key: string]: string },
12
+ id?: string,
13
+ }
14
+
15
+ const Map = (props: MapProps) => {
16
+ const {
17
+ aria = {},
18
+ children,
19
+ className,
20
+ data = {},
21
+ id,
22
+ } = props
23
+
24
+ const ariaProps = buildAriaProps(aria)
25
+ const dataProps = buildDataProps(data)
26
+ const classes = classnames(buildCss('pb_map'), globalProps(props), className)
27
+
28
+ return (
29
+ <div
30
+ {...ariaProps}
31
+ {...dataProps}
32
+ className={classes}
33
+ id={id}
34
+ >
35
+ {children}
36
+ </div>
37
+ )
38
+ }
39
+
40
+ export default Map