@onewelcome/react-lib-components 1.4.0 → 1.6.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 (101) hide show
  1. package/README.md +7 -0
  2. package/dist/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  3. package/dist/Button/Button.d.ts +0 -1
  4. package/dist/ContextMenu/ContextMenu.d.ts +4 -1
  5. package/dist/DataGrid/DataGridActions/DataGridColumnsToggle.d.ts +1 -1
  6. package/dist/DataGrid/datagrid.interfaces.d.ts +5 -4
  7. package/dist/Form/Checkbox/Checkbox.d.ts +1 -1
  8. package/dist/Form/FormControl/FormControl.d.ts +1 -1
  9. package/dist/Form/FormHelperText/FormHelperText.d.ts +1 -1
  10. package/dist/Form/FormSelectorWrapper/FormSelectorWrapper.d.ts +1 -1
  11. package/dist/Form/Input/Input.d.ts +2 -2
  12. package/dist/Form/Radio/Radio.d.ts +1 -1
  13. package/dist/Form/Select/Select.d.ts +2 -2
  14. package/dist/Form/Select/Select.interfaces.d.ts +1 -1
  15. package/dist/Form/Textarea/Textarea.d.ts +1 -6
  16. package/dist/Form/Toggle/Toggle.d.ts +1 -1
  17. package/dist/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
  18. package/dist/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
  19. package/dist/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
  20. package/dist/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -1
  21. package/dist/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +1 -1
  22. package/dist/Form/form.interfaces.d.ts +1 -0
  23. package/dist/Icon/Icon.d.ts +1 -1
  24. package/dist/Link/Link.d.ts +2 -3
  25. package/dist/Notifications/Banner/Banner.d.ts +11 -0
  26. package/dist/Notifications/Snackbar/interfaces.d.ts +2 -2
  27. package/dist/Pagination/Pagination.d.ts +3 -3
  28. package/dist/Popover/Popover.d.ts +3 -1
  29. package/dist/Tabs/TabButton.d.ts +0 -1
  30. package/dist/Typography/Typography.d.ts +2 -2
  31. package/dist/Wizard/Wizard.d.ts +1 -1
  32. package/dist/Wizard/wizardStateReducer.d.ts +2 -2
  33. package/dist/_BaseStyling_/BaseStyling.d.ts +4 -0
  34. package/dist/hooks/useDetermineStatusIcon.d.ts +3 -0
  35. package/dist/hooks/usePosition.d.ts +6 -5
  36. package/dist/hooks/useSpacing.d.ts +3 -3
  37. package/dist/index.d.ts +1 -0
  38. package/dist/interfaces.d.ts +1 -1
  39. package/dist/react-lib-components.cjs.development.js +483 -363
  40. package/dist/react-lib-components.cjs.development.js.map +1 -1
  41. package/dist/react-lib-components.cjs.production.min.js +1 -1
  42. package/dist/react-lib-components.cjs.production.min.js.map +1 -1
  43. package/dist/react-lib-components.esm.js +484 -365
  44. package/dist/react-lib-components.esm.js.map +1 -1
  45. package/dist/util/helper.d.ts +1 -1
  46. package/package.json +39 -38
  47. package/src/Button/BaseButton.module.scss +2 -2
  48. package/src/Button/Button.module.scss +4 -5
  49. package/src/Button/Button.tsx +0 -1
  50. package/src/Button/IconButton.module.scss +4 -5
  51. package/src/ContextMenu/ContextMenu.tsx +18 -7
  52. package/src/DataGrid/DataGrid.tsx +3 -2
  53. package/src/DataGrid/DataGridActions/DataGridActions.tsx +16 -9
  54. package/src/DataGrid/DataGridBody/DataGridCell.module.scss +2 -2
  55. package/src/DataGrid/DataGridHeader/DataGridHeader.test.tsx +8 -3
  56. package/src/DataGrid/DataGridHeader/DataGridHeader.tsx +3 -1
  57. package/src/DataGrid/datagrid.interfaces.ts +1 -0
  58. package/src/Form/Input/Input.module.scss +36 -25
  59. package/src/Form/Input/Input.test.tsx +22 -0
  60. package/src/Form/Input/Input.tsx +8 -5
  61. package/src/Form/Select/Select.module.scss +9 -6
  62. package/src/Form/Select/Select.test.tsx +11 -0
  63. package/src/Form/Select/Select.tsx +5 -9
  64. package/src/Form/Select/SelectService.ts +2 -2
  65. package/src/Form/Textarea/Textarea.module.scss +21 -13
  66. package/src/Form/Textarea/Textarea.test.tsx +8 -0
  67. package/src/Form/Textarea/Textarea.tsx +6 -12
  68. package/src/Form/Toggle/Toggle.module.scss +3 -3
  69. package/src/Form/Wrapper/InputWrapper/InputWrapper.module.scss +7 -3
  70. package/src/Form/Wrapper/InputWrapper/InputWrapper.tsx +2 -0
  71. package/src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +12 -1
  72. package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss +15 -14
  73. package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx +2 -1
  74. package/src/Form/Wrapper/Wrapper/Wrapper.module.scss +2 -2
  75. package/src/Form/form.interfaces.ts +1 -0
  76. package/src/Link/Link.module.scss +5 -5
  77. package/src/Link/Link.tsx +14 -13
  78. package/src/Notifications/Banner/Banner.module.scss +76 -0
  79. package/src/Notifications/Banner/Banner.test.tsx +84 -0
  80. package/src/Notifications/Banner/Banner.tsx +78 -0
  81. package/src/Notifications/BaseModal/BaseModal.module.scss +2 -2
  82. package/src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.module.scss +2 -2
  83. package/src/Notifications/Snackbar/SnackbarItem/SnackbarItem.module.scss +4 -4
  84. package/src/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx +3 -2
  85. package/src/Popover/Popover.module.scss +2 -2
  86. package/src/Popover/Popover.test.tsx +4 -1
  87. package/src/Popover/Popover.tsx +40 -8
  88. package/src/Skeleton/Skeleton.module.scss +2 -2
  89. package/src/Tabs/TabButton.tsx +1 -2
  90. package/src/Tabs/Tabs.module.scss +2 -2
  91. package/src/Tabs/Tabs.tsx +13 -10
  92. package/src/Tiles/Tile.module.scss +4 -4
  93. package/src/Tooltip/Tooltip.module.scss +3 -3
  94. package/src/Tooltip/Tooltip.test.tsx +5 -5
  95. package/src/_BaseStyling_/BaseStyling.tsx +8 -0
  96. package/src/hooks/useDetermineStatusIcon.test.ts +28 -0
  97. package/src/hooks/useDetermineStatusIcon.tsx +35 -0
  98. package/src/hooks/usePosition.test.tsx +85 -85
  99. package/src/hooks/usePosition.ts +6 -3
  100. package/src/index.ts +1 -0
  101. package/src/mixins.module.scss +5 -5
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import React, { Fragment, useRef } from "react";
18
- import { render } from "@testing-library/react";
18
+ import { render, waitFor } from "@testing-library/react";
19
19
  import { ConfigObject, usePosition } from "./usePosition";
20
20
  import userEvent from "@testing-library/user-event";
21
21
 
@@ -100,411 +100,411 @@ const createUsePositionComponent = (
100
100
  };
101
101
 
102
102
  describe("returns proper values for default transformOrigin", () => {
103
- it("returns the correct values for left top placement", () => {
103
+ it("returns the correct values for left top placement", async () => {
104
104
  const { popover } = createUsePositionComponent();
105
105
 
106
- expect(popover).toHaveStyle({ top: "250px", left: "250px" });
106
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", left: "250px" }));
107
107
  });
108
108
 
109
- it("returns the correct values for left bottom placement", () => {
109
+ it("returns the correct values for left bottom placement", async () => {
110
110
  const { popover } = createUsePositionComponent(defaultParams => ({
111
111
  ...defaultParams,
112
112
  placement: { horizontal: "left", vertical: "bottom" }
113
113
  }));
114
114
 
115
- expect(popover).toHaveStyle({ top: "750px", left: "250px" });
115
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", left: "250px" }));
116
116
  });
117
117
 
118
- it("returns the correct values for left center placement", () => {
118
+ it("returns the correct values for left center placement", async () => {
119
119
  const { popover } = createUsePositionComponent(defaultParams => ({
120
120
  ...defaultParams,
121
121
  placement: { horizontal: "left", vertical: "center" }
122
122
  }));
123
123
 
124
- expect(popover).toHaveStyle({ top: "500px", left: "250px" });
124
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", left: "250px" }));
125
125
  });
126
126
 
127
- it("returns the correct values for center top placement", () => {
127
+ it("returns the correct values for center top placement", async () => {
128
128
  const { popover } = createUsePositionComponent(defaultParams => ({
129
129
  ...defaultParams,
130
130
  placement: { horizontal: "center", vertical: "top" }
131
131
  }));
132
132
 
133
- expect(popover).toHaveStyle({ top: "250px", left: "500px" });
133
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", left: "500px" }));
134
134
  });
135
135
 
136
- it("returns the correct values for center center placement", () => {
136
+ it("returns the correct values for center center placement", async () => {
137
137
  const { popover } = createUsePositionComponent(defaultParams => ({
138
138
  ...defaultParams,
139
139
  placement: { horizontal: "center", vertical: "center" }
140
140
  }));
141
141
 
142
- expect(popover).toHaveStyle({ top: "500px", left: "500px" });
142
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", left: "500px" }));
143
143
  });
144
144
 
145
- it("returns the correct values for center bottom placement", () => {
145
+ it("returns the correct values for center bottom placement", async () => {
146
146
  const { popover } = createUsePositionComponent(defaultParams => ({
147
147
  ...defaultParams,
148
148
  placement: { horizontal: "center", vertical: "bottom" }
149
149
  }));
150
150
 
151
- expect(popover).toHaveStyle({ top: "750px", left: "500px" });
151
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", left: "500px" }));
152
152
  });
153
153
 
154
- it("returns the correct values for right top placement", () => {
154
+ it("returns the correct values for right top placement", async () => {
155
155
  const { popover } = createUsePositionComponent(defaultParams => ({
156
156
  ...defaultParams,
157
157
  placement: { horizontal: "right", vertical: "top" }
158
158
  }));
159
159
 
160
- expect(popover).toHaveStyle({ top: "250px", left: "750px" });
160
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", left: "750px" }));
161
161
  });
162
162
 
163
- it("returns the correct values for right center placement", () => {
163
+ it("returns the correct values for right center placement", async () => {
164
164
  const { popover } = createUsePositionComponent(defaultParams => ({
165
165
  ...defaultParams,
166
166
  placement: { horizontal: "right", vertical: "center" }
167
167
  }));
168
168
 
169
- expect(popover).toHaveStyle({ top: "500px", left: "750px" });
169
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", left: "750px" }));
170
170
  });
171
171
 
172
- it("returns the correct values for right bottom placement", () => {
172
+ it("returns the correct values for right bottom placement", async () => {
173
173
  const { popover } = createUsePositionComponent(defaultParams => ({
174
174
  ...defaultParams,
175
175
  placement: { horizontal: "right", vertical: "bottom" }
176
176
  }));
177
177
 
178
- expect(popover).toHaveStyle({ top: "750px", left: "750px" });
178
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", left: "750px" }));
179
179
  });
180
180
  });
181
181
 
182
182
  describe("it returns proper values for centered transformOrigin", () => {
183
- it("returns the correct values for left top placement", () => {
183
+ it("returns the correct values for left top placement", async () => {
184
184
  const { popover } = createUsePositionComponent(defaultParams => ({
185
185
  ...defaultParams,
186
186
  transformOrigin: { horizontal: "center", vertical: "center" }
187
187
  }));
188
188
 
189
- expect(popover).toHaveStyle({ top: "200px", left: "200px" });
189
+ await waitFor(() => expect(popover).toHaveStyle({ top: "200px", left: "200px" }));
190
190
  });
191
191
 
192
- it("returns the correct values for left bottom placement", () => {
192
+ it("returns the correct values for left bottom placement", async () => {
193
193
  const { popover } = createUsePositionComponent(defaultParams => ({
194
194
  ...defaultParams,
195
195
  placement: { horizontal: "left", vertical: "bottom" },
196
196
  transformOrigin: { horizontal: "center", vertical: "center" }
197
197
  }));
198
198
 
199
- expect(popover).toHaveStyle({ top: "700px", left: "200px" });
199
+ await waitFor(() => expect(popover).toHaveStyle({ top: "700px", left: "200px" }));
200
200
  });
201
201
 
202
- it("returns the correct values for left center placement", () => {
202
+ it("returns the correct values for left center placement", async () => {
203
203
  const { popover } = createUsePositionComponent(defaultParams => ({
204
204
  ...defaultParams,
205
205
  placement: { horizontal: "left", vertical: "center" },
206
206
  transformOrigin: { horizontal: "center", vertical: "center" }
207
207
  }));
208
208
 
209
- expect(popover).toHaveStyle({ top: "450px", left: "200px" });
209
+ await waitFor(() => expect(popover).toHaveStyle({ top: "450px", left: "200px" }));
210
210
  });
211
211
 
212
- it("returns the correct values for center top placement", () => {
212
+ it("returns the correct values for center top placement", async () => {
213
213
  const { popover } = createUsePositionComponent(defaultParams => ({
214
214
  ...defaultParams,
215
215
  placement: { horizontal: "center", vertical: "top" },
216
216
  transformOrigin: { horizontal: "center", vertical: "center" }
217
217
  }));
218
218
 
219
- expect(popover).toHaveStyle({ top: "200px", left: "450px" });
219
+ await waitFor(() => expect(popover).toHaveStyle({ top: "200px", left: "450px" }));
220
220
  });
221
221
 
222
- it("returns the correct values for center center placement", () => {
222
+ it("returns the correct values for center center placement", async () => {
223
223
  const { popover } = createUsePositionComponent(defaultParams => ({
224
224
  ...defaultParams,
225
225
  placement: { horizontal: "center", vertical: "center" },
226
226
  transformOrigin: { horizontal: "center", vertical: "center" }
227
227
  }));
228
228
 
229
- expect(popover).toHaveStyle({ top: "450px", left: "450px" });
229
+ await waitFor(() => expect(popover).toHaveStyle({ top: "450px", left: "450px" }));
230
230
  });
231
231
 
232
- it("returns the correct values for center bottom placement", () => {
232
+ it("returns the correct values for center bottom placement", async () => {
233
233
  const { popover } = createUsePositionComponent(defaultParams => ({
234
234
  ...defaultParams,
235
235
  placement: { horizontal: "center", vertical: "bottom" },
236
236
  transformOrigin: { horizontal: "center", vertical: "center" }
237
237
  }));
238
238
 
239
- expect(popover).toHaveStyle({ top: "700px", left: "450px" });
239
+ await waitFor(() => expect(popover).toHaveStyle({ top: "700px", left: "450px" }));
240
240
  });
241
241
 
242
- it("returns the correct values for right top placement", () => {
242
+ it("returns the correct values for right top placement", async () => {
243
243
  const { popover } = createUsePositionComponent(defaultParams => ({
244
244
  ...defaultParams,
245
245
  placement: { horizontal: "right", vertical: "top" },
246
246
  transformOrigin: { horizontal: "center", vertical: "center" }
247
247
  }));
248
248
 
249
- expect(popover).toHaveStyle({ top: "200px", left: "700px" });
249
+ await waitFor(() => expect(popover).toHaveStyle({ top: "200px", left: "700px" }));
250
250
  });
251
251
 
252
- it("returns the correct values for right center placement", () => {
252
+ it("returns the correct values for right center placement", async () => {
253
253
  const { popover } = createUsePositionComponent(defaultParams => ({
254
254
  ...defaultParams,
255
255
  placement: { horizontal: "right", vertical: "center" },
256
256
  transformOrigin: { horizontal: "center", vertical: "center" }
257
257
  }));
258
258
 
259
- expect(popover).toHaveStyle({ top: "450px", left: "700px" });
259
+ await waitFor(() => expect(popover).toHaveStyle({ top: "450px", left: "700px" }));
260
260
  });
261
261
 
262
- it("returns the correct values for right bottom placement", () => {
262
+ it("returns the correct values for right bottom placement", async () => {
263
263
  const { popover } = createUsePositionComponent(defaultParams => ({
264
264
  ...defaultParams,
265
265
  placement: { horizontal: "right", vertical: "bottom" },
266
266
  transformOrigin: { horizontal: "center", vertical: "center" }
267
267
  }));
268
268
 
269
- expect(popover).toHaveStyle({ top: "700px", left: "700px" });
269
+ await waitFor(() => expect(popover).toHaveStyle({ top: "700px", left: "700px" }));
270
270
  });
271
271
  });
272
272
 
273
273
  describe("it returns proper values for right top transformOrigin", () => {
274
- it("returns the correct values for left top placement", () => {
274
+ it("returns the correct values for left top placement", async () => {
275
275
  const { popover } = createUsePositionComponent(defaultParams => ({
276
276
  ...defaultParams,
277
277
  transformOrigin: { horizontal: "right", vertical: "top" }
278
278
  }));
279
279
 
280
- expect(popover).toHaveStyle({ top: "250px", right: "750px" });
280
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", right: "750px" }));
281
281
  });
282
282
 
283
- it("returns the correct values for left bottom placement", () => {
283
+ it("returns the correct values for left bottom placement", async () => {
284
284
  const { popover } = createUsePositionComponent(defaultParams => ({
285
285
  ...defaultParams,
286
286
  placement: { horizontal: "left", vertical: "bottom" },
287
287
  transformOrigin: { horizontal: "right", vertical: "top" }
288
288
  }));
289
289
 
290
- expect(popover).toHaveStyle({ top: "750px", right: "750px" });
290
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", right: "750px" }));
291
291
  });
292
292
 
293
- it("returns the correct values for left center placement", () => {
293
+ it("returns the correct values for left center placement", async () => {
294
294
  const { popover } = createUsePositionComponent(defaultParams => ({
295
295
  ...defaultParams,
296
296
  placement: { horizontal: "left", vertical: "center" },
297
297
  transformOrigin: { horizontal: "right", vertical: "top" }
298
298
  }));
299
299
 
300
- expect(popover).toHaveStyle({ top: "500px", right: "750px" });
300
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", right: "750px" }));
301
301
  });
302
302
 
303
- it("returns the correct values for center top placement", () => {
303
+ it("returns the correct values for center top placement", async () => {
304
304
  const { popover } = createUsePositionComponent(defaultParams => ({
305
305
  ...defaultParams,
306
306
  placement: { horizontal: "center", vertical: "top" },
307
307
  transformOrigin: { horizontal: "right", vertical: "top" }
308
308
  }));
309
309
 
310
- expect(popover).toHaveStyle({ top: "250px", right: "500px" });
310
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", right: "500px" }));
311
311
  });
312
312
 
313
- it("returns the correct values for center center placement", () => {
313
+ it("returns the correct values for center center placement", async () => {
314
314
  const { popover } = createUsePositionComponent(defaultParams => ({
315
315
  ...defaultParams,
316
316
  placement: { horizontal: "center", vertical: "center" },
317
317
  transformOrigin: { horizontal: "right", vertical: "top" }
318
318
  }));
319
319
 
320
- expect(popover).toHaveStyle({ top: "500px", right: "500px" });
320
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", right: "500px" }));
321
321
  });
322
322
 
323
- it("returns the correct values for center bottom placement", () => {
323
+ it("returns the correct values for center bottom placement", async () => {
324
324
  const { popover } = createUsePositionComponent(defaultParams => ({
325
325
  ...defaultParams,
326
326
  placement: { horizontal: "center", vertical: "bottom" },
327
327
  transformOrigin: { horizontal: "right", vertical: "top" }
328
328
  }));
329
329
 
330
- expect(popover).toHaveStyle({ top: "750px", right: "500px" });
330
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", right: "500px" }));
331
331
  });
332
332
 
333
- it("returns the correct values for right top placement", () => {
333
+ it("returns the correct values for right top placement", async () => {
334
334
  const { popover } = createUsePositionComponent(defaultParams => ({
335
335
  ...defaultParams,
336
336
  placement: { horizontal: "right", vertical: "top" },
337
337
  transformOrigin: { horizontal: "right", vertical: "top" }
338
338
  }));
339
339
 
340
- expect(popover).toHaveStyle({ top: "250px", right: "250px" });
340
+ await waitFor(() => expect(popover).toHaveStyle({ top: "250px", right: "250px" }));
341
341
  });
342
342
 
343
- it("returns the correct values for right center placement", () => {
343
+ it("returns the correct values for right center placement", async () => {
344
344
  const { popover } = createUsePositionComponent(defaultParams => ({
345
345
  ...defaultParams,
346
346
  placement: { horizontal: "right", vertical: "center" },
347
347
  transformOrigin: { horizontal: "right", vertical: "top" }
348
348
  }));
349
349
 
350
- expect(popover).toHaveStyle({ top: "500px", right: "250px" });
350
+ await waitFor(() => expect(popover).toHaveStyle({ top: "500px", right: "250px" }));
351
351
  });
352
352
 
353
- it("returns the correct values for right bottom placement", () => {
353
+ it("returns the correct values for right bottom placement", async () => {
354
354
  const { popover } = createUsePositionComponent(defaultParams => ({
355
355
  ...defaultParams,
356
356
  placement: { horizontal: "right", vertical: "bottom" },
357
357
  transformOrigin: { horizontal: "right", vertical: "top" }
358
358
  }));
359
359
 
360
- expect(popover).toHaveStyle({ top: "750px", right: "250px" });
360
+ await waitFor(() => expect(popover).toHaveStyle({ top: "750px", right: "250px" }));
361
361
  });
362
362
  });
363
363
 
364
364
  describe("it returns proper values for left bottom transformOrigin", () => {
365
- it("returns the correct values for left top placement", () => {
365
+ it("returns the correct values for left top placement", async () => {
366
366
  const { popover } = createUsePositionComponent(defaultParams => ({
367
367
  ...defaultParams,
368
368
  transformOrigin: { horizontal: "left", vertical: "bottom" }
369
369
  }));
370
370
 
371
- expect(popover).toHaveStyle({ bottom: "750px", left: "250px" });
371
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "750px", left: "250px" }));
372
372
  });
373
373
 
374
- it("returns the correct values for left bottom placement", () => {
374
+ it("returns the correct values for left bottom placement", async () => {
375
375
  const { popover } = createUsePositionComponent(defaultParams => ({
376
376
  ...defaultParams,
377
377
  placement: { horizontal: "left", vertical: "bottom" },
378
378
  transformOrigin: { horizontal: "left", vertical: "bottom" }
379
379
  }));
380
380
 
381
- expect(popover).toHaveStyle({ bottom: "250px", left: "250px" });
381
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "250px", left: "250px" }));
382
382
  });
383
383
 
384
- it("returns the correct values for left center placement", () => {
384
+ it("returns the correct values for left center placement", async () => {
385
385
  const { popover } = createUsePositionComponent(defaultParams => ({
386
386
  ...defaultParams,
387
387
  placement: { horizontal: "left", vertical: "center" },
388
388
  transformOrigin: { horizontal: "left", vertical: "bottom" }
389
389
  }));
390
390
 
391
- expect(popover).toHaveStyle({ bottom: "500px", left: "250px" });
391
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "500px", left: "250px" }));
392
392
  });
393
393
 
394
- it("returns the correct values for center top placement", () => {
394
+ it("returns the correct values for center top placement", async () => {
395
395
  const { popover } = createUsePositionComponent(defaultParams => ({
396
396
  ...defaultParams,
397
397
  placement: { horizontal: "center", vertical: "top" },
398
398
  transformOrigin: { horizontal: "left", vertical: "bottom" }
399
399
  }));
400
400
 
401
- expect(popover).toHaveStyle({ bottom: "750px", left: "500px" });
401
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "750px", left: "500px" }));
402
402
  });
403
403
 
404
- it("returns the correct values for center center placement", () => {
404
+ it("returns the correct values for center center placement", async () => {
405
405
  const { popover } = createUsePositionComponent(defaultParams => ({
406
406
  ...defaultParams,
407
407
  placement: { horizontal: "center", vertical: "center" },
408
408
  transformOrigin: { horizontal: "left", vertical: "bottom" }
409
409
  }));
410
410
 
411
- expect(popover).toHaveStyle({ bottom: "500px", left: "500px" });
411
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "500px", left: "500px" }));
412
412
  });
413
413
 
414
- it("returns the correct values for center bottom placement", () => {
414
+ it("returns the correct values for center bottom placement", async () => {
415
415
  const { popover } = createUsePositionComponent(defaultParams => ({
416
416
  ...defaultParams,
417
417
  placement: { horizontal: "center", vertical: "bottom" },
418
418
  transformOrigin: { horizontal: "left", vertical: "bottom" }
419
419
  }));
420
420
 
421
- expect(popover).toHaveStyle({ bottom: "250px", left: "500px" });
421
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "250px", left: "500px" }));
422
422
  });
423
423
 
424
- it("returns the correct values for right top placement", () => {
424
+ it("returns the correct values for right top placement", async () => {
425
425
  const { popover } = createUsePositionComponent(defaultParams => ({
426
426
  ...defaultParams,
427
427
  placement: { horizontal: "right", vertical: "top" },
428
428
  transformOrigin: { horizontal: "left", vertical: "bottom" }
429
429
  }));
430
430
 
431
- expect(popover).toHaveStyle({ bottom: "750px", left: "750px" });
431
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "750px", left: "750px" }));
432
432
  });
433
433
 
434
- it("returns the correct values for right center placement", () => {
434
+ it("returns the correct values for right center placement", async () => {
435
435
  const { popover } = createUsePositionComponent(defaultParams => ({
436
436
  ...defaultParams,
437
437
  placement: { horizontal: "right", vertical: "center" },
438
438
  transformOrigin: { horizontal: "left", vertical: "bottom" }
439
439
  }));
440
440
 
441
- expect(popover).toHaveStyle({ bottom: "500px", left: "750px" });
441
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "500px", left: "750px" }));
442
442
  });
443
443
 
444
- it("returns the correct values for right bottom placement", () => {
444
+ it("returns the correct values for right bottom placement", async () => {
445
445
  const { popover } = createUsePositionComponent(defaultParams => ({
446
446
  ...defaultParams,
447
447
  placement: { horizontal: "right", vertical: "bottom" },
448
448
  transformOrigin: { horizontal: "left", vertical: "bottom" }
449
449
  }));
450
450
 
451
- expect(popover).toHaveStyle({ bottom: "250px", left: "750px" });
451
+ await waitFor(() => expect(popover).toHaveStyle({ bottom: "250px", left: "750px" }));
452
452
  });
453
453
  });
454
454
 
455
455
  describe("setting offsets work in different direction", () => {
456
- it("has proper top offset", () => {
456
+ it("has proper top offset", async () => {
457
457
  const { popover } = createUsePositionComponent(defaultParams => ({
458
458
  ...defaultParams,
459
459
  offset: { top: 50, right: 0, bottom: 0, left: 0 }
460
460
  }));
461
461
 
462
- expect(popover).toHaveStyle({ left: "250px", top: "300px" });
462
+ await waitFor(() => expect(popover).toHaveStyle({ left: "250px", top: "300px" }));
463
463
  });
464
464
 
465
- it("has proper right offset", () => {
465
+ it("has proper right offset", async () => {
466
466
  const { popover } = createUsePositionComponent(defaultParams => ({
467
467
  ...defaultParams,
468
468
  offset: { top: 0, right: 50, bottom: 0, left: 0 }
469
469
  }));
470
470
 
471
- expect(popover).toHaveStyle({ left: "200px", top: "250px" });
471
+ await waitFor(() => expect(popover).toHaveStyle({ left: "200px", top: "250px" }));
472
472
  });
473
473
 
474
- it("has proper bottom offset", () => {
474
+ it("has proper bottom offset", async () => {
475
475
  const { popover } = createUsePositionComponent(defaultParams => ({
476
476
  ...defaultParams,
477
477
  offset: { top: 0, right: 0, bottom: 50, left: 0 }
478
478
  }));
479
479
 
480
- expect(popover).toHaveStyle({ left: "250px", top: "200px" });
480
+ await waitFor(() => expect(popover).toHaveStyle({ left: "250px", top: "200px" }));
481
481
  });
482
482
 
483
- it("has proper left offset", () => {
483
+ it("has proper left offset", async () => {
484
484
  const { popover } = createUsePositionComponent(defaultParams => ({
485
485
  ...defaultParams,
486
486
  offset: { top: 0, right: 0, bottom: 0, left: 50 }
487
487
  }));
488
488
 
489
- expect(popover).toHaveStyle({ left: "300px", top: "250px" });
489
+ await waitFor(() => expect(popover).toHaveStyle({ left: "300px", top: "250px" }));
490
490
  });
491
491
 
492
- it("can handle multiple values", () => {
492
+ it("can handle multiple values", async () => {
493
493
  const { popover } = createUsePositionComponent(defaultParams => ({
494
494
  ...defaultParams,
495
495
  offset: { top: 50, right: 25, bottom: 25, left: 50 }
496
496
  }));
497
497
 
498
- expect(popover).toHaveStyle({ left: "275px", top: "275px" });
498
+ await waitFor(() => expect(popover).toHaveStyle({ left: "275px", top: "275px" }));
499
499
  });
500
500
 
501
- it("works with transformOrigin from bottom right as well", () => {
501
+ it("works with transformOrigin from bottom right as well", async () => {
502
502
  const { popover } = createUsePositionComponent(defaultParams => ({
503
503
  ...defaultParams,
504
504
  transformOrigin: { horizontal: "right", vertical: "bottom" },
505
505
  offset: { top: 50, right: 25, bottom: 25, left: 50 }
506
506
  }));
507
507
 
508
- expect(popover).toHaveStyle({ right: "725px", bottom: "725px" });
508
+ await waitFor(() => expect(popover).toHaveStyle({ right: "725px", bottom: "725px" }));
509
509
  });
510
510
  });
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import React, { useState } from "react";
18
+ import { useDebouncedCallback } from "./useDebouncedCallback";
18
19
 
19
20
  export interface ConfigObject {
20
21
  relativeElement: RefElement;
@@ -22,6 +23,7 @@ export interface ConfigObject {
22
23
  transformOrigin?: Placement;
23
24
  placement?: Placement;
24
25
  offset?: Offset;
26
+ debounceAmount?: number;
25
27
  }
26
28
 
27
29
  export type HorizontalPlacement = "left" | "center" | "centerh" | "right";
@@ -86,7 +88,8 @@ const defaultConfigObject: ConfigObject = {
86
88
  right: 0,
87
89
  bottom: 0,
88
90
  left: 0
89
- }
91
+ },
92
+ debounceAmount: 20
90
93
  };
91
94
 
92
95
  /* eslint-disable @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain*/
@@ -326,7 +329,7 @@ export const usePosition = (providedConfigObject: ConfigObject = defaultConfigOb
326
329
  }));
327
330
  };
328
331
 
329
- const calculatePosition = () => {
332
+ const calculatePosition = useDebouncedCallback(() => {
330
333
  if (!configObject.relativeElement?.current) return;
331
334
  const relativeElRect = (configObject.relativeElement!
332
335
  .current as HTMLElement)!.getBoundingClientRect();
@@ -352,7 +355,7 @@ export const usePosition = (providedConfigObject: ConfigObject = defaultConfigOb
352
355
 
353
356
  _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, "horizontal");
354
357
  _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, "vertical");
355
- };
358
+ }, configObject.debounceAmount || 20);
356
359
 
357
360
  return {
358
361
  top: position.top,
package/src/index.ts CHANGED
@@ -123,3 +123,4 @@ export { HeaderCell } from "./DataGrid/datagrid.interfaces";
123
123
  export { DataGrid, Props as DataGridProps } from "./DataGrid/DataGrid";
124
124
  export { DataGridRow, Props as DataGridRowProps } from "./DataGrid/DataGridBody/DataGridRow";
125
125
  export { DataGridCell, Props as DataGridCellProps } from "./DataGrid/DataGridBody/DataGridCell";
126
+ export { Banner, Props as BannerProps } from "./Notifications/Banner/Banner";
@@ -208,7 +208,7 @@
208
208
  @mixin skeletonLoading() {
209
209
  position: relative;
210
210
  overflow: hidden;
211
- background-color: var(--disabled);
211
+ background-color: var(--skeleton-background-color);
212
212
 
213
213
  &::after {
214
214
  position: absolute;
@@ -219,10 +219,10 @@
219
219
  transform: translateX(-100%);
220
220
  background-image: linear-gradient(
221
221
  90deg,
222
- rgba(#fff, 0) 0,
223
- rgba(#fff, 0.2) 20%,
224
- rgba(#fff, 0.5) 60%,
225
- rgba(#fff, 0)
222
+ rgba(var(--skeleton-animation-color-rgb), 0) 0,
223
+ rgba(var(--skeleton-animation-color-rgb), 0.2) 20%,
224
+ rgba(var(--skeleton-animation-color-rgb), 0.5) 60%,
225
+ rgba(var(--skeleton-animation-color-rgb), 0)
226
226
  );
227
227
  content: "";
228
228