@seeqdev/qomponents 0.0.112 → 0.0.113

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 (194) hide show
  1. package/dist/Accordion/Accordion.js +9 -0
  2. package/dist/Accordion/Accordion.js.map +1 -0
  3. package/dist/Accordion/Accordion.stories.js +115 -0
  4. package/dist/Accordion/Accordion.stories.js.map +1 -0
  5. package/dist/Accordion/Accordion.test.js +55 -0
  6. package/dist/Accordion/Accordion.test.js.map +1 -0
  7. package/dist/Accordion/Accordion.types.js +2 -0
  8. package/dist/Accordion/Accordion.types.js.map +1 -0
  9. package/dist/Accordion/index.js +2 -0
  10. package/dist/Accordion/index.js.map +1 -0
  11. package/dist/Alert/Alert.js +32 -0
  12. package/dist/Alert/Alert.js.map +1 -0
  13. package/dist/Alert/Alert.stories.js +45 -0
  14. package/dist/Alert/Alert.stories.js.map +1 -0
  15. package/dist/Alert/Alert.test.js +51 -0
  16. package/dist/Alert/Alert.test.js.map +1 -0
  17. package/dist/Alert/Alert.types.js +2 -0
  18. package/dist/Alert/Alert.types.js.map +1 -0
  19. package/dist/Alert/index.js +2 -0
  20. package/dist/Alert/index.js.map +1 -0
  21. package/dist/Button/Button.js +92 -0
  22. package/dist/Button/Button.js.map +1 -0
  23. package/dist/Button/Button.stories.js +100 -0
  24. package/dist/Button/Button.stories.js.map +1 -0
  25. package/dist/Button/Button.test.js +49 -0
  26. package/dist/Button/Button.test.js.map +1 -0
  27. package/dist/Button/Button.types.js +5 -0
  28. package/dist/Button/Button.types.js.map +1 -0
  29. package/dist/Button/index.js +2 -0
  30. package/dist/Button/index.js.map +1 -0
  31. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +67 -0
  32. package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +1 -0
  33. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +98 -0
  34. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +1 -0
  35. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +85 -0
  36. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +1 -0
  37. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +2 -0
  38. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +1 -0
  39. package/dist/ButtonWithDropdown/index.js +2 -0
  40. package/dist/ButtonWithDropdown/index.js.map +1 -0
  41. package/dist/ButtonWithPopover/ButtonWithPopover.js +53 -0
  42. package/dist/ButtonWithPopover/ButtonWithPopover.js.map +1 -0
  43. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +75 -0
  44. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +1 -0
  45. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +82 -0
  46. package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +1 -0
  47. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +2 -0
  48. package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +1 -0
  49. package/dist/ButtonWithPopover/index.js +2 -0
  50. package/dist/ButtonWithPopover/index.js.map +1 -0
  51. package/dist/Checkbox/Checkbox.js +26 -0
  52. package/dist/Checkbox/Checkbox.js.map +1 -0
  53. package/dist/Checkbox/Checkbox.stories.js +34 -0
  54. package/dist/Checkbox/Checkbox.stories.js.map +1 -0
  55. package/dist/Checkbox/Checkbox.test.js +94 -0
  56. package/dist/Checkbox/Checkbox.test.js.map +1 -0
  57. package/dist/Checkbox/Checkbox.types.js +2 -0
  58. package/dist/Checkbox/Checkbox.types.js.map +1 -0
  59. package/dist/Checkbox/index.js +2 -0
  60. package/dist/Checkbox/index.js.map +1 -0
  61. package/dist/Icon/Icon.js +55 -0
  62. package/dist/Icon/Icon.js.map +1 -0
  63. package/dist/Icon/Icon.stories.js +45 -0
  64. package/dist/Icon/Icon.stories.js.map +1 -0
  65. package/dist/Icon/Icon.test.js +55 -0
  66. package/dist/Icon/Icon.test.js.map +1 -0
  67. package/dist/Icon/Icon.types.js +16 -0
  68. package/dist/Icon/Icon.types.js.map +1 -0
  69. package/dist/Icon/index.js +2 -0
  70. package/dist/Icon/index.js.map +1 -0
  71. package/dist/InputGroup/InputGroup.js +31 -0
  72. package/dist/InputGroup/InputGroup.js.map +1 -0
  73. package/dist/InputGroup/InputGroup.stories.js +168 -0
  74. package/dist/InputGroup/InputGroup.stories.js.map +1 -0
  75. package/dist/InputGroup/InputGroup.test.js +43 -0
  76. package/dist/InputGroup/InputGroup.test.js.map +1 -0
  77. package/dist/InputGroup/InputGroup.types.d.ts +1 -1
  78. package/dist/InputGroup/InputGroup.types.js +2 -0
  79. package/dist/InputGroup/InputGroup.types.js.map +1 -0
  80. package/dist/InputGroup/index.d.ts +1 -0
  81. package/dist/InputGroup/index.js +2 -0
  82. package/dist/InputGroup/index.js.map +1 -0
  83. package/dist/Modal/Modal.js +100 -0
  84. package/dist/Modal/Modal.js.map +1 -0
  85. package/dist/Modal/Modal.stories.js +127 -0
  86. package/dist/Modal/Modal.stories.js.map +1 -0
  87. package/dist/Modal/Modal.test.js +108 -0
  88. package/dist/Modal/Modal.test.js.map +1 -0
  89. package/dist/Modal/Modal.types.js +2 -0
  90. package/dist/Modal/Modal.types.js.map +1 -0
  91. package/dist/Modal/index.js +2 -0
  92. package/dist/Modal/index.js.map +1 -0
  93. package/dist/ProgressBar/ProgressBar.types.d.ts +2 -0
  94. package/dist/SeeqActionDropdown/SeeqActionDropdown.js +48 -0
  95. package/dist/SeeqActionDropdown/SeeqActionDropdown.js.map +1 -0
  96. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +80 -0
  97. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js.map +1 -0
  98. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +73 -0
  99. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js.map +1 -0
  100. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +2 -0
  101. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js.map +1 -0
  102. package/dist/SeeqActionDropdown/index.js +2 -0
  103. package/dist/SeeqActionDropdown/index.js.map +1 -0
  104. package/dist/SeeqActionDropdown/variants.js +23 -0
  105. package/dist/SeeqActionDropdown/variants.js.map +1 -0
  106. package/dist/Select/Select.js +174 -0
  107. package/dist/Select/Select.js.map +1 -0
  108. package/dist/Select/Select.stories.js +80 -0
  109. package/dist/Select/Select.stories.js.map +1 -0
  110. package/dist/Select/Select.test.js +182 -0
  111. package/dist/Select/Select.test.js.map +1 -0
  112. package/dist/Select/Select.types.js +2 -0
  113. package/dist/Select/Select.types.js.map +1 -0
  114. package/dist/Select/index.js +3 -0
  115. package/dist/Select/index.js.map +1 -0
  116. package/dist/Slider/Slider.js +5 -5
  117. package/dist/Slider/Slider.js.map +1 -1
  118. package/dist/Slider/Slider.test.js +0 -5
  119. package/dist/Slider/Slider.test.js.map +1 -1
  120. package/dist/Tabs/Tabs.js +22 -0
  121. package/dist/Tabs/Tabs.js.map +1 -0
  122. package/dist/Tabs/Tabs.stories.js +91 -0
  123. package/dist/Tabs/Tabs.stories.js.map +1 -0
  124. package/dist/Tabs/Tabs.test.js +91 -0
  125. package/dist/Tabs/Tabs.test.js.map +1 -0
  126. package/dist/Tabs/Tabs.types.js +2 -0
  127. package/dist/Tabs/Tabs.types.js.map +1 -0
  128. package/dist/Tabs/index.js +2 -0
  129. package/dist/Tabs/index.js.map +1 -0
  130. package/dist/TextArea/TextArea.js +25 -0
  131. package/dist/TextArea/TextArea.js.map +1 -0
  132. package/dist/TextArea/TextArea.stories.js +46 -0
  133. package/dist/TextArea/TextArea.stories.js.map +1 -0
  134. package/dist/TextArea/TextArea.test.js +68 -0
  135. package/dist/TextArea/TextArea.test.js.map +1 -0
  136. package/dist/TextArea/TextArea.types.js +2 -0
  137. package/dist/TextArea/TextArea.types.js.map +1 -0
  138. package/dist/TextArea/index.js +2 -0
  139. package/dist/TextArea/index.js.map +1 -0
  140. package/dist/TextField/TextField.js +79 -0
  141. package/dist/TextField/TextField.js.map +1 -0
  142. package/dist/TextField/TextField.stories.js +70 -0
  143. package/dist/TextField/TextField.stories.js.map +1 -0
  144. package/dist/TextField/TextField.test.js +39 -0
  145. package/dist/TextField/TextField.test.js.map +1 -0
  146. package/dist/TextField/TextField.types.js +2 -0
  147. package/dist/TextField/TextField.types.js.map +1 -0
  148. package/dist/TextField/index.js +2 -0
  149. package/dist/TextField/index.js.map +1 -0
  150. package/dist/ToolbarButton/ToolbarButton.js +75 -0
  151. package/dist/ToolbarButton/ToolbarButton.js.map +1 -0
  152. package/dist/ToolbarButton/ToolbarButton.stories.js +94 -0
  153. package/dist/ToolbarButton/ToolbarButton.stories.js.map +1 -0
  154. package/dist/ToolbarButton/ToolbarButton.test.js +93 -0
  155. package/dist/ToolbarButton/ToolbarButton.test.js.map +1 -0
  156. package/dist/ToolbarButton/ToolbarButton.types.js +2 -0
  157. package/dist/ToolbarButton/ToolbarButton.types.js.map +1 -0
  158. package/dist/ToolbarButton/index.js +2 -0
  159. package/dist/ToolbarButton/index.js.map +1 -0
  160. package/dist/Tooltip/QTip.stories.js +45 -0
  161. package/dist/Tooltip/QTip.stories.js.map +1 -0
  162. package/dist/Tooltip/QTip.types.js +2 -0
  163. package/dist/Tooltip/QTip.types.js.map +1 -0
  164. package/dist/Tooltip/QTipPerformance.stories.js +30 -0
  165. package/dist/Tooltip/QTipPerformance.stories.js.map +1 -0
  166. package/dist/Tooltip/Qtip.js +168 -0
  167. package/dist/Tooltip/Qtip.js.map +1 -0
  168. package/dist/Tooltip/Tooltip.js +36 -0
  169. package/dist/Tooltip/Tooltip.js.map +1 -0
  170. package/dist/Tooltip/Tooltip.stories.js +32 -0
  171. package/dist/Tooltip/Tooltip.stories.js.map +1 -0
  172. package/dist/Tooltip/Tooltip.types.js +3 -0
  173. package/dist/Tooltip/Tooltip.types.js.map +1 -0
  174. package/dist/Tooltip/TooltipPerformance.stories.js +30 -0
  175. package/dist/Tooltip/TooltipPerformance.stories.js.map +1 -0
  176. package/dist/Tooltip/index.js +3 -0
  177. package/dist/Tooltip/index.js.map +1 -0
  178. package/dist/Tooltip/qTip.utilities.js +11 -0
  179. package/dist/Tooltip/qTip.utilities.js.map +1 -0
  180. package/dist/index.esm.js +9 -8
  181. package/dist/index.esm.js.map +1 -1
  182. package/dist/index.js +9 -8
  183. package/dist/index.js.map +1 -1
  184. package/dist/types.js +2 -0
  185. package/dist/types.js.map +1 -0
  186. package/dist/utils/browserId.js +29 -0
  187. package/dist/utils/browserId.js.map +1 -0
  188. package/dist/utils/svg.js +20 -0
  189. package/dist/utils/svg.js.map +1 -0
  190. package/dist/utils/validateStyleDimension.js +14 -0
  191. package/dist/utils/validateStyleDimension.js.map +1 -0
  192. package/dist/utils/validateStyleDimension.test.js +20 -0
  193. package/dist/utils/validateStyleDimension.test.js.map +1 -0
  194. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButton.stories.js","sourceRoot":"","sources":["../../src/ToolbarButton/ToolbarButton.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom';
3
+ import { render, screen } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import { ToolbarButton } from './ToolbarButton';
6
+ import Icon from '../Icon';
7
+ describe('ToolbarButton', () => {
8
+ const options = [
9
+ { value: 'a', label: 'Chocolate' },
10
+ { value: 'b', label: 'Strawberry' },
11
+ { value: 'c', label: 'Vanilla' },
12
+ { value: 'd', label: 'Rocky Road' },
13
+ { value: 'e', label: 'Crazy Cow' },
14
+ { value: 'f', label: 'Almond Joy' },
15
+ { value: 'g', label: 'All of the above' },
16
+ ];
17
+ const colorOptions = [
18
+ { value: 'h', label: 'pink' },
19
+ { value: 'i', label: 'purple' },
20
+ { value: 'j', label: 'green' },
21
+ { value: 'k', label: 'red' },
22
+ ];
23
+ const popoverContent = (React.createElement("div", { className: "tw-text-sm" },
24
+ React.createElement("p", { className: "tw-bg-gray-200 tw-p-2" }, "Flavors"),
25
+ options.map((option) => (React.createElement("div", { key: option.value, className: "tw-flex tw-items-center tw-p-2 hover:tw-bg-green-500" },
26
+ React.createElement(Icon, { type: "color", color: "green", icon: "fc-check", extraClassNames: "tw-mr-2" }),
27
+ React.createElement("span", null, option.label)))),
28
+ React.createElement("p", null, "Colors"),
29
+ colorOptions.map((option) => (React.createElement("div", { key: option.value, className: "tw-flex tw-items-center tw-p-2" },
30
+ React.createElement(Icon, { type: "color", color: "green", icon: "fc-check", extraClassNames: "tw-mr-2" }),
31
+ React.createElement("span", null, option.label))))));
32
+ const mockOnClick = jest.fn();
33
+ class Context {
34
+ testId = 'popoverTestId';
35
+ label = 'popover label';
36
+ props = {
37
+ label: this.label,
38
+ onClick: mockOnClick,
39
+ testId: this.testId,
40
+ icon: 'fc-y-axis',
41
+ tooltipText: 'This is a popover.',
42
+ tooltipOptions: { position: 'top', delay: 0 },
43
+ isHtmlTooltip: false,
44
+ isSmall: false,
45
+ popoverContent,
46
+ };
47
+ }
48
+ let tc;
49
+ beforeEach(() => {
50
+ tc = new Context();
51
+ jest.clearAllMocks();
52
+ });
53
+ const renderToolbarButton = (props) => render(React.createElement(ToolbarButton, { ...props }));
54
+ const openPopover = async () => {
55
+ const popover = screen.getByTestId(tc.testId);
56
+ await userEvent.click(popover);
57
+ };
58
+ it('renders popover icon without label when small', () => {
59
+ tc.props.isSmall = true;
60
+ renderToolbarButton(tc.props);
61
+ const popoverLabel = screen.queryByText(tc.label);
62
+ expect(popoverLabel).not.toBeInTheDocument();
63
+ });
64
+ it('renders popover trigger button', () => {
65
+ renderToolbarButton(tc.props);
66
+ expect(screen.getByText(tc.label)).toBeInTheDocument();
67
+ });
68
+ it('opens popover on click', async () => {
69
+ renderToolbarButton(tc.props);
70
+ await openPopover();
71
+ expect(screen.getByText(options[2].label)).toBeVisible();
72
+ });
73
+ it('renders disabled popover trigger', async () => {
74
+ renderToolbarButton({ ...tc.props, disabled: true });
75
+ await openPopover();
76
+ expect(mockOnClick).not.toHaveBeenCalled();
77
+ });
78
+ it('handles click events', async () => {
79
+ const handleClick = jest.fn();
80
+ tc.props.onClick = handleClick;
81
+ const { getByTestId } = renderToolbarButton(tc.props);
82
+ await userEvent.click(getByTestId(tc.testId));
83
+ expect(handleClick).toHaveBeenCalled();
84
+ });
85
+ it('handles click events within popover and does not close the popover', async () => {
86
+ renderToolbarButton(tc.props);
87
+ expect(screen.queryByText(options[4].label)).not.toBeInTheDocument();
88
+ await openPopover();
89
+ await userEvent.click(screen.getByText(options[3].label));
90
+ expect(screen.getByText(options[4].label)).toBeInTheDocument();
91
+ });
92
+ });
93
+ //# sourceMappingURL=ToolbarButton.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButton.test.js","sourceRoot":"","sources":["../../src/ToolbarButton/ToolbarButton.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const toolbarButtonVariants = ['outline', 'theme', 'theme-light', 'warning', 'danger', 'no-border'];
2
+ //# sourceMappingURL=ToolbarButton.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButton.types.js","sourceRoot":"","sources":["../../src/ToolbarButton/ToolbarButton.types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ToolbarButton as default } from './ToolbarButton';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ToolbarButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import Button from '../Button';
3
+ import { tooltipPositions } from './Tooltip.types';
4
+ import { QTip } from './Qtip';
5
+ import Icon from '../Icon';
6
+ export default {
7
+ title: 'Tooltip',
8
+ };
9
+ export const AllQTips = () => {
10
+ const renderSvgWithTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { className: "tw-w-full tw-flex tw-justify-center tw-items-center" },
11
+ React.createElement("div", { "data-qtip-text": "this is a test tooltip", "data-qtip-placement": position, key: `${position}_svg` },
12
+ React.createElement("svg", { viewBox: "0 0 19 19", xmlns: "http://www.w3.org/2000/svg", className: "seeq-icon p2", height: "19", width: "19" },
13
+ React.createElement("path", { d: "M 2.714 1.188 L 2.714 0 L 0 0 L 0 1.188 L 0 2.375 L 0 13.656 L 0 17.813 L 0 19 L 2.714 19 L 2.714 17.813 L 2.714 13.063 L 5.441 12.465 C 7.184 12.083 9.029 12.261 10.637 12.962 C 12.511 13.782 14.687 13.883 16.646 13.237 L 19 12.469 L 19 0.594 L 16.693 1.603 C 14.729 2.464 12.418 2.464 10.454 1.603 C 8.966 0.95 7.256 0.787 5.641 1.139 L 2.714 1.781 L 2.714 1.188 Z", fill: "red" }))))));
14
+ const renderButtonsWithTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_button` },
15
+ React.createElement(Button, { tooltip: `Tooltip on the ${position}`, label: position, tooltipOptions: { position } }))));
16
+ const renderIconsWithHtmlTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_icon` },
17
+ React.createElement(Icon, { tooltip: "<div><h2>Fancy Tooltip</h2> This is a special tooltip. Why? <br />Because it supports <b>HTML!</b></div>", tooltipPlacement: position, icon: "fc-sun", isHtmlTooltip: true }))));
18
+ const renderTextTooltipOnText = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_text` },
19
+ React.createElement("span", { "data-qtip-text": "Helpful information provided here", "data-qtip-placement": position },
20
+ "Hover for Tooltip (on the ",
21
+ position,
22
+ ")"))));
23
+ const renderTextTooltipOnTextWithDelay = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_text` },
24
+ React.createElement("span", { "data-qtip-text": "Helpful information provided here", "data-qtip-placement": position, "data-qtip-delay": 1500 },
25
+ "Hover for Tooltip (on the ",
26
+ position,
27
+ ") - with delay (1500ms)"))));
28
+ const renderTextTooltipOnOverflowHiddenText = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_text`, className: "tw-overflow-hidden" },
29
+ React.createElement("span", { "data-qtip-text": "Helpful information provided here", "data-qtip-placement": position },
30
+ "Hover for Tooltip (on the ",
31
+ position,
32
+ ")",
33
+ React.createElement("br", null),
34
+ "(Overflow set to hidden)"))));
35
+ return (React.createElement(React.Fragment, null,
36
+ React.createElement(QTip, null),
37
+ React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" },
38
+ renderSvgWithTooltip(),
39
+ renderButtonsWithTooltip(),
40
+ renderIconsWithHtmlTooltip(),
41
+ renderTextTooltipOnText(),
42
+ renderTextTooltipOnTextWithDelay(),
43
+ renderTextTooltipOnOverflowHiddenText())));
44
+ };
45
+ //# sourceMappingURL=QTip.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QTip.stories.js","sourceRoot":"","sources":["../../src/Tooltip/QTip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAChC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,SAAS,EAAC,qDAAqD;QAClE,+CAAoB,wBAAwB,yBAAsB,QAAQ,EAAE,GAAG,EAAE,GAAG,QAAQ,MAAM;YAChG,6BAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,cAAc,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI;gBACzG,8BACE,CAAC,EAAC,gXAAgX,EAClX,IAAI,EAAC,KAAK,GAAQ,CAChB,CACF,CACF,CACP,CAAC,CAAC;IACL,MAAM,wBAAwB,GAAG,GAAG,EAAE,CACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,SAAS;QAC5B,oBAAC,MAAM,IAAC,OAAO,EAAE,kBAAkB,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAI,CAC5F,CACP,CAAC,CAAC;IAEL,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,oBAAC,IAAI,IACH,OAAO,EAAC,0GAA0G,EAClH,gBAAgB,EAAE,QAAQ,EAC1B,IAAI,EAAC,QAAQ,EACb,aAAa,EAAE,IAAI,GACnB,CACE,CACP,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,gDAAqB,mCAAmC,yBAAsB,QAAQ;;YACzD,QAAQ;gBAC9B,CACH,CACP,CAAC,CAAC;IAEL,MAAM,gCAAgC,GAAG,GAAG,EAAE,CAC5C,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,gDAAqB,mCAAmC,yBAAsB,QAAQ,qBAAmB,IAAI;;YAChF,QAAQ;sCAC9B,CACH,CACP,CAAC,CAAC;IAEL,MAAM,qCAAqC,GAAG,GAAG,EAAE,CACjD,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO,EAAE,SAAS,EAAC,oBAAoB;QAC1D,gDAAqB,mCAAmC,yBAAsB,QAAQ;;YACzD,QAAQ;;YAAE,+BAAM;uCAEtC,CACH,CACP,CAAC,CAAC;IAEL,OAAO,CACL;QACE,oBAAC,IAAI,OAAG;QACR,6BAAK,SAAS,EAAC,gDAAgD;YAC5D,oBAAoB,EAAE;YACtB,wBAAwB,EAAE;YAC1B,0BAA0B,EAAE;YAC5B,uBAAuB,EAAE;YACzB,gCAAgC,EAAE;YAClC,qCAAqC,EAAE,CACpC,CACL,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QTip.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QTip.types.js","sourceRoot":"","sources":["../../src/Tooltip/QTip.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { QTip } from './Qtip';
3
+ import Icon from '../Icon';
4
+ export default {
5
+ title: 'Tooltip',
6
+ };
7
+ const renderManyQTips = () => {
8
+ const colsCount = 100;
9
+ const rowCount = 100;
10
+ const rows = [];
11
+ const getCols = (rowId) => {
12
+ const cols = [];
13
+ for (let i = 0; i < colsCount; i++) {
14
+ cols.push(React.createElement("td", { key: 'col_' + i + '_row_' + rowId },
15
+ React.createElement(Icon, { icon: "fc-sun", tooltip: `hello there ${i}` })));
16
+ }
17
+ return cols;
18
+ };
19
+ for (let i = 0; i < rowCount; i++) {
20
+ rows.push(React.createElement("tr", { key: 'row_' + i }, ...getCols(i)));
21
+ }
22
+ return (React.createElement("table", null,
23
+ React.createElement("tbody", null, rows.map((row) => row))));
24
+ };
25
+ export const QtipPerformance = () => {
26
+ return (React.createElement(React.Fragment, null,
27
+ React.createElement(QTip, null),
28
+ React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" }, renderManyQTips())));
29
+ };
30
+ //# sourceMappingURL=QTipPerformance.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QTipPerformance.stories.js","sourceRoot":"","sources":["../../src/Tooltip/QTipPerformance.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CACP,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK;gBACnC,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,eAAe,CAAC,EAAE,GAAI,CAChD,CACN,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,OAAM,OAAO,CAAC,CAAC,CAAC,CAAM,CAAC,CAAC;KACtD;IACD,OAAO,CACL;QACE,mCAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAS,CACjC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,CACL;QACE,oBAAC,IAAI,OAAG;QACR,6BAAK,SAAS,EAAC,gDAAgD,IAAE,eAAe,EAAE,CAAO,CACxF,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,168 @@
1
+ import DOMPurify from 'dompurify';
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import { arrow, computePosition, offset } from '@floating-ui/dom';
4
+ import { useIntervalWhen } from 'rooks';
5
+ import { DEFAULT_TOOL_TIP_DELAY } from './Tooltip.types';
6
+ const getArrowStyle = (position, x, arrowWidth, tooltipHeight, tooltipWidth) => {
7
+ switch (position) {
8
+ case 'bottom':
9
+ return {
10
+ left: `${x}px`,
11
+ top: `${-arrowWidth}px`,
12
+ };
13
+ case 'left':
14
+ return {
15
+ left: `${tooltipWidth - arrowWidth}px`,
16
+ top: `${tooltipHeight / 2 - arrowWidth}px`,
17
+ };
18
+ case 'right':
19
+ return {
20
+ left: `${-arrowWidth}px`,
21
+ top: `${tooltipHeight / 2 - arrowWidth}px`,
22
+ };
23
+ default: // 'top':
24
+ return {
25
+ left: `${x}px`,
26
+ top: `${tooltipHeight - 10 + arrowWidth}px`,
27
+ };
28
+ }
29
+ };
30
+ const HTMLTip = ({ text }) => {
31
+ return React.createElement('div', {
32
+ dangerouslySetInnerHTML: { __html: DOMPurify.sanitize(text) },
33
+ });
34
+ };
35
+ /** Tooltips can cause SystemTests to be flaky, so we suppress them in Playwright and Protractor */
36
+ const suppressTooltip = () => {
37
+ return window.navigator.userAgent === 'Playwright' || window.navigator.userAgent.includes('Protractor');
38
+ };
39
+ /**
40
+ * QTip
41
+ *
42
+ * QTip is a Singleton Tooltip component that guarantees high-performance and reduces component wrappers!
43
+ *
44
+ * QTip is used by all qomponents that support the display of tooltips.
45
+ * If you want to add a Tooltip to your application you can do so by adding the following html data-attributes:
46
+ *
47
+ * 'data-qtip-text': the tooltip text to display; this can also be a string containing valid HTML
48
+ * 'data-qtip-placement': one of TooltipPosition (top, bottom, right, or left)
49
+ * 'data-qtip-is-html': set this to true if you provided a text that contains HTML,
50
+ * 'data-qtip-delay': this can be used to delay the showing of the tooltip. this should be a number representing
51
+ * the # of milliseconds you want to delay the tooltip for. If no delay is provided the DEFAULT_TOOL_TIP_DELAY is
52
+ * applied!
53
+ * 'data-qtip-testid': use this attribute to provide a value for a data-testid of your tooltip; this is useful
54
+ * for tests
55
+ *
56
+ * In order for QTip to be able to display Tooltips you must add the QTip component to your top-most component
57
+ * (often that's App or Application) - simply add:
58
+ *
59
+ * <QTip />
60
+ *
61
+ * and enjoy beautiful & performant tooltips!
62
+ */
63
+ export const QTip = () => {
64
+ const tooltipRef = useRef(null);
65
+ const tooltipTarget = useRef(null);
66
+ const tooltipArrowRef = useRef(null);
67
+ const [tooltipText, setTooltipText] = useState('');
68
+ const [tooltipTargetOriginalPosition, setTooltipTargetOriginalPosition] = useState(null);
69
+ const [show, setShow] = useState(false);
70
+ const [html, setHtml] = useState(false);
71
+ const [tooltipTestId, setTooltipTestId] = useState('');
72
+ const [overTooltip, setOverTooltip] = useState(false);
73
+ // Check every 300ms if the tooltip target position has changed and hide the tooltip if this happens.
74
+ useIntervalWhen(() => {
75
+ const currentPosition = tooltipTarget?.current?.getBoundingClientRect();
76
+ if (overTooltip) {
77
+ return;
78
+ }
79
+ if (tooltipTargetOriginalPosition?.y !== currentPosition?.y ||
80
+ tooltipTargetOriginalPosition?.x !== currentPosition?.x) {
81
+ setShow(false);
82
+ }
83
+ }, 300, show);
84
+ useEffect(() => {
85
+ !suppressTooltip() && document.body.addEventListener('mousemove', onMouseMove);
86
+ return () => {
87
+ !suppressTooltip() && document.removeEventListener('mousemove', onMouseMove);
88
+ };
89
+ }, []);
90
+ const ttTimeout = useRef();
91
+ const findTooltipData = (element) => {
92
+ // Traverse up to 8 levels to find the tooltip data
93
+ for (let i = 0; i < 8 && element; i++) {
94
+ if (!element) {
95
+ return null;
96
+ }
97
+ if (element?.dataset?.qtipText) {
98
+ return element.dataset;
99
+ }
100
+ element = element?.parentElement;
101
+ }
102
+ return null;
103
+ };
104
+ const onMouseMove = (e) => {
105
+ clearTimeout(ttTimeout.current);
106
+ // Find tooltip data on the current or parent elements
107
+ const target = e.target;
108
+ const dataset = findTooltipData(target);
109
+ if (!dataset) {
110
+ // No tooltip data found
111
+ tooltipTarget.current = null;
112
+ return;
113
+ }
114
+ tooltipTarget.current = target;
115
+ const text = dataset.qtipText;
116
+ if (text) {
117
+ const delay = parseInt(dataset.qtipDelay || `${DEFAULT_TOOL_TIP_DELAY}`, 10);
118
+ const placement = dataset.qtipPlacement || 'top';
119
+ const isHtml = dataset.qtipIsHtml === 'true';
120
+ const testId = dataset.qtipTestid;
121
+ // Debounced tooltip display
122
+ ttTimeout.current = setTimeout(() => {
123
+ makeTooltip(text, placement, isHtml, testId, delay);
124
+ }, delay);
125
+ }
126
+ };
127
+ const makeTooltip = (tooltipText, position = 'top', isHtml, dataTestId, delay) => {
128
+ if (tooltipText && tooltipTarget.current) {
129
+ setHtml(isHtml);
130
+ setTooltipText(tooltipText);
131
+ setTooltipTestId(dataTestId);
132
+ setTooltipTargetOriginalPosition(tooltipTarget.current.getBoundingClientRect());
133
+ const positionTooltip = () => {
134
+ if (tooltipRef.current && tooltipTarget.current) {
135
+ computePosition(tooltipTarget.current, tooltipRef.current, {
136
+ placement: position,
137
+ middleware: [offset(10), arrow({ element: tooltipArrowRef.current })],
138
+ }).then(({ x, y, middlewareData }) => {
139
+ Object.assign(tooltipRef.current?.style, {
140
+ left: `${x}px`,
141
+ top: `${y}px`,
142
+ });
143
+ if (middlewareData.arrow) {
144
+ const { x, y } = middlewareData.arrow;
145
+ const arrowWidth = tooltipArrowRef.current?.offsetHeight / 2;
146
+ const tooltipHeight = tooltipRef.current?.offsetHeight;
147
+ const tooltipWidth = tooltipRef.current?.offsetWidth;
148
+ const style = getArrowStyle(position, x || y, arrowWidth, tooltipHeight, tooltipWidth);
149
+ Object.assign(tooltipArrowRef.current.style, style);
150
+ }
151
+ setShow(true);
152
+ });
153
+ }
154
+ };
155
+ delay > 0
156
+ ? requestAnimationFrame(() => {
157
+ positionTooltip();
158
+ })
159
+ : positionTooltip();
160
+ }
161
+ };
162
+ return (React.createElement(React.Fragment, null,
163
+ React.createElement("div", { onMouseEnter: () => setOverTooltip(true), onMouseLeave: () => setOverTooltip(false), "data-testid": tooltipTestId, ref: tooltipRef, className: 'tw-absolute tw-rounded tw-bg-black tw-p-2 tw-text-xs tw-text-white tw-z-[9999] fade-in ' +
164
+ (show ? 'tw-visible' : 'tw-invisible tw-pointer-events-none') },
165
+ html ? React.createElement(HTMLTip, { text: tooltipText }) : tooltipText,
166
+ React.createElement("div", { className: "tw-absolute tw-w-[10px] tw-h-[10px] tw-rotate-45 tw-bg-black", ref: tooltipArrowRef }))));
167
+ };
168
+ //# sourceMappingURL=Qtip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Qtip.js","sourceRoot":"","sources":["../../src/Tooltip/Qtip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import '../styles.css';
3
+ import { DEFAULT_TOOL_TIP_DELAY } from './Tooltip.types';
4
+ /**
5
+ * @deprecated
6
+ * Note: Tooltip has been replaced by QTip - a singleton JS tooltip that behaves well even with overflow settings :)
7
+ * See @QTip for more info!
8
+ *
9
+ * This component displays a Tooltip for the provided children. It is a CSS only tooltip that will not display
10
+ * correctly if a parent element has an overflow CSS property assigned. Please use QTip to ensure your tooltips
11
+ * display correctly.
12
+ */
13
+ export const Tooltip = ({ position = 'bottom', children, text, delay = DEFAULT_TOOL_TIP_DELAY, }) => {
14
+ const arrowBaseClasses = 'before:tw-content-[\'\'] before:tw-absolute before:tw-border-8';
15
+ const centerArrowVertically = 'before:tw-top-1/2 before:-tw-translate-y-1/2';
16
+ const centerArrowHorizontally = 'before:tw-left-1/2 before:-tw-translate-x-1/2';
17
+ const arrowRight = `${arrowBaseClasses} ${centerArrowVertically} before:tw-right-[100%] before:tw-border-y-transparent
18
+ before:tw-border-l-transparent before:tw-border-r-black`;
19
+ const arrowLeft = `${arrowBaseClasses} ${centerArrowVertically} before:tw-left-[100%] before:tw-border-y-transparent
20
+ before:tw-border-l-black before:tw-border-r-transparent`;
21
+ const arrowBottom = `${arrowBaseClasses} ${centerArrowHorizontally} before:-tw-top-4 before:tw-border-b-black
22
+ before:tw-border-r-transparent before:tw-border-l-transparent before:tw-border-t-transparent`;
23
+ const arrowTop = `${arrowBaseClasses} ${centerArrowHorizontally} before:-tw-bottom-4 before:tw-border-b-transparent
24
+ before:tw-border-t-black before:tw-border-l-transparent before:tw-border-r-transparent`;
25
+ const placements = {
26
+ top: `-tw-top-2 -tw-translate-y-full tw-left-1/2 -tw-translate-x-1/2 ${arrowTop}`,
27
+ left: `-tw-translate-x-full -tw-left-3 -tw-translate-y-1/2 tw-top-1/2 ${arrowLeft}`,
28
+ right: `tw-translate-x-full -tw-right-3 -tw-translate-y-1/2 tw-top-1/2 ${arrowRight}`,
29
+ bottom: `-tw-bottom-2 tw-translate-y-full tw-left-1/2 -tw-translate-x-1/2 ${arrowBottom}`,
30
+ };
31
+ return (React.createElement("div", { className: "tw-group tw-relative tw-inline-block" },
32
+ children,
33
+ React.createElement("div", { className: `tw-z-50 tw-whitespace-nowrap tw-hidden group-hover:tw-inline-block group-hover:tw-delay-[${delay}ms]
34
+ tw-absolute tw-opacity-0 group-hover:tw-opacity-100 tw-rounded tw-bg-black tw-p-2 tw-text-xs tw-text-white ${placements[position]}` }, text)));
35
+ };
36
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAgB,MAAM,iBAAiB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAA0C,CAAC,EAC7D,QAAQ,GAAG,QAAQ,EACnB,QAAQ,EACR,IAAI,EACJ,KAAK,GAAG,sBAAsB,GAC/B,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,gEAAgE,CAAC;IAC1F,MAAM,qBAAqB,GAAG,8CAA8C,CAAC;IAC7E,MAAM,uBAAuB,GAAG,+CAA+C,CAAC;IAChF,MAAM,UAAU,GAAG,GAAG,gBAAgB,IAAI,qBAAqB;0DACP,CAAC;IAEzD,MAAM,SAAS,GAAG,GAAG,gBAAgB,IAAI,qBAAqB;2DACL,CAAC;IAE1D,MAAM,WAAW,GAAG,GAAG,gBAAgB,IAAI,uBAAuB;+FAC2B,CAAC;IAC9F,MAAM,QAAQ,GAAG,GAAG,gBAAgB,IAAI,uBAAuB;yFACwB,CAAC;IAExF,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,kEAAkE,QAAQ,EAAE;QACjF,IAAI,EAAE,kEAAkE,SAAS,EAAE;QACnF,KAAK,EAAE,kEAAkE,UAAU,EAAE;QACrF,MAAM,EAAE,oEAAoE,WAAW,EAAE;KAC1F,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,sCAAsC;QAClD,QAAQ;QACT,6BACE,SAAS,EAAE,4FAA4F,KAAK;qHACC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAClI,IAAI,CACD,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { Tooltip } from './Tooltip';
3
+ import Icon from '../Icon';
4
+ import Button from '../Button';
5
+ import { tooltipPositions } from './Tooltip.types';
6
+ export default {
7
+ title: 'Tooltip',
8
+ };
9
+ export const AllTooltips = () => {
10
+ const renderButtonsWithTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_button` },
11
+ React.createElement(Tooltip, { text: `Tooltip on the ${position}`, position: position },
12
+ React.createElement(Button, { label: position })))));
13
+ const renderIconsWithHtmlTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_icon` },
14
+ React.createElement(Tooltip, { text: React.createElement("div", null,
15
+ React.createElement("h2", null, "Fancy Tooltip"),
16
+ " This is a special tooltip. Why?",
17
+ React.createElement("br", null),
18
+ "Because it supports ",
19
+ React.createElement("b", null, "HTML!")), position: position },
20
+ React.createElement(Icon, { icon: "fc-sun" })))));
21
+ const renderTextTooltipOnText = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_text` },
22
+ React.createElement(Tooltip, { text: "Helpful information provided here", position: position },
23
+ React.createElement("span", null,
24
+ "Hover for Tooltip (on the ",
25
+ position,
26
+ ")")))));
27
+ return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" },
28
+ renderButtonsWithTooltip(),
29
+ renderIconsWithHtmlTooltip(),
30
+ renderTextTooltipOnText()));
31
+ };
32
+ //# sourceMappingURL=Tooltip.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.stories.js","sourceRoot":"","sources":["../../src/Tooltip/Tooltip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,wBAAwB,GAAG,GAAG,EAAE,CACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,SAAS;QAC5B,oBAAC,OAAO,IAAC,IAAI,EAAE,kBAAkB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ;YAC7D,oBAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,GAAI,CACnB,CACN,CACP,CAAC,CAAC;IAEL,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,oBAAC,OAAO,IACN,IAAI,EACF;gBACE,gDAAsB;;gBACtB,+BAAM;;gBACc,uCAAY,CAC5B,EAER,QAAQ,EAAE,QAAQ;YAClB,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACd,CACN,CACP,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,mCAAmC,EAAC,QAAQ,EAAE,QAAQ;YAClE;;gBAAiC,QAAQ;oBAAS,CAC1C,CACN,CACP,CAAC,CAAC;IAEL,OAAO,CACL,6BAAK,SAAS,EAAC,gDAAgD;QAC5D,wBAAwB,EAAE;QAC1B,0BAA0B,EAAE;QAC5B,uBAAuB,EAAE,CACtB,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const DEFAULT_TOOL_TIP_DELAY = 500;
2
+ export const tooltipPositions = ['top', 'left', 'right', 'bottom'];
3
+ //# sourceMappingURL=Tooltip.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.types.js","sourceRoot":"","sources":["../../src/Tooltip/Tooltip.types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { Tooltip } from './Tooltip';
3
+ import Icon from '../Icon';
4
+ export default {
5
+ title: 'Tooltip',
6
+ };
7
+ const renderManyTooltips = () => {
8
+ const colsCount = 100;
9
+ const rowCount = 100;
10
+ const rows = [];
11
+ const getCols = (rowId) => {
12
+ const cols = [];
13
+ for (let i = 0; i < colsCount; i++) {
14
+ cols.push(React.createElement("td", { key: 'col_' + i + '_row_' + rowId },
15
+ React.createElement(Tooltip, { text: `hello there ${i}` },
16
+ React.createElement(Icon, { icon: "fc-sun" }))));
17
+ }
18
+ return cols;
19
+ };
20
+ for (let i = 0; i < rowCount; i++) {
21
+ rows.push(React.createElement("tr", { key: 'row_' + i }, ...getCols(i)));
22
+ }
23
+ return (React.createElement("table", null,
24
+ React.createElement("tbody", null, rows.map((row) => row))));
25
+ };
26
+ export const TooltipPerformance = () => {
27
+ return (React.createElement(React.Fragment, null,
28
+ React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" }, renderManyTooltips())));
29
+ };
30
+ //# sourceMappingURL=TooltipPerformance.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipPerformance.stories.js","sourceRoot":"","sources":["../../src/Tooltip/TooltipPerformance.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CACP,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK;gBACnC,oBAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,EAAE;oBAC/B,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACd,CACP,CACN,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,OAAM,OAAO,CAAC,CAAC,CAAC,CAAM,CAAC,CAAC;KACtD;IACD,OAAO,CACL;QACE,mCAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAS,CACjC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,gDAAgD,IAAE,kBAAkB,EAAE,CAAO,CAC3F,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Tooltip } from './Tooltip';
2
+ export { QTip } from './Qtip';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { DEFAULT_TOOL_TIP_DELAY } from './Tooltip.types';
2
+ export const getQTipData = ({ tooltip, tooltipPlacement, isHtmlTooltip, tooltipTestId, tooltipDelay = DEFAULT_TOOL_TIP_DELAY, }) => tooltip
3
+ ? {
4
+ 'data-qtip-text': tooltip,
5
+ 'data-qtip-placement': tooltipPlacement,
6
+ 'data-qtip-is-html': isHtmlTooltip,
7
+ 'data-qtip-testid': tooltipTestId,
8
+ 'data-qtip-delay': tooltipDelay,
9
+ }
10
+ : undefined;
11
+ //# sourceMappingURL=qTip.utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qTip.utilities.js","sourceRoot":"","sources":["../../src/Tooltip/qTip.utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,iBAAiB,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,GAAG,sBAAsB,GACf,EAAkC,EAAE,CAC1D,OAAO;IACL,CAAC,CAAC;QACE,gBAAgB,EAAE,OAAO;QACzB,qBAAqB,EAAE,gBAAgB;QACvC,mBAAmB,EAAE,aAAa;QAClC,kBAAkB,EAAE,aAAa;QACjC,iBAAiB,EAAE,YAAY;KAChC;IACH,CAAC,CAAC,SAAS,CAAC"}
package/dist/index.esm.js CHANGED
@@ -15932,21 +15932,22 @@ const borderColorClasses = [
15932
15932
  'focus:tw-border-sq-color-dark',
15933
15933
  'active:tw-border-sq-color-dark',
15934
15934
  ].join(' ');
15935
- let borderRadius = 'tw-rounded-sm tw-rounded-r-none';
15935
+ const borderRadius = 'tw-rounded-sm tw-rounded-r-none';
15936
15936
  const fieldClasses = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3' + 'tw-p-1 tw-border-solid tw-border';
15937
15937
  const darkTheme = 'dark:tw-bg-sq-dark-background dark:tw-text-sq-dark-text disabled:dark:tw-text-sq-dark-text-lighter';
15938
15938
  const lightTheme = 'tw-text-sq-text-color disabled:tw-text-sq-darkish-gray';
15939
15939
  /**
15940
15940
  * InputGroup.
15941
15941
  */
15942
- const InputGroup = ({ readonly = false, onChange, onKeyUp, onFocus, onBlur, onKeyDown, name, value, placeholder, append = [], extraClassNames = '', id, testId, showError, required, autoComplete, autoFocus, disabled, type, step, min, max, field, ...tooltipProps }) => {
15942
+ const InputGroup = React__default.forwardRef((props, ref) => {
15943
+ const { readonly = false, onChange, onKeyUp, onFocus, onBlur, onKeyDown, name, value, placeholder, append = [], extraClassNames = '', id, testId, showError, required, autoComplete, autoFocus, disabled, type, step, min, max, field, maxLength, minLength, ...tooltipProps } = props;
15943
15944
  const tooltipData = getQTipData(tooltipProps);
15944
15945
  const appliedClasses = `${baseClasses} ${extraClassNames}`;
15945
15946
  const fieldAppliedClasses = `${fieldClasses} ${extraClassNames} ${lightTheme} ${darkTheme} ${borderRadius} ${showError ? errorClasses : borderColorClasses} `;
15946
- return (React__default.createElement("div", { id: id, "data-testid": testId, className: appliedClasses },
15947
- field ? (React__default.createElement("div", { className: `tw-flex tw-flex-1 tw-cursor-pointer active:tw-z-50 ${fieldAppliedClasses}` }, field)) : (React__default.createElement(TextField, { readonly: readonly, onChange: onChange, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, name: name, showError: showError, value: value, required: required, placeholder: placeholder, autoComplete: autoComplete, autoFocus: autoFocus, id: id, type: type, disabled: disabled, step: step, min: min, max: max, extraClassNames: `tw-flex tw-flex-1 tw-w-full tw-rounded-r-none focus:tw-z-30 ${extraClassNames}`, ...tooltipData })),
15948
- append.filter(Boolean).map((item, index) => item.variant === 'button' ? (React__default.createElement(Button, { key: index, extraClassNames: "tw-ml-[-1px] focus:tw-z-40 focus:tw-border tw-rounded-l-none tw-rounded-r-none last:tw-rounded-r-sm", onClick: item.buttonProps.onClick, variant: item.buttonProps.variant, icon: item.buttonProps.icon, iconColor: item.buttonProps.iconColor, testId: item.buttonProps.testId, disabled: item.buttonProps.disabled, label: item.buttonProps.label, iconStyle: item.buttonProps.iconStyle })) : (React__default.createElement("div", { key: index, className: `${borderColorClasses} tw-flex tw-items-center tw-justify-center tw-rounded-none tw-ml-[-1px] active:tw-z-30 active:tw-border tw-border last:tw-rounded-r-sm` }, item.element)))));
15949
- };
15947
+ return (React__default.createElement("div", { id: id, className: appliedClasses },
15948
+ field ? (React__default.createElement("div", { "data-testid": testId, className: `tw-flex tw-flex-1 tw-cursor-pointer active:tw-z-50 ${fieldAppliedClasses}` }, field)) : (React__default.createElement(TextField, { testId: testId, readonly: readonly, onChange: onChange, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, name: name, ref: ref, showError: showError, value: value, required: required, placeholder: placeholder, autoComplete: autoComplete, autoFocus: autoFocus, id: id, type: type, disabled: disabled, step: step, min: min, max: max, maxLength: maxLength, minLength: minLength, extraClassNames: `tw-flex tw-flex-1 tw-w-full tw-rounded-r-none focus:tw-z-30 ${extraClassNames}`, ...tooltipData })),
15949
+ append.filter(Boolean).map((item, index) => item?.variant === 'button' ? (React__default.createElement(Button, { key: index, extraClassNames: "tw-ml-[-1px] focus:tw-z-40 focus:tw-border tw-rounded-l-none tw-rounded-r-none last:tw-rounded-r-sm", onClick: item.buttonProps.onClick, variant: item.buttonProps.variant, icon: item.buttonProps.icon, iconColor: item.buttonProps.iconColor, testId: item.buttonProps.testId, disabled: item.buttonProps.disabled, label: item.buttonProps.label, iconStyle: item.buttonProps.iconStyle, tooltip: item.buttonProps.tooltip, tooltipOptions: item.buttonProps.tooltipOptions, tooltipTestId: item.buttonProps.tooltipTestId, isHtmlTooltip: item.buttonProps.isHtmlTooltip, type: item.buttonProps.type, iconPosition: item.buttonProps.iconPosition })) : (React__default.createElement("div", { key: index, className: `${borderColorClasses} tw-flex tw-items-center tw-justify-center tw-rounded-none tw-ml-[-1px] active:tw-z-30 active:tw-border tw-border last:tw-rounded-r-sm` }, item?.element)))));
15950
+ });
15950
15951
 
15951
15952
  // packages/core/number/src/number.ts
15952
15953
  function clamp(value, [min, max]) {
@@ -17162,14 +17163,14 @@ Defaulting to \`null\`.`;
17162
17163
  var Root = Progress;
17163
17164
  var Indicator = ProgressIndicator;
17164
17165
 
17165
- const ProgressBar = ({ value, max = 100, label, extraClasses }) => {
17166
+ const ProgressBar = ({ value, max = 100, label, extraClasses, testId }) => {
17166
17167
  const tooltipData = getQTipData({ tooltip: label });
17167
17168
  const [progress, setProgress] = React__default.useState(0);
17168
17169
  React__default.useEffect(() => {
17169
17170
  const timer = setTimeout(() => setProgress(value), 500);
17170
17171
  return () => clearTimeout(timer);
17171
17172
  }, []);
17172
- return (React__default.createElement("span", { ...tooltipData },
17173
+ return (React__default.createElement("span", { "data-testid": testId, ...tooltipData },
17173
17174
  React__default.createElement(Root, { className: "tw-relative tw-h-[18px] tw-w-full tw-overflow-hidden tw-rounded-[2.5px] tw-bg-sq-dark-gray dark:tw-bg-sq-dark-disabled-gray", max: max, value: value },
17174
17175
  React__default.createElement(Indicator, { className: `tw-ease-[cubic-bezier(0.65, 0, 0.35, 1)] tw-h-full tw-bg-sq-color-dark tw-transition-transform tw-duration-[660ms] ${extraClasses}`, style: { transform: `translateX(-${100 - progress}%)` } }))));
17175
17176
  };