@wayke-se/components-react 3.0.0-beta.11 → 3.0.0-beta.12

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 (274) hide show
  1. package/package.json +4 -2
  2. package/.editorconfig +0 -10
  3. package/.eslintrc.js +0 -62
  4. package/.github/workflows/release-to-production.yaml +0 -40
  5. package/.github/workflows/release-to-test.yaml +0 -40
  6. package/.prettierrc +0 -12
  7. package/assets/ajax-loader.gif +0 -0
  8. package/assets/default.css +0 -1
  9. package/assets/fonts/slick.eot +0 -0
  10. package/assets/fonts/slick.svg +0 -14
  11. package/assets/fonts/slick.ttf +0 -0
  12. package/assets/fonts/slick.woff +0 -0
  13. package/codegen.yml +0 -19
  14. package/esbuild/build.js +0 -39
  15. package/esbuild/common.js +0 -15
  16. package/esbuild/start.js +0 -21
  17. package/esbuild/www/index.html +0 -32
  18. package/example/src/@types/global.d.ts +0 -7
  19. package/example/src/@types/react-panellum.d.ts +0 -1
  20. package/example/src/App.tsx +0 -77
  21. package/example/src/assets/style/ecom.css +0 -63
  22. package/example/src/assets/style/theme.css +0 -83
  23. package/example/src/index.html +0 -26
  24. package/example/src/index.tsx +0 -11
  25. package/example/src/routes/HashRoute/index.tsx +0 -30
  26. package/example/src/routes/Home/index.tsx +0 -33
  27. package/example/src/routes/NotFound/index.tsx +0 -5
  28. package/example/src/routes/PathRoute/index.tsx +0 -35
  29. package/example/src/routes/Search/index.tsx +0 -28
  30. package/example/src/routes/SearchItem/index.tsx +0 -28
  31. package/example/src/routes/index.tsx +0 -25
  32. package/src/@types/action.ts +0 -3
  33. package/src/@types/codegen/types.ts +0 -366
  34. package/src/@types/filter.ts +0 -18
  35. package/src/@types/queryFilter.ts +0 -5
  36. package/src/@types/react-panellum.d.ts +0 -1
  37. package/src/@types/search.ts +0 -118
  38. package/src/@types/theme.d.ts +0 -5
  39. package/src/@types/vehicle-properties.ts +0 -33
  40. package/src/State/CentralStorage/CentralStorageContext.ts +0 -10
  41. package/src/State/CentralStorage/CentralStorageProvider.tsx +0 -21
  42. package/src/State/CentralStorage/useCentralStorage.ts +0 -37
  43. package/src/State/Path/PathContext.ts +0 -11
  44. package/src/State/Path/PathProvider.tsx +0 -66
  45. package/src/State/Path/reducer.ts +0 -30
  46. package/src/State/Path/usePath.ts +0 -13
  47. package/src/State/RelatedSearch/RelatedSearchContext.ts +0 -18
  48. package/src/State/RelatedSearch/RelatedSearchProvider.tsx +0 -55
  49. package/src/State/RelatedSearch/useRelatedSearch.ts +0 -20
  50. package/src/State/Search/SearchContext.ts +0 -27
  51. package/src/State/Search/SearchProvider.tsx +0 -243
  52. package/src/State/Search/useSearch.ts +0 -6
  53. package/src/State/Settings/SettingsContext.ts +0 -15
  54. package/src/State/Settings/SettingsProvider.tsx +0 -23
  55. package/src/State/Settings/useSettings.ts +0 -7
  56. package/src/components/Accordion/index.tsx +0 -57
  57. package/src/components/Accordion/wrapper.tsx +0 -107
  58. package/src/components/ActionList/index.tsx +0 -48
  59. package/src/components/ActionList/toggle-item.tsx +0 -59
  60. package/src/components/Avatar/index.tsx +0 -12
  61. package/src/components/Avatar/wrapper.tsx +0 -21
  62. package/src/components/Badge/index.tsx +0 -12
  63. package/src/components/Badge/wrapper.tsx +0 -32
  64. package/src/components/Blockquote/index.tsx +0 -32
  65. package/src/components/Blockquote/wrapper.tsx +0 -52
  66. package/src/components/Button/index.tsx +0 -226
  67. package/src/components/CheckMarkList/index.tsx +0 -21
  68. package/src/components/CheckMarkList/wrapper.tsx +0 -31
  69. package/src/components/Checklist/index.tsx +0 -51
  70. package/src/components/Checklist/wrapper.tsx +0 -65
  71. package/src/components/ColorSelect/index.tsx +0 -63
  72. package/src/components/ColorSelect/wrapper.tsx +0 -82
  73. package/src/components/ColumnRow/index.tsx +0 -20
  74. package/src/components/Container/index.tsx +0 -11
  75. package/src/components/Container/wrapper.tsx +0 -14
  76. package/src/components/Content/index.tsx +0 -15
  77. package/src/components/Content/wrapper.tsx +0 -61
  78. package/src/components/ContentLogo/index.tsx +0 -27
  79. package/src/components/DataList/index.tsx +0 -25
  80. package/src/components/DataList/wrapper.tsx +0 -29
  81. package/src/components/DetailBox/index.tsx +0 -34
  82. package/src/components/DetailBox/wrapper.tsx +0 -34
  83. package/src/components/ExtendContent/index.tsx +0 -43
  84. package/src/components/ExtendContent/wrapper.tsx +0 -41
  85. package/src/components/ExtendInfo/index.tsx +0 -32
  86. package/src/components/ExtendInfo/wrapper.tsx +0 -63
  87. package/src/components/Filter/index.tsx +0 -108
  88. package/src/components/Filter/wrapper.tsx +0 -79
  89. package/src/components/FilterPanel/checkListFacet.tsx +0 -46
  90. package/src/components/FilterPanel/colorFacet.tsx +0 -47
  91. package/src/components/FilterPanel/faceSelector.tsx +0 -53
  92. package/src/components/FilterPanel/index.tsx +0 -79
  93. package/src/components/FilterPanel/rangeFacet.tsx +0 -128
  94. package/src/components/FinancialOptions/LoanModal.tsx +0 -223
  95. package/src/components/FinancialOptions/index.tsx +0 -29
  96. package/src/components/FinancialOptions/leasing.tsx +0 -77
  97. package/src/components/FinancialOptions/loan.tsx +0 -87
  98. package/src/components/Gallery/MediaButton.tsx +0 -19
  99. package/src/components/Gallery/index.tsx +0 -227
  100. package/src/components/Gallery/wrapper.tsx +0 -323
  101. package/src/components/Grid/index.tsx +0 -87
  102. package/src/components/Grid/wrapper.tsx +0 -30
  103. package/src/components/Heading/index.tsx +0 -72
  104. package/src/components/Icon/index.tsx +0 -87
  105. package/src/components/InputCheckbox/index.tsx +0 -30
  106. package/src/components/InputCheckbox/wrapper.tsx +0 -87
  107. package/src/components/InputGroup/index.tsx +0 -24
  108. package/src/components/InputLabel/index.tsx +0 -14
  109. package/src/components/InputLabel/wrapper.tsx +0 -10
  110. package/src/components/InputSearch/index.tsx +0 -51
  111. package/src/components/InputSearch/wrapper.tsx +0 -97
  112. package/src/components/InputSelect/index.tsx +0 -35
  113. package/src/components/InputSelect/wrapper.tsx +0 -59
  114. package/src/components/InputText/index.tsx +0 -27
  115. package/src/components/InputText/wrapper.tsx +0 -57
  116. package/src/components/InsuranceOptions/Insurance.tsx +0 -60
  117. package/src/components/InsuranceOptions/InsuranceFree.tsx +0 -59
  118. package/src/components/InsuranceOptions/InsuranceFreeModal.tsx +0 -49
  119. package/src/components/InsuranceOptions/InsuranceModal.tsx +0 -253
  120. package/src/components/InsuranceOptions/index.tsx +0 -27
  121. package/src/components/Lightbox/index.tsx +0 -51
  122. package/src/components/Lightbox/wrapper.tsx +0 -97
  123. package/src/components/Loader/index.tsx +0 -18
  124. package/src/components/Loader/wrapper.tsx +0 -50
  125. package/src/components/LogoBox/index.tsx +0 -22
  126. package/src/components/LogoBox/wrapper.tsx +0 -19
  127. package/src/components/Map/index.tsx +0 -62
  128. package/src/components/Map/wrapper.tsx +0 -29
  129. package/src/components/Modal/index.tsx +0 -51
  130. package/src/components/Modal/wrapper.tsx +0 -127
  131. package/src/components/OpeningHours/index.tsx +0 -145
  132. package/src/components/OptionBox/index.tsx +0 -23
  133. package/src/components/OptionBox/wrapper.tsx +0 -56
  134. package/src/components/OverflowBox/index.tsx +0 -11
  135. package/src/components/OverflowBox/wrapper.tsx +0 -7
  136. package/src/components/OverflowGrid/index.tsx +0 -70
  137. package/src/components/Page/index.tsx +0 -46
  138. package/src/components/Panel/index.tsx +0 -50
  139. package/src/components/Panel/wrapper.tsx +0 -155
  140. package/src/components/Pdf/index.tsx +0 -46
  141. package/src/components/Pdf/wrapper.tsx +0 -61
  142. package/src/components/PhoneNumber/index.tsx +0 -33
  143. package/src/components/Portal/index.ts +0 -5
  144. package/src/components/Portal/portal-element.tsx +0 -9
  145. package/src/components/Portal/portal-namespace.ts +0 -1
  146. package/src/components/Portal/portal.tsx +0 -36
  147. package/src/components/Price/index.tsx +0 -12
  148. package/src/components/PriceTable/index.tsx +0 -34
  149. package/src/components/PriceTable/wrapper.tsx +0 -27
  150. package/src/components/ProductCard/index.tsx +0 -133
  151. package/src/components/ProductCard/wrapper.tsx +0 -147
  152. package/src/components/ProductPage/index.tsx +0 -99
  153. package/src/components/ProgressBar/index.tsx +0 -31
  154. package/src/components/ProgressBar/wrapper.tsx +0 -29
  155. package/src/components/RangeSlider/RangeSliderSimple.tsx +0 -90
  156. package/src/components/RangeSlider/SliderWithLabel.tsx +0 -62
  157. package/src/components/RangeSlider/handle.tsx +0 -26
  158. package/src/components/RangeSlider/index.tsx +0 -132
  159. package/src/components/RangeSlider/track.tsx +0 -19
  160. package/src/components/RangeSlider/wrapper.tsx +0 -93
  161. package/src/components/RangeSliderLabel/index.tsx +0 -18
  162. package/src/components/RangeSliderLabel/wrapper.tsx +0 -33
  163. package/src/components/Repeat/index.tsx +0 -21
  164. package/src/components/Result/index.tsx +0 -91
  165. package/src/components/Result/wrapper.tsx +0 -39
  166. package/src/components/Root/index.tsx +0 -24
  167. package/src/components/SearchBar/index.tsx +0 -48
  168. package/src/components/SearchFilter/index.tsx +0 -31
  169. package/src/components/SearchTerm/index.tsx +0 -23
  170. package/src/components/SearchTerm/wrapper.tsx +0 -71
  171. package/src/components/SectionHeader/index.tsx +0 -25
  172. package/src/components/SectionHeader/wrapper.tsx +0 -17
  173. package/src/components/Snackbar/index.tsx +0 -35
  174. package/src/components/Snackbar/wrapper.tsx +0 -65
  175. package/src/components/SortSelect/index.tsx +0 -35
  176. package/src/components/SortSelect/wrapper.tsx +0 -54
  177. package/src/components/Sphere/Sphere.tsx +0 -49
  178. package/src/components/Sphere/SphereLightbox.tsx +0 -10
  179. package/src/components/Sphere/SphereViewer.tsx +0 -81
  180. package/src/components/Sphere/wrapper.tsx +0 -253
  181. package/src/components/SrOnly/index.tsx +0 -14
  182. package/src/components/SwitchBar/index.tsx +0 -55
  183. package/src/components/SwitchBar/wrapper.tsx +0 -80
  184. package/src/components/TableColumn/index.tsx +0 -18
  185. package/src/components/TableList/index.tsx +0 -39
  186. package/src/components/Tabs/index.tsx +0 -34
  187. package/src/components/Tabs/wrapper.tsx +0 -82
  188. package/src/components/ThreeSixty/Rotation.tsx +0 -136
  189. package/src/components/ThreeSixty/ThreeSixtLightbox.tsx +0 -34
  190. package/src/components/ThreeSixty/ThreeSixty.tsx +0 -53
  191. package/src/components/UspList/index.tsx +0 -47
  192. package/src/components/UspList/wrapper.tsx +0 -92
  193. package/src/components/Utility/index.tsx +0 -17
  194. package/src/components/Video/CustomPlayer.tsx +0 -28
  195. package/src/components/Video/EmbeddedVideoLightbox.tsx +0 -31
  196. package/src/components/Video/EmbededVideo.tsx +0 -72
  197. package/src/components/Video/QuickNavEmbeded.tsx +0 -35
  198. package/src/components/Video/QuickNavVideo.tsx +0 -14
  199. package/src/components/Video/Video.tsx +0 -18
  200. package/src/components/Video/VimeoPlayer.tsx +0 -21
  201. package/src/components/Video/YoutubePlayer.tsx +0 -21
  202. package/src/components/Video/useThumbnail.ts +0 -28
  203. package/src/components/Video/utils.ts +0 -47
  204. package/src/components/Video/wrapper.tsx +0 -29
  205. package/src/hooks/useFetch.ts +0 -88
  206. package/src/hooks/useHasBeenVisible.ts +0 -17
  207. package/src/hooks/useHashGuid.ts +0 -33
  208. package/src/hooks/useInsurance.ts +0 -22
  209. package/src/hooks/useLoan.ts +0 -21
  210. package/src/hooks/useOnScreen.ts +0 -20
  211. package/src/hooks/useOutsideClick.ts +0 -19
  212. package/src/hooks/usePrevious.ts +0 -11
  213. package/src/hooks/useSearchItem.ts +0 -11
  214. package/src/hooks/useSearchItemBranch.ts +0 -14
  215. package/src/hooks/useSessionStorage.ts +0 -32
  216. package/src/hooks/useVimeoThumbnail.ts +0 -31
  217. package/src/images/map/marker.png +0 -0
  218. package/src/images/placeholders/staticmap.jpg +0 -0
  219. package/src/index-dev.tsx +0 -42
  220. package/src/index-esbuild.ts +0 -74
  221. package/src/index.ts +0 -72
  222. package/src/layout/helpers.tsx +0 -6
  223. package/src/layout/keyframes.tsx +0 -23
  224. package/src/layout/theme.ts +0 -60
  225. package/src/layouts/WaykeComposite.tsx +0 -64
  226. package/src/layouts/WaykeCompositeWithProvider.tsx +0 -17
  227. package/src/layouts/search/index.tsx +0 -124
  228. package/src/layouts/searchItem/Branch.tsx +0 -97
  229. package/src/layouts/searchItem/BranchModal.tsx +0 -67
  230. package/src/layouts/searchItem/CheckList.tsx +0 -146
  231. package/src/layouts/searchItem/ManufacturerPackagesOption.tsx +0 -54
  232. package/src/layouts/searchItem/MetadataItem.tsx +0 -74
  233. package/src/layouts/searchItem/PackageOptionModal.tsx +0 -54
  234. package/src/layouts/searchItem/PackageOptions.tsx +0 -58
  235. package/src/layouts/searchItem/Page404.tsx +0 -17
  236. package/src/layouts/searchItem/PageLoading.tsx +0 -17
  237. package/src/layouts/searchItem/Property.tsx +0 -134
  238. package/src/layouts/searchItem/Related.tsx +0 -120
  239. package/src/layouts/searchItem/index.tsx +0 -342
  240. package/src/providers/WaykeItemProvidet.tsx +0 -63
  241. package/src/providers/WaykeProvider.tsx +0 -75
  242. package/src/providers/graphqlProvider.tsx +0 -9
  243. package/src/providers/themeProvider.tsx +0 -15
  244. package/src/queries/INSURANCE_CALCULATION.ts +0 -43
  245. package/src/queries/LOAN_CALCULATION.ts +0 -39
  246. package/src/queries/SEARCH_ITEM_BRANCH_QUERY.ts +0 -120
  247. package/src/queries/SEARCH_ITEM_QUERY.ts +0 -237
  248. package/src/utils/constants.ts +0 -34
  249. package/src/utils/converters.ts +0 -45
  250. package/src/utils/deep-copy.ts +0 -6
  251. package/src/utils/formats.ts +0 -83
  252. package/src/utils/metadata.min.ts +0 -87
  253. package/src/utils/phonenumbers.ts +0 -17
  254. package/src/utils/pubsub/Actions.ts +0 -20
  255. package/src/utils/pubsub/Events.ts +0 -79
  256. package/src/utils/pubsub/pubsub.ts +0 -151
  257. package/src/utils/regex.ts +0 -13
  258. package/src/utils/sortOptions.ts +0 -36
  259. package/src/utils/specification.ts +0 -581
  260. package/src/utils/ssn.ts +0 -1
  261. package/src/utils/url.ts +0 -1
  262. package/src/utils/vehicle-properties/compare-basic-properties.ts +0 -63
  263. package/src/utils/vehicle-properties/compare-categories.ts +0 -45
  264. package/src/utils/vehicle-properties/compare-properties.ts +0 -5
  265. package/src/utils/vehicle-properties/custom-property-adder.ts +0 -163
  266. package/src/utils/vehicle-properties/property-hint-enricher.ts +0 -230
  267. package/src/utils/vehicle-properties/property-remover.ts +0 -28
  268. package/src/utils/vehicle-properties/property-tree-creator.ts +0 -171
  269. package/src/utils/vehicle-properties/property-tree-sorter.ts +0 -20
  270. package/tsconfig.build.json +0 -10
  271. package/tsconfig.eslint.json +0 -11
  272. package/tsconfig.json +0 -18
  273. package/webpack.analyze.js +0 -10
  274. package/webpack.config.js +0 -95
@@ -1,253 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- const compassSize = size(4);
6
- const controlBtnSize = size(4);
7
-
8
- export const Wrapper = styled.div`
9
- width: 100%;
10
- height: 0 !important;
11
- padding-bottom: 66.666% !important; // 3:2
12
-
13
- .pnlm-container {
14
- background-image: none;
15
- background-color: ${(props) => props.theme.color.accentDark};
16
- }
17
-
18
- // Compass
19
-
20
- .pnlm-compass {
21
- width: ${compassSize};
22
- height: ${compassSize};
23
- border-radius: 50%;
24
- bottom: ${size(2)};
25
- left: ${size(2)};
26
- right: auto;
27
- margin-top: 0;
28
- border: 5px solid transparent;
29
- border-top-color: ${(props) => props.theme.color.textLight};
30
- background-color: rgba(255, 255, 255, 0.4);
31
- background-image: none;
32
- backdrop-filter: blur(5px);
33
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
34
- box-sizing: border-box;
35
-
36
- &:hover {
37
- background-color: red;
38
- }
39
- }
40
-
41
- // Controls (zoom & fullscreen button)
42
-
43
- .pnlm-grab,
44
- .pnlm-grabbing {
45
- .pnlm-controls-container {
46
- display: block;
47
- }
48
- }
49
-
50
- .pnlm-controls-container {
51
- display: none;
52
- top: ${size(2)};
53
- left: ${size(2)};
54
- }
55
-
56
- .pnlm-controls {
57
- margin-top: 0;
58
-
59
- & + .pnlm-controls {
60
- margin-top: ${size(1)};
61
- }
62
- }
63
-
64
- // Fullscreen button
65
-
66
- .pnlm-fullscreen-toggle-button {
67
- display: none;
68
- position: relative;
69
- width: ${controlBtnSize};
70
- height: ${controlBtnSize};
71
- background-image: none;
72
- background-color: rgba(255, 255, 255, 0.4);
73
- backdrop-filter: blur(5px);
74
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
75
- color: ${(props) => props.theme.color.textDark};
76
- border: 0;
77
- border-radius: 50%;
78
-
79
- &:hover {
80
- background-color: rgba(255, 255, 255, 0.6);
81
- }
82
-
83
- &:before {
84
- position: absolute;
85
- top: 50%;
86
- left: 50%;
87
- transform: translate(-50%, -50%);
88
- font-size: 0.875rem;
89
- }
90
- }
91
-
92
- .pnlm-fullscreen-toggle-button-inactive {
93
- &:before {
94
- content: '⤢';
95
- }
96
-
97
- &.pnlm-fullscreen-toggle-button-active {
98
- &:before {
99
- content: '⤢';
100
- }
101
- }
102
- }
103
-
104
- // Gyroscope (Orientation)
105
-
106
- .pnlm-orientation-button {
107
- background-image: none;
108
- width: ${controlBtnSize};
109
- height: ${controlBtnSize};
110
- background-color: ${(props) => props.theme.color.accentDark};
111
- color: ${(props) => props.theme.color.textDark};
112
- border: 0;
113
- border-radius: 999px;
114
-
115
- &:hover {
116
- background-color: red;
117
- }
118
-
119
- &:before {
120
- content: 'A';
121
- position: absolute;
122
- top: 50%;
123
- left: 50%;
124
- transform: translate(-50%, -50%);
125
- font-size: 0.875rem;
126
- }
127
-
128
- &.pnlm-orientation-button-active {
129
- background-color: green;
130
-
131
- &:hover {
132
- background-color: pink;
133
- }
134
- }
135
- }
136
-
137
- // Zoom controls
138
-
139
- .pnlm-zoom-controls {
140
- display: none;
141
- height: auto;
142
- width: auto;
143
- background-color: transparent;
144
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
145
- border: 0;
146
- border-radius: 999px;
147
-
148
- > * {
149
- &:first-child {
150
- border-top-left-radius: 999px;
151
- border-top-right-radius: 999px;
152
- }
153
-
154
- &:last-child {
155
- border-bottom-left-radius: 999px;
156
- border-bottom-right-radius: 999px;
157
- }
158
- }
159
- }
160
-
161
- .pnlm-zoom-in,
162
- .pnlm-zoom-out {
163
- position: relative;
164
- display: block;
165
- width: ${controlBtnSize};
166
- height: ${controlBtnSize};
167
- background-image: none;
168
- background-color: rgba(255, 255, 255, 0.4);
169
- backdrop-filter: blur(5px);
170
- color: ${(props) => props.theme.color.textDark};
171
- border-radius: 0;
172
-
173
- &:before {
174
- position: absolute;
175
- top: 50%;
176
- left: 50%;
177
- transform: translate(-50%, -50%);
178
- }
179
-
180
- &:hover {
181
- background-color: rgba(255, 255, 255, 0.6);
182
- }
183
- }
184
-
185
- .pnlm-zoom-in {
186
- top: auto;
187
-
188
- &:before {
189
- content: '+';
190
- }
191
- }
192
-
193
- .pnlm-zoom-out {
194
- bottom: auto;
195
- border-top: 1px solid ${(props) => props.theme.color.textDark};
196
-
197
- &:before {
198
- content: '-';
199
- }
200
- }
201
-
202
- // Load Button
203
-
204
- .pnlm-load-button {
205
- top: auto;
206
- bottom: ${size(2)};
207
- transform: translateX(-50%);
208
- width: auto;
209
- height: auto;
210
- padding: ${size(1.75)} ${size(2)};
211
- border-radius: 3px;
212
- margin: 0;
213
- background-color: ${(props) => props.theme.color.accentDark};
214
- color: ${(props) => props.theme.color.textDark};
215
- line-height: 1.1;
216
- user-select: none;
217
-
218
- &:hover {
219
- background-color: ${(props) => props.theme.color.accentDark};
220
- }
221
-
222
- p {
223
- margin: 0;
224
- font-size: 0.875rem;
225
- }
226
- }
227
-
228
- // Load box
229
-
230
- .pnlm-load-box {
231
- background-color: transparent;
232
- height: auto;
233
- margin: 0;
234
- width: 150px;
235
- transform: translate(-50%, -50%);
236
-
237
- > p {
238
- display: none;
239
- }
240
- }
241
-
242
- // Load bar
243
-
244
- .pnlm-lbar {
245
- width: 100%;
246
- background-color: rgba(255, 255, 255, 0.4);
247
- border: 0;
248
- }
249
-
250
- .pnlm-lbar-fill {
251
- background-color: ${(props) => props.theme.color.textLight};
252
- }
253
- `;
@@ -1,14 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- // Adds element only visible to screen readers
4
- export const SrOnly = styled.div`
5
- position: absolute;
6
- width: 1px;
7
- height: 1px;
8
- padding: 0;
9
- margin: -1px;
10
- overflow: hidden;
11
- clip: rect(0, 0, 0, 0);
12
- white-space: nowrap;
13
- border: 0;
14
- `;
@@ -1,55 +0,0 @@
1
- import React, { useState, useCallback } from 'react';
2
-
3
- import { Wrapper, Header, Body, Info, Action, InfoContent, InfoBtn, Title } from './wrapper';
4
- import Modal from '../Modal/index';
5
- import { ButtonInline } from '../Button/index';
6
- import { IconInfo } from '../Icon/index';
7
-
8
- interface Props {
9
- title: string;
10
- body?: string;
11
- actionTitle?: string;
12
- children: React.ReactNode;
13
- onClick?: () => void;
14
- }
15
-
16
- const SwitchBar = ({ title, body, actionTitle, children, onClick }: Props) => {
17
- const [info, setInfo] = useState(false);
18
- const onToggleInfo = useCallback(() => setInfo(!info), [info]);
19
-
20
- return (
21
- <>
22
- <Wrapper>
23
- <Header>
24
- <Info>
25
- <InfoContent>
26
- <Title>{title}</Title>
27
- </InfoContent>
28
- {children && (
29
- <InfoContent>
30
- <InfoBtn onClick={onToggleInfo} title="Mer information">
31
- <IconInfo block />
32
- </InfoBtn>
33
- </InfoContent>
34
- )}
35
- </Info>
36
- {actionTitle && (
37
- <Action>
38
- <ButtonInline onClick={onClick} title={actionTitle}>
39
- {actionTitle}
40
- </ButtonInline>
41
- </Action>
42
- )}
43
- </Header>
44
- {body && <Body>{body}</Body>}
45
- </Wrapper>
46
- {info && (
47
- <Modal title={title} onClose={onToggleInfo}>
48
- {children}
49
- </Modal>
50
- )}
51
- </>
52
- );
53
- };
54
-
55
- export default SwitchBar;
@@ -1,80 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
- import { ButtonReset } from '../Button/index';
5
-
6
- export const Wrapper = styled.div`
7
- padding: ${size(1.5)} ${size(2)};
8
- background-color: ${(props) => props.theme.color.accentDark};
9
- border-radius: 3px;
10
- font-size: 0.875rem;
11
- `;
12
-
13
- export const Header = styled.div`
14
- display: flex;
15
- align-items: center;
16
- `;
17
-
18
- export const Body = styled.div`
19
- font-size: 0.875rem;
20
- margin-top: ${size(1)};
21
- `;
22
-
23
- export const Info = styled.div`
24
- flex: 1 1 auto;
25
- display: flex;
26
- align-items: center;
27
- `;
28
-
29
- export const Action = styled.div`
30
- flex-shrink: 0;
31
- padding-left: ${size(1.5)};
32
- font-size: 0.875rem;
33
- `;
34
-
35
- export const InfoContent = styled.div`
36
- & + & {
37
- margin-left: ${size(0.75)};
38
- }
39
- `;
40
-
41
- export const InfoBtn = styled(ButtonReset).attrs(() => ({
42
- className: 'wayke__theme wayke__color--primary-text',
43
- }))`
44
- position: relative;
45
- display: block;
46
-
47
- :before {
48
- content: '';
49
- position: absolute;
50
- top: ${size(-0.5)};
51
- bottom: ${size(-0.5)};
52
- left: ${size(-0.5)};
53
- right: ${size(-0.5)};
54
- background-color: ${(props) => props.theme.color.accentDark};
55
- border-radius: 50%;
56
- opacity: 0;
57
- transition: opacity 200ms ease;
58
- }
59
-
60
- > * {
61
- position: relative;
62
- z-index: 1;
63
- }
64
-
65
- :hover {
66
- :before {
67
- opacity: 1;
68
- }
69
- }
70
-
71
- :active {
72
- transform: scale(0.95);
73
- }
74
- `;
75
-
76
- export const Title = styled.div.attrs(() => ({
77
- className: 'wayke__theme wayke__font--bold',
78
- }))`
79
- font-size: 1rem;
80
- `;
@@ -1,18 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- export const TableColumn = styled.div`
6
- line-height: 1.2;
7
- `;
8
-
9
- export const TableColumnRow = styled.div`
10
- display: flex;
11
- align-items: flex-start;
12
- margin: ${size(-1)};
13
- `;
14
-
15
- export const TableColumnCell = styled.div`
16
- flex: 1 0 50%;
17
- padding: ${size(1)};
18
- `;
@@ -1,39 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- export const TableList = styled.ul`
6
- list-style: none;
7
- padding: 0;
8
- margin: 0;
9
- border-top: 1px solid ${(props) => props.theme.color.border};
10
- border-bottom: 1px solid ${(props) => props.theme.color.border};
11
- font-size: 0.875rem;
12
- `;
13
-
14
- export const TableListItem = styled.li`
15
- display: flex;
16
- align-items: center;
17
- padding: ${size(1)} 0;
18
-
19
- & + & {
20
- border-top: 1px solid ${(props) => props.theme.color.border};
21
- }
22
- `;
23
-
24
- export const TableListKey = styled.div`
25
- flex: 1 1 auto;
26
- `;
27
-
28
- export const TableListValue = styled.div`
29
- flex-shrink: 0;
30
- padding-left: ${size(1)};
31
- `;
32
-
33
- export const TableListBooleanPos = styled.div`
34
- color: ${(props) => props.theme.color.ui.positive};
35
- `;
36
-
37
- export const TableListBooleanNeg = styled.div`
38
- color: ${(props) => props.theme.color.ui.negative};
39
- `;
@@ -1,34 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { Action, Item, List, Wrapper } from './wrapper';
4
-
5
- export interface ITabItem {
6
- name: string;
7
- displayName: string;
8
- }
9
-
10
- export interface ITabInterface<T> {
11
- tabs: ITabItem[];
12
- active: string;
13
- onClick?: (name: T) => void;
14
- }
15
-
16
- const Tabs = <T extends {}>({ tabs, active, onClick }: ITabInterface<T>) => (
17
- <Wrapper>
18
- <List>
19
- {tabs.map((tab) => (
20
- <Item key={tab.name}>
21
- <Action
22
- title={tab.displayName}
23
- onClick={onClick ? () => onClick(tab.name as unknown as T) : undefined}
24
- active={tab.name === active ? 'true' : undefined}
25
- >
26
- {tab.displayName}
27
- </Action>
28
- </Item>
29
- ))}
30
- </List>
31
- </Wrapper>
32
- );
33
-
34
- export default Tabs;
@@ -1,82 +0,0 @@
1
- import * as React from 'react';
2
- import styled, { css } from 'styled-components';
3
-
4
- import { ButtonReset } from '../Button/index';
5
- import { size } from '../../layout/helpers';
6
-
7
- export const Wrapper = styled.div`
8
- overflow: hidden;
9
- margin-top: ${size(-1)};
10
- margin-left: ${size(-1)};
11
- margin-right: ${size(-1)};
12
-
13
- ${(props) => props.theme.breakpoint.LtSm} {
14
- margin-left: ${size(-2)};
15
- margin-right: ${size(-2)};
16
- }
17
- `;
18
-
19
- export const List = styled.ul`
20
- list-style: none;
21
- padding: 0;
22
- margin: 0;
23
- overflow: auto;
24
- -webkit-overflow-scrolling: touch;
25
- white-space: nowrap;
26
- font-size: 0;
27
-
28
- ${(props) => props.theme.breakpoint.LtSm} {
29
- padding-left: ${size(1)};
30
- padding-right: ${size(1)};
31
- }
32
- `;
33
-
34
- export const Item = styled.li`
35
- display: inline-block;
36
- vertical-align: bottom;
37
- font-size: 1rem;
38
- `;
39
-
40
- type ActionProps = React.DetailedHTMLProps<
41
- React.HTMLAttributes<HTMLButtonElement>,
42
- HTMLButtonElement
43
- > & {
44
- active?: boolean | string;
45
- };
46
-
47
- export const Action = styled(ButtonReset).attrs(() => ({
48
- role: 'tab',
49
- className: 'wayke__theme wayke__font--bold',
50
- }))<ActionProps>`
51
- position: relative;
52
- display: block;
53
- padding: ${size(1)};
54
- color: ${(props) => props.theme.color.textDarkLighten};
55
-
56
- :hover {
57
- color: ${(props) => props.theme.color.textDark};
58
- }
59
-
60
- :after {
61
- content: '';
62
- position: absolute;
63
- bottom: 0;
64
- left: ${size(1)};
65
- right: ${size(1)};
66
- height: 2px;
67
- background-color: ${(props) => props.theme.color.textDark};
68
- transform: scaleY(0);
69
- transition: transform 200ms ease;
70
- z-index: 1;
71
- }
72
-
73
- ${(props) =>
74
- props.active &&
75
- css`
76
- color: ${(props) => props.theme.color.textDark};
77
-
78
- :after {
79
- transform: scaleY(1);
80
- }
81
- `}
82
- `;
@@ -1,136 +0,0 @@
1
- import React, { useState, useEffect, useRef, cloneElement, Children } from 'react';
2
-
3
- const calculateCurrentFrame = (startFrame: number, delta: number, length: number): number => {
4
- const frame = (startFrame + delta) % length;
5
- if (frame < 0) {
6
- return frame + length;
7
- }
8
-
9
- return frame;
10
- };
11
-
12
- type PropsType = {
13
- children: React.ReactNode;
14
- };
15
-
16
- type RotationEvent = any;
17
-
18
- const Rotation = ({ children }: PropsType) => {
19
- const startFrame = useRef(0);
20
- const pointerPosition = useRef<number>();
21
- const max = useRef(0);
22
-
23
- const [state, setState] = useState({
24
- current: 0,
25
- outsideMouseMove: false,
26
- });
27
-
28
- useEffect(() => {
29
- document.addEventListener('mouseup', touchEnd);
30
-
31
- return () => {
32
- window.document.removeEventListener('mouseup', touchEnd);
33
- window.document.body.removeEventListener('mousemove', mouseMove);
34
- window.document.body.removeEventListener('mouseup', mouseUp);
35
- };
36
- }, []);
37
-
38
- const touchMove = (event: RotationEvent) => {
39
- const notTouched = typeof pointerPosition.current !== 'number';
40
- event.preventDefault();
41
- if (notTouched) {
42
- return;
43
- }
44
-
45
- const childCount = Children.count(children);
46
-
47
- const { offsetWidth } = event.currentTarget;
48
- const pointer = calculatePointerPosition(event);
49
- const max = offsetWidth;
50
- const offset = pointer - (pointerPosition.current || 0);
51
- const delta = Math.floor((offset / max) * childCount);
52
- setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
53
- };
54
-
55
- const mouseMove = (event: RotationEvent) => {
56
- const notTouched = typeof pointerPosition.current !== 'number';
57
- event.preventDefault();
58
- if (notTouched || !state.outsideMouseMove) return;
59
-
60
- const childCount = Children.count(children);
61
-
62
- const pointer = calculatePointerPosition(event);
63
- const offset = pointer - (pointerPosition.current || 0);
64
- const delta = Math.floor((offset / max.current) * childCount);
65
- setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));
66
- };
67
-
68
- const mouseUp = () => {
69
- window.document.body.removeEventListener('mousemove', mouseMove);
70
- window.document.body.removeEventListener('mouseup', mouseUp);
71
-
72
- pointerPosition.current = undefined;
73
- startFrame.current = 0;
74
- };
75
-
76
- const touchStart = (event: RotationEvent) => {
77
- event.preventDefault();
78
- pointerPosition.current = calculatePointerPosition(event);
79
- startFrame.current = state.current;
80
-
81
- const { offsetWidth } = event.currentTarget;
82
- max.current = offsetWidth;
83
-
84
- window.document.body.addEventListener('mousemove', mouseMove);
85
- window.document.body.addEventListener('mouseup', mouseUp);
86
- };
87
-
88
- const touchEnd = (event: RotationEvent) => {
89
- event.preventDefault();
90
- pointerPosition.current = undefined;
91
- startFrame.current = 0;
92
- };
93
-
94
- const onMouseEnter = () => {
95
- if (state.outsideMouseMove) setState({ ...state, outsideMouseMove: false });
96
- };
97
-
98
- const onMouseLeave = () => {
99
- if (!state.outsideMouseMove) setState({ ...state, outsideMouseMove: true });
100
- };
101
-
102
- const setCurrentFrame = (current: number) => {
103
- if (current !== state.current) {
104
- setState({ ...state, current });
105
- }
106
- };
107
-
108
- const calculatePointerPosition = (event: RotationEvent): number => {
109
- const { clientX } = event.type.indexOf('touch') === 0 ? event.changedTouches[0] : event;
110
- const { offsetLeft } = event.currentTarget;
111
- return clientX - offsetLeft;
112
- };
113
-
114
- return (
115
- <div
116
- onTouchStart={touchStart}
117
- onTouchMove={touchMove}
118
- onTouchEnd={touchEnd}
119
- onMouseDown={touchStart}
120
- onMouseMove={touchMove}
121
- onMouseEnter={onMouseEnter}
122
- onMouseLeave={onMouseLeave}
123
- >
124
- {Children.map(children, (child, i) =>
125
- cloneElement(child as React.ReactElement, {
126
- style: {
127
- width: '100%',
128
- display: state.current === i ? 'block' : 'none',
129
- },
130
- })
131
- )}
132
- </div>
133
- );
134
- };
135
-
136
- export default Rotation;