playbook_ui 7.0.1.pre.alpha9 → 7.0.1.pre.alpha15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -6
  3. data/app/controllers/playbook/application_controller.rb +2 -3
  4. data/app/helpers/playbook/pb_kit_helper.rb +2 -2
  5. data/app/pb_kits/playbook/_playbook.scss +1 -0
  6. data/app/pb_kits/playbook/data/menu.yml +4 -3
  7. data/app/pb_kits/playbook/index.js +6 -0
  8. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +5 -1
  9. data/app/pb_kits/playbook/pb_badge/_badge.jsx +4 -2
  10. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.html.erb +1 -12
  11. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +1 -1
  12. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +1 -1
  13. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  14. data/app/pb_kits/playbook/pb_button/_button.jsx +5 -1
  15. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -0
  16. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.jsx +7 -3
  17. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +82 -90
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +57 -0
  19. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_mixins.scss +27 -0
  20. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.rb +4 -2
  21. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.html.erb +17 -7
  22. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.jsx +32 -9
  23. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.html.erb +18 -7
  24. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.jsx +37 -9
  25. data/app/pb_kits/playbook/pb_button_toolbar/docs/example.yml +3 -7
  26. data/app/pb_kits/playbook/pb_button_toolbar/docs/index.js +0 -2
  27. data/app/pb_kits/playbook/pb_caption/_caption.html.erb +7 -5
  28. data/app/pb_kits/playbook/pb_caption/_caption.jsx +2 -2
  29. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +11 -0
  30. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +28 -0
  31. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  32. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  33. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +5 -2
  34. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +3 -1
  35. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_options.html.erb +10 -0
  36. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -0
  37. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +1 -1
  38. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +130 -0
  39. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +1 -1
  40. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +39 -0
  41. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -0
  42. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +28 -0
  43. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +117 -0
  44. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +53 -0
  45. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -0
  46. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +45 -0
  47. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +30 -0
  48. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +45 -0
  49. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +11 -0
  50. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +9 -0
  51. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +5 -1
  52. data/app/pb_kits/playbook/pb_contact/_contact.jsx +5 -1
  53. data/app/pb_kits/playbook/pb_currency/_currency.jsx +5 -1
  54. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +5 -1
  55. data/app/pb_kits/playbook/pb_date/date.rb +2 -1
  56. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +8 -1
  57. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb +51 -0
  58. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.md +6 -0
  59. data/app/pb_kits/playbook/pb_date/docs/_description.md +2 -0
  60. data/app/pb_kits/playbook/pb_date/docs/example.yml +1 -0
  61. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +1 -2
  62. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +8 -7
  63. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +0 -4
  64. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +6 -5
  65. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +41 -41
  66. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +1 -2
  67. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +1 -2
  68. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +1 -0
  69. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +4 -0
  70. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +4 -0
  71. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +9 -9
  72. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +8 -8
  73. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.md +3 -1
  74. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.jsx +34 -0
  75. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.md +3 -0
  76. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +1 -0
  77. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +1 -0
  78. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +1 -4
  79. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -2
  80. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +1 -0
  81. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.html.erb +8 -14
  82. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +122 -39
  83. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +33 -2
  84. data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.rb +44 -9
  85. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.html.erb +14 -1
  86. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +45 -1
  87. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +5 -1
  88. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  89. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +5 -1
  90. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.html.erb +1 -8
  91. data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +7 -0
  92. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.html.erb +3 -2
  93. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +31 -17
  94. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +10 -0
  95. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_close.html.erb +21 -0
  96. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_close.jsx +38 -0
  97. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default.html.erb +2 -1
  98. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default.jsx +1 -2
  99. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.html.erb +1 -1
  100. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.jsx +1 -1
  101. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.html.erb +1 -1
  102. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.jsx +1 -1
  103. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +2 -0
  104. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +1 -0
  105. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +7 -1
  106. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/index.js +18 -0
  107. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  108. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +1 -1
  109. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +10 -2
  110. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  111. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +3 -3
  112. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +3 -3
  113. data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +7 -2
  114. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +1 -0
  115. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +3 -2
  116. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +1 -1
  117. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +1 -1
  118. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  119. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  120. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +5 -1
  121. data/app/pb_kits/playbook/pb_image/_image.jsx +5 -1
  122. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +5 -1
  123. data/app/pb_kits/playbook/pb_layout/_layout.jsx +4 -4
  124. data/app/pb_kits/playbook/pb_line_graph/_line_graph.html.erb +1 -13
  125. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +1 -1
  126. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +1 -1
  127. data/app/pb_kits/playbook/pb_list/_list.jsx +3 -2
  128. data/app/pb_kits/playbook/pb_list/_list_item.jsx +3 -2
  129. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +5 -1
  130. data/app/pb_kits/playbook/pb_message/_message.jsx +5 -1
  131. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +5 -2
  132. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  133. data/app/pb_kits/playbook/pb_person/_person.jsx +5 -1
  134. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +12 -7
  135. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +1 -0
  136. data/app/pb_kits/playbook/pb_popover/_popover.jsx +5 -1
  137. data/app/pb_kits/playbook/pb_popover/_popover.scss +6 -4
  138. data/app/pb_kits/playbook/pb_popover/index.js +3 -1
  139. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +4 -4
  140. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +4 -1
  141. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +168 -33
  142. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +3 -1
  143. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +10 -8
  144. data/app/pb_kits/playbook/pb_progress_step/docs/_description.md +1 -1
  145. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb +14 -16
  146. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx +6 -3
  147. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker.html.erb +17 -1
  148. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker.jsx +17 -1
  149. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.jsx +10 -3
  150. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +11 -1
  151. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +1 -1
  152. data/app/pb_kits/playbook/pb_radio/_radio.html.erb +1 -1
  153. data/app/pb_kits/playbook/pb_radio/docs/_radio_options.html.erb +9 -0
  154. data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -0
  155. data/app/pb_kits/playbook/pb_radio/radio.rb +2 -4
  156. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -1
  157. data/app/pb_kits/playbook/pb_select/_select.scss +1 -1
  158. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  159. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +3 -3
  160. data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.jsx +6 -1
  161. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  162. data/app/pb_kits/playbook/pb_table/docs/_table_action_middle.html.erb +34 -0
  163. data/app/pb_kits/playbook/pb_table/docs/_table_action_middle.jsx +68 -0
  164. data/app/pb_kits/playbook/pb_table/docs/_table_action_middle.md +2 -0
  165. data/app/pb_kits/playbook/pb_table/docs/_table_icon_buttons.html.erb +61 -0
  166. data/app/pb_kits/playbook/pb_table/docs/_table_icon_buttons.jsx +89 -0
  167. data/app/pb_kits/playbook/pb_table/docs/_table_icon_buttons.md +1 -0
  168. data/app/pb_kits/playbook/pb_table/docs/_table_one_action.html.erb +34 -0
  169. data/app/pb_kits/playbook/pb_table/docs/_table_one_action.jsx +68 -0
  170. data/app/pb_kits/playbook/pb_table/docs/_table_one_action.md +2 -0
  171. data/app/pb_kits/playbook/pb_table/docs/_table_two_actions.html.erb +43 -0
  172. data/app/pb_kits/playbook/pb_table/docs/_table_two_actions.jsx +80 -0
  173. data/app/pb_kits/playbook/pb_table/docs/_table_two_actions.md +1 -0
  174. data/app/pb_kits/playbook/pb_table/docs/_table_two_plus_actions.html.erb +34 -0
  175. data/app/pb_kits/playbook/pb_table/docs/_table_two_plus_actions.jsx +63 -0
  176. data/app/pb_kits/playbook/pb_table/docs/_table_two_plus_actions.md +1 -0
  177. data/app/pb_kits/playbook/pb_table/docs/example.yml +12 -0
  178. data/app/pb_kits/playbook/pb_table/docs/index.js +6 -0
  179. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +1 -1
  180. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -8
  181. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +1 -1
  182. data/app/pb_kits/playbook/pb_time/_time.html.erb +24 -21
  183. data/app/pb_kits/playbook/pb_time/_time.jsx +45 -23
  184. data/app/pb_kits/playbook/pb_time/_time.scss +7 -19
  185. data/app/pb_kits/playbook/pb_time/docs/_time_align.html.erb +18 -0
  186. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +7 -4
  187. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +47 -3
  188. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +46 -5
  189. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.html.erb +11 -0
  190. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +22 -0
  191. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +3 -1
  192. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +3 -8
  193. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.html.erb +38 -0
  194. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +19 -16
  195. data/app/pb_kits/playbook/pb_time/docs/example.yml +6 -2
  196. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  197. data/app/pb_kits/playbook/pb_time/time.rb +14 -2
  198. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +1 -1
  199. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +5 -5
  200. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +3 -3
  201. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +1 -1
  202. data/app/pb_kits/playbook/pb_title/_title.jsx +5 -1
  203. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +5 -1
  204. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +5 -5
  205. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +3 -3
  206. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +41 -43
  207. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_options.html.erb +10 -0
  208. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +1 -2
  209. data/app/pb_kits/playbook/pb_toggle/docs/index.js +0 -1
  210. data/app/pb_kits/playbook/pb_toggle/toggle.rb +5 -2
  211. data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +24 -20
  212. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +78 -0
  213. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -3
  214. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +30 -0
  215. data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx +13 -0
  216. data/app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx +12 -0
  217. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +58 -0
  218. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +42 -0
  219. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +13 -0
  220. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.jsx +13 -0
  221. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +1 -1
  222. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +22 -0
  223. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_context_dark.html.erb +1 -1
  224. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +25 -0
  225. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +26 -0
  226. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.md +8 -0
  227. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +30 -0
  228. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +84 -0
  229. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +11 -0
  230. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.html.erb +25 -0
  231. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +98 -0
  232. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.md +1 -0
  233. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +11 -2
  234. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +4 -0
  235. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +24 -1
  236. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +5 -2
  237. data/app/pb_kits/playbook/plugins/pb_chart.js +1 -1
  238. data/app/pb_kits/playbook/react_rails_kits.js +6 -0
  239. data/app/pb_kits/playbook/tokens/_colors.scss +22 -23
  240. data/app/pb_kits/playbook/tokens/_typography.scss +7 -7
  241. data/app/pb_kits/playbook/tokens/index.scss +11 -0
  242. data/app/pb_kits/playbook/vendor.js +8 -0
  243. data/lib/generators/kit/kit_generator.rb +1 -1
  244. data/lib/generators/kit/templates/kit_jsx.erb.tt +1 -1
  245. data/lib/playbook/engine.rb +1 -0
  246. data/lib/playbook/version.rb +1 -1
  247. data/lib/tasks/changelog.rake +14 -0
  248. data/lib/tasks/pb_release.rake +14 -3
  249. metadata +70 -74
  250. data/app/controllers/playbook/guides_controller.rb +0 -11
  251. data/app/controllers/playbook/pages_controller.rb +0 -94
  252. data/app/controllers/playbook/samples_controller.rb +0 -40
  253. data/app/pb_kits/playbook/packs/application.js +0 -55
  254. data/app/pb_kits/playbook/packs/examples.js +0 -176
  255. data/app/pb_kits/playbook/packs/main.scss +0 -12
  256. data/app/pb_kits/playbook/packs/samples.js +0 -21
  257. data/app/pb_kits/playbook/packs/site_styles/_samples.scss +0 -72
  258. data/app/pb_kits/playbook/packs/site_styles/_scaffold.scss +0 -43
  259. data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +0 -146
  260. data/app/pb_kits/playbook/packs/site_styles/docs/_all.scss +0 -10
  261. data/app/pb_kits/playbook/packs/site_styles/docs/_bg_light_doc_example.scss +0 -7
  262. data/app/pb_kits/playbook/packs/site_styles/docs/_code_snippet.scss +0 -531
  263. data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +0 -92
  264. data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +0 -15
  265. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +0 -132
  266. data/app/pb_kits/playbook/packs/site_styles/docs/_kits_examples.scss +0 -15
  267. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +0 -88
  268. data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +0 -72
  269. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.html.erb +0 -11
  270. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.jsx +0 -29
  271. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.html.erb +0 -11
  272. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.jsx +0 -34
  273. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +0 -4
  274. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +0 -13
  275. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.html.erb +0 -4
  276. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx +0 -13
  277. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md +0 -1
  278. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.html.erb +0 -11
  279. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.jsx +0 -44
  280. data/app/views/layouts/playbook/_mobile_hamburger.html.erb +0 -2
  281. data/app/views/layouts/playbook/_nav.html.erb +0 -34
  282. data/app/views/layouts/playbook/_sidebar.html.erb +0 -51
  283. data/app/views/layouts/playbook/application.html.erb +0 -26
  284. data/app/views/layouts/playbook/fullscreen.html.slim +0 -10
  285. data/app/views/layouts/playbook/grid.html.slim +0 -10
  286. data/app/views/layouts/playbook/samples.html.erb +0 -19
  287. data/app/views/playbook/guides/create_kit.html.slim +0 -16
  288. data/app/views/playbook/guides/create_kit/_file_naming.html.md +0 -2
  289. data/app/views/playbook/guides/create_kit/_generator.html.md +0 -6
  290. data/app/views/playbook/guides/create_kit/_kit_examples.html.md +0 -2
  291. data/app/views/playbook/guides/create_kit/_kit_rails.html.md +0 -2
  292. data/app/views/playbook/guides/create_kit/_kit_react.html.md +0 -2
  293. data/app/views/playbook/guides/create_kit/_layout.html.md +0 -2
  294. data/app/views/playbook/guides/create_kit/_view_objects.html.md +0 -2
  295. data/app/views/playbook/guides/create_kit/_writing_sass.md +0 -10
  296. data/app/views/playbook/guides/use_nitro.html.slim +0 -6
  297. data/app/views/playbook/guides/use_nitro/_local.html.md +0 -2
  298. data/app/views/playbook/guides/use_nitro/_nitro_components.html.md +0 -2
  299. data/app/views/playbook/guides/use_nitro/_versions.html.md +0 -2
  300. data/app/views/playbook/pages/fullscreen.html.slim +0 -10
  301. data/app/views/playbook/pages/grid.html.slim +0 -2
  302. data/app/views/playbook/pages/home.html.slim +0 -4
  303. data/app/views/playbook/pages/kit_category_show.html.erb +0 -14
  304. data/app/views/playbook/pages/kit_show.html.erb +0 -33
  305. data/app/views/playbook/pages/kits.html.erb +0 -12
  306. data/app/views/playbook/pages/principals/_getting_started.html.md +0 -30
  307. data/app/views/playbook/pages/principles.html.slim +0 -3
  308. data/app/views/playbook/pages/tokens.html.slim +0 -15
  309. data/app/views/playbook/pages/tokens/_pb_doc_spacing.html.slim +0 -61
  310. data/app/views/playbook/pages/utilities.html.slim +0 -116
  311. data/app/views/playbook/pages/utilities/_pb_doc_color.html.slim +0 -15
  312. data/app/views/playbook/samples/collection_detail/index.html.erb +0 -169
  313. data/app/views/playbook/samples/collection_detail/index.jsx +0 -372
  314. data/app/views/playbook/samples/dashboards/index.html.erb +0 -81
  315. data/app/views/playbook/samples/dashboards/index.jsx +0 -130
  316. data/app/views/playbook/samples/filter_table/index.html.erb +0 -348
  317. data/app/views/playbook/samples/filter_table/index.jsx +0 -433
  318. data/app/views/playbook/samples/registration/index.html.erb +0 -316
  319. data/app/views/playbook/samples/registration/index.jsx +0 -476
  320. data/app/views/playbook/samples/sample_show.html.erb +0 -36
@@ -0,0 +1,42 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ import {
7
+ User,
8
+ } from '../../'
9
+
10
+ const Option = (props: any) => {
11
+ const {
12
+ imageUrl,
13
+ label,
14
+ } = props.data
15
+
16
+ const handleOptionClicked = () => {
17
+ const resultSelectedEvent = new CustomEvent('pb-typeahead-kit-result-option-select', { detail: props.data })
18
+ document.dispatchEvent(resultSelectedEvent)
19
+ }
20
+
21
+ return (
22
+ <components.Option {...props}>
23
+ <div onClick={handleOptionClicked}>
24
+ <Choose>
25
+ <When condition={imageUrl}>
26
+ <User
27
+ align="left"
28
+ avatarUrl={imageUrl}
29
+ name={label}
30
+ orientation="horizontal"
31
+ />
32
+ </When>
33
+ <When condition={!imageUrl}>
34
+ {label}
35
+ </When>
36
+ </Choose>
37
+ </div>
38
+ </components.Option>
39
+ )
40
+ }
41
+
42
+ export default Option
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const Placeholder = (props: any) => (
7
+ <components.IndicatorsContainer
8
+ className="placeholder"
9
+ {...props}
10
+ />
11
+ )
12
+
13
+ export default Placeholder
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const ValueContainer = (props: Props) => (
7
+ <components.ValueContainer
8
+ className="text_input_value_container"
9
+ {...props}
10
+ />
11
+ )
12
+
13
+ export default ValueContainer
@@ -25,7 +25,7 @@
25
25
 
26
26
  <%= javascript_tag defer: "defer" do %>
27
27
  document.addEventListener("pb-typeahead-kit-search", function(event) {
28
- if (!event.target.dataset.typeaheadExample) return;
28
+ if (!event.target.dataset || !event.target.dataset.typeaheadExample) return;
29
29
 
30
30
  fetch(`https://api.github.com/search/users?q=${encodeURIComponent(event.detail.searchingFor)}`)
31
31
  .then(response => response.json())
@@ -0,0 +1,22 @@
1
+ // @flow
2
+
3
+ import React from 'react'
4
+ import { Typeahead } from '../../'
5
+
6
+ const options = [
7
+ { label: 'Orange', value: '#FFA500' },
8
+ { label: 'Red', value: '#FF0000' },
9
+ { label: 'Green', value: '#00FF00' },
10
+ { label: 'Blue', value: '#0000FF' },
11
+ ]
12
+
13
+ const TypeaheadDefault = () => {
14
+ return (
15
+ <Typeahead
16
+ label="Colors"
17
+ options={options}
18
+ />
19
+ )
20
+ }
21
+
22
+ export default TypeaheadDefault
@@ -18,7 +18,7 @@
18
18
 
19
19
  <%= javascript_tag defer: "defer" do %>
20
20
  document.addEventListener("pb-typeahead-kit-search", function(event) {
21
- if (!event.target.dataset.typeaheadExample2) return;
21
+ if (!event.target.dataset || !event.target.dataset.typeaheadExample2) return;
22
22
 
23
23
  const fuzzyMatch = function(string, term) {
24
24
  const ratio = 0.5;
@@ -0,0 +1,25 @@
1
+ <%
2
+ options = [
3
+ { label: 'Windows', value: '#FFA500' },
4
+ { label: 'Siding', value: '#FF0000' },
5
+ { label: 'Doors', value: '#00FF00' },
6
+ { label: 'Roofs', value: '#0000FF' },
7
+ ]
8
+ %>
9
+
10
+ <%= pb_rails("typeahead", props: { options: options, label: "Colors", name: :foo, pills: true }) %>
11
+
12
+ <!-- This section is an example of the available JavaScript event hooks -->
13
+ <%= javascript_tag defer: "defer" do %>
14
+ document.addEventListener("pb-typeahead-kit-result-option-select", function(event) {
15
+ console.log('Option selected')
16
+ console.dir(event.detail)
17
+ })
18
+ document.addEventListener("pb-typeahead-kit-result-option-remove", function(event) {
19
+ console.log('Option removed')
20
+ console.dir(event.detail)
21
+ })
22
+ document.addEventListener("pb-typeahead-kit-result-clear", function() {
23
+ console.log('All options cleared')
24
+ })
25
+ <% end %>
@@ -0,0 +1,26 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { Typeahead } from '../..'
5
+
6
+ const options = [
7
+ { label: 'Windows', value: '#FFA500' },
8
+ { label: 'Siding', value: '#FF0000' },
9
+ { label: 'Doors', value: '#00FF00' },
10
+ { label: 'Roofs', value: '#0000FF' },
11
+ ]
12
+
13
+ const TypeaheadWithPills = () => {
14
+ return (
15
+ <>
16
+ <Typeahead
17
+ isMulti
18
+ label="Colors"
19
+ options={options}
20
+ placeholder=""
21
+ />
22
+ </>
23
+ )
24
+ }
25
+
26
+ export default TypeaheadWithPills
@@ -0,0 +1,8 @@
1
+ Typeahead kit is data-driven. The minimum default fields are `label` and `value`.
2
+
3
+ `{ label: "Foo", value: "bar" }`
4
+
5
+ #### Rails: Subscribing to JS Events
6
+ `pb-typeahead-kit-result-option-select` event to perform custom work when an option is clicked.
7
+ `pb-typeahead-kit-result-option-remove` event to perform custom work when a pill is clicked.
8
+ `pb-typeahead-kit-result-option-clear` event to perform custom work when all pills are removed upon clicking the X.
@@ -0,0 +1,30 @@
1
+ <%= pb_rails("typeahead", props: { async: true, load_options: 'asyncPillsPromiseOptions', label: "Github Users", name: :foo, pills: true, placeholder: "type the name of a Github user" }) %>
2
+
3
+ <!-- This section is an example of how to provide load_options prop for using dynamic options -->
4
+ <%= javascript_tag defer: "defer" do %>
5
+ // Simple filter function, providing a list of results in the expected data format
6
+
7
+ const filterResults = function(results) {
8
+ return results.items.map(function(result) {
9
+ return {
10
+ label: result.login,
11
+ value: result.id,
12
+ }
13
+ })
14
+ }
15
+
16
+ /* Note: Make sure you assign this to window or a namespace within window
17
+ or it will not be accessible to the kit! */
18
+
19
+ window.asyncPillsPromiseOptions = function(inputValue) {
20
+ return new Promise(function(resolve) {
21
+ if (inputValue) {
22
+ fetch(`https://api.github.com/search/users?q=${inputValue}`)
23
+ .then(function(response) { return response.json() })
24
+ .then(function(results) { resolve(filterResults(results))})
25
+ } else {
26
+ resolve([])
27
+ }
28
+ })
29
+ }
30
+ <% end %>
@@ -0,0 +1,84 @@
1
+ /* @flow */
2
+
3
+ import React, { useState } from 'react'
4
+
5
+ import {
6
+ Caption,
7
+ Typeahead,
8
+ User,
9
+ } from '../..'
10
+
11
+ /**
12
+ *
13
+ * @const filterResults
14
+ * @ignore
15
+ * @returns {[Object]} - a custom mapping of objects, minimally containing
16
+ * `value` and `label` among other possible fields
17
+ * @summary - for doc example purposes only
18
+ */
19
+
20
+ const filterResults = (results) =>
21
+ results.items.map((result) => {
22
+ return {
23
+ label: result.login,
24
+ value: result.id,
25
+ }
26
+ })
27
+
28
+ /**
29
+ *
30
+ * @const promiseOptions
31
+ * @ignore
32
+ * @returns {Promise} - fetch API data results from Typeahead input text
33
+ * @see - https://react-select.com/home#async
34
+ * @summary - for doc example purposes only
35
+ */
36
+
37
+ const promiseOptions = (inputValue) =>
38
+ new Promise((resolve) => {
39
+ if (inputValue) {
40
+ fetch(`https://api.github.com/search/users?q=${inputValue}`)
41
+ .then((response) => response.json())
42
+ .then((results) => resolve(filterResults(results)))
43
+ } else {
44
+ resolve([])
45
+ }
46
+ })
47
+
48
+ const TypeaheadWithPillsAsync = () => {
49
+ const [users, setUsers] = useState([])
50
+ const handleOnChange = (value) => setUsers(value)
51
+
52
+ return (
53
+ <>
54
+ <If condition={users && users.length > 0}>
55
+ <Caption
56
+ marginBottom="xs"
57
+ text="State (Users)"
58
+ />
59
+ <For
60
+ each="user"
61
+ of={users}
62
+ >
63
+ <User
64
+ align="left"
65
+ key={user.value}
66
+ marginBottom="md"
67
+ name={user.label}
68
+ orientation="horizontal"
69
+ />
70
+ </For>
71
+ </If>
72
+ <Typeahead
73
+ async
74
+ isMulti
75
+ label="Github Users"
76
+ loadOptions={promiseOptions}
77
+ onChange={handleOnChange}
78
+ placeholder="type the name of a Github user"
79
+ />
80
+ </>
81
+ )
82
+ }
83
+
84
+ export default TypeaheadWithPillsAsync
@@ -0,0 +1,11 @@
1
+ #### Rails: Providing the `load_options` Promise
2
+
3
+ **Additional required props: ** `async: true`, `pills: true`
4
+
5
+ The prop `load_options`, when used in conjunction with `async: true` and `pills: true`, points to a JavaScript function located within the global window namespace. This function should return a `Promise` which resolves with the list of formatted options as described in prior examples above. This function is identical to the function provided to the React version of this kit. See the code example for more details.
6
+
7
+ #### React: `loadOptions`
8
+
9
+ **Additional required props: ** `async: true`
10
+
11
+ [As outlined in the react-select Async docs](https://react-select.com/async), `loadOptions` expects to return a Promise that resolves resolves with the list of formatted options as described in prior examples above. See the code example for more details.
@@ -0,0 +1,25 @@
1
+ <%= pb_rails("typeahead", props: { async: true, load_options: 'asyncPillsPromiseOptionsUsers', label: "Github Users", name: :foo, pills: true, placeholder: "type the name of a Github user" }) %>
2
+
3
+ <%= javascript_tag defer: "defer" do %>
4
+ const filterUserResults = function(results) {
5
+ return results.items.map(function(result) {
6
+ return {
7
+ imageUrl: result.avatar_url,
8
+ label: result.login,
9
+ value: result.id,
10
+ }
11
+ })
12
+ }
13
+
14
+ window.asyncPillsPromiseOptionsUsers = function(inputValue) {
15
+ return new Promise(function(resolve) {
16
+ if (inputValue) {
17
+ fetch(`https://api.github.com/search/users?q=${inputValue}`)
18
+ .then(function(response) { return response.json() })
19
+ .then(function(results) { resolve(filterUserResults(results))})
20
+ } else {
21
+ resolve([])
22
+ }
23
+ })
24
+ }
25
+ <% end %>
@@ -0,0 +1,98 @@
1
+ /* @flow */
2
+
3
+ import React, { useState } from 'react'
4
+
5
+ import {
6
+ Caption,
7
+ Typeahead,
8
+ User,
9
+ } from '../..'
10
+
11
+ /**
12
+ *
13
+ * @const filterResults
14
+ * @ignore
15
+ * @returns {[Object]} - a custom mapping of objects, minimally containing
16
+ * `value` and `label` among other possible fields
17
+ * @summary - for doc example purposes only
18
+ */
19
+
20
+ const filterResults = (results) =>
21
+ results.items.map((result) => {
22
+ return {
23
+ imageUrl: result.avatar_url, //add the custom field
24
+ label: result.login,
25
+ value: result.id,
26
+ }
27
+ })
28
+
29
+ /**
30
+ *
31
+ * @const promiseOptions
32
+ * @ignore
33
+ * @returns {Promise} - fetch API data results from Typeahead input text
34
+ * @see - https://react-select.com/home#async
35
+ * @summary - for doc example purposes only
36
+ */
37
+
38
+ const promiseOptions = (inputValue) =>
39
+ new Promise((resolve) => {
40
+ if (inputValue) {
41
+ fetch(`https://api.github.com/search/users?q=${inputValue}`)
42
+ .then((response) => response.json())
43
+ .then((results) => resolve(filterResults(results)))
44
+ } else {
45
+ resolve([])
46
+ }
47
+ })
48
+
49
+ const TypeaheadWithPillsAsyncUsers = () => {
50
+ const [users, setUsers] = useState([])
51
+ const handleOnChange = (value) => setUsers(value)
52
+
53
+ /**
54
+ *
55
+ * @const handleOnMultiValueClick {function} - a custom callback for the MultiValue click
56
+ * @ignore
57
+ * @returns {null}
58
+ * @summary - for doc example purposes only
59
+ */
60
+ const handleOnMultiValueClick = (value) => {
61
+ alert(`You removed the user: "${value.label}"`)
62
+ }
63
+
64
+ return (
65
+ <>
66
+ <If condition={users && users.length > 0}>
67
+ <Caption
68
+ marginBottom="xs"
69
+ text="State (Users)"
70
+ />
71
+ <For
72
+ each="user"
73
+ of={users}
74
+ >
75
+ <User
76
+ align="left"
77
+ avatarUrl={user.imageUrl}
78
+ key={user.value}
79
+ marginBottom="md"
80
+ name={user.label}
81
+ orientation="horizontal"
82
+ />
83
+ </For>
84
+ </If>
85
+ <Typeahead
86
+ async
87
+ isMulti
88
+ label="Github Users"
89
+ loadOptions={promiseOptions}
90
+ onChange={handleOnChange}
91
+ onMultiValueClick={handleOnMultiValueClick}
92
+ placeholder="type the name of a Github user"
93
+ />
94
+ </>
95
+ )
96
+ }
97
+
98
+ export default TypeaheadWithPillsAsyncUsers
@@ -0,0 +1 @@
1
+ If the data field `imageUrl` is present, FormPill will receive that field as a prop and display the image.
@@ -1,4 +1,13 @@
1
1
  examples:
2
2
  rails:
3
- - typeahead_default: Default
4
- - typeahead_with_context_dark: With Context
3
+ - typeahead_default: Default
4
+ - typeahead_with_context_dark: With Context
5
+ - typeahead_with_pills: With Pills
6
+ - typeahead_with_pills_async: With Pills (Async Data)
7
+ - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
8
+
9
+ react:
10
+ - typeahead_default: Default
11
+ - typeahead_with_pills: With Pills
12
+ - typeahead_with_pills_async: With Pills (Async Data)
13
+ - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)