playbook_ui 18.2.0 → 18.3.0.pre.alpha.PLAY3342advancedtablereactmulticolumnselectablerow21082

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 (466) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CollapsibleTrail.tsx +8 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +39 -8
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +62 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +24 -4
  6. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +105 -66
  7. data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +29 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +83 -5
  9. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +3 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +8 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1100 -1
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.jsx +1 -1
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.md +5 -2
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.md +3 -1
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi_select_all.jsx +82 -0
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi_select_all.md +3 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +3 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_group_separators.jsx +67 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_group_separators.md +7 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_group_separators_rails.html.erb +78 -0
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_group_separators_rails.md +3 -0
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.jsx +177 -58
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +17 -2
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +8 -1
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data_group_separators.json +328 -0
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
  29. data/app/pb_kits/playbook/pb_advanced_table/index.js +39 -2
  30. data/app/pb_kits/playbook/pb_advanced_table/kit.schema.json +44 -16
  31. data/app/pb_kits/playbook/pb_advanced_table/table_body.html.erb +2 -2
  32. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +53 -23
  33. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +1 -1
  34. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +1 -1
  35. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
  36. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +3 -1
  37. data/app/pb_kits/playbook/pb_avatar/kit.schema.json +23 -10
  38. data/app/pb_kits/playbook/pb_background/docs/_playground.json +1 -0
  39. data/app/pb_kits/playbook/pb_background/kit.schema.json +10 -3
  40. data/app/pb_kits/playbook/pb_badge/docs/_playground.json +2 -0
  41. data/app/pb_kits/playbook/pb_badge/kit.schema.json +27 -13
  42. data/app/pb_kits/playbook/pb_body/docs/_playground.json +3 -3
  43. data/app/pb_kits/playbook/pb_body/kit.schema.json +14 -5
  44. data/app/pb_kits/playbook/pb_button/_button.tsx +3 -1
  45. data/app/pb_kits/playbook/pb_button/button.rb +3 -0
  46. data/app/pb_kits/playbook/pb_button/button.test.js +154 -0
  47. data/app/pb_kits/playbook/pb_button/docs/_button_options_rails.md +5 -0
  48. data/app/pb_kits/playbook/pb_button/docs/_button_options_react.md +9 -0
  49. data/app/pb_kits/playbook/pb_button/docs/_playground.json +4 -2
  50. data/app/pb_kits/playbook/pb_button/docs/_playground.overrides.json +1 -1
  51. data/app/pb_kits/playbook/pb_button/docs/example.yml +1 -1
  52. data/app/pb_kits/playbook/pb_button/kit.schema.json +31 -27
  53. data/app/pb_kits/playbook/pb_caption/kit.schema.json +17 -7
  54. data/app/pb_kits/playbook/pb_card/docs/_playground.json +1 -0
  55. data/app/pb_kits/playbook/pb_card/kit.schema.json +2 -1
  56. data/app/pb_kits/playbook/pb_checkbox/docs/_playground.json +6 -1
  57. data/app/pb_kits/playbook/pb_checkbox/kit.schema.json +10 -5
  58. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +4 -4
  59. data/app/pb_kits/playbook/pb_collapsible/collapsible.test.js +81 -2
  60. data/app/pb_kits/playbook/pb_contact/_contact.tsx +4 -1
  61. data/app/pb_kits/playbook/pb_contact/docs/_playground.json +1 -0
  62. data/app/pb_kits/playbook/pb_contact/kit.schema.json +3 -1
  63. data/app/pb_kits/playbook/pb_copy_button/docs/_playground.json +5 -1
  64. data/app/pb_kits/playbook/pb_copy_button/kit.schema.json +10 -5
  65. data/app/pb_kits/playbook/pb_currency/docs/_playground.json +1 -1
  66. data/app/pb_kits/playbook/pb_currency/kit.schema.json +6 -2
  67. data/app/pb_kits/playbook/pb_dashboard_value/docs/_playground.json +2 -2
  68. data/app/pb_kits/playbook/pb_dashboard_value/kit.schema.json +4 -2
  69. data/app/pb_kits/playbook/pb_date/_date.tsx +3 -1
  70. data/app/pb_kits/playbook/pb_date/date.test.js +1 -1
  71. data/app/pb_kits/playbook/pb_date/docs/_playground.json +1 -0
  72. data/app/pb_kits/playbook/pb_date/kit.schema.json +17 -7
  73. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +4 -0
  74. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +4 -1
  75. data/app/pb_kits/playbook/pb_date_picker/kit.schema.json +32 -14
  76. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +3 -1
  77. data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.json +1 -0
  78. data/app/pb_kits/playbook/pb_date_range_inline/kit.schema.json +3 -1
  79. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.tsx +3 -1
  80. data/app/pb_kits/playbook/pb_date_range_stacked/kit.schema.json +1 -0
  81. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +4 -1
  82. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +1 -0
  83. data/app/pb_kits/playbook/pb_date_stacked/kit.schema.json +1 -0
  84. data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +3 -1
  85. data/app/pb_kits/playbook/pb_date_time/dateTime.test.js +1 -0
  86. data/app/pb_kits/playbook/pb_date_time/docs/_playground.json +2 -1
  87. data/app/pb_kits/playbook/pb_date_time/kit.schema.json +3 -1
  88. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +2 -1
  89. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.json +1 -0
  90. data/app/pb_kits/playbook/pb_date_time_stacked/kit.schema.json +3 -1
  91. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.tsx +3 -1
  92. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -0
  93. data/app/pb_kits/playbook/pb_date_year_stacked/kit.schema.json +1 -0
  94. data/app/pb_kits/playbook/pb_detail/docs/_playground.json +2 -1
  95. data/app/pb_kits/playbook/pb_detail/kit.schema.json +2 -1
  96. data/app/pb_kits/playbook/pb_dialog/docs/_playground.json +1 -1
  97. data/app/pb_kits/playbook/pb_dialog/kit.schema.json +22 -9
  98. data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.json +2 -2
  99. data/app/pb_kits/playbook/pb_distribution_bar/kit.schema.json +2 -1
  100. data/app/pb_kits/playbook/pb_draggable/utilities/touchDrag.ts +10 -0
  101. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +112 -0
  102. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +121 -15
  103. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_draggable_pills.html.erb +51 -0
  104. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_draggable_pills.jsx +62 -0
  105. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_draggable_pills_rails.md +9 -0
  106. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_draggable_pills_react.md +9 -0
  107. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_form.jsx +50 -0
  108. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_form_react.md +9 -0
  109. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_option_creation.html.erb +16 -0
  110. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_option_creation.jsx +27 -0
  111. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_option_creation_rails.md +9 -0
  112. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_option_creation_react.md +9 -0
  113. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +39 -3
  114. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +13 -2
  115. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +5 -0
  116. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +4 -1
  117. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -2
  118. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +24 -1
  119. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +235 -1
  120. data/app/pb_kits/playbook/pb_dropdown/dropdown_creation.test.jsx +414 -0
  121. data/app/pb_kits/playbook/pb_dropdown/dropdown_form.test.jsx +173 -0
  122. data/app/pb_kits/playbook/pb_dropdown/dropdown_index.test.js +545 -0
  123. data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +22 -5
  124. data/app/pb_kits/playbook/pb_dropdown/index.js +260 -37
  125. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +3 -1
  126. data/app/pb_kits/playbook/pb_dropdown/kit.schema.json +59 -9
  127. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +43 -25
  128. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownFormFields.tsx +83 -0
  129. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +13 -5
  130. data/app/pb_kits/playbook/pb_dropdown/subcomponents/MultiSelectTriggerDisplay.tsx +336 -31
  131. data/app/pb_kits/playbook/pb_dropdown/utilities/optionCreation.ts +21 -0
  132. data/app/pb_kits/playbook/pb_dropdown/utilities/pillReorder.js +281 -0
  133. data/app/pb_kits/playbook/pb_dropdown/utilities/quickpickDateSync.test.ts +24 -0
  134. data/app/pb_kits/playbook/pb_dropdown/utilities/usePillDropIndicator.ts +144 -0
  135. data/app/pb_kits/playbook/pb_empty_state/docs/_playground.json +1 -1
  136. data/app/pb_kits/playbook/pb_empty_state/kit.schema.json +2 -1
  137. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +3 -2
  138. data/app/pb_kits/playbook/pb_file_upload/kit.schema.json +8 -3
  139. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +8 -1
  140. data/app/pb_kits/playbook/pb_filter/docs/_filter_one_click.html.erb +38 -0
  141. data/app/pb_kits/playbook/pb_filter/docs/_filter_one_click.jsx +69 -0
  142. data/app/pb_kits/playbook/pb_filter/docs/_filter_one_click.md +1 -0
  143. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  144. data/app/pb_kits/playbook/pb_filter/docs/index.js +2 -1
  145. data/app/pb_kits/playbook/pb_filter/filter.html.erb +4 -4
  146. data/app/pb_kits/playbook/pb_filter/filter.rb +28 -0
  147. data/app/pb_kits/playbook/pb_filter/filter.test.js +41 -0
  148. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.json +4 -4
  149. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -2
  150. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/kit.schema.json +6 -3
  151. data/app/pb_kits/playbook/pb_flex/docs/_playground.json +3 -0
  152. data/app/pb_kits/playbook/pb_flex/kit.schema.json +27 -12
  153. data/app/pb_kits/playbook/pb_form/docs/_description_react.md +3 -0
  154. data/app/pb_kits/playbook/pb_form/docs/_form_default_values.jsx +898 -0
  155. data/app/pb_kits/playbook/pb_form/docs/_form_default_values_react.md +3 -0
  156. data/app/pb_kits/playbook/pb_form/docs/_form_defaults.jsx +879 -0
  157. data/app/pb_kits/playbook/pb_form/docs/_form_defaults_react.md +29 -0
  158. data/app/pb_kits/playbook/pb_form/docs/_form_loading.jsx +75 -0
  159. data/app/pb_kits/playbook/pb_form/docs/{_form_loading.md → _form_loading_rails.md} +1 -0
  160. data/app/pb_kits/playbook/pb_form/docs/_form_loading_react.md +1 -0
  161. data/app/pb_kits/playbook/pb_form/docs/_form_model_values.jsx +147 -0
  162. data/app/pb_kits/playbook/pb_form/docs/_form_model_values_react.md +16 -0
  163. data/app/pb_kits/playbook/pb_form/docs/_form_multi_column.jsx +164 -0
  164. data/app/pb_kits/playbook/pb_form/docs/_form_multi_column_react.md +3 -0
  165. data/app/pb_kits/playbook/pb_form/docs/_form_validation.jsx +1057 -0
  166. data/app/pb_kits/playbook/pb_form/docs/_form_validation_react.md +26 -0
  167. data/app/pb_kits/playbook/pb_form/docs/example.yml +7 -0
  168. data/app/pb_kits/playbook/pb_form/form.rb +1 -1
  169. data/app/pb_kits/playbook/pb_form/kit.schema.json +1 -6
  170. data/app/pb_kits/playbook/pb_form/pb_form_validation.js +1 -0
  171. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -4
  172. data/app/pb_kits/playbook/pb_form_pill/docs/_playground.json +3 -0
  173. data/app/pb_kits/playbook/pb_form_pill/kit.schema.json +6 -3
  174. data/app/pb_kits/playbook/pb_full_screen/_full_screen.scss +6 -0
  175. data/app/pb_kits/playbook/pb_full_screen/_full_screen.tsx +11 -2
  176. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_advanced_table_sticky_header.jsx +73 -0
  177. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_advanced_table_sticky_header.md +1 -0
  178. data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +3 -3
  179. data/app/pb_kits/playbook/pb_full_screen/docs/example.yml +1 -0
  180. data/app/pb_kits/playbook/pb_full_screen/docs/index.js +1 -0
  181. data/app/pb_kits/playbook/pb_full_screen/full_screen.test.jsx +4 -2
  182. data/app/pb_kits/playbook/pb_full_screen/kit.schema.json +8 -4
  183. data/app/pb_kits/playbook/pb_hashtag/docs/_playground.json +2 -2
  184. data/app/pb_kits/playbook/pb_hashtag/kit.schema.json +2 -1
  185. data/app/pb_kits/playbook/pb_highlight/kit.schema.json +2 -1
  186. data/app/pb_kits/playbook/pb_icon/_icon.tsx +6 -1
  187. data/app/pb_kits/playbook/pb_icon/docs/_playground.json +2 -2
  188. data/app/pb_kits/playbook/pb_icon/kit.schema.json +31 -13
  189. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +3 -1
  190. data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.json +2 -2
  191. data/app/pb_kits/playbook/pb_icon_circle/kit.schema.json +3 -1
  192. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.json +3 -2
  193. data/app/pb_kits/playbook/pb_icon_stat_value/kit.schema.json +4 -2
  194. data/app/pb_kits/playbook/pb_image/_image.tsx +5 -3
  195. data/app/pb_kits/playbook/pb_image/docs/_playground.json +27 -27
  196. data/app/pb_kits/playbook/pb_image/kit.schema.json +57 -24
  197. data/app/pb_kits/playbook/pb_label_pill/_label_pill.tsx +3 -1
  198. data/app/pb_kits/playbook/pb_label_pill/kit.schema.json +1 -0
  199. data/app/pb_kits/playbook/pb_label_value/docs/_playground.json +2 -2
  200. data/app/pb_kits/playbook/pb_label_value/kit.schema.json +2 -1
  201. data/app/pb_kits/playbook/pb_layout/docs/_playground.json +2 -2
  202. data/app/pb_kits/playbook/pb_layout/kit.schema.json +43 -20
  203. data/app/pb_kits/playbook/pb_legend/_legend.tsx +3 -1
  204. data/app/pb_kits/playbook/pb_legend/docs/_playground.json +2 -2
  205. data/app/pb_kits/playbook/pb_legend/kit.schema.json +3 -1
  206. data/app/pb_kits/playbook/pb_lightbox/_lightbox.tsx +2 -2
  207. data/app/pb_kits/playbook/pb_lightbox/kit.schema.json +84 -0
  208. data/app/pb_kits/playbook/pb_link/docs/_playground.json +6 -3
  209. data/app/pb_kits/playbook/pb_link/kit.schema.json +14 -6
  210. data/app/pb_kits/playbook/pb_list/_list_item.tsx +6 -3
  211. data/app/pb_kits/playbook/pb_list/docs/_playground.json +2 -2
  212. data/app/pb_kits/playbook/pb_list/kit.schema.json +2 -1
  213. data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.json +0 -1
  214. data/app/pb_kits/playbook/pb_loading_inline/kit.schema.json +4 -1
  215. data/app/pb_kits/playbook/pb_map/docs/_map_default.md +22 -3
  216. data/app/pb_kits/playbook/pb_map/kit.schema.json +4 -6
  217. data/app/pb_kits/playbook/pb_message/kit.schema.json +2 -1
  218. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +4 -1
  219. data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.json +2 -1
  220. data/app/pb_kits/playbook/pb_multiple_users/kit.schema.json +19 -11
  221. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.json +1 -0
  222. data/app/pb_kits/playbook/pb_multiple_users_stacked/kit.schema.json +2 -1
  223. data/app/pb_kits/playbook/pb_nav/_nav_item.test.js +17 -0
  224. data/app/pb_kits/playbook/pb_nav/docs/_playground.json +2 -0
  225. data/app/pb_kits/playbook/pb_nav/kit.schema.json +4 -2
  226. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +3 -1
  227. data/app/pb_kits/playbook/pb_online_status/kit.schema.json +1 -0
  228. data/app/pb_kits/playbook/pb_overlay/docs/_playground.json +3 -3
  229. data/app/pb_kits/playbook/pb_overlay/kit.schema.json +22 -12
  230. data/app/pb_kits/playbook/pb_pagination/kit.schema.json +6 -3
  231. data/app/pb_kits/playbook/pb_passphrase/docs/_playground.json +6 -4
  232. data/app/pb_kits/playbook/pb_passphrase/kit.schema.json +10 -5
  233. data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +1 -2
  234. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +1 -2
  235. data/app/pb_kits/playbook/pb_pb_gauge_chart/kit.schema.json +2 -1
  236. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +1 -2
  237. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +1 -2
  238. data/app/pb_kits/playbook/pb_person/_person.tsx +3 -1
  239. data/app/pb_kits/playbook/pb_person/kit.schema.json +1 -0
  240. data/app/pb_kits/playbook/pb_person_contact/docs/_playground.json +3 -3
  241. data/app/pb_kits/playbook/pb_person_contact/kit.schema.json +2 -1
  242. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +3 -7
  243. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +1 -1
  244. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +3 -0
  245. data/app/pb_kits/playbook/pb_phone_number_input/img/flags.webp +0 -0
  246. data/app/pb_kits/playbook/pb_phone_number_input/img/flags@2x.webp +0 -0
  247. data/app/pb_kits/playbook/pb_phone_number_input/img/globe.webp +0 -0
  248. data/app/pb_kits/playbook/pb_phone_number_input/img/globe@2x.webp +0 -0
  249. data/app/pb_kits/playbook/pb_phone_number_input/intlTelInput.scss +13 -6
  250. data/app/pb_kits/playbook/pb_phone_number_input/kit.schema.json +6 -3
  251. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input_assets.test.js +61 -0
  252. data/app/pb_kits/playbook/pb_pill/_pill.tsx +3 -1
  253. data/app/pb_kits/playbook/pb_pill/kit.schema.json +1 -0
  254. data/app/pb_kits/playbook/pb_popover/docs/_playground.json +1 -2
  255. data/app/pb_kits/playbook/pb_popover/index.ts +47 -8
  256. data/app/pb_kits/playbook/pb_popover/kit.schema.json +18 -9
  257. data/app/pb_kits/playbook/pb_popover/popover_index.test.js +456 -0
  258. data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.json +1 -0
  259. data/app/pb_kits/playbook/pb_progress_pills/kit.schema.json +2 -1
  260. data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.json +3 -2
  261. data/app/pb_kits/playbook/pb_progress_simple/kit.schema.json +4 -2
  262. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.tsx +3 -1
  263. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +10 -3
  264. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.overrides.json +1 -1
  265. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.md +2 -2
  266. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_default.md +3 -4
  267. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_extensions.md +1 -1
  268. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_markdown_support.md +1 -1
  269. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_required_indicator.html.erb +9 -0
  270. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_required_indicator.md +3 -0
  271. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +1 -0
  272. data/app/pb_kits/playbook/pb_rich_text_editor/kit.schema.json +18 -9
  273. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +3 -7
  274. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor_rails.js +26 -21
  275. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor_rails.test.js +85 -1
  276. data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +1 -0
  277. data/app/pb_kits/playbook/pb_selectable_card/kit.schema.json +4 -2
  278. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +0 -9
  279. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +1 -0
  280. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_custom.jsx +1 -1
  281. data/app/pb_kits/playbook/pb_selectable_card_icon/kit.schema.json +2 -1
  282. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +0 -7
  283. data/app/pb_kits/playbook/pb_source/_source.tsx +3 -1
  284. data/app/pb_kits/playbook/pb_source/docs/_playground.json +1 -0
  285. data/app/pb_kits/playbook/pb_source/kit.schema.json +3 -1
  286. data/app/pb_kits/playbook/pb_source/source.rb +1 -1
  287. data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +1 -0
  288. data/app/pb_kits/playbook/pb_star_rating/kit.schema.json +15 -7
  289. data/app/pb_kits/playbook/pb_stat_change/_stat_change.tsx +3 -1
  290. data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +1 -0
  291. data/app/pb_kits/playbook/pb_stat_change/kit.schema.json +3 -1
  292. data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +3 -1
  293. data/app/pb_kits/playbook/pb_stat_value/kit.schema.json +2 -1
  294. data/app/pb_kits/playbook/pb_table/docs/_playground.json +5 -1
  295. data/app/pb_kits/playbook/pb_table/kit.schema.json +28 -11
  296. data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +3 -0
  297. data/app/pb_kits/playbook/pb_text_input/kit.schema.json +22 -9
  298. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +4 -1
  299. data/app/pb_kits/playbook/pb_time/kit.schema.json +13 -5
  300. data/app/pb_kits/playbook/pb_time_picker/docs/_playground.json +1 -0
  301. data/app/pb_kits/playbook/pb_time_picker/kit.schema.json +2 -1
  302. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +3 -1
  303. data/app/pb_kits/playbook/pb_time_range_inline/kit.schema.json +13 -5
  304. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +3 -1
  305. data/app/pb_kits/playbook/pb_time_stacked/kit.schema.json +1 -0
  306. data/app/pb_kits/playbook/pb_timeline/_item.tsx +3 -1
  307. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +3 -1
  308. data/app/pb_kits/playbook/pb_timestamp/kit.schema.json +1 -0
  309. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +1 -0
  310. data/app/pb_kits/playbook/pb_title/kit.schema.json +23 -10
  311. data/app/pb_kits/playbook/pb_title_count/docs/_playground.json +1 -0
  312. data/app/pb_kits/playbook/pb_title_count/kit.schema.json +2 -1
  313. data/app/pb_kits/playbook/pb_tooltip/docs/_playground.json +5 -1
  314. data/app/pb_kits/playbook/pb_tooltip/kit.schema.json +10 -5
  315. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +73 -0
  316. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +285 -12
  317. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +22 -14
  318. data/app/pb_kits/playbook/pb_typeahead/components/PillRenderer.tsx +15 -11
  319. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.tsx +29 -30
  320. data/app/pb_kits/playbook/pb_typeahead/components/usePillDropIndicator.ts +155 -0
  321. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.json +5 -5
  322. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.overrides.json +2 -2
  323. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_draggable_pills.html.erb +0 -1
  324. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_draggable_pills.jsx +0 -1
  325. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_draggable_pills_rails.md +3 -3
  326. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_draggable_pills_react.md +7 -0
  327. data/app/pb_kits/playbook/pb_typeahead/kit.schema.json +3 -3
  328. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -3
  329. data/app/pb_kits/playbook/pb_user/_user.tsx +3 -1
  330. data/app/pb_kits/playbook/pb_user/docs/_playground.json +3 -1
  331. data/app/pb_kits/playbook/pb_user/kit.schema.json +20 -9
  332. data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +3 -1
  333. data/app/pb_kits/playbook/pb_user_badge/kit.schema.json +1 -0
  334. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +3 -1
  335. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +1 -0
  336. data/app/pb_kits/playbook/pb_weekday_stacked/kit.schema.json +3 -1
  337. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +1 -0
  338. data/app/pb_kits/playbook/utilities/test/globalProps/onClick.test.js +471 -0
  339. data/app/pb_kits/playbook/utilities/test-utils.js +0 -1
  340. data/dist/ai/all-schemas.json +986 -388
  341. data/dist/ai/external-dependencies.json +1 -1
  342. data/dist/ai/forms.json +2 -2
  343. data/dist/ai/index.json +11 -3
  344. data/dist/ai/kits/advanced_table.schema.json +44 -16
  345. data/dist/ai/kits/avatar.schema.json +22 -9
  346. data/dist/ai/kits/background.schema.json +10 -3
  347. data/dist/ai/kits/badge.schema.json +26 -12
  348. data/dist/ai/kits/body.schema.json +14 -5
  349. data/dist/ai/kits/button.schema.json +29 -25
  350. data/dist/ai/kits/caption.schema.json +17 -7
  351. data/dist/ai/kits/card.schema.json +2 -1
  352. data/dist/ai/kits/checkbox.schema.json +10 -5
  353. data/dist/ai/kits/contact.schema.json +3 -1
  354. data/dist/ai/kits/copy_button.schema.json +10 -5
  355. data/dist/ai/kits/currency.schema.json +6 -2
  356. data/dist/ai/kits/dashboard_value.schema.json +4 -2
  357. data/dist/ai/kits/date.schema.json +16 -6
  358. data/dist/ai/kits/date_picker.schema.json +31 -13
  359. data/dist/ai/kits/date_range_inline.schema.json +3 -1
  360. data/dist/ai/kits/date_range_stacked.schema.json +1 -0
  361. data/dist/ai/kits/date_stacked.schema.json +1 -0
  362. data/dist/ai/kits/date_time.schema.json +3 -1
  363. data/dist/ai/kits/date_time_stacked.schema.json +3 -1
  364. data/dist/ai/kits/date_year_stacked.schema.json +1 -0
  365. data/dist/ai/kits/detail.schema.json +2 -1
  366. data/dist/ai/kits/dialog.schema.json +22 -9
  367. data/dist/ai/kits/distribution_bar.schema.json +2 -1
  368. data/dist/ai/kits/dropdown.schema.json +98 -18
  369. data/dist/ai/kits/empty_state.schema.json +2 -1
  370. data/dist/ai/kits/file_upload.schema.json +8 -3
  371. data/dist/ai/kits/fixed_confirmation_toast.schema.json +6 -3
  372. data/dist/ai/kits/flex.schema.json +27 -12
  373. data/dist/ai/kits/form.schema.json +1 -6
  374. data/dist/ai/kits/form_pill.schema.json +6 -3
  375. data/dist/ai/kits/full_screen.schema.json +8 -4
  376. data/dist/ai/kits/hashtag.schema.json +2 -1
  377. data/dist/ai/kits/highlight.schema.json +2 -1
  378. data/dist/ai/kits/icon.schema.json +31 -13
  379. data/dist/ai/kits/icon_circle.schema.json +3 -1
  380. data/dist/ai/kits/icon_stat_value.schema.json +4 -2
  381. data/dist/ai/kits/image.schema.json +57 -24
  382. data/dist/ai/kits/label_pill.schema.json +1 -0
  383. data/dist/ai/kits/label_value.schema.json +2 -1
  384. data/dist/ai/kits/layout.schema.json +43 -20
  385. data/dist/ai/kits/legend.schema.json +3 -1
  386. data/dist/ai/kits/lightbox.schema.json +86 -0
  387. data/dist/ai/kits/link.schema.json +14 -6
  388. data/dist/ai/kits/list.schema.json +2 -1
  389. data/dist/ai/kits/loading_inline.schema.json +4 -1
  390. data/dist/ai/kits/map.schema.json +4 -7
  391. data/dist/ai/kits/message.schema.json +2 -1
  392. data/dist/ai/kits/multiple_users.schema.json +19 -11
  393. data/dist/ai/kits/multiple_users_stacked.schema.json +2 -1
  394. data/dist/ai/kits/nav.schema.json +4 -2
  395. data/dist/ai/kits/online_status.schema.json +1 -0
  396. data/dist/ai/kits/overlay.schema.json +22 -12
  397. data/dist/ai/kits/pagination.schema.json +6 -3
  398. data/dist/ai/kits/passphrase.schema.json +10 -5
  399. data/dist/ai/kits/pb_gauge_chart.schema.json +2 -1
  400. data/dist/ai/kits/person.schema.json +1 -0
  401. data/dist/ai/kits/person_contact.schema.json +2 -1
  402. data/dist/ai/kits/phone_number_input.schema.json +6 -3
  403. data/dist/ai/kits/pill.schema.json +1 -0
  404. data/dist/ai/kits/popover.schema.json +17 -8
  405. data/dist/ai/kits/progress_pills.schema.json +2 -1
  406. data/dist/ai/kits/progress_simple.schema.json +4 -2
  407. data/dist/ai/kits/rich_text_editor.schema.json +19 -10
  408. data/dist/ai/kits/selectable_card.schema.json +4 -2
  409. data/dist/ai/kits/selectable_card_icon.schema.json +2 -1
  410. data/dist/ai/kits/source.schema.json +3 -1
  411. data/dist/ai/kits/star_rating.schema.json +15 -7
  412. data/dist/ai/kits/stat_change.schema.json +3 -1
  413. data/dist/ai/kits/stat_value.schema.json +2 -1
  414. data/dist/ai/kits/table.schema.json +28 -11
  415. data/dist/ai/kits/text_input.schema.json +22 -9
  416. data/dist/ai/kits/time.schema.json +12 -4
  417. data/dist/ai/kits/time_picker.schema.json +2 -1
  418. data/dist/ai/kits/time_range_inline.schema.json +13 -5
  419. data/dist/ai/kits/time_stacked.schema.json +1 -0
  420. data/dist/ai/kits/timestamp.schema.json +1 -0
  421. data/dist/ai/kits/title.schema.json +23 -10
  422. data/dist/ai/kits/title_count.schema.json +2 -1
  423. data/dist/ai/kits/tooltip.schema.json +10 -5
  424. data/dist/ai/kits/typeahead.schema.json +3 -3
  425. data/dist/ai/kits/user.schema.json +20 -9
  426. data/dist/ai/kits/user_badge.schema.json +1 -0
  427. data/dist/ai/kits/weekday_stacked.schema.json +3 -1
  428. data/dist/ai/playgrounds/advanced_table.json +1 -1
  429. data/dist/ai/playgrounds/dropdown.json +1 -1
  430. data/dist/ai/playgrounds/index.json +1 -1
  431. data/dist/ai/playgrounds/rich_text_editor.json +1 -1
  432. data/dist/ai/playgrounds/typeahead.json +1 -1
  433. data/dist/ai/visual-index.json +1 -1
  434. data/dist/chunks/_pagination-DZ0eQuH2.js +1 -0
  435. data/dist/chunks/{_pb_line_graph-Du7xE9vl.js → _pb_line_graph-DyvH5Zj1.js} +1 -1
  436. data/dist/chunks/{_detail-Bsvl694i.js → _tooltip-CFbtqu-E.js} +2 -2
  437. data/dist/chunks/_typeahead-CkiAf8zx.js +1 -0
  438. data/dist/chunks/{globalProps-B120NbSJ.js → globalProps-xfGTpdLP.js} +1 -1
  439. data/dist/chunks/index-4jrZjexD.js +1 -0
  440. data/dist/chunks/index-BAy61y8S.js +1 -0
  441. data/dist/chunks/index-Cb_SDipk.js +1 -0
  442. data/dist/chunks/index-D3RdsDp7.js +1 -0
  443. data/dist/chunks/index-D8PZIesy.js +1 -0
  444. data/dist/chunks/index-DIoc-aua.js +1 -0
  445. data/dist/chunks/index-qex65UMn.js +1 -0
  446. data/dist/chunks/lib-Cu_i0y0k.js +29 -0
  447. data/dist/chunks/{time_picker_helper-CYGg0UQ0.js → time_picker_helper-B82MORju.js} +1 -1
  448. data/dist/chunks/vendor.js +2 -2
  449. data/dist/menu.yml +3 -3
  450. data/dist/playbook-rails-react-bindings.js +1 -1
  451. data/dist/playbook-rails.js +1 -1
  452. data/dist/playbook.css +1 -1
  453. data/lib/playbook/changelog_generator.rb +47 -21
  454. data/lib/playbook/connect_message_generator.rb +15 -2
  455. data/lib/playbook/version.rb +2 -2
  456. metadata +99 -23
  457. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_draggable_pills.md +0 -7
  458. data/dist/chunks/_table-Bf6LGyL9.js +0 -1
  459. data/dist/chunks/_typeahead-w6S5Vx4b.js +0 -1
  460. data/dist/chunks/lib-Buo6zHEw.js +0 -29
  461. /data/app/pb_kits/playbook/pb_form/docs/{_description.md → _description_rails.md} +0 -0
  462. /data/app/pb_kits/playbook/pb_form/docs/{_form_default_values.md → _form_default_values_rails.md} +0 -0
  463. /data/app/pb_kits/playbook/pb_form/docs/{_form_defaults.md → _form_defaults_rails.md} +0 -0
  464. /data/app/pb_kits/playbook/pb_form/docs/{_form_model_values.md → _form_model_values_rails.md} +0 -0
  465. /data/app/pb_kits/playbook/pb_form/docs/{_form_multi_column.md → _form_multi_column_rails.md} +0 -0
  466. /data/app/pb_kits/playbook/pb_form/docs/{_form_validation.md → _form_validation_rails.md} +0 -0
@@ -14,7 +14,7 @@
14
14
  { "name": "Content", "props": ["text", "icon", "iconRight"] },
15
15
  { "name": "Link Mode", "props": ["link", "target", "newWindow"] },
16
16
  { "name": "Reaction Mode", "props": ["count", "highlight"] },
17
- { "name": "Form", "props": ["htmlType", "form", "value", "tabIndex"] }
17
+ { "name": "Form", "props": ["htmlType", "type", "form", "value", "tabIndex"] }
18
18
  ],
19
19
  "presets": [
20
20
  { "name": "Primary", "props": { "variant": "primary" }, "children": "Submit" },
@@ -24,7 +24,7 @@ examples:
24
24
  - button_block_content: Button Block Content
25
25
  - button_icon_options: Button Icon Options
26
26
  - button_accessibility: Button Accessibility Options
27
- - button_options: Button Additional Options (onClick)
27
+ - button_options: Button Additional Options
28
28
  - button_size: Button Size
29
29
  - button_form: Button Form Attribute
30
30
  - button_hover: Button Hover
@@ -57,7 +57,8 @@
57
57
  "platforms": [
58
58
  "react",
59
59
  "rails"
60
- ]
60
+ ],
61
+ "default": null
61
62
  },
62
63
  "iconRight": {
63
64
  "type": "boolean",
@@ -72,7 +73,8 @@
72
73
  "platforms": [
73
74
  "react",
74
75
  "rails"
75
- ]
76
+ ],
77
+ "default": null
76
78
  },
77
79
  "loading": {
78
80
  "type": "boolean",
@@ -120,7 +122,8 @@
120
122
  "platforms": [
121
123
  "react",
122
124
  "rails"
123
- ]
125
+ ],
126
+ "default": ""
124
127
  },
125
128
  "text": {
126
129
  "type": "string",
@@ -129,28 +132,6 @@
129
132
  "rails"
130
133
  ]
131
134
  },
132
- "type": {
133
- "type": "enum",
134
- "platforms": [
135
- "react",
136
- "rails"
137
- ],
138
- "values": [
139
- "inline"
140
- ],
141
- "default": "inline"
142
- },
143
- "htmlType": {
144
- "type": "enum",
145
- "platforms": [
146
- "react"
147
- ],
148
- "values": [
149
- "submit",
150
- "reset",
151
- "button"
152
- ]
153
- },
154
135
  "value": {
155
136
  "type": "string | null",
156
137
  "platforms": [
@@ -173,12 +154,35 @@
173
154
  ],
174
155
  "default": "primary"
175
156
  },
157
+ "htmlType": {
158
+ "type": "enum",
159
+ "platforms": [
160
+ "react"
161
+ ],
162
+ "values": [
163
+ "submit",
164
+ "reset",
165
+ "button"
166
+ ],
167
+ "default": "button"
168
+ },
176
169
  "wrapperClass": {
177
170
  "type": "string",
178
171
  "platforms": [
179
172
  "react"
180
173
  ]
181
174
  },
175
+ "type": {
176
+ "platforms": [
177
+ "rails"
178
+ ],
179
+ "type": "enum",
180
+ "values": [
181
+ "submit",
182
+ "reset",
183
+ "button"
184
+ ]
185
+ },
182
186
  "iconFontFamily": {
183
187
  "platforms": [
184
188
  "rails"
@@ -197,11 +201,11 @@
197
201
  "usage": {
198
202
  "react": {
199
203
  "import": "import { Button } from 'playbook-ui'",
200
- "example": "<Button size=\"sm\" type=\"inline\"></Button>"
204
+ "example": "<Button size=\"sm\" variant=\"primary\"></Button>"
201
205
  },
202
206
  "rails": {
203
207
  "import": null,
204
- "example": "<%= pb_rails(\"button\", props: { size: \"sm\", type: \"inline\" }) %>"
208
+ "example": "<%= pb_rails(\"button\", props: { size: \"sm\", variant: \"primary\" }) %>"
205
209
  }
206
210
  }
207
211
  }
@@ -29,13 +29,23 @@
29
29
  "react",
30
30
  "rails"
31
31
  ],
32
- "values": [
33
- "xs",
34
- "sm",
35
- "md",
36
- "lg",
37
- "xl"
38
- ],
32
+ "values": {
33
+ "react": [
34
+ "xs",
35
+ "sm",
36
+ "md",
37
+ "lg",
38
+ "xl"
39
+ ],
40
+ "rails": [
41
+ "xs",
42
+ "sm",
43
+ "md",
44
+ "base",
45
+ "lg",
46
+ "xl"
47
+ ]
48
+ },
39
49
  "default": "md"
40
50
  },
41
51
  "tag": {
@@ -10,6 +10,7 @@
10
10
  "borderRadius": "md",
11
11
  "draggableItem": false,
12
12
  "dragHandle": true,
13
+ "highlight": {},
13
14
  "selected": false,
14
15
  "tag": "div",
15
16
  "headerColor": "category_1",
@@ -113,7 +113,8 @@
113
113
  "platforms": [
114
114
  "react",
115
115
  "rails"
116
- ]
116
+ ],
117
+ "default": {}
117
118
  },
118
119
  "length": {
119
120
  "type": "number",
@@ -3,9 +3,14 @@
3
3
  "propTargets": {},
4
4
  "defaults": {
5
5
  "checked": false,
6
+ "dark": false,
6
7
  "disabled": false,
7
8
  "error": false,
8
- "requiredIndicator": false
9
+ "indeterminate": false,
10
+ "name": "",
11
+ "requiredIndicator": false,
12
+ "text": "",
13
+ "value": ""
9
14
  },
10
15
  "groups": [
11
16
  {
@@ -19,7 +19,8 @@
19
19
  "type": "boolean",
20
20
  "platforms": [
21
21
  "react"
22
- ]
22
+ ],
23
+ "default": false
23
24
  },
24
25
  "disabled": {
25
26
  "type": "boolean",
@@ -41,14 +42,16 @@
41
42
  "type": "boolean",
42
43
  "platforms": [
43
44
  "react"
44
- ]
45
+ ],
46
+ "default": false
45
47
  },
46
48
  "name": {
47
49
  "type": "string",
48
50
  "platforms": [
49
51
  "react",
50
52
  "rails"
51
- ]
53
+ ],
54
+ "default": ""
52
55
  },
53
56
  "onChange": {
54
57
  "type": "function",
@@ -75,14 +78,16 @@
75
78
  "platforms": [
76
79
  "react",
77
80
  "rails"
78
- ]
81
+ ],
82
+ "default": ""
79
83
  },
80
84
  "value": {
81
85
  "type": "string",
82
86
  "platforms": [
83
87
  "react",
84
88
  "rails"
85
- ]
89
+ ],
90
+ "default": ""
86
91
  },
87
92
  "indeterminateMain": {
88
93
  "platforms": [
@@ -31,11 +31,11 @@ const CollapsibleMain = ({
31
31
  const mainSpacing = globalProps(props, { cursor })
32
32
 
33
33
  const handleCollapsibleClick = () => {
34
- onClick && onClick();
35
- //To disable default toggling behavior return "true" in the onClick()
36
- const disableToggle = onClick && onClick();
34
+ // Returning true from onClick disables the default toggle.
35
+ const disableToggle = onClick && onClick()
36
+
37
37
  if (disableToggle !== true) {
38
- toggle();
38
+ toggle()
39
39
  }
40
40
  }
41
41
 
@@ -11,8 +11,7 @@ beforeEach(() => {
11
11
  })
12
12
 
13
13
  afterEach(() => {
14
- // eslint-disable-next-line
15
- console.error.mockRestore()
14
+ jest.restoreAllMocks()
16
15
  })
17
16
 
18
17
  const testId = 'collapsible1',
@@ -72,3 +71,83 @@ test('html structure is correct', () => {
72
71
 
73
72
  expect(container).toMatchSnapshot()
74
73
  })
74
+
75
+ const clickCollapsibleMain = () => {
76
+ screen.getByText('Main Section').click()
77
+ }
78
+
79
+ test('calls onClick once per click', () => {
80
+ const handleClick = jest.fn()
81
+ render(
82
+ <Collapsible onClick={handleClick}>
83
+ <Collapsible.Main>
84
+ <div>{'Main Section'}</div>
85
+ </Collapsible.Main>
86
+ <Collapsible.Content>
87
+ <div>{'Content'}</div>
88
+ </Collapsible.Content>
89
+ </Collapsible>
90
+ )
91
+
92
+ clickCollapsibleMain()
93
+
94
+ expect(handleClick).toHaveBeenCalledTimes(1)
95
+ })
96
+
97
+ test('toggles by default when onClick is omitted', () => {
98
+ const { container } = render(
99
+ <Collapsible>
100
+ <Collapsible.Main>
101
+ <div>{'Main Section'}</div>
102
+ </Collapsible.Main>
103
+ <Collapsible.Content>
104
+ <div>{'Content'}</div>
105
+ </Collapsible.Content>
106
+ </Collapsible>
107
+ )
108
+
109
+ expect(container.querySelector('[aria-label="chevron-down icon"]')).toBeInTheDocument()
110
+
111
+ clickCollapsibleMain()
112
+
113
+ expect(container.querySelector('[aria-label="chevron-up icon"]')).toBeInTheDocument()
114
+ })
115
+
116
+ test('toggles when onClick does not return true', () => {
117
+ const handleClick = jest.fn()
118
+ const { container } = render(
119
+ <Collapsible onClick={handleClick}>
120
+ <Collapsible.Main>
121
+ <div>{'Main Section'}</div>
122
+ </Collapsible.Main>
123
+ <Collapsible.Content>
124
+ <div>{'Content'}</div>
125
+ </Collapsible.Content>
126
+ </Collapsible>
127
+ )
128
+
129
+ clickCollapsibleMain()
130
+
131
+ expect(handleClick).toHaveBeenCalledTimes(1)
132
+ expect(container.querySelector('[aria-label="chevron-up icon"]')).toBeInTheDocument()
133
+ })
134
+
135
+ test('does not toggle when onClick returns true', () => {
136
+ const handleClick = jest.fn(() => true)
137
+ const { container } = render(
138
+ <Collapsible onClick={handleClick}>
139
+ <Collapsible.Main>
140
+ <div>{'Main Section'}</div>
141
+ </Collapsible.Main>
142
+ <Collapsible.Content>
143
+ <div>{'Content'}</div>
144
+ </Collapsible.Content>
145
+ </Collapsible>
146
+ )
147
+
148
+ clickCollapsibleMain()
149
+
150
+ expect(handleClick).toHaveBeenCalledTimes(1)
151
+ expect(container.querySelector('[aria-label="chevron-down icon"]')).toBeInTheDocument()
152
+ expect(container.querySelector('[aria-label="chevron-up icon"]')).not.toBeInTheDocument()
153
+ })
@@ -3,6 +3,7 @@ import classnames from 'classnames'
3
3
 
4
4
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
5
5
  import { globalProps } from '../utilities/globalProps'
6
+ import { GlobalEventProps, globalEventProps } from '../utilities/globalEventProps'
6
7
 
7
8
  import Body from '../pb_body/_body'
8
9
  import Caption from '../pb_caption/_caption'
@@ -64,7 +65,7 @@ type ContactProps = {
64
65
  iconEnabled?: boolean
65
66
  id?: string
66
67
  unstyled?: boolean
67
- }
68
+ } & GlobalEventProps
68
69
 
69
70
  const Contact = (props: ContactProps): React.ReactElement => {
70
71
  const {
@@ -125,6 +126,7 @@ const Contact = (props: ContactProps): React.ReactElement => {
125
126
  {...ariaProps}
126
127
  {...dataProps}
127
128
  {...htmlProps}
129
+ {...globalEventProps(props)}
128
130
  className={classes}
129
131
  id={id}
130
132
  >
@@ -139,6 +141,7 @@ const Contact = (props: ContactProps): React.ReactElement => {
139
141
  {...ariaProps}
140
142
  {...dataProps}
141
143
  {...htmlProps}
144
+ {...globalEventProps(props)}
142
145
  className={classes}
143
146
  id={id}
144
147
  >
@@ -2,6 +2,7 @@
2
2
  "template": "<Contact{{props}} />",
3
3
  "propTargets": {},
4
4
  "defaults": {
5
+ "dark": false,
5
6
  "iconEnabled": true,
6
7
  "unstyled": false,
7
8
  "contactType": "email",
@@ -32,7 +32,8 @@
32
32
  "type": "boolean",
33
33
  "platforms": [
34
34
  "react"
35
- ]
35
+ ],
36
+ "default": false
36
37
  },
37
38
  "iconEnabled": {
38
39
  "type": "boolean",
@@ -52,6 +53,7 @@
52
53
  }
53
54
  },
54
55
  "globalProps": true,
56
+ "globalEventProps": true,
55
57
  "usage": {
56
58
  "react": {
57
59
  "import": "import { Contact } from 'playbook-ui'",
@@ -2,9 +2,13 @@
2
2
  "template": "<CopyButton{{props}} />",
3
3
  "propTargets": {},
4
4
  "defaults": {
5
+ "from": "",
6
+ "text": "Copy",
7
+ "tooltipPlacement": "bottom",
5
8
  "tooltipText": "Copied!",
9
+ "value": "Boo from Ghost Crew!",
6
10
  "variant": "icon",
7
- "value": "Boo from Ghost Crew!"
11
+ "timeout": 1000
8
12
  },
9
13
  "groups": [
10
14
  {
@@ -12,14 +12,16 @@
12
12
  "platforms": [
13
13
  "react",
14
14
  "rails"
15
- ]
15
+ ],
16
+ "default": ""
16
17
  },
17
18
  "text": {
18
19
  "type": "string",
19
20
  "platforms": [
20
21
  "react",
21
22
  "rails"
22
- ]
23
+ ],
24
+ "default": "Copy"
23
25
  },
24
26
  "tooltipPlacement": {
25
27
  "type": "enum",
@@ -31,7 +33,8 @@
31
33
  "right",
32
34
  "bottom",
33
35
  "left"
34
- ]
36
+ ],
37
+ "default": "bottom"
35
38
  },
36
39
  "tooltipText": {
37
40
  "type": "string",
@@ -46,7 +49,8 @@
46
49
  "platforms": [
47
50
  "react",
48
51
  "rails"
49
- ]
52
+ ],
53
+ "default": ""
50
54
  },
51
55
  "variant": {
52
56
  "type": "enum",
@@ -64,7 +68,8 @@
64
68
  "type": "number",
65
69
  "platforms": [
66
70
  "react"
67
- ]
71
+ ],
72
+ "default": 1000
68
73
  },
69
74
  "tooltipPosition": {
70
75
  "platforms": [
@@ -8,7 +8,7 @@
8
8
  "decimals": "default",
9
9
  "emphasized": true,
10
10
  "label": "Balance",
11
- "size": "md",
11
+ "nullDisplay": "",
12
12
  "symbol": "$",
13
13
  "variant": "default",
14
14
  "unstyled": false,
@@ -76,7 +76,8 @@
76
76
  "platforms": [
77
77
  "react",
78
78
  "rails"
79
- ]
79
+ ],
80
+ "default": ""
80
81
  },
81
82
  "size": {
82
83
  "type": "enum",
@@ -89,7 +90,10 @@
89
90
  "md",
90
91
  "lg"
91
92
  ],
92
- "default": "md"
93
+ "default": {
94
+ "react": "sm",
95
+ "rails": "md"
96
+ }
93
97
  },
94
98
  "symbol": {
95
99
  "type": "string",
@@ -7,11 +7,11 @@
7
7
  "change": "decrease",
8
8
  "value": "26.1"
9
9
  },
10
- "statLabel": "Decreased Value",
11
10
  "statValue": {
12
11
  "value": "1,428",
13
12
  "unit": "appts"
14
- }
13
+ },
14
+ "statLabel": "Decreased Value"
15
15
  },
16
16
  "groups": [
17
17
  {
@@ -25,7 +25,8 @@
25
25
  "platforms": [
26
26
  "react",
27
27
  "rails"
28
- ]
28
+ ],
29
+ "default": {}
29
30
  },
30
31
  "statLabel": {
31
32
  "type": "string",
@@ -39,7 +40,8 @@
39
40
  "platforms": [
40
41
  "react",
41
42
  "rails"
42
- ]
43
+ ],
44
+ "default": {}
43
45
  }
44
46
  },
45
47
  "globalProps": true,
@@ -3,6 +3,7 @@ import classnames from "classnames";
3
3
 
4
4
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from "../utilities/props";
5
5
  import { globalProps } from "../utilities/globalProps";
6
+ import { GlobalEventProps, globalEventProps } from "../utilities/globalEventProps";
6
7
  import DateTime from '../pb_kit/dateTime';
7
8
 
8
9
  import Body from "../pb_body/_body";
@@ -24,7 +25,7 @@ type PbDateProps = {
24
25
  size?: "sm" | "md" | "lg";
25
26
  unstyled?: boolean;
26
27
  value: Date;
27
- };
28
+ } & GlobalEventProps;
28
29
 
29
30
  const PbDate = (props: PbDateProps): React.ReactElement => {
30
31
  const {
@@ -64,6 +65,7 @@ const PbDate = (props: PbDateProps): React.ReactElement => {
64
65
  {...ariaProps}
65
66
  {...dataProps}
66
67
  {...htmlProps}
68
+ {...globalEventProps(props)}
67
69
  className={classes}
68
70
  id={id}
69
71
  >
@@ -31,7 +31,7 @@ describe('PbDate Kit', () => {
31
31
  })
32
32
 
33
33
  afterEach(() => {
34
- console.error.mockRestore()
34
+ jest.restoreAllMocks()
35
35
  })
36
36
 
37
37
  // Default Props
@@ -3,6 +3,7 @@
3
3
  "propTargets": {},
4
4
  "defaults": {
5
5
  "alignment": "left",
6
+ "dark": false,
6
7
  "showDayOfWeek": false,
7
8
  "showCurrentYear": false,
8
9
  "showIcon": false,
@@ -24,7 +24,8 @@
24
24
  "type": "boolean",
25
25
  "platforms": [
26
26
  "react"
27
- ]
27
+ ],
28
+ "default": false
28
29
  },
29
30
  "showDayOfWeek": {
30
31
  "type": "boolean",
@@ -56,11 +57,19 @@
56
57
  "react",
57
58
  "rails"
58
59
  ],
59
- "values": [
60
- "sm",
61
- "md",
62
- "lg"
63
- ],
60
+ "values": {
61
+ "react": [
62
+ "sm",
63
+ "md",
64
+ "lg"
65
+ ],
66
+ "rails": [
67
+ "lg",
68
+ "md",
69
+ "sm",
70
+ "xs"
71
+ ]
72
+ },
64
73
  "default": "md"
65
74
  },
66
75
  "unstyled": {
@@ -90,6 +99,7 @@
90
99
  }
91
100
  },
92
101
  "globalProps": true,
102
+ "globalEventProps": true,
93
103
  "usage": {
94
104
  "react": {
95
105
  "import": "import { Date } from 'playbook-ui'",
@@ -97,7 +107,7 @@
97
107
  },
98
108
  "rails": {
99
109
  "import": null,
100
- "example": "<%= pb_rails(\"date\", props: { alignment: \"left\", size: \"sm\" }) %>"
110
+ "example": "<%= pb_rails(\"date\", props: { alignment: \"left\", size: \"lg\" }) %>"
101
111
  }
102
112
  }
103
113
  }
@@ -6,6 +6,10 @@ import DatePicker from './_date_picker'
6
6
  import DateTime from "../pb_kit/dateTime.ts"
7
7
  import { getTimezoneText } from './plugins/timeSelect'
8
8
 
9
+ // Freeze Date while letting Flatpickr updates and waitFor polling run normally.
10
+ jest.useFakeTimers({
11
+ doNotFake: ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'requestAnimationFrame', 'cancelAnimationFrame'],
12
+ });
9
13
  jest.setSystemTime(new Date('01/01/2020'));
10
14
  const DEFAULT_DATE = new Date()
11
15
 
@@ -11,10 +11,13 @@
11
11
  "format": "m/d/Y",
12
12
  "hideIcon": false,
13
13
  "hideLabel": false,
14
+ "initializeOnce": false,
15
+ "inLine": false,
16
+ "inputAria": {},
17
+ "inputData": {},
14
18
  "label": "Date Picker",
15
19
  "placeholder": "Select Date",
16
20
  "requiredIndicator": false,
17
- "selectionType": "none",
18
21
  "showTimezone": false,
19
22
  "staticPosition": true,
20
23
  "thisRangesEndToday": false,