playbook_ui 6.3.0 → 6.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) 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 +1 -0
  4. data/app/pb_kits/playbook/index.js +2 -0
  5. data/app/pb_kits/playbook/packs/examples.js +2 -1
  6. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +0 -1
  7. data/app/pb_kits/playbook/pb_body/_body.jsx +1 -1
  8. data/app/pb_kits/playbook/pb_body/_body.scss +17 -1
  9. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  10. data/app/pb_kits/playbook/pb_button/_button.jsx +1 -0
  11. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +32 -18
  12. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +3 -7
  13. data/app/pb_kits/playbook/pb_button/docs/_button_default_dark.jsx +3 -0
  14. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +2 -0
  15. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +2 -0
  16. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +16 -8
  17. data/app/pb_kits/playbook/pb_caption/_caption.jsx +3 -1
  18. data/app/pb_kits/playbook/pb_caption/_caption.scss +3 -0
  19. data/app/pb_kits/playbook/pb_caption/caption.rb +4 -1
  20. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb +1 -0
  21. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +16 -0
  22. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.md +3 -0
  23. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  24. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  25. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -0
  26. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +12 -6
  27. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +2 -1
  28. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +39 -0
  29. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +146 -0
  30. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +37 -0
  31. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +85 -0
  32. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +171 -0
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +4 -0
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +13 -0
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
  36. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
  37. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
  38. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
  39. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
  40. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
  41. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
  42. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
  43. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
  44. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
  45. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.md +1 -0
  46. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.html.erb +4 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.jsx +13 -0
  48. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.html.erb +37 -0
  49. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.jsx +37 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.md +1 -0
  51. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +26 -0
  52. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +32 -0
  53. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.md +3 -0
  54. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.md +1 -0
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
  61. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.html.erb +4 -0
  62. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx +13 -0
  63. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md +1 -0
  64. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb +7 -0
  65. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx +16 -0
  66. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md +1 -0
  67. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +7 -0
  68. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +35 -0
  69. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +14 -0
  70. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +32 -0
  71. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_day_styles.scss +53 -0
  72. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +785 -0
  73. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_header_styles.scss +108 -0
  74. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_overrides.scss +44 -0
  75. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +1 -1
  76. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +1 -1
  77. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +1 -1
  78. data/app/pb_kits/playbook/pb_filter/_filter.scss +1 -1
  79. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  80. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  81. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -0
  82. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -0
  83. data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -0
  84. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +20 -0
  85. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +5 -2
  86. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +3 -1
  87. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +7 -5
  88. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +6 -4
  89. data/app/pb_kits/playbook/pb_nav/_nav.jsx +7 -2
  90. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +18 -14
  91. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
  92. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +0 -1
  93. data/app/pb_kits/playbook/pb_radio/_radio.scss +9 -4
  94. data/app/pb_kits/playbook/pb_select/_select.scss +8 -4
  95. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -3
  96. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +9 -5
  97. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +9 -5
  98. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +35 -37
  99. data/app/pb_kits/playbook/pb_table/styles/_hover.scss +15 -12
  100. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +6 -4
  101. data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +6 -4
  102. data/app/pb_kits/playbook/pb_table/table.rb +3 -3
  103. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +1 -0
  104. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -17
  105. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +4 -4
  106. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
  107. data/app/pb_kits/playbook/pb_time/_time.jsx +7 -5
  108. data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +0 -2
  109. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -3
  110. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -3
  111. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +59 -0
  112. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.md +11 -0
  113. data/app/pb_kits/playbook/pb_time/docs/example.yml +1 -0
  114. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  115. data/app/pb_kits/playbook/pb_title/_title.jsx +1 -1
  116. data/app/pb_kits/playbook/pb_title/_title.scss +5 -5
  117. data/app/pb_kits/playbook/pb_title/docs/_title_variants.html.erb +1 -0
  118. data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +17 -0
  119. data/app/pb_kits/playbook/pb_title/docs/_title_variants.md +3 -0
  120. data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -0
  121. data/app/pb_kits/playbook/pb_title/docs/index.js +1 -0
  122. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +4 -2
  123. data/app/pb_kits/playbook/vendor.js +6 -0
  124. data/lib/playbook/version.rb +1 -1
  125. metadata +59 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea80542999ec742ea75a790d08063f434344edc4b3271924f885d8262da2e71e
4
- data.tar.gz: '038fe977294f1ab1bba1b24f898ade044a7b01b973b9b1f45b2e0ffd1b65e687'
3
+ metadata.gz: 9abf95612efac0b8a04b431ccb4f430c0cb70ce3f31aaa3b09645ef945bdc979
4
+ data.tar.gz: bc0bcf2f8394a0350ce32a508bf40bd4dc9330d1f0aa56799677a1d892f58072
5
5
  SHA512:
6
- metadata.gz: eeb81eeae28752fa79ed22bdfc94b2e84edced942326ebaf091bf629c79beff2ab6b7f7bd4bae1fd0b28aa8aedd4a900de11a44ad1abd15fa251d73938a3c5dc
7
- data.tar.gz: 9c1c7d3eec96485cec557a1a9f496212acd49cfb85444ad6dca3d2dfbb9490bd01dfa80799ad15433f3d9f60e3e221b6e10e12d529948d5fbb9d0a8a357996f2
6
+ metadata.gz: e46b996ef8cbf16390ff72d30696591ba8e11c3904e346ad0ad5b49b5bfe1cc0ea5eb5b44e15bc94084280e0b52b9ac6f63b17ff58031346567f571ac3b695ff
7
+ data.tar.gz: 4b11ef993b8fc7ecf3b9864ecc357823ee741bd83d999c40c243111eab87790116433e0d68d970a561d576e922e341efe7ee32fb770c2f1734a30c8b110b4187
@@ -15,6 +15,7 @@
15
15
  @import 'pb_currency/currency';
16
16
  @import 'pb_dashboard_value/dashboard_value';
17
17
  @import 'pb_date/date';
18
+ @import 'pb_date_picker/date_picker';
18
19
  @import 'pb_date_range_inline/date_range_inline';
19
20
  @import 'pb_date_range_stacked/date_range_stacked';
20
21
  @import 'pb_date_stacked/date_stacked';
@@ -25,6 +25,7 @@ kits:
25
25
  - fixed_confirmation_toast
26
26
  - flex
27
27
  - forms:
28
+ - date_picker
28
29
  - file_upload
29
30
  - form
30
31
  - form_pill
@@ -14,6 +14,7 @@ export Contact from './pb_contact/_contact.jsx'
14
14
  export Currency from './pb_currency/_currency.jsx'
15
15
  export DashboardValue from './pb_dashboard_value/_dashboard_value.jsx'
16
16
  export Date from './pb_date/_date.jsx'
17
+ export DatePicker from './pb_date_picker/_date_picker.jsx'
17
18
  export DateRangeInline from './pb_date_range_inline/_date_range_inline.jsx'
18
19
  export DateRangeStacked from './pb_date_range_stacked/_date_range_stacked.jsx'
19
20
  export DateStacked from './pb_date_stacked/_date_stacked.jsx'
@@ -91,6 +92,7 @@ export dashboardValueSettings from './pb_dashboard_value/dashboardValueSettings'
91
92
 
92
93
  // Other JS/Plugins
93
94
  export pbChart from './plugins/pb_chart.js'
95
+ export datePickerHelper from './pb_date_picker/date_picker_helper.js'
94
96
  export PbTypeahead from './pb_typeahead'
95
97
  export PbPopover from './pb_popover'
96
98
  export PbTable from './pb_table'
@@ -28,6 +28,7 @@ import * as Contact from 'pb_contact/docs'
28
28
  import * as Currency from 'pb_currency/docs'
29
29
  import * as DashboardValue from 'pb_dashboard_value/docs'
30
30
  import * as Date from 'pb_date/docs'
31
+ import * as DatePicker from 'pb_date_picker/docs'
31
32
  import * as DateRangeInline from 'pb_date_range_inline/docs'
32
33
  import * as DateRangeStacked from 'pb_date_range_stacked/docs'
33
34
  import * as DateStacked from 'pb_date_stacked/docs'
@@ -108,6 +109,7 @@ WebpackerReact.setup({
108
109
  ...Currency,
109
110
  ...DashboardValue,
110
111
  ...Date,
112
+ ...DatePicker,
111
113
  ...DateRangeInline,
112
114
  ...DateRangeStacked,
113
115
  ...DateStacked,
@@ -172,4 +174,3 @@ WebpackerReact.setup({
172
174
  ...UserBadge,
173
175
  ...WeekdayStacked,
174
176
  })
175
-
@@ -114,7 +114,6 @@
114
114
  background: $bg_dark;
115
115
 
116
116
  .pb--kit-example {
117
- color: $white;
118
117
 
119
118
  &::after {
120
119
  background: $border-dark;
@@ -26,7 +26,7 @@ const Body = (props: BodyProps) => {
26
26
  aria = {},
27
27
  className,
28
28
  children,
29
- color = 'default',
29
+ color = '',
30
30
  data = {},
31
31
  highlightedText = [],
32
32
  highlighting = false,
@@ -1,6 +1,7 @@
1
1
  @import "./body_mixins";
2
2
 
3
3
  [class^=pb_body_kit]{
4
+ @include pb_body($text_lt_default);
4
5
  @each $color_name, $color_value in $pb_body_colors {
5
6
  &[class*=_#{$color_name}] {
6
7
  @include pb_body($color_value);
@@ -19,8 +20,23 @@
19
20
  }
20
21
 
21
22
  @each $status_name, $status_value in $pb_body_status {
22
- &[class*=_default_#{$status_name}][class*=dark] {
23
+ &[class*=#{$status_name}] {
23
24
  @include pb_body($status_value);
24
25
  }
25
26
  }
27
+
28
+ &[class*=dark] {
29
+ @include pb_body_dark();
30
+ @each $dark_color_name, $dark_color_value in $pb_dark_body_colors{
31
+ &[class*=_#{$dark_color_name}][class*=dark]{
32
+ @include pb_body($dark_color_value);
33
+ }
34
+ }
35
+ @each $status_name, $status_value in $pb_body_status {
36
+ &[class*=_#{$status_name}] {
37
+ @include pb_body($status_value);
38
+ }
39
+ }
40
+ }
41
+
26
42
  }
@@ -41,7 +41,7 @@ module Playbook
41
41
  end
42
42
 
43
43
  def color_class
44
- color
44
+ color == "default" ? nil : color
45
45
  end
46
46
 
47
47
  def status_class
@@ -97,6 +97,7 @@ const Button = (props: ButtonPropTypes) => {
97
97
  <span className="pb_button_content">
98
98
  <If condition={icon !== null}>
99
99
  <i className={`pb_icon_kit far fa-${icon} fa-fw`} />
100
+ {' '}
100
101
  </If>
101
102
  <span>{text || children}</span>
102
103
  </span>
@@ -10,7 +10,8 @@ $pb_button_size: 40px;
10
10
  $pb_button_v_padding: 7px;
11
11
  $pb_button_h_padding: 34px;
12
12
  $pb_button_hover_darken: 4%;
13
- $pb_button_border_width: 1px;
13
+ $pb_button_border_width: 0px;
14
+
14
15
 
15
16
  @mixin pb_button($bg: $primary_action, $color: $text_dk_default, $border: transparent) {
16
17
  text-rendering: optimizeLegibility;
@@ -47,16 +48,17 @@ $pb_button_border_width: 1px;
47
48
  visibility: visible;
48
49
  }
49
50
 
50
- &:hover {
51
+ &:hover, &:focus {
51
52
  outline: none;
53
+
52
54
  }
53
55
 
54
- &:active,
55
- &:focus {
56
+ &:active {
56
57
  outline: none;
57
58
  border-width: $pb_button_border_width;
58
59
  border-color: darken($bg, $pb_button_hover_darken);
59
60
  }
61
+
60
62
  };
61
63
 
62
64
  @mixin pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken)){
@@ -67,8 +69,10 @@ $pb_button_border_width: 1px;
67
69
  @mixin pb_button_primary {
68
70
  @include pb_button;
69
71
 
70
- &:hover {
71
- @include pb_button_hover;
72
+ @media (hover:hover) {
73
+ &:hover {
74
+ @include pb_button_hover;
75
+ }
72
76
  }
73
77
  }
74
78
 
@@ -76,17 +80,21 @@ $pb_button_border_width: 1px;
76
80
  @mixin pb_button_secondary {
77
81
  @include pb_button(rgba($primary_action, 0.05), $primary_action);
78
82
 
79
- &:hover {
80
- @include pb_button_hover(rgba($primary_action, $opacity_3));
81
- }
83
+ @media (hover:hover) {
84
+ &:hover {
85
+ @include pb_button_hover(rgba($primary_action, $opacity_3));
86
+ }
87
+ }
82
88
  }
83
89
 
84
90
  // Link =========================
85
91
  @mixin pb_button_link {
86
92
  @include pb_button($transparent, $primary_action);
87
93
 
88
- &:hover {
89
- @include pb_button_hover($transparent);
94
+ @media (hover:hover) {
95
+ &:hover {
96
+ @include pb_button_hover($transparent);
97
+ }
90
98
  }
91
99
  }
92
100
 
@@ -120,8 +128,10 @@ $pb_button_border_width: 1px;
120
128
  @mixin pb_button_primary_dark{
121
129
  @include pb_button($primary_action);
122
130
 
123
- &:hover {
124
- @include pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken));
131
+ @media (hover:hover) {
132
+ &:hover {
133
+ @include pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken));
134
+ }
125
135
  }
126
136
  }
127
137
 
@@ -129,17 +139,21 @@ $pb_button_border_width: 1px;
129
139
  @mixin pb_button_secondary_dark{
130
140
  @include pb_button(rgba($white, 0.2), $white);
131
141
 
132
- &:hover {
133
- @include pb_button_hover(rgba($primary_action, $opacity_2));
142
+ @media (hover:hover) {
143
+ &:hover {
144
+ @include pb_button_hover(rgba($primary_action, $opacity_2));
145
+ }
134
146
  }
135
147
  }
136
148
 
137
149
  // Dark Link =============
138
150
  @mixin pb_button_link_dark {
139
- @include pb_button($transparent, $primary_action);
151
+ @include pb_button($transparent, $white);
140
152
 
141
- &:hover {
142
- @include pb_button_hover($transparent);
153
+ @media (hover:hover) {
154
+ &:hover {
155
+ @include pb_button_hover($transparent);
156
+ }
143
157
  }
144
158
  }
145
159
 
@@ -4,26 +4,22 @@ import { Button } from '../../'
4
4
  const ButtonDefault = () => (
5
5
  <div>
6
6
  <Button
7
- dark
8
- marginRight="xl"
9
7
  onClick={() => alert('button clicked!')}
10
8
  text="Button Primary"
11
9
  />
10
+ {' '}
12
11
  <Button
13
12
  onClick={() => alert('button clicked!')}
14
13
  text="Button Secondary"
15
14
  variant="secondary"
16
15
  />
16
+ {' '}
17
17
  <Button
18
18
  onClick={() => alert('button clicked!')}
19
19
  text="Button Link"
20
20
  variant="link"
21
21
  />
22
- <Button
23
- disabled
24
- onClick={() => alert('button clicked!')}
25
- text="Button Disabled"
26
- />
22
+ {' '}
27
23
  <Button
28
24
  disabled
29
25
  onClick={() => alert('button clicked!')}
@@ -7,16 +7,19 @@ const ButtonDefaultDark = () => (
7
7
  dark
8
8
  text="Button Primary"
9
9
  />
10
+ {' '}
10
11
  <Button
11
12
  dark
12
13
  text="Button Secondary"
13
14
  variant="secondary"
14
15
  />
16
+ {' '}
15
17
  <Button
16
18
  dark
17
19
  text="Button Link"
18
20
  variant="link"
19
21
  />
22
+ {' '}
20
23
  <Button
21
24
  dark
22
25
  disabled
@@ -7,11 +7,13 @@ const ButtonLink = () => (
7
7
  link="https://google.com"
8
8
  text="A Tag Button"
9
9
  />
10
+ {' '}
10
11
  <Button
11
12
  link="https://google.com"
12
13
  newWindow
13
14
  text="Open in New Window"
14
15
  />
16
+ {' '}
15
17
  <Button
16
18
  disabled
17
19
  link="https://google.com"
@@ -7,11 +7,13 @@ const ButtonLoading = () => (
7
7
  loading
8
8
  text="Button Primary"
9
9
  />
10
+ {' '}
10
11
  <Button
11
12
  loading
12
13
  text="Button Secondary"
13
14
  variant="secondary"
14
15
  />
16
+ {' '}
15
17
  <Button
16
18
  loading
17
19
  text="A Tag Button Disabled"
@@ -13,13 +13,17 @@
13
13
  & > [class^=pb_button] {
14
14
  margin-right: $space-xs;
15
15
 
16
- &:hover {
17
- background-color:darken($royal, 20%);
16
+ @media (hover:hover) {
17
+ &:hover {
18
+ background-color:darken($royal, 20%);
19
+ }
18
20
  }
19
21
 
20
22
  &[class*=secondary] {
21
- &:hover {
22
- background-color:rgba($primary_action, $opacity_3)
23
+ @media (hover:hover) {
24
+ &:hover {
25
+ background-color:rgba($primary_action, $opacity_3)
26
+ }
23
27
  }
24
28
  }
25
29
 
@@ -42,13 +46,17 @@
42
46
  width: 100%;
43
47
  margin-bottom: $space-xs;
44
48
 
45
- &:hover {
46
- background-color:darken($royal, 20%);
49
+ @media (hover:hover) {
50
+ &:hover {
51
+ background-color:darken($royal, 20%);
52
+ }
47
53
  }
48
54
 
49
55
  &[class*=secondary] {
50
- &:hover {
51
- background-color:rgba($primary_action, $opacity_3)
56
+ @media (hover:hover) {
57
+ &:hover {
58
+ background-color:rgba($primary_action, $opacity_3)
59
+ }
52
60
  }
53
61
  }
54
62
 
@@ -14,6 +14,7 @@ type CaptionProps = {
14
14
  size?: "xs" | "sm" | "md" | "lg" | "xl",
15
15
  tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "div",
16
16
  text?: string,
17
+ variant?: null | "link",
17
18
  }
18
19
 
19
20
  const Caption = (props: CaptionProps) => {
@@ -26,13 +27,14 @@ const Caption = (props: CaptionProps) => {
26
27
  size = 'md',
27
28
  tag = 'div',
28
29
  text,
30
+ variant = null,
29
31
  } = props
30
32
  const Tag = `${tag}`
31
33
 
32
34
  const ariaProps = buildAriaProps(aria)
33
35
  const dataProps = buildDataProps(data)
34
36
  const css = classnames(
35
- buildCss('pb_caption_kit', size),
37
+ buildCss('pb_caption_kit', size, variant),
36
38
  className,
37
39
  globalProps(props)
38
40
  )
@@ -9,6 +9,9 @@
9
9
 
10
10
  &[class^=pb_caption_kit_xs] {
11
11
  @include caption_xs;
12
+ &[class*=_link] {
13
+ color: $primary;
14
+ }
12
15
  }
13
16
  &[class*=dark]{
14
17
  @include caption_dark
@@ -14,9 +14,12 @@ module Playbook
14
14
  values: %w[h1 h2 h3 h4 h5 h6 p span div],
15
15
  default: "div"
16
16
  prop :text
17
+ prop :variant, type: Playbook::Props::Enum,
18
+ values: [nil, "link"],
19
+ default: nil
17
20
 
18
21
  def classname
19
- generate_classname("pb_caption_kit", size)
22
+ generate_classname("pb_caption_kit", size, variant)
20
23
  end
21
24
  end
22
25
  end
@@ -0,0 +1 @@
1
+ <%= pb_rails("caption", props: { text: "Subcaption (link)", size: 'xs', variant: "link" }) %>
@@ -0,0 +1,16 @@
1
+ import React from 'react'
2
+ import { Caption } from '../../'
3
+
4
+ const CaptionVariants = () => {
5
+ return (
6
+ <div>
7
+ <Caption
8
+ size="xs"
9
+ text="Subcaption (link)"
10
+ variant="link"
11
+ />
12
+ </div>
13
+ )
14
+ }
15
+
16
+ export default CaptionVariants
@@ -0,0 +1,3 @@
1
+ Wrap anchor tags around the kit to make it clickable.
2
+
3
+ Link variant can only be applied to size `xs`.