trepur_components 2.3.7 → 2.3.9

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 (335) hide show
  1. package/.eslintrc.cjs +33 -4
  2. package/.prettierignore +10 -0
  3. package/README.md +1 -1
  4. package/package.json +9 -5
  5. package/src/components/Accordion/Accordion.stories.tsx +21 -98
  6. package/src/components/Accordion/const.tsx +34 -0
  7. package/src/components/Accordion/index.tsx +19 -25
  8. package/src/components/AlertBar/AlertBar.stories.tsx +78 -84
  9. package/src/components/AlertBar/index.tsx +69 -100
  10. package/src/components/Avatar/Avatar.stories.tsx +2 -7
  11. package/src/components/Avatar/index.tsx +4 -7
  12. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +29 -0
  13. package/src/components/Breadcrumbs/index.tsx +89 -0
  14. package/src/components/Button/Button.stories.tsx +24 -0
  15. package/src/components/Button/index.tsx +59 -0
  16. package/src/components/Calendar/Calendar.stories.tsx +21 -0
  17. package/src/components/Calendar/index.tsx +92 -0
  18. package/src/components/Card/Card.stories.tsx +14 -0
  19. package/src/components/Card/index.tsx +39 -0
  20. package/src/components/Carousel/Carousel.stories.tsx +44 -0
  21. package/src/components/Carousel/index.tsx +301 -0
  22. package/src/components/Carousel/utils.ts +53 -0
  23. package/src/components/CarouselThumbnail/CarouselThumbnail.stories.tsx +29 -0
  24. package/src/components/CarouselThumbnail/const.ts +17 -0
  25. package/src/components/CarouselThumbnail/index.tsx +169 -0
  26. package/src/components/CarouselThumbnail/utils.ts +87 -0
  27. package/src/components/Checkbox/Checkbox.stories.tsx +27 -0
  28. package/src/components/Checkbox/index.tsx +44 -0
  29. package/src/components/Collapsible/Collapsible.stories.tsx +67 -0
  30. package/src/components/Collapsible/index.tsx +169 -0
  31. package/src/components/Counter/Counter.stories.tsx +20 -0
  32. package/src/components/Counter/index.tsx +98 -0
  33. package/src/components/DetailUpdater/DetailUpdater.stories.tsx +37 -0
  34. package/{archive → src/components}/DetailUpdater/index.tsx +20 -25
  35. package/src/components/Dialog/Dialog.stories.tsx +65 -0
  36. package/src/components/Dialog/index.tsx +29 -0
  37. package/src/components/Dropdown/Dropdown.stories.tsx +22 -0
  38. package/src/components/Dropdown/index.tsx +117 -0
  39. package/src/components/Dropdown/utils.ts +15 -0
  40. package/{archive → src/components}/FileUploader/FilePreview.tsx +11 -14
  41. package/src/components/FileUploader/FileUploader.stories.tsx +28 -0
  42. package/src/components/FileUploader/index.tsx +177 -0
  43. package/src/components/Footer/Footer.stories.tsx +47 -0
  44. package/src/components/Footer/index.tsx +96 -0
  45. package/src/components/FooterNav/FooterNav.stories.tsx +32 -0
  46. package/src/components/FooterNav/index.tsx +75 -0
  47. package/{archive → src/components}/Form/Form.stories.tsx +2 -2
  48. package/src/components/Form/index.tsx +41 -0
  49. package/src/components/Gallery/Gallery.stories.tsx +39 -0
  50. package/src/components/Gallery/index.tsx +31 -0
  51. package/src/components/Greeting/Greeting.stories.tsx +16 -0
  52. package/src/components/Greeting/index.tsx +49 -0
  53. package/src/components/HamburgerIcon/HamburgerIcon.stories.tsx +14 -0
  54. package/src/components/HamburgerIcon/index.tsx +75 -0
  55. package/src/components/Icon/Icon.stories.tsx +41 -0
  56. package/src/components/Icon/index.tsx +33 -0
  57. package/src/components/Image/Image.stories.tsx +17 -0
  58. package/src/components/Image/index.tsx +25 -0
  59. package/src/components/ImageCard/ImageCard.stories.tsx +29 -0
  60. package/src/components/ImageCard/index.tsx +75 -0
  61. package/src/components/Input/Input.stories.tsx +25 -0
  62. package/src/components/Input/index.tsx +139 -0
  63. package/{archive → src/components}/MenuButton/MenuButton.stories.tsx +2 -2
  64. package/src/components/MenuButton/index.tsx +66 -0
  65. package/{archive → src/components}/Modal/Modal.stories.tsx +4 -8
  66. package/{archive → src/components}/Modal/index.tsx +9 -12
  67. package/src/components/Nav/Nav.stories.tsx +80 -0
  68. package/src/components/Nav/index.tsx +171 -0
  69. package/src/components/NavItem/NavItem.stories.tsx +17 -0
  70. package/src/components/NavItem/index.tsx +39 -0
  71. package/src/components/Pill/Pill.stories.tsx +51 -0
  72. package/src/components/Pill/index.tsx +69 -0
  73. package/{archive → src/components}/Search/Search.stories.tsx +2 -2
  74. package/{archive → src/components}/Search/index.tsx +12 -16
  75. package/{archive → src/components}/Select/Select.stories.tsx +2 -3
  76. package/{archive → src/components}/Select/index.tsx +21 -30
  77. package/{archive → src/components}/Showcase/Showcase.stories.tsx +4 -3
  78. package/src/components/Showcase/index.tsx +62 -0
  79. package/{archive → src/components}/SideNav/SideNav.stories.tsx +2 -2
  80. package/{archive → src/components}/SideNav/index.tsx +8 -15
  81. package/{archive → src/components}/SocialButton/SocialButton.stories.tsx +2 -2
  82. package/{archive → src/components}/SocialButton/index.tsx +14 -22
  83. package/src/components/SplitCard/SplitCard.stories.tsx +34 -0
  84. package/src/components/SplitCard/index.tsx +132 -0
  85. package/src/components/Stars/Star.stories.tsx +18 -0
  86. package/src/components/Stars/index.tsx +38 -0
  87. package/src/components/Testimonial/Testimonial.stories.tsx +37 -0
  88. package/src/components/Testimonial/index.tsx +123 -0
  89. package/src/components/TextArea/TextArea.stories.tsx +24 -0
  90. package/src/components/TextArea/index.tsx +133 -0
  91. package/src/components/Timeline/Timeline.stories.tsx +45 -0
  92. package/src/components/Timeline/index.tsx +65 -0
  93. package/src/components/Tubestops/Tubestops.stories.tsx +22 -0
  94. package/src/components/Tubestops/index.tsx +132 -0
  95. package/src/components/Video/Video.stories.tsx +58 -0
  96. package/src/components/Video/assets/example.mp4 +0 -0
  97. package/src/components/Video/assets/example.ogv +0 -0
  98. package/src/components/Video/assets/example.webm +0 -0
  99. package/src/components/Video/index.tsx +92 -0
  100. package/src/components/index.ts +66 -112
  101. package/src/custom.d.ts +14 -0
  102. package/src/documentation/Colours.mdx +34 -34
  103. package/src/documentation/Introduction.mdx +9 -5
  104. package/src/documentation/assets/index.ts +3 -0
  105. package/src/documentation/assets/trepurComponentsLogo.svg +32 -0
  106. package/src/documentation/typography/Fonts/Fonts.stories.tsx +14 -0
  107. package/src/documentation/typography/Fonts/Fonts.tsx +73 -0
  108. package/src/styles/global.css +1 -1
  109. package/src/styles/themes/local.css +91 -39
  110. package/src/styles/themes/test.css +28 -0
  111. package/src/utils/screens.ts +1 -1
  112. package/tailwind/colors.ts +53 -385
  113. package/tailwind/preset.ts +4 -0
  114. package/tailwind.config.ts +12 -80
  115. package/tsconfig.json +8 -2
  116. package/archive/Breadcrumbs/Breadcrumbs.stories.tsx +0 -46
  117. package/archive/Breadcrumbs/index.tsx +0 -42
  118. package/archive/BreadcrumbsBordered/BreadcrumbsBordered.stories.tsx +0 -52
  119. package/archive/BreadcrumbsBordered/index.tsx +0 -44
  120. package/archive/BreadcrumbsItem/BreadcrumbsItem.stories.tsx +0 -40
  121. package/archive/BreadcrumbsItem/index.tsx +0 -149
  122. package/archive/Button/Button.stories.tsx +0 -150
  123. package/archive/Button/index.tsx +0 -111
  124. package/archive/Button/style.module.css +0 -76
  125. package/archive/Calendar/Calendar.stories.tsx +0 -82
  126. package/archive/Calendar/index.tsx +0 -76
  127. package/archive/Card/Card.stories.tsx +0 -75
  128. package/archive/Card/index.tsx +0 -102
  129. package/archive/Card/style.module.css +0 -75
  130. package/archive/CardWithTopImage/CardWithTopImage.stories.tsx +0 -50
  131. package/archive/CardWithTopImage/index.tsx +0 -39
  132. package/archive/CardWithTopImage/style.module.css +0 -11
  133. package/archive/Carousel/Carousel.stories.tsx +0 -451
  134. package/archive/Carousel/index.tsx +0 -388
  135. package/archive/Carousel/style.module.css +0 -99
  136. package/archive/CarouselThumbnail/CarouselThumbnail.stories.tsx +0 -350
  137. package/archive/CarouselThumbnail/index.tsx +0 -302
  138. package/archive/CarouselThumbnail/style.module.css +0 -67
  139. package/archive/Checkbox/Checkbox.stories.tsx +0 -34
  140. package/archive/Checkbox/index.tsx +0 -51
  141. package/archive/Checkbox/style.module.css +0 -15
  142. package/archive/Collapsible/Collapsible.stories.tsx +0 -67
  143. package/archive/Collapsible/index.tsx +0 -116
  144. package/archive/Collapsible/style.module.css +0 -47
  145. package/archive/Column/Column.stories.tsx +0 -89
  146. package/archive/Column/index.tsx +0 -119
  147. package/archive/Column/style.module.css +0 -151
  148. package/archive/ComponentWrapper/ComponentWrapper.stories.tsx +0 -40
  149. package/archive/ComponentWrapper/index.tsx +0 -55
  150. package/archive/ComponentWrapper/style.module.css +0 -40
  151. package/archive/Container/Container.stories.tsx +0 -40
  152. package/archive/Container/index.tsx +0 -24
  153. package/archive/Container/style.module.css +0 -4
  154. package/archive/Counter/Counter.stories.tsx +0 -19
  155. package/archive/Counter/index.tsx +0 -66
  156. package/archive/Counter/style.module.css +0 -19
  157. package/archive/DetailUpdater/DetailUpdater.stories.tsx +0 -96
  158. package/archive/DetailUpdater/style.module.css +0 -31
  159. package/archive/Dialog/Dialog.stories.tsx +0 -131
  160. package/archive/Dialog/index.tsx +0 -91
  161. package/archive/Dialog/style.module.css +0 -44
  162. package/archive/DropdownMenu/DropdownMenu.stories.tsx +0 -59
  163. package/archive/DropdownMenu/index.tsx +0 -51
  164. package/archive/DropdownMenu/style.module.css +0 -38
  165. package/archive/DynamicTextSection/DynamicTextSection.stories.tsx +0 -74
  166. package/archive/DynamicTextSection/index.tsx +0 -36
  167. package/archive/DynamicTextSection/style.module.css +0 -0
  168. package/archive/FileUploader/FileUploader.stories.tsx +0 -28
  169. package/archive/FileUploader/index.tsx +0 -135
  170. package/archive/FileUploader/style.module.css +0 -54
  171. package/archive/FilterItem/FilterItem.stories.tsx +0 -33
  172. package/archive/FilterItem/index.tsx +0 -101
  173. package/archive/FilterItem/style.module.css +0 -27
  174. package/archive/Footer/Footer.stories.tsx +0 -59
  175. package/archive/Footer/index.tsx +0 -50
  176. package/archive/Footer/style.module.css +0 -19
  177. package/archive/FooterNav/FooterNav.stories.tsx +0 -125
  178. package/archive/FooterNav/index.tsx +0 -57
  179. package/archive/FooterNav/style.module.css +0 -32
  180. package/archive/FooterNavItem/FooterNavItem.stories.tsx +0 -53
  181. package/archive/FooterNavItem/index.tsx +0 -80
  182. package/archive/FooterNavItem/style.module.css +0 -139
  183. package/archive/Form/index.tsx +0 -61
  184. package/archive/Form/style.module.css +0 -0
  185. package/archive/FyreCard/FyreCard.stories.tsx +0 -31
  186. package/archive/FyreCard/index.tsx +0 -52
  187. package/archive/FyreCard/style.module.css +0 -19
  188. package/archive/Greeting/Greeting.stories.tsx +0 -41
  189. package/archive/Greeting/index.tsx +0 -32
  190. package/archive/HamburgerIcon/HamburgerIcon.stories.tsx +0 -32
  191. package/archive/HamburgerIcon/index.tsx +0 -103
  192. package/archive/HamburgerIcon/style.module.css +0 -85
  193. package/archive/HorizontalLine/HorizontalLine.stories.tsx +0 -54
  194. package/archive/HorizontalLine/index.tsx +0 -40
  195. package/archive/HorizontalLine/style.module.css +0 -55
  196. package/archive/Icon/Icon.stories.tsx +0 -164
  197. package/archive/Icon/index.tsx +0 -115
  198. package/archive/Icon/style.module.css +0 -253
  199. package/archive/IconCard/IconCard.stories.tsx +0 -46
  200. package/archive/IconCard/index.tsx +0 -57
  201. package/archive/IconCard/style.module.css +0 -18
  202. package/archive/Image/Image.stories.tsx +0 -87
  203. package/archive/Image/index.tsx +0 -132
  204. package/archive/Image/style.module.css +0 -109
  205. package/archive/ImageInfo/ImageInfo.stories.tsx +0 -39
  206. package/archive/ImageInfo/index.tsx +0 -95
  207. package/archive/ImageInfo/style.module.css +0 -47
  208. package/archive/ImageLink/ImageLink.stories.tsx +0 -37
  209. package/archive/ImageLink/index.tsx +0 -49
  210. package/archive/ImageLink/style.module.css +0 -23
  211. package/archive/ImageLinkList/ImageLinkList.stories.tsx +0 -34
  212. package/archive/ImageLinkList/index.tsx +0 -33
  213. package/archive/ImageLinkList/style.module.css +0 -3
  214. package/archive/InformationIcon/InformationIcon.stories.tsx +0 -83
  215. package/archive/InformationIcon/index.tsx +0 -128
  216. package/archive/InformationIcon/style.module.css +0 -71
  217. package/archive/InformationIconBlock/InformationIconBlock.stories.tsx +0 -32
  218. package/archive/InformationIconBlock/index.tsx +0 -63
  219. package/archive/InformationIconBlock/style.module.css +0 -7
  220. package/archive/Input/Input.stories.tsx +0 -84
  221. package/archive/Input/index.tsx +0 -131
  222. package/archive/Input/style.module.css +0 -60
  223. package/archive/Jumbotron/Jumbotron.stories.tsx +0 -21
  224. package/archive/Jumbotron/index.tsx +0 -31
  225. package/archive/Jumbotron/style.module.css +0 -8
  226. package/archive/MenuButton/index.tsx +0 -82
  227. package/archive/MenuButton/style.module.css +0 -45
  228. package/archive/Modal/style.module.css +0 -35
  229. package/archive/NavItem/NavItem.stories.tsx +0 -90
  230. package/archive/NavItem/index.tsx +0 -65
  231. package/archive/NavItem/style.module.css +0 -71
  232. package/archive/NavOld/NavOld.stories.tsx +0 -193
  233. package/archive/NavOld/StickyNav.tsx +0 -191
  234. package/archive/NavOld/index.tsx +0 -273
  235. package/archive/NavOld/style.module.css +0 -156
  236. package/archive/NavTwo/Dropdown.tsx +0 -35
  237. package/archive/NavTwo/Nav.stories.tsx +0 -38
  238. package/archive/NavTwo/Sidebar.tsx +0 -34
  239. package/archive/NavTwo/StickyNav.tsx +0 -34
  240. package/archive/NavTwo/index.tsx +0 -45
  241. package/archive/NavTwo/style.module.css +0 -35
  242. package/archive/NewsCard/NewsCard.stories.tsx +0 -72
  243. package/archive/NewsCard/index.tsx +0 -57
  244. package/archive/NewsCard/style.module.css +0 -15
  245. package/archive/Pill/Pill.stories.tsx +0 -44
  246. package/archive/Pill/index.tsx +0 -64
  247. package/archive/Pill/style.module.css +0 -32
  248. package/archive/ProductCard/ProductCard.stories.tsx +0 -61
  249. package/archive/ProductCard/index.tsx +0 -111
  250. package/archive/ProductCard/style.module.css +0 -53
  251. package/archive/ProductCardV2/ProductCardV2.stories.tsx +0 -50
  252. package/archive/ProductCardV2/index.tsx +0 -119
  253. package/archive/ProductCardV2/style.module.css +0 -59
  254. package/archive/Proficiencies/Proficiencies.stories.tsx +0 -50
  255. package/archive/Proficiencies/index.tsx +0 -63
  256. package/archive/Proficiencies/style.module.css +0 -31
  257. package/archive/Profile/Profile.stories.tsx +0 -49
  258. package/archive/Profile/index.tsx +0 -103
  259. package/archive/Profile/style.module.css +0 -47
  260. package/archive/Row/Row.stories.tsx +0 -53
  261. package/archive/Row/index.tsx +0 -23
  262. package/archive/Row/style.module.css +0 -3
  263. package/archive/Search/style.module.css +0 -23
  264. package/archive/Select/style.module.css +0 -52
  265. package/archive/Showcase/index.tsx +0 -75
  266. package/archive/Showcase/style.module.css +0 -47
  267. package/archive/SideNav/style.module.css +0 -43
  268. package/archive/SocialBlock/SocialBlock.stories.tsx +0 -58
  269. package/archive/SocialBlock/index.tsx +0 -63
  270. package/archive/SocialButton/style.module.css +0 -77
  271. package/archive/StarRating/StarRating.stories.tsx +0 -23
  272. package/archive/StarRating/index.tsx +0 -71
  273. package/archive/Testimonial/Testimonial.stories.tsx +0 -110
  274. package/archive/Testimonial/index.tsx +0 -61
  275. package/archive/Testimonial/style.module.css +0 -27
  276. package/archive/TextAndTitle/TextAndTitle.stories.tsx +0 -70
  277. package/archive/TextAndTitle/index.tsx +0 -123
  278. package/archive/TextAndTitle/style.module.css +0 -75
  279. package/archive/TextArea/TextArea.stories.tsx +0 -55
  280. package/archive/TextArea/index.tsx +0 -125
  281. package/archive/TextArea/style.module.css +0 -60
  282. package/archive/Timeline/Timeline.stories.tsx +0 -92
  283. package/archive/Timeline/index.tsx +0 -254
  284. package/archive/Timeline/style.module.css +0 -134
  285. package/archive/TimelineV2/TimelineV2.stories.tsx +0 -95
  286. package/archive/TimelineV2/index.tsx +0 -70
  287. package/archive/TimelineV2/style.module.css +0 -28
  288. package/archive/Tubestops/Tubestops.stories.tsx +0 -42
  289. package/archive/Tubestops/index.tsx +0 -58
  290. package/archive/Tubestops/style.module.css +0 -54
  291. package/archive/UserIcon/UserIcon.stories.tsx +0 -52
  292. package/archive/UserIcon/index.tsx +0 -46
  293. package/archive/UserIcon/style.module.css +0 -19
  294. package/archive/Video/Video.stories.tsx +0 -23
  295. package/archive/Video/index.tsx +0 -47
  296. package/archive/theme.ts +0 -39
  297. package/archive/typography/Fonts/Fonts.stories.tsx +0 -14
  298. package/archive/typography/Fonts/Fonts.tsx +0 -181
  299. package/lib/components/Accordion/Accordion.stories.d.ts +0 -94
  300. package/lib/components/Accordion/index.d.ts +0 -8
  301. package/lib/components/Accordion/index.js +0 -15
  302. package/lib/components/AlertBar/AlertBar.stories.d.ts +0 -162
  303. package/lib/components/AlertBar/index.d.ts +0 -12
  304. package/lib/components/AlertBar/index.js +0 -49
  305. package/lib/components/Avatar/Avatar.stories.d.ts +0 -44
  306. package/lib/components/Avatar/index.d.ts +0 -4
  307. package/lib/components/index.d.ts +0 -4
  308. package/lib/index.d.ts +0 -1
  309. package/lib/index.js +0 -6
  310. package/lib/styles/global.css +0 -75
  311. package/lib/styles/themes/local.css +0 -40
  312. package/lib/styles/themes/palette.css +0 -131
  313. package/lib/tailwind/boxShadow.ts +0 -9
  314. package/lib/tailwind/colors.ts +0 -410
  315. package/lib/tailwind/container.ts +0 -11
  316. package/lib/tailwind/preset.ts +0 -88
  317. package/lib/tailwind/spacing.ts +0 -14
  318. package/lib/utils/controls.d.ts +0 -36
  319. package/lib/utils/matchMedia.d.ts +0 -2
  320. package/lib/utils/screens.d.ts +0 -7
  321. package/src/styles/themes/palette.css +0 -131
  322. package/svg.d.ts +0 -4
  323. /package/{archive → src/components}/Calendar/style.css +0 -0
  324. /package/{archive → src/components}/Checkbox/Checkbox.mdx +0 -0
  325. /package/{archive → src}/fonts/Sora/OFL.txt +0 -0
  326. /package/{archive → src}/fonts/Sora/README.txt +0 -0
  327. /package/{archive → src}/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  328. /package/{archive → src}/fonts/Sora/static/Sora-Bold.ttf +0 -0
  329. /package/{archive → src}/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  330. /package/{archive → src}/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  331. /package/{archive → src}/fonts/Sora/static/Sora-Light.ttf +0 -0
  332. /package/{archive → src}/fonts/Sora/static/Sora-Medium.ttf +0 -0
  333. /package/{archive → src}/fonts/Sora/static/Sora-Regular.ttf +0 -0
  334. /package/{archive → src}/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  335. /package/{archive → src}/fonts/Sora/static/Sora-Thin.ttf +0 -0
@@ -1,388 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import ComponentWrapper from '@components/ComponentWrapper';
4
- import Icon from '@components/Icon';
5
- import { type Colours } from '@utils/controls';
6
- import classNames from 'classnames';
7
- import 'keen-slider/keen-slider.min.css';
8
- import {
9
- useKeenSlider,
10
- type KeenSliderInstance,
11
- type KeenSliderHooks,
12
- type KeenSliderOptions,
13
- } from 'keen-slider/react';
14
-
15
-
16
-
17
- interface ArrowProps {
18
- visible?: boolean;
19
- left?: boolean;
20
- right?: boolean;
21
- disabled?: boolean;
22
- onClick?: any;
23
- colour?: Colours;
24
- bgColour?: Colours;
25
- hoverColour?: Colours;
26
- hoverBgColour?: Colours;
27
- }
28
-
29
- interface DotProps {
30
- id?: string;
31
- isActive?: boolean;
32
- visible?: boolean;
33
- onClick?: any;
34
- colour?: Colours;
35
- bgColour?: Colours;
36
- hoverColour?: Colours;
37
- hoverBgColour?: Colours;
38
-
39
- wrapperBgColour: Colours;
40
- }
41
-
42
- export interface Props {
43
- id?: string;
44
- className?: string;
45
- slideWrapperClassName?: string;
46
- title?: string;
47
- description?: string;
48
- bgColour?: Colours;
49
- breakpoints?: Record<
50
- string,
51
- Omit<KeenSliderOptions<{}, {}, KeenSliderHooks>, 'breakpoints'>
52
- >;
53
- defaultAnimation?: { duration?: number; easing?: (t: number) => number };
54
- disabled: boolean;
55
- drag?: boolean;
56
- dragSpeed?: number;
57
- initial?: number;
58
- loop?: boolean;
59
- mode?: 'snap' | 'free' | 'free-snap';
60
- range?: { align?: boolean; min?: number; max?: number };
61
- renderMode?: 'precision' | 'performance' | 'custom';
62
- rtl?: boolean;
63
- rubberband?: boolean;
64
- slides?: any[];
65
- vertical?: boolean;
66
- animationStarted?: (
67
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
68
- ) => void;
69
- animationStopped?: (
70
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
71
- ) => void;
72
- animationEnded?: (
73
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
74
- ) => void;
75
- created?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
76
- destroyed?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
77
- detailsChanged?: (
78
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
79
- ) => void;
80
- dragged?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
81
- dragStarted?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
82
- dragChecked?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
83
- dragEnded?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
84
- beforeOptionsChanged?: (
85
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
86
- ) => void;
87
- optionsChanged?: (
88
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
89
- ) => void;
90
- slideChanged?: boolean;
91
- updated?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
92
- perView?: number;
93
- spacing?: number;
94
- number?: number;
95
- origin?: number | 'auto' | 'center';
96
- arrows?: ArrowProps;
97
- dots?: DotProps;
98
- }
99
-
100
- const Carousel: React.FC<Props> = ({
101
- id,
102
- className,
103
- slideWrapperClassName,
104
- title,
105
- description,
106
- bgColour,
107
- breakpoints,
108
- defaultAnimation,
109
- disabled,
110
- drag,
111
- dragSpeed,
112
- initial,
113
- loop = true,
114
- mode = 'snap',
115
- range,
116
- renderMode,
117
- rtl,
118
- rubberband,
119
- slides,
120
- vertical,
121
- animationStarted,
122
- animationStopped,
123
- animationEnded,
124
- created,
125
- destroyed,
126
- detailsChanged,
127
- dragged,
128
- dragStarted,
129
- dragChecked,
130
- dragEnded,
131
- beforeOptionsChanged,
132
- optionsChanged,
133
- slideChanged,
134
- updated,
135
- perView = 1,
136
- spacing,
137
- number,
138
- origin,
139
- arrows,
140
- dots,
141
- }) => {
142
- const classList = classNames(className, 'theme-local');
143
- const [currentSlide, setCurrentSlide] = useState(0);
144
- const [loaded, setLoaded] = useState(false);
145
-
146
- function WheelControls(slider: any): void {
147
- let touchTimeout: any;
148
- let position: any;
149
- let wheelActive: boolean;
150
-
151
- function dispatch(e: any, name: string): void {
152
- position.x -= e.deltaX;
153
- position.y -= e.deltaY;
154
- slider.container.dispatchEvent(
155
- new CustomEvent(name, {
156
- detail: {
157
- x: position.x,
158
- y: position.y,
159
- },
160
- }),
161
- );
162
- }
163
-
164
- function wheelStart(e: any): void {
165
- position = {
166
- x: e.pageX,
167
- y: e.pageY,
168
- };
169
- dispatch(e, 'ksDragStart');
170
- }
171
-
172
- function wheel(e: any): void {
173
- dispatch(e, 'ksDrag');
174
- }
175
-
176
- function wheelEnd(e: any): void {
177
- dispatch(e, 'ksDragEnd');
178
- }
179
-
180
- function eventWheel(e: any): void {
181
- if (!wheelActive) {
182
- wheelStart(e);
183
- wheelActive = true;
184
- }
185
- wheel(e);
186
- clearTimeout(touchTimeout);
187
- touchTimeout = setTimeout(() => {
188
- wheelActive = false;
189
- wheelEnd(e);
190
- }, 50);
191
- }
192
-
193
- slider.on('created', () => {
194
- slider.container.addEventListener('wheel', eventWheel, {
195
- passive: true,
196
- });
197
- });
198
- }
199
-
200
- const [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>(
201
- {
202
- initial,
203
- breakpoints,
204
- defaultAnimation,
205
- disabled,
206
- drag,
207
- dragSpeed,
208
- loop,
209
- mode,
210
- range,
211
- renderMode,
212
- rtl,
213
- rubberband,
214
- vertical,
215
- slideChanged(slider) {
216
- setCurrentSlide(slider.track.details.rel);
217
- },
218
- // slideChanged: slideChanged,
219
- created() {
220
- setLoaded(true);
221
- },
222
- // created: created,
223
- animationStarted,
224
- animationStopped,
225
- animationEnded,
226
- destroyed,
227
- detailsChanged,
228
- dragged,
229
- dragStarted,
230
- dragChecked,
231
- dragEnded,
232
- beforeOptionsChanged,
233
- optionsChanged,
234
- updated,
235
- slides: {
236
- perView,
237
- spacing,
238
- origin,
239
- number,
240
- },
241
- },
242
- [WheelControls],
243
- );
244
-
245
- const onKeyDown = (e: any): void => {
246
- if (e.key === 'Tab') {
247
- instanceRef.current?.next();
248
- }
249
- };
250
-
251
- return (
252
- <ComponentWrapper
253
- id={id}
254
- className={classList}
255
- title={title}
256
- description={description}
257
- bgColour={bgColour}
258
- >
259
- <div
260
- onKeyDown={onKeyDown}
261
- className={classNames(
262
- classList,
263
- arrows?.visible === true && style.visibleArrows,
264
- style.classList,
265
- 'navigation-wrapper',
266
- )}
267
- >
268
- {arrows?.visible === true &&
269
- loaded &&
270
- instanceRef.current !== undefined && (
271
- <div className={style.arrowWrapper}>
272
- <Arrow
273
- left
274
- onClick={(e: any) => {
275
- e.stopPropagation() !== undefined ||
276
- instanceRef.current?.prev();
277
- }}
278
- disabled={currentSlide === 0}
279
- {...arrows}
280
- />
281
- </div>
282
- )}
283
- <div
284
- ref={sliderRef}
285
- className={classNames(
286
- style.slideWrapper,
287
- slideWrapperClassName,
288
- 'keen-slider',
289
- )}
290
- >
291
- {slides != null && slides}
292
- </div>
293
- {arrows?.visible === true &&
294
- loaded &&
295
- instanceRef.current !== undefined && (
296
- <div className={style.arrowWrapper}>
297
- <Arrow
298
- right
299
- onClick={(e: any) => {
300
- e.stopPropagation() !== undefined ||
301
- instanceRef.current?.next();
302
- }}
303
- disabled={
304
- currentSlide ===
305
- instanceRef?.current?.track?.details?.slides?.length
306
- }
307
- {...arrows}
308
- />
309
- </div>
310
- )}
311
- </div>
312
- {dots?.visible === true && loaded && instanceRef.current != null && (
313
- <div className={style.dotWrapper}>
314
- {[
315
- ...Array(
316
- instanceRef?.current?.track?.details?.slides?.length,
317
- ).keys(),
318
- ].map((idx, i) => {
319
- const numberOfSlides =
320
- instanceRef?.current?.track?.details?.slides?.length ?? 1;
321
- return (
322
- <Dot
323
- key={`dot_${i}`}
324
- isActive={
325
- !loop
326
- ? currentSlide === idx
327
- : currentSlide + perView <= numberOfSlides
328
- ? idx >= currentSlide && idx < currentSlide + perView
329
- : idx >= currentSlide ||
330
- currentSlide + perView - numberOfSlides - 1 >= idx
331
- }
332
- onClick={() => {
333
- instanceRef.current?.moveToIdx(idx);
334
- }}
335
- {...dots}
336
- wrapperBgColour={bgColour ?? 'white'}
337
- />
338
- );
339
- })}
340
- </div>
341
- )}
342
- </ComponentWrapper>
343
- );
344
- };
345
-
346
- function Arrow(props: ArrowProps): JSX.Element {
347
- return (
348
- <div className={style.arrowWrapper}>
349
- <a onClick={props?.onClick}>
350
- <Icon
351
- type={props?.left ? 'chevron-left' : 'chevron-right'}
352
- className={style.arrowIconClassList}
353
- size={3}
354
- rounded
355
- bgColour={props?.bgColour}
356
- colour={props?.colour}
357
- hoverBgColour={props?.hoverBgColour}
358
- hoverColour={props?.hoverColour}
359
- />
360
- </a>
361
- </div>
362
- );
363
- }
364
-
365
- function Dot(props: DotProps): JSX.Element {
366
- const bg = props?.wrapperBgColour ?? 'white';
367
- return (
368
- <button
369
- className={classNames(style.dotButtonClassList, style[bg])}
370
- type="button"
371
- onClick={props?.onClick}
372
- aria-label={`carousel-button${props.id ? `-${props.id}` : ''}`}
373
- >
374
- <Icon
375
- type="circle"
376
- className={style.dotIconClassList}
377
- size={2}
378
- rounded
379
- bgColour={props?.isActive ? props.hoverBgColour : props.bgColour}
380
- colour={props?.isActive ? props.hoverColour : props.colour}
381
- hoverBgColour={props?.hoverBgColour}
382
- hoverColour={props?.hoverColour}
383
- />
384
- </button>
385
- );
386
- }
387
-
388
- export default Carousel;
@@ -1,99 +0,0 @@
1
- .classList {
2
- @apply w-full;
3
- }
4
-
5
- .visibleArrows {
6
- @apply flex justify-between;
7
- }
8
-
9
- .slideWrapper {
10
- @apply w-full pb-12 pt-4;
11
- }
12
-
13
- .dotWrapper {
14
- @apply my-2 flex justify-center;
15
- }
16
-
17
- .dotButtonClassList {
18
- @apply border-transparent py-2;
19
- }
20
-
21
- .dotButtonClassList:focus {
22
- @apply border border-2;
23
- }
24
-
25
- .dotIconClassList {
26
- @apply mx-1;
27
- }
28
-
29
- .dotIconClassList:hover {
30
- @apply cursor-pointer;
31
- }
32
-
33
- .arrowWrapper {
34
- @apply my-auto;
35
- }
36
-
37
- .arrowIconClassList {
38
- @apply mx-auto;
39
- }
40
-
41
- .arrowIconClassList:hover {
42
- @apply cursor-pointer;
43
- }
44
-
45
- .primary {
46
- @apply border-white;
47
- }
48
-
49
- .white {
50
- @apply border-primary;
51
- }
52
-
53
- .grey {
54
- @apply border-primary;
55
- }
56
-
57
- .gold {
58
- @apply border-primary;
59
- }
60
-
61
- .facebook {
62
- @apply border-white;
63
- }
64
-
65
- .linkedin {
66
- @apply border-white;
67
- }
68
-
69
- .email {
70
- @apply border-white;
71
- }
72
-
73
- .instagram {
74
- @apply border-primary;
75
- }
76
-
77
- .github {
78
- @apply border-white;
79
- }
80
-
81
- .interactive-facebook {
82
- @apply border-primary;
83
- }
84
-
85
- .interactive-email {
86
- @apply border-primary;
87
- }
88
-
89
- .interactive-linkedin {
90
- @apply border-primary;
91
- }
92
-
93
- .interactive-instagram {
94
- @apply border-primary;
95
- }
96
-
97
- .interactive-github {
98
- @apply border-primary;
99
- }