playbook_ui 13.13.0 → 13.14.0.pre.alpha.play1101betaicons1798

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/index.js +14 -1
  4. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +5 -5
  5. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +3 -3
  6. data/app/pb_kits/playbook/pb_background/_background.tsx +9 -9
  7. data/app/pb_kits/playbook/pb_badge/_badge.tsx +2 -2
  8. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +3 -3
  9. data/app/pb_kits/playbook/pb_beta_icon/_icon.scss +12 -0
  10. data/app/pb_kits/playbook/pb_beta_icon/_icon.tsx +164 -0
  11. data/app/pb_kits/playbook/pb_beta_icon/docs/_description.md +1 -0
  12. data/app/pb_kits/playbook/pb_beta_icon/docs/_footer.md +2 -0
  13. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_animate.html.erb +3 -0
  14. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_animate.jsx +35 -0
  15. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_animate.md +1 -0
  16. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_border.html.erb +1 -0
  17. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_border.jsx +19 -0
  18. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_border_swift.md +7 -0
  19. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_custom.html.erb +16 -0
  20. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_custom.jsx +34 -0
  21. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_custom.md +19 -0
  22. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_default.html.erb +1 -0
  23. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_default.jsx +17 -0
  24. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_default_swift.md +7 -0
  25. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_fa_kit.html.erb +1 -0
  26. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_fa_kit.jsx +21 -0
  27. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_fa_kit.md +7 -0
  28. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_flip.html.erb +3 -0
  29. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_flip.jsx +33 -0
  30. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_flip_swift.md +11 -0
  31. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_props_swift.md +8 -0
  32. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_pull.html.erb +2 -0
  33. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_pull.jsx +26 -0
  34. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_pull.md +1 -0
  35. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_rotate.html.erb +3 -0
  36. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_rotate.jsx +33 -0
  37. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_rotate_swift.md +11 -0
  38. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_sizes.html.erb +16 -0
  39. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_sizes.jsx +133 -0
  40. data/app/pb_kits/playbook/pb_beta_icon/docs/_icon_sizes_swift.md +46 -0
  41. data/app/pb_kits/playbook/pb_beta_icon/docs/example.yml +30 -0
  42. data/app/pb_kits/playbook/pb_beta_icon/docs/index.js +9 -0
  43. data/app/pb_kits/playbook/pb_beta_icon/icon.html.erb +15 -0
  44. data/app/pb_kits/playbook/pb_beta_icon/icon.rb +153 -0
  45. data/app/pb_kits/playbook/pb_beta_icon/icon.test.js +155 -0
  46. data/app/pb_kits/playbook/pb_body/_body.scss +0 -5
  47. data/app/pb_kits/playbook/pb_body/_body.tsx +5 -9
  48. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +0 -20
  49. data/app/pb_kits/playbook/pb_body/body.rb +1 -8
  50. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumb_item.tsx +3 -4
  51. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.tsx +3 -3
  52. data/app/pb_kits/playbook/pb_button/_button.tsx +40 -37
  53. data/app/pb_kits/playbook/pb_button/docs/_button_props_swift.md +11 -0
  54. data/app/pb_kits/playbook/pb_button/docs/_button_reaction_swift.md +26 -0
  55. data/app/pb_kits/playbook/pb_button/docs/example.yml +1 -0
  56. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.tsx +3 -3
  57. data/app/pb_kits/playbook/pb_caption/_caption.tsx +1 -1
  58. data/app/pb_kits/playbook/pb_card/_card.tsx +2 -2
  59. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +0 -1
  60. data/app/pb_kits/playbook/pb_card/docs/_card_background.jsx +5 -4
  61. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +3 -3
  62. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +9 -9
  63. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +1 -1
  64. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +5 -7
  65. data/app/pb_kits/playbook/pb_collapsible/_helper_functions.ts +2 -2
  66. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +5 -4
  67. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +16 -12
  68. data/app/pb_kits/playbook/pb_contact/_contact.tsx +3 -3
  69. data/app/pb_kits/playbook/pb_contact/docs/_contact_default_swift.md +14 -0
  70. data/app/pb_kits/playbook/pb_contact/docs/_contact_props_swift.md +6 -0
  71. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail_swift.md +14 -0
  72. data/app/pb_kits/playbook/pb_contact/docs/example.yml +6 -0
  73. data/app/pb_kits/playbook/pb_currency/_currency.tsx +2 -2
  74. data/app/pb_kits/playbook/pb_dashboard/pbChartsColorsHelper.ts +1 -1
  75. data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.ts +4 -57
  76. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.ts +4 -57
  77. data/app/pb_kits/playbook/pb_dashboard/themeTypes.ts +20 -16
  78. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.tsx +1 -1
  79. data/app/pb_kits/playbook/pb_date/_date.tsx +7 -7
  80. data/app/pb_kits/playbook/pb_date/docs/_date_alignment_swift.md +11 -0
  81. data/app/pb_kits/playbook/pb_date/docs/_date_default_swift.md +16 -0
  82. data/app/pb_kits/playbook/pb_date/docs/_date_props_swift.md +8 -0
  83. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled_swift.md +11 -0
  84. data/app/pb_kits/playbook/pb_date/docs/_date_variants_swift.md +14 -0
  85. data/app/pb_kits/playbook/pb_date/docs/example.yml +7 -0
  86. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +4 -1
  87. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +3 -0
  88. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +11 -10
  89. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom.html.erb +29 -0
  90. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom.jsx +34 -0
  91. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom.md +7 -0
  92. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom_override.html.erb +28 -0
  93. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom_override.jsx +34 -0
  94. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_custom_override.md +1 -0
  95. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_react.jsx +2 -2
  96. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +4 -0
  97. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +2 -0
  98. data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +69 -3
  99. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +2 -2
  100. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.tsx +2 -2
  101. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +8 -8
  102. data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +2 -2
  103. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +1 -1
  104. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.tsx +2 -2
  105. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +6 -3
  106. data/app/pb_kits/playbook/pb_detail/_detail.scss +2 -2
  107. data/app/pb_kits/playbook/pb_detail/_detail.tsx +5 -5
  108. data/app/pb_kits/playbook/pb_detail/detail.rb +1 -1
  109. data/app/pb_kits/playbook/pb_detail/detail.test.jsx +2 -2
  110. data/app/pb_kits/playbook/pb_dialog/_close_icon.tsx +2 -2
  111. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +42 -34
  112. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_body.tsx +1 -1
  113. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_footer.tsx +4 -5
  114. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.tsx +4 -4
  115. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default_swift.md +11 -0
  116. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +8 -4
  117. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +8 -4
  118. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_props_table.md +13 -0
  119. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_scrollable.jsx +4 -2
  120. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes_swift.md +18 -0
  121. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx +1 -1
  122. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status_swift.md +14 -0
  123. data/app/pb_kits/playbook/pb_dialog/docs/example.yml +7 -0
  124. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.tsx +5 -5
  125. data/app/pb_kits/playbook/pb_enhanced_element/element_observer.ts +1 -1
  126. data/app/pb_kits/playbook/pb_enhanced_element/index.ts +1 -1
  127. data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +1 -1
  128. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -1
  129. data/app/pb_kits/playbook/pb_flex/_flex.tsx +1 -1
  130. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +1 -1
  131. data/app/pb_kits/playbook/pb_form_group/_form_group.tsx +1 -1
  132. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +1 -1
  133. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +1 -1
  134. data/app/pb_kits/playbook/pb_hashtag/_hashtag.tsx +1 -1
  135. data/app/pb_kits/playbook/pb_highlight/_highlight.tsx +1 -1
  136. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +1 -1
  137. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default_swift.md +18 -0
  138. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_emphasis_swift.md +34 -0
  139. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_link_swift.md +18 -0
  140. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_modified_swift.md +13 -0
  141. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_props_swift.md +14 -0
  142. data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +6 -0
  143. data/app/pb_kits/playbook/pb_icon/_icon.tsx +1 -1
  144. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +1 -1
  145. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.tsx +1 -1
  146. data/app/pb_kits/playbook/pb_icon_value/_icon_value.tsx +1 -1
  147. data/app/pb_kits/playbook/pb_image/_image.tsx +1 -1
  148. data/app/pb_kits/playbook/pb_label_pill/_label_pill.tsx +1 -1
  149. data/app/pb_kits/playbook/pb_label_value/_label_value.tsx +1 -1
  150. data/app/pb_kits/playbook/pb_layout/_layout.tsx +1 -1
  151. data/app/pb_kits/playbook/pb_legend/_legend.tsx +1 -1
  152. data/app/pb_kits/playbook/pb_lightbox/Header/_lightbox_header.tsx +1 -1
  153. data/app/pb_kits/playbook/pb_lightbox/_lightbox.tsx +1 -1
  154. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +1 -1
  155. data/app/pb_kits/playbook/pb_list/_list.tsx +1 -1
  156. data/app/pb_kits/playbook/pb_list/_list_item.tsx +1 -1
  157. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +1 -1
  158. data/app/pb_kits/playbook/pb_map/_map.tsx +1 -1
  159. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -1
  160. data/app/pb_kits/playbook/pb_message/_message_mention.tsx +1 -1
  161. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +1 -1
  162. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.tsx +1 -1
  163. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.tsx +1 -1
  164. data/app/pb_kits/playbook/pb_nav/_item.tsx +1 -1
  165. data/app/pb_kits/playbook/pb_nav/_nav.tsx +1 -1
  166. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  167. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +1 -1
  168. data/app/pb_kits/playbook/pb_person/_person.tsx +1 -1
  169. data/app/pb_kits/playbook/pb_person/docs/_person_default_swift.md +8 -0
  170. data/app/pb_kits/playbook/pb_person/docs/_person_props_swift.md +5 -0
  171. data/app/pb_kits/playbook/pb_person/docs/example.yml +4 -0
  172. data/app/pb_kits/playbook/pb_person_contact/_person_contact.tsx +1 -1
  173. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +1 -1
  174. data/app/pb_kits/playbook/pb_pill/_pill.tsx +1 -1
  175. data/app/pb_kits/playbook/pb_popover/_popover.tsx +1 -1
  176. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +1 -1
  177. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.tsx +1 -1
  178. data/app/pb_kits/playbook/pb_progress_step/_progress_step.tsx +1 -1
  179. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.tsx +1 -1
  180. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  181. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +1 -1
  182. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +1 -1
  183. data/app/pb_kits/playbook/pb_select/_select.tsx +1 -1
  184. data/app/pb_kits/playbook/pb_select/docs/_select_default_swift.md +15 -0
  185. data/app/pb_kits/playbook/pb_select/docs/_select_error_swift.md +18 -0
  186. data/app/pb_kits/playbook/pb_select/docs/_select_props_table.md +8 -0
  187. data/app/pb_kits/playbook/pb_select/docs/example.yml +5 -0
  188. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.tsx +1 -1
  189. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.tsx +1 -1
  190. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.tsx +1 -1
  191. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +1 -1
  192. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.tsx +1 -1
  193. data/app/pb_kits/playbook/pb_source/_source.tsx +1 -1
  194. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +105 -53
  195. data/app/pb_kits/playbook/pb_star_rating/_star_rating.tsx +185 -63
  196. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_background_options.html.erb +2 -0
  197. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_background_options.jsx +25 -0
  198. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_color_options.html.erb +3 -0
  199. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_color_options.jsx +31 -0
  200. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.html.erb +6 -8
  201. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_default.jsx +19 -6
  202. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.html.erb +4 -1
  203. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_hide.jsx +30 -5
  204. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_number_config.html.erb +6 -0
  205. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_number_config.jsx +58 -0
  206. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_size_options.html.erb +16 -0
  207. data/app/pb_kits/playbook/pb_star_rating/docs/_star_rating_size_options.jsx +60 -0
  208. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +12 -5
  209. data/app/pb_kits/playbook/pb_star_rating/docs/index.js +8 -0
  210. data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +54 -26
  211. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +86 -6
  212. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +34 -34
  213. data/app/pb_kits/playbook/pb_star_rating/stars/primary_star.svg +3 -0
  214. data/app/pb_kits/playbook/pb_star_rating/stars/star_outline.svg +3 -0
  215. data/app/pb_kits/playbook/pb_star_rating/stars/subtle_dark_star.svg +3 -0
  216. data/app/pb_kits/playbook/pb_star_rating/stars/subtle_star.svg +3 -0
  217. data/app/pb_kits/playbook/pb_star_rating/stars/yellow_star.svg +3 -0
  218. data/app/pb_kits/playbook/pb_stat_change/_stat_change.tsx +1 -1
  219. data/app/pb_kits/playbook/pb_stat_value/_stat_value.tsx +1 -1
  220. data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
  221. data/app/pb_kits/playbook/pb_table/_table_row.tsx +1 -1
  222. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
  223. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +1 -1
  224. data/app/pb_kits/playbook/pb_time/_time.tsx +1 -1
  225. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
  226. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx +1 -1
  227. data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
  228. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  229. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -1
  230. data/app/pb_kits/playbook/pb_title/_title.scss +0 -5
  231. data/app/pb_kits/playbook/pb_title/_title.tsx +2 -5
  232. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +0 -19
  233. data/app/pb_kits/playbook/pb_title/title.rb +2 -9
  234. data/app/pb_kits/playbook/pb_title_count/_title_count.tsx +1 -1
  235. data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +1 -1
  236. data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
  237. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +1 -1
  238. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +1 -1
  239. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +1 -1
  240. data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
  241. data/app/pb_kits/playbook/pb_user/docs/_user_horizontal_swift.md +37 -0
  242. data/app/pb_kits/playbook/pb_user/docs/_user_props_table.md +10 -0
  243. data/app/pb_kits/playbook/pb_user/docs/_user_size_swift.md +35 -0
  244. data/app/pb_kits/playbook/pb_user/docs/_user_text_only_swift.md +27 -0
  245. data/app/pb_kits/playbook/pb_user/docs/_user_vertical_size_swift.md +35 -0
  246. data/app/pb_kits/playbook/pb_user/docs/example.yml +7 -0
  247. data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +1 -1
  248. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +1 -1
  249. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +1 -1
  250. data/app/pb_kits/playbook/tokens/exports/exports.d.ts +1 -0
  251. data/app/pb_kits/playbook/utilities/_truncate.scss +20 -0
  252. data/app/pb_kits/playbook/utilities/globalProps.ts +13 -2
  253. data/app/pb_kits/playbook/utilities/props.ts +2 -2
  254. data/app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js +21 -0
  255. data/dist/menu.yml +240 -168
  256. data/dist/playbook-rails.js +6 -6
  257. data/lib/playbook/classnames.rb +1 -0
  258. data/lib/playbook/kit_base.rb +2 -0
  259. data/lib/playbook/truncate.rb +29 -0
  260. data/lib/playbook/version.rb +2 -2
  261. metadata +95 -7
@@ -0,0 +1,14 @@
1
+ ![contact-detail-indicator](https://github.com/powerhome/playbook/assets/92755007/2a29d4b5-6e7b-43ff-8e7c-0dbeec11627e)
2
+
3
+ ```swift
4
+
5
+ VStack(alignment: .leading, spacing: Spacing.small) {
6
+ PBContact(type: .cell, value: "3491859988", detail: true)
7
+ PBContact(value: "5555555555", detail: true)
8
+ PBContact(type: .email, value: "email@example.com", detail: true)
9
+ PBContact(type: .work, value: "3245627482", detail: true)
10
+ PBContact(type: .ext, value: "1234", detail: true)
11
+ }
12
+
13
+
14
+ ```
@@ -8,3 +8,9 @@ examples:
8
8
  react:
9
9
  - contact_default: Default
10
10
  - contact_with_detail: Detail Indicator
11
+
12
+
13
+ swift:
14
+ - contact_default_swift: Default
15
+ - contact_with_detail_swift: Detail Indicator
16
+ - contact_props_swift: ""
@@ -18,7 +18,7 @@ type CurrencyProps = {
18
18
  data?: {[key:string]:string},
19
19
  decimals?: 'default' | 'matching',
20
20
  emphasized?: boolean,
21
- htmlOptions?: {[key: string]: string | number | boolean | Function},
21
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
22
22
  id?: string,
23
23
  label?: string,
24
24
  size?: 'sm' | 'md' | 'lg',
@@ -34,7 +34,7 @@ const sizes: {lg: 1, md: 3, sm: 4} = {
34
34
  sm: 4,
35
35
  }
36
36
 
37
- const Currency = (props: CurrencyProps) => {
37
+ const Currency = (props: CurrencyProps): React.ReactElement => {
38
38
  const {
39
39
  abbreviate = false,
40
40
  align = 'left',
@@ -2,7 +2,7 @@ import colors from "../tokens/exports/_colors.scss";
2
2
 
3
3
 
4
4
  // Map Data Color String Props to our SCSS Variables
5
- const mapColors = (array: string[]) => {
5
+ const mapColors = (array: string[]): string[] => {
6
6
  const regex = /(data)\-[1-8]/; //eslint-disable-line
7
7
 
8
8
  const newArray = array.map((item) => {
@@ -3,9 +3,6 @@ import typography from '../tokens/exports/_typography.scss'
3
3
 
4
4
  import { ThemeProps } from './themeTypes'
5
5
 
6
- import Highcharts from 'highcharts'
7
-
8
- const pbButtonHoverColor = '#004ebb'
9
6
  const highchartsDarkTheme: ThemeProps = {
10
7
  lang: {
11
8
  thousandsSep: ',',
@@ -22,7 +19,7 @@ const highchartsDarkTheme: ThemeProps = {
22
19
  chart: {
23
20
  borderWidth: 0,
24
21
  borderRadius: 0,
25
- plotBackgroundColor: null,
22
+ plotBackgroundColor: undefined,
26
23
  plotShadow: false,
27
24
  plotBorderWidth: 0,
28
25
  },
@@ -64,7 +61,7 @@ const highchartsDarkTheme: ThemeProps = {
64
61
  },
65
62
  },
66
63
  yAxis: {
67
- alternateGridColor: null,
64
+ alternateGridColor: undefined,
68
65
  minorTickInterval: null,
69
66
  gridLineColor: colors.border_dark,
70
67
  minorGridLineColor: colors.border_dark,
@@ -104,11 +101,6 @@ const highchartsDarkTheme: ThemeProps = {
104
101
  color: colors.text_dk_lighter,
105
102
  },
106
103
  },
107
- labels: {
108
- style: {
109
- color: colors.primary,
110
- },
111
- },
112
104
  tooltip: {
113
105
  backgroundColor: {
114
106
  linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
@@ -130,29 +122,15 @@ const highchartsDarkTheme: ThemeProps = {
130
122
  // specific to gauge
131
123
  // unfilled gauge color
132
124
  pane: {
133
- background: {
125
+ background: [{
134
126
  borderColor: colors.border_dark,
135
- },
127
+ }],
136
128
  },
137
129
 
138
130
  plotOptions: {
139
131
  series: {
140
132
  borderColor: colors.bg_dark_card,
141
133
  borderWidth: 2,
142
- type: 'area',
143
- nullColor: colors.text_dk_lighter,
144
- fillColor: {
145
- linearGradient: {
146
- x1: 0,
147
- y1: 0,
148
- x2: 0,
149
- y2: 1,
150
- },
151
- stops: [
152
- [0, Highcharts.getOptions().colors[0]],
153
- [1, 'white'],
154
- ],
155
- },
156
134
  threshold: null,
157
135
  },
158
136
  // PIE STYLES
@@ -184,15 +162,6 @@ const highchartsDarkTheme: ThemeProps = {
184
162
  marker: {
185
163
  lineColor: colors.border_dark,
186
164
  },
187
- area: {
188
- shadow: false,
189
- states: {
190
- hover: {
191
- lineWidth: 1,
192
- },
193
- },
194
- threshold: null,
195
- },
196
165
  },
197
166
 
198
167
  //TREEMAP CHART STYLES
@@ -210,7 +179,6 @@ const highchartsDarkTheme: ThemeProps = {
210
179
  colors.data_7,
211
180
  colors.data_8,
212
181
  ],
213
- colorByPoint: true,
214
182
  dataLabels: {
215
183
  enabled: true,
216
184
  style: {
@@ -229,27 +197,6 @@ const highchartsDarkTheme: ThemeProps = {
229
197
  ],
230
198
  traverseUpButton: {
231
199
  position: { y: -50 },
232
- text: '< Back',
233
- theme: {
234
- r: 4,
235
- states: {
236
- hover: {
237
- style: {
238
- fill: pbButtonHoverColor,
239
- },
240
- },
241
- },
242
- style: {
243
- fill: colors.royal,
244
- color: colors.white,
245
- fontSize: `${typography.text_small}`,
246
- fontWeight: typography.bold,
247
- fontFamily: `${typography.font_family_base}`,
248
- },
249
- stroke: colors.royal,
250
- height: 24,
251
- width: 90,
252
- },
253
200
  },
254
201
  },
255
202
  },
@@ -3,9 +3,6 @@ import typography from '../tokens/exports/_typography.scss'
3
3
 
4
4
  import { ThemeProps } from './themeTypes'
5
5
 
6
- import Highcharts from 'highcharts'
7
-
8
- const pbButtonHoverColor = '#004ebb'
9
6
  const highchartsTheme: ThemeProps = {
10
7
  lang: {
11
8
  thousandsSep: ',',
@@ -22,7 +19,7 @@ const highchartsTheme: ThemeProps = {
22
19
  chart: {
23
20
  borderWidth: 0,
24
21
  borderRadius: 0,
25
- plotBackgroundColor: null,
22
+ plotBackgroundColor: undefined,
26
23
  plotShadow: false,
27
24
  plotBorderWidth: 0,
28
25
  },
@@ -64,7 +61,7 @@ const highchartsTheme: ThemeProps = {
64
61
  },
65
62
  },
66
63
  yAxis: {
67
- alternateGridColor: null,
64
+ alternateGridColor: undefined,
68
65
  minorTickInterval: null,
69
66
  gridLineColor: colors.border_light,
70
67
  minorGridLineColor: colors.border_light,
@@ -104,11 +101,6 @@ const highchartsTheme: ThemeProps = {
104
101
  color: colors.text_lt_lighter,
105
102
  },
106
103
  },
107
- labels: {
108
- style: {
109
- color: colors.primary,
110
- },
111
- },
112
104
  tooltip: {
113
105
  backgroundColor: {
114
106
  linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
@@ -130,27 +122,13 @@ const highchartsTheme: ThemeProps = {
130
122
  // specific to gauge
131
123
  // unfilled gauge color
132
124
  pane: {
133
- background: {
125
+ background: [{
134
126
  borderColor: colors.border_light,
135
- },
127
+ }],
136
128
  },
137
129
 
138
130
  plotOptions: {
139
131
  series: {
140
- type: 'area',
141
- nullColor: colors.text_lt_lighter,
142
- fillColor: {
143
- linearGradient: {
144
- x1: 0,
145
- y1: 0,
146
- x2: 0,
147
- y2: 1,
148
- },
149
- stops: [
150
- [0, Highcharts.getOptions().colors[0]],
151
- [1, 'white'],
152
- ],
153
- },
154
132
  threshold: null,
155
133
  },
156
134
  // PIE STYLES
@@ -182,15 +160,6 @@ const highchartsTheme: ThemeProps = {
182
160
  marker: {
183
161
  lineColor: '#333',
184
162
  },
185
- area: {
186
- shadow: false,
187
- states: {
188
- hover: {
189
- lineWidth: 1,
190
- },
191
- },
192
- threshold: null,
193
- },
194
163
  },
195
164
 
196
165
  //TREEMAP CHART STYLES
@@ -208,7 +177,6 @@ const highchartsTheme: ThemeProps = {
208
177
  colors.data_7,
209
178
  colors.data_8,
210
179
  ],
211
- colorByPoint: true,
212
180
  dataLabels: {
213
181
  enabled: true,
214
182
  style: {
@@ -227,27 +195,6 @@ const highchartsTheme: ThemeProps = {
227
195
  ],
228
196
  traverseUpButton: {
229
197
  position: { y: -50 },
230
- text: '< Back',
231
- theme: {
232
- r: 4,
233
- states: {
234
- hover: {
235
- style: {
236
- fill: pbButtonHoverColor,
237
- },
238
- },
239
- },
240
- style: {
241
- fill: colors.royal,
242
- color: colors.white,
243
- fontSize: `${typography.text_small}`,
244
- fontWeight: typography.bold,
245
- fontFamily: `${typography.font_family_base}`,
246
- },
247
- stroke: colors.royal,
248
- height: 24,
249
- width: 90,
250
- },
251
198
  },
252
199
  },
253
200
  },
@@ -1,16 +1,20 @@
1
- export type ThemeProps = {
2
- lang?: {[key: string]: string}
3
- credits?: {[key: string]: boolean}
4
- colors?: string[]
5
- chart?: {[key: string]: any}
6
- title?: {[key: string]: string | {}}
7
- subtitle?: {[key: string]: string | {};}
8
- xAxis?: {[key: string]: any;}
9
- yAxis?: {[key: string]: any;}
10
- legend?: {[key: string]: string | {};}
11
- labels?: {[key: string]: {};}
12
- tooltip?: {[key: string]: any;}
13
- pane?: {[key: string]: {};}
14
- plotOptions?: {[key: string]: any;}
15
- colorKey?: string
16
- }
1
+ import { Options, LegendOptions } from "highcharts";
2
+ export interface ThemeProps
3
+ extends Pick<
4
+ Options,
5
+ | "credits"
6
+ | "chart"
7
+ | "colors"
8
+ | "lang"
9
+ | "title"
10
+ | "subtitle"
11
+ | "xAxis"
12
+ | "yAxis"
13
+ | "legend"
14
+ | "tooltip"
15
+ | "pane"
16
+ | "plotOptions"
17
+ > {
18
+ colorKey?: string;
19
+ legend?: LegendOptions;
20
+ }
@@ -12,7 +12,7 @@ type DashboardValueProps = {
12
12
  aria?: { [key: string]: string },
13
13
  className?: string,
14
14
  data?: { [key: string]: string },
15
- htmlOptions?: {[key: string]: string | number | boolean | Function},
15
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
16
16
  id?: string,
17
17
  statChange?: {
18
18
  change? : 'increase' | 'decrease' | 'neutral',
@@ -15,7 +15,7 @@ type PbDateProps = {
15
15
  aria?: { [key: string]: string };
16
16
  className?: string;
17
17
  data?: { [key: string]: string };
18
- htmlOptions?: { [key: string]: string | number | boolean | Function };
18
+ htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
19
19
  id?: string;
20
20
  showDayOfWeek?: boolean;
21
21
  showIcon?: boolean;
@@ -24,7 +24,7 @@ type PbDateProps = {
24
24
  value: Date;
25
25
  };
26
26
 
27
- const PbDate = (props: PbDateProps) => {
27
+ const PbDate = (props: PbDateProps): React.ReactElement => {
28
28
  const {
29
29
  aria = {},
30
30
  alignment = "left",
@@ -57,11 +57,11 @@ const PbDate = (props: PbDateProps) => {
57
57
 
58
58
  return (
59
59
  <div
60
- {...ariaProps}
61
- {...dataProps}
62
- {...htmlProps}
63
- className={classes}
64
- id={id}
60
+ {...ariaProps}
61
+ {...dataProps}
62
+ {...htmlProps}
63
+ className={classes}
64
+ id={id}
65
65
  >
66
66
  {unstyled
67
67
  ? <>
@@ -0,0 +1,11 @@
1
+ ![date-alignment](https://github.com/powerhome/playbook/assets/92755007/094761cb-5151-4de5-a8e1-f905455c2aca)
2
+
3
+ ```swift
4
+
5
+ VStack(spacing: Spacing.small) {
6
+ PBDate(Date(), variant: .standard, typography: .title4, alignment: .leading)
7
+ PBDate(Date(), variant: .withIcon(isStandard: true), typography: .title4, iconSize: .x1, alignment: .center)
8
+ PBDate(Date(), variant: .short, typography: .title4, alignment: .trailing)
9
+ }
10
+
11
+ ```
@@ -0,0 +1,16 @@
1
+ ![date-default](https://github.com/powerhome/playbook/assets/92755007/0d9f151d-2a18-445c-add3-8194c343bfea)
2
+
3
+
4
+ ```swift
5
+
6
+ VStack(alignment: .leading, spacing: Spacing.small) {
7
+ PBDate(Date(), variant: .short)
8
+ PBDate(Date(), variant: .dayDate)
9
+ PBDate(Date(), variant: .standard)
10
+ Spacer()
11
+ PBDate(Date(), variant: .short, typography: .title4)
12
+ PBDate(Date(), variant: .dayDate, typography: .title4)
13
+ PBDate(Date(), variant: .standard, typography: .title4)
14
+ }
15
+
16
+ ```
@@ -0,0 +1,8 @@
1
+ ### Props
2
+ | Name | Type | Description | Default | Values |
3
+ | --- | ----------- | --------- | --------- | --------- |
4
+ | **datestamp** | `Date` | Sets the date | | |
5
+ | **variant** | `Variant` | Changes the style | `.short` | `.short` `.dayDate` `.standard` `.withIcon(isStandard: true)` `withIcon(isStandard: false)` |
6
+ | **typography** | `PBFont` | Sets the font | `.caption` | `.title1` `.title2` `.title3` `.title4` `.body` `.buttonText` `.largeCaption` `.caption` `.subcaption` `.monogram` `.badgeText` `.detail` |
7
+ | **iconSize** | `PBIcon.IconSize` | Chances the icon's size | `.x1` | `xSmall` `small` `large` `x1` `x2` `x3` `x4` `x5` `x6` `x7` `x8` `x9` `x10` |
8
+ | **alignment** | `Alignment` | Changes the alignment | `.leading` | `.leading` `.trailing` |
@@ -0,0 +1,11 @@
1
+ ![date-unstyled](https://github.com/powerhome/playbook/assets/92755007/dc0ab7cf-0d97-407c-9aac-f53645eb6ee2)
2
+
3
+ ```swift
4
+
5
+ VStack(alignment: .leading, spacing: Spacing.small) {
6
+ PBDate(Date(), variant: .short, typography: .body)
7
+ PBDate(Date(), variant: .standard, typography: .title1)
8
+ PBDate(Date(), variant: .withIcon(isStandard: false), typography: .subcaption, iconSize: .xSmall)
9
+ }
10
+
11
+ ```
@@ -0,0 +1,14 @@
1
+ ![date-varients](https://github.com/powerhome/playbook/assets/92755007/bb240082-afb9-4802-af5f-7aaccec37aae)
2
+
3
+
4
+ ```swift
5
+
6
+ VStack(alignment: .leading, spacing: Spacing.small) {
7
+ PBDate(Date(), variant: .withIcon(isStandard: true), typography: .caption, iconSize: .xSmall)
8
+ PBDate(Date(), variant: .standard, typography: .title4)
9
+ PBDate(Date(), variant: .withIcon(isStandard: true), typography: .title4, iconSize: .x1)
10
+ PBDate(Date(), variant: .dayDate, typography: .title4)
11
+ PBDate(Date(), variant: .withIcon(isStandard: false), typography: .title4, iconSize: .x1)
12
+ }
13
+
14
+ ```
@@ -12,3 +12,10 @@ examples:
12
12
  - date_variants: Variants
13
13
  - date_alignment: Alignment
14
14
  - date_unstyled: Unstyled
15
+
16
+ swift:
17
+ - date_default_swift: Default
18
+ - date_variants_swift: Variants
19
+ - date_alignment_swift: Alignment
20
+ - date_unstyled_swift: Unstyled
21
+ - date_props_swift: ""
@@ -13,6 +13,7 @@ type DatePickerProps = {
13
13
  allowInput?: boolean,
14
14
  aria?: { [key: string]: string },
15
15
  className?: string,
16
+ customQuickPickDates: { override: boolean, dates: any[] },
16
17
  dark?: boolean,
17
18
  data?: { [key: string]: string },
18
19
  defaultDate?: string,
@@ -25,7 +26,7 @@ type DatePickerProps = {
25
26
  format?: string,
26
27
  hideIcon?: boolean,
27
28
  hideLabel?: boolean,
28
- htmlOptions?: {[key: string]: string | number | boolean | Function},
29
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
29
30
  id?: string,
30
31
  inLine?: boolean,
31
32
  inputAria?: { [key: string]: string },
@@ -56,6 +57,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
56
57
  allowInput = false,
57
58
  aria = {},
58
59
  className,
60
+ customQuickPickDates,
59
61
  dark = false,
60
62
  data = {},
61
63
  defaultDate = '',
@@ -104,6 +106,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
104
106
  useEffect(() => {
105
107
  datePickerHelper({
106
108
  allowInput,
109
+ customQuickPickDates,
107
110
  defaultDate,
108
111
  disableDate,
109
112
  disableRange,
@@ -5,6 +5,8 @@ module Playbook
5
5
  class DatePicker < Playbook::KitBase
6
6
  prop :allow_input, type: Playbook::Props::Boolean,
7
7
  default: false
8
+ prop :custom_quick_pick_dates, type: Playbook::Props::HashProp,
9
+ default: {}
8
10
  prop :dark, type: Playbook::Props::Boolean,
9
11
  default: false
10
12
  prop :default_date, type: Playbook::Props::String,
@@ -79,6 +81,7 @@ module Playbook
79
81
  def date_picker_config
80
82
  {
81
83
  allowInput: allow_input,
84
+ customQuickPickDates: custom_quick_pick_dates,
82
85
  defaultDate: default_date,
83
86
  disableDate: disable_date,
84
87
  disableRange: disable_range,
@@ -11,6 +11,7 @@ const getPositionElement = (element: string | Element) => {
11
11
 
12
12
  type DatePickerConfig = {
13
13
  closeOnSelect?: boolean,
14
+ customQuickPickDates: { override: boolean, dates: any[] },
14
15
  disableDate?: number[],
15
16
  disableRange?: number[],
16
17
  disableWeekdays?: number[],
@@ -34,6 +35,7 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
34
35
  const {
35
36
  allowInput,
36
37
  closeOnSelect = true,
38
+ customQuickPickDates = { override: true, dates: [] },
37
39
  defaultDate,
38
40
  disableDate,
39
41
  disableRange,
@@ -121,27 +123,26 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
121
123
  }
122
124
  }
123
125
 
124
- const setPlugins = (thisRangesEndToday: boolean) => {
126
+ const setPlugins = (thisRangesEndToday: boolean, customQuickPickDates: any) => {
125
127
  const pluginList = []
126
-
128
+
127
129
  // month and week selection
128
130
  if (selectionType === "month" || plugins.length > 0) {
129
131
  pluginList.push(monthSelectPlugin({ shorthand: true, dateFormat: 'F Y', altFormat: 'F Y' }))
130
132
  } else if ( selectionType === "week") {
131
133
  pluginList.push(weekSelect())
132
-
134
+
133
135
  } else if (selectionType === "quickpick") {
134
- //------- QUICKPICK VARIANT PLUGIN -------------//
135
- pluginList.push(quickPickPlugin(thisRangesEndToday))
136
+ //------- QUICKPICK VARIANT PLUGIN -------------//
137
+ pluginList.push(quickPickPlugin(thisRangesEndToday, customQuickPickDates))
136
138
  }
137
-
139
+
138
140
  // time selection
139
141
  if (enableTime) pluginList.push(timeSelectPlugin({ caption: timeCaption, showTimezone: showTimezone}))
140
-
141
-
142
+
142
143
  return pluginList
143
144
  }
144
-
145
+
145
146
  const getDateFormat = () => {
146
147
  return enableTime ? `${format} ${timeFormat}` : format
147
148
  }
@@ -181,7 +182,7 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
181
182
  onYearChange: [() => {
182
183
  yearChangeHook()
183
184
  }],
184
- plugins: setPlugins(thisRangesEndToday),
185
+ plugins: setPlugins(thisRangesEndToday, customQuickPickDates),
185
186
  position,
186
187
  positionElement: getPositionElement(positionElement),
187
188
  prevArrow: '<i class="far fa-angle-left"></i>',
@@ -0,0 +1,29 @@
1
+ <%= pb_rails("date_picker", props: {
2
+ allow_input: true,
3
+ custom_quick_pick_dates: {
4
+ dates: [
5
+ # Allow Playbook to handle the logic...
6
+ {
7
+ label: "Last 15 months",
8
+ value: {
9
+ timePeriod: "months",
10
+ amount: 15,
11
+ },
12
+ },
13
+ # Or, be explicit with an exact date range for more control...
14
+ {
15
+ label: "First Week of June 2022",
16
+ value: ["06/01/2022", "06/07/2022"],
17
+ },
18
+ ],
19
+ },
20
+ end_date_id: "quick-pick-end-date",
21
+ end_date_name: "quick-pick-end-date",
22
+ mode: "range",
23
+ picker_id: "date-picker-quick-pick-custom",
24
+ placeholder: "mm/dd/yyyy to mm/dd/yyyy",
25
+ selection_type: "quickpick",
26
+ start_date_id: "quick-pick-start-date",
27
+ start_date_name: "quick-pick-start-date"
28
+ }) %>
29
+
@@ -0,0 +1,34 @@
1
+ import React from "react"
2
+ import DatePicker from "../_date_picker"
3
+
4
+ const DatePickerQuickPickCustom = (props) => (
5
+ <>
6
+ <DatePicker
7
+ allowInput
8
+ customQuickPickDates={{
9
+ dates: [
10
+ // Allow Playbook to handle the logic...
11
+ {
12
+ label: "Last 15 months",
13
+ value: {
14
+ timePeriod: "months",
15
+ amount: 15,
16
+ },
17
+ },
18
+ // Or, be explicit with an exact date range for more control...
19
+ {
20
+ label: "First Week of June 2022",
21
+ value: ["06/01/2022", "06/07/2022"],
22
+ },
23
+ ],
24
+ }}
25
+ mode='range'
26
+ pickerId='date-picker-quick-pick-custom-override'
27
+ placeholder='mm/dd/yyyy to mm/dd/yyyy'
28
+ selectionType='quickpick'
29
+ {...props}
30
+ />
31
+ </>
32
+ )
33
+
34
+ export default DatePickerQuickPickCustom
@@ -0,0 +1,7 @@
1
+ The customQuickPickDates/custom_quick_pick_dates prop allows for the user/dev to define their own quick pick dates.
2
+ The prop accepts an object with two key/value pairs: dates & override (separate doc example below).
3
+
4
+ The dates property accepts an array of objects. Each object in the array has label and value properties. The label is what will be displayed in the UI of the dropdown menu. The value property is just the date that is going to be passed to the datepicker. The value property can be an array of two strings that represent a range, allowing for the dev to be extremely specific. Additionally, the dates array allows for a clean, simple API under that automatically converts dates in a common vernacular.
5
+
6
+ The timePeriod property accepts "days", "weeks", "months", "quarters" or "years", representing past time periods.
7
+ The amount property accepts any number.
@@ -0,0 +1,28 @@
1
+ <%= pb_rails("date_picker", props: {
2
+ allow_input: true,
3
+ custom_quick_pick_dates: {
4
+ override: false,
5
+ dates: [
6
+ {
7
+ label: "Last 15 months",
8
+ value: {
9
+ timePeriod: "months",
10
+ amount: 15,
11
+ },
12
+ },
13
+ {
14
+ label: "First Week of June 2022",
15
+ value: ["06/01/2022", "06/07/2022"],
16
+ },
17
+ ],
18
+ },
19
+ end_date_id: "quick-pick-end-date",
20
+ end_date_name: "quick-pick-end-date",
21
+ mode: "range",
22
+ picker_id: "date-picker-quick-pick-override",
23
+ placeholder: "mm/dd/yyyy to mm/dd/yyyy",
24
+ selection_type: "quickpick",
25
+ start_date_id: "quick-pick-start-date",
26
+ start_date_name: "quick-pick-start-date"
27
+ }) %>
28
+