@axinom/mosaic-ui 0.69.0-rc.2 → 0.69.0-rc.21

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 (326) hide show
  1. package/dist/components/Buttons/Button/Button.d.ts +3 -3
  2. package/dist/components/Buttons/Button/Button.d.ts.map +1 -1
  3. package/dist/components/Buttons/Button.model.d.ts +2 -1
  4. package/dist/components/Buttons/Button.model.d.ts.map +1 -1
  5. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  6. package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts +0 -1
  7. package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts.map +1 -1
  8. package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts +2 -2
  9. package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts.map +1 -1
  10. package/dist/components/DynamicDataList/DynamicDataList.d.ts +1 -1
  11. package/dist/components/DynamicDataList/DynamicDataList.d.ts.map +1 -1
  12. package/dist/components/DynamicDataList/DynamicDataList.model.d.ts +0 -1
  13. package/dist/components/DynamicDataList/DynamicDataList.model.d.ts.map +1 -1
  14. package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts +2 -2
  15. package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts.map +1 -1
  16. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts +1 -1
  17. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts.map +1 -1
  18. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts +1 -1
  19. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts.map +1 -1
  20. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts +2 -0
  21. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts.map +1 -1
  22. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts +2 -2
  23. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts.map +1 -1
  24. package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts +2 -2
  25. package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts.map +1 -1
  26. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts +2 -2
  27. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts.map +1 -1
  28. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.d.ts.map +1 -1
  29. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.d.ts.map +1 -1
  30. package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts +1 -1
  31. package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts.map +1 -1
  32. package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts +1 -1
  33. package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts.map +1 -1
  34. package/dist/components/DynamicDataList/helpers/useRowAnimation.d.ts.map +1 -1
  35. package/dist/components/DynamicDataList/helpers/useRowEditing.d.ts.map +1 -1
  36. package/dist/components/EmptyStation/EmptyStation.d.ts.map +1 -1
  37. package/dist/components/Explorer/BulkEdit/FormFieldsConfigConverter.d.ts.map +1 -1
  38. package/dist/components/Explorer/BulkEdit/GenerateMutation.d.ts.map +1 -1
  39. package/dist/components/Explorer/BulkEdit/helpers/FieldWrapper.d.ts.map +1 -1
  40. package/dist/components/Explorer/BulkEdit/useBulkEdit.d.ts.map +1 -1
  41. package/dist/components/Explorer/Explorer.d.ts +1 -1
  42. package/dist/components/Explorer/Explorer.d.ts.map +1 -1
  43. package/dist/components/Explorer/Explorer.model.d.ts +0 -1
  44. package/dist/components/Explorer/Explorer.model.d.ts.map +1 -1
  45. package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts +1 -1
  46. package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts.map +1 -1
  47. package/dist/components/Explorer/QuickEdit/useQuickEdit.d.ts.map +1 -1
  48. package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts +1 -1
  49. package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts.map +1 -1
  50. package/dist/components/Explorer/helpers/useActions.d.ts +0 -1
  51. package/dist/components/Explorer/helpers/useActions.d.ts.map +1 -1
  52. package/dist/components/Explorer/helpers/useDataProvider.d.ts +0 -1
  53. package/dist/components/Explorer/helpers/useDataProvider.d.ts.map +1 -1
  54. package/dist/components/Explorer/helpers/useFilters.d.ts +0 -1
  55. package/dist/components/Explorer/helpers/useFilters.d.ts.map +1 -1
  56. package/dist/components/FieldSelection/FieldSelection.d.ts +1 -0
  57. package/dist/components/FieldSelection/FieldSelection.d.ts.map +1 -1
  58. package/dist/components/Filters/Filter/Filter.d.ts +2 -2
  59. package/dist/components/Filters/Filter/Filter.d.ts.map +1 -1
  60. package/dist/components/Filters/Filters.d.ts +2 -2
  61. package/dist/components/Filters/Filters.d.ts.map +1 -1
  62. package/dist/components/Filters/Filters.model.d.ts +0 -1
  63. package/dist/components/Filters/Filters.model.d.ts.map +1 -1
  64. package/dist/components/Filters/Validators/DateRangeFilterValidator.d.ts.map +1 -1
  65. package/dist/components/Filters/Validators/NumberRangeFilterValidator.d.ts.map +1 -1
  66. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts +0 -1
  67. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts.map +1 -1
  68. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts +2 -2
  69. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts.map +1 -1
  70. package/dist/components/FormElements/FormGroup/FormGroup.d.ts +12 -0
  71. package/dist/components/FormElements/FormGroup/FormGroup.d.ts.map +1 -0
  72. package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts +5 -0
  73. package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts.map +1 -1
  74. package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts +0 -1
  75. package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts.map +1 -1
  76. package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts +2 -2
  77. package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts.map +1 -1
  78. package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts +2 -2
  79. package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts.map +1 -1
  80. package/dist/components/FormElements/Tags/Tags.d.ts +2 -2
  81. package/dist/components/FormElements/Tags/Tags.d.ts.map +1 -1
  82. package/dist/components/FormElements/Tags/TagsField.d.ts +2 -2
  83. package/dist/components/FormElements/Tags/TagsField.d.ts.map +1 -1
  84. package/dist/components/FormElements/formStoryHelper.d.ts.map +1 -1
  85. package/dist/components/FormElements/index.d.ts +1 -0
  86. package/dist/components/FormElements/index.d.ts.map +1 -1
  87. package/dist/components/FormElements/useFormikError.d.ts.map +1 -1
  88. package/dist/components/FormStation/Create/Create.d.ts +2 -2
  89. package/dist/components/FormStation/Create/Create.d.ts.map +1 -1
  90. package/dist/components/FormStation/Details/Details.d.ts +2 -2
  91. package/dist/components/FormStation/Details/Details.d.ts.map +1 -1
  92. package/dist/components/FormStation/FormStation.d.ts +2 -2
  93. package/dist/components/FormStation/FormStation.d.ts.map +1 -1
  94. package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts +1 -1
  95. package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts.map +1 -1
  96. package/dist/components/FormStation/FormStationHeader/FormStationHeader.d.ts.map +1 -1
  97. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts +0 -1
  98. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts.map +1 -1
  99. package/dist/components/FormStation/SaveOnNavigate/handleNavigationAttempt.d.ts.map +1 -1
  100. package/dist/components/FormStation/helpers/useTitle.d.ts.map +1 -1
  101. package/dist/components/InfoPanel/hooks/useCollapse.d.ts +0 -1
  102. package/dist/components/InfoPanel/hooks/useCollapse.d.ts.map +1 -1
  103. package/dist/components/InlineMenu/InlineMenu.d.ts.map +1 -1
  104. package/dist/components/List/List.d.ts +2 -2
  105. package/dist/components/List/List.d.ts.map +1 -1
  106. package/dist/components/List/List.model.d.ts +0 -1
  107. package/dist/components/List/List.model.d.ts.map +1 -1
  108. package/dist/components/List/List.stories.helper.d.ts.map +1 -1
  109. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts +2 -2
  110. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts.map +1 -1
  111. package/dist/components/List/ListHeader/ListHeader.d.ts +2 -2
  112. package/dist/components/List/ListHeader/ListHeader.d.ts.map +1 -1
  113. package/dist/components/List/ListRow/ListRow.d.ts +2 -4
  114. package/dist/components/List/ListRow/ListRow.d.ts.map +1 -1
  115. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts +0 -1
  116. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts.map +1 -1
  117. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts.map +1 -1
  118. package/dist/components/List/ListRow/ListRowLoader.d.ts +2 -2
  119. package/dist/components/List/ListRow/ListRowLoader.d.ts.map +1 -1
  120. package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts +0 -1
  121. package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts.map +1 -1
  122. package/dist/components/List/ListRow/Renderers/DateRenderer/DateRenderer.d.ts.map +1 -1
  123. package/dist/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.d.ts.map +1 -1
  124. package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts +1 -1
  125. package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts.map +1 -1
  126. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts +0 -1
  127. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts.map +1 -1
  128. package/dist/components/List/ListRow/Renderers/TimestampRenderer/TimestampRenderer.d.ts.map +1 -1
  129. package/dist/components/List/ListRowRenderer/ListRowRenderer.d.ts.map +1 -1
  130. package/dist/components/List/helpers.d.ts.map +1 -1
  131. package/dist/components/List/useColumnsSize.d.ts +0 -2
  132. package/dist/components/List/useColumnsSize.d.ts.map +1 -1
  133. package/dist/components/Loaders/skeletons.d.ts +0 -1
  134. package/dist/components/Loaders/skeletons.d.ts.map +1 -1
  135. package/dist/components/Modal/useModal.d.ts.map +1 -1
  136. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts +0 -1
  137. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts.map +1 -1
  138. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts +1 -2
  139. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts.map +1 -1
  140. package/dist/components/Tabs/TabList/ScrollContainer/useScroll.d.ts.map +1 -1
  141. package/dist/components/Utils/Postgraphile/FilterTransformer.d.ts.map +1 -1
  142. package/dist/components/Utils/Postgraphile/SortTransformer.d.ts.map +1 -1
  143. package/dist/components/Utils/State/GlobalState.d.ts.map +1 -1
  144. package/dist/helpers/idleCallbackHelpers.d.ts +0 -1
  145. package/dist/helpers/idleCallbackHelpers.d.ts.map +1 -1
  146. package/dist/helpers/storybook.d.ts.map +1 -1
  147. package/dist/helpers/testing.d.ts +6 -21
  148. package/dist/helpers/testing.d.ts.map +1 -1
  149. package/dist/helpers/utils.d.ts +1 -2
  150. package/dist/helpers/utils.d.ts.map +1 -1
  151. package/dist/hooks/useDEBUGDetectChanges/useDEBUGDetectChanges.d.ts.map +1 -1
  152. package/dist/hooks/useDEBUGRenderCount/useDEBUGRenderCount.d.ts.map +1 -1
  153. package/dist/hooks/useDebounce/useDebounce.d.ts +1 -2
  154. package/dist/hooks/useDebounce/useDebounce.d.ts.map +1 -1
  155. package/dist/hooks/useExpand/useExpand.d.ts.map +1 -1
  156. package/dist/hooks/useReactRouterPause/utils.d.ts.map +1 -1
  157. package/dist/hooks/useResize/useResize.d.ts +0 -1
  158. package/dist/hooks/useResize/useResize.d.ts.map +1 -1
  159. package/dist/hooks/useTabTitle/useTabTitle.d.ts.map +1 -1
  160. package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts +1 -1
  161. package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts.map +1 -1
  162. package/dist/index.es.js +4 -4
  163. package/dist/index.es.js.map +1 -1
  164. package/dist/index.js +4 -4
  165. package/dist/index.js.map +1 -1
  166. package/dist/utils/ErrorMapper/ErrorMapper.d.ts.map +1 -1
  167. package/dist/utils/ErrorTypeToStationError.d.ts.map +1 -1
  168. package/dist/utils/ToolTipHelpers.d.ts.map +1 -1
  169. package/dist/validators/timestamp/timestamp.d.ts.map +1 -1
  170. package/package.json +11 -10
  171. package/src/components/Accordion/Accordion.spec.tsx +1 -1
  172. package/src/components/Accordion/AccordionItem/AccordionItem.spec.tsx +2 -2
  173. package/src/components/Actions/Action/Action.spec.tsx +189 -228
  174. package/src/components/Actions/Actions.spec.tsx +42 -32
  175. package/src/components/Buttons/Button/Button.spec.tsx +110 -115
  176. package/src/components/Buttons/Button/Button.tsx +4 -0
  177. package/src/components/Buttons/Button.model.ts +2 -0
  178. package/src/components/Buttons/CompositeButton/CompositeButton.spec.tsx +122 -121
  179. package/src/components/Buttons/TextButton/TextButton.spec.tsx +85 -90
  180. package/src/components/ConfirmDialog/ConfirmDialog.spec.tsx +75 -79
  181. package/src/components/DateTime/DatePicker/DatePicker.spec.tsx +8 -7
  182. package/src/components/DateTime/DateTimePicker.spec.tsx +43 -62
  183. package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.spec.tsx +19 -16
  184. package/src/components/DateTime/TimePicker/TimePicker.spec.tsx +44 -73
  185. package/src/components/DynamicDataList/DynamicDataList.spec.tsx +112 -107
  186. package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.spec.tsx +91 -144
  187. package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.tsx +38 -20
  188. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.spec.tsx +18 -15
  189. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.tsx +2 -0
  190. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.spec.tsx +53 -28
  191. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.tsx +2 -0
  192. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.ts +2 -0
  193. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.scss +19 -5
  194. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.spec.tsx +72 -76
  195. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.scss +9 -2
  196. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.spec.tsx +86 -113
  197. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.spec.ts +1 -0
  198. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.spec.ts +1 -0
  199. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.spec.ts +6 -5
  200. package/src/components/EmptyStation/EmptyStation.spec.tsx +41 -37
  201. package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.spec.tsx +29 -28
  202. package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.tsx +1 -0
  203. package/src/components/Explorer/BulkEdit/GenerateMutation.spec.tsx +1 -0
  204. package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.scss +1 -0
  205. package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.tsx +1 -0
  206. package/src/components/Explorer/Explorer.spec.tsx +513 -825
  207. package/src/components/Explorer/NavigationExplorer/NavigationExplorer.spec.tsx +90 -131
  208. package/src/components/Explorer/QuickEdit/useQuickEdit.spec.tsx +36 -56
  209. package/src/components/Explorer/SelectionExplorer/SelectionExplorer.spec.tsx +59 -65
  210. package/src/components/Explorer/helpers/InMemoryDataProvider.spec.ts +1 -0
  211. package/src/components/Explorer/helpers/useFilters.spec.tsx +13 -11
  212. package/src/components/Explorer/helpers/useStationMessage.spec.tsx +4 -3
  213. package/src/components/Explorer/helpers/useSubtitle.spec.tsx +1 -0
  214. package/src/components/FieldSelection/FieldSelection.scss +1 -1
  215. package/src/components/FieldSelection/FieldSelection.spec.tsx +1 -1
  216. package/src/components/FieldSelection/FieldSelection.tsx +6 -2
  217. package/src/components/Filters/Filter/Filter.spec.tsx +78 -47
  218. package/src/components/Filters/Filters.spec.tsx +56 -58
  219. package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.spec.tsx +45 -46
  220. package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.spec.tsx +23 -23
  221. package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.spec.tsx +37 -28
  222. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.spec.tsx +14 -12
  223. package/src/components/Filters/Validators/DateRangeFilterValidator.spec.ts +1 -0
  224. package/src/components/Filters/Validators/NumberRangeFilterValidator.spec.ts +1 -0
  225. package/src/components/FormElements/BooleanView/BooleanViewField.spec.tsx +34 -31
  226. package/src/components/FormElements/Checkbox/Checkbox.spec.tsx +129 -128
  227. package/src/components/FormElements/CustomTags/CustomTags.spec.tsx +312 -446
  228. package/src/components/FormElements/DateTimeField/DateTimeText.spec.tsx +61 -52
  229. package/src/components/FormElements/DynamicDataListControl/DynamicDataListControl.spec.tsx +19 -24
  230. package/src/components/FormElements/FileUploadControl/FileUploadControl.spec.tsx +67 -60
  231. package/src/components/FormElements/FormElementContainer/FormElementContainer.spec.tsx +13 -12
  232. package/src/components/FormElements/FormGroup/FormGroup.scss +62 -0
  233. package/src/components/FormElements/FormGroup/FormGroup.stories.tsx +25 -0
  234. package/src/components/FormElements/FormGroup/FormGroup.tsx +60 -0
  235. package/src/components/FormElements/FormGroupTitle/FormGroupTitle.tsx +5 -0
  236. package/src/components/FormElements/Link/LinkField.spec.tsx +24 -23
  237. package/src/components/FormElements/MaskedSingleLineText/MaskedSingleLineText.spec.tsx +4 -3
  238. package/src/components/FormElements/Radio/Radio.spec.tsx +170 -172
  239. package/src/components/FormElements/ReadOnly/ReadOnlyField.spec.tsx +23 -22
  240. package/src/components/FormElements/ReadOnlyText/ReadOnlyTextField.spec.tsx +23 -22
  241. package/src/components/FormElements/Select/Select.spec.tsx +30 -29
  242. package/src/components/FormElements/SingleLineText/SingleLineText.spec.tsx +46 -42
  243. package/src/components/FormElements/Tags/Tags.spec.tsx +59 -53
  244. package/src/components/FormElements/TextArea/TextArea.spec.tsx +44 -29
  245. package/src/components/FormElements/ToggleButton/ToggleButton.spec.tsx +188 -165
  246. package/src/components/FormElements/index.ts +1 -0
  247. package/src/components/FormStation/FormStation.spec.tsx +273 -198
  248. package/src/components/FormStation/FormStation.stories.tsx +15 -13
  249. package/src/components/FormStation/FormStationHeader/FormStationHeader.tsx +5 -3
  250. package/src/components/FormStation/SaveOnNavigate/SaveOnNavigate.spec.tsx +23 -20
  251. package/src/components/FormStation/SaveOnNavigate/handleNavigationAttempt.spec.ts +25 -24
  252. package/src/components/FormStation/helpers/useTitle.spec.ts +9 -7
  253. package/src/components/Hub/Hub.spec.tsx +13 -10
  254. package/src/components/Hub/Tile/Tile.spec.tsx +29 -25
  255. package/src/components/Icons/Icons.spec.tsx +25 -27
  256. package/src/components/Icons/Icons.tsx +1 -1
  257. package/src/components/InfoPanel/InfoImage/InfoImage.spec.tsx +4 -3
  258. package/src/components/InfoPanel/InfoPanel.scss +2 -0
  259. package/src/components/InfoPanel/InfoPanel.spec.tsx +4 -3
  260. package/src/components/InfoPanel/Paragraph/Paragraph.spec.tsx +4 -3
  261. package/src/components/InfoPanel/Section/Section.spec.tsx +39 -46
  262. package/src/components/InfoPanel/hooks/useCollapse.ts +9 -7
  263. package/src/components/InlineMenu/InlineMenu.spec.tsx +24 -23
  264. package/src/components/InlineMenu/InlineMenu.tsx +3 -0
  265. package/src/components/LandingPageHeader/LandingPageHeader.spec.tsx +9 -8
  266. package/src/components/LandingPageTiles/LandingPageTiles.spec.tsx +29 -28
  267. package/src/components/LandingPageTiles/TileLarge/TileLarge.spec.tsx +68 -61
  268. package/src/components/LandingPageTiles/TileSmall/TileSmall.spec.tsx +50 -32
  269. package/src/components/List/List.spec.tsx +337 -241
  270. package/src/components/List/ListCheckBox/ListCheckBox.spec.tsx +54 -48
  271. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.scss +4 -1
  272. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.spec.tsx +46 -43
  273. package/src/components/List/ListHeader/ListHeader.spec.tsx +82 -66
  274. package/src/components/List/ListRow/ListRow.spec.tsx +125 -130
  275. package/src/components/List/ListRow/ListRowCell/ListRowCell.spec.tsx +57 -100
  276. package/src/components/List/ListRow/ListRowLoader.spec.tsx +16 -12
  277. package/src/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.spec.tsx +12 -9
  278. package/src/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.spec.tsx +40 -35
  279. package/src/components/List/ListRow/Renderers/StateRenderer/StateRenderer.spec.tsx +14 -17
  280. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.spec.tsx +18 -17
  281. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +2 -2
  282. package/src/components/List/ListRowRenderer/ListRowRenderer.spec.tsx +82 -68
  283. package/src/components/Loaders/ImageLoader/ImageLoader.spec.tsx +88 -96
  284. package/src/components/Loaders/Loader/Loader.spec.tsx +51 -24
  285. package/src/components/Message/Message.spec.tsx +56 -44
  286. package/src/components/MessageBar/MessageBar.scss +3 -0
  287. package/src/components/MessageBar/MessageBar.spec.tsx +88 -85
  288. package/src/components/Modal/Modal.spec.tsx +92 -87
  289. package/src/components/NavigationAwareStation/NavigationAwareStation.spec.tsx +23 -22
  290. package/src/components/PageHeader/PageHeader.spec.tsx +22 -21
  291. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.spec.tsx +275 -193
  292. package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.spec.tsx +39 -34
  293. package/src/components/ProgressBar/ProgressBar.spec.tsx +18 -15
  294. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.spec.ts +1 -0
  295. package/src/components/Utils/Postgraphile/FilterTransformer.spec.ts +1 -0
  296. package/src/components/Utils/Postgraphile/RangeTransformer.spec.ts +1 -0
  297. package/src/components/Utils/Postgraphile/SortTransformer.spec.ts +1 -0
  298. package/src/components/Utils/Postgraphile/UpdateGQLFragmentGenerator.spec.ts +1 -0
  299. package/src/components/Utils/Postgraphile/generateArrayMutations.spec.ts +1 -0
  300. package/src/components/Utils/Postgraphile/getArrayDiff.spec.ts +1 -0
  301. package/src/components/Utils/Postgraphile/getFormDiff.spec.ts +1 -0
  302. package/src/components/Utils/State/GlobalState.spec.ts +4 -2
  303. package/src/components/Utils/Transformers/Boolean.spec.ts +1 -0
  304. package/src/components/Utils/Transformers/DateTime.spec.ts +2 -1
  305. package/src/components/Utils/Transformers/FileSize.spec.ts +1 -0
  306. package/src/components/Utils/Transformers/SortArray.spec.ts +1 -0
  307. package/src/components/Utils/Transformers/Timestamp.spec.ts +3 -2
  308. package/src/components/Utils/Transformers/TitleCase.spec.ts +1 -0
  309. package/src/components/VisualElements/ImgElement.spec.tsx +34 -35
  310. package/src/components/VisualElements/SvgElement.spec.tsx +72 -69
  311. package/src/helpers/testing.ts +9 -76
  312. package/src/hooks/useBusy/useBusy.spec.tsx +8 -9
  313. package/src/hooks/useClickOutside/useClickOutside.spec.tsx +19 -51
  314. package/src/hooks/useDebounce/useDebounce.spec.tsx +31 -26
  315. package/src/hooks/useExpand/useExpand.spec.tsx +30 -21
  316. package/src/hooks/useTabTitle/useTabTitle.spec.tsx +18 -18
  317. package/src/hooks/useValueOrOnDemand/useValueOrOnDemand.spec.tsx +31 -52
  318. package/src/styles/variables.scss +3 -1
  319. package/src/utils/ErrorMapper/ApolloClient/ApolloErrorMapper.spec.ts +1 -0
  320. package/src/utils/ErrorMapper/ErrorMapper.spec.ts +1 -0
  321. package/src/utils/ErrorTypeToStationError.spec.tsx +12 -11
  322. package/src/utils/ToolTipHelpers.spec.ts +1 -0
  323. package/src/validators/timestamp/timestamp.spec.ts +1 -0
  324. package/dist/helpers/hooksTestingHelpers.d.ts +0 -7
  325. package/dist/helpers/hooksTestingHelpers.d.ts.map +0 -1
  326. package/src/helpers/hooksTestingHelpers.tsx +0 -22
@@ -1,261 +1,258 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render, waitFor } from '@testing-library/react';
2
2
  import React from 'react';
3
3
  import { act } from 'react-dom/test-utils';
4
- import { ConfirmDialog } from '../../ConfirmDialog';
4
+ import { describe, expect, it, vi } from 'vitest';
5
5
  import { ToggleButton } from './ToggleButton';
6
6
 
7
7
  describe('Button', () => {
8
8
  const mockEvent = {
9
9
  e: 'event',
10
- persist: () => jest.fn(),
10
+ persist: () => vi.fn(),
11
11
  };
12
12
 
13
13
  it('renders the component without crashing', () => {
14
- const wrapper = shallow(<ToggleButton name="test-name" />);
14
+ const { container } = render(<ToggleButton name="test-name" />);
15
15
 
16
- expect(wrapper).toBeTruthy();
16
+ expect(container).toBeTruthy();
17
17
  });
18
18
 
19
19
  it(`'value' is 'false' by default and the 'OFF' button has the 'active' class`, () => {
20
- const wrapper = shallow(<ToggleButton name="test-name" />);
20
+ const { container } = render(<ToggleButton name="test-name" />);
21
21
 
22
- const buttons = wrapper.find('div');
22
+ const buttons = container.querySelectorAll('div');
23
+ const offButton = container.querySelector('.off');
24
+ const onButton = container.querySelector('.on');
23
25
 
24
- expect(buttons.first().hasClass('active')).toBe(true);
25
- expect(buttons.last().hasClass('active')).toBe(false);
26
+ expect(offButton?.classList.contains('active')).toBe(true);
27
+ expect(onButton?.classList.contains('active')).toBe(false);
26
28
  });
27
29
 
28
30
  it(`when 'value' is to 'true', the 'ON' button has the 'active' class`, () => {
29
- const wrapper = shallow(<ToggleButton name="test-name" value={true} />);
31
+ const { container } = render(
32
+ <ToggleButton name="test-name" value={true} />,
33
+ );
30
34
 
31
- const buttons = wrapper.find('div');
35
+ const offButton = container.querySelector('.off');
36
+ const onButton = container.querySelector('.on');
32
37
 
33
- expect(buttons.first().hasClass('active')).toBe(false);
34
- expect(buttons.last().hasClass('active')).toBe(true);
38
+ expect(offButton?.classList.contains('active')).toBe(false);
39
+ expect(onButton?.classList.contains('active')).toBe(true);
35
40
  });
36
41
 
37
42
  it(`'value' updates current active state`, () => {
38
- const wrapper = mount(<ToggleButton name="test-name" value={true} />);
43
+ const { container, rerender } = render(
44
+ <ToggleButton name="test-name" value={true} />,
45
+ );
39
46
 
40
- let offButton = wrapper.find('.off');
41
- let onButton = wrapper.find('.on');
47
+ let offButton = container.querySelector('.off');
48
+ let onButton = container.querySelector('.on');
42
49
 
43
- expect(offButton.hasClass('active')).toBe(false);
44
- expect(onButton.hasClass('active')).toBe(true);
50
+ expect(offButton?.classList.contains('active')).toBe(false);
51
+ expect(onButton?.classList.contains('active')).toBe(true);
45
52
 
46
- wrapper.setProps({ value: false });
47
- wrapper.update();
53
+ rerender(<ToggleButton name="test-name" value={false} />);
48
54
 
49
- offButton = wrapper.find('.off');
50
- onButton = wrapper.find('.on');
55
+ offButton = container.querySelector('.off');
56
+ onButton = container.querySelector('.on');
51
57
 
52
- expect(offButton.hasClass('active')).toBe(true);
53
- expect(onButton.hasClass('active')).toBe(false);
58
+ expect(offButton?.classList.contains('active')).toBe(true);
59
+ expect(onButton?.classList.contains('active')).toBe(false);
54
60
 
55
- wrapper.setProps({ value: true });
56
- wrapper.update();
61
+ rerender(<ToggleButton name="test-name" value={true} />);
57
62
 
58
- offButton = wrapper.find('.off');
59
- onButton = wrapper.find('.on');
63
+ offButton = container.querySelector('.off');
64
+ onButton = container.querySelector('.on');
60
65
 
61
- expect(offButton.hasClass('active')).toBe(false);
62
- expect(onButton.hasClass('active')).toBe(true);
66
+ expect(offButton?.classList.contains('active')).toBe(false);
67
+ expect(onButton?.classList.contains('active')).toBe(true);
63
68
  });
64
69
 
65
70
  it(`raises the onButtonClicked event with 'false' when button is toggled 'OFF' and adds the 'active' class`, () => {
66
- const spy = jest.fn();
71
+ const spy = vi.fn();
67
72
 
68
- const wrapper = mount(
73
+ const { container } = render(
69
74
  <ToggleButton name="test-name" onButtonClicked={spy} value={true} />,
70
75
  );
71
76
 
72
- let offButton = wrapper.find('button').first();
73
- let onButton = wrapper.find('button').last();
77
+ const buttons = container.querySelectorAll('button');
78
+ const offButton = buttons[0];
74
79
 
75
80
  act(() => {
76
- // @ts-expect-error no full event args
77
- offButton.prop('onClick')?.(mockEvent);
81
+ fireEvent.click(offButton);
78
82
  });
79
- wrapper.update();
80
83
 
81
- offButton = wrapper.find('.off');
82
- onButton = wrapper.find('.on');
84
+ const offDiv = container.querySelector('.off');
85
+ const onDiv = container.querySelector('.on');
83
86
 
84
87
  expect(spy).toHaveBeenCalledTimes(1);
85
- expect(spy).toHaveBeenCalledWith(mockEvent, false);
86
- expect(offButton.hasClass('active')).toBe(true);
87
- expect(onButton.hasClass('active')).toBe(false);
88
+ expect(spy).toHaveBeenCalledWith(expect.any(Object), false);
89
+ expect(offDiv?.classList.contains('active')).toBe(true);
90
+ expect(onDiv?.classList.contains('active')).toBe(false);
88
91
  });
89
92
 
90
93
  it(`raises the onButtonClicked event with 'true' when the button is toggled 'ON' and adds the 'active' class`, () => {
91
- const spy = jest.fn();
94
+ const spy = vi.fn();
92
95
 
93
- const wrapper = mount(
96
+ const { container } = render(
94
97
  <ToggleButton name="test-name" onButtonClicked={spy} value={false} />,
95
98
  );
96
99
 
97
- const button = wrapper.find('button');
98
- let onButton = wrapper.find('div').last();
99
- let offButton = wrapper.find('div').first();
100
+ const button = container.querySelector('button') as HTMLButtonElement;
101
+ let onDiv = container.querySelector('.on');
102
+ let offDiv = container.querySelector('.off');
100
103
 
101
- expect(onButton.hasClass('active')).toBe(false);
104
+ expect(onDiv?.classList.contains('active')).toBe(false);
102
105
 
103
106
  act(() => {
104
- // @ts-expect-error no full event args
105
- button.prop('onClick')?.(mockEvent);
107
+ fireEvent.click(button);
106
108
  });
107
- wrapper.update();
108
109
 
109
- onButton = wrapper.find('.on');
110
- offButton = wrapper.find('.off');
110
+ onDiv = container.querySelector('.on');
111
+ offDiv = container.querySelector('.off');
111
112
 
112
113
  expect(spy).toHaveBeenCalledTimes(1);
113
- expect(spy).toHaveBeenCalledWith(mockEvent, true);
114
- expect(onButton.hasClass('active')).toBe(true);
115
- expect(offButton.hasClass('active')).toBe(false);
114
+ expect(spy).toHaveBeenCalledWith(expect.any(Object), true);
115
+ expect(onDiv?.classList.contains('active')).toBe(true);
116
+ expect(offDiv?.classList.contains('active')).toBe(false);
116
117
  });
117
118
 
118
119
  it('creates a class based off of the className prop', () => {
119
120
  const mockClassName = 'test-class';
120
- const wrapper = shallow(
121
+ const { container } = render(
121
122
  <ToggleButton name="test-name" className={mockClassName} />,
122
123
  );
123
124
 
124
- const container = wrapper.find('.container');
125
+ const containerDiv = container.querySelector('.container');
125
126
 
126
- expect(container.hasClass(mockClassName)).toBe(true);
127
+ expect(containerDiv?.classList.contains(mockClassName)).toBe(true);
127
128
  });
128
129
 
129
130
  it('accepts both height and width', () => {
130
131
  const mockHeight = '75px';
131
132
  const mockWidth = '95px';
132
- const wrapper = shallow(
133
+ const { container } = render(
133
134
  <ToggleButton name="test-name" height={mockHeight} width={mockWidth} />,
134
135
  );
135
136
 
136
- const container = wrapper
137
- .find('.toggle')
138
- .prop('style') as React.CSSProperties;
137
+ const toggle = container.querySelector('.toggle') as HTMLElement;
139
138
 
140
- expect(container.height).toBe(mockHeight);
141
- expect(container.width).toBe(mockWidth);
139
+ expect(toggle.style.height).toBe(mockHeight);
140
+ expect(toggle.style.width).toBe(mockWidth);
142
141
  });
143
142
 
144
143
  it('button is enabled by default', () => {
145
- const spy = jest.fn();
146
- const wrapper = shallow(
144
+ const spy = vi.fn();
145
+ const { container } = render(
147
146
  <ToggleButton name="test-name" onButtonClicked={spy} />,
148
147
  );
149
148
 
150
- const button = wrapper.find('button');
149
+ const button = container.querySelector('button') as HTMLButtonElement;
151
150
 
152
- button.simulate('click', { persist: () => jest.fn() });
153
- expect(button.prop('disabled')).toBe(false);
151
+ fireEvent.click(button);
152
+ expect(button.disabled).toBe(false);
154
153
 
155
154
  expect(spy).toHaveBeenCalledTimes(1);
156
155
  });
157
156
 
158
157
  it('button can be disabled', () => {
159
- const spy = jest.fn();
160
- const wrapper = mount(
158
+ const spy = vi.fn();
159
+ const { container } = render(
161
160
  <ToggleButton name="test-name" onButtonClicked={spy} disabled={true} />,
162
161
  );
163
162
 
164
- const button = wrapper.find('button');
165
- button.simulate('click');
163
+ const button = container.querySelector('button') as HTMLButtonElement;
164
+ fireEvent.click(button);
166
165
 
167
- expect(button.prop('disabled')).toBe(true);
166
+ expect(button.disabled).toBe(true);
168
167
  expect(spy).not.toHaveBeenCalled();
169
168
  });
170
169
 
171
170
  it(`button 'type' must be 'button' by default`, () => {
172
- const wrapper = shallow(<ToggleButton name="test-name" />);
171
+ const { container } = render(<ToggleButton name="test-name" />);
173
172
 
174
- const button = wrapper.find('button');
173
+ const button = container.querySelector('button') as HTMLButtonElement;
175
174
 
176
- expect(button.prop('type')).toBe('button');
175
+ expect(button.type).toBe('button');
177
176
  });
178
177
 
179
178
  it('accepts type html attribute and height style', () => {
180
179
  const mockType = 'submit';
181
180
  const mockHeight = '75px';
182
181
 
183
- const wrapper = shallow(<ToggleButton name="test-name" />);
182
+ const { container, rerender } = render(<ToggleButton name="test-name" />);
184
183
 
185
- let button = wrapper.find('button');
186
- expect(button.prop('style')?.height).toBeUndefined();
187
- expect(button.prop('type')).toBe('button');
184
+ let button = container.querySelector('button') as HTMLButtonElement;
185
+ expect(button.style.height).toBe('');
186
+ expect(button.type).toBe('button');
188
187
 
189
- wrapper.setProps({ type: mockType, height: mockHeight });
190
- wrapper.update();
188
+ rerender(
189
+ <ToggleButton name="test-name" type={mockType} height={mockHeight} />,
190
+ );
191
191
 
192
- button = wrapper.find('button');
193
- expect(button.prop('style')?.height).toBe(mockHeight);
194
- expect(button.prop('type')).toBe(mockType);
192
+ button = container.querySelector('button') as HTMLButtonElement;
193
+ expect(button.style.height).toBe(mockHeight);
194
+ expect(button.type).toBe(mockType);
195
195
  });
196
196
 
197
197
  it(`renders 'OFF' text by default when button is not selected`, () => {
198
- const wrapper = shallow(<ToggleButton name="test-name" />);
198
+ const { container } = render(<ToggleButton name="test-name" />);
199
199
 
200
- const offText = wrapper.find('.svgText');
200
+ const offText = container.querySelectorAll('.svgText');
201
201
 
202
- expect(offText.exists()).toBe(true);
203
- expect(offText).toHaveLength(1);
202
+ expect(offText.length).toBeGreaterThan(0);
204
203
  });
205
204
 
206
205
  it(`does not render 'OFF' text if 'showONOFFText' is false`, () => {
207
- const wrapper = shallow(
206
+ const { container } = render(
208
207
  <ToggleButton name="test-name" showONOFFText={false} />,
209
208
  );
210
209
 
211
- const offText = wrapper.find('.svgText');
210
+ const offText = container.querySelector('.svgText');
212
211
 
213
- expect(offText.exists()).toBe(false);
212
+ expect(offText).not.toBeInTheDocument();
214
213
  });
215
214
 
216
215
  it(`renders 'ON' text by default when button is selected`, () => {
217
- const wrapper = shallow(<ToggleButton name="test-name" />);
216
+ const { container } = render(<ToggleButton name="test-name" />);
218
217
 
219
- const onText = wrapper.find('.svgText');
218
+ const onText = container.querySelectorAll('.svgText');
220
219
 
221
- expect(onText.exists()).toBe(true);
222
- expect(onText).toHaveLength(1);
220
+ expect(onText.length).toBeGreaterThan(0);
223
221
  });
224
222
 
225
223
  it(`does not render 'ON' text if 'showONOFFText' is false`, () => {
226
- const wrapper = shallow(
224
+ const { container } = render(
227
225
  <ToggleButton name="test-name" showONOFFText={false} />,
228
226
  );
229
227
 
230
- const onText = wrapper.find('.svgText');
228
+ const onText = container.querySelector('.svgText');
231
229
 
232
- expect(onText.exists()).toBe(false);
230
+ expect(onText).not.toBeInTheDocument();
233
231
  });
234
232
 
235
233
  describe('Confirmation', () => {
236
234
  it(`'Advanced' mode changes the background color when clicked for the first time`, () => {
237
- const wrapper = shallow(
235
+ const { container } = render(
238
236
  <ToggleButton name="test-name" confirmationMode="Advanced" />,
239
237
  );
240
238
 
241
- let button = wrapper.find('button');
239
+ let button = container.querySelector('button') as HTMLButtonElement;
242
240
 
243
- expect(button.hasClass('hasConfirm')).toBe(false);
241
+ expect(button.classList.contains('hasConfirm')).toBe(false);
244
242
 
245
243
  act(() => {
246
- button.simulate('click', { persist: () => jest.fn() });
244
+ fireEvent.click(button);
247
245
  });
248
- wrapper.update();
249
246
 
250
- button = wrapper.find('button');
247
+ button = container.querySelector('button') as HTMLButtonElement;
251
248
 
252
- expect(button.hasClass('hasConfirm')).toBe(true);
249
+ expect(button.classList.contains('hasConfirm')).toBe(true);
253
250
  });
254
251
 
255
- it(`'Advanced' mode renders a confirmation pop up, raises the 'onButtonClicked' event after the 'Confirm' button is clicked, and finally dismisses the confirmation pop up`, () => {
256
- const spy = jest.fn();
252
+ it(`'Advanced' mode renders a confirmation pop up, raises the 'onButtonClicked' event after the 'Confirm' button is clicked, and finally dismisses the confirmation pop up`, async () => {
253
+ const spy = vi.fn();
257
254
 
258
- const wrapper = mount(
255
+ const { container } = render(
259
256
  <ToggleButton
260
257
  name="test-name"
261
258
  confirmationMode="Advanced"
@@ -263,42 +260,50 @@ describe('Button', () => {
263
260
  />,
264
261
  );
265
262
 
266
- let toggle = wrapper.find('button');
267
- let confirmation = wrapper.find(ConfirmDialog);
263
+ let toggle = container.querySelector('button') as HTMLButtonElement;
264
+ let confirmation = document.querySelector('.confirm-dialog-container');
268
265
 
269
- expect(confirmation.exists()).toBe(false);
266
+ expect(confirmation).not.toBeInTheDocument();
270
267
 
271
268
  act(() => {
272
- // @ts-expect-error no full event args
273
- toggle.prop('onClick')?.(mockEvent);
269
+ fireEvent.click(toggle);
274
270
  });
275
- wrapper.update();
276
-
277
- confirmation = wrapper.find(ConfirmDialog);
278
271
 
279
- expect(confirmation.exists()).toBe(true);
272
+ await waitFor(() => {
273
+ confirmation = document.querySelector('.confirm-dialog-container');
274
+ expect(confirmation).toBeInTheDocument();
275
+ });
280
276
 
281
- const confirmButton = wrapper.find('button').last();
277
+ const confirmButton = document.querySelector(
278
+ '[data-test-id="confirm"]',
279
+ ) as HTMLButtonElement;
282
280
 
283
281
  act(() => {
284
- // @ts-expect-error no full event args
285
- confirmButton.prop('onClick')?.(mockEvent);
282
+ fireEvent.click(confirmButton);
286
283
  });
287
- wrapper.update();
288
284
 
289
- toggle = wrapper.find('button');
290
- confirmation = wrapper.find(ConfirmDialog);
285
+ await waitFor(() => {
286
+ expect(spy).toHaveBeenCalledTimes(1);
287
+ expect(spy).toHaveBeenCalledWith(expect.any(Object), true);
288
+ });
291
289
 
292
- expect(toggle.hasClass('hasConfirm')).toBe(false);
293
- expect(confirmation.exists()).toBe(false);
294
- expect(spy).toHaveBeenCalledTimes(1);
295
- expect(spy).toHaveBeenCalledWith(mockEvent, true);
290
+ toggle = container.querySelector('button') as HTMLButtonElement;
291
+
292
+ await waitFor(
293
+ () => {
294
+ confirmation = document.querySelector('.confirm-dialog-container');
295
+ expect(confirmation).not.toBeInTheDocument();
296
+ },
297
+ { timeout: 1000 },
298
+ );
299
+
300
+ expect(toggle.classList.contains('hasConfirm')).toBe(false);
296
301
  });
297
302
 
298
- it(`'Advanced' mode renders a confirmation pop up, does not raise the 'onButtonClicked' event after the 'Cancel' button is clicked, and finally dismisses the confirmation pop up`, () => {
299
- const spy = jest.fn();
303
+ it(`'Advanced' mode renders a confirmation pop up, does not raise the 'onButtonClicked' event after the 'Cancel' button is clicked, and finally dismisses the confirmation pop up`, async () => {
304
+ const spy = vi.fn();
300
305
 
301
- const wrapper = mount(
306
+ const { container } = render(
302
307
  <ToggleButton
303
308
  name="test-name"
304
309
  confirmationMode="Advanced"
@@ -306,41 +311,48 @@ describe('Button', () => {
306
311
  />,
307
312
  );
308
313
 
309
- let toggle = wrapper.find('button');
310
- let confirmation = wrapper.find(ConfirmDialog);
314
+ let toggle = container.querySelector('button') as HTMLButtonElement;
315
+ let confirmation = document.querySelector('.confirm-dialog-container');
311
316
 
312
- expect(confirmation.exists()).toBe(false);
317
+ expect(confirmation).not.toBeInTheDocument();
313
318
 
314
319
  act(() => {
315
- // @ts-expect-error no full event args
316
- toggle.prop('onClick')?.(mockEvent);
320
+ fireEvent.click(toggle);
317
321
  });
318
- wrapper.update();
319
322
 
320
- confirmation = wrapper.find(ConfirmDialog);
321
-
322
- expect(confirmation.exists()).toBe(true);
323
+ await waitFor(() => {
324
+ confirmation = document.querySelector('.confirm-dialog-container');
325
+ expect(confirmation).toBeInTheDocument();
326
+ });
323
327
 
324
- const cancelButton = wrapper.find('button').at(1);
328
+ const cancelButton = document.querySelector(
329
+ '[data-test-id="cancel"]',
330
+ ) as HTMLButtonElement;
325
331
 
326
332
  act(() => {
327
- // @ts-expect-error no full event args
328
- cancelButton.prop('onClick')?.(mockEvent);
333
+ fireEvent.click(cancelButton);
334
+ });
335
+
336
+ await waitFor(() => {
337
+ expect(spy).not.toHaveBeenCalled();
329
338
  });
330
- wrapper.update();
331
339
 
332
- toggle = wrapper.find('button');
333
- confirmation = wrapper.find(ConfirmDialog);
340
+ toggle = container.querySelector('button') as HTMLButtonElement;
341
+
342
+ await waitFor(
343
+ () => {
344
+ confirmation = document.querySelector('.confirm-dialog-container');
345
+ expect(confirmation).not.toBeInTheDocument();
346
+ },
347
+ { timeout: 1000 },
348
+ );
334
349
 
335
- expect(toggle.hasClass('hasConfirm')).toBe(false);
336
- expect(confirmation.exists()).toBe(false);
337
- expect(confirmation.exists()).toBe(false);
338
- expect(spy).not.toHaveBeenCalled();
350
+ expect(toggle.classList.contains('hasConfirm')).toBe(false);
339
351
  });
340
352
 
341
353
  it(`emits 'onConfirmOpen' if set`, async () => {
342
- const spy = jest.fn();
343
- const wrapper = mount(
354
+ const spy = vi.fn();
355
+ const { container } = render(
344
356
  <ToggleButton
345
357
  name="test-name"
346
358
  confirmationMode="Advanced"
@@ -348,23 +360,34 @@ describe('Button', () => {
348
360
  />,
349
361
  );
350
362
 
351
- const button = wrapper.find('button');
363
+ const button = container.querySelector('button') as HTMLButtonElement;
352
364
 
353
- await act(async () => {
354
- await button.simulate('click', { persist: () => jest.fn() });
365
+ act(() => {
366
+ fireEvent.click(button);
355
367
  });
356
- wrapper.update();
357
368
 
358
- const cancelButton = wrapper.find('button').at(2);
359
-
360
- await act(async () => {
361
- // @ts-expect-error no full event args
362
- await cancelButton.prop('onClick')?.(mockEvent);
369
+ await waitFor(() => {
370
+ const confirmation = document.querySelector(
371
+ '.confirm-dialog-container',
372
+ );
373
+ expect(confirmation).toBeInTheDocument();
363
374
  });
364
- wrapper.update();
365
375
 
366
- expect(spy).toHaveBeenCalledTimes(2);
376
+ expect(spy).toHaveBeenCalledTimes(1);
367
377
  expect(spy).toHaveBeenNthCalledWith(1, true);
378
+
379
+ const cancelButton = document.querySelector(
380
+ '[data-test-id="cancel"]',
381
+ ) as HTMLButtonElement;
382
+
383
+ act(() => {
384
+ fireEvent.click(cancelButton);
385
+ });
386
+
387
+ await waitFor(() => {
388
+ expect(spy).toHaveBeenCalledTimes(2);
389
+ });
390
+
368
391
  expect(spy).toHaveBeenNthCalledWith(2, false);
369
392
  });
370
393
  });
@@ -22,6 +22,7 @@ export {
22
22
  export { FileUploadField } from './FileUploadControl/FileUploadField';
23
23
  export * from './Form.models';
24
24
  export { FormElementContainer } from './FormElementContainer';
25
+ export { FormGroup, FormGroupProps } from './FormGroup/FormGroup';
25
26
  export {
26
27
  FormGroupTitle,
27
28
  FormGroupTitleProps,