playbook_ui 13.27.0 → 13.28.0.pre.alpha.PBNTR297gradientoverlay3029

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +3 -3
  3. data/app/pb_kits/playbook/index.js +3 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +3 -7
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +40 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.md +3 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.md +1 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/table_body.html.erb +2 -6
  10. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +14 -4
  11. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +11 -7
  12. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -6
  13. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +34 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +31 -0
  16. data/app/pb_kits/playbook/pb_avatar/Utilities/GetPlacementPropsHelper.tsx +16 -0
  17. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +16 -0
  18. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_avatar/avatar.rb +4 -0
  20. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +47 -0
  21. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.html.erb +46 -66
  22. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +8 -29
  23. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.md +3 -0
  24. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.html.erb +13 -33
  25. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +48 -67
  26. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.md +3 -0
  27. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +0 -20
  28. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +2 -2
  29. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +1 -6
  30. data/app/pb_kits/playbook/pb_badge/badge.html.erb +1 -6
  31. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +4 -1
  32. data/app/pb_kits/playbook/pb_bar_graph/barGraph.test.js +31 -0
  33. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +16 -0
  34. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +2 -1
  35. data/app/pb_kits/playbook/pb_bar_graph/docs/{_bar_graph_custom.html.erb → _bar_graph_custom_rails.html.erb} +3 -3
  36. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.md +2 -0
  37. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -1
  38. data/app/pb_kits/playbook/pb_body/_body.scss +3 -0
  39. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  40. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +4 -3
  41. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.html.erb +1 -6
  42. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -1
  43. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +7 -1
  44. data/app/pb_kits/playbook/pb_card/card.rb +1 -1
  45. data/app/pb_kits/playbook/pb_card/docs/_card_background.html.erb +20 -0
  46. data/app/pb_kits/playbook/pb_card/docs/_card_background.jsx +41 -1
  47. data/app/pb_kits/playbook/pb_card/docs/_card_background.md +1 -1
  48. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  49. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  50. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
  51. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +1 -2
  52. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +9 -3
  53. data/app/pb_kits/playbook/pb_circle_chart/circleChart.test.js +45 -0
  54. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +22 -1
  55. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +1 -6
  56. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +53 -0
  57. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +33 -16
  58. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleIcon.tsx +92 -0
  59. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +3 -75
  60. data/app/pb_kits/playbook/pb_collapsible/collapsible.html.erb +1 -6
  61. data/app/pb_kits/playbook/pb_collapsible/collapsible.test.js +24 -0
  62. data/app/pb_kits/playbook/pb_collapsible/collapsible_content.html.erb +1 -6
  63. data/app/pb_kits/playbook/pb_collapsible/collapsible_icon.html.erb +15 -0
  64. data/app/pb_kits/playbook/pb_collapsible/collapsible_icon.rb +37 -0
  65. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +1 -6
  66. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main.jsx +72 -0
  67. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main.md +3 -0
  68. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_rails.html.erb +19 -0
  69. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_rails.md +3 -0
  70. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon.jsx +73 -0
  71. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon.md +3 -0
  72. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon_rails.html.erb +20 -0
  73. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_custom_main_with_icon_rails.md +3 -0
  74. data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +7 -0
  75. data/app/pb_kits/playbook/pb_collapsible/docs/index.js +3 -1
  76. data/app/pb_kits/playbook/pb_collapsible/index.js +16 -6
  77. data/app/pb_kits/playbook/pb_contact/contact.html.erb +1 -6
  78. data/app/pb_kits/playbook/pb_currency/currency.html.erb +1 -6
  79. data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.ts +7 -1
  80. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.ts +9 -1
  81. data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.html.erb +1 -6
  82. data/app/pb_kits/playbook/pb_date/date.html.erb +1 -6
  83. data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.html.erb +1 -5
  84. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default_swift.md +61 -0
  85. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_props_swift.md +11 -0
  86. data/app/pb_kits/playbook/pb_date_range_inline/docs/example.yml +4 -1
  87. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.html.erb +1 -5
  88. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +1 -5
  89. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold_swift.md +32 -0
  90. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default_swift.md +17 -0
  91. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year_swift.md +19 -0
  92. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_props_swift.md +10 -0
  93. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reversed_swift.md +17 -0
  94. data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +7 -0
  95. data/app/pb_kits/playbook/pb_date_time/date_time.html.erb +1 -6
  96. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_alignment_swift.md +39 -0
  97. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default_swift.md +39 -0
  98. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_props_swift.md +15 -0
  99. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size_swift.md +78 -0
  100. data/app/pb_kits/playbook/pb_date_time/docs/example.yml +6 -0
  101. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +1 -6
  102. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.html.erb +1 -5
  103. data/app/pb_kits/playbook/pb_detail/_detail_mixins.scss +1 -1
  104. data/app/pb_kits/playbook/pb_docs/kit_example.html.erb +3 -3
  105. data/app/pb_kits/playbook/pb_draggable/_draggable.scss +10 -0
  106. data/app/pb_kits/playbook/pb_draggable/_draggable.tsx +53 -0
  107. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +92 -0
  108. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_default.jsx +53 -0
  109. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers.jsx +159 -0
  110. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards.jsx +121 -0
  111. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +9 -0
  112. data/app/pb_kits/playbook/pb_draggable/docs/index.js +3 -0
  113. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +65 -0
  114. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +54 -0
  115. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +57 -0
  116. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +6 -1
  117. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +5 -6
  118. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +3 -3
  119. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.md +1 -1
  120. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.md +5 -6
  121. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_subcomponent_structure.html.erb → _dropdown_subcomponent_structure_rails.html.erb} +3 -3
  122. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure_rails.md +6 -0
  123. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +6 -3
  124. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.md +3 -3
  125. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_with_custom_display.html.erb → _dropdown_with_custom_display_rails.html.erb} +11 -6
  126. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.md +5 -0
  127. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.jsx +5 -2
  128. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.md +1 -1
  129. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_with_custom_options.html.erb → _dropdown_with_custom_options_rails.html.erb} +16 -11
  130. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options_rails.md +1 -0
  131. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.html.erb +3 -3
  132. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.md +1 -1
  133. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.jsx +5 -2
  134. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.md +1 -1
  135. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_with_custom_trigger.html.erb → _dropdown_with_custom_trigger_rails.html.erb} +16 -11
  136. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger_rails.md +1 -0
  137. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -3
  138. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.md +1 -1
  139. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +6 -6
  140. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +1 -0
  141. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +1 -0
  142. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +1 -1
  143. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +3 -9
  144. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.rb +2 -6
  145. data/app/pb_kits/playbook/pb_dropdown/index.js +2 -1
  146. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +6 -14
  147. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_children_swift.md +23 -0
  148. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_close_swift.md +7 -0
  149. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default_swift.md +9 -0
  150. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dismiss_with_timer_swift.md +22 -0
  151. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_swift.md +9 -0
  152. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_positions_swift.md +62 -0
  153. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_props_swift.md +8 -0
  154. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +9 -0
  155. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +1 -6
  156. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +11 -1
  157. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  158. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +17 -2
  159. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +4 -1
  160. data/app/pb_kits/playbook/pb_gauge/gauge.rb +6 -1
  161. data/app/pb_kits/playbook/pb_gauge/gauge.test.js +35 -0
  162. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +1 -6
  163. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.html.erb +1 -6
  164. data/app/pb_kits/playbook/pb_icon_value/icon_value.html.erb +1 -6
  165. data/app/pb_kits/playbook/pb_label_pill/label_pill.html.erb +1 -6
  166. data/app/pb_kits/playbook/pb_label_value/label_value.html.erb +1 -6
  167. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +8 -2
  168. data/app/pb_kits/playbook/pb_line_graph/lineGraph.test.js +52 -0
  169. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +22 -1
  170. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -5
  171. data/app/pb_kits/playbook/pb_message/message_mention.html.erb +6 -6
  172. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +8 -0
  173. data/app/pb_kits/playbook/pb_multiple_users/multiple_users.html.erb +1 -6
  174. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.html.erb +1 -6
  175. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +12 -0
  176. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +93 -0
  177. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.jsx +40 -0
  178. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -0
  179. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.jsx +36 -0
  180. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.md +5 -0
  181. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +4 -0
  182. data/app/pb_kits/playbook/pb_overlay/docs/index.js +2 -0
  183. data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +66 -0
  184. data/app/pb_kits/playbook/pb_pagination/_pagination.scss +1 -1
  185. data/app/pb_kits/playbook/pb_pagination/pagination.html.erb +1 -6
  186. data/app/pb_kits/playbook/pb_person/person.html.erb +1 -6
  187. data/app/pb_kits/playbook/pb_person_contact/person_contact.html.erb +1 -6
  188. data/app/pb_kits/playbook/pb_pill/docs/_description.md +1 -1
  189. data/app/pb_kits/playbook/pb_pill/pill.html.erb +1 -6
  190. data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +1 -6
  191. data/app/pb_kits/playbook/pb_select/_select.scss +8 -0
  192. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +1 -0
  193. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.tsx +30 -32
  194. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.html.erb +0 -2
  195. data/app/pb_kits/playbook/pb_source/source.html.erb +1 -5
  196. data/app/pb_kits/playbook/pb_stat_change/stat_change.html.erb +1 -5
  197. data/app/pb_kits/playbook/pb_stat_value/stat_value.html.erb +1 -5
  198. data/app/pb_kits/playbook/pb_table/_table.tsx +5 -0
  199. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.jsx +33 -32
  200. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.md +1 -1
  201. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column_rails.md +2 -0
  202. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.jsx +33 -33
  203. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.md +1 -1
  204. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row_rails.html.erb +34 -0
  205. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row_rails.md +2 -0
  206. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.jsx +51 -50
  207. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.md +1 -1
  208. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data_rails.html.erb +54 -0
  209. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data_rails.md +2 -0
  210. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +37 -38
  211. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.md +1 -0
  212. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row_rails.html.erb +53 -0
  213. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row_rails.md +1 -0
  214. data/app/pb_kits/playbook/pb_table/docs/{_table_alignment_row.html.erb → _table_outer_padding.html.erb} +7 -7
  215. data/app/pb_kits/playbook/pb_table/docs/_table_outer_padding.jsx +76 -0
  216. data/app/pb_kits/playbook/pb_table/docs/_table_outer_padding.md +1 -0
  217. data/app/pb_kits/playbook/pb_table/docs/example.yml +9 -9
  218. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -0
  219. data/app/pb_kits/playbook/pb_table/styles/_all.scss +1 -0
  220. data/app/pb_kits/playbook/pb_table/styles/_outer_padding.scss +21 -0
  221. data/app/pb_kits/playbook/pb_table/table.rb +14 -1
  222. data/app/pb_kits/playbook/pb_table/table.test.js +5 -1
  223. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +19 -0
  224. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.html.erb +1 -5
  225. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +1 -5
  226. data/app/pb_kits/playbook/pb_timeline/item.html.erb +1 -5
  227. data/app/pb_kits/playbook/pb_timeline/timeline.html.erb +1 -5
  228. data/app/pb_kits/playbook/pb_timestamp/timestamp.html.erb +1 -6
  229. data/app/pb_kits/playbook/pb_title/_title.scss +5 -1
  230. data/app/pb_kits/playbook/pb_title_count/title_count.html.erb +1 -6
  231. data/app/pb_kits/playbook/pb_title_detail/title_detail.html.erb +1 -5
  232. data/app/pb_kits/playbook/pb_tooltip/index.js +1 -0
  233. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +12 -9
  234. data/app/pb_kits/playbook/pb_treemap_chart/treemapChart.test.js +61 -0
  235. data/app/pb_kits/playbook/pb_treemap_chart/treemap_chart.rb +6 -1
  236. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.html.erb +1 -6
  237. data/app/pb_kits/playbook/playbook-doc.js +4 -0
  238. data/app/pb_kits/playbook/tokens/_titles.scss +5 -1
  239. data/app/pb_kits/playbook/tokens/_vertical_align.scss +18 -0
  240. data/app/pb_kits/playbook/utilities/_vertical_align.scss +16 -0
  241. data/app/pb_kits/playbook/utilities/globalProps.ts +12 -1
  242. data/dist/menu.yml +9 -4
  243. data/dist/playbook-rails.js +6 -6
  244. data/lib/playbook/classnames.rb +1 -0
  245. data/lib/playbook/forms/builder/dropdown_field.rb +14 -0
  246. data/lib/playbook/forms/builder/phone_number_field.rb +12 -0
  247. data/lib/playbook/forms/builder.rb +2 -0
  248. data/lib/playbook/kit_base.rb +3 -1
  249. data/lib/playbook/version.rb +2 -2
  250. data/lib/playbook/vertical_align.rb +37 -0
  251. metadata +94 -14
  252. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.html.erb +0 -63
  253. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +0 -52
  254. /data/app/pb_kits/playbook/pb_table/docs/{_table_alignment_column.html.erb → _table_alignment_column_rails.html.erb} +0 -0
@@ -0,0 +1,76 @@
1
+ import React from 'react'
2
+
3
+ import Table from '../_table'
4
+ import Button from '../../pb_button/_button'
5
+
6
+ const TableOuterPadding = (props) => {
7
+ return (
8
+ <Table
9
+ outerPadding="sm"
10
+ size="sm"
11
+ {...props}
12
+ >
13
+ <thead>
14
+ <tr>
15
+ <th>{'Column 1'}</th>
16
+ <th>{'Column 2'}</th>
17
+ <th>{'Column 3'}</th>
18
+ <th>{'Column 4'}</th>
19
+ <th>{''}</th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
23
+ <tr>
24
+ <td>{'Value 1'}</td>
25
+ <td>{'Value 2'}</td>
26
+ <td>{'Value 3'}</td>
27
+ <td>{'Value 4'}</td>
28
+ <td align="right">
29
+ {' '}
30
+ <Button
31
+ onClick={() => alert('button clicked!')}
32
+ text="Action"
33
+ variant="secondary"
34
+ {...props}
35
+ />
36
+ {' '}
37
+ </td>
38
+ </tr>
39
+ <tr>
40
+ <td>{'Value 1'}</td>
41
+ <td>{'Value 2'}</td>
42
+ <td>{'Value 3'}</td>
43
+ <td>{'Value 4'}</td>
44
+ <td align="right">
45
+ {' '}
46
+ <Button
47
+ onClick={() => alert('button clicked!')}
48
+ text="Action"
49
+ variant="secondary"
50
+ {...props}
51
+ />
52
+ {' '}
53
+ </td>
54
+ </tr>
55
+ <tr>
56
+ <td>{'Value 1'}</td>
57
+ <td>{'Value 2'}</td>
58
+ <td>{'Value 3'}</td>
59
+ <td>{'Value 4'}</td>
60
+ <td align="right">
61
+ {' '}
62
+ <Button
63
+ onClick={() => alert('button clicked!')}
64
+ text="Action"
65
+ variant="secondary"
66
+ {...props}
67
+ />
68
+ {' '}
69
+ </td>
70
+ </tr>
71
+ </tbody>
72
+ </Table>
73
+ )
74
+ }
75
+
76
+ export default TableOuterPadding
@@ -0,0 +1 @@
1
+ Pass any of our spacing tokens to the `outerPadding` / `outer_padding` prop to customize a table's outer padding (both the left padding of the first column and the right padding of the last column).
@@ -5,10 +5,10 @@ examples:
5
5
  - table_lg: Large
6
6
  - table_sticky: Sticky Header
7
7
  - table_header: Table Header
8
- - table_alignment_row: Row Alignment
9
- - table_alignment_column: Column Alignment
10
- - table_alignment_shift_row: Shift Row
11
- - table_alignment_shift_data: Shift Column Data
8
+ - table_alignment_row_rails: Row Alignment
9
+ - table_alignment_column_rails: Cell Alignment
10
+ - table_alignment_shift_row_rails: Row Shift
11
+ - table_alignment_shift_data_rails: Cell Shift
12
12
  - table_side_highlight: Side Highlight
13
13
  - table_container: Table Container Off
14
14
  - table_disable_hover: Disable Hover
@@ -26,7 +26,7 @@ examples:
26
26
  - table_striped: Striped Table
27
27
  - table_with_subcomponents_rails: Table with Sub Components (Table Elements)
28
28
  - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
29
-
29
+ - table_outer_padding: Outer Padding
30
30
 
31
31
  react:
32
32
  - table_sm: Small
@@ -34,9 +34,9 @@ examples:
34
34
  - table_lg: Large
35
35
  - table_sticky: Sticky Header
36
36
  - table_alignment_row: Row Alignment
37
- - table_alignment_column: Column Alignment
38
- - table_alignment_shift_row: Shift Row
39
- - table_alignment_shift_data: Shift Column Data
37
+ - table_alignment_column: Cell Alignment
38
+ - table_alignment_shift_row: Row Shift
39
+ - table_alignment_shift_data: Cell Shift
40
40
  - table_side_highlight: Side Highlight
41
41
  - table_container: Table Container Off
42
42
  - table_disable_hover: Disable Hover
@@ -54,4 +54,4 @@ examples:
54
54
  - table_striped: Striped Table
55
55
  - table_with_subcomponents: Table with Sub Components (Table Elements)
56
56
  - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
57
-
57
+ - table_outer_padding: Outer Padding
@@ -24,3 +24,4 @@ export { default as TableStriped } from './_table_striped.jsx'
24
24
  export { default as TableDiv } from './_table_div.jsx'
25
25
  export { default as TableWithSubcomponents } from './_table_with_subcomponents.jsx'
26
26
  export { default as TableWithSubcomponentsAsDivs } from './_table_with_subcomponents_as_divs.jsx'
27
+ export { default as TableOuterPadding } from './_table_outer_padding.jsx'
@@ -19,3 +19,4 @@
19
19
  @import "vertical_border";
20
20
  @import "table_header";
21
21
  @import "striped";
22
+ @import "outer_padding";
@@ -0,0 +1,21 @@
1
+ @import "../../tokens/spacing";
2
+
3
+ [class^=pb_table] {
4
+ @each $name, $value in $spaces {
5
+ &.outer_padding_#{$name} {
6
+ td:first-child,
7
+ th:first-child,
8
+ .pb_table_td:first-child,
9
+ .pb_table_th:first-child {
10
+ padding-left: #{$value} !important;
11
+ }
12
+
13
+ td:last-child,
14
+ th:last-child,
15
+ .pb_table_td:last-child,
16
+ .pb_table_th:last-child {
17
+ padding-right: #{$value} !important;
18
+ }
19
+ }
20
+ }
21
+ }
@@ -30,12 +30,16 @@ module Playbook
30
30
  prop :tag, type: Playbook::Props::Enum,
31
31
  values: %w[table div],
32
32
  default: "table"
33
+ prop :outer_padding, type: Playbook::Props::Enum,
34
+ values: ["none", "xxs", "xs", "sm", "md", "lg", "xl", nil],
35
+ default: nil
33
36
 
34
37
  def classname
35
38
  generate_classname(
36
39
  "pb_table", "table-#{size}", single_line_class, dark_class,
37
40
  disable_hover_class, container_class, data_table_class, sticky_class, collapse_class,
38
- vertical_border_class, striped_class, "table-responsive-#{responsive}", separator: " "
41
+ vertical_border_class, striped_class, outer_padding_class,
42
+ "table-responsive-#{responsive}", separator: " "
39
43
  )
40
44
  end
41
45
 
@@ -76,6 +80,15 @@ module Playbook
76
80
  def vertical_border_class
77
81
  vertical_border ? "vertical-border" : nil
78
82
  end
83
+
84
+ def outer_padding_class
85
+ if outer_padding.nil?
86
+ outer_padding
87
+ else
88
+ space_css_name = outer_padding != "none" ? "space_" : ""
89
+ outer_padding.present? ? "outer_padding_#{space_css_name}#{outer_padding}" : nil
90
+ end
91
+ end
79
92
  end
80
93
  end
81
94
  end
@@ -52,7 +52,6 @@ const TableTagTable = () => {
52
52
  );
53
53
  };
54
54
 
55
-
56
55
  const props = {
57
56
  data: { testid: "table" },
58
57
  sticky: false
@@ -161,3 +160,8 @@ test("Renders Table.Cell subkit for HTML Table elements Table", () => {
161
160
  expect(head).toBeInTheDocument()
162
161
  expect(head.tagName).toBe("TD")
163
162
  })
163
+
164
+ test("Should have outerPadding class", () => {
165
+ const kit = renderKit(Table, props, { outerPadding: "sm" })
166
+ expect(kit).toHaveClass("pb_table table-sm table-responsive-collapse table-card outer_padding_space_sm table-collapse-sm")
167
+ })
@@ -76,6 +76,25 @@
76
76
  .text_input {
77
77
  border-color: $error_dark;
78
78
  }
79
+ [class*=pb_body_kit_negative] {
80
+ color: $error_dark;
81
+ }
82
+ }
83
+ .text_input_wrapper_add_on {
84
+ .add-on {
85
+ &-right {
86
+ .add-on-card {
87
+ border: 1px solid $error_dark;
88
+ border-left: 0;
89
+ }
90
+ }
91
+ &-left {
92
+ .add-on-card {
93
+ border: 1px solid $error_dark;
94
+ border-right: 0;
95
+ }
96
+ }
97
+ }
79
98
  }
80
99
  }
81
100
  }
@@ -1,8 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
6
2
  <div class="pb_time_range_inline_wrapper">
7
3
  <% if object.icon == true %>
8
4
  <%= pb_rails(object.text_kit, props: { tag: "span", dark: object.dark, color: object.icon_color, text: pb_rails("icon", props: { icon: "clock", dark: object.dark, classname:"pb_time_range_inline_icon", fixed_width: true, size: object.size }) }) %>
@@ -1,8 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
6
2
 
7
3
  <%= pb_rails("body", props: { color: "light", dark: object.dark, classname: "pb_time_stacked time-spacing" }) do %>
8
4
  <time>
@@ -1,8 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
6
2
 
7
3
  <div class="pb_timeline_item_left_block">
8
4
  <% if object.date.present? %>
@@ -1,7 +1,3 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
6
2
  <%= content.presence %>
7
3
  <% end %>
@@ -1,9 +1,4 @@
1
- <%= content_tag(:div,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
7
2
 
8
3
  <% if object.unstyled %>
9
4
  <div><%= object.timestamp_text %></div>
@@ -49,6 +49,10 @@
49
49
  }
50
50
 
51
51
  &.dark {
52
- @include pb_title_dark;
52
+ @include pb_title_dark;
53
+ }
54
+
55
+ &.dark[class*=_link] {
56
+ @include pb_title_dark_link;
53
57
  }
54
58
  }
@@ -1,9 +1,4 @@
1
- <%= content_tag(:div,
2
- aria: object.aria,
3
- class: object.classname,
4
- data: object.data,
5
- id: object.id,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
7
2
  <%= pb_rails("title", props: {
8
3
  dark: object.dark,
9
4
  size: object.title_size,
@@ -1,8 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
6
2
  <%= pb_rails("title", props: { text: object.title, size: 4 }) %>
7
3
  <%= pb_rails("body", props: { text: object.detail, color: "light" }) %>
8
4
  <% end %>
@@ -58,6 +58,7 @@ export default class PbTooltip extends PbEnhancedElement {
58
58
 
59
59
  this.popper = createPopper(trigger, this.tooltip, {
60
60
  placement: this.position,
61
+ strategy: 'fixed',
61
62
  modifiers: [
62
63
  {
63
64
  name: 'offset',
@@ -10,6 +10,7 @@ import { highchartsTheme } from "../pb_dashboard/pbChartsLightTheme";
10
10
  import { highchartsDarkTheme } from "../pb_dashboard/pbChartsDarkTheme";
11
11
  import mapColors from "../pb_dashboard/pbChartsColorsHelper";
12
12
  import treemap from 'highcharts/modules/treemap'
13
+ import { merge } from 'lodash'
13
14
 
14
15
  type TreemapChartProps = {
15
16
  chartData: {
@@ -21,6 +22,7 @@ type TreemapChartProps = {
21
22
  }[];
22
23
  className?: string;
23
24
  colors: string[];
25
+ customOptions?: Partial<Highcharts.Options>;
24
26
  dark?: boolean;
25
27
  drillable: boolean;
26
28
  grouped: boolean;
@@ -39,6 +41,7 @@ const TreemapChart = ({
39
41
  data = {},
40
42
  chartData,
41
43
  colors,
44
+ customOptions = {},
42
45
  dark = false,
43
46
  drillable = false,
44
47
  grouped = false,
@@ -96,20 +99,20 @@ const TreemapChart = ({
96
99
 
97
100
  useEffect(() => {
98
101
 
99
- setOptions({ ...staticOptions });
102
+ setOptions(merge(staticOptions, customOptions));
100
103
  }, [chartData]);
101
104
 
102
105
  return (
103
106
  <HighchartsReact
104
- containerProps={{
105
- className: classnames(globalProps(props), "pb_treemap_chart"),
106
- id: id,
107
- ...ariaProps,
108
- ...dataProps,
109
- ...htmlProps
107
+ containerProps={{
108
+ className: classnames(globalProps(props), "pb_treemap_chart"),
109
+ id: id,
110
+ ...ariaProps,
111
+ ...dataProps,
112
+ ...htmlProps
110
113
  }}
111
- highcharts={Highcharts}
112
- options={options}
114
+ highcharts={Highcharts}
115
+ options={options}
113
116
  />
114
117
  );
115
118
  };
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import { render, screen } from '../utilities/test-utils';
3
+ import TreemapChart from './_treemap_chart';
4
+
5
+ beforeEach(() => {
6
+ // Silences error logs within the test suite.
7
+ jest.spyOn(console, 'error');
8
+ jest.spyOn(console, 'warn');
9
+ console.error.mockImplementation(() => {});
10
+ console.warn.mockImplementation(() => {});
11
+ });
12
+
13
+ afterEach(() => {
14
+ console.error.mockRestore();
15
+ console.warn.mockRestore();
16
+ });
17
+
18
+ const testId = 'treemapchart1';
19
+
20
+ test('uses exact classname', () => {
21
+ const data = [
22
+ {
23
+ name: "Pepperoni",
24
+ parent: "Toppings",
25
+ value: 600,
26
+ }, {
27
+ name: "Cheese",
28
+ parent: "Toppings",
29
+ value: 510,
30
+ }, {
31
+ name: "Mushroom",
32
+ parent: "Toppings",
33
+ value: 330,
34
+ },{
35
+ name: "Onions",
36
+ parent: "Toppings",
37
+ value: 250,
38
+ }, {
39
+ name: "Olives",
40
+ parent: "Toppings",
41
+ value: 204,
42
+ }, {
43
+ name: "Pineapple",
44
+ parent: "Toppings",
45
+ value: 90,
46
+ }, {
47
+ name: "Pizza Toppings",
48
+ id: "Toppings",
49
+ },
50
+ ]
51
+ render(
52
+ <TreemapChart
53
+ chartData={data}
54
+ data={{ testid: testId }}
55
+ id="tree-map-id"
56
+ />
57
+ );
58
+
59
+ const kit = screen.getByTestId(testId);
60
+ expect(kit).toHaveClass('pb_treemap_chart');
61
+ });
@@ -7,6 +7,7 @@ module Playbook
7
7
  default: []
8
8
  prop :colors, type: Playbook::Props::Array,
9
9
  default: []
10
+ prop :custom_options, default: {}
10
11
  prop :drillable, type: Playbook::Props::Boolean, default: false
11
12
  prop :grouped, type: Playbook::Props::Boolean, default: false
12
13
  prop :height
@@ -19,7 +20,7 @@ module Playbook
19
20
  "treemap"
20
21
  end
21
22
 
22
- def chart_options
23
+ def standard_options
23
24
  {
24
25
  chartData: chart_data,
25
26
  className: classname,
@@ -35,6 +36,10 @@ module Playbook
35
36
  }
36
37
  end
37
38
 
39
+ def chart_options
40
+ standard_options.deep_merge(custom_options)
41
+ end
42
+
38
43
  def classname
39
44
  generate_classname("pb_treemap_chart")
40
45
  end
@@ -1,9 +1,4 @@
1
- <%= content_tag(:div,
2
- aria: object.aria,
3
- class: object.classname,
4
- data: object.data,
5
- id: object.id,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag do %>
7
2
  <%= pb_rails("caption", props: {dark: object.dark, text: object.day_of_week}) %>
8
3
  <%= pb_rails("title", props: {dark: object.dark, size: 4, tag: "span", text: object.formatted_month_and_day}) %>
9
4
  <% end %>
@@ -34,6 +34,7 @@ import * as DateYearStacked from 'pb_date_year_stacked/docs'
34
34
  import * as Detail from 'pb_detail/docs'
35
35
  import * as Dialog from 'pb_dialog/docs'
36
36
  import * as DistributionBarDocs from 'pb_distribution_bar/docs'
37
+ import * as Draggable from 'pb_draggable/docs'
37
38
  import * as Dropdown from 'pb_dropdown/docs'
38
39
  import * as FileUpload from 'pb_file_upload/docs'
39
40
  import * as Filter from 'pb_filter/docs'
@@ -65,6 +66,7 @@ import * as MultipleUsers from 'pb_multiple_users/docs'
65
66
  import * as MultipleUsersStacked from 'pb_multiple_users_stacked/docs'
66
67
  import * as Nav from 'pb_nav/docs'
67
68
  import * as OnlineStatus from 'pb_online_status/docs'
69
+ import * as Overlay from 'pb_overlay/docs'
68
70
  import * as Passphrase from 'pb_passphrase/docs'
69
71
  import * as PbReactPopover from 'pb_popover/docs'
70
72
  import * as Person from 'pb_person/docs'
@@ -137,6 +139,7 @@ WebpackerReact.registerComponents({
137
139
  ...Detail,
138
140
  ...Dialog,
139
141
  ...DistributionBarDocs,
142
+ ...Draggable,
140
143
  ...Dropdown,
141
144
  ...FileUpload,
142
145
  ...Filter,
@@ -168,6 +171,7 @@ WebpackerReact.registerComponents({
168
171
  ...MultipleUsersStacked,
169
172
  ...Nav,
170
173
  ...OnlineStatus,
174
+ ...Overlay,
171
175
  ...Passphrase,
172
176
  ...PbReactPopover,
173
177
  ...Person,
@@ -34,7 +34,11 @@
34
34
  }
35
35
 
36
36
  @mixin pb_title_dark {
37
- color: $text_dk_default;
37
+ color: $text_dk_default;
38
+ }
39
+
40
+ @mixin pb_title_dark_link {
41
+ color: $active_dark;
38
42
  }
39
43
 
40
44
  @mixin pb_title_bold {
@@ -0,0 +1,18 @@
1
+ $vertical_align_baseline: baseline !default;
2
+ $vertical_align_sub: sub !default;
3
+ $vertical_align_super: super !default;
4
+ $vertical_align_text_top: text-top !default;
5
+ $vertical_align_text_bottom: text-bottom !default;
6
+ $vertical_align_middle: middle !default;
7
+ $vertical_align_top: top !default;
8
+ $vertical_align_bottom: bottom !default;
9
+ $vertical_align: (
10
+ baseline: $vertical_align_baseline,
11
+ sub: $vertical_align_sub,
12
+ super: $vertical_align_super,
13
+ text_top: $vertical_align_text_top,
14
+ text_bottom: $vertical_align_text_bottom,
15
+ middle: $vertical_align_middle,
16
+ top: $vertical_align_top,
17
+ bottom: $vertical_align_bottom
18
+ );
@@ -0,0 +1,16 @@
1
+ @import "../tokens/vertical_align";
2
+
3
+
4
+ $vertical_align_classes: (
5
+ vertical_align_baseline: $vertical_align_baseline,
6
+ vertical_align_sub: $vertical_align_sub,
7
+ vertical_align_super: $vertical_align_super,
8
+ vertical_align_text_top: $vertical_align_text_top,
9
+ vertical_align_text_bottom: $vertical_align_text_bottom,
10
+ vertical_align_middle: $vertical_align_middle,
11
+ vertical_align_top: $vertical_align_top,
12
+ vertical_align_bottom: $vertical_align_bottom,
13
+ );
14
+
15
+
16
+ @include global_props_responsive_css($vertical_align, 'vertical_align', 'vertical-align');
@@ -156,6 +156,10 @@ type Truncate = {
156
156
  truncate?: TruncateType
157
157
  }
158
158
 
159
+ type VerticalAlign = {
160
+ verticalAlign?: "baseline" | "super" | "top" | "middle" | "bottom" | "sub" | "text-top" | "text-bottom"
161
+ }
162
+
159
163
  type ZIndexType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
160
164
  type ZIndexResponsiveType = {[key: string]: ZIndexType}
161
165
  type ZIndex = {
@@ -167,7 +171,7 @@ export type GlobalProps = AlignContent & AlignItems & AlignSelf &
167
171
  BorderRadius & Cursor & Dark & Display & DisplaySizes & Flex & FlexDirection &
168
172
  FlexGrow & FlexShrink & FlexWrap & JustifyContent & JustifySelf &
169
173
  LineHeight & Margin & MaxWidth & NumberSpacing & Order & Overflow & Padding &
170
- Position & Shadow & TextAlign & Truncate & ZIndex & { hover?: string } & Top & Right & Bottom & Left;
174
+ Position & Shadow & TextAlign & Truncate & VerticalAlign & ZIndex & { hover?: string } & Top & Right & Bottom & Left;
171
175
 
172
176
  const getResponsivePropClasses = (prop: {[key: string]: string}, classPrefix: string) => {
173
177
  const keys: string[] = Object.keys(prop)
@@ -470,6 +474,13 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
470
474
  } else {
471
475
  return textAlign ? `text_align_${textAlign} ` : ''
472
476
  }
477
+ },
478
+ verticalAlignProps: ({ verticalAlign }: VerticalAlign) => {
479
+ if (typeof verticalAlign === 'object') {
480
+ return getResponsivePropClasses(verticalAlign, 'vertical_align')
481
+ } else {
482
+ return verticalAlign ? `vertical_align_${verticalAlign} ` : ''
483
+ }
473
484
  }
474
485
  }
475
486
 
data/dist/menu.yml CHANGED
@@ -255,9 +255,9 @@ kits:
255
255
  description: Playbook's date picker is built using flatpickr, a vanilla js library. Common date picker use cases and features have been adapted into simple prop based configuration detailed in the docs below.
256
256
  status: "stable"
257
257
  - name: dropdown
258
- platforms: *react_only
258
+ platforms: *web
259
259
  description: ""
260
- status: "beta"
260
+ status: "stable"
261
261
  - name: "multi_level_select"
262
262
  platforms: *web
263
263
  description: The MultiLevelSelect kit renders a multi leveled select dropdown based on data from the user.
@@ -352,6 +352,12 @@ kits:
352
352
  platforms: *web
353
353
  description:
354
354
  status: "stable"
355
+ - name: "overlay"
356
+ platforms: *react_only
357
+ - name: "draggable"
358
+ platforms: *react_only
359
+ description:
360
+ status: "beta"
355
361
  - name: message_text_patterns
356
362
  description:
357
363
  components:
@@ -463,5 +469,4 @@ kits:
463
469
  status: "stable"
464
470
  - name: "user"
465
471
  platforms: *web
466
- description: This kit was created for having a systematic way of displaying users with avatar, titles, name and territory. This is a versatile kit with features than can be added to display more info.
467
- status: "stable"
472
+ description: This kit was created for having a systematic way of displaying users with avatar, titles, name and territory. This is a versatile kit with features than can be added to display more info.