playbook_ui 15.8.0.pre.rc.1 → 16.0.0.pre.alpha.HFH3979Applydepwarningfixtoplaybook13635

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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -4
  3. data/app/pb_kits/playbook/pb_icon/icon.rb +6 -1
  4. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +7 -0
  5. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.md +1 -1
  6. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.html.erb +135 -0
  7. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.jsx +147 -0
  8. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.md +1 -0
  9. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +2 -0
  10. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
  11. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.test.jsx +402 -27
  12. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select_options.tsx +1 -0
  13. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.html.erb +30 -0
  14. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.md +1 -1
  16. data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +1 -0
  17. data/app/pb_kits/playbook/pb_multiple_users/multiple_users.html.erb +51 -7
  18. data/app/pb_kits/playbook/pb_multiple_users/multiple_users.rb +1 -0
  19. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +6 -1
  20. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +6 -1
  21. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +1 -1
  22. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +6 -1
  23. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +1 -1
  24. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +6 -1
  25. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +1 -1
  26. data/app/pb_kits/playbook/pb_radio/_radio.scss +8 -0
  27. data/app/pb_kits/playbook/pb_table/docs/_sections.yml +68 -0
  28. data/app/pb_kits/playbook/utilities/test/globalProps/alignContent.test.js +37 -50
  29. data/app/pb_kits/playbook/utilities/test/globalProps/alignItems.test.js +38 -50
  30. data/app/pb_kits/playbook/utilities/test/globalProps/alignSelf.test.js +37 -50
  31. data/app/pb_kits/playbook/utilities/test/globalProps/borderRadius.test.js +33 -0
  32. data/app/pb_kits/playbook/utilities/test/globalProps/bottom.test.js +60 -0
  33. data/app/pb_kits/playbook/utilities/test/globalProps/cursor.test.js +42 -0
  34. data/app/pb_kits/playbook/utilities/test/globalProps/dark.test.js +33 -0
  35. data/app/pb_kits/playbook/utilities/test/globalProps/display.test.js +37 -51
  36. data/app/pb_kits/playbook/utilities/test/globalProps/flex.test.js +44 -76
  37. data/app/pb_kits/playbook/utilities/test/globalProps/flexDirection.test.js +37 -50
  38. data/app/pb_kits/playbook/utilities/test/globalProps/flexGrow.test.js +35 -48
  39. data/app/pb_kits/playbook/utilities/test/globalProps/flexShrink.test.js +35 -48
  40. data/app/pb_kits/playbook/utilities/test/globalProps/flexWrap.test.js +37 -50
  41. data/app/pb_kits/playbook/utilities/test/globalProps/gap.test.js +87 -0
  42. data/app/pb_kits/playbook/utilities/test/globalProps/globalPropsTestHelper.js +373 -0
  43. data/app/pb_kits/playbook/utilities/test/globalProps/height.test.js +68 -0
  44. data/app/pb_kits/playbook/utilities/test/globalProps/htmlOptions.test.js +510 -0
  45. data/app/pb_kits/playbook/utilities/test/globalProps/justifyContent.test.js +37 -50
  46. data/app/pb_kits/playbook/utilities/test/globalProps/justifySelf.test.js +37 -50
  47. data/app/pb_kits/playbook/utilities/test/globalProps/left.test.js +60 -0
  48. data/app/pb_kits/playbook/utilities/test/globalProps/lineHeight.test.js +33 -0
  49. data/app/pb_kits/playbook/utilities/test/globalProps/margin.test.js +95 -0
  50. data/app/pb_kits/playbook/utilities/test/globalProps/numberSpacing.test.js +33 -0
  51. data/app/pb_kits/playbook/utilities/test/globalProps/order.test.js +36 -48
  52. data/app/pb_kits/playbook/utilities/test/globalProps/overflow.test.js +68 -0
  53. data/app/pb_kits/playbook/utilities/test/globalProps/padding.test.js +95 -0
  54. data/app/pb_kits/playbook/utilities/test/globalProps/position.test.js +33 -0
  55. data/app/pb_kits/playbook/utilities/test/globalProps/right.test.js +60 -0
  56. data/app/pb_kits/playbook/utilities/test/globalProps/shadow.test.js +33 -0
  57. data/app/pb_kits/playbook/utilities/test/globalProps/textAlign.test.js +41 -0
  58. data/app/pb_kits/playbook/utilities/test/globalProps/top.test.js +60 -0
  59. data/app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js +30 -18
  60. data/app/pb_kits/playbook/utilities/test/globalProps/verticalAlign.test.js +40 -0
  61. data/app/pb_kits/playbook/utilities/test/globalProps/width.test.js +66 -0
  62. data/app/pb_kits/playbook/utilities/test/globalProps/zIndex.test.js +50 -0
  63. data/dist/chunks/_pb_line_graph-hxi01lk7.js +1 -0
  64. data/dist/chunks/_typeahead-BgLnlhzP.js +1 -0
  65. data/dist/chunks/componentRegistry-DzmmLR2x.js +1 -0
  66. data/dist/chunks/globalProps-DgYwLYNx.js +6 -0
  67. data/dist/chunks/lib-NLxTo8OB.js +29 -0
  68. data/dist/chunks/vendor.js +4 -4
  69. data/dist/menu.yml +0 -29
  70. data/dist/playbook-rails-react-bindings.js +1 -1
  71. data/dist/playbook-rails.js +1 -1
  72. data/dist/playbook.css +1 -1
  73. data/lib/playbook/version.rb +2 -2
  74. metadata +34 -147
  75. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.scss +0 -6
  76. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +0 -196
  77. data/app/pb_kits/playbook/pb_bar_graph/barGraph.test.js +0 -31
  78. data/app/pb_kits/playbook/pb_bar_graph/barGraphSettings.js +0 -32
  79. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +0 -106
  80. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.html.erb +0 -1
  81. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +0 -98
  82. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.html.erb +0 -26
  83. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +0 -55
  84. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.md +0 -2
  85. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.html.erb +0 -42
  86. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.md +0 -2
  87. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.html.erb +0 -26
  88. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +0 -55
  89. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.html.erb +0 -26
  90. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +0 -69
  91. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +0 -3
  92. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.html.erb +0 -58
  93. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +0 -64
  94. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.html.erb +0 -14
  95. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +0 -40
  96. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.html.erb +0 -15
  97. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +0 -48
  98. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.html.erb +0 -62
  99. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +0 -136
  100. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +0 -17
  101. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.html.erb +0 -23
  102. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +0 -52
  103. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.html.erb +0 -26
  104. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +0 -86
  105. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +0 -3
  106. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.html.erb +0 -20
  107. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +0 -46
  108. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.md +0 -2
  109. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.html.erb +0 -22
  110. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +0 -55
  111. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.md +0 -1
  112. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +0 -1
  113. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -28
  114. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -11
  115. data/app/pb_kits/playbook/pb_circle_chart/ChartsTypes.ts +0 -2
  116. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +0 -16
  117. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +0 -228
  118. data/app/pb_kits/playbook/pb_circle_chart/circleChart.test.js +0 -45
  119. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +0 -88
  120. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.html.erb +0 -10
  121. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +0 -99
  122. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.html.erb +0 -26
  123. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +0 -88
  124. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.html.erb +0 -20
  125. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +0 -44
  126. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_rails.md +0 -2
  127. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +0 -2
  128. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.html.erb +0 -20
  129. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +0 -43
  130. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +0 -5
  131. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +0 -19
  132. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +0 -38
  133. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.html.erb +0 -136
  134. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +0 -152
  135. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.html.erb +0 -86
  136. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +0 -142
  137. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +0 -14
  138. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +0 -63
  139. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.html.erb +0 -22
  140. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +0 -45
  141. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.html.erb +0 -37
  142. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +0 -61
  143. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.html.erb +0 -22
  144. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +0 -41
  145. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.html.erb +0 -38
  146. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +0 -55
  147. data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +0 -1
  148. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -26
  149. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -11
  150. data/app/pb_kits/playbook/pb_dashboard/commonSettings.js +0 -104
  151. data/app/pb_kits/playbook/pb_dashboard/pbChartsColorsHelper.ts +0 -16
  152. data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.ts +0 -174
  153. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.ts +0 -173
  154. data/app/pb_kits/playbook/pb_dashboard/themeTypes.ts +0 -20
  155. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +0 -49
  156. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +0 -215
  157. data/app/pb_kits/playbook/pb_gauge/docs/_description.md +0 -1
  158. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.html.erb +0 -12
  159. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +0 -36
  160. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_rails.md +0 -2
  161. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +0 -2
  162. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.html.erb +0 -32
  163. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +0 -146
  164. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_rails.md +0 -1
  165. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +0 -1
  166. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.html.erb +0 -11
  167. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +0 -30
  168. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.html.erb +0 -12
  169. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +0 -36
  170. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.html.erb +0 -14
  171. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +0 -49
  172. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.html.erb +0 -15
  173. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +0 -62
  174. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +0 -76
  175. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.html.erb +0 -15
  176. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +0 -54
  177. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.md +0 -1
  178. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.html.erb +0 -27
  179. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +0 -80
  180. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.md +0 -2
  181. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.html.erb +0 -14
  182. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +0 -38
  183. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.html.erb +0 -29
  184. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +0 -72
  185. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +0 -1
  186. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -27
  187. data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -11
  188. data/app/pb_kits/playbook/pb_gauge/gauge.html.erb +0 -2
  189. data/app/pb_kits/playbook/pb_gauge/gauge.rb +0 -56
  190. data/app/pb_kits/playbook/pb_gauge/gauge.test.js +0 -35
  191. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +0 -91
  192. data/app/pb_kits/playbook/pb_line_graph/_line_graph.scss +0 -3
  193. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +0 -166
  194. data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +0 -1
  195. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.html.erb +0 -26
  196. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +0 -56
  197. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_rails.md +0 -2
  198. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_react.md +0 -3
  199. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.html.erb +0 -26
  200. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +0 -52
  201. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.html.erb +0 -26
  202. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +0 -70
  203. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.md +0 -3
  204. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.html.erb +0 -15
  205. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +0 -43
  206. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.html.erb +0 -16
  207. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +0 -49
  208. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.html.erb +0 -62
  209. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +0 -129
  210. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +0 -14
  211. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -18
  212. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -6
  213. data/app/pb_kits/playbook/pb_line_graph/lineGraph.test.js +0 -52
  214. data/app/pb_kits/playbook/pb_line_graph/lineGraphSettings.js +0 -30
  215. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +0 -125
  216. data/app/pb_kits/playbook/pb_line_graph/line_graph.html.erb +0 -1
  217. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +0 -93
  218. data/dist/chunks/_typeahead-D0GNUBXn.js +0 -6
  219. data/dist/chunks/lib-DxCgrqqG.js +0 -29
@@ -0,0 +1,68 @@
1
+ sections:
2
+ - title: "Size & Density"
3
+ examples:
4
+ - table_sm
5
+ - table_md
6
+ - table_lg
7
+ - table_multiline
8
+ - table_single_line
9
+ - table_outer_padding
10
+
11
+ - title: "Layout & Structure"
12
+ examples:
13
+ - table_responsive_table
14
+ - table_with_subcomponents
15
+ - table_with_subcomponents_as_divs
16
+ - table_with_background_kit
17
+
18
+
19
+ - title: "Sticky & Positional Behaviors"
20
+ examples:
21
+ - table_sticky
22
+ - table_sticky_left_columns
23
+ - table_sticky_right_columns
24
+ - table_sticky_columns
25
+ - table_alignment_row
26
+ - table_alignment_column
27
+ - table_alignment_shift_row
28
+ - table_alignment_shift_data
29
+ - table_side_highlight
30
+ - table_container
31
+
32
+ - title: "Collapsible & Nested Behaviors"
33
+ examples:
34
+ - table_with_collapsible
35
+ - table_with_dynamic_collapsible
36
+ - table_with_collapsible_with_custom_click
37
+ - table_with_collapsible_with_custom_content
38
+ - table_with_collapsible_with_nested_rows
39
+ - table_with_collapsible_with_nested_table
40
+
41
+ - title: "Data Presentation"
42
+ examples:
43
+ - table_data_table
44
+ - table_vertical_border
45
+ - table_striped
46
+
47
+ - title: "Header Variants"
48
+ examples:
49
+ - table_header
50
+ - table_with_header_style_borderless
51
+ - table_with_header_style_floating
52
+
53
+ - title: "Interactive Tables"
54
+ examples:
55
+ - table_with_clickable_rows
56
+ - table_with_selectable_rows
57
+ - table_with_filter_variant
58
+ - table_with_filter_variant_with_pagination
59
+ - table_disable_hover
60
+
61
+ - title: "Table Actions"
62
+ examples:
63
+ - table_one_action
64
+ - table_two_actions
65
+ - table_two_plus_actions
66
+ - table_action_middle
67
+ - table_icon_buttons
68
+
@@ -1,55 +1,42 @@
1
- import React from 'react'
2
- import { render, screen } from '../../test-utils'
3
-
4
- import Body from '../../../pb_body/_body'
1
+ import { testGlobalProp, testGlobalPropResponsiveWithDefault, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
5
2
  import { camelToSnakeCase } from '../../../utilities/text'
6
- import { SCREEN_SIZES } from '../../test-utils'
3
+ import Body from '../../../pb_body/_body'
4
+ import Button from '../../../pb_button/_button'
5
+ import Card from '../../../pb_card/_card'
6
+ import Title from '../../../pb_title/_title'
7
+ import Flex from '../../../pb_flex/_flex'
8
+ import Link from '../../../pb_link/_link'
9
+ import Badge from '../../../pb_badge/_badge'
7
10
 
8
- const testSubject = 'body'
11
+ // Note: TextInput excluded - alignContent is a flexbox property that doesn't apply to form inputs
12
+ testGlobalProp(
13
+ 'alignContent',
14
+ ['start', 'center', 'end', 'spaceBetween', 'spaceAround', 'spaceEvenly'],
15
+ (v) => `align_content_${camelToSnakeCase(v)}`,
16
+ (size, v) => `align_content_${size}_${camelToSnakeCase(v)}`,
17
+ [Body, Button, Card, Title, Flex, Link, Badge]
18
+ )
9
19
 
10
- test('Global Props: returns proper class name', () => {
11
- const propValues = ["start", "center", "end", "spaceBetween", "spaceAround", "spaceEvenly"]
12
- for(let x = 0, y = propValues.length; x < y; ++x) {
13
- const testId = `${testSubject}-${propValues[x]}`
14
- render(
15
- <Body
16
- alignContent={`${propValues[x]}`}
17
- data={{ testid: testId }}
18
- text="Hi"
19
- />
20
- )
21
- const kit = screen.getByTestId(testId)
22
- expect(kit).toHaveClass(`align_content_${camelToSnakeCase(propValues[x])}`)
20
+ testGlobalPropResponsiveWithDefault(
21
+ 'alignContent',
22
+ { default: "spaceAround", xs: "center", sm: "spaceAround", md: "center" },
23
+ (v) => `align_content_${camelToSnakeCase(v)}`,
24
+ (size, v) => `align_content_${size}_${camelToSnakeCase(v)}`
25
+ )
23
26
 
24
- SCREEN_SIZES.forEach((size) => {
25
- const testId = `${testSubject}-${propValues[x]}-${size}`
26
- render(
27
- <Body
28
- alignContent={{ [size]: propValues[x] }}
29
- data={{ testid: testId }}
30
- text="Hi"
31
- />
32
- )
33
- const kit = screen.getByTestId(testId)
34
- expect(kit).toHaveClass(`align_content_${size}_${camelToSnakeCase(propValues[x])}`)
35
- })
36
- }
37
- })
27
+ testGlobalPropAbsence(
28
+ 'alignContent',
29
+ ['align_content_start', 'align_content_center', 'align_content_end', 'align_content_space_between', 'align_content_space_around', 'align_content_space_evenly'],
30
+ undefined,
31
+ { skipNull: true }
32
+ )
38
33
 
39
- test('Global Props: returns proper class name with default key', () => {
40
- const testId = `${testSubject}-default-responsive`
41
- render(
42
- <Body
43
- alignContent={{ default: "spaceAround", xs: "center", sm: "spaceAround", md: "center" }}
44
- data={{ testid: testId }}
45
- text="Hi"
46
- />
47
- )
48
- const kit = screen.getByTestId(testId)
49
- // Should have base class for default value
50
- expect(kit).toHaveClass(`align_content_space_around`)
51
- // Should have responsive classes for screen sizes
52
- expect(kit).toHaveClass(`align_content_xs_center`)
53
- expect(kit).toHaveClass(`align_content_sm_space_around`)
54
- expect(kit).toHaveClass(`align_content_md_center`)
55
- })
34
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
35
+ // NOTE: Using allowRenderingErrors: true because invalid types (like numbers) cause rendering errors with camelToSnakeCase
36
+ testGlobalPropInvalidValues(
37
+ 'alignContent',
38
+ ['invalid', 'bad_value', 'not_an_align_value', 'special-chars!@#'],
39
+ ['align_content_invalid', 'align_content_bad_value', 'align_content_not_an_align_value', 'align_content_special-chars!@#'],
40
+ undefined,
41
+ { skipKnownIssues: true, allowRenderingErrors: true }
42
+ )
@@ -1,54 +1,42 @@
1
- import React from 'react'
2
- import { render, screen } from '../../test-utils'
3
-
4
- import Body from '../../../pb_body/_body'
1
+ import { testGlobalProp, testGlobalPropResponsiveWithDefault, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
5
2
  import { camelToSnakeCase } from '../../../utilities/text'
6
- import { SCREEN_SIZES } from '../../test-utils'
3
+ import Body from '../../../pb_body/_body'
4
+ import Button from '../../../pb_button/_button'
5
+ import Card from '../../../pb_card/_card'
6
+ import Title from '../../../pb_title/_title'
7
+ import Flex from '../../../pb_flex/_flex'
8
+ import Link from '../../../pb_link/_link'
9
+ import Badge from '../../../pb_badge/_badge'
10
+
11
+ // Note: TextInput excluded - alignItems is a flexbox property that doesn't apply to form inputs
12
+ testGlobalProp(
13
+ 'alignItems',
14
+ ['start', 'center', 'end', 'baseline', 'stretch', 'flexStart', 'flexEnd'],
15
+ (v) => `align_items_${camelToSnakeCase(v)}`,
16
+ (size, v) => `align_items_${size}_${camelToSnakeCase(v)}`,
17
+ [Body, Button, Card, Title, Flex, Link, Badge]
18
+ )
7
19
 
8
- const testSubject = 'body'
20
+ testGlobalPropResponsiveWithDefault(
21
+ 'alignItems',
22
+ { default: 'end', xs: 'center', sm: 'end', md: 'center' },
23
+ (v) => `align_items_${camelToSnakeCase(v)}`,
24
+ (size, v) => `align_items_${size}_${camelToSnakeCase(v)}`
25
+ )
9
26
 
10
- test('Global Props: returns proper class name', () => {
11
- const propValues = ["start", "center", "end", "baseline", "stretch", "flexStart", "flexEnd"]
12
- for(let x = 0, y = propValues.length; x < y; ++x) {
13
- const testId = `${testSubject}-${propValues[x]}`
14
- render(
15
- <Body
16
- alignItems={`${propValues[x]}`}
17
- data={{ testid: testId }}
18
- text="Hi"
19
- />
20
- )
21
- const kit = screen.getByTestId(testId)
22
- expect(kit).toHaveClass(`align_items_${camelToSnakeCase(propValues[x])}`)
23
- SCREEN_SIZES.forEach((size) => {
24
- const testId = `${testSubject}-${propValues[x]}-${size}`
25
- render(
26
- <Body
27
- alignItems={{ [size]: propValues[x] }}
28
- data={{ testid: testId }}
29
- text="Hi"
30
- />
31
- )
32
- const kit = screen.getByTestId(testId)
33
- expect(kit).toHaveClass(`align_items_${size}_${camelToSnakeCase(propValues[x])}`)
34
- })
35
- }
36
- })
27
+ testGlobalPropAbsence(
28
+ 'alignItems',
29
+ ['align_items_start', 'align_items_center', 'align_items_end', 'align_items_baseline', 'align_items_stretch', 'align_items_flex_start', 'align_items_flex_end'],
30
+ undefined,
31
+ { skipNull: true }
32
+ )
37
33
 
38
- test('Global Props: returns proper class name with default key', () => {
39
- const testId = `${testSubject}-default-responsive`
40
- render(
41
- <Body
42
- alignItems={{ default: "end", xs: "center", sm: "end", md: "center" }}
43
- data={{ testid: testId }}
44
- text="Hi"
45
- />
46
- )
47
- const kit = screen.getByTestId(testId)
48
- // Should have base class for default value
49
- expect(kit).toHaveClass(`align_items_end`)
50
- // Should have responsive classes for screen sizes
51
- expect(kit).toHaveClass(`align_items_xs_center`)
52
- expect(kit).toHaveClass(`align_items_sm_end`)
53
- expect(kit).toHaveClass(`align_items_md_center`)
54
- })
34
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
35
+ // NOTE: Using allowRenderingErrors: true because invalid types (like numbers) cause rendering errors with camelToSnakeCase
36
+ testGlobalPropInvalidValues(
37
+ 'alignItems',
38
+ ['invalid', 'bad_value', 'not_an_align_value', 'special-chars!@#'],
39
+ ['align_items_invalid', 'align_items_bad_value', 'align_items_not_an_align_value', 'align_items_special-chars!@#'],
40
+ undefined,
41
+ { skipKnownIssues: true, allowRenderingErrors: true }
42
+ )
@@ -1,55 +1,42 @@
1
- import React from 'react'
2
- import { render, screen } from '../../test-utils'
3
-
4
- import Body from '../../../pb_body/_body'
1
+ import { testGlobalProp, testGlobalPropResponsiveWithDefault, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
5
2
  import { camelToSnakeCase } from '../../../utilities/text'
6
- import { SCREEN_SIZES } from '../../test-utils'
3
+ import Body from '../../../pb_body/_body'
4
+ import Button from '../../../pb_button/_button'
5
+ import Card from '../../../pb_card/_card'
6
+ import Title from '../../../pb_title/_title'
7
+ import Flex from '../../../pb_flex/_flex'
8
+ import Link from '../../../pb_link/_link'
9
+ import Badge from '../../../pb_badge/_badge'
7
10
 
8
- const testSubject = 'body'
11
+ // Note: TextInput excluded - alignSelf is a flexbox property that doesn't apply to form inputs
12
+ testGlobalProp(
13
+ 'alignSelf',
14
+ ['start', 'center', 'end', 'stretch', 'baseline', 'auto'],
15
+ (v) => `align_self_${camelToSnakeCase(v)}`,
16
+ (size, v) => `align_self_${size}_${camelToSnakeCase(v)}`,
17
+ [Body, Button, Card, Title, Flex, Link, Badge]
18
+ )
9
19
 
10
- test('Global Props: returns proper class name', () => {
11
- const propValues = ["start", "center", "end", "stretch", "baseline", "auto"]
12
- for(let x = 0, y = propValues.length; x < y; ++x) {
13
- const testId = `${testSubject}-${propValues[x]}`
14
- render(
15
- <Body
16
- alignSelf={`${propValues[x]}`}
17
- data={{ testid: testId }}
18
- text="Hi"
19
- />
20
- )
21
- const kit = screen.getByTestId(testId)
22
- expect(kit).toHaveClass(`align_self_${camelToSnakeCase(propValues[x])}`)
20
+ testGlobalPropResponsiveWithDefault(
21
+ 'alignSelf',
22
+ { default: 'end', xs: 'center', sm: 'end', md: 'center' },
23
+ (v) => `align_self_${camelToSnakeCase(v)}`,
24
+ (size, v) => `align_self_${size}_${camelToSnakeCase(v)}`
25
+ )
23
26
 
24
- SCREEN_SIZES.forEach((size) => {
25
- const testId = `${testSubject}-${propValues[x]}-${size}`
26
- render(
27
- <Body
28
- alignSelf={{ [size]: propValues[x] }}
29
- data={{ testid: testId }}
30
- text="Hi"
31
- />
32
- )
33
- const kit = screen.getByTestId(testId)
34
- expect(kit).toHaveClass(`align_self_${size}_${camelToSnakeCase(propValues[x])}`)
35
- })
36
- }
37
- })
27
+ testGlobalPropAbsence(
28
+ 'alignSelf',
29
+ ['align_self_start', 'align_self_center', 'align_self_end', 'align_self_stretch', 'align_self_baseline', 'align_self_auto'],
30
+ undefined,
31
+ { skipNull: true }
32
+ )
38
33
 
39
- test('Global Props: returns proper class name with default key', () => {
40
- const testId = `${testSubject}-default-responsive`
41
- render(
42
- <Body
43
- alignSelf={{ default: "end", xs: "center", sm: "end", md: "center" }}
44
- data={{ testid: testId }}
45
- text="Hi"
46
- />
47
- )
48
- const kit = screen.getByTestId(testId)
49
- // Should have base class for default value
50
- expect(kit).toHaveClass(`align_self_end`)
51
- // Should have responsive classes for screen sizes
52
- expect(kit).toHaveClass(`align_self_xs_center`)
53
- expect(kit).toHaveClass(`align_self_sm_end`)
54
- expect(kit).toHaveClass(`align_self_md_center`)
55
- })
34
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
35
+ // NOTE: Using allowRenderingErrors: true because invalid types (like numbers) cause rendering errors with camelToSnakeCase
36
+ testGlobalPropInvalidValues(
37
+ 'alignSelf',
38
+ ['invalid', 'bad_value', 'not_an_align_value', 'special-chars!@#'],
39
+ ['align_self_invalid', 'align_self_bad_value', 'align_self_not_an_align_value', 'align_self_special-chars!@#'],
40
+ undefined,
41
+ { skipKnownIssues: true, allowRenderingErrors: true }
42
+ )
@@ -0,0 +1,33 @@
1
+ import { testGlobalProp, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
2
+ import Body from '../../../pb_body/_body'
3
+ import Button from '../../../pb_button/_button'
4
+ import Card from '../../../pb_card/_card'
5
+ import Title from '../../../pb_title/_title'
6
+ import Flex from '../../../pb_flex/_flex'
7
+ import Link from '../../../pb_link/_link'
8
+ import Badge from '../../../pb_badge/_badge'
9
+
10
+ // NOTE: TextInput excluded - borderRadius is not a valid prop for input elements
11
+ testGlobalProp(
12
+ 'borderRadius',
13
+ ['none', 'xs', 'sm', 'md', 'lg', 'xl', 'rounded'],
14
+ (v) => `border_radius_${v}`,
15
+ null,
16
+ [Body, Button, Card, Title, Flex, Link, Badge]
17
+ )
18
+
19
+ testGlobalPropAbsence(
20
+ 'borderRadius',
21
+ ['border_radius_none', 'border_radius_xs', 'border_radius_sm', 'border_radius_md', 'border_radius_lg', 'border_radius_xl', 'border_radius_rounded'],
22
+ undefined,
23
+ { skipNull: true }
24
+ )
25
+
26
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
27
+ testGlobalPropInvalidValues(
28
+ 'borderRadius',
29
+ ['invalid', 'bad_value', 'not_a_radius', 'special-chars!@#'],
30
+ ['border_radius_invalid', 'border_radius_bad_value', 'border_radius_not_a_radius', 'border_radius_special-chars!@#'],
31
+ undefined,
32
+ { skipKnownIssues: true }
33
+ )
@@ -0,0 +1,60 @@
1
+ import React from 'react'
2
+ import { testGlobalProp, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
3
+ import { render, screen } from '../../test-utils'
4
+ import Body from '../../../pb_body/_body'
5
+ import Button from '../../../pb_button/_button'
6
+ import Card from '../../../pb_card/_card'
7
+ import Title from '../../../pb_title/_title'
8
+ import Flex from '../../../pb_flex/_flex'
9
+ import Link from '../../../pb_link/_link'
10
+ import Badge from '../../../pb_badge/_badge'
11
+
12
+ const validSizes = ['xs', 'sm', 'md', 'lg', 'xl']
13
+
14
+ // NOTE: TextInput excluded - positioning props are not valid for input elements
15
+ // Test bottom prop with string values
16
+ testGlobalProp(
17
+ 'bottom',
18
+ validSizes,
19
+ (v) => `bottom_${v}`,
20
+ null,
21
+ [Body, Button, Card, Title, Flex, Link, Badge]
22
+ )
23
+
24
+ // Test bottom prop with object values (inset) - tested separately due to object value complexity
25
+ test('Global Props: bottom returns proper class name with object values (inset)', () => {
26
+ const testCases = [
27
+ { value: { value: 'md', inset: true }, expected: 'bottom_md_inset' },
28
+ { value: { value: 'lg', inset: false }, expected: 'bottom_lg' },
29
+ { value: { value: 'sm', inset: true }, expected: 'bottom_sm_inset' }
30
+ ]
31
+
32
+ testCases.forEach(({ value, expected }) => {
33
+ const testId = `body-bottom-object-${value.value}-${value.inset}`
34
+ render(
35
+ <Body
36
+ bottom={value}
37
+ data={{ testid: testId }}
38
+ text="Hi"
39
+ />
40
+ )
41
+ const kit = screen.getByTestId(testId)
42
+ expect(kit).toHaveClass(expected)
43
+ })
44
+ })
45
+
46
+ testGlobalPropAbsence(
47
+ 'bottom',
48
+ ['bottom_xs', 'bottom_sm', 'bottom_md', 'bottom_lg', 'bottom_xl'],
49
+ undefined,
50
+ { skipNull: true }
51
+ )
52
+
53
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
54
+ testGlobalPropInvalidValues(
55
+ 'bottom',
56
+ ['invalid', 'bad_value', 'not_a_size', 'special-chars!@#'],
57
+ ['bottom_invalid', 'bottom_bad_value', 'bottom_not_a_size', 'bottom_special-chars!@#'],
58
+ undefined,
59
+ { skipKnownIssues: true }
60
+ )
@@ -0,0 +1,42 @@
1
+ import { testGlobalProp, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
2
+ import { camelToSnakeCase } from '../../../utilities/text'
3
+ import Body from '../../../pb_body/_body'
4
+ import Button from '../../../pb_button/_button'
5
+ import Card from '../../../pb_card/_card'
6
+ import Title from '../../../pb_title/_title'
7
+ import TextInput from '../../../pb_text_input/_text_input'
8
+ import Flex from '../../../pb_flex/_flex'
9
+ import Link from '../../../pb_link/_link'
10
+ import Badge from '../../../pb_badge/_badge'
11
+
12
+ const validValues = [
13
+ 'auto', 'default', 'none', 'contextMenu', 'help', 'pointer', 'progress', 'wait', 'cell',
14
+ 'crosshair', 'text', 'verticalText', 'alias', 'copy', 'move', 'noDrop', 'notAllowed', 'grab',
15
+ 'grabbing', 'eResize', 'nResize', 'neResize', 'nwResize', 'sResize', 'seResize', 'swResize', 'wResize',
16
+ 'ewResize', 'nsResize', 'neswResize', 'nwseResize', 'colResize', 'rowResize', 'allScroll', 'zoomIn', 'zoomOut'
17
+ ]
18
+
19
+ testGlobalProp(
20
+ 'cursor',
21
+ validValues,
22
+ (v) => `cursor_${camelToSnakeCase(v)}`,
23
+ null,
24
+ [Body, Button, Card, Title, TextInput, Flex, Link, Badge]
25
+ )
26
+
27
+ testGlobalPropAbsence(
28
+ 'cursor',
29
+ ['cursor_auto', 'cursor_pointer', 'cursor_default', 'cursor_none'],
30
+ undefined,
31
+ { skipNull: true }
32
+ )
33
+
34
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
35
+ // NOTE: Using allowRenderingErrors: true because invalid types (like numbers) cause rendering errors with camelToSnakeCase
36
+ testGlobalPropInvalidValues(
37
+ 'cursor',
38
+ ['invalid', 'bad_value', 'not_a_cursor', 'special-chars!@#'],
39
+ ['cursor_invalid', 'cursor_bad_value', 'cursor_not_a_cursor', 'cursor_special-chars!@#'],
40
+ undefined,
41
+ { skipKnownIssues: true, allowRenderingErrors: true }
42
+ )
@@ -0,0 +1,33 @@
1
+ import { testGlobalProp, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
2
+ import Body from '../../../pb_body/_body'
3
+ import Button from '../../../pb_button/_button'
4
+ import Card from '../../../pb_card/_card'
5
+ import Title from '../../../pb_title/_title'
6
+ import TextInput from '../../../pb_text_input/_text_input'
7
+ import Flex from '../../../pb_flex/_flex'
8
+ import Link from '../../../pb_link/_link'
9
+ import Badge from '../../../pb_badge/_badge'
10
+
11
+ testGlobalProp(
12
+ 'dark',
13
+ [true],
14
+ () => 'dark',
15
+ null,
16
+ [Body, Button, Card, Title, TextInput, Flex, Link, Badge]
17
+ )
18
+
19
+ testGlobalPropAbsence(
20
+ 'dark',
21
+ ['dark'],
22
+ undefined,
23
+ { skipNull: true }
24
+ )
25
+
26
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
27
+ testGlobalPropInvalidValues(
28
+ 'dark',
29
+ ['invalid', 'bad_value', 123, 'true', 'false'],
30
+ ['dark_invalid', 'dark_bad_value', 'dark_123', 'dark_true', 'dark_false'],
31
+ undefined,
32
+ { skipKnownIssues: true }
33
+ )
@@ -1,56 +1,42 @@
1
- import React from 'react'
2
- import { render, screen } from '../../test-utils'
3
-
4
- import Body from '../../../pb_body/_body'
1
+ import { testGlobalProp, testGlobalPropResponsiveWithDefault, testGlobalPropAbsence, testGlobalPropInvalidValues } from './globalPropsTestHelper'
5
2
  import { camelToSnakeCase } from '../../../utilities/text'
6
- import { SCREEN_SIZES } from '../../test-utils'
3
+ import Body from '../../../pb_body/_body'
4
+ import Button from '../../../pb_button/_button'
5
+ import Card from '../../../pb_card/_card'
6
+ import Title from '../../../pb_title/_title'
7
+ import TextInput from '../../../pb_text_input/_text_input'
8
+ import Flex from '../../../pb_flex/_flex'
9
+ import Link from '../../../pb_link/_link'
10
+ import Badge from '../../../pb_badge/_badge'
7
11
 
8
- const testSubject = 'body'
12
+ testGlobalProp(
13
+ 'display',
14
+ ['block', 'inline', 'inline_block', 'flex', 'inline_flex', 'none', 'grid'],
15
+ (v) => `display_${camelToSnakeCase(v)}`,
16
+ (size, v) => `display_${size}_${camelToSnakeCase(v)}`,
17
+ [Body, Button, Card, Title, TextInput, Flex, Link, Badge]
18
+ )
9
19
 
10
- // %w[block inline_block inline flex inline_flex none]
11
- test('Global Props: returns proper class name', () => {
12
- const propValues = ["block", "inline", "inline_block", "flex", "inline_flex", "none", "grid" ]
13
- for(let x = 0, y = propValues.length; x < y; ++x) {
14
- const testId = `${testSubject}-${propValues[x]}`
15
- render(
16
- <Body
17
- data={{ testid: testId }}
18
- display={`${propValues[x]}`}
19
- text="Hi"
20
- />
21
- )
22
- const kit = screen.getByTestId(testId)
23
- expect(kit).toHaveClass(`display_${camelToSnakeCase(propValues[x])}`)
20
+ testGlobalPropResponsiveWithDefault(
21
+ 'display',
22
+ { default: 'none', xs: 'block', sm: 'none', md: 'block' },
23
+ (v) => `display_${camelToSnakeCase(v)}`,
24
+ (size, v) => `display_${size}_${camelToSnakeCase(v)}`
25
+ )
24
26
 
25
- SCREEN_SIZES.forEach((size) => {
26
- const testId = `${testSubject}-${propValues[x]}-${size}`
27
- render(
28
- <Body
29
- data={{ testid: testId }}
30
- display={{ [size]: propValues[x] }}
31
- text="Hi"
32
- />
33
- )
34
- const kit = screen.getByTestId(testId)
35
- expect(kit).toHaveClass(`display_${size}_${camelToSnakeCase(propValues[x])}`)
36
- })
37
- }
38
- })
27
+ testGlobalPropAbsence(
28
+ 'display',
29
+ ['display_block', 'display_inline', 'display_flex', 'display_none', 'display_grid'],
30
+ undefined,
31
+ { skipNull: true },
32
+ )
39
33
 
40
- test('Global Props: returns proper class name with default key', () => {
41
- const testId = `${testSubject}-default-responsive`
42
- render(
43
- <Body
44
- data={{ testid: testId }}
45
- display={{ default: "none", xs: "block", sm: "none", md: "block" }}
46
- text="Hi"
47
- />
48
- )
49
- const kit = screen.getByTestId(testId)
50
- // Should have base class for default value
51
- expect(kit).toHaveClass(`display_none`)
52
- // Should have responsive classes for screen sizes
53
- expect(kit).toHaveClass(`display_xs_block`)
54
- expect(kit).toHaveClass(`display_sm_none`)
55
- expect(kit).toHaveClass(`display_md_block`)
56
- })
34
+ // NOTE: Currently using skipKnownIssues: true because globalProps.ts generates classes for invalid values
35
+ // NOTE: Using allowRenderingErrors: true because invalid types (like numbers) cause rendering errors with camelToSnakeCase
36
+ testGlobalPropInvalidValues(
37
+ 'display',
38
+ ['invalid', 'bad_value', 'not_a_display_value', 'special-chars!@#', 'display_with_underscores'],
39
+ ['display_invalid', 'display_bad_value', 'display_not_a_display_value', 'display_special-chars!@#', 'display_display_with_underscores'],
40
+ undefined,
41
+ { skipKnownIssues: true, allowRenderingErrors: true }
42
+ )