playbook_ui 4.15.0 → 4.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/app/pb_kits/playbook/_playbook.scss +7 -1
  4. data/app/pb_kits/playbook/data/menu.yml +5 -1
  5. data/app/pb_kits/playbook/index.js +5 -0
  6. data/app/pb_kits/playbook/packs/examples.js +8 -0
  7. data/app/pb_kits/playbook/packs/samples.js +2 -0
  8. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +1 -1
  9. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +24 -15
  10. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.jsx +45 -0
  11. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +6 -5
  12. data/app/pb_kits/playbook/pb_avatar/docs/index.js +1 -0
  13. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.html.erb +33 -0
  14. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.jsx +81 -0
  15. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +63 -0
  16. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +44 -0
  17. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +15 -0
  18. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +19 -0
  19. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +8 -0
  20. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +13 -0
  21. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +15 -0
  22. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +14 -0
  23. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +27 -0
  24. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +29 -0
  25. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +11 -0
  26. data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +16 -0
  27. data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +4 -0
  28. data/app/pb_kits/playbook/pb_badge/_badge.jsx +20 -14
  29. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +9 -2
  30. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +5 -1
  31. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.html.erb +2 -2
  32. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +2 -2
  33. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.html.erb +26 -0
  34. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +36 -0
  35. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.html.erb +14 -0
  36. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +23 -0
  37. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +3 -1
  38. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +4 -0
  39. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +2 -0
  40. data/app/pb_kits/playbook/pb_body/_body.jsx +2 -1
  41. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +4 -0
  42. data/app/pb_kits/playbook/pb_button/_button.jsx +2 -1
  43. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +6 -0
  44. data/app/pb_kits/playbook/pb_caption/_caption.jsx +19 -17
  45. data/app/pb_kits/playbook/pb_card/_card.html.erb +1 -1
  46. data/app/pb_kits/playbook/pb_card/_card.jsx +35 -38
  47. data/app/pb_kits/playbook/pb_card/_card.scss +0 -10
  48. data/app/pb_kits/playbook/pb_card/card.rb +9 -3
  49. data/app/pb_kits/playbook/pb_card/card_body.rb +1 -5
  50. data/app/pb_kits/playbook/pb_card/card_header.rb +0 -3
  51. data/app/pb_kits/playbook/pb_card/docs/_card_light.html.erb +2 -1
  52. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +17 -18
  53. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +1 -1
  54. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +10 -1
  55. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +3 -1
  56. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +11 -0
  57. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.jsx +25 -0
  58. data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +3 -1
  59. data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +1 -0
  60. data/app/pb_kits/playbook/pb_contact/_contact.html.erb +16 -3
  61. data/app/pb_kits/playbook/pb_contact/_contact.jsx +58 -34
  62. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +1 -1
  63. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +1 -0
  64. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +7 -9
  65. data/app/pb_kits/playbook/pb_currency/_currency.jsx +37 -21
  66. data/app/pb_kits/playbook/pb_currency/currency.rb +22 -29
  67. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.html.erb +3 -3
  68. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.jsx +2 -3
  69. data/app/pb_kits/playbook/pb_currency/docs/_currency_large.jsx +2 -3
  70. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.jsx +2 -2
  71. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.html.erb +1 -1
  72. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.jsx +5 -2
  73. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  74. data/app/pb_kits/playbook/pb_date/_date.jsx +39 -15
  75. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +3 -1
  76. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +43 -37
  77. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +2 -2
  78. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +6 -16
  79. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +21 -18
  80. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +30 -33
  81. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +10 -15
  82. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +8 -8
  83. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +13 -23
  84. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +16 -14
  85. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +13 -12
  86. data/app/pb_kits/playbook/pb_flex/_flex.jsx +35 -20
  87. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -9
  88. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +14 -19
  89. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +26 -22
  90. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +13 -12
  91. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +85 -80
  92. data/app/pb_kits/playbook/pb_icon/_icon.jsx +54 -33
  93. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +13 -9
  94. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +16 -20
  95. data/app/pb_kits/playbook/pb_image/_image.jsx +12 -10
  96. data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +1 -0
  97. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +49 -14
  98. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +50 -0
  99. data/app/pb_kits/playbook/pb_label_pill/docs/example.yml +4 -3
  100. data/app/pb_kits/playbook/pb_label_pill/docs/index.js +1 -0
  101. data/app/pb_kits/playbook/pb_label_pill/label_pill.rb +1 -1
  102. data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +1 -0
  103. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +30 -18
  104. data/app/pb_kits/playbook/pb_layout/_layout.jsx +51 -45
  105. data/app/pb_kits/playbook/pb_layout/_layout.scss +76 -57
  106. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +54 -0
  107. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.jsx +27 -0
  108. data/app/pb_kits/playbook/pb_layout/docs/example.yml +2 -0
  109. data/app/pb_kits/playbook/pb_layout/docs/index.js +1 -0
  110. data/app/pb_kits/playbook/pb_layout/layout.rb +10 -2
  111. data/app/pb_kits/playbook/pb_legend/_legend.jsx +17 -15
  112. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +9 -2
  113. data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +3 -1
  114. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.html.erb +8 -8
  115. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +1 -1
  116. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.html.erb +26 -0
  117. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +35 -0
  118. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.html.erb +15 -0
  119. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +23 -0
  120. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +5 -1
  121. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +2 -0
  122. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +6 -0
  123. data/app/pb_kits/playbook/pb_list/_list.jsx +24 -21
  124. data/app/pb_kits/playbook/pb_list/docs/_description.md +7 -1
  125. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.html.erb +8 -0
  126. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.html.erb +8 -0
  127. data/app/pb_kits/playbook/pb_list/docs/example.yml +2 -0
  128. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +21 -19
  129. data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +1 -0
  130. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +26 -11
  131. data/app/pb_kits/playbook/pb_message/_message.html.erb +1 -0
  132. data/app/pb_kits/playbook/pb_message/_message.jsx +33 -11
  133. data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +1 -2
  134. data/app/pb_kits/playbook/pb_message/message.rb +1 -1
  135. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +10 -10
  136. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +7 -19
  137. data/app/pb_kits/playbook/pb_nav/_nav.jsx +17 -14
  138. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +5 -13
  139. data/app/pb_kits/playbook/pb_person/_person.html.erb +9 -2
  140. data/app/pb_kits/playbook/pb_person/_person.jsx +36 -18
  141. data/app/pb_kits/playbook/pb_person/docs/_person_default.html.erb +5 -1
  142. data/app/pb_kits/playbook/pb_person_contact/_person_contact.html.erb +1 -0
  143. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +73 -21
  144. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +32 -0
  145. data/app/pb_kits/playbook/pb_person_contact/docs/example.yml +2 -0
  146. data/app/pb_kits/playbook/pb_person_contact/docs/index.js +1 -0
  147. data/app/pb_kits/playbook/pb_pill/_pill.jsx +5 -10
  148. data/app/pb_kits/playbook/pb_popover/_popover.jsx +52 -41
  149. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +1 -0
  150. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +41 -13
  151. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +15 -12
  152. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +17 -10
  153. data/app/pb_kits/playbook/pb_radio/_radio.jsx +3 -1
  154. data/app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb +1 -0
  155. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +30 -15
  156. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +3 -1
  157. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -2
  158. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +12 -7
  159. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +30 -0
  160. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +97 -0
  161. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +74 -0
  162. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.html.erb +29 -0
  163. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.jsx +41 -0
  164. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_dark.html.erb +30 -0
  165. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_dark.jsx +40 -0
  166. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.html.erb +26 -0
  167. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.jsx +37 -0
  168. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.html.erb +27 -0
  169. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.jsx +40 -0
  170. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +16 -0
  171. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/index.js +4 -0
  172. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +50 -0
  173. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +24 -0
  174. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +107 -0
  175. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +85 -0
  176. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_dark.html.erb +26 -0
  177. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_dark.jsx +43 -0
  178. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.html.erb +23 -0
  179. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.jsx +40 -0
  180. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.html.erb +27 -0
  181. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.jsx +46 -0
  182. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +12 -0
  183. data/app/pb_kits/playbook/pb_selectable_icon/docs/index.js +3 -0
  184. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +55 -0
  185. data/app/pb_kits/playbook/pb_source/_source.jsx +113 -13
  186. data/app/pb_kits/playbook/pb_source/docs/_source_default.html.erb +3 -1
  187. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +37 -0
  188. data/app/pb_kits/playbook/pb_source/docs/_source_noicon.jsx +40 -0
  189. data/app/pb_kits/playbook/pb_source/docs/_source_types.jsx +85 -0
  190. data/app/pb_kits/playbook/pb_source/docs/example.yml +3 -0
  191. data/app/pb_kits/playbook/pb_source/docs/index.js +5 -0
  192. data/app/pb_kits/playbook/pb_star_rating/_star_rating.html.erb +6 -2
  193. data/app/pb_kits/playbook/pb_star_rating/_star_rating.jsx +98 -13
  194. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +28 -0
  195. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx +13 -0
  196. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +2 -1
  197. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +3 -0
  198. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +2 -1
  199. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +14 -13
  200. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -1
  201. data/app/pb_kits/playbook/pb_table/_table.jsx +29 -28
  202. data/app/pb_kits/playbook/pb_table/_table.scss +1 -1
  203. data/app/pb_kits/playbook/pb_table/_table_row.jsx +6 -7
  204. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.html.erb +52 -8
  205. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +52 -8
  206. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +3 -1
  207. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +5 -3
  208. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -5
  209. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb +31 -5
  210. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +3 -0
  211. data/app/pb_kits/playbook/pb_text_input/text_input.rb +1 -1
  212. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -1
  213. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +38 -18
  214. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +12 -11
  215. data/app/pb_kits/playbook/pb_timeline/_item.html.erb +28 -0
  216. data/app/pb_kits/playbook/pb_timeline/_item.jsx +54 -0
  217. data/app/pb_kits/playbook/pb_timeline/_timeline.html.erb +6 -0
  218. data/app/pb_kits/playbook/pb_timeline/_timeline.jsx +43 -0
  219. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +271 -0
  220. data/app/pb_kits/playbook/pb_timeline/docs/_description.md +3 -0
  221. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.html.erb +43 -0
  222. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.jsx +73 -0
  223. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.html.erb +43 -0
  224. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.jsx +73 -0
  225. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.html.erb +44 -0
  226. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.jsx +85 -0
  227. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +13 -0
  228. data/app/pb_kits/playbook/pb_timeline/docs/index.js +3 -0
  229. data/app/pb_kits/playbook/pb_timeline/item.rb +25 -0
  230. data/app/pb_kits/playbook/pb_timeline/timeline.rb +27 -0
  231. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +7 -14
  232. data/app/pb_kits/playbook/pb_title/_title.jsx +12 -13
  233. data/app/pb_kits/playbook/pb_title/docs/_title_light.html.erb +1 -1
  234. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +49 -28
  235. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_align.jsx +31 -0
  236. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.jsx +13 -2
  237. data/app/pb_kits/playbook/pb_title_count/docs/example.yml +4 -5
  238. data/app/pb_kits/playbook/pb_title_count/docs/index.js +1 -0
  239. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +7 -18
  240. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +9 -11
  241. data/app/pb_kits/playbook/pb_user/_user.jsx +37 -37
  242. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +7 -7
  243. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +32 -30
  244. data/app/pb_kits/playbook/plugins/pb_chart.js +4 -0
  245. data/app/pb_kits/playbook/props.rb +48 -0
  246. data/app/pb_kits/playbook/tokens/_colors.scss +3 -3
  247. data/app/pb_kits/playbook/tokens/_spacing.scss +1 -0
  248. data/app/pb_kits/playbook/utilities/_spacing.scss +42 -0
  249. data/app/pb_kits/playbook/utilities/spacing.js +33 -0
  250. data/app/views/playbook/samples/dashboards/index.html.erb +3 -1
  251. data/app/views/playbook/samples/registration/index.html.erb +316 -0
  252. data/app/views/playbook/samples/registration/index.jsx +476 -0
  253. data/lib/playbook/version.rb +1 -1
  254. metadata +88 -4
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+ import { BarGraph } from '../..'
3
+
4
+ const chartData = [{
5
+ name: 'Number of Installations',
6
+ data: [1475, 200, 3000, 654, 656],
7
+ }]
8
+
9
+ const BarGraphLegend = () => (
10
+ <div>
11
+ <BarGraph
12
+ axisTitle="Number of Employees"
13
+ chartData={chartData}
14
+ id="bar-test-2"
15
+ legend
16
+ title="Bar Graph with Legend"
17
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
18
+ yAxisMin={0}
19
+ />
20
+ </div>
21
+ )
22
+
23
+ export default BarGraphLegend
@@ -1 +1,3 @@
1
- Bar graphs are used to show data. Bar graphs are not typically used to show percentages. The default height of bar graph is 400px and can be changed. The default height is in pixel units, but can also use percentage string (percentage would be that of the width. For example, `height:"50%"` would mean that the height is 50% of the width). This allows for preserving the aspect ratio across responsive sizes.

1
+ Bar graphs are used to compare data. Bar graphs are not typically used to show percentages. The default height of bar graph is 400px and can be changed. The default height is in pixel units, but can also use percentage string (percentage would be that of the width. For example, `height:"50%"` would mean that the height is 50% of the width). This allows for preserving the aspect ratio across responsive sizes.

2
+
3
+ For more information, see: <a href="https://api.highcharts.com/highcharts/chart.height" target="_blank"> highcharts/chart.height</a>.
@@ -2,8 +2,12 @@ examples:
2
2
 
3
3
  rails:
4
4
  - bar_graph_default: Default
5
+ - bar_graph_legend: Legend
6
+ - bar_graph_height: Height
5
7
 
6
8
 
7
9
  react:
8
10
  - bar_graph_default: Default
11
+ - bar_graph_legend: Legend
12
+ - bar_graph_height: Height
9
13
 
@@ -1 +1,3 @@
1
1
  export { default as BarGraphDefault } from './_bar_graph_default.jsx'
2
+ export { default as BarGraphLegend } from './_bar_graph_legend.jsx'
3
+ export { default as BarGraphHeight } from './_bar_graph_height.jsx'
@@ -3,6 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { Highlight } from '../'
6
+ import { spacing } from '../utilities/spacing.js'
6
7
 
7
8
  type BodyProps = {
8
9
  className?: String,
@@ -44,7 +45,7 @@ const Body = (props: BodyProps) => {
44
45
  const Tag = `${tag}`
45
46
 
46
47
  return (
47
- <Tag className={classnames(bodyCSS(props), className)}>
48
+ <Tag className={classnames(bodyCSS(props), className, spacing(props))}>
48
49
  <If condition={highlighting}>
49
50
  <Highlight highlightedText={highlightedText}>{text || children}</Highlight>
50
51
  <Else />
@@ -23,6 +23,10 @@ const BodyLight = () => {
23
23
  status="positive"
24
24
  text="I am a body kit (Status: positive)"
25
25
  />
26
+ <Body
27
+ status="positive"
28
+ text="I am a body kit (Status: positive)"
29
+ />
26
30
  </div>
27
31
  )
28
32
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
+ import { spacing } from '../utilities/spacing.js'
5
6
 
6
7
  import Icon from '../pb_icon/_icon.jsx'
7
8
 
@@ -83,7 +84,7 @@ const Button = (props: ButtonPropTypes) => {
83
84
  } = props
84
85
 
85
86
  const buttonAria = buttonAriaProps(props)
86
- const css = classnames(buttonClassName(props), className)
87
+ const css = classnames(buttonClassName(props), className, spacing(props))
87
88
  const loadingIcon = (
88
89
  <div className="loading-icon">
89
90
  <Icon
@@ -22,7 +22,13 @@ const ButtonDefault = () => (
22
22
  onClick={() => alert('button clicked!')}
23
23
  text="Button Disabled"
24
24
  />
25
+ <Button
26
+ disabled
27
+ onClick={() => alert('button clicked!')}
28
+ text="Button Disabled"
29
+ />
25
30
  </div>
31
+
26
32
  )
27
33
 
28
34
  export default ButtonDefault
@@ -3,35 +3,37 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildCss } from '../utilities/props'
6
+ import { spacing } from '../utilities/spacing.js'
6
7
 
7
8
  type CaptionProps = {
8
9
  className?: String,
9
10
  children: Array<React.ReactNode> | React.ReactNode,
10
11
  dark?: Boolean,
11
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl',
12
+ size?: "xs" | "sm" | "md" | "lg" | "xl",
12
13
  tag: String,
13
14
  text: String,
14
15
  }
15
16
 
16
- const Caption = ({
17
- className,
18
- children,
19
- dark = false,
20
- size = 'md',
21
- tag = 'div',
22
- text,
23
- }: CaptionProps) => {
17
+ const Caption = (props: CaptionProps) => {
18
+ const {
19
+ className,
20
+ children,
21
+ dark = false,
22
+ size = 'md',
23
+ tag = 'div',
24
+ text,
25
+ } = props
24
26
  const Tag = `${tag}`
25
27
 
26
- const css = classnames(buildCss('pb_caption_kit', size, {
27
- 'dark': dark,
28
- }), className)
29
-
30
- return (
31
- <Tag className={css}>
32
- {text || children}
33
- </Tag>
28
+ const css = classnames(
29
+ buildCss('pb_caption_kit', size, {
30
+ dark: dark,
31
+ }),
32
+ className,
33
+ spacing(props)
34
34
  )
35
+
36
+ return <Tag className={css}>{text || children}</Tag>
35
37
  }
36
38
 
37
39
  export default Caption
@@ -5,6 +5,6 @@
5
5
  aria: object.aria,
6
6
  dark: object.dark) do %>
7
7
  <% if object.children %>
8
- <%= pb_rails("card/card_body", props: { padding: object.padding, children: object.children }) %>
8
+ <%= pb_rails("card/card_body", props: { padding: object.body_padding, children: object.children }) %>
9
9
  <% end %>
10
10
  <% end %>
@@ -1,99 +1,96 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
+ import { get } from 'lodash'
4
5
  import classnames from 'classnames'
5
6
  import { buildCss } from '../utilities/props'
7
+ import { spacing } from '../utilities/spacing.js'
6
8
 
7
9
  type CardPropTypes = {
8
10
  children: Array<React.ReactNode> | React.ReactNode,
9
11
  className?: String,
10
12
  highlight?: {
11
- position?: 'side' | 'top',
12
- color?: String
13
+ position?: "side" | "top",
14
+ color?: String,
13
15
  },
14
- padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
15
16
  selected?: Boolean,
16
- shadow?: 'none' | 'deep' | 'deeper' | 'deepest',
17
+ shadow?: "none" | "deep" | "deeper" | "deepest",
17
18
  dark?: Boolean,
18
19
  }
19
20
 
20
21
  type CardHeaderProps = {
21
22
  children: Array<React.ReactNode> | React.ReactNode,
22
23
  className?: String,
23
- padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
24
24
  categoryColor?: Number,
25
25
  }
26
26
 
27
27
  type CardBodyProps = {
28
28
  children: Array<React.ReactNode> | React.ReactNode | String,
29
29
  className?: String,
30
- padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
31
30
  }
32
31
 
33
32
  // Header component
34
- const Header = ({
35
- children,
36
- className,
37
- padding = 'sm',
38
- categoryColor = 1,
39
- }: CardHeaderProps) => {
40
- const headerCSS = buildCss('pb_card_header_kit', padding, `category_${categoryColor}`)
33
+ const Header = (props: CardHeaderProps) => {
34
+ const { children, className, categoryColor = 1 } = props
35
+ const headerCSS = buildCss('pb_card_header_kit', `category_${categoryColor}`)
36
+
37
+ const headerSpacing = spacing(props) ? spacing(props) : 'p_sm'
41
38
  return (
42
- <div className={classnames(headerCSS, className)}>
39
+ <div className={classnames(headerCSS, className, headerSpacing)}>
43
40
  {children}
44
41
  </div>
45
42
  )
46
43
  }
47
44
 
48
45
  // Body component
49
- const Body = ({
50
- children,
51
- className,
52
- padding = 'sm',
53
- }: CardBodyProps) => {
54
- const bodyCSS = buildCss('pb_card_body_kit', padding)
46
+ const Body = (props: CardBodyProps) => {
47
+ const { children, className } = props
48
+ const bodyCSS = buildCss('pb_card_body_kit')
49
+ const bodySpacing = spacing(props) ? spacing(props) : 'p_md'
55
50
  return (
56
- <div className={classnames(bodyCSS, className)}>
51
+ <div className={classnames(bodyCSS, className, bodySpacing)}>
57
52
  {children}
58
53
  </div>
59
54
  )
60
55
  }
61
56
 
62
- const Card = ({
63
- children,
64
- className,
65
- dark = false,
66
- highlight = {},
67
- padding = 'md',
68
- selected = false,
69
- shadow = 'none',
70
- }: CardPropTypes) => {
71
- const bodyCSS = buildCss('pb_card_body_kit', padding)
57
+ const Card = (props: CardPropTypes) => {
58
+ const {
59
+ children,
60
+ className,
61
+ dark = false,
62
+ highlight = {},
63
+ selected = false,
64
+ shadow = 'none',
65
+ } = props
66
+ const bodyCSS = buildCss('pb_card_body_kit')
72
67
  const cardCss = buildCss('pb_card_kit', `shadow_${shadow}`, {
73
- 'dark': dark,
68
+ dark: dark,
74
69
  selected,
75
70
  deselected: !selected,
76
71
  [`highlight_${highlight.position}`]: highlight.position,
77
72
  [`highlight_${highlight.color}`]: highlight.color,
78
73
  })
74
+ const cardSpacing = spacing(props) ? spacing(props) : 'p_md'
79
75
 
80
76
  // coerce to array
81
- const cardChildren = typeof(children) === 'object' && children.length ? children : [children]
77
+ const cardChildren =
78
+ typeof children === 'object' && children.length ? children : [children]
82
79
 
83
80
  const subComponentTags = (tagName) => {
84
- return cardChildren.filter((c) => {
85
- return c.type && c.type.displayName === tagName
86
- }).map((child, i) => {
81
+ return cardChildren.filter((c) => (
82
+ get(c, 'type.displayName') === tagName
83
+ )).map((child, i) => {
87
84
  return React.cloneElement(child, { key: `${tagName.toLowerCase()}-${i}` })
88
85
  })
89
86
  }
90
87
 
91
- const nonHeaderChildren = cardChildren.filter((child) => !child.type || child.type.displayName !== 'Header')
88
+ const nonHeaderChildren = cardChildren.filter((child) => (get(child, 'type.displayName') !== 'Header'))
92
89
 
93
90
  return (
94
91
  <div className={classnames(cardCss, className)}>
95
92
  {subComponentTags('Header')}
96
- <div className={bodyCSS}>
93
+ <div className={classnames(bodyCSS, cardSpacing)}>
97
94
  {nonHeaderChildren}
98
95
  </div>
99
96
  </div>
@@ -99,11 +99,6 @@ $pb_card_padding:(
99
99
  @include pb_card_header_color($color_value);
100
100
  }
101
101
  }
102
- @each $padding_name, $padding_value in $pb_card_padding {
103
- &[class*=_#{$padding_name}] {
104
- padding: $padding_value;
105
- }
106
- }
107
102
  }
108
103
 
109
104
  [class^=pb_card_body_kit] {
@@ -112,11 +107,6 @@ $pb_card_padding:(
112
107
  flex-basis: auto;
113
108
  min-height: 1px;
114
109
  border: 0;
115
- @each $name, $padding_size in $pb_card_padding {
116
- &[class*=_#{$name}] {
117
- padding: $padding_size;
118
- }
119
- }
120
110
  }
121
111
 
122
112
  @each $name, $shadow in $box_shadows {
@@ -8,9 +8,6 @@ module Playbook
8
8
  partial "pb_card/card"
9
9
 
10
10
  prop :selected, type: Playbook::Props::Boolean, default: false
11
- prop :padding, type: Playbook::Props::Enum,
12
- values: %w[none xs sm md lg xl],
13
- default: "md"
14
11
  prop :shadow, type: Playbook::Props::Enum,
15
12
  values: %w[none deep deeper deepest],
16
13
  default: "none"
@@ -28,8 +25,17 @@ module Playbook
28
25
  dark_class)
29
26
  end
30
27
 
28
+ def body_padding
29
+ if padding.present?
30
+ ""
31
+ else
32
+ "p_md"
33
+ end
34
+ end
35
+
31
36
  private
32
37
 
38
+
33
39
  def selected_class
34
40
  selected ? "selected" : "deselected"
35
41
  end
@@ -7,12 +7,8 @@ module Playbook
7
7
 
8
8
  partial "pb_card/child_kits/card_body"
9
9
 
10
- prop :padding, type: Playbook::Props::Enum,
11
- values: %w[none xs sm md lg xl],
12
- default: "md"
13
-
14
10
  def classname
15
- generate_classname("pb_card_body_kit", padding)
11
+ generate_classname("pb_card_body_kit", padding, separator: " ")
16
12
  end
17
13
  end
18
14
  end
@@ -7,9 +7,6 @@ module Playbook
7
7
 
8
8
  partial "pb_card/child_kits/card_header"
9
9
 
10
- prop :padding, type: Playbook::Props::Enum,
11
- values: %w[none xs sm md lg xl],
12
- default: "none"
13
10
  prop :category_color, type: Playbook::Props::Numeric,
14
11
  default: 1
15
12
 
@@ -1,3 +1,4 @@
1
- <%= pb_rails("card") do %>
1
+ <%= pb_rails("card", props: {
2
+ }) do %>
2
3
  Card content
3
4
  <% end %>
@@ -3,6 +3,8 @@
3
3
  import React from 'react'
4
4
  import Body from '../pb_body/_body.jsx'
5
5
  import Icon from '../pb_icon/_icon.jsx'
6
+ import classnames from 'classnames'
7
+ import { spacing } from '../utilities/spacing.js'
6
8
 
7
9
  type CheckboxProps = {
8
10
  checked?: Boolean,
@@ -15,27 +17,24 @@ type CheckboxProps = {
15
17
  onChange: (Boolean) => void,
16
18
  }
17
19
 
18
- const Checkbox = ({
19
- checked = false,
20
- dark = false,
21
- error = false,
22
- name = '',
23
- text = '',
24
- value = '',
25
- children = null,
26
- onChange = () => {},
27
-
28
- }: CheckboxProps) => {
29
- const bodyClassName = {
30
- 'pb_checkbox_label': true,
31
- }
20
+ const Checkbox = (props: CheckboxProps) => {
21
+ const {
22
+ checked = false,
23
+ dark = false,
24
+ error = false,
25
+ name = '',
26
+ text = '',
27
+ value = '',
28
+ children = null,
29
+ onChange = () => {},
30
+ } = props
32
31
 
33
32
  return (
34
33
  <label
35
- className={
36
- 'pb_checkbox_kit' +
34
+ className={classnames('pb_checkbox_kit' +
37
35
  (dark === true ? '_dark' : '') +
38
- (error === true ? ' error' : '')
36
+ (error === true ? ' error' : ''), spacing(props))
37
+
39
38
  }
40
39
  >
41
40
  <If condition={children}>
@@ -58,7 +57,7 @@ const Checkbox = ({
58
57
  />
59
58
  </span>
60
59
  <Body
61
- className={bodyClassName}
60
+ className="pb_checkbox_label"
62
61
  dark={dark}
63
62
  status={error ? 'negative' : null}
64
63
  >