trepur_components 2.3.8 → 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 (424) hide show
  1. package/package.json +3 -2
  2. package/src/components/Accordion/Accordion.stories.tsx +23 -100
  3. package/src/components/Accordion/const.tsx +34 -0
  4. package/src/components/Accordion/index.tsx +18 -17
  5. package/src/components/AlertBar/AlertBar.stories.tsx +79 -85
  6. package/src/components/AlertBar/index.tsx +69 -100
  7. package/src/components/Avatar/Avatar.stories.tsx +3 -8
  8. package/src/components/Avatar/index.tsx +31 -31
  9. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +17 -34
  10. package/src/components/Breadcrumbs/index.tsx +78 -29
  11. package/src/components/Button/Button.stories.tsx +11 -137
  12. package/src/components/Button/index.tsx +47 -92
  13. package/src/components/Calendar/Calendar.stories.tsx +12 -73
  14. package/src/components/Calendar/index.tsx +54 -34
  15. package/src/components/Card/Card.stories.tsx +3 -64
  16. package/src/components/Card/index.tsx +23 -80
  17. package/src/components/Carousel/Carousel.stories.tsx +32 -439
  18. package/src/components/Carousel/index.tsx +205 -286
  19. package/src/components/Carousel/utils.ts +53 -0
  20. package/src/components/CarouselThumbnail/CarouselThumbnail.stories.tsx +16 -337
  21. package/src/components/CarouselThumbnail/const.ts +17 -0
  22. package/src/components/CarouselThumbnail/index.tsx +92 -216
  23. package/src/components/CarouselThumbnail/utils.ts +87 -0
  24. package/src/components/Checkbox/Checkbox.stories.tsx +12 -19
  25. package/src/components/Checkbox/index.tsx +37 -34
  26. package/src/components/Collapsible/Collapsible.stories.tsx +50 -50
  27. package/src/components/Collapsible/index.tsx +151 -110
  28. package/src/components/Counter/Counter.stories.tsx +10 -9
  29. package/src/components/Counter/index.tsx +81 -25
  30. package/src/components/DetailUpdater/DetailUpdater.stories.tsx +11 -69
  31. package/src/components/DetailUpdater/index.tsx +7 -8
  32. package/src/components/Dialog/Dialog.stories.tsx +13 -78
  33. package/src/components/Dialog/index.tsx +5 -69
  34. package/src/components/Dropdown/Dropdown.stories.tsx +22 -0
  35. package/src/components/Dropdown/index.tsx +117 -0
  36. package/src/components/Dropdown/utils.ts +15 -0
  37. package/src/components/FileUploader/FilePreview.tsx +2 -2
  38. package/src/components/FileUploader/FileUploader.stories.tsx +10 -8
  39. package/src/components/FileUploader/index.tsx +113 -68
  40. package/src/components/Footer/Footer.stories.tsx +38 -50
  41. package/src/components/Footer/index.tsx +84 -36
  42. package/src/components/FooterNav/FooterNav.stories.tsx +14 -104
  43. package/src/components/FooterNav/index.tsx +71 -45
  44. package/src/components/Form/Form.stories.tsx +9 -9
  45. package/src/components/Form/index.tsx +10 -15
  46. package/src/components/Gallery/Gallery.stories.tsx +39 -0
  47. package/src/components/Gallery/index.tsx +31 -0
  48. package/src/components/Greeting/Greeting.stories.tsx +6 -31
  49. package/src/components/Greeting/index.tsx +44 -25
  50. package/src/components/HamburgerIcon/HamburgerIcon.stories.tsx +3 -21
  51. package/src/components/HamburgerIcon/index.tsx +40 -62
  52. package/src/components/Icon/Icon.stories.tsx +30 -11
  53. package/src/components/Icon/index.tsx +28 -20
  54. package/src/components/Image/Image.stories.tsx +5 -75
  55. package/src/components/Image/index.tsx +17 -119
  56. package/src/components/ImageCard/ImageCard.stories.tsx +29 -0
  57. package/src/components/ImageCard/index.tsx +75 -0
  58. package/src/components/Input/Input.stories.tsx +12 -71
  59. package/src/components/Input/index.tsx +107 -98
  60. package/src/components/MenuButton/MenuButton.stories.tsx +5 -5
  61. package/src/components/MenuButton/index.tsx +4 -4
  62. package/src/components/Modal/Modal.stories.tsx +7 -7
  63. package/src/components/Modal/index.tsx +4 -4
  64. package/src/components/Nav/Nav.stories.tsx +80 -0
  65. package/src/components/Nav/index.tsx +171 -0
  66. package/src/components/NavItem/NavItem.stories.tsx +7 -80
  67. package/src/components/NavItem/index.tsx +34 -38
  68. package/src/components/Pill/Pill.stories.tsx +42 -35
  69. package/src/components/Pill/index.tsx +64 -49
  70. package/src/components/Search/Search.stories.tsx +8 -8
  71. package/src/components/Search/index.tsx +3 -3
  72. package/src/components/Select/Select.stories.tsx +5 -5
  73. package/src/components/Select/index.tsx +8 -9
  74. package/src/components/Showcase/Showcase.stories.tsx +3 -3
  75. package/src/components/Showcase/index.tsx +12 -19
  76. package/src/components/SideNav/SideNav.stories.tsx +7 -7
  77. package/src/components/SideNav/index.tsx +2 -2
  78. package/src/components/SocialButton/SocialButton.stories.tsx +11 -11
  79. package/src/components/SocialButton/index.tsx +6 -7
  80. package/src/components/SplitCard/SplitCard.stories.tsx +34 -0
  81. package/src/components/SplitCard/index.tsx +132 -0
  82. package/src/components/Stars/Star.stories.tsx +18 -0
  83. package/src/components/Stars/index.tsx +38 -0
  84. package/src/components/Testimonial/Testimonial.stories.tsx +25 -97
  85. package/src/components/Testimonial/index.tsx +121 -53
  86. package/src/components/TextArea/TextArea.stories.tsx +11 -42
  87. package/src/components/TextArea/index.tsx +104 -95
  88. package/src/components/Timeline/Timeline.stories.tsx +32 -79
  89. package/src/components/Timeline/index.tsx +55 -246
  90. package/src/components/Tubestops/Tubestops.stories.tsx +10 -30
  91. package/src/components/Tubestops/index.tsx +125 -47
  92. package/src/components/Video/Video.stories.tsx +47 -12
  93. package/src/components/Video/assets/example.mp4 +0 -0
  94. package/src/components/Video/assets/example.ogv +0 -0
  95. package/src/components/Video/assets/example.webm +0 -0
  96. package/src/components/Video/index.tsx +83 -36
  97. package/src/components/index.ts +7 -53
  98. package/src/custom.d.ts +14 -0
  99. package/src/documentation/Colours.mdx +33 -33
  100. package/src/documentation/Introduction.mdx +9 -5
  101. package/src/documentation/assets/index.ts +3 -0
  102. package/src/documentation/assets/trepurComponentsLogo.svg +32 -0
  103. package/src/{components → documentation}/typography/Fonts/Fonts.stories.tsx +1 -1
  104. package/src/{components → documentation}/typography/Fonts/Fonts.tsx +20 -21
  105. package/src/styles/global.css +1 -1
  106. package/src/styles/themes/local.css +61 -9
  107. package/src/styles/themes/test.css +28 -0
  108. package/src/utils/screens.ts +1 -1
  109. package/tailwind/colors.ts +53 -385
  110. package/tailwind/preset.ts +4 -0
  111. package/tailwind.config.ts +12 -80
  112. package/archive/theme.ts +0 -39
  113. package/lib/_virtual/react.js +0 -4
  114. package/lib/components/Accordion/Accordion.stories.d.ts +0 -95
  115. package/lib/components/Accordion/index.d.ts +0 -6
  116. package/lib/components/Accordion/index.js +0 -6
  117. package/lib/components/AlertBar/AlertBar.stories.d.ts +0 -163
  118. package/lib/components/AlertBar/index.d.ts +0 -12
  119. package/lib/components/AlertBar/index.js +0 -49
  120. package/lib/components/Avatar/Avatar.stories.d.ts +0 -44
  121. package/lib/components/Avatar/index.d.ts +0 -3
  122. package/lib/components/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -62
  123. package/lib/components/Breadcrumbs/index.d.ts +0 -9
  124. package/lib/components/Breadcrumbs/index.js +0 -12
  125. package/lib/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.d.ts +0 -67
  126. package/lib/components/BreadcrumbsBordered/index.d.ts +0 -6
  127. package/lib/components/BreadcrumbsBordered/index.js +0 -28
  128. package/lib/components/BreadcrumbsItem/BreadcrumbsItem.stories.d.ts +0 -74
  129. package/lib/components/BreadcrumbsItem/index.d.ts +0 -10
  130. package/lib/components/BreadcrumbsItem/index.js +0 -117
  131. package/lib/components/Button/Button.stories.d.ts +0 -192
  132. package/lib/components/Button/index.d.ts +0 -19
  133. package/lib/components/Button/index.js +0 -66
  134. package/lib/components/Calendar/Calendar.stories.d.ts +0 -136
  135. package/lib/components/Calendar/index.d.ts +0 -15
  136. package/lib/components/Calendar/index.js +0 -46
  137. package/lib/components/Calendar/style.css.js +0 -1
  138. package/lib/components/Card/Card.stories.d.ts +0 -108
  139. package/lib/components/Card/index.d.ts +0 -17
  140. package/lib/components/Card/index.js +0 -51
  141. package/lib/components/CardWithTopImage/CardWithTopImage.stories.d.ts +0 -83
  142. package/lib/components/CardWithTopImage/index.d.ts +0 -9
  143. package/lib/components/CardWithTopImage/index.js +0 -28
  144. package/lib/components/Carousel/Carousel.stories.d.ts +0 -562
  145. package/lib/components/Carousel/index.d.ts +0 -77
  146. package/lib/components/Carousel/index.js +0 -248
  147. package/lib/components/CarouselThumbnail/CarouselThumbnail.stories.d.ts +0 -546
  148. package/lib/components/CarouselThumbnail/index.d.ts +0 -50
  149. package/lib/components/CarouselThumbnail/index.js +0 -205
  150. package/lib/components/Checkbox/Checkbox.stories.d.ts +0 -52
  151. package/lib/components/Checkbox/index.d.ts +0 -7
  152. package/lib/components/Checkbox/index.js +0 -31
  153. package/lib/components/Collapsible/Collapsible.stories.d.ts +0 -82
  154. package/lib/components/Collapsible/index.d.ts +0 -12
  155. package/lib/components/Collapsible/index.js +0 -88
  156. package/lib/components/Column/Column.stories.d.ts +0 -116
  157. package/lib/components/Column/index.d.ts +0 -10
  158. package/lib/components/Column/index.js +0 -8
  159. package/lib/components/ComponentWrapper/ComponentWrapper.stories.d.ts +0 -77
  160. package/lib/components/ComponentWrapper/index.d.ts +0 -14
  161. package/lib/components/ComponentWrapper/index.js +0 -27
  162. package/lib/components/Container/Container.stories.d.ts +0 -75
  163. package/lib/components/Container/index.d.ts +0 -7
  164. package/lib/components/Container/index.js +0 -12
  165. package/lib/components/Counter/Counter.stories.d.ts +0 -45
  166. package/lib/components/Counter/index.d.ts +0 -6
  167. package/lib/components/Counter/index.js +0 -31
  168. package/lib/components/DetailUpdater/DetailUpdater.stories.d.ts +0 -104
  169. package/lib/components/DetailUpdater/index.d.ts +0 -18
  170. package/lib/components/DetailUpdater/index.js +0 -63
  171. package/lib/components/Dialog/Dialog.stories.d.ts +0 -145
  172. package/lib/components/Dialog/index.d.ts +0 -12
  173. package/lib/components/Dialog/index.js +0 -78
  174. package/lib/components/DropdownMenu/DropdownMenu.stories.d.ts +0 -76
  175. package/lib/components/DropdownMenu/index.d.ts +0 -14
  176. package/lib/components/DropdownMenu/index.js +0 -27
  177. package/lib/components/DynamicTextSection/DynamicTextSection.stories.d.ts +0 -100
  178. package/lib/components/DynamicTextSection/index.d.ts +0 -11
  179. package/lib/components/DynamicTextSection/index.js +0 -18
  180. package/lib/components/FileUploader/FilePreview.d.ts +0 -8
  181. package/lib/components/FileUploader/FileUploader.stories.d.ts +0 -50
  182. package/lib/components/FileUploader/index.d.ts +0 -9
  183. package/lib/components/FilterItem/FilterItem.stories.d.ts +0 -57
  184. package/lib/components/FilterItem/index.d.ts +0 -8
  185. package/lib/components/FilterItem/index.js +0 -60
  186. package/lib/components/Footer/Footer.stories.d.ts +0 -105
  187. package/lib/components/Footer/index.d.ts +0 -10
  188. package/lib/components/Footer/index.js +0 -36
  189. package/lib/components/FooterNav/FooterNav.stories.d.ts +0 -135
  190. package/lib/components/FooterNav/index.d.ts +0 -13
  191. package/lib/components/FooterNav/index.js +0 -28
  192. package/lib/components/FooterNavItem/FooterNavItem.stories.d.ts +0 -93
  193. package/lib/components/FooterNavItem/index.d.ts +0 -16
  194. package/lib/components/FooterNavItem/index.js +0 -27
  195. package/lib/components/Form/Form.stories.d.ts +0 -117
  196. package/lib/components/Form/index.d.ts +0 -13
  197. package/lib/components/Form/index.js +0 -28
  198. package/lib/components/FyreCard/FyreCard.stories.d.ts +0 -58
  199. package/lib/components/FyreCard/index.d.ts +0 -12
  200. package/lib/components/FyreCard/index.js +0 -27
  201. package/lib/components/Greeting/Greeting.stories.d.ts +0 -83
  202. package/lib/components/Greeting/index.d.ts +0 -8
  203. package/lib/components/Greeting/index.js +0 -13
  204. package/lib/components/HamburgerIcon/HamburgerIcon.stories.d.ts +0 -64
  205. package/lib/components/HamburgerIcon/index.d.ts +0 -7
  206. package/lib/components/HamburgerIcon/index.js +0 -93
  207. package/lib/components/HorizontalLine/HorizontalLine.stories.d.ts +0 -96
  208. package/lib/components/HorizontalLine/index.d.ts +0 -11
  209. package/lib/components/HorizontalLine/index.js +0 -24
  210. package/lib/components/Icon/Icon.stories.d.ts +0 -47
  211. package/lib/components/Icon/index.d.ts +0 -10
  212. package/lib/components/Icon/index.js +0 -15
  213. package/lib/components/IconCard/IconCard.stories.d.ts +0 -51
  214. package/lib/components/IconCard/index.d.ts +0 -13
  215. package/lib/components/IconCard/index.js +0 -27
  216. package/lib/components/Image/Image.stories.d.ts +0 -158
  217. package/lib/components/Image/index.d.ts +0 -15
  218. package/lib/components/Image/index.js +0 -99
  219. package/lib/components/ImageInfo/ImageInfo.stories.d.ts +0 -69
  220. package/lib/components/ImageInfo/index.d.ts +0 -14
  221. package/lib/components/ImageLink/ImageLink.stories.d.ts +0 -63
  222. package/lib/components/ImageLink/index.d.ts +0 -14
  223. package/lib/components/ImageLink/index.js +0 -39
  224. package/lib/components/ImageLinkList/ImageLinkList.stories.d.ts +0 -48
  225. package/lib/components/ImageLinkList/index.d.ts +0 -8
  226. package/lib/components/ImageLinkList/index.js +0 -18
  227. package/lib/components/InformationIcon/InformationIcon.stories.d.ts +0 -54
  228. package/lib/components/InformationIcon/index.d.ts +0 -12
  229. package/lib/components/InformationIcon/index.js +0 -65
  230. package/lib/components/InformationIconBlock/InformationIconBlock.stories.d.ts +0 -55
  231. package/lib/components/InformationIconBlock/index.d.ts +0 -12
  232. package/lib/components/Input/Input.stories.d.ts +0 -114
  233. package/lib/components/Input/index.d.ts +0 -29
  234. package/lib/components/Input/index.js +0 -89
  235. package/lib/components/Jumbotron/Jumbotron.stories.d.ts +0 -48
  236. package/lib/components/Jumbotron/index.d.ts +0 -8
  237. package/lib/components/Jumbotron/index.js +0 -9
  238. package/lib/components/MenuButton/MenuButton.stories.d.ts +0 -76
  239. package/lib/components/MenuButton/index.d.ts +0 -14
  240. package/lib/components/MenuButton/index.js +0 -56
  241. package/lib/components/Modal/Modal.stories.d.ts +0 -67
  242. package/lib/components/Modal/index.d.ts +0 -10
  243. package/lib/components/Modal/index.js +0 -45
  244. package/lib/components/NavItem/NavItem.stories.d.ts +0 -154
  245. package/lib/components/NavItem/index.d.ts +0 -16
  246. package/lib/components/NavItem/index.js +0 -25
  247. package/lib/components/NavOld/NavOld.stories.d.ts +0 -290
  248. package/lib/components/NavOld/StickyNav.d.ts +0 -22
  249. package/lib/components/NavOld/StickyNav.js +0 -135
  250. package/lib/components/NavOld/index.d.ts +0 -26
  251. package/lib/components/NavOld/index.js +0 -187
  252. package/lib/components/NavTwo/Dropdown.d.ts +0 -7
  253. package/lib/components/NavTwo/Dropdown.js +0 -21
  254. package/lib/components/NavTwo/Nav.stories.d.ts +0 -62
  255. package/lib/components/NavTwo/Sidebar.d.ts +0 -7
  256. package/lib/components/NavTwo/Sidebar.js +0 -21
  257. package/lib/components/NavTwo/StickyNav.d.ts +0 -7
  258. package/lib/components/NavTwo/StickyNav.js +0 -20
  259. package/lib/components/NavTwo/index.d.ts +0 -13
  260. package/lib/components/NavTwo/index.js +0 -28
  261. package/lib/components/NewsCard/NewsCard.stories.d.ts +0 -102
  262. package/lib/components/NewsCard/index.d.ts +0 -13
  263. package/lib/components/NewsCard/index.js +0 -26
  264. package/lib/components/Pill/Pill.stories.d.ts +0 -84
  265. package/lib/components/Pill/index.d.ts +0 -8
  266. package/lib/components/Pill/index.js +0 -31
  267. package/lib/components/ProductCard/ProductCard.stories.d.ts +0 -86
  268. package/lib/components/ProductCard/index.d.ts +0 -18
  269. package/lib/components/ProductCard/index.js +0 -69
  270. package/lib/components/ProductCardV2/ProductCardV2.stories.d.ts +0 -75
  271. package/lib/components/ProductCardV2/index.d.ts +0 -21
  272. package/lib/components/ProductCardV2/index.js +0 -67
  273. package/lib/components/Proficiencies/Proficiencies.stories.d.ts +0 -51
  274. package/lib/components/Proficiencies/index.d.ts +0 -12
  275. package/lib/components/Profile/Profile.stories.d.ts +0 -80
  276. package/lib/components/Profile/index.d.ts +0 -17
  277. package/lib/components/Profile/index.js +0 -78
  278. package/lib/components/Row/Row.stories.d.ts +0 -62
  279. package/lib/components/Row/index.d.ts +0 -6
  280. package/lib/components/Row/index.js +0 -9
  281. package/lib/components/Search/Search.stories.d.ts +0 -86
  282. package/lib/components/Search/index.d.ts +0 -12
  283. package/lib/components/Search/index.js +0 -42
  284. package/lib/components/Select/Select.stories.d.ts +0 -56
  285. package/lib/components/Select/index.d.ts +0 -11
  286. package/lib/components/Select/index.js +0 -68
  287. package/lib/components/Showcase/Showcase.stories.d.ts +0 -55
  288. package/lib/components/Showcase/index.d.ts +0 -15
  289. package/lib/components/SideNav/SideNav.stories.d.ts +0 -80
  290. package/lib/components/SideNav/index.d.ts +0 -12
  291. package/lib/components/SocialBlock/SocialBlock.stories.d.ts +0 -101
  292. package/lib/components/SocialBlock/index.d.ts +0 -14
  293. package/lib/components/SocialBlock/index.js +0 -37
  294. package/lib/components/SocialButton/SocialButton.stories.d.ts +0 -130
  295. package/lib/components/SocialButton/index.d.ts +0 -12
  296. package/lib/components/SocialButton/index.js +0 -37
  297. package/lib/components/StarRating/StarRating.stories.d.ts +0 -49
  298. package/lib/components/StarRating/index.d.ts +0 -9
  299. package/lib/components/StarRating/index.js +0 -47
  300. package/lib/components/Testimonial/Testimonial.stories.d.ts +0 -172
  301. package/lib/components/Testimonial/index.d.ts +0 -16
  302. package/lib/components/Testimonial/index.js +0 -42
  303. package/lib/components/TextAndTitle/TextAndTitle.stories.d.ts +0 -97
  304. package/lib/components/TextAndTitle/index.d.ts +0 -25
  305. package/lib/components/TextAndTitle/index.js +0 -70
  306. package/lib/components/TextArea/TextArea.stories.d.ts +0 -85
  307. package/lib/components/TextArea/index.d.ts +0 -26
  308. package/lib/components/TextArea/index.js +0 -86
  309. package/lib/components/Timeline/Timeline.stories.d.ts +0 -81
  310. package/lib/components/Timeline/index.d.ts +0 -17
  311. package/lib/components/Timeline/index.js +0 -172
  312. package/lib/components/TimelineV2/TimelineV2.stories.d.ts +0 -87
  313. package/lib/components/TimelineV2/index.d.ts +0 -20
  314. package/lib/components/Tubestops/Tubestops.stories.d.ts +0 -54
  315. package/lib/components/Tubestops/index.d.ts +0 -8
  316. package/lib/components/Tubestops/index.js +0 -44
  317. package/lib/components/UserIcon/UserIcon.stories.d.ts +0 -81
  318. package/lib/components/UserIcon/index.d.ts +0 -10
  319. package/lib/components/UserIcon/index.js +0 -34
  320. package/lib/components/Video/Video.stories.d.ts +0 -49
  321. package/lib/components/Video/index.d.ts +0 -15
  322. package/lib/components/Video/index.js +0 -34
  323. package/lib/components/index.d.ts +0 -60
  324. package/lib/components/typography/Fonts/Fonts.d.ts +0 -2
  325. package/lib/components/typography/Fonts/Fonts.stories.d.ts +0 -10
  326. package/lib/index.d.ts +0 -1
  327. package/lib/index.js +0 -118
  328. package/lib/node_modules/keen-slider/keen-slider.min.css.js +0 -1
  329. package/lib/node_modules/keen-slider/react.js +0 -591
  330. package/lib/style.css +0 -1
  331. package/lib/styles/global.css +0 -75
  332. package/lib/styles/themes/local.css +0 -40
  333. package/lib/styles/themes/palette.css +0 -131
  334. package/lib/tailwind/boxShadow.ts +0 -9
  335. package/lib/tailwind/colors.ts +0 -410
  336. package/lib/tailwind/container.ts +0 -11
  337. package/lib/tailwind/preset.ts +0 -88
  338. package/lib/tailwind/spacing.ts +0 -14
  339. package/lib/utils/controls.d.ts +0 -36
  340. package/lib/utils/matchMedia.d.ts +0 -2
  341. package/lib/utils/matchMedia.js +0 -9
  342. package/lib/utils/screens.d.ts +0 -7
  343. package/src/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.tsx +0 -52
  344. package/src/components/BreadcrumbsBordered/index.tsx +0 -41
  345. package/src/components/BreadcrumbsItem/BreadcrumbsItem.stories.tsx +0 -40
  346. package/src/components/BreadcrumbsItem/index.tsx +0 -147
  347. package/src/components/CardWithTopImage/CardWithTopImage.stories.tsx +0 -50
  348. package/src/components/CardWithTopImage/index.tsx +0 -35
  349. package/src/components/Column/Column.stories.tsx +0 -89
  350. package/src/components/Column/index.tsx +0 -18
  351. package/src/components/ComponentWrapper/ComponentWrapper.stories.tsx +0 -40
  352. package/src/components/ComponentWrapper/index.tsx +0 -48
  353. package/src/components/Container/Container.stories.tsx +0 -40
  354. package/src/components/Container/index.tsx +0 -21
  355. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -59
  356. package/src/components/DropdownMenu/index.tsx +0 -45
  357. package/src/components/DynamicTextSection/DynamicTextSection.stories.tsx +0 -76
  358. package/src/components/DynamicTextSection/index.tsx +0 -32
  359. package/src/components/FilterItem/FilterItem.stories.tsx +0 -33
  360. package/src/components/FilterItem/index.tsx +0 -97
  361. package/src/components/FooterNavItem/FooterNavItem.stories.tsx +0 -53
  362. package/src/components/FooterNavItem/index.tsx +0 -58
  363. package/src/components/Form/style.module.css +0 -0
  364. package/src/components/FyreCard/FyreCard.stories.tsx +0 -31
  365. package/src/components/FyreCard/index.tsx +0 -44
  366. package/src/components/HorizontalLine/HorizontalLine.stories.tsx +0 -54
  367. package/src/components/HorizontalLine/index.tsx +0 -32
  368. package/src/components/IconCard/IconCard.stories.tsx +0 -26
  369. package/src/components/IconCard/index.tsx +0 -54
  370. package/src/components/ImageInfo/ImageInfo.stories.tsx +0 -38
  371. package/src/components/ImageInfo/index.tsx +0 -84
  372. package/src/components/ImageLink/ImageLink.stories.tsx +0 -36
  373. package/src/components/ImageLink/index.tsx +0 -58
  374. package/src/components/ImageLinkList/ImageLinkList.stories.tsx +0 -34
  375. package/src/components/ImageLinkList/index.tsx +0 -28
  376. package/src/components/InformationIcon/InformationIcon.stories.tsx +0 -29
  377. package/src/components/InformationIcon/index.tsx +0 -105
  378. package/src/components/InformationIconBlock/InformationIconBlock.stories.tsx +0 -38
  379. package/src/components/InformationIconBlock/index.tsx +0 -56
  380. package/src/components/Jumbotron/Jumbotron.stories.tsx +0 -21
  381. package/src/components/Jumbotron/index.tsx +0 -19
  382. package/src/components/NavOld/NavOld.stories.tsx +0 -193
  383. package/src/components/NavOld/StickyNav.tsx +0 -187
  384. package/src/components/NavOld/index.tsx +0 -265
  385. package/src/components/NavTwo/Dropdown.tsx +0 -30
  386. package/src/components/NavTwo/Nav.stories.tsx +0 -32
  387. package/src/components/NavTwo/Sidebar.tsx +0 -30
  388. package/src/components/NavTwo/StickyNav.tsx +0 -29
  389. package/src/components/NavTwo/index.tsx +0 -37
  390. package/src/components/NewsCard/NewsCard.stories.tsx +0 -72
  391. package/src/components/NewsCard/index.tsx +0 -44
  392. package/src/components/ProductCard/ProductCard.stories.tsx +0 -61
  393. package/src/components/ProductCard/index.tsx +0 -110
  394. package/src/components/ProductCardV2/ProductCardV2.stories.tsx +0 -50
  395. package/src/components/ProductCardV2/index.tsx +0 -98
  396. package/src/components/Proficiencies/Proficiencies.stories.tsx +0 -50
  397. package/src/components/Proficiencies/index.tsx +0 -51
  398. package/src/components/Profile/Profile.stories.tsx +0 -49
  399. package/src/components/Profile/index.tsx +0 -103
  400. package/src/components/Row/Row.stories.tsx +0 -53
  401. package/src/components/Row/index.tsx +0 -17
  402. package/src/components/SocialBlock/SocialBlock.stories.tsx +0 -58
  403. package/src/components/SocialBlock/index.tsx +0 -59
  404. package/src/components/StarRating/StarRating.stories.tsx +0 -23
  405. package/src/components/StarRating/index.tsx +0 -65
  406. package/src/components/TextAndTitle/TextAndTitle.stories.tsx +0 -71
  407. package/src/components/TextAndTitle/index.tsx +0 -119
  408. package/src/components/TimelineV2/TimelineV2.stories.tsx +0 -95
  409. package/src/components/TimelineV2/index.tsx +0 -70
  410. package/src/components/UserIcon/UserIcon.stories.tsx +0 -52
  411. package/src/components/UserIcon/index.tsx +0 -43
  412. package/src/styles/themes/palette.css +0 -131
  413. package/svg.d.ts +0 -4
  414. /package/src/{components/fonts → fonts}/Sora/OFL.txt +0 -0
  415. /package/src/{components/fonts → fonts}/Sora/README.txt +0 -0
  416. /package/src/{components/fonts → fonts}/Sora/Sora-VariableFont_wght.ttf +0 -0
  417. /package/src/{components/fonts → fonts}/Sora/static/Sora-Bold.ttf +0 -0
  418. /package/src/{components/fonts → fonts}/Sora/static/Sora-ExtraBold.ttf +0 -0
  419. /package/src/{components/fonts → fonts}/Sora/static/Sora-ExtraLight.ttf +0 -0
  420. /package/src/{components/fonts → fonts}/Sora/static/Sora-Light.ttf +0 -0
  421. /package/src/{components/fonts → fonts}/Sora/static/Sora-Medium.ttf +0 -0
  422. /package/src/{components/fonts → fonts}/Sora/static/Sora-Regular.ttf +0 -0
  423. /package/src/{components/fonts → fonts}/Sora/static/Sora-SemiBold.ttf +0 -0
  424. /package/src/{components/fonts → fonts}/Sora/static/Sora-Thin.ttf +0 -0
@@ -66,7 +66,7 @@ export const Avatar: React.FC = (): any => {
66
66
  mask: beardGroup,
67
67
  fill: beardColour,
68
68
  opacity: 0.6,
69
- })
69
+ });
70
70
 
71
71
  const outerHair = s?.rect(103, 90, 68, 60, 25).attr({ fill: 'white' });
72
72
  const innerHair = s?.rect(109, 105, 56, 40, 10);
@@ -74,7 +74,7 @@ export const Avatar: React.FC = (): any => {
74
74
  const baseHair = s?.rect(103, 90, 68, 40).attr({
75
75
  mask: hairGroup,
76
76
  fill: hairColour,
77
- })
77
+ });
78
78
  const hairLevel1 = s
79
79
  ?.rect(113, 88, 50, 16, 10)
80
80
  .attr({ fill: hairColour })
@@ -87,7 +87,7 @@ export const Avatar: React.FC = (): any => {
87
87
  const nose = s?.rect(129, 140, 12, 10)?.attr({
88
88
  mask: noseGroup,
89
89
  fill: noseColour,
90
- })
90
+ });
91
91
 
92
92
  const leftEar = s?.circle(103, 135, 5)?.attr({ fill: 'white' });
93
93
  const leftEarMask = s
@@ -179,7 +179,7 @@ export const Avatar: React.FC = (): any => {
179
179
  ears,
180
180
  hair,
181
181
  beard,
182
- )
182
+ );
183
183
  torso = s?.group(rucksack, hood, body, neck, zip);
184
184
  legs = s
185
185
  ?.group(leftThigh, rightThigh, wasteBand, shoes)
@@ -190,10 +190,10 @@ export const Avatar: React.FC = (): any => {
190
190
 
191
191
  mouthCutOff?.attr({
192
192
  mask: mouth,
193
- })
193
+ });
194
194
 
195
195
  callBack(avatar);
196
- }
196
+ };
197
197
 
198
198
  const nextFrame = (s: any, frameArray: any, frame: number): void => {
199
199
  if (frame >= frameArray.length) {
@@ -207,8 +207,8 @@ export const Avatar: React.FC = (): any => {
207
207
  frameArray[frame].dur,
208
208
  null,
209
209
  nextFrame.bind(null, Snap, frameArray, frame + 1),
210
- )
211
- }
210
+ );
211
+ };
212
212
 
213
213
  const rightWave = [
214
214
  {
@@ -273,8 +273,8 @@ export const Avatar: React.FC = (): any => {
273
273
  from: 120,
274
274
  to: 0,
275
275
  dur: 100,
276
- }
277
- ]
276
+ },
277
+ ];
278
278
 
279
279
  const leftWave = [
280
280
  {
@@ -339,8 +339,8 @@ export const Avatar: React.FC = (): any => {
339
339
  from: -120,
340
340
  to: 0,
341
341
  dur: 100,
342
- }
343
- ]
342
+ },
343
+ ];
344
344
 
345
345
  const jump = (): void => {
346
346
  torso.animate({ transform: 't0,20' }, 500);
@@ -360,24 +360,24 @@ export const Avatar: React.FC = (): any => {
360
360
  straps.animate({ transform: 't0,0' }, 200);
361
361
  hands.animate({ transform: 't0,0' }, 200);
362
362
  legs.animate({ transform: 't0,0' }, 200);
363
- })
363
+ });
364
364
  });
365
- }
365
+ };
366
366
 
367
367
  const eyesLeft = (duration: any): void => {
368
368
  leftEyePupil.animate({ transform: 't2,0' }, duration);
369
369
  rightEyePupil.animate({ transform: 't2,0' }, duration);
370
- }
370
+ };
371
371
 
372
372
  const eyesRight = (duration: any): void => {
373
373
  leftEyePupil.animate({ transform: 't-2,0' }, duration);
374
374
  rightEyePupil.animate({ transform: 't-2,0' }, duration);
375
- }
375
+ };
376
376
 
377
377
  const eyesCenter = (duration: any): void => {
378
378
  leftEyePupil.animate({ transform: 't0,0' }, duration);
379
379
  rightEyePupil.animate({ transform: 't0,0' }, duration);
380
- }
380
+ };
381
381
 
382
382
  const blink = (times: number): void => {
383
383
  if (times < 1) return;
@@ -391,14 +391,14 @@ export const Avatar: React.FC = (): any => {
391
391
  rightEyeWhite?.animate({ ry: 4 }, 200);
392
392
  rightEyePupil?.animate({ ry: 3 }, 200, () => {
393
393
  blink(times - 1);
394
- })
394
+ });
395
395
  });
396
- })
397
- }
396
+ });
397
+ };
398
398
 
399
399
  const animate = (s: any, animation: any): any => {
400
400
  nextFrame(s, animation, 0);
401
- }
401
+ };
402
402
 
403
403
  // const drawPath = (s: any): void => {
404
404
  // const linePath =
@@ -433,7 +433,7 @@ export const Avatar: React.FC = (): any => {
433
433
  const makeBlinkHappen = (): void => {
434
434
  const randNum = Math.floor(Math.random() * 2) + 1;
435
435
  blink(randNum);
436
- }
436
+ };
437
437
 
438
438
  const loadActions = (): void => {
439
439
  if (!avatar) return;
@@ -453,28 +453,28 @@ export const Avatar: React.FC = (): any => {
453
453
  armless?.click(jump);
454
454
  leftArm?.hover(() => {
455
455
  eyesLeft(200);
456
- })
456
+ });
457
457
  leftThigh?.hover(() => {
458
458
  eyesLeft(200);
459
- })
459
+ });
460
460
  leftShoe?.hover(() => {
461
461
  eyesLeft(200);
462
- })
462
+ });
463
463
 
464
464
  torso?.hover(() => {
465
465
  eyesCenter(200);
466
- })
466
+ });
467
467
 
468
468
  rightArm?.hover(() => {
469
469
  eyesRight(200);
470
- })
470
+ });
471
471
  rightThigh?.hover(() => {
472
472
  eyesRight(200);
473
- })
473
+ });
474
474
  rightShoe?.hover(() => {
475
475
  eyesRight(200);
476
- })
477
- }
476
+ });
477
+ };
478
478
 
479
479
  createAvatar(s, loadActions);
480
480
  }, [s]);
@@ -489,4 +489,4 @@ export const Avatar: React.FC = (): any => {
489
489
  xmlns="http://www.w3.org/2000/svg"
490
490
  />
491
491
  );
492
- }
492
+ };
@@ -1,44 +1,27 @@
1
- import { Meta, type StoryObj } from '@storybook/react';
2
- import { idAndClassName } from '@utils/controls';
1
+ import { Meta, StoryObj } from '@storybook/react';
3
2
 
4
3
  import { Breadcrumbs } from '.';
5
4
 
6
5
  const meta = {
7
- title: 'Components/Breadcrumbs',
6
+ title: 'V2Components/Breadcrumbs',
8
7
  component: Breadcrumbs,
9
- argTypes: {
10
- ...idAndClassName,
11
-
12
- links: {
13
- description: 'An array of items to be displayed in the component',
14
- table: {
15
- category: '',
16
- type: { summary: 'array' },
17
- defaultValue: { summary: 'undefined' },
18
- }
19
- }
20
- },
21
8
  args: {
22
- links: [
23
- {
24
- href: '/',
25
- name: 'link 1',
26
- },
27
- {
28
- href: '/',
29
- name: 'link 2',
30
- },
31
- {
32
- href: '/',
33
- name: 'link 3',
34
- },
35
- {
36
- href: '/',
37
- name: 'link 4',
38
- }
39
- ]
9
+ children: [
10
+ <Breadcrumbs.Item>
11
+ <Breadcrumbs.Label href="#">Link 1</Breadcrumbs.Label>
12
+ </Breadcrumbs.Item>,
13
+ <Breadcrumbs.Item>
14
+ <Breadcrumbs.Label href="#">Link 2</Breadcrumbs.Label>
15
+ </Breadcrumbs.Item>,
16
+ <Breadcrumbs.Item>
17
+ <Breadcrumbs.Label href="#">Link 3</Breadcrumbs.Label>
18
+ </Breadcrumbs.Item>,
19
+ <Breadcrumbs.Item>
20
+ <Breadcrumbs.Label href="#">Link 4</Breadcrumbs.Label>
21
+ </Breadcrumbs.Item>,
22
+ ],
40
23
  },
41
- }
24
+ } satisfies Meta<typeof Breadcrumbs>;
42
25
  export default meta;
43
26
 
44
27
  type Story = StoryObj<typeof Breadcrumbs>;
@@ -1,40 +1,89 @@
1
+ import { forwardRef, HTMLAttributes } from 'react';
2
+
1
3
  import classNames from 'classnames';
2
4
 
3
- export interface Props {
5
+ export interface BreadcrumbsProps {
4
6
  id?: string;
5
7
  className?: string;
6
8
  links?: Array<{ name: string; href: string }>;
7
9
  }
8
10
 
9
- export const Breadcrumbs = ({ id, className, links }: Props) => {
10
- const linksLength = links != null ? Object.keys(links).length : 0;
11
+ const BreadcrumbsComponent = forwardRef<
12
+ HTMLUListElement,
13
+ HTMLAttributes<HTMLUListElement> & BreadcrumbsProps
14
+ >(({ children, ...props }, ref) => {
15
+ return (
16
+ <ul className="flex gap-2" {...props}>
17
+ {children}
18
+ </ul>
19
+ );
20
+ });
11
21
 
12
- const classList = classNames(className, 'flex py-2');
22
+ const BreadcrumbsItem = forwardRef<
23
+ HTMLLIElement,
24
+ HTMLAttributes<HTMLLIElement>
25
+ >(({ children, ...props }, ref) => {
26
+ return (
27
+ <li className="flex items-center gap-2" {...props}>
28
+ {children}
29
+ <p>/</p>
30
+ </li>
31
+ );
32
+ });
13
33
 
34
+ const BreadcrumbsLabel = forwardRef<
35
+ HTMLParagraphElement,
36
+ HTMLAttributes<HTMLParagraphElement> & { href: string }
37
+ >(({ children, href, ...props }, ref) => {
14
38
  return (
15
- <ul id={id} className={classList}>
16
- {links?.map((link, i) => {
17
- return (
18
- <div key={`breadcrumb_${i + 1}`} className="flex">
19
- <li className="h-8">
20
- {i + 1 >= linksLength ? (
21
- <p className="px-1 py-1">{link.name}</p>
22
- ) : (
23
- <p className="px-1 py-1">
24
- <a className="text-facebook hover:underline" href={link.href}>
25
- {link.name}
26
- </a>
27
- </p>
28
- )}
29
- </li>
30
- {i + 1 < linksLength && (
31
- <li className="h-8">
32
- <p className="py-1">&nbsp; &#62; &nbsp;</p>
33
- </li>
34
- )}
35
- </div>
36
- );
37
- })}
38
- </ul>
39
+ <p className="px-1 py-1">
40
+ <a className="text-facebook hover:underline" href={href}>
41
+ {children}
42
+ </a>
43
+ </p>
39
44
  );
40
- }
45
+ });
46
+
47
+ BreadcrumbsComponent.displayName = 'Breadcrumbs';
48
+ BreadcrumbsItem.displayName = 'Breadcrumbs.Item';
49
+ BreadcrumbsLabel.displayName = 'Breadcrumbs.Label';
50
+
51
+ const Breadcrumbs = Object.assign(BreadcrumbsComponent, {
52
+ Item: BreadcrumbsItem,
53
+ Label: BreadcrumbsLabel,
54
+ });
55
+
56
+ export { Breadcrumbs };
57
+
58
+ // export const Breadcrumbs = ({ id, className, links }: Props) => {
59
+ // const linksLength = links != null ? Object.keys(links).length : 0;
60
+
61
+ // const classList = classNames(className, 'flex py-2');
62
+
63
+ // return (
64
+ // <ul id={id} className={classList}>
65
+ // {links?.map((link, i) => {
66
+ // return (
67
+ // <div key={`breadcrumb_${i + 1}`} className="flex">
68
+ // <li className="h-8">
69
+ // {i + 1 >= linksLength ? (
70
+ // <p className="px-1 py-1">{link.name}</p>
71
+ // ) : (
72
+ // <p className="px-1 py-1">
73
+ // <a className="text-facebook hover:underline" href={link.href}>
74
+ // {link.name}
75
+ // </a>
76
+ // </p>
77
+ // )}
78
+ // </li>
79
+ // {i + 1 < linksLength && (
80
+ // <li className="h-8">
81
+ // <p className="py-1">&nbsp; &#62; &nbsp;</p>
82
+ // </li>
83
+ // )}
84
+ // </div>
85
+ // );
86
+ // })}
87
+ // </ul>
88
+ // );
89
+ // };
@@ -1,147 +1,21 @@
1
+ import { faHeart } from '@fortawesome/fontawesome-free-solid';
1
2
  import { action } from '@storybook/addon-actions';
2
- import { Meta, type StoryObj } from '@storybook/react';
3
- import { idAndClassName } from '@utils/controls';
3
+ import { Meta, StoryObj } from '@storybook/react';
4
4
 
5
5
  import { Button } from '.';
6
6
 
7
7
  const meta = {
8
- title: 'Components/Button',
8
+ title: 'V2Components/Button',
9
9
  component: Button,
10
- parameters: {
11
- docs: {
12
- description: {
13
- component:
14
- 'A Button which can either be internal, external or social as well as a standard design or a slide design.',
15
- }
16
- }
17
- },
18
- argTypes: {
19
- ...idAndClassName,
20
- onClick: {
21
- type: { name: 'function', required: false },
22
- description: 'The action to perform when clicking on the component',
23
- action: 'onClick',
24
- table: {
25
- type: {
26
- summary: 'function',
27
- },
28
- defaultValue: { summary: 'undefined' },
29
- }
30
- },
31
- hoverText: {
32
- type: {
33
- name: 'string',
34
- required: false,
35
- },
36
- description: 'The text to display when hovering on the component',
37
- table: {
38
- type: {
39
- summary: 'string',
40
- },
41
- defaultValue: {
42
- summary: 'undefined',
43
- }
44
- }
45
- },
46
- variant: {
47
- type: {
48
- name: 'string',
49
- required: false,
50
- },
51
- options: ['primary', 'secondary'],
52
- description: 'The variant of button to render',
53
- table: {
54
- type: {
55
- summary: 'primary',
56
- },
57
- defaultValue: {
58
- summary: 'primary',
59
- }
60
- },
61
- defaultValue: 'primary',
62
- control: {
63
- type: 'radio',
64
- }
65
- },
66
- type: {
67
- type: {
68
- name: 'string',
69
- required: false,
70
- },
71
- options: ['default', 'social', 'icon'],
72
- description: 'The type of button to render',
73
- table: {
74
- type: {
75
- summary: 'default',
76
- },
77
- defaultValue: {
78
- summary: 'default',
79
- }
80
- },
81
- defaultValue: 'default',
82
- control: { type: 'radio' },
83
- },
84
- href: {
85
- type: { name: 'string', required: false },
86
- description: 'The link attached to the component',
87
- table: {
88
- type: {
89
- summary: 'default',
90
- },
91
- defaultValue: {
92
- summary: 'undefined',
93
- }
94
- }
95
- },
96
- rounded: {
97
- type: {
98
- name: 'boolean',
99
- required: false,
100
- },
101
- description: 'rounds the borders when true',
102
- defaultValue: 'true',
103
- },
104
- disabled: {
105
- type: {
106
- name: 'boolean',
107
- required: false,
108
- },
109
- description: 'Can the carousel be dragged or not',
110
- },
111
- isLoading: {
112
- type: {
113
- name: 'boolean',
114
- required: false,
115
- },
116
- table: {
117
- defaultValue: {
118
- summary: 'false',
119
- }
120
- },
121
- description: 'Toggles the loading state of the compnent',
122
- },
123
- openInNewTab: {
124
- type: { name: 'boolean', required: false },
125
- description: 'Opens the link in a new tab when set to true',
126
- defaultValue: 'false',
127
- },
128
- children: {
129
- type: { name: 'other', value: 'string | React.ReactNode' },
130
- description: 'The child elements to show in the component',
131
- table: {
132
- type: {
133
- summary: 'Array',
134
- },
135
- defaultValue: { summary: 'undefined' },
136
- }
137
- }
138
- },
139
10
  args: {
140
- children: 'This is a button',
141
- rounded: true,
142
- onClick: action('button clicked'),
143
- }
144
- }
11
+ variant: 'primary',
12
+ children: [
13
+ <Button.Icon icon={faHeart} />,
14
+ <Button.Label>This is a button</Button.Label>,
15
+ ],
16
+ onClick: action('clicked'),
17
+ },
18
+ } satisfies Meta<typeof Button>;
145
19
 
146
20
  export default meta;
147
21
 
@@ -1,104 +1,59 @@
1
- import React from 'react';
1
+ import { ComponentPropsWithoutRef, forwardRef, HTMLAttributes } from 'react';
2
2
 
3
3
  import { Icon } from '@components/Icon';
4
- import { faSpinner } from '@fortawesome/fontawesome-free-solid';
5
- import { type IconProp } from '@fortawesome/fontawesome-svg-core';
6
- import classNames from 'classnames';
4
+ import { PickU } from '@components/Pill';
5
+ import clsx from 'clsx';
7
6
 
8
- interface AnchorAttributes
9
- extends Partial<
10
- Pick<JSX.IntrinsicElements['a'], 'href' | 'title' | 'target'>
11
- > {}
12
-
13
- export interface Props {
14
- id?: string;
15
- className?: string;
16
- onClick?: React.MouseEventHandler;
17
- hoverText?: string;
18
- variant?: 'primary' | 'secondary' | 'tertiary';
19
- type?: 'social' | 'icon' | 'default';
20
- href?: string;
21
- label?: string;
22
- target?: string;
23
- rounded?: boolean;
7
+ export interface ButtonProps {
8
+ variant?: 'primary' | 'secondary' | 'ghost';
24
9
  disabled?: boolean;
25
- isLoading?: boolean;
26
- openInNewTab?: boolean;
27
- children?: any;
28
10
  }
29
11
 
30
- export const Button = ({
31
- id,
32
- className,
33
- onClick,
34
- variant = 'primary',
35
- type = 'default',
36
- href,
37
- target,
38
- label,
39
- rounded = true,
40
- disabled = false,
41
- isLoading = false,
42
- openInNewTab = false,
43
- children,
44
- }: Props) => {
45
- const padding = classNames(
46
- {
47
- 'px-1 py-1': type === 'social',
48
- 'px-3': type === 'icon',
49
- 'px-8': type === 'default',
50
- },
51
- 'py-3',
52
- )
12
+ const ButtonComponent = forwardRef<
13
+ HTMLButtonElement,
14
+ HTMLAttributes<HTMLButtonElement> & ButtonProps
15
+ >(({ className, children, variant = 'primary', disabled, ...props }) => {
16
+ return (
17
+ <button
18
+ className={clsx(
19
+ 'flex items-center gap-2 rounded-lg border px-4 py-2 text-center text-sm duration-200',
20
+ {
21
+ 'border-button-primary-border bg-button-primary-bg text-button-primary-text hover:bg-button-primary-hover active:bg-button-primary-active':
22
+ variant === 'primary',
23
+ 'border-button-secondary-border bg-button-secondary-bg text-button-secondary-text hover:bg-button-secondary-hover active:bg-button-secondary-active':
24
+ variant === 'secondary',
25
+ 'border-button-ghost-border bg-button-ghost-bg text-button-ghost-text hover:bg-button-ghost-hover active:bg-button-ghost-active':
26
+ variant === 'ghost',
27
+ },
28
+ className,
29
+ )}
30
+ {...props}
31
+ >
32
+ {children}
33
+ </button>
34
+ );
35
+ });
53
36
 
54
- const loadingClasses = classNames(
55
- {
56
- invisible: !isLoading,
57
- },
58
- 'absolute left-2/4 top-1/4 -ml-2',
59
- )
37
+ const ButtonLabel = forwardRef<
38
+ HTMLParagraphElement,
39
+ HTMLAttributes<HTMLParagraphElement>
40
+ >(({ className, ...props }, ref) => (
41
+ <p className={clsx('text-md', className)} ref={ref} {...props} />
42
+ ));
60
43
 
61
- const classList = classNames(
62
- {
63
- 'border-secondary bg-primary text-secondary outline-primary':
64
- variant === 'primary',
65
- 'hover:border-primary hover:bg-secondary hover:text-primary focus:border-primary focus:bg-secondary focus:text-primary':
66
- !disabled && variant === 'primary',
67
- 'border-primary bg-secondary text-primary outline-secondary':
68
- variant === 'secondary',
69
- 'hover:border-tertiary hover:bg-secondary hover:text-tertiary focus:border-tertiary focus:bg-secondary focus:text-tertiary':
70
- !disabled && variant === 'secondary',
71
- 'opacity-50': disabled,
72
- 'rounded-lg': rounded,
73
- 'rounded-none': !rounded,
74
- },
75
- 'transform border-2 text-sm duration-500 inline-block text-center focus:outline',
76
- className,
77
- padding,
78
- )
44
+ const ButtonIcon = forwardRef<
45
+ SVGSVGElement,
46
+ PickU<ComponentPropsWithoutRef<typeof Icon>, 'icon'>
47
+ >(({ icon }, ref) => <Icon size="md" ref={ref} icon={icon} />);
79
48
 
80
- const loadingIcon = <Icon icon={faSpinner as IconProp} />;
49
+ ButtonComponent.displayName = 'Button';
81
50
 
82
- let Tag: keyof Pick<JSX.IntrinsicElements, 'a' | 'button'> = 'button';
83
- let attributes: AnchorAttributes = {};
51
+ ButtonIcon.displayName = 'Button.Icon';
52
+ ButtonLabel.displayName = 'Button.Label';
84
53
 
85
- if (Boolean(href) || Boolean(target)) {
86
- Tag = 'a';
87
- attributes = { href, target };
88
- }
54
+ const Button = Object.assign(ButtonComponent, {
55
+ Icon: ButtonIcon,
56
+ Label: ButtonLabel,
57
+ });
89
58
 
90
- return (
91
- <Tag
92
- {...attributes}
93
- id={id}
94
- className={classList}
95
- aria-busy={isLoading}
96
- aria-label={label}
97
- {...(onClick != null && { onClick })}
98
- {...(disabled && { disabled })}
99
- >
100
- <div className={classNames({ invisible: isLoading })}>{children}</div>
101
- {isLoading && <div className={loadingClasses}>{loadingIcon}</div>}
102
- </Tag>
103
- );
104
- }
59
+ export { Button };