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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +6 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +65 -60
  6. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +1 -1
  7. data/app/pb_kits/playbook/pb_background/_background.scss +3 -3
  8. data/app/pb_kits/playbook/pb_badge/_badge.scss +29 -135
  9. data/app/pb_kits/playbook/pb_body/_body.scss +35 -108
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  11. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +30 -17
  12. data/app/pb_kits/playbook/pb_button/_button.scss +31 -39
  13. data/app/pb_kits/playbook/pb_button/_button.tsx +12 -12
  14. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -1
  15. data/app/pb_kits/playbook/pb_button/button.rb +18 -11
  16. data/app/pb_kits/playbook/pb_button/button.test.js +3 -3
  17. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +73 -82
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +33 -32
  19. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_mixins.scss +1 -1
  20. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.test.js +2 -2
  21. data/app/pb_kits/playbook/pb_caption/_caption.scss +17 -100
  22. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +8 -1
  23. data/app/pb_kits/playbook/pb_card/_card.scss +79 -116
  24. data/app/pb_kits/playbook/pb_card/_card.tsx +11 -26
  25. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  26. data/app/pb_kits/playbook/pb_card/card.rb +7 -8
  27. data/app/pb_kits/playbook/pb_card/card_header.rb +2 -6
  28. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  29. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +2 -11
  30. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +7 -7
  31. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  32. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  33. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +4 -4
  34. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_currency/_currency.scss +39 -124
  36. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +6 -16
  37. data/app/pb_kits/playbook/pb_date/_date.scss +18 -16
  38. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -1
  39. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +12 -12
  40. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -2
  41. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +5 -6
  42. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +23 -29
  43. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  44. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.scss +1 -1
  45. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  46. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +26 -66
  47. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +1 -1
  48. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  49. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +15 -8
  50. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +7 -6
  51. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +14 -17
  52. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  53. data/app/pb_kits/playbook/pb_detail/_detail.scss +21 -86
  54. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +123 -330
  55. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +7 -5
  56. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +2 -16
  57. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +7 -10
  58. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  59. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +25 -0
  60. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +381 -0
  61. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +231 -0
  62. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +3 -0
  63. data/app/pb_kits/playbook/pb_drawer/context.ts +11 -0
  64. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +8 -0
  65. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +41 -0
  66. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +33 -0
  67. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +78 -0
  68. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +3 -0
  69. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +26 -0
  70. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +20 -0
  71. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +59 -0
  72. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +24 -0
  73. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +61 -0
  74. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +24 -0
  75. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +21 -0
  76. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +54 -0
  77. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +1 -0
  78. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +49 -0
  79. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +99 -0
  80. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +20 -0
  81. data/app/pb_kits/playbook/pb_drawer/docs/index.js +7 -0
  82. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +20 -0
  83. data/app/pb_kits/playbook/pb_drawer/drawer.rb +56 -0
  84. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +81 -0
  85. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +60 -0
  86. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +21 -0
  87. data/app/pb_kits/playbook/pb_drawer/index.js +257 -0
  88. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  89. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  90. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  91. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  92. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +9 -20
  93. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  94. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  95. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +29 -65
  96. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +2 -1
  97. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  98. data/app/pb_kits/playbook/pb_flex/_flex.scss +100 -106
  99. data/app/pb_kits/playbook/pb_flex/_flex.tsx +25 -32
  100. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +51 -146
  101. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +8 -19
  102. data/app/pb_kits/playbook/pb_flex/flex.rb +16 -16
  103. data/app/pb_kits/playbook/pb_flex/flex_item.rb +6 -6
  104. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  105. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +344 -381
  106. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  107. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +7 -8
  108. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +2 -9
  109. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  110. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  111. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  112. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  113. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  114. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +39 -40
  115. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  116. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  117. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +15 -16
  118. data/app/pb_kits/playbook/pb_image/_image.scss +36 -41
  119. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  120. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +2 -3
  121. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  122. data/app/pb_kits/playbook/pb_layout/_layout.scss +305 -336
  123. data/app/pb_kits/playbook/pb_layout/_layout.tsx +11 -14
  124. data/app/pb_kits/playbook/pb_layout/item.rb +7 -1
  125. data/app/pb_kits/playbook/pb_layout/layout.rb +25 -16
  126. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  127. data/app/pb_kits/playbook/pb_legend/_legend.scss +16 -66
  128. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  129. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  130. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  131. data/app/pb_kits/playbook/pb_link/_link.scss +19 -113
  132. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  133. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +11 -13
  134. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +3 -1
  135. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.html.erb +5 -0
  136. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +24 -0
  137. data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
  138. data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
  139. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
  140. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +11 -0
  141. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  142. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  143. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  144. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  145. data/app/pb_kits/playbook/pb_message/_message.scss +16 -21
  146. data/app/pb_kits/playbook/pb_message/_message.tsx +0 -1
  147. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +12 -5
  148. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  149. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +3 -6
  150. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +15 -16
  151. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  152. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  153. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  154. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +15 -19
  155. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  156. data/app/pb_kits/playbook/pb_online_status/online_status.rb +4 -5
  157. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  158. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  159. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  160. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +2 -5
  161. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  162. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  163. data/app/pb_kits/playbook/pb_pill/_pill.scss +21 -23
  164. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +13 -15
  165. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +33 -108
  166. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  167. data/app/pb_kits/playbook/pb_radio/_radio.scss +52 -71
  168. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  169. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +3 -0
  170. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  171. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +70 -81
  172. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +1 -9
  173. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  174. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +1 -3
  175. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -7
  176. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  177. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +2 -6
  178. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -17
  179. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +29 -39
  180. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +0 -2
  181. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +11 -8
  182. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +3 -2
  183. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  184. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  185. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  186. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  187. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  188. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  189. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  190. data/app/pb_kits/playbook/pb_time/_time.scss +17 -44
  191. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +23 -44
  192. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  193. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +8 -5
  194. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +10 -16
  195. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +4 -1
  196. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  197. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  198. data/app/pb_kits/playbook/pb_title/_title.scss +39 -44
  199. data/app/pb_kits/playbook/pb_title/_title.tsx +8 -17
  200. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  201. data/app/pb_kits/playbook/pb_title/title.rb +10 -20
  202. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  203. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +8 -19
  204. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +11 -10
  205. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +1 -4
  206. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +4 -3
  207. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  208. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  209. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  210. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  211. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +22 -1
  212. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  213. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +2 -2
  214. data/app/pb_kits/playbook/pb_user/_user.scss +33 -83
  215. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  216. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +8 -23
  217. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  218. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  219. data/dist/chunks/{_line_graph-CApw7aQD.js → _line_graph-CiVc-Cod.js} +1 -1
  220. data/dist/chunks/{_typeahead-J1_avqdO.js → _typeahead-BQnvz-Ks.js} +1 -1
  221. data/dist/chunks/_weekday_stacked-BkvHv3ZO.js +37 -0
  222. data/dist/chunks/vendor.js +1 -1
  223. data/dist/menu.yml +6 -0
  224. data/dist/playbook-doc.js +2 -2
  225. data/dist/playbook-rails-react-bindings.js +1 -1
  226. data/dist/playbook-rails.js +1 -1
  227. data/dist/playbook.css +1 -1
  228. data/lib/playbook/version.rb +1 -1
  229. metadata +36 -5
  230. data/dist/chunks/_weekday_stacked-Bugv1mOh.js +0 -37
@@ -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
+ }
@@ -16,6 +16,7 @@ type LoadingInlineProps = {
16
16
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
17
17
  id?: string,
18
18
  text?: string,
19
+ variant?: "dotted" | "solid" ,
19
20
  }
20
21
 
21
22
  const LoadingInline = (props: LoadingInlineProps) => {
@@ -28,6 +29,7 @@ const LoadingInline = (props: LoadingInlineProps) => {
28
29
  htmlOptions = {},
29
30
  id,
30
31
  text = ' Loading',
32
+ variant = 'dotted',
31
33
  } = props
32
34
 
33
35
  const ariaProps = buildAriaProps(aria)
@@ -54,7 +56,7 @@ const LoadingInline = (props: LoadingInlineProps) => {
54
56
  <Icon
55
57
  aria={{ label: 'loading icon' }}
56
58
  fixedWidth
57
- icon="spinner"
59
+ icon={variant === 'dotted' ? 'spinner' : variant === 'solid' ? 'spinner-solid' : undefined}
58
60
  pulse
59
61
  />
60
62
  {text}
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("loading_inline", props: {text: "Dotted Spinner", variant: "dotted"}) %>
2
+
3
+ <br/>
4
+
5
+ <%= pb_rails("loading_inline", props: {text: "Solid Spinner", variant: "solid"}) %>
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+ import { LoadingInline } from 'playbook-ui'
3
+
4
+ const LoadingInlineVariant = (props) => {
5
+ return (
6
+ <div>
7
+ <LoadingInline
8
+ text=" Dotted Spinner"
9
+ variant="dotted"
10
+ {...props}
11
+ />
12
+
13
+ <br />
14
+
15
+ <LoadingInline
16
+ text=" Solid Spinner"
17
+ variant="solid"
18
+ {...props}
19
+ />
20
+ </div>
21
+ )
22
+ }
23
+
24
+ export default LoadingInlineVariant
@@ -3,9 +3,11 @@ examples:
3
3
  rails:
4
4
  - loading_inline_default: Default
5
5
  - loading_inline_custom: Custom Text
6
+ - loading_inline_variant: Variant
6
7
 
7
8
 
8
9
 
9
10
  react:
10
11
  - loading_inline_default: Default
11
12
  - loading_inline_custom: Custom Text
13
+ - loading_inline_variant: Variant
@@ -1,2 +1,3 @@
1
1
  export { default as LoadingInlineDefault } from './_loading_inline_default.jsx'
2
2
  export { default as LoadingInlineCustom } from './_loading_inline_custom.jsx'
3
+ export { default as LoadingInlineVariant } from './_loading_inline_variant.jsx'
@@ -1,6 +1,6 @@
1
1
  <%= pb_content_tag do %>
2
2
 
3
3
  <%= pb_rails("body", props: { color: "light", dark: object.dark }) do %>
4
- <%= pb_rails("icon", props: { aria: { label: "loading icon" }, fixed_width: true, icon: "spinner", pulse: true }) %> <%= object.text %>
4
+ <%= pb_rails("icon", props: { aria: { label: "loading icon" }, fixed_width: true, icon: object.spinner_icon, pulse: true }) %> <%= object.text %>
5
5
  <% end %>
6
6
  <% end %>
@@ -8,10 +8,21 @@ module Playbook
8
8
  default: "left"
9
9
  prop :dark, type: Playbook::Props::Boolean, default: false
10
10
  prop :text, type: Playbook::Props::String, default: "Loading"
11
+ prop :variant, type: Playbook::Props::Enum,
12
+ values: %w[dotted solid],
13
+ default: "dotted"
11
14
 
12
15
  def classname
13
16
  generate_classname("pb_loading_inline_kit", align)
14
17
  end
18
+
19
+ def spinner_icon
20
+ if variant == "dotted"
21
+ "spinner"
22
+ elsif variant == "solid"
23
+ "spinner-solid"
24
+ end
25
+ end
15
26
  end
16
27
  end
17
28
  end
@@ -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