playbook_ui 14.16.0.pre.rc.1 → 14.16.0.pre.rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +7 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +1 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_custom_cell.jsx +3 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.jsx +1 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.jsx +8 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.jsx +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_editing.jsx +102 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_editing.md +4 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +1 -1
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +2 -2
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_no_subrows.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +1 -1
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +1 -1
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.jsx +1 -1
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.jsx +1 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx +3 -1
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.jsx +1 -1
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +1 -1
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +1 -1
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +1 -1
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +1 -1
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +1 -1
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +1 -1
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -1
  29. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -1
  30. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +1 -1
  31. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +1 -1
  32. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +1 -1
  33. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_monogram.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_no_image.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.jsx +1 -1
  36. data/app/pb_kits/playbook/pb_background/docs/_background_category.jsx +2 -2
  37. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +1 -1
  38. data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +6 -2
  39. data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +1 -1
  40. data/app/pb_kits/playbook/pb_background/docs/_background_size.jsx +1 -1
  41. data/app/pb_kits/playbook/pb_background/docs/_background_status.jsx +2 -2
  42. data/app/pb_kits/playbook/pb_background/docs/_background_status_subtle.jsx +2 -2
  43. data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +1 -1
  44. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +1 -1
  45. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +1 -1
  46. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +3 -1
  47. data/app/pb_kits/playbook/pb_body/docs/_body_articles.jsx +1 -1
  48. data/app/pb_kits/playbook/pb_body/docs/_body_block.jsx +1 -1
  49. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +1 -1
  50. data/app/pb_kits/playbook/pb_body/docs/_body_styled.jsx +1 -1
  51. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +2 -1
  52. data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.jsx +1 -1
  53. data/app/pb_kits/playbook/pb_button/docs/_button_block_content.jsx +2 -1
  54. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +1 -1
  55. data/app/pb_kits/playbook/pb_button/docs/_button_form.jsx +1 -1
  56. data/app/pb_kits/playbook/pb_button/docs/_button_full_width.jsx +1 -1
  57. data/app/pb_kits/playbook/pb_button/docs/_button_hover.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_button/docs/_button_icon_options.jsx +1 -1
  59. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +1 -1
  60. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +1 -1
  61. data/app/pb_kits/playbook/pb_button/docs/_button_reaction.jsx +1 -1
  62. data/app/pb_kits/playbook/pb_button/docs/_button_size.jsx +1 -1
  63. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.jsx +3 -1
  64. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.jsx +2 -1
  65. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +1 -1
  66. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.jsx +1 -1
  67. data/app/pb_kits/playbook/pb_caption/docs/_caption_light.jsx +1 -1
  68. data/app/pb_kits/playbook/pb_card/docs/_card_background.jsx +1 -1
  69. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_error.jsx +1 -1
  70. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.jsx +2 -1
  71. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.jsx +4 -1
  72. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +1 -1
  73. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_click.jsx +1 -1
  74. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_color.jsx +1 -1
  75. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main.jsx +7 -1
  76. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon.jsx +7 -1
  77. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +1 -1
  78. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +1 -1
  79. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_no_icon.jsx +1 -1
  80. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_size.jsx +1 -1
  81. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_state.jsx +4 -1
  82. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +1 -1
  83. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +1 -1
  84. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +3 -1
  85. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +5 -1
  86. data/app/pb_kits/playbook/pb_currency/docs/_currency_null_display.jsx +1 -1
  87. data/app/pb_kits/playbook/pb_currency/docs/_currency_unstyled.jsx +3 -1
  88. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +2 -1
  89. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +4 -1
  90. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +4 -1
  91. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +2 -1
  92. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.md +3 -1
  93. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.html.erb +39 -0
  94. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.jsx +3 -1
  95. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_close.html.erb +39 -0
  96. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_close.jsx +3 -1
  97. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
  98. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_default.jsx +1 -1
  99. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_default.jsx +1 -1
  100. data/app/pb_kits/playbook/pb_detail/docs/_detail_bold.jsx +1 -1
  101. data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.jsx +1 -1
  102. data/app/pb_kits/playbook/pb_detail/docs/_detail_default.jsx +1 -1
  103. data/app/pb_kits/playbook/pb_detail/docs/_detail_styled.jsx +1 -1
  104. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.jsx +7 -8
  105. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx +3 -1
  106. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +8 -9
  107. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +8 -9
  108. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.jsx +2 -1
  109. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.jsx +2 -1
  110. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_separators.jsx +3 -1
  111. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.jsx +2 -1
  112. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx +3 -1
  113. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.jsx +3 -1
  114. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx +4 -1
  115. data/app/pb_kits/playbook/pb_docs/kit_example.rb +14 -0
  116. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_default.jsx +5 -1
  117. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers.jsx +11 -12
  118. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards.jsx +9 -10
  119. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list.jsx +4 -1
  120. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list.jsx +3 -1
  121. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +6 -1
  122. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +4 -1
  123. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +4 -1
  124. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +2 -1
  125. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +4 -1
  126. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +6 -1
  127. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +4 -1
  128. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +4 -1
  129. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx +1 -1
  130. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx +3 -1
  131. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx +1 -1
  132. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx +1 -1
  133. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +1 -1
  134. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx +1 -1
  135. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx +1 -1
  136. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.jsx +1 -1
  137. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +5 -1
  138. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_and_custom_display.jsx +7 -1
  139. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +7 -1
  140. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.jsx +7 -1
  141. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.jsx +1 -1
  142. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.jsx +7 -1
  143. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.jsx +5 -1
  144. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_hook.jsx +8 -1
  145. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +1 -1
  146. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_accept.jsx +4 -5
  147. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_custom_description.jsx +3 -1
  148. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_custom_message.jsx +3 -5
  149. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_default.jsx +3 -5
  150. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_max_size.jsx +5 -6
  151. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +6 -1
  152. data/app/pb_kits/playbook/pb_filter/docs/_filter_max_height.jsx +5 -1
  153. data/app/pb_kits/playbook/pb_filter/docs/_filter_max_width.jsx +5 -1
  154. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +6 -1
  155. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +5 -1
  156. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +5 -1
  157. data/app/pb_kits/playbook/pb_filter/docs/_filter_placement.jsx +6 -1
  158. data/app/pb_kits/playbook/pb_filter/docs/_filter_popover_props.jsx +5 -1
  159. data/app/pb_kits/playbook/pb_flex/docs/_flex_align.jsx +3 -1
  160. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +3 -1
  161. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +2 -1
  162. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.jsx +3 -1
  163. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.jsx +3 -1
  164. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +3 -1
  165. data/app/pb_kits/playbook/pb_flex/docs/_flex_justify.jsx +3 -1
  166. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +3 -1
  167. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +3 -1
  168. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +4 -1
  169. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
  170. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  171. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_colors.jsx +3 -1
  172. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +5 -1
  173. data/app/pb_kits/playbook/pb_gantt_chart/docs/_gantt_chart_default.jsx +1 -1
  174. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +1 -1
  175. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +9 -10
  176. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +1 -1
  177. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +1 -1
  178. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +1 -1
  179. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +1 -1
  180. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +3 -1
  181. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +1 -1
  182. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +4 -1
  183. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +1 -1
  184. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +1 -1
  185. data/app/pb_kits/playbook/pb_hashtag/docs/_hashtag_default.jsx +1 -1
  186. data/app/pb_kits/playbook/pb_hashtag/docs/_hashtag_link.jsx +1 -1
  187. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.jsx +1 -1
  188. data/app/pb_kits/playbook/pb_icon_button/_icon_button.tsx +1 -1
  189. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.jsx +1 -1
  190. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.jsx +3 -1
  191. data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -1
  192. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes.jsx +1 -1
  193. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +1 -1
  194. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.jsx +1 -1
  195. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.jsx +1 -1
  196. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.jsx +1 -1
  197. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_default.jsx +1 -1
  198. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details.jsx +1 -1
  199. data/app/pb_kits/playbook/pb_label_value/docs/_label_value_details_examples.jsx +3 -1
  200. data/app/pb_kits/playbook/pb_legend/docs/_legend_colors.jsx +1 -1
  201. data/app/pb_kits/playbook/pb_legend/docs/_legend_custom_colors.jsx +1 -1
  202. data/app/pb_kits/playbook/pb_legend/docs/_legend_prefix.jsx +1 -1
  203. data/app/pb_kits/playbook/pb_lightbox/docs/_lightbox_compound_component.jsx +2 -1
  204. data/app/pb_kits/playbook/pb_lightbox/docs/_lightbox_current_photo.jsx +6 -1
  205. data/app/pb_kits/playbook/pb_lightbox/docs/_lightbox_custom_header.jsx +4 -1
  206. data/app/pb_kits/playbook/pb_lightbox/docs/_lightbox_default.jsx +2 -1
  207. data/app/pb_kits/playbook/pb_lightbox/docs/_lightbox_multiple.jsx +2 -1
  208. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +1 -1
  209. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +1 -1
  210. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +2 -1
  211. data/app/pb_kits/playbook/pb_link/docs/_link_color.jsx +1 -1
  212. data/app/pb_kits/playbook/pb_link/docs/_link_disabled.jsx +1 -1
  213. data/app/pb_kits/playbook/pb_link/docs/_link_icon.jsx +1 -1
  214. data/app/pb_kits/playbook/pb_link/docs/_link_tag.jsx +1 -1
  215. data/app/pb_kits/playbook/pb_link/docs/_link_target.jsx +1 -1
  216. data/app/pb_kits/playbook/pb_link/docs/_link_underline.jsx +1 -1
  217. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +2 -1
  218. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +5 -1
  219. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +2 -1
  220. data/app/pb_kits/playbook/pb_message/docs/_message_timestamp.jsx +1 -1
  221. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +32 -5
  222. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.jsx +91 -0
  223. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.md +1 -0
  224. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +1 -0
  225. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
  226. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +1 -1
  227. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.jsx +1 -1
  228. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.jsx +1 -1
  229. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_size.jsx +2 -1
  230. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +2 -1
  231. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom.jsx +4 -1
  232. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_item_spacing.jsx +2 -1
  233. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_no_icon.jsx +2 -1
  234. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_with_all_options.jsx +2 -1
  235. data/app/pb_kits/playbook/pb_nav/docs/_nav_with_font_control.jsx +2 -1
  236. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.jsx +4 -4
  237. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_hide_scroll_bar.jsx +5 -6
  238. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.jsx +4 -6
  239. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.jsx +4 -1
  240. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +4 -6
  241. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change.jsx +2 -1
  242. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.jsx +3 -1
  243. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.jsx +4 -1
  244. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_confirmation.jsx +2 -1
  245. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +6 -1
  246. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.jsx +5 -1
  247. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +6 -0
  248. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_access_input_element.jsx +3 -1
  249. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_clear_field.jsx +3 -1
  250. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_default.html.erb +1 -1
  251. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_default.jsx +1 -1
  252. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.jsx +3 -1
  253. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_hidden_inputs.html.erb +5 -0
  254. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_hidden_inputs.md +1 -0
  255. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.jsx +1 -1
  256. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.jsx +1 -1
  257. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.jsx +1 -1
  258. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +4 -1
  259. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +3 -1
  260. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
  261. data/app/pb_kits/playbook/pb_popover/docs/_popover_actionable_content.jsx +6 -7
  262. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +4 -5
  263. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +5 -6
  264. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +7 -8
  265. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +5 -6
  266. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +4 -5
  267. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_align.jsx +1 -1
  268. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_default.jsx +1 -1
  269. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_flex.jsx +3 -1
  270. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_muted.jsx +1 -1
  271. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_value.jsx +1 -1
  272. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_variants.jsx +1 -1
  273. data/app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_width.jsx +1 -1
  274. data/app/pb_kits/playbook/pb_radio/docs/_radio_alignment.jsx +3 -1
  275. data/app/pb_kits/playbook/pb_radio/docs/_radio_error.jsx +1 -1
  276. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_default.jsx +1 -1
  277. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_preview.jsx +3 -1
  278. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx +1 -1
  279. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +1 -1
  280. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +1 -1
  281. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +1 -1
  282. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_more_extensions.jsx +1 -1
  283. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +3 -5
  284. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +1 -1
  285. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +1 -1
  286. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +2 -1
  287. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +1 -1
  288. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_disabled.jsx +1 -1
  289. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.jsx +3 -1
  290. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +4 -1
  291. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_dashed.jsx +1 -1
  292. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +1 -1
  293. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +1 -1
  294. data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +2 -1
  295. data/app/pb_kits/playbook/pb_select/docs/_select_inline.jsx +2 -1
  296. data/app/pb_kits/playbook/pb_select/docs/_select_inline_compact.jsx +2 -1
  297. data/app/pb_kits/playbook/pb_select/docs/_select_inline_show_arrow.jsx +2 -1
  298. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_error.jsx +4 -1
  299. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +1 -1
  300. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +1 -1
  301. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.jsx +2 -1
  302. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.jsx +2 -1
  303. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.jsx +1 -2
  304. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_filter.jsx +8 -1
  305. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.jsx +2 -1
  306. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.jsx +1 -2
  307. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_user.jsx +5 -1
  308. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx +1 -1
  309. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +1 -1
  310. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +1 -1
  311. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx +2 -1
  312. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +4 -1
  313. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +4 -1
  314. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +7 -1
  315. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.jsx +4 -1
  316. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.jsx +5 -1
  317. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +5 -1
  318. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +1 -1
  319. data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.jsx +1 -1
  320. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.jsx +3 -1
  321. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom.jsx +1 -1
  322. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom_radio.jsx +3 -1
  323. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx +1 -1
  324. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_disabled.jsx +1 -1
  325. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_name.jsx +3 -1
  326. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default_react.jsx +3 -1
  327. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_delay.jsx +4 -1
  328. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_icon.jsx +3 -1
  329. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_interaction.jsx +4 -1
  330. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_margin.jsx +3 -1
  331. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_show_tooltip_react.jsx +5 -1
  332. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_async_createable.jsx +1 -1
  333. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_createable.jsx +1 -1
  334. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx +1 -3
  335. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.jsx +1 -1
  336. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_highlight.jsx +6 -8
  337. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  338. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +3 -5
  339. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.jsx +3 -5
  340. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +3 -5
  341. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  342. data/app/pb_kits/playbook/pb_user/docs/_user_block_content_subtitle_react.jsx +6 -1
  343. data/app/pb_kits/playbook/pb_user/docs/_user_default.jsx +1 -1
  344. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.jsx +1 -1
  345. data/app/pb_kits/playbook/pb_user/docs/_user_size.jsx +1 -1
  346. data/app/pb_kits/playbook/pb_user/docs/_user_subtitle.jsx +1 -1
  347. data/app/pb_kits/playbook/pb_user/docs/_user_text_only.jsx +1 -1
  348. data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size.jsx +1 -1
  349. data/app/pb_kits/playbook/pb_user/docs/_user_with_territory.jsx +1 -1
  350. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_continuous.jsx +2 -1
  351. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_default.jsx +2 -1
  352. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_multi_beacon.jsx +2 -1
  353. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_beacon.jsx +2 -1
  354. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_overlay.jsx +2 -1
  355. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_styled.jsx +2 -1
  356. data/dist/chunks/_typeahead-BzyvjExg.js +22 -0
  357. data/dist/chunks/_weekday_stacked-BjRQgfjn.js +45 -0
  358. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  359. data/dist/chunks/lib-BeKPJYlk.js +29 -0
  360. data/dist/chunks/{pb_form_validation-DGhKbZtO.js → pb_form_validation-BvDxpfs-.js} +1 -1
  361. data/dist/chunks/vendor.js +1 -1
  362. data/dist/menu.yml +1 -1
  363. data/dist/playbook-doc.js +1 -1
  364. data/dist/playbook-rails-react-bindings.js +1 -1
  365. data/dist/playbook-rails.js +1 -1
  366. data/dist/playbook.css +1 -1
  367. data/lib/playbook/version.rb +1 -1
  368. metadata +15 -7
  369. data/dist/chunks/_typeahead-XZ7pSWeu.js +0 -36
  370. data/dist/chunks/_weekday_stacked-DkgblYXe.js +0 -45
  371. data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
  372. data/dist/chunks/lib-5OzNgeeu.js +0 -29
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect, useRef } from "react";
1
+ import React, { useState, useEffect, useRef, forwardRef } from "react";
2
2
  import classnames from "classnames";
3
3
  import { globalProps, GlobalProps } from "../utilities/globalProps";
4
4
  import {
@@ -23,6 +23,13 @@ import {
23
23
  getExpandedItems,
24
24
  } from "./_helper_functions";
25
25
 
26
+ interface MultiLevelSelectComponent
27
+ extends React.ForwardRefExoticComponent<
28
+ MultiLevelSelectProps & React.RefAttributes<HTMLInputElement>
29
+ > {
30
+ Options: typeof MultiLevelSelectOptions;
31
+ }
32
+
26
33
  type MultiLevelSelectProps = {
27
34
  aria?: { [key: string]: string }
28
35
  className?: string
@@ -35,6 +42,7 @@ type MultiLevelSelectProps = {
35
42
  name?: string
36
43
  returnAllSelected?: boolean
37
44
  treeData?: { [key: string]: string; }[] | any
45
+ onChange?: (event: { target: { name?: string; value: any } }) => void
38
46
  onSelect?: (prop: { [key: string]: any }) => void
39
47
  selectedIds?: string[] | any
40
48
  variant?: "multi" | "single"
@@ -42,7 +50,7 @@ type MultiLevelSelectProps = {
42
50
  pillColor?: "primary" | "neutral" | "success" | "warning" | "error" | "info" | "data_1" | "data_2" | "data_3" | "data_4" | "data_5" | "data_6" | "data_7" | "data_8" | "windows" | "siding" | "roofing" | "doors" | "gutters" | "solar" | "insulation" | "accessories",
43
51
  } & GlobalProps
44
52
 
45
- const MultiLevelSelect = (props: MultiLevelSelectProps) => {
53
+ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>((props) => {
46
54
  const {
47
55
  aria = {},
48
56
  className,
@@ -55,6 +63,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
55
63
  name,
56
64
  returnAllSelected = false,
57
65
  treeData,
66
+ onChange = () => null,
58
67
  onSelect = () => null,
59
68
  selectedIds,
60
69
  variant = "multi",
@@ -287,8 +296,10 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
287
296
  // Logic for removing items from returnArray or defaultReturn when pills clicked
288
297
  if (returnAllSelected) {
289
298
  onSelect(getCheckedItems(updatedTree));
299
+ onChange({ target: { name, value: getCheckedItems(updatedTree) } });
290
300
  } else {
291
301
  onSelect(getDefaultCheckedItems(updatedTree));
302
+ onChange({ target: { name, value: getDefaultCheckedItems(updatedTree) } });
292
303
  }
293
304
  };
294
305
 
@@ -314,8 +325,10 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
314
325
  const updatedTree = changeItem(filtered[0], check);
315
326
  if (returnAllSelected) {
316
327
  onSelect(getCheckedItems(updatedTree));
328
+ onChange({ target: { name, value: getCheckedItems(updatedTree) } });
317
329
  } else {
318
330
  onSelect(getDefaultCheckedItems(updatedTree));
331
+ onChange({ target: { name, value: getDefaultCheckedItems(updatedTree) } });
319
332
  }
320
333
  };
321
334
 
@@ -348,6 +361,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
348
361
  setIsDropdownClosed(true);
349
362
 
350
363
  onSelect(selectedItem);
364
+ onChange({ target: { name, value: selectedItem } });
351
365
  };
352
366
 
353
367
  // Single select: reset the tree state upon typing
@@ -389,12 +403,12 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
389
403
  // Rendering formattedData to UI based on typeahead
390
404
  const renderNestedOptions = (items: { [key: string]: string; }[] | any ) => {
391
405
  const hasOptionsChild = React.Children.toArray(props.children).some(
392
- (child: any) => child.type === MultiLevelSelect.Options
406
+ (child) => React.isValidElement(child) && child.type === MultiLevelSelect.Options
393
407
  );
394
408
 
395
409
  if (hasOptionsChild) {
396
410
  return React.Children.map(props.children, (child) => {
397
- if (child.type === MultiLevelSelect.Options) {
411
+ if (React.isValidElement(child) && child.type === MultiLevelSelect.Options) {
398
412
  return React.cloneElement(child, { items });
399
413
  }
400
414
  return null;
@@ -459,6 +473,18 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
459
473
  ))
460
474
  : null}
461
475
 
476
+ {!returnAllSelected
477
+ ? defaultReturn.map((item) => (
478
+ <input
479
+ disabled={disabled}
480
+ key={item.id}
481
+ name={`${name}[]`}
482
+ type="hidden"
483
+ value={item.id}
484
+ />
485
+ ))
486
+ : null}
487
+
462
488
  {returnAllSelected &&
463
489
  returnedArray.length !== 0 &&
464
490
  inputDisplay === "pills"
@@ -547,8 +573,9 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
547
573
  </MultiLevelSelectContext.Provider>
548
574
  </div>
549
575
  );
550
- };
576
+ }) as MultiLevelSelectComponent;
551
577
 
578
+ MultiLevelSelect.displayName = "MultiLevelSelect";
552
579
  MultiLevelSelect.Options = MultiLevelSelectOptions;
553
580
 
554
581
  export default MultiLevelSelect;
@@ -0,0 +1,91 @@
1
+ import React from "react"
2
+ import MultiLevelSelect from "../_multi_level_select"
3
+ import { useForm } from "react-hook-form"
4
+
5
+ const treeData = [
6
+ {
7
+ label: "Power Home Remodeling",
8
+ value: "Power Home Remodeling",
9
+ id: "powerhome1",
10
+ expanded: true,
11
+ children: [
12
+ {
13
+ label: "People",
14
+ value: "People",
15
+ id: "people1",
16
+ expanded: true,
17
+ children: [
18
+ {
19
+ label: "Talent Acquisition",
20
+ value: "Talent Acquisition",
21
+ id: "talent1",
22
+ },
23
+ {
24
+ label: "Business Affairs",
25
+ value: "Business Affairs",
26
+ id: "business1",
27
+ children: [
28
+ {
29
+ label: "Initiatives",
30
+ value: "Initiatives",
31
+ id: "initiative1",
32
+ },
33
+ {
34
+ label: "Learning & Development",
35
+ value: "Learning & Development",
36
+ id: "development1",
37
+ },
38
+ ],
39
+ },
40
+ {
41
+ label: "People Experience",
42
+ value: "People Experience",
43
+ id: "experience1",
44
+ },
45
+ ],
46
+ },
47
+ {
48
+ label: "Contact Center",
49
+ value: "Contact Center",
50
+ id: "contact1",
51
+ children: [
52
+ {
53
+ label: "Appointment Management",
54
+ value: "Appointment Management",
55
+ id: "appointment1",
56
+ },
57
+ {
58
+ label: "Customer Service",
59
+ value: "Customer Service",
60
+ id: "customer1",
61
+ },
62
+ {
63
+ label: "Energy",
64
+ value: "Energy",
65
+ id: "energy1",
66
+ },
67
+ ],
68
+ },
69
+ ],
70
+ },
71
+ ]
72
+
73
+ const MultiLevelSelectReactHook = (props) => {
74
+ const { register, watch } = useForm()
75
+ const selectedItems = watch("departments")
76
+ selectedItems && console.log("Selected Items", selectedItems)
77
+
78
+ return (
79
+ <div>
80
+ <MultiLevelSelect
81
+ id="multiselect-default"
82
+ marginBottom="md"
83
+ treeData={treeData}
84
+ {...register("departments")}
85
+ {...props}
86
+ />
87
+ </div>
88
+ )
89
+ }
90
+
91
+ export default MultiLevelSelectReactHook
@@ -0,0 +1 @@
1
+ You can pass `react-hook-form` props to the MultiLevelSelect kit. Check your console to see the full data selected from this example.
@@ -12,6 +12,7 @@ examples:
12
12
 
13
13
  react:
14
14
  - multi_level_select_default: Default
15
+ - multi_level_select_react_hook: React Hook
15
16
  - multi_level_select_single: Single Select
16
17
  - multi_level_select_single_children_only: Single Select w/ Hidden Radios
17
18
  - multi_level_select_return_all_selected: Return All Selected
@@ -7,3 +7,4 @@ export { default as MultiLevelSelectColor } from './_multi_level_select_color.js
7
7
  export { default as MultiLevelSelectWithChildren } from './_multi_level_select_with_children.jsx'
8
8
  export { default as MultiLevelSelectWithChildrenWithRadios } from './_multi_level_select_with_children_with_radios.jsx'
9
9
  export { default as MultiLevelSelectDisabled } from './_multi_level_select_disabled.jsx'
10
+ export { default as MultiLevelSelectReactHook } from './_multi_level_select_react_hook.jsx'
@@ -40,7 +40,7 @@ module Playbook
40
40
  treeData: tree_data,
41
41
  returnAllSelected: return_all_selected,
42
42
  selectedIds: selected_ids,
43
- input_name: input_name,
43
+ inputName: input_name,
44
44
  variant: variant,
45
45
  pillColor: pill_color,
46
46
  wrapped: wrapped,
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { MultipleUsers } from 'playbook-ui'
2
+ import MultipleUsers from '../../pb_multiple_users/_multiple_users'
3
3
 
4
4
  const MultipleUsersDefault = (props) => {
5
5
  return (
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { MultipleUsers } from 'playbook-ui'
2
+ import MultipleUsers from '../../pb_multiple_users/_multiple_users'
3
3
 
4
4
  const MultipleUsersReverse = (props) => {
5
5
  return (
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { Body, MultipleUsers } from 'playbook-ui'
2
+ import Body from '../../pb_body/_body'
3
+ import MultipleUsers from '../../pb_multiple_users/_multiple_users'
3
4
 
4
5
  const MultipleUsersSize = (props) => {
5
6
  return (
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { Nav, NavItem } from 'playbook-ui'
2
+ import Nav from '../../pb_nav/_nav'
3
+ import NavItem from '../../pb_nav/_item'
3
4
 
4
5
  const CollapsibleNav = (props) => {
5
6
  return (
@@ -1,5 +1,8 @@
1
1
  import React from "react"
2
- import { Nav, NavItem, useCollapsible } from "playbook-ui"
2
+
3
+ import Nav from '../../pb_nav/_nav'
4
+ import NavItem from '../../pb_nav/_item'
5
+ import useCollapsible from '../../pb_collapsible/useCollapsible'
3
6
 
4
7
  const CollapsibleNavCustom = (props) => {
5
8
  const navItems = ["Overview", "Albums", "Similar Artists"]
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { Nav, NavItem } from 'playbook-ui'
2
+ import Nav from '../../pb_nav/_nav'
3
+ import NavItem from '../../pb_nav/_item'
3
4
 
4
5
  const CollapsibleNavItemSpacing = (props) => {
5
6
  return (
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { Nav, NavItem } from 'playbook-ui'
2
+ import Nav from '../../pb_nav/_nav'
3
+ import NavItem from '../../pb_nav/_item'
3
4
 
4
5
  const CollapsibleNavNoIcon = (props) => {
5
6
  return (
@@ -1,5 +1,6 @@
1
1
  import React from "react"
2
- import { Nav, NavItem } from "playbook-ui"
2
+ import Nav from '../../pb_nav/_nav'
3
+ import NavItem from '../../pb_nav/_item'
3
4
 
4
5
  const CollapsibleNavWithAllOptions = (props) => {
5
6
  const navItems = ["Overview", "Albums", "Similar Artists"]
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { Nav, NavItem } from 'playbook-ui'
2
+ import Nav from '../../pb_nav/_nav'
3
+ import NavItem from '../../pb_nav/_item'
3
4
 
4
5
  const NavWithFontControl = (props) => {
5
6
  return (
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
- import {
3
- Overlay,
4
- Table,
5
- } from 'playbook-ui'
2
+
3
+ import Overlay from '../../pb_overlay/_overlay'
4
+ import Table from '../../pb_table/_table'
5
+
6
6
 
7
7
  const TableExample = () => {
8
8
  return (
@@ -1,10 +1,9 @@
1
1
  import React from 'react'
2
- import {
3
- Overlay,
4
- Card,
5
- Flex,
6
- FlexItem,
7
- } from 'playbook-ui'
2
+
3
+ import Overlay from '../../pb_overlay/_overlay'
4
+ import Card from '../../pb_card/_card'
5
+ import Flex from '../../pb_flex/_flex'
6
+ import FlexItem from '../../pb_flex/_flex_item'
8
7
 
9
8
  const InlineCardsExample = () => {
10
9
  return (
@@ -1,10 +1,8 @@
1
1
  import React from 'react'
2
- import {
3
- Overlay,
4
- Card,
5
- Flex,
6
- FlexItem,
7
- } from 'playbook-ui'
2
+ import Overlay from '../../pb_overlay/_overlay'
3
+ import Card from '../../pb_card/_card'
4
+ import Flex from '../../pb_flex/_flex'
5
+ import FlexItem from '../../pb_flex/_flex_item'
8
6
 
9
7
  const InlineCardsExample = () => {
10
8
  return (
@@ -1,6 +1,9 @@
1
1
  /* eslint-disable react/no-multi-comp */
2
2
  import React, { useState } from "react";
3
- import { Overlay, Table, Button } from "playbook-ui";
3
+
4
+ import Overlay from '../../pb_overlay/_overlay'
5
+ import Button from '../../pb_button/_button'
6
+ import Table from '../../pb_table/_table'
4
7
 
5
8
  const TableExample = () => {
6
9
  return (
@@ -1,10 +1,8 @@
1
1
  import React, { forwardRef } from 'react'
2
- import {
3
- Overlay,
4
- Card,
5
- Flex,
6
- FlexItem,
7
- } from 'playbook-ui'
2
+ import Overlay from '../../pb_overlay/_overlay'
3
+ import Card from '../../pb_card/_card'
4
+ import Flex from '../../pb_flex/_flex'
5
+ import FlexItem from '../../pb_flex/_flex_item'
8
6
 
9
7
  const InlineCardsExample = forwardRef(function InlineCardsExample(ref) {
10
8
  return (
@@ -1,5 +1,6 @@
1
1
  import React, { useState } from "react";
2
- import { Table, Pagination } from 'playbook-ui'
2
+ import Table from '../../pb_table/_table'
3
+ import Pagination from '../../pb_pagination/_pagination'
3
4
 
4
5
 
5
6
  import { data } from "./data";
@@ -1,6 +1,8 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
 
3
- import { Caption, Passphrase, ProgressSimple } from 'playbook-ui'
3
+ import Passphrase from '../../pb_passphrase/_passphrase'
4
+ import Caption from '../../pb_caption/_caption'
5
+ import ProgressSimple from '../../pb_progress_simple/_progress_simple'
4
6
  import zxcvbn from 'zxcvbn'
5
7
 
6
8
  const PassphraseBreached = (props) => {
@@ -1,6 +1,9 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
 
3
- import {Body, Caption, Passphrase, ProgressSimple} from 'playbook-ui'
3
+ import Body from '../../pb_body/_body'
4
+ import Passphrase from '../../pb_passphrase/_passphrase'
5
+ import Caption from '../../pb_caption/_caption'
6
+ import ProgressSimple from '../../pb_progress_simple/_progress_simple'
4
7
  import zxcvbn from 'zxcvbn'
5
8
 
6
9
  const PassphraseCommon = (props) => {
@@ -1,6 +1,7 @@
1
1
  import React, { useState } from 'react'
2
2
 
3
- import {Body, Passphrase} from 'playbook-ui'
3
+ import Body from '../../pb_body/_body'
4
+ import Passphrase from '../../pb_passphrase/_passphrase'
4
5
 
5
6
  const PassphraseConfirmation = (props) => {
6
7
  const [input, setInput] = useState('')
@@ -1,6 +1,11 @@
1
1
  import React, { useState } from 'react'
2
2
 
3
- import { Body, Caption, Passphrase, ProgressSimple, TextInput } from 'playbook-ui'
3
+ import Body from '../../pb_body/_body'
4
+ import Passphrase from '../../pb_passphrase/_passphrase'
5
+ import ProgressSimple from '../../pb_progress_simple/_progress_simple'
6
+ import Caption from '../../pb_caption/_caption'
7
+ import TextInput from '../../pb_text_input/_text_input'
8
+
4
9
  import zxcvbn from 'zxcvbn'
5
10
 
6
11
 
@@ -1,7 +1,11 @@
1
1
  import React, { useState } from 'react'
2
2
  import { useEffect } from 'react'
3
3
 
4
- import { Caption, Passphrase, ProgressSimple, TextInput} from 'playbook-ui'
4
+ import Passphrase from '../../pb_passphrase/_passphrase'
5
+ import Caption from '../../pb_caption/_caption'
6
+ import ProgressSimple from '../../pb_progress_simple/_progress_simple'
7
+ import TextInput from '../../pb_text_input/_text_input'
8
+
5
9
  import zxcvbn from 'zxcvbn'
6
10
 
7
11
  const PassphraseStrengthChange = (props) => {
@@ -23,6 +23,7 @@ type PhoneNumberInputProps = {
23
23
  data?: { [key: string]: string },
24
24
  disabled?: boolean,
25
25
  error?: string,
26
+ hiddenInputs?: boolean,
26
27
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
27
28
  id?: string,
28
29
  initialCountry?: string,
@@ -72,6 +73,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
72
73
  dark = false,
73
74
  data = {},
74
75
  disabled = false,
76
+ hiddenInputs = false,
75
77
  htmlOptions = {},
76
78
  id = "",
77
79
  initialCountry = "",
@@ -243,6 +245,10 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
243
245
  countrySearch: false,
244
246
  fixDropdownWidth: false,
245
247
  formatAsYouType: formatAsYouType,
248
+ hiddenInput: hiddenInputs ? () => ({
249
+ phone: `${name}_full`,
250
+ country: `${name}_country_code`,
251
+ }) : null,
246
252
  })
247
253
 
248
254
  itiRef.current = telInputInit;
@@ -1,5 +1,7 @@
1
1
  import React, { useEffect, useRef } from 'react'
2
- import { Body, PhoneNumberInput } from 'playbook-ui'
2
+
3
+ import Body from '../../pb_body/_body'
4
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
5
 
4
6
  const PhoneNumberInputAccessInputElement = (props) => {
5
7
  // 1. Create a ref - this accesses the kit's input element.
@@ -1,5 +1,7 @@
1
1
  import React, { useRef } from 'react'
2
- import { Button, PhoneNumberInput } from 'playbook-ui'
2
+
3
+ import Button from '../../pb_button/_button'
4
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
5
 
4
6
  const PhoneNumberInputClearField = (props) => {
5
7
  // 1. Create a ref - this accesses the kit's input element.
@@ -1,3 +1,3 @@
1
1
  <%= pb_rails("phone_number_input", props: {
2
- id: "hello"
2
+ id: "hello",
3
3
  }) %>
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PhoneNumberInput } from 'playbook-ui'
2
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
3
 
4
4
  const PhoneNumberInputDefault = (props) => (
5
5
  <>
@@ -1,5 +1,7 @@
1
1
  import React, { useState } from "react";
2
- import { PhoneNumberInput, Body } from "playbook-ui";
2
+
3
+ import Body from '../../pb_body/_body'
4
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
5
 
4
6
  const PhoneNumberInputFormat = (props) => {
5
7
  const [phoneNumber, setPhoneNumber] = useState("");
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("phone_number_input", props: {
2
+ hidden_inputs: true,
3
+ id: "hidden_inputs",
4
+ name: "hidden_inputs",
5
+ }) %>
@@ -0,0 +1 @@
1
+ The `hidden_inputs` boolean prop generates two hidden input fields, {field_name}_full and {field_name}_country_code. The value passed when the form is submitted contains the full phone number including the country code. Because it requires the submission of a form to function, only use this prop on Rails phone number elements within html form tags `<form>/<form>` or [pb_forms](https://playbook.powerapp.cloud/kits/form). Read the [intl-tel-input](https://intl-tel-input.com/examples/hidden-input.html) docs for more information.
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PhoneNumberInput } from 'playbook-ui'
2
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
3
 
4
4
  const PhoneNumberInitialCountry = (props) => (
5
5
  <>
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PhoneNumberInput } from 'playbook-ui'
2
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
3
 
4
4
  const PhoneNumberInputOnlyCountries = (props) => (
5
5
  <>
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PhoneNumberInput } from 'playbook-ui'
2
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
3
 
4
4
  const PhoneNumberInputPreferredCountries = (props) => (
5
5
  <>
@@ -1,5 +1,8 @@
1
1
  import React, { useEffect, useState } from "react";
2
- import { Button, FixedConfirmationToast, PhoneNumberInput } from "playbook-ui";
2
+
3
+ import Button from '../../pb_button/_button'
4
+ import FixedConfirmationToast from '../../pb_fixed_confirmation_toast/_fixed_confirmation_toast'
5
+ import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
3
6
 
4
7
  const PhoneNumberInputValidation = (props) => {
5
8
  const [formErrors, setFormErrors] = useState("");
@@ -16,4 +16,6 @@ examples:
16
16
  - phone_number_input_initial_country: Initial Country
17
17
  - phone_number_input_only_countries: Limited Countries
18
18
  - phone_number_input_validation: Form Validation
19
- - phone_number_input_format: Format as You Type
19
+ - phone_number_input_format: Format as You Type
20
+ - phone_number_input_hidden_inputs: Hidden Inputs
21
+
@@ -23,6 +23,8 @@ module Playbook
23
23
  default: ""
24
24
  prop :format_as_you_type, type: Playbook::Props::Boolean,
25
25
  default: false
26
+ prop :hidden_inputs, type: Playbook::Props::Boolean,
27
+ default: false
26
28
 
27
29
  def classname
28
30
  generate_classname("pb_phone_number_input")
@@ -35,6 +37,7 @@ module Playbook
35
37
  disabled: disabled,
36
38
  error: error,
37
39
  formatAsYouType: format_as_you_type,
40
+ hiddenInputs: hidden_inputs,
38
41
  initialCountry: initial_country,
39
42
  label: label,
40
43
  name: name,
@@ -1,11 +1,10 @@
1
1
  import React, { useState } from 'react'
2
- import {
3
- Body,
4
- Button,
5
- CircleIconButton,
6
- Flex,
7
- PbReactPopover,
8
- } from 'playbook-ui'
2
+
3
+ import Body from '../../pb_body/_body'
4
+ import Button from '../../pb_button/_button'
5
+ import CircleIconButton from '../../pb_circle_icon_button/_circle_icon_button'
6
+ import Flex from '../../pb_flex/_flex'
7
+ import PbReactPopover from '../../pb_popover/_popover'
9
8
 
10
9
  const PopoverActionableContent = (props) => {
11
10
  const [showPopover, setShowPopover] = useState(false)
@@ -1,9 +1,8 @@
1
1
  import React, { useState } from 'react'
2
- import {
3
- Button,
4
- Flex,
5
- PbReactPopover,
6
- } from 'playbook-ui'
2
+
3
+ import Button from '../../pb_button/_button'
4
+ import Flex from '../../pb_flex/_flex'
5
+ import PbReactPopover from '../../pb_popover/_popover'
7
6
 
8
7
  const PopoverClose = (props) => {
9
8
  const [showInsidePopover, setInsideShowPopover] = useState(false)