playbook_ui 14.25.0.pre.alpha.testingcss9700 → 14.25.0.pre.alpha.testingcss9751

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 (228) 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 +79 -68
  24. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +4 -4
  25. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +11 -2
  26. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +7 -7
  27. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  28. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  29. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +4 -4
  30. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +19 -19
  31. data/app/pb_kits/playbook/pb_currency/_currency.scss +124 -39
  32. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +16 -6
  33. data/app/pb_kits/playbook/pb_date/_date.scss +16 -18
  34. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -1
  35. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +19 -0
  36. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +1 -0
  37. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +12 -12
  38. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -2
  39. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +5 -5
  40. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +29 -23
  41. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  42. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.scss +1 -1
  43. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  44. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +66 -26
  45. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  46. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +8 -15
  47. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +6 -7
  48. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -14
  49. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  50. data/app/pb_kits/playbook/pb_detail/_detail.scss +86 -21
  51. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +330 -123
  52. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +16 -2
  53. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +10 -7
  54. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  55. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  56. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  57. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +20 -9
  58. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  59. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  60. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +65 -29
  61. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -2
  62. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  63. data/app/pb_kits/playbook/pb_flex/_flex.scss +106 -100
  64. data/app/pb_kits/playbook/pb_flex/_flex.tsx +38 -28
  65. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +146 -51
  66. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +19 -8
  67. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +12 -1
  68. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +26 -1
  69. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_rails.md +11 -0
  70. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_react.md +11 -0
  71. data/app/pb_kits/playbook/pb_flex/flex.rb +73 -39
  72. data/app/pb_kits/playbook/pb_flex/flex_item.rb +51 -6
  73. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  74. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +381 -344
  75. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  76. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +8 -7
  77. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +9 -2
  78. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  79. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  80. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  81. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  82. data/app/pb_kits/playbook/pb_icon/_icon.scss +4 -0
  83. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  84. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +40 -39
  85. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  86. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  87. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +16 -15
  88. data/app/pb_kits/playbook/pb_image/_image.scss +41 -36
  89. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  90. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +3 -2
  91. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  92. data/app/pb_kits/playbook/pb_layout/_layout.scss +330 -305
  93. data/app/pb_kits/playbook/pb_layout/_layout.tsx +14 -11
  94. data/app/pb_kits/playbook/pb_layout/body.rb +1 -1
  95. data/app/pb_kits/playbook/pb_layout/footer.rb +1 -1
  96. data/app/pb_kits/playbook/pb_layout/header.rb +1 -1
  97. data/app/pb_kits/playbook/pb_layout/item.rb +1 -7
  98. data/app/pb_kits/playbook/pb_layout/layout.rb +16 -25
  99. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  100. data/app/pb_kits/playbook/pb_layout/sidebar.rb +1 -1
  101. data/app/pb_kits/playbook/pb_legend/_legend.scss +66 -16
  102. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  103. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  104. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  105. data/app/pb_kits/playbook/pb_link/_link.scss +113 -19
  106. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  107. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +13 -11
  108. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  109. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  110. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  111. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  112. data/app/pb_kits/playbook/pb_message/_message.scss +21 -16
  113. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -0
  114. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +5 -12
  115. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  116. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +6 -3
  117. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +16 -15
  118. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  119. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  120. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  121. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +19 -15
  122. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  123. data/app/pb_kits/playbook/pb_online_status/online_status.rb +5 -4
  124. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  125. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  126. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  127. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +5 -2
  128. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  129. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  130. data/app/pb_kits/playbook/pb_pill/_pill.scss +23 -21
  131. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +15 -13
  132. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +108 -33
  133. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  134. data/app/pb_kits/playbook/pb_radio/_radio.scss +71 -52
  135. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  136. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -3
  137. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  138. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +81 -70
  139. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +9 -1
  140. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  141. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +3 -1
  142. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +7 -1
  143. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  144. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -2
  145. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +17 -8
  146. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +39 -29
  147. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +2 -0
  148. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +8 -11
  149. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +24 -25
  150. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  151. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  152. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  153. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  154. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  155. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  156. data/app/pb_kits/playbook/pb_text_input/text_input.rb +15 -0
  157. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  158. data/app/pb_kits/playbook/pb_time/_time.scss +44 -17
  159. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +1 -1
  160. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +5 -8
  161. data/app/pb_kits/playbook/pb_title/_title.scss +42 -39
  162. data/app/pb_kits/playbook/pb_title/_title.tsx +17 -8
  163. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  164. data/app/pb_kits/playbook/pb_title/title.rb +20 -10
  165. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  166. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +19 -8
  167. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +10 -11
  168. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  169. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  170. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +23 -8
  171. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  172. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  173. data/app/pb_kits/playbook/utilities/_gap.scss +12 -24
  174. data/app/pb_kits/playbook/utilities/globalPropNames.mjs +2 -0
  175. data/app/pb_kits/playbook/utilities/globalProps.ts +28 -4
  176. data/dist/chunks/_line_graph-Dv_ODxW3.js +1 -0
  177. data/dist/chunks/_typeahead-CD5RAaaP.js +6 -0
  178. data/dist/chunks/_weekday_stacked-Bv6tOPKC.js +37 -0
  179. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  180. data/dist/chunks/lib-CY5ZPzic.js +29 -0
  181. data/dist/chunks/pb_form_validation-D3b0JKHH.js +1 -0
  182. data/dist/chunks/vendor.js +1 -11
  183. data/dist/menu.yml +0 -6
  184. data/dist/playbook-doc.js +3 -67243
  185. data/dist/playbook-rails-react-bindings.js +1 -112
  186. data/dist/playbook-rails.js +1 -2464
  187. data/dist/playbook.css +2 -92354
  188. data/dist/reset.css +1 -89
  189. data/lib/playbook/classnames.rb +2 -0
  190. data/lib/playbook/spacing.rb +53 -1
  191. data/lib/playbook/version.rb +1 -1
  192. metadata +10 -38
  193. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +0 -25
  194. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +0 -381
  195. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +0 -231
  196. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +0 -3
  197. data/app/pb_kits/playbook/pb_drawer/context.ts +0 -11
  198. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +0 -8
  199. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +0 -41
  200. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +0 -33
  201. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +0 -78
  202. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +0 -3
  203. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +0 -26
  204. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +0 -20
  205. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +0 -59
  206. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +0 -24
  207. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +0 -61
  208. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +0 -24
  209. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +0 -21
  210. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +0 -54
  211. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +0 -1
  212. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +0 -49
  213. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +0 -99
  214. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +0 -20
  215. data/app/pb_kits/playbook/pb_drawer/docs/index.js +0 -7
  216. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +0 -20
  217. data/app/pb_kits/playbook/pb_drawer/drawer.rb +0 -56
  218. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +0 -81
  219. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +0 -60
  220. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +0 -21
  221. data/app/pb_kits/playbook/pb_drawer/index.js +0 -257
  222. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +0 -9
  223. data/dist/chunks/_line_graph-DPTwfQR-.js +0 -544
  224. data/dist/chunks/_typeahead-CEqlHw0H.js +0 -30978
  225. data/dist/chunks/_weekday_stacked-D3dG14OB.js +0 -20894
  226. data/dist/chunks/lazysizes-BUUj27EF.js +0 -611
  227. data/dist/chunks/lib-CIetbXpr.js +0 -9609
  228. data/dist/chunks/pb_form_validation-D_g9rOE9.js +0 -60
@@ -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" | "kanban" | "content" | "masonry" | "bracket",
25
+ layout?: "sidebar" | "collection" | "collection_detail" | "kanban" | "content" | "masonry" | "bracket",
26
26
  } & GlobalProps
27
27
 
28
28
  type LayoutSideProps = {
@@ -81,11 +81,10 @@ 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}`
85
84
  const dynamicInlineProps = globalInlineProps(props)
86
85
  return (
87
86
  <div
88
- className={classnames('layout_item', sizeClass, globalProps(props), className)}
87
+ className={classnames('layout_item', `layout_item_size_${size}`, globalProps(props), className)}
89
88
  style={dynamicInlineProps}
90
89
  >
91
90
  {children}
@@ -144,20 +143,24 @@ const Layout = (props: LayoutPropTypes) => {
144
143
  const htmlProps = buildHtmlProps(htmlOptions)
145
144
 
146
145
  const layoutCss =
147
- (layout == 'collection' || layout == 'bracket')
146
+ (layout == 'collection' || layout == 'bracket' || layout == 'collection_detail' || layout == 'content' || layout == 'masonry')
148
147
  ? `pb_layout_kit_${layout}`
149
148
  : layout == 'kanban'
150
149
  ? `pb_layout_kit_${layout}${responsiveClass}`
151
- : buildCss(`pb_layout_kit_${layout}`, `size_${size}`, position, variant, {
152
- dark: dark,
153
- transparent: transparent,
154
- full: full,
155
- })
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
+ )
156
159
 
157
160
  const layoutCollapseCss =
158
- (layout == 'collection' || layout == 'kanban' || layout == 'bracket')
161
+ (layout == 'collection' || layout == 'collection_detail' || layout == 'content' || layout == 'masonry' || layout == 'kanban' || layout == 'bracket')
159
162
  ? ''
160
- : buildCss('layout', position, 'collapse', collapse)
163
+ : `layout_${position}_collapse_${collapse}`
161
164
 
162
165
  const layoutChildren = React.Children.toArray(children)
163
166
 
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- generate_classname("layout_body")
11
+ "layout_body"
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- generate_classname("layout_footer")
11
+ "layout_footer"
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- generate_classname("layout_header")
11
+ "layout_header"
12
12
  end
13
13
  end
14
14
  end
@@ -8,13 +8,7 @@ module Playbook
8
8
  default: "sm"
9
9
 
10
10
  def classname
11
- generate_classname("layout_item") + size_class
12
- end
13
-
14
- private
15
-
16
- def size_class
17
- " size_#{size}"
11
+ "layout_item layout_item_size_#{size}"
18
12
  end
19
13
  end
20
14
  end
@@ -25,38 +25,29 @@ module Playbook
25
25
  def classname
26
26
  case layout
27
27
  when "collection"
28
- generate_classname("pb_layout_kit", layout)
28
+ "pb_layout_kit_collection"
29
29
  when "kanban"
30
- generate_classname("pb_layout_kit", layout, responsive_class)
30
+ classes = ["pb_layout_kit_kanban"]
31
+ classes << "pb_layout_kit_kanban_responsive" if responsive
32
+ classes.join(" ")
31
33
  when "collection_detail"
32
- generate_classname("pb_layout_kit", layout)
34
+ "pb_layout_kit_collection_detail"
33
35
  when "content"
34
- generate_classname("pb_layout_kit", layout)
36
+ "pb_layout_kit_content"
35
37
  when "masonry"
36
- generate_classname("pb_layout_kit", layout)
38
+ "pb_layout_kit_masonry"
37
39
  else
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(" ")
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
+ classes.join(" ")
40
49
  end
41
50
  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
60
51
  end
61
52
  end
62
53
  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_size_md_left_light",
71
+ expected: "pb_layout_kit_collection_detail",
72
72
  },
73
73
  {
74
74
  layout: "content",
75
- expected: "pb_layout_kit_content_size_md_left_light",
75
+ expected: "pb_layout_kit_content",
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_size_md_left_light",
83
+ expected: "pb_layout_kit_masonry",
84
84
  },
85
85
  {
86
86
  layout: "bracket",
@@ -4,7 +4,7 @@ module Playbook
4
4
  module PbLayout
5
5
  class Sidebar < Playbook::KitBase
6
6
  def classname
7
- generate_classname("layout_sidebar")
7
+ "layout_sidebar"
8
8
  end
9
9
  end
10
10
  end
@@ -9,26 +9,76 @@
9
9
  background: $color;
10
10
  }
11
11
 
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
- }
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;
18
34
  }
19
35
  }
20
36
  }
21
37
 
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);
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
+ }
27
53
 
28
- .pb_legend_indicator_circle_custom {
29
- display: inline-block;
30
- width: 10px;
31
- height: 10px;
32
- border-radius: 5px;
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
+ }
33
67
  }
34
68
  }
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_size_4")
42
+ const prefix = kit.querySelector(".pb_title_kit.pb_title_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
- [class^="react-transform-wrapper"] {
69
+ .react-transform-wrapper {
70
70
  flex-shrink: 0;
71
71
  width: 100%;
72
72
  height: 100%;
73
73
  }
74
74
 
75
- [class^="react-transform-content"] {
75
+ .react-transform-content {
76
76
  width: 100%;
77
77
  height: 100%;
78
78
  }
79
79
 
80
- [class^="react-transform-component"] {
80
+ .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.getElementsByClassName('pb_button_kit_link_inline_enabled')[0]
116
+ const closeIcon = kit.querySelector('.pb_button_kit.pb_button_link.pb_button_inline.pb_button_enabled')
117
117
 
118
118
  fireEvent(
119
119
  closeIcon,
@@ -3,7 +3,8 @@
3
3
  @import "../tokens/typography";
4
4
  @import "../tokens/border_radius";
5
5
 
6
- [class^=pb_link_kit]{
6
+ // Base styles
7
+ .pb_link_kit {
7
8
  @include pb_link($primary);
8
9
  &:hover {
9
10
  color: $text_lt_default;
@@ -25,42 +26,135 @@
25
26
  color: $text_dk_default;
26
27
  }
27
28
  }
28
- @each $color_name, $color_value in $pb_link_colors {
29
- &[class*=_#{"" + $color_name}] {
30
- @include pb_link($color_value);
29
+ }
31
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} {
35
+ @include pb_link($color_value);
32
36
  &:hover {
33
37
  color: map-get($pb_link_hover_colors, $color_name);
34
38
  }
35
-
36
39
  &:visited {
37
40
  color: darken($primary_action, 10%);
38
41
  }
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
+ }
39
50
  }
40
51
  }
52
+ }
41
53
 
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
-
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);
46
98
  &:hover {
47
- color: map-get($pb_dark_link_hover_colors, $dark_color_name);
99
+ color: map-get($pb_link_hover_colors, $color_name);
48
100
  }
49
-
50
101
  &:visited {
51
102
  color: darken($primary_action, 10%);
52
103
  }
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
+ }
53
112
  }
54
113
  }
114
+ }
55
115
 
56
- &[class*=_underline] {
57
- text-decoration: underline;
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
+ }
58
136
  }
137
+ }
59
138
 
60
- &[class*=_disabled] {
61
- pointer-events: none;
62
- cursor: default;
63
- color: $text_lt_lighter;
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
+ }
64
159
  }
65
-
66
- }
160
+ }
@@ -28,4 +28,4 @@
28
28
  &[class*=_layout_right] li {
29
29
  @include pb_list_layout_right;
30
30
  }
31
- }
31
+ }
@@ -1,19 +1,21 @@
1
1
  @import "../pb_body/body";
2
2
  @import "../pb_icon/icon";
3
3
 
4
- [class^=pb_loading_inline_kit] {
4
+ .pb_loading_inline_kit_left,
5
+ .pb_loading_inline_kit_center,
6
+ .pb_loading_inline_kit_right {
5
7
  display: flex;
6
8
  align-items: baseline;
9
+ }
7
10
 
8
- &[class*=_center] {
9
- justify-content: center;
10
- }
11
-
12
- &[class*=_left] {
13
- justify-content: flex-start;
14
- }
11
+ .pb_loading_inline_kit_center {
12
+ justify-content: center;
13
+ }
15
14
 
16
- &[class*=_right] {
17
- justify-content: flex-end;
18
- }
15
+ .pb_loading_inline_kit_left {
16
+ justify-content: flex-start;
19
17
  }
18
+
19
+ .pb_loading_inline_kit_right {
20
+ justify-content: flex-end;
21
+ }
@@ -4,7 +4,7 @@
4
4
  @import "../tokens/border_radius";
5
5
  @import "./_pb_map_button_mixin.scss";
6
6
 
7
- [class*="pb_map"] {
7
+ .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_size_4">Hello World!</h4>`)) // add popup
29
+ .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_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_size_4">Hello World!</h4>`)) // add popup
32
+ .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_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({className: 'map_popup', closeButton: false}).setHTML(`<h4 class="pb_title_kit_size_4">Hello World!</h4>`)) // add popup
29
+ .setPopup(new maplibregl.Popup({closeButton: false}).setHTML(`<h4 class="pb_title_kit pb_title_4">Hello World!</h4>`)) // add popup
30
30
  .addTo(map);
31
31
 
32
32
  //add maplibre default zoom controls
@@ -7,21 +7,26 @@
7
7
  $mention_bg_color_yellow: rgba(249, 187, 0, 0.2);
8
8
  $mention_bg_color_blue: #e5eefa;
9
9
 
10
- [class^=pb_message_kit] {
11
- @include pb_message;
10
+ .pb_message_kit {
11
+ @include pb_message(false);
12
+ }
13
+
14
+ .pb_message_kit_avatar {
15
+ @include pb_message(true);
16
+ }
12
17
 
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
- }
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;
27
24
  }
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,6 +84,7 @@ const Message = (props: MessageProps) => {
84
84
  <Flex
85
85
  justify={alignTimestamp === 'left' ? 'none' : 'between'}
86
86
  orientation="row"
87
+ width="100%"
87
88
  >
88
89
  {label &&
89
90
  <Title
@@ -1,19 +1,18 @@
1
1
  @import "../tokens/spacing";
2
2
 
3
- @mixin pb_message {
3
+ @mixin pb_message($with_avatar: false) {
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
-
11
- .pull-left {
10
+ @if $with_avatar {
12
11
  margin-left: $space-xs;
13
12
  }
14
13
 
15
- [class^=pb_flex_] {
16
- width: 100%;
14
+ .pull-left {
15
+ margin-left: $space-xs;
17
16
  }
18
17
 
19
18
  .message_text {
@@ -25,12 +24,6 @@
25
24
  }
26
25
  }
27
26
 
28
- &[class*=_avatar] {
29
- .content_wrapper {
30
- margin-left: $space-xs;
31
- }
32
- }
33
-
34
27
  .pb_message_body {
35
28
  font-size: 15px;
36
29
  }
@@ -48,4 +41,4 @@
48
41
  display: none;
49
42
  }
50
43
  }
51
- }
44
+ }