@pushwoosh/dumb-components 1.0.0 → 1.0.1

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 (249) hide show
  1. package/ActionsGroup/ActionsGroup.d.ts +3 -0
  2. package/ActionsGroup/ActionsGroup.js +18 -0
  3. package/ActionsGroup/ActionsGroupItem.d.ts +3 -0
  4. package/ActionsGroup/ActionsGroupItem.js +12 -0
  5. package/ActionsGroup/index.d.ts +3 -0
  6. package/ActionsGroup/index.js +2 -0
  7. package/ActionsGroup/styles.d.ts +7 -0
  8. package/ActionsGroup/styles.js +22 -0
  9. package/ActionsGroup/types.d.ts +12 -0
  10. package/Badge/Badge.d.ts +3 -0
  11. package/Badge/Badge.js +16 -0
  12. package/Badge/index.d.ts +2 -0
  13. package/Badge/index.js +1 -0
  14. package/Badge/maps.d.ts +19 -0
  15. package/Badge/maps.js +19 -0
  16. package/Badge/styles.d.ts +5 -0
  17. package/Badge/styles.js +14 -0
  18. package/Badge/types.d.ts +8 -0
  19. package/Banner/Banner.d.ts +3 -0
  20. package/Banner/Banner.js +82 -0
  21. package/Banner/colors.d.ts +12 -0
  22. package/Banner/colors.js +115 -0
  23. package/Banner/index.d.ts +2 -0
  24. package/Banner/index.js +1 -0
  25. package/Banner/maps.d.ts +27 -0
  26. package/Banner/maps.js +19 -0
  27. package/Banner/styles.d.ts +29 -0
  28. package/Banner/styles.js +45 -0
  29. package/Banner/types.d.ts +20 -0
  30. package/Button/Button.d.ts +5 -0
  31. package/Button/Button.js +48 -0
  32. package/Button/GhostButton.d.ts +1 -0
  33. package/Button/GhostButton.js +5 -0
  34. package/Button/colors.d.ts +16 -0
  35. package/Button/colors.js +130 -0
  36. package/Button/index.d.ts +3 -0
  37. package/Button/index.js +2 -0
  38. package/Button/maps.d.ts +132 -0
  39. package/Button/maps.js +37 -0
  40. package/Button/styles.d.ts +120 -0
  41. package/Button/styles.js +103 -0
  42. package/Button/types.d.ts +26 -0
  43. package/CardMetric/CardChildren.d.ts +3 -0
  44. package/CardMetric/CardChildren.js +25 -0
  45. package/CardMetric/CardCollapse.d.ts +3 -0
  46. package/CardMetric/CardCollapse.js +13 -0
  47. package/CardMetric/CardMetric.d.ts +3 -0
  48. package/CardMetric/CardMetric.js +62 -0
  49. package/CardMetric/index.d.ts +2 -0
  50. package/CardMetric/index.js +1 -0
  51. package/CardMetric/styles.d.ts +13 -0
  52. package/CardMetric/styles.js +74 -0
  53. package/CardMetric/types.d.ts +34 -0
  54. package/Checkbox/Checkbox.d.ts +3 -0
  55. package/Checkbox/Checkbox.js +47 -0
  56. package/Checkbox/index.d.ts +2 -0
  57. package/Checkbox/index.js +1 -0
  58. package/Checkbox/maps.d.ts +3 -0
  59. package/Checkbox/maps.js +7 -0
  60. package/Checkbox/styles.d.ts +9 -0
  61. package/Checkbox/styles.js +17 -0
  62. package/Checkbox/types.d.ts +15 -0
  63. package/Drawer/Drawer.d.ts +3 -0
  64. package/Drawer/Drawer.js +62 -0
  65. package/Drawer/index.d.ts +1 -0
  66. package/Drawer/index.js +1 -0
  67. package/Drawer/maps.d.ts +6 -0
  68. package/Drawer/maps.js +6 -0
  69. package/Drawer/styles.d.ts +11 -0
  70. package/Drawer/styles.js +57 -0
  71. package/Drawer/types.d.ts +18 -0
  72. package/EditableField/EditableField.d.ts +3 -0
  73. package/EditableField/EditableField.js +61 -0
  74. package/EditableField/index.d.ts +2 -0
  75. package/EditableField/index.js +1 -0
  76. package/EditableField/styles.d.ts +8 -0
  77. package/EditableField/styles.js +25 -0
  78. package/EditableField/types.d.ts +15 -0
  79. package/EmailTemplatePreview/EmailTemplatePreview.d.ts +3 -11
  80. package/EmailTemplatePreview/EmailTemplatePreview.js +11 -10
  81. package/EmailTemplatePreview/components/NoEmailTemplatePreview/NoEmailTemplatePreview.d.ts +2 -2
  82. package/EmailTemplatePreview/components/NoEmailTemplatePreview/NoEmailTemplatePreview.js +3 -3
  83. package/EmailTemplatePreview/components/NoEmailTemplatePreview/assets/PW_logo.svg +1 -5
  84. package/EmailTemplatePreview/components/NoEmailTemplatePreview/{styled.js → styles.js} +2 -2
  85. package/EmailTemplatePreview/{styled.js → styles.js} +1 -1
  86. package/EmailTemplatePreview/types.d.ts +8 -0
  87. package/ExportResult/ExportResult.d.ts +2 -2
  88. package/ExportResult/ExportResult.js +10 -9
  89. package/ExportResult/{styled.js → styles.js} +5 -5
  90. package/FieldBox/FieldBox.d.ts +3 -3
  91. package/FieldBox/FieldBox.js +8 -7
  92. package/FieldBox/index.d.ts +1 -1
  93. package/FieldBox/types.js +1 -0
  94. package/NumberPicker/NumberPicker.js +2 -2
  95. package/NumberPicker/{AutosizeInput.d.ts → components/AutosizeInput/AutosizeInput.d.ts} +1 -1
  96. package/NumberPicker/{AutosizeInput.js → components/AutosizeInput/AutosizeInput.js} +3 -3
  97. package/NumberPicker/components/AutosizeInput/index.d.ts +1 -0
  98. package/NumberPicker/components/AutosizeInput/index.js +1 -0
  99. package/NumberPicker/{AutosizeInput.styled.js → components/AutosizeInput/styles.js} +1 -1
  100. package/NumberPicker/components/AutosizeInput/types.js +1 -0
  101. package/NumberPicker/{styled.js → styles.js} +3 -3
  102. package/Popover/Popover.d.ts +3 -0
  103. package/Popover/Popover.js +44 -0
  104. package/Popover/index.d.ts +4 -0
  105. package/Popover/index.js +2 -0
  106. package/Popover/styles.d.ts +6 -0
  107. package/Popover/styles.js +19 -0
  108. package/Popover/types.d.ts +12 -0
  109. package/Popover/types.js +1 -0
  110. package/ProgressBar/ProgressBar.d.ts +2 -2
  111. package/ProgressBar/ProgressBar.js +19 -16
  112. package/ProgressBar/{styled.js → styles.js} +10 -10
  113. package/PushPreview/PushPreview.js +3 -3
  114. package/PushPreview/{styled.js → styles.js} +8 -8
  115. package/Radio/Radio.d.ts +3 -0
  116. package/Radio/Radio.js +37 -0
  117. package/Radio/index.d.ts +2 -0
  118. package/Radio/index.js +1 -0
  119. package/Radio/maps.d.ts +3 -0
  120. package/Radio/maps.js +8 -0
  121. package/Radio/styled.d.ts +5 -0
  122. package/Radio/styled.js +13 -0
  123. package/Radio/types.d.ts +12 -0
  124. package/Radio/types.js +1 -0
  125. package/Spinner/Spinner.d.ts +3 -0
  126. package/Spinner/Spinner.js +20 -0
  127. package/Spinner/assets/index.d.ts +4 -0
  128. package/Spinner/assets/index.js +6 -0
  129. package/Spinner/assets/spinner.medium.svg +1 -0
  130. package/Spinner/assets/spinner.small.svg +1 -0
  131. package/Spinner/index.d.ts +2 -0
  132. package/Spinner/index.js +1 -0
  133. package/Spinner/maps.d.ts +5 -0
  134. package/Spinner/maps.js +5 -0
  135. package/Spinner/styles.d.ts +5 -0
  136. package/Spinner/styles.js +20 -0
  137. package/Spinner/types.d.ts +6 -0
  138. package/Spinner/types.js +1 -0
  139. package/StatisticCard/StatisticCard.d.ts +2 -2
  140. package/StatisticCard/StatisticCard.js +15 -14
  141. package/Tabs/{tab/tab.d.ts → components/Tab/Tab.d.ts} +2 -2
  142. package/Tabs/{tab/tab.js → components/Tab/Tab.js} +2 -2
  143. package/Tabs/components/Tab/index.d.ts +1 -0
  144. package/Tabs/components/Tab/index.js +1 -0
  145. package/Tabs/{tab/tab.types.d.ts → components/Tab/types.d.ts} +1 -1
  146. package/Tabs/components/Tab/types.js +1 -0
  147. package/Tabs/{tab-bar/tab-bar.js → components/TabBar/TabBar.js} +2 -2
  148. package/Tabs/components/TabBar/index.d.ts +1 -0
  149. package/Tabs/components/TabBar/index.js +1 -0
  150. package/Tabs/{tab-bar/tab-bar.styles.js → components/TabBar/styles.js} +2 -2
  151. package/Tabs/components/TabBar/types.js +1 -0
  152. package/Tabs/{tabs-list-slide-frame/tabs-list-slide-frame.d.ts → components/TabBarScrollableFrame/TabBarScrollableFrame.d.ts} +1 -1
  153. package/Tabs/{tabs-list-slide-frame/tabs-list-slide-frame.js → components/TabBarScrollableFrame/TabBarScrollableFrame.js} +2 -2
  154. package/Tabs/components/TabBarScrollableFrame/index.d.ts +1 -0
  155. package/Tabs/components/TabBarScrollableFrame/index.js +1 -0
  156. package/Tabs/{tabs-list-slide-frame/tabs-list-slide-frame.styles.js → components/TabBarScrollableFrame/styles.js} +5 -5
  157. package/Tabs/components/TabBarScrollableFrame/types.js +1 -0
  158. package/Tabs/{tab-base/tab-base.js → components/TabBase/TabBase.js} +1 -1
  159. package/Tabs/components/TabBase/index.d.ts +1 -0
  160. package/Tabs/components/TabBase/index.js +1 -0
  161. package/Tabs/{tab-base/tab-base.styles.js → components/TabBase/styles.js} +4 -4
  162. package/Tabs/components/TabBase/types.js +1 -0
  163. package/Tabs/{tab-panel/tab-panel.d.ts → components/TabPanel/TabPanel.d.ts} +1 -1
  164. package/Tabs/{tab-panel/tab-panel.js → components/TabPanel/TabPanel.js} +1 -1
  165. package/Tabs/components/TabPanel/index.d.ts +1 -0
  166. package/Tabs/components/TabPanel/index.js +1 -0
  167. package/Tabs/{tab-panel → components/TabPanel}/styles.js +1 -1
  168. package/Tabs/{tab-panel/tab-panel.types.d.ts → components/TabPanel/types.d.ts} +1 -1
  169. package/Tabs/components/TabPanel/types.js +1 -0
  170. package/Tabs/{tabs/tabs.d.ts → components/Tabs/Tabs.d.ts} +1 -1
  171. package/Tabs/{tabs/tabs.js → components/Tabs/Tabs.js} +1 -1
  172. package/Tabs/components/Tabs/index.d.ts +1 -0
  173. package/Tabs/components/Tabs/index.js +1 -0
  174. package/Tabs/{tabs → components/Tabs}/styles.js +1 -1
  175. package/Tabs/{tabs/tabs.types.d.ts → components/Tabs/types.d.ts} +1 -1
  176. package/Tabs/components/Tabs/types.js +1 -0
  177. package/Tabs/{tabs.context.d.ts → context.d.ts} +1 -1
  178. package/Tabs/index.d.ts +5 -5
  179. package/Tabs/index.js +4 -5
  180. package/Tabs/types.js +1 -0
  181. package/Tooltip/Tooltip.d.ts +3 -0
  182. package/Tooltip/Tooltip.js +47 -0
  183. package/Tooltip/index.d.ts +2 -0
  184. package/Tooltip/index.js +1 -0
  185. package/Tooltip/maps.d.ts +48 -0
  186. package/Tooltip/maps.js +161 -0
  187. package/Tooltip/styles.d.ts +5 -0
  188. package/Tooltip/styles.js +22 -0
  189. package/Tooltip/types.d.ts +14 -0
  190. package/Tooltip/types.js +1 -0
  191. package/hooks/index.d.ts +2 -0
  192. package/hooks/index.js +2 -0
  193. package/hooks/useElementWidth.d.ts +11 -0
  194. package/hooks/useElementWidth.js +27 -0
  195. package/hooks/useOnClickOutside.d.ts +4 -0
  196. package/hooks/useOnClickOutside.js +23 -0
  197. package/index.d.ts +14 -3
  198. package/index.js +12 -1
  199. package/package.json +6 -3
  200. package/Tabs/tab/index.d.ts +0 -2
  201. package/Tabs/tab/index.js +0 -2
  202. package/Tabs/tab-bar/index.d.ts +0 -2
  203. package/Tabs/tab-bar/index.js +0 -2
  204. package/Tabs/tab-base/index.d.ts +0 -3
  205. package/Tabs/tab-base/index.js +0 -3
  206. package/Tabs/tab-panel/index.d.ts +0 -2
  207. package/Tabs/tab-panel/index.js +0 -2
  208. package/Tabs/tabs/index.d.ts +0 -2
  209. package/Tabs/tabs/index.js +0 -2
  210. package/Tabs/tabs-list-slide-frame/index.d.ts +0 -3
  211. package/Tabs/tabs-list-slide-frame/index.js +0 -3
  212. package/{FieldBox/FieldBox.types.js → ActionsGroup/types.js} +0 -0
  213. package/{NumberPicker/AutosizeInput.types.js → Badge/types.js} +0 -0
  214. package/{Tabs/tab-bar/tab-bar.types.js → Banner/types.js} +0 -0
  215. package/{Tabs/tab-base/tab-base.types.js → Button/types.js} +0 -0
  216. package/{Tabs/tab-panel/tab-panel.types.js → CardMetric/types.js} +0 -0
  217. package/{Tabs/tab/tab.types.js → Checkbox/types.js} +0 -0
  218. package/{Tabs/tabs-list-slide-frame/tabs-list-slide-frame.types.js → Drawer/types.js} +0 -0
  219. package/{Tabs/tabs.types.js → EditableField/types.js} +0 -0
  220. package/EmailTemplatePreview/components/NoEmailTemplatePreview/{styled.d.ts → styles.d.ts} +0 -0
  221. package/EmailTemplatePreview/{styled.d.ts → styles.d.ts} +0 -0
  222. package/{Tabs/tabs/tabs.types.js → EmailTemplatePreview/types.js} +0 -0
  223. package/ExportResult/{styled.d.ts → styles.d.ts} +0 -0
  224. package/FieldBox/{FieldBox.types.d.ts → types.d.ts} +0 -0
  225. package/NumberPicker/{AutosizeInput.constants.d.ts → components/AutosizeInput/constants.d.ts} +0 -0
  226. package/NumberPicker/{AutosizeInput.constants.js → components/AutosizeInput/constants.js} +0 -0
  227. package/NumberPicker/{AutosizeInput.styled.d.ts → components/AutosizeInput/styles.d.ts} +0 -0
  228. package/NumberPicker/{AutosizeInput.types.d.ts → components/AutosizeInput/types.d.ts} +0 -0
  229. package/NumberPicker/{styled.d.ts → styles.d.ts} +0 -0
  230. package/ProgressBar/{styled.d.ts → styles.d.ts} +0 -0
  231. package/PushPreview/{constants/urls.d.ts → constants.d.ts} +0 -0
  232. package/PushPreview/{constants/urls.js → constants.js} +0 -0
  233. package/PushPreview/{helpers/helpers.d.ts → helpers.d.ts} +0 -0
  234. package/PushPreview/{helpers/helpers.js → helpers.js} +0 -0
  235. package/PushPreview/{styled.d.ts → styles.d.ts} +0 -0
  236. package/Tabs/{tab-bar/tab-bar.d.ts → components/TabBar/TabBar.d.ts} +0 -0
  237. package/Tabs/{tab-bar/tab-bar.styles.d.ts → components/TabBar/styles.d.ts} +0 -0
  238. package/Tabs/{tab-bar/tab-bar.types.d.ts → components/TabBar/types.d.ts} +0 -0
  239. package/Tabs/{tabs-list-slide-frame/tabs-list-slide-frame.styles.d.ts → components/TabBarScrollableFrame/styles.d.ts} +0 -0
  240. package/Tabs/{tabs-list-slide-frame/tabs-list-slide-frame.types.d.ts → components/TabBarScrollableFrame/types.d.ts} +0 -0
  241. package/Tabs/{tab-base/tab-base.d.ts → components/TabBase/TabBase.d.ts} +1 -1
  242. package/Tabs/{tab-base/tab-base.styles.d.ts → components/TabBase/styles.d.ts} +0 -0
  243. package/Tabs/{tab-base/tab-base.types.d.ts → components/TabBase/types.d.ts} +1 -1
  244. /package/Tabs/{tab-panel → components/TabPanel}/styles.d.ts +0 -0
  245. /package/Tabs/{tabs → components/Tabs}/styles.d.ts +0 -0
  246. /package/Tabs/{tabs.context.js → context.js} +0 -0
  247. /package/Tabs/{tabs.helpers.d.ts → helpers.d.ts} +0 -0
  248. /package/Tabs/{tabs.helpers.js → helpers.js} +0 -0
  249. /package/Tabs/{tabs.types.d.ts → types.d.ts} +0 -0
@@ -0,0 +1,48 @@
1
+ import type { TooltipPosition } from './types';
2
+ export declare const TooltipPositionToTippyPlacementMap: {
3
+ 'top-start': "top-start";
4
+ 'top-middle': "top";
5
+ 'top-end': "top-end";
6
+ 'right-start': "right-start";
7
+ 'right-middle': "right";
8
+ 'right-end': "right-end";
9
+ 'bottom-start': "bottom-start";
10
+ 'bottom-middle': "bottom";
11
+ 'bottom-end': "bottom-end";
12
+ 'left-start': "left-start";
13
+ 'left-middle': "left";
14
+ 'left-end': "left-end";
15
+ };
16
+ export declare const TooltipPositionToTippyOffsetMap: {
17
+ 'top-start': number[];
18
+ 'top-middle': number[];
19
+ 'top-end': number[];
20
+ 'right-start': number[];
21
+ 'right-middle': number[];
22
+ 'right-end': number[];
23
+ 'bottom-start': number[];
24
+ 'bottom-middle': number[];
25
+ 'bottom-end': number[];
26
+ 'left-start': number[];
27
+ 'left-middle': number[];
28
+ 'left-end': number[];
29
+ };
30
+ export declare const TooltipPositionToArrowOffsetMap: {
31
+ 'top-start': string;
32
+ 'top-middle': string;
33
+ 'top-end': string;
34
+ 'right-start': string;
35
+ 'right-middle': string;
36
+ 'right-end': string;
37
+ 'bottom-start': string;
38
+ 'bottom-middle': string;
39
+ 'bottom-end': string;
40
+ 'left-start': string;
41
+ 'left-middle': string;
42
+ 'left-end': string;
43
+ };
44
+ export declare function getTransform(position: TooltipPosition): "none" | "translateX(-50%) translateY(50%) rotate(45deg);" | "translateX(50%) translateY(50%) rotate(45deg);" | "translateX(-50%) translateY(-50%) rotate(45deg);" | "translateX(50%) translateY(-50%) rotate(45deg);";
45
+ export declare function getTopPosition(position: TooltipPosition, offset: string): string;
46
+ export declare function getRightPosition(position: TooltipPosition, offset: string): string;
47
+ export declare function getBottomPosition(position: TooltipPosition, offset: string): string;
48
+ export declare function getLeftPosition(position: TooltipPosition, offset: string): string;
@@ -0,0 +1,161 @@
1
+ export const TooltipPositionToTippyPlacementMap = {
2
+ 'top-start': 'top-start',
3
+ 'top-middle': 'top',
4
+ 'top-end': 'top-end',
5
+ 'right-start': 'right-start',
6
+ 'right-middle': 'right',
7
+ 'right-end': 'right-end',
8
+ 'bottom-start': 'bottom-start',
9
+ 'bottom-middle': 'bottom',
10
+ 'bottom-end': 'bottom-end',
11
+ 'left-start': 'left-start',
12
+ 'left-middle': 'left',
13
+ 'left-end': 'left-end'
14
+ };
15
+ export const TooltipPositionToTippyOffsetMap = {
16
+ 'top-start': [-6, 8],
17
+ 'top-middle': [0, 8],
18
+ 'top-end': [6, 8],
19
+ 'right-start': [-6, 8],
20
+ 'right-middle': [0, 8],
21
+ 'right-end': [6, 8],
22
+ 'bottom-start': [-6, 8],
23
+ 'bottom-middle': [0, 8],
24
+ 'bottom-end': [6, 8],
25
+ 'left-start': [-6, 8],
26
+ 'left-middle': [0, 8],
27
+ 'left-end': [6, 8]
28
+ };
29
+ export const TooltipPositionToArrowOffsetMap = {
30
+ 'top-start': '24px',
31
+ 'top-middle': '50%',
32
+ 'top-end': '24px',
33
+ 'right-start': '24px',
34
+ 'right-middle': '50%',
35
+ 'right-end': '24px',
36
+ 'bottom-start': '24px',
37
+ 'bottom-middle': '50%',
38
+ 'bottom-end': '24px',
39
+ 'left-start': '24px',
40
+ 'left-middle': '50%',
41
+ 'left-end': '24px'
42
+ };
43
+ export function getTransform(position) {
44
+ switch (position) {
45
+ case 'top-start':
46
+ return 'translateX(-50%) translateY(50%) rotate(45deg);';
47
+ case 'top-middle':
48
+ return 'translateX(-50%) translateY(50%) rotate(45deg);';
49
+ case 'top-end':
50
+ return 'translateX(50%) translateY(50%) rotate(45deg);';
51
+ case 'right-start':
52
+ return 'translateX(-50%) translateY(-50%) rotate(45deg);';
53
+ case 'right-middle':
54
+ return 'translateX(-50%) translateY(-50%) rotate(45deg);';
55
+ case 'right-end':
56
+ return 'translateX(-50%) translateY(50%) rotate(45deg);';
57
+ case 'bottom-start':
58
+ return 'translateX(-50%) translateY(-50%) rotate(45deg);';
59
+ case 'bottom-middle':
60
+ return 'translateX(-50%) translateY(-50%) rotate(45deg);';
61
+ case 'bottom-end':
62
+ return 'translateX(50%) translateY(-50%) rotate(45deg);';
63
+ case 'left-start':
64
+ return 'translateX(50%) translateY(-50%) rotate(45deg);';
65
+ case 'left-middle':
66
+ return 'translateX(50%) translateY(-50%) rotate(45deg);';
67
+ case 'left-end':
68
+ return 'translateX(50%) translateY(50%) rotate(45deg);';
69
+ default:
70
+ console.error(`[Tooltip]: unknown position: ${position}!`);
71
+ return 'none';
72
+ }
73
+ }
74
+ export function getTopPosition(position, offset) {
75
+ switch (position) {
76
+ case 'top-start':
77
+ case 'top-middle':
78
+ case 'top-end':
79
+ case 'right-end':
80
+ case 'left-end':
81
+ return 'auto';
82
+ case 'right-start':
83
+ case 'right-middle':
84
+ case 'left-start':
85
+ case 'left-middle':
86
+ return offset;
87
+ case 'bottom-start':
88
+ case 'bottom-middle':
89
+ case 'bottom-end':
90
+ return '0';
91
+ default:
92
+ console.error(`[Tooltip]: unknown position: ${position}!`);
93
+ return 'auto';
94
+ }
95
+ }
96
+ export function getRightPosition(position, offset) {
97
+ switch (position) {
98
+ case 'top-start':
99
+ case 'top-middle':
100
+ case 'right-start':
101
+ case 'right-middle':
102
+ case 'right-end':
103
+ case 'bottom-start':
104
+ case 'bottom-middle':
105
+ return 'auto';
106
+ case 'top-end':
107
+ case 'bottom-end':
108
+ return offset;
109
+ case 'left-end':
110
+ case 'left-start':
111
+ case 'left-middle':
112
+ return '0';
113
+ default:
114
+ console.error(`[Tooltip]: unknown position: ${position}!`);
115
+ return 'auto';
116
+ }
117
+ }
118
+ export function getBottomPosition(position, offset) {
119
+ switch (position) {
120
+ case 'top-start':
121
+ case 'top-middle':
122
+ case 'top-end':
123
+ return '0';
124
+ case 'right-end':
125
+ case 'left-end':
126
+ return offset;
127
+ case 'bottom-start':
128
+ case 'bottom-middle':
129
+ case 'bottom-end':
130
+ case 'right-start':
131
+ case 'right-middle':
132
+ case 'left-start':
133
+ case 'left-middle':
134
+ return 'auto';
135
+ default:
136
+ console.error(`[Tooltip]: unknown position: ${position}!`);
137
+ return 'auto';
138
+ }
139
+ }
140
+ export function getLeftPosition(position, offset) {
141
+ switch (position) {
142
+ case 'top-start':
143
+ case 'top-middle':
144
+ case 'bottom-start':
145
+ case 'bottom-middle':
146
+ return offset;
147
+ case 'top-end':
148
+ case 'bottom-end':
149
+ case 'left-end':
150
+ case 'left-start':
151
+ case 'left-middle':
152
+ return 'auto';
153
+ case 'right-start':
154
+ case 'right-end':
155
+ case 'right-middle':
156
+ return '0';
157
+ default:
158
+ console.error(`[Tooltip]: unknown position: ${position}!`);
159
+ return 'auto';
160
+ }
161
+ }
@@ -0,0 +1,5 @@
1
+ import type { TooltipPosition } from './types';
2
+ export declare const TooltipBox: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@tippyjs/react").TippyProps>, any, {
3
+ $arrowOffset: string;
4
+ $position: TooltipPosition;
5
+ }, never>;
@@ -0,0 +1,22 @@
1
+ import Tippy from '@tippyjs/react';
2
+ import styled from 'styled-components';
3
+ import { Color, FontSize, ShapeRadius, Spacing } from '@pushwoosh/kit-constants';
4
+ import { getBottomPosition, getLeftPosition, getRightPosition, getTopPosition, getTransform } from './maps';
5
+ export const TooltipBox = styled(Tippy).withConfig({
6
+ displayName: "TooltipBox",
7
+ componentId: "sc-1hariht-0"
8
+ })(["&::after{content:\"\";position:absolute;top:", ";right:", ";bottom:", ";left:", ";width:10px;height:10px;margin:auto;border-radius:2px;background-color:", ";transform:", ";}&.tippy-box{position:static;display:block;padding:", ";color:", ";background-color:", ";border-radius:", ";font-size:", ";line-height:inherit;outline:0;transition:none;}.tippy-content{position:static;padding:0;z-index:auto;}.tippy-arrow{display:none;}"], ({
9
+ $position,
10
+ $arrowOffset
11
+ }) => getTopPosition($position, $arrowOffset), ({
12
+ $position,
13
+ $arrowOffset
14
+ }) => getRightPosition($position, $arrowOffset), ({
15
+ $position,
16
+ $arrowOffset
17
+ }) => getBottomPosition($position, $arrowOffset), ({
18
+ $position,
19
+ $arrowOffset
20
+ }) => getLeftPosition($position, $arrowOffset), Color.MAIN, ({
21
+ $position
22
+ }) => getTransform($position), Spacing.S4, Color.CLEAR, Color.MAIN, ShapeRadius.DIALOG, FontSize.REGULAR);
@@ -0,0 +1,14 @@
1
+ import type { RefObject, ReactElement, ReactNode } from 'react';
2
+ export type TooltipPosition = 'top-start' | 'top-middle' | 'top-end' | 'right-start' | 'right-middle' | 'right-end' | 'bottom-start' | 'bottom-middle' | 'bottom-end' | 'left-start' | 'left-middle' | 'left-end';
3
+ export type TooltipProps = {
4
+ readonly content: ReactNode;
5
+ readonly position?: TooltipPosition;
6
+ readonly offset?: [number, number];
7
+ readonly arrowOffset?: string;
8
+ readonly maxWidth?: number | 'none';
9
+ readonly zIndex?: number;
10
+ readonly isDisabled?: boolean;
11
+ readonly isVisible?: boolean;
12
+ readonly reference?: RefObject<Element>;
13
+ readonly children?: ReactElement<unknown>;
14
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './useOnClickOutside';
2
+ export * from './useElementWidth';
package/hooks/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './useOnClickOutside';
2
+ export * from './useElementWidth';
@@ -0,0 +1,11 @@
1
+ import { type RefObject } from 'react';
2
+ type ForceUpdate = () => void;
3
+ type ElementWidth = number | null;
4
+ /**
5
+ * Хук для получения размера элемента
6
+ *
7
+ * @param { RefObject<HTMLElement> } ref - ссылка на элемент
8
+ * @return { [ElementWidth, ForceUpdate] } - размер элемента и функция для принудительного пересчета
9
+ */
10
+ export declare function useElementWidth(ref: RefObject<HTMLElement>): [ElementWidth, ForceUpdate];
11
+ export {};
@@ -0,0 +1,27 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ /**
3
+ * Хук для получения размера элемента
4
+ *
5
+ * @param { RefObject<HTMLElement> } ref - ссылка на элемент
6
+ * @return { [ElementWidth, ForceUpdate] } - размер элемента и функция для принудительного пересчета
7
+ */
8
+ export function useElementWidth(ref) {
9
+ const [elementWidth, setElementWidth] = useState(null);
10
+ useEffect(() => {
11
+ if (ref.current) {
12
+ const {
13
+ width
14
+ } = ref.current.getBoundingClientRect();
15
+ setElementWidth(width);
16
+ }
17
+ }, [ref]);
18
+ const forceUpdate = useCallback(() => {
19
+ if (ref.current) {
20
+ const {
21
+ width
22
+ } = ref.current.getBoundingClientRect();
23
+ setElementWidth(width);
24
+ }
25
+ }, [ref]);
26
+ return [elementWidth, forceUpdate];
27
+ }
@@ -0,0 +1,4 @@
1
+ import { type RefObject } from 'react';
2
+ type Ref = RefObject<HTMLElement> | RefObject<HTMLElement>[];
3
+ export declare function useOnClickOutside(ref: Ref, handler: () => void): void;
4
+ export {};
@@ -0,0 +1,23 @@
1
+ import { useEffect } from 'react';
2
+ export function useOnClickOutside(ref, handler) {
3
+ useEffect(() => {
4
+ const references = Array.isArray(ref) ? ref : [ref];
5
+ function listener({
6
+ target
7
+ }) {
8
+ const isClickInArea = references.some(reference => {
9
+ var _reference$current;
10
+ return (_reference$current = reference.current) === null || _reference$current === void 0 ? void 0 : _reference$current.contains(target);
11
+ });
12
+ if (!isClickInArea) {
13
+ handler();
14
+ }
15
+ }
16
+ document.addEventListener('mousedown', listener);
17
+ document.addEventListener('touchstart', listener);
18
+ return () => {
19
+ document.removeEventListener('mousedown', listener);
20
+ document.removeEventListener('touchstart', listener);
21
+ };
22
+ }, [ref, handler]);
23
+ }
package/index.d.ts CHANGED
@@ -1,9 +1,20 @@
1
+ export { ActionsGroup } from './ActionsGroup';
2
+ export { Badge, type BadgeColor } from './Badge';
3
+ export { Banner, type BannerType } from './Banner';
4
+ export { Button, GhostButton } from './Button';
5
+ export { CardMetric } from './CardMetric';
6
+ export { Checkbox } from './Checkbox';
7
+ export { EditableField } from './EditableField';
1
8
  export { ProgressBar } from './ProgressBar';
2
- export * from './Tabs';
9
+ export { Popover } from './Popover';
10
+ export { Radio } from './Radio';
11
+ export { Spinner } from './Spinner';
12
+ export { Tooltip, type TooltipPosition } from './Tooltip';
13
+ export { Tab, TabBar, TabPanel, Tabs, type TabCode } from './Tabs';
3
14
  export { StatisticCard } from './StatisticCard';
4
- export { EmailTemplatePreview, NoEmailTemplatePreview, } from './EmailTemplatePreview';
15
+ export { EmailTemplatePreview, NoEmailTemplatePreview } from './EmailTemplatePreview';
5
16
  export { PushPreview } from './PushPreview';
6
17
  export { ExportResult } from './ExportResult';
7
- export { NativeInput, NativeTextarea, NativeSelect, } from './native';
18
+ export { NativeInput, NativeTextarea, NativeSelect } from './native';
8
19
  export { FieldBox } from './FieldBox';
9
20
  export { NumberPicker } from './NumberPicker';
package/index.js CHANGED
@@ -1,5 +1,16 @@
1
+ export { ActionsGroup } from './ActionsGroup';
2
+ export { Badge } from './Badge';
3
+ export { Banner } from './Banner';
4
+ export { Button, GhostButton } from './Button';
5
+ export { CardMetric } from './CardMetric';
6
+ export { Checkbox } from './Checkbox';
7
+ export { EditableField } from './EditableField';
1
8
  export { ProgressBar } from './ProgressBar';
2
- export * from './Tabs';
9
+ export { Popover } from './Popover';
10
+ export { Radio } from './Radio';
11
+ export { Spinner } from './Spinner';
12
+ export { Tooltip } from './Tooltip';
13
+ export { Tab, TabBar, TabPanel, Tabs } from './Tabs';
3
14
  export { StatisticCard } from './StatisticCard';
4
15
  export { EmailTemplatePreview, NoEmailTemplatePreview } from './EmailTemplatePreview';
5
16
  export { PushPreview } from './PushPreview';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushwoosh/dumb-components",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "React components to build Pushwoosh products",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -11,7 +11,7 @@
11
11
  "build": "pushwoosh-engine lib:build",
12
12
  "playground": "`pushwoosh-engine lib:command:playground`",
13
13
  "check": "npm run check:lint && npm run check:types",
14
- "check:lint": "echo \"Run check:lint\" && eslint .",
14
+ "check:lint": "echo \"Run check:lint\" && eslint src",
15
15
  "check:types": "echo \"Run check:types\" && pushwoosh-engine lib:check-types"
16
16
  },
17
17
  "pre-commit": "check",
@@ -22,6 +22,7 @@
22
22
  "@types/lodash": "^4.17.13",
23
23
  "@types/react": "^18.2.69",
24
24
  "@types/react-dom": "^18.2.22",
25
+ "@types/react-transition-group": "^4.4.12",
25
26
  "@types/styled-components": "^5.1.34",
26
27
  "pre-commit": "^1.2.2",
27
28
  "react": "^18.2.0",
@@ -45,6 +46,8 @@
45
46
  "@pushwoosh/kit-spinner": "^1.5.1",
46
47
  "@pushwoosh/kit-typography": "^1.7.1",
47
48
  "liquidjs": "^10.18.0",
48
- "lodash": "^4.17.21"
49
+ "lodash": "^4.17.21",
50
+ "polished": "^4.3.1",
51
+ "react-transition-group": "^4.4.5"
49
52
  }
50
53
  }
@@ -1,2 +0,0 @@
1
- export * from './tab.types';
2
- export * from './tab';
package/Tabs/tab/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './tab.types';
2
- export * from './tab';
@@ -1,2 +0,0 @@
1
- export * from './tab-bar.types';
2
- export * from './tab-bar';
@@ -1,2 +0,0 @@
1
- export * from './tab-bar.types';
2
- export * from './tab-bar';
@@ -1,3 +0,0 @@
1
- export * from './tab-base.styles';
2
- export * from './tab-base.types';
3
- export * from './tab-base';
@@ -1,3 +0,0 @@
1
- export * from './tab-base.styles';
2
- export * from './tab-base.types';
3
- export * from './tab-base';
@@ -1,2 +0,0 @@
1
- export * from './tab-panel.types';
2
- export * from './tab-panel';
@@ -1,2 +0,0 @@
1
- export * from './tab-panel.types';
2
- export * from './tab-panel';
@@ -1,2 +0,0 @@
1
- export * from './tabs.types';
2
- export * from './tabs';
@@ -1,2 +0,0 @@
1
- export * from './tabs.types';
2
- export * from './tabs';
@@ -1,3 +0,0 @@
1
- export * from './tabs-list-slide-frame.styles';
2
- export * from './tabs-list-slide-frame.types';
3
- export * from './tabs-list-slide-frame';
@@ -1,3 +0,0 @@
1
- export * from './tabs-list-slide-frame.styles';
2
- export * from './tabs-list-slide-frame.types';
3
- export * from './tabs-list-slide-frame';
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -4,6 +4,6 @@ export declare const TabBase: React.ForwardRefExoticComponent<Omit<React.Detaile
4
4
  isDisabled?: boolean;
5
5
  isNew?: boolean;
6
6
  icon?: React.ReactNode;
7
- onClick: () => void;
8
7
  className?: string;
8
+ onClick: () => void;
9
9
  }> & React.RefAttributes<HTMLDivElement>>;
@@ -4,6 +4,6 @@ export type TabBaseProps = Omit<JSX.IntrinsicElements['div'], 'ref'> & Readonly<
4
4
  isDisabled?: boolean;
5
5
  isNew?: boolean;
6
6
  icon?: ReactNode;
7
- onClick: () => void;
8
7
  className?: string;
8
+ onClick: () => void;
9
9
  }>;
File without changes
File without changes
File without changes
File without changes
File without changes