playbook_ui 14.25.0.pre.alpha.PLAY2419dialogaccessibility10271 → 14.25.0.pre.alpha.PLAY2422fixedconftoastaccessibility9840

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 (233) 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 -2
  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/_close_icon.tsx +1 -5
  55. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +123 -330
  56. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +1 -1
  57. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -1
  58. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +2 -2
  59. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +2 -16
  60. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +7 -10
  61. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  62. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +25 -0
  63. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +381 -0
  64. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +231 -0
  65. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +3 -0
  66. data/app/pb_kits/playbook/pb_drawer/context.ts +11 -0
  67. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +8 -0
  68. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +41 -0
  69. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +33 -0
  70. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +78 -0
  71. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +3 -0
  72. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +26 -0
  73. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +20 -0
  74. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +59 -0
  75. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +24 -0
  76. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +61 -0
  77. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +24 -0
  78. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +21 -0
  79. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +54 -0
  80. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +1 -0
  81. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +49 -0
  82. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +99 -0
  83. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +20 -0
  84. data/app/pb_kits/playbook/pb_drawer/docs/index.js +7 -0
  85. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +20 -0
  86. data/app/pb_kits/playbook/pb_drawer/drawer.rb +56 -0
  87. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +81 -0
  88. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +60 -0
  89. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +21 -0
  90. data/app/pb_kits/playbook/pb_drawer/index.js +257 -0
  91. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  92. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  93. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  94. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  95. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +9 -20
  96. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  97. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  98. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +29 -65
  99. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +17 -1
  100. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_props_swift.md +2 -3
  101. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +3 -3
  102. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  103. data/app/pb_kits/playbook/pb_flex/_flex.scss +100 -106
  104. data/app/pb_kits/playbook/pb_flex/_flex.tsx +25 -32
  105. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +51 -146
  106. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +8 -19
  107. data/app/pb_kits/playbook/pb_flex/flex.rb +16 -16
  108. data/app/pb_kits/playbook/pb_flex/flex_item.rb +6 -6
  109. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  110. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +344 -381
  111. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  112. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +7 -8
  113. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +2 -9
  114. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  115. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  116. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  117. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  118. data/app/pb_kits/playbook/pb_icon/_icon.tsx +2 -13
  119. data/app/pb_kits/playbook/pb_icon/icon.rb +1 -9
  120. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  121. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +39 -40
  122. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +1 -1
  123. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  124. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  125. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +15 -16
  126. data/app/pb_kits/playbook/pb_image/_image.scss +36 -41
  127. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  128. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +2 -3
  129. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  130. data/app/pb_kits/playbook/pb_layout/_layout.scss +305 -336
  131. data/app/pb_kits/playbook/pb_layout/_layout.tsx +11 -14
  132. data/app/pb_kits/playbook/pb_layout/item.rb +7 -1
  133. data/app/pb_kits/playbook/pb_layout/layout.rb +25 -16
  134. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  135. data/app/pb_kits/playbook/pb_legend/_legend.scss +16 -66
  136. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  137. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  138. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  139. data/app/pb_kits/playbook/pb_link/_link.scss +19 -113
  140. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  141. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +11 -13
  142. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  143. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  144. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  145. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  146. data/app/pb_kits/playbook/pb_message/_message.scss +16 -21
  147. data/app/pb_kits/playbook/pb_message/_message.tsx +0 -1
  148. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +12 -5
  149. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  150. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +3 -6
  151. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +15 -16
  152. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  153. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  154. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  155. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +15 -19
  156. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  157. data/app/pb_kits/playbook/pb_online_status/online_status.rb +4 -5
  158. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  159. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  160. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  161. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +2 -5
  162. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  163. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  164. data/app/pb_kits/playbook/pb_pill/_pill.scss +21 -23
  165. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +13 -15
  166. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +33 -108
  167. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  168. data/app/pb_kits/playbook/pb_radio/_radio.scss +52 -71
  169. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  170. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +3 -0
  171. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  172. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +70 -81
  173. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +1 -9
  174. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  175. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +1 -3
  176. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -7
  177. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  178. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +2 -6
  179. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -17
  180. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +29 -39
  181. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +0 -2
  182. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +11 -8
  183. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +3 -2
  184. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  185. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  186. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  187. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  188. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  189. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  190. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  191. data/app/pb_kits/playbook/pb_time/_time.scss +17 -44
  192. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +23 -44
  193. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  194. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +8 -5
  195. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +10 -16
  196. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +4 -1
  197. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  198. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  199. data/app/pb_kits/playbook/pb_title/_title.scss +39 -44
  200. data/app/pb_kits/playbook/pb_title/_title.tsx +8 -17
  201. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  202. data/app/pb_kits/playbook/pb_title/title.rb +10 -20
  203. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  204. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +8 -19
  205. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +11 -10
  206. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +1 -4
  207. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +4 -3
  208. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  209. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  210. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  211. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  212. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +22 -1
  213. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  214. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +2 -2
  215. data/app/pb_kits/playbook/pb_user/_user.scss +33 -83
  216. data/app/pb_kits/playbook/pb_user/docs/_user_props_table.md +7 -14
  217. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  218. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +8 -23
  219. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  220. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  221. data/dist/chunks/{_line_graph-pjRvO-Xb.js → _line_graph-CiVc-Cod.js} +1 -1
  222. data/dist/chunks/_typeahead-BQnvz-Ks.js +6 -0
  223. data/dist/chunks/{_weekday_stacked-CXuGHKcc.js → _weekday_stacked-CIrRrYKI.js} +2 -2
  224. data/dist/chunks/vendor.js +1 -1
  225. data/dist/menu.yml +6 -0
  226. data/dist/playbook-doc.js +2 -2
  227. data/dist/playbook-rails-react-bindings.js +1 -1
  228. data/dist/playbook-rails.js +1 -1
  229. data/dist/playbook.css +1 -1
  230. data/lib/playbook/version.rb +1 -1
  231. metadata +34 -6
  232. data/app/pb_kits/playbook/pb_date/date.test.js +0 -506
  233. data/dist/chunks/_typeahead-CZo22jaG.js +0 -6
@@ -13,7 +13,7 @@ test('should render classname', () => {
13
13
  )
14
14
 
15
15
  const kit = screen.getByTestId(testId)
16
- expect(kit).toHaveClass('pb_form_pill_kit pb_form_pill_primary pb_form_pill_none')
16
+ expect(kit).toHaveClass('pb_form_pill_kit_primary none')
17
17
  });
18
18
 
19
19
  test('displays text content', () => {
@@ -37,7 +37,7 @@ test('displays color variant', () => {
37
37
  />
38
38
  )
39
39
  const kit = screen.getByTestId(testId)
40
- expect(kit).toHaveClass(`pb_form_pill_kit pb_form_pill_neutral pb_form_pill_none`)
40
+ expect(kit).toHaveClass(`pb_form_pill_kit_neutral none`)
41
41
  });
42
42
 
43
43
  test('displays size variant', () => {
@@ -49,7 +49,7 @@ test('displays size variant', () => {
49
49
  />
50
50
  )
51
51
  const kit = screen.getByTestId('formpill')
52
- expect(kit).toHaveClass(`pb_form_pill_kit pb_form_pill_small pb_form_pill_primary pb_form_pill_none`)
52
+ expect(kit).toHaveClass(`pb_form_pill_kit_primary small none`)
53
53
  });
54
54
 
55
55
  test('displays icon', () => {
@@ -60,5 +60,5 @@ test('displays icon', () => {
60
60
  />
61
61
  )
62
62
  const kit = screen.getByTestId('formpill')
63
- expect(kit).toHaveClass(`pb_form_pill_kit_icon pb_form_pill_primary pb_form_pill_none`)
63
+ expect(kit).toHaveClass(`pb_form_pill_kit_primary_icon none`)
64
64
  });
@@ -48,7 +48,7 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
48
48
  icon = "",
49
49
  } = props
50
50
 
51
- const iconClass = icon ? "icon" : ""
51
+ const iconClass = icon ? "_icon" : ""
52
52
  const closeIconSize = size === "small" ? "xs" : "sm"
53
53
  const wrappedClass = wrapped ? "wrapped" : ""
54
54
 
@@ -56,13 +56,12 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
56
56
  delete filteredProps.truncate
57
57
 
58
58
  const css = classnames(
59
- icon ? 'pb_form_pill_kit_icon' : 'pb_form_pill_kit',
60
- wrapped ? 'pb_form_pill_wrapped' : null,
61
- size === 'small' ? 'pb_form_pill_small' : null,
62
- `pb_form_pill_${color}`,
63
- `pb_form_pill_${textTransform}`,
64
- globalProps(filteredProps),
65
- className,
59
+ `pb_form_pill_kit_${color}${iconClass}`,
60
+ globalProps(filteredProps),
61
+ wrappedClass,
62
+ className,
63
+ size === 'small' ? 'small' : null,
64
+ textTransform,
66
65
  )
67
66
 
68
67
  const dataProps = buildDataProps(data)
@@ -20,14 +20,7 @@ module Playbook
20
20
  default: false
21
21
 
22
22
  def classname
23
- classes = []
24
- classes << (icon ? "pb_form_pill_kit_icon" : "pb_form_pill_kit")
25
- classes << "pb_form_pill_wrapped" if wrapped
26
- classes << "pb_form_pill_small" if size == "small"
27
- classes << "pb_form_pill_#{color}"
28
- classes << "pb_form_pill_#{text_transform}"
29
- classes.join(" ")
30
- generate_classname(classes.join(" "), separator: " ")
23
+ generate_classname("pb_form_pill_kit", color, icon_class, name, text, text_transform, wrapped_class)
31
24
  end
32
25
 
33
26
  def display_text
@@ -39,7 +32,7 @@ module Playbook
39
32
  end
40
33
 
41
34
  def icon_class
42
- icon ? "icon" : ""
35
+ icon ? "icon" : nil
43
36
  end
44
37
 
45
38
  def close_icon_size
@@ -1,12 +1,12 @@
1
1
  @import "../tokens/colors";
2
2
 
3
- .pb_gauge_kit {
3
+ [class^=pb_gauge_kit] {
4
4
 
5
5
  .fix {
6
6
  fill: $text_lt_default;
7
7
  stroke: none;
8
8
 
9
- &.dark {
9
+ &[class*=dark] {
10
10
  fill: $text_dk_default;
11
11
  }
12
12
  }
@@ -16,7 +16,7 @@
16
16
  stroke: none;
17
17
  font: $regular $font_larger $font_family_base;
18
18
 
19
- &.dark {
19
+ &[class*=dark] {
20
20
  fill: $text_dk_light;
21
21
  }
22
22
  }
@@ -25,7 +25,7 @@
25
25
  stroke: none;
26
26
  font: $regular $font_base $font_family_base;
27
27
 
28
- &.dark {
28
+ &[class*=dark] {
29
29
  fill: $text_dk_light;
30
30
  }
31
31
  }
@@ -38,7 +38,7 @@
38
38
  stroke-linejoin: round;
39
39
  }
40
40
 
41
- &.dark {
41
+ &[class*=dark] {
42
42
  color: $text_dk_default;
43
43
 
44
44
  .pb_title_kit_size_1,
@@ -1,3 +1,3 @@
1
- .pb_hastag_kit {
1
+ [class^=pb_hastag_kit] {
2
2
  display: inline-block;
3
3
  }
@@ -1,4 +1,4 @@
1
- .pb_highlight_kit {
1
+ [class^=pb_highlight_kit] {
2
2
  background-color: rgba($yellow,$opacity_2);
3
3
 
4
4
  mark {
@@ -38,14 +38,14 @@ function HomeAdressStreetTest(props) {
38
38
 
39
39
  test("emphasize street by not setting a prop", () => {
40
40
  const { container } = render(<HomeAdressStreetTest />);
41
- expect(container.querySelector(".pb_title_kit.pb_title_4.pb_home_address_street_address")).toHaveTextContent(address);
41
+ expect(container.getElementsByClassName("pb_title_kit_size_4 pb_home_address_street_address")[0]).toHaveTextContent(address);
42
42
 
43
43
  cleanup()
44
44
  });
45
45
 
46
46
  test("emphasize city", () => {
47
47
  const { container } = render(<HomeAdressStreetTest emphasis="city" />);
48
- expect(container.querySelector(".pb_title_kit.pb_title_4.pb_home_address_street_address")).toHaveTextContent(city);
48
+ expect(container.getElementsByClassName("pb_title_kit_size_4 pb_home_address_street_address")[0]).toHaveTextContent(city);
49
49
 
50
50
  cleanup()
51
51
  });
@@ -20,7 +20,7 @@ export type IconSizes = "lg"
20
20
  | ""
21
21
 
22
22
  type IconProps = {
23
- aria?: { [key: string]: string | boolean }
23
+ aria?: {[key: string]: string},
24
24
  border?: string,
25
25
  className?: string,
26
26
  color?: string,
@@ -211,15 +211,7 @@ const Icon = (props: IconProps) => {
211
211
  )
212
212
 
213
213
  aria.label ? null : aria.label = `${icon} icon`
214
-
215
- const normalizedAria: { [key: string]: string } = Object.fromEntries(
216
- Object.entries(aria).map(([key, value]) => [
217
- key,
218
- typeof value === "boolean" ? String(value) : value,
219
- ])
220
- )
221
-
222
- const ariaProps = buildAriaProps(normalizedAria)
214
+ const ariaProps: {[key: string]: any} = buildAriaProps(aria)
223
215
  const dataProps: {[key: string]: any} = buildDataProps(data)
224
216
  const htmlProps = buildHtmlProps(htmlOptions)
225
217
 
@@ -230,7 +222,6 @@ const Icon = (props: IconProps) => {
230
222
  <>
231
223
  {
232
224
  React.cloneElement(iconElement || customIcon, {
233
- ...ariaProps,
234
225
  ...dataProps,
235
226
  ...htmlProps,
236
227
  className: classes,
@@ -246,7 +237,6 @@ const Icon = (props: IconProps) => {
246
237
  return (
247
238
  <>
248
239
  <span
249
- {...ariaProps}
250
240
  {...dataProps}
251
241
  {...htmlProps}
252
242
  className={classesEmoji}
@@ -260,7 +250,6 @@ const Icon = (props: IconProps) => {
260
250
  return (
261
251
  <>
262
252
  <i
263
- {...ariaProps}
264
253
  {...dataProps}
265
254
  {...htmlProps}
266
255
  className={classes}
@@ -110,20 +110,12 @@ module Playbook
110
110
  svg["class"] = %w[pb_custom_icon svg-inline--fa].concat([object.custom_icon_classname]).join(" ")
111
111
  svg["id"] = object.id
112
112
  svg["data"] = object.data
113
+ svg["aria"] = object.aria
113
114
  svg["height"] = "auto"
114
115
  svg["width"] = "auto"
115
116
  svg["tabindex"] = object.tabindex
116
117
  fill_color = object.color || "currentColor"
117
118
  doc.at_css("path")["fill"] = fill_color
118
-
119
- if object.aria.present?
120
- object.aria.each do |key, value|
121
- k = key.to_s
122
- attr = k.start_with?("aria-") ? k : "aria-#{k.tr('_', '-')}"
123
- svg[attr] = value
124
- end
125
- end
126
-
127
119
  raw doc
128
120
  rescue OpenURI::HTTPError, StandardError
129
121
  # Handle any exceptions and return an empty string
@@ -15,7 +15,7 @@ $icon_colors: (
15
15
  height: fit-content;
16
16
 
17
17
  &:hover {
18
- .pb_button_kit {
18
+ [class*="pb_button_kit"] {
19
19
  background-color: $bg_light;
20
20
  }
21
21
  .icon_button_icon {
@@ -24,7 +24,7 @@ $icon_colors: (
24
24
  }
25
25
 
26
26
  &:active {
27
- .pb_button_kit {
27
+ [class*="pb_button_kit"] {
28
28
  background-color: $bg_light;
29
29
  }
30
30
  .icon_button_icon {
@@ -33,7 +33,7 @@ $icon_colors: (
33
33
  }
34
34
 
35
35
  &:hover:active {
36
- .pb_button_kit {
36
+ [class*="pb_button_kit"] {
37
37
  background-color: $bg_light;
38
38
  }
39
39
  .icon_button_icon {
@@ -46,7 +46,7 @@ $icon_colors: (
46
46
  border-radius: 8px;
47
47
  }
48
48
 
49
- .pb_button_kit {
49
+ [class*="pb_button_kit"] {
50
50
  min-height: 0;
51
51
  background: none;
52
52
  position: relative;
@@ -14,56 +14,55 @@ $pb_icon_circle_sizes: (
14
14
  "xl": 100px,
15
15
  );
16
16
 
17
- // All icon circle variations with complete styling
18
- @each $size_name, $size_value in $pb_icon_circle_sizes {
19
- @each $color_name, $color_value in $colors {
20
- .pb_icon_circle_kit_size_#{$size_name}_#{$color_name} {
21
- // Base styles
22
- display: flex;
23
- justify-content: center;
24
- align-items: center;
25
- object-fit: cover;
26
- overflow: hidden;
17
+ [class^=pb_icon_circle_kit] {
18
+ display: flex;
19
+ justify-content: center;
20
+ align-items: center;
21
+ object-fit: cover;
22
+ overflow: hidden;
23
+ position: relative;
24
+ // font-family set to sans-serif ONLY for emojis.
25
+ //Needed to fix misalignment issue caused by Proxima font
26
+ .icon_circle_emoji {
27
+ font-family: monospace;
28
+ }
29
+
30
+ i,
31
+ svg {
32
+ &[class^=pb_icon_kit] {
33
+ width: 100%;
34
+ height: 100%;
35
+ display: block;
36
+ text-align: center;
37
+ text-transform: uppercase;
27
38
  position: relative;
28
-
29
- // Size-specific styles
30
- width: $size_value;
31
- height: $size_value;
32
- border-radius: $size_value/2;
39
+ z-index: 0;
40
+ }
41
+ }
42
+
43
+ @each $name, $size in $pb_icon_circle_sizes {
44
+ &[class*=_size_#{$name}] {
45
+ width: $size;
46
+ height: $size;
47
+ border-radius: $size/2;
33
48
  background: $silver;
34
49
  color: $text_lt_light;
35
- font-size: if($size_name == "xxs", $size_value - 6px, $size_value * 0.38);
36
- line-height: $size_value;
50
+ font-size: if($name == "xxs", $size - 6px, $size * 0.38);
51
+ line-height: $size;
37
52
  flex-shrink: 0;
38
53
  flex-grow: 0;
39
- flex-basis: $size_value;
40
-
41
- // Color/variant-specific styles
54
+ flex-basis: $size;
55
+ }
56
+ }
57
+
58
+ @each $color_name, $color_value in $colors {
59
+ &[class*=_#{"" + $color_name}] {
42
60
  color: $color_value;
43
61
  background: rgba(mix($bg_dark, $color_value, 10%), $opacity_1);
44
-
45
- // font-family set to sans-serif ONLY for emojis.
46
- // Needed to fix misalignment issue caused by Proxima font
47
- .icon_circle_emoji {
48
- font-family: monospace;
49
- }
50
-
51
- i,
52
- svg {
53
- &[class^=pb_icon_kit] {
54
- width: 100%;
55
- height: 100%;
56
- display: block;
57
- text-align: center;
58
- text-transform: uppercase;
59
- position: relative;
60
- z-index: 0;
61
- }
62
- }
63
-
64
62
  &.dark {
65
63
  background: rgba(mix($bg_dark, $color_value, 10%), $opacity_2);
66
64
  }
67
65
  }
68
66
  }
69
67
  }
68
+
@@ -1,3 +1,3 @@
1
1
  <%= pb_content_tag do %>
2
- <%= pb_rails("icon", props: { dark: object.dark, icon: object.icon, fixed_width: true, aria: { "aria-label": "#{object.icon} icon" } }) %>
2
+ <%= pb_rails("icon", props: { dark: object.dark, icon: object.icon, fixed_width: true }) %>
3
3
  <% end %>
@@ -11,7 +11,7 @@ module Playbook
11
11
  default: "md"
12
12
  prop :variant, type: Playbook::Props::Enum,
13
13
  values: %w[default royal blue orange purple teal red yellow green orange lighter],
14
- default: "default"
14
+ default: "lighter"
15
15
 
16
16
  def classname
17
17
  generate_classname("pb_icon_circle_kit", "size_#{size}", variant)
@@ -81,7 +81,7 @@ describe("IconStatValue Kit", () => {
81
81
  )
82
82
 
83
83
  const kit = screen.getByTestId(testId)
84
- const value = kit.querySelector(".pb_title_kit.pb_title_3")
84
+ const value = kit.querySelector(".pb_title_kit_size_3")
85
85
  expect(value.textContent).toEqual("64.18")
86
86
  })
87
87
 
@@ -3,34 +3,33 @@
3
3
  @import "../pb_icon/icon";
4
4
  @import "../pb_body/body";
5
5
 
6
- .pb_icon_value_kit_left,
7
- .pb_icon_value_kit_center,
8
- .pb_icon_value_kit_right {
6
+ [class^=pb_icon_value_kit] {
9
7
  display: flex;
10
8
  align-items: center;
11
9
 
12
- .pb_body_kit_light {
10
+ [class^=pb_body_kit] {
13
11
  font-size: $font-small !important;
14
12
  display: inline-flex;
15
13
  justify-content: flex-start;
16
14
  align-items: center;
17
15
 
18
- svg {
16
+ [class*=pb_icon_kit] {
19
17
  font-size: $font-large !important;
20
18
  margin-right: $space-xs !important;
21
19
  flex-shrink: 0;
22
20
  }
21
+ &.dark {
22
+
23
+ }
23
24
  }
24
- }
25
25
 
26
- .pb_icon_value_kit_left {
27
- justify-content: flex-start;
28
- }
29
-
30
- .pb_icon_value_kit_center {
31
- justify-content: center;
26
+ &[class*=_left] {
27
+ justify-content: flex-start;
28
+ }
29
+ &[class*=_center] {
30
+ justify-content: center;
31
+ }
32
+ &[class*=_right] {
33
+ justify-content: flex-end;
34
+ }
32
35
  }
33
-
34
- .pb_icon_value_kit_right {
35
- justify-content: flex-end;
36
- }
@@ -9,55 +9,50 @@ $image-sizes: (
9
9
  "xl": 140px,
10
10
  );
11
11
 
12
- .pb_image_kit,
13
- .pb_image_kit_size_xs,
14
- .pb_image_kit_size_sm,
15
- .pb_image_kit_size_md,
16
- .pb_image_kit_size_lg,
17
- .pb_image_kit_size_xl {
12
+ [class^=pb_image_kit] {
18
13
  position: relative;
19
14
  object-fit: cover;
20
15
 
21
- &.rounded {
22
- border-radius: $border-rad-heaviest;
23
- }
16
+ @each $name, $size in $image-sizes {
17
+ &[class*=size_#{$name}] {
18
+ width: $size;
19
+ height: $size;
20
+ object-fit: cover;
21
+ position: relative;
22
+ flex-shrink: 0;
23
+ flex-grow: 0;
24
+ flex-basis: $size;
25
+ }
24
26
 
25
- &.fade {
26
- opacity: 0;
27
- &.lazyloaded {
28
- opacity: 1;
29
- transition: opacity 300ms ease-in;
27
+ &[class*= rounded] {
28
+ border-radius: $border-rad-heaviest;
30
29
  }
31
- }
32
30
 
33
- &.blur {
34
- filter: blur(5px);
35
- &.lazyloaded {
36
- -webkit-filter: blur(0);
37
- filter: blur(0);
38
- transition: filter 300ms ease-in;
31
+ &.fade {
32
+ opacity: 0;
33
+ &.lazyloaded {
34
+ opacity: 1;
35
+ transition: opacity 300ms ease-in;
36
+ }
39
37
  }
40
- }
41
38
 
42
- &.scale {
43
- opacity: 0;
44
- transform: scale(0.9);
45
- &.lazyloaded {
46
- opacity: 1;
47
- transform: scale(1);
48
- transition: 700ms ease-in;
39
+ &.blur {
40
+ filter: blur(5px);
41
+ &.lazyloaded {
42
+ -webkit-filter: blur(0);
43
+ filter: blur(0);
44
+ transition: filter 300ms ease-in;
45
+ }
49
46
  }
50
- }
51
- }
52
47
 
53
- @each $name, $size in $image-sizes {
54
- .pb_image_kit_size_#{$name} {
55
- width: $size !important;
56
- height: $size !important;
57
- object-fit: cover;
58
- position: relative;
59
- flex-shrink: 0;
60
- flex-grow: 0;
61
- flex-basis: $size;
48
+ &.scale {
49
+ opacity: 0;
50
+ transform: scale(0.9);
51
+ &.lazyloaded {
52
+ opacity: 1;
53
+ transform: scale(1);
54
+ transition: 700ms ease-in;
55
+ }
56
+ }
62
57
  }
63
- }
58
+ }
@@ -1,7 +1,7 @@
1
1
  @import "../pb_caption/caption";
2
2
  @import "../pb_pill/pill";
3
3
 
4
- .pb_label_pill_kit {
4
+ [class^=pb_label_pill_kit] {
5
5
  display: flex;
6
6
  justify-content: flex-start;
7
7
  align-items: center;
@@ -1,8 +1,7 @@
1
1
  @import "../tokens/spacing";
2
2
 
3
- .pb_label_value_kit,
4
- .pb_label_value_kit_details {
5
- .pb_caption_kit_md {
3
+ [class^=pb_label_value_kit] {
4
+ [class^=pb_caption_kit] {
6
5
  margin-bottom: $space-xs/1.5;
7
6
  }
8
7
  }
@@ -71,7 +71,7 @@ describe("LabelValue Kit", () => {
71
71
  />
72
72
  )
73
73
  const kit = screen.getByTestId(testId)
74
- const text = kit.querySelector(".pb_title_kit.pb_title_4")
74
+ const text = kit.querySelector(".pb_title_kit_size_4")
75
75
  expect(text.textContent).toEqual("JD Installations LLC")
76
76
  })
77
77
 
@@ -103,7 +103,7 @@ describe("LabelValue Kit", () => {
103
103
  />
104
104
  )
105
105
  const kit = screen.getByTestId(testId)
106
- const activeProp = kit.querySelector(".pb_title_kit.pb_title_4.pb_title_link")
106
+ const activeProp = kit.querySelector(".pb_title_kit_size_4_link")
107
107
  expect(activeProp).toBeInTheDocument()
108
108
  })
109
109
  })