playbook_ui 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 (375) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +32 -11
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +5 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/Context/AdvancedTableContext.tsx +27 -2
  6. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +19 -14
  7. data/app/pb_kits/playbook/pb_advanced_table/Utilities/CellRendererUtils.tsx +4 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +17 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/Utilities/StickyLayoutHelper.ts +100 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +38 -71
  11. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +27 -77
  12. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +7 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +128 -12
  14. data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +31 -9
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +19 -2
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +2 -2
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +4 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +6 -2
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +36 -44
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +10 -19
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +0 -4
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +3 -5
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +2 -8
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +1 -8
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -1
  29. data/app/pb_kits/playbook/pb_advanced_table/index.js +20 -29
  30. data/app/pb_kits/playbook/pb_advanced_table/kit.schema.json +0 -12
  31. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +1 -1
  32. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -1
  33. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +16 -2
  34. data/app/pb_kits/playbook/pb_badge/kit.schema.json +1 -1
  35. data/app/pb_kits/playbook/pb_button_toolbar/kit.schema.json +1 -1
  36. data/app/pb_kits/playbook/pb_card/card.rb +1 -1
  37. data/app/pb_kits/playbook/pb_card/kit.schema.json +2 -0
  38. data/app/pb_kits/playbook/pb_checkbox/kit.schema.json +2 -2
  39. data/app/pb_kits/playbook/pb_circle_icon_button/kit.schema.json +2 -2
  40. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +6 -0
  41. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +19 -2
  42. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +58 -1
  43. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +3 -0
  44. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +319 -65
  45. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.html.erb +1 -0
  46. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.jsx +15 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.md +1 -0
  48. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +1 -0
  49. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  51. data/app/pb_kits/playbook/pb_date_picker/kit.schema.json +9 -1
  52. data/app/pb_kits/playbook/pb_date_time/kit.schema.json +1 -1
  53. data/app/pb_kits/playbook/pb_date_time_stacked/kit.schema.json +1 -1
  54. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +54 -1
  55. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +21 -5
  56. data/app/pb_kits/playbook/pb_dialog/_dialog_context.tsx +8 -2
  57. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.tsx +1 -1
  58. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +5 -1
  59. data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +125 -0
  60. data/app/pb_kits/playbook/pb_dialog/index.js +11 -1
  61. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +1 -1
  62. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners_rails.md +1 -1
  63. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers.html.erb +35 -0
  64. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers_rails.md +8 -0
  65. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +3 -1
  66. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_react.md +1 -1
  67. data/app/pb_kits/playbook/pb_draggable/docs/_playground.json +260 -19
  68. data/app/pb_kits/playbook/pb_draggable/docs/_playground.overrides.json +258 -13
  69. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -0
  70. data/app/pb_kits/playbook/pb_draggable/index.js +10 -3
  71. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +122 -0
  72. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +114 -35
  73. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.html.erb +93 -0
  74. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.jsx +127 -0
  75. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.md +1 -0
  76. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.html.erb +10 -0
  77. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.jsx +37 -0
  78. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.html.erb +10 -0
  79. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.jsx +37 -0
  80. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.md +1 -0
  81. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +150 -237
  82. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +58 -74
  83. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +6 -0
  84. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +3 -0
  85. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +5 -4
  86. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +6 -1
  87. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +96 -0
  88. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +1 -0
  89. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +2 -0
  90. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +2 -2
  91. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.rb +27 -2
  92. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +4 -2
  93. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +2 -0
  94. data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +25 -5
  95. data/app/pb_kits/playbook/pb_dropdown/index.js +270 -25
  96. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +19 -10
  97. data/app/pb_kits/playbook/pb_dropdown/kit.schema.json +8 -0
  98. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +39 -2
  99. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +15 -4
  100. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +22 -13
  101. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.html.erb +66 -0
  102. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.jsx +53 -0
  103. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.md +5 -0
  104. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +2 -1
  105. data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +3 -1
  106. data/app/pb_kits/playbook/pb_file_upload/docs/index.js +1 -0
  107. data/app/pb_kits/playbook/pb_file_upload/kit.schema.json +3 -3
  108. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +55 -28
  109. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.tsx +4 -1
  110. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.tsx +4 -1
  111. data/app/pb_kits/playbook/pb_filter/Filter/InteractiveFilter.tsx +277 -0
  112. data/app/pb_kits/playbook/pb_filter/_filter.scss +88 -1
  113. data/app/pb_kits/playbook/pb_filter/_filter.tsx +27 -0
  114. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.html.erb +116 -0
  115. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.md +12 -0
  116. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.jsx +153 -0
  117. data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.md +10 -0
  118. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +1 -1
  119. data/app/pb_kits/playbook/pb_filter/docs/_playground.json +308 -5
  120. data/app/pb_kits/playbook/pb_filter/docs/_playground.overrides.json +312 -0
  121. data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
  122. data/app/pb_kits/playbook/pb_filter/docs/index.js +2 -1
  123. data/app/pb_kits/playbook/pb_filter/filter.html.erb +80 -3
  124. data/app/pb_kits/playbook/pb_filter/filter.rb +71 -0
  125. data/app/pb_kits/playbook/pb_filter/filter.test.js +78 -0
  126. data/app/pb_kits/playbook/pb_filter/index.ts +349 -0
  127. data/app/pb_kits/playbook/pb_filter/kit.schema.json +94 -29
  128. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.json +210 -14
  129. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.overrides.json +231 -0
  130. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/kit.schema.json +1 -1
  131. data/app/pb_kits/playbook/pb_flex/docs/_playground.json +297 -38
  132. data/app/pb_kits/playbook/pb_flex/docs/_playground.overrides.json +300 -40
  133. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +20 -19
  134. data/app/pb_kits/playbook/pb_form/docs/_playground.json +1 -13
  135. data/app/pb_kits/playbook/pb_form_group/docs/_playground.json +82 -5
  136. data/app/pb_kits/playbook/pb_form_group/docs/_playground.overrides.json +91 -0
  137. data/app/pb_kits/playbook/pb_form_pill/docs/_playground.json +155 -14
  138. data/app/pb_kits/playbook/pb_form_pill/docs/_playground.overrides.json +147 -0
  139. data/app/pb_kits/playbook/pb_form_pill/kit.schema.json +1 -1
  140. data/app/pb_kits/playbook/pb_full_screen/_full_screen.scss +77 -0
  141. data/app/pb_kits/playbook/pb_full_screen/_full_screen.tsx +183 -0
  142. data/app/pb_kits/playbook/pb_full_screen/docs/_description.md +1 -0
  143. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.jsx +68 -0
  144. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.md +1 -0
  145. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.jsx +71 -0
  146. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.md +1 -0
  147. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.html.erb +3 -0
  148. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.jsx +63 -0
  149. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.md +1 -0
  150. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.jsx +68 -0
  151. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.md +1 -0
  152. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.jsx +68 -0
  153. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.md +1 -0
  154. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.jsx +149 -0
  155. data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.md +1 -0
  156. data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +155 -0
  157. data/app/pb_kits/playbook/pb_full_screen/docs/_playground.overrides.json +137 -0
  158. data/app/pb_kits/playbook/pb_full_screen/docs/example.yml +14 -0
  159. data/app/pb_kits/playbook/pb_full_screen/docs/index.js +6 -0
  160. data/app/pb_kits/playbook/pb_full_screen/full_screen.html.erb +12 -0
  161. data/app/pb_kits/playbook/pb_full_screen/full_screen.rb +11 -0
  162. data/app/pb_kits/playbook/pb_full_screen/full_screen.test.jsx +237 -0
  163. data/app/pb_kits/playbook/pb_full_screen/kit.schema.json +89 -0
  164. data/app/pb_kits/playbook/pb_full_screen/useFullScreen.ts +15 -0
  165. data/app/pb_kits/playbook/pb_hashtag/docs/_playground.json +72 -11
  166. data/app/pb_kits/playbook/pb_hashtag/docs/_playground.overrides.json +75 -0
  167. data/app/pb_kits/playbook/pb_highlight/docs/_playground.json +75 -4
  168. data/app/pb_kits/playbook/pb_highlight/docs/_playground.overrides.json +75 -0
  169. data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.json +138 -12
  170. data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.overrides.json +162 -0
  171. data/app/pb_kits/playbook/pb_icon/_icon.tsx +22 -11
  172. data/app/pb_kits/playbook/pb_icon/docs/_icon_default.jsx +1 -1
  173. data/app/pb_kits/playbook/pb_icon/docs/_playground.json +66 -41
  174. data/app/pb_kits/playbook/pb_icon/docs/_playground.overrides.json +85 -27
  175. data/app/pb_kits/playbook/pb_icon/icon.rb +5 -2
  176. data/app/pb_kits/playbook/pb_icon/kit.schema.json +3 -5
  177. data/app/pb_kits/playbook/pb_icon_button/docs/_playground.json +111 -9
  178. data/app/pb_kits/playbook/pb_icon_button/docs/_playground.overrides.json +131 -0
  179. data/app/pb_kits/playbook/pb_icon_button/kit.schema.json +1 -1
  180. data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.json +92 -7
  181. data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.overrides.json +108 -0
  182. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.json +32 -17
  183. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.overrides.json +81 -8
  184. data/app/pb_kits/playbook/pb_icon_value/docs/_playground.json +28 -18
  185. data/app/pb_kits/playbook/pb_icon_value/docs/_playground.overrides.json +58 -9
  186. data/app/pb_kits/playbook/pb_image/docs/_playground.json +124 -47
  187. data/app/pb_kits/playbook/pb_image/docs/_playground.overrides.json +122 -47
  188. data/app/pb_kits/playbook/pb_label_pill/docs/_playground.json +68 -6
  189. data/app/pb_kits/playbook/pb_label_pill/docs/_playground.overrides.json +85 -0
  190. data/app/pb_kits/playbook/pb_label_value/docs/_playground.json +59 -36
  191. data/app/pb_kits/playbook/pb_label_value/docs/_playground.overrides.json +101 -30
  192. data/app/pb_kits/playbook/pb_layout/docs/_playground.json +216 -10
  193. data/app/pb_kits/playbook/pb_layout/docs/_playground.overrides.json +188 -0
  194. data/app/pb_kits/playbook/pb_legend/docs/_playground.json +60 -7
  195. data/app/pb_kits/playbook/pb_legend/docs/_playground.overrides.json +77 -0
  196. data/app/pb_kits/playbook/pb_list/docs/_playground.json +165 -17
  197. data/app/pb_kits/playbook/pb_list/docs/_playground.overrides.json +191 -0
  198. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +3 -1
  199. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.html.erb +21 -0
  200. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.jsx +55 -0
  201. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.md +1 -0
  202. data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.json +28 -1
  203. data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.overrides.json +27 -1
  204. data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
  205. data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
  206. data/app/pb_kits/playbook/pb_loading_inline/kit.schema.json +18 -2
  207. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
  208. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +3 -0
  209. data/app/pb_kits/playbook/pb_map/docs/_playground.json +164 -7
  210. data/app/pb_kits/playbook/pb_map/docs/_playground.overrides.json +180 -0
  211. data/app/pb_kits/playbook/pb_message/docs/_playground.json +114 -8
  212. data/app/pb_kits/playbook/pb_message/docs/_playground.overrides.json +144 -0
  213. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +7 -7
  214. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +127 -12
  215. data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.json +310 -61
  216. data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.overrides.json +327 -44
  217. data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.json +35 -6
  218. data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.overrides.json +35 -6
  219. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.json +32 -21
  220. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.overrides.json +32 -21
  221. data/app/pb_kits/playbook/pb_nav/docs/_playground.json +546 -18
  222. data/app/pb_kits/playbook/pb_nav/docs/_playground.overrides.json +561 -14
  223. data/app/pb_kits/playbook/pb_online_status/docs/_playground.json +18 -23
  224. data/app/pb_kits/playbook/pb_online_status/docs/_playground.overrides.json +18 -14
  225. data/app/pb_kits/playbook/pb_overlay/docs/_playground.json +133 -14
  226. data/app/pb_kits/playbook/pb_overlay/docs/_playground.overrides.json +154 -0
  227. data/app/pb_kits/playbook/pb_pagination/docs/_playground.json +35 -14
  228. data/app/pb_kits/playbook/pb_pagination/docs/_playground.overrides.json +35 -14
  229. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +1 -1
  230. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +1 -1
  231. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +5 -5
  232. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +1 -1
  233. data/app/pb_kits/playbook/pb_passphrase/docs/_playground.json +129 -14
  234. data/app/pb_kits/playbook/pb_passphrase/docs/_playground.overrides.json +148 -0
  235. data/app/pb_kits/playbook/pb_passphrase/index.ts +58 -0
  236. data/app/pb_kits/playbook/pb_passphrase/kit.schema.json +13 -0
  237. data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +70 -1
  238. data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +70 -0
  239. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.json +378 -4
  240. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.overrides.json +245 -0
  241. data/app/pb_kits/playbook/pb_pb_bar_graph/kit.schema.json +1 -1
  242. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.json +215 -4
  243. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.overrides.json +224 -0
  244. data/app/pb_kits/playbook/pb_pb_circle_chart/kit.schema.json +1 -1
  245. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.json +149 -4
  246. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.overrides.json +162 -0
  247. data/app/pb_kits/playbook/pb_pb_gauge_chart/kit.schema.json +1 -1
  248. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.json +392 -4
  249. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.overrides.json +212 -0
  250. data/app/pb_kits/playbook/pb_pb_line_graph/kit.schema.json +1 -1
  251. data/app/pb_kits/playbook/pb_person/docs/_playground.json +27 -11
  252. data/app/pb_kits/playbook/pb_person/docs/_playground.overrides.json +34 -9
  253. data/app/pb_kits/playbook/pb_person_contact/docs/_playground.json +72 -21
  254. data/app/pb_kits/playbook/pb_person_contact/docs/_playground.overrides.json +71 -21
  255. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +179 -21
  256. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.overrides.json +180 -0
  257. data/app/pb_kits/playbook/pb_phone_number_input/kit.schema.json +2 -2
  258. data/app/pb_kits/playbook/pb_pill/docs/_playground.json +16 -49
  259. data/app/pb_kits/playbook/pb_pill/docs/_playground.overrides.json +33 -30
  260. data/app/pb_kits/playbook/pb_popover/_popover.scss +27 -0
  261. data/app/pb_kits/playbook/pb_popover/_popover.tsx +49 -16
  262. data/app/pb_kits/playbook/pb_popover/docs/_playground.json +155 -46
  263. data/app/pb_kits/playbook/pb_popover/docs/_playground.overrides.json +162 -30
  264. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +9 -11
  265. data/app/pb_kits/playbook/pb_popover/index.ts +35 -4
  266. data/app/pb_kits/playbook/pb_popover/popover.html.erb +5 -2
  267. data/app/pb_kits/playbook/pb_popover/popover.test.js +212 -5
  268. data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.json +26 -13
  269. data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.overrides.json +24 -6
  270. data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.json +50 -17
  271. data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.overrides.json +41 -7
  272. data/app/pb_kits/playbook/pb_progress_step/docs/_playground.json +197 -10
  273. data/app/pb_kits/playbook/pb_progress_step/docs/_playground.overrides.json +189 -0
  274. data/app/pb_kits/playbook/pb_radio/docs/_playground.json +80 -6
  275. data/app/pb_kits/playbook/pb_radio/docs/_playground.overrides.json +82 -3
  276. data/app/pb_kits/playbook/pb_radio/kit.schema.json +1 -1
  277. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +12 -24
  278. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +152 -22
  279. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.overrides.json +153 -0
  280. data/app/pb_kits/playbook/pb_select/_select.tsx +1 -0
  281. data/app/pb_kits/playbook/pb_select/docs/_playground.json +65 -19
  282. data/app/pb_kits/playbook/pb_select/docs/_playground.overrides.json +54 -14
  283. data/app/pb_kits/playbook/pb_select/kit.schema.json +2 -2
  284. data/app/pb_kits/playbook/pb_select/select.html.erb +1 -1
  285. data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +75 -82
  286. data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.overrides.json +76 -76
  287. data/app/pb_kits/playbook/pb_selectable_card/kit.schema.json +2 -2
  288. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +105 -15
  289. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.overrides.json +106 -0
  290. data/app/pb_kits/playbook/pb_selectable_card_icon/kit.schema.json +2 -2
  291. data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.json +37 -21
  292. data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.overrides.json +35 -18
  293. data/app/pb_kits/playbook/pb_selectable_icon/kit.schema.json +1 -1
  294. data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.json +174 -12
  295. data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.overrides.json +162 -10
  296. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.json +68 -6
  297. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.overrides.json +80 -0
  298. data/app/pb_kits/playbook/pb_source/docs/_playground.json +67 -6
  299. data/app/pb_kits/playbook/pb_source/docs/_playground.overrides.json +80 -0
  300. data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +28 -53
  301. data/app/pb_kits/playbook/pb_star_rating/docs/_playground.overrides.json +33 -32
  302. data/app/pb_kits/playbook/pb_star_rating/kit.schema.json +1 -1
  303. data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +15 -9
  304. data/app/pb_kits/playbook/pb_stat_change/docs/_playground.overrides.json +15 -5
  305. data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +19 -9
  306. data/app/pb_kits/playbook/pb_stat_value/docs/_playground.overrides.json +18 -7
  307. data/app/pb_kits/playbook/pb_stat_value/kit.schema.json +1 -1
  308. data/app/pb_kits/playbook/pb_table/docs/_playground.json +223 -21
  309. data/app/pb_kits/playbook/pb_table/docs/_playground.overrides.json +176 -0
  310. data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +44 -5
  311. data/app/pb_kits/playbook/pb_text_input/docs/_playground.overrides.json +39 -3
  312. data/app/pb_kits/playbook/pb_text_input/kit.schema.json +3 -3
  313. data/app/pb_kits/playbook/pb_textarea/docs/_playground.json +35 -3
  314. data/app/pb_kits/playbook/pb_textarea/docs/_playground.overrides.json +28 -3
  315. data/app/pb_kits/playbook/pb_textarea/kit.schema.json +1 -1
  316. data/app/pb_kits/playbook/pb_time/docs/_playground.json +28 -14
  317. data/app/pb_kits/playbook/pb_time/docs/_playground.overrides.json +26 -13
  318. data/app/pb_kits/playbook/pb_time_picker/_time_picker.scss +42 -0
  319. data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +309 -167
  320. data/app/pb_kits/playbook/pb_time_picker/docs/_playground.json +36 -30
  321. data/app/pb_kits/playbook/pb_time_picker/docs/_playground.overrides.json +31 -26
  322. data/app/pb_kits/playbook/pb_time_picker/index.ts +263 -11
  323. data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.json +63 -9
  324. data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.overrides.json +69 -0
  325. data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.json +30 -9
  326. data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.overrides.json +30 -9
  327. data/app/pb_kits/playbook/pb_timeline/docs/_playground.json +178 -6
  328. data/app/pb_kits/playbook/pb_timeline/docs/_playground.overrides.json +165 -0
  329. data/app/pb_kits/playbook/pb_timestamp/docs/_playground.json +36 -21
  330. data/app/pb_kits/playbook/pb_timestamp/docs/_playground.overrides.json +35 -20
  331. data/app/pb_kits/playbook/pb_toggle/docs/_playground.json +24 -13
  332. data/app/pb_kits/playbook/pb_toggle/docs/_playground.overrides.json +20 -12
  333. data/app/pb_kits/playbook/pb_toggle/kit.schema.json +2 -2
  334. data/app/pb_kits/playbook/pb_tooltip/docs/_playground.json +42 -23
  335. data/app/pb_kits/playbook/pb_tooltip/docs/_playground.overrides.json +35 -15
  336. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +109 -3
  337. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.json +124 -44
  338. data/app/pb_kits/playbook/pb_typeahead/docs/_playground.overrides.json +98 -31
  339. data/app/pb_kits/playbook/pb_typeahead/kit.schema.json +8 -2
  340. data/app/pb_kits/playbook/pb_user/docs/_playground.json +33 -15
  341. data/app/pb_kits/playbook/pb_user/docs/_playground.overrides.json +32 -15
  342. data/app/pb_kits/playbook/pb_user_badge/docs/_playground.json +26 -12
  343. data/app/pb_kits/playbook/pb_user_badge/docs/_playground.overrides.json +26 -9
  344. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +32 -5
  345. data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.overrides.json +30 -4
  346. data/app/pb_kits/playbook/tokens/_colors.scss +5 -1
  347. data/app/pb_kits/playbook/utilities/_border.scss +262 -0
  348. data/app/pb_kits/playbook/utilities/floatingPortalHosts.ts +565 -0
  349. data/app/pb_kits/playbook/utilities/global-props.schema.json +98 -0
  350. data/app/pb_kits/playbook/utilities/globalProps.ts +83 -1
  351. data/app/pb_kits/playbook/utilities/icons/allicons.tsx +38 -0
  352. data/app/pb_kits/playbook/utilities/test/globalProps/border.test.js +66 -0
  353. data/dist/chunks/{_pb_line_graph-B870s9g1.js → _pb_line_graph-C2H9vs_8.js} +1 -1
  354. data/dist/chunks/_typeahead-Du8dRYaM.js +5 -0
  355. data/dist/chunks/globalProps-DIAZ03-L.js +6 -0
  356. data/dist/chunks/lib-ZHDedNfP.js +29 -0
  357. data/dist/chunks/time_picker_helper-CVMV9ync.js +1 -0
  358. data/dist/chunks/vendor.js +5 -5
  359. data/dist/menu.yml +7 -0
  360. data/dist/playbook-rails-react-bindings.js +1 -1
  361. data/dist/playbook-rails.js +1 -1
  362. data/dist/playbook.css +1 -1
  363. data/lib/playbook/border.rb +87 -0
  364. data/lib/playbook/classnames.rb +1 -0
  365. data/lib/playbook/forms/builder/form_field_builder.rb +2 -0
  366. data/lib/playbook/kit_base.rb +2 -0
  367. data/lib/playbook/pb_forms_global_props_helper.rb +15 -0
  368. data/lib/playbook/version.rb +2 -2
  369. metadata +93 -9
  370. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.jsx +0 -92
  371. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.md +0 -3
  372. data/dist/chunks/_typeahead-jMN-A0_C.js +0 -5
  373. data/dist/chunks/globalProps-BInmh-C7.js +0 -6
  374. data/dist/chunks/lib-CVYIIiwI.js +0 -29
  375. data/dist/chunks/time_picker_helper-Bx8nzyM8.js +0 -1
@@ -1,8 +1,4 @@
1
1
  {
2
- "defaults": {
3
- "value": 1428,
4
- "unit": "hrs"
5
- },
6
2
  "groups": [
7
3
  { "name": "Content", "props": ["value", "unit"] }
8
4
  ],
@@ -14,9 +10,24 @@
14
10
  ],
15
11
  "conditionals": {},
16
12
  "hints": {
17
- "unit_hint": {
18
- "when": { "unit": true },
19
- "message": "When a unit is set, it renders smaller than the value, with a space between.",
13
+ "default": {
14
+ "presetName": "Default",
15
+ "message": "Default pairs a numeric value with a compact unit label.",
16
+ "type": "info"
17
+ },
18
+ "value_only": {
19
+ "presetName": "Value only",
20
+ "message": "Value only renders the stat without the smaller unit text.",
21
+ "type": "info"
22
+ },
23
+ "formatted_string": {
24
+ "presetName": "Formatted string",
25
+ "message": "Formatted string accepts preformatted values when commas or labels are already prepared.",
26
+ "type": "info"
27
+ },
28
+ "zero_state": {
29
+ "presetName": "Zero state",
30
+ "message": "Zero state keeps the unit visible while showing an empty or reset metric.",
20
31
  "type": "info"
21
32
  }
22
33
  }
@@ -25,7 +25,7 @@
25
25
  "platforms": [
26
26
  "rails"
27
27
  ],
28
- "type": "string"
28
+ "type": "number"
29
29
  }
30
30
  },
31
31
  "globalProps": true,
@@ -18,40 +18,242 @@
18
18
  },
19
19
  "groups": [
20
20
  {
21
- "name": "Props",
21
+ "name": "Layout",
22
22
  "props": [
23
- "cardProps",
23
+ "size",
24
+ "responsive",
24
25
  "collapse",
26
+ "tag",
25
27
  "container",
26
- "dark",
27
- "dataTable",
28
+ "outerPadding"
29
+ ]
30
+ },
31
+ {
32
+ "name": "Appearance",
33
+ "props": [
34
+ "striped",
35
+ "verticalBorder",
36
+ "singleLine",
28
37
  "disableHover",
29
- "filterProps",
30
- "filterContent",
31
38
  "headerStyle",
32
- "outerPadding",
33
- "pagination",
34
- "responsive",
35
- "singleLine",
36
- "size",
39
+ "dark",
40
+ "dataTable"
41
+ ]
42
+ },
43
+ {
44
+ "name": "Sticky Columns",
45
+ "props": [
37
46
  "sticky",
38
47
  "stickyLeftColumn",
39
- "stickyRightColumn",
40
- "striped",
41
- "tag",
42
- "title",
43
- "titleProps",
48
+ "stickyRightColumn"
49
+ ]
50
+ },
51
+ {
52
+ "name": "Filter Variant",
53
+ "props": [
44
54
  "variant",
45
- "verticalBorder"
55
+ "title",
56
+ "filterContent",
57
+ "filterProps",
58
+ "pagination",
59
+ "cardProps",
60
+ "titleProps"
46
61
  ]
47
62
  }
48
63
  ],
49
64
  "presets": [
50
65
  {
51
- "name": "Default",
52
- "props": {}
66
+ "name": "Subcomponents",
67
+ "structureMode": "subcomponents",
68
+ "props": {
69
+ "size": "sm",
70
+ "responsive": "collapse"
71
+ },
72
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
73
+ },
74
+ {
75
+ "name": "Wrapper",
76
+ "structureMode": "wrapper",
77
+ "props": {
78
+ "size": "md",
79
+ "striped": true,
80
+ "verticalBorder": true,
81
+ "outerPadding": "sm"
82
+ },
83
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
84
+ },
85
+ {
86
+ "name": "Div Tags",
87
+ "structureMode": "subcomponents",
88
+ "props": {
89
+ "tag": "div",
90
+ "container": false
91
+ },
92
+ "children": "<Table.Head tag=\"div\">\n <Table.Row tag=\"div\">\n <Table.Header tag=\"div\" text=\"Territory ID\" />\n <Table.Header tag=\"div\" text=\"Name\" />\n <Table.Header tag=\"div\" text=\"Status\" />\n <Table.Header tag=\"div\" text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body tag=\"div\">\n <Table.Row tag=\"div\">\n <Table.Cell tag=\"div\" text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell tag=\"div\" text=\"Ada Lovelace\" />\n <Table.Cell tag=\"div\" text=\"Active\" />\n <Table.Cell tag=\"div\" text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row tag=\"div\">\n <Table.Cell tag=\"div\" text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell tag=\"div\" text=\"Grace Hopper\" />\n <Table.Cell tag=\"div\" text=\"Pending\" />\n <Table.Cell tag=\"div\" text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
93
+ },
94
+ {
95
+ "name": "Sticky Columns",
96
+ "structureMode": "subcomponents",
97
+ "props": {
98
+ "responsive": "scroll",
99
+ "sticky": true,
100
+ "stickyLeftColumn": [
101
+ "territory"
102
+ ],
103
+ "stickyRightColumn": [
104
+ "started"
105
+ ]
106
+ },
107
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header data={{ \"sticky-id\": \"territory\" }} text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header data={{ \"sticky-id\": \"started\" }} text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
108
+ },
109
+ {
110
+ "name": "Collapsible Rows",
111
+ "structureMode": "subcomponents",
112
+ "props": {
113
+ "size": "sm"
114
+ },
115
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Project\" />\n <Table.Header text=\"Owner\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row\n collapsible\n collapsibleContent={<Card padding=\"sm\"><Body text=\"Launch plan details\" /></Card>}\n sideHighlightColor=\"primary\"\n >\n <Table.Cell text=\"Launch plan\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Details\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row\n collapsible\n collapsibleContent={<Card padding=\"sm\"><Body text=\"Migration details\" /></Card>}\n sideHighlightColor=\"info\"\n >\n <Table.Cell text=\"Migration\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Details\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
116
+ },
117
+ {
118
+ "name": "Floating Header",
119
+ "structureMode": "subcomponents",
120
+ "props": {
121
+ "headerStyle": "floating",
122
+ "disableHover": true
123
+ },
124
+ "children": "<Table.Head headerStyle=\"floating\">\n <Table.Row headerStyle=\"floating\">\n <Table.Header headerStyle=\"floating\" text=\"Territory ID\" />\n <Table.Header headerStyle=\"floating\" text=\"Name\" />\n <Table.Header headerStyle=\"floating\" text=\"Status\" />\n <Table.Header headerStyle=\"floating\" text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
125
+ },
126
+ {
127
+ "name": "With Filter",
128
+ "structureMode": "filter_wrapper",
129
+ "props": {
130
+ "variant": "withFilter",
131
+ "title": "Team Members",
132
+ "filterContent": "({ closePopover }) => (<><TextInput label=\"Territory ID\" /><Button onClick={closePopover} text=\"Apply\" /></>)",
133
+ "filterProps": {
134
+ "results": 24,
135
+ "sortOptions": {
136
+ "territory_id": "Territory ID",
137
+ "name": "Name",
138
+ "started_on": "Start Date"
139
+ },
140
+ "sortValue": [
141
+ {
142
+ "name": "started_on",
143
+ "dir": "asc"
144
+ }
145
+ ]
146
+ },
147
+ "pagination": "<Pagination current={1} marginLeft=\"lg\" paddingY=\"xs\" range={5} total={10} />",
148
+ "cardProps": {
149
+ "padding": "none"
150
+ },
151
+ "titleProps": {
152
+ "size": 3
153
+ }
154
+ },
155
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Title\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Engineer\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Manager\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
53
156
  }
54
157
  ],
55
- "conditionals": {},
56
- "hints": {}
158
+ "conditionals": {
159
+ "collapse": {
160
+ "requires": {
161
+ "responsive": "collapse"
162
+ }
163
+ },
164
+ "filterContent": {
165
+ "requires": {
166
+ "variant": "withFilter"
167
+ }
168
+ },
169
+ "filterProps": {
170
+ "requires": {
171
+ "variant": "withFilter"
172
+ }
173
+ },
174
+ "pagination": {
175
+ "requires": {
176
+ "variant": "withFilter"
177
+ }
178
+ },
179
+ "cardProps": {
180
+ "requires": {
181
+ "variant": "withFilter"
182
+ }
183
+ },
184
+ "titleProps": {
185
+ "requires": {
186
+ "variant": "withFilter"
187
+ }
188
+ }
189
+ },
190
+ "hints": {
191
+ "subcomponents": {
192
+ "presetName": "Subcomponents",
193
+ "message": "Subcomponents keeps the full table markup editable in children, including all rows and cells.",
194
+ "type": "info"
195
+ },
196
+ "wrapper": {
197
+ "presetName": "Wrapper",
198
+ "message": "Wrapper uses the same editable children area with wrapper-level table props.",
199
+ "type": "info"
200
+ },
201
+ "div_tags": {
202
+ "presetName": "Div Tags",
203
+ "message": "Div Tags switches the table and every subcomponent in children to tag=\"div\" together.",
204
+ "type": "info"
205
+ },
206
+ "sticky_columns": {
207
+ "presetName": "Sticky Columns",
208
+ "message": "Sticky Columns applies matching data-sticky-id values to the header and every row cell in the editable table.",
209
+ "type": "info"
210
+ },
211
+ "collapsible_rows": {
212
+ "presetName": "Collapsible Rows",
213
+ "message": "Collapsible Rows keeps collapsible row content in children so each row can be edited directly.",
214
+ "type": "info"
215
+ },
216
+ "floating_header": {
217
+ "presetName": "Floating Header",
218
+ "message": "Floating Header applies the floating header style in both table props and editable header children.",
219
+ "type": "info"
220
+ },
221
+ "with_filter": {
222
+ "presetName": "With Filter",
223
+ "message": "With Filter shows the withFilter wrapper while keeping all table children editable.",
224
+ "type": "info"
225
+ }
226
+ },
227
+ "structureModes": {
228
+ "default": "subcomponents",
229
+ "modes": {
230
+ "subcomponents": {
231
+ "label": "Subcomponents",
232
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
233
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
234
+ },
235
+ "wrapper": {
236
+ "label": "Wrapper",
237
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
238
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
239
+ },
240
+ "filter_wrapper": {
241
+ "label": "Filter wrapper",
242
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
243
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Title\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Engineer\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Manager\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
244
+ }
245
+ }
246
+ },
247
+ "children": {
248
+ "editable": true,
249
+ "default": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
250
+ },
251
+ "customProps": {
252
+ "filterContent": {
253
+ "type": "function",
254
+ "platforms": [
255
+ "react"
256
+ ]
257
+ }
258
+ }
57
259
  }
@@ -0,0 +1,176 @@
1
+ {
2
+ "structureModes": {
3
+ "default": "subcomponents",
4
+ "modes": {
5
+ "subcomponents": {
6
+ "label": "Subcomponents",
7
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
8
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
9
+ },
10
+ "wrapper": {
11
+ "label": "Wrapper",
12
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
13
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
14
+ },
15
+ "filter_wrapper": {
16
+ "label": "Filter wrapper",
17
+ "template": "<Table{{props}}>\n{{children}}\n</Table>",
18
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Title\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Engineer\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Manager\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
19
+ }
20
+ }
21
+ },
22
+ "children": {
23
+ "editable": true,
24
+ "default": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
25
+ },
26
+ "customProps": {
27
+ "filterContent": {
28
+ "type": "function",
29
+ "platforms": ["react"]
30
+ }
31
+ },
32
+ "groups": [
33
+ {
34
+ "name": "Layout",
35
+ "props": ["size", "responsive", "collapse", "tag", "container", "outerPadding"]
36
+ },
37
+ {
38
+ "name": "Appearance",
39
+ "props": ["striped", "verticalBorder", "singleLine", "disableHover", "headerStyle", "dark", "dataTable"]
40
+ },
41
+ {
42
+ "name": "Sticky Columns",
43
+ "props": ["sticky", "stickyLeftColumn", "stickyRightColumn"]
44
+ },
45
+ {
46
+ "name": "Filter Variant",
47
+ "props": ["variant", "title", "filterContent", "filterProps", "pagination", "cardProps", "titleProps"]
48
+ }
49
+ ],
50
+ "presets": [
51
+ {
52
+ "name": "Subcomponents",
53
+ "structureMode": "subcomponents",
54
+ "props": {
55
+ "size": "sm",
56
+ "responsive": "collapse"
57
+ },
58
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
59
+ },
60
+ {
61
+ "name": "Wrapper",
62
+ "structureMode": "wrapper",
63
+ "props": {
64
+ "size": "md",
65
+ "striped": true,
66
+ "verticalBorder": true,
67
+ "outerPadding": "sm"
68
+ },
69
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
70
+ },
71
+ {
72
+ "name": "Div Tags",
73
+ "structureMode": "subcomponents",
74
+ "props": {
75
+ "tag": "div",
76
+ "container": false
77
+ },
78
+ "children": "<Table.Head tag=\"div\">\n <Table.Row tag=\"div\">\n <Table.Header tag=\"div\" text=\"Territory ID\" />\n <Table.Header tag=\"div\" text=\"Name\" />\n <Table.Header tag=\"div\" text=\"Status\" />\n <Table.Header tag=\"div\" text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body tag=\"div\">\n <Table.Row tag=\"div\">\n <Table.Cell tag=\"div\" text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell tag=\"div\" text=\"Ada Lovelace\" />\n <Table.Cell tag=\"div\" text=\"Active\" />\n <Table.Cell tag=\"div\" text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row tag=\"div\">\n <Table.Cell tag=\"div\" text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell tag=\"div\" text=\"Grace Hopper\" />\n <Table.Cell tag=\"div\" text=\"Pending\" />\n <Table.Cell tag=\"div\" text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
79
+ },
80
+ {
81
+ "name": "Sticky Columns",
82
+ "structureMode": "subcomponents",
83
+ "props": {
84
+ "responsive": "scroll",
85
+ "sticky": true,
86
+ "stickyLeftColumn": ["territory"],
87
+ "stickyRightColumn": ["started"]
88
+ },
89
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header data={{ \"sticky-id\": \"territory\" }} text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Status\" />\n <Table.Header data={{ \"sticky-id\": \"started\" }} text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell data={{ \"sticky-id\": \"territory\" }} text=\"1003\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Katherine Johnson\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell data={{ \"sticky-id\": \"started\" }} text=\"Apr 11, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
90
+ },
91
+ {
92
+ "name": "Collapsible Rows",
93
+ "structureMode": "subcomponents",
94
+ "props": {
95
+ "size": "sm"
96
+ },
97
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Project\" />\n <Table.Header text=\"Owner\" />\n <Table.Header text=\"Status\" />\n <Table.Header text=\"\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row\n collapsible\n collapsibleContent={<Card padding=\"sm\"><Body text=\"Launch plan details\" /></Card>}\n sideHighlightColor=\"primary\"\n >\n <Table.Cell text=\"Launch plan\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Details\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row\n collapsible\n collapsibleContent={<Card padding=\"sm\"><Body text=\"Migration details\" /></Card>}\n sideHighlightColor=\"info\"\n >\n <Table.Cell text=\"Migration\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Details\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
98
+ },
99
+ {
100
+ "name": "Floating Header",
101
+ "structureMode": "subcomponents",
102
+ "props": {
103
+ "headerStyle": "floating",
104
+ "disableHover": true
105
+ },
106
+ "children": "<Table.Head headerStyle=\"floating\">\n <Table.Row headerStyle=\"floating\">\n <Table.Header headerStyle=\"floating\" text=\"Territory ID\" />\n <Table.Header headerStyle=\"floating\" text=\"Name\" />\n <Table.Header headerStyle=\"floating\" text=\"Status\" />\n <Table.Header headerStyle=\"floating\" text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Active\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Pending\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
107
+ },
108
+ {
109
+ "name": "With Filter",
110
+ "structureMode": "filter_wrapper",
111
+ "props": {
112
+ "variant": "withFilter",
113
+ "title": "Team Members",
114
+ "filterContent": "({ closePopover }) => (<><TextInput label=\"Territory ID\" /><Button onClick={closePopover} text=\"Apply\" /></>)",
115
+ "filterProps": {
116
+ "results": 24,
117
+ "sortOptions": {
118
+ "territory_id": "Territory ID",
119
+ "name": "Name",
120
+ "started_on": "Start Date"
121
+ },
122
+ "sortValue": [{ "name": "started_on", "dir": "asc" }]
123
+ },
124
+ "pagination": "<Pagination current={1} marginLeft=\"lg\" paddingY=\"xs\" range={5} total={10} />",
125
+ "cardProps": { "padding": "none" },
126
+ "titleProps": { "size": 3 }
127
+ },
128
+ "children": "<Table.Head>\n <Table.Row>\n <Table.Header text=\"Territory ID\" />\n <Table.Header text=\"Name\" />\n <Table.Header text=\"Title\" />\n <Table.Header text=\"Start Date\" textAlign=\"right\" />\n </Table.Row>\n</Table.Head>\n<Table.Body>\n <Table.Row>\n <Table.Cell text=\"1001\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Ada Lovelace\" />\n <Table.Cell text=\"Engineer\" />\n <Table.Cell text=\"Apr 9, 2026\" textAlign=\"right\" />\n </Table.Row>\n <Table.Row>\n <Table.Cell text=\"1002\" numberSpacing=\"tabular\" />\n <Table.Cell text=\"Grace Hopper\" />\n <Table.Cell text=\"Manager\" />\n <Table.Cell text=\"Apr 10, 2026\" textAlign=\"right\" />\n </Table.Row>\n</Table.Body>"
129
+ }
130
+ ],
131
+ "conditionals": {
132
+ "collapse": { "requires": { "responsive": "collapse" } },
133
+ "filterContent": { "requires": { "variant": "withFilter" } },
134
+ "filterProps": { "requires": { "variant": "withFilter" } },
135
+ "pagination": { "requires": { "variant": "withFilter" } },
136
+ "cardProps": { "requires": { "variant": "withFilter" } },
137
+ "titleProps": { "requires": { "variant": "withFilter" } }
138
+ },
139
+ "hints": {
140
+ "subcomponents": {
141
+ "presetName": "Subcomponents",
142
+ "message": "Subcomponents keeps the full table markup editable in children, including all rows and cells.",
143
+ "type": "info"
144
+ },
145
+ "wrapper": {
146
+ "presetName": "Wrapper",
147
+ "message": "Wrapper uses the same editable children area with wrapper-level table props.",
148
+ "type": "info"
149
+ },
150
+ "div_tags": {
151
+ "presetName": "Div Tags",
152
+ "message": "Div Tags switches the table and every subcomponent in children to tag=\"div\" together.",
153
+ "type": "info"
154
+ },
155
+ "sticky_columns": {
156
+ "presetName": "Sticky Columns",
157
+ "message": "Sticky Columns applies matching data-sticky-id values to the header and every row cell in the editable table.",
158
+ "type": "info"
159
+ },
160
+ "collapsible_rows": {
161
+ "presetName": "Collapsible Rows",
162
+ "message": "Collapsible Rows keeps collapsible row content in children so each row can be edited directly.",
163
+ "type": "info"
164
+ },
165
+ "floating_header": {
166
+ "presetName": "Floating Header",
167
+ "message": "Floating Header applies the floating header style in both table props and editable header children.",
168
+ "type": "info"
169
+ },
170
+ "with_filter": {
171
+ "presetName": "With Filter",
172
+ "message": "With Filter shows the withFilter wrapper while keeping all table children editable.",
173
+ "type": "info"
174
+ }
175
+ }
176
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "template": "<TextInput{{props}} />",
2
+ "template": "<TextInput{{props}} value={textInputValue} onChange={({ target }) => setTextInputValue(target.value)} />",
3
3
  "propTargets": {},
4
4
  "defaults": {
5
5
  "disabled": false,
@@ -7,7 +7,12 @@
7
7
  "inline": false,
8
8
  "required": false,
9
9
  "requiredIndicator": false,
10
- "type": "text"
10
+ "type": "text",
11
+ "addOn": {
12
+ "icon": "user",
13
+ "alignment": "left",
14
+ "border": true
15
+ }
11
16
  },
12
17
  "groups": [
13
18
  {
@@ -25,7 +30,8 @@
25
30
  "disabled",
26
31
  "error",
27
32
  "required",
28
- "requiredIndicator"
33
+ "requiredIndicator",
34
+ "onChange"
29
35
  ]
30
36
  },
31
37
  {
@@ -35,7 +41,8 @@
35
41
  "type",
36
42
  "mask",
37
43
  "emojiMask",
38
- "autoComplete"
44
+ "autoComplete",
45
+ "addOn"
39
46
  ]
40
47
  }
41
48
  ],
@@ -86,5 +93,37 @@
86
93
  "requires": "label"
87
94
  }
88
95
  },
89
- "hints": {}
96
+ "hints": {
97
+ "controlled_state": {
98
+ "message": "TextInput is controlled when value is set, so the snippet uses useState and onChange to keep the field editable.",
99
+ "type": "info"
100
+ },
101
+ "default": {
102
+ "presetName": "Default",
103
+ "message": "Default shows the common labeled input setup with name, placeholder, and state-backed value.",
104
+ "type": "info"
105
+ },
106
+ "with_error": {
107
+ "presetName": "With Error",
108
+ "message": "With Error displays validation copy below the field while preserving the entered value.",
109
+ "type": "info"
110
+ },
111
+ "disabled": {
112
+ "presetName": "Disabled",
113
+ "message": "Disabled keeps the label and placeholder visible while preventing edits.",
114
+ "type": "info"
115
+ },
116
+ "required": {
117
+ "presetName": "Required",
118
+ "message": "Required combines required with requiredIndicator so the label communicates the requirement.",
119
+ "type": "info"
120
+ }
121
+ },
122
+ "wrapper": "const TextInputPlayground = () => {\n const [textInputValue, setTextInputValue] = useState(value)\n\n return {{component}}\n}\n\n<TextInputPlayground />",
123
+ "statefulProps": [
124
+ "value"
125
+ ],
126
+ "externalImports": [
127
+ "import React, { useState } from 'react'"
128
+ ]
90
129
  }