playbook_ui 14.25.0.pre.alpha.PLAY2369textinputautocompleteprop9970 → 14.25.0.pre.alpha.PLAY2369textinputautocompleteprop10269

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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +6 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +60 -65
  6. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +1 -1
  7. data/app/pb_kits/playbook/pb_background/_background.scss +3 -3
  8. data/app/pb_kits/playbook/pb_badge/_badge.scss +135 -29
  9. data/app/pb_kits/playbook/pb_body/_body.scss +108 -35
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  11. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +17 -30
  12. data/app/pb_kits/playbook/pb_button/_button.scss +39 -31
  13. data/app/pb_kits/playbook/pb_button/_button.tsx +12 -12
  14. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -1
  15. data/app/pb_kits/playbook/pb_button/button.rb +11 -18
  16. data/app/pb_kits/playbook/pb_button/button.test.js +3 -3
  17. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +82 -73
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +32 -33
  19. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_mixins.scss +1 -1
  20. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.test.js +2 -2
  21. data/app/pb_kits/playbook/pb_caption/_caption.scss +100 -17
  22. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -8
  23. data/app/pb_kits/playbook/pb_card/_card.scss +116 -79
  24. data/app/pb_kits/playbook/pb_card/_card.tsx +26 -11
  25. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  26. data/app/pb_kits/playbook/pb_card/card.rb +8 -7
  27. data/app/pb_kits/playbook/pb_card/card_header.rb +6 -2
  28. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  29. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +11 -2
  30. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +7 -7
  31. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  32. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  33. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +4 -4
  34. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_currency/_currency.scss +124 -39
  36. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +16 -6
  37. data/app/pb_kits/playbook/pb_date/_date.scss +16 -18
  38. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -1
  39. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +12 -12
  40. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -2
  41. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +6 -5
  42. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +29 -23
  43. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  44. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.scss +1 -1
  45. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  46. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +66 -26
  47. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +1 -1
  48. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  49. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +8 -15
  50. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +6 -7
  51. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -14
  52. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  53. data/app/pb_kits/playbook/pb_detail/_detail.scss +86 -21
  54. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +330 -123
  55. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +16 -2
  56. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +10 -7
  57. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  59. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  60. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  61. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  62. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +20 -9
  63. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  64. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  65. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +65 -29
  66. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -2
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  68. data/app/pb_kits/playbook/pb_flex/_flex.scss +106 -100
  69. data/app/pb_kits/playbook/pb_flex/_flex.tsx +32 -25
  70. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +146 -51
  71. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +19 -8
  72. data/app/pb_kits/playbook/pb_flex/flex.rb +16 -16
  73. data/app/pb_kits/playbook/pb_flex/flex_item.rb +6 -6
  74. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  75. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +381 -344
  76. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  77. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +8 -7
  78. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +9 -2
  79. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  80. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  81. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  82. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  83. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  84. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +40 -39
  85. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  86. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  87. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +16 -15
  88. data/app/pb_kits/playbook/pb_image/_image.scss +41 -36
  89. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  90. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +3 -2
  91. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  92. data/app/pb_kits/playbook/pb_layout/_layout.scss +336 -305
  93. data/app/pb_kits/playbook/pb_layout/_layout.tsx +14 -11
  94. data/app/pb_kits/playbook/pb_layout/item.rb +1 -7
  95. data/app/pb_kits/playbook/pb_layout/layout.rb +16 -25
  96. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  97. data/app/pb_kits/playbook/pb_legend/_legend.scss +66 -16
  98. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  99. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  100. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  101. data/app/pb_kits/playbook/pb_link/_link.scss +113 -19
  102. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  103. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +13 -11
  104. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  105. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  106. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  107. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  108. data/app/pb_kits/playbook/pb_message/_message.scss +21 -16
  109. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -0
  110. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +5 -12
  111. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  112. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +6 -3
  113. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +16 -15
  114. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  115. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  116. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  117. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +19 -15
  118. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  119. data/app/pb_kits/playbook/pb_online_status/online_status.rb +5 -4
  120. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  121. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  122. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  123. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +5 -2
  124. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  125. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  126. data/app/pb_kits/playbook/pb_pill/_pill.scss +23 -21
  127. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +15 -13
  128. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +108 -33
  129. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  130. data/app/pb_kits/playbook/pb_radio/_radio.scss +71 -52
  131. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  132. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -3
  133. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  134. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +81 -70
  135. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +9 -1
  136. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  137. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +3 -1
  138. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +7 -1
  139. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  140. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -2
  141. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +17 -8
  142. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +39 -29
  143. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +2 -0
  144. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +8 -11
  145. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +2 -3
  146. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  147. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  148. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  149. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  150. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  151. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  152. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.html.erb +41 -0
  153. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.jsx +80 -0
  154. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.md +1 -0
  155. data/app/pb_kits/playbook/pb_text_input/docs/example.yml +3 -0
  156. data/app/pb_kits/playbook/pb_text_input/docs/index.js +1 -0
  157. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  158. data/app/pb_kits/playbook/pb_time/_time.scss +44 -17
  159. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +44 -23
  160. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  161. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +5 -8
  162. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +16 -10
  163. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -4
  164. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  165. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  166. data/app/pb_kits/playbook/pb_title/_title.scss +44 -39
  167. data/app/pb_kits/playbook/pb_title/_title.tsx +17 -8
  168. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  169. data/app/pb_kits/playbook/pb_title/title.rb +20 -10
  170. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  171. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +19 -8
  172. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +10 -11
  173. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +4 -1
  174. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +3 -4
  175. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  176. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  177. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  178. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  179. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +1 -22
  180. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  181. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +2 -2
  182. data/app/pb_kits/playbook/pb_user/_user.scss +83 -33
  183. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  184. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +23 -8
  185. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  186. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  187. data/dist/chunks/{_line_graph-QVm2TVXJ.js → _line_graph-CTpWU06n.js} +1 -1
  188. data/dist/chunks/{_typeahead-DENY2KW9.js → _typeahead-DmVCLhQz.js} +1 -1
  189. data/dist/chunks/{_weekday_stacked-DOM5KkBF.js → _weekday_stacked-DvnT8mDi.js} +2 -2
  190. data/dist/chunks/vendor.js +1 -1
  191. data/dist/menu.yml +0 -6
  192. data/dist/playbook-doc.js +2 -2
  193. data/dist/playbook-rails-react-bindings.js +1 -1
  194. data/dist/playbook-rails.js +1 -1
  195. data/dist/playbook.css +1 -1
  196. data/lib/playbook/version.rb +1 -1
  197. metadata +8 -34
  198. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +0 -25
  199. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +0 -381
  200. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +0 -231
  201. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +0 -3
  202. data/app/pb_kits/playbook/pb_drawer/context.ts +0 -11
  203. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +0 -8
  204. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +0 -41
  205. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +0 -33
  206. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +0 -78
  207. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +0 -3
  208. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +0 -26
  209. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +0 -20
  210. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +0 -59
  211. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +0 -24
  212. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +0 -61
  213. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +0 -24
  214. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +0 -21
  215. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +0 -54
  216. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +0 -1
  217. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +0 -49
  218. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +0 -99
  219. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +0 -20
  220. data/app/pb_kits/playbook/pb_drawer/docs/index.js +0 -7
  221. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +0 -20
  222. data/app/pb_kits/playbook/pb_drawer/drawer.rb +0 -56
  223. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +0 -81
  224. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +0 -60
  225. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +0 -21
  226. data/app/pb_kits/playbook/pb_drawer/index.js +0 -257
@@ -1,107 +1,144 @@
1
1
  @import "card_mixin";
2
2
  @import "../utilities/colors";
3
+ @import "../tokens/border_radius";
3
4
 
4
- [class^=pb_card_kit] {
5
+ .pb_card_kit {
5
6
  @include pb_card;
6
7
  padding: $space_md;
7
8
 
8
- &[class*=_selected] {
9
- @include pb_card_selected;
9
+ .card_draggable_handle {
10
+ align-self: center;
11
+ color: $text_lt_light;
10
12
  }
13
+ }
11
14
 
12
- &.dark {
13
- @include pb_card_dark;
15
+ // Selected state
16
+ .pb_card_kit_selected {
17
+ @include pb_card_selected;
18
+ }
14
19
 
15
- &[class*=_selected] {
16
- @include pb_card_selected_dark;
17
- }
20
+ // Dark mode
21
+ .pb_card_kit.dark {
22
+ @include pb_card_dark;
23
+
24
+ &.pb_card_kit_selected {
25
+ @include pb_card_selected_dark;
18
26
  }
27
+ }
19
28
 
20
- &[class*=_border_none] {
21
- border-width: 0px;
22
- }
29
+ // Border styles
30
+ .pb_card_kit_border_none {
31
+ border-width: 0px;
32
+ }
23
33
 
24
- @function ends-with($string, $suffix) {
25
- $suffix-length: str-length($suffix);
26
- @if $suffix-length == 0 {
27
- @return true;
28
- }
29
- @return str-slice($string, -$suffix-length) == $suffix;
34
+ // Highlight styles
35
+ .pb_card_kit_highlight_top,
36
+ .pb_card_kit_highlight_side {
37
+ overflow: hidden;
38
+ }
39
+
40
+ @function ends-with($string, $suffix) {
41
+ $suffix-length: str-length($suffix);
42
+ @if $suffix-length == 0 {
43
+ @return true;
30
44
  }
45
+ @return str-slice($string, -$suffix-length) == $suffix;
46
+ }
31
47
 
32
- [class^=pb_card_header_kit] {
33
- flex-grow: 0;
34
- flex-shrink: 0;
35
- flex-basis: auto;
36
- min-height: 1px;
37
- padding: $space_sm;
38
- border: 0;
39
- border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
40
- @each $color_name, $color_value in $pb_card_header_colors {
41
- @if not ends-with($color_name, '_subtle') {
42
- &[class*="_#{$color_name}"] {
43
- @include pb_card_header_color($color_value);
44
- color: lightenText($color_value);
45
- }
46
- }
47
- }
48
- @each $color_name, $color_value in $pb_card_header_colors {
49
- @if ends-with($color_name, '_subtle') {
50
- &[class*="_#{$color_name}"] {
51
- @include pb_card_header_color($color_value);
52
- color: lightenText($color_value);
53
- }
54
- }
55
- }
56
- @each $color_name, $color_value in $pb_card_header_colors {
57
- &[class*=_#{$color_name}_striped] {
58
- @if ((type-of($color_value) == color)) {
59
- background: repeating-linear-gradient(
60
- 45deg,
61
- $color_value,
62
- $color_value 10px,
63
- lighten( $color_value, 5% ) 10px,
64
- lighten( $color_value, 5% ) 20px
65
- );
66
- }
67
- }
68
- }
69
- &[class*=_white] {
70
- border-bottom: 1px solid $border_light;
71
- }
48
+ // Highlight top variants
49
+ @each $color_name, $color_value in $pb_card_highlight_colors {
50
+ .pb_card_kit_highlight_top.pb_card_kit_highlight_#{$color_name}::before {
51
+ @include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
72
52
  }
53
+ }
73
54
 
74
- [class^=pb_card_body_kit] {
75
- flex-grow: 0;
76
- flex-shrink: 0;
77
- flex-basis: auto;
78
- min-height: 1px;
79
- border: 0;
80
- padding: $space_md;
55
+ // Highlight side variants
56
+ @each $color_name, $color_value in $pb_card_highlight_colors {
57
+ .pb_card_kit_highlight_side.pb_card_kit_highlight_#{$color_name}::before {
58
+ @include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
81
59
  }
60
+ }
82
61
 
83
- &[class*=_highlight] {
84
- overflow: hidden;
62
+ // Card Header
63
+ .pb_card_header_kit {
64
+ flex-grow: 0;
65
+ flex-shrink: 0;
66
+ flex-basis: auto;
67
+ min-height: 1px;
68
+ padding: $space_sm;
69
+ border: 0;
70
+ border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
71
+
72
+ // Inherit border radius from parent card
73
+ .pb_card_kit_border_radius_xs & {
74
+ border-radius: $border_radius_xs $border_radius_xs 0px 0px;
75
+ }
76
+ .pb_card_kit_border_radius_sm & {
77
+ border-radius: $border_radius_sm $border_radius_sm 0px 0px;
78
+ }
79
+ .pb_card_kit_border_radius_md & {
80
+ border-radius: $border_radius_md $border_radius_md 0px 0px;
81
+ }
82
+ .pb_card_kit_border_radius_lg & {
83
+ border-radius: $border_radius_lg $border_radius_lg 0px 0px;
84
+ }
85
+ .pb_card_kit_border_radius_xl & {
86
+ border-radius: $border_radius_xl $border_radius_xl 0px 0px;
85
87
  }
88
+ .pb_card_kit_border_radius_rounded & {
89
+ border-radius: $border_radius_rounded $border_radius_rounded 0px 0px;
90
+ }
91
+ .pb_card_kit_border_radius_none & {
92
+ border-radius: 0px;
93
+ }
94
+ }
86
95
 
87
- &[class*=_highlight_top] {
88
- @each $color_name, $color_value in $pb_card_highlight_colors {
89
- &[class*=_highlight_#{$color_name}]::before {
90
- @include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
91
- }
96
+ // Header colors (non-subtle)
97
+ @each $color_name, $color_value in $pb_card_header_colors {
98
+ @if not ends-with($color_name, '_subtle') {
99
+ .pb_card_header_kit_#{$color_name} {
100
+ @include pb_card_header_color($color_value);
101
+ color: lightenText($color_value);
92
102
  }
93
103
  }
104
+ }
94
105
 
95
- &[class*=_highlight_side] {
96
- @each $color_name, $color_value in $pb_card_highlight_colors {
97
- &[class*=_highlight_#{$color_name}]::before {
98
- @include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
99
- }
106
+ // Header colors (subtle)
107
+ @each $color_name, $color_value in $pb_card_header_colors {
108
+ @if ends-with($color_name, '_subtle') {
109
+ .pb_card_header_kit_#{$color_name} {
110
+ @include pb_card_header_color($color_value);
111
+ color: lightenText($color_value);
100
112
  }
101
113
  }
114
+ }
102
115
 
103
- .card_draggable_handle {
104
- align-self: center;
105
- color: $text_lt_light;
116
+ // Header striped patterns
117
+ @each $color_name, $color_value in $pb_card_header_colors {
118
+ .pb_card_header_kit_#{$color_name}_striped {
119
+ @if ((type-of($color_value) == color)) {
120
+ background: repeating-linear-gradient(
121
+ 45deg,
122
+ $color_value,
123
+ $color_value 10px,
124
+ lighten( $color_value, 5% ) 10px,
125
+ lighten( $color_value, 5% ) 20px
126
+ );
127
+ }
106
128
  }
107
129
  }
130
+
131
+ // White header special case
132
+ .pb_card_header_kit_white {
133
+ border-bottom: 1px solid $border_light;
134
+ }
135
+
136
+ // Card Body
137
+ .pb_card_body_kit {
138
+ flex-grow: 0;
139
+ flex-shrink: 0;
140
+ flex-basis: auto;
141
+ min-height: 1px;
142
+ border: 0;
143
+ padding: $space_md;
144
+ }
@@ -5,7 +5,7 @@ import { get } from '../utilities/object'
5
5
 
6
6
  import classnames from 'classnames'
7
7
 
8
- import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
8
+ import { buildAriaProps, buildDataProps, buildHtmlProps } from '../utilities/props'
9
9
  import { GlobalProps, globalProps, globalInlineProps } from '../utilities/globalProps'
10
10
  import type { ProductColors, CategoryColors, BackgroundColors, StatusColors } from '../types/colors'
11
11
 
@@ -54,7 +54,14 @@ type CardBodyProps = {
54
54
  // Header component
55
55
  const Header = (props: CardHeaderProps) => {
56
56
  const { children, className, headerColor = 'category_1', headerColorStriped = false } = props
57
- const headerCSS = buildCss('pb_card_header_kit', `${headerColor}`, headerColorStriped ? 'striped' : '')
57
+ const headerColorCSS = `pb_card_header_kit_${headerColor}`
58
+ const headerStripedCSS = headerColorStriped ? `pb_card_header_kit_${headerColor}_striped` : ''
59
+
60
+ const headerCSS = classnames(
61
+ 'pb_card_header_kit',
62
+ headerColorCSS,
63
+ headerStripedCSS
64
+ )
58
65
 
59
66
  const headerSpacing = globalProps(props)
60
67
 
@@ -69,11 +76,10 @@ const Header = (props: CardHeaderProps) => {
69
76
  // Body component
70
77
  const Body = (props: CardBodyProps) => {
71
78
  const { children, className } = props
72
- const bodyCSS = buildCss('pb_card_body_kit')
73
79
  const bodySpacing = globalProps(props)
74
80
 
75
81
  return (
76
- <div className={classnames(bodyCSS, bodySpacing, className)}>
82
+ <div className={classnames('pb_card_body_kit', bodySpacing, className)}>
77
83
  {children}
78
84
  </div>
79
85
  )
@@ -96,13 +102,22 @@ const Card = (props: CardPropTypes): React.ReactElement => {
96
102
  selected = false,
97
103
  tag = 'div',
98
104
  } = props
99
- const borderCSS = borderNone == true ? 'border_none' : ''
100
- const selectedCSS = selected == true ? 'selected' : 'deselected'
101
- const backgroundCSS = background == 'none' ? '' : `background_${background}`
102
- const cardCss = buildCss('pb_card_kit', selectedCSS, borderCSS, `border_radius_${borderRadius}`, backgroundCSS, {
103
- [`highlight_${highlight.position}`]: highlight.position,
104
- [`highlight_${highlight.color}`]: highlight.color,
105
- })
105
+ const borderCSS = borderNone == true ? 'pb_card_kit_border_none' : ''
106
+ const selectedCSS = selected == true ? 'pb_card_kit_selected' : ''
107
+ const backgroundCSS = background == 'none' ? '' : `pb_card_kit_background_${background}`
108
+ const borderRadiusCSS = borderRadius !== 'md' ? `pb_card_kit_border_radius_${borderRadius}` : ''
109
+ const highlightPositionCSS = highlight.position ? `pb_card_kit_highlight_${highlight.position}` : ''
110
+ const highlightColorCSS = highlight.color ? `pb_card_kit_highlight_${highlight.color}` : ''
111
+
112
+ const cardCss = classnames(
113
+ 'pb_card_kit', // Base class
114
+ selectedCSS,
115
+ borderCSS,
116
+ borderRadiusCSS,
117
+ backgroundCSS,
118
+ highlightPositionCSS,
119
+ highlightColorCSS
120
+ )
106
121
  const ariaProps: {[key: string]: string} = buildAriaProps(aria)
107
122
  const dataProps: {[key: string]: string} = buildDataProps(data)
108
123
  const htmlProps = buildHtmlProps(htmlOptions);
@@ -89,4 +89,4 @@ $pb_card_header_colors: map-merge(map-merge(map-merge($product_colors, $addition
89
89
 
90
90
  @mixin pb_card_header_color($header_color) {
91
91
  background: $header_color;
92
- }
92
+ }
@@ -29,13 +29,14 @@ module Playbook
29
29
  default: nil
30
30
 
31
31
  def classname
32
- generate_classname("pb_card_kit",
33
- selected_class,
34
- border_class,
35
- border_radius_class,
36
- background_class,
37
- highlight_position_class,
38
- highlight_color_class)
32
+ classes = ["pb_card_kit"]
33
+ classes << "pb_card_kit_selected" if selected
34
+ classes << "pb_card_kit_border_none" if border_none
35
+ classes << "pb_card_kit_border_radius_#{border_radius}" if border_radius != "md"
36
+ classes << "pb_card_kit_background_#{background}" if background != "none"
37
+ classes << "pb_card_kit_highlight_#{highlight[:position]}" if highlight[:position].present?
38
+ classes << "pb_card_kit_highlight_#{highlight[:color]}" if highlight[:color].present?
39
+ generate_classname(classes.compact.join(" "))
39
40
  end
40
41
 
41
42
  private
@@ -9,13 +9,17 @@ module Playbook
9
9
  default: false
10
10
 
11
11
  def classname
12
- generate_classname("pb_card_header_kit", header_color, color_striped_classname)
12
+ generate_classname("pb_card_header_kit", header_color_classname, color_striped_classname, separator: " ")
13
13
  end
14
14
 
15
15
  private
16
16
 
17
17
  def color_striped_classname
18
- header_color_striped ? "striped" : nil
18
+ header_color_striped ? "pb_card_header_kit_#{header_color}_striped" : nil
19
+ end
20
+
21
+ def header_color_classname
22
+ header_color ? "pb_card_header_kit_#{header_color}" : nil
19
23
  end
20
24
  end
21
25
  end
@@ -50,7 +50,7 @@
50
50
  <% end %>
51
51
 
52
52
  <%= pb_rails("card", props: { padding: "none", header: true, margin_bottom: "sm"}) do %>
53
- <%= pb_rails("card/card_header", props: { padding: "sm", header_color: "bg_dark" }) do %>
53
+ <%= pb_rails("card/card_header", props: { padding: "sm", header_color: "dark" }) do %>
54
54
  <%= pb_rails("body", props: { text: "Dark", dark: true }) %>
55
55
  <% end %>
56
56
  <%= pb_rails("card/card_body", props: { padding: "md" }) do %>
@@ -3,7 +3,16 @@
3
3
  @import "../tokens/positioning";
4
4
  $transition: $transition_cubic;
5
5
 
6
- [class^=pb_checkbox_kit] {
6
+ .pb_checkbox_kit,
7
+ .pb_checkbox_kit_on,
8
+ .pb_checkbox_kit_off,
9
+ .pb_checkbox_kit_checked,
10
+ .pb_checkbox_kit_error,
11
+ .pb_checkbox_kit_indeterminate,
12
+ .pb_checkbox_kit_checked_error,
13
+ .pb_checkbox_kit_checked_indeterminate,
14
+ .pb_checkbox_kit_error_indeterminate,
15
+ .pb_checkbox_kit_checked_error_indeterminate {
7
16
  cursor: pointer;
8
17
  display: inline-flex;
9
18
  vertical-align: middle;
@@ -159,4 +168,4 @@ $transition: $transition_cubic;
159
168
  border-color: $error;
160
169
  }
161
170
  }
162
- }
171
+ }
@@ -37,25 +37,25 @@ $pb_button_styles: (
37
37
  }
38
38
  }
39
39
 
40
- [class^=pb_circle_icon_button_kit] {
40
+ .pb_circle_icon_button_kit {
41
41
  @each $style in $pb_button_styles {
42
- [class^=pb_button_kit][class*=_#{$style}] {
42
+ .pb_button_kit.pb_button_#{$style} {
43
43
  @include pb_circle_icon_button;
44
44
  }
45
45
  }
46
46
  :first-child {
47
- &[class*=_link] {
47
+ &.pb_button_kit.pb_button_link {
48
48
  @include pb_circle_icon_button_active;
49
49
  }
50
- &.dark {
51
- &[class*=_link] {
50
+ &.dark {
51
+ &.pb_button_kit.pb_button_link {
52
52
  @include pb_circle_icon_button_active_dark;
53
53
  }
54
54
  }
55
55
  }
56
56
  &.size_small {
57
57
  @each $style in $pb_button_styles {
58
- [class^=pb_button_kit][class*=_#{$style}] {
58
+ .pb_button_kit.pb_button_#{$style} {
59
59
  width: 20px;
60
60
  height: 20px;
61
61
  min-height: 20px;
@@ -91,4 +91,4 @@ $pb_button_styles: (
91
91
  }
92
92
  }
93
93
  }
94
- }
94
+ }
@@ -26,7 +26,7 @@ test('passes loading prop to button', () => {
26
26
  )
27
27
 
28
28
  const kit = screen.getByTestId('loading-test')
29
- const button = kit.querySelector('.pb_button_kit_primary_inline_enabled_loading')
29
+ const button = kit.querySelector('.pb_button_kit.pb_button_primary.pb_button_inline.pb_button_enabled.pb_button_loading')
30
30
 
31
31
  expect(button).toBeInTheDocument()
32
32
  })
@@ -11,7 +11,7 @@ exports[`html structure is correct 1`] = `
11
11
  >
12
12
  <div>
13
13
  <div
14
- class="pb_flex_kit_orientation_row_justify_content_left_align_items_center_spacing_between"
14
+ class="pb_flex_kit pb_flex_kit_orientation_row pb_flex_kit_justify_content_left pb_flex_kit_align_items_center pb_flex_kit_spacing_between"
15
15
  >
16
16
  <div
17
17
  class="pb_flex_item_kit"
@@ -1,7 +1,7 @@
1
1
  @import "tokens/colors";
2
2
  @import "tokens/spacing";
3
3
 
4
- [class^=pb_collapsible_kit] {
4
+ .pb_collapsible_kit {
5
5
  padding: $space_md;
6
6
 
7
7
  .toggle-content {
@@ -28,10 +28,10 @@
28
28
  }
29
29
  }
30
30
 
31
- [class^=pb_collapsible_main_kit] {
31
+ .pb_collapsible_main_kit {
32
32
  padding: $space_md;
33
33
  }
34
34
 
35
- [class^=pb_collapsible_content_kit] {
35
+ .pb_collapsible_content_kit {
36
36
  padding: $space_md;
37
- }
37
+ }
@@ -52,7 +52,7 @@ test('passes text and tooltip props to button', () => {
52
52
  expect(content).toHaveTextContent("text")
53
53
 
54
54
  const kit = screen.getByTestId('text-test')
55
- const button = kit.querySelector('.pb_button_kit_primary_inline_enabled')
55
+ const button = kit.querySelector('.pb_button_kit.pb_button_primary.pb_button_inline.pb_button_enabled')
56
56
  expect(button).toBeInTheDocument()
57
57
 
58
58
  fireEvent.click(button)