@qoretechnologies/reqore 0.40.2 → 0.40.4

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 (36) hide show
  1. package/__tests__/textarea.test.tsx +0 -1
  2. package/dist/components/Button/index.d.ts +1 -0
  3. package/dist/components/Button/index.d.ts.map +1 -1
  4. package/dist/components/Button/index.js +2 -2
  5. package/dist/components/Button/index.js.map +1 -1
  6. package/dist/components/Input/index.d.ts +4 -0
  7. package/dist/components/Input/index.d.ts.map +1 -1
  8. package/dist/components/Input/index.js +13 -7
  9. package/dist/components/Input/index.js.map +1 -1
  10. package/dist/constants/colors.js +1 -1
  11. package/dist/constants/colors.js.map +1 -1
  12. package/dist/constants/sizes.d.ts +1 -0
  13. package/dist/constants/sizes.d.ts.map +1 -1
  14. package/dist/constants/sizes.js +2 -1
  15. package/dist/constants/sizes.js.map +1 -1
  16. package/dist/hooks/useAutoFocus.d.ts +1 -0
  17. package/dist/hooks/useAutoFocus.d.ts.map +1 -1
  18. package/dist/hooks/useAutoFocus.js +4 -2
  19. package/dist/hooks/useAutoFocus.js.map +1 -1
  20. package/dist/hooks/usePopover.d.ts.map +1 -1
  21. package/dist/hooks/usePopover.js +10 -9
  22. package/dist/hooks/usePopover.js.map +1 -1
  23. package/dist/hooks/useTooltip.js +1 -1
  24. package/dist/hooks/useTooltip.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/components/Button/index.tsx +5 -2
  27. package/src/components/Input/index.tsx +27 -9
  28. package/src/constants/colors.ts +1 -1
  29. package/src/constants/sizes.ts +2 -0
  30. package/src/hooks/useAutoFocus.ts +4 -2
  31. package/src/hooks/usePopover.tsx +11 -9
  32. package/src/hooks/useTooltip.ts +1 -1
  33. package/src/stories/Button/Button.stories.tsx +8 -0
  34. package/src/stories/Input/Input.stories.tsx +10 -0
  35. package/src/stories/Popover/Popover.stories.tsx +35 -0
  36. package/tests.json +1 -1
@@ -182,19 +182,21 @@ const usePopover = ({
182
182
  }
183
183
  }
184
184
 
185
+ if (!content) {
186
+ _removePopover();
187
+ }
188
+
185
189
  return () => {
186
- if (targetElement && content) {
187
- cancelTimeout();
190
+ cancelTimeout();
188
191
 
189
- targetElement.removeEventListener(startEvent, _addPopover);
192
+ targetElement?.removeEventListener(startEvent, _addPopover);
190
193
 
191
- if (endEvent) {
192
- targetElement.removeEventListener(endEvent, _removePopover);
193
- }
194
+ if (endEvent) {
195
+ targetElement?.removeEventListener(endEvent, _removePopover);
196
+ }
194
197
 
195
- if (handler === 'hoverStay') {
196
- targetElement.removeEventListener('mouseleave', cancelTimeout);
197
- }
198
+ if (handler === 'hoverStay') {
199
+ targetElement?.removeEventListener('mouseleave', cancelTimeout);
198
200
  }
199
201
  };
200
202
  }, [targetElement?.toString(), content, current, currentPopover]);
@@ -14,7 +14,7 @@ export const useTooltip = (
14
14
  );
15
15
 
16
16
  useEffect(() => {
17
- if (targetElement && content) {
17
+ if (targetElement) {
18
18
  setElement(targetElement);
19
19
  setData(tooltip);
20
20
  }
@@ -369,3 +369,11 @@ export const GlobalEffect: Story = {
369
369
  },
370
370
  },
371
371
  };
372
+
373
+ export const Pill: Story = {
374
+ render: Template,
375
+
376
+ args: {
377
+ pill: true,
378
+ },
379
+ };
@@ -57,6 +57,7 @@ const Template: StoryFn<typeof ReqoreInput> = (args: IReqoreInputProps) => {
57
57
  placeholder='Clearable Input'
58
58
  onClearClick={handleValueClear}
59
59
  onChange={handleValueChange}
60
+ leftIconProps={{ size: 'tiny' }}
60
61
  />
61
62
  <ReqoreInput
62
63
  {...args}
@@ -66,6 +67,7 @@ const Template: StoryFn<typeof ReqoreInput> = (args: IReqoreInputProps) => {
66
67
  onChange={handleValueChange}
67
68
  rightIcon='EraserFill'
68
69
  rightIconColor='#8727b7'
70
+ focusRules={{ type: 'keypress', shortcut: '.', doNotInsertShortcut: true }}
69
71
  />
70
72
  <ReqoreInput {...args} placeholder='Disabled Input' disabled onChange={handleValueChange} />
71
73
  <ReqoreInput
@@ -208,3 +210,11 @@ export const Effect: Story = {
208
210
  },
209
211
  },
210
212
  };
213
+
214
+ export const Pill: Story = {
215
+ render: Template,
216
+
217
+ args: {
218
+ pill: true,
219
+ },
220
+ };
@@ -1,6 +1,8 @@
1
+ import { expect } from '@storybook/jest';
1
2
  import { StoryFn, StoryObj } from '@storybook/react';
2
3
  import { fireEvent } from '@storybook/testing-library';
3
4
  import { useState } from 'react';
5
+ import { useMount } from 'react-use';
4
6
  import { IReqorePopoverProps } from '../../components/Popover';
5
7
  import { sleep } from '../../helpers/utils';
6
8
  import usePopover from '../../hooks/usePopover';
@@ -16,6 +18,7 @@ import {
16
18
  ReqoreSpacer,
17
19
  ReqoreTextarea,
18
20
  } from '../../index';
21
+ import { IReqoreTooltip } from '../../types/global';
19
22
  import { StoryMeta } from '../utils';
20
23
  import { FlatArg, argManager } from '../utils/args';
21
24
 
@@ -434,3 +437,35 @@ export const ChangingElement: Story = {
434
437
  });
435
438
  },
436
439
  };
440
+
441
+ export const TooltipIsRemovedWhenContentIsEmpty: Story = {
442
+ render: (args) => {
443
+ const [tooltip, setTooltip] = useState<IReqoreTooltip>({
444
+ content: 'test',
445
+ handler: 'focus',
446
+ noArrow: true,
447
+ noWrapper: true,
448
+ useTargetWidth: true,
449
+ });
450
+
451
+ useMount(() => {
452
+ setTimeout(() => {
453
+ setTooltip(undefined);
454
+ }, 1500);
455
+ });
456
+
457
+ return <ReqoreTextarea tooltip={tooltip} />;
458
+ },
459
+
460
+ play: async ({ canvasElement }) => {
461
+ const textarea = canvasElement.querySelector('textarea');
462
+ await sleep(500);
463
+ fireEvent.focusIn(textarea);
464
+ await sleep(300);
465
+ await expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument();
466
+ await sleep(1000);
467
+ fireEvent.focusIn(textarea);
468
+ await sleep(300);
469
+ await expect(document.querySelector('.reqore-popover-content')).not.toBeInTheDocument();
470
+ },
471
+ };