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
@@ -22,7 +22,7 @@ type LayoutPropTypes = {
22
22
  size?: "xs" | "sm" | "md" | "base" | "lg" | "xl",
23
23
  variant?: "light" | "dark" | "gradient",
24
24
  transparent?: boolean,
25
- layout?: "sidebar" | "collection" | "collection_detail" | "kanban" | "content" | "masonry" | "bracket",
25
+ layout?: "sidebar" | "collection" | "kanban" | "content" | "masonry" | "bracket",
26
26
  } & GlobalProps
27
27
 
28
28
  type LayoutSideProps = {
@@ -81,10 +81,11 @@ const Body = (props: LayoutBodyProps) => {
81
81
  // Item component
82
82
  const Item = (props: LayoutItemProps) => {
83
83
  const { children, className, size = 'sm' } = props
84
+ const sizeClass = `size_${size}`
84
85
  const dynamicInlineProps = globalInlineProps(props)
85
86
  return (
86
87
  <div
87
- className={classnames('layout_item', `layout_item_size_${size}`, globalProps(props), className)}
88
+ className={classnames('layout_item', sizeClass, globalProps(props), className)}
88
89
  style={dynamicInlineProps}
89
90
  >
90
91
  {children}
@@ -143,24 +144,20 @@ const Layout = (props: LayoutPropTypes) => {
143
144
  const htmlProps = buildHtmlProps(htmlOptions)
144
145
 
145
146
  const layoutCss =
146
- (layout == 'collection' || layout == 'bracket' || layout == 'collection_detail' || layout == 'content' || layout == 'masonry')
147
+ (layout == 'collection' || layout == 'bracket')
147
148
  ? `pb_layout_kit_${layout}`
148
149
  : layout == 'kanban'
149
150
  ? `pb_layout_kit_${layout}${responsiveClass}`
150
- : classnames(
151
- 'pb_layout_kit_sidebar',
152
- `pb_layout_kit_sidebar_size_${size}_${position}_${variant}`,
153
- {
154
- 'pb_layout_kit_sidebar_dark': dark,
155
- 'pb_layout_kit_sidebar_transparent': transparent,
156
- 'pb_layout_kit_sidebar_full': full,
157
- }
158
- )
151
+ : buildCss(`pb_layout_kit_${layout}`, `size_${size}`, position, variant, {
152
+ dark: dark,
153
+ transparent: transparent,
154
+ full: full,
155
+ })
159
156
 
160
157
  const layoutCollapseCss =
161
- (layout == 'collection' || layout == 'collection_detail' || layout == 'content' || layout == 'masonry' || layout == 'kanban' || layout == 'bracket')
158
+ (layout == 'collection' || layout == 'kanban' || layout == 'bracket')
162
159
  ? ''
163
- : `layout_${position}_collapse_${collapse}`
160
+ : buildCss('layout', position, 'collapse', collapse)
164
161
 
165
162
  const layoutChildren = React.Children.toArray(children)
166
163
 
@@ -8,7 +8,13 @@ module Playbook
8
8
  default: "sm"
9
9
 
10
10
  def classname
11
- generate_classname("layout_item") + " layout_item_size_#{size}"
11
+ generate_classname("layout_item") + size_class
12
+ end
13
+
14
+ private
15
+
16
+ def size_class
17
+ " size_#{size}"
12
18
  end
13
19
  end
14
20
  end
@@ -25,29 +25,38 @@ module Playbook
25
25
  def classname
26
26
  case layout
27
27
  when "collection"
28
- generate_classname("pb_layout_kit_collection")
28
+ generate_classname("pb_layout_kit", layout)
29
29
  when "kanban"
30
- classes = ["pb_layout_kit_kanban"]
31
- classes << "pb_layout_kit_kanban_responsive" if responsive
32
- generate_classname(classes.join(" "))
30
+ generate_classname("pb_layout_kit", layout, responsive_class)
33
31
  when "collection_detail"
34
- generate_classname("pb_layout_kit_collection_detail")
32
+ generate_classname("pb_layout_kit", layout)
35
33
  when "content"
36
- generate_classname("pb_layout_kit_content")
34
+ generate_classname("pb_layout_kit", layout)
37
35
  when "masonry"
38
- generate_classname("pb_layout_kit_masonry")
36
+ generate_classname("pb_layout_kit", layout)
39
37
  else
40
- # Sidebar layout
41
- classes = [
42
- "pb_layout_kit_sidebar",
43
- "pb_layout_kit_sidebar_size_#{size}_#{position}_#{variant}",
44
- ]
45
- classes << "pb_layout_kit_sidebar_transparent" if transparent
46
- classes << "pb_layout_kit_sidebar_full" if full
47
- classes << "layout_#{position}_collapse_#{collapse}"
48
- generate_classname(classes.join(" "))
38
+ first_class = generate_classname("pb_layout_kit_sidebar", "size_#{size}", position, variant, transparent_class)
39
+ [first_class, full_class, collapse_class].reject(&:empty?).join(" ")
49
40
  end
50
41
  end
42
+
43
+ private
44
+
45
+ def responsive_class
46
+ responsive ? "responsive" : ""
47
+ end
48
+
49
+ def full_class
50
+ full ? "full" : ""
51
+ end
52
+
53
+ def transparent_class
54
+ transparent ? "transparent" : nil
55
+ end
56
+
57
+ def collapse_class
58
+ "layout_#{position}_collapse_#{collapse}"
59
+ end
51
60
  end
52
61
  end
53
62
  end
@@ -68,11 +68,11 @@ test("render all layout variants", () => {
68
68
  },
69
69
  {
70
70
  layout: "collection_detail",
71
- expected: "pb_layout_kit_collection_detail",
71
+ expected: "pb_layout_kit_collection_detail_size_md_left_light",
72
72
  },
73
73
  {
74
74
  layout: "content",
75
- expected: "pb_layout_kit_content",
75
+ expected: "pb_layout_kit_content_size_md_left_light",
76
76
  },
77
77
  {
78
78
  layout: "kanban",
@@ -80,7 +80,7 @@ test("render all layout variants", () => {
80
80
  },
81
81
  {
82
82
  layout: "masonry",
83
- expected: "pb_layout_kit_masonry",
83
+ expected: "pb_layout_kit_masonry_size_md_left_light",
84
84
  },
85
85
  {
86
86
  layout: "bracket",
@@ -9,76 +9,26 @@
9
9
  background: $color;
10
10
  }
11
11
 
12
- // Base class for custom colors (no color suffix)
13
- .pb_legend_kit {
14
- .pb_legend_indicator_circle_custom {
15
- display: inline-block;
16
- width: 10px;
17
- height: 10px;
18
- border-radius: 5px;
19
- }
20
- }
21
-
22
- // Data colors
23
- @each $name, $color in $data_colors {
24
- .pb_legend_kit_#{$name} {
25
- .pb_legend_indicator_circle {
26
- @include pb_button($color);
27
- }
28
-
29
- .pb_legend_indicator_circle_custom {
30
- display: inline-block;
31
- width: 10px;
32
- height: 10px;
33
- border-radius: 5px;
12
+ @mixin indicator-colors($colors-list) {
13
+ @each $name, $color in $colors-list {
14
+ &[class*=#{$name}] {
15
+ .pb_legend_indicator_circle {
16
+ @include pb_button($color);
17
+ }
34
18
  }
35
19
  }
36
20
  }
37
21
 
38
- // Status colors
39
- @each $name, $color in $status_colors {
40
- .pb_legend_kit_#{$name} {
41
- .pb_legend_indicator_circle {
42
- @include pb_button($color);
43
- }
44
-
45
- .pb_legend_indicator_circle_custom {
46
- display: inline-block;
47
- width: 10px;
48
- height: 10px;
49
- border-radius: 5px;
50
- }
51
- }
52
- }
22
+ [class^=pb_legend_kit] {
23
+ @include indicator-colors($data_colors);
24
+ @include indicator-colors($status_colors);
25
+ @include indicator-colors($product_colors);
26
+ @include indicator-colors($category_colors);
53
27
 
54
- // Product colors
55
- @each $name, $color in $product_colors {
56
- .pb_legend_kit_#{$name} {
57
- .pb_legend_indicator_circle {
58
- @include pb_button($color);
59
- }
60
-
61
- .pb_legend_indicator_circle_custom {
62
- display: inline-block;
63
- width: 10px;
64
- height: 10px;
65
- border-radius: 5px;
66
- }
28
+ .pb_legend_indicator_circle_custom {
29
+ display: inline-block;
30
+ width: 10px;
31
+ height: 10px;
32
+ border-radius: 5px;
67
33
  }
68
34
  }
69
-
70
- // Category colors
71
- @each $name, $color in $category_colors {
72
- .pb_legend_kit_#{$name} {
73
- .pb_legend_indicator_circle {
74
- @include pb_button($color);
75
- }
76
-
77
- .pb_legend_indicator_circle_custom {
78
- display: inline-block;
79
- width: 10px;
80
- height: 10px;
81
- border-radius: 5px;
82
- }
83
- }
84
- }
@@ -39,7 +39,7 @@ test('prefixText prop renders', () => {
39
39
  )
40
40
 
41
41
  const kit = screen.getByTestId('primary-test')
42
- const prefix = kit.querySelector(".pb_title_kit.pb_title_4")
42
+ const prefix = kit.querySelector(".pb_title_kit_size_4")
43
43
  expect(prefix).toBeInTheDocument()
44
44
  })
45
45
 
@@ -66,18 +66,18 @@ $lightbox-z-index-floor: $z_10 !default;
66
66
  width: 100%;
67
67
  z-index: $lightbox-z-index-floor + 1;
68
68
 
69
- .react-transform-wrapper {
69
+ [class^="react-transform-wrapper"] {
70
70
  flex-shrink: 0;
71
71
  width: 100%;
72
72
  height: 100%;
73
73
  }
74
74
 
75
- .react-transform-content {
75
+ [class^="react-transform-content"] {
76
76
  width: 100%;
77
77
  height: 100%;
78
78
  }
79
79
 
80
- .react-transform-component {
80
+ [class^="react-transform-component"] {
81
81
  width: 100%;
82
82
  height: 100%;
83
83
  img {
@@ -164,4 +164,4 @@ $lightbox-z-index-floor: $z_10 !default;
164
164
  align-items: center;
165
165
  background-color: white;
166
166
  box-shadow: 0 0 6px white;
167
- }
167
+ }
@@ -113,7 +113,7 @@ test('Closes on close button', async () => {
113
113
  )
114
114
 
115
115
  const kit = screen.getByTestId(testId)
116
- const closeIcon = kit.querySelector('.pb_button_kit.pb_button_link.pb_button_inline.pb_button_enabled')
116
+ const closeIcon = kit.getElementsByClassName('pb_button_kit_link_inline_enabled')[0]
117
117
 
118
118
  fireEvent(
119
119
  closeIcon,
@@ -3,8 +3,7 @@
3
3
  @import "../tokens/typography";
4
4
  @import "../tokens/border_radius";
5
5
 
6
- // Base styles
7
- .pb_link_kit {
6
+ [class^=pb_link_kit]{
8
7
  @include pb_link($primary);
9
8
  &:hover {
10
9
  color: $text_lt_default;
@@ -26,135 +25,42 @@
26
25
  color: $text_dk_default;
27
26
  }
28
27
  }
29
- }
30
-
31
- // Color variants
32
- @each $color_name, $color_value in $pb_link_colors {
33
- @if $color_name != "default" {
34
- .pb_link_kit_#{$color_name} {
28
+ @each $color_name, $color_value in $pb_link_colors {
29
+ &[class*=_#{"" + $color_name}] {
35
30
  @include pb_link($color_value);
31
+
36
32
  &:hover {
37
33
  color: map-get($pb_link_hover_colors, $color_name);
38
34
  }
35
+
39
36
  &:visited {
40
37
  color: darken($primary_action, 10%);
41
38
  }
42
- &:focus {
43
- outline: none;
44
- }
45
- &:focus-visible {
46
- border-radius: $border_rad_light;
47
- outline: 1px solid $primary;
48
- outline-offset: 2px;
49
- }
50
39
  }
51
40
  }
52
- }
53
41
 
54
- // Dark mode color variants
55
- @each $dark_color_name, $dark_color_value in $pb_dark_link_colors {
56
- .pb_link_kit_#{$dark_color_name}.dark {
57
- @include pb_link($dark_color_value);
58
- &:hover {
59
- color: map-get($pb_dark_link_hover_colors, $dark_color_name);
60
- }
61
- &:visited {
62
- color: darken($primary_action, 10%);
63
- }
64
- }
65
- }
66
-
67
- // Underline modifier
68
- .pb_link_kit_underline,
69
- .pb_link_kit_body_underline,
70
- .pb_link_kit_muted_underline,
71
- .pb_link_kit_destructive_underline,
72
- .pb_link_kit_underline_disabled,
73
- .pb_link_kit_body_underline_disabled,
74
- .pb_link_kit_muted_underline_disabled,
75
- .pb_link_kit_destructive_underline_disabled {
76
- text-decoration: underline;
77
- }
78
-
79
- // Disabled modifier
80
- .pb_link_kit_disabled,
81
- .pb_link_kit_body_disabled,
82
- .pb_link_kit_muted_disabled,
83
- .pb_link_kit_destructive_disabled,
84
- .pb_link_kit_underline_disabled,
85
- .pb_link_kit_body_underline_disabled,
86
- .pb_link_kit_muted_underline_disabled,
87
- .pb_link_kit_destructive_underline_disabled {
88
- pointer-events: none;
89
- cursor: default;
90
- color: $text_lt_lighter;
91
- }
92
-
93
- // Color + underline combinations
94
- @each $color_name, $color_value in $pb_link_colors {
95
- @if $color_name != "default" {
96
- .pb_link_kit_#{$color_name}_underline {
97
- @include pb_link($color_value);
42
+ @each $dark_color_name, $dark_color_value in $pb_dark_link_colors{
43
+ &[class*=_#{$dark_color_name}][class*=dark]{
44
+ @include pb_link($dark_color_value);
45
+
98
46
  &:hover {
99
- color: map-get($pb_link_hover_colors, $color_name);
47
+ color: map-get($pb_dark_link_hover_colors, $dark_color_name);
100
48
  }
49
+
101
50
  &:visited {
102
51
  color: darken($primary_action, 10%);
103
52
  }
104
- &:focus {
105
- outline: none;
106
- }
107
- &:focus-visible {
108
- border-radius: $border_rad_light;
109
- outline: 1px solid $primary;
110
- outline-offset: 2px;
111
- }
112
53
  }
113
54
  }
114
- }
115
55
 
116
- // Color + disabled combinations
117
- @each $color_name, $color_value in $pb_link_colors {
118
- @if $color_name != "default" {
119
- .pb_link_kit_#{$color_name}_disabled {
120
- @include pb_link($color_value);
121
- &:hover {
122
- color: map-get($pb_link_hover_colors, $color_name);
123
- }
124
- &:visited {
125
- color: darken($primary_action, 10%);
126
- }
127
- &:focus {
128
- outline: none;
129
- }
130
- &:focus-visible {
131
- border-radius: $border_rad_light;
132
- outline: 1px solid $primary;
133
- outline-offset: 2px;
134
- }
135
- }
56
+ &[class*=_underline] {
57
+ text-decoration: underline;
136
58
  }
137
- }
138
59
 
139
- // Color + underline + disabled combinations
140
- @each $color_name, $color_value in $pb_link_colors {
141
- @if $color_name != "default" {
142
- .pb_link_kit_#{$color_name}_underline_disabled {
143
- @include pb_link($color_value);
144
- &:hover {
145
- color: map-get($pb_link_hover_colors, $color_name);
146
- }
147
- &:visited {
148
- color: darken($primary_action, 10%);
149
- }
150
- &:focus {
151
- outline: none;
152
- }
153
- &:focus-visible {
154
- border-radius: $border_rad_light;
155
- outline: 1px solid $primary;
156
- outline-offset: 2px;
157
- }
158
- }
60
+ &[class*=_disabled] {
61
+ pointer-events: none;
62
+ cursor: default;
63
+ color: $text_lt_lighter;
159
64
  }
160
- }
65
+
66
+ }
@@ -28,4 +28,4 @@
28
28
  &[class*=_layout_right] li {
29
29
  @include pb_list_layout_right;
30
30
  }
31
- }
31
+ }
@@ -1,21 +1,19 @@
1
1
  @import "../pb_body/body";
2
2
  @import "../pb_icon/icon";
3
3
 
4
- .pb_loading_inline_kit_left,
5
- .pb_loading_inline_kit_center,
6
- .pb_loading_inline_kit_right {
4
+ [class^=pb_loading_inline_kit] {
7
5
  display: flex;
8
6
  align-items: baseline;
9
- }
10
7
 
11
- .pb_loading_inline_kit_center {
12
- justify-content: center;
13
- }
8
+ &[class*=_center] {
9
+ justify-content: center;
10
+ }
14
11
 
15
- .pb_loading_inline_kit_left {
16
- justify-content: flex-start;
17
- }
12
+ &[class*=_left] {
13
+ justify-content: flex-start;
14
+ }
18
15
 
19
- .pb_loading_inline_kit_right {
20
- justify-content: flex-end;
21
- }
16
+ &[class*=_right] {
17
+ justify-content: flex-end;
18
+ }
19
+ }
@@ -4,7 +4,7 @@
4
4
  @import "../tokens/border_radius";
5
5
  @import "./_pb_map_button_mixin.scss";
6
6
 
7
- .pb_map {
7
+ [class*="pb_map"] {
8
8
  .pb_map-custom-button {
9
9
  @include pb_map_button;
10
10
  position: relative;
@@ -26,7 +26,7 @@ const MapDefault = (props) => {
26
26
  new maplibregl.Marker({
27
27
  color: mapTheme.marker,
28
28
  }).setLngLat(defaultPosition)
29
- .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_4">Hello World!</h4>`)) // add popup
29
+ .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit_size_4">Hello World!</h4>`)) // add popup
30
30
  .addTo(map);
31
31
 
32
32
  // disable map zoom when using scroll
@@ -29,7 +29,7 @@ const MapWithCustomButton = (props) => {
29
29
  new maplibregl.Marker({
30
30
  color: mapTheme.marker,
31
31
  }).setLngLat(defaultPosition)
32
- .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_4">Hello World!</h4>`)) // add popup
32
+ .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit_size_4">Hello World!</h4>`)) // add popup
33
33
  .addTo(map);
34
34
 
35
35
  // disable map zoom when using scroll
@@ -26,7 +26,7 @@ const MapWithPlugin = (props) => {
26
26
  new maplibregl.Marker({
27
27
  color: mapTheme.marker,
28
28
  }).setLngLat(defaultPosition)
29
- .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_4">Hello World!</h4>`)) // add popup
29
+ .setPopup(new maplibregl.Popup({className: 'map_popup', closeButton: false}).setHTML(`<h4 class="pb_title_kit_size_4">Hello World!</h4>`)) // add popup
30
30
  .addTo(map);
31
31
 
32
32
  //add maplibre default zoom controls
@@ -7,26 +7,21 @@
7
7
  $mention_bg_color_yellow: rgba(249, 187, 0, 0.2);
8
8
  $mention_bg_color_blue: #e5eefa;
9
9
 
10
- .pb_message_kit {
11
- @include pb_message(false);
12
- }
13
-
14
- .pb_message_kit_avatar {
15
- @include pb_message(true);
16
- }
10
+ [class^=pb_message_kit] {
11
+ @include pb_message;
17
12
 
18
- .pb_message_mention_user,
19
- .pb_message_mention_self {
20
- border-radius: $space_xxs;
21
- color: $primary;
22
- display: inline;
23
- padding: $space_xxs;
13
+ [class^=pb_message_mention] {
14
+ border-radius: $space_xxs;
15
+ color: $primary;
16
+ display: inline;
17
+ padding: $space_xxs;
18
+
19
+ &[class*=_user] {
20
+ background-color: $mention_bg_color_blue;
21
+ }
22
+
23
+ &[class*=_self] {
24
+ background-color: $mention_bg_color_yellow;
25
+ }
26
+ }
24
27
  }
25
-
26
- .pb_message_mention_user {
27
- background-color: $mention_bg_color_blue;
28
- }
29
-
30
- .pb_message_mention_self {
31
- background-color: $mention_bg_color_yellow;
32
- }
@@ -84,7 +84,6 @@ const Message = (props: MessageProps) => {
84
84
  <Flex
85
85
  justify={alignTimestamp === 'left' ? 'none' : 'between'}
86
86
  orientation="row"
87
- width="100%"
88
87
  >
89
88
  {label &&
90
89
  <Title
@@ -1,20 +1,21 @@
1
1
  @import "../tokens/spacing";
2
2
 
3
- @mixin pb_message($with_avatar: false) {
3
+ @mixin pb_message {
4
4
  display: flex;
5
5
  justify-content: flex-start;
6
6
 
7
7
  .content_wrapper {
8
8
  width: 100%;
9
9
  font-size: $font_base - 1;
10
- @if $with_avatar {
11
- margin-left: $space-xs;
12
- }
13
10
 
14
11
  .pull-left {
15
12
  margin-left: $space-xs;
16
13
  }
17
14
 
15
+ [class^=pb_flex_] {
16
+ width: 100%;
17
+ }
18
+
18
19
  .message_text {
19
20
  margin: 0 0 $space-xs/2;
20
21
  }
@@ -24,6 +25,12 @@
24
25
  }
25
26
  }
26
27
 
28
+ &[class*=_avatar] {
29
+ .content_wrapper {
30
+ margin-left: $space-xs;
31
+ }
32
+ }
33
+
27
34
  .pb_message_body {
28
35
  font-size: 15px;
29
36
  }
@@ -41,4 +48,4 @@
41
48
  display: none;
42
49
  }
43
50
  }
44
- }
51
+ }
@@ -9,7 +9,7 @@
9
9
  }) %>
10
10
  <% end %>
11
11
  <div class="content_wrapper">
12
- <%= pb_rails("flex", props: { orientation: "row", justify: object.align_timestamp == "left" ? "none" : "between", width:"100%" }) do %>
12
+ <%= pb_rails("flex", props: { orientation: "row", justify: object.align_timestamp == "left" ? "none" : "between" }) do %>
13
13
  <% if object.label.present? %>
14
14
  <%= pb_rails("title", props: {
15
15
  size: 4,
@@ -16,7 +16,7 @@
16
16
  border-color: $error;
17
17
  }
18
18
  }
19
- .pb_body_kit_negative {
19
+ [class*=pb_body_kit_negative] {
20
20
  margin-top: $space_xxs;
21
21
  }
22
22
  }
@@ -85,10 +85,7 @@
85
85
  .pb_checkbox_kit {
86
86
  align-items: center;
87
87
  }
88
- .pb_button_kit,
89
- .pb_button_link,
90
- .pb_button_inline,
91
- .pb_button_enabled {
88
+ .pb_button_kit_link_inline_enabled {
92
89
  color: $charcoal;
93
90
  &:hover {
94
91
  color: $primary;
@@ -113,7 +110,7 @@
113
110
  border-color: $error_dark;
114
111
  }
115
112
  }
116
- .pb_body_kit_negative {
113
+ [class*=pb_body_kit_negative] {
117
114
  color: $error_dark;
118
115
  }
119
116
  }