playbook_ui 15.3.0.pre.alpha.play262912095 → 15.3.0.pre.rc.0

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 (228) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +5 -5
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +1 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -3
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +3 -18
  6. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +14 -71
  7. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +0 -3
  8. data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +4 -4
  10. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +3 -12
  11. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  12. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +5 -127
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +1 -3
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +1 -1
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +1 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +1 -3
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -3
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers.jsx +1 -1
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -3
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -3
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +0 -28
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +2 -11
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.jsx +1 -9
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.md +1 -1
  29. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +1 -4
  30. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md +2 -3
  31. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
  32. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
  33. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
  34. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +1 -1
  35. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +1 -1
  36. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +1 -1
  37. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -3
  38. data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +2 -2
  39. data/app/pb_kits/playbook/pb_advanced_table/index.js +8 -12
  40. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +2 -2
  41. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
  42. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
  43. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -3
  44. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +6 -79
  45. data/app/pb_kits/playbook/pb_background/background.html.erb +2 -10
  46. data/app/pb_kits/playbook/pb_background/docs/_background_category.md +1 -1
  47. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +4 -4
  48. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +0 -4
  49. data/app/pb_kits/playbook/pb_card/docs/_card_background.md +1 -1
  50. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  51. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
  52. data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -1
  53. data/app/pb_kits/playbook/pb_currency/_currency.tsx +7 -20
  54. data/app/pb_kits/playbook/pb_currency/currency.rb +8 -35
  55. data/app/pb_kits/playbook/pb_currency/currency.test.js +0 -47
  56. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +1 -1
  57. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -2
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
  60. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_quick_pick_styles.scss +30 -11
  61. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -1
  62. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +1 -1
  63. data/app/pb_kits/playbook/pb_filter/docs/_filter_max_width.md +1 -1
  64. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +1 -0
  65. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +3 -5
  66. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +0 -2
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -4
  68. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +0 -10
  69. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +1 -1
  70. data/app/pb_kits/playbook/pb_form/formHelper.js +1 -1
  71. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_rails.md +1 -1
  72. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_react.md +1 -1
  73. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.md +1 -1
  74. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.md +1 -1
  75. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +14 -7
  76. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +15 -6
  77. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.md +1 -1
  78. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_item_spacing.md +1 -1
  79. data/app/pb_kits/playbook/pb_nav/docs/_nav_with_spacing_control.md +1 -1
  80. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +1 -1
  81. data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +6 -8
  82. data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +10 -7
  83. data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +1 -73
  84. data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
  85. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +10 -7
  86. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +0 -47
  87. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +6 -25
  88. data/app/pb_kits/playbook/pb_pill/docs/_description.md +1 -1
  89. data/app/pb_kits/playbook/pb_popover/_popover.tsx +34 -69
  90. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -1
  91. data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -1
  92. data/app/pb_kits/playbook/pb_popover/popover.test.js +0 -80
  93. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +2 -41
  94. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +0 -1
  95. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +20 -60
  96. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +0 -36
  97. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_description.md +1 -1
  98. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +2 -8
  99. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -6
  100. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +1 -127
  101. data/app/pb_kits/playbook/pb_section_separator/docs/_description.md +1 -1
  102. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +0 -29
  103. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius_rails.md +1 -1
  104. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius_react.md +1 -1
  105. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.md +1 -1
  106. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +1 -1
  107. data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +1 -1
  108. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
  109. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -1
  110. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -2
  111. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +1 -76
  112. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +2 -85
  113. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.md +1 -1
  114. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -4
  115. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +0 -2
  116. data/app/pb_kits/playbook/tokens/_positioning.scss +0 -1
  117. data/app/pb_kits/playbook/utilities/_positioning.scss +1 -6
  118. data/app/pb_kits/playbook/utilities/globalProps.ts +1 -3
  119. data/dist/chunks/{_line_graph-CqE0-dq5.js → _line_graph-DY4PK6AH.js} +1 -1
  120. data/dist/chunks/_typeahead-fQDb_yVO.js +6 -0
  121. data/dist/chunks/{_weekday_stacked-W1kKx2Gl.js → _weekday_stacked-D_bGbWtk.js} +3 -3
  122. data/dist/chunks/{lib-CGxXTQ75.js → lib-QZuu1ltS.js} +1 -1
  123. data/dist/chunks/{pb_form_validation-DebqlUKZ.js → pb_form_validation-CleM960_.js} +1 -1
  124. data/dist/chunks/vendor.js +1 -1
  125. data/dist/menu.yml +0 -12
  126. data/dist/playbook-doc.js +2 -2
  127. data/dist/playbook-rails-react-bindings.js +1 -1
  128. data/dist/playbook-rails.js +1 -1
  129. data/dist/playbook.css +1 -1
  130. data/lib/playbook/pb_forms_helper.rb +6 -7
  131. data/lib/playbook/version.rb +2 -2
  132. data/lib/playbook/z_index.rb +1 -1
  133. metadata +8 -101
  134. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +0 -43
  135. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +0 -1
  136. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +0 -51
  137. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +0 -1
  138. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +0 -40
  139. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +0 -1
  140. data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading_empty_children.js +0 -42
  141. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.md +0 -1
  142. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +0 -3
  143. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +0 -3
  144. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +0 -3
  145. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +0 -69
  146. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +0 -3
  147. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +0 -12
  148. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +0 -24
  149. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +0 -5
  150. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +0 -45
  151. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +0 -119
  152. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +0 -1
  153. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +0 -5
  154. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +0 -17
  155. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +0 -12
  156. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +0 -24
  157. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +0 -23
  158. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +0 -37
  159. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +0 -40
  160. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +0 -56
  161. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +0 -64
  162. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +0 -27
  163. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +0 -40
  164. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +0 -1
  165. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +0 -19
  166. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +0 -65
  167. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +0 -3
  168. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +0 -14
  169. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +0 -27
  170. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +0 -39
  171. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +0 -58
  172. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +0 -1
  173. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +0 -29
  174. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +0 -11
  175. data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +0 -91
  176. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +0 -1
  177. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +0 -25
  178. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +0 -80
  179. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +0 -3
  180. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +0 -61
  181. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +0 -3
  182. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +0 -34
  183. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +0 -52
  184. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +0 -5
  185. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +0 -34
  186. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +0 -45
  187. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +0 -47
  188. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +0 -64
  189. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +0 -3
  190. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +0 -24
  191. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +0 -37
  192. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +0 -39
  193. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +0 -45
  194. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +0 -86
  195. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +0 -116
  196. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +0 -11
  197. data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +0 -20
  198. data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +0 -6
  199. data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +0 -125
  200. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +0 -1
  201. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +0 -25
  202. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +0 -110
  203. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +0 -68
  204. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to_react.md +0 -1
  205. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +0 -38
  206. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +0 -1
  207. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +0 -34
  208. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +0 -1
  209. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +0 -37
  210. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +0 -1
  211. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +0 -37
  212. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +0 -38
  213. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +0 -1
  214. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +0 -69
  215. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +0 -1
  216. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.html.erb +0 -63
  217. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.jsx +0 -89
  218. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_rails.md +0 -4
  219. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_react.md +0 -3
  220. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.html.erb +0 -64
  221. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.jsx +0 -70
  222. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.md +0 -1
  223. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.html.erb +0 -102
  224. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.md +0 -1
  225. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.jsx +0 -103
  226. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.md +0 -1
  227. data/dist/chunks/_typeahead-3ZAbZUqU.js +0 -6
  228. /data/app/pb_kits/playbook/pb_popover/docs/{_popover_append_to_rails.md → _popover_append_to.md} +0 -0
@@ -1 +1 @@
1
- The `itemSpacing` prop can optionally be applied to the `Nav` parent element and accepts an object through which any of our Spacing ([padding](https://playbook.powerapp.cloud/global_props/padding), [margin](https://playbook.powerapp.cloud/global_props/margin)) global prop values can be passed as an object. All spacing values passed to `itemSpacing` will be applied to all navItems within the nav. Spacing (padding, margin) global props can still be used on nested navItems in conjunction with `itenSpacing` on the Nav for customized control. Any Spacing (padding,margin) global props applied directly to a navItem will override any competing `itemSpacing` value.
1
+ The `itemSpacing` prop can optionally be applied to the `Nav` parent element and accepts an object through which any of our [Spacing](https://playbook.powerapp.cloud/visual_guidelines/spacing) (padding, margin) global prop values can be passed as an object. All spacing values passed to `itemSpacing` will be applied to all navItems within the nav. Spacing (padding, margin) global props can still be used on nested navItems in conjunction with `itenSpacing` on the Nav for customized control. Any Spacing (padding,margin) global props applied directly to a navItem will override any competing `itemSpacing` value.
@@ -1 +1 @@
1
- All Nav variants' navItems accept our global Spacing ([padding](https://playbook.powerapp.cloud/global_props/padding), [margin](https://playbook.powerapp.cloud/global_props/margin)) props for custom spacing requirements. This example uses paddingY="xxs" and margin="none" on the bold variant to show this in action!
1
+ All Nav variants' navItems accept our [global Spacing](https://playbook.powerapp.cloud/visual_guidelines/spacing) (padding, margin) props for custom spacing requirements. This example uses paddingY="xxs" and margin="none" on the bold variant to show this in action!
@@ -2,4 +2,4 @@ The optional `layout` prop accepts the `position` and `size` of the overlay as a
2
2
 
3
3
  The `position` key accepts `bottom` (default), `top`, `y` (for both top and bottom) `right`, `left`, or `x` (for both left and right), which sets the side(s) where the `color` overlay starts. The direction of the overlay is always toward the opposite side of the position. For example, the default position of `bottom` starts the overlay on the bottom edge of your container and extends it toward the opposite side: the top.
4
4
 
5
- The `size` value is `full` (100%) by default, but accepts our spacing tokens([padding](https://playbook.powerapp.cloud/global_props/padding), [margin](https://playbook.powerapp.cloud/global_props/margin)) or a percentage value as a string, and literally translates to how much of the container is covered by the overlay(s).
5
+ The `size` value is `full` (100%) by default, but accepts our [spacing tokens](https://playbook.powerapp.cloud/visual_guidelines/spacing) or a percentage value as a string, and literally translates to how much of the container is covered by the overlay(s).
@@ -1,6 +1,6 @@
1
1
  import React, { useMemo } from "react"
2
2
  import { globalProps } from "../utilities/globalProps";
3
- import { buildAriaProps, buildDataProps, buildCss, buildHtmlProps } from "../utilities/props";
3
+ import { buildAriaProps, buildDataProps, buildHtmlProps } from "../utilities/props";
4
4
  import Highcharts from "highcharts"
5
5
  import HighchartsReact from "highcharts-react-official"
6
6
 
@@ -18,25 +18,23 @@ type PbBarGraphProps = {
18
18
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)};
19
19
  }
20
20
 
21
- const PbBarGraph = ( props: PbBarGraphProps): React.ReactElement => {
22
- const {
21
+ const PbBarGraph = ({
23
22
  aria = {},
24
23
  data = {},
25
24
  id,
26
25
  htmlOptions = {},
27
26
  options,
28
- className,
29
- } = props
27
+ className = "pb_pb_bar_graph",
28
+ }: PbBarGraphProps): React.ReactElement => {
30
29
 
31
30
  const ariaProps = buildAriaProps(aria);
32
31
  const dataProps = buildDataProps(data)
33
32
  const htmlProps = buildHtmlProps(htmlOptions);
34
- const classes = classnames(buildCss('pb_pb_bar_graph'), globalProps(props), className)
35
33
 
36
34
  const mergedOptions = useMemo(() => {
37
35
  if (!options || typeof options !== "object") {
38
36
  // eslint-disable-next-line no-console
39
- console.error("❌ Invalid options passed to <PbBarGraph />", options)
37
+ console.error("❌ Invalid options passed to <BarGraph />", options)
40
38
  return {}
41
39
  }
42
40
 
@@ -48,7 +46,7 @@ const {
48
46
  <div>
49
47
  <HighchartsReact
50
48
  containerProps={{
51
- className: classnames(classes),
49
+ className: classnames(globalProps, className),
52
50
  id: id,
53
51
  ...ariaProps,
54
52
  ...dataProps,
@@ -4,21 +4,24 @@ module Playbook
4
4
  module PbPbBarGraph
5
5
  class PbBarGraph < ::Playbook::KitBase
6
6
  prop :options, default: {}
7
+ prop :container_props, default: {}
7
8
 
8
9
  def react_props
9
10
  {
10
- className: classname,
11
- data: data,
12
11
  options: options,
13
- id: id,
12
+ containerProps: container_props_hash,
14
13
  }
15
14
  end
16
15
 
16
+ def container_props_hash
17
+ container_props.merge({
18
+ id: id,
19
+ className: classname,
20
+ }).compact
21
+ end
22
+
17
23
  def classname
18
- # Highcharts react needs classname attached to the container div,
19
- # we pass an empty string here to avoid conflicts, classname is built in the TSX
20
- # We still need generate_classnames to retain ability to pass in custom classnames or global props
21
- generate_classname("")
24
+ generate_classname("pb_pb_bar_graph")
22
25
  end
23
26
  end
24
27
  end
@@ -15,41 +15,6 @@ afterEach(() => {
15
15
  console.warn.mockRestore();
16
16
  });
17
17
 
18
- const chartData = [{
19
- name: 'Installation',
20
- data: [1475, 200, 3000, 654, 656],
21
- }, {
22
- name: 'Manufacturing',
23
- data: [4434, 524, 2320, 440, 500],
24
- }, {
25
- name: 'Sales & Distribution',
26
- data: [3387, 743, 1344, 434, 440],
27
- }, {
28
- name: 'Project Development',
29
- data: [3227, 878, 999, 780, 1000],
30
- }, {
31
- name: 'Other',
32
- data: [1111, 677, 3245, 500, 200],
33
- }]
34
-
35
- const chartOptions = {
36
- series: chartData,
37
- title: {
38
- text: 'Solar Employment Growth by Sector, 2010-2016',
39
- },
40
- subtitle: {
41
- text: 'Source: thesolarfoundation.com',
42
- },
43
- xAxis: {
44
- categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
45
- },
46
- yAxis: {
47
- title: {
48
- text: 'Number of Employees',
49
- },
50
- },
51
- }
52
-
53
18
  const testId = 'bargraph1';
54
19
 
55
20
  test('bargraph uses exact classname', () => {
@@ -58,46 +23,9 @@ test('bargraph uses exact classname', () => {
58
23
  className='super_important_class'
59
24
  data={{ testid: testId }}
60
25
  id='bar-default'
61
- options={chartOptions}
62
26
  />
63
27
  );
64
28
 
65
29
  const kit = screen.getByTestId(testId);
66
30
  expect(kit).toHaveClass('super_important_class');
67
- });
68
-
69
- test('Kit to apply base classname', () => {
70
- render(
71
- <PbBarGraph
72
- data={{testid: testId}}
73
- options={chartOptions}
74
- />
75
- )
76
-
77
- expect(screen.getByTestId(testId)).toHaveClass('pb_pb_bar_graph')
78
- })
79
-
80
-
81
- test('Kit to apply global props', () => {
82
- render(
83
- <PbBarGraph
84
- data={{testid: testId}}
85
- margin="lg"
86
- options={chartOptions}
87
- />
88
- )
89
-
90
- expect(screen.getByTestId(testId)).toHaveClass('m_lg')
91
- })
92
-
93
- test('kit to apply id', () => {
94
- render(
95
- <PbBarGraph
96
- data={{testid: testId}}
97
- id='bar-graph-id'
98
- options={chartOptions}
99
- />
100
- )
101
-
102
- expect(screen.getByTestId(testId)).toHaveAttribute('id', 'bar-graph-id')
103
- })
31
+ });
@@ -46,7 +46,7 @@ const PbCircleChart = (props: PbCircleChartProps) => {
46
46
  <div>
47
47
  <HighchartsReact
48
48
  containerProps={{
49
- className: classnames(classes),
49
+ className: classnames(globalProps, className),
50
50
  id: id,
51
51
  ...ariaProps,
52
52
  ...dataProps,
@@ -4,21 +4,24 @@ module Playbook
4
4
  module PbPbCircleChart
5
5
  class PbCircleChart < ::Playbook::KitBase
6
6
  prop :options, default: {}
7
+ prop :container_props, default: {}
7
8
 
8
9
  def react_props
9
10
  {
10
- className: classname,
11
- data: data,
12
11
  options: options,
13
- id: id,
12
+ containerProps: container_props_hash,
14
13
  }
15
14
  end
16
15
 
16
+ def container_props_hash
17
+ container_props.merge({
18
+ id: id,
19
+ className: classname,
20
+ }).compact
21
+ end
22
+
17
23
  def classname
18
- # Highcharts react needs classname attached to the container div,
19
- # we pass an empty string here to avoid conflicts, classname is built in the TSX
20
- # We still need generate_classnames to retain ability to pass in custom classnames or global props
21
- generate_classname("")
24
+ generate_classname("pb_pb_circle_chart")
22
25
  end
23
26
  end
24
27
  end
@@ -49,50 +49,3 @@ test('Kit to exist', () => {
49
49
  expect(screen.getByTestId(testId)).toBeInTheDocument()
50
50
  })
51
51
 
52
- test('Kit to apply base classname', () => {
53
- render(
54
- <PbCircleChart
55
- data={{testid: testId}}
56
- options={chartOptions}
57
- />
58
- )
59
-
60
- expect(screen.getByTestId(testId)).toHaveClass('pb_pb_circle_chart')
61
- })
62
-
63
- test('Kit to have custom class', () => {
64
- render(
65
- <PbCircleChart
66
- className='custom-class'
67
- data={{testid: testId}}
68
- options={chartOptions}
69
- />
70
- )
71
-
72
- expect(screen.getByTestId(testId)).toHaveClass('custom-class')
73
- })
74
-
75
- test('Kit to apply global props', () => {
76
- render(
77
- <PbCircleChart
78
- data={{testid: testId}}
79
- margin="lg"
80
- options={chartOptions}
81
- />
82
- )
83
-
84
- expect(screen.getByTestId(testId)).toHaveClass('m_lg')
85
- })
86
-
87
- test('kit to apply id', () => {
88
- render(
89
- <PbCircleChart
90
- data={{testid: testId}}
91
- id='circle-chart-id'
92
- options={chartOptions}
93
- />
94
- )
95
-
96
- expect(screen.getByTestId(testId)).toHaveAttribute('id', 'circle-chart-id')
97
- })
98
-
@@ -314,18 +314,14 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
314
314
 
315
315
  const handleOnChange = (evt: React.ChangeEvent<HTMLInputElement>) => {
316
316
  if (!hasTyped) setHasTyped(true)
317
-
318
317
  setInputValue(evt.target.value)
319
-
320
318
  let phoneNumberData
321
-
322
319
  if (formatAsYouType) {
323
320
  const formattedPhoneNumberData = getCurrentSelectedData(itiRef.current, evt.target.value)
324
321
  phoneNumberData = {...formattedPhoneNumberData, number: unformatNumber(formattedPhoneNumberData.number)}
325
322
  } else {
326
323
  phoneNumberData = getCurrentSelectedData(itiRef.current, evt.target.value)
327
324
  }
328
-
329
325
  setSelectedData(phoneNumberData)
330
326
  onChange(phoneNumberData)
331
327
  isValid(itiRef.current.isValidNumber())
@@ -374,26 +370,11 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
374
370
 
375
371
  inputRef.current.addEventListener("open:countrydropdown", () => setDropDownIsOpen(true))
376
372
  inputRef.current.addEventListener("close:countrydropdown", () => setDropDownIsOpen(false))
377
-
378
- // Handle formatAsYouType with input event
379
- if (formatAsYouType) {
380
- inputRef.current.addEventListener("input", (evt: Event) => {
381
- const target = evt.target as HTMLInputElement
382
- const formattedValue = target.value
383
-
384
- // Update internal state
385
- setInputValue(formattedValue)
386
- setHasTyped(true)
387
-
388
- // Get phone number data with unformatted number
389
- const formattedPhoneNumberData = getCurrentSelectedData(telInputInit, formattedValue)
390
- const phoneNumberData = {...formattedPhoneNumberData, number: unformatNumber(formattedPhoneNumberData.number)}
391
-
392
- setSelectedData(phoneNumberData)
393
- onChange(phoneNumberData)
394
- isValid(telInputInit.isValidNumber())
395
- })
396
- }
373
+ }
374
+ if (formatAsYouType) {
375
+ inputRef.current?.addEventListener("input", (evt) => {
376
+ handleOnChange(evt as unknown as React.ChangeEvent<HTMLInputElement>);
377
+ });
397
378
  }
398
379
  }, [])
399
380
 
@@ -408,7 +389,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
408
389
  label,
409
390
  name,
410
391
  onBlur: validateErrors,
411
- onChange: formatAsYouType ? undefined : handleOnChange,
392
+ onChange: handleOnChange,
412
393
  value: inputValue
413
394
  }
414
395
 
@@ -1 +1 @@
1
- A pill uses both a keyword and a specific color to categorize an item. Each pill directly corresponds to a data color <a href="https://playbook.powerapp.cloud/global_props/colors" target="_blank">here</a>.
1
+ A pill uses both a keyword and a specific color to categorize an item. Each pill directly corresponds to a data color <a href="https://playbook.powerapp.cloud/visual_guidelines/colors" target="_blank">here</a>.
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable react/no-multi-comp */
2
- import React, { useEffect, useRef, useState } from "react";
2
+ import React, { useEffect, useState } from "react";
3
3
  import ReactDOM from "react-dom";
4
4
  import {
5
5
  Popper,
@@ -24,7 +24,6 @@ import { uniqueId } from '../utilities/object';
24
24
  type ModifiedGlobalProps = Omit<GlobalProps, 'minWidth' | 'maxHeight' | 'minHeight'>
25
25
 
26
26
  type PbPopoverProps = {
27
- appendTo?: string;
28
27
  aria?: { [key: string]: string };
29
28
  className?: string;
30
29
  closeOnClick?: "outside" | "inside" | "any";
@@ -63,25 +62,6 @@ const popoverModifiers = ({
63
62
  return offset ? modifiers.concat([POPOVER_MODIFIERS.offset]) : modifiers;
64
63
  };
65
64
 
66
- const getAppendTarget = (
67
- appendTo: string | undefined,
68
- targetId: string
69
- ): HTMLElement => {
70
- if (!appendTo || appendTo === "body") return document.body;
71
-
72
- if (appendTo === "parent") {
73
- const referenceWrapper = document.querySelector(`#reference-${targetId}`);
74
- if (referenceWrapper?.parentElement) {
75
- return referenceWrapper.parentElement;
76
- }
77
- }
78
-
79
- const selectorMatch = document.querySelector(appendTo);
80
- if (selectorMatch instanceof HTMLElement) return selectorMatch;
81
-
82
- return document.body;
83
- };
84
-
85
65
  const Popover = (props: PbPopoverProps) => {
86
66
  const {
87
67
  aria = {},
@@ -109,7 +89,7 @@ const Popover = (props: PbPopoverProps) => {
109
89
  const popoverSpacing =
110
90
  filteredGlobalProps.includes("dark") || !filteredGlobalProps
111
91
  ? "p_sm"
112
- : filteredGlobalProps
92
+ : filteredGlobalProps
113
93
  const overflowHandling = maxHeight || maxWidth ? "overflow_handling" : "";
114
94
  const zIndexStyle = zIndex ? { zIndex: zIndex } : {};
115
95
  const widthHeightStyles = () => {
@@ -133,7 +113,7 @@ const Popover = (props: PbPopoverProps) => {
133
113
 
134
114
  return (
135
115
  <Popper
136
- modifiers={popoverModifiers({ modifiers, offset: offset || false })}
116
+ modifiers={popoverModifiers({ modifiers, offset })}
137
117
  placement={placement}
138
118
  referenceElement={referenceElement}
139
119
  >
@@ -174,7 +154,6 @@ const Popover = (props: PbPopoverProps) => {
174
154
  const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
175
155
  const [targetId] = useState(uniqueId('id-'))
176
156
  const {
177
- appendTo,
178
157
  className,
179
158
  children,
180
159
  modifiers = [],
@@ -191,56 +170,42 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
191
170
  minHeight,
192
171
  minWidth,
193
172
  width,
194
- closeOnClick,
195
- shouldClosePopover = noop,
196
173
  } = props;
197
174
 
198
- // Store latest callback in a ref to avoid re-runs
199
- const shouldClosePopoverRef = useRef(shouldClosePopover);
200
-
201
- // Update ref on change
202
175
  useEffect(() => {
203
- shouldClosePopoverRef.current = shouldClosePopover;
204
- }, [shouldClosePopover]);
176
+ const { closeOnClick, shouldClosePopover = noop } = props;
205
177
 
206
- useEffect(() => {
207
178
  if (!closeOnClick) return;
208
179
 
209
- // Function to handle popover event listener and targetId.
210
- // Ensure that whenever the component is conditionally rendered
211
- // that the old listener is removed and the new listener is
212
- // updated with the targetId.
213
- const handleClick = (e: MouseEvent) => {
214
- const target = e.target as HTMLElement
215
-
216
- const targetIsPopover =
217
- target.closest("#" + targetId) !== null;
218
- const targetIsReference =
219
- target.closest("#reference-" + targetId) !== null;
180
+ document.body.addEventListener(
181
+ "click",
182
+ (e: MouseEvent) => {
183
+ const target = e.target as HTMLElement
220
184
 
221
- const shouldClose = () => {
222
- setTimeout(() => shouldClosePopoverRef.current(true), 0);
223
- }
185
+ const targetIsPopover =
186
+ target.closest("#" + targetId) !== null;
187
+ const targetIsReference =
188
+ target.closest("#reference-" + targetId) !== null;
224
189
 
225
- switch (closeOnClick) {
226
- case "outside":
227
- if (!targetIsPopover && !targetIsReference) shouldClose();
228
- break;
229
- case "inside":
230
- if (targetIsPopover) shouldClose();
231
- break;
232
- case "any":
233
- if (targetIsPopover || !targetIsPopover && !targetIsReference) shouldClose();
234
- break;
235
- }
236
- };
190
+ const shouldClose = () => {
191
+ setTimeout(() => shouldClosePopover(true), 0);
192
+ }
237
193
 
238
- document.body.addEventListener("click", handleClick, { capture: true });
239
-
240
- return () => {
241
- document.body.removeEventListener("click", handleClick, { capture: true });
242
- };
243
- }, [targetId, closeOnClick]);
194
+ switch (closeOnClick) {
195
+ case "outside":
196
+ if (!targetIsPopover && !targetIsReference) shouldClose();
197
+ break;
198
+ case "inside":
199
+ if (targetIsPopover) shouldClose();
200
+ break;
201
+ case "any":
202
+ if (targetIsPopover || !targetIsPopover && !targetIsReference) shouldClose();
203
+ break;
204
+ }
205
+ },
206
+ { capture: true }
207
+ );
208
+ }, []);
244
209
 
245
210
  const popoverComponent = (
246
211
  <Popover
@@ -281,10 +246,10 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
281
246
  {show &&
282
247
  (usePortal ? (
283
248
  <>
284
- {ReactDOM.createPortal(
285
- popoverComponent,
286
- getAppendTarget(appendTo, targetId)
287
- )}
249
+ {ReactDOM.createPortal(
250
+ popoverComponent,
251
+ document.querySelector(portal)
252
+ )}
288
253
  </>
289
254
  ) : (
290
255
  { popoverComponent }
@@ -15,4 +15,3 @@ examples:
15
15
  - popover_z_index: Set Z-Index
16
16
  - popover_scroll_height: Scroll and Height Settings
17
17
  - popover_actionable_content: With Actionable Content
18
- - popover_append_to: Append To
@@ -4,4 +4,3 @@ export { default as PopoverClose } from './_popover_close.jsx'
4
4
  export { default as PopoverZIndex } from './_popover_z_index.jsx'
5
5
  export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
6
6
  export { default as PopoverActionableContent } from './_popover_actionable_content.jsx'
7
- export { default as PopoverAppendTo } from './_popover_append_to.jsx'
@@ -159,62 +159,6 @@ const PopoverTestClicktoClose3 = () => {
159
159
  )
160
160
  };
161
161
 
162
- //Test Popover with appendTo="parent"
163
- const PopoverTestAppendToParent = () => {
164
- const [mockState, setMockState] = React.useState(false)
165
- const togglePopover = () => {
166
- setMockState(!mockState)
167
- }
168
-
169
- const popoverReference = (
170
- <Button onClick={togglePopover}
171
- text="Click Me"
172
- />
173
- );
174
- return (
175
- <div data-testid="parent-container"
176
- id="parent-container"
177
- >
178
- <PbReactPopover
179
- appendTo="parent"
180
- offset
181
- reference={popoverReference}
182
- show={mockState}
183
- >
184
- {"Appended to parent"}
185
- </PbReactPopover>
186
- </div>
187
- )
188
- };
189
-
190
- //Test Popover with appendTo CSS selector
191
- const PopoverTestAppendToSelector = () => {
192
- const [mockState, setMockState] = React.useState(false)
193
- const togglePopover = () => {
194
- setMockState(!mockState)
195
- }
196
-
197
- const popoverReference = (
198
- <Button onClick={togglePopover}
199
- text="Click Me"
200
- />
201
- );
202
- return (
203
- <div data-testid="custom-container"
204
- id="custom-container"
205
- >
206
- <PbReactPopover
207
- appendTo="#custom-container"
208
- offset
209
- reference={popoverReference}
210
- show={mockState}
211
- >
212
- {"Appended to custom container"}
213
- </PbReactPopover>
214
- </div>
215
- )
216
- };
217
-
218
162
 
219
163
  test("renders Popover", () => {
220
164
  render(<PopoverTest data={{ testid: testId}}/>)
@@ -273,28 +217,4 @@ const PopoverTestAppendToSelector = () => {
273
217
  fireEvent.click(btn);
274
218
 
275
219
  expect(kit).not.toBeInTheDocument;
276
- });
277
-
278
- test("renders Popover with appendTo parent", () => {
279
- render(<PopoverTestAppendToParent data={{ testid: testId}}/>)
280
- const btn = screen.getByText(/click me/i)
281
- fireEvent.click(btn);
282
- const kit = screen.getByText("Appended to parent");
283
- expect(kit).toBeInTheDocument();
284
-
285
- // Check that the popover is rendered inside the parent container
286
- const parentContainer = screen.getByTestId("parent-container");
287
- expect(parentContainer).toContainElement(kit);
288
- });
289
-
290
- test("renders Popover with appendTo CSS selector", () => {
291
- render(<PopoverTestAppendToSelector data={{ testid: testId}}/>)
292
- const btn = screen.getByText(/click me/i)
293
- fireEvent.click(btn);
294
- const kit = screen.getByText("Appended to custom container");
295
- expect(kit).toBeInTheDocument();
296
-
297
- // Check that the popover is rendered inside the custom container
298
- const customContainer = screen.getByTestId("custom-container");
299
- expect(customContainer).toContainElement(kit);
300
220
  });