@ssa-ui-kit/widgets 1.0.12 → 1.1.55-canary-79b6b0d-20250224

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 (257) hide show
  1. package/dist/components/AccountBalance/AccountBalance.d.ts +1 -1
  2. package/dist/components/AccountBalance/BalancePieChart.d.ts +1 -1
  3. package/dist/components/AccountBalance/BalancePieChartTitle.d.ts +1 -1
  4. package/dist/components/AccountKeys/AccountKeys.d.ts +1 -1
  5. package/dist/components/AccountKeys/stories/StoryComponent.d.ts +1 -1
  6. package/dist/components/Activity/Activity.d.ts +1 -1
  7. package/dist/components/Activity/ActivityItem.d.ts +1 -1
  8. package/dist/components/Bmi/Bmi.d.ts +1 -1
  9. package/dist/components/Bmi/BmiLabels.d.ts +1 -1
  10. package/dist/components/BotsTable/BotsTable.d.ts +1 -1
  11. package/dist/components/BotsTable/stories/BotsTable/StoryComponent.d.ts +1 -1
  12. package/dist/components/BotsTable/stories/BotsTable/components/Actions/ActionIcon.d.ts +1 -1
  13. package/dist/components/BotsTable/stories/BotsTable/components/Actions/ActionItem.d.ts +1 -1
  14. package/dist/components/BotsTable/stories/BotsTable/components/Actions/ActionMore.d.ts +1 -1
  15. package/dist/components/BotsTable/stories/BotsTable/components/Actions/ActionRun.d.ts +1 -1
  16. package/dist/components/BotsTable/stories/BotsTable/components/Actions/Actions.d.ts +1 -1
  17. package/dist/components/BotsTable/stories/BotsTable/components/Actions/ActionsWrapper.d.ts +1 -1
  18. package/dist/components/BotsTable/stories/BotsTable/components/Actions/consts.d.ts +3 -3
  19. package/dist/components/BotsTable/stories/BotsTable/components/Exchange/Exchange.d.ts +1 -1
  20. package/dist/components/BotsTable/stories/BotsTable/components/Exchange/consts.d.ts +3 -3
  21. package/dist/components/BotsTable/stories/BotsTable/components/PNL.d.ts +1 -1
  22. package/dist/components/BotsTable/stories/BotsTable/components/ROI.d.ts +1 -1
  23. package/dist/components/BotsTable/stories/BotsTable/components/TableTag.d.ts +1 -1
  24. package/dist/components/BotsTable/stories/BotsTable/components/Trade/Trade.d.ts +1 -1
  25. package/dist/components/BotsTable/stories/NoControlOrders/StoryComponent.d.ts +1 -1
  26. package/dist/components/BotsTable/stories/NoControlOrders/components/ActionMore.d.ts +1 -1
  27. package/dist/components/BotsTable/stories/NoControlOrders/components/Reason.d.ts +1 -1
  28. package/dist/components/BotsTable/stories/NoControlOrders/components/TableList.d.ts +1 -1
  29. package/dist/components/BotsTable/stories/NoControlOrders/components/TableRow.d.ts +1 -1
  30. package/dist/components/Calories/Calories.d.ts +1 -1
  31. package/dist/components/Calories/innerContent.d.ts +1 -1
  32. package/dist/components/ExchangeAccount/ExchangeAccount.d.ts +1 -1
  33. package/dist/components/HeartRate/BPM.d.ts +1 -1
  34. package/dist/components/HeartRate/HeartRate.d.ts +1 -1
  35. package/dist/components/HeartRate/HeartRateLineChart.d.ts +1 -1
  36. package/dist/components/ListGoals/ListGoals.d.ts +1 -1
  37. package/dist/components/ListGoals/ListGoalsCard.d.ts +1 -1
  38. package/dist/components/MealNutrients/MealNutrients.d.ts +1 -1
  39. package/dist/components/MealNutrients/MealNutrientsLineChart.d.ts +1 -1
  40. package/dist/components/MealNutrients/MealNutrientsTooltip.d.ts +1 -1
  41. package/dist/components/MealPlanner/MealPlanner.d.ts +1 -1
  42. package/dist/components/MealPlanner/MealPlannerCard.d.ts +1 -1
  43. package/dist/components/StepsCounter/StepsCounter.d.ts +1 -1
  44. package/dist/components/TradingInfoCard/TradingInfoCard.d.ts +1 -1
  45. package/dist/components/TradingInfoCard/TradingInfoCardContent.d.ts +1 -1
  46. package/dist/components/TradingInfoCard/TradingInfoCardTooltip.d.ts +1 -1
  47. package/dist/components/TradingInfoCard/TradingInfoCardWrapper.d.ts +1 -1
  48. package/dist/components/TradingScoreboard/TradingScoreboard.d.ts +1 -1
  49. package/dist/components/TradingScoreboard/helpers.d.ts +4 -4
  50. package/dist/components/UpcomingWorkouts/UpcomingWorkoutCard.d.ts +1 -1
  51. package/dist/components/UpcomingWorkouts/UpcomingWorkouts.d.ts +1 -1
  52. package/dist/components/UserCard/UserCard.d.ts +1 -1
  53. package/dist/components/UserCard/UserCardBMI.d.ts +1 -1
  54. package/dist/components/UserCard/UserCardCredentials.d.ts +1 -1
  55. package/dist/components/UserCard/UserCardItem.d.ts +1 -1
  56. package/dist/components/WaterConsume/WaterConsume.d.ts +1 -1
  57. package/dist/index.js +2439 -1
  58. package/dist/index.js.map +1 -1
  59. package/package.json +24 -27
  60. package/.babelrc.js +0 -4
  61. package/.env +0 -7
  62. package/.storybook/main.ts +0 -47
  63. package/.storybook/preview.tsx +0 -22
  64. package/.storybook/style.css +0 -40
  65. package/custom-shots/widgets-bots-table--no-control-orders--menu-opened_[w1920px].png +0 -0
  66. package/custom-shots/widgets-bots-table--no-control-orders--run-reason-modal_[w1920px].png +0 -0
  67. package/custom-shots/widgets-heart-rate--hint-opened__[w1440px].png +0 -0
  68. package/custom-shots/widgets-heart-rate--hint-opened__[w1920px].png +0 -0
  69. package/custom-shots/widgets-heart-rate--hint-opened__[w390px].png +0 -0
  70. package/custom-shots/widgets-heart-rate--hint-opened__[w900px].png +0 -0
  71. package/custom-shots/widgets-meal-nutrients--hint-opened__[w1440px].png +0 -0
  72. package/custom-shots/widgets-meal-nutrients--hint-opened__[w1920px].png +0 -0
  73. package/custom-shots/widgets-meal-nutrients--hint-opened__[w390px].png +0 -0
  74. package/custom-shots/widgets-meal-nutrients--hint-opened__[w900px].png +0 -0
  75. package/custom-shots/widgets-meal-nutrients--hint-opened__dropdown__[w1440px].png +0 -0
  76. package/custom-shots/widgets-meal-nutrients--hint-opened__dropdown__[w1920px].png +0 -0
  77. package/custom-shots/widgets-meal-nutrients--hint-opened__dropdown__[w390px].png +0 -0
  78. package/custom-shots/widgets-meal-nutrients--hint-opened__dropdown__[w900px].png +0 -0
  79. package/custom-shots/widgets-trading-info-card--hover__[w1920px].png +0 -0
  80. package/customTest.tsx +0 -35
  81. package/jest-setup.ts +0 -20
  82. package/lostpixel.config.ts +0 -29
  83. package/playwright.config.ts +0 -7
  84. package/src/components/AccountBalance/AccountBalance.specBackup.tsx +0 -105
  85. package/src/components/AccountBalance/AccountBalance.stories.tsx +0 -138
  86. package/src/components/AccountBalance/AccountBalance.tsx +0 -60
  87. package/src/components/AccountBalance/BalancePieChart.tsx +0 -127
  88. package/src/components/AccountBalance/BalancePieChartTitle.tsx +0 -54
  89. package/src/components/AccountBalance/index.ts +0 -4
  90. package/src/components/AccountBalance/stories/fixtures.ts +0 -26
  91. package/src/components/AccountBalance/types.ts +0 -41
  92. package/src/components/AccountKeys/AccountKeys.specBackup.tsx +0 -43
  93. package/src/components/AccountKeys/AccountKeys.stories.tsx +0 -14
  94. package/src/components/AccountKeys/AccountKeys.tsx +0 -73
  95. package/src/components/AccountKeys/helpers.ts +0 -7
  96. package/src/components/AccountKeys/index.ts +0 -2
  97. package/src/components/AccountKeys/stories/StoryComponent.tsx +0 -33
  98. package/src/components/AccountKeys/styles.ts +0 -87
  99. package/src/components/AccountKeys/types.ts +0 -8
  100. package/src/components/Activity/Activity.specBackup.tsx +0 -79
  101. package/src/components/Activity/Activity.stories.tsx +0 -15
  102. package/src/components/Activity/Activity.tsx +0 -83
  103. package/src/components/Activity/ActivityItem.tsx +0 -38
  104. package/src/components/Activity/index.tsx +0 -2
  105. package/src/components/Activity/mockActivityRequest.ts +0 -106
  106. package/src/components/Activity/styles.ts +0 -12
  107. package/src/components/Activity/types.ts +0 -10
  108. package/src/components/Bmi/Bmi.spec.Backup.tsx +0 -68
  109. package/src/components/Bmi/Bmi.stories.tsx +0 -10
  110. package/src/components/Bmi/Bmi.tsx +0 -96
  111. package/src/components/Bmi/BmiHeatbar.tsx +0 -18
  112. package/src/components/Bmi/BmiInfo.tsx +0 -11
  113. package/src/components/Bmi/BmiLabel.tsx +0 -9
  114. package/src/components/Bmi/BmiLabels.tsx +0 -33
  115. package/src/components/Bmi/BmiPointer.tsx +0 -15
  116. package/src/components/Bmi/index.tsx +0 -2
  117. package/src/components/Bmi/styles.ts +0 -18
  118. package/src/components/Bmi/types.ts +0 -4
  119. package/src/components/BotsTable/BotsTable.e2e.ts +0 -77
  120. package/src/components/BotsTable/BotsTable.specBackup.tsx +0 -125
  121. package/src/components/BotsTable/BotsTable.tsx +0 -32
  122. package/src/components/BotsTable/BotsTableCell.tsx +0 -13
  123. package/src/components/BotsTable/BotsTableHead.tsx +0 -13
  124. package/src/components/BotsTable/BotsTableRow.tsx +0 -17
  125. package/src/components/BotsTable/BotsTableWrapper.tsx +0 -23
  126. package/src/components/BotsTable/index.ts +0 -5
  127. package/src/components/BotsTable/stories/BotsTable/StoryComponent.tsx +0 -59
  128. package/src/components/BotsTable/stories/BotsTable/components/Actions/ActionIcon.tsx +0 -11
  129. package/src/components/BotsTable/stories/BotsTable/components/Actions/ActionItem.tsx +0 -40
  130. package/src/components/BotsTable/stories/BotsTable/components/Actions/ActionMore.tsx +0 -89
  131. package/src/components/BotsTable/stories/BotsTable/components/Actions/ActionRun.tsx +0 -133
  132. package/src/components/BotsTable/stories/BotsTable/components/Actions/Actions.tsx +0 -13
  133. package/src/components/BotsTable/stories/BotsTable/components/Actions/ActionsWrapper.tsx +0 -21
  134. package/src/components/BotsTable/stories/BotsTable/components/Actions/consts.tsx +0 -118
  135. package/src/components/BotsTable/stories/BotsTable/components/Actions/index.ts +0 -6
  136. package/src/components/BotsTable/stories/BotsTable/components/Exchange/Exchange.tsx +0 -26
  137. package/src/components/BotsTable/stories/BotsTable/components/Exchange/consts.tsx +0 -157
  138. package/src/components/BotsTable/stories/BotsTable/components/Exchange/index.ts +0 -1
  139. package/src/components/BotsTable/stories/BotsTable/components/Exchange/types.ts +0 -6
  140. package/src/components/BotsTable/stories/BotsTable/components/PNL.tsx +0 -27
  141. package/src/components/BotsTable/stories/BotsTable/components/ROI.tsx +0 -25
  142. package/src/components/BotsTable/stories/BotsTable/components/TableTag.tsx +0 -22
  143. package/src/components/BotsTable/stories/BotsTable/components/Trade/Trade.tsx +0 -8
  144. package/src/components/BotsTable/stories/BotsTable/components/Trade/consts.ts +0 -14
  145. package/src/components/BotsTable/stories/BotsTable/components/Trade/index.ts +0 -1
  146. package/src/components/BotsTable/stories/BotsTable/components/Trade/types.ts +0 -5
  147. package/src/components/BotsTable/stories/BotsTable/components/index.ts +0 -6
  148. package/src/components/BotsTable/stories/BotsTable/index.ts +0 -1
  149. package/src/components/BotsTable/stories/BotsTable/mockData.ts +0 -84
  150. package/src/components/BotsTable/stories/BotsTable.stories.tsx +0 -39
  151. package/src/components/BotsTable/stories/NoControlOrders/StoryComponent.tsx +0 -35
  152. package/src/components/BotsTable/stories/NoControlOrders/components/ActionMore.tsx +0 -95
  153. package/src/components/BotsTable/stories/NoControlOrders/components/Reason.tsx +0 -11
  154. package/src/components/BotsTable/stories/NoControlOrders/components/TableList.tsx +0 -45
  155. package/src/components/BotsTable/stories/NoControlOrders/components/TableRow.tsx +0 -31
  156. package/src/components/BotsTable/stories/NoControlOrders/components/index.ts +0 -4
  157. package/src/components/BotsTable/stories/NoControlOrders/mockData.ts +0 -23
  158. package/src/components/BotsTable/stories/NoControlOrders/types.ts +0 -16
  159. package/src/components/BotsTable/types.ts +0 -31
  160. package/src/components/Calories/Calories.specBackup.tsx +0 -11
  161. package/src/components/Calories/Calories.stories.tsx +0 -26
  162. package/src/components/Calories/Calories.tsx +0 -54
  163. package/src/components/Calories/index.tsx +0 -2
  164. package/src/components/Calories/innerContent.tsx +0 -30
  165. package/src/components/Calories/types.ts +0 -4
  166. package/src/components/ExchangeAccount/ExchangeAccount.specBackup.tsx +0 -104
  167. package/src/components/ExchangeAccount/ExchangeAccount.stories.tsx +0 -108
  168. package/src/components/ExchangeAccount/ExchangeAccount.tsx +0 -90
  169. package/src/components/ExchangeAccount/helpers.tsx +0 -153
  170. package/src/components/ExchangeAccount/index.ts +0 -2
  171. package/src/components/ExchangeAccount/styles.ts +0 -115
  172. package/src/components/ExchangeAccount/types.ts +0 -14
  173. package/src/components/HeartRate/BPM.tsx +0 -43
  174. package/src/components/HeartRate/HeartRate.e2e.ts +0 -78
  175. package/src/components/HeartRate/HeartRate.specBackup.tsx +0 -91
  176. package/src/components/HeartRate/HeartRate.stories.tsx +0 -36
  177. package/src/components/HeartRate/HeartRate.tsx +0 -105
  178. package/src/components/HeartRate/HeartRateLineChart.tsx +0 -53
  179. package/src/components/HeartRate/index.ts +0 -2
  180. package/src/components/HeartRate/mockHeartRateRequest.ts +0 -15
  181. package/src/components/HeartRate/types.ts +0 -15
  182. package/src/components/HeartRate/utils.tsx +0 -8
  183. package/src/components/ListGoals/ListGoals.specBackup.tsx +0 -82
  184. package/src/components/ListGoals/ListGoals.stories.tsx +0 -58
  185. package/src/components/ListGoals/ListGoals.tsx +0 -29
  186. package/src/components/ListGoals/ListGoalsCard.tsx +0 -61
  187. package/src/components/ListGoals/index.ts +0 -2
  188. package/src/components/ListGoals/styles.tsx +0 -11
  189. package/src/components/ListGoals/types.ts +0 -25
  190. package/src/components/MealNutrients/MealNutrients.e2e.ts +0 -68
  191. package/src/components/MealNutrients/MealNutrients.specBackup.tsx +0 -134
  192. package/src/components/MealNutrients/MealNutrients.stories.tsx +0 -37
  193. package/src/components/MealNutrients/MealNutrients.tsx +0 -84
  194. package/src/components/MealNutrients/MealNutrientsLineChart.tsx +0 -89
  195. package/src/components/MealNutrients/MealNutrientsTooltip.tsx +0 -30
  196. package/src/components/MealNutrients/chartDefaultConfig.tsx +0 -87
  197. package/src/components/MealNutrients/index.tsx +0 -2
  198. package/src/components/MealNutrients/mockMealNutrientsRequest.ts +0 -1246
  199. package/src/components/MealNutrients/types.ts +0 -37
  200. package/src/components/MealNutrients/useChartConfig.ts +0 -69
  201. package/src/components/MealPlanner/MealPlanner.specBackup.tsx +0 -77
  202. package/src/components/MealPlanner/MealPlanner.stories.tsx +0 -15
  203. package/src/components/MealPlanner/MealPlanner.tsx +0 -100
  204. package/src/components/MealPlanner/MealPlannerBadge.tsx +0 -15
  205. package/src/components/MealPlanner/MealPlannerBars.tsx +0 -19
  206. package/src/components/MealPlanner/MealPlannerCard.tsx +0 -73
  207. package/src/components/MealPlanner/MealPlannerLegends.tsx +0 -22
  208. package/src/components/MealPlanner/index.ts +0 -2
  209. package/src/components/MealPlanner/mockMealPlannerRequest.ts +0 -70
  210. package/src/components/MealPlanner/types.ts +0 -21
  211. package/src/components/StepsCounter/StepsCounter.specBackup.tsx +0 -14
  212. package/src/components/StepsCounter/StepsCounter.stories.tsx +0 -16
  213. package/src/components/StepsCounter/StepsCounter.tsx +0 -74
  214. package/src/components/StepsCounter/index.ts +0 -2
  215. package/src/components/StepsCounter/types.ts +0 -4
  216. package/src/components/TradingInfoCard/TradingInfoCard.e2e.ts +0 -18
  217. package/src/components/TradingInfoCard/TradingInfoCard.specBackup.tsx +0 -116
  218. package/src/components/TradingInfoCard/TradingInfoCard.stories.tsx +0 -118
  219. package/src/components/TradingInfoCard/TradingInfoCard.tsx +0 -49
  220. package/src/components/TradingInfoCard/TradingInfoCardContent.tsx +0 -32
  221. package/src/components/TradingInfoCard/TradingInfoCardTooltip.tsx +0 -47
  222. package/src/components/TradingInfoCard/TradingInfoCardWrapper.tsx +0 -72
  223. package/src/components/TradingInfoCard/index.ts +0 -3
  224. package/src/components/TradingInfoCard/types.ts +0 -27
  225. package/src/components/TradingScoreboard/TradingScoreboard.specBackup.tsx +0 -119
  226. package/src/components/TradingScoreboard/TradingScoreboard.stories.tsx +0 -119
  227. package/src/components/TradingScoreboard/TradingScoreboard.tsx +0 -41
  228. package/src/components/TradingScoreboard/TradingScoreboardBase.tsx +0 -17
  229. package/src/components/TradingScoreboard/helpers.tsx +0 -134
  230. package/src/components/TradingScoreboard/index.ts +0 -2
  231. package/src/components/TradingScoreboard/types.ts +0 -18
  232. package/src/components/UpcomingWorkouts/UpcomingWorkoutCard.tsx +0 -64
  233. package/src/components/UpcomingWorkouts/UpcomingWorkouts.specBackup.tsx +0 -56
  234. package/src/components/UpcomingWorkouts/UpcomingWorkouts.stories.tsx +0 -32
  235. package/src/components/UpcomingWorkouts/UpcomingWorkouts.tsx +0 -27
  236. package/src/components/UpcomingWorkouts/index.ts +0 -2
  237. package/src/components/UpcomingWorkouts/style.ts +0 -12
  238. package/src/components/UpcomingWorkouts/types.ts +0 -23
  239. package/src/components/UserCard/UserCard.tsx +0 -46
  240. package/src/components/UserCard/UserCardBMI.tsx +0 -37
  241. package/src/components/UserCard/UserCardCredentials.tsx +0 -56
  242. package/src/components/UserCard/UserCardItem.tsx +0 -42
  243. package/src/components/UserCard/index.tsx +0 -2
  244. package/src/components/UserCard/types.ts +0 -8
  245. package/src/components/WaterConsume/WaterConsume.specBackup.tsx +0 -62
  246. package/src/components/WaterConsume/WaterConsume.stories.tsx +0 -36
  247. package/src/components/WaterConsume/WaterConsume.tsx +0 -188
  248. package/src/components/WaterConsume/index.ts +0 -2
  249. package/src/components/WaterConsume/types.ts +0 -11
  250. package/src/consts.ts +0 -18
  251. package/src/index.ts +0 -36
  252. package/src/injectGlobal.ts +0 -41
  253. package/test-results/.last-run.json +0 -21
  254. package/tsbuildcache +0 -1
  255. package/tsconfig.build.json +0 -44
  256. package/tsconfig.json +0 -17
  257. package/webpack.config.js +0 -28
@@ -1,37 +0,0 @@
1
- import { Point, LineSvgProps, CustomLayerProps } from '@nivo/line';
2
- import { ScaleTimeSpec } from '@nivo/scales';
3
- import { MainColors, DropdownOptionProps } from '@ssa-ui-kit/core';
4
-
5
- export interface OptionType extends DropdownOptionProps {
6
- value: 'd' | 'w' | 'm';
7
- label: string;
8
- precision: string;
9
- }
10
-
11
- export interface MealNutrientsProps {
12
- caption?: string;
13
- options: OptionType[];
14
- data: LineSvgProps['data'];
15
- onOptionChange?: (option: OptionType) => void;
16
- }
17
-
18
- export interface MealNutrientsTooltipProps {
19
- colorName: keyof MainColors;
20
- point: Exclude<Point, 'data'> & {
21
- data: Point['data'] & { comp?: number; unit?: string };
22
- };
23
- }
24
-
25
- export type UseChartConfig = (
26
- ref: React.RefObject<HTMLElement>,
27
- data: LineSvgProps['data'],
28
- precision: ScaleTimeSpec['precision'] | 'week',
29
- ) => Pick<LineSvgProps, 'xScale' | 'axisBottom'>;
30
-
31
- // ScaleSpec is not exported from @nivo/line
32
- export type ScaleSpec = LineSvgProps['xScale'];
33
-
34
- // `CustomLayerProps` doesn't have `currentPoint` defined on it even
35
- // though this property is passed to a custom layer:
36
- // https://github.com/plouc/nivo/blob/408d46f7de205d391ab19cf34321e7b40d5cebad/packages/line/src/Line.js#L318
37
- export type CustomPointLayerProps = CustomLayerProps & { currentPoint?: Point };
@@ -1,69 +0,0 @@
1
- import { useEffect, useState, useMemo, useRef } from 'react';
2
- import { dateFormatters, throttle } from '@ssa-ui-kit/utils';
3
- import { UseChartConfig } from './types';
4
-
5
- const { formatTime, formatDayOfWeek, formatDate } = dateFormatters;
6
-
7
- const MAX_ITEMS_ON_SMALL_SCREENS = 7;
8
- const MIN_WIDTH = 600;
9
- const THROTTLE_DELAY_MS = 50;
10
-
11
- const useChartConfig: UseChartConfig = (elRef, data, precision = 'day') => {
12
- const [width, setWidth] = useState(0);
13
- const throttledRef = useRef(
14
- throttle((entries) => {
15
- setWidth(entries[0].contentRect.width);
16
- }, THROTTLE_DELAY_MS),
17
- );
18
-
19
- const observerRef = useRef(new ResizeObserver(throttledRef?.current?.[0]));
20
-
21
- useEffect(() => {
22
- const currentRef = elRef.current;
23
-
24
- if (observerRef.current && currentRef) {
25
- observerRef.current.observe(currentRef);
26
- }
27
-
28
- return () => {
29
- if (observerRef.current && currentRef) {
30
- observerRef.current.unobserve(currentRef);
31
- }
32
- };
33
- }, [elRef, observerRef]);
34
-
35
- useEffect(() => {
36
- return () => {
37
- if (throttledRef.current) {
38
- const [, cancel] = throttledRef.current;
39
- cancel();
40
- }
41
- };
42
- }, [throttledRef]);
43
-
44
- return useMemo(
45
- () => ({
46
- xScale: {
47
- type: 'time',
48
- format: '%L',
49
- precision: precision === 'week' ? 'day' : precision,
50
- },
51
- axisBottom: {
52
- tickSize: 0,
53
- tickPadding: 30,
54
- legend: '',
55
- tickValues: width < MIN_WIDTH ? MAX_ITEMS_ON_SMALL_SCREENS : undefined,
56
- tickRotation: width < MIN_WIDTH ? 30 : 0,
57
- format:
58
- precision === 'hour'
59
- ? formatTime
60
- : precision === 'week'
61
- ? formatDayOfWeek
62
- : formatDate,
63
- },
64
- }),
65
- [data, width, precision],
66
- );
67
- };
68
-
69
- export default useChartConfig;
@@ -1,77 +0,0 @@
1
- import userEvent from '@testing-library/user-event';
2
-
3
- import { screen, within } from '../../../customTest';
4
-
5
- import { MealPlannerItem } from './types';
6
- import MealPlanner from './index';
7
-
8
- const data: { [key: string]: MealPlannerItem } = {
9
- breakfast: {
10
- time: '8:00 AM',
11
- data: [
12
- {
13
- id: 1,
14
- name: 'Avocado salad',
15
- image: 'https://via.placeholder.com/64x64',
16
- calories: 300,
17
- carbs: 10,
18
- protein: 50,
19
- fat: 40,
20
- },
21
- ],
22
- },
23
- lunch: {
24
- time: '1:00 pm',
25
- data: [
26
- {
27
- id: 4,
28
- name: 'Beef steak',
29
- image: 'https://via.placeholder.com/64x64',
30
- calories: 300,
31
- carbs: 10,
32
- protein: 50,
33
- fat: 40,
34
- },
35
- ],
36
- },
37
- };
38
-
39
- describe('MealPlanner', () => {
40
- it('Render recipes and update then when change the dropdown', async () => {
41
- const user = userEvent.setup();
42
-
43
- render(<MealPlanner data={data} />);
44
-
45
- const recipeBreakfast = screen.getByText(/Avocado salad/i);
46
- const progressBars = screen.getAllByRole('progressbar');
47
-
48
- expect(recipeBreakfast).toBeInTheDocument();
49
- expect(progressBars).toHaveLength(3);
50
-
51
- const dropdownEl = screen.getByTestId('dropdown');
52
- const dropdownToggleEl = within(dropdownEl).getByRole('combobox');
53
-
54
- await user.click(dropdownToggleEl);
55
-
56
- const listItemEls = within(screen.getByRole('listbox')).getAllByRole(
57
- 'button',
58
- );
59
-
60
- await user.click(listItemEls[1]);
61
-
62
- const recipeLunch = screen.getByText(/Beef steak/i);
63
-
64
- expect(recipeLunch).toBeInTheDocument();
65
- expect(recipeBreakfast).not.toBeInTheDocument();
66
- });
67
-
68
- it("don't render if not data or wrong typeof data", async () => {
69
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
70
- // @ts-ignore
71
- render(<MealPlanner data={'data'} />);
72
-
73
- const recipeBreakfast = await screen.queryByText(/Avocado salad/i);
74
-
75
- expect(recipeBreakfast).not.toBeInTheDocument();
76
- });
77
- });
@@ -1,15 +0,0 @@
1
- import type { Meta } from '@storybook/react';
2
-
3
- import { mealPlannerData as data } from './mockMealPlannerRequest';
4
-
5
- import MealPlanner from './index';
6
-
7
- export default {
8
- title: 'Fitness/MealPlanner',
9
- component: MealPlanner,
10
- args: {
11
- data,
12
- },
13
- } as Meta<typeof MealPlanner>;
14
-
15
- export const Default = {};
@@ -1,100 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
- import { css } from '@emotion/react';
3
-
4
- import {
5
- Card,
6
- CardContent,
7
- CardHeader,
8
- Typography,
9
- Dropdown,
10
- DropdownOption,
11
- DropdownOptionProps,
12
- } from '@ssa-ui-kit/core';
13
-
14
- import { MealPlannerCard } from './MealPlannerCard';
15
-
16
- import { MealPlannerProps, MealPlannerData } from './types';
17
- import styled from '@emotion/styled';
18
-
19
- const CustomOption = styled(DropdownOption)`
20
- text-align: left;
21
- line-height: 18px;
22
- font-size: 11px;
23
- `;
24
-
25
- export const MealPlanner = ({ data }: MealPlannerProps) => {
26
- const [selectedOption, setSelectedOption] = useState<string | null>(null);
27
- const [options, setOptions] = useState<DropdownOptionProps[]>([]);
28
-
29
- const handleChange = (e: DropdownOptionProps) => {
30
- const value = e.value.toString().toLowerCase();
31
-
32
- setSelectedOption(value);
33
- };
34
-
35
- useEffect(() => {
36
- if (data == null || typeof data !== 'object') {
37
- return;
38
- }
39
-
40
- setOptions(
41
- Object.keys(data).map((item, index) => ({
42
- id: index,
43
- value: `${item.charAt(0).toUpperCase()}${item.slice(1)}`,
44
- label: `${item.charAt(0).toUpperCase()}${item.slice(1)} | ${
45
- data[item].time
46
- }`,
47
- extraVal: data[item].time,
48
- })),
49
- );
50
- }, [data]);
51
-
52
- useEffect(() => {
53
- if (options?.length > 0 && selectedOption == null) {
54
- handleChange(options[0]);
55
- }
56
- }, [options]);
57
-
58
- return (
59
- <div>
60
- <CardHeader transparent>
61
- <Typography variant="h4" weight="bold" css={{ lineHeight: 'normal' }}>
62
- Meal Planner
63
- </Typography>
64
-
65
- {options?.length > 0 && (
66
- <Dropdown selectedItem={options[0]} onChange={handleChange}>
67
- {options.map((item, index) => (
68
- <CustomOption
69
- key={index}
70
- value={item.value}
71
- label={item.label.toString()}>
72
- <span style={{ fontSize: 13, fontWeight: 500 }}>
73
- {item.value}
74
- </span>
75
- &nbsp;|&nbsp;
76
- <span style={{ fontSize: 11, fontWeight: 500 }}>
77
- {item.extraVal}
78
- </span>
79
- </CustomOption>
80
- ))}
81
- </Dropdown>
82
- )}
83
- </CardHeader>
84
- <Card>
85
- <CardContent
86
- css={css`
87
- flex-direction: column;
88
- width: 100%;
89
- `}>
90
- {selectedOption &&
91
- data[selectedOption].data.map(
92
- ({ id, ...props }: MealPlannerData) => (
93
- <MealPlannerCard key={id} {...props} />
94
- ),
95
- )}
96
- </CardContent>
97
- </Card>
98
- </div>
99
- );
100
- };
@@ -1,15 +0,0 @@
1
- import styled from '@emotion/styled';
2
-
3
- import { Badge } from '@ssa-ui-kit/core';
4
-
5
- const Marker = styled(Badge)`
6
- display: inline-block;
7
-
8
- padding: 0;
9
- margin-right: 5px;
10
-
11
- width: 4px;
12
- height: 4px;
13
- `;
14
-
15
- export default Marker;
@@ -1,19 +0,0 @@
1
- import styled from '@emotion/styled';
2
-
3
- const MealPlannerBars = styled.ul`
4
- display: flex;
5
-
6
- list-style: none;
7
-
8
- width: 100%;
9
- height: 20px;
10
-
11
- padding: 0;
12
- margin: 0;
13
-
14
- & > li:nth-of-type(2n):not(:last-child) {
15
- margin: 0 5px;
16
- }
17
- `;
18
-
19
- export default MealPlannerBars;
@@ -1,73 +0,0 @@
1
- import { css } from '@emotion/react';
2
-
3
- import { ProgressBar, Typography, Avatar, Wrapper } from '@ssa-ui-kit/core';
4
-
5
- import Marker from './MealPlannerBadge';
6
- import MealPlannerLegends from './MealPlannerLegends';
7
- import MealPlannerBars from './MealPlannerBars';
8
-
9
- import { MealPlannerCardProps } from './types';
10
-
11
- const markerColor = {
12
- carbs: 'yellow',
13
- protein: 'green',
14
- fat: 'blue',
15
- };
16
-
17
- type MarkerColorKeys = keyof typeof markerColor;
18
-
19
- export const MealPlannerCard = ({
20
- name,
21
- image,
22
- carbs,
23
- protein,
24
- fat,
25
- }: MealPlannerCardProps) => {
26
- const listItems = { carbs, protein, fat };
27
-
28
- return (
29
- <Wrapper
30
- css={{
31
- marginTop: '5.6px',
32
- }}>
33
- <Avatar size={64} image={image} />
34
-
35
- <div
36
- css={css`
37
- width: calc(100% - 64px);
38
- padding-left: 15px;
39
- `}>
40
- <Typography variant="h6" weight="medium">
41
- {name}
42
- </Typography>
43
-
44
- <MealPlannerLegends.List>
45
- {Object.keys(listItems).map((item) => (
46
- <MealPlannerLegends.Item key={item}>
47
- <Marker color={markerColor[item as MarkerColorKeys]} />
48
-
49
- <Typography variant="body1">
50
- {listItems[item as MarkerColorKeys]}% {item}
51
- </Typography>
52
- </MealPlannerLegends.Item>
53
- ))}
54
- </MealPlannerLegends.List>
55
-
56
- <MealPlannerBars>
57
- {Object.keys(listItems).map((item) => (
58
- <li
59
- css={css`
60
- width: ${listItems[item as MarkerColorKeys]}%;
61
- `}
62
- key={item}>
63
- <ProgressBar
64
- percentage={100}
65
- color={markerColor[item as MarkerColorKeys]}
66
- />
67
- </li>
68
- ))}
69
- </MealPlannerBars>
70
- </div>
71
- </Wrapper>
72
- );
73
- };
@@ -1,22 +0,0 @@
1
- import styled from '@emotion/styled';
2
-
3
- const MealPlannerLegends = {
4
- List: styled.ul`
5
- display: flex;
6
- justify-content: space-between;
7
- list-style: none;
8
-
9
- width: 100%;
10
- height: 20px;
11
-
12
- padding: 0;
13
- margin: 0;
14
- margin-bottom: 8px;
15
- `,
16
- Item: styled.li`
17
- display: flex;
18
- align-items: center;
19
- `,
20
- };
21
-
22
- export default MealPlannerLegends;
@@ -1,2 +0,0 @@
1
- export { MealPlanner as default } from './MealPlanner';
2
- export * from './types';
@@ -1,70 +0,0 @@
1
- import { MealPlannerItem } from './types';
2
- type MealPlannerResp = { [key: string]: MealPlannerItem };
3
-
4
- export const mealPlannerData: MealPlannerResp = {
5
- breakfast: {
6
- time: '8:00 AM',
7
- data: [
8
- {
9
- id: 1,
10
- name: 'Avocado salad',
11
- image:
12
- 'https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Favocado%2Favocado_64.png?alt=media&token=daa461dd-085c-4542-a5d4-c83a0a8efb4c',
13
- calories: 300,
14
- carbs: 10,
15
- protein: 50,
16
- fat: 40,
17
- },
18
- {
19
- id: 2,
20
- name: 'Almond milk',
21
- image:
22
- 'https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fmilk%2Fmilk_64.png?alt=media&token=88ab4b5d-1c1f-43e5-849f-1dbf71c5dc8b',
23
- calories: 300,
24
- carbs: 40,
25
- protein: 20,
26
- fat: 40,
27
- },
28
- {
29
- id: 3,
30
- name: 'Blueberry',
31
- image:
32
- 'https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fblueberry%2Fblueberry_64.png?alt=media&token=ab7c1d58-9743-478e-bcf8-aa7726ccbe78',
33
- calories: 300,
34
- carbs: 40,
35
- protein: 30,
36
- fat: 30,
37
- },
38
- ],
39
- },
40
- lunch: {
41
- time: '1:00 PM',
42
- data: [
43
- {
44
- id: 4,
45
- name: 'Beef steak',
46
- image:
47
- 'https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fsteak%2Fsteak_64.png?alt=media&token=44f02ad7-9a56-4839-aa00-e50ff44a14aa',
48
- calories: 300,
49
- carbs: 10,
50
- protein: 50,
51
- fat: 40,
52
- },
53
- ],
54
- },
55
- dinner: {
56
- time: '7:00 PM',
57
- data: [
58
- {
59
- id: 5,
60
- name: 'Soup',
61
- image:
62
- 'https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fsoup%2Fsoup_64.png?alt=media&token=fb2a8b51-a735-4669-8cdc-c2d52b23b114',
63
- calories: 300,
64
- carbs: 30,
65
- protein: 30,
66
- fat: 40,
67
- },
68
- ],
69
- },
70
- };
@@ -1,21 +0,0 @@
1
- export interface MealPlannerCardProps {
2
- name: string;
3
- image: string;
4
- calories: number;
5
- carbs: number;
6
- protein: number;
7
- fat: number;
8
- }
9
-
10
- export type MealPlannerData = MealPlannerCardProps & { id: number };
11
-
12
- export interface MealPlannerItem {
13
- time: string;
14
- data: Array<MealPlannerData>;
15
- }
16
-
17
- export interface MealPlannerProps {
18
- data: {
19
- [mealName: string]: MealPlannerItem;
20
- };
21
- }
@@ -1,14 +0,0 @@
1
- import { screen } from '../../../customTest';
2
- import StepsCounter from './index';
3
-
4
- describe('StepsCounter', () => {
5
- it('Render component with correct %', () => {
6
- render(<StepsCounter max={3000} currentValue={2500} />);
7
-
8
- const progressBar = screen.getByRole('progressbar');
9
- const label = screen.getByText(/83% of your goals/i);
10
-
11
- expect(label).toBeInTheDocument();
12
- expect(progressBar).toHaveStyle('width: 83%;');
13
- });
14
- });
@@ -1,16 +0,0 @@
1
- import type { Meta } from '@storybook/react';
2
-
3
- import { StepsCounter } from './StepsCounter';
4
-
5
- export default {
6
- title: 'Fitness/StepsCounter',
7
- component: StepsCounter,
8
- } as Meta<typeof StepsCounter>;
9
-
10
- export const Default = {
11
- args: {
12
- max: 3000,
13
- currentValue: 2500,
14
- unit: 'L',
15
- },
16
- };
@@ -1,74 +0,0 @@
1
- import { css, useTheme } from '@emotion/react';
2
-
3
- import {
4
- Card,
5
- CardContent,
6
- CardHeader,
7
- ProgressBar,
8
- Typography,
9
- ResponsiveImage,
10
- } from '@ssa-ui-kit/core';
11
-
12
- import { StepsCounterProps } from './types';
13
-
14
- /**
15
- *
16
- * UI Component with a Card that shows the steps count of the user
17
- */
18
- export const StepsCounter = ({ max, currentValue }: StepsCounterProps) => {
19
- const theme = useTheme();
20
- const percentage = Math.round((currentValue / max) * 100);
21
-
22
- return (
23
- <Card
24
- css={css`
25
- box-shadow: 0 10px 40px rgba(42, 48, 57, 0.08);
26
- border-radius: 20px;
27
- `}>
28
- <CardHeader
29
- icon={
30
- <ResponsiveImage
31
- css={{ filter: `drop-shadow(0 5px 5px ${theme.colors.grey})` }}
32
- srcSet="https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fsteps%2Fsteps_64.png?alt=media&token=22d59e48-da19-448a-98e3-25f396108243 64w, https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fsteps%2Fsteps_48.png?alt=media&token=7c66d777-ddad-416a-9f07-a89dd3167ca7 48w"
33
- sizes="(min-width: 1440px) 64px, 48px"
34
- src="https://firebasestorage.googleapis.com/v0/b/admin-themes.appspot.com/o/img%2Fsteps%2Fsteps_48.png?alt=media&token=7c66d777-ddad-416a-9f07-a89dd3167ca7"
35
- alt="Steps"
36
- />
37
- }>
38
- <Typography variant="h6" weight="bold">
39
- Steps
40
- </Typography>
41
- </CardHeader>
42
-
43
- <CardContent
44
- style={{
45
- flexWrap: 'wrap',
46
- }}>
47
- <div>
48
- <span
49
- css={css`
50
- font-size: 33px;
51
- font-weight: bold;
52
- `}>
53
- {currentValue}
54
- </span>
55
- <span>Steps</span>
56
- </div>
57
- <div
58
- css={css`
59
- width: 100%;
60
- margin: 10px 0;
61
- `}>
62
- <ProgressBar percentage={percentage} color="green" />
63
- </div>
64
- <Typography
65
- variant="body1"
66
- css={css`
67
- color: ${theme.colors.greyDarker60};
68
- `}>
69
- {!Number.isNaN(percentage) && `${percentage}% of your goals`}
70
- </Typography>
71
- </CardContent>
72
- </Card>
73
- );
74
- };
@@ -1,2 +0,0 @@
1
- export { StepsCounter as default } from './StepsCounter';
2
- export * from './types';
@@ -1,4 +0,0 @@
1
- export interface StepsCounterProps {
2
- max: number;
3
- currentValue: number;
4
- }
@@ -1,18 +0,0 @@
1
- import { test } from '@playwright/test';
2
- import { SCREEN_SIZES } from '../../consts';
3
-
4
- const WIDGETS_CUSTOM_SHOTS_PATH = './custom-shots/';
5
-
6
- test('Industry Specific Widgets - Fitness - Trading Info Card Hover', async ({
7
- page,
8
- }) => {
9
- await page.setViewportSize(SCREEN_SIZES[1920]);
10
- await page.goto(
11
- 'http://localhost:6007/iframe.html?args=&id=trading-tradinginfocard--with-tooltip&viewMode=story',
12
- );
13
- await page.getByTestId('tooltip-trigger').hover();
14
-
15
- await page.screenshot({
16
- path: `${WIDGETS_CUSTOM_SHOTS_PATH}widgets-trading-info-card--hover__[w1920px].png`,
17
- });
18
- });