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

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 (278) hide show
  1. package/dist/index.js +5529 -5460
  2. package/dist/index.js.map +4 -4
  3. package/dist/index.mjs +320 -257
  4. package/dist/index.mjs.map +2 -2
  5. package/package.json +4 -2
  6. package/.editorconfig +0 -10
  7. package/.eslintrc.js +0 -62
  8. package/.github/workflows/release-to-production.yaml +0 -40
  9. package/.github/workflows/release-to-test.yaml +0 -40
  10. package/.prettierrc +0 -12
  11. package/assets/ajax-loader.gif +0 -0
  12. package/assets/default.css +0 -1
  13. package/assets/fonts/slick.eot +0 -0
  14. package/assets/fonts/slick.svg +0 -14
  15. package/assets/fonts/slick.ttf +0 -0
  16. package/assets/fonts/slick.woff +0 -0
  17. package/codegen.yml +0 -19
  18. package/esbuild/build.js +0 -39
  19. package/esbuild/common.js +0 -15
  20. package/esbuild/start.js +0 -21
  21. package/esbuild/www/index.html +0 -32
  22. package/example/src/@types/global.d.ts +0 -7
  23. package/example/src/@types/react-panellum.d.ts +0 -1
  24. package/example/src/App.tsx +0 -77
  25. package/example/src/assets/style/ecom.css +0 -63
  26. package/example/src/assets/style/theme.css +0 -83
  27. package/example/src/index.html +0 -26
  28. package/example/src/index.tsx +0 -11
  29. package/example/src/routes/HashRoute/index.tsx +0 -30
  30. package/example/src/routes/Home/index.tsx +0 -33
  31. package/example/src/routes/NotFound/index.tsx +0 -5
  32. package/example/src/routes/PathRoute/index.tsx +0 -35
  33. package/example/src/routes/Search/index.tsx +0 -28
  34. package/example/src/routes/SearchItem/index.tsx +0 -28
  35. package/example/src/routes/index.tsx +0 -25
  36. package/src/@types/action.ts +0 -3
  37. package/src/@types/codegen/types.ts +0 -366
  38. package/src/@types/filter.ts +0 -18
  39. package/src/@types/queryFilter.ts +0 -5
  40. package/src/@types/react-panellum.d.ts +0 -1
  41. package/src/@types/search.ts +0 -118
  42. package/src/@types/theme.d.ts +0 -5
  43. package/src/@types/vehicle-properties.ts +0 -33
  44. package/src/State/CentralStorage/CentralStorageContext.ts +0 -10
  45. package/src/State/CentralStorage/CentralStorageProvider.tsx +0 -21
  46. package/src/State/CentralStorage/useCentralStorage.ts +0 -37
  47. package/src/State/Path/PathContext.ts +0 -11
  48. package/src/State/Path/PathProvider.tsx +0 -66
  49. package/src/State/Path/reducer.ts +0 -30
  50. package/src/State/Path/usePath.ts +0 -13
  51. package/src/State/RelatedSearch/RelatedSearchContext.ts +0 -18
  52. package/src/State/RelatedSearch/RelatedSearchProvider.tsx +0 -55
  53. package/src/State/RelatedSearch/useRelatedSearch.ts +0 -20
  54. package/src/State/Search/SearchContext.ts +0 -27
  55. package/src/State/Search/SearchProvider.tsx +0 -243
  56. package/src/State/Search/useSearch.ts +0 -6
  57. package/src/State/Settings/SettingsContext.ts +0 -15
  58. package/src/State/Settings/SettingsProvider.tsx +0 -23
  59. package/src/State/Settings/useSettings.ts +0 -7
  60. package/src/components/Accordion/index.tsx +0 -57
  61. package/src/components/Accordion/wrapper.tsx +0 -107
  62. package/src/components/ActionList/index.tsx +0 -48
  63. package/src/components/ActionList/toggle-item.tsx +0 -59
  64. package/src/components/Avatar/index.tsx +0 -12
  65. package/src/components/Avatar/wrapper.tsx +0 -21
  66. package/src/components/Badge/index.tsx +0 -12
  67. package/src/components/Badge/wrapper.tsx +0 -32
  68. package/src/components/Blockquote/index.tsx +0 -32
  69. package/src/components/Blockquote/wrapper.tsx +0 -52
  70. package/src/components/Button/index.tsx +0 -226
  71. package/src/components/CheckMarkList/index.tsx +0 -21
  72. package/src/components/CheckMarkList/wrapper.tsx +0 -31
  73. package/src/components/Checklist/index.tsx +0 -51
  74. package/src/components/Checklist/wrapper.tsx +0 -65
  75. package/src/components/ColorSelect/index.tsx +0 -63
  76. package/src/components/ColorSelect/wrapper.tsx +0 -82
  77. package/src/components/ColumnRow/index.tsx +0 -20
  78. package/src/components/Container/index.tsx +0 -11
  79. package/src/components/Container/wrapper.tsx +0 -14
  80. package/src/components/Content/index.tsx +0 -15
  81. package/src/components/Content/wrapper.tsx +0 -61
  82. package/src/components/ContentLogo/index.tsx +0 -27
  83. package/src/components/DataList/index.tsx +0 -25
  84. package/src/components/DataList/wrapper.tsx +0 -29
  85. package/src/components/DetailBox/index.tsx +0 -34
  86. package/src/components/DetailBox/wrapper.tsx +0 -34
  87. package/src/components/ExtendContent/index.tsx +0 -43
  88. package/src/components/ExtendContent/wrapper.tsx +0 -41
  89. package/src/components/ExtendInfo/index.tsx +0 -32
  90. package/src/components/ExtendInfo/wrapper.tsx +0 -63
  91. package/src/components/Filter/index.tsx +0 -108
  92. package/src/components/Filter/wrapper.tsx +0 -79
  93. package/src/components/FilterPanel/checkListFacet.tsx +0 -46
  94. package/src/components/FilterPanel/colorFacet.tsx +0 -47
  95. package/src/components/FilterPanel/faceSelector.tsx +0 -53
  96. package/src/components/FilterPanel/index.tsx +0 -79
  97. package/src/components/FilterPanel/rangeFacet.tsx +0 -128
  98. package/src/components/FinancialOptions/LoanModal.tsx +0 -223
  99. package/src/components/FinancialOptions/index.tsx +0 -29
  100. package/src/components/FinancialOptions/leasing.tsx +0 -77
  101. package/src/components/FinancialOptions/loan.tsx +0 -87
  102. package/src/components/Gallery/MediaButton.tsx +0 -19
  103. package/src/components/Gallery/index.tsx +0 -227
  104. package/src/components/Gallery/wrapper.tsx +0 -323
  105. package/src/components/Grid/index.tsx +0 -87
  106. package/src/components/Grid/wrapper.tsx +0 -30
  107. package/src/components/Heading/index.tsx +0 -72
  108. package/src/components/Icon/index.tsx +0 -87
  109. package/src/components/InputCheckbox/index.tsx +0 -30
  110. package/src/components/InputCheckbox/wrapper.tsx +0 -87
  111. package/src/components/InputGroup/index.tsx +0 -24
  112. package/src/components/InputLabel/index.tsx +0 -14
  113. package/src/components/InputLabel/wrapper.tsx +0 -10
  114. package/src/components/InputSearch/index.tsx +0 -51
  115. package/src/components/InputSearch/wrapper.tsx +0 -97
  116. package/src/components/InputSelect/index.tsx +0 -35
  117. package/src/components/InputSelect/wrapper.tsx +0 -59
  118. package/src/components/InputText/index.tsx +0 -27
  119. package/src/components/InputText/wrapper.tsx +0 -57
  120. package/src/components/InsuranceOptions/Insurance.tsx +0 -60
  121. package/src/components/InsuranceOptions/InsuranceFree.tsx +0 -59
  122. package/src/components/InsuranceOptions/InsuranceFreeModal.tsx +0 -49
  123. package/src/components/InsuranceOptions/InsuranceModal.tsx +0 -253
  124. package/src/components/InsuranceOptions/index.tsx +0 -27
  125. package/src/components/Lightbox/index.tsx +0 -51
  126. package/src/components/Lightbox/wrapper.tsx +0 -97
  127. package/src/components/Loader/index.tsx +0 -18
  128. package/src/components/Loader/wrapper.tsx +0 -50
  129. package/src/components/LogoBox/index.tsx +0 -22
  130. package/src/components/LogoBox/wrapper.tsx +0 -19
  131. package/src/components/Map/index.tsx +0 -62
  132. package/src/components/Map/wrapper.tsx +0 -29
  133. package/src/components/Modal/index.tsx +0 -51
  134. package/src/components/Modal/wrapper.tsx +0 -127
  135. package/src/components/OpeningHours/index.tsx +0 -145
  136. package/src/components/OptionBox/index.tsx +0 -23
  137. package/src/components/OptionBox/wrapper.tsx +0 -56
  138. package/src/components/OverflowBox/index.tsx +0 -11
  139. package/src/components/OverflowBox/wrapper.tsx +0 -7
  140. package/src/components/OverflowGrid/index.tsx +0 -70
  141. package/src/components/Page/index.tsx +0 -46
  142. package/src/components/Panel/index.tsx +0 -50
  143. package/src/components/Panel/wrapper.tsx +0 -155
  144. package/src/components/Pdf/index.tsx +0 -46
  145. package/src/components/Pdf/wrapper.tsx +0 -61
  146. package/src/components/PhoneNumber/index.tsx +0 -33
  147. package/src/components/Portal/index.ts +0 -5
  148. package/src/components/Portal/portal-element.tsx +0 -9
  149. package/src/components/Portal/portal-namespace.ts +0 -1
  150. package/src/components/Portal/portal.tsx +0 -36
  151. package/src/components/Price/index.tsx +0 -12
  152. package/src/components/PriceTable/index.tsx +0 -34
  153. package/src/components/PriceTable/wrapper.tsx +0 -27
  154. package/src/components/ProductCard/index.tsx +0 -133
  155. package/src/components/ProductCard/wrapper.tsx +0 -147
  156. package/src/components/ProductPage/index.tsx +0 -99
  157. package/src/components/ProgressBar/index.tsx +0 -31
  158. package/src/components/ProgressBar/wrapper.tsx +0 -29
  159. package/src/components/RangeSlider/RangeSliderSimple.tsx +0 -90
  160. package/src/components/RangeSlider/SliderWithLabel.tsx +0 -62
  161. package/src/components/RangeSlider/handle.tsx +0 -26
  162. package/src/components/RangeSlider/index.tsx +0 -132
  163. package/src/components/RangeSlider/track.tsx +0 -19
  164. package/src/components/RangeSlider/wrapper.tsx +0 -93
  165. package/src/components/RangeSliderLabel/index.tsx +0 -18
  166. package/src/components/RangeSliderLabel/wrapper.tsx +0 -33
  167. package/src/components/Repeat/index.tsx +0 -21
  168. package/src/components/Result/index.tsx +0 -91
  169. package/src/components/Result/wrapper.tsx +0 -39
  170. package/src/components/Root/index.tsx +0 -24
  171. package/src/components/SearchBar/index.tsx +0 -48
  172. package/src/components/SearchFilter/index.tsx +0 -31
  173. package/src/components/SearchTerm/index.tsx +0 -23
  174. package/src/components/SearchTerm/wrapper.tsx +0 -71
  175. package/src/components/SectionHeader/index.tsx +0 -25
  176. package/src/components/SectionHeader/wrapper.tsx +0 -17
  177. package/src/components/Snackbar/index.tsx +0 -35
  178. package/src/components/Snackbar/wrapper.tsx +0 -65
  179. package/src/components/SortSelect/index.tsx +0 -35
  180. package/src/components/SortSelect/wrapper.tsx +0 -54
  181. package/src/components/Sphere/Sphere.tsx +0 -49
  182. package/src/components/Sphere/SphereLightbox.tsx +0 -10
  183. package/src/components/Sphere/SphereViewer.tsx +0 -81
  184. package/src/components/Sphere/wrapper.tsx +0 -253
  185. package/src/components/SrOnly/index.tsx +0 -14
  186. package/src/components/SwitchBar/index.tsx +0 -55
  187. package/src/components/SwitchBar/wrapper.tsx +0 -80
  188. package/src/components/TableColumn/index.tsx +0 -18
  189. package/src/components/TableList/index.tsx +0 -39
  190. package/src/components/Tabs/index.tsx +0 -34
  191. package/src/components/Tabs/wrapper.tsx +0 -82
  192. package/src/components/ThreeSixty/Rotation.tsx +0 -136
  193. package/src/components/ThreeSixty/ThreeSixtLightbox.tsx +0 -34
  194. package/src/components/ThreeSixty/ThreeSixty.tsx +0 -53
  195. package/src/components/UspList/index.tsx +0 -47
  196. package/src/components/UspList/wrapper.tsx +0 -92
  197. package/src/components/Utility/index.tsx +0 -17
  198. package/src/components/Video/CustomPlayer.tsx +0 -28
  199. package/src/components/Video/EmbeddedVideoLightbox.tsx +0 -31
  200. package/src/components/Video/EmbededVideo.tsx +0 -72
  201. package/src/components/Video/QuickNavEmbeded.tsx +0 -35
  202. package/src/components/Video/QuickNavVideo.tsx +0 -14
  203. package/src/components/Video/Video.tsx +0 -18
  204. package/src/components/Video/VimeoPlayer.tsx +0 -21
  205. package/src/components/Video/YoutubePlayer.tsx +0 -21
  206. package/src/components/Video/useThumbnail.ts +0 -28
  207. package/src/components/Video/utils.ts +0 -47
  208. package/src/components/Video/wrapper.tsx +0 -29
  209. package/src/hooks/useFetch.ts +0 -88
  210. package/src/hooks/useHasBeenVisible.ts +0 -17
  211. package/src/hooks/useHashGuid.ts +0 -33
  212. package/src/hooks/useInsurance.ts +0 -22
  213. package/src/hooks/useLoan.ts +0 -21
  214. package/src/hooks/useOnScreen.ts +0 -20
  215. package/src/hooks/useOutsideClick.ts +0 -19
  216. package/src/hooks/usePrevious.ts +0 -11
  217. package/src/hooks/useSearchItem.ts +0 -11
  218. package/src/hooks/useSearchItemBranch.ts +0 -14
  219. package/src/hooks/useSessionStorage.ts +0 -32
  220. package/src/hooks/useVimeoThumbnail.ts +0 -31
  221. package/src/images/map/marker.png +0 -0
  222. package/src/images/placeholders/staticmap.jpg +0 -0
  223. package/src/index-dev.tsx +0 -42
  224. package/src/index-esbuild.ts +0 -74
  225. package/src/index.ts +0 -72
  226. package/src/layout/helpers.tsx +0 -6
  227. package/src/layout/keyframes.tsx +0 -23
  228. package/src/layout/theme.ts +0 -60
  229. package/src/layouts/WaykeComposite.tsx +0 -64
  230. package/src/layouts/WaykeCompositeWithProvider.tsx +0 -17
  231. package/src/layouts/search/index.tsx +0 -124
  232. package/src/layouts/searchItem/Branch.tsx +0 -97
  233. package/src/layouts/searchItem/BranchModal.tsx +0 -67
  234. package/src/layouts/searchItem/CheckList.tsx +0 -146
  235. package/src/layouts/searchItem/ManufacturerPackagesOption.tsx +0 -54
  236. package/src/layouts/searchItem/MetadataItem.tsx +0 -74
  237. package/src/layouts/searchItem/PackageOptionModal.tsx +0 -54
  238. package/src/layouts/searchItem/PackageOptions.tsx +0 -58
  239. package/src/layouts/searchItem/Page404.tsx +0 -17
  240. package/src/layouts/searchItem/PageLoading.tsx +0 -17
  241. package/src/layouts/searchItem/Property.tsx +0 -134
  242. package/src/layouts/searchItem/Related.tsx +0 -120
  243. package/src/layouts/searchItem/index.tsx +0 -342
  244. package/src/providers/WaykeItemProvidet.tsx +0 -63
  245. package/src/providers/WaykeProvider.tsx +0 -75
  246. package/src/providers/graphqlProvider.tsx +0 -9
  247. package/src/providers/themeProvider.tsx +0 -15
  248. package/src/queries/INSURANCE_CALCULATION.ts +0 -43
  249. package/src/queries/LOAN_CALCULATION.ts +0 -39
  250. package/src/queries/SEARCH_ITEM_BRANCH_QUERY.ts +0 -120
  251. package/src/queries/SEARCH_ITEM_QUERY.ts +0 -237
  252. package/src/utils/constants.ts +0 -34
  253. package/src/utils/converters.ts +0 -45
  254. package/src/utils/deep-copy.ts +0 -6
  255. package/src/utils/formats.ts +0 -83
  256. package/src/utils/metadata.min.ts +0 -87
  257. package/src/utils/phonenumbers.ts +0 -17
  258. package/src/utils/pubsub/Actions.ts +0 -20
  259. package/src/utils/pubsub/Events.ts +0 -79
  260. package/src/utils/pubsub/pubsub.ts +0 -151
  261. package/src/utils/regex.ts +0 -13
  262. package/src/utils/sortOptions.ts +0 -36
  263. package/src/utils/specification.ts +0 -581
  264. package/src/utils/ssn.ts +0 -1
  265. package/src/utils/url.ts +0 -1
  266. package/src/utils/vehicle-properties/compare-basic-properties.ts +0 -63
  267. package/src/utils/vehicle-properties/compare-categories.ts +0 -45
  268. package/src/utils/vehicle-properties/compare-properties.ts +0 -5
  269. package/src/utils/vehicle-properties/custom-property-adder.ts +0 -163
  270. package/src/utils/vehicle-properties/property-hint-enricher.ts +0 -230
  271. package/src/utils/vehicle-properties/property-remover.ts +0 -28
  272. package/src/utils/vehicle-properties/property-tree-creator.ts +0 -171
  273. package/src/utils/vehicle-properties/property-tree-sorter.ts +0 -20
  274. package/tsconfig.build.json +0 -10
  275. package/tsconfig.eslint.json +0 -11
  276. package/tsconfig.json +0 -18
  277. package/webpack.analyze.js +0 -10
  278. package/webpack.config.js +0 -95
@@ -1,24 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- export const InputGroup = styled.div`
6
- ${(props) => props.theme.breakpoint.Sm} {
7
- display: flex;
8
- align-items: flex-start;
9
- margin: ${size(-0.5)};
10
- }
11
- `;
12
-
13
- export const InputGroupColumn = styled.div`
14
- ${(props) => props.theme.breakpoint.LtSm} {
15
- & + & {
16
- margin-top: ${size(1)};
17
- }
18
- }
19
-
20
- ${(props) => props.theme.breakpoint.Sm} {
21
- flex: 1 1 50%;
22
- padding: ${size(0.5)};
23
- }
24
- `;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Wrapper } from './wrapper';
4
-
5
- interface Props {
6
- children: string;
7
- htmlFor?: string;
8
- }
9
-
10
- const InputLabel = ({ children, htmlFor }: Props) => (
11
- <Wrapper htmlFor={htmlFor}>{children}</Wrapper>
12
- );
13
-
14
- export default InputLabel;
@@ -1,10 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- export const Wrapper = styled.label.attrs(() => ({
6
- className: 'wayke__theme wayke__font--bold',
7
- }))`
8
- margin-bottom: ${size(0.5)};
9
- font-size: 0.875rem;
10
- `;
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Wrapper, Search, Action, ActionBtn, Input, Label } from './wrapper';
4
- import { IconSearch } from '../Icon/index';
5
-
6
- type InputProps = React.DetailedHTMLProps<
7
- React.InputHTMLAttributes<HTMLInputElement>,
8
- HTMLInputElement
9
- >;
10
-
11
- type Props = InputProps & {
12
- placeholder: string;
13
- label: string;
14
- value?: string;
15
- id: string;
16
- onSearch: () => void;
17
- };
18
-
19
- const InputSearch = React.forwardRef(
20
- (
21
- { placeholder, label, value, id, onSearch, onChange, onKeyDown }: Props,
22
- ref:
23
- | ((instance: HTMLDivElement | null) => void)
24
- | React.RefObject<HTMLDivElement>
25
- | null
26
- | undefined
27
- ) => (
28
- <Wrapper ref={ref}>
29
- <Label htmlFor={id}>{label}</Label>
30
- <Search>
31
- <Input
32
- placeholder={placeholder}
33
- name="search"
34
- value={value}
35
- id={id}
36
- onChange={onChange}
37
- onKeyDown={onKeyDown}
38
- />
39
- </Search>
40
- <Action>
41
- <ActionBtn onClick={onSearch} title={`Genomför ${label}`} aria-label={`Genomför ${label}`}>
42
- <IconSearch block />
43
- </ActionBtn>
44
- </Action>
45
- </Wrapper>
46
- )
47
- );
48
-
49
- InputSearch.displayName = 'InputSearch';
50
-
51
- export default InputSearch;
@@ -1,97 +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.attrs(() => ({
7
- role: 'search',
8
- }))`
9
- display: flex;
10
- align-items: stretch;
11
- border-radius: 3px;
12
- `;
13
-
14
- export const Label = styled.label`
15
- position: absolute;
16
- width: 1px;
17
- height: 1px;
18
- padding: 0;
19
- margin: -1px;
20
- overflow: hidden;
21
- clip: rect(0, 0, 0, 0);
22
- white-space: nowrap;
23
- border: 0;
24
- `;
25
-
26
- export const Search = styled.div`
27
- flex: 1 1 auto;
28
- position: relative;
29
- display: flex;
30
- align-items: stretch;
31
- background-color: ${(props) => props.theme.color.accentDark};
32
- border-top-left-radius: 3px;
33
- border-bottom-left-radius: 3px;
34
- `;
35
-
36
- export const Action = styled.div`
37
- flex-shrink: 0;
38
- `;
39
-
40
- export const ActionBtn = styled(ButtonReset).attrs(() => ({
41
- className: 'wayke__theme wayke__color--primary-bg',
42
- }))`
43
- display: flex;
44
- align-items: center;
45
- justify-content: center;
46
- width: ${(props) => props.theme.distances.inputHeight};
47
- height: ${(props) => props.theme.distances.inputHeight};
48
- border-top-right-radius: 3px;
49
- border-bottom-right-radius: 3px;
50
- font-size: 1rem;
51
- `;
52
-
53
- export const Input = styled.input.attrs(() => ({
54
- type: 'search',
55
- className: 'wayke__theme wayke__font--regular',
56
- }))`
57
- flex: 1 1 auto;
58
- display: block;
59
- width: 100%;
60
- height: ${(props) => props.theme.distances.inputHeight};
61
- padding: 0 ${size(2)};
62
- background-color: transparent;
63
- font-size: 16px;
64
- border: none;
65
- border-radius: 0;
66
- box-shadow: none;
67
- -moz-appearance: none;
68
- -webkit-appearance: none;
69
-
70
- :focus {
71
- outline: none;
72
- }
73
-
74
- &::-webkit-input-placeholder {
75
- font-family: inherit;
76
- color: ${(props) => props.theme.color.textDarkLighten};
77
- font-size: 1em;
78
- }
79
-
80
- &:-moz-placeholder {
81
- font-family: inherit;
82
- color: ${(props) => props.theme.color.textDarkLighten};
83
- font-size: 1em;
84
- }
85
-
86
- &::-moz-placeholder {
87
- font-family: inherit;
88
- color: ${(props) => props.theme.color.textDarkLighten};
89
- font-size: 1em;
90
- }
91
-
92
- &:-ms-input-placeholder {
93
- font-family: inherit;
94
- color: ${(props) => props.theme.color.textDarkLighten};
95
- font-size: 1em;
96
- }
97
- `;
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Wrapper, Select, Option, Icon } from './wrapper';
4
- import { IconChevronDown } from '../Icon/index';
5
-
6
- export interface OptionProps {
7
- value: number | string;
8
- displayName?: number | string | null;
9
- }
10
-
11
- interface Props {
12
- value?: string | number;
13
- options?: OptionProps[];
14
- unit?: string;
15
- title: string;
16
- onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
17
- }
18
-
19
- const InputSelect = ({ value, options, onChange, unit, title }: Props) => (
20
- <Wrapper>
21
- <Select value={value} onChange={onChange} title={title} aria-label={title}>
22
- {options?.map((option) => (
23
- <Option key={option.value} value={option.value}>
24
- {option.displayName || option.value}
25
- {unit ? ` ${unit}` : ''}
26
- </Option>
27
- ))}
28
- </Select>
29
- <Icon>
30
- <IconChevronDown block />
31
- </Icon>
32
- </Wrapper>
33
- );
34
-
35
- export default InputSelect;
@@ -1,59 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- const iconSize = '0.875rem';
6
- const selectPadding = size(2);
7
-
8
- export const Wrapper = styled.div`
9
- position: relative;
10
- background-color: ${(props) => props.theme.color.accent};
11
- border-radius: 3px;
12
- `;
13
-
14
- export const Select = styled.select.attrs(() => ({
15
- className: 'wayke__theme wayke__font--regular',
16
- }))`
17
- position: relative;
18
- display: block;
19
- width: 100%;
20
- height: ${(props) => props.theme.distances.inputHeight};
21
- -webkit-appearance: none;
22
- -moz-appearance: none;
23
- appearance: none;
24
- -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
25
- text-indent: 0.01px;
26
- border: 0;
27
- padding: 0 ${selectPadding};
28
- padding-right: calc(${iconSize} + ${selectPadding});
29
- background-color: transparent;
30
- color: ${(props) => props.theme.color.textDark};
31
- border-radius: 0;
32
- font-size: 16px;
33
- cursor: pointer;
34
- z-index: 1;
35
-
36
- :focus {
37
- outline: none;
38
- }
39
-
40
- ::-ms-expand {
41
- display: none;
42
- }
43
-
44
- ::-moz-focus-inner {
45
- border: 0;
46
- }
47
- `;
48
-
49
- export const Option = styled.option`
50
- color: ${(props) => props.theme.color.textDark};
51
- `;
52
-
53
- export const Icon = styled.div`
54
- position: absolute;
55
- top: 50%;
56
- right: ${selectPadding};
57
- transform: translateY(-50%);
58
- font-size: ${iconSize};
59
- `;
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Wrapper, Input } from './wrapper';
4
-
5
- type Props = React.DetailedHTMLProps<
6
- React.InputHTMLAttributes<HTMLInputElement>,
7
- HTMLInputElement
8
- > & {
9
- value: string;
10
- placeholder: string;
11
- label: string;
12
- };
13
-
14
- const InputText = ({ placeholder, label, value, id, onChange, onKeyDown }: Props) => (
15
- <Wrapper>
16
- <Input
17
- placeholder={placeholder}
18
- value={value}
19
- id={id}
20
- aria-label={label}
21
- onChange={onChange}
22
- onKeyDown={onKeyDown}
23
- />
24
- </Wrapper>
25
- );
26
-
27
- export default InputText;
@@ -1,57 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { size } from '../../layout/helpers';
4
-
5
- export const Wrapper = styled.div`
6
- position: relative;
7
- display: flex;
8
- align-items: stretch;
9
- background-color: ${(props) => props.theme.color.accent};
10
- border-radius: 3px;
11
- `;
12
-
13
- export const Input = styled.input.attrs(() => ({
14
- type: 'text',
15
- className: 'wayke__theme wayke__font--regular',
16
- }))`
17
- flex: 1 1 auto;
18
- display: block;
19
- width: 100%;
20
- height: ${(props) => props.theme.distances.inputHeight};
21
- padding: 0 ${size(2)};
22
- background-color: transparent;
23
- font-size: 16px;
24
- border: none;
25
- border-radius: 0;
26
- box-shadow: none;
27
- -moz-appearance: none;
28
- -webkit-appearance: none;
29
-
30
- :focus {
31
- outline: none;
32
- }
33
-
34
- &::-webkit-input-placeholder {
35
- font-family: inherit;
36
- color: ${(props) => props.theme.color.textDarkLighten};
37
- font-size: 1em;
38
- }
39
-
40
- &:-moz-placeholder {
41
- font-family: inherit;
42
- color: ${(props) => props.theme.color.textDarkLighten};
43
- font-size: 1em;
44
- }
45
-
46
- &::-moz-placeholder {
47
- font-family: inherit;
48
- color: ${(props) => props.theme.color.textDarkLighten};
49
- font-size: 1em;
50
- }
51
-
52
- &:-ms-input-placeholder {
53
- font-family: inherit;
54
- color: ${(props) => props.theme.color.textDarkLighten};
55
- font-size: 1em;
56
- }
57
- `;
@@ -1,60 +0,0 @@
1
- import React, { useState, useCallback } from 'react';
2
- import { Repeat, RepeatTiny } from '../Repeat/index';
3
- import { VisualHeading } from '../Heading/index';
4
- import OptionBox from '../OptionBox/index';
5
- import { OptionBoxHeading, OptionBoxContent } from '../OptionBox/wrapper';
6
- import { ButtonInline } from '../Button/index';
7
- import { InsuranceOption, Branch } from '../../@types/codegen/types';
8
- import InsuranceModal from './InsuranceModal';
9
-
10
- interface InsuranceOptions {
11
- id: string;
12
- branch?: Branch | null;
13
- insuranceOptions: InsuranceOption[];
14
- }
15
-
16
- const Insurance = ({ id, branch, insuranceOptions }: InsuranceOptions) => {
17
- const [modal, setModal] = useState(false);
18
- const toggleModal = useCallback(() => setModal(!modal), [modal]);
19
- if (!insuranceOptions.length) {
20
- return null;
21
- }
22
-
23
- return (
24
- <>
25
- {modal && (
26
- <InsuranceModal
27
- id={id}
28
- branch={branch}
29
- onClose={toggleModal}
30
- insuranceOptions={insuranceOptions[0]}
31
- />
32
- )}
33
- <Repeat>
34
- <RepeatTiny>
35
- <VisualHeading>Välj till försäkring</VisualHeading>
36
- </RepeatTiny>
37
- <RepeatTiny>
38
- <>
39
- {insuranceOptions.map((insuranceOption, index) => (
40
- <OptionBox
41
- key={`${insuranceOption.url}-${index}`}
42
- logo={insuranceOption.logotype || undefined}
43
- logoAlt={insuranceOption.name || 'Logotyp'}
44
- >
45
- <OptionBoxHeading>Få prisförslag</OptionBoxHeading>
46
- <OptionBoxContent>
47
- <p>
48
- <ButtonInline onClick={toggleModal}>Mer information</ButtonInline>
49
- </p>
50
- </OptionBoxContent>
51
- </OptionBox>
52
- ))}
53
- </>
54
- </RepeatTiny>
55
- </Repeat>
56
- </>
57
- );
58
- };
59
-
60
- export default Insurance;
@@ -1,59 +0,0 @@
1
- import React, { useState, useCallback } from 'react';
2
- import { Repeat, RepeatTiny } from '../Repeat/index';
3
- import { VisualHeading } from '../Heading/index';
4
- import OptionBox from '../OptionBox/index';
5
- import { OptionBoxContent } from '../OptionBox/wrapper';
6
- import Content from '../Content/index';
7
- import { marked } from 'marked';
8
- import { ButtonInline } from '../Button/index';
9
- import { InsuranceOption } from '../../@types/codegen/types';
10
- import InsuranceFreeModal from './InsuranceFreeModal';
11
-
12
- interface InsuranceOptions {
13
- insuranceOptions: InsuranceOption[];
14
- }
15
-
16
- const Insurance = ({ insuranceOptions }: InsuranceOptions) => {
17
- const [modal, setModal] = useState(false);
18
- const toggleModal = useCallback(() => setModal(!modal), [modal]);
19
- if (!insuranceOptions.length) {
20
- return null;
21
- }
22
-
23
- return (
24
- <>
25
- {modal && <InsuranceFreeModal onClose={toggleModal} insuranceOptions={insuranceOptions[0]} />}
26
- <Repeat>
27
- <RepeatTiny>
28
- <VisualHeading>{insuranceOptions[0]?.insuranceHeader ?? 'Försäkring'}</VisualHeading>
29
- </RepeatTiny>
30
- <RepeatTiny>
31
- <>
32
- {insuranceOptions.map((insuranceOption, index) => (
33
- <OptionBox
34
- key={`${insuranceOption.url}-${index}`}
35
- logo={insuranceOption.logotype || undefined}
36
- logoAlt={insuranceOption.name || 'Logotyp'}
37
- >
38
- {insuranceOption.description && (
39
- <Content
40
- dangerouslySetInnerHTML={{
41
- __html: marked(insuranceOption.description),
42
- }}
43
- />
44
- )}
45
- <OptionBoxContent>
46
- <p>
47
- <ButtonInline onClick={toggleModal}>Mer information</ButtonInline>
48
- </p>
49
- </OptionBoxContent>
50
- </OptionBox>
51
- ))}
52
- </>
53
- </RepeatTiny>
54
- </Repeat>
55
- </>
56
- );
57
- };
58
-
59
- export default Insurance;
@@ -1,49 +0,0 @@
1
- import React from 'react';
2
-
3
- import Modal from '../Modal/index';
4
- import Content from '../Content/index';
5
- import { Repeat } from '../Repeat/index';
6
- import { ButtonInline } from '../Button/index';
7
- import LogoBox from '../LogoBox/index';
8
- import { InsuranceOption } from '../../@types/codegen/types';
9
- import { marked } from 'marked';
10
-
11
- interface InsuranceFreeModal {
12
- onClose: () => void;
13
- insuranceOptions: InsuranceOption;
14
- }
15
-
16
- const InsuranceFreeModal = ({ onClose, insuranceOptions }: InsuranceFreeModal) => {
17
- return (
18
- <Modal title={insuranceOptions?.insuranceHeader ?? 'Försäkring'} onClose={onClose}>
19
- {insuranceOptions?.longDescription && (
20
- <Repeat>
21
- <Content
22
- dangerouslySetInnerHTML={{
23
- __html: marked(insuranceOptions.longDescription),
24
- }}
25
- ></Content>
26
- </Repeat>
27
- )}
28
- {insuranceOptions?.url && (
29
- <Repeat>
30
- <ButtonInline
31
- as="a"
32
- href={insuranceOptions.url}
33
- target="_blank"
34
- rel="noopener noreferrer"
35
- >
36
- Läs mer om försäkringen (Öppnas i ett nytt fönster)
37
- </ButtonInline>
38
- </Repeat>
39
- )}
40
- {insuranceOptions?.logotype && (
41
- <Repeat>
42
- <LogoBox logo={insuranceOptions.logotype} alt={insuranceOptions.name || 'Logotyp'} wide />
43
- </Repeat>
44
- )}
45
- </Modal>
46
- );
47
- };
48
-
49
- export default InsuranceFreeModal;