playbook_ui 14.25.0.pre.alpha.dialogfix10277 → 14.25.0.pre.alpha.play1986inlineloadingsolidvariant9963

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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  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 +65 -60
  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 +29 -135
  9. data/app/pb_kits/playbook/pb_body/_body.scss +35 -108
  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 +30 -17
  12. data/app/pb_kits/playbook/pb_button/_button.scss +31 -39
  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 +18 -11
  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 +73 -82
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +33 -32
  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 +17 -100
  22. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +8 -1
  23. data/app/pb_kits/playbook/pb_card/_card.scss +79 -116
  24. data/app/pb_kits/playbook/pb_card/_card.tsx +11 -26
  25. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  26. data/app/pb_kits/playbook/pb_card/card.rb +7 -8
  27. data/app/pb_kits/playbook/pb_card/card_header.rb +2 -6
  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 +2 -11
  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 +39 -124
  36. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +6 -16
  37. data/app/pb_kits/playbook/pb_date/_date.scss +18 -16
  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 +5 -6
  42. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +23 -29
  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 +26 -66
  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 +15 -8
  50. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +7 -6
  51. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +14 -17
  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 +21 -86
  54. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +123 -330
  55. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +7 -5
  56. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +2 -16
  57. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +7 -10
  58. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  59. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +25 -0
  60. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +381 -0
  61. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +231 -0
  62. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +3 -0
  63. data/app/pb_kits/playbook/pb_drawer/context.ts +11 -0
  64. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +8 -0
  65. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +41 -0
  66. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +33 -0
  67. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +78 -0
  68. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +3 -0
  69. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +26 -0
  70. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +20 -0
  71. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +59 -0
  72. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +24 -0
  73. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +61 -0
  74. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +24 -0
  75. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +21 -0
  76. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +54 -0
  77. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +1 -0
  78. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +49 -0
  79. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +99 -0
  80. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +20 -0
  81. data/app/pb_kits/playbook/pb_drawer/docs/index.js +7 -0
  82. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +20 -0
  83. data/app/pb_kits/playbook/pb_drawer/drawer.rb +56 -0
  84. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +81 -0
  85. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +60 -0
  86. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +21 -0
  87. data/app/pb_kits/playbook/pb_drawer/index.js +257 -0
  88. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  89. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  90. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  91. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  92. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +9 -20
  93. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  94. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  95. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +29 -65
  96. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +2 -1
  97. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  98. data/app/pb_kits/playbook/pb_flex/_flex.scss +100 -106
  99. data/app/pb_kits/playbook/pb_flex/_flex.tsx +25 -32
  100. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +51 -146
  101. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +8 -19
  102. data/app/pb_kits/playbook/pb_flex/flex.rb +16 -16
  103. data/app/pb_kits/playbook/pb_flex/flex_item.rb +6 -6
  104. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  105. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +344 -381
  106. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  107. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +7 -8
  108. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +2 -9
  109. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  110. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  111. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  112. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  113. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  114. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +39 -40
  115. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  116. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  117. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +15 -16
  118. data/app/pb_kits/playbook/pb_image/_image.scss +36 -41
  119. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  120. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +2 -3
  121. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  122. data/app/pb_kits/playbook/pb_layout/_layout.scss +305 -336
  123. data/app/pb_kits/playbook/pb_layout/_layout.tsx +11 -14
  124. data/app/pb_kits/playbook/pb_layout/item.rb +7 -1
  125. data/app/pb_kits/playbook/pb_layout/layout.rb +25 -16
  126. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  127. data/app/pb_kits/playbook/pb_legend/_legend.scss +16 -66
  128. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  129. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  130. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  131. data/app/pb_kits/playbook/pb_link/_link.scss +19 -113
  132. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  133. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +11 -13
  134. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +3 -1
  135. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.html.erb +5 -0
  136. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +24 -0
  137. data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
  138. data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
  139. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
  140. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +11 -0
  141. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  142. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  143. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  144. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  145. data/app/pb_kits/playbook/pb_message/_message.scss +16 -21
  146. data/app/pb_kits/playbook/pb_message/_message.tsx +0 -1
  147. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +12 -5
  148. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  149. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +3 -6
  150. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +15 -16
  151. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  152. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  153. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  154. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +15 -19
  155. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  156. data/app/pb_kits/playbook/pb_online_status/online_status.rb +4 -5
  157. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  158. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  159. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  160. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +2 -5
  161. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  162. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  163. data/app/pb_kits/playbook/pb_pill/_pill.scss +21 -23
  164. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +13 -15
  165. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +33 -108
  166. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  167. data/app/pb_kits/playbook/pb_radio/_radio.scss +52 -71
  168. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  169. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +3 -0
  170. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  171. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +70 -81
  172. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +1 -9
  173. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  174. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +1 -3
  175. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -7
  176. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  177. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +2 -6
  178. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -17
  179. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +29 -39
  180. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +0 -2
  181. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +11 -8
  182. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +3 -2
  183. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  184. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  185. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  186. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  187. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  188. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  189. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  190. data/app/pb_kits/playbook/pb_time/_time.scss +17 -44
  191. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +23 -44
  192. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  193. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +8 -5
  194. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +10 -16
  195. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +4 -1
  196. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  197. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  198. data/app/pb_kits/playbook/pb_title/_title.scss +39 -44
  199. data/app/pb_kits/playbook/pb_title/_title.tsx +8 -17
  200. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  201. data/app/pb_kits/playbook/pb_title/title.rb +10 -20
  202. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  203. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +8 -19
  204. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +11 -10
  205. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +1 -4
  206. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +4 -3
  207. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  208. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  209. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  210. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  211. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +22 -1
  212. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  213. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +2 -2
  214. data/app/pb_kits/playbook/pb_user/_user.scss +33 -83
  215. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  216. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +8 -23
  217. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  218. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  219. data/dist/chunks/{_line_graph-CApw7aQD.js → _line_graph-CiVc-Cod.js} +1 -1
  220. data/dist/chunks/{_typeahead-J1_avqdO.js → _typeahead-BQnvz-Ks.js} +1 -1
  221. data/dist/chunks/_weekday_stacked-BkvHv3ZO.js +37 -0
  222. data/dist/chunks/vendor.js +1 -1
  223. data/dist/menu.yml +6 -0
  224. data/dist/playbook-doc.js +2 -2
  225. data/dist/playbook-rails-react-bindings.js +1 -1
  226. data/dist/playbook-rails.js +1 -1
  227. data/dist/playbook.css +1 -1
  228. data/lib/playbook/version.rb +1 -1
  229. metadata +36 -5
  230. data/dist/chunks/_weekday_stacked-Bugv1mOh.js +0 -37
@@ -1,144 +1,107 @@
1
1
  @import "card_mixin";
2
2
  @import "../utilities/colors";
3
- @import "../tokens/border_radius";
4
3
 
5
- .pb_card_kit {
4
+ [class^=pb_card_kit] {
6
5
  @include pb_card;
7
6
  padding: $space_md;
8
7
 
9
- .card_draggable_handle {
10
- align-self: center;
11
- color: $text_lt_light;
8
+ &[class*=_selected] {
9
+ @include pb_card_selected;
12
10
  }
13
- }
14
11
 
15
- // Selected state
16
- .pb_card_kit_selected {
17
- @include pb_card_selected;
18
- }
12
+ &.dark {
13
+ @include pb_card_dark;
19
14
 
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;
15
+ &[class*=_selected] {
16
+ @include pb_card_selected_dark;
17
+ }
26
18
  }
27
- }
28
-
29
- // Border styles
30
- .pb_card_kit_border_none {
31
- border-width: 0px;
32
- }
33
19
 
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;
20
+ &[class*=_border_none] {
21
+ border-width: 0px;
44
22
  }
45
- @return str-slice($string, -$suffix-length) == $suffix;
46
- }
47
23
 
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);
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;
52
30
  }
53
- }
54
31
 
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);
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
+ }
59
72
  }
60
- }
61
73
 
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;
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;
87
81
  }
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
- }
95
82
 
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);
102
- }
83
+ &[class*=_highlight] {
84
+ overflow: hidden;
103
85
  }
104
- }
105
86
 
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);
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
+ }
112
92
  }
113
93
  }
114
- }
115
94
 
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
- );
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
+ }
127
100
  }
128
101
  }
129
- }
130
102
 
131
- // White header special case
132
- .pb_card_header_kit_white {
133
- border-bottom: 1px solid $border_light;
103
+ .card_draggable_handle {
104
+ align-self: center;
105
+ color: $text_lt_light;
106
+ }
134
107
  }
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, buildDataProps, buildHtmlProps } from '../utilities/props'
8
+ import { buildAriaProps, buildCss, 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,14 +54,7 @@ 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 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
- )
57
+ const headerCSS = buildCss('pb_card_header_kit', `${headerColor}`, headerColorStriped ? 'striped' : '')
65
58
 
66
59
  const headerSpacing = globalProps(props)
67
60
 
@@ -76,10 +69,11 @@ const Header = (props: CardHeaderProps) => {
76
69
  // Body component
77
70
  const Body = (props: CardBodyProps) => {
78
71
  const { children, className } = props
72
+ const bodyCSS = buildCss('pb_card_body_kit')
79
73
  const bodySpacing = globalProps(props)
80
74
 
81
75
  return (
82
- <div className={classnames('pb_card_body_kit', bodySpacing, className)}>
76
+ <div className={classnames(bodyCSS, bodySpacing, className)}>
83
77
  {children}
84
78
  </div>
85
79
  )
@@ -102,22 +96,13 @@ const Card = (props: CardPropTypes): React.ReactElement => {
102
96
  selected = false,
103
97
  tag = 'div',
104
98
  } = props
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
- )
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
+ })
121
106
  const ariaProps: {[key: string]: string} = buildAriaProps(aria)
122
107
  const dataProps: {[key: string]: string} = buildDataProps(data)
123
108
  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,14 +29,13 @@ module Playbook
29
29
  default: nil
30
30
 
31
31
  def classname
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(" "))
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)
40
39
  end
41
40
 
42
41
  private
@@ -9,17 +9,13 @@ module Playbook
9
9
  default: false
10
10
 
11
11
  def classname
12
- generate_classname("pb_card_header_kit", header_color_classname, color_striped_classname, separator: " ")
12
+ generate_classname("pb_card_header_kit", header_color, color_striped_classname)
13
13
  end
14
14
 
15
15
  private
16
16
 
17
17
  def color_striped_classname
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
18
+ header_color_striped ? "striped" : nil
23
19
  end
24
20
  end
25
21
  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: "dark" }) do %>
53
+ <%= pb_rails("card/card_header", props: { padding: "sm", header_color: "bg_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,16 +3,7 @@
3
3
  @import "../tokens/positioning";
4
4
  $transition: $transition_cubic;
5
5
 
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 {
6
+ [class^=pb_checkbox_kit] {
16
7
  cursor: pointer;
17
8
  display: inline-flex;
18
9
  vertical-align: middle;
@@ -168,4 +159,4 @@ $transition: $transition_cubic;
168
159
  border-color: $error;
169
160
  }
170
161
  }
171
- }
162
+ }
@@ -37,25 +37,25 @@ $pb_button_styles: (
37
37
  }
38
38
  }
39
39
 
40
- .pb_circle_icon_button_kit {
40
+ [class^=pb_circle_icon_button_kit] {
41
41
  @each $style in $pb_button_styles {
42
- .pb_button_kit.pb_button_#{$style} {
42
+ [class^=pb_button_kit][class*=_#{$style}] {
43
43
  @include pb_circle_icon_button;
44
44
  }
45
45
  }
46
46
  :first-child {
47
- &.pb_button_kit.pb_button_link {
47
+ &[class*=_link] {
48
48
  @include pb_circle_icon_button_active;
49
49
  }
50
- &.dark {
51
- &.pb_button_kit.pb_button_link {
50
+ &.dark {
51
+ &[class*=_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
- .pb_button_kit.pb_button_#{$style} {
58
+ [class^=pb_button_kit][class*=_#{$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.pb_button_primary.pb_button_inline.pb_button_enabled.pb_button_loading')
29
+ const button = kit.querySelector('.pb_button_kit_primary_inline_enabled_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 pb_flex_kit_orientation_row pb_flex_kit_justify_content_left pb_flex_kit_align_items_center pb_flex_kit_spacing_between"
14
+ class="pb_flex_kit_orientation_row_justify_content_left_align_items_center_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
- .pb_collapsible_kit {
4
+ [class^=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
- .pb_collapsible_main_kit {
31
+ [class^=pb_collapsible_main_kit] {
32
32
  padding: $space_md;
33
33
  }
34
34
 
35
- .pb_collapsible_content_kit {
35
+ [class^=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.pb_button_primary.pb_button_inline.pb_button_enabled')
55
+ const button = kit.querySelector('.pb_button_kit_primary_inline_enabled')
56
56
  expect(button).toBeInTheDocument()
57
57
 
58
58
  fireEvent.click(button)