@times-components/ts-components 1.145.1-76ee0965069e2a17bc1f8dcf02d24e8fefd6869a.0 → 1.145.1-7e7a12feaf05c514789e802bf49cadca92e6a2b9.10

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 (143) hide show
  1. package/dist/components/carousel-component/CarouselComponent.stories.js +146 -0
  2. package/dist/components/carousel-component/CarouselItem.d.ts +3 -0
  3. package/dist/components/carousel-component/CarouselItem.js +11 -0
  4. package/dist/components/carousel-component/DefaultNavigationArrow.d.ts +8 -0
  5. package/dist/components/carousel-component/DefaultNavigationArrow.js +6 -0
  6. package/dist/components/carousel-component/DefaultPageDot.d.ts +8 -0
  7. package/dist/components/carousel-component/DefaultPageDot.js +4 -0
  8. package/dist/components/{opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.d.ts → carousel-component/__tests__/CarouselComponent.test.d.ts} +0 -1
  9. package/dist/components/carousel-component/__tests__/CarouselComponent.test.js +163 -0
  10. package/dist/components/carousel-component/__tests__/CarouselItem.test.d.ts +1 -0
  11. package/dist/components/carousel-component/__tests__/CarouselItem.test.js +80 -0
  12. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.d.ts +1 -0
  13. package/dist/components/carousel-component/__tests__/DefaultNavigationArrow.test.js +62 -0
  14. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.d.ts +1 -0
  15. package/dist/components/carousel-component/__tests__/DefaultPageDot.test.js +68 -0
  16. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.d.ts +1 -0
  17. package/dist/components/carousel-component/hooks/__tests__/useCarousel.test.js +459 -0
  18. package/dist/components/carousel-component/hooks/useCarousel.d.ts +2 -0
  19. package/dist/components/carousel-component/hooks/useCarousel.js +175 -0
  20. package/dist/components/carousel-component/index.d.ts +4 -0
  21. package/dist/components/carousel-component/index.js +20 -0
  22. package/dist/components/carousel-component/styles.d.ts +27 -0
  23. package/dist/components/carousel-component/styles.js +169 -0
  24. package/dist/components/carousel-component/types.d.ts +53 -0
  25. package/dist/components/carousel-component/types.js +2 -0
  26. package/dist/components/opta/football/opta-match-stats/shared/styles.js +1 -8
  27. package/dist/components/trip-cards/SkeletonCard.d.ts +6 -0
  28. package/dist/components/trip-cards/SkeletonCard.js +21 -0
  29. package/dist/components/trip-cards/TripCard.d.ts +3 -0
  30. package/dist/components/trip-cards/TripCard.js +49 -0
  31. package/dist/components/trip-cards/TripCards.stories.d.ts +1 -0
  32. package/dist/components/trip-cards/TripCards.stories.js +189 -0
  33. package/dist/components/trip-cards/TripCardsLayout.d.ts +3 -0
  34. package/dist/components/trip-cards/TripCardsLayout.js +37 -0
  35. package/dist/components/trip-cards/__tests__/SkeletonCard.test.d.ts +1 -0
  36. package/dist/components/trip-cards/__tests__/SkeletonCard.test.js +139 -0
  37. package/dist/components/trip-cards/__tests__/TripCard.test.d.ts +1 -0
  38. package/dist/components/trip-cards/__tests__/TripCard.test.js +95 -0
  39. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.d.ts +1 -0
  40. package/dist/components/trip-cards/__tests__/TripCardsLayout.test.js +277 -0
  41. package/dist/components/trip-cards/__tests__/assets.test.d.ts +1 -0
  42. package/dist/components/trip-cards/__tests__/assets.test.js +165 -0
  43. package/dist/components/trip-cards/__tests__/helpers.test.d.ts +1 -0
  44. package/dist/components/trip-cards/__tests__/helpers.test.js +216 -0
  45. package/dist/components/trip-cards/__tests__/index.test.d.ts +1 -0
  46. package/dist/components/trip-cards/__tests__/index.test.js +433 -0
  47. package/dist/components/trip-cards/__tests__/mockData.test.d.ts +1 -0
  48. package/dist/components/trip-cards/__tests__/mockData.test.js +57 -0
  49. package/dist/components/trip-cards/__tests__/skeletonStyles.test.d.ts +1 -0
  50. package/dist/components/trip-cards/__tests__/skeletonStyles.test.js +194 -0
  51. package/dist/components/trip-cards/assets/BoatIcon.d.ts +1 -0
  52. package/dist/components/trip-cards/assets/BoatIcon.js +4 -0
  53. package/dist/components/trip-cards/assets/CalendarIcon.d.ts +1 -0
  54. package/dist/components/trip-cards/assets/CalendarIcon.js +4 -0
  55. package/dist/components/trip-cards/assets/ChevronRightIcon.d.ts +1 -0
  56. package/dist/components/trip-cards/assets/ChevronRightIcon.js +4 -0
  57. package/dist/components/trip-cards/assets/LocationIcon.d.ts +1 -0
  58. package/dist/components/trip-cards/assets/LocationIcon.js +4 -0
  59. package/dist/components/trip-cards/assets/MoonIcon.d.ts +1 -0
  60. package/dist/components/trip-cards/assets/MoonIcon.js +4 -0
  61. package/dist/components/trip-cards/assets/index.d.ts +6 -0
  62. package/dist/components/trip-cards/assets/index.js +7 -0
  63. package/dist/components/trip-cards/helpers.d.ts +4 -0
  64. package/dist/components/trip-cards/helpers.js +115 -0
  65. package/dist/components/trip-cards/index.d.ts +4 -0
  66. package/dist/components/trip-cards/index.js +70 -0
  67. package/dist/components/trip-cards/mockData.d.ts +3 -0
  68. package/dist/components/trip-cards/mockData.js +317 -0
  69. package/dist/components/trip-cards/skeletonStyles.d.ts +9 -0
  70. package/dist/components/trip-cards/skeletonStyles.js +37 -0
  71. package/dist/components/trip-cards/styles.d.ts +38 -0
  72. package/dist/components/trip-cards/styles.js +401 -0
  73. package/dist/components/trip-cards/types.d.ts +119 -0
  74. package/dist/components/trip-cards/types.js +2 -0
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +2 -4
  77. package/package.json +3 -3
  78. package/rnw.js +1 -1
  79. package/src/components/carousel-component/CarouselComponent.stories.tsx +220 -0
  80. package/src/components/carousel-component/CarouselItem.tsx +25 -0
  81. package/src/components/carousel-component/DefaultNavigationArrow.tsx +37 -0
  82. package/src/components/carousel-component/DefaultPageDot.tsx +20 -0
  83. package/src/components/carousel-component/__tests__/CarouselComponent.test.tsx +259 -0
  84. package/src/components/carousel-component/__tests__/CarouselItem.test.tsx +140 -0
  85. package/src/components/carousel-component/__tests__/DefaultNavigationArrow.test.tsx +153 -0
  86. package/src/components/carousel-component/__tests__/DefaultPageDot.test.tsx +105 -0
  87. package/src/components/carousel-component/hooks/__tests__/useCarousel.test.ts +625 -0
  88. package/src/components/carousel-component/hooks/useCarousel.ts +231 -0
  89. package/src/components/carousel-component/index.tsx +92 -0
  90. package/src/components/carousel-component/styles.ts +185 -0
  91. package/src/components/carousel-component/types.ts +62 -0
  92. package/src/components/opta/football/opta-match-stats/commentary/__tests__/__snapshots__/OptaMatchStatsCommentary.test.tsx.snap +1 -1
  93. package/src/components/opta/football/opta-match-stats/shared/styles.ts +0 -8
  94. package/src/components/opta/football/opta-match-stats/stats-graphs/__tests__/__snapshots__/OptaMatchStatsGraphs.test.tsx.snap +1 -1
  95. package/src/components/trip-cards/SkeletonCard.tsx +62 -0
  96. package/src/components/trip-cards/TripCard.tsx +143 -0
  97. package/src/components/trip-cards/TripCards.stories.tsx +254 -0
  98. package/src/components/trip-cards/TripCardsLayout.tsx +108 -0
  99. package/src/components/trip-cards/__tests__/SkeletonCard.test.tsx +169 -0
  100. package/src/components/trip-cards/__tests__/TripCard.test.tsx +120 -0
  101. package/src/components/trip-cards/__tests__/TripCardsLayout.test.tsx +532 -0
  102. package/src/components/trip-cards/__tests__/assets.test.tsx +206 -0
  103. package/src/components/trip-cards/__tests__/helpers.test.ts +266 -0
  104. package/src/components/trip-cards/__tests__/index.test.tsx +495 -0
  105. package/src/components/trip-cards/__tests__/mockData.test.ts +67 -0
  106. package/src/components/trip-cards/__tests__/skeletonStyles.test.tsx +256 -0
  107. package/src/components/trip-cards/assets/BoatIcon.tsx +17 -0
  108. package/src/components/trip-cards/assets/CalendarIcon.tsx +17 -0
  109. package/src/components/trip-cards/assets/ChevronRightIcon.tsx +20 -0
  110. package/src/components/trip-cards/assets/LocationIcon.tsx +17 -0
  111. package/src/components/trip-cards/assets/MoonIcon.tsx +17 -0
  112. package/src/components/trip-cards/assets/index.ts +7 -0
  113. package/src/components/trip-cards/helpers.ts +150 -0
  114. package/src/components/trip-cards/index.tsx +119 -0
  115. package/src/components/trip-cards/mockData.ts +345 -0
  116. package/src/components/trip-cards/skeletonStyles.ts +46 -0
  117. package/src/components/trip-cards/styles.ts +446 -0
  118. package/src/components/trip-cards/types.ts +128 -0
  119. package/src/index.ts +2 -3
  120. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.d.ts +0 -10
  121. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.js +0 -69
  122. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.d.ts +0 -12
  123. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.js +0 -90
  124. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.d.ts +0 -12
  125. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.js +0 -10
  126. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.js +0 -24
  127. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.js +0 -48
  128. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.d.ts +0 -1
  129. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.js +0 -19
  130. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.d.ts +0 -12
  131. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.js +0 -67
  132. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.d.ts +0 -6
  133. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.js +0 -714
  134. package/src/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.tsx +0 -108
  135. package/src/components/opta/football/opta-match-stats/matchday-live/MobileWidget.tsx +0 -158
  136. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.tsx +0 -38
  137. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.tsx +0 -23
  138. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.tsx +0 -61
  139. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/__snapshots__/OptaMatchStatsMatchdayLive.test.tsx.snap +0 -61
  140. package/src/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.tsx +0 -19
  141. package/src/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.tsx +0 -81
  142. package/src/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.tsx +0 -745
  143. /package/dist/components/{opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.d.ts → carousel-component/CarouselComponent.stories.d.ts} +0 -0
@@ -0,0 +1,153 @@
1
+ import React from 'react';
2
+ import { render, screen, fireEvent } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
4
+ import { DefaultNavigationArrow } from '../DefaultNavigationArrow';
5
+
6
+ describe('DefaultNavigationArrow', () => {
7
+ const mockOnClick = jest.fn();
8
+
9
+ beforeEach(() => {
10
+ mockOnClick.mockClear();
11
+ });
12
+
13
+ it('renders left arrow', () => {
14
+ render(
15
+ <DefaultNavigationArrow
16
+ direction="left"
17
+ onClick={mockOnClick}
18
+ disabled={false}
19
+ />
20
+ );
21
+
22
+ const button = screen.getByLabelText('Previous items');
23
+ expect(button).toBeInTheDocument();
24
+ });
25
+
26
+ it('renders right arrow', () => {
27
+ render(
28
+ <DefaultNavigationArrow
29
+ direction="right"
30
+ onClick={mockOnClick}
31
+ disabled={false}
32
+ />
33
+ );
34
+
35
+ const button = screen.getByLabelText('Next items');
36
+ expect(button).toBeInTheDocument();
37
+ });
38
+
39
+ it('calls onClick when clicked', () => {
40
+ render(
41
+ <DefaultNavigationArrow
42
+ direction="left"
43
+ onClick={mockOnClick}
44
+ disabled={false}
45
+ />
46
+ );
47
+
48
+ const button = screen.getByLabelText('Previous items');
49
+ fireEvent.click(button);
50
+
51
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
52
+ });
53
+
54
+ it('does not call onClick when disabled', () => {
55
+ render(
56
+ <DefaultNavigationArrow
57
+ direction="left"
58
+ onClick={mockOnClick}
59
+ disabled={true}
60
+ />
61
+ );
62
+
63
+ const button = screen.getByLabelText('Previous items');
64
+ fireEvent.click(button);
65
+
66
+ expect(mockOnClick).not.toHaveBeenCalled();
67
+ });
68
+
69
+ it('applies disabled styling when disabled', () => {
70
+ render(
71
+ <DefaultNavigationArrow
72
+ direction="left"
73
+ onClick={mockOnClick}
74
+ disabled={true}
75
+ />
76
+ );
77
+
78
+ const button = screen.getByLabelText('Previous items');
79
+ expect(button).toHaveAttribute('disabled');
80
+ });
81
+
82
+ it('renders SVG icon', () => {
83
+ const { container } = render(
84
+ <DefaultNavigationArrow
85
+ direction="left"
86
+ onClick={mockOnClick}
87
+ disabled={false}
88
+ />
89
+ );
90
+
91
+ const svg = container.querySelector('svg');
92
+ expect(svg).toBeInTheDocument();
93
+ });
94
+
95
+ it('has correct aria-label for accessibility', () => {
96
+ const { rerender } = render(
97
+ <DefaultNavigationArrow
98
+ direction="left"
99
+ onClick={mockOnClick}
100
+ disabled={false}
101
+ />
102
+ );
103
+
104
+ expect(screen.getByLabelText('Previous items')).toBeInTheDocument();
105
+
106
+ rerender(
107
+ <DefaultNavigationArrow
108
+ direction="right"
109
+ onClick={mockOnClick}
110
+ disabled={false}
111
+ />
112
+ );
113
+
114
+ expect(screen.getByLabelText('Next items')).toBeInTheDocument();
115
+ });
116
+
117
+ it('renders as a button element', () => {
118
+ render(
119
+ <DefaultNavigationArrow
120
+ direction="left"
121
+ onClick={mockOnClick}
122
+ disabled={false}
123
+ />
124
+ );
125
+
126
+ const button = screen.getByLabelText('Previous items');
127
+ expect(button.tagName).toBe('BUTTON');
128
+ });
129
+
130
+ it('applies correct styles based on direction', () => {
131
+ const { container, rerender } = render(
132
+ <DefaultNavigationArrow
133
+ direction="left"
134
+ onClick={mockOnClick}
135
+ disabled={false}
136
+ />
137
+ );
138
+
139
+ let button = container.querySelector('button');
140
+ expect(button).toBeInTheDocument();
141
+
142
+ rerender(
143
+ <DefaultNavigationArrow
144
+ direction="right"
145
+ onClick={mockOnClick}
146
+ disabled={false}
147
+ />
148
+ );
149
+
150
+ button = container.querySelector('button');
151
+ expect(button).toBeInTheDocument();
152
+ });
153
+ });
@@ -0,0 +1,105 @@
1
+ import React from 'react';
2
+ import { render, screen, fireEvent } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
4
+ import { DefaultPageDot } from '../DefaultPageDot';
5
+
6
+ describe('DefaultPageDot', () => {
7
+ const mockOnClick = jest.fn();
8
+
9
+ beforeEach(() => {
10
+ mockOnClick.mockClear();
11
+ });
12
+
13
+ it('renders active dot', () => {
14
+ render(<DefaultPageDot active={true} onClick={mockOnClick} index={0} />);
15
+
16
+ const button = screen.getByRole('button');
17
+ expect(button).toBeInTheDocument();
18
+ });
19
+
20
+ it('renders inactive dot', () => {
21
+ render(<DefaultPageDot active={false} onClick={mockOnClick} index={0} />);
22
+
23
+ const button = screen.getByRole('button');
24
+ expect(button).toBeInTheDocument();
25
+ });
26
+
27
+ it('calls onClick when clicked', () => {
28
+ render(<DefaultPageDot active={false} onClick={mockOnClick} index={0} />);
29
+
30
+ const button = screen.getByRole('button');
31
+ fireEvent.click(button);
32
+
33
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
34
+ });
35
+
36
+ it('renders multiple dots with different indices', () => {
37
+ const { rerender } = render(
38
+ <DefaultPageDot active={true} onClick={mockOnClick} index={0} />
39
+ );
40
+
41
+ expect(screen.getByRole('button')).toBeInTheDocument();
42
+
43
+ rerender(<DefaultPageDot active={false} onClick={mockOnClick} index={1} />);
44
+
45
+ expect(screen.getByRole('button')).toBeInTheDocument();
46
+ });
47
+
48
+ it('handles active state changes', () => {
49
+ const { rerender } = render(
50
+ <DefaultPageDot active={false} onClick={mockOnClick} index={0} />
51
+ );
52
+
53
+ const button = screen.getByRole('button');
54
+ expect(button).toBeInTheDocument();
55
+
56
+ rerender(<DefaultPageDot active={true} onClick={mockOnClick} index={0} />);
57
+
58
+ expect(button).toBeInTheDocument();
59
+ });
60
+
61
+ it('applies different styling for active vs inactive state', () => {
62
+ const { container, rerender } = render(
63
+ <DefaultPageDot active={false} onClick={mockOnClick} index={0} />
64
+ );
65
+
66
+ const inactiveButton = container.querySelector('button');
67
+ expect(inactiveButton).toBeInTheDocument();
68
+
69
+ rerender(<DefaultPageDot active={true} onClick={mockOnClick} index={0} />);
70
+
71
+ const activeButton = container.querySelector('button');
72
+ expect(activeButton).toBeInTheDocument();
73
+ });
74
+
75
+ it('renders as a button element', () => {
76
+ render(<DefaultPageDot active={true} onClick={mockOnClick} index={0} />);
77
+
78
+ const button = screen.getByRole('button');
79
+ expect(button.tagName).toBe('BUTTON');
80
+ });
81
+
82
+ it('passes correct index to onClick handler', () => {
83
+ const { rerender } = render(
84
+ <DefaultPageDot active={false} onClick={mockOnClick} index={2} />
85
+ );
86
+
87
+ const button = screen.getByRole('button');
88
+ fireEvent.click(button);
89
+
90
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
91
+
92
+ rerender(<DefaultPageDot active={false} onClick={mockOnClick} index={5} />);
93
+
94
+ fireEvent.click(button);
95
+ expect(mockOnClick).toHaveBeenCalledTimes(2);
96
+ });
97
+
98
+ it('is focusable for keyboard navigation', () => {
99
+ render(<DefaultPageDot active={false} onClick={mockOnClick} index={0} />);
100
+
101
+ const button = screen.getByRole('button');
102
+ button.focus();
103
+ expect(document.activeElement).toBe(button);
104
+ });
105
+ });