@universal-tennis/ui-shared 0.1.96 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/.eslintignore +1 -1
  2. package/.eslintrc.js +73 -73
  3. package/.storybook/main.js +16 -16
  4. package/.storybook/preview.js +17 -17
  5. package/.storybook/typography.css +5 -26
  6. package/.storybook/variables.css +16 -16
  7. package/README.md +129 -129
  8. package/dist/App.d.ts +1 -1
  9. package/dist/stories/Button.d.ts +27 -0
  10. package/dist/stories/Button.js +51 -0
  11. package/dist/stories/Button.js.map +1 -0
  12. package/dist/stories/Button.stories.d.ts +15 -0
  13. package/dist/stories/Button.stories.js +34 -0
  14. package/dist/stories/Button.stories.js.map +1 -0
  15. package/dist/stories/Header.d.ts +19 -0
  16. package/dist/stories/Header.js +31 -0
  17. package/dist/stories/Header.js.map +1 -0
  18. package/dist/stories/Header.stories.d.ts +11 -0
  19. package/dist/stories/Header.stories.js +20 -0
  20. package/dist/stories/Header.stories.js.map +1 -0
  21. package/dist/stories/Page.d.ts +1 -0
  22. package/dist/stories/Page.js +38 -0
  23. package/dist/stories/Page.js.map +1 -0
  24. package/dist/stories/Page.stories.d.ts +11 -0
  25. package/dist/stories/Page.stories.js +30 -0
  26. package/dist/stories/Page.stories.js.map +1 -0
  27. package/dist/stories/assets/comments.svg +1 -0
  28. package/dist/stories/assets/css/typography.css +5 -26
  29. package/dist/stories/assets/css/variables.css +15 -15
  30. package/dist/stories/assets/direction.svg +1 -0
  31. package/dist/stories/assets/icon-chat-blue.svg +10 -10
  32. package/dist/stories/assets/utr-sports-logo.svg +9 -9
  33. package/dist/stories/atoms/Button/Button.d.ts +1 -1
  34. package/dist/stories/atoms/Button/Button.js.map +1 -1
  35. package/dist/stories/atoms/Button/index.d.ts +1 -0
  36. package/dist/stories/atoms/Button/index.js +2 -0
  37. package/dist/stories/atoms/Button/index.js.map +1 -0
  38. package/dist/stories/atoms/Button.d.ts +7 -0
  39. package/dist/stories/atoms/Button.js +20 -0
  40. package/dist/stories/atoms/Button.js.map +1 -0
  41. package/dist/stories/atoms/Button.stories.d.ts +13 -0
  42. package/dist/stories/atoms/Button.stories.js +22 -0
  43. package/dist/stories/atoms/Button.stories.js.map +1 -0
  44. package/dist/stories/atoms/Icons/AddIcon.d.ts +2 -2
  45. package/dist/stories/atoms/Icons/AvailabilityMaybeIcon.d.ts +2 -2
  46. package/dist/stories/atoms/Icons/AvailabilityNoIcon.d.ts +2 -2
  47. package/dist/stories/atoms/Icons/AvailabilityNotSetIcon.d.ts +2 -2
  48. package/dist/stories/atoms/Icons/AvailabilityYesIcon.d.ts +2 -2
  49. package/dist/stories/atoms/Icons/BallInMotionIcon.d.ts +2 -2
  50. package/dist/stories/atoms/Icons/CalendarIcon.d.ts +2 -2
  51. package/dist/stories/atoms/Icons/ClockIcon.d.ts +2 -2
  52. package/dist/stories/atoms/Icons/CloseIcon.d.ts +2 -2
  53. package/dist/stories/atoms/Icons/DeleteIcon.d.ts +2 -2
  54. package/dist/stories/atoms/Icons/DoublePersonIcon.d.ts +2 -2
  55. package/dist/stories/atoms/Icons/EditIcon.d.ts +2 -2
  56. package/dist/stories/atoms/Icons/LeftChevronIcon.d.ts +2 -2
  57. package/dist/stories/atoms/Icons/LineIcon.d.ts +2 -2
  58. package/dist/stories/atoms/Icons/LocationIcon.d.ts +2 -2
  59. package/dist/stories/atoms/Icons/MessageIcon.d.ts +2 -2
  60. package/dist/stories/atoms/Icons/PickleballBallIcon.d.ts +2 -2
  61. package/dist/stories/atoms/Icons/RightChevronIcon.d.ts +2 -2
  62. package/dist/stories/atoms/Icons/SessionIcon.d.ts +2 -2
  63. package/dist/stories/atoms/Icons/SinglePersonIcon.d.ts +2 -2
  64. package/dist/stories/atoms/Icons/SinglePersonV2Icon.d.ts +2 -2
  65. package/dist/stories/atoms/Icons/SocialMediaFacebookIcon.d.ts +2 -2
  66. package/dist/stories/atoms/Icons/SocialMediaInstagramIcon.d.ts +2 -2
  67. package/dist/stories/atoms/Icons/SocialMediaTikTokIcon.d.ts +2 -2
  68. package/dist/stories/atoms/Icons/SocialMediaXIcon.d.ts +2 -2
  69. package/dist/stories/atoms/Icons/SocialMediaYoutubeIcon.d.ts +2 -2
  70. package/dist/stories/atoms/Icons/SwapIcon.d.ts +2 -2
  71. package/dist/stories/atoms/Icons/SwapNoBorderIcon.d.ts +2 -2
  72. package/dist/stories/atoms/Icons/TennisBallIcon.d.ts +2 -2
  73. package/dist/stories/atoms/Icons/VerifiedIcon.d.ts +2 -2
  74. package/dist/stories/atoms/Icons/VisibilityIcon.d.ts +2 -2
  75. package/dist/stories/atoms/Icons/VisibilityOffIcon.d.ts +2 -2
  76. package/dist/stories/atoms/Icons/WinnerIndicatorIcon.d.ts +2 -2
  77. package/dist/stories/atoms/Typography/Typography.d.ts +2 -2
  78. package/dist/stories/atoms/Typography/Typography.js.map +1 -1
  79. package/dist/stories/atoms/Typography/index.d.ts +1 -0
  80. package/dist/stories/atoms/Typography/index.js +2 -0
  81. package/dist/stories/atoms/Typography/index.js.map +1 -0
  82. package/dist/stories/atoms/UTMap/UTMap.d.ts +2 -2
  83. package/dist/stories/molecules/AvatarWithName/AvatarWithName.d.ts +2 -2
  84. package/dist/stories/molecules/Cards/ContactCard.d.ts +2 -2
  85. package/dist/stories/molecules/Cards/DrawCard.d.ts +2 -2
  86. package/dist/stories/molecules/Cards/DrawCard.js.map +1 -1
  87. package/dist/stories/molecules/Cards/TeamCard.d.ts +2 -2
  88. package/dist/stories/molecules/Cards/TeamDrawCard.d.ts +2 -2
  89. package/dist/stories/molecules/Cards/shared.d.ts +1 -4
  90. package/dist/stories/molecules/FooterSection/FooterSection.d.ts +2 -2
  91. package/dist/stories/molecules/GlobalNavItem/GlobalNavItem.d.ts +2 -2
  92. package/dist/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.d.ts +2 -2
  93. package/dist/stories/organisms/Footer/Footer.d.ts +2 -2
  94. package/dist/stories/organisms/Footer/Footer.js +2 -6
  95. package/dist/stories/organisms/Footer/Footer.js.map +1 -1
  96. package/dist/stories/organisms/GlobalNavigation/GlobalNavigation.d.ts +2 -2
  97. package/dist/stories/organisms/GlobalNavigation/GlobalNavigation.js.map +1 -1
  98. package/dist/stories/organisms/Modals/FullPageModal.d.ts +2 -2
  99. package/dist/stories/organisms/Tables/DrawCardTable.d.ts +2 -2
  100. package/dist/stories/organisms/Tables/DrawCardTable.js +2 -2
  101. package/dist/stories/organisms/Tables/SortableTable.d.ts +2 -2
  102. package/dist/stories/organisms/Tables/SortableTable.js.map +1 -1
  103. package/dist/stories/organisms/Tables/TeamDrawCardTable/DesktopTableRows.d.ts +2 -2
  104. package/dist/stories/organisms/Tables/TeamDrawCardTable/MobileTableRows.d.ts +2 -2
  105. package/dist/stories/organisms/Tables/TeamDrawCardTable/TeamDrawCardTable.d.ts +2 -2
  106. package/dist/stories/organisms/Tables/mockData.d.ts +2 -2
  107. package/dist/stories/utils/constants.js.map +1 -1
  108. package/infrastructure/azure-pipelines.yml +112 -112
  109. package/package.json +99 -99
  110. package/public/index.html +50 -45
  111. package/src/App.js +25 -25
  112. package/src/components.jsx +52 -52
  113. package/src/custom.d.ts +13 -13
  114. package/src/index.js +17 -17
  115. package/src/items.jsx +1 -1
  116. package/src/stories/Introduction.stories.mdx +179 -179
  117. package/src/stories/assets/css/typography.css +5 -26
  118. package/src/stories/assets/css/variables.css +15 -15
  119. package/src/stories/assets/icon-chat-blue.svg +10 -10
  120. package/src/stories/assets/icons/icon-add.svg +7 -7
  121. package/src/stories/assets/icons/icon-availability-maybe.svg +3 -3
  122. package/src/stories/assets/icons/icon-availability-no.svg +3 -3
  123. package/src/stories/assets/icons/icon-availability-not-set.svg +8 -8
  124. package/src/stories/assets/icons/icon-availability-yes.svg +3 -3
  125. package/src/stories/assets/icons/icon-calendar.svg +4 -4
  126. package/src/stories/assets/icons/icon-clock.svg +7 -7
  127. package/src/stories/assets/icons/icon-close.svg +3 -3
  128. package/src/stories/assets/icons/icon-delete.svg +9 -9
  129. package/src/stories/assets/icons/icon-edit.svg +3 -3
  130. package/src/stories/assets/icons/icon-location.svg +6 -6
  131. package/src/stories/assets/icons/icon-message.svg +3 -3
  132. package/src/stories/assets/icons/icon-session.svg +3 -3
  133. package/src/stories/assets/icons/icon-social-media-facebook.svg +10 -10
  134. package/src/stories/assets/icons/icon-social-media-instagram.svg +3 -3
  135. package/src/stories/assets/icons/icon-social-media-tiktok.svg +10 -10
  136. package/src/stories/assets/icons/icon-social-media-x.svg +10 -10
  137. package/src/stories/assets/icons/icon-social-media-youtube.svg +3 -3
  138. package/src/stories/assets/icons/icon-swap.svg +3 -3
  139. package/src/stories/assets/icons/icon-visibility-off.svg +7 -7
  140. package/src/stories/assets/icons/icon-visibility.svg +6 -6
  141. package/src/stories/assets/utr-sports-logo.svg +9 -9
  142. package/src/stories/atoms/Button/Button.stories.tsx +63 -63
  143. package/src/stories/atoms/Button/Button.tsx +145 -145
  144. package/src/stories/atoms/Icons/AddIcon.tsx +13 -13
  145. package/src/stories/atoms/Icons/AvailabilityMaybeIcon.tsx +11 -11
  146. package/src/stories/atoms/Icons/AvailabilityNoIcon.tsx +11 -11
  147. package/src/stories/atoms/Icons/AvailabilityNotSetIcon.tsx +12 -12
  148. package/src/stories/atoms/Icons/AvailabilityYesIcon.tsx +11 -11
  149. package/src/stories/atoms/Icons/BallInMotionIcon.tsx +15 -15
  150. package/src/stories/atoms/Icons/CalendarIcon.tsx +11 -11
  151. package/src/stories/atoms/Icons/ClockIcon.tsx +14 -14
  152. package/src/stories/atoms/Icons/CloseIcon.tsx +11 -11
  153. package/src/stories/atoms/Icons/DeleteIcon.tsx +15 -15
  154. package/src/stories/atoms/Icons/DoublePersonIcon.tsx +20 -20
  155. package/src/stories/atoms/Icons/EditIcon.tsx +11 -11
  156. package/src/stories/atoms/Icons/Icons.stories.tsx +372 -372
  157. package/src/stories/atoms/Icons/LeftChevronIcon.tsx +13 -13
  158. package/src/stories/atoms/Icons/LineIcon.tsx +12 -12
  159. package/src/stories/atoms/Icons/LocationIcon.tsx +12 -12
  160. package/src/stories/atoms/Icons/MessageIcon.tsx +12 -12
  161. package/src/stories/atoms/Icons/PickleballBallIcon.tsx +22 -22
  162. package/src/stories/atoms/Icons/RightChevronIcon.tsx +11 -11
  163. package/src/stories/atoms/Icons/SessionIcon.tsx +16 -16
  164. package/src/stories/atoms/Icons/SinglePersonIcon.tsx +16 -16
  165. package/src/stories/atoms/Icons/SinglePersonV2Icon.tsx +13 -13
  166. package/src/stories/atoms/Icons/SocialMediaFacebookIcon.tsx +19 -19
  167. package/src/stories/atoms/Icons/SocialMediaInstagramIcon.tsx +11 -11
  168. package/src/stories/atoms/Icons/SocialMediaTikTokIcon.tsx +18 -18
  169. package/src/stories/atoms/Icons/SocialMediaXIcon.tsx +18 -18
  170. package/src/stories/atoms/Icons/SocialMediaYoutubeIcon.tsx +11 -11
  171. package/src/stories/atoms/Icons/SwapIcon.tsx +11 -11
  172. package/src/stories/atoms/Icons/SwapNoBorderIcon.tsx +14 -14
  173. package/src/stories/atoms/Icons/TennisBallIcon.tsx +13 -13
  174. package/src/stories/atoms/Icons/VerifiedIcon.tsx +13 -13
  175. package/src/stories/atoms/Icons/VisibilityIcon.tsx +12 -12
  176. package/src/stories/atoms/Icons/VisibilityOffIcon.tsx +13 -13
  177. package/src/stories/atoms/Icons/WinnerIndicatorIcon.tsx +39 -39
  178. package/src/stories/atoms/Icons/sharedTypes.tsx +12 -12
  179. package/src/stories/atoms/Typography/Typography.tsx +185 -185
  180. package/src/stories/atoms/UTMap/UTMap.stories.tsx +43 -43
  181. package/src/stories/atoms/UTMap/UTMap.tsx +25 -25
  182. package/src/stories/molecules/AvatarWithName/AvatarWithName.stories.tsx +86 -86
  183. package/src/stories/molecules/AvatarWithName/AvatarWithName.tsx +68 -68
  184. package/src/stories/molecules/Cards/Cards.stories.tsx +76 -76
  185. package/src/stories/molecules/Cards/ContactCard.tsx +45 -45
  186. package/src/stories/molecules/Cards/DrawCard.tsx +211 -211
  187. package/src/stories/molecules/Cards/Modals.stories.tsx +137 -137
  188. package/src/stories/molecules/Cards/TeamCard.tsx +14 -14
  189. package/src/stories/molecules/Cards/TeamDrawCard.tsx +159 -159
  190. package/src/stories/molecules/Cards/sharedTypes.ts +69 -69
  191. package/src/stories/molecules/FooterSection/FooterSection.stories.tsx +25 -25
  192. package/src/stories/molecules/FooterSection/FooterSection.tsx +34 -34
  193. package/src/stories/molecules/FooterSection/sharedTypes.ts +6 -6
  194. package/src/stories/molecules/GlobalNavItem/GlobalNavItem.stories.tsx +22 -22
  195. package/src/stories/molecules/GlobalNavItem/GlobalNavItem.tsx +51 -51
  196. package/src/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.stories.tsx +96 -96
  197. package/src/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.tsx +112 -112
  198. package/src/stories/organisms/Footer/Footer.stories.tsx +63 -63
  199. package/src/stories/organisms/Footer/Footer.tsx +155 -165
  200. package/src/stories/organisms/Footer/sharedTypes.ts +17 -17
  201. package/src/stories/organisms/GlobalNavigation/GlobalNavigation.stories.tsx +210 -210
  202. package/src/stories/organisms/GlobalNavigation/GlobalNavigation.tsx +120 -120
  203. package/src/stories/organisms/Modals/FullPageModal.tsx +93 -93
  204. package/src/stories/organisms/Modals/Modals.stories.tsx +138 -138
  205. package/src/stories/organisms/Modals/sharedTypes.ts +15 -15
  206. package/src/stories/organisms/Tables/DrawCardTable.tsx +92 -92
  207. package/src/stories/organisms/Tables/SortableTable.tsx +119 -119
  208. package/src/stories/organisms/Tables/Tables.stories.tsx +104 -104
  209. package/src/stories/organisms/Tables/TeamDrawCardTable/DesktopTableRows.tsx +120 -120
  210. package/src/stories/organisms/Tables/TeamDrawCardTable/MobileTableRows.tsx +67 -67
  211. package/src/stories/organisms/Tables/TeamDrawCardTable/TeamDrawCardTable.tsx +24 -24
  212. package/src/stories/organisms/Tables/mockData.tsx +131 -131
  213. package/src/stories/organisms/Tables/sharedTypes.ts +17 -17
  214. package/src/stories/utils/constants.ts +31 -31
  215. package/src/stories/utils/getArrayWithIds.ts +1 -1
  216. package/src/stories/utils/useScreenSize.ts +28 -28
  217. package/src/types/tableDataTypes.ts +42 -42
  218. package/tsconfig.json +23 -23
  219. package/dist/stories/atoms/Map/Map.d.ts +0 -7
  220. package/dist/stories/atoms/Map/Map.js +0 -9
  221. package/dist/stories/atoms/Map/Map.js.map +0 -1
  222. package/dist/stories/atoms/Map/Map.stories.d.ts +0 -9
  223. package/dist/stories/atoms/Map/Map.stories.js +0 -36
  224. package/dist/stories/atoms/Map/Map.stories.js.map +0 -1
  225. package/dist/stories/organisms/Tables/TeamDrawCardTable.d.ts +0 -3
  226. package/dist/stories/organisms/Tables/TeamDrawCardTable.js +0 -126
  227. package/dist/stories/organisms/Tables/TeamDrawCardTable.js.map +0 -1
@@ -1,86 +1,86 @@
1
- import React from 'react';
2
-
3
- import AvatarWithName, { AvatarWithNameProps } from './AvatarWithName';
4
-
5
- // Default
6
- export default {
7
- title: 'Molecules/AvatarWithName',
8
- };
9
-
10
- // Templates
11
- function AvatarWithNameTemplate(args: AvatarWithNameProps) {
12
- return <AvatarWithName {...args} />;
13
- }
14
-
15
- // Stories
16
- export const Default = AvatarWithNameTemplate.bind({});
17
- Default.args = {
18
- playerName: "Julia Gulia",
19
- };
20
-
21
- export const WithImage = AvatarWithNameTemplate.bind({});
22
- WithImage.args = {
23
- imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
24
- playerName: "Julia Gulia",
25
- };
26
-
27
- export const WithCustomTypography = AvatarWithNameTemplate.bind({});
28
- WithCustomTypography.args = {
29
- playerName: "Julia Gulia",
30
- avatarFontCategory: "secondary",
31
- avatarFontSize: "large-medium",
32
- fontCategory: "primary",
33
- fontSize: "medium-book"
34
- };
35
-
36
- export const WithCustomAvatarSize = AvatarWithNameTemplate.bind({});
37
- WithCustomAvatarSize.args = {
38
- playerName: "Julia Gulia",
39
- avatarWidth: '26px',
40
- avatarHeight: '26px',
41
- avatarFontCategory: "primary",
42
- avatarFontSize: "small-book",
43
- };
44
-
45
- export const WithAvatarOnly = AvatarWithNameTemplate.bind({});
46
- WithAvatarOnly.args = {
47
- avatarOnly: true,
48
- playerName: "Julia Gulia",
49
- };
50
-
51
- export const WithNoImage = AvatarWithNameTemplate.bind({});
52
- WithNoImage.args = {
53
- imgSrc: '',
54
- playerName: "Julia Gulia",
55
- };
56
-
57
- export const WithBrokenImage = AvatarWithNameTemplate.bind({});
58
- WithBrokenImage.args = {
59
- imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.pn',
60
- playerName: "Julia Gulia",
61
- };
62
-
63
- export const WithLink = AvatarWithNameTemplate.bind({});
64
- WithLink.args = {
65
- imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
66
- href: "https://www.reddit.com",
67
- playerName: "Julia Gulia",
68
- };
69
-
70
- export const WithLowercaseName = AvatarWithNameTemplate.bind({});
71
- WithLowercaseName.args = {
72
- playerName: "julia gulia",
73
- };
74
-
75
- export const WithLongName = AvatarWithNameTemplate.bind({});
76
- WithLongName.args = {
77
- imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
78
- playerName: "Julia Guliauliauliauliauliauliauliauliauliaulia",
79
- };
80
-
81
- export const WithCustomMaxCharacterLimit = AvatarWithNameTemplate.bind({});
82
- WithCustomMaxCharacterLimit.args = {
83
- imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
84
- playerName: "Julia Guliauliauliauliauliauliauliauliauliaulia",
85
- maxCharacterLimit: 7
86
- };
1
+ import React from 'react';
2
+
3
+ import AvatarWithName, { AvatarWithNameProps } from './AvatarWithName';
4
+
5
+ // Default
6
+ export default {
7
+ title: 'Molecules/AvatarWithName',
8
+ };
9
+
10
+ // Templates
11
+ function AvatarWithNameTemplate(args: AvatarWithNameProps) {
12
+ return <AvatarWithName {...args} />;
13
+ }
14
+
15
+ // Stories
16
+ export const Default = AvatarWithNameTemplate.bind({});
17
+ Default.args = {
18
+ playerName: "Julia Gulia",
19
+ };
20
+
21
+ export const WithImage = AvatarWithNameTemplate.bind({});
22
+ WithImage.args = {
23
+ imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
24
+ playerName: "Julia Gulia",
25
+ };
26
+
27
+ export const WithCustomTypography = AvatarWithNameTemplate.bind({});
28
+ WithCustomTypography.args = {
29
+ playerName: "Julia Gulia",
30
+ avatarFontCategory: "secondary",
31
+ avatarFontSize: "large-medium",
32
+ fontCategory: "primary",
33
+ fontSize: "medium-book"
34
+ };
35
+
36
+ export const WithCustomAvatarSize = AvatarWithNameTemplate.bind({});
37
+ WithCustomAvatarSize.args = {
38
+ playerName: "Julia Gulia",
39
+ avatarWidth: '26px',
40
+ avatarHeight: '26px',
41
+ avatarFontCategory: "primary",
42
+ avatarFontSize: "small-book",
43
+ };
44
+
45
+ export const WithAvatarOnly = AvatarWithNameTemplate.bind({});
46
+ WithAvatarOnly.args = {
47
+ avatarOnly: true,
48
+ playerName: "Julia Gulia",
49
+ };
50
+
51
+ export const WithNoImage = AvatarWithNameTemplate.bind({});
52
+ WithNoImage.args = {
53
+ imgSrc: '',
54
+ playerName: "Julia Gulia",
55
+ };
56
+
57
+ export const WithBrokenImage = AvatarWithNameTemplate.bind({});
58
+ WithBrokenImage.args = {
59
+ imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.pn',
60
+ playerName: "Julia Gulia",
61
+ };
62
+
63
+ export const WithLink = AvatarWithNameTemplate.bind({});
64
+ WithLink.args = {
65
+ imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
66
+ href: "https://www.reddit.com",
67
+ playerName: "Julia Gulia",
68
+ };
69
+
70
+ export const WithLowercaseName = AvatarWithNameTemplate.bind({});
71
+ WithLowercaseName.args = {
72
+ playerName: "julia gulia",
73
+ };
74
+
75
+ export const WithLongName = AvatarWithNameTemplate.bind({});
76
+ WithLongName.args = {
77
+ imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
78
+ playerName: "Julia Guliauliauliauliauliauliauliauliauliaulia",
79
+ };
80
+
81
+ export const WithCustomMaxCharacterLimit = AvatarWithNameTemplate.bind({});
82
+ WithCustomMaxCharacterLimit.args = {
83
+ imgSrc: 'https://ci-cdn.universaltennis.com/v1/player/329903/images/profile/7839bf68-b56f-486a-88ab-a52debbac709.png',
84
+ playerName: "Julia Guliauliauliauliauliauliauliauliauliaulia",
85
+ maxCharacterLimit: 7
86
+ };
@@ -1,68 +1,68 @@
1
- import React from 'react';
2
-
3
- import Avatar from '@mui/material/Avatar';
4
- import Box from '@mui/material/Box';
5
- import Link from '@mui/material/Link';
6
-
7
- import Typography from '../../atoms/Typography/Typography';
8
-
9
- export interface AvatarWithNameProps {
10
- avatarOnly: boolean;
11
- avatarFontCategory: string;
12
- avatarFontSize: string;
13
- avatarWidth: string;
14
- avatarHeight: string;
15
- href: string,
16
- imgSrc: string;
17
- playerName: string;
18
- fontCategory: string;
19
- fontSize: string;
20
- maxCharacterLimit: number;
21
- }
22
-
23
- export default function AvatarWithName({
24
- avatarOnly = false, imgSrc = '', playerName = '', avatarFontSize = 'medium-medium', href = '',
25
- avatarFontCategory = 'primary', avatarWidth = '40px', avatarHeight = '40px', fontSize = 'small-medium', fontCategory = 'secondary',
26
- maxCharacterLimit = 24
27
- }) {
28
- const getAcronym = (str: string) => {
29
- const acronym = str?.split(' ').map((word) => word.charAt(0)).join('');
30
- return acronym;
31
- };
32
-
33
- const getTruncatedName = (name: string, characterLimit: number) => (
34
- name.length > characterLimit ? `${name.slice(0, characterLimit)}...` : name
35
- );
36
-
37
- const AvatarComponent = (
38
- <Avatar
39
- sx={{
40
- backgroundColor: 'var(--black)', marginRight: '10px', width: `${avatarWidth}`, height: `${avatarHeight}`
41
- }}
42
- src={imgSrc}
43
- >
44
- <Typography
45
- sx={{ textTransform: 'uppercase' }}
46
- size={avatarFontSize}
47
- category={avatarFontCategory}
48
- >
49
- {getAcronym(playerName)}
50
- </Typography>
51
- </Avatar>
52
- );
53
-
54
- return (
55
- avatarOnly ? (
56
- AvatarComponent
57
- ) : (
58
- <Box display="flex" alignItems="center">
59
- {AvatarComponent}
60
- {href ? (
61
- <Link href={href} sx={{ textDecoration: 'none' }}>
62
- <Typography category={fontCategory} size={fontSize}>{getTruncatedName(playerName, maxCharacterLimit)}</Typography>
63
- </Link>
64
- ) : <Typography category={fontCategory} size={fontSize}>{getTruncatedName(playerName, maxCharacterLimit)}</Typography>}
65
- </Box>
66
- )
67
- );
68
- }
1
+ import React from 'react';
2
+
3
+ import Avatar from '@mui/material/Avatar';
4
+ import Box from '@mui/material/Box';
5
+ import Link from '@mui/material/Link';
6
+
7
+ import Typography from '../../atoms/Typography/Typography';
8
+
9
+ export interface AvatarWithNameProps {
10
+ avatarOnly: boolean;
11
+ avatarFontCategory: string;
12
+ avatarFontSize: string;
13
+ avatarWidth: string;
14
+ avatarHeight: string;
15
+ href: string,
16
+ imgSrc: string;
17
+ playerName: string;
18
+ fontCategory: string;
19
+ fontSize: string;
20
+ maxCharacterLimit: number;
21
+ }
22
+
23
+ export default function AvatarWithName({
24
+ avatarOnly = false, imgSrc = '', playerName = '', avatarFontSize = 'medium-medium', href = '',
25
+ avatarFontCategory = 'primary', avatarWidth = '40px', avatarHeight = '40px', fontSize = 'small-medium', fontCategory = 'secondary',
26
+ maxCharacterLimit = 24
27
+ }) {
28
+ const getAcronym = (str: string) => {
29
+ const acronym = str?.split(' ').map((word) => word.charAt(0)).join('');
30
+ return acronym;
31
+ };
32
+
33
+ const getTruncatedName = (name: string, characterLimit: number) => (
34
+ name.length > characterLimit ? `${name.slice(0, characterLimit)}...` : name
35
+ );
36
+
37
+ const AvatarComponent = (
38
+ <Avatar
39
+ sx={{
40
+ backgroundColor: 'var(--black)', marginRight: '10px', width: `${avatarWidth}`, height: `${avatarHeight}`
41
+ }}
42
+ src={imgSrc}
43
+ >
44
+ <Typography
45
+ sx={{ textTransform: 'uppercase' }}
46
+ size={avatarFontSize}
47
+ category={avatarFontCategory}
48
+ >
49
+ {getAcronym(playerName)}
50
+ </Typography>
51
+ </Avatar>
52
+ );
53
+
54
+ return (
55
+ avatarOnly ? (
56
+ AvatarComponent
57
+ ) : (
58
+ <Box display="flex" alignItems="center">
59
+ {AvatarComponent}
60
+ {href ? (
61
+ <Link href={href} sx={{ textDecoration: 'none' }}>
62
+ <Typography category={fontCategory} size={fontSize}>{getTruncatedName(playerName, maxCharacterLimit)}</Typography>
63
+ </Link>
64
+ ) : <Typography category={fontCategory} size={fontSize}>{getTruncatedName(playerName, maxCharacterLimit)}</Typography>}
65
+ </Box>
66
+ )
67
+ );
68
+ }
@@ -1,76 +1,76 @@
1
- import React from 'react';
2
-
3
- import ContactCard from './ContactCard';
4
- import TeamCard from './TeamCard';
5
- import DrawCard from './DrawCard';
6
- import { DrawCardProps, TeamCardProps, ContactCardProps } from "./sharedTypes";
7
-
8
- // Default
9
- export default {
10
- title: 'Molecules/Cards',
11
- };
12
-
13
- // Templates
14
- function ContactCardTemplate(args: ContactCardProps) {
15
- return <ContactCard {...args} />;
16
- }
17
-
18
- function TeamCardTemplate(args: TeamCardProps) {
19
- return <TeamCard {...args} />;
20
- }
21
-
22
- function DrawCardTemplate(args: DrawCardProps) {
23
- return (
24
- <div style={{ width: '372px' }}>
25
- <DrawCard {...args} />
26
- </div>
27
- );
28
- }
29
-
30
- // Stories
31
- export const Contact = ContactCardTemplate.bind({});
32
- Contact.args = {
33
- name: "Jessica Carson",
34
- phone: "+1 222-234-4567",
35
- email: "test@sample.com"
36
- };
37
-
38
- export const Team = TeamCardTemplate.bind({});
39
- Team.args = {
40
- title: 'team 1',
41
- description: 'Captained by Lenny McDowell, Josh Palmer, and Michael Ballast. Requires a passcode for registration.'
42
- };
43
-
44
- export const Draw = DrawCardTemplate.bind({});
45
- Draw.args = {
46
- options: [
47
- {
48
- id: 1,
49
- label: 'Team 1',
50
- },
51
- {
52
- id: 2,
53
- label: 'Team 2',
54
- }
55
- ],
56
- selectedOptions: {
57
- optionOne: 1,
58
- optionTwo: 2,
59
- },
60
- dateLabel: 'Dec 20 at 9:00am',
61
- locationLabel: 'Taube Tennis Center',
62
- emptyLabel: 'Select a team',
63
- isManaging: false,
64
- isSelectActive: true,
65
- position1Team: {
66
- points: 2,
67
- name: 'Team Blue'
68
- },
69
- position2Team: {
70
- points: 4,
71
- name: 'Team Red'
72
- },
73
- isPosition1Winner: false,
74
- isPosition2Winner: true,
75
- onViewClick: () => {}
76
- };
1
+ import React from 'react';
2
+
3
+ import ContactCard from './ContactCard';
4
+ import TeamCard from './TeamCard';
5
+ import DrawCard from './DrawCard';
6
+ import { DrawCardProps, TeamCardProps, ContactCardProps } from "./sharedTypes";
7
+
8
+ // Default
9
+ export default {
10
+ title: 'Molecules/Cards',
11
+ };
12
+
13
+ // Templates
14
+ function ContactCardTemplate(args: ContactCardProps) {
15
+ return <ContactCard {...args} />;
16
+ }
17
+
18
+ function TeamCardTemplate(args: TeamCardProps) {
19
+ return <TeamCard {...args} />;
20
+ }
21
+
22
+ function DrawCardTemplate(args: DrawCardProps) {
23
+ return (
24
+ <div style={{ width: '372px' }}>
25
+ <DrawCard {...args} />
26
+ </div>
27
+ );
28
+ }
29
+
30
+ // Stories
31
+ export const Contact = ContactCardTemplate.bind({});
32
+ Contact.args = {
33
+ name: "Jessica Carson",
34
+ phone: "+1 222-234-4567",
35
+ email: "test@sample.com"
36
+ };
37
+
38
+ export const Team = TeamCardTemplate.bind({});
39
+ Team.args = {
40
+ title: 'team 1',
41
+ description: 'Captained by Lenny McDowell, Josh Palmer, and Michael Ballast. Requires a passcode for registration.'
42
+ };
43
+
44
+ export const Draw = DrawCardTemplate.bind({});
45
+ Draw.args = {
46
+ options: [
47
+ {
48
+ id: 1,
49
+ label: 'Team 1',
50
+ },
51
+ {
52
+ id: 2,
53
+ label: 'Team 2',
54
+ }
55
+ ],
56
+ selectedOptions: {
57
+ optionOne: 1,
58
+ optionTwo: 2,
59
+ },
60
+ dateLabel: 'Dec 20 at 9:00am',
61
+ locationLabel: 'Taube Tennis Center',
62
+ emptyLabel: 'Select a team',
63
+ isManaging: false,
64
+ isSelectActive: true,
65
+ position1Team: {
66
+ points: 2,
67
+ name: 'Team Blue'
68
+ },
69
+ position2Team: {
70
+ points: 4,
71
+ name: 'Team Red'
72
+ },
73
+ isPosition1Winner: false,
74
+ isPosition2Winner: true,
75
+ onViewClick: () => {}
76
+ };
@@ -1,45 +1,45 @@
1
- import React from 'react';
2
- import parsePhoneNumber from 'libphonenumber-js';
3
- import LocalPhoneOutlinedIcon from '@mui/icons-material/LocalPhoneOutlined';
4
- import EmailOutlinedIcon from '@mui/icons-material/EmailOutlined';
5
- import Link from '@mui/material/Link';
6
- import Button from '../../atoms/Button/Button';
7
- import Typography from '../../atoms/Typography/Typography';
8
- import ChatIcon from '../../assets/icon-chat-blue.svg';
9
-
10
- import { StyledCard } from './shared';
11
- import { ContactCardProps } from './sharedTypes';
12
-
13
- export default function ContactCard({
14
- name, phone, email, onMessageClick, ...props
15
- }: ContactCardProps) {
16
- const firstName = name.split(" ")[0];
17
- const parsedNumber = parsePhoneNumber(phone || '');
18
- const phoneNumber = parsedNumber?.formatInternational();
19
-
20
- return (
21
- <StyledCard {...props}>
22
- <Typography style={{ marginBottom: '8px' }} category="secondary" size="medium-medium">{name}</Typography>
23
- {phoneNumber && (
24
- <Link sx={{ display: 'flex' }} mt={1} fontSize={14} href={`tel:${phone}`}>
25
- <LocalPhoneOutlinedIcon fontSize="small" sx={{ mr: 1 }} />
26
- <Typography category="secondary" size="x-small-book">{phoneNumber}</Typography>
27
- </Link>
28
- )}
29
- {email && (
30
- <Link sx={{ display: 'flex' }} mt={1} fontSize={14} href={`mailto:${email}`}>
31
- <EmailOutlinedIcon fontSize="small" sx={{ mr: 1 }} />
32
- <Typography category="secondary" size="x-small-book">{email}</Typography>
33
- </Link>
34
- )}
35
- <Button onClick={onMessageClick} category="link" style={{ marginTop: '8px' }}>
36
- <>
37
- <img src={ChatIcon} alt="message" style={{ width: '20px' }} />
38
- <Typography style={{ paddingLeft: '8px' }} category="secondary" size="x-small-book">
39
- {`Message ${firstName}`}
40
- </Typography>
41
- </>
42
- </Button>
43
- </StyledCard>
44
- );
45
- }
1
+ import React from 'react';
2
+ import parsePhoneNumber from 'libphonenumber-js';
3
+ import LocalPhoneOutlinedIcon from '@mui/icons-material/LocalPhoneOutlined';
4
+ import EmailOutlinedIcon from '@mui/icons-material/EmailOutlined';
5
+ import Link from '@mui/material/Link';
6
+ import Button from '../../atoms/Button/Button';
7
+ import Typography from '../../atoms/Typography/Typography';
8
+ import ChatIcon from '../../assets/icon-chat-blue.svg';
9
+
10
+ import { StyledCard } from './shared';
11
+ import { ContactCardProps } from './sharedTypes';
12
+
13
+ export default function ContactCard({
14
+ name, phone, email, onMessageClick, ...props
15
+ }: ContactCardProps) {
16
+ const firstName = name.split(" ")[0];
17
+ const parsedNumber = parsePhoneNumber(phone || '');
18
+ const phoneNumber = parsedNumber?.formatInternational();
19
+
20
+ return (
21
+ <StyledCard {...props}>
22
+ <Typography style={{ marginBottom: '8px' }} category="secondary" size="medium-medium">{name}</Typography>
23
+ {phoneNumber && (
24
+ <Link sx={{ display: 'flex' }} mt={1} fontSize={14} href={`tel:${phone}`}>
25
+ <LocalPhoneOutlinedIcon fontSize="small" sx={{ mr: 1 }} />
26
+ <Typography category="secondary" size="x-small-book">{phoneNumber}</Typography>
27
+ </Link>
28
+ )}
29
+ {email && (
30
+ <Link sx={{ display: 'flex' }} mt={1} fontSize={14} href={`mailto:${email}`}>
31
+ <EmailOutlinedIcon fontSize="small" sx={{ mr: 1 }} />
32
+ <Typography category="secondary" size="x-small-book">{email}</Typography>
33
+ </Link>
34
+ )}
35
+ <Button onClick={onMessageClick} category="link" style={{ marginTop: '8px' }}>
36
+ <>
37
+ <img src={ChatIcon} alt="message" style={{ width: '20px' }} />
38
+ <Typography style={{ paddingLeft: '8px' }} category="secondary" size="x-small-book">
39
+ {`Message ${firstName}`}
40
+ </Typography>
41
+ </>
42
+ </Button>
43
+ </StyledCard>
44
+ );
45
+ }