playbook_ui 14.25.0.pre.alpha.PLAY2414removedialoghelper10118 → 14.25.0.pre.alpha.PLAY2419dialogaccessibility10271

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