playbook_ui 14.18.0 → 14.19.0.pre.alpha.PLAY20937693

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +304 -21
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +5 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +6 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +0 -6
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.jsx +80 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +3 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +58 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +3 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_rails.md +5 -1
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_no_subrows.jsx → _advanced_table_selectable_rows_no_subrows_react.jsx} +2 -2
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.md +3 -2
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +6 -5
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +3 -2
  16. data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +106 -0
  17. data/app/pb_kits/playbook/pb_advanced_table/index.js +228 -11
  18. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +9 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -3
  20. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +1 -2
  21. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +4 -0
  22. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +3 -0
  23. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +3 -3
  24. data/app/pb_kits/playbook/pb_avatar/avatar.rb +2 -0
  25. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +18 -0
  26. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_grayscale.html.erb +5 -0
  27. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_grayscale.jsx +16 -0
  28. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +2 -0
  29. data/app/pb_kits/playbook/pb_avatar/docs/index.js +1 -0
  30. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -1
  31. data/app/pb_kits/playbook/pb_card/card.rb +12 -0
  32. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +1 -1
  33. data/app/pb_kits/playbook/pb_circle_chart/circleChart.test.js +2 -2
  34. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +53 -0
  35. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.html.erb +2 -2
  36. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +1 -1
  37. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.html.erb +1 -1
  38. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +1 -1
  39. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.html.erb +1 -1
  40. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +1 -1
  41. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +1 -1
  42. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +1 -1
  43. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.html.erb +1 -1
  44. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +1 -1
  45. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +2 -2
  46. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +38 -0
  47. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +1 -0
  48. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.html.erb +1 -1
  49. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +1 -1
  50. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +2 -3
  51. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +2 -1
  52. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +12 -0
  53. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +12 -0
  54. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +50 -1
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +2 -2
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +4 -1
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_rails.md +4 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_range_limit.md +1 -1
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_react.md +5 -1
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +34 -0
  61. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.md +14 -0
  62. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.html.erb +20 -0
  63. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.md +14 -0
  64. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
  65. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  66. data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +10 -0
  67. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones.html.erb +64 -0
  68. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors.html.erb +55 -0
  69. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors_rails.md +1 -0
  70. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_line.html.erb +55 -0
  71. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_line_rails.md +5 -0
  72. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_rails.md +5 -0
  73. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.jsx +59 -0
  74. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners_react.md +1 -0
  75. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +4 -1
  76. data/app/pb_kits/playbook/pb_draggable/docs/index.js +2 -1
  77. data/app/pb_kits/playbook/pb_draggable/draggable.rb +9 -1
  78. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +11 -1
  79. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +11 -1
  80. data/app/pb_kits/playbook/pb_draggable/index.js +141 -142
  81. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +33 -5
  82. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +5 -0
  83. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +5 -16
  84. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb +5 -2
  85. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +4 -1
  86. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.html.erb +28 -0
  87. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +17 -64
  88. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.html.erb +58 -0
  89. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_with_autocomplete_and_custom_display.jsx → _dropdown_with_autocomplete_with_subcomponents.jsx} +11 -25
  90. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.md +1 -0
  91. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.md +1 -0
  92. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.jsx +61 -0
  93. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.md +2 -0
  94. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.html.erb +52 -0
  95. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.md +2 -0
  96. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +7 -4
  97. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +2 -2
  98. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -2
  99. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +4 -0
  100. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +45 -1
  101. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +10 -0
  102. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +3 -0
  103. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +12 -2
  104. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +3 -1
  105. data/app/pb_kits/playbook/pb_dropdown/index.js +57 -0
  106. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +26 -0
  107. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +1 -2
  108. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +4 -4
  109. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +8 -1
  110. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_alignment.html.erb +27 -0
  111. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_default.html.erb +7 -0
  112. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_orientation.html.erb +12 -0
  113. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_size.html.erb +23 -0
  114. data/app/pb_kits/playbook/pb_empty_state/docs/example.yml +5 -1
  115. data/app/pb_kits/playbook/pb_empty_state/empty_state.html.erb +19 -0
  116. data/app/pb_kits/playbook/pb_empty_state/empty_state.rb +123 -0
  117. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.html.erb +41 -0
  118. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.md +1 -0
  119. data/app/pb_kits/playbook/pb_filter/docs/example.yml +1 -0
  120. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +22 -18
  121. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -1
  122. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +3 -1
  123. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +52 -0
  124. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +1 -0
  125. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +1 -0
  126. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
  127. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +110 -0
  128. data/app/pb_kits/playbook/pb_message/_message.tsx +3 -0
  129. data/app/pb_kits/playbook/pb_message/docs/_message_grayscale.html.erb +9 -0
  130. data/app/pb_kits/playbook/pb_message/docs/_message_grayscale.jsx +21 -0
  131. data/app/pb_kits/playbook/pb_message/docs/example.yml +2 -0
  132. data/app/pb_kits/playbook/pb_message/docs/index.js +1 -0
  133. data/app/pb_kits/playbook/pb_message/message.html.erb +2 -1
  134. data/app/pb_kits/playbook/pb_message/message.rb +1 -0
  135. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +2 -1
  136. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +1 -1
  137. data/app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_token.tsx +5 -4
  138. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +13 -0
  139. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +3 -1
  140. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.html.erb +10 -0
  141. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.jsx +20 -0
  142. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.md +1 -0
  143. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +8 -1
  144. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +2 -0
  145. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
  146. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
  147. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +19 -0
  148. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.html.erb +46 -0
  149. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.md +1 -0
  150. data/app/pb_kits/playbook/pb_popover/docs/example.yml +1 -0
  151. data/app/pb_kits/playbook/pb_popover/index.ts +13 -1
  152. data/app/pb_kits/playbook/pb_popover/popover.rb +2 -0
  153. data/app/pb_kits/playbook/pb_select/_select.scss +10 -0
  154. data/app/pb_kits/playbook/pb_select/docs/_select_error.html.erb +1 -1
  155. data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +7 -2
  156. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +7 -7
  157. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +5 -5
  158. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb +1 -1
  159. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +9 -1
  160. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.html.erb +5 -1
  161. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +7 -1
  162. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.html.erb +8 -1
  163. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx +6 -2
  164. data/app/pb_kits/playbook/pb_user/_user.tsx +3 -0
  165. data/app/pb_kits/playbook/pb_user/docs/_user_grayscale.html.erb +6 -0
  166. data/app/pb_kits/playbook/pb_user/docs/_user_grayscale.jsx +16 -0
  167. data/app/pb_kits/playbook/pb_user/docs/example.yml +2 -0
  168. data/app/pb_kits/playbook/pb_user/docs/index.js +1 -0
  169. data/app/pb_kits/playbook/pb_user/user.html.erb +2 -1
  170. data/app/pb_kits/playbook/pb_user/user.rb +1 -0
  171. data/dist/chunks/_typeahead-BQV04mOl.js +22 -0
  172. data/dist/chunks/_weekday_stacked-CVwWr8B2.js +45 -0
  173. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  174. data/dist/chunks/lib-DwFasxbk.js +29 -0
  175. data/dist/chunks/{pb_form_validation-BRjyJrKh.js → pb_form_validation-nnXW3T-3.js} +1 -1
  176. data/dist/chunks/vendor.js +1 -1
  177. data/dist/menu.yml +6 -14
  178. data/dist/playbook-doc.js +2 -2
  179. data/dist/playbook-rails-react-bindings.js +1 -1
  180. data/dist/playbook-rails.js +1 -1
  181. data/dist/playbook.css +1 -1
  182. data/lib/playbook/version.rb +2 -2
  183. metadata +66 -24
  184. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_and_custom_display.md +0 -1
  185. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_hook.jsx +0 -79
  186. data/app/pb_kits/playbook/pb_gantt_chart/_gantt_chart.scss +0 -3
  187. data/app/pb_kits/playbook/pb_gantt_chart/_gantt_chart.tsx +0 -72
  188. data/app/pb_kits/playbook/pb_gantt_chart/docs/_gantt_chart_default.jsx +0 -53
  189. data/app/pb_kits/playbook/pb_gantt_chart/docs/example.yml +0 -7
  190. data/app/pb_kits/playbook/pb_gantt_chart/docs/index.js +0 -1
  191. data/app/pb_kits/playbook/pb_gantt_chart/gantt_chart.test.jsx +0 -19
  192. data/dist/chunks/_typeahead-C_FX7o_S.js +0 -22
  193. data/dist/chunks/_weekday_stacked-B4RLTeDo.js +0 -45
  194. data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
  195. data/dist/chunks/lib-ySl8uEpT.js +0 -29
  196. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_react.md → _advanced_table_selectable_rows.md} +0 -0
  197. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_no_subrows.html.erb → _advanced_table_selectable_rows_no_subrows_rails.html.erb} +0 -0
  198. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows.html.erb → _advanced_table_selectable_rows_rails.html.erb} +0 -0
  199. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_colors.md → _draggable_drop_zones_colors_react.md} +0 -0
  200. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_line.md → _draggable_drop_zones_line_react.md} +0 -0
  201. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones.md → _draggable_drop_zones_react.md} +0 -0
  202. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_event_listeners.md → _draggable_event_listeners_rails.md} +0 -0
@@ -0,0 +1,55 @@
1
+ <% initial_items = [
2
+ {
3
+ id: "141",
4
+ url: "https://unsplash.it/500/400/?image=633",
5
+ },
6
+ {
7
+ id: "142",
8
+ url: "https://unsplash.it/500/400/?image=634",
9
+ },
10
+ {
11
+ id: "143",
12
+ url: "https://unsplash.it/500/400/?image=637",
13
+ },
14
+ ] %>
15
+
16
+ <% next_init_items = [
17
+ {
18
+ id: "151",
19
+ url: "https://unsplash.it/500/400/?image=633",
20
+ },
21
+ {
22
+ id: "152",
23
+ url: "https://unsplash.it/500/400/?image=634",
24
+ },
25
+ {
26
+ id: "153",
27
+ url: "https://unsplash.it/500/400/?image=637",
28
+ },
29
+ ] %>
30
+
31
+ <%= pb_rails("draggable", props: {initial_items: initial_items, drop_zone_type: "shadow", drop_zone_color: "primary"}) do %>
32
+ <%= pb_rails("draggable/draggable_container") do %>
33
+ <%= pb_rails("flex", props: { gap: "sm" }) do %>
34
+ <% initial_items.each do |item| %>
35
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id]}) do %>
36
+ <%= pb_rails("image", props: { alt: item[:id], size: "md", url: item[:url] }) %>
37
+ <% end %>
38
+ <% end %>
39
+ <% end %>
40
+ <% end %>
41
+ <% end %>
42
+
43
+ <br/>
44
+
45
+ <%= pb_rails("draggable", props: {initial_items: next_init_items, drop_zone_type: "outline", drop_zone_color: "purple"}) do %>
46
+ <%= pb_rails("draggable/draggable_container") do %>
47
+ <%= pb_rails("flex", props: { gap: "sm" }) do %>
48
+ <% initial_items.each do |item| %>
49
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id]}) do %>
50
+ <%= pb_rails("image", props: { alt: item[:id], size: "md", url: item[:url] }) %>
51
+ <% end %>
52
+ <% end %>
53
+ <% end %>
54
+ <% end %>
55
+ <% end %>
@@ -0,0 +1 @@
1
+ The default `color` for Draggable kit drop zones is "neutral", with "primary" or "purple" as additional options.
@@ -0,0 +1,55 @@
1
+ <% initial_items = [
2
+ {
3
+ id: "211",
4
+ url: "https://unsplash.it/500/400/?image=633",
5
+ },
6
+ {
7
+ id: "212",
8
+ url: "https://unsplash.it/500/400/?image=634",
9
+ },
10
+ {
11
+ id: "213",
12
+ url: "https://unsplash.it/500/400/?image=637",
13
+ },
14
+ ] %>
15
+
16
+ <% next_init_items = [
17
+ {
18
+ id: "2111",
19
+ url: "https://unsplash.it/500/400/?image=633",
20
+ },
21
+ {
22
+ id: "2112",
23
+ url: "https://unsplash.it/500/400/?image=634",
24
+ },
25
+ {
26
+ id: "2113",
27
+ url: "https://unsplash.it/500/400/?image=637",
28
+ },
29
+ ] %>
30
+
31
+ <%= pb_rails("draggable", props: {initial_items: initial_items, drop_zone_type: "line"}) do %>
32
+ <%= pb_rails("draggable/draggable_container", props: { drop_zone_direction: "vertical" }) do %>
33
+ <%= pb_rails("flex", props: { gap: "sm", orientation: "column", height: "367px" }) do %>
34
+ <% initial_items.each do |item| %>
35
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id], drop_zone_line_color: "purple"}) do %>
36
+ <%= pb_rails("image", props: { alt: item[:id], size: "md", url: item[:url] }) %>
37
+ <% end %>
38
+ <% end %>
39
+ <% end %>
40
+ <% end %>
41
+ <% end %>
42
+
43
+ <br/>
44
+
45
+ <%= pb_rails("draggable", props: {initial_items: next_init_items, drop_zone_type: "line"}) do %>
46
+ <%= pb_rails("draggable/draggable_container", props: { drop_zone_direction: "horizontal" }) do %>
47
+ <%= pb_rails("flex", props: { gap: "sm", html_options: { style: "width: 332px;" } }) do %>
48
+ <% initial_items.each do |item| %>
49
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id], drop_zone_line_color: "primary"}) do %>
50
+ <%= pb_rails("image", props: { alt: item[:id], size: "md", url: item[:url] }) %>
51
+ <% end %>
52
+ <% end %>
53
+ <% end %>
54
+ <% end %>
55
+ <% end %>
@@ -0,0 +1,5 @@
1
+ When using the "line" style, make sure to set the appropriate `direction` attribute within the `drop_zone_direction` prop on the `draggable/draggable_container` component based on the orientation of your draggable view: "vertical" or "horizontal." Note that the direction attribute only applies to the "line" style and does not affect other drop zone styles. Also, set the `drop_zone_line_color` prop on the `draggable/draggable_item` component to "primary" or "purple".
2
+
3
+ The length of the line is calculated based off of the width (for "vertical") or height (for "horizontal") of the parent container holding the draggable items.
4
+
5
+ Additionally, if the parent container of the `draggable`/`draggable/draggable_container` (or a subcontainer within) does not have a set height (for "vertical") or width (for "horizontal"), like the [Draggable Drop Zones doc example](https://playbook.powerapp.cloud/kits/draggable/rails#draggable-drop-zones) does, elements on the page may jump up (for "vertical") or to the left (for "horizontal") when an item is actively being dragged. To prevent this, give a parent element a fixed height (for "vertical") or width (for "horizontal") as demonstrated in this doc example.
@@ -0,0 +1,5 @@
1
+ The Draggable kit lets you customize the style of drop zones that appear when dragging an item.
2
+
3
+ By default, drop zones are in the "ghost" style, but you can also choose from "shadow," "outline," and "line."
4
+
5
+ When using the "line" type, make sure to set the appropriate `direction` attribute on the `draggable/draggable_container` component based on the orientation of your draggable view: "vertical" or "horizontal." Note that the direction attribute only applies to the "line" type and does not affect other drop zone styles. For more on the "line" style in particular, check out the [Draggable Drop Zones Line doc example](https://playbook.powerapp.cloud/kits/draggable/rails#draggable-drop-zones-line).
@@ -0,0 +1,59 @@
1
+ import React, { useState } from "react";
2
+
3
+ import Flex from '../../pb_flex/_flex'
4
+ import Image from '../../pb_image/_image'
5
+ import Draggable from '../../pb_draggable/_draggable'
6
+ import { DraggableProvider } from '../../pb_draggable/context'
7
+
8
+ const data = [
9
+ {
10
+ id: "100",
11
+ url: "https://unsplash.it/500/400/?image=638",
12
+ },
13
+ {
14
+ id: "200",
15
+ url: "https://unsplash.it/500/400/?image=639",
16
+ },
17
+ {
18
+ id: "300",
19
+ url: "https://unsplash.it/500/400/?image=640",
20
+ },
21
+ ];
22
+
23
+ const DraggableDefault = (props) => {
24
+ const [initialState, setInitialState] = useState(data);
25
+
26
+ return (
27
+ <>
28
+ <DraggableProvider initialItems={data}
29
+ onReorder={(items) => setInitialState(items)}
30
+ >
31
+ <Draggable.Container {...props}>
32
+ <Flex>
33
+ {initialState.map(({ id, url }) => (
34
+ <Draggable.Item dragId={id}
35
+ key={id}
36
+ onDrag={() => console.log(`${id} drag!`)}
37
+ onDragEnd={() => console.log(`${id} drag end!`)}
38
+ onDragEnter={() => console.log(`${id} drag enter!`)}
39
+ onDragLeave={() => console.log(`${id} drag leave!`)}
40
+ onDragOver={() => console.log(`${id} drag over!`)}
41
+ onDragStart={() => console.log(`${id} drag start!`)}
42
+ onDrop={() => console.log(`${id} drop!`)}
43
+ >
44
+ <Image alt={id}
45
+ margin="xs"
46
+ size="md"
47
+ url={url}
48
+ />
49
+ </Draggable.Item>
50
+ ))}
51
+ </Flex>
52
+ </Draggable.Container>
53
+ </DraggableProvider>
54
+ </>
55
+
56
+ );
57
+ };
58
+
59
+ export default DraggableDefault;
@@ -0,0 +1 @@
1
+ You can add drag event listeners for `onDrag`, `onDragEnd`, `onDragEnter`, `onDragLeave`, `onDragOver`, `onDragStart`, and `onDrop`.
@@ -9,6 +9,7 @@ examples:
9
9
  - draggable_drop_zones: Draggable Drop Zones
10
10
  - draggable_drop_zones_colors: Draggable Drop Zones Colors
11
11
  - draggable_drop_zones_line: Draggable Drop Zones Line
12
+ - draggable_event_listeners: Draggable Event Listeners
12
13
 
13
14
  rails:
14
15
  - draggable_default: Default
@@ -17,5 +18,7 @@ examples:
17
18
  - draggable_with_cards: Draggable with Cards
18
19
  - draggable_with_table: Draggable with Table
19
20
  - draggable_multiple_containers: Dragging Across Multiple Containers
21
+ - draggable_drop_zones: Draggable Drop Zones
22
+ - draggable_drop_zones_colors: Draggable Drop Zones Colors
23
+ - draggable_drop_zones_line: Draggable Drop Zones Line
20
24
  - draggable_event_listeners: Draggable Event Listeners
21
-
@@ -6,4 +6,5 @@ export { default as DraggableMultipleContainers } from './_draggable_multiple_co
6
6
  export { default as DraggableWithTable } from './_draggable_with_table.jsx'
7
7
  export { default as DraggableDropZones } from './_draggable_drop_zones.jsx'
8
8
  export { default as DraggableDropZonesColors } from './_draggable_drop_zones_colors.jsx'
9
- export { default as DraggableDropZonesLine } from './_draggable_drop_zones_line.jsx'
9
+ export { default as DraggableDropZonesLine } from './_draggable_drop_zones_line.jsx'
10
+ export { default as DraggableEventListeners } from './_draggable_event_listeners.jsx'
@@ -5,9 +5,17 @@ module Playbook
5
5
  class Draggable < ::Playbook::KitBase
6
6
  prop :initial_items, type: Playbook::Props::Array,
7
7
  default: []
8
+ prop :drop_zone_type, type: Playbook::Props::Enum,
9
+ values: %w[ghost shadow outline line],
10
+ default: "ghost"
11
+ prop :drop_zone_color, type: Playbook::Props::Enum,
12
+ values: %w[neutral primary purple],
13
+ default: "neutral"
8
14
 
9
15
  def data
10
- Hash(prop(:data)).merge(pb_draggable: true)
16
+ Hash(prop(:data)).merge(pb_draggable: true,
17
+ drop_zone_type: drop_zone_type,
18
+ drop_zone_color: drop_zone_color)
11
19
  end
12
20
 
13
21
  def classname
@@ -7,13 +7,23 @@ module Playbook
7
7
  default: "div"
8
8
  prop :container, type: Playbook::Props::String,
9
9
  default: ""
10
+ prop :drop_zone_direction, type: Playbook::Props::Enum,
11
+ values: ["horizontal", "vertical", nil],
12
+ default: nil
10
13
 
11
14
  def data
12
15
  Hash(prop(:data)).merge(pb_draggable_container: true)
13
16
  end
14
17
 
15
18
  def classname
16
- generate_classname("pb_draggable_container")
19
+ direction_class = case drop_zone_direction
20
+ when "horizontal"
21
+ "line_horizontal"
22
+ when "vertical"
23
+ "line_vertical"
24
+ end
25
+
26
+ generate_classname("pb_draggable_container", direction_class, separator: " ")
17
27
  end
18
28
  end
19
29
  end
@@ -9,13 +9,23 @@ module Playbook
9
9
  default: "div"
10
10
  prop :container, type: Playbook::Props::String,
11
11
  default: ""
12
+ prop :drop_zone_line_color, type: Playbook::Props::Enum,
13
+ values: ["primary", "purple", nil],
14
+ default: nil
12
15
 
13
16
  def data
14
17
  Hash(prop(:data)).merge(pb_draggable_item: true)
15
18
  end
16
19
 
17
20
  def classname
18
- generate_classname("pb_draggable_item")
21
+ line_color_class = case drop_zone_line_color
22
+ when "primary"
23
+ "drop_zone_color_primary"
24
+ when "purple"
25
+ "drop_zone_color_purple"
26
+ end
27
+
28
+ generate_classname("pb_draggable_item", line_color_class, separator: " ")
19
29
  end
20
30
  end
21
31
  end