playbook_ui 7.11.0.pre.alpha1 → 7.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (329) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/playbook/application_helper.rb +0 -4
  3. data/app/helpers/playbook/pb_sample_helper.rb +9 -2
  4. data/app/pb_kits/playbook/index.js +3 -1
  5. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +1 -1
  6. data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +2 -1
  7. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +2 -1
  8. data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +11 -3
  9. data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +2 -1
  10. data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +2 -1
  11. data/app/pb_kits/playbook/pb_badge/docs/_badge_colors.jsx +18 -18
  12. data/app/pb_kits/playbook/pb_badge/docs/_badge_default.jsx +3 -3
  13. data/app/pb_kits/playbook/pb_badge/docs/_badge_rounded.jsx +3 -3
  14. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +2 -1
  15. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +3 -1
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +2 -1
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +2 -1
  18. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +5 -5
  19. data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.jsx +1 -1
  20. data/app/pb_kits/playbook/pb_button/docs/_button_block_content.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +1 -1
  22. data/app/pb_kits/playbook/pb_button/docs/_button_full_width.jsx +1 -1
  23. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +3 -3
  24. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +3 -3
  25. data/app/pb_kits/playbook/pb_button/docs/_button_options.jsx +1 -1
  26. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.jsx +10 -10
  27. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.jsx +10 -10
  28. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +2 -2
  29. data/app/pb_kits/playbook/pb_caption/docs/_caption_light.jsx +3 -3
  30. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +2 -1
  31. data/app/pb_kits/playbook/pb_card/_card.scss +3 -0
  32. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_checked.jsx +1 -1
  33. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.jsx +2 -1
  34. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_error.jsx +1 -1
  36. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +3 -1
  37. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +2 -1
  38. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +2 -1
  39. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +5 -1
  40. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +3 -1
  41. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +2 -1
  42. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +2 -1
  43. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +2 -1
  44. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +2 -1
  45. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_click.jsx +1 -1
  46. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_default.jsx +4 -4
  47. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.jsx +2 -3
  48. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +5 -6
  49. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +4 -4
  50. data/app/pb_kits/playbook/pb_currency/docs/_currency_alignment.jsx +3 -3
  51. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx +1 -1
  52. data/app/pb_kits/playbook/pb_currency/docs/_currency_size.jsx +3 -3
  53. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.jsx +3 -3
  54. data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_align.jsx +3 -3
  55. data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_default.jsx +3 -3
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +2 -1
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +6 -2
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +6 -1
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +2 -1
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +5 -1
  61. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.jsx +2 -1
  62. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.jsx +3 -1
  63. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +5 -1
  64. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +3 -1
  65. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +3 -1
  66. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.jsx +4 -1
  67. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +2 -1
  68. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx +2 -1
  69. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +6 -6
  70. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_dark.jsx +2 -1
  71. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_default.jsx +2 -1
  72. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_align.jsx +7 -1
  73. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.jsx +3 -1
  74. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.jsx +3 -1
  75. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.jsx +3 -1
  76. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reverse.jsx +3 -1
  77. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_sizes.jsx +3 -1
  78. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +2 -1
  79. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +5 -2
  80. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.jsx +4 -1
  81. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_default.jsx +3 -1
  82. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_default.jsx +3 -1
  83. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_accept.jsx +6 -2
  84. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx +6 -2
  85. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +20 -3
  86. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +51 -32
  87. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +3 -4
  88. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +17 -16
  89. data/app/pb_kits/playbook/pb_filter/_filter.html.erb +1 -1
  90. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +6 -1
  91. data/app/pb_kits/playbook/pb_filter/docs/_filter_min_width.html.erb +41 -0
  92. data/app/pb_kits/playbook/pb_filter/docs/_filter_min_width.jsx +57 -0
  93. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +51 -0
  94. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.html.erb +2 -2
  95. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +6 -1
  96. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.md +1 -0
  97. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +1 -1
  98. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +6 -1
  99. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +6 -1
  100. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +1 -1
  101. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  102. data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
  103. data/app/pb_kits/playbook/pb_filter/filter.rb +1 -0
  104. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +3 -1
  105. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  106. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_close.jsx +4 -1
  107. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dark.jsx +4 -1
  108. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default.jsx +4 -1
  109. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.jsx +2 -1
  110. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.jsx +2 -1
  111. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +5 -1
  112. data/app/pb_kits/playbook/pb_flex/docs/_flex_horizontal.jsx +17 -1
  113. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.jsx +5 -1
  114. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +5 -1
  115. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +9 -1
  116. data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.jsx +17 -5
  117. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +5 -1
  118. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_tag.jsx +2 -1
  119. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.jsx +5 -3
  120. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +2 -1
  121. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +2 -1
  122. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +2 -1
  123. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +3 -1
  124. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +4 -1
  125. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +2 -1
  126. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +18 -4
  127. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +2 -1
  128. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +3 -1
  129. data/app/pb_kits/playbook/pb_highlight/docs/_highlight_default.jsx +3 -1
  130. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.jsx +2 -1
  131. data/app/pb_kits/playbook/pb_icon/docs/_icon_animate.jsx +3 -1
  132. data/app/pb_kits/playbook/pb_icon/docs/_icon_border.jsx +2 -1
  133. data/app/pb_kits/playbook/pb_icon/docs/_icon_default.jsx +2 -1
  134. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +2 -1
  135. data/app/pb_kits/playbook/pb_icon/docs/_icon_flip.jsx +4 -1
  136. data/app/pb_kits/playbook/pb_icon/docs/_icon_pull.jsx +3 -1
  137. data/app/pb_kits/playbook/pb_icon/docs/_icon_rotate.jsx +4 -1
  138. data/app/pb_kits/playbook/pb_icon/docs/_icon_sizes.jsx +14 -1
  139. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.jsx +8 -1
  140. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_dark.jsx +8 -1
  141. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_dark.jsx +2 -1
  142. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_default.jsx +2 -1
  143. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes.jsx +5 -1
  144. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_dark.jsx +5 -1
  145. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +8 -1
  146. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.jsx +3 -1
  147. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.jsx +4 -1
  148. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.jsx +2 -1
  149. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align.jsx +4 -1
  150. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align_dark.jsx +4 -1
  151. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_dark.jsx +4 -1
  152. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_default.jsx +4 -1
  153. data/app/pb_kits/playbook/pb_image/docs/_default_image.jsx +7 -1
  154. data/app/pb_kits/playbook/pb_image/docs/_rounded_image.jsx +6 -1
  155. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +8 -1
  156. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_default.jsx +4 -1
  157. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details.jsx +5 -1
  158. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples.jsx +12 -1
  159. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.jsx +2 -1
  160. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection_detail.jsx +7 -1
  161. data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.jsx +6 -1
  162. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.jsx +150 -1
  163. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.jsx +2 -1
  164. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.jsx +6 -1
  165. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +6 -1
  166. data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.jsx +2 -1
  167. data/app/pb_kits/playbook/pb_legend/docs/_legend_default.jsx +2 -1
  168. data/app/pb_kits/playbook/pb_legend/docs/_legend_prefix.jsx +2 -1
  169. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +2 -1
  170. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +3 -1
  171. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +2 -1
  172. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +2 -1
  173. data/app/pb_kits/playbook/pb_list/docs/_list_borderless.jsx +2 -1
  174. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.jsx +12 -1
  175. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.jsx +10 -1
  176. data/app/pb_kits/playbook/pb_list/docs/_list_lg.jsx +2 -1
  177. data/app/pb_kits/playbook/pb_list/docs/_list_ordered.jsx +2 -1
  178. data/app/pb_kits/playbook/pb_list/docs/_list_xpadding.jsx +2 -1
  179. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_light.jsx +12 -4
  180. data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +7 -1
  181. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.jsx +3 -1
  182. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.jsx +3 -1
  183. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_multiple_users_stacked_default.jsx +4 -1
  184. data/app/pb_kits/playbook/pb_nav/docs/_block_nav.jsx +3 -1
  185. data/app/pb_kits/playbook/pb_nav/docs/_block_no_title_nav.jsx +6 -1
  186. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx +5 -1
  187. data/app/pb_kits/playbook/pb_nav/docs/_default_nav.jsx +6 -1
  188. data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav.jsx +6 -1
  189. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.jsx +6 -1
  190. data/app/pb_kits/playbook/pb_nav/docs/_no_highlight_nav.jsx +5 -1
  191. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.jsx +6 -1
  192. data/app/pb_kits/playbook/pb_nav/docs/_subtle_nav.jsx +7 -1
  193. data/app/pb_kits/playbook/pb_nav/docs/_subtle_no_highlight_nav.jsx +5 -1
  194. data/app/pb_kits/playbook/pb_nav/docs/_subtle_with_icons_nav.jsx +8 -1
  195. data/app/pb_kits/playbook/pb_nav/docs/_with_icons_nav.jsx +7 -1
  196. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx +7 -1
  197. data/app/pb_kits/playbook/pb_person/docs/_person_default.jsx +2 -1
  198. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_default.jsx +2 -1
  199. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_multiple.jsx +3 -1
  200. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_detail.jsx +2 -1
  201. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +2 -1
  202. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +4 -1
  203. data/app/pb_kits/playbook/pb_popover/docs/_popover_close_dark.jsx +4 -1
  204. data/app/pb_kits/playbook/pb_popover/docs/_popover_dark.jsx +4 -1
  205. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +3 -1
  206. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +2 -1
  207. data/app/pb_kits/playbook/pb_popover/docs/_popover_list_dark.jsx +4 -1
  208. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +4 -1
  209. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height_dark.jsx +4 -1
  210. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +3 -1
  211. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index_dark.jsx +3 -1
  212. data/app/pb_kits/playbook/pb_radio/_radio.jsx +4 -3
  213. data/app/pb_kits/playbook/pb_radio/docs/_radio_custom.jsx +7 -1
  214. data/app/pb_kits/playbook/pb_radio/docs/_radio_default.jsx +3 -0
  215. data/app/pb_kits/playbook/pb_radio/docs/index.js +1 -0
  216. data/app/pb_kits/playbook/pb_radio/radio.test.js +71 -0
  217. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +4 -2
  218. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +9 -3
  219. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +25 -0
  220. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +45 -0
  221. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +5 -2
  222. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +2 -1
  223. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +3 -1
  224. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +3 -1
  225. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +1 -0
  226. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -3
  227. data/app/pb_kits/playbook/pb_select/docs/_select_blank.jsx +2 -1
  228. data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.jsx +2 -1
  229. data/app/pb_kits/playbook/pb_select/docs/_select_default.jsx +2 -1
  230. data/app/pb_kits/playbook/pb_select/docs/_select_disabled.jsx +2 -1
  231. data/app/pb_kits/playbook/pb_select/docs/_select_disabled_options.jsx +2 -1
  232. data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +3 -1
  233. data/app/pb_kits/playbook/pb_select/docs/_select_required.jsx +2 -1
  234. data/app/pb_kits/playbook/pb_select/docs/_select_value_text_same.jsx +2 -1
  235. data/app/pb_kits/playbook/pb_select/select.test.js +51 -0
  236. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +2 -1
  237. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +4 -1
  238. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +5 -1
  239. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_image.jsx +5 -1
  240. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +4 -1
  241. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.jsx +4 -1
  242. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.jsx +4 -1
  243. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.jsx +4 -1
  244. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.jsx +4 -1
  245. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.jsx +4 -1
  246. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +4 -1
  247. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +4 -1
  248. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +4 -1
  249. data/app/pb_kits/playbook/pb_source/docs/_source_noicon.jsx +4 -1
  250. data/app/pb_kits/playbook/pb_source/docs/_source_types.jsx +9 -1
  251. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +4 -1
  252. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx +2 -1
  253. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx +4 -1
  254. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +4 -1
  255. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +4 -1
  256. data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.jsx +9 -3
  257. data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_unit.jsx +2 -1
  258. data/app/pb_kits/playbook/pb_table/docs/_table_action_middle.jsx +8 -2
  259. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.jsx +4 -2
  260. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.jsx +4 -2
  261. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.jsx +4 -2
  262. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +4 -2
  263. data/app/pb_kits/playbook/pb_table/docs/_table_container.jsx +2 -1
  264. data/app/pb_kits/playbook/pb_table/docs/_table_data_table.jsx +5 -2
  265. data/app/pb_kits/playbook/pb_table/docs/_table_disable_hover.jsx +2 -1
  266. data/app/pb_kits/playbook/pb_table/docs/_table_icon_buttons.jsx +11 -2
  267. data/app/pb_kits/playbook/pb_table/docs/_table_lg.jsx +5 -2
  268. data/app/pb_kits/playbook/pb_table/docs/_table_md.jsx +5 -2
  269. data/app/pb_kits/playbook/pb_table/docs/_table_multiline.jsx +5 -2
  270. data/app/pb_kits/playbook/pb_table/docs/_table_one_action.jsx +8 -2
  271. data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.jsx +10 -3
  272. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +61 -16
  273. data/app/pb_kits/playbook/pb_table/docs/_table_single_line.jsx +2 -1
  274. data/app/pb_kits/playbook/pb_table/docs/_table_sm.jsx +5 -2
  275. data/app/pb_kits/playbook/pb_table/docs/_table_two_actions.jsx +11 -2
  276. data/app/pb_kits/playbook/pb_table/docs/_table_two_plus_actions.jsx +8 -2
  277. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +8 -4
  278. data/app/pb_kits/playbook/pb_text_input/docs/_description.md +2 -1
  279. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.jsx +10 -2
  280. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +84 -56
  281. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled.jsx +2 -1
  282. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +20 -11
  283. data/app/pb_kits/playbook/pb_text_input/text_input.test.js +77 -0
  284. data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +16 -1
  285. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +49 -9
  286. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +4 -0
  287. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_character_counter.html.erb +68 -0
  288. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_character_counter.jsx +83 -0
  289. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.jsx +2 -1
  290. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +4 -1
  291. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +2 -1
  292. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_resize.jsx +4 -1
  293. data/app/pb_kits/playbook/pb_textarea/docs/example.yml +2 -3
  294. data/app/pb_kits/playbook/pb_textarea/docs/index.js +1 -0
  295. data/app/pb_kits/playbook/pb_textarea/textarea.rb +7 -0
  296. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.jsx +9 -1
  297. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.jsx +13 -1
  298. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.jsx +14 -2
  299. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.jsx +17 -3
  300. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +5 -2
  301. data/app/pb_kits/playbook/pb_title/docs/_title_light.jsx +9 -2
  302. data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +2 -1
  303. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_align.jsx +4 -1
  304. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.jsx +4 -1
  305. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +4 -1
  306. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +10 -6
  307. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +4 -4
  308. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.html.erb +17 -0
  309. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.md +3 -0
  310. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  311. data/app/pb_kits/playbook/pb_tooltip/index.js +87 -37
  312. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -1
  313. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +9 -0
  314. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +2 -1
  315. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +2 -1
  316. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -1
  317. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +4 -1
  318. data/app/pb_kits/playbook/pb_user/docs/_user_default.jsx +5 -1
  319. data/app/pb_kits/playbook/pb_user/docs/_user_size.jsx +4 -1
  320. data/app/pb_kits/playbook/pb_user/docs/_user_text_only.jsx +3 -1
  321. data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size.jsx +4 -1
  322. data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.jsx +5 -1
  323. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.jsx +4 -1
  324. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.jsx +13 -4
  325. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_variant.jsx +4 -1
  326. data/lib/playbook.rb +1 -12
  327. data/lib/playbook/engine.rb +2 -15
  328. data/lib/playbook/version.rb +1 -1
  329. metadata +16 -4
@@ -6,7 +6,7 @@ import {
6
6
  Title,
7
7
  } from '../..'
8
8
 
9
- const PopoverScrollHeightDark = () => {
9
+ const PopoverScrollHeightDark = (props) => {
10
10
  const [showPopover, setShowPopover] = useState(false)
11
11
 
12
12
  const handleTogglePopover = () => {
@@ -36,15 +36,18 @@ const PopoverScrollHeightDark = () => {
36
36
  reference={popoverTrigger}
37
37
  shouldClosePopover={handleShouldClosePopover}
38
38
  show={showPopover}
39
+ {...props}
39
40
  >
40
41
  <Body
41
42
  marginBottom="sm"
42
43
  text=" Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this."
44
+ {...props}
43
45
  />
44
46
  <Title
45
47
  dark
46
48
  size={4}
47
49
  text="- Abraham Lincoln"
50
+ {...props}
48
51
  />
49
52
 
50
53
  </PbReactPopover>
@@ -5,7 +5,7 @@ import {
5
5
  PbReactPopover,
6
6
  } from '../..'
7
7
 
8
- const PopoverZIndex = () => {
8
+ const PopoverZIndex = (props) => {
9
9
  const [showPopover, setShowPopover] = useState(false)
10
10
 
11
11
  const handleTogglePopover = () => {
@@ -30,6 +30,7 @@ const PopoverZIndex = () => {
30
30
  <Body
31
31
  marginBottom="md"
32
32
  text="I've got a z-index of 2"
33
+ {...props}
33
34
  />
34
35
  </div>
35
36
  <PbReactPopover
@@ -40,6 +41,7 @@ const PopoverZIndex = () => {
40
41
  shouldClosePopover={handleShouldClosePopover}
41
42
  show={showPopover}
42
43
  zIndex={3}
44
+ {...props}
43
45
  >
44
46
  {'I have a custom z-index of 3'}
45
47
  </PbReactPopover>
@@ -5,7 +5,7 @@ import {
5
5
  PbReactPopover,
6
6
  } from '../..'
7
7
 
8
- const PopoverZIndexDark = () => {
8
+ const PopoverZIndexDark = (props) => {
9
9
  const [showPopover, setShowPopover] = useState(false)
10
10
 
11
11
  const handleTogglePopover = () => {
@@ -32,6 +32,7 @@ const PopoverZIndexDark = () => {
32
32
  dark
33
33
  marginBottom="md"
34
34
  text="I've got a z-index of 2"
35
+ {...props}
35
36
  />
36
37
  </div>
37
38
  <PbReactPopover
@@ -42,6 +43,7 @@ const PopoverZIndexDark = () => {
42
43
  shouldClosePopover={handleShouldClosePopover}
43
44
  show={showPopover}
44
45
  zIndex={3}
46
+ {...props}
45
47
  >
46
48
  {'I have a custom z-index of 3'}
47
49
  </PbReactPopover>
@@ -1,7 +1,7 @@
1
1
  /* @flow */
2
2
  /*eslint-disable react/no-multi-comp, flowtype/space-before-type-colon */
3
3
 
4
- import React from 'react'
4
+ import React, { forwardRef } from 'react'
5
5
  import Body from '../pb_body/_body.jsx'
6
6
  import classnames from 'classnames'
7
7
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
@@ -37,7 +37,7 @@ const Radio = ({
37
37
  value = 'radio_text',
38
38
  onChange = () => {},
39
39
  ...props
40
- }: RadioProps) => {
40
+ }: RadioProps, ref) => {
41
41
  const ariaProps = buildAriaProps(aria)
42
42
  const dataProps = buildDataProps(data)
43
43
  const classes = classnames(buildCss('pb_radio_kit'), { error }, { dark }, globalProps(props), className)
@@ -57,6 +57,7 @@ const Radio = ({
57
57
  id={id}
58
58
  name={name}
59
59
  onChange={onChange}
60
+ ref={ref}
60
61
  text={text}
61
62
  type="radio"
62
63
  value={value}
@@ -72,4 +73,4 @@ const Radio = ({
72
73
  )
73
74
  }
74
75
 
75
- export default Radio
76
+ export default forwardRef(Radio)
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react'
2
2
  import { Radio } from '../../'
3
3
 
4
- const RadioCustom = () => {
4
+ const RadioCustom = (props) => {
5
5
  const [choice, setChoice] = useState('power')
6
6
 
7
7
  const handleOnChange = ({ target }) => {
@@ -18,6 +18,7 @@ const RadioCustom = () => {
18
18
  <Radio
19
19
  className="my_custom_class"
20
20
  label="Custom Power"
21
+ {...props}
21
22
  >
22
23
  <input
23
24
  checked={choice === 'power'}
@@ -25,12 +26,14 @@ const RadioCustom = () => {
25
26
  onChange={handleOnChange}
26
27
  type="radio"
27
28
  value="power"
29
+ {...props}
28
30
  />
29
31
  </Radio>
30
32
  <br />
31
33
  <Radio
32
34
  className="my_custom_class"
33
35
  label="Custom Nitro"
36
+ {...props}
34
37
  >
35
38
  <input
36
39
  checked={choice === 'nitro'}
@@ -38,12 +41,14 @@ const RadioCustom = () => {
38
41
  onChange={handleOnChange}
39
42
  type="radio"
40
43
  value="nitro"
44
+ {...props}
41
45
  />
42
46
  </Radio>
43
47
  <br />
44
48
  <Radio
45
49
  className="my_custom_class"
46
50
  label="Custom Google"
51
+ {...props}
47
52
  >
48
53
  <input
49
54
  checked={choice === 'google'}
@@ -51,6 +56,7 @@ const RadioCustom = () => {
51
56
  onChange={handleOnChange}
52
57
  type="radio"
53
58
  value="google"
59
+ {...props}
54
60
  />
55
61
  </Radio>
56
62
  </div>
@@ -2,12 +2,15 @@ import React from 'react'
2
2
  import { Radio } from '../../'
3
3
 
4
4
  const RadioDefault = () => {
5
+ const ref = React.createRef()
6
+
5
7
  return (
6
8
  <div>
7
9
  <Radio
8
10
  defaultChecked
9
11
  label="Power"
10
12
  name="Group2"
13
+ ref={ref}
11
14
  value="Power"
12
15
  />
13
16
  <br />
@@ -1,2 +1,3 @@
1
1
  export { default as RadioDefault } from './_radio_default.jsx'
2
2
  export { default as RadioCustom } from './_radio_custom.jsx'
3
+ export { default as RadioError } from './_radio_error.jsx'
@@ -0,0 +1,71 @@
1
+ import React from 'react'
2
+ import { render, screen } from '../utilities/test-utils'
3
+
4
+ import Radio from './_radio'
5
+
6
+ const testId = 'radio1',
7
+ kitClass = 'pb_radio_kit'
8
+
9
+ test('returns namespaced class name', () => {
10
+ render(
11
+ <Radio
12
+ data={{ testid: testId }}
13
+ defaultChecked
14
+ label="Power"
15
+ name="Group2"
16
+ value="Power"
17
+ />
18
+ )
19
+
20
+ const kit = screen.getByTestId(testId)
21
+ expect(kit).toHaveClass(kitClass)
22
+ })
23
+
24
+ test('returns dark class name', () => {
25
+ render(
26
+ <Radio
27
+ dark
28
+ data={{ testid: testId }}
29
+ defaultChecked
30
+ label="Power"
31
+ name="Group2"
32
+ value="Power"
33
+ />
34
+ )
35
+
36
+ const kit = screen.getByTestId(testId)
37
+ expect(kit).toHaveClass(`${kitClass} dark`)
38
+ })
39
+
40
+ test('returns error class name', () => {
41
+ render(
42
+ <Radio
43
+ data={{ testid: testId }}
44
+ defaultChecked
45
+ error
46
+ label="Power"
47
+ name="Group2"
48
+ value="Power"
49
+ />
50
+ )
51
+
52
+ const kit = screen.getByTestId(testId)
53
+ expect(kit).toHaveClass(`${kitClass} error`)
54
+ })
55
+
56
+ test('returns dark + error class name', () => {
57
+ render(
58
+ <Radio
59
+ dark
60
+ data={{ testid: testId }}
61
+ defaultChecked
62
+ error
63
+ label="Power"
64
+ name="Group2"
65
+ value="Power"
66
+ />
67
+ )
68
+
69
+ const kit = screen.getByTestId(testId)
70
+ expect(kit).toHaveClass(`${kitClass} dark error`)
71
+ })
@@ -1,9 +1,11 @@
1
1
  import React from 'react'
2
2
  import { RichTextEditor } from '../../'
3
3
 
4
- const RichTextEditorDefault = () => (
4
+ const RichTextEditorDefault = (props) => (
5
5
  <div>
6
- <RichTextEditor />
6
+ <RichTextEditor
7
+ {...props}
8
+ />
7
9
  </div>
8
10
  )
9
11
 
@@ -1,11 +1,17 @@
1
1
  import React from 'react'
2
2
  import { RichTextEditor } from '../../'
3
3
 
4
- const RichTextEditorFocus = () => (
4
+ const RichTextEditorFocus = (props) => (
5
5
  <>
6
- <RichTextEditor focus />
6
+ <RichTextEditor
7
+ focus
8
+ {...props}
9
+ />
7
10
  <br />
8
- <RichTextEditor focus />
11
+ <RichTextEditor
12
+ focus
13
+ {...props}
14
+ />
9
15
  </>
10
16
  )
11
17
  export default RichTextEditorFocus
@@ -0,0 +1,25 @@
1
+
2
+ <%= pb_rails("rich_text_editor", props: { id: "content-preview-editor" }) %>
3
+ <div id="card-obfuscation" style="display:none">
4
+ <%= pb_rails("card", props: { margin_top: "md" }) do %>
5
+ <div id="content-preview" class="trix-content">
6
+ </div>
7
+ <% end %>
8
+ </div>
9
+ <%= pb_rails("button", props: { id: "preview-button", variant: "secondary", margin_top: "md" }) do %>
10
+ <span>Preview Output</span>
11
+ <% end %>
12
+
13
+ <script>
14
+ // Button event handler
15
+ const button = document.getElementById('preview-button');
16
+ button.addEventListener('click', function() {
17
+ const content = document.getElementById('content-preview-editor');
18
+ const previewArea = document.getElementById('content-preview');
19
+ const cardDiv = document.getElementById('card-obfuscation');
20
+
21
+ previewArea.innerHTML = content.value;
22
+ cardDiv.classList.add('mt_md');
23
+ cardDiv.style.display = 'block';
24
+ });
25
+ </script>
@@ -0,0 +1,45 @@
1
+ import React, { useState } from 'react'
2
+ import {
3
+ Button,
4
+ Card,
5
+ RichTextEditor,
6
+ } from '../../'
7
+
8
+ const RichTextEditorPreview = () => {
9
+ const [showPreview, setShowPreview] = useState(false)
10
+ const [previewText, setPreviewText] = useState(<div />)
11
+
12
+ const handleChange = (event) => setPreviewText(event)
13
+ const handleClick = () => {
14
+ setShowPreview(true)
15
+ }
16
+
17
+ return (
18
+ <div>
19
+ <RichTextEditor
20
+ id="content-preview-editor"
21
+ onChange={handleChange}
22
+ />
23
+ <If condition={showPreview}>
24
+ <Card marginTop="md">
25
+ <div
26
+ className="trix-content"
27
+ // eslint-disable-next-line react/no-danger
28
+ dangerouslySetInnerHTML={{ __html: previewText }}
29
+ id="preview-content"
30
+ />
31
+ </Card>
32
+ <Else />
33
+ <div />
34
+ </If>
35
+ <Button
36
+ id="preview-button"
37
+ marginTop="md"
38
+ onClick={handleClick}
39
+ text="Preview Output"
40
+ variant="secondary"
41
+ />
42
+ </div>
43
+ )
44
+ }
45
+ export default RichTextEditorPreview
@@ -1,9 +1,12 @@
1
1
  import React from 'react'
2
2
  import { RichTextEditor } from '../../'
3
3
 
4
- const RichTextEditorSimple = () => (
4
+ const RichTextEditorSimple = (props) => (
5
5
  <div>
6
- <RichTextEditor simple />
6
+ <RichTextEditor
7
+ simple
8
+ {...props}
9
+ />
7
10
  </div>
8
11
  )
9
12
 
@@ -1,12 +1,13 @@
1
1
  import React from 'react'
2
2
  import { RichTextEditor } from '../../'
3
3
 
4
- const RichTextEditorSticky = () => (
4
+ const RichTextEditorSticky = (props) => (
5
5
  <div>
6
6
  <RichTextEditor
7
7
  id="sticky"
8
8
  sticky
9
9
  value="In this example, when you scroll down, the rich text editor's toolbar will scroll along with the page and it will no longer be visible at the top of the page. Dummy text to enable scroll.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lorem ut pellentesque tempor. Vivamus ut ex vestibulum velit rich text editor eleifend fringilla. Sed non metus dictum, elementum mauris wysiwyg html editor non, sagittis odio. Nullam pellentesque leo sit amet ante suscipit wysiwyg html editor sagittis. Donec tempus vulputate suscipit. Ut non felis rich text editor ac dolor pulvinar lacinia eu eget urna. Sed tincidunt sapien vulputate tellus fringilla sodales. Morbi accumsan dui wysiwyg html editor sed massa pellentesque, quis vestibulum lectus scelerisque. Nulla ultrices mi id felis luctus aliquet. Donec nec ligula wysiwyg html editor pretium sapien semper dictum eu id quam. Etiam ut sollicitudin nibh. Quisque eu ultrices dui. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus rich text editor mi eu consequat. Nullam tincidunt erat et placerat mattis. Nunc rich text editor congue, enim vitae dictum dignissim, libero nisl sagittis augue, non aliquet nibh tortor sit amet ex. Aliquam cursus maximus mi eu consequat. Nullam tincidunt erat et placerat mattis."
10
+ {...props}
10
11
  />
11
12
  </div>
12
13
  )
@@ -2,7 +2,7 @@ import React, { useState } from 'react'
2
2
  import { RichTextEditor, Select } from '../../'
3
3
  import { changelog, release } from './templates.js'
4
4
 
5
- const RichTextEditorTemplates = () => {
5
+ const RichTextEditorTemplates = (props) => {
6
6
  const [editorContent, setEditorContent] = useState('')
7
7
 
8
8
  const handleChange = (event) => {
@@ -27,10 +27,12 @@ const RichTextEditorTemplates = () => {
27
27
  label="Template"
28
28
  onChange={handleChange}
29
29
  options={options}
30
+ {...props}
30
31
  />
31
32
  <RichTextEditor
32
33
  id="template"
33
34
  template={editorContent}
35
+ {...props}
34
36
  />
35
37
  </div>
36
38
  )
@@ -1,11 +1,12 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - rich_text_editor_default: Default
5
5
  - rich_text_editor_simple: Simple
6
6
  - rich_text_editor_focus: Focus
7
7
  - rich_text_editor_sticky: Sticky
8
8
  - rich_text_editor_templates: Templates
9
+ - rich_text_editor_preview: Preview
9
10
 
10
11
  react:
11
12
  - rich_text_editor_default: Default
@@ -13,3 +14,4 @@ examples:
13
14
  - rich_text_editor_focus: Focus
14
15
  - rich_text_editor_sticky: Sticky
15
16
  - rich_text_editor_templates: Templates
17
+ - rich_text_editor_preview: Preview
@@ -3,3 +3,4 @@ export { default as RichTextEditorSimple } from './_rich_text_editor_simple.jsx'
3
3
  export { default as RichTextEditorFocus } from './_rich_text_editor_focus.jsx'
4
4
  export { default as RichTextEditorSticky } from './_rich_text_editor_sticky.jsx'
5
5
  export { default as RichTextEditorTemplates } from './_rich_text_editor_templates.jsx'
6
+ export { default as RichTextEditorPreview } from './_rich_text_editor_preview.jsx'
@@ -1,6 +1,6 @@
1
1
  /* @flow */
2
2
 
3
- import React from 'react'
3
+ import React, { forwardRef } from 'react'
4
4
  import classnames from 'classnames'
5
5
  import {
6
6
  Body,
@@ -69,7 +69,7 @@ const Select = ({
69
69
  required = false,
70
70
  value,
71
71
  ...props
72
- }: SelectProps) => {
72
+ }: SelectProps, ref: React.ElementRef<"select">) => {
73
73
  const ariaProps = buildAriaProps(aria)
74
74
  const dataProps = buildDataProps(data)
75
75
  const optionsList = createOptions(options)
@@ -107,6 +107,7 @@ const Select = ({
107
107
  multiple={multiple}
108
108
  name={name}
109
109
  onChange={onChange}
110
+ ref={ref}
110
111
  required={required}
111
112
  value={value}
112
113
  >
@@ -132,4 +133,4 @@ const Select = ({
132
133
  )
133
134
  }
134
135
 
135
- export default Select
136
+ export default forwardRef(Select)