@royaloperahouse/chord 0.1.0 → 0.3.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 (272) hide show
  1. package/README.md +9 -0
  2. package/dist/chord.cjs.development.js +567 -278
  3. package/dist/chord.cjs.development.js.map +1 -1
  4. package/dist/chord.cjs.production.min.js +1 -1
  5. package/dist/chord.cjs.production.min.js.map +1 -1
  6. package/dist/chord.esm.js +567 -279
  7. package/dist/chord.esm.js.map +1 -1
  8. package/dist/components/atoms/Account/Account.d.ts +1 -1
  9. package/dist/components/atoms/Basket/Basket.d.ts +1 -1
  10. package/dist/components/atoms/Dropdown/Dropdown.d.ts +1 -1
  11. package/dist/components/atoms/Dropdown/Dropdown.style.d.ts +1 -1
  12. package/dist/components/atoms/Icons/SvgIcons/index.d.ts +0 -1
  13. package/dist/components/atoms/Logo/Logo.d.ts +1 -1
  14. package/dist/components/atoms/Search/Search.d.ts +1 -1
  15. package/dist/components/atoms/SponsorLogo/SponsorLogo.d.ts +4 -0
  16. package/dist/components/atoms/SponsorLogo/SponsorLogo.style.d.ts +1 -0
  17. package/dist/components/atoms/SponsorLogo/index.d.ts +2 -0
  18. package/dist/components/atoms/Tab/Tab.d.ts +1 -1
  19. package/dist/components/atoms/index.d.ts +2 -1
  20. package/dist/components/molecules/NavTop/NavTop.d.ts +1 -1
  21. package/dist/components/molecules/Tabs/Tabs.d.ts +1 -1
  22. package/dist/components/molecules/Tabs/Tabs.style.d.ts +1 -1
  23. package/dist/components/organisms/Navigation/Navigation.d.ts +1 -1
  24. package/dist/index.d.ts +2 -2
  25. package/dist/styles/themes.d.ts +6 -0
  26. package/dist/types/navigation.d.ts +24 -0
  27. package/dist/types/types.d.ts +24 -2
  28. package/package.json +10 -6
  29. package/dist/components/atoms/Icons/SvgIcons/Logos/Sponsors/Sponsor.svg.d.ts +0 -4
  30. package/dist/components/atoms/Image/Image.d.ts +0 -38
  31. package/src/components/atoms/Account/Account.stories.tsx +0 -93
  32. package/src/components/atoms/Account/Account.test.tsx +0 -54
  33. package/src/components/atoms/Account/Account.tsx +0 -25
  34. package/src/components/atoms/Account/index.tsx +0 -3
  35. package/src/components/atoms/Basket/Basket.stories.tsx +0 -79
  36. package/src/components/atoms/Basket/Basket.style.tsx +0 -74
  37. package/src/components/atoms/Basket/Basket.test.tsx +0 -35
  38. package/src/components/atoms/Basket/Basket.tsx +0 -34
  39. package/src/components/atoms/Basket/index.tsx +0 -3
  40. package/src/components/atoms/Buttons/Button.style.tsx +0 -31
  41. package/src/components/atoms/Buttons/Button.tsx +0 -21
  42. package/src/components/atoms/Buttons/ButtonIconWrapper.style.tsx +0 -10
  43. package/src/components/atoms/Buttons/Buttons.stories.tsx +0 -77
  44. package/src/components/atoms/Buttons/Primary/PrimaryButton.stories.tsx +0 -94
  45. package/src/components/atoms/Buttons/Primary/PrimaryButton.test.tsx +0 -39
  46. package/src/components/atoms/Buttons/Primary/PrimaryButton.tsx +0 -14
  47. package/src/components/atoms/Buttons/Primary/PrimaryButtonWrapper.style.tsx +0 -11
  48. package/src/components/atoms/Buttons/Secondary/SecondaryButton.stories.tsx +0 -84
  49. package/src/components/atoms/Buttons/Secondary/SecondaryButton.test.tsx +0 -39
  50. package/src/components/atoms/Buttons/Secondary/SecondaryButton.tsx +0 -14
  51. package/src/components/atoms/Buttons/Secondary/SecondaryButtonWrapper.style.tsx +0 -11
  52. package/src/components/atoms/Buttons/Tertiary/TertiaryButton.stories.tsx +0 -73
  53. package/src/components/atoms/Buttons/Tertiary/TertiaryButton.style.tsx +0 -29
  54. package/src/components/atoms/Buttons/Tertiary/TertiaryButton.test.tsx +0 -29
  55. package/src/components/atoms/Buttons/Tertiary/TertiaryButton.tsx +0 -18
  56. package/src/components/atoms/Buttons/index.tsx +0 -5
  57. package/src/components/atoms/Dropdown/Dropdown.stories.tsx +0 -153
  58. package/src/components/atoms/Dropdown/Dropdown.style.tsx +0 -64
  59. package/src/components/atoms/Dropdown/Dropdown.test.tsx +0 -67
  60. package/src/components/atoms/Dropdown/Dropdown.tsx +0 -131
  61. package/src/components/atoms/Dropdown/index.tsx +0 -3
  62. package/src/components/atoms/Grid/Grid.stories.tsx +0 -127
  63. package/src/components/atoms/Grid/Grid.test.tsx +0 -17
  64. package/src/components/atoms/Grid/Grid.tsx +0 -11
  65. package/src/components/atoms/Grid/GridItem.test.tsx +0 -25
  66. package/src/components/atoms/Grid/GridItem.tsx +0 -24
  67. package/src/components/atoms/Grid/index.tsx +0 -3
  68. package/src/components/atoms/Heading/Heading.stories.tsx +0 -44
  69. package/src/components/atoms/Heading/Heading.style.tsx +0 -14
  70. package/src/components/atoms/Heading/Heading.test.tsx +0 -13
  71. package/src/components/atoms/Heading/Heading.tsx +0 -15
  72. package/src/components/atoms/Heading/index.tsx +0 -3
  73. package/src/components/atoms/Icons/Icons.stories.tsx +0 -190
  74. package/src/components/atoms/Icons/Icons.style.tsx +0 -24
  75. package/src/components/atoms/Icons/Icons.test.tsx +0 -31
  76. package/src/components/atoms/Icons/Icons.tsx +0 -20
  77. package/src/components/atoms/Icons/StorybookSupport/Iconography.tsx +0 -27
  78. package/src/components/atoms/Icons/StorybookSupport/IconsDiv.style.tsx +0 -49
  79. package/src/components/atoms/Icons/SvgIcons/12px/Remove.svg.tsx +0 -11
  80. package/src/components/atoms/Icons/SvgIcons/12px/Tick.svg.tsx +0 -11
  81. package/src/components/atoms/Icons/SvgIcons/Actions/AddToMyList.svg.tsx +0 -13
  82. package/src/components/atoms/Icons/SvgIcons/Actions/BookTickets.svg.tsx +0 -20
  83. package/src/components/atoms/Icons/SvgIcons/Actions/ChooseDates.svg.tsx +0 -11
  84. package/src/components/atoms/Icons/SvgIcons/Actions/EditMyList.svg.tsx +0 -16
  85. package/src/components/atoms/Icons/SvgIcons/Actions/Filter.svg.tsx +0 -19
  86. package/src/components/atoms/Icons/SvgIcons/Actions/FindAScreening.svg.tsx +0 -31
  87. package/src/components/atoms/Icons/SvgIcons/Actions/OnMyList.svg.tsx +0 -16
  88. package/src/components/atoms/Icons/SvgIcons/Actions/Reminder.svg.tsx +0 -11
  89. package/src/components/atoms/Icons/SvgIcons/Actions/Subscribe.svg.tsx +0 -9
  90. package/src/components/atoms/Icons/SvgIcons/Actions/Watch.svg.tsx +0 -9
  91. package/src/components/atoms/Icons/SvgIcons/Arrows/Arrow.svg.tsx +0 -11
  92. package/src/components/atoms/Icons/SvgIcons/Arrows/CarouselArrow.svg.tsx +0 -11
  93. package/src/components/atoms/Icons/SvgIcons/Arrows/DropdownArrow.svg.tsx +0 -8
  94. package/src/components/atoms/Icons/SvgIcons/Descriptors/Cinema.svg.tsx +0 -31
  95. package/src/components/atoms/Icons/SvgIcons/Descriptors/Clock.svg.tsx +0 -15
  96. package/src/components/atoms/Icons/SvgIcons/Descriptors/CreditCard.svg.tsx +0 -19
  97. package/src/components/atoms/Icons/SvgIcons/Descriptors/Email.svg.tsx +0 -11
  98. package/src/components/atoms/Icons/SvgIcons/Descriptors/Info.svg.tsx +0 -13
  99. package/src/components/atoms/Icons/SvgIcons/Descriptors/List.svg.tsx +0 -22
  100. package/src/components/atoms/Icons/SvgIcons/Descriptors/Location.svg.tsx +0 -15
  101. package/src/components/atoms/Icons/SvgIcons/Descriptors/PDF.svg.tsx +0 -20
  102. package/src/components/atoms/Icons/SvgIcons/Descriptors/Phone.svg.tsx +0 -11
  103. package/src/components/atoms/Icons/SvgIcons/Descriptors/Print.svg.tsx +0 -11
  104. package/src/components/atoms/Icons/SvgIcons/Descriptors/Secure.svg.tsx +0 -15
  105. package/src/components/atoms/Icons/SvgIcons/Descriptors/Tickets.svg.tsx +0 -13
  106. package/src/components/atoms/Icons/SvgIcons/Logos/Social/Facebook.svg.tsx +0 -11
  107. package/src/components/atoms/Icons/SvgIcons/Logos/Social/Instagram.svg.tsx +0 -19
  108. package/src/components/atoms/Icons/SvgIcons/Logos/Social/Tiktok.svg.tsx +0 -11
  109. package/src/components/atoms/Icons/SvgIcons/Logos/Social/Twitter.svg.tsx +0 -11
  110. package/src/components/atoms/Icons/SvgIcons/Logos/Social/Youtube.svg.tsx +0 -11
  111. package/src/components/atoms/Icons/SvgIcons/Logos/Sponsors/Sponsor.svg.tsx +0 -26
  112. package/src/components/atoms/Icons/SvgIcons/Navigation/BalletAndDance.svg.tsx +0 -11
  113. package/src/components/atoms/Icons/SvgIcons/Navigation/Basket.svg.tsx +0 -11
  114. package/src/components/atoms/Icons/SvgIcons/Navigation/BasketFull.svg.tsx +0 -11
  115. package/src/components/atoms/Icons/SvgIcons/Navigation/Home.svg.tsx +0 -11
  116. package/src/components/atoms/Icons/SvgIcons/Navigation/LiveStream.svg.tsx +0 -24
  117. package/src/components/atoms/Icons/SvgIcons/Navigation/Menu.svg.tsx +0 -10
  118. package/src/components/atoms/Icons/SvgIcons/Navigation/OperaAndMusic.svg.tsx +0 -17
  119. package/src/components/atoms/Icons/SvgIcons/Navigation/Search.svg.tsx +0 -11
  120. package/src/components/atoms/Icons/SvgIcons/Navigation/Settings.svg.tsx +0 -15
  121. package/src/components/atoms/Icons/SvgIcons/Navigation/User.svg.tsx +0 -15
  122. package/src/components/atoms/Icons/SvgIcons/Navigation/UserSignedIn.svg.tsx +0 -12
  123. package/src/components/atoms/Icons/SvgIcons/Text/Delete.svg.tsx +0 -12
  124. package/src/components/atoms/Icons/SvgIcons/Text/Shift.svg.tsx +0 -8
  125. package/src/components/atoms/Icons/SvgIcons/Text/Space.svg.tsx +0 -8
  126. package/src/components/atoms/Icons/SvgIcons/Utility/Close.svg.tsx +0 -11
  127. package/src/components/atoms/Icons/SvgIcons/Utility/Confirm.svg.tsx +0 -8
  128. package/src/components/atoms/Icons/SvgIcons/Utility/Detract.svg.tsx +0 -8
  129. package/src/components/atoms/Icons/SvgIcons/Utility/Expand.svg.tsx +0 -8
  130. package/src/components/atoms/Icons/SvgIcons/Utility/ExternalLink.svg.tsx +0 -12
  131. package/src/components/atoms/Icons/SvgIcons/Utility/GridView.svg.tsx +0 -11
  132. package/src/components/atoms/Icons/SvgIcons/Utility/ListView.svg.tsx +0 -10
  133. package/src/components/atoms/Icons/SvgIcons/Utility/Refresh.svg.tsx +0 -15
  134. package/src/components/atoms/Icons/SvgIcons/Video/AudioDescription.svg.tsx +0 -16
  135. package/src/components/atoms/Icons/SvgIcons/Video/Back10.svg.tsx +0 -16
  136. package/src/components/atoms/Icons/SvgIcons/Video/Clips.svg.tsx +0 -10
  137. package/src/components/atoms/Icons/SvgIcons/Video/Forward10.svg.tsx +0 -16
  138. package/src/components/atoms/Icons/SvgIcons/Video/FullScreen.svg.tsx +0 -11
  139. package/src/components/atoms/Icons/SvgIcons/Video/Minimise.svg.tsx +0 -11
  140. package/src/components/atoms/Icons/SvgIcons/Video/Muted.svg.tsx +0 -15
  141. package/src/components/atoms/Icons/SvgIcons/Video/Pause.svg.tsx +0 -9
  142. package/src/components/atoms/Icons/SvgIcons/Video/Play.svg.tsx +0 -9
  143. package/src/components/atoms/Icons/SvgIcons/Video/Restart.svg.tsx +0 -11
  144. package/src/components/atoms/Icons/SvgIcons/Video/Subtitles.svg.tsx +0 -17
  145. package/src/components/atoms/Icons/SvgIcons/Video/Trailer.svg.tsx +0 -12
  146. package/src/components/atoms/Icons/SvgIcons/Video/Volume.svg.tsx +0 -19
  147. package/src/components/atoms/Icons/SvgIcons/index.tsx +0 -149
  148. package/src/components/atoms/Icons/__snapshots__/Icons.test.tsx.snap +0 -1954
  149. package/src/components/atoms/Icons/index.tsx +0 -2
  150. package/src/components/atoms/Image/Image.tsx +0 -72
  151. package/src/components/atoms/ImageAspectRatioWrapper/ImageAspectRatio.test.tsx +0 -23
  152. package/src/components/atoms/ImageAspectRatioWrapper/ImageAspectRatioWrapper.stories.tsx +0 -71
  153. package/src/components/atoms/ImageAspectRatioWrapper/ImageAspectRatioWrapper.tsx +0 -15
  154. package/src/components/atoms/ImageAspectRatioWrapper/index.tsx +0 -3
  155. package/src/components/atoms/IndividualListing/IndividualListing.stories.tsx +0 -51
  156. package/src/components/atoms/IndividualListing/IndividualListing.style.tsx +0 -33
  157. package/src/components/atoms/IndividualListing/IndividualListing.test.tsx +0 -30
  158. package/src/components/atoms/IndividualListing/IndividualListing.tsx +0 -22
  159. package/src/components/atoms/IndividualListing/index.tsx +0 -3
  160. package/src/components/atoms/Logo/Logo.stories.tsx +0 -48
  161. package/src/components/atoms/Logo/Logo.style.tsx +0 -18
  162. package/src/components/atoms/Logo/Logo.tsx +0 -30
  163. package/src/components/atoms/Logo/index.tsx +0 -3
  164. package/src/components/atoms/Search/Search.stories.tsx +0 -63
  165. package/src/components/atoms/Search/Search.style.tsx +0 -36
  166. package/src/components/atoms/Search/Search.test.tsx +0 -24
  167. package/src/components/atoms/Search/Search.tsx +0 -16
  168. package/src/components/atoms/Search/index.tsx +0 -3
  169. package/src/components/atoms/SectionSplitter/SectionSplitter.stories.tsx +0 -47
  170. package/src/components/atoms/SectionSplitter/SectionSplitter.style.tsx +0 -11
  171. package/src/components/atoms/SectionSplitter/SectionSplitter.tsx +0 -22
  172. package/src/components/atoms/SectionSplitter/index.tsx +0 -3
  173. package/src/components/atoms/Sponsorship/Sponsorship.stories.tsx +0 -38
  174. package/src/components/atoms/Sponsorship/Sponsorship.test.tsx +0 -36
  175. package/src/components/atoms/Sponsorship/Sponsorship.tsx +0 -53
  176. package/src/components/atoms/Sponsorship/index.tsx +0 -3
  177. package/src/components/atoms/Tab/Tab.stories.tsx +0 -67
  178. package/src/components/atoms/Tab/Tab.style.tsx +0 -105
  179. package/src/components/atoms/Tab/Tab.test.tsx +0 -28
  180. package/src/components/atoms/Tab/Tab.tsx +0 -34
  181. package/src/components/atoms/Tab/index.tsx +0 -3
  182. package/src/components/atoms/TextLink/TextLink.stories.tsx +0 -81
  183. package/src/components/atoms/TextLink/TextLink.style.tsx +0 -26
  184. package/src/components/atoms/TextLink/TextLink.test.tsx +0 -39
  185. package/src/components/atoms/TextLink/TextLink.tsx +0 -20
  186. package/src/components/atoms/TextLink/index.tsx +0 -3
  187. package/src/components/atoms/TypeTags/TypeTags.stories.tsx +0 -57
  188. package/src/components/atoms/TypeTags/TypeTags.style.tsx +0 -28
  189. package/src/components/atoms/TypeTags/TypeTags.test.tsx +0 -21
  190. package/src/components/atoms/TypeTags/TypeTags.tsx +0 -15
  191. package/src/components/atoms/TypeTags/index.tsx +0 -3
  192. package/src/components/atoms/index.tsx +0 -22
  193. package/src/components/index.tsx +0 -38
  194. package/src/components/molecules/ContactNewsletter/ContactNewsletter.style.tsx +0 -116
  195. package/src/components/molecules/ContactNewsletter/ContactNewsletter.test.tsx +0 -85
  196. package/src/components/molecules/ContactNewsletter/ContactNewsletter.tsx +0 -51
  197. package/src/components/molecules/ContactNewsletter/index.tsx +0 -3
  198. package/src/components/molecules/Editorial/Editorial.stories.tsx +0 -78
  199. package/src/components/molecules/Editorial/Editorial.style.tsx +0 -73
  200. package/src/components/molecules/Editorial/Editorial.test.tsx +0 -73
  201. package/src/components/molecules/Editorial/Editorial.tsx +0 -32
  202. package/src/components/molecules/Editorial/index.tsx +0 -3
  203. package/src/components/molecules/NavTop/NavTop.stories.tsx +0 -95
  204. package/src/components/molecules/NavTop/NavTop.style.tsx +0 -14
  205. package/src/components/molecules/NavTop/NavTop.test.tsx +0 -113
  206. package/src/components/molecules/NavTop/NavTop.tsx +0 -27
  207. package/src/components/molecules/NavTop/index.tsx +0 -3
  208. package/src/components/molecules/PeopleListing/PeopleListing.stories.tsx +0 -185
  209. package/src/components/molecules/PeopleListing/PeopleListing.style.tsx +0 -8
  210. package/src/components/molecules/PeopleListing/PeopleListing.test.tsx +0 -24
  211. package/src/components/molecules/PeopleListing/PeopleListing.tsx +0 -27
  212. package/src/components/molecules/PeopleListing/index.tsx +0 -3
  213. package/src/components/molecules/PolicyLinks/PolicyLinks.style.tsx +0 -41
  214. package/src/components/molecules/PolicyLinks/PolicyLinks.test.tsx +0 -28
  215. package/src/components/molecules/PolicyLinks/PolicyLinks.tsx +0 -19
  216. package/src/components/molecules/PolicyLinks/index.tsx +0 -3
  217. package/src/components/molecules/PromoWithTitle/PromoWithTitle.stories.tsx +0 -119
  218. package/src/components/molecules/PromoWithTitle/PromoWithTitle.style.tsx +0 -108
  219. package/src/components/molecules/PromoWithTitle/PromoWithTitle.test.tsx +0 -75
  220. package/src/components/molecules/PromoWithTitle/PromoWithTitle.tsx +0 -53
  221. package/src/components/molecules/PromoWithTitle/index.tsx +0 -3
  222. package/src/components/molecules/SearchBar/SearchBar.stories.tsx +0 -35
  223. package/src/components/molecules/SearchBar/SearchBar.style.tsx +0 -66
  224. package/src/components/molecules/SearchBar/SearchBar.test.tsx +0 -63
  225. package/src/components/molecules/SearchBar/SearchBar.tsx +0 -69
  226. package/src/components/molecules/SearchBar/index.tsx +0 -3
  227. package/src/components/molecules/SectionTitle/SectionTitle.stories.tsx +0 -68
  228. package/src/components/molecules/SectionTitle/SectionTitle.style.tsx +0 -34
  229. package/src/components/molecules/SectionTitle/SectionTitle.test.tsx +0 -35
  230. package/src/components/molecules/SectionTitle/SectionTitle.tsx +0 -25
  231. package/src/components/molecules/SectionTitle/index.tsx +0 -3
  232. package/src/components/molecules/Tabs/Tabs.stories.tsx +0 -101
  233. package/src/components/molecules/Tabs/Tabs.style.tsx +0 -74
  234. package/src/components/molecules/Tabs/Tabs.test.tsx +0 -149
  235. package/src/components/molecules/Tabs/Tabs.tsx +0 -67
  236. package/src/components/molecules/Tabs/index.tsx +0 -3
  237. package/src/components/molecules/TextOnly/TextOnly.stories.tsx +0 -74
  238. package/src/components/molecules/TextOnly/TextOnly.style.tsx +0 -56
  239. package/src/components/molecules/TextOnly/TextOnly.test.tsx +0 -79
  240. package/src/components/molecules/TextOnly/TextOnly.tsx +0 -16
  241. package/src/components/molecules/TextOnly/index.tsx +0 -3
  242. package/src/components/molecules/index.tsx +0 -7
  243. package/src/components/organisms/Footer/Footer.stories.tsx +0 -54
  244. package/src/components/organisms/Footer/Footer.style.tsx +0 -72
  245. package/src/components/organisms/Footer/Footer.test.tsx +0 -31
  246. package/src/components/organisms/Footer/Footer.tsx +0 -53
  247. package/src/components/organisms/Footer/exampleData.json +0 -78
  248. package/src/components/organisms/Footer/index.tsx +0 -3
  249. package/src/components/organisms/Navigation/Navigation.stories.tsx +0 -110
  250. package/src/components/organisms/Navigation/Navigation.style.tsx +0 -87
  251. package/src/components/organisms/Navigation/Navigation.test.tsx +0 -115
  252. package/src/components/organisms/Navigation/Navigation.tsx +0 -109
  253. package/src/components/organisms/Navigation/index.tsx +0 -3
  254. package/src/components/organisms/Navigation/menuData.json +0 -104
  255. package/src/components/organisms/index.tsx +0 -4
  256. package/src/index.tsx +0 -44
  257. package/src/jest.setup.ts +0 -1
  258. package/src/styles/GlobalStyles.tsx +0 -205
  259. package/src/styles/StorybookSupport/Colours/Colours.stories.mdx +0 -101
  260. package/src/styles/StorybookSupport/Colours/StorybookColourBox.tsx +0 -32
  261. package/src/styles/ThemeProvider.tsx +0 -11
  262. package/src/styles/themes.ts +0 -398
  263. package/src/styles/viewports.ts +0 -14
  264. package/src/types/buttonTypes.ts +0 -42
  265. package/src/types/editorial.ts +0 -84
  266. package/src/types/footer.ts +0 -49
  267. package/src/types/iconTypes.ts +0 -38
  268. package/src/types/image.ts +0 -13
  269. package/src/types/images.d.ts +0 -1
  270. package/src/types/index.tsx +0 -5
  271. package/src/types/navigation.ts +0 -149
  272. package/src/types/types.ts +0 -276
@@ -1,81 +0,0 @@
1
- import React, { MouseEventHandler } from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
- import TextLink from './TextLink';
4
- import GlobalStyles from '../../../styles/GlobalStyles';
5
- import ThemeProvider from '../../../styles/ThemeProvider';
6
- import { ThemeType, Colors } from '../../../types/types';
7
- import { DirectionType, IconNameType } from '../../../types/iconTypes';
8
-
9
- const meta: Meta = {
10
- title: 'Components/Foundations/Buttons/TextLink',
11
- component: TextLink,
12
- argTypes: {
13
- color: {
14
- description: 'Text and icon color',
15
- },
16
- ref: {
17
- table: { disable: true },
18
- },
19
- theme: {
20
- table: { disable: true },
21
- },
22
- as: {
23
- table: { disable: true },
24
- },
25
- forwardedAs: {
26
- table: { disable: true },
27
- },
28
- },
29
- decorators: [
30
- (Story) => (
31
- <ThemeProvider theme={ThemeType.Core}>
32
- <GlobalStyles />
33
- {Story()}
34
- </ThemeProvider>
35
- ),
36
- ],
37
- parameters: {
38
- docs: {
39
- description: {
40
- component: 'Text Link',
41
- withSource: 'none',
42
- },
43
- },
44
- design: {
45
- type: 'figma',
46
- url: 'https://www.figma.com/file/PtlqtJAjr87djTyD0x40m9/ROH:-Design-System-and-Documentation?node-id=3%3A1497',
47
- },
48
- jest: ['TextLink'],
49
- },
50
- };
51
-
52
- export default meta;
53
-
54
- interface IStorybookTextLinkProps {
55
- text: string;
56
- color?: Colors;
57
- iconName?: IconNameType;
58
- iconDirection?: DirectionType;
59
- onClick: MouseEventHandler<any>;
60
- }
61
-
62
- const TextLinkTemplate: Story<IStorybookTextLinkProps> = ({ text, ...rest }) => <TextLink {...rest}>{text}</TextLink>;
63
-
64
- export const WithoutIcon = TextLinkTemplate.bind({});
65
- WithoutIcon.args = {
66
- onClick: () => console.log('click!'),
67
- text: 'Button Text',
68
- };
69
-
70
- export const WithIcon = TextLinkTemplate.bind({});
71
- WithIcon.args = {
72
- onClick: () => console.log('click!'),
73
- text: 'Button Text',
74
- iconName: 'DropdownArrow',
75
- };
76
-
77
- export const WithLongText = TextLinkTemplate.bind({});
78
- WithLongText.args = {
79
- onClick: () => console.log('click!'),
80
- text: 'Very Very Very Long Link Truncated Text',
81
- };
@@ -1,26 +0,0 @@
1
- import styled from 'styled-components';
2
- import { ITextLinkProps } from '../../../types/types';
3
-
4
- export const TextLinkWrapper = styled.a<ITextLinkProps>`
5
- border-bottom: 1px solid;
6
- padding-bottom: ${({ iconName }) =>
7
- iconName ? 'calc(var(--text-link-underline-offset) - 4px)' : 'var(--text-link-underline-offset)'};
8
- font-family: var(--font-family-overline);
9
- font-size: var(--font-size-overline-1);
10
- font-weight: var(--font-weigth-overline-1);
11
- line-height: var(--line-height-overline-1);
12
- letter-spacing: var(--letter-spacing-overline-1);
13
- text-transform: var(--text-transform-overline-1);
14
- color: var(--base-color-${({ color }) => color});
15
- width: fit-content;
16
- display: flex;
17
- align-items: center;
18
- cursor: pointer;
19
- text-decoration: none;
20
- `;
21
-
22
- export const TextLinkIconWrapper = styled.span`
23
- width: var(--button-icon-width);
24
- height: var(--button-icon-height);
25
- margin-left: var(--button-icon-margin);
26
- `;
@@ -1,39 +0,0 @@
1
- import React from 'react';
2
- import { render, within, fireEvent } from '@testing-library/react';
3
- import TextLink from './TextLink';
4
-
5
- describe('TextLink component', () => {
6
- const onClick = jest.fn();
7
- it('renders text link with specific text', () => {
8
- const { getByText } = render(<TextLink onClick={onClick}>Text link text</TextLink>);
9
-
10
- expect(getByText('Text link text')).toBeInTheDocument();
11
- });
12
-
13
- it('truncates text if its length is greater than 30 characters', () => {
14
- const { getByText, queryAllByText } = render(
15
- <TextLink onClick={onClick}>Very Very Very Very Long Text Link</TextLink>
16
- );
17
-
18
- expect(queryAllByText('Very Very Very Very Long Text Link')).toHaveLength(0);
19
- expect(getByText('Very Very Very Very Long Text')).toBeInTheDocument();
20
- });
21
-
22
- it('renders icon inside the text link', () => {
23
- const { getByText } = render(
24
- <TextLink iconName="Arrow" onClick={onClick}>
25
- Text link text
26
- </TextLink>
27
- );
28
- const textLink = getByText('Text link text');
29
-
30
- expect(within(textLink).getByTestId('text-link-icon')).toBeInTheDocument();
31
- });
32
-
33
- it('calls onClick callback when text link is clicked', () => {
34
- const { getByText } = render(<TextLink onClick={onClick}>Text link text</TextLink>);
35
-
36
- fireEvent.click(getByText('Text link text'));
37
- expect(onClick).toBeCalled();
38
- });
39
- });
@@ -1,20 +0,0 @@
1
- import React, { FunctionComponent } from 'react';
2
- import { TextLinkWrapper, TextLinkIconWrapper } from './TextLink.style';
3
- import { Icon } from '../Icons';
4
- import { ITextLinkProps } from '../../../types/types';
5
-
6
- const TextLink: FunctionComponent<ITextLinkProps> = ({ children, iconName, iconDirection, color, ...rest }) => {
7
- const truncatedString = (children as string).substring(0, 30);
8
- return (
9
- <TextLinkWrapper color={color} iconName={iconName} {...rest}>
10
- {truncatedString}
11
- {iconName ? (
12
- <TextLinkIconWrapper data-testid="text-link-icon">
13
- <Icon iconName={iconName} direction={iconDirection} color={color} />
14
- </TextLinkIconWrapper>
15
- ) : null}
16
- </TextLinkWrapper>
17
- );
18
- };
19
-
20
- export default TextLink;
@@ -1,3 +0,0 @@
1
- import TextLink from './TextLink';
2
-
3
- export default TextLink;
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import { Story, Meta } from '@storybook/react';
3
- import GlobalStyles from '../../../styles/GlobalStyles';
4
- import ThemeProvider from '../../../styles/ThemeProvider';
5
- import TypeTags from './index';
6
- import { ThemeType } from '../../../types/types';
7
- import { ITypeTagsProps } from '../../../types/types';
8
-
9
- export default {
10
- title: 'Components/Event Core/Type Tags',
11
- component: TypeTags,
12
- parameters: {
13
- docs: {
14
- description: {
15
- component:
16
- 'Type Tags are used on event components when it is key to show users a single, or number of, pieces of information related to the event, such as genre or location. The component uses the ‘Overline 1’ typography style. It is flexible in width so it works to the component it sits within.',
17
- withSource: 'none',
18
- },
19
- },
20
- design: {
21
- type: 'figma',
22
- url: 'https://www.figma.com/file/PtlqtJAjr87djTyD0x40m9/ROH%3A-Design-System-%26-Documentation?node-id=1%3A17',
23
- },
24
- jest: ['TypeTags'],
25
- },
26
- decorators: [
27
- (Story) => (
28
- <ThemeProvider theme={ThemeType.Core}>
29
- <GlobalStyles />
30
- {Story()}
31
- </ThemeProvider>
32
- ),
33
- ],
34
- } as Meta;
35
-
36
- const Template: Story<ITypeTagsProps> = (args) => <TypeTags {...args} />;
37
-
38
- export const SingleTag = Template.bind({});
39
-
40
- SingleTag.args = {
41
- list: ['This is a tag'],
42
- };
43
-
44
- export const MultipleTags = Template.bind({});
45
-
46
- MultipleTags.args = {
47
- list: ['Ballet and Opera', 'Main Stage', 'Some other tag'],
48
- };
49
-
50
- MultipleTags.parameters = {
51
- docs: {
52
- description: {
53
- story:
54
- 'A Type Tag component can hold multiple tags. When this happens, they should be spaced using an Em Dash (—) with a single space on either side of it.',
55
- },
56
- },
57
- };
@@ -1,28 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- export const TypeTag = styled.li`
4
- color: var(--base-color-black);
5
- display: inline-block;
6
- font-size: var(--font-size-overline-1);
7
- font-family: var(--font-family-overline);
8
- font-weight: var(--font-weigth-overline-1);
9
- letter-spacing: var(--letter-spacing-overline-1);
10
- line-height: var(--line-height-overline-1);
11
- margin: 0;
12
- text-transform: var(--text-transform-overline-1);
13
-
14
- &:before {
15
- content: '—';
16
- margin: 0 0.5em;
17
- }
18
-
19
- &:first-child:before {
20
- display: none;
21
- }
22
- `;
23
-
24
- export const TypeTagsContainer = styled.ul`
25
- list-style-type: none;
26
- margin: 0;
27
- padding: 0;
28
- `;
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import TypeTags from './TypeTags';
4
-
5
- describe('TypeTags component', () => {
6
- it('renders tag with specific text for a single item', () => {
7
- const list = ['tag1'];
8
-
9
- const { getByText } = render(<TypeTags list={list} />);
10
-
11
- expect(getByText(list[0])).toBeInTheDocument();
12
- });
13
-
14
- it('renders multiple tags for multiple items', () => {
15
- const list = ['First tag', 'second tag', 'another tag'];
16
-
17
- const { getByText } = render(<TypeTags list={list} />);
18
-
19
- list.forEach((t) => expect(getByText(t)).toBeInTheDocument());
20
- });
21
- });
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { TypeTag, TypeTagsContainer } from './TypeTags.style';
3
- import { ITypeTagsProps } from '../../../types/types';
4
-
5
- const TypeTags = ({ list }: ITypeTagsProps) => {
6
- return (
7
- <TypeTagsContainer>
8
- {list.map((t) => (
9
- <TypeTag key={t}>{t}</TypeTag>
10
- ))}
11
- </TypeTagsContainer>
12
- );
13
- };
14
-
15
- export default TypeTags;
@@ -1,3 +0,0 @@
1
- import TypeTags from './TypeTags';
2
-
3
- export default TypeTags;
@@ -1,22 +0,0 @@
1
- import { PrimaryButton, SecondaryButton, TertiaryButton } from './Buttons';
2
- import { Grid, GridItem } from './Grid';
3
- import { Icon } from './Icons';
4
- import Heading from './Heading';
5
- import Sponsorship from './Sponsorship';
6
- import SectionSplitter from './SectionSplitter';
7
- import ImageAspectRatioWrapper from './ImageAspectRatioWrapper';
8
- import TypeTags from './TypeTags';
9
-
10
- export {
11
- Grid,
12
- GridItem,
13
- Heading,
14
- Icon,
15
- ImageAspectRatioWrapper,
16
- PrimaryButton,
17
- SecondaryButton,
18
- SectionSplitter,
19
- Sponsorship,
20
- TertiaryButton,
21
- TypeTags,
22
- };
@@ -1,38 +0,0 @@
1
- import {
2
- Grid,
3
- GridItem,
4
- Heading,
5
- Icon,
6
- Sponsorship,
7
- PrimaryButton,
8
- SecondaryButton,
9
- TertiaryButton,
10
- SectionSplitter,
11
- TypeTags,
12
- } from './atoms';
13
- import { Footer, Navigation } from './organisms';
14
- import { Editorial, PeopleListing, PromoWithTitle, SectionTitle, TextOnly } from './molecules';
15
- import ThemeProvider from '../styles/ThemeProvider';
16
- import GlobalStyles from '../styles/GlobalStyles';
17
-
18
- export {
19
- Editorial,
20
- Footer,
21
- GlobalStyles,
22
- Grid,
23
- GridItem,
24
- Heading,
25
- Icon,
26
- Navigation,
27
- PeopleListing,
28
- PrimaryButton,
29
- PromoWithTitle,
30
- SecondaryButton,
31
- SectionTitle,
32
- Sponsorship,
33
- TertiaryButton,
34
- TextOnly,
35
- ThemeProvider,
36
- SectionSplitter,
37
- TypeTags,
38
- };
@@ -1,116 +0,0 @@
1
- import styled from 'styled-components';
2
- import { devices } from '../../../styles/viewports';
3
-
4
- export const ContactNewsletterWrapper = styled.div`
5
- display: grid;
6
- grid-template-columns: calc(50% - 1px) 2px calc(50% - 1px);
7
- grid-template-rows: 100px;
8
- gap: 0;
9
-
10
- @media ${devices.mobile} {
11
- & {
12
- display: grid;
13
- grid-template-columns: 100%;
14
- grid-template-rows: min-content min-content;
15
- gap: var(--footer-vertical-spacing-lg);
16
- }
17
- }
18
- `;
19
-
20
- export const ContactNewsletterSeparator = styled.div`
21
- grid-column: 2;
22
- justify-self: center;
23
- height: 100%;
24
- border: 1px solid var(--base-color-white);
25
-
26
- @media ${devices.mobile} {
27
- & {
28
- grid-column: auto;
29
- display: none;
30
- }
31
- }
32
- `;
33
-
34
- export const SignUpWrapper = styled.div`
35
- grid-column: 1;
36
- padding-top: 9px;
37
- justify-self: center;
38
- display: flex;
39
- flex-direction: column;
40
- align-items: center;
41
-
42
- @media ${devices.mobile} {
43
- & {
44
- grid-column: auto;
45
- align-items: start;
46
- justify-self: start;
47
- padding-top: 0;
48
- }
49
- }
50
- `;
51
-
52
- export const SignUpText = styled.p`
53
- font-family: var(--font-family-body);
54
- font-size: var(--font-size-body-2);
55
- line-height: var(--line-height-body-2);
56
- width: 60%;
57
- margin: 0 auto;
58
- height: 60px;
59
- text-align: center;
60
-
61
- @media ${devices.mobile} {
62
- & {
63
- width: 100%;
64
- height: auto;
65
- text-align: left;
66
- margin-bottom: var(--footer-vertical-spacing-lg);
67
- }
68
- }
69
- `;
70
-
71
- export const ContactWrapper = styled.div`
72
- grid-column: 3;
73
- justify-self: center;
74
- display: flex;
75
- flex-direction: column;
76
- align-items: center;
77
- padding-top: 9px;
78
-
79
- @media ${devices.mobile} {
80
- & {
81
- grid-column: auto;
82
- align-items: start;
83
- justify-self: start;
84
- padding-top: 0;
85
- }
86
- }
87
- `;
88
-
89
- export const MediaLinksWrapper = styled.div`
90
- display: flex;
91
- gap: var(--footer-media-gap);
92
- height: 60px;
93
-
94
- @media ${devices.mobile} {
95
- & {
96
- height: auto;
97
- margin-bottom: var(--footer-vertical-spacing-lg);
98
- }
99
- }
100
- `;
101
-
102
- export const MediaIconWrapper = styled.a`
103
- height: var(--footer-media-icon-height);
104
- width: var(--footer-media-icon-width);
105
- `;
106
-
107
- export const TextLinkWrapper = styled.div`
108
- &&& {
109
- font-family: var(--font-family-overline);
110
- font-size: var(--font-size-overline-1);
111
- font-weight: var(--font-weigth-overline-1);
112
- line-height: var(--line-height-overline-1);
113
- letter-spacing: var(--letter-spacing-overline-1);
114
- text-transform: var(--text-transform-overline-1);
115
- }
116
- `;
@@ -1,85 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import ContactNewsletter from './ContactNewsletter';
4
- import { SocialMediaLink } from '../../../types/footer';
5
-
6
- describe('ContactNewsletter component', () => {
7
- const signUpText = 'Foo text signup';
8
- const signUpLink = {
9
- title: 'SignUp Link',
10
- href: '/test-signup',
11
- dataRoh: 'foo',
12
- };
13
- const contact = {
14
- title: 'Contact Link',
15
- href: '/test-contact',
16
- dataRoh: 'bar',
17
- };
18
- const socialMediaLinks = [
19
- {
20
- dataRoh: 'test-data2',
21
- href: '/test',
22
- name: 'Facebook',
23
- },
24
- {
25
- dataRoh: 'test-data2',
26
- href: '/test2',
27
- name: 'Twitter',
28
- },
29
- ] as SocialMediaLink[];
30
-
31
- it('renders signup text', () => {
32
- const { getByText } = render(
33
- <ContactNewsletter
34
- signUpText={signUpText}
35
- signUpLink={signUpLink}
36
- contact={contact}
37
- socialMediaLinks={socialMediaLinks}
38
- />
39
- );
40
-
41
- expect(getByText(signUpText)).toBeInTheDocument();
42
- });
43
-
44
- it('renders signup link', () => {
45
- const { getByText, getByTitle } = render(
46
- <ContactNewsletter
47
- signUpText={signUpText}
48
- signUpLink={signUpLink}
49
- contact={contact}
50
- socialMediaLinks={socialMediaLinks}
51
- />
52
- );
53
-
54
- expect(getByText(signUpLink.title)).toBeInTheDocument();
55
- expect(getByTitle(signUpLink.title)).toBeInTheDocument();
56
- });
57
-
58
- it('renders a list of social media links', () => {
59
- const { getByTitle } = render(
60
- <ContactNewsletter
61
- signUpText={signUpText}
62
- signUpLink={signUpLink}
63
- contact={contact}
64
- socialMediaLinks={socialMediaLinks}
65
- />
66
- );
67
-
68
- expect(getByTitle(socialMediaLinks[0].name)).toBeInTheDocument();
69
- expect(getByTitle(socialMediaLinks[1].name)).toBeInTheDocument();
70
- });
71
-
72
- it('renders contact link', () => {
73
- const { getByText, getByTitle } = render(
74
- <ContactNewsletter
75
- signUpText={signUpText}
76
- signUpLink={signUpLink}
77
- contact={contact}
78
- socialMediaLinks={socialMediaLinks}
79
- />
80
- );
81
-
82
- expect(getByText(contact.title)).toBeInTheDocument();
83
- expect(getByTitle(contact.title)).toBeInTheDocument();
84
- });
85
- });
@@ -1,51 +0,0 @@
1
- import React, { FunctionComponent } from 'react';
2
- import TextLink from '../../atoms/TextLink';
3
- import { Icon } from '../../atoms/Icons';
4
- import {
5
- ContactNewsletterWrapper,
6
- ContactNewsletterSeparator,
7
- SignUpWrapper,
8
- ContactWrapper,
9
- SignUpText,
10
- MediaLinksWrapper,
11
- MediaIconWrapper,
12
- TextLinkWrapper,
13
- } from './ContactNewsletter.style';
14
- import { IContactNewsletterProps } from '../../../types/footer';
15
-
16
- const ContactNewsletter: FunctionComponent<IContactNewsletterProps> = ({
17
- signUpText,
18
- signUpLink,
19
- socialMediaLinks,
20
- contact,
21
- }) => {
22
- return (
23
- <ContactNewsletterWrapper>
24
- <SignUpWrapper>
25
- <SignUpText>{signUpText}</SignUpText>
26
- <TextLinkWrapper>
27
- <TextLink href={signUpLink.href} title={signUpLink.title}>
28
- {signUpLink.title}
29
- </TextLink>
30
- </TextLinkWrapper>
31
- </SignUpWrapper>
32
- <ContactNewsletterSeparator />
33
- <ContactWrapper>
34
- <MediaLinksWrapper>
35
- {socialMediaLinks.map((mediaLink) => (
36
- <MediaIconWrapper key={mediaLink.name} href={mediaLink.href} title={mediaLink.name}>
37
- <Icon iconName={mediaLink.name} color="white" />
38
- </MediaIconWrapper>
39
- ))}
40
- </MediaLinksWrapper>
41
- <TextLinkWrapper>
42
- <TextLink href={contact.href} title={contact.title}>
43
- {contact.title}
44
- </TextLink>
45
- </TextLinkWrapper>
46
- </ContactWrapper>
47
- </ContactNewsletterWrapper>
48
- );
49
- };
50
-
51
- export default ContactNewsletter;
@@ -1,3 +0,0 @@
1
- import ContactNewsletter from './ContactNewsletter';
2
-
3
- export default ContactNewsletter;