playbook_ui 16.1.0.pre.alpha.PLAY2800textinputtextareaaccessiblebordercontrast14296 → 16.1.0.pre.alpha.PLAY272013809

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 (205) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +2 -12
  3. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -33
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md +1 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
  7. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +1 -1
  8. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +0 -17
  9. data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +1 -10
  10. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +0 -2
  11. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +0 -2
  12. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +0 -1
  13. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +5 -22
  14. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +16 -25
  15. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -3
  16. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +1 -36
  17. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -2
  18. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -2
  19. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +0 -6
  20. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +14 -97
  21. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +1 -1
  22. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -6
  23. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +0 -1
  24. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.md +1 -3
  25. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +2 -8
  26. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -5
  27. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +6 -18
  28. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +0 -17
  29. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +1 -118
  30. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +1 -5
  31. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +10 -15
  32. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +0 -4
  33. data/app/pb_kits/playbook/pb_dropdown/index.js +83 -191
  34. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +0 -3
  35. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +1 -18
  36. data/app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx +0 -6
  37. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +1 -1
  38. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -2
  39. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +9 -16
  40. data/app/pb_kits/playbook/pb_filter/filter.rb +2 -2
  41. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +2 -156
  42. data/app/pb_kits/playbook/pb_form/pb_form_validation.js +2 -9
  43. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.html.erb +1 -1
  44. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.jsx +0 -1
  45. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.html.erb +1 -1
  46. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.jsx +0 -1
  47. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.html.erb +3 -3
  48. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.jsx +1 -4
  49. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_full_width.html.erb +4 -4
  50. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_full_width.jsx +1 -4
  51. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.jsx +0 -1
  52. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +5 -5
  53. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +4 -4
  54. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +0 -4
  55. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +0 -7
  56. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +549 -650
  57. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +3 -3
  58. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +7 -4
  59. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +0 -2
  60. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +17 -18
  61. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +0 -3
  62. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.test.jsx +25 -55
  63. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select_options.tsx +3 -3
  64. data/app/pb_kits/playbook/pb_nav/_item.tsx +3 -5
  65. data/app/pb_kits/playbook/pb_nav/_nav.scss +3 -82
  66. data/app/pb_kits/playbook/pb_nav/docs/example.yml +6 -2
  67. data/app/pb_kits/playbook/pb_nav/docs/index.js +1 -2
  68. data/app/pb_kits/playbook/pb_nav/item.html.erb +1 -1
  69. data/app/pb_kits/playbook/pb_nav/item.rb +1 -1
  70. data/app/pb_kits/playbook/pb_nav/navTypes.ts +0 -1
  71. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +7 -40
  72. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +0 -1
  73. data/app/pb_kits/playbook/pb_passphrase/docs/example.yml +0 -2
  74. data/app/pb_kits/playbook/pb_passphrase/docs/index.js +0 -1
  75. data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +0 -2
  76. data/app/pb_kits/playbook/pb_passphrase/passphrase.test.jsx +1 -30
  77. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +0 -3
  78. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
  79. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
  80. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
  81. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +3 -34
  82. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +16 -51
  83. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.jsx +0 -1
  84. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +0 -1
  85. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +0 -2
  86. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -2
  87. data/app/pb_kits/playbook/pb_table/index.ts +27 -29
  88. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +20 -51
  89. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
  90. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled.jsx +13 -11
  91. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +10 -10
  92. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +12 -55
  93. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +1 -11
  94. data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +10 -31
  95. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb +3 -3
  96. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +0 -3
  97. data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +9 -25
  98. data/app/pb_kits/playbook/pb_textarea/textarea.rb +1 -7
  99. data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +11 -97
  100. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.jsx +2 -5
  101. data/app/pb_kits/playbook/pb_time_picker/docs/example.yml +0 -2
  102. data/app/pb_kits/playbook/pb_time_picker/docs/index.js +0 -1
  103. data/app/pb_kits/playbook/pb_time_picker/time_picker.rb +0 -3
  104. data/app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx +1 -47
  105. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +2 -53
  106. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +324 -413
  107. data/app/pb_kits/playbook/pb_typeahead/components/Control.tsx +0 -2
  108. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +1 -4
  109. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.html.erb +1 -1
  110. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.jsx +1 -1
  111. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -2
  112. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +21 -22
  113. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +2 -3
  114. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +1 -7
  115. data/app/pb_kits/playbook/tokens/_colors.scss +0 -3
  116. data/app/pb_kits/playbook/tokens/exports/_colors.module.scss +0 -10
  117. data/dist/chunks/{_pb_line_graph-CC2Ywwix.js → _pb_line_graph-BgKF_zz1.js} +1 -1
  118. data/dist/chunks/_typeahead-B9a6ZsEP.js +1 -0
  119. data/dist/chunks/{globalProps-DYr2qrIf.js → globalProps-BhVYCqRf.js} +1 -1
  120. data/dist/chunks/lib-DD34ZrWL.js +29 -0
  121. data/dist/chunks/vendor.js +3 -3
  122. data/dist/menu.yml +2 -2
  123. data/dist/playbook-rails-react-bindings.js +1 -1
  124. data/dist/playbook-rails.js +1 -1
  125. data/dist/playbook.css +2 -2
  126. data/dist/reset.css +1 -1
  127. data/lib/playbook/align_content.rb +3 -13
  128. data/lib/playbook/align_items.rb +3 -13
  129. data/lib/playbook/align_self.rb +3 -13
  130. data/lib/playbook/display.rb +0 -5
  131. data/lib/playbook/flex.rb +3 -13
  132. data/lib/playbook/flex_direction.rb +3 -13
  133. data/lib/playbook/flex_grow.rb +3 -13
  134. data/lib/playbook/flex_shrink.rb +3 -13
  135. data/lib/playbook/flex_wrap.rb +3 -13
  136. data/lib/playbook/forms/builder/date_picker_field.rb +2 -8
  137. data/lib/playbook/forms/builder/dropdown_field.rb +1 -7
  138. data/lib/playbook/forms/builder/form_field_builder.rb +1 -1
  139. data/lib/playbook/forms/builder/multi_level_select_field.rb +0 -8
  140. data/lib/playbook/forms/builder/phone_number_field.rb +0 -9
  141. data/lib/playbook/forms/builder/typeahead_field.rb +1 -15
  142. data/lib/playbook/forms/builder.rb +2 -2
  143. data/lib/playbook/justify_content.rb +3 -13
  144. data/lib/playbook/justify_self.rb +3 -13
  145. data/lib/playbook/order.rb +3 -13
  146. data/lib/playbook/spacing.rb +9 -39
  147. data/lib/playbook/text_align.rb +3 -13
  148. data/lib/playbook/truncate.rb +1 -1
  149. data/lib/playbook/version.rb +1 -1
  150. data/lib/playbook/vertical_align.rb +3 -13
  151. data/lib/playbook/z_index.rb +0 -5
  152. data/lib/playbook.rb +0 -1
  153. metadata +6 -56
  154. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.jsx +0 -71
  155. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.md +0 -4
  156. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.html.erb +0 -6
  157. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.jsx +0 -17
  158. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.md +0 -3
  159. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.md +0 -1
  160. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_required_indicator.html.erb +0 -5
  161. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_required_indicator.jsx +0 -13
  162. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_required_indicator.md +0 -1
  163. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_rails.md +0 -3
  164. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_react.md +0 -3
  165. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_required_indicator.html.erb +0 -14
  166. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_required_indicator.jsx +0 -42
  167. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_required_indicator.md +0 -3
  168. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.html.erb +0 -52
  169. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.jsx +0 -72
  170. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.md +0 -5
  171. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height.jsx +0 -33
  172. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.html.erb +0 -20
  173. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.md +0 -8
  174. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_react.md +0 -8
  175. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.html.erb +0 -9
  176. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.jsx +0 -33
  177. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.md +0 -3
  178. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.md +0 -3
  179. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.html.erb +0 -72
  180. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.jsx +0 -87
  181. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.md +0 -3
  182. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_disabled_item.html.erb +0 -24
  183. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_disabled_item.jsx +0 -87
  184. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.html.erb +0 -7
  185. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.jsx +0 -24
  186. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.md +0 -3
  187. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.html.erb +0 -5
  188. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.jsx +0 -14
  189. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.md +0 -3
  190. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_label.jsx +0 -44
  191. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_label.md +0 -1
  192. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +0 -28
  193. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md +0 -1
  194. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.md +0 -1
  195. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.html.erb +0 -6
  196. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.jsx +0 -16
  197. data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.md +0 -3
  198. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.html.erb +0 -16
  199. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.jsx +0 -23
  200. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.md +0 -3
  201. data/app/pb_kits/playbook/tokens/_colors_accessible.scss +0 -250
  202. data/dist/chunks/_typeahead-BWJHXtvg.js +0 -1
  203. data/dist/chunks/lib-DgqmX9CF.js +0 -29
  204. data/lib/playbook/tokens/colors.json +0 -99
  205. data/lib/playbook/tokens.rb +0 -99
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf8cbd4a4177e5b7442c49775e108490c4b045a1cdd65e22dd39d5549ad66ba8
4
- data.tar.gz: 6a56475a3d12c28c115dd2d6c9dbbdc6b6572ecd2e06402c6aa04c55c6d8697a
3
+ metadata.gz: ac6a39ac1cb6ec18fcba139cebeb541aaf10f24f4488643bc91d227db570a1f4
4
+ data.tar.gz: 1b968b6f5f6513392b8ed7013ea5397fdf42fb0e7f426564ba50aa331296dfc8
5
5
  SHA512:
6
- metadata.gz: 6c1810f2b509a1a96cd0acf3fcceb11bff59cc9702fb5bd0dbcdedfabc0df9c69f9b7876efab807e5aeb16be6659e6faced0d7f69379f62989c548fa434fa820
7
- data.tar.gz: e4bfd50947c8c643440a59c6a2ddb160a304f9ec431c2cb37a2b00ba1f9371cdf161623be3e933427bfed1bfa815061ed38f675afdaff8706d1068803b727b79
6
+ metadata.gz: a38266fabaceae1bf080f2802ede800f0db99d1991cb82b6773b6ef63c094a2b6df462547edf359a06917b689fdd278a8c7882edcff5afd0ac76f948ded9f45b
7
+ data.tar.gz: d21b8d9a27b38812cd09ce8aea5c42a2c2976db366251c7333a7bfccdc68459775044ec86bf81108eb796820abedab92edc40550e769cd50cbe2ffa5e2a426c4
@@ -66,18 +66,8 @@ const TableCellRenderer = ({
66
66
  // Find the "owning" colDefinition by accessor. Needed for multi column logic
67
67
  const colDef = findColumnDefByAccessor(columnDefinitions ?? [], column.id)
68
68
  const cellAlignment = colDef?.columnStyling?.cellAlignment ?? "right"
69
-
70
- // Support function-based styling for conditional rendering
71
- const cellFontColorValue = colDef?.columnStyling?.fontColor
72
- const cellFontColor = typeof cellFontColorValue === 'function'
73
- ? cellFontColorValue(row)
74
- : cellFontColorValue
75
-
76
- const cellBackgroundColorValue = colDef?.columnStyling?.cellBackgroundColor
77
- const cellBackgroundColor = typeof cellBackgroundColorValue === 'function'
78
- ? cellBackgroundColorValue(row)
79
- : cellBackgroundColorValue
80
-
69
+ const cellFontColor = colDef?.columnStyling?.fontColor
70
+ const cellBackgroundColor = colDef?.columnStyling?.cellBackgroundColor
81
71
  const paddingValue = colDef?.columnStyling?.cellPadding ?? customRowStyle?.cellPadding
82
72
  const paddingClass = paddingValue ? `p_${paddingValue}` : undefined
83
73
 
@@ -920,39 +920,6 @@ test("columnStyling.backgroundColor works as excpected", () => {
920
920
  expect(firstEnrollmentCell).toHaveStyle({ backgroundColor: colors.error_subtle });
921
921
  });
922
922
 
923
- test("columnStyling.cellBackgroundColor works as expected with function", () => {
924
- const styledColumnDefs = [
925
- {
926
- accessor: "year",
927
- label: "Year",
928
- cellAccessors: ["quarter", "month", "day"],
929
- },
930
- {
931
- accessor: "newEnrollments",
932
- label: "New Enrollments",
933
- columnStyling:{
934
- cellBackgroundColor: (row) => row.original.newEnrollments > 15 ? colors.success_subtle : colors.error_subtle,
935
- fontColor: (row) => row.original.newEnrollments > 15 ? colors.success : colors.error,
936
- },
937
- },
938
- {
939
- accessor: "scheduledMeetings",
940
- label: "Scheduled Meetings",
941
- },
942
- ];
943
-
944
- render(
945
- <AdvancedTable
946
- columnDefinitions={styledColumnDefs}
947
- data={{ testid: testId }}
948
- tableData={MOCK_DATA}
949
- />
950
- );
951
-
952
- const firstEnrollmentCell = screen.getAllByText("20")[0].closest("td");
953
- expect(firstEnrollmentCell).toHaveStyle({ backgroundColor: colors.success_subtle, color: colors.success });
954
- });
955
-
956
923
  test("columnStyling.headerBackgroundColor works as excpected", () => {
957
924
  const styledColumnDefs = [
958
925
  {
@@ -2,4 +2,4 @@ the `enableSorting` prop is a boolean prop set to false by default. If true, the
2
2
 
3
3
  ### sortIcon
4
4
 
5
- An optional prop, `sortIcon` allows you to customize your icon sets by passing it an array of any comma-separated pair of icon values. The first icon value will replace the kit's default icon when sort direction is desc, and the second value will replace the default icon when sort direction is asc. `sortIcon` also allows you to pass it a single icon as a string, in which case the icon will not toggle with the sort state. Default for this prop is `["arrow-up-wide-short", "arrow-down-short-wide"]`. All strings must be valid FA icons.
5
+ An optional prop, `sortIcon` allows you to customize your icon sets by passing it an array of any comma-separated pair of icon values. The first icon value will replace the kit's default icon when sort direction is desc, and the second value will replace the default icon when sort direction is asc. `sortIcon` also allows you to pass it a single icon as a string, in which case the icon will not toggle with the sort state. Default for this prop is `["arrow-up-short-wide", "arrow-down-short-wide"]`. All strings must be valid FA icons.
@@ -78,7 +78,6 @@ examples:
78
78
  - advanced_table_column_styling: Column Styling
79
79
  - advanced_table_column_styling_column_headers: Column Styling with Multiple Headers
80
80
  - advanced_table_column_styling_background: Column Styling Background Color
81
- - advanced_table_column_styling_background_custom: Column Styling Background Color (Custom)
82
81
  - advanced_table_column_styling_background_multi: Column Styling Background Color with Multiple Headers
83
82
  - advanced_table_padding_control: Padding Control using Column Styling
84
83
  - advanced_table_column_border_color: Column Group Border Color
@@ -47,5 +47,4 @@ export { default as AdvancedTableSortPerColumnForMultiColumn } from './_advanced
47
47
  export { default as AdvancedTablePaddingControl } from './_advanced_table_padding_control.jsx'
48
48
  export { default as AdvancedTablePaddingControlPerRow } from './_advanced_table_padding_control_per_row.jsx'
49
49
  export { default as AdvancedTableColumnStylingBackground } from './_advanced_table_column_styling_background.jsx'
50
- export { default as AdvancedTableColumnStylingBackgroundMulti } from './_advanced_table_column_styling_background_multi.jsx'
51
- export { default as AdvancedTableColumnStylingBackgroundCustom } from './_advanced_table_column_styling_background_custom.jsx'
50
+ export { default as AdvancedTableColumnStylingBackgroundMulti } from './_advanced_table_column_styling_background_multi.jsx'
@@ -168,4 +168,4 @@ $transition: $transition_cubic;
168
168
  border-color: $error;
169
169
  }
170
170
  }
171
- }
171
+ }
@@ -4,8 +4,6 @@ import Icon from '../pb_icon/_icon'
4
4
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
5
5
  import classnames from 'classnames'
6
6
  import { globalProps, GlobalProps } from '../utilities/globalProps'
7
- import colors from '../tokens/exports/_colors.module.scss'
8
- import spacing from '../tokens/exports/_spacing.module.scss'
9
7
 
10
8
  type CheckboxProps = {
11
9
  aria?: {[key: string]: string},
@@ -21,7 +19,6 @@ type CheckboxProps = {
21
19
  indeterminate?: boolean,
22
20
  name?: string,
23
21
  onChange?: (event: React.FormEvent<HTMLInputElement>) => void,
24
- requiredIndicator?: boolean,
25
22
  tabIndex?: number,
26
23
  text?: string,
27
24
  value?: string,
@@ -42,7 +39,6 @@ const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {
42
39
  indeterminate = false,
43
40
  name = '',
44
41
  onChange = () => { void 0 },
45
- requiredIndicator = false,
46
42
  tabIndex,
47
43
  text = '',
48
44
  value = '',
@@ -128,20 +124,7 @@ const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {
128
124
  variant={null}
129
125
  >
130
126
  {text}
131
- {requiredIndicator && (
132
- <span
133
- aria-hidden="true"
134
- className="pb_required_indicator"
135
- style={{
136
- color: colors.error,
137
- marginLeft: spacing.space_xs,
138
- }}
139
- >
140
- {'*'}
141
- </span>
142
- )}
143
127
  </Body>
144
-
145
128
  </label>
146
129
  )
147
130
  })
@@ -5,15 +5,6 @@
5
5
  <%= pb_rails("icon", props: { icon: "minus", classname: "indeterminate_icon hidden", fixed_width: true}) %>
6
6
  </span>
7
7
  <span class="pb_checkbox_label">
8
- <%= pb_rails("body", props: { status: object.checkbox_label_status, dark: object.dark, margin_right: object.form_spacing ? "xs" : "" }) do %>
9
- <%= object.text%>
10
- <% if object.required_indicator %>
11
- <span
12
- class="pb_checkbox_required_indicator"
13
- aria-hidden="true"
14
- style="color: #DA0014;"
15
- >*</span>
16
- <% end %>
17
- <% end %>
8
+ <%= pb_rails("body", props: { status: object.checkbox_label_status, text: object.text, dark: object.dark, margin_right: object.form_spacing ? "xs" : "" }) %>
18
9
  </span>
19
10
  <% end %>
@@ -23,8 +23,6 @@ module Playbook
23
23
  prop :hidden_input, type: Playbook::Props::Boolean,
24
24
  default: false
25
25
  prop :hidden_value
26
- prop :required_indicator, type: Playbook::Props::Boolean,
27
- default: false
28
26
 
29
27
  def classname
30
28
  generate_classname("pb_checkbox_kit", checked_class) + error_class
@@ -8,7 +8,6 @@ examples:
8
8
  - checkbox_indeterminate: Indeterminate Checkbox
9
9
  - checkbox_disabled: Disabled Checkbox
10
10
  - checkbox_form: Form and Hidden Input
11
- # - checkbox_required_indicator: Required Indicator
12
11
 
13
12
  react:
14
13
  - checkbox_default: Default
@@ -18,7 +17,6 @@ examples:
18
17
  - checkbox_error: Default w/ Error
19
18
  - checkbox_indeterminate: Indeterminate Checkbox
20
19
  - checkbox_disabled: Disabled Checkbox
21
- # - checkbox_required_indicator: Required Indicator
22
20
 
23
21
  swift:
24
22
  - checkbox_default_swift: Default
@@ -5,4 +5,3 @@ export { default as CheckboxError } from './_checkbox_error.jsx'
5
5
  export { default as CheckboxChecked } from './_checkbox_checked.jsx'
6
6
  export { default as CheckboxIndeterminate } from './_checkbox_indeterminate.jsx'
7
7
  export { default as CheckboxDisabled } from './_checkbox_disabled.jsx'
8
- export { default as CheckboxRequiredIndicator } from './_checkbox_required_indicator.jsx'
@@ -10,7 +10,6 @@ import datePickerHelper from './date_picker_helper'
10
10
  import Icon from '../pb_icon/_icon'
11
11
  import Caption from '../pb_caption/_caption'
12
12
  import Body from '../pb_body/_body'
13
- import colors from "../tokens/exports/_colors.module.scss"
14
13
 
15
14
  type DatePickerProps = {
16
15
  allowInput?: boolean,
@@ -41,10 +40,9 @@ type DatePickerProps = {
41
40
  maxDate: string,
42
41
  minDate: string,
43
42
  name: string,
44
- pickerId: string,
43
+ pickerId?: string,
45
44
  placeholder?: string,
46
45
  positionElement?: HTMLElement | null,
47
- requiredIndicator?: boolean
48
46
  scrollContainer?: string,
49
47
  selectionType?: "month" | "week"| "quickpick",
50
48
  showTimezone?: boolean,
@@ -99,7 +97,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
99
97
  plugins = false,
100
98
  position,
101
99
  positionElement,
102
- requiredIndicator,
103
100
  scrollContainer,
104
101
  selectionType = '',
105
102
  showTimezone = false,
@@ -199,8 +196,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
199
196
 
200
197
  const angleDown = getAllIcons()["angleDown"].icon as unknown as { [key: string]: SVGElement }
201
198
 
202
- const errorId = error ? `${pickerId}-error` : undefined
203
-
204
199
  return (
205
200
  <div
206
201
  {...ariaProps}
@@ -216,23 +211,14 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
216
211
  >
217
212
 
218
213
  {!hideLabel && (
219
- <label htmlFor={pickerId}>
220
- {requiredIndicator ? (
221
- <Caption className="pb_date_picker_kit_label">
222
- {label} <span style={{ color: `${colors.error}` }}>*</span>
223
- </Caption>
224
- ) : (
225
- <Caption className="pb_date_picker_kit_label"
226
- text={label}
227
- />
228
- )}
229
- </label>
214
+ <Caption
215
+ className="pb_date_picker_kit_label"
216
+ text={label}
217
+ />
230
218
  )}
231
219
  <>
232
220
  <div className="date_picker_input_wrapper">
233
221
  <input
234
- aria-describedby={errorId}
235
- aria-invalid={!!error}
236
222
  autoComplete="off"
237
223
  className="date_picker_input"
238
224
  disabled={disableInput}
@@ -246,9 +232,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
246
232
 
247
233
  {error &&
248
234
  <Body
249
- aria={{ atomic: "true", live: "polite" }}
250
- htmlOptions={{ role: "alert" }}
251
- id={errorId}
252
235
  status="negative"
253
236
  text={error}
254
237
  variant={null}
@@ -4,35 +4,26 @@
4
4
  'data-validation-message' => object.validation_message,
5
5
  ) do %>
6
6
  <div class="input_wrapper">
7
- <% if !object.hide_label && object.label %>
8
- <label for="<%= object.picker_id %>">
9
- <% if object.required_indicator %>
10
- <%= pb_rails("caption", props: { dark: object.dark, classname: "pb_date_picker_kit_label" }) do %>
11
- <%= object.label %><span style="color: #DA0014;"> *</span>
12
- <% end %>
13
- <% else %>
14
- <%= pb_rails("caption", props: { text: object.label, dark: object.dark, classname: "pb_date_picker_kit_label" }) %>
15
- <% end %>
16
- </label>
17
- <% end %>
18
7
  <% if content.present? %>
19
8
  <%= content %>
20
9
  <% else %>
21
- <%= pb_rails("text_input", props: {
22
- aria: object.input_aria,
23
- autocomplete: false,
24
- cursor: object.cursor,
25
- dark: object.dark,
26
- data: object.input_data,
27
- disabled: object.disable_input,
28
- error: object.error,
29
- id: object.picker_id,
30
- margin_bottom: "none",
31
- name: object.name,
32
- placeholder: object.placeholder,
33
- required: object.required,
34
- }) %>
10
+ <%= pb_rails("text_input", props: {
11
+ aria: object.input_aria,
12
+ autocomplete: false,
13
+ cursor: object.cursor,
14
+ dark: object.dark,
15
+ data: object.input_data,
16
+ disabled: object.disable_input,
17
+ error: object.error,
18
+ id: object.picker_id,
19
+ label: object.hide_label ? nil : object.label,
20
+ margin_bottom: "none",
21
+ name: object.name,
22
+ placeholder: object.placeholder,
23
+ required: object.required,
24
+ }) %>
35
25
  <% end %>
26
+
36
27
  <% if object.selection_type == "quickpick" %>
37
28
  <input type="hidden" id="<%= "#{object.start_date_id}" %>" name="<%= "#{object.start_date_name}" %>">
38
29
  <input type="hidden" id="<%= "#{object.end_date_id}" %>" name="<%= "#{object.end_date_name}" %>">
@@ -71,8 +71,6 @@ module Playbook
71
71
  default: false
72
72
  prop :required, type: Playbook::Props::Boolean,
73
73
  default: false
74
- prop :required_indicator, type: Playbook::Props::Boolean,
75
- default: false
76
74
  prop :year_range, type: Playbook::Props::Array,
77
75
  default: [1900, 2100]
78
76
  prop :custom_event_type, type: Playbook::Props::String,
@@ -115,7 +113,6 @@ module Playbook
115
113
  position: position,
116
114
  positionElement: position_element,
117
115
  required: required,
118
- requiredIndicator: required_indicator,
119
116
  selectionType: selection_type,
120
117
  showTimezone: show_timezone,
121
118
  staticPosition: static_position,
@@ -257,7 +257,7 @@ describe('DatePicker Kit', () => {
257
257
  const testId = 'datepicker-out-of-range-after'
258
258
  const futureDateString = '01/15/2020'
259
259
  const maxDateString = '01/10/2020'
260
-
260
+
261
261
  render(
262
262
  <DatePicker
263
263
  data={{ testid: testId }}
@@ -275,39 +275,4 @@ describe('DatePicker Kit', () => {
275
275
  expect(input).toHaveValue('01/15/2020')
276
276
  }, { timeout: 5000 })
277
277
  })
278
-
279
- test("renders required indicator asterisk when requiredIndicator is true", () => {
280
- const testId = "datepicker-required-indicator"
281
-
282
- render(
283
- <DatePicker
284
- data={{ testid: testId }}
285
- label="Required Date"
286
- pickerId="date-picker-required-indicator"
287
- requiredIndicator
288
- />
289
- )
290
-
291
- const kit = screen.getByTestId(testId)
292
- const label = within(kit).getByText(/Required Date/)
293
- expect(label).toBeInTheDocument()
294
- expect(kit).toHaveTextContent("*")
295
- })
296
-
297
- test("does not render required indicator asterisk when requiredIndicator is false", () => {
298
- const testId = "datepicker-no-required-indicator"
299
-
300
- render(
301
- <DatePicker
302
- data={{ testid: testId }}
303
- label="Optional Date"
304
- pickerId="date-picker-no-required-indicator"
305
- />
306
- )
307
-
308
- const kit = screen.getByTestId(testId)
309
- const label = within(kit).getByText(/Optional Date/)
310
- expect(label).toBeInTheDocument()
311
- expect(kit).not.toHaveTextContent("*")
312
- })
313
278
  })
@@ -31,7 +31,6 @@ examples:
31
31
  - date_picker_time: Time Selection
32
32
  - date_picker_positions: Custom Positions
33
33
  - date_picker_positions_element: Custom Position (based on element)
34
- - date_picker_required_indicator: Required Indicator
35
34
  - date_picker_turbo_frames: Within Turbo Frames
36
35
 
37
36
  react:
@@ -65,4 +64,3 @@ examples:
65
64
  - date_picker_time: Time Selection
66
65
  - date_picker_positions: Custom Positions
67
66
  - date_picker_positions_element: Custom Position (based on element)
68
- - date_picker_required_indicator: Required Indicator
@@ -27,5 +27,4 @@ export { default as DatePickerQuickPickCustom } from './_date_picker_quick_pick_
27
27
  export { default as DatePickerQuickPickCustomOverride } from './_date_picker_quick_pick_custom_override'
28
28
  export { default as DatePickerQuickPickDefaultDate } from './_date_picker_quick_pick_default_date'
29
29
  export { default as DatePickerRangePattern } from './_date_picker_range_pattern'
30
- export { default as DatePickerAndDropdownRange } from './_date_picker_and_dropdown_range.jsx'
31
- export { default as DatePickerRequiredIndicator } from "./_date_picker_required_indicator.jsx";
30
+ export { default as DatePickerAndDropdownRange } from './_date_picker_and_dropdown_range.jsx'
@@ -76,12 +76,6 @@
76
76
  z-index: $z_1;
77
77
  width: 100%;
78
78
 
79
- &.constrain_height {
80
- overflow-y: auto;
81
- overflow-x: hidden;
82
- max-height: 18em;
83
- }
84
-
85
79
  .pb_dropdown_option,
86
80
  .pb_dropdown_option_list,
87
81
  .pb_dropdown_option_selected,
@@ -6,14 +6,13 @@ import { GenericObject } from "../types";
6
6
 
7
7
  import Body from '../pb_body/_body';
8
8
  import Caption from "../pb_caption/_caption";
9
- import colors from "../tokens/exports/_colors.module.scss";
10
9
 
11
10
  import DropdownContainer from "./subcomponents/DropdownContainer";
12
11
  import DropdownContext from "./context";
13
12
  import DropdownOption from "./subcomponents/DropdownOption";
14
13
  import DropdownTrigger from "./subcomponents/DropdownTrigger";
15
14
  import useDropdown from "./hooks/useDropdown";
16
- import getQuickPickOptions from "./quickpick";
15
+ import getQuickPickOptions from "./quickpick";
17
16
 
18
17
  import {
19
18
  separateChildComponents,
@@ -37,8 +36,6 @@ type DropdownProps = {
37
36
  blankSelection?: string;
38
37
  children?: React.ReactChild[] | React.ReactChild | React.ReactElement[];
39
38
  className?: string;
40
- clearable?: boolean;
41
- constrainHeight?: boolean;
42
39
  customQuickPickDates?: CustomQuickPickDates;
43
40
  formPillProps?: GenericObject;
44
41
  dark?: boolean;
@@ -52,7 +49,6 @@ type DropdownProps = {
52
49
  multiSelect?: boolean;
53
50
  onSelect?: (arg: GenericObject) => null;
54
51
  options?: GenericObject;
55
- placeholder?: string;
56
52
  separators?: boolean;
57
53
  variant?: "default" | "subtle" | "quickpick";
58
54
  rangeEndsToday?: boolean;
@@ -62,7 +58,6 @@ type DropdownProps = {
62
58
  backgroundColor?: string;
63
59
  fontColor?: string;
64
60
  };
65
- requiredIndicator?: boolean;
66
61
  };
67
62
 
68
63
  interface DropdownComponent
@@ -79,8 +74,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
79
74
  blankSelection = '',
80
75
  children,
81
76
  className,
82
- clearable = true,
83
- constrainHeight = false,
84
77
  customQuickPickDates,
85
78
  dark = false,
86
79
  data = {},
@@ -94,14 +87,12 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
94
87
  formPillProps,
95
88
  onSelect,
96
89
  options,
97
- placeholder,
98
90
  rangeEndsToday = false,
99
91
  controlsStartId,
100
92
  controlsEndId,
101
93
  separators = true,
102
94
  variant = "default",
103
95
  activeStyle,
104
- requiredIndicator = false
105
96
  } = props;
106
97
 
107
98
  const ariaProps = buildAriaProps(aria);
@@ -122,16 +113,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
122
113
 
123
114
  const [isDropDownClosed, setIsDropDownClosed, toggleDropdown] = useDropdown(isClosed);
124
115
 
125
- // Use a suffix for the trigger ID to avoid conflict with the outer div's id
126
- const sanitizeForId = (str: string) =>
127
- str.toLowerCase().replace(/\s+/g, "_").replace(/[^a-z0-9_]/g, "");
128
- const selectId = id
129
- ? `${id}_trigger`
130
- : label
131
- ? sanitizeForId(label)
132
- : undefined;
133
- const errorId = error ? `${selectId}-error` : undefined;
134
-
135
116
  const [filterItem, setFilterItem] = useState("");
136
117
  const initialSelected = useMemo(() => {
137
118
  // Handle quickpick variant with string defaultValue (e.g., "This Month")
@@ -164,19 +145,9 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
164
145
 
165
146
  const dropdownRef = useRef(null);
166
147
  const inputRef = useRef<HTMLInputElement>(null);
167
- const inputWrapperRef = useRef<HTMLDivElement | null>(null);
148
+ const inputWrapperRef = useRef(null);
168
149
  const dropdownContainerRef = useRef(null);
169
150
 
170
- const handleLabelClick = (e: React.MouseEvent) => {
171
- e.stopPropagation();
172
- if (selectId) {
173
- const trigger = document.getElementById(selectId);
174
- if (trigger) trigger.focus();
175
- }
176
- setIsInputFocused(true);
177
- toggleDropdown();
178
- };
179
-
180
151
  const selectedArray = Array.isArray(selected)
181
152
  ? selected
182
153
  : selected && Object.keys(selected).length
@@ -240,34 +211,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
240
211
  }
241
212
  }, [isDropDownClosed]);
242
213
 
243
- // Auto-position dropdown above/below based on available space
244
- useEffect(() => {
245
- if (!isDropDownClosed && dropdownContainerRef.current) {
246
- const container = dropdownContainerRef.current;
247
- const wrapper = container.closest('.dropdown_wrapper') as HTMLElement;
248
- if (!wrapper) return;
249
-
250
- const wrapperRect = wrapper.getBoundingClientRect();
251
- const h = container.getBoundingClientRect().height || container.scrollHeight;
252
- const spaceBelow = window.innerHeight - wrapperRect.bottom;
253
- const spaceAbove = wrapperRect.top;
254
-
255
- // If not enough space below but enough space above, position above
256
- if (spaceBelow < h + 10 && spaceAbove >= h + 10) {
257
- container.style.top = "auto";
258
- container.style.bottom = "calc(100% + 5px)";
259
- container.style.marginTop = "0";
260
- container.style.marginBottom = "0";
261
- } else {
262
- // Default: position below
263
- container.style.top = "";
264
- container.style.bottom = "";
265
- container.style.marginTop = "";
266
- container.style.marginBottom = "";
267
- }
268
- }
269
- }, [isDropDownClosed, dropdownContainerRef]);
270
-
271
214
 
272
215
  const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
273
216
  setFilterItem(e.target.value);
@@ -432,14 +375,10 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
432
375
  value={{
433
376
  activeStyle,
434
377
  autocomplete,
435
- clearable,
436
378
  dropdownContainerRef,
437
- error,
438
- errorId,
439
- filterItem,
440
379
  filteredOptions,
380
+ filterItem,
441
381
  focusedOptionIndex,
442
- label,
443
382
  formPillProps,
444
383
  handleBackspace,
445
384
  handleChange,
@@ -449,7 +388,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
449
388
  inputWrapperRef,
450
389
  isDropDownClosed,
451
390
  isInputFocused,
452
- selectId,
453
391
  multiSelect,
454
392
  onSelect,
455
393
  optionsWithBlankSelection,
@@ -461,30 +399,13 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
461
399
  toggleDropdown
462
400
  }}
463
401
  >
464
- {label && (
465
- <label
466
- data-dropdown="pb-dropdown-label"
467
- htmlFor={selectId}
468
- onClick={handleLabelClick}
469
- >
470
- {requiredIndicator ? (
471
- <Caption
472
- className="pb_dropdown_kit_label"
473
- dark={dark}
474
- marginBottom="xs"
475
- >
476
- {label} <span style={{ color: `${colors.error}` }}>*</span>
477
- </Caption>
478
- ) : (
479
- <Caption
480
- className="pb_dropdown_kit_label"
481
- dark={dark}
482
- marginBottom="xs"
483
- text={label}
484
- />
485
- )}
486
- </label>
487
- )}
402
+ {label &&
403
+ <Caption
404
+ dark={dark}
405
+ marginBottom="xs"
406
+ text={label}
407
+ />
408
+ }
488
409
  <div className={`dropdown_wrapper ${error ? 'error' : ''}`}
489
410
  onBlur={() => {
490
411
  // Debounce to delay the execution to prevent jumpiness in Focus state
@@ -505,8 +426,8 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
505
426
  </>
506
427
  ) : (
507
428
  <>
508
- <DropdownTrigger placeholder={placeholder} />
509
- <DropdownContainer constrainHeight={constrainHeight}>
429
+ <DropdownTrigger />
430
+ <DropdownContainer>
510
431
  {optionsWithBlankSelection &&
511
432
  optionsWithBlankSelection?.map((option: GenericObject) => (
512
433
  <DropdownOption key={option.id}
@@ -517,16 +438,12 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
517
438
  </>
518
439
  )}
519
440
 
520
- {error && (
441
+ {error &&
521
442
  <Body
522
- aria={{ atomic: "true", live: "polite" }}
523
- dark={dark}
524
- htmlOptions={{ role: "alert" }}
525
- id={errorId}
526
443
  status="negative"
527
444
  text={error}
528
445
  />
529
- )}
446
+ }
530
447
  </div>
531
448
  </DropdownContext.Provider>
532
449
  </div>