playbook_ui 4.15.1.alpha1 → 4.18.1.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (406) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/app/pb_kits/playbook/_playbook.scss +10 -1
  4. data/app/pb_kits/playbook/data/menu.yml +9 -0
  5. data/app/pb_kits/playbook/index.js +9 -1
  6. data/app/pb_kits/playbook/packs/examples.js +10 -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 +14 -2
  30. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +8 -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/_bar_graph_legend_non_clickable.html.erb +15 -0
  38. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +24 -0
  39. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +3 -1
  40. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +10 -4
  41. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +3 -0
  42. data/app/pb_kits/playbook/pb_body/_body.jsx +2 -1
  43. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +4 -0
  44. data/app/pb_kits/playbook/pb_button/_button.jsx +11 -2
  45. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +6 -0
  46. data/app/pb_kits/playbook/pb_caption/_caption.jsx +19 -17
  47. data/app/pb_kits/playbook/pb_card/_card.html.erb +1 -1
  48. data/app/pb_kits/playbook/pb_card/_card.jsx +35 -38
  49. data/app/pb_kits/playbook/pb_card/_card.scss +0 -10
  50. data/app/pb_kits/playbook/pb_card/card.rb +9 -3
  51. data/app/pb_kits/playbook/pb_card/card_body.rb +1 -5
  52. data/app/pb_kits/playbook/pb_card/card_header.rb +0 -3
  53. data/app/pb_kits/playbook/pb_card/docs/_card_light.html.erb +2 -1
  54. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +17 -18
  55. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +12 -0
  56. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +6 -0
  57. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +81 -0
  58. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +19 -0
  59. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.html.erb +136 -0
  60. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.html.erb +37 -0
  61. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.html.erb +22 -0
  62. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.html.erb +38 -0
  63. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +9 -0
  64. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +1 -1
  65. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +10 -1
  66. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +3 -1
  67. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +11 -0
  68. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.jsx +25 -0
  69. data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +3 -1
  70. data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +1 -0
  71. data/app/pb_kits/playbook/pb_contact/_contact.html.erb +16 -3
  72. data/app/pb_kits/playbook/pb_contact/_contact.jsx +59 -34
  73. data/app/pb_kits/playbook/pb_contact/contact.rb +2 -0
  74. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +6 -1
  75. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +5 -0
  76. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +6 -0
  77. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +5 -0
  78. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +7 -9
  79. data/app/pb_kits/playbook/pb_currency/_currency.jsx +37 -21
  80. data/app/pb_kits/playbook/pb_currency/currency.rb +22 -29
  81. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.html.erb +3 -3
  82. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.jsx +2 -3
  83. data/app/pb_kits/playbook/pb_currency/docs/_currency_large.jsx +2 -3
  84. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.jsx +2 -2
  85. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.html.erb +1 -1
  86. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.jsx +5 -2
  87. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +26 -1
  88. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  89. data/app/pb_kits/playbook/pb_date/_date.jsx +39 -15
  90. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +3 -1
  91. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +43 -37
  92. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +2 -2
  93. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +6 -16
  94. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +21 -18
  95. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +30 -33
  96. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +10 -15
  97. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +8 -8
  98. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +13 -23
  99. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +56 -0
  100. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +28 -0
  101. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +58 -0
  102. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +46 -0
  103. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +37 -0
  104. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +34 -0
  105. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +85 -0
  106. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +26 -0
  107. data/app/pb_kits/playbook/pb_filter/_filter.jsx +1 -222
  108. data/app/pb_kits/playbook/pb_filter/_filter.scss +16 -13
  109. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +34 -41
  110. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +13 -9
  111. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +69 -74
  112. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +12 -9
  113. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +28 -35
  114. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +5 -6
  115. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +35 -41
  116. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +12 -10
  117. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +12 -18
  118. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +14 -44
  119. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  120. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +13 -12
  121. data/app/pb_kits/playbook/pb_flex/_flex.jsx +35 -20
  122. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -9
  123. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +14 -19
  124. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +26 -22
  125. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +13 -12
  126. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +85 -80
  127. data/app/pb_kits/playbook/pb_icon/_icon.jsx +54 -33
  128. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +13 -9
  129. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +16 -20
  130. data/app/pb_kits/playbook/pb_image/_image.jsx +12 -10
  131. data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +1 -0
  132. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +49 -14
  133. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +50 -0
  134. data/app/pb_kits/playbook/pb_label_pill/docs/example.yml +4 -3
  135. data/app/pb_kits/playbook/pb_label_pill/docs/index.js +1 -0
  136. data/app/pb_kits/playbook/pb_label_pill/label_pill.rb +1 -1
  137. data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +1 -0
  138. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +30 -18
  139. data/app/pb_kits/playbook/pb_layout/_layout.jsx +87 -29
  140. data/app/pb_kits/playbook/pb_layout/_layout.scss +76 -57
  141. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +54 -0
  142. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.jsx +27 -0
  143. data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.jsx +63 -0
  144. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.jsx +87 -0
  145. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +92 -0
  146. data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.jsx +24 -0
  147. data/app/pb_kits/playbook/pb_layout/docs/example.yml +6 -1
  148. data/app/pb_kits/playbook/pb_layout/docs/index.js +5 -1
  149. data/app/pb_kits/playbook/pb_layout/layout.rb +10 -2
  150. data/app/pb_kits/playbook/pb_legend/_legend.jsx +17 -15
  151. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +14 -2
  152. data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +3 -1
  153. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.html.erb +8 -8
  154. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +1 -1
  155. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.html.erb +26 -0
  156. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +35 -0
  157. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.html.erb +15 -0
  158. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +23 -0
  159. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.html.erb +16 -0
  160. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +23 -0
  161. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +10 -4
  162. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +3 -0
  163. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +9 -0
  164. data/app/pb_kits/playbook/pb_list/_list.jsx +24 -21
  165. data/app/pb_kits/playbook/pb_list/docs/_description.md +7 -1
  166. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.html.erb +8 -0
  167. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.html.erb +8 -0
  168. data/app/pb_kits/playbook/pb_list/docs/example.yml +2 -0
  169. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +21 -19
  170. data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +1 -0
  171. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +26 -11
  172. data/app/pb_kits/playbook/pb_message/_message.html.erb +1 -0
  173. data/app/pb_kits/playbook/pb_message/_message.jsx +33 -11
  174. data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +1 -2
  175. data/app/pb_kits/playbook/pb_message/message.rb +1 -1
  176. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +10 -10
  177. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +7 -19
  178. data/app/pb_kits/playbook/pb_nav/_nav.jsx +17 -14
  179. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +23 -14
  180. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +19 -0
  181. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +3 -3
  182. data/app/pb_kits/playbook/pb_online_status/docs/index.js +1 -0
  183. data/app/pb_kits/playbook/pb_person/_person.html.erb +9 -2
  184. data/app/pb_kits/playbook/pb_person/_person.jsx +36 -18
  185. data/app/pb_kits/playbook/pb_person/docs/_person_default.html.erb +5 -1
  186. data/app/pb_kits/playbook/pb_person_contact/_person_contact.html.erb +1 -0
  187. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +73 -21
  188. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +32 -0
  189. data/app/pb_kits/playbook/pb_person_contact/docs/example.yml +2 -0
  190. data/app/pb_kits/playbook/pb_person_contact/docs/index.js +1 -0
  191. data/app/pb_kits/playbook/pb_pill/_pill.jsx +5 -10
  192. data/app/pb_kits/playbook/pb_popover/_popover.jsx +73 -55
  193. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -3
  194. data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -2
  195. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +1 -0
  196. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +41 -13
  197. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +15 -12
  198. data/app/pb_kits/playbook/pb_progress_step/_progress_step.html.erb +6 -0
  199. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +42 -0
  200. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +388 -0
  201. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +23 -0
  202. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +44 -0
  203. data/app/pb_kits/playbook/pb_progress_step/docs/_description.md +1 -0
  204. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.html.erb +8 -0
  205. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.jsx +18 -0
  206. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb +33 -0
  207. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx +39 -0
  208. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.html.erb +33 -0
  209. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.jsx +40 -0
  210. data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +12 -0
  211. data/app/pb_kits/playbook/pb_progress_step/docs/index.js +3 -0
  212. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +33 -0
  213. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +19 -0
  214. data/app/pb_kits/playbook/pb_radio/_radio.jsx +3 -1
  215. data/app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb +1 -0
  216. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +30 -15
  217. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +3 -1
  218. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -2
  219. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +12 -7
  220. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +30 -0
  221. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +97 -0
  222. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +74 -0
  223. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.html.erb +29 -0
  224. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.jsx +41 -0
  225. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_dark.html.erb +30 -0
  226. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_dark.jsx +40 -0
  227. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.html.erb +26 -0
  228. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.jsx +37 -0
  229. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.html.erb +27 -0
  230. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.jsx +40 -0
  231. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +16 -0
  232. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/index.js +4 -0
  233. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +50 -0
  234. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +24 -0
  235. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +107 -0
  236. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +85 -0
  237. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_dark.html.erb +26 -0
  238. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_dark.jsx +43 -0
  239. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.html.erb +23 -0
  240. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.jsx +40 -0
  241. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.html.erb +27 -0
  242. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.jsx +46 -0
  243. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +12 -0
  244. data/app/pb_kits/playbook/pb_selectable_icon/docs/index.js +3 -0
  245. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +55 -0
  246. data/app/pb_kits/playbook/pb_source/_source.jsx +113 -13
  247. data/app/pb_kits/playbook/pb_source/docs/_source_default.html.erb +3 -1
  248. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +37 -0
  249. data/app/pb_kits/playbook/pb_source/docs/_source_noicon.jsx +40 -0
  250. data/app/pb_kits/playbook/pb_source/docs/_source_types.jsx +85 -0
  251. data/app/pb_kits/playbook/pb_source/docs/example.yml +3 -0
  252. data/app/pb_kits/playbook/pb_source/docs/index.js +5 -0
  253. data/app/pb_kits/playbook/pb_star_rating/_star_rating.html.erb +6 -2
  254. data/app/pb_kits/playbook/pb_star_rating/_star_rating.jsx +98 -13
  255. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +28 -0
  256. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx +13 -0
  257. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +2 -1
  258. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +3 -0
  259. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +2 -1
  260. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +14 -13
  261. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  262. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx +1 -1
  263. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +1 -1
  264. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -1
  265. data/app/pb_kits/playbook/pb_table/_table.jsx +29 -28
  266. data/app/pb_kits/playbook/pb_table/_table.scss +1 -1
  267. data/app/pb_kits/playbook/pb_table/_table_row.jsx +6 -7
  268. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.html.erb +52 -8
  269. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +52 -8
  270. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +3 -1
  271. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +5 -3
  272. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -5
  273. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb +31 -5
  274. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +3 -0
  275. data/app/pb_kits/playbook/pb_text_input/text_input.rb +1 -1
  276. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -1
  277. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +38 -18
  278. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +12 -11
  279. data/app/pb_kits/playbook/pb_timeline/_item.html.erb +28 -0
  280. data/app/pb_kits/playbook/pb_timeline/_item.jsx +54 -0
  281. data/app/pb_kits/playbook/pb_timeline/_timeline.html.erb +6 -0
  282. data/app/pb_kits/playbook/pb_timeline/_timeline.jsx +43 -0
  283. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +271 -0
  284. data/app/pb_kits/playbook/pb_timeline/docs/_description.md +3 -0
  285. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.html.erb +43 -0
  286. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.jsx +73 -0
  287. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.html.erb +43 -0
  288. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.jsx +73 -0
  289. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.html.erb +44 -0
  290. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.jsx +85 -0
  291. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +13 -0
  292. data/app/pb_kits/playbook/pb_timeline/docs/index.js +3 -0
  293. data/app/pb_kits/playbook/pb_timeline/item.rb +25 -0
  294. data/app/pb_kits/playbook/pb_timeline/timeline.rb +27 -0
  295. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +32 -14
  296. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +8 -0
  297. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +3 -3
  298. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +1 -0
  299. data/app/pb_kits/playbook/pb_title/_title.jsx +12 -13
  300. data/app/pb_kits/playbook/pb_title/docs/_title_light.html.erb +1 -1
  301. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +49 -28
  302. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_align.jsx +31 -0
  303. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.jsx +13 -2
  304. data/app/pb_kits/playbook/pb_title_count/docs/example.yml +4 -5
  305. data/app/pb_kits/playbook/pb_title_count/docs/index.js +1 -0
  306. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +36 -14
  307. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +26 -0
  308. data/app/pb_kits/playbook/pb_title_detail/docs/example.yml +3 -3
  309. data/app/pb_kits/playbook/pb_title_detail/docs/index.js +1 -0
  310. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +9 -11
  311. data/app/pb_kits/playbook/pb_tooltip/_tooltip.html.erb +10 -0
  312. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +105 -0
  313. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +10 -0
  314. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +9 -0
  315. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +5 -0
  316. data/app/pb_kits/playbook/pb_tooltip/index.js +80 -0
  317. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +34 -0
  318. data/app/pb_kits/playbook/pb_user/_user.jsx +37 -37
  319. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +7 -7
  320. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +32 -30
  321. data/app/pb_kits/playbook/plugins/pb_chart.js +61 -3
  322. data/app/pb_kits/playbook/props.rb +48 -0
  323. data/app/pb_kits/playbook/tokens/_colors.scss +7 -3
  324. data/app/pb_kits/playbook/tokens/_spacing.scss +1 -0
  325. data/app/pb_kits/playbook/utilities/_spacing.scss +42 -0
  326. data/app/pb_kits/playbook/utilities/spacing.js +33 -0
  327. data/app/pb_kits/playbook/vendor.js +3 -0
  328. data/app/views/layouts/playbook/application.html.slim +2 -3
  329. data/app/views/layouts/playbook/fullscreen.html.slim +2 -2
  330. data/app/views/layouts/playbook/grid.html.slim +2 -2
  331. data/app/views/layouts/playbook/samples.html.erb +2 -4
  332. data/app/views/playbook/samples/dashboards/index.html.erb +3 -1
  333. data/app/views/playbook/samples/registration/index.html.erb +316 -0
  334. data/app/views/playbook/samples/registration/index.jsx +476 -0
  335. data/lib/playbook/version.rb +1 -1
  336. metadata +139 -74
  337. data/app/pb_kits/playbook/packs/kits/pb_avatar.js +0 -1
  338. data/app/pb_kits/playbook/packs/kits/pb_badge.js +0 -1
  339. data/app/pb_kits/playbook/packs/kits/pb_bar_graph.js +0 -1
  340. data/app/pb_kits/playbook/packs/kits/pb_body.js +0 -1
  341. data/app/pb_kits/playbook/packs/kits/pb_button.js +0 -1
  342. data/app/pb_kits/playbook/packs/kits/pb_caption.js +0 -1
  343. data/app/pb_kits/playbook/packs/kits/pb_card.js +0 -1
  344. data/app/pb_kits/playbook/packs/kits/pb_checkbox.js +0 -1
  345. data/app/pb_kits/playbook/packs/kits/pb_circle_icon_button.js +0 -1
  346. data/app/pb_kits/playbook/packs/kits/pb_contact.js +0 -1
  347. data/app/pb_kits/playbook/packs/kits/pb_currency.js +0 -1
  348. data/app/pb_kits/playbook/packs/kits/pb_dashboard_value.js +0 -1
  349. data/app/pb_kits/playbook/packs/kits/pb_date.js +0 -2
  350. data/app/pb_kits/playbook/packs/kits/pb_date_range_inline.js +0 -1
  351. data/app/pb_kits/playbook/packs/kits/pb_date_range_stacked.js +0 -1
  352. data/app/pb_kits/playbook/packs/kits/pb_date_stacked.js +0 -1
  353. data/app/pb_kits/playbook/packs/kits/pb_date_year_stacked.js +0 -2
  354. data/app/pb_kits/playbook/packs/kits/pb_distribution_bar.js +0 -2
  355. data/app/pb_kits/playbook/packs/kits/pb_fixed_confirmation_toast.js +0 -2
  356. data/app/pb_kits/playbook/packs/kits/pb_flex.js +0 -1
  357. data/app/pb_kits/playbook/packs/kits/pb_form_pill.js +0 -1
  358. data/app/pb_kits/playbook/packs/kits/pb_hashtag.js +0 -2
  359. data/app/pb_kits/playbook/packs/kits/pb_highlight.js +0 -2
  360. data/app/pb_kits/playbook/packs/kits/pb_home_address_street.js +0 -2
  361. data/app/pb_kits/playbook/packs/kits/pb_icon.js +0 -2
  362. data/app/pb_kits/playbook/packs/kits/pb_icon_circle.js +0 -2
  363. data/app/pb_kits/playbook/packs/kits/pb_icon_value.js +0 -2
  364. data/app/pb_kits/playbook/packs/kits/pb_image.js +0 -1
  365. data/app/pb_kits/playbook/packs/kits/pb_label_pill.js +0 -2
  366. data/app/pb_kits/playbook/packs/kits/pb_label_value.js +0 -2
  367. data/app/pb_kits/playbook/packs/kits/pb_layout.js +0 -2
  368. data/app/pb_kits/playbook/packs/kits/pb_legend.js +0 -2
  369. data/app/pb_kits/playbook/packs/kits/pb_line_graph.js +0 -1
  370. data/app/pb_kits/playbook/packs/kits/pb_list.js +0 -2
  371. data/app/pb_kits/playbook/packs/kits/pb_loading_inline.js +0 -2
  372. data/app/pb_kits/playbook/packs/kits/pb_message.js +0 -2
  373. data/app/pb_kits/playbook/packs/kits/pb_multiple_users.js +0 -2
  374. data/app/pb_kits/playbook/packs/kits/pb_multiple_users_stacked.js +0 -2
  375. data/app/pb_kits/playbook/packs/kits/pb_nav.js +0 -1
  376. data/app/pb_kits/playbook/packs/kits/pb_online_status.js +0 -2
  377. data/app/pb_kits/playbook/packs/kits/pb_person.js +0 -2
  378. data/app/pb_kits/playbook/packs/kits/pb_person_contact.js +0 -2
  379. data/app/pb_kits/playbook/packs/kits/pb_pill.js +0 -2
  380. data/app/pb_kits/playbook/packs/kits/pb_popover.js +0 -1
  381. data/app/pb_kits/playbook/packs/kits/pb_progress_pills.js +0 -2
  382. data/app/pb_kits/playbook/packs/kits/pb_progress_simple.js +0 -2
  383. data/app/pb_kits/playbook/packs/kits/pb_radio.js +0 -2
  384. data/app/pb_kits/playbook/packs/kits/pb_section_separator.js +0 -2
  385. data/app/pb_kits/playbook/packs/kits/pb_select.js +0 -2
  386. data/app/pb_kits/playbook/packs/kits/pb_selectable_card.js +0 -2
  387. data/app/pb_kits/playbook/packs/kits/pb_source.js +0 -2
  388. data/app/pb_kits/playbook/packs/kits/pb_star_rating.js +0 -2
  389. data/app/pb_kits/playbook/packs/kits/pb_stat_change.js +0 -2
  390. data/app/pb_kits/playbook/packs/kits/pb_stat_value.js +0 -2
  391. data/app/pb_kits/playbook/packs/kits/pb_table.js +0 -1
  392. data/app/pb_kits/playbook/packs/kits/pb_text_input.js +0 -1
  393. data/app/pb_kits/playbook/packs/kits/pb_textarea.js +0 -2
  394. data/app/pb_kits/playbook/packs/kits/pb_time.js +0 -2
  395. data/app/pb_kits/playbook/packs/kits/pb_timestamp.js +0 -2
  396. data/app/pb_kits/playbook/packs/kits/pb_title.js +0 -1
  397. data/app/pb_kits/playbook/packs/kits/pb_title_count.js +0 -2
  398. data/app/pb_kits/playbook/packs/kits/pb_title_detail.js +0 -2
  399. data/app/pb_kits/playbook/packs/kits/pb_toggle.js +0 -2
  400. data/app/pb_kits/playbook/packs/kits/pb_user.js +0 -2
  401. data/app/pb_kits/playbook/packs/kits/pb_user_badge.js +0 -2
  402. data/app/pb_kits/playbook/pb_layout/_body.jsx +0 -26
  403. data/app/pb_kits/playbook/pb_layout/_sidebar.jsx +0 -26
  404. data/app/pb_kits/playbook/pb_layout/docs/_layout_default.jsx +0 -14
  405. data/app/pb_kits/playbook/pb_popover/docs/_popover_portal.jsx +0 -34
  406. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.html.erb +0 -4
@@ -1,4 +1,5 @@
1
1
  <%= content_tag(:div,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) do %>
@@ -3,7 +3,9 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import DateTime from '../pb_kit/dateTime.js'
6
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
6
7
  import { Body, Caption, Icon, Title } from '../'
8
+ import { spacing } from '../utilities/spacing.js'
7
9
 
8
10
  const dateString = (value: DateTime) => {
9
11
  const month = value.toMonthNum()
@@ -13,25 +15,39 @@ const dateString = (value: DateTime) => {
13
15
  }
14
16
 
15
17
  type LogisticProps = {
18
+ aria?: object,
19
+ className?: String,
16
20
  dark?: Boolean,
21
+ data?: object,
17
22
  date: String,
23
+ id?: String,
18
24
  link?: String,
19
- projectName: String,
20
- projectNumber: Number,
25
+ projectName?: String,
26
+ projectNumber?: Number,
21
27
  }
22
28
 
23
- const Logistic = ({
24
- dark = false,
25
- date,
26
- link,
27
- projectName,
28
- projectNumber,
29
- }: LogisticProps) => {
29
+ const Logistic = (props: LogisticProps) => {
30
+ const { aria = {},
31
+ className,
32
+ dark = false,
33
+ data = {},
34
+ date,
35
+ id,
36
+ link,
37
+ projectName,
38
+ projectNumber } = props
39
+
40
+ const ariaProps = buildAriaProps(aria)
41
+ const dataProps = buildDataProps(data)
30
42
  const formattedDate = new DateTime({ value: date })
43
+ const classes = classnames(buildCss('pb_logistic_kit', { dark: dark }), className, spacing(props))
31
44
 
32
45
  return (
33
46
  <div
34
- className={classnames('pb_logistic_kit')}
47
+ {...ariaProps}
48
+ {...dataProps}
49
+ className={classes}
50
+ id={id}
35
51
  >
36
52
  <Body color="light">
37
53
  <Caption text="Project" />
@@ -85,7 +101,6 @@ const Logistic = ({
85
101
  />
86
102
  </Otherwise>
87
103
  </Choose>
88
-
89
104
  </Otherwise>
90
105
  </Choose>
91
106
  </Body>
@@ -1,4 +1,5 @@
1
1
  <%= content_tag(:div,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) do %>
@@ -1,31 +1,53 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
-
5
4
  import { Avatar, Body, Caption } from '../'
5
+ import classnames from 'classnames'
6
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
7
+ import { spacing } from '../utilities/spacing.js'
6
8
 
7
9
  type MessageProps = {
10
+ aria: object,
8
11
  avatarName?: String,
9
12
  avatarStatus?: String,
10
13
  avatarUrl?: String,
14
+ className?: String,
15
+ data?: object,
16
+ id?: String,
11
17
  label?: String,
12
18
  message: String,
13
19
  timestamp?: String,
14
20
  }
15
21
 
16
- const Message = ({
17
- avatarName = '',
18
- avatarUrl = '',
19
- label = '',
20
- message = '',
21
- timestamp = '',
22
- avatarStatus = null,
23
- }: MessageProps) => {
22
+ const Message = (props: MessageProps) => {
23
+ const {
24
+ aria = {},
25
+ avatarName,
26
+ avatarStatus = null,
27
+ avatarUrl,
28
+ className,
29
+ data = {},
30
+ id,
31
+ label,
32
+ message,
33
+ timestamp,
34
+ } = props
35
+ const ariaProps = buildAriaProps(aria)
36
+ const dataProps = buildDataProps(data)
24
37
  const shouldDisplayAvatar = avatarUrl || avatarName
25
- const classes = shouldDisplayAvatar ? 'pb_message_kit_avatar' : 'pb_message_kit'
38
+ const baseClassName = shouldDisplayAvatar
39
+ ? 'pb_message_kit_avatar'
40
+ : 'pb_message_kit'
41
+
42
+ const classes = classnames(buildCss(baseClassName), className, spacing(props))
26
43
 
27
44
  return (
28
- <div className={classes}>
45
+ <div
46
+ {...ariaProps}
47
+ {...dataProps}
48
+ className={classes}
49
+ id={id}
50
+ >
29
51
  <If condition={shouldDisplayAvatar}>
30
52
  <Avatar
31
53
  imageUrl={avatarUrl}
@@ -4,7 +4,6 @@ import { Message } from '../../'
4
4
  const MessageDefault = () => {
5
5
  return (
6
6
  <div>
7
-
8
7
  <Message
9
8
  avatarName="Mike Bishop"
10
9
  avatarStatus="online"
@@ -31,7 +30,7 @@ const MessageDefault = () => {
31
30
  <Message
32
31
  avatarName="Lisa Thompson"
33
32
  avatarUrl="https://randomuser.me/api/portraits/women/39.jpg"
34
- message="To processs your order, I will need your full name."
33
+ message="To process your order, I will need your full name."
35
34
  timestamp="4 hours ago"
36
35
  />
37
36
 
@@ -25,7 +25,7 @@ module Playbook
25
25
  private
26
26
 
27
27
  def avatar_class
28
- avatar_name ? "avatar" : nil
28
+ valid? ? "avatar" : nil
29
29
  end
30
30
  end
31
31
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
-
6
5
  import { buildCss } from '../utilities/props'
7
6
  import { Avatar } from '../'
7
+ import { spacing } from '../utilities/spacing.js'
8
8
 
9
9
  type MultipleUsersProps = {
10
10
  className?: String,
@@ -14,19 +14,19 @@ type MultipleUsersProps = {
14
14
  users: Array<Object>,
15
15
  }
16
16
 
17
- const MultipleUsers = ({
18
- className,
19
- id,
20
- maxDisplayedUsers = 4,
21
- reverse = false,
22
- users,
23
- }: MultipleUsersProps) => {
24
- const displayCount = users.length > maxDisplayedUsers ? maxDisplayedUsers - 1 : users.length
17
+ const MultipleUsers = (props: MultipleUsersProps) => {
18
+ const { className, id, maxDisplayedUsers = 4, reverse = false, users } = props
19
+ const displayCount =
20
+ users.length > maxDisplayedUsers ? maxDisplayedUsers - 1 : users.length
25
21
  const usersToDisplay = users.slice(0, displayCount)
26
22
 
27
23
  return (
28
24
  <div
29
- className={classnames(className, buildCss('pb_multiple_users_kit', reverse && 'reverse'))}
25
+ className={classnames(
26
+ className,
27
+ buildCss('pb_multiple_users_kit', reverse && 'reverse'),
28
+ spacing(props)
29
+ )}
30
30
  id={id}
31
31
  >
32
32
  {usersToDisplay.map((avatarData, index) => (
@@ -3,17 +3,10 @@
3
3
 
4
4
  import React from 'react'
5
5
  import classnames from 'classnames'
6
+ import { spacing } from '../utilities/spacing.js'
7
+ import { Avatar, Badge } from '../'
6
8
 
7
- import {
8
- Avatar,
9
- Badge,
10
- } from '../'
11
-
12
- import {
13
- buildAriaProps,
14
- buildCss,
15
- buildDataProps,
16
- } from '../utilities/props'
9
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
17
10
 
18
11
  type MultipleUsersStackedProps = {
19
12
  className?: String,
@@ -23,13 +16,8 @@ type MultipleUsersStackedProps = {
23
16
  users: Array<Object>,
24
17
  }
25
18
 
26
- const MultipleUsersStacked = ({
27
- className,
28
- id,
29
- aria = {},
30
- data = {},
31
- users,
32
- }: MultipleUsersStackedProps) => {
19
+ const MultipleUsersStacked = (props: MultipleUsersStackedProps) => {
20
+ const { className, id, aria = {}, data = {}, users } = props
33
21
  const moreThanTwo = users.length > 2
34
22
  const onlyOne = users.length == 1
35
23
  const displayCount = () => {
@@ -39,7 +27,7 @@ const MultipleUsersStacked = ({
39
27
  const dataProps = buildDataProps(data)
40
28
  const css = buildCss({
41
29
  'pb_multiple_users_stacked_kit': true,
42
- 'single': onlyOne,
30
+ single: onlyOne,
43
31
  })
44
32
 
45
33
  const firstUser = () => {
@@ -87,7 +75,7 @@ const MultipleUsersStacked = ({
87
75
  <div
88
76
  {...ariaProps}
89
77
  {...dataProps}
90
- className={classnames(css, className)}
78
+ className={classnames(css, className, spacing(props))}
91
79
  id={id}
92
80
  >
93
81
  {firstUser()}
@@ -1,34 +1,37 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
+ import classnames from 'classnames'
4
5
  import { Caption } from '../'
5
6
  import { buildCss } from '../utilities/props'
7
+ import { spacing } from '../utilities/spacing.js'
6
8
 
7
9
  type NavProps = {
8
10
  title: String,
9
- orientation?: 'vertical' | 'horizontal',
11
+ orientation?: "vertical" | "horizontal",
10
12
  link: String,
11
13
  children?: React.Node,
12
14
  className?: String | Array<String>,
13
15
  highlight?: Boolean,
14
- variant?: 'normal' | 'subtle',
16
+ variant?: "normal" | "subtle",
15
17
  onClick?: EventHandler,
16
18
  }
17
- const Nav = ({
18
- title = '',
19
- orientation = 'vertical',
20
- link = '',
21
- children,
22
- className,
23
- highlight = true,
24
- variant = 'normal',
25
- onClick = () => {},
26
- }: NavProps) => {
19
+ const Nav = (props: NavProps) => {
20
+ const {
21
+ title = '',
22
+ orientation = 'vertical',
23
+ link = '',
24
+ children,
25
+ className,
26
+ highlight = true,
27
+ variant = 'normal',
28
+ onClick = () => {},
29
+ } = props
27
30
  const cardCss = buildCss('pb_nav_list', variant, orientation, className, {
28
- 'highlight': highlight,
31
+ highlight: highlight,
29
32
  })
30
33
  return (
31
- <div className={cardCss}>
34
+ <div className={classnames(cardCss, spacing(props))}>
32
35
  <If condition={title}>
33
36
  <div className="pb_nav_list_title">
34
37
  <a
@@ -1,21 +1,30 @@
1
+ /* @flow */
2
+
1
3
  import React from 'react'
2
- import PropTypes from 'prop-types'
4
+ import classnames from 'classnames'
5
+ import { spacing } from '../utilities/spacing.js'
3
6
 
4
- const propTypes = {
5
- className: PropTypes.string,
6
- id: PropTypes.string,
7
- }
7
+ import { buildDataProps } from '../utilities/props'
8
8
 
9
- class OnlineStatus extends React.Component {
10
- render() {
11
- return (
12
- <div className="pb_online_status">
13
- <span>{'ONLINE STATUS CONTENT'}</span>
14
- </div>
15
- )
16
- }
9
+ type OnlineStatusProps = {
10
+ className?: String,
11
+ data?: object,
12
+ id?: String,
13
+ status?: "online" | "offline" | "away",
17
14
  }
18
15
 
19
- OnlineStatus.propTypes = propTypes
16
+ const OnlineStatus = (props: OnlineStatusProps) => {
17
+ const { id, data = {}, className, status = 'offline' } = props
18
+ const dataProps = buildDataProps(data)
19
+ const css = classnames([`pb_online_status_kit_${status}`, className], spacing(props))
20
+
21
+ return (
22
+ <div
23
+ {...dataProps}
24
+ className={css}
25
+ id={id}
26
+ />
27
+ )
28
+ }
20
29
 
21
30
  export default OnlineStatus
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+ import { OnlineStatus } from '../../'
3
+
4
+ const OnlineStatusDefault = () => (
5
+ <>
6
+ <OnlineStatus status="offline" />
7
+
8
+ <br />
9
+
10
+ <OnlineStatus status="online" />
11
+
12
+ <br />
13
+
14
+ <OnlineStatus status="away" />
15
+
16
+ </>
17
+ )
18
+
19
+ export default OnlineStatusDefault
@@ -1,7 +1,7 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - online_status_default: Default
5
-
5
+
6
6
  react:
7
-
7
+ - online_status_default: Default
@@ -0,0 +1 @@
1
+ export { default as OnlineStatusDefault } from './_online_status_default.jsx'
@@ -1,7 +1,14 @@
1
1
  <%= content_tag(:div,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) do %>
5
- <%= pb_rails("body", props: { tag: "span", classname: "pb_person_first", children: -> { object.first_name } }) %>
6
- <%= pb_rails("title", props: { text: object.last_name, size: 4 }) if object.last_name %>
6
+ <%= pb_rails("body", props: {
7
+ tag: "span",
8
+ classname: "pb_person_first",
9
+ children: -> { object.first_name
10
+ } }) %>
11
+ <%= pb_rails("title", props: {
12
+ text: object.last_name,
13
+ size: 4 }) if object.last_name %>
7
14
  <% end %>
@@ -2,40 +2,58 @@
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 {
7
- Body,
8
- Title,
9
- } from '../'
8
+ buildAriaProps,
9
+ buildCss,
10
+ buildDataProps,
11
+ } from '../utilities/props'
12
+
13
+ import { Body, Title } from '../'
10
14
 
11
15
  type PersonProps = {
16
+ aria?: object,
12
17
  className?: String | Array<String>,
13
- dark?: Boolean,
18
+ data?: object,
14
19
  firstName: String,
20
+ id?: String,
15
21
  lastName: String,
16
22
  }
17
23
 
18
- const Person = ({
19
- className,
20
- dark = false,
21
- firstName,
22
- lastName,
23
- }: PersonProps) => {
24
+ const Person = (props: PersonProps) => {
25
+ const {
26
+ aria = {},
27
+ className,
28
+ data = {},
29
+ firstName,
30
+ id,
31
+ lastName } = props
32
+
33
+ const ariaProps = buildAriaProps(aria)
34
+ const dataProps = buildDataProps(data)
35
+ const classes = classnames(buildCss('pb_person_kit'), className, spacing(props))
36
+
24
37
  return (
25
- <div className={classnames('pb_person_kit', className)}>
38
+ <div
39
+ {...ariaProps}
40
+ {...dataProps}
41
+ className={classes}
42
+ id={id}
43
+ >
26
44
  <Body
27
45
  className="pb_person_first"
28
- dark={dark}
29
46
  tag="span"
30
47
  >
31
48
  {firstName}
32
49
  </Body>
33
- <Title
34
- className="pb_person_first"
35
- dark={dark}
36
- size={4}
37
- text={` ${lastName}`}
38
- />
50
+ <If condition={lastName}>
51
+ <Title
52
+ className="pb_person_first"
53
+ size={4}
54
+ text={` ${lastName}`}
55
+ />
56
+ </If>
39
57
  </div>
40
58
  )
41
59
  }