playbook_ui 14.12.0 → 14.13.0.pre.alpha.PBNTR457formtimezoneselect6219

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +1 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +11 -4
  5. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ActionBarAnimationHelper.ts +26 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +74 -10
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +43 -26
  8. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +3 -3
  9. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +11 -2
  10. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_custom_cell.jsx +75 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.html.erb +33 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading_rails.md +1 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_loading.md → _advanced_table_loading_react.md} +2 -2
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.html.erb +38 -0
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +1 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +3 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +3 -1
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +33 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +55 -0
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +3 -0
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +3 -0
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +5 -0
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +3 -1
  26. data/app/pb_kits/playbook/pb_advanced_table/index.js +9 -6
  27. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +17 -3
  28. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +15 -11
  29. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +14 -3
  30. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +10 -7
  31. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +9 -1
  32. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +1 -1
  33. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +9 -0
  34. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +14 -0
  35. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +11 -7
  36. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +6 -7
  37. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +9 -3
  38. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +6 -2
  39. data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +58 -0
  40. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +64 -0
  41. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +1 -0
  42. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -0
  43. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
  44. data/app/pb_kits/playbook/pb_button/button.rb +1 -1
  45. data/app/pb_kits/playbook/pb_card/card.html.erb +21 -2
  46. data/app/pb_kits/playbook/pb_card/card.rb +7 -0
  47. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +17 -8
  48. data/app/pb_kits/playbook/pb_checkbox/checkbox.test.js +16 -0
  49. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.jsx +69 -0
  50. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.md +1 -0
  51. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +2 -1
  52. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
  53. data/app/pb_kits/playbook/pb_copy_button/_copy_button.scss +4 -0
  54. data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +92 -0
  55. data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +15 -0
  56. data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +28 -0
  57. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +64 -0
  58. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +2 -0
  59. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +21 -0
  60. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +5 -0
  61. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +45 -0
  62. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.md +1 -0
  63. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +8 -0
  64. data/app/pb_kits/playbook/pb_copy_button/docs/index.js +2 -0
  65. data/app/pb_kits/playbook/pb_copy_button/index.js +47 -0
  66. data/app/pb_kits/playbook/pb_date/_date.tsx +14 -4
  67. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +2 -1
  68. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +13 -5
  69. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +3 -1
  70. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.html.erb +99 -0
  71. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +1 -0
  72. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.html.erb +1 -3
  73. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.md +7 -0
  74. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +61 -0
  75. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +4 -0
  76. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +90 -0
  77. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +5 -0
  78. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +4 -5
  79. data/app/pb_kits/playbook/pb_draggable/docs/index.js +2 -1
  80. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +2 -2
  81. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +5 -0
  82. data/app/pb_kits/playbook/pb_draggable/draggable_item.html.erb +1 -1
  83. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +4 -0
  84. data/app/pb_kits/playbook/pb_draggable/index.js +151 -15
  85. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +7 -4
  86. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +6 -3
  87. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -6
  88. data/app/pb_kits/playbook/pb_filter/filter.html.erb +1 -5
  89. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close.html.erb +58 -0
  90. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close_rails.md +3 -0
  91. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +1 -0
  92. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/index.js +7 -5
  93. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  94. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  95. data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +1 -6
  96. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
  97. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +11 -7
  98. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb +11 -0
  99. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.jsx +22 -0
  100. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md +1 -0
  101. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.md +1 -0
  102. data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +2 -0
  103. data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +1 -0
  104. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +13 -2
  105. data/app/pb_kits/playbook/pb_icon/icon.html.erb +2 -6
  106. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.html.erb +1 -2
  107. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.html.erb +27 -0
  108. data/app/pb_kits/playbook/pb_icon_button/docs/example.yml +1 -3
  109. data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -1
  110. data/app/pb_kits/playbook/pb_icon_button/icon_button.rb +3 -0
  111. data/app/pb_kits/playbook/pb_layout/body.html.erb +1 -5
  112. data/app/pb_kits/playbook/pb_layout/footer.html.erb +1 -5
  113. data/app/pb_kits/playbook/pb_layout/header.html.erb +1 -5
  114. data/app/pb_kits/playbook/pb_layout/item.html.erb +1 -5
  115. data/app/pb_kits/playbook/pb_layout/layout.html.erb +1 -5
  116. data/app/pb_kits/playbook/pb_layout/sidebar.html.erb +1 -5
  117. data/app/pb_kits/playbook/pb_legend/legend.html.erb +1 -6
  118. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +7 -6
  119. data/app/pb_kits/playbook/pb_link/_link.tsx +18 -0
  120. data/app/pb_kits/playbook/pb_link/docs/_link_target.html.erb +15 -0
  121. data/app/pb_kits/playbook/pb_link/docs/_link_target.jsx +29 -0
  122. data/app/pb_kits/playbook/pb_link/docs/example.yml +5 -3
  123. data/app/pb_kits/playbook/pb_link/docs/index.js +2 -1
  124. data/app/pb_kits/playbook/pb_link/link.html.erb +1 -1
  125. data/app/pb_kits/playbook/pb_link/link.rb +6 -0
  126. data/app/pb_kits/playbook/pb_link/link.test.jsx +30 -0
  127. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -6
  128. data/app/pb_kits/playbook/pb_message/message_mention.html.erb +1 -6
  129. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +1 -6
  130. data/app/pb_kits/playbook/pb_nav/item.html.erb +7 -19
  131. data/app/pb_kits/playbook/pb_nav/nav.html.erb +3 -8
  132. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +1 -6
  133. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +4 -0
  134. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +37 -0
  135. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional_react.md +1 -0
  136. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +1 -0
  137. data/app/pb_kits/playbook/pb_overlay/docs/index.js +1 -0
  138. data/app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_token.tsx +48 -10
  139. data/app/pb_kits/playbook/pb_popover/popover.html.erb +1 -6
  140. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +6 -1
  141. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +7 -5
  142. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
  143. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +7 -0
  144. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +1 -0
  145. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.html.erb +1 -0
  146. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.jsx +18 -0
  147. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_rails.md +1 -0
  148. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_react.md +1 -0
  149. data/app/pb_kits/playbook/pb_progress_pills/docs/example.yml +2 -0
  150. data/app/pb_kits/playbook/pb_progress_pills/docs/index.js +1 -0
  151. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb +2 -7
  152. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +6 -0
  153. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.test.js +26 -1
  154. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb +1 -5
  155. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tooltip.html.erb +6 -6
  156. data/app/pb_kits/playbook/pb_progress_step/progress_step.html.erb +1 -5
  157. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.html.erb +1 -5
  158. data/app/pb_kits/playbook/pb_radio/radio.html.erb +6 -11
  159. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.html.erb +6 -9
  160. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.jsx +6 -9
  161. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.html.erb +47 -0
  162. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx +88 -0
  163. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.md +1 -0
  164. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  165. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +51 -0
  166. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +2 -0
  167. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +12 -8
  168. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.html.erb +52 -0
  169. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.md +0 -0
  170. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.html.erb +52 -0
  171. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.md +3 -0
  172. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.html.erb +80 -0
  173. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md +1 -0
  174. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +96 -0
  175. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +101 -0
  176. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +1 -0
  177. data/app/pb_kits/playbook/pb_table/docs/example.yml +8 -0
  178. data/app/pb_kits/playbook/pb_table/docs/index.js +3 -1
  179. data/app/pb_kits/playbook/pb_table/index.ts +41 -9
  180. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +4 -0
  181. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +26 -0
  182. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +0 -1
  183. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +25 -0
  184. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +25 -0
  185. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +29 -2
  186. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +31 -3
  187. data/app/pb_kits/playbook/pb_table/table_body.html.erb +13 -7
  188. data/app/pb_kits/playbook/pb_table/table_body.rb +2 -0
  189. data/app/pb_kits/playbook/pb_table/table_row.html.erb +14 -7
  190. data/app/pb_kits/playbook/pb_table/table_row.rb +15 -2
  191. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +15 -1
  192. data/app/pb_kits/playbook/pb_text_input/index.js +60 -82
  193. data/app/pb_kits/playbook/pb_text_input/text_input.rb +5 -2
  194. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +3 -1
  195. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +1 -1
  196. data/app/pb_kits/playbook/pb_tooltip/index.js +45 -27
  197. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +5 -1
  198. data/app/pb_kits/playbook/pb_user/_user.tsx +3 -0
  199. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.html.erb +42 -0
  200. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.jsx +59 -0
  201. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.md +2 -0
  202. data/app/pb_kits/playbook/pb_user/docs/example.yml +2 -0
  203. data/app/pb_kits/playbook/pb_user/docs/index.js +1 -0
  204. data/app/pb_kits/playbook/pb_user/user.html.erb +1 -1
  205. data/app/pb_kits/playbook/pb_user/user.rb +1 -0
  206. data/app/pb_kits/playbook/pb_user/user.test.js +14 -0
  207. data/dist/chunks/_typeahead-PqkcDf1H.js +36 -0
  208. data/dist/chunks/_weekday_stacked-C7J0S4f7.js +45 -0
  209. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  210. data/dist/chunks/{lib-kMuhBuU7.js → lib-D3us1bGD.js} +2 -2
  211. data/dist/chunks/{pb_form_validation-DBJ0wZuS.js → pb_form_validation-BpihMSOQ.js} +1 -1
  212. data/dist/chunks/vendor.js +1 -1
  213. data/dist/menu.yml +6 -7
  214. data/dist/playbook-doc.js +1 -1
  215. data/dist/playbook-rails-react-bindings.js +1 -1
  216. data/dist/playbook-rails.js +1 -1
  217. data/dist/playbook.css +1 -1
  218. data/lib/playbook/forms/builder/time_zone_select_field.rb +19 -0
  219. data/lib/playbook/forms/builder.rb +1 -0
  220. data/lib/playbook/pb_forms_global_props_helper.rb +136 -0
  221. data/lib/playbook/pb_forms_helper.rb +13 -4
  222. data/lib/playbook/version.rb +2 -2
  223. metadata +78 -26
  224. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +0 -66
  225. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +0 -98
  226. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +0 -28
  227. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +0 -42
  228. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +0 -19
  229. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +0 -26
  230. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +0 -10
  231. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +0 -17
  232. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +0 -19
  233. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +0 -16
  234. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +0 -35
  235. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +0 -42
  236. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +0 -13
  237. data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +0 -15
  238. data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +0 -4
  239. data/app/pb_kits/playbook/pb_avatar_action_button/pb_avatar_action_button.test.js +0 -31
  240. data/dist/chunks/_typeahead-BWwaAo_0.js +0 -36
  241. data/dist/chunks/_weekday_stacked-DE8qVYG2.js +0 -45
  242. data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
  243. /data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/{_fixed_confirmation_toast_auto_close.md → _fixed_confirmation_toast_auto_close_react.md} +0 -0
  244. /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click.md → _table_with_collapsible_with_custom_click_react.md} +0 -0
@@ -0,0 +1,55 @@
1
+ import React from "react"
2
+ import { AdvancedTable } from "playbook-ui"
3
+ import MOCK_DATA from "./advanced_table_mock_data.json"
4
+
5
+ const AdvancedTableTablePropsStickyHeader = (props) => {
6
+ const columnDefinitions = [
7
+ {
8
+ accessor: "year",
9
+ label: "Year",
10
+ cellAccessors: ["quarter", "month", "day"],
11
+ },
12
+ {
13
+ accessor: "newEnrollments",
14
+ label: "New Enrollments",
15
+ },
16
+ {
17
+ accessor: "scheduledMeetings",
18
+ label: "Scheduled Meetings",
19
+ },
20
+ {
21
+ accessor: "attendanceRate",
22
+ label: "Attendance Rate",
23
+ },
24
+ {
25
+ accessor: "completedClasses",
26
+ label: "Completed Classes",
27
+ },
28
+ {
29
+ accessor: "classCompletionRate",
30
+ label: "Class Completion Rate",
31
+ },
32
+ {
33
+ accessor: "graduatedStudents",
34
+ label: "Graduated Students",
35
+ },
36
+ ]
37
+
38
+ const tableProps = {
39
+ sticky: true
40
+ }
41
+
42
+ return (
43
+ <div>
44
+ <AdvancedTable
45
+ columnDefinitions={columnDefinitions}
46
+ maxHeight="xs"
47
+ tableData={MOCK_DATA}
48
+ tableProps={tableProps}
49
+ {...props}
50
+ />
51
+ </div>
52
+ )
53
+ }
54
+
55
+ export default AdvancedTableTablePropsStickyHeader
@@ -0,0 +1,3 @@
1
+ Create a sticky header that works for responsive Advanced Tables by setting `sticky: true` via `table_props` and giving the AdvancedTable a `max_height` using our [Max Height](https://playbook.powerapp.cloud/visual_guidelines/max_height) global prop. This behavior requires a `max_height` to work. The header is sticky within the table container, allowing for it to work along with the first column stickiness of a responsive table on smaller screen sizes.
2
+
3
+ A sticky header on a nonresponsive table is demonstrated in the ["Table Props"](https://playbook.powerapp.cloud/kits/advanced_table#table-props) doc example above.
@@ -0,0 +1,3 @@
1
+ Create a sticky header that works for responsive Advanced Tables by setting `sticky: true` via `tableProps` and giving the AdvancedTable a `maxHeight` using our [Max Height](https://playbook.powerapp.cloud/visual_guidelines/max_height) global prop. This behavior requires a `maxHeight` to work. The header is sticky within the table container, allowing for it to work along with the first column stickiness of a responsive table on smaller screen sizes.
2
+
3
+ A sticky header on a nonresponsive table is demonstrated in the ["Table Props"](https://playbook.powerapp.cloud/kits/advanced_table/react#table-props) doc example above.
@@ -1,10 +1,13 @@
1
1
  examples:
2
2
  rails:
3
3
  - advanced_table_beta: Default (Required Props)
4
+ - advanced_table_loading: Loading State
4
5
  - advanced_table_beta_subrow_headers: SubRow Headers
5
6
  - advanced_table_collapsible_trail_rails: Collapsible Trail
6
7
  - advanced_table_table_props: Table Props
8
+ - advanced_table_table_props_sticky_header: Table Props Sticky Header
7
9
  - advanced_table_beta_sort: Enable Sorting
10
+ - advanced_table_responsive: Responsive Tables
8
11
  - advanced_table_custom_cell_rails: Custom Components for Cells
9
12
  - advanced_table_column_headers: Multi-Header Columns
10
13
  - advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
@@ -20,6 +23,7 @@ examples:
20
23
  - advanced_table_collapsible_trail: Collapsible Trail
21
24
  - advanced_table_table_options: Table Options
22
25
  - advanced_table_table_props: Table Props
26
+ - advanced_table_table_props_sticky_header: Table Props Sticky Header
23
27
  - advanced_table_inline_row_loading: Inline Row Loading
24
28
  - advanced_table_responsive: Responsive Tables
25
29
  - advanced_table_custom_cell: Custom Components for Cells
@@ -27,6 +31,7 @@ examples:
27
31
  - advanced_table_pagination_with_props: Pagination Props
28
32
  - advanced_table_column_headers: Multi-Header Columns
29
33
  - advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
34
+ - advanced_table_column_headers_custom_cell: Multi-Header Columns with Custom Cells
30
35
  # - advanced_table_no_subrows: Table with No Subrows
31
36
  - advanced_table_selectable_rows: Selectable Rows
32
37
  - advanced_table_selectable_rows_no_subrows: Selectable Rows (No Subrows)
@@ -18,4 +18,6 @@ export { default as AdvancedTableSelectableRows } from './_advanced_table_select
18
18
  export { default as AdvancedTableSelectableRowsNoSubrows } from './_advanced_table_selectable_rows_no_subrows.jsx'
19
19
  export { default as AdvancedTableNoSubrows } from './_advanced_table_no_subrows.jsx'
20
20
  export { default as AdvancedTableSelectableRowsHeader } from './_advanced_table_selectable_rows_header.jsx'
21
- export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
21
+ export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
22
+ export { default as AdvancedTableTablePropsStickyHeader } from './_advanced_table_table_props_sticky_header.jsx'
23
+ export { default as AdvancedTableColumnHeadersCustomCell } from './_advanced_table_column_headers_custom_cell.jsx'
@@ -133,15 +133,18 @@ export default class PbAdvancedTable extends PbEnhancedElement {
133
133
  if (!elements.length) return;
134
134
 
135
135
  const isVisible = elements[0].classList.contains("is-visible");
136
- if (isVisible) {
137
- this.hideElement(elements);
138
- this.displayDownArrow();
139
- } else {
140
- this.showElement(elements);
141
- this.displayUpArrow();
136
+
137
+ isVisible ? this.hideElement(elements) : this.showElement(elements);
138
+ isVisible ? this.displayDownArrow() : this.displayUpArrow();
139
+
140
+ const row = this.element.closest("tr");
141
+ if (row) {
142
+ row.classList.toggle("bg-silver", !isVisible);
143
+ row.classList.toggle("bg-white", isVisible);
142
144
  }
143
145
  }
144
146
 
147
+
145
148
  displayDownArrow() {
146
149
  this.element.querySelector(DOWN_ARROW_SELECTOR).style.display =
147
150
  "inline-block";
@@ -16,6 +16,11 @@ module Playbook
16
16
  default: []
17
17
  prop :collapsible_trail, type: Playbook::Props::Boolean,
18
18
  default: true
19
+ prop :loading, type: Playbook::Props::Boolean,
20
+ default: false
21
+ prop :responsive, type: Playbook::Props::Enum,
22
+ values: %w[none scroll],
23
+ default: "scroll"
19
24
 
20
25
  def flatten_columns(columns)
21
26
  columns.flat_map do |col|
@@ -46,12 +51,12 @@ module Playbook
46
51
  row_parent: "#{id}_#{ancestor_ids.last}",
47
52
  }
48
53
  # Subrow header if applicable
49
- output << pb_rails("advanced_table/table_subrow_header", props: { row: row, column_definitions: leaf_columns, depth: current_depth, subrow_header: subrow_headers[current_depth - 1], collapsible_trail: collapsible_trail, classname: "toggle-content", subrow_data_attributes: subrow_data_attributes }) if is_first_child_of_subrow && enable_toggle_expansion == "all"
54
+ output << pb_rails("advanced_table/table_subrow_header", props: { row: row, column_definitions: leaf_columns, depth: current_depth, subrow_header: subrow_headers[current_depth - 1], collapsible_trail: collapsible_trail, classname: "toggle-content", responsive: responsive, subrow_data_attributes: subrow_data_attributes }) if is_first_child_of_subrow && enable_toggle_expansion == "all"
50
55
 
51
56
  current_data_attributes = current_depth.zero? ? { row_depth: 0 } : table_data_attributes
52
57
 
53
58
  # Additional class and data attributes needed for toggle logic
54
- output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: leaf_columns, depth: current_depth, collapsible_trail: collapsible_trail, classname: additional_classes, table_data_attributes: current_data_attributes })
59
+ output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: leaf_columns, depth: current_depth, collapsible_trail: collapsible_trail, classname: additional_classes, table_data_attributes: current_data_attributes, responsive: responsive, loading: loading })
55
60
 
56
61
  if row[:children].present?
57
62
  row[:children].each do |child_row|
@@ -74,7 +79,16 @@ module Playbook
74
79
  end
75
80
 
76
81
  def classname
77
- generate_classname("pb_advanced_table_body", separator: " ")
82
+ additional_classes = []
83
+ additional_classes << "advanced-table-responsive-#{responsive} pinned-left" if responsive == "scroll"
84
+
85
+ generate_classname("pb_advanced_table_body", *additional_classes, separator: " ")
86
+ end
87
+
88
+ def pinned_cell_class(index)
89
+ return "pinned-left" if index.zero? && responsive == "scroll"
90
+
91
+ ""
78
92
  end
79
93
 
80
94
  private
@@ -3,17 +3,21 @@
3
3
  <%= pb_rails("table/table_row") do %>
4
4
  <% header_row.each_with_index do |cell, cell_index| %>
5
5
  <% header_id = cell[:accessor].present? ? cell[:accessor] : "header_#{row_index}_#{cell_index}" %>
6
- <%= pb_rails("table/table_header", props: { id: header_id, colspan: cell[:colspan], classname: [object.th_classname, ('last-header-cell' if cell[:is_last_in_group] && cell_index != 0)].compact.join(' '), sort_menu: cell[:accessor] ? cell[:sort_menu] : nil }) do %>
7
- <%= pb_rails("flex", props:{ align: "center", justify: cell_index.zero? ? "start" : row_index === header_rows.size - 1 ? "end" : "center", text_align: "end" }) do %>
8
- <% if cell_index.zero? && (object.enable_toggle_expansion == "header" || object.enable_toggle_expansion == "all") && row_index === header_rows.size - 1 %>
9
- <button
10
- class="gray-icon toggle-all-icon"
11
- onclick="expandAllRows(this); event.preventDefault();">
12
- <%= pb_rails("icon", props: { icon: "arrows-from-line", cursor: "pointer", fixed_width: true, padding_right: "xs" }) %>
13
- </button>
14
- <% end %>
15
- <%= cell[:label] %>
16
- <% end %>
6
+ <%= pb_rails("table/table_header", props: { id: header_id, colspan: cell[:colspan], classname: [object.th_classname(is_first_column: cell_index.zero?), ('last-header-cell' if cell[:is_last_in_group] && cell_index != 0)].compact.join(' '), sort_menu: cell[:accessor] ? cell[:sort_menu] : nil }) do %>
7
+ <%= pb_rails("flex", props: { align: "center", justify: cell_index.zero? ? "start" : row_index === header_rows.size - 1 ? "end" : "center", text_align: "end" }) do %>
8
+ <% if cell_index.zero? && (object.enable_toggle_expansion == "header" || object.enable_toggle_expansion == "all") && row_index === header_rows.size - 1 %>
9
+ <% if loading %>
10
+ <div class="<%= object.loading ? 'loading-toggle-icon' : '' %>"></div>
11
+ <% else %>
12
+ <button
13
+ class="gray-icon toggle-all-icon"
14
+ onclick="expandAllRows(this); event.preventDefault();">
15
+ <%= pb_rails("icon", props: { icon: "arrows-from-line", cursor: "pointer", fixed_width: true, padding_right: "xs" }) %>
16
+ </button>
17
+ <% end %>
18
+ <% end %>
19
+ <%= cell[:label] %>
20
+ <% end %>
17
21
  <% end %>
18
22
  <% end %>
19
23
  <% end %>
@@ -8,13 +8,24 @@ module Playbook
8
8
  prop :enable_toggle_expansion, type: Playbook::Props::Enum,
9
9
  values: %w[all header none],
10
10
  default: "header"
11
+ prop :loading, type: Playbook::Props::Boolean,
12
+ default: false
13
+ prop :responsive, type: Playbook::Props::Enum,
14
+ values: %w[none scroll],
15
+ default: "scroll"
11
16
 
12
17
  def classname
13
- generate_classname("pb_advanced_table_header", "pb_table_thead", separator: " ")
18
+ additional_classes = []
19
+ additional_classes << "advanced-table-responsive-#{responsive} pinned-left" if responsive == "scroll"
20
+
21
+ generate_classname("pb_advanced_table_header", "pb_table_thead", *additional_classes, separator: " ")
14
22
  end
15
23
 
16
- def th_classname
17
- generate_classname("table-header-cells", separator: " ")
24
+ def th_classname(is_first_column: false)
25
+ additional_classes = []
26
+ additional_classes << "pinned-left" if is_first_column && responsive == "scroll"
27
+
28
+ generate_classname("table-header-cells", *additional_classes, separator: " ")
18
29
  end
19
30
 
20
31
  def header_rows
@@ -1,8 +1,8 @@
1
1
  <%= pb_content_tag(:tr) do %>
2
2
  <% object.column_definitions.each_with_index do |column, index| %>
3
3
  <% next unless column[:accessor].present? %>
4
- <%= pb_rails("table/table_cell", props: { classname:object.td_classname(column)}) do %>
5
- <%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end" }) do %>
4
+ <%= pb_rails("table/table_cell", props: { classname:object.td_classname(column, index)}) do %>
5
+ <%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end", classname: object.loading ? "loading-cell" : "" }) do %>
6
6
  <% if collapsible_trail && index.zero? %>
7
7
  <% (1..depth).each do |i| %>
8
8
  <% additional_offset = i > 1 ? (i - 1) * 0.25 : 0 %>
@@ -14,10 +14,13 @@
14
14
  <div style="padding-left: <%= depth * 1.25 %>em">
15
15
  <%= pb_rails("flex", props:{align: "center", column_gap: "xs"}) do %>
16
16
  <% if index.zero? && object.row[:children].present? %>
17
- <button id="<%= "#{object.id}_#{object.row.object_id}" %>" class="gray-icon expand-toggle-icon" data-advanced-table="true" >
18
- <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
19
- <%= pb_rails("icon", props: { id: "advanced-table_close_icon", display: "none", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
20
- </button>
17
+ <button
18
+ id="<%= "#{object.id}_#{object.row.object_id}" %>"
19
+ class="gray-icon expand-toggle-icon"
20
+ data-advanced-table="true">
21
+ <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
22
+ <%= pb_rails("icon", props: { id: "advanced-table_close_icon", display: "none", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
23
+ </button>
21
24
  <% end %>
22
25
  <%= pb_rails("flex/flex_item", props:{padding_left: index.zero? && object.row[:children].present? ? "none" : "xs"}) do %>
23
26
  <% if column[:custom_renderer].present? %>
@@ -42,4 +45,4 @@
42
45
  <% end %>
43
46
  <% end %>
44
47
  <% end %>
45
- <% end %>
48
+ <% end %>
@@ -13,6 +13,13 @@ module Playbook
13
13
  default: true
14
14
  prop :table_data_attributes, type: Playbook::Props::HashProp,
15
15
  default: {}
16
+ prop :loading, type: Playbook::Props::Boolean,
17
+ default: false
18
+ prop :responsive, type: Playbook::Props::Enum,
19
+ values: %w[none scroll],
20
+ default: "scroll"
21
+ prop :is_pinned_left, type: Playbook::Props::Boolean,
22
+ default: false
16
23
 
17
24
  def data
18
25
  Hash(prop(:data)).merge(table_data_attributes)
@@ -22,9 +29,10 @@ module Playbook
22
29
  generate_classname("pb_table_tr", "bg-white", subrow_depth_classname, separator: " ")
23
30
  end
24
31
 
25
- def td_classname(column)
32
+ def td_classname(column, index)
26
33
  classes = %w[id-cell chrome-styles]
27
34
  classes << "last-cell" if column[:is_last_in_group]
35
+ classes << "pinned-left" if index.zero? && is_pinned_left && responsive == "scroll"
28
36
  classes.join(" ")
29
37
  end
30
38
 
@@ -1,6 +1,6 @@
1
1
  <%= pb_content_tag(:tr) do %>
2
2
  <% object.column_definitions.each_with_index do |column, index| %>
3
- <%= pb_rails("table/table_cell", props: { classname: "id-cell chrome-styles"}) do %>
3
+ <%= pb_rails("table/table_cell", props: { classname: object.td_classname(index) }) do %>
4
4
  <%= pb_rails("flex", props:{ align: "center", justify: "start" }) do %>
5
5
  <% if collapsible_trail && index.zero? %>
6
6
  <% (1..depth).each do |i| %>
@@ -16,6 +16,9 @@ module Playbook
16
16
  default: true
17
17
  prop :subrow_data_attributes, type: Playbook::Props::HashProp,
18
18
  default: {}
19
+ prop :responsive, type: Playbook::Props::Enum,
20
+ values: %w[none scroll],
21
+ default: "scroll"
19
22
 
20
23
  def data
21
24
  Hash(prop(:data)).merge(subrow_data_attributes)
@@ -25,6 +28,12 @@ module Playbook
25
28
  generate_classname("pb_table_tr", "bg-silver", "pb_subrow_header", subrow_depth_classname, separator: " ")
26
29
  end
27
30
 
31
+ def td_classname(index)
32
+ classes = %w[id-cell chrome-styles]
33
+ classes << "pinned-left" if index.zero? && responsive == "scroll"
34
+ classes.join(" ")
35
+ end
36
+
28
37
  private
29
38
 
30
39
  def subrow_depth_classname
@@ -27,6 +27,9 @@ $avatar-sizes: (
27
27
  flex-basis: $size;
28
28
 
29
29
  & > [class^=pb_flex_kit] {
30
+ [class^=pb_card_kit] {
31
+ padding: 2px;
32
+ }
30
33
  [class^=pb_card_kit].overlay_bottom_center,
31
34
  [class^=pb_card_kit].overlay_top_center {
32
35
  left: 50%;
@@ -52,6 +55,10 @@ $avatar-sizes: (
52
55
  flex-grow: 0;
53
56
  flex-basis: $size;
54
57
 
58
+ .dark & {
59
+ background: $text_dk_light;
60
+ }
61
+
55
62
  &::before {
56
63
  content: attr(data-initials);
57
64
  width: 100%;
@@ -78,4 +85,11 @@ $avatar-sizes: (
78
85
  }
79
86
  }
80
87
  }
88
+
89
+ &.dark {
90
+ [class^=pb_card_kit] {
91
+ position: absolute;
92
+ padding: 2px;
93
+ }
94
+ }
81
95
  }
@@ -23,8 +23,8 @@ export type AvatarProps = {
23
23
  variant?: string,
24
24
  icon?: string
25
25
  },
26
- data?: {[key: string]: string},
27
26
  dark?: boolean,
27
+ data?: {[key: string]: string},
28
28
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
29
29
  id?: string,
30
30
  imageAlt?: string,
@@ -71,13 +71,13 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
71
71
 
72
72
  const canShowImage = imageUrl && !error
73
73
 
74
- const onlineStatusSize =
74
+ const onlineStatusSize =
75
75
  ['xxs', 'xs'].includes(size) ? 'sm' :
76
76
  ['sm', 'md'].includes(size) ? 'md' :
77
77
  ['lg', 'xl'].includes(size) ? 'lg' :
78
78
  'sm';
79
79
 
80
- const onlineStatusPositionProps = (["xxs", "xs", "sm"].includes(size)) ?
80
+ const onlineStatusPositionProps = (["xxs", "xs", "sm"].includes(size)) ?
81
81
  {
82
82
  top: { inset: true, value: "0" },
83
83
  right: { inset: false, value: "xxs" }
@@ -96,10 +96,10 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
96
96
  id={id}
97
97
  >
98
98
  {componentOverlay ? (
99
- <Flex display="display_inline_block"
99
+ <Flex display="display_inline_block"
100
100
  position="relative"
101
101
  >
102
- <div className="avatar_wrapper"
102
+ <div className="avatar_wrapper"
103
103
  data-initials={initials}
104
104
  >
105
105
  {canShowImage && (
@@ -115,12 +115,14 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
115
115
  <Card
116
116
  borderNone
117
117
  borderRadius="rounded"
118
+ dark={dark}
118
119
  padding="none"
119
120
  position="absolute"
120
121
  {...getPlacementProps(componentOverlay.placement, size)}
121
122
  >
122
-
123
+
123
124
  <Badge
125
+ dark={dark}
124
126
  rounded
125
127
  text={componentOverlay.text}
126
128
  variant={componentOverlay.variant as "error" | "info" | "neutral" | "primary" | "success" | "warning" | "notification"}
@@ -131,11 +133,13 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
131
133
  <Card
132
134
  borderNone
133
135
  borderRadius="rounded"
136
+ dark={dark}
134
137
  htmlOptions={{style: {padding:"2px"}}}
135
138
  position="absolute"
136
139
  {...getPlacementProps(componentOverlay.placement, size)}
137
140
  >
138
141
  <IconCircle
142
+ dark={dark}
139
143
  icon={componentOverlay.icon}
140
144
  size="xxs"
141
145
  variant={componentOverlay.variant as "default" | "royal" | "blue" | "purple" | "teal" | "red" | "yellow" | "orange" | "green"}
@@ -145,7 +149,7 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
145
149
  </Flex>
146
150
  ) : (
147
151
  <>
148
- <div className="avatar_wrapper"
152
+ <div className="avatar_wrapper"
149
153
  data-initials={initials}
150
154
  >
151
155
  {canShowImage && (
@@ -1,22 +1,22 @@
1
1
 
2
2
  <%= object.pb_content_tag(:div, data: object.data.merge(initials: object.initials)) do %>
3
3
  <% if object.component_overlay && object.component_overlay[:component] == "icon_circle" %>
4
- <%= pb_rails("flex", props: {display: "display_inline_block", position: "relative" }) do %>
4
+ <%= pb_rails("flex", props: { display: "display_inline_block", position: "relative" }) do %>
5
5
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
6
6
  <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
7
7
  <% end %>
8
- <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", html_options: { style: "padding: 2px" }, position: "absolute" }.merge(specific_placement_style)) do %>
8
+ <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", dark: object.dark, position: "absolute" }.merge(specific_placement_style)) do %>
9
9
 
10
- <%= pb_rails("icon_circle", props: { size: "xxs", icon: object.component_overlay[:icon], variant: object.component_overlay[:variant] }) %>
10
+ <%= pb_rails("icon_circle", props: { dark: object.dark, size: "xxs", icon: object.component_overlay[:icon], variant: object.component_overlay[:variant] }) %>
11
11
  <% end %>
12
12
  <% end %>
13
13
  <% elsif object.component_overlay && object.component_overlay[:component] == "badge" %>
14
- <%= pb_rails("flex", props: {display: "display_inline_block", position: "relative" }) do %>
14
+ <%= pb_rails("flex", props: { display: "display_inline_block", position: "relative" }) do %>
15
15
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
16
16
  <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
17
17
  <% end %>
18
- <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", padding: "none", position: "absolute" }.merge(specific_placement_style)) do %>
19
- <%= pb_rails("badge", props: { rounded: true, text: object.component_overlay[:text], variant: object.component_overlay[:variant] }) %>
18
+ <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", dark: object.dark, padding: "none", position: "absolute" }.merge(specific_placement_style)) do %>
19
+ <%= pb_rails("badge", props: { dark: object.dark, rounded: true, text: object.component_overlay[:text], variant: object.component_overlay[:variant] }) %>
20
20
  <% end %>
21
21
  <% end %>
22
22
  <% else %>
@@ -26,4 +26,3 @@
26
26
  <%= pb_rails("online_status", props: object.online_status_props) if object.status %>
27
27
  <% end %>
28
28
  <% end %>
29
-
@@ -1,18 +1,19 @@
1
1
  import React from "react";
2
2
  import { Avatar } from 'playbook-ui'
3
3
 
4
- const AvatarBadgeComponentOverlay = () => {
4
+ const AvatarBadgeComponentOverlay = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Avatar
8
8
  componentOverlay={{
9
9
  component: "badge",
10
10
  placement: "bottom-right",
11
- text: "12"
11
+ text: "12",
12
12
  }}
13
13
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
14
14
  marginBottom="sm"
15
15
  size="sm"
16
+ {...props}
16
17
  />
17
18
 
18
19
  <Avatar
@@ -24,6 +25,8 @@ const AvatarBadgeComponentOverlay = () => {
24
25
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
25
26
  marginBottom="sm"
26
27
  size="md"
28
+ {...props}
29
+
27
30
  />
28
31
 
29
32
  <Avatar
@@ -36,6 +39,8 @@ const AvatarBadgeComponentOverlay = () => {
36
39
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
37
40
  marginBottom="sm"
38
41
  size="lg"
42
+ {...props}
43
+
39
44
  />
40
45
 
41
46
  <Avatar
@@ -48,7 +53,8 @@ const AvatarBadgeComponentOverlay = () => {
48
53
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
49
54
  marginBottom="sm"
50
55
  size="xl"
51
- />
56
+ {...props}
57
+ />
52
58
  </div>
53
59
  )
54
60
  }
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { Avatar } from 'playbook-ui'
3
3
 
4
- const AvatarCircleIconComponentOverlay = () => {
4
+ const AvatarCircleIconComponentOverlay = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Avatar
@@ -14,6 +14,7 @@ const AvatarCircleIconComponentOverlay = () => {
14
14
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
15
15
  marginBottom="sm"
16
16
  size="sm"
17
+ {...props}
17
18
  />
18
19
 
19
20
  <Avatar
@@ -26,6 +27,7 @@ const AvatarCircleIconComponentOverlay = () => {
26
27
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
27
28
  marginBottom="sm"
28
29
  size="md"
30
+ {...props}
29
31
  />
30
32
 
31
33
  <Avatar
@@ -38,6 +40,7 @@ const AvatarCircleIconComponentOverlay = () => {
38
40
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
39
41
  marginBottom="sm"
40
42
  size="lg"
43
+ {...props}
41
44
  />
42
45
 
43
46
  <Avatar
@@ -50,7 +53,8 @@ const AvatarCircleIconComponentOverlay = () => {
50
53
  imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
51
54
  marginBottom="sm"
52
55
  size="xl"
53
- />
56
+ {...props}
57
+ />
54
58
  </div>
55
59
  )
56
60
  }
@@ -0,0 +1,58 @@
1
+ @import "../tokens/colors";
2
+ @import "../tokens/typography";
3
+ @import url("https://code.highcharts.com/css/highcharts.css");
4
+
5
+ :root {
6
+ --highcharts-color-0: #{$data_1};
7
+ --highcharts-color-1: #{$data_2};
8
+ --highcharts-color-2: #{$data_3};
9
+ --highcharts-color-3: #{$data_4};
10
+ --highcharts-color-4: #{$data_5};
11
+ --highcharts-color-5: #{$data_6};
12
+ --highcharts-color-6: #{$data_7};
13
+ --highcharts-color-7: #{$data_8};
14
+ }
15
+
16
+ .highcharts-title {
17
+ font-family: $font_family_base;
18
+ font-weight: $bold;
19
+ font-size: $heading_3;
20
+ color: $text_lt_default;
21
+ fill: $text_lt_default;
22
+ }
23
+
24
+ .highcharts-subtitle {
25
+ font-family: $font_family_base;
26
+ color: $text_lt_light;
27
+ fill: $text_lt_light;
28
+ font-weight: $regular;
29
+ font-size: $text_base;
30
+ }
31
+
32
+ .highcharts-yaxis > .highcharts-axis-title {
33
+ color: $text_lt_lighter;
34
+ fill: $text_lt_lighter;
35
+ font-family: $font_family_base;
36
+ font-weight: $bold;
37
+ font-size: $text_smaller;
38
+ }
39
+
40
+ .highcharts-axis-labels {
41
+ font-family: $font_family_base;
42
+ color: $text_lt_lighter;
43
+ fill: $text_lt_lighter;
44
+ font-weight: $bold;
45
+ font-size: $text_smaller;
46
+ }
47
+
48
+ .highcharts-grid-line {
49
+ stroke: $border_light;
50
+ }
51
+
52
+ .highcharts-point {
53
+ border-radius: 3px;
54
+ }
55
+
56
+ .highcharts-axis-line {
57
+ stroke: $border_light;
58
+ }