playbook_ui_docs 16.9.0 → 16.10.0.pre.alpha.PLAY3053advancedtablebottompinnedrowsreact17469

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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +19 -2
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +2 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +4 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +6 -2
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +36 -44
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +10 -19
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +0 -4
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +3 -5
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +2 -8
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +1 -8
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -1
  16. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.html.erb +1 -0
  17. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.jsx +15 -0
  18. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.md +1 -0
  19. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +1 -0
  20. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
  21. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  22. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners_rails.md +1 -1
  23. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers.html.erb +35 -0
  24. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers_rails.md +8 -0
  25. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +3 -1
  26. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_react.md +1 -1
  27. data/app/pb_kits/playbook/pb_draggable/docs/_playground.json +260 -19
  28. data/app/pb_kits/playbook/pb_draggable/docs/_playground.overrides.json +258 -13
  29. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -0
  30. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.html.erb +93 -0
  31. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.jsx +127 -0
  32. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.md +1 -0
  33. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.html.erb +10 -0
  34. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.jsx +37 -0
  35. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.html.erb +10 -0
  36. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.jsx +37 -0
  37. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.md +1 -0
  38. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +150 -237
  39. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +58 -74
  40. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +6 -0
  41. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +3 -0
  42. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.html.erb +66 -0
  43. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.jsx +53 -0
  44. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.md +5 -0
  45. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +2 -1
  46. data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +3 -1
  47. data/app/pb_kits/playbook/pb_file_upload/docs/index.js +1 -0
  48. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.html.erb +116 -0
  49. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.md +12 -0
  50. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.jsx +153 -0
  51. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.md +10 -0
  52. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +1 -1
  53. data/app/pb_kits/playbook/pb_filter/docs/_playground.json +308 -5
  54. data/app/pb_kits/playbook/pb_filter/docs/_playground.overrides.json +312 -0
  55. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  56. data/app/pb_kits/playbook/pb_filter/docs/index.js +2 -1
  57. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.json +210 -14
  58. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.overrides.json +231 -0
  59. data/app/pb_kits/playbook/pb_flex/docs/_playground.json +297 -38
  60. data/app/pb_kits/playbook/pb_flex/docs/_playground.overrides.json +300 -40
  61. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +20 -19
  62. data/app/pb_kits/playbook/pb_form/docs/_playground.json +1 -13
  63. data/app/pb_kits/playbook/pb_form_group/docs/_playground.json +82 -5
  64. data/app/pb_kits/playbook/pb_form_group/docs/_playground.overrides.json +91 -0
  65. data/app/pb_kits/playbook/pb_form_pill/docs/_playground.json +155 -14
  66. data/app/pb_kits/playbook/pb_form_pill/docs/_playground.overrides.json +147 -0
  67. data/app/pb_kits/playbook/pb_full_screen/docs/_description.md +1 -0
  68. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.jsx +68 -0
  69. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.md +1 -0
  70. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.jsx +71 -0
  71. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.md +1 -0
  72. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.html.erb +3 -0
  73. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.jsx +63 -0
  74. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.md +1 -0
  75. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.jsx +68 -0
  76. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.md +1 -0
  77. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.jsx +68 -0
  78. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.md +1 -0
  79. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.jsx +149 -0
  80. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.md +1 -0
  81. data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +155 -0
  82. data/app/pb_kits/playbook/pb_full_screen/docs/_playground.overrides.json +137 -0
  83. data/app/pb_kits/playbook/pb_full_screen/docs/example.yml +14 -0
  84. data/app/pb_kits/playbook/pb_full_screen/docs/index.js +6 -0
  85. data/app/pb_kits/playbook/pb_hashtag/docs/_playground.json +72 -11
  86. data/app/pb_kits/playbook/pb_hashtag/docs/_playground.overrides.json +75 -0
  87. data/app/pb_kits/playbook/pb_highlight/docs/_playground.json +75 -4
  88. data/app/pb_kits/playbook/pb_highlight/docs/_playground.overrides.json +75 -0
  89. data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.json +138 -12
  90. data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.overrides.json +162 -0
  91. data/app/pb_kits/playbook/pb_icon/docs/_icon_default.jsx +1 -1
  92. data/app/pb_kits/playbook/pb_icon/docs/_playground.json +66 -41
  93. data/app/pb_kits/playbook/pb_icon/docs/_playground.overrides.json +85 -27
  94. data/app/pb_kits/playbook/pb_icon_button/docs/_playground.json +111 -9
  95. data/app/pb_kits/playbook/pb_icon_button/docs/_playground.overrides.json +131 -0
  96. data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.json +92 -7
  97. data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.overrides.json +108 -0
  98. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.json +32 -17
  99. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.overrides.json +81 -8
  100. data/app/pb_kits/playbook/pb_icon_value/docs/_playground.json +28 -18
  101. data/app/pb_kits/playbook/pb_icon_value/docs/_playground.overrides.json +58 -9
  102. data/app/pb_kits/playbook/pb_image/docs/_playground.json +124 -47
  103. data/app/pb_kits/playbook/pb_image/docs/_playground.overrides.json +122 -47
  104. data/app/pb_kits/playbook/pb_label_pill/docs/_playground.json +68 -6
  105. data/app/pb_kits/playbook/pb_label_pill/docs/_playground.overrides.json +85 -0
  106. data/app/pb_kits/playbook/pb_label_value/docs/_playground.json +59 -36
  107. data/app/pb_kits/playbook/pb_label_value/docs/_playground.overrides.json +101 -30
  108. data/app/pb_kits/playbook/pb_layout/docs/_playground.json +216 -10
  109. data/app/pb_kits/playbook/pb_layout/docs/_playground.overrides.json +188 -0
  110. data/app/pb_kits/playbook/pb_legend/docs/_playground.json +60 -7
  111. data/app/pb_kits/playbook/pb_legend/docs/_playground.overrides.json +77 -0
  112. data/app/pb_kits/playbook/pb_list/docs/_playground.json +165 -17
  113. data/app/pb_kits/playbook/pb_list/docs/_playground.overrides.json +191 -0
  114. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.html.erb +21 -0
  115. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.jsx +55 -0
  116. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.md +1 -0
  117. data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.json +28 -1
  118. data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.overrides.json +27 -1
  119. data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
  120. data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
  121. data/app/pb_kits/playbook/pb_map/docs/_playground.json +164 -7
  122. data/app/pb_kits/playbook/pb_map/docs/_playground.overrides.json +180 -0
  123. data/app/pb_kits/playbook/pb_message/docs/_playground.json +114 -8
  124. data/app/pb_kits/playbook/pb_message/docs/_playground.overrides.json +144 -0
  125. data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.json +310 -61
  126. data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.overrides.json +327 -44
  127. data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.json +35 -6
  128. data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.overrides.json +35 -6
  129. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.json +32 -21
  130. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.overrides.json +32 -21
  131. data/app/pb_kits/playbook/pb_nav/docs/_playground.json +546 -18
  132. data/app/pb_kits/playbook/pb_nav/docs/_playground.overrides.json +561 -14
  133. data/app/pb_kits/playbook/pb_online_status/docs/_playground.json +18 -23
  134. data/app/pb_kits/playbook/pb_online_status/docs/_playground.overrides.json +18 -14
  135. data/app/pb_kits/playbook/pb_overlay/docs/_playground.json +133 -14
  136. data/app/pb_kits/playbook/pb_overlay/docs/_playground.overrides.json +154 -0
  137. data/app/pb_kits/playbook/pb_pagination/docs/_playground.json +35 -14
  138. data/app/pb_kits/playbook/pb_pagination/docs/_playground.overrides.json +35 -14
  139. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +1 -1
  140. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +1 -1
  141. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +5 -5
  142. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +1 -1
  143. data/app/pb_kits/playbook/pb_passphrase/docs/_playground.json +129 -14
  144. data/app/pb_kits/playbook/pb_passphrase/docs/_playground.overrides.json +148 -0
  145. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.json +378 -4
  146. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.overrides.json +245 -0
  147. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.json +215 -4
  148. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.overrides.json +224 -0
  149. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.json +149 -4
  150. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.overrides.json +162 -0
  151. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.json +392 -4
  152. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.overrides.json +212 -0
  153. data/app/pb_kits/playbook/pb_person/docs/_playground.json +27 -11
  154. data/app/pb_kits/playbook/pb_person/docs/_playground.overrides.json +34 -9
  155. data/app/pb_kits/playbook/pb_person_contact/docs/_playground.json +72 -21
  156. data/app/pb_kits/playbook/pb_person_contact/docs/_playground.overrides.json +71 -21
  157. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +179 -21
  158. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.overrides.json +180 -0
  159. data/app/pb_kits/playbook/pb_pill/docs/_playground.json +16 -49
  160. data/app/pb_kits/playbook/pb_pill/docs/_playground.overrides.json +33 -30
  161. data/app/pb_kits/playbook/pb_popover/docs/_playground.json +155 -46
  162. data/app/pb_kits/playbook/pb_popover/docs/_playground.overrides.json +162 -30
  163. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +9 -11
  164. data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.json +26 -13
  165. data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.overrides.json +24 -6
  166. data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.json +50 -17
  167. data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.overrides.json +41 -7
  168. data/app/pb_kits/playbook/pb_progress_step/docs/_playground.json +197 -10
  169. data/app/pb_kits/playbook/pb_progress_step/docs/_playground.overrides.json +189 -0
  170. data/app/pb_kits/playbook/pb_radio/docs/_playground.json +80 -6
  171. data/app/pb_kits/playbook/pb_radio/docs/_playground.overrides.json +82 -3
  172. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +152 -22
  173. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.overrides.json +153 -0
  174. data/app/pb_kits/playbook/pb_select/docs/_playground.json +65 -19
  175. data/app/pb_kits/playbook/pb_select/docs/_playground.overrides.json +54 -14
  176. data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +75 -82
  177. data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.overrides.json +76 -76
  178. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +105 -15
  179. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.overrides.json +106 -0
  180. data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.json +37 -21
  181. data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.overrides.json +35 -18
  182. data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.json +174 -12
  183. data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.overrides.json +162 -10
  184. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.json +68 -6
  185. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.overrides.json +80 -0
  186. data/app/pb_kits/playbook/pb_source/docs/_playground.json +67 -6
  187. data/app/pb_kits/playbook/pb_source/docs/_playground.overrides.json +80 -0
  188. data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +28 -53
  189. data/app/pb_kits/playbook/pb_star_rating/docs/_playground.overrides.json +33 -32
  190. data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +15 -9
  191. data/app/pb_kits/playbook/pb_stat_change/docs/_playground.overrides.json +15 -5
  192. data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +19 -9
  193. data/app/pb_kits/playbook/pb_stat_value/docs/_playground.overrides.json +18 -7
  194. data/app/pb_kits/playbook/pb_table/docs/_playground.json +223 -21
  195. data/app/pb_kits/playbook/pb_table/docs/_playground.overrides.json +176 -0
  196. data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +44 -5
  197. data/app/pb_kits/playbook/pb_text_input/docs/_playground.overrides.json +39 -3
  198. data/app/pb_kits/playbook/pb_textarea/docs/_playground.json +35 -3
  199. data/app/pb_kits/playbook/pb_textarea/docs/_playground.overrides.json +28 -3
  200. data/app/pb_kits/playbook/pb_time/docs/_playground.json +28 -14
  201. data/app/pb_kits/playbook/pb_time/docs/_playground.overrides.json +26 -13
  202. data/app/pb_kits/playbook/pb_time_picker/docs/_playground.json +36 -30
  203. data/app/pb_kits/playbook/pb_time_picker/docs/_playground.overrides.json +31 -26
  204. data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.json +63 -9
  205. data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.overrides.json +69 -0
  206. data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.json +30 -9
  207. data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.overrides.json +30 -9
  208. data/app/pb_kits/playbook/pb_timeline/docs/_playground.json +178 -6
  209. data/app/pb_kits/playbook/pb_timeline/docs/_playground.overrides.json +165 -0
  210. data/app/pb_kits/playbook/pb_timestamp/docs/_playground.json +36 -21
  211. data/app/pb_kits/playbook/pb_timestamp/docs/_playground.overrides.json +35 -20
  212. data/app/pb_kits/playbook/pb_toggle/docs/_playground.json +24 -13
  213. data/app/pb_kits/playbook/pb_toggle/docs/_playground.overrides.json +20 -12
  214. data/app/pb_kits/playbook/pb_tooltip/docs/_playground.json +42 -23
  215. data/app/pb_kits/playbook/pb_tooltip/docs/_playground.overrides.json +35 -15
  216. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.json +124 -44
  217. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.overrides.json +98 -31
  218. data/app/pb_kits/playbook/pb_user/docs/_playground.json +33 -15
  219. data/app/pb_kits/playbook/pb_user/docs/_playground.overrides.json +32 -15
  220. data/app/pb_kits/playbook/pb_user_badge/docs/_playground.json +26 -12
  221. data/app/pb_kits/playbook/pb_user_badge/docs/_playground.overrides.json +26 -9
  222. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +32 -5
  223. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.overrides.json +30 -4
  224. metadata +73 -4
  225. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.jsx +0 -92
  226. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.md +0 -3
@@ -1,105 +1,365 @@
1
1
  {
2
+ "structureModes": {
3
+ "default": "basic",
4
+ "modes": {
5
+ "basic": {
6
+ "label": "Basic",
7
+ "template": "<div className=\"flex-doc-example\">\n <Flex{{props}}>\n {{children}}\n </Flex>\n</div>",
8
+ "children": "<Caption text=\"A\" />\n<Caption text=\"B\" />\n<Caption text=\"C\" />"
9
+ },
10
+ "flex_items": {
11
+ "label": "FlexItem Children",
12
+ "template": "<div className=\"flex-doc-example\">\n <Flex{{props}}>\n {{children}}\n </Flex>\n</div>",
13
+ "children": "<FlexItem>\n {'1'}\n</FlexItem>\n<FlexItem>\n {'2'}\n</FlexItem>\n<FlexItem>\n {'3'}\n</FlexItem>\n<FlexItem>\n {'4'}\n</FlexItem>",
14
+ "props": {
15
+ "gap": "xs"
16
+ }
17
+ },
18
+ "controlled_flex_item": {
19
+ "label": "FlexItem Props",
20
+ "template": "<div className=\"flex-doc-example\">\n <Flex{{props}}>\n <FlexItem{{FlexItem.props}}>\n {{children}}\n </FlexItem>\n <FlexItem>\n {'2'}\n </FlexItem>\n <FlexItem>\n {'3'}\n </FlexItem>\n </Flex>\n</div>",
21
+ "children": "{'1'}",
22
+ "props": {
23
+ "gap": "xs"
24
+ }
25
+ }
26
+ }
27
+ },
2
28
  "children": {
3
- "default": "<Caption text=\"A\" /><Caption text=\"B\" /><Caption text=\"C\" />"
29
+ "editable": true,
30
+ "default": "<Caption text=\"A\" />\n<Caption text=\"B\" />\n<Caption text=\"C\" />"
31
+ },
32
+ "customProps": {
33
+ "flexItemFixedSize": {
34
+ "type": "string",
35
+ "platforms": ["react"]
36
+ },
37
+ "flexItemGrow": {
38
+ "type": "boolean",
39
+ "platforms": ["react"],
40
+ "default": false
41
+ },
42
+ "flexItemShrink": {
43
+ "type": "boolean",
44
+ "platforms": ["react"],
45
+ "default": false
46
+ },
47
+ "flexItemFlex": {
48
+ "type": "number",
49
+ "platforms": ["react"]
50
+ },
51
+ "flexItemOrder": {
52
+ "type": "enum",
53
+ "platforms": ["react"],
54
+ "values": [
55
+ "first",
56
+ "0",
57
+ "1",
58
+ "2",
59
+ "3",
60
+ "4",
61
+ "5",
62
+ "6",
63
+ "7",
64
+ "8",
65
+ "9",
66
+ "10",
67
+ "11",
68
+ "12"
69
+ ]
70
+ },
71
+ "flexItemAlignSelf": {
72
+ "type": "enum",
73
+ "platforms": ["react"],
74
+ "values": [
75
+ "start",
76
+ "end",
77
+ "center",
78
+ "stretch"
79
+ ]
80
+ },
81
+ "flexItemDisplayFlex": {
82
+ "type": "boolean",
83
+ "platforms": ["react"],
84
+ "default": false
85
+ }
86
+ },
87
+ "propTargets": {
88
+ "flexItemFixedSize": "FlexItem.props",
89
+ "flexItemGrow": "FlexItem.props",
90
+ "flexItemShrink": "FlexItem.props",
91
+ "flexItemFlex": "FlexItem.props",
92
+ "flexItemOrder": "FlexItem.props",
93
+ "flexItemAlignSelf": "FlexItem.props",
94
+ "flexItemDisplayFlex": "FlexItem.props"
95
+ },
96
+ "propAliases": {
97
+ "flexItemFixedSize": "fixedSize",
98
+ "flexItemGrow": "grow",
99
+ "flexItemShrink": "shrink",
100
+ "flexItemFlex": "flex",
101
+ "flexItemOrder": "order",
102
+ "flexItemAlignSelf": "alignSelf",
103
+ "flexItemDisplayFlex": "displayFlex"
4
104
  },
5
105
  "groups": [
6
106
  {
7
- "name": "Direction & flow",
8
- "props": ["orientation", "reverse", "wrap", "inline"]
107
+ "name": "Direction & Flow",
108
+ "props": [
109
+ "orientation",
110
+ "reverse",
111
+ "wrap",
112
+ "inline"
113
+ ]
114
+ },
115
+ {
116
+ "name": "Primary Axis",
117
+ "props": [
118
+ "horizontal",
119
+ "justify",
120
+ "spacing"
121
+ ]
122
+ },
123
+ {
124
+ "name": "Cross Axis",
125
+ "props": [
126
+ "vertical",
127
+ "align",
128
+ "alignSelf"
129
+ ]
9
130
  },
10
131
  {
11
- "name": "Primary axis",
12
- "props": ["horizontal", "justify", "spacing"]
132
+ "name": "Gap",
133
+ "props": [
134
+ "gap",
135
+ "rowGap",
136
+ "columnGap"
137
+ ]
13
138
  },
14
139
  {
15
- "name": "Cross axis",
16
- "props": ["vertical", "align", "alignSelf"]
140
+ "name": "FlexItem Props",
141
+ "props": [
142
+ "flexItemFixedSize",
143
+ "flexItemGrow",
144
+ "flexItemShrink",
145
+ "flexItemFlex",
146
+ "flexItemOrder",
147
+ "flexItemAlignSelf",
148
+ "flexItemDisplayFlex"
149
+ ]
17
150
  }
18
151
  ],
19
152
  "presets": [
20
153
  {
21
- "name": "Row (start)",
154
+ "name": "Row",
155
+ "structureMode": "basic",
22
156
  "props": {
23
- "orientation": "row",
24
- "justify": "none",
25
157
  "horizontal": "left",
158
+ "justify": "none",
159
+ "orientation": "row",
26
160
  "vertical": "top"
27
161
  },
28
- "children": "<Caption text=\"A\" /><Caption text=\"B\" /><Caption text=\"C\" />"
162
+ "children": "<Caption text=\"A\" />\n<Caption text=\"B\" />\n<Caption text=\"C\" />"
29
163
  },
30
164
  {
31
165
  "name": "Column",
166
+ "structureMode": "basic",
32
167
  "props": {
33
- "orientation": "column",
34
- "justify": "none",
35
168
  "horizontal": "left",
169
+ "justify": "none",
170
+ "orientation": "column",
36
171
  "vertical": "top"
37
172
  },
38
- "children": "<Caption text=\"One\" /><Caption text=\"Two\" /><Caption text=\"Three\" />"
173
+ "children": "<Caption text=\"One\" />\n<Caption text=\"Two\" />\n<Caption text=\"Three\" />"
39
174
  },
40
175
  {
41
176
  "name": "Centered",
177
+ "structureMode": "basic",
42
178
  "props": {
43
- "orientation": "row",
44
179
  "justify": "center",
180
+ "orientation": "row",
45
181
  "vertical": "center"
46
182
  },
47
183
  "children": "<Caption text=\"Centered\" />"
48
184
  },
49
185
  {
50
- "name": "Space between",
186
+ "name": "Space Between",
187
+ "structureMode": "basic",
51
188
  "props": {
52
- "orientation": "row",
53
189
  "justify": "between",
190
+ "orientation": "row",
54
191
  "vertical": "center"
55
192
  },
56
- "children": "<Caption text=\"Left\" /><Caption text=\"Right\" />"
193
+ "children": "<Caption text=\"Left\" />\n<Caption text=\"Right\" />"
57
194
  },
58
195
  {
59
- "name": "Space around",
196
+ "name": "Wrap",
197
+ "structureMode": "flex_items",
60
198
  "props": {
199
+ "gap": "xs",
200
+ "justify": "start",
61
201
  "orientation": "row",
62
- "justify": "around",
63
- "vertical": "center"
202
+ "wrap": true
64
203
  },
65
- "children": "<Caption text=\"A\" /><Caption text=\"B\" /><Caption text=\"C\" />"
204
+ "children": "<FlexItem fixedSize=\"160px\">\n {'Item 1'}\n</FlexItem>\n<FlexItem fixedSize=\"160px\">\n {'Item 2'}\n</FlexItem>\n<FlexItem fixedSize=\"160px\">\n {'Item 3'}\n</FlexItem>\n<FlexItem fixedSize=\"160px\">\n {'Item 4'}\n</FlexItem>\n<FlexItem fixedSize=\"160px\">\n {'Item 5'}\n</FlexItem>"
66
205
  },
67
206
  {
68
- "name": "End aligned",
207
+ "name": "Gap",
208
+ "structureMode": "flex_items",
69
209
  "props": {
210
+ "gap": "sm",
70
211
  "orientation": "row",
71
- "justify": "end",
72
- "vertical": "center"
212
+ "wrap": true
73
213
  },
74
- "children": "<Caption text=\"Trailing\" />"
214
+ "children": "<FlexItem>{'1'}</FlexItem>\n<FlexItem>{'2'}</FlexItem>\n<FlexItem>{'3'}</FlexItem>\n<FlexItem>{'4'}</FlexItem>"
75
215
  },
76
216
  {
77
- "name": "Wrap",
217
+ "name": "Responsive Gap",
218
+ "structureMode": "flex_items",
78
219
  "props": {
220
+ "gap": {
221
+ "xs": "none",
222
+ "sm": "sm",
223
+ "md": "md",
224
+ "lg": "lg",
225
+ "xl": "xl"
226
+ },
79
227
  "orientation": "row",
80
- "wrap": true,
81
- "justify": "start"
228
+ "wrap": true
82
229
  },
83
- "children": "<Caption text=\"Item 1\" /><Caption text=\"Item 2\" /><Caption text=\"Item 3\" /><Caption text=\"Item 4\" />"
230
+ "children": "<FlexItem fixedSize=\"96px\">{'1'}</FlexItem>\n<FlexItem fixedSize=\"96px\">{'2'}</FlexItem>\n<FlexItem fixedSize=\"96px\">{'3'}</FlexItem>\n<FlexItem fixedSize=\"96px\">{'4'}</FlexItem>"
84
231
  },
85
232
  {
86
- "name": "Inline flex",
233
+ "name": "FlexItem Grow",
234
+ "structureMode": "controlled_flex_item",
87
235
  "props": {
88
- "inline": true,
89
- "orientation": "row",
90
- "vertical": "center"
236
+ "flexItemGrow": true,
237
+ "gap": "xs"
91
238
  },
92
- "children": "<Caption text=\"Inline\" /> <Caption text=\"chips\" />"
239
+ "children": "{'I grow'}"
93
240
  },
94
241
  {
95
- "name": "Column (center items)",
242
+ "name": "FlexItem Fixed Size",
243
+ "structureMode": "controlled_flex_item",
96
244
  "props": {
97
- "orientation": "column",
98
- "align": "center"
245
+ "flexItemFixedSize": "240px",
246
+ "gap": "xs"
99
247
  },
100
- "children": "<Caption text=\"Stacked\" /><Caption text=\"centered\" />"
248
+ "children": "{'240px'}"
249
+ },
250
+ {
251
+ "name": "FlexItem Order",
252
+ "structureMode": "controlled_flex_item",
253
+ "props": {
254
+ "flexItemOrder": "4",
255
+ "gap": "xs"
256
+ },
257
+ "children": "{'1'}"
258
+ },
259
+ {
260
+ "name": "FlexItem Align Self",
261
+ "structureMode": "controlled_flex_item",
262
+ "props": {
263
+ "flexItemAlignSelf": "center",
264
+ "gap": "xs",
265
+ "vertical": "stretch"
266
+ },
267
+ "children": "{'center'}"
268
+ },
269
+ {
270
+ "name": "Display FlexItem",
271
+ "structureMode": "controlled_flex_item",
272
+ "props": {
273
+ "flexItemDisplayFlex": true,
274
+ "gap": "xs"
275
+ },
276
+ "children": "<FlexItem>\n {'We'}\n</FlexItem>\n<FlexItem>\n {'Are'}\n</FlexItem>\n<FlexItem>\n {'Being'}\n</FlexItem>\n<FlexItem>\n {'Flexed'}\n</FlexItem>"
101
277
  }
102
278
  ],
103
279
  "conditionals": {},
104
- "hints": {}
280
+ "propSyncOnEnable": {
281
+ "flexItemFixedSize": {
282
+ "structureMode": "controlled_flex_item"
283
+ },
284
+ "flexItemGrow": {
285
+ "structureMode": "controlled_flex_item"
286
+ },
287
+ "flexItemShrink": {
288
+ "structureMode": "controlled_flex_item"
289
+ },
290
+ "flexItemFlex": {
291
+ "structureMode": "controlled_flex_item"
292
+ },
293
+ "flexItemOrder": {
294
+ "structureMode": "controlled_flex_item"
295
+ },
296
+ "flexItemAlignSelf": {
297
+ "structureMode": "controlled_flex_item"
298
+ },
299
+ "flexItemDisplayFlex": {
300
+ "structureMode": "controlled_flex_item"
301
+ }
302
+ },
303
+ "hints": {
304
+ "row": {
305
+ "presetName": "Row",
306
+ "message": "Row is the default Flex direction and keeps editable children as direct children of Flex.",
307
+ "type": "info"
308
+ },
309
+ "column": {
310
+ "presetName": "Column",
311
+ "message": "Column stacks the same editable children vertically.",
312
+ "type": "info"
313
+ },
314
+ "centered": {
315
+ "presetName": "Centered",
316
+ "message": "Centered combines justify=\"center\" with vertical=\"center\" for centered row content.",
317
+ "type": "info"
318
+ },
319
+ "space_between": {
320
+ "presetName": "Space Between",
321
+ "message": "Space Between spreads the first and last children across the primary axis.",
322
+ "type": "info"
323
+ },
324
+ "wrap": {
325
+ "presetName": "Wrap",
326
+ "message": "Wrap uses fixed-size FlexItem children so wrapping behavior is visible as the preview width changes.",
327
+ "type": "info"
328
+ },
329
+ "gap": {
330
+ "presetName": "Gap",
331
+ "message": "Gap applies spacing between FlexItem children without adding margins to the child content.",
332
+ "type": "info"
333
+ },
334
+ "responsive_gap": {
335
+ "presetName": "Responsive Gap",
336
+ "message": "Responsive Gap passes a breakpoint object to gap for different spacing at different viewport widths.",
337
+ "type": "info"
338
+ },
339
+ "flexitem_grow": {
340
+ "presetName": "FlexItem Grow",
341
+ "message": "FlexItem Grow toggles the first FlexItem's grow prop through the FlexItem Props controls.",
342
+ "type": "info"
343
+ },
344
+ "flexitem_fixed_size": {
345
+ "presetName": "FlexItem Fixed Size",
346
+ "message": "FlexItem Fixed Size applies fixedSize to the first FlexItem through the FlexItem Props controls.",
347
+ "type": "info"
348
+ },
349
+ "flexitem_order": {
350
+ "presetName": "FlexItem Order",
351
+ "message": "FlexItem Order applies visual ordering to the first FlexItem through the FlexItem Props controls.",
352
+ "type": "info"
353
+ },
354
+ "flexitem_align_self": {
355
+ "presetName": "FlexItem Align Self",
356
+ "message": "FlexItem Align Self applies cross-axis alignment to the first FlexItem through the FlexItem Props controls.",
357
+ "type": "info"
358
+ },
359
+ "display_flexitem": {
360
+ "presetName": "Display FlexItem",
361
+ "message": "Display FlexItem makes the first FlexItem act as a flex container for its editable children.",
362
+ "type": "info"
363
+ }
364
+ }
105
365
  }
@@ -131,23 +131,24 @@
131
131
  %>
132
132
 
133
133
  <%= pb_form_with(scope: :example, url: "", method: :get, validate: true) do |form| %>
134
- <%= form.typeahead :example_typeahead_field, props: { label: true, required: true, required_indicator: true } %>
135
- <%= form.text_field :example_text_field, props: { label: true, required: true, required_indicator: true } %>
136
- <%= form.text_field :example_text_field_2, props: { label: "Text Field Custom Label", required: true, required_indicator: true } %>
137
- <%= form.phone_number_field :example_phone_number_field, props: { label: true, required: true, required_indicator: true } %>
138
- <%= form.email_field :example_email_field, props: { label: true, required: true, required_indicator: true } %>
139
- <%= form.number_field :example_number_field, props: { label: true, required: true, required_indicator: true } %>
140
- <%= form.search_field :example_search_field, props: { label: true, required: true, required_indicator: true } %>
141
- <%= form.password_field :example_password_field, props: { label: true, required: true, required_indicator: true } %>
142
- <%= form.url_field :example_url_field, props: { label: true, required: true, required_indicator: true } %>
143
- <%= form.text_area :example_text_area, props: { label: true, required: true, required_indicator: true } %>
144
- <%= form.text_area :example_text_area_2, props: { label: "Textarea Custom Label", required: true, required_indicator: true } %>
145
- <%# form.check_box :example_checkbox, props: { label: true, text: "Checkbox Label", required: true, required_indicator: true } %>
146
- <%= form.time_picker :example_time_picker_required_indicator, props: { label: true, required: true, required_indicator: true } %>
147
- <%= form.date_picker :example_date_picker_required_indicator, props: { label: true, required: true, required_indicator: true } %>
148
- <%= form.date_picker :example_date_picker_required_indicator_custom, props: { label: "Custom Date Picker Label", required: true, required_indicator: true } %>
134
+ <%= form.typeahead :example_typeahead_required_indicator, props: { label: true, required: true, required_indicator: true } %>
135
+ <%= form.text_field :example_text_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
136
+ <%= form.text_field :example_text_field_required_indicator_custom, props: { label: "Text Field Custom Label", required: true, required_indicator: true } %>
137
+ <%= form.phone_number_field :example_phone_number_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
138
+ <%= form.email_field :example_email_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
139
+ <%= form.number_field :example_number_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
140
+ <%= form.search_field :example_search_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
141
+ <%= form.password_field :example_password_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
142
+ <%= form.url_field :example_url_field_required_indicator, props: { label: true, required: true, required_indicator: true } %>
143
+ <%= form.text_area :example_text_area_required_indicator, props: { label: true, required: true, required_indicator: true } %>
144
+ <%= form.text_area :example_text_area_required_indicator_custom, props: { label: "Textarea Custom Label", required: true, required_indicator: true } %>
145
+ <%= form.dropdown_field :example_dropdown_required_indicator, props: { label: true, options: example_dropdown_options, required: true, required_indicator: true } %>
146
+ <%= form.dropdown_field :example_dropdown_required_indicator_multi, props: { label: "Dropdown Custom Label", options: example_dropdown_options, multi_select: true, required: true, required_indicator: true } %>
149
147
  <%= form.select :example_select_required_indicator, [["Yes", 1], ["No", 2]], props: { label: true, required: true, required_indicator: true } %>
150
- <%= form.select :example_select_required_indicator_2, [["Yes", 1], ["No", 2]], props: { label: "Example Select Field", required: true, required_indicator: true } %>
148
+ <%= form.select :example_select_required_indicator_custom, [["Yes", 1], ["No", 2]], props: { label: "Example Select Field", required: true, required_indicator: true } %>
149
+ <%# form.check_box :example_checkbox_required_indicator, props: { label: true, text: "Checkbox Label", required: true, required_indicator: true } %>
150
+ <%= form.date_picker :example_date_picker_required_indicator, props: { label: true, required: true, required_indicator: true } %>
151
+ <%= form.date_picker :example_date_picker_required_indicator_custom, props: { label: "Date Picker Custom Label", required: true, required_indicator: true } %>
151
152
  <%= form.multi_level_select :example_multi_level_select_required_indicator, props: {
152
153
  label: true,
153
154
  margin_y: 'sm',
@@ -156,14 +157,14 @@
156
157
  tree_data: tree_data
157
158
  } %>
158
159
  <%= form.multi_level_select :example_multi_level_select_required_indicator_custom, props: {
159
- label: "Custom Multi Level Select Label",
160
+ label: "Multi Level Select Custom Label",
160
161
  margin_y: 'sm',
161
162
  required: true,
162
163
  required_indicator: true,
163
164
  tree_data: tree_data
164
165
  } %>
165
- <%= form.dropdown_field :example_dropdown, props: { label: true, options: example_dropdown_options, required: true, required_indicator: true } %>
166
- <%= form.dropdown_field :example_dropdown_2, props: { label: "Dropdown Custom Label", options: example_dropdown_options, required: true, required_indicator: true } %>
166
+ <%= form.time_picker :example_time_picker_required_indicator, props: { label: true, required: true, required_indicator: true } %>
167
+ <%= form.time_picker :example_time_picker_required_indicator_custom, props: { label: "Time Picker Custom Label", required: true, required_indicator: true } %>
167
168
 
168
169
  <%= form.actions do |action| %>
169
170
  <%= action.submit %>
@@ -1,13 +1 @@
1
- {
2
- "template": "<Form{{props}} />",
3
- "propTargets": {},
4
- "defaults": {},
5
- "presets": [
6
- {
7
- "name": "Default",
8
- "props": {}
9
- }
10
- ],
11
- "conditionals": {},
12
- "hints": {}
13
- }
1
+ null
@@ -1,12 +1,12 @@
1
1
  {
2
- "template": "<FormGroup{{props}} />",
2
+ "template": "<FormGroup{{props}}>\n{{children}}\n</FormGroup>",
3
3
  "propTargets": {},
4
4
  "defaults": {
5
5
  "fullWidth": false
6
6
  },
7
7
  "groups": [
8
8
  {
9
- "name": "Props",
9
+ "name": "Layout",
10
10
  "props": [
11
11
  "fullWidth"
12
12
  ]
@@ -14,10 +14,87 @@
14
14
  ],
15
15
  "presets": [
16
16
  {
17
- "name": "Default",
18
- "props": {}
17
+ "name": "Text Inputs",
18
+ "props": {},
19
+ "children": "<TextInput\n id=\"first-name\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
20
+ },
21
+ {
22
+ "name": "Full Width",
23
+ "props": {
24
+ "fullWidth": true
25
+ },
26
+ "children": "<TextInput\n id=\"first-name-full-width\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial-full-width\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name-full-width\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
27
+ },
28
+ {
29
+ "name": "Search Button",
30
+ "props": {},
31
+ "children": "<TextInput\n id=\"search-with-action\"\n label=\"Search\"\n name=\"search\"\n onChange={handleFieldChange}\n placeholder=\"Search\"\n value={formFields.search}\n/>\n<Button\n onClick={() => alert(\"Button clicked!\")}\n text=\"Submit\"\n variant=\"secondary\"\n/>"
32
+ },
33
+ {
34
+ "name": "Select",
35
+ "props": {},
36
+ "children": "<TextInput\n id=\"artist-name\"\n name=\"artistName\"\n onChange={handleFieldChange}\n placeholder=\"Enter Artist Name\"\n value={formFields.artistName || \"\"}\n/>\n<Select\n blankSelection=\"Genre\"\n name=\"genre\"\n options={[\n { value: \"Country\" },\n { value: \"Pop\" },\n { value: \"Rock\" },\n { value: \"Hip-Hop/Rap\" }\n ]}\n/>"
37
+ },
38
+ {
39
+ "name": "Date Picker",
40
+ "props": {},
41
+ "children": "<TextInput\n id=\"event-name\"\n label=\"Event\"\n name=\"eventName\"\n onChange={handleFieldChange}\n placeholder=\"Event Name\"\n value={formFields.eventName}\n/>\n<DatePicker\n label=\"Event Date\"\n pickerId=\"form-group-event-date\"\n/>"
42
+ },
43
+ {
44
+ "name": "Typeahead Action",
45
+ "props": {},
46
+ "children": "<Typeahead\n id=\"products\"\n label=\"Products\"\n options={[\n { label: \"Windows\", value: \"windows\" },\n { label: \"Roof\", value: \"roof\" },\n { label: \"Siding\", value: \"siding\" },\n { label: \"Doors\", value: \"doors\" }\n ]}\n/>\n<Button\n onClick={() => alert(\"Product added!\")}\n text=\"Add\"\n variant=\"secondary\"\n/>"
47
+ },
48
+ {
49
+ "name": "Selectable Cards",
50
+ "props": {},
51
+ "children": "<SelectableCard\n checked={formFields.animal === \"cat\"}\n inputId=\"cat-option\"\n multi={false}\n name=\"animal\"\n onChange={handleAnimalChange}\n value=\"cat\"\n>\n Cat\n</SelectableCard>\n<SelectableCard\n checked={formFields.animal === \"dog\"}\n inputId=\"dog-option\"\n multi={false}\n name=\"animal\"\n onChange={handleAnimalChange}\n value=\"dog\"\n>\n Dog\n</SelectableCard>"
19
52
  }
20
53
  ],
21
54
  "conditionals": {},
22
- "hints": {}
55
+ "hints": {
56
+ "text_inputs": {
57
+ "presetName": "Text Inputs",
58
+ "message": "Text Inputs uses state-backed child inputs so the playground fields stay editable.",
59
+ "type": "info"
60
+ },
61
+ "full_width": {
62
+ "presetName": "Full Width",
63
+ "message": "Full Width applies fullWidth to the FormGroup while leaving each child input editable.",
64
+ "type": "info"
65
+ },
66
+ "search_button": {
67
+ "presetName": "Search Button",
68
+ "message": "Search Button pairs a controlled text field with an action button in the same group.",
69
+ "type": "info"
70
+ },
71
+ "select": {
72
+ "presetName": "Select",
73
+ "message": "Select shows mixed children inside the group, with the options array kept directly in editable children.",
74
+ "type": "info"
75
+ },
76
+ "date_picker": {
77
+ "presetName": "Date Picker",
78
+ "message": "Date Picker combines a text input with a picker child, including the pickerId required by the kit.",
79
+ "type": "info"
80
+ },
81
+ "typeahead_action": {
82
+ "presetName": "Typeahead Action",
83
+ "message": "Typeahead Action mirrors the docs pattern of a searchable Typeahead plus an adjacent button.",
84
+ "type": "info"
85
+ },
86
+ "selectable_cards": {
87
+ "presetName": "Selectable Cards",
88
+ "message": "Selectable Cards keeps both card options in children so each option can be edited together.",
89
+ "type": "info"
90
+ }
91
+ },
92
+ "wrapper": "const FormGroupPlayground = () => {\n const [formFields, setFormFields] = useState({\n firstName: \"Jane\",\n middleInitial: \"Q\",\n lastName: \"Doe\",\n search: \"\",\n eventName: \"Planning session\",\n animal: \"cat\"\n })\n\n const handleFieldChange = ({ target }) => {\n setFormFields({ ...formFields, [target.name]: target.value })\n }\n\n const handleAnimalChange = ({ target }) => {\n setFormFields({ ...formFields, animal: target.value })\n }\n\n return {{component}}\n}\n\n<FormGroupPlayground />",
93
+ "externalImports": [
94
+ "import React, { useState } from 'react'"
95
+ ],
96
+ "children": {
97
+ "editable": true,
98
+ "default": "<TextInput\n id=\"first-name\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
99
+ }
23
100
  }