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,44 +0,0 @@
1
- .dialog {
2
- @apply rounded-xl bg-white text-ink;
3
- @apply mx-auto w-full p-6;
4
- max-width: 608px;
5
- }
6
-
7
- @screen md {
8
- .dialog {
9
- width: 608px;
10
- }
11
- }
12
-
13
- .headingWrapper {
14
- @apply relative pb-2;
15
- }
16
-
17
- .dismissText {
18
- @apply absolute right-0 top-0 cursor-pointer;
19
- @apply text-sm font-regular;
20
- }
21
-
22
- .title {
23
- @apply text-md font-regular;
24
- }
25
-
26
- .titlePadding {
27
- @apply pr-64 md:pr-80;
28
- }
29
-
30
- .paragraph {
31
- @apply pt-1 font-light;
32
- }
33
-
34
- .buttonWrapper {
35
- @apply flex flex-wrap pt-6 md:flex-nowrap;
36
- }
37
-
38
- .fullWidth {
39
- @apply w-full;
40
- }
41
-
42
- .cta2Btn {
43
- @apply mt-2 w-full md:ml-6 md:mt-0;
44
- }
@@ -1,59 +0,0 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { idAndClassName } from '@utils/controls';
4
-
5
- import DropdownMenu from '.';
6
-
7
- const meta = {
8
- title: 'Components/Dropdown Menu',
9
- component: DropdownMenu,
10
- argTypes: {
11
- ...idAndClassName,
12
- backgroundColour: {
13
- type: { name: 'string', required: false },
14
- options: ['primary', 'secondary', 'white', 'black', 'gold'],
15
- description: 'The background colour of the component',
16
- table: {
17
- type: { summary: 'string' },
18
- },
19
- defaultValue: 'primary',
20
- control: 'select',
21
- },
22
-
23
- menuItems: {
24
- description: 'The items to show in the menu',
25
- control: 'array',
26
- table: {
27
- type: { summary: 'array' },
28
- },
29
- },
30
- },
31
- args: {
32
- backgroundColour: 'white',
33
- onClick: action('clicked'),
34
- menuItems: [
35
- {
36
- name: 'Messages',
37
- href: '#',
38
- },
39
- {
40
- name: 'Notifications',
41
- href: '#',
42
- },
43
- {
44
- name: 'Trips',
45
- href: '#',
46
- },
47
- {
48
- name: 'Wishlists',
49
- href: '#',
50
- },
51
- ],
52
- },
53
- };
54
-
55
- export default meta;
56
-
57
- type Story = StoryObj<typeof meta>;
58
-
59
- export const Default: Story = {};
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
-
3
- import { type Colours } from '@utils/controls';
4
- import classNames from 'classnames';
5
-
6
-
7
-
8
- export interface Props {
9
- id?: string;
10
- className?: string;
11
- backgroundColour?: Colours;
12
-
13
- menuItems: Array<{ name: string; href: string }>;
14
- onClick?: React.MouseEventHandler;
15
- }
16
-
17
- const DropdownMenu = ({
18
- id,
19
- className,
20
- backgroundColour = 'white',
21
- menuItems = [],
22
- onClick,
23
- }: Props): JSX.Element => {
24
- const classList = classNames(
25
- className,
26
- style.classList,
27
- style[backgroundColour],
28
- 'theme-local',
29
- );
30
-
31
- if (!menuItems) return <></>;
32
-
33
- return (
34
- <div id={id} className={classList}>
35
- {menuItems?.map((item, i) => {
36
- return (
37
- <a
38
- key={i}
39
- href={item.href}
40
- onClick={(e) => onClick?.(e)}
41
- className={style.menuItem}
42
- >
43
- {item.name}
44
- </a>
45
- );
46
- })}
47
- </div>
48
- );
49
- };
50
-
51
- export default DropdownMenu;
@@ -1,38 +0,0 @@
1
- .classList {
2
- width: 250px;
3
- @apply flex flex-col;
4
- @apply mt-2 rounded-2xl py-4 drop-shadow-lg;
5
- @apply absolute right-10;
6
- }
7
-
8
- .menuItem {
9
- @apply px-4 py-2 text-ink hover:bg-lightest-grey;
10
- }
11
-
12
- .primary {
13
- @apply bg-primary text-white;
14
- }
15
- .secondary {
16
- @apply bg-secondary text-white;
17
- }
18
- .white {
19
- @apply bg-white text-black;
20
- }
21
- .grey {
22
- @apply bg-lightest-grey text-black;
23
- }
24
- .black {
25
- @apply bg-black text-white;
26
- }
27
- .success {
28
- @apply bg-success text-white;
29
- }
30
- .error {
31
- @apply bg-error text-white;
32
- }
33
- .facebook {
34
- @apply bg-facebook text-white;
35
- }
36
- .gold {
37
- @apply bg-gold text-white;
38
- }
@@ -1,74 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { idAndClassName } from '@utils/controls';
3
-
4
- import DynamicTextSection from '.';
5
- import Icon from '../Icon';
6
-
7
- const meta = {
8
- title: 'Components/DynamicTextSection',
9
- component: DynamicTextSection,
10
- argTypes: {
11
- ...idAndClassName,
12
- children: {
13
- description: 'The colour of the component',
14
- table: {
15
- type: { summary: 'string' },
16
- defaultValue: { summary: 'undefined' },
17
- },
18
- },
19
- topLine: {
20
- description: 'Shows a top line',
21
- control: 'boolean',
22
- table: {
23
- type: { summary: 'boolean' },
24
- defaultValue: { summary: 'false' },
25
- },
26
- defaultValue: 'false',
27
- },
28
- bottomLine: {
29
- description: 'Shows a bottom line',
30
- control: 'boolean',
31
- table: {
32
- type: { summary: 'boolean' },
33
- defaultValue: { summary: 'false' },
34
- },
35
- defaultValue: 'false',
36
- },
37
- middleLine: {
38
- description: `Shows a middle line, middle lines exist only at the bottom
39
- of each component and should be used only when creating a list of
40
- dynamic text section components`,
41
- control: 'boolean',
42
- table: {
43
- type: { summary: 'boolean' },
44
- defaultValue: { summary: 'false' },
45
- },
46
- defaultValue: 'false',
47
- },
48
- },
49
- args: {
50
- topLine: true,
51
- bottomLine: true,
52
- middleLine: false,
53
- children: [
54
- <div key="1" className="flex">
55
- <Icon type="heart" hollow bgColour="white" />
56
- <p>First Child</p>
57
- </div>,
58
- <div key="2" className="flex">
59
- <Icon type="star" hollow bgColour="white" />
60
- <p>Second Child</p>
61
- </div>,
62
- <div key="3" className="flex">
63
- <Icon type="moon" hollow bgColour="white" />
64
- <p>Third Child</p>
65
- </div>,
66
- ],
67
- },
68
- };
69
-
70
- export default meta;
71
-
72
- type Story = StoryObj<typeof meta>;
73
-
74
- export const Default: Story = {};
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
-
3
- import HorizontalLine from '@components/HorizontalLine';
4
- import classNames from 'classnames';
5
-
6
- export interface Props {
7
- id?: string;
8
- className?: string;
9
-
10
- children: React.ReactNode;
11
- topLine?: boolean;
12
- bottomLine?: boolean;
13
- middleLine?: boolean;
14
- }
15
-
16
- const DynamicTextSection = ({
17
- id,
18
- className,
19
- children,
20
- topLine = false,
21
- bottomLine = false,
22
- middleLine = false,
23
- }: Props): JSX.Element => {
24
- const classList = classNames(className, 'theme-local');
25
-
26
- return (
27
- <div id={id} className={classList}>
28
- {topLine && <HorizontalLine colour="grey" topLine />}
29
- {children}
30
- {bottomLine && <HorizontalLine colour="grey" bottomLine />}
31
- {middleLine && <HorizontalLine colour="grey" middleLine />}
32
- </div>
33
- );
34
- };
35
-
36
- export default DynamicTextSection;
File without changes
@@ -1,28 +0,0 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { idAndClassName } from '@utils/controls';
4
-
5
- import FileUploader from '.';
6
-
7
- const meta = {
8
- title: 'Components/FileUploader',
9
- component: FileUploader,
10
- parameters: {},
11
- argTypes: {
12
- ...idAndClassName,
13
- },
14
- args: {
15
- ctaText: 'You can select multiple Files',
16
- text: 'or drag & drop your files here',
17
- imageUrl: 'https://picsum.photos/500/300',
18
- onDrop: (files) => {
19
- action('files:')(files[0].name);
20
- },
21
- },
22
- };
23
-
24
- export default meta;
25
-
26
- type Story = StoryObj<typeof meta>;
27
-
28
- export const Default: Story = {};
@@ -1,135 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import Image from '@components/Image';
4
- import classNames from 'classnames';
5
-
6
- import FilePreview from './FilePreview';
7
-
8
-
9
- interface Props {
10
- id?: string;
11
- className?: string;
12
- ctaText: string;
13
- text?: string;
14
-
15
- imageUrl?: string;
16
- onDrop?: ([]) => void;
17
- }
18
-
19
- const FileUploader: React.FC<Props> = ({
20
- id,
21
- className,
22
- ctaText,
23
- text,
24
-
25
- imageUrl,
26
- onDrop,
27
- }) => {
28
- const [inDropZone, setInDropZone] = useState(false);
29
- const [fileList, setFileList] = useState<any>([]);
30
-
31
- const classList = classNames(
32
- {
33
- [style.inDropZone]: inDropZone,
34
- },
35
- className,
36
- style.dropzone,
37
- 'theme-local',
38
- );
39
-
40
- const handleDragEnter = (e: any): void => {
41
- e.preventDefault();
42
- e.stopPropagation();
43
- setInDropZone(true);
44
- };
45
-
46
- const handleDragLeave = (e: any): void => {
47
- e.preventDefault();
48
- e.stopPropagation();
49
- setInDropZone(false);
50
- };
51
-
52
- const handleDragOver = (e: any): void => {
53
- e.preventDefault();
54
- e.stopPropagation();
55
- setInDropZone(true);
56
- };
57
-
58
- const handleDrop = (e: any): void => {
59
- e.preventDefault();
60
- e.stopPropagation();
61
-
62
- let files = [...e.dataTransfer.files];
63
-
64
- if (files?.length > 0) {
65
- const existingFiles = fileList?.fileList?.map((f: any) => f.name);
66
- files = files.filter((f) => !existingFiles?.includes(f.name));
67
-
68
- setFileList(files);
69
- setInDropZone(false);
70
- }
71
- onDrop?.(files);
72
- };
73
-
74
- const handleFileSelect = (e: any): void => {
75
- let files = [...e.target.files];
76
-
77
- if (files?.length > 0) {
78
- const existingFiles = fileList?.fileList?.map((f: any) => f.name);
79
- files = files.filter((f) => !existingFiles?.includes(f.name));
80
- setFileList(files);
81
- onDrop?.(files);
82
- }
83
- };
84
-
85
- const handleDismiss = (fileName: string): void => {
86
- setFileList(fileList.filter((file: any) => file.name !== fileName));
87
- };
88
-
89
- return (
90
- <div
91
- id={id}
92
- className={classList}
93
- onDragEnter={(e) => {
94
- handleDragEnter(e);
95
- }}
96
- onDragOver={(e) => {
97
- handleDragOver(e);
98
- }}
99
- onDragLeave={(e) => {
100
- handleDragLeave(e);
101
- }}
102
- onDrop={(e) => {
103
- handleDrop(e);
104
- }}
105
- >
106
- {imageUrl && (
107
- <Image src={imageUrl} altText="upload" height={5} width={5} />
108
- )}
109
-
110
- <input
111
- id="fileSelect"
112
- type="file"
113
- multiple
114
- className={style.files}
115
- onChange={(e) => {
116
- handleFileSelect(e);
117
- }}
118
- />
119
-
120
- <label className={style.label} htmlFor="fileSelect">
121
- {ctaText}
122
- </label>
123
-
124
- <h3 className={style.uploadMessage}>{text}</h3>
125
- <FilePreview
126
- fileData={fileList}
127
- onDismiss={(e) => {
128
- handleDismiss(e);
129
- }}
130
- />
131
- </div>
132
- );
133
- };
134
-
135
- export default FileUploader;
@@ -1,54 +0,0 @@
1
- .dropzone {
2
- @apply flex flex-col items-center justify-center;
3
- @apply rounded-2xl border-4 border-dashed border-light-grey py-8;
4
- }
5
-
6
- .active {
7
- @apply border-4 border-dashed;
8
- }
9
-
10
- .uploadMessage h3 {
11
- @apply mt-8;
12
- }
13
-
14
- .files {
15
- @apply absolute h-px w-px overflow-hidden border-none p-0;
16
- @apply whitespace-nowrap;
17
- }
18
-
19
- .files + label {
20
- @apply mb-2 mt-4 inline-block cursor-pointer text-center;
21
- }
22
-
23
- .label {
24
- @apply rounded-2xl border-2 border-primary bg-primary px-4 py-1 text-white;
25
- @apply hover:bg-white hover:text-primary;
26
- }
27
-
28
- .uploadBtn {
29
- @apply m-2 w-auto cursor-pointer rounded-2xl text-center;
30
- }
31
-
32
- .fileList {
33
- @apply flex w-full flex-wrap px-8 pt-4;
34
- }
35
-
36
- .file {
37
- @apply mx-2 rounded-2xl border bg-secondary text-white;
38
- @apply cursor-pointer hover:bg-primary;
39
- }
40
-
41
- .nameWrapper {
42
- @apply flex w-full justify-between px-4 py-1;
43
- }
44
-
45
- .name {
46
- }
47
-
48
- .dismiss {
49
- @apply ml-2 cursor-pointer;
50
- }
51
-
52
- .inDropZone {
53
- @apply bg-lightest-grey;
54
- }
@@ -1,33 +0,0 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { idAndClassName } from '@utils/controls';
4
-
5
- import FilterItem from '.';
6
-
7
- const meta = {
8
- title: 'Components/FilterItem',
9
- component: FilterItem,
10
- parameters: {},
11
- argTypes: {
12
- ...idAndClassName,
13
-
14
- title: {
15
- description: '',
16
- control: 'text',
17
- table: {
18
- category: '',
19
- },
20
- },
21
- },
22
- args: {
23
- title: 'This is a title',
24
- filters: ['filter 1', 'filter 2', 'filter 3', 'filter 4', 'filter 5'],
25
- onClick: action('clicked'),
26
- },
27
- };
28
-
29
- export default meta;
30
-
31
- type Story = StoryObj<typeof meta>;
32
-
33
- export const Default: Story = {};
@@ -1,101 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
-
3
- import Checkbox from '@components/Checkbox';
4
- import Icon from '@components/Icon';
5
- import classNames from 'classnames';
6
-
7
-
8
-
9
- export interface Props {
10
- id?: string;
11
- className?: string;
12
- title?: string;
13
- filters?: string[];
14
- onClick?: () => void;
15
- }
16
-
17
- const FilterItem = ({
18
- id,
19
- className,
20
- title,
21
- filters,
22
- onClick,
23
- }: Props): JSX.Element => {
24
- const [expanded, setExpanded] = useState(false);
25
-
26
- useEffect(() => {
27
- const coll = document.getElementsByClassName('FilterItem');
28
- let i: number;
29
-
30
- for (i = 0; i < coll.length; i++) {
31
- coll[i].addEventListener('click', function (this: any, err: any) {
32
- const content = this.nextElementSibling;
33
-
34
- const scrollHeight: string = content.scrollHeight.toString();
35
- if (content.style.maxHeight === '0px') {
36
- content.style.maxHeight = `${scrollHeight}px`;
37
- } else {
38
- content.style.maxHeight = '0px';
39
- }
40
- });
41
- }
42
- });
43
-
44
- const classList = classNames(
45
- className,
46
- style.classList,
47
- 'transition-opactiy theme-local',
48
- );
49
-
50
- const contentWrapperClassList = classNames(
51
- {
52
- [style.expanded]: expanded,
53
- [style.collapsed]: !expanded,
54
- },
55
- style.contentWrapperClassList,
56
- );
57
-
58
- const expandItem = (e: any): void => {
59
- const content = e.currentTarget.nextElementSibling;
60
- const scrollHeight: string = content.scrollHeight.toString();
61
- if (!expanded) {
62
- content.style.maxHeight = `${scrollHeight}px`;
63
- } else {
64
- content.style.maxHeight = '0px';
65
- }
66
- setExpanded(!expanded);
67
- };
68
-
69
- return (
70
- <div id={id} className={classList}>
71
- <div
72
- onClick={(e) => {
73
- expandItem(e);
74
- }}
75
- className={style.headingClassList}
76
- >
77
- <h4>{title}</h4>
78
- <Icon
79
- type={expanded ? 'chevron-up' : 'chevron-down'}
80
- colour="black"
81
- bgColour="white"
82
- hoverColour="black"
83
- hoverBgColour="white"
84
- />
85
- </div>
86
- <div className={contentWrapperClassList}>
87
- <ul>
88
- {filters?.map((filter, i) => {
89
- return (
90
- <li className={style.li} key={`filter_${i}`}>
91
- <Checkbox label={filter} onClick={onClick} />
92
- </li>
93
- );
94
- })}
95
- </ul>
96
- </div>
97
- </div>
98
- );
99
- };
100
-
101
- export default FilterItem;
@@ -1,27 +0,0 @@
1
- .classList {
2
- @apply duration-300;
3
- }
4
-
5
- .headingClassList {
6
- @apply flex w-full justify-between border-b px-6 py-3;
7
- }
8
-
9
- .contentWrapperClassList {
10
- @apply w-auto overflow-hidden px-4;
11
- }
12
-
13
- .childrenClassList {
14
- @apply w-full pr-8 text-right;
15
- }
16
-
17
- .expanded {
18
- @apply my-2 max-h-max;
19
- }
20
-
21
- .collapsed {
22
- @apply max-h-0;
23
- }
24
-
25
- .li {
26
- @apply py-1;
27
- }