trepur_components 2.3.9 → 2.3.11

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 (284) hide show
  1. package/lib/_virtual/react.js +4 -0
  2. package/lib/components/Accordion/Accordion.stories.d.ts +47 -0
  3. package/lib/components/Accordion/const.d.ts +31 -0
  4. package/lib/components/Accordion/index.d.ts +5 -0
  5. package/lib/components/Accordion/index.js +9 -0
  6. package/lib/components/AlertBar/AlertBar.stories.d.ts +25 -0
  7. package/lib/components/AlertBar/index.d.ts +15 -0
  8. package/lib/components/AlertBar/index.js +66 -0
  9. package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
  10. package/lib/components/Avatar/index.d.ts +3 -0
  11. package/lib/components/Breadcrumbs/Breadcrumbs.stories.d.ts +18 -0
  12. package/lib/components/Breadcrumbs/index.d.ts +15 -0
  13. package/lib/components/Breadcrumbs/index.js +49 -0
  14. package/lib/components/Button/Button.stories.d.ts +24 -0
  15. package/lib/components/Button/index.d.ts +14 -0
  16. package/lib/components/Button/index.js +43 -0
  17. package/lib/components/Calendar/Calendar.stories.d.ts +11 -0
  18. package/lib/components/Calendar/index.d.ts +14 -0
  19. package/lib/components/Calendar/index.js +49 -0
  20. package/lib/components/Calendar/style.css.js +1 -0
  21. package/lib/components/Card/Card.stories.d.ts +11 -0
  22. package/lib/components/Card/index.d.ts +2 -0
  23. package/lib/components/Card/index.js +25 -0
  24. package/lib/components/Carousel/Carousel.stories.d.ts +23 -0
  25. package/lib/components/Carousel/index.d.ts +70 -0
  26. package/lib/components/Carousel/index.js +159 -0
  27. package/lib/components/Carousel/utils.d.ts +1 -0
  28. package/lib/components/Carousel/utils.js +38 -0
  29. package/lib/components/CarouselThumbnail/CarouselThumbnail.stories.d.ts +22 -0
  30. package/lib/components/CarouselThumbnail/const.d.ts +1 -0
  31. package/lib/components/CarouselThumbnail/const.js +20 -0
  32. package/lib/components/CarouselThumbnail/index.d.ts +51 -0
  33. package/lib/components/CarouselThumbnail/index.js +74 -0
  34. package/lib/components/CarouselThumbnail/utils.d.ts +2 -0
  35. package/lib/components/CarouselThumbnail/utils.js +65 -0
  36. package/lib/components/Checkbox/Checkbox.stories.d.ts +17 -0
  37. package/lib/components/Checkbox/index.d.ts +11 -0
  38. package/lib/components/Checkbox/index.js +28 -0
  39. package/lib/components/Collapsible/Collapsible.stories.d.ts +57 -0
  40. package/lib/components/Collapsible/index.d.ts +19 -0
  41. package/lib/components/Collapsible/index.js +87 -0
  42. package/lib/components/Counter/Counter.stories.d.ts +17 -0
  43. package/lib/components/Counter/index.d.ts +14 -0
  44. package/lib/components/Counter/index.js +49 -0
  45. package/lib/components/DetailUpdater/DetailUpdater.stories.d.ts +20 -0
  46. package/lib/components/DetailUpdater/index.d.ts +18 -0
  47. package/lib/components/DetailUpdater/index.js +63 -0
  48. package/lib/components/Dialog/Dialog.stories.d.ts +15 -0
  49. package/lib/components/Dialog/index.d.ts +12 -0
  50. package/lib/components/Dialog/index.js +16 -0
  51. package/lib/components/Dropdown/Dropdown.stories.d.ts +17 -0
  52. package/lib/components/Dropdown/index.d.ts +13 -0
  53. package/lib/components/Dropdown/index.js +66 -0
  54. package/lib/components/Dropdown/utils.d.ts +1 -0
  55. package/lib/components/Dropdown/utils.js +14 -0
  56. package/lib/components/FileUploader/FilePreview.d.ts +8 -0
  57. package/lib/components/FileUploader/FileUploader.stories.d.ts +52 -0
  58. package/lib/components/FileUploader/index.d.ts +15 -0
  59. package/lib/components/Footer/Footer.stories.d.ts +19 -0
  60. package/lib/components/Footer/index.d.ts +16 -0
  61. package/lib/components/Footer/index.js +36 -0
  62. package/lib/components/FooterNav/FooterNav.stories.d.ts +22 -0
  63. package/lib/components/FooterNav/index.d.ts +15 -0
  64. package/lib/components/FooterNav/index.js +38 -0
  65. package/lib/components/Form/Form.stories.d.ts +117 -0
  66. package/lib/components/Form/index.d.ts +13 -0
  67. package/lib/components/Form/index.js +17 -0
  68. package/lib/components/Gallery/Gallery.stories.d.ts +16 -0
  69. package/lib/components/Gallery/index.d.ts +7 -0
  70. package/lib/components/Greeting/Greeting.stories.d.ts +13 -0
  71. package/lib/components/Greeting/index.d.ts +7 -0
  72. package/lib/components/Greeting/index.js +20 -0
  73. package/lib/components/HamburgerIcon/HamburgerIcon.stories.d.ts +10 -0
  74. package/lib/components/HamburgerIcon/index.d.ts +2 -0
  75. package/lib/components/HamburgerIcon/index.js +78 -0
  76. package/lib/components/Icon/Icon.stories.d.ts +16 -0
  77. package/lib/components/Icon/index.d.ts +10 -0
  78. package/lib/components/Icon/index.js +23 -0
  79. package/lib/components/Image/Image.stories.d.ts +13 -0
  80. package/lib/components/Image/index.d.ts +5 -0
  81. package/lib/components/Image/index.js +17 -0
  82. package/lib/components/ImageCard/ImageCard.stories.d.ts +19 -0
  83. package/lib/components/ImageCard/index.d.ts +11 -0
  84. package/lib/components/ImageCard/index.js +32 -0
  85. package/lib/components/Input/Input.stories.d.ts +22 -0
  86. package/lib/components/Input/index.d.ts +33 -0
  87. package/lib/components/Input/index.js +83 -0
  88. package/lib/components/MenuButton/MenuButton.stories.d.ts +76 -0
  89. package/lib/components/MenuButton/index.d.ts +14 -0
  90. package/lib/components/MenuButton/index.js +56 -0
  91. package/lib/components/Modal/Modal.stories.d.ts +67 -0
  92. package/lib/components/Modal/index.d.ts +10 -0
  93. package/lib/components/Modal/index.js +45 -0
  94. package/lib/components/Nav/Nav.stories.d.ts +31 -0
  95. package/lib/components/Nav/index.d.ts +20 -0
  96. package/lib/components/Nav/index.js +81 -0
  97. package/lib/components/NavItem/NavItem.stories.d.ts +17 -0
  98. package/lib/components/NavItem/index.d.ts +8 -0
  99. package/lib/components/NavItem/index.js +31 -0
  100. package/lib/components/Pill/Pill.stories.d.ts +22 -0
  101. package/lib/components/Pill/index.d.ts +17 -0
  102. package/lib/components/Pill/index.js +30 -0
  103. package/lib/components/Search/Search.stories.d.ts +86 -0
  104. package/lib/components/Search/index.d.ts +12 -0
  105. package/lib/components/Search/index.js +42 -0
  106. package/lib/components/Select/Select.stories.d.ts +56 -0
  107. package/lib/components/Select/index.d.ts +11 -0
  108. package/lib/components/Select/index.js +68 -0
  109. package/lib/components/Showcase/Showcase.stories.d.ts +55 -0
  110. package/lib/components/Showcase/index.d.ts +15 -0
  111. package/lib/components/SideNav/SideNav.stories.d.ts +80 -0
  112. package/lib/components/SideNav/index.d.ts +12 -0
  113. package/lib/components/SocialButton/SocialButton.stories.d.ts +130 -0
  114. package/lib/components/SocialButton/index.d.ts +12 -0
  115. package/lib/components/SplitCard/SplitCard.stories.d.ts +21 -0
  116. package/lib/components/SplitCard/index.d.ts +14 -0
  117. package/lib/components/Stars/Star.stories.d.ts +14 -0
  118. package/lib/components/Stars/index.d.ts +8 -0
  119. package/lib/components/Stars/index.js +22 -0
  120. package/lib/components/Testimonial/Testimonial.stories.d.ts +21 -0
  121. package/lib/components/Testimonial/index.d.ts +13 -0
  122. package/lib/components/Testimonial/index.js +42 -0
  123. package/lib/components/TextArea/TextArea.stories.d.ts +21 -0
  124. package/lib/components/TextArea/index.d.ts +33 -0
  125. package/lib/components/TextArea/index.js +76 -0
  126. package/lib/components/Timeline/Timeline.stories.d.ts +21 -0
  127. package/lib/components/Timeline/index.d.ts +11 -0
  128. package/lib/components/Timeline/index.js +31 -0
  129. package/lib/components/Tubestops/Tubestops.stories.d.ts +19 -0
  130. package/lib/components/Tubestops/index.d.ts +15 -0
  131. package/lib/components/Tubestops/index.js +77 -0
  132. package/lib/components/Video/Video.stories.d.ts +23 -0
  133. package/lib/components/Video/index.d.ts +18 -0
  134. package/lib/components/Video/index.js +32 -0
  135. package/{src/components/index.ts → lib/components/index.d.ts} +35 -71
  136. package/lib/documentation/assets/index.d.ts +3 -0
  137. package/lib/documentation/typography/Fonts/Fonts.d.ts +2 -0
  138. package/lib/documentation/typography/Fonts/Fonts.stories.d.ts +10 -0
  139. package/lib/index.js +72 -0
  140. package/lib/node_modules/keen-slider/keen-slider.min.css.js +1 -0
  141. package/lib/node_modules/keen-slider/react.js +591 -0
  142. package/lib/style.css +1 -0
  143. package/lib/styles/global.css +19 -0
  144. package/{src → lib}/styles/themes/local.css +9 -1
  145. package/lib/styles/themes/penrithmrt.css +101 -0
  146. package/{tailwind → lib/tailwind}/colors.ts +12 -1
  147. package/lib/utils/controls.d.ts +36 -0
  148. package/lib/utils/matchMedia.d.ts +2 -0
  149. package/lib/utils/screens.d.ts +7 -0
  150. package/package.json +4 -1
  151. package/.eslintrc.cjs +0 -72
  152. package/.husky/pre-commit +0 -4
  153. package/.prettierignore +0 -10
  154. package/.prettierrc.json +0 -22
  155. package/postcss.config.js +0 -8
  156. package/src/components/Accordion/Accordion.stories.tsx +0 -39
  157. package/src/components/Accordion/const.tsx +0 -34
  158. package/src/components/Accordion/index.tsx +0 -22
  159. package/src/components/AlertBar/AlertBar.stories.tsx +0 -89
  160. package/src/components/AlertBar/index.tsx +0 -82
  161. package/src/components/Avatar/Avatar.stories.tsx +0 -14
  162. package/src/components/Avatar/index.tsx +0 -492
  163. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -29
  164. package/src/components/Breadcrumbs/index.tsx +0 -89
  165. package/src/components/Button/Button.stories.tsx +0 -24
  166. package/src/components/Button/index.tsx +0 -59
  167. package/src/components/Calendar/Calendar.stories.tsx +0 -21
  168. package/src/components/Calendar/index.tsx +0 -92
  169. package/src/components/Calendar/style.css +0 -233
  170. package/src/components/Card/Card.stories.tsx +0 -14
  171. package/src/components/Card/index.tsx +0 -39
  172. package/src/components/Carousel/Carousel.stories.tsx +0 -44
  173. package/src/components/Carousel/index.tsx +0 -301
  174. package/src/components/Carousel/utils.ts +0 -53
  175. package/src/components/CarouselThumbnail/CarouselThumbnail.stories.tsx +0 -29
  176. package/src/components/CarouselThumbnail/const.ts +0 -17
  177. package/src/components/CarouselThumbnail/index.tsx +0 -169
  178. package/src/components/CarouselThumbnail/utils.ts +0 -87
  179. package/src/components/Checkbox/Checkbox.mdx +0 -33
  180. package/src/components/Checkbox/Checkbox.stories.tsx +0 -27
  181. package/src/components/Checkbox/index.tsx +0 -44
  182. package/src/components/Collapsible/Collapsible.stories.tsx +0 -67
  183. package/src/components/Collapsible/index.tsx +0 -169
  184. package/src/components/Counter/Counter.stories.tsx +0 -20
  185. package/src/components/Counter/index.tsx +0 -98
  186. package/src/components/DetailUpdater/DetailUpdater.stories.tsx +0 -37
  187. package/src/components/DetailUpdater/index.tsx +0 -107
  188. package/src/components/Dialog/Dialog.stories.tsx +0 -65
  189. package/src/components/Dialog/index.tsx +0 -29
  190. package/src/components/Dropdown/Dropdown.stories.tsx +0 -22
  191. package/src/components/Dropdown/index.tsx +0 -117
  192. package/src/components/Dropdown/utils.ts +0 -15
  193. package/src/components/FileUploader/FilePreview.tsx +0 -45
  194. package/src/components/FileUploader/FileUploader.stories.tsx +0 -28
  195. package/src/components/FileUploader/index.tsx +0 -177
  196. package/src/components/Footer/Footer.stories.tsx +0 -47
  197. package/src/components/Footer/index.tsx +0 -96
  198. package/src/components/FooterNav/FooterNav.stories.tsx +0 -32
  199. package/src/components/FooterNav/index.tsx +0 -75
  200. package/src/components/Form/Form.stories.tsx +0 -86
  201. package/src/components/Form/index.tsx +0 -41
  202. package/src/components/Gallery/Gallery.stories.tsx +0 -39
  203. package/src/components/Gallery/index.tsx +0 -31
  204. package/src/components/Greeting/Greeting.stories.tsx +0 -16
  205. package/src/components/Greeting/index.tsx +0 -49
  206. package/src/components/HamburgerIcon/HamburgerIcon.stories.tsx +0 -14
  207. package/src/components/HamburgerIcon/index.tsx +0 -75
  208. package/src/components/Icon/Icon.stories.tsx +0 -41
  209. package/src/components/Icon/index.tsx +0 -33
  210. package/src/components/Image/Image.stories.tsx +0 -17
  211. package/src/components/Image/index.tsx +0 -25
  212. package/src/components/ImageCard/ImageCard.stories.tsx +0 -29
  213. package/src/components/ImageCard/index.tsx +0 -75
  214. package/src/components/Input/Input.stories.tsx +0 -25
  215. package/src/components/Input/index.tsx +0 -139
  216. package/src/components/MenuButton/MenuButton.stories.tsx +0 -46
  217. package/src/components/MenuButton/index.tsx +0 -66
  218. package/src/components/Modal/Modal.stories.tsx +0 -82
  219. package/src/components/Modal/index.tsx +0 -71
  220. package/src/components/Nav/Nav.stories.tsx +0 -80
  221. package/src/components/Nav/index.tsx +0 -171
  222. package/src/components/NavItem/NavItem.stories.tsx +0 -17
  223. package/src/components/NavItem/index.tsx +0 -39
  224. package/src/components/Pill/Pill.stories.tsx +0 -51
  225. package/src/components/Pill/index.tsx +0 -69
  226. package/src/components/Search/Search.stories.tsx +0 -63
  227. package/src/components/Search/index.tsx +0 -64
  228. package/src/components/Select/Select.stories.tsx +0 -55
  229. package/src/components/Select/index.tsx +0 -97
  230. package/src/components/Showcase/Showcase.stories.tsx +0 -31
  231. package/src/components/Showcase/index.tsx +0 -62
  232. package/src/components/SideNav/SideNav.stories.tsx +0 -50
  233. package/src/components/SideNav/index.tsx +0 -39
  234. package/src/components/SocialButton/SocialButton.stories.tsx +0 -88
  235. package/src/components/SocialButton/index.tsx +0 -63
  236. package/src/components/SplitCard/SplitCard.stories.tsx +0 -34
  237. package/src/components/SplitCard/index.tsx +0 -132
  238. package/src/components/Stars/Star.stories.tsx +0 -18
  239. package/src/components/Stars/index.tsx +0 -38
  240. package/src/components/Testimonial/Testimonial.stories.tsx +0 -37
  241. package/src/components/Testimonial/index.tsx +0 -123
  242. package/src/components/TextArea/TextArea.stories.tsx +0 -24
  243. package/src/components/TextArea/index.tsx +0 -133
  244. package/src/components/Timeline/Timeline.stories.tsx +0 -45
  245. package/src/components/Timeline/index.tsx +0 -65
  246. package/src/components/Tubestops/Tubestops.stories.tsx +0 -22
  247. package/src/components/Tubestops/index.tsx +0 -132
  248. package/src/components/Video/Video.stories.tsx +0 -58
  249. package/src/components/Video/assets/example.mp4 +0 -0
  250. package/src/components/Video/assets/example.ogv +0 -0
  251. package/src/components/Video/assets/example.webm +0 -0
  252. package/src/components/Video/index.tsx +0 -92
  253. package/src/custom.d.ts +0 -14
  254. package/src/documentation/Colours.mdx +0 -192
  255. package/src/documentation/Introduction.mdx +0 -13
  256. package/src/documentation/assets/index.ts +0 -3
  257. package/src/documentation/assets/trepurComponentsLogo.svg +0 -32
  258. package/src/documentation/typography/Fonts/Fonts.stories.tsx +0 -14
  259. package/src/documentation/typography/Fonts/Fonts.tsx +0 -73
  260. package/src/fonts/Sora/OFL.txt +0 -93
  261. package/src/fonts/Sora/README.txt +0 -70
  262. package/src/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  263. package/src/fonts/Sora/static/Sora-Bold.ttf +0 -0
  264. package/src/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  265. package/src/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  266. package/src/fonts/Sora/static/Sora-Light.ttf +0 -0
  267. package/src/fonts/Sora/static/Sora-Medium.ttf +0 -0
  268. package/src/fonts/Sora/static/Sora-Regular.ttf +0 -0
  269. package/src/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  270. package/src/fonts/Sora/static/Sora-Thin.ttf +0 -0
  271. package/src/styles/global.css +0 -75
  272. package/src/styles/themes/test.css +0 -28
  273. package/src/utils/controls.ts +0 -44
  274. package/src/utils/matchMedia.ts +0 -9
  275. package/src/utils/screens.ts +0 -7
  276. package/tailwind.config.ts +0 -13
  277. package/tsconfig.json +0 -49
  278. package/tsconfig.node.json +0 -12
  279. package/vite.config.mjs +0 -64
  280. /package/{src/index.ts → lib/index.d.ts} +0 -0
  281. /package/{tailwind → lib/tailwind}/boxShadow.ts +0 -0
  282. /package/{tailwind → lib/tailwind}/container.ts +0 -0
  283. /package/{tailwind → lib/tailwind}/preset.ts +0 -0
  284. /package/{tailwind → lib/tailwind}/spacing.ts +0 -0
@@ -1,301 +0,0 @@
1
- import {
2
- createContext,
3
- forwardRef,
4
- HTMLAttributes,
5
- useContext,
6
- useMemo,
7
- useState,
8
- } from 'react';
9
-
10
- import { Icon } from '@components/Icon';
11
- import {
12
- faChevronLeft,
13
- faChevronRight,
14
- faCircle,
15
- } from '@fortawesome/fontawesome-free-solid';
16
- import { Colours } from '@utils/controls';
17
- import clsx from 'clsx';
18
- import 'keen-slider/keen-slider.min.css';
19
- import {
20
- useKeenSlider,
21
- KeenSliderInstance,
22
- KeenSliderHooks,
23
- KeenSliderOptions,
24
- } from 'keen-slider/react';
25
-
26
- import { WheelControls } from './utils';
27
-
28
- export interface ArrowProps {
29
- rightArrow?: boolean;
30
- visible?: boolean;
31
- disabled?: boolean;
32
- onClick?: any;
33
- }
34
-
35
- export interface DotProps {
36
- isActive?: boolean;
37
- visible?: boolean;
38
- onClick?: any;
39
- }
40
-
41
- export interface CarouselContextProps {
42
- sliderRef?: any;
43
- instanceRef?: any;
44
- currentSlide?: number;
45
- slideWrapperClassName?: string;
46
- breakpoints?: Record<
47
- string,
48
- Omit<KeenSliderOptions<{}, {}, KeenSliderHooks>, 'breakpoints'>
49
- >;
50
- defaultAnimation?: { duration?: number; easing?: (t: number) => number };
51
- disabled: boolean;
52
- drag?: boolean;
53
- dragSpeed?: number;
54
- initial?: number;
55
- loop?: boolean;
56
- mode?: 'snap' | 'free' | 'free-snap';
57
- range?: { align?: boolean; min?: number; max?: number };
58
- renderMode?: 'precision' | 'performance' | 'custom';
59
- rtl?: boolean;
60
- rubberband?: boolean;
61
- slides?: any[];
62
- vertical?: boolean;
63
- animationStarted?: (
64
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
65
- ) => void;
66
- animationStopped?: (
67
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
68
- ) => void;
69
- animationEnded?: (
70
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
71
- ) => void;
72
- created?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
73
- destroyed?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
74
- detailsChanged?: (
75
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
76
- ) => void;
77
- dragged?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
78
- dragStarted?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
79
- dragChecked?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
80
- dragEnded?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
81
- beforeOptionsChanged?: (
82
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
83
- ) => void;
84
- optionsChanged?: (
85
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
86
- ) => void;
87
- slideChanged?: boolean;
88
- updated?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
89
- perView?: number;
90
- spacing?: number;
91
- number?: number;
92
- origin?: number | 'auto' | 'center';
93
- arrows?: ArrowProps;
94
- dots?: DotProps;
95
- }
96
-
97
- const CarouselContext = createContext<CarouselContextProps | null>(null);
98
-
99
- const CarouselComponent = forwardRef<
100
- HTMLDivElement,
101
- HTMLAttributes<HTMLDivElement> & CarouselContextProps
102
- >(
103
- (
104
- {
105
- breakpoints,
106
- children,
107
- className,
108
- loop,
109
- perView,
110
- rubberband,
111
- spacing,
112
- ...props
113
- },
114
- ref,
115
- ) => {
116
- const [currentSlide, setCurrentSlide] = useState(1);
117
- const [loaded, setLoaded] = useState(false);
118
- const [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>(
119
- {
120
- breakpoints,
121
- loop,
122
- rubberband,
123
- slideChanged(slider) {
124
- setCurrentSlide(slider.track.details.rel);
125
- },
126
- created() {
127
- setLoaded(true);
128
- },
129
- slides: {
130
- spacing,
131
- perView,
132
- },
133
- },
134
- [WheelControls],
135
- );
136
-
137
- const state = useMemo(
138
- () => ({
139
- sliderRef,
140
- instanceRef,
141
- currentSlide,
142
- setCurrentSlide,
143
- perView,
144
- ...props,
145
- }),
146
- [
147
- props,
148
- sliderRef,
149
- instanceRef.current,
150
- currentSlide,
151
- setCurrentSlide,
152
- perView,
153
- loaded,
154
- ],
155
- );
156
-
157
- const onKeyDown = (e: any): void => {
158
- if (e.key === 'Tab') {
159
- instanceRef.current?.next();
160
- }
161
- };
162
-
163
- return (
164
- <CarouselContext.Provider value={state}>
165
- <div
166
- onKeyDown={onKeyDown}
167
- className={clsx('navigation-wrapper w-full', className)}
168
- ref={ref}
169
- {...props}
170
- >
171
- {children}
172
- </div>
173
- </CarouselContext.Provider>
174
- );
175
- },
176
- );
177
-
178
- const CarouselContent = forwardRef<
179
- HTMLDivElement,
180
- HTMLAttributes<HTMLDivElement>
181
- >(({ children, className, ...props }, ref) => {
182
- return (
183
- <div
184
- ref={ref}
185
- className={clsx(
186
- 'navigation-wrapper flex w-full justify-between gap-4',
187
- className,
188
- )}
189
- {...props}
190
- >
191
- {children}
192
- </div>
193
- );
194
- });
195
-
196
- const CarouselSlides = forwardRef<
197
- HTMLDivElement,
198
- HTMLAttributes<HTMLDivElement> & { rightArrow?: boolean }
199
- >(({ className, children, rightArrow = false, ...props }) => {
200
- const { sliderRef } = useContext(CarouselContext) || {};
201
- return (
202
- <div
203
- ref={sliderRef}
204
- className={clsx('keen-slider w-full pb-4', className)}
205
- {...props}
206
- >
207
- {children}
208
- </div>
209
- );
210
- });
211
-
212
- const CarouselArrow = forwardRef<
213
- HTMLDivElement,
214
- HTMLAttributes<HTMLDivElement> & ArrowProps
215
- >(({ className, children, rightArrow = false, ...props }, ref) => {
216
- const { instanceRef } = useContext(CarouselContext) || {};
217
- return (
218
- <div
219
- ref={ref}
220
- className={clsx(
221
- 'my-auto text-carousel-arrow-default hover:cursor-pointer hover:text-carousel-arrow-hover',
222
- className,
223
- )}
224
- onClick={(e: any) => {
225
- rightArrow
226
- ? e.stopPropagation() !== undefined || instanceRef.current?.next()
227
- : e.stopPropagation() !== undefined || instanceRef.current?.prev();
228
- }}
229
- {...props}
230
- >
231
- <a>
232
- <Icon icon={rightArrow ? faChevronRight : faChevronLeft} size="3x" />
233
- </a>
234
- </div>
235
- );
236
- });
237
-
238
- const CarouselDots = forwardRef<
239
- HTMLButtonElement,
240
- HTMLAttributes<HTMLButtonElement> & DotProps
241
- >(({ className, children, onClick, ...props }, ref) => {
242
- const {
243
- instanceRef,
244
- loop,
245
- currentSlide = 1,
246
- perView = 1,
247
- } = useContext(CarouselContext) || {};
248
- const length = instanceRef?.current?.track?.details?.slides?.length;
249
- return (
250
- <div className="flex justify-center">
251
- {[...Array(length).keys()].map((idx) => {
252
- const numberOfSlides =
253
- instanceRef?.current?.track?.details?.slides?.length ?? 1;
254
-
255
- const isActive = !loop
256
- ? currentSlide === idx
257
- : currentSlide + perView <= numberOfSlides
258
- ? idx >= currentSlide && idx < currentSlide + perView
259
- : idx >= currentSlide ||
260
- currentSlide + perView - numberOfSlides - 1 >= idx;
261
-
262
- return (
263
- <button
264
- ref={ref}
265
- type="button"
266
- onClick={() => {
267
- instanceRef.current?.moveToIdx(idx);
268
- }}
269
- aria-label={`carousel-button${props.id ? `-${props.id}` : ''}`}
270
- >
271
- <Icon
272
- className={clsx(
273
- 'hover:text-carousel-dots-hover',
274
- isActive
275
- ? 'text-carousel-dots-active'
276
- : 'text-carousel-dots-default',
277
- )}
278
- icon={faCircle}
279
- size="2x"
280
- />
281
- </button>
282
- );
283
- })}
284
- </div>
285
- );
286
- });
287
-
288
- CarouselComponent.displayName = 'Carousel';
289
- CarouselContent.displayName = 'Carousel.Content';
290
- CarouselArrow.displayName = 'Carousel.Arrow';
291
- CarouselDots.displayName = 'Carousel.Dots';
292
- CarouselSlides.displayName = 'Carousel.Slides';
293
-
294
- const Carousel = Object.assign(CarouselComponent, {
295
- Content: CarouselContent,
296
- Arrow: CarouselArrow,
297
- Dots: CarouselDots,
298
- Slides: CarouselSlides,
299
- });
300
-
301
- export { Carousel };
@@ -1,53 +0,0 @@
1
- export function WheelControls(slider: any): void {
2
- let touchTimeout: any;
3
- let position: any;
4
- let wheelActive: boolean;
5
-
6
- function dispatch(e: any, name: string): void {
7
- position.x -= e.deltaX;
8
- position.y -= e.deltaY;
9
- slider.container.dispatchEvent(
10
- new CustomEvent(name, {
11
- detail: {
12
- x: position.x,
13
- y: position.y,
14
- },
15
- }),
16
- );
17
- }
18
-
19
- function wheelStart(e: any): void {
20
- position = {
21
- x: e.pageX,
22
- y: e.pageY,
23
- };
24
- dispatch(e, 'ksDragStart');
25
- }
26
-
27
- function wheel(e: any): void {
28
- dispatch(e, 'ksDrag');
29
- }
30
-
31
- function wheelEnd(e: any): void {
32
- dispatch(e, 'ksDragEnd');
33
- }
34
-
35
- function eventWheel(e: any): void {
36
- if (!wheelActive) {
37
- wheelStart(e);
38
- wheelActive = true;
39
- }
40
- wheel(e);
41
- clearTimeout(touchTimeout);
42
- touchTimeout = setTimeout(() => {
43
- wheelActive = false;
44
- wheelEnd(e);
45
- }, 50);
46
- }
47
-
48
- slider.on('created', () => {
49
- slider.container.addEventListener('wheel', eventWheel, {
50
- passive: true,
51
- });
52
- });
53
- }
@@ -1,29 +0,0 @@
1
- import { CarouselThumbnail } from './';
2
- import { Meta, StoryObj } from '@storybook/react';
3
-
4
- const meta = {
5
- title: 'V2Components/CarouselThumbnail',
6
- component: CarouselThumbnail,
7
- args: {
8
- children: [
9
- <CarouselThumbnail.Slides>
10
- <CarouselThumbnail.Slide src="https://picsum.photos/500/500" />
11
- <CarouselThumbnail.Slide src="https://picsum.photos/501/500" />
12
- <CarouselThumbnail.Slide src="https://picsum.photos/502/500" />
13
- <CarouselThumbnail.Slide src="https://picsum.photos/503/500" />
14
- <CarouselThumbnail.Slide src="https://picsum.photos/504/500" />
15
- <CarouselThumbnail.Slide src="https://picsum.photos/505/500" />
16
- </CarouselThumbnail.Slides>,
17
- ],
18
- loop: true,
19
- drag: true,
20
- rubberband: true,
21
- spacing: 16,
22
- },
23
- } satisfies Meta<typeof CarouselThumbnail>;
24
-
25
- export default meta;
26
-
27
- type Story = StoryObj<typeof CarouselThumbnail>;
28
-
29
- export const Default: Story = {};
@@ -1,17 +0,0 @@
1
- export const breakpointsToRender: any = {
2
- '(min-width: 320px)': {
3
- slides: { perView: 1, spacing: 25 },
4
- },
5
- '(max-width: 500px)': {
6
- slides: { perView: 1, spacing: 25 },
7
- },
8
- '(min-width: 768px)': {
9
- slides: { perView: 1, spacing: 25 },
10
- },
11
- '(min-width: 1024px)': {
12
- slides: { perView: 2, spacing: 20 },
13
- },
14
- '(min-width: 1280px)': {
15
- slides: { perView: 2, spacing: 10 },
16
- },
17
- };
@@ -1,169 +0,0 @@
1
- import {
2
- createContext,
3
- forwardRef,
4
- HTMLAttributes,
5
- useContext,
6
- useMemo,
7
- } from 'react';
8
-
9
- import clsx from 'clsx';
10
- import 'keen-slider/keen-slider.min.css';
11
- import {
12
- useKeenSlider,
13
- KeenSliderInstance,
14
- KeenSliderHooks,
15
- KeenSliderOptions,
16
- } from 'keen-slider/react';
17
-
18
- import { breakpointsToRender } from './const';
19
- import { ThumbnailPlugin, WheelControls } from './utils';
20
-
21
- export interface CarouselThumbnailContextProps {
22
- slideWrapperClassName?: string;
23
- breakpoints?: Record<
24
- string,
25
- Omit<KeenSliderOptions<{}, {}, KeenSliderHooks>, 'breakpoints'>
26
- >;
27
- defaultAnimation?: { duration?: number; easing?: (t: number) => number };
28
- disabled?: boolean;
29
- drag?: boolean;
30
- dragSpeed?: number;
31
- initial?: number;
32
- loop?: boolean;
33
- mode?: 'snap' | 'free' | 'free-snap';
34
- range?: { align?: boolean; min?: number; max?: number };
35
- renderMode?: 'precision' | 'performance' | 'custom';
36
- rtl?: boolean;
37
- rubberband?: boolean;
38
- slides?: any[];
39
- vertical?: boolean;
40
- animationStarted?: (
41
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
42
- ) => void;
43
- animationStopped?: (
44
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
45
- ) => void;
46
- animationEnded?: (
47
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
48
- ) => void;
49
- created?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
50
- destroyed?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
51
- detailsChanged?: (
52
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
53
- ) => void;
54
- dragged?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
55
- dragStarted?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
56
- dragChecked?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
57
- dragEnded?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
58
- beforeOptionsChanged?: (
59
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
60
- ) => void;
61
- optionsChanged?: (
62
- slider: KeenSliderInstance<{}, {}, KeenSliderHooks>,
63
- ) => void;
64
- slideChanged?: boolean;
65
- updated?: (slider: KeenSliderInstance<{}, {}, KeenSliderHooks>) => void;
66
- spacing?: number;
67
- number?: number;
68
- origin?: number | 'auto' | 'center';
69
- }
70
-
71
- const CarouselThumbnailContext =
72
- createContext<CarouselThumbnailContextProps | null>(null);
73
-
74
- const CarouselThumbnailComponent = forwardRef<
75
- HTMLDivElement,
76
- HTMLAttributes<HTMLDivElement> & CarouselThumbnailContextProps
77
- >(({ children, className, ...props }, ref) => {
78
- const state = useMemo(
79
- () => ({
80
- ...props,
81
- }),
82
- [props],
83
- );
84
-
85
- return (
86
- <CarouselThumbnailContext.Provider value={state}>
87
- <div
88
- ref={ref}
89
- className={clsx('navigation-wrapper w-full', className)}
90
- {...props}
91
- >
92
- {children}
93
- </div>
94
- </CarouselThumbnailContext.Provider>
95
- );
96
- });
97
-
98
- const CarouselThumbnailSlides = forwardRef<
99
- HTMLDivElement,
100
- HTMLAttributes<HTMLDivElement>
101
- >(({ className, children }) => {
102
- const { rubberband, loop, ...props } =
103
- useContext(CarouselThumbnailContext) || {};
104
-
105
- const [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>(
106
- {
107
- breakpoints: breakpointsToRender,
108
- loop,
109
- rubberband,
110
- },
111
- [WheelControls],
112
- );
113
-
114
- const [thumbnailRef] = useKeenSlider(
115
- {
116
- initial: 0,
117
- slides: {
118
- perView: 4,
119
- spacing: 10,
120
- },
121
- },
122
- [ThumbnailPlugin(instanceRef)],
123
- );
124
-
125
- return (
126
- <>
127
- <div
128
- ref={sliderRef}
129
- className={clsx(
130
- 'keen-slider h-96 w-full rounded-t-2xl pb-4',
131
- className,
132
- )}
133
- {...props}
134
- >
135
- {children}
136
- </div>
137
- <div>
138
- <div ref={thumbnailRef} className={'keen-slider thumbnail h-24 w-16'}>
139
- {children}
140
- </div>
141
- </div>
142
- </>
143
- );
144
- });
145
-
146
- const CarouselThumbnailSlide = forwardRef<
147
- HTMLImageElement,
148
- HTMLAttributes<HTMLImageElement> & { src: string }
149
- >(({ src, ...props }) => {
150
- return (
151
- <img
152
- className={`keen-slider__slide rounded-t-2xl object-cover`}
153
- src={src}
154
- {...props}
155
- />
156
- );
157
- });
158
-
159
- CarouselThumbnailComponent.displayName = 'CarouselThumbnail';
160
- CarouselThumbnailSlides.displayName = 'CarouselThumbnail.Slides';
161
-
162
- CarouselThumbnailSlide.displayName = 'CarouselThumbnail.Slide';
163
-
164
- const CarouselThumbnail = Object.assign(CarouselThumbnailComponent, {
165
- Slides: CarouselThumbnailSlides,
166
- Slide: CarouselThumbnailSlide,
167
- });
168
-
169
- export { CarouselThumbnail };
@@ -1,87 +0,0 @@
1
- export function WheelControls(slider: any): void {
2
- let touchTimeout: any;
3
- let position: any;
4
- let wheelActive: boolean;
5
-
6
- function dispatch(e: any, name: string): void {
7
- position.x -= e.deltaX;
8
- position.y -= e.deltaY;
9
- slider.container.dispatchEvent(
10
- new CustomEvent(name, {
11
- detail: {
12
- x: position.x,
13
- y: position.y,
14
- },
15
- }),
16
- );
17
- }
18
-
19
- function wheelStart(e: any): void {
20
- position = {
21
- x: e.pageX,
22
- y: e.pageY,
23
- };
24
- dispatch(e, 'ksDragStart');
25
- }
26
-
27
- function wheel(e: any): void {
28
- dispatch(e, 'ksDrag');
29
- }
30
-
31
- function wheelEnd(e: any): void {
32
- dispatch(e, 'ksDragEnd');
33
- }
34
-
35
- function eventWheel(e: any): void {
36
- if (!wheelActive) {
37
- wheelStart(e);
38
- wheelActive = true;
39
- }
40
- wheel(e);
41
- clearTimeout(touchTimeout);
42
- touchTimeout = setTimeout(() => {
43
- wheelActive = false;
44
- wheelEnd(e);
45
- }, 50);
46
- }
47
-
48
- slider.on('created', () => {
49
- slider.container.addEventListener('wheel', eventWheel, {
50
- passive: true,
51
- });
52
- });
53
- }
54
-
55
- export function ThumbnailPlugin(mainRef: any) {
56
- return (slider: any) => {
57
- function removeActive(): void {
58
- slider.slides.forEach((slide: any) => {
59
- slide.classList.remove('active');
60
- });
61
- }
62
-
63
- function addActive(idx: number): void {
64
- slider.slides[idx].classList.add('active');
65
- }
66
-
67
- function addClickEvents(): void {
68
- slider.slides.forEach((slide: any, idx: number) => {
69
- slide.addEventListener('click', () => {
70
- if (mainRef.current) mainRef.current.moveToIdx(idx);
71
- });
72
- });
73
- }
74
-
75
- slider.on('created', () => {
76
- if (!mainRef.current) return;
77
- addActive(slider.track.details.rel);
78
- addClickEvents();
79
- mainRef.current.on('animationStarted', (main: any) => {
80
- removeActive();
81
- const next = main.animator.targetIdx || 0;
82
- addActive(main.track.absToRel(next));
83
- slider.moveToIdx(Math.min(slider.track.details.maxIdx, next));
84
- });
85
- });
86
- };
87
- }
@@ -1,33 +0,0 @@
1
- {/* Checkbox.mdx */}
2
-
3
- import { Meta, Primary, Controls, Story } from '@storybook/blocks';
4
-
5
- import * as CheckboxStories from './Checkbox.stories';
6
-
7
- <Meta of={CheckboxStories} />
8
-
9
- # Checkbox
10
-
11
- A checkbox is an interactive component with and optional label.
12
-
13
- It is able to display two states to the end user.
14
-
15
- The state of the checkbox can toggled by clicking on the component.
16
-
17
- <Primary />
18
-
19
- ## Props
20
-
21
- <Controls />
22
-
23
- ## Variants
24
-
25
- A checkbox can exist in two different states:
26
-
27
- ### Checked
28
-
29
- <Story of={CheckboxStories.Checked} />
30
-
31
- ### Unchecked
32
-
33
- <Story of={CheckboxStories.Unchecked} />