@onewelcome/react-lib-components 8.15.0 → 9.0.0

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 (311) hide show
  1. package/dist/cjs/Breadcrumbs/Breadcrumbs.module.scss.cjs.js +1 -1
  2. package/dist/cjs/Button/BaseButton.module.scss.cjs.js +1 -1
  3. package/dist/cjs/Button/Button.module.scss.cjs.js +1 -1
  4. package/dist/cjs/Button/IconButton.module.scss.cjs.js +1 -1
  5. package/dist/cjs/ContextMenu/ContextMenu.module.scss.cjs.js +1 -1
  6. package/dist/cjs/ContextMenu/ContextMenuItem.module.scss.cjs.js +1 -1
  7. package/dist/cjs/DataGrid/DataGrid.module.scss.cjs.js +1 -1
  8. package/dist/cjs/DataGrid/DataGridActions/DataGridActions.module.scss.cjs.js +1 -1
  9. package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.cjs.js +1 -1
  10. package/dist/cjs/DataGrid/DataGridBody/DataGridBody.module.scss.cjs.js +1 -1
  11. package/dist/cjs/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.cjs.js +1 -1
  12. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.cjs.js +1 -1
  13. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.cjs.js +1 -1
  14. package/dist/cjs/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.cjs.js +1 -1
  15. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.cjs.js +1 -1
  16. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.cjs.js.map +1 -1
  17. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.module.scss.cjs.js +1 -1
  18. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterPopover.cjs.js +1 -1
  19. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterPopover.cjs.js.map +1 -1
  20. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterService.cjs.js +1 -1
  21. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterService.cjs.js.map +1 -1
  22. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js +1 -1
  23. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js.map +1 -1
  24. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterValueSelect.cjs.js +1 -1
  25. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterValueSelect.cjs.js.map +1 -1
  26. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js +1 -1
  27. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js.map +1 -1
  28. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js +1 -1
  29. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js.map +1 -1
  30. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.module.scss.cjs.js +1 -1
  31. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +1 -1
  32. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeader.module.scss.cjs.js +1 -1
  33. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.cjs.js +1 -1
  34. package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
  35. package/dist/cjs/Form/Checkbox/Checkbox.cjs.js +1 -1
  36. package/dist/cjs/Form/Checkbox/Checkbox.cjs.js.map +1 -1
  37. package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
  38. package/dist/cjs/Form/Fieldset/Fieldset.module.scss.cjs.js +1 -1
  39. package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
  40. package/dist/cjs/Form/FileUpload/FileUpload.cjs.js +1 -1
  41. package/dist/cjs/Form/FileUpload/FileUpload.cjs.js.map +1 -1
  42. package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
  43. package/dist/cjs/Form/Form.module.scss.cjs.js +1 -1
  44. package/dist/cjs/Form/FormControl/FormControl.module.scss.cjs.js +1 -1
  45. package/dist/cjs/Form/FormErrorText/FormErrorText.cjs.js +2 -0
  46. package/dist/cjs/Form/FormErrorText/FormErrorText.cjs.js.map +1 -0
  47. package/dist/cjs/Form/FormErrorText/FormErrorText.module.scss.cjs.js +2 -0
  48. package/dist/cjs/Form/FormErrorText/FormErrorText.module.scss.cjs.js.map +1 -0
  49. package/dist/cjs/Form/FormGroup/FormGroup.cjs.js +1 -1
  50. package/dist/cjs/Form/FormGroup/FormGroup.cjs.js.map +1 -1
  51. package/dist/cjs/Form/FormGroup/FormGroup.module.scss.cjs.js +1 -1
  52. package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
  53. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js +1 -1
  54. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js.map +1 -1
  55. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.cjs.js +1 -1
  56. package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
  57. package/dist/cjs/Form/Label/Label.module.scss.cjs.js +1 -1
  58. package/dist/cjs/Form/Radio/Radio.cjs.js +1 -1
  59. package/dist/cjs/Form/Radio/Radio.cjs.js.map +1 -1
  60. package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
  61. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
  62. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.scss.cjs.js +1 -1
  63. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
  64. package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
  65. package/dist/cjs/Form/Select/useAddNewBtn.module.scss.cjs.js +1 -1
  66. package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
  67. package/dist/cjs/Form/Toggle/Toggle.module.scss.cjs.js +1 -1
  68. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js +1 -1
  69. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js.map +1 -1
  70. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.cjs.js +1 -1
  71. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
  72. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.cjs.js +1 -1
  73. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js +1 -1
  74. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js.map +1 -1
  75. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.cjs.js +1 -1
  76. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.cjs.js +1 -1
  77. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
  78. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
  79. package/dist/cjs/Icon/Icon.module.scss.cjs.js +1 -1
  80. package/dist/cjs/Layout/ContentHeader/ContentHeader.module.scss.cjs.js +1 -1
  81. package/dist/cjs/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.cjs.js +1 -1
  82. package/dist/cjs/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.cjs.js +1 -1
  83. package/dist/cjs/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.cjs.js +1 -1
  84. package/dist/cjs/Link/Link.module.scss.cjs.js +1 -1
  85. package/dist/cjs/Notifications/Alert/AlertContainer/AlertContainer.module.scss.cjs.js +1 -1
  86. package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.cjs.js.map +1 -1
  87. package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.module.scss.cjs.js +1 -1
  88. package/dist/cjs/Notifications/Alert/AlertProvider/AlertProvider.cjs.js +1 -1
  89. package/dist/cjs/Notifications/Alert/AlertProvider/AlertProvider.cjs.js.map +1 -1
  90. package/dist/cjs/Notifications/Banner/Banner.module.scss.cjs.js +1 -1
  91. package/dist/cjs/Notifications/BaseModal/BaseModal.module.scss.cjs.js +1 -1
  92. package/dist/cjs/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.cjs.js +1 -1
  93. package/dist/cjs/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.cjs.js +1 -1
  94. package/dist/cjs/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.cjs.js +1 -1
  95. package/dist/cjs/Notifications/Dialog/Dialog.module.scss.cjs.js +1 -1
  96. package/dist/cjs/Notifications/Dialog/DialogActions/DialogActions.module.scss.cjs.js +1 -1
  97. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.cjs.js +1 -1
  98. package/dist/cjs/Notifications/SideSheet/SideSheet.module.scss.cjs.js +1 -1
  99. package/dist/cjs/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.cjs.js +1 -1
  100. package/dist/cjs/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.cjs.js +1 -1
  101. package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.scss.cjs.js +1 -1
  102. package/dist/cjs/Pagination/Pagination.module.scss.cjs.js +1 -1
  103. package/dist/cjs/Popover/Popover.module.scss.cjs.js +1 -1
  104. package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.js +1 -1
  105. package/dist/cjs/Skeleton/Skeleton.module.scss.cjs.js +1 -1
  106. package/dist/cjs/Spinner/Spinner.module.scss.cjs.js +1 -1
  107. package/dist/cjs/Stepper/Step.module.scss.cjs.js +1 -1
  108. package/dist/cjs/Stepper/Stepper.module.scss.cjs.js +1 -1
  109. package/dist/cjs/Tabs/Tab.module.scss.cjs.js +1 -1
  110. package/dist/cjs/Tabs/TabButton.module.scss.cjs.js +1 -1
  111. package/dist/cjs/Tabs/Tabs.module.scss.cjs.js +1 -1
  112. package/dist/cjs/Tag/RemoveButton.module.scss.cjs.js +1 -1
  113. package/dist/cjs/Tag/Tag.module.scss.cjs.js +1 -1
  114. package/dist/cjs/TextEllipsis/TextEllipsis.module.scss.cjs.js +1 -1
  115. package/dist/cjs/Tiles/Tile.module.scss.cjs.js +1 -1
  116. package/dist/cjs/Tiles/Tiles.module.scss.cjs.js +1 -1
  117. package/dist/cjs/Tooltip/Tooltip.cjs.js +1 -1
  118. package/dist/cjs/Tooltip/Tooltip.cjs.js.map +1 -1
  119. package/dist/cjs/Tooltip/Tooltip.module.scss.cjs.js +1 -1
  120. package/dist/cjs/Typography/Typography.module.scss.cjs.js +1 -1
  121. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js +1 -1
  122. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js.map +1 -1
  123. package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js +1 -1
  124. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js +1 -1
  125. package/dist/cjs/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.cjs.js +1 -1
  126. package/dist/cjs/miscellaneous/IdentityProviderButton.module.scss.cjs.js +1 -1
  127. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterPopover.d.ts +5 -5
  128. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterService.d.ts +5 -5
  129. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
  130. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.d.ts +4 -1
  131. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.test.d.ts +1 -0
  132. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +7 -9
  133. package/dist/cjs/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
  134. package/dist/cjs/src/components/Form/FileUpload/FileUpload.d.ts +0 -4
  135. package/dist/cjs/src/components/Form/FormErrorText/FormErrorText.d.ts +12 -0
  136. package/dist/cjs/src/components/Form/FormErrorText/FormErrorText.test.d.ts +1 -0
  137. package/dist/cjs/src/components/Form/Radio/Radio.d.ts +1 -1
  138. package/dist/cjs/src/components/Form/form.interfaces.d.ts +2 -0
  139. package/dist/cjs/src/components/Notifications/Alert/AlertItem/AlertItem.d.ts +2 -2
  140. package/dist/cjs/src/components/Tooltip/Tooltip.d.ts +1 -1
  141. package/dist/cjs/src/readyclasses.module.scss.cjs.js +1 -1
  142. package/dist/esm/Breadcrumbs/Breadcrumbs.module.scss.esm.js +2 -2
  143. package/dist/esm/Button/BaseButton.module.scss.esm.js +2 -2
  144. package/dist/esm/Button/Button.module.scss.esm.js +2 -2
  145. package/dist/esm/Button/IconButton.module.scss.esm.js +2 -2
  146. package/dist/esm/ContextMenu/ContextMenu.module.scss.esm.js +2 -2
  147. package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
  148. package/dist/esm/DataGrid/DataGrid.module.scss.esm.js +2 -2
  149. package/dist/esm/DataGrid/DataGridActions/DataGridActions.module.scss.esm.js +2 -2
  150. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.esm.js +2 -2
  151. package/dist/esm/DataGrid/DataGridBody/DataGridBody.module.scss.esm.js +2 -2
  152. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.esm.js +2 -2
  153. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.esm.js +2 -2
  154. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.esm.js +2 -2
  155. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.esm.js +2 -2
  156. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js +1 -1
  157. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js.map +1 -1
  158. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.module.scss.esm.js +2 -2
  159. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js +35 -31
  160. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js.map +1 -1
  161. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterService.esm.js +2 -2
  162. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterService.esm.js.map +1 -1
  163. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js +8 -6
  164. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js.map +1 -1
  165. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterValueSelect.esm.js +18 -8
  166. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterValueSelect.esm.js.map +1 -1
  167. package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js +7 -8
  168. package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js.map +1 -1
  169. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js +2 -2
  170. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js.map +1 -1
  171. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.module.scss.esm.js +2 -2
  172. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +2 -2
  173. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.module.scss.esm.js +2 -2
  174. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.esm.js +2 -2
  175. package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
  176. package/dist/esm/Form/Checkbox/Checkbox.esm.js +5 -2
  177. package/dist/esm/Form/Checkbox/Checkbox.esm.js.map +1 -1
  178. package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +2 -2
  179. package/dist/esm/Form/Fieldset/Fieldset.module.scss.esm.js +2 -2
  180. package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +2 -2
  181. package/dist/esm/Form/FileUpload/FileUpload.esm.js +1 -2
  182. package/dist/esm/Form/FileUpload/FileUpload.esm.js.map +1 -1
  183. package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
  184. package/dist/esm/Form/Form.module.scss.esm.js +2 -2
  185. package/dist/esm/Form/FormControl/FormControl.module.scss.esm.js +2 -2
  186. package/dist/esm/Form/FormErrorText/FormErrorText.esm.js +33 -0
  187. package/dist/esm/Form/FormErrorText/FormErrorText.esm.js.map +1 -0
  188. package/dist/esm/Form/FormErrorText/FormErrorText.module.scss.esm.js +8 -0
  189. package/dist/esm/Form/FormErrorText/FormErrorText.module.scss.esm.js.map +1 -0
  190. package/dist/esm/Form/FormGroup/FormGroup.esm.js +10 -9
  191. package/dist/esm/Form/FormGroup/FormGroup.esm.js.map +1 -1
  192. package/dist/esm/Form/FormGroup/FormGroup.module.scss.esm.js +2 -2
  193. package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +2 -2
  194. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js +7 -2
  195. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js.map +1 -1
  196. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.esm.js +2 -2
  197. package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
  198. package/dist/esm/Form/Label/Label.module.scss.esm.js +2 -2
  199. package/dist/esm/Form/Radio/Radio.esm.js +9 -5
  200. package/dist/esm/Form/Radio/Radio.esm.js.map +1 -1
  201. package/dist/esm/Form/Radio/Radio.module.scss.esm.js +2 -2
  202. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
  203. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.scss.esm.js +2 -2
  204. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +2 -2
  205. package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
  206. package/dist/esm/Form/Select/useAddNewBtn.module.scss.esm.js +2 -2
  207. package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +2 -2
  208. package/dist/esm/Form/Toggle/Toggle.module.scss.esm.js +2 -2
  209. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js +5 -2
  210. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js.map +1 -1
  211. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.esm.js +2 -2
  212. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +2 -2
  213. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.esm.js +2 -2
  214. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js +6 -3
  215. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js.map +1 -1
  216. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.esm.js +2 -2
  217. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.esm.js +2 -2
  218. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
  219. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +2 -2
  220. package/dist/esm/Icon/Icon.module.scss.esm.js +2 -2
  221. package/dist/esm/Layout/ContentHeader/ContentHeader.module.scss.esm.js +2 -2
  222. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.esm.js +2 -2
  223. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.esm.js +2 -2
  224. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.esm.js +2 -2
  225. package/dist/esm/Link/Link.module.scss.esm.js +2 -2
  226. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.module.scss.esm.js +2 -2
  227. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.esm.js.map +1 -1
  228. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.module.scss.esm.js +2 -2
  229. package/dist/esm/Notifications/Alert/AlertProvider/AlertProvider.esm.js +3 -3
  230. package/dist/esm/Notifications/Alert/AlertProvider/AlertProvider.esm.js.map +1 -1
  231. package/dist/esm/Notifications/Banner/Banner.module.scss.esm.js +2 -2
  232. package/dist/esm/Notifications/BaseModal/BaseModal.module.scss.esm.js +2 -2
  233. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.esm.js +2 -2
  234. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.esm.js +2 -2
  235. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.esm.js +2 -2
  236. package/dist/esm/Notifications/Dialog/Dialog.module.scss.esm.js +2 -2
  237. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.module.scss.esm.js +2 -2
  238. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.esm.js +2 -2
  239. package/dist/esm/Notifications/SideSheet/SideSheet.module.scss.esm.js +2 -2
  240. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.esm.js +2 -2
  241. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.esm.js +2 -2
  242. package/dist/esm/Notifications/SlideInModal/SlideInModal.module.scss.esm.js +2 -2
  243. package/dist/esm/Pagination/Pagination.module.scss.esm.js +2 -2
  244. package/dist/esm/Popover/Popover.module.scss.esm.js +2 -2
  245. package/dist/esm/ProgressBar/ProgressBar.module.scss.esm.js +2 -2
  246. package/dist/esm/Skeleton/Skeleton.module.scss.esm.js +2 -2
  247. package/dist/esm/Spinner/Spinner.module.scss.esm.js +2 -2
  248. package/dist/esm/Stepper/Step.module.scss.esm.js +2 -2
  249. package/dist/esm/Stepper/Stepper.module.scss.esm.js +2 -2
  250. package/dist/esm/Tabs/Tab.module.scss.esm.js +2 -2
  251. package/dist/esm/Tabs/TabButton.module.scss.esm.js +2 -2
  252. package/dist/esm/Tabs/Tabs.module.scss.esm.js +2 -2
  253. package/dist/esm/Tag/RemoveButton.module.scss.esm.js +2 -2
  254. package/dist/esm/Tag/Tag.module.scss.esm.js +2 -2
  255. package/dist/esm/TextEllipsis/TextEllipsis.module.scss.esm.js +2 -2
  256. package/dist/esm/Tiles/Tile.module.scss.esm.js +2 -2
  257. package/dist/esm/Tiles/Tiles.module.scss.esm.js +2 -2
  258. package/dist/esm/Tooltip/Tooltip.esm.js +4 -1
  259. package/dist/esm/Tooltip/Tooltip.esm.js.map +1 -1
  260. package/dist/esm/Tooltip/Tooltip.module.scss.esm.js +2 -2
  261. package/dist/esm/Typography/Typography.module.scss.esm.js +2 -2
  262. package/dist/esm/_BaseStyling_/BaseStyling.esm.js +1 -1
  263. package/dist/esm/_BaseStyling_/BaseStyling.esm.js.map +1 -1
  264. package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js +2 -2
  265. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js +2 -2
  266. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.esm.js +2 -2
  267. package/dist/esm/miscellaneous/IdentityProviderButton.module.scss.esm.js +2 -2
  268. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterPopover.d.ts +5 -5
  269. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterService.d.ts +5 -5
  270. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
  271. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.d.ts +4 -1
  272. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.test.d.ts +1 -0
  273. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +7 -9
  274. package/dist/esm/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
  275. package/dist/esm/src/components/Form/FileUpload/FileUpload.d.ts +0 -4
  276. package/dist/esm/src/components/Form/FormErrorText/FormErrorText.d.ts +12 -0
  277. package/dist/esm/src/components/Form/FormErrorText/FormErrorText.test.d.ts +1 -0
  278. package/dist/esm/src/components/Form/Radio/Radio.d.ts +1 -1
  279. package/dist/esm/src/components/Form/form.interfaces.d.ts +2 -0
  280. package/dist/esm/src/components/Notifications/Alert/AlertItem/AlertItem.d.ts +2 -2
  281. package/dist/esm/src/components/Tooltip/Tooltip.d.ts +1 -1
  282. package/dist/esm/src/readyclasses.module.scss.esm.js +2 -2
  283. package/package.json +1 -1
  284. package/src/components/DataGrid/DataGridFilters/DataGridFilter.tsx +1 -0
  285. package/src/components/DataGrid/DataGridFilters/DataGridFilterPopover.tsx +81 -69
  286. package/src/components/DataGrid/DataGridFilters/DataGridFilterService.ts +4 -3
  287. package/src/components/DataGrid/DataGridFilters/DataGridFilterTag.tsx +28 -4
  288. package/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.tsx +27 -9
  289. package/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.ts +14 -9
  290. package/src/components/DataGrid/DataGridFilters/DataGridToolbar.tsx +6 -7
  291. package/src/components/DataGrid/testUtils.ts +2 -2
  292. package/src/components/Form/Checkbox/Checkbox.module.scss +6 -0
  293. package/src/components/Form/Checkbox/Checkbox.tsx +6 -1
  294. package/src/components/Form/FileUpload/FileUpload.tsx +1 -6
  295. package/src/components/Form/FormErrorText/FormErrorText.module.scss +35 -0
  296. package/src/components/Form/FormErrorText/FormErrorText.tsx +65 -0
  297. package/src/components/Form/FormGroup/FormGroup.module.scss +0 -19
  298. package/src/components/Form/FormGroup/FormGroup.tsx +20 -30
  299. package/src/components/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss +0 -4
  300. package/src/components/Form/FormSelectorWrapper/FormSelectorWrapper.tsx +24 -18
  301. package/src/components/Form/Radio/Radio.module.scss +10 -6
  302. package/src/components/Form/Radio/Radio.tsx +15 -5
  303. package/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss +3 -1
  304. package/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +14 -4
  305. package/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss +3 -1
  306. package/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +6 -3
  307. package/src/components/Form/form.interfaces.ts +2 -0
  308. package/src/components/Notifications/Alert/AlertItem/AlertItem.tsx +2 -2
  309. package/src/components/Notifications/Alert/AlertProvider/AlertProvider.tsx +1 -1
  310. package/src/components/Tooltip/Tooltip.tsx +14 -9
  311. package/src/components/_BaseStyling_/BaseStyling.tsx +1 -1
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React from "react";
17
+ import React, { useCallback, useState } from "react";
18
18
  import { Option } from "../../Form/Select/SingleSelect/Option";
19
19
  import { MultiOption } from "../../Form/Select/MultiSelect/MultiOption";
20
20
  import { MultiSelectWrapper } from "../../Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper";
@@ -33,6 +33,7 @@ export type Props = {
33
33
  setValues: (values: React.SetStateAction<string[]>) => void;
34
34
  setPickedValues: (pickedValues: React.SetStateAction<string[]>) => void;
35
35
  translations?: PopoverTranslations;
36
+ operator?: { allowEmptyValues: boolean } | null;
36
37
  };
37
38
 
38
39
  export const DataGridFilterValueSelect = ({
@@ -42,8 +43,11 @@ export const DataGridFilterValueSelect = ({
42
43
  pickedValues,
43
44
  setValues,
44
45
  setPickedValues,
45
- translations
46
+ translations,
47
+ operator
46
48
  }: Props) => {
49
+ const [touched, setTouched] = useState(false);
50
+
47
51
  const {
48
52
  valueSelectLabel = "Value",
49
53
  addNewValueLabel = "Create new",
@@ -54,18 +58,30 @@ export const DataGridFilterValueSelect = ({
54
58
  const disableAddNew = columnMetadata?.disableAddNew;
55
59
  const valueSelectType = columnMetadata?.valueSelectType;
56
60
 
61
+ const isValueRequired = operator && !operator.allowEmptyValues;
62
+ const hasValidationError = Boolean(isValueRequired && pickedValues.length === 0 && touched);
63
+
57
64
  const addNewBtnProps: React.ButtonHTMLAttributes<HTMLButtonElement> = {
58
65
  title: addNewValueButtonTitle,
59
66
  type: "button"
60
67
  };
61
68
 
62
- const onChangeHandler = (e: React.ChangeEvent<HTMLSelectElement>) => {
63
- setPickedValues(
64
- [...Array.from(e.target.options)]
65
- .filter(option => option.selected)
66
- .map(option => option.value)
67
- );
68
- };
69
+ const onChangeHandler = useCallback(
70
+ (e: React.ChangeEvent<HTMLSelectElement>) => {
71
+ const { selectedOptions, value } = e.target;
72
+
73
+ let newValues: string[];
74
+
75
+ if (valueSelectType === ValueSelectType.single) {
76
+ newValues = value ? [value] : [];
77
+ } else {
78
+ newValues = Array.from(selectedOptions, option => option.value);
79
+ }
80
+ setPickedValues(newValues);
81
+ setTouched(true);
82
+ },
83
+ [valueSelectType]
84
+ );
69
85
 
70
86
  const selectProps = {
71
87
  addNew: disableAddNew
@@ -93,6 +109,7 @@ export const DataGridFilterValueSelect = ({
93
109
  value={pickedValues[0]}
94
110
  onChange={onChangeHandler}
95
111
  selectProps={selectProps}
112
+ error={hasValidationError}
96
113
  >
97
114
  {values.map(value => (
98
115
  <Option key={value} value={value}>
@@ -107,6 +124,7 @@ export const DataGridFilterValueSelect = ({
107
124
  value={pickedValues}
108
125
  onChange={onChangeHandler}
109
126
  selectProps={selectProps}
127
+ error={hasValidationError}
110
128
  >
111
129
  {values.map(value => (
112
130
  <MultiOption key={value} value={value}>
@@ -14,10 +14,15 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ export interface FilterOperator {
18
+ name: string;
19
+ allowEmptyValues: boolean;
20
+ }
21
+
17
22
  export interface Filter {
18
23
  id: string;
19
24
  column: string;
20
- operator: string;
25
+ operator: FilterOperator | null;
21
26
  value: string[];
22
27
  }
23
28
 
@@ -48,18 +53,18 @@ export type FiltersState = {
48
53
 
49
54
  export type FilterEditorMode = "ADD" | "EDIT" | "ADD_DATE";
50
55
 
51
- export enum DefaultOperators {
52
- is = "is",
53
- isNot = "is not",
54
- contains = "contains",
55
- doesNotContain = "does not contain",
56
- isEmpty = "is empty"
57
- }
56
+ export const DefaultOperators: Record<string, FilterOperator> = {
57
+ is: { name: "is", allowEmptyValues: false },
58
+ isNot: { name: "is not", allowEmptyValues: false },
59
+ contains: { name: "contains", allowEmptyValues: false },
60
+ doesNotContain: { name: "does not contain", allowEmptyValues: false },
61
+ isEmpty: { name: "is empty", allowEmptyValues: true }
62
+ };
58
63
 
59
64
  export interface DataGridColumnMetadata {
60
65
  name: string;
61
66
  headline: string;
62
- operators?: string[];
67
+ operators?: FilterOperator[];
63
68
  defaultValues?: string[];
64
69
  disableAddNew?: boolean;
65
70
  allowSingleFilterOnly?: boolean;
@@ -70,6 +70,12 @@ export const DataGridToolbar = ({
70
70
  const { clearButtonCaption = "Clear all filters" } = translations?.toolbar || {};
71
71
  return (
72
72
  <Fragment>
73
+ {dateFilterValue && (
74
+ <DataGridDateFilter
75
+ dateFilterValue={dateFilterValue}
76
+ onDateFilterValueChange={onDateFilterValueChange}
77
+ />
78
+ )}
73
79
  {columnsMetadata &&
74
80
  state.filters.map(filter => (
75
81
  <DataGridFilter
@@ -120,13 +126,6 @@ export const DataGridToolbar = ({
120
126
  </Typography>
121
127
  </button>
122
128
  )}
123
-
124
- {dateFilterValue && (
125
- <DataGridDateFilter
126
- dateFilterValue={dateFilterValue}
127
- onDateFilterValueChange={onDateFilterValueChange}
128
- />
129
- )}
130
129
  </div>
131
130
  </Fragment>
132
131
  );
@@ -51,8 +51,8 @@ export const useMockFilteringLogic = <T extends { [k: string]: string }>(
51
51
  const filterRow = (row: T) => {
52
52
  let shouldBeDiscarded: boolean[] = [];
53
53
  state.filters.forEach(filter => {
54
- const reduce = filter.operator == "is" ? reduceDisjunction : reduceConjunction;
55
- const operatorPredicate = operatorPredicateMap[filter.operator];
54
+ const reduce = filter.operator?.name == "is" ? reduceDisjunction : reduceConjunction;
55
+ const operatorPredicate = operatorPredicateMap[filter.operator?.name || ""];
56
56
  shouldBeDiscarded = [
57
57
  ...shouldBeDiscarded,
58
58
  !reduce(filter.value, val => operatorPredicate(row[filter.column], val))
@@ -104,6 +104,12 @@
104
104
  }
105
105
  }
106
106
 
107
+ .error-message {
108
+ margin-top: 0.25rem;
109
+ margin-left: relativeToBaseFontSize(1.75);
110
+ font-size: var(--font-size-sub);
111
+ }
112
+
107
113
  .input {
108
114
  font-size: var(--font-size-big);
109
115
  width: var(--font-size-big);
@@ -35,7 +35,7 @@ import { withReadOnly } from "../../withReadOnly";
35
35
  const isToggle = (children: ReactNode) => !!(children as ReactElement)?.props?.["data-toggle"];
36
36
 
37
37
  export interface Props extends ComponentPropsWithRef<"input">, Omit<FormSelector, "success"> {
38
- label?: string | React.ReactElement;
38
+ label?: string | React.ReactNode;
39
39
  indeterminate?: boolean;
40
40
  helperProps?: FormHelperTextProps;
41
41
  formSelectorWrapperProps?: FormSelectorWrapperProps;
@@ -51,6 +51,7 @@ const CheckboxComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
51
51
  indeterminate,
52
52
  parentErrorId,
53
53
  errorMessage,
54
+ errorMessageProps,
54
55
  disabled,
55
56
  label,
56
57
  parentHelperId,
@@ -140,6 +141,10 @@ const CheckboxComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
140
141
  parentErrorId={parentErrorId}
141
142
  errorId={errorId}
142
143
  errorMessage={errorMessage}
144
+ errorMessageProps={{
145
+ ...errorMessageProps,
146
+ className: `${errorMessageProps?.className} ${classes["error-message"]}`
147
+ }}
143
148
  error={error}
144
149
  disabled={disabled}
145
150
  identifier={identifier}
@@ -45,10 +45,6 @@ export interface Props extends FileUploadType {
45
45
  maxFileSizeInBytes?: number;
46
46
  selectButtonText?: string;
47
47
  dragAndDropText?: string;
48
- /**
49
- * @deprecated use the `helperText` prop instead
50
- */
51
- subText?: string;
52
48
  onDragOver?: DragEventHandler;
53
49
  onDragEnter?: DragEventHandler;
54
50
  onDragLeave?: DragEventHandler;
@@ -84,7 +80,6 @@ const FileUploadComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
84
80
  onDragLeave,
85
81
  wrapperProps,
86
82
  onDrop,
87
- subText, // @deprecated
88
83
  onRequestedFileAction,
89
84
  exceedingMaxSizeErrorText,
90
85
  fileList,
@@ -93,7 +88,7 @@ const FileUploadComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
93
88
  isRequired = true,
94
89
  invalidDropErrorMessage = "Invalid file format. Supported formats are: $accept.",
95
90
  noMultipleFileDropErrorMessage = "You can upload only a single file.",
96
- helperText = subText,
91
+ helperText,
97
92
  ...rest
98
93
  }: Props,
99
94
  ref
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ .error-message {
18
+ color: var(--error);
19
+ display: flex;
20
+ align-items: flex-end;
21
+ line-height: 1rem;
22
+ }
23
+
24
+ .error-icon {
25
+ margin-right: 0.5rem;
26
+ font-size: var(--font-size-big);
27
+
28
+ &-before {
29
+ margin-right: 0.5rem;
30
+ }
31
+
32
+ &-after {
33
+ margin-left: 0.5rem;
34
+ }
35
+ }
@@ -0,0 +1,65 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React from "react";
18
+ import { Icon, Icons } from "../../Icon/Icon";
19
+ import classes from "./FormErrorText.module.scss";
20
+ import { KeyValuePair } from "../../../interfaces";
21
+
22
+ export interface FormErrorTextProps {
23
+ error?: boolean;
24
+ errorMessage?: string;
25
+ errorMessageProps?: React.ComponentPropsWithRef<"span"> & KeyValuePair;
26
+ errorMessageIcon?: Icons;
27
+ errorMessageIconPosition?: "before" | "after";
28
+ errorId?: string;
29
+ }
30
+
31
+ export const FormErrorText = ({
32
+ error,
33
+ errorMessage,
34
+ errorMessageProps,
35
+ errorMessageIcon,
36
+ errorMessageIconPosition = "before",
37
+ errorId
38
+ }: FormErrorTextProps) => {
39
+ if (!error) {
40
+ return null;
41
+ }
42
+
43
+ return (
44
+ <span
45
+ {...errorMessageProps}
46
+ className={`${classes["error-message"]} ${errorMessageProps?.className ?? ""}`}
47
+ >
48
+ <span id={errorId} className={classes["message"]}>
49
+ {errorMessageIcon && errorMessageIconPosition === "before" && (
50
+ <Icon
51
+ className={`${classes["error-icon"]} ${classes["error-icon-before"]}`}
52
+ icon={errorMessageIcon}
53
+ />
54
+ )}
55
+ {errorMessageProps?.children || errorMessage}
56
+ {errorMessageIcon && errorMessageIconPosition === "after" && (
57
+ <Icon
58
+ className={`${classes["error-icon"]} ${classes["error-icon-after"]}`}
59
+ icon={errorMessageIcon}
60
+ />
61
+ )}
62
+ </span>
63
+ </span>
64
+ );
65
+ };
@@ -18,25 +18,6 @@
18
18
  position: relative;
19
19
  }
20
20
 
21
- .error-message {
22
- color: var(--error);
23
- display: flex;
24
- align-items: flex-end;
25
- }
26
-
27
- .error-icon {
28
- margin-right: 0.5rem;
29
- font-size: var(--font-size-big);
30
-
31
- &-before {
32
- margin-right: 0.5rem;
33
- }
34
-
35
- &-after {
36
- margin-left: 0.5rem;
37
- }
38
- }
39
-
40
21
  .default-helper {
41
22
  font-size: var(--font-size-sub);
42
23
  line-height: 1.33333333;
@@ -19,7 +19,8 @@
19
19
  import React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactElement } from "react";
20
20
  import classes from "./FormGroup.module.scss";
21
21
  import { FormHelperText, Props as HelperProps } from "../FormHelperText/FormHelperText";
22
- import { Icon, Icons } from "../../Icon/Icon";
22
+ import { Icons } from "../../Icon/Icon";
23
+ import { FormErrorText } from "../FormErrorText/FormErrorText";
23
24
 
24
25
  export interface Props extends ComponentPropsWithRef<"div"> {
25
26
  children: ReactElement[] | ReactElement | string | number[] | number;
@@ -53,19 +54,19 @@ const FormGroupComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
53
54
  }: Props,
54
55
  ref
55
56
  ) => {
56
- const disableHelperText = helperProps?.disabled !== undefined ? helperProps?.disabled : disabled;
57
+ const disableHelperText = helperProps?.disabled ?? disabled;
58
+ const hasHelperText = helperText ?? helperProps?.children;
59
+ const showHelperText = hasHelperText && (!error || (error && !errorMessage));
60
+ const showErrorMessage = error && errorMessage && !errorMessageProps?.children;
61
+ const hasHelperContent = showHelperText || errorMessageProps?.children || showErrorMessage;
57
62
 
58
63
  return (
59
64
  <div {...rest} ref={ref} className={`${classes["form-group"]} ${className ?? ""}`}>
60
65
  {children}
61
66
 
62
- {(helperText || (errorMessage && error)) && (
63
- <div
64
- className={`${classes["default-helper"]} ${
65
- helperProps?.className ? helperProps.className : ""
66
- }`}
67
- >
68
- {((helperText && !error) || (helperText && error && !errorMessage)) && (
67
+ {hasHelperContent && (
68
+ <div className={`${classes["default-helper"]} ${helperProps?.className ?? ""}`}>
69
+ {showHelperText && (
69
70
  <FormHelperText
70
71
  {...helperProps}
71
72
  className={""}
@@ -75,27 +76,16 @@ const FormGroupComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
75
76
  {helperProps?.children || helperText}
76
77
  </FormHelperText>
77
78
  )}
78
- {error && errorMessage && (
79
- <span
80
- {...errorMessageProps}
81
- className={`${classes["error-message"]} ${errorMessageProps?.className ? errorMessageProps.className : ""}`}
82
- >
83
- <span id={errorId} className={classes.message}>
84
- {errorMessageIcon && errorMessageIconPosition === "before" && (
85
- <Icon
86
- className={`${classes["error-icon"]} ${classes["error-icon-before"]}`}
87
- icon={errorMessageIcon}
88
- />
89
- )}
90
- {errorMessage}
91
- {errorMessageIcon && errorMessageIconPosition === "after" && (
92
- <Icon
93
- className={`${classes["error-icon"]} ${classes["error-icon-after"]}`}
94
- icon={errorMessageIcon}
95
- />
96
- )}
97
- </span>
98
- </span>
79
+
80
+ {error && (
81
+ <FormErrorText
82
+ error={error}
83
+ errorMessage={errorMessage}
84
+ errorMessageProps={errorMessageProps}
85
+ errorId={errorId}
86
+ errorMessageIcon={errorMessageIcon}
87
+ errorMessageIconPosition={errorMessageIconPosition}
88
+ />
99
89
  )}
100
90
  </div>
101
91
  )}
@@ -28,10 +28,6 @@
28
28
  margin-left: relativeToBaseFontSize(1.75);
29
29
  }
30
30
 
31
- .error-message {
32
- color: var(--error);
33
- }
34
-
35
31
  .disabled {
36
32
  input {
37
33
  color: var(--disabled);
@@ -24,6 +24,7 @@ import { KeyValuePair } from "../../../interfaces";
24
24
  import { FormSelector } from "../form.interfaces";
25
25
  import { FormHelperText, Props as FormHelperTextProps } from "../FormHelperText/FormHelperText";
26
26
  import classes from "./FormSelectorWrapper.module.scss";
27
+ import { FormErrorText } from "../FormErrorText/FormErrorText";
27
28
 
28
29
  export interface Props extends ComponentPropsWithRef<"div">, FormSelector {
29
30
  children?: ReactNode;
@@ -46,6 +47,7 @@ const FormSelectorWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Pro
46
47
  disabled,
47
48
  helperText,
48
49
  errorMessage,
50
+ errorMessageProps,
49
51
  parentErrorId,
50
52
  errorId,
51
53
  identifier,
@@ -55,6 +57,10 @@ const FormSelectorWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Pro
55
57
  ) => {
56
58
  const helperRef = helperProps?.ref ?? createRef();
57
59
 
60
+ const hasHelperText = helperText ?? helperProps?.children;
61
+ const showHelperText = !error && hasHelperText;
62
+ const showErrorText = error && (errorMessage || errorMessageProps?.children);
63
+
58
64
  return (
59
65
  <div
60
66
  {...rest}
@@ -64,24 +70,24 @@ const FormSelectorWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Pro
64
70
  }`}
65
71
  >
66
72
  <div {...containerProps}>{children}</div>
67
- {(errorMessage || helperText || helperProps?.children) && (
68
- <FormHelperText
69
- {...helperProps}
70
- ref={helperRef}
71
- id={`${identifier}`}
72
- className={`${classes["helper-text"]} ${helperProps?.className ?? ""} ${
73
- error ? classes["error"] : ""
74
- }`}
75
- >
76
- {error && errorMessage ? (
77
- <span className={classes["error-message"]} id={errorId}>
78
- {errorMessage}
79
- </span>
80
- ) : (
81
- helperProps?.children || helperText
82
- )}
83
- </FormHelperText>
84
- )}
73
+ {(showHelperText || showErrorText) &&
74
+ (showErrorText ? (
75
+ <FormErrorText
76
+ error={error}
77
+ errorMessage={errorMessage}
78
+ errorMessageProps={errorMessageProps}
79
+ errorId={errorId}
80
+ />
81
+ ) : (
82
+ <FormHelperText
83
+ {...helperProps}
84
+ ref={helperRef}
85
+ id={identifier}
86
+ className={`${classes["helper-text"]} ${helperProps?.className ?? ""}`}
87
+ >
88
+ {helperProps?.children || helperText}
89
+ </FormHelperText>
90
+ ))}
85
91
  {nestedChildren}
86
92
  </div>
87
93
  );
@@ -28,14 +28,15 @@
28
28
  color: var(--error);
29
29
  }
30
30
 
31
- .helper-text {
31
+ .error-message {
32
32
  margin-top: 0.25rem;
33
- margin-left: 1.75rem;
33
+ margin-left: relativeToBaseFontSize(1.75);
34
+ font-size: var(--font-size-sub);
34
35
  }
35
36
 
36
- .error-message {
37
- margin-top: 1.25rem;
38
- display: flex;
37
+ .helper-text {
38
+ margin-top: 0.25rem;
39
+ margin-left: 1.75rem;
39
40
  }
40
41
 
41
42
  .error-icon {
@@ -49,11 +50,14 @@
49
50
  label {
50
51
  display: inline-block;
51
52
  margin-left: relativeToBaseFontSize(0.5);
52
- user-select: none;
53
53
  font-size: var(--font-size-form-label);
54
54
  font-family: var(--font-family);
55
55
  margin-top: 0.15rem;
56
56
 
57
+ &.no-margin-top {
58
+ margin-top: 0;
59
+ }
60
+
57
61
  .disabled & {
58
62
  cursor: not-allowed;
59
63
  }
@@ -27,7 +27,7 @@ import {
27
27
  import { withReadOnly } from "../../withReadOnly";
28
28
 
29
29
  export interface Props extends ComponentPropsWithRef<"input">, Omit<FormSelector, "success"> {
30
- children: string;
30
+ children: string | React.ReactNode;
31
31
  value: string;
32
32
  formSelectorWrapperProps?: FormSelectorWrapperProps;
33
33
  helperProps?: HelperProps;
@@ -45,6 +45,7 @@ const RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
45
45
  parentHelperId,
46
46
  error,
47
47
  errorMessage,
48
+ errorMessageProps,
48
49
  checked = false,
49
50
  formSelectorWrapperProps,
50
51
  helperProps,
@@ -81,6 +82,8 @@ const RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
81
82
  onChange?.(clonedEvent);
82
83
  };
83
84
 
85
+ const customLabel = typeof children !== "string";
86
+
84
87
  const nativeInputClasses = [classes["native-input"]];
85
88
  const checkedRadioClasses = [classes["input"], classes["radio"]];
86
89
  const uncheckedRadioClasses = [classes["input"], classes["circle"]];
@@ -88,7 +91,6 @@ const RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
88
91
  disabled &&
89
92
  checkedRadioClasses.push(classes["disabled"]) &&
90
93
  uncheckedRadioClasses.push(classes["disabled"]);
91
-
92
94
  return (
93
95
  <FormSelectorWrapper
94
96
  {...formSelectorWrapperProps}
@@ -99,6 +101,10 @@ const RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
99
101
  parentErrorId={parentErrorId}
100
102
  errorId={errorId}
101
103
  errorMessage={errorMessage}
104
+ errorMessageProps={{
105
+ ...errorMessageProps,
106
+ className: `${errorMessageProps?.className} ${classes["error-message"]}`
107
+ }}
102
108
  error={error}
103
109
  disabled={disabled}
104
110
  identifier={identifier}
@@ -119,10 +125,14 @@ const RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (
119
125
  type="radio"
120
126
  />
121
127
 
122
- {checked && <Icon className={checkedRadioClasses.join(" ")} icon={Icons.Radio} />}
123
- {!checked && <Icon className={uncheckedRadioClasses.join(" ")} icon={Icons.Circle} />}
128
+ {checked ? <Icon className={checkedRadioClasses.join(" ")} icon={Icons.Radio} /> : <></>}
129
+ {!checked ? <Icon className={uncheckedRadioClasses.join(" ")} icon={Icons.Circle} /> : <></>}
124
130
 
125
- <label onClick={onChangeHandler} htmlFor={`${identifier}-radio`}>
131
+ <label
132
+ className={customLabel ? classes["no-margin-top"] : ""}
133
+ onClick={onChangeHandler}
134
+ htmlFor={`${identifier}-radio`}
135
+ >
126
136
  {children}
127
137
  </label>
128
138
  </FormSelectorWrapper>
@@ -20,8 +20,10 @@
20
20
  margin-top: 1.25rem;
21
21
  }
22
22
 
23
- .checkbox-wrapper-error span {
23
+ .checkbox-wrapper-error {
24
24
  font-size: 1rem;
25
+ margin-left: 0;
26
+ line-height: unset;
25
27
  }
26
28
 
27
29
  .checkbox-wrapper-error [data-icon] {
@@ -34,7 +34,15 @@ export interface Props extends ComponentPropsWithRef<"div">, Omit<WrapperProps,
34
34
  }
35
35
 
36
36
  const CheckboxWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
37
- { children, error = false, helperText, helperProps, fieldsetProps, ...rest }: Props,
37
+ {
38
+ children,
39
+ error = false,
40
+ helperText,
41
+ helperProps,
42
+ errorMessageProps,
43
+ fieldsetProps,
44
+ ...rest
45
+ }: Props,
38
46
  ref
39
47
  ) => {
40
48
  const { errorId, helperId } = useWrapper();
@@ -67,9 +75,11 @@ const CheckboxWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props>
67
75
  helperText={helperText}
68
76
  helperProps={{
69
77
  ...helperProps,
70
- className: `${classes["checkbox-wrapper-helper"]} ${
71
- error ? classes["checkbox-wrapper-error"] : ""
72
- } ${helperProps?.className ?? ""}`
78
+ className: `${classes["checkbox-wrapper-helper"]} ${helperProps?.className ?? ""}`
79
+ }}
80
+ errorMessageProps={{
81
+ ...errorMessageProps,
82
+ className: `${error ? classes["checkbox-wrapper-error"] : ""}`
73
83
  }}
74
84
  error={error}
75
85
  errorMessageIcon={Icons.Error}