mainstack-design-system 0.0.0

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 (481) hide show
  1. package/.env.sample +1 -0
  2. package/.eslintignore +5 -0
  3. package/.eslintrc.json +96 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +15 -0
  5. package/.husky/commit-msg +4 -0
  6. package/.husky/pre-commit +6 -0
  7. package/.prettierignore +7 -0
  8. package/.prettierrc +9 -0
  9. package/.storybook/main.ts +22 -0
  10. package/.storybook/preview.ts +20 -0
  11. package/.vscode/extensions.json +10 -0
  12. package/README.md +139 -0
  13. package/commitlint.config.cjs +1 -0
  14. package/index.html +31 -0
  15. package/package.json +98 -0
  16. package/public/_redirects +1 -0
  17. package/public/manifest.json +15 -0
  18. package/public/robots.txt +3 -0
  19. package/public/vite.svg +1 -0
  20. package/src/app.tsx +25 -0
  21. package/src/assets/fonts/Degular-Medium.woff2 +0 -0
  22. package/src/assets/fonts/Degular-Medium_Italic.woff2 +0 -0
  23. package/src/assets/fonts/Degular-Semibold.woff2 +0 -0
  24. package/src/assets/fonts/Degular-Semibold_Italic.woff2 +0 -0
  25. package/src/assets/fonts/Degular_Display-Bold.woff2 +0 -0
  26. package/src/assets/fonts/Degular_Display-Bold_Italic.woff2 +0 -0
  27. package/src/assets/fonts/Degular_Display-Semibold.woff2 +0 -0
  28. package/src/assets/fonts/Degular_Display-Semibold_Italic.woff2 +0 -0
  29. package/src/assets/fonts/Sohne-Buch.otf +0 -0
  30. package/src/assets/fonts/So/302/246/303/252hne-Buch.otf +0 -0
  31. package/src/assets/fonts/So/302/246/303/252hne-BuchKursiv.otf +0 -0
  32. package/src/assets/fonts/So/302/246/303/252hne-Dreiviertelfett.otf +0 -0
  33. package/src/assets/fonts/So/302/246/303/252hne-DreiviertelfettKursiv.otf +0 -0
  34. package/src/assets/fonts/So/302/246/303/252hne-Extrafett.otf +0 -0
  35. package/src/assets/fonts/So/302/246/303/252hne-Fett.otf +0 -0
  36. package/src/assets/fonts/So/302/246/303/252hne-Halbfett.otf +0 -0
  37. package/src/assets/fonts/So/302/246/303/252hne-HalbfettKursiv.otf +0 -0
  38. package/src/assets/fonts/So/302/246/303/252hne-Kra/302/246/303/252ftig.otf +0 -0
  39. package/src/assets/fonts/So/302/246/303/252hne-Kra/302/246/303/252ftigKursiv.otf +0 -0
  40. package/src/assets/fonts/So/302/246/303/252hne-Leicht.otf +0 -0
  41. package/src/assets/fonts/soehne-buch-kursiv.woff2 +0 -0
  42. package/src/assets/fonts/soehne-buch.woff2 +0 -0
  43. package/src/assets/fonts/soehne-dreiviertelfett-kursiv.woff2 +0 -0
  44. package/src/assets/fonts/soehne-dreiviertelfett.woff2 +0 -0
  45. package/src/assets/fonts/soehne-extrafett.woff2 +0 -0
  46. package/src/assets/fonts/soehne-fett.woff2 +0 -0
  47. package/src/assets/fonts/soehne-halbfett-kursiv.woff2 +0 -0
  48. package/src/assets/fonts/soehne-halbfett.woff2 +0 -0
  49. package/src/assets/fonts/soehne-kraftig-kursiv.woff2 +0 -0
  50. package/src/assets/fonts/soehne-kraftig.woff2 +0 -0
  51. package/src/assets/fonts/soehne-leicht.woff2 +0 -0
  52. package/src/assets/styles/index.css +486 -0
  53. package/src/assets/svgs/check_circle.svg +8 -0
  54. package/src/assets/svgs/close-circle.svg +3 -0
  55. package/src/assets/svgs/error_message_icon.svg +8 -0
  56. package/src/assets/svgs/personal_profile_avatar.svg +13 -0
  57. package/src/assets/svgs/search-normal.svg +4 -0
  58. package/src/assets/svgs/store_avatar.svg +13 -0
  59. package/src/assets/svgs/viewIcon.svg +8 -0
  60. package/src/assets/svgs/viewOffIcon.svg +3 -0
  61. package/src/assets/themes/baseThemes.ts +40 -0
  62. package/src/components/Accordion/index.tsx +111 -0
  63. package/src/components/Avatars/index.tsx +111 -0
  64. package/src/components/Button/IconButton.tsx +119 -0
  65. package/src/components/Button/index.tsx +173 -0
  66. package/src/components/InputFields/Input.tsx +177 -0
  67. package/src/components/InputFields/MarkdownEditor.tsx +246 -0
  68. package/src/components/InputFields/SearchInput.tsx +80 -0
  69. package/src/components/InputFields/SelectInput/CountrySelect.tsx +142 -0
  70. package/src/components/InputFields/SelectInput/PhoneNumberInput.tsx +89 -0
  71. package/src/components/InputFields/SelectInput/SelectInput.tsx +395 -0
  72. package/src/components/InputFields/SelectInput/index.ts +9 -0
  73. package/src/components/InputFields/TextArea.tsx +150 -0
  74. package/src/components/InputFields/UsernameInput.tsx +145 -0
  75. package/src/components/Tiles/index.tsx +95 -0
  76. package/src/components/Typography/Display.tsx +84 -0
  77. package/src/components/Typography/Heading.tsx +136 -0
  78. package/src/components/Typography/Paragraph.tsx +105 -0
  79. package/src/components/Typography/Subtitle.tsx +148 -0
  80. package/src/components/Uploader/FileUploader.tsx +132 -0
  81. package/src/components/Uploader/ImageUploader.tsx +311 -0
  82. package/src/components/controls/Chip.tsx +78 -0
  83. package/src/components/controls/DoubleTab.tsx +80 -0
  84. package/src/components/controls/Pagination.tsx +164 -0
  85. package/src/components/controls/RadioButton.tsx +135 -0
  86. package/src/components/controls/RectangleCheckButton.tsx +106 -0
  87. package/src/components/controls/RoundCheckButton.tsx +106 -0
  88. package/src/components/controls/Stepper.tsx +84 -0
  89. package/src/components/controls/TabMenu.tsx +114 -0
  90. package/src/components/controls/ToggleButton.tsx +123 -0
  91. package/src/components/notifications/Banner.tsx +175 -0
  92. package/src/components/notifications/ClickTooltip.tsx +108 -0
  93. package/src/components/notifications/HoverTooltip.tsx +34 -0
  94. package/src/components/notifications/Snackbar.tsx +138 -0
  95. package/src/components/styleGuide/Colors.tsx +176 -0
  96. package/src/hooks/useImageUpload.ts +78 -0
  97. package/src/icons/AccountBalanceIcon.tsx +35 -0
  98. package/src/icons/AccountBalanceWalletFilledIcon.tsx +35 -0
  99. package/src/icons/AccountBalanceWalletIcon.tsx +35 -0
  100. package/src/icons/AccountCircleFilledIcon.tsx +35 -0
  101. package/src/icons/AccountCircleIcon.tsx +35 -0
  102. package/src/icons/AddAPhotoIcon.tsx +35 -0
  103. package/src/icons/AddBusinessFilledIcon.tsx +35 -0
  104. package/src/icons/AddBusinessIcon.tsx +35 -0
  105. package/src/icons/AddCircleFilledIcon.tsx +35 -0
  106. package/src/icons/AddCircleIcon.tsx +35 -0
  107. package/src/icons/AddIcon.tsx +35 -0
  108. package/src/icons/AddPhotoAlternateIcon.tsx +35 -0
  109. package/src/icons/AddShoppingCartIcon.tsx +35 -0
  110. package/src/icons/AddToSocialsIcon.tsx +48 -0
  111. package/src/icons/AddsClickIcon.tsx +35 -0
  112. package/src/icons/AdminPanelSettingsIcon.tsx +35 -0
  113. package/src/icons/AirplaneModeActiveIcon.tsx +35 -0
  114. package/src/icons/AlarmIcon.tsx +35 -0
  115. package/src/icons/AllInboxIcon.tsx +35 -0
  116. package/src/icons/AnimationIcon.tsx +35 -0
  117. package/src/icons/AppsFilledIcon.tsx +35 -0
  118. package/src/icons/AppsIcon.tsx +35 -0
  119. package/src/icons/ArchiveIcon.tsx +35 -0
  120. package/src/icons/ArrowBackIcon.tsx +35 -0
  121. package/src/icons/ArrowCircleDownFilledIcon.tsx +35 -0
  122. package/src/icons/ArrowCircleUpFilledIcon.tsx +35 -0
  123. package/src/icons/ArrowDropDownIcon.tsx +32 -0
  124. package/src/icons/ArrowDropUpIcon.tsx +37 -0
  125. package/src/icons/ArrowForwardIcon.tsx +35 -0
  126. package/src/icons/ArtTrackIcon.tsx +35 -0
  127. package/src/icons/ArticleFilledIcon.tsx +35 -0
  128. package/src/icons/ArticleIcon.tsx +35 -0
  129. package/src/icons/AttachMoneyIcon.tsx +35 -0
  130. package/src/icons/AttachmentIcon.tsx +35 -0
  131. package/src/icons/AudioFileFilledIcon.tsx +35 -0
  132. package/src/icons/AutoAwesomeMosaicFilledIcon.tsx +35 -0
  133. package/src/icons/AutoAwesomeMosaicIcon.tsx +35 -0
  134. package/src/icons/AutoFixFilledIcon.tsx +35 -0
  135. package/src/icons/AutoFixIcon.tsx +35 -0
  136. package/src/icons/AutoGraphIcon.tsx +35 -0
  137. package/src/icons/AwardStarFilledIcon.tsx +35 -0
  138. package/src/icons/AwardStarIcon.tsx +35 -0
  139. package/src/icons/BarChartFilledIcon.tsx +35 -0
  140. package/src/icons/BlockIcon.tsx +35 -0
  141. package/src/icons/BoltFilledIcon.tsx +35 -0
  142. package/src/icons/BoltIcon.tsx +35 -0
  143. package/src/icons/BookOnlineIcon.tsx +35 -0
  144. package/src/icons/BugReportIcon.tsx +35 -0
  145. package/src/icons/BusinessCenterFilledIcon.tsx +35 -0
  146. package/src/icons/BusinessCenterIcon.tsx +35 -0
  147. package/src/icons/CalendarMonthFilledIcon.tsx +35 -0
  148. package/src/icons/CalendarMonthIcon.tsx +35 -0
  149. package/src/icons/CalendarTodayIcon.tsx +35 -0
  150. package/src/icons/CallMadeIcon.tsx +35 -0
  151. package/src/icons/CallMissedIcon.tsx +35 -0
  152. package/src/icons/CallMissedOutgoingIcon.tsx +35 -0
  153. package/src/icons/CallRecievedIcon.tsx +35 -0
  154. package/src/icons/CampaignFilledIcon.tsx +22 -0
  155. package/src/icons/CampaignIcon.tsx +35 -0
  156. package/src/icons/CancelFilledIcon.tsx +22 -0
  157. package/src/icons/CancelIcon.tsx +22 -0
  158. package/src/icons/CaptivePortalIcon.tsx +35 -0
  159. package/src/icons/CardLayoutIcon.tsx +22 -0
  160. package/src/icons/CasesFilledIcon.tsx +35 -0
  161. package/src/icons/CasesIcon.tsx +35 -0
  162. package/src/icons/CategoryIcon.tsx +35 -0
  163. package/src/icons/ChairIcon.tsx +35 -0
  164. package/src/icons/ChangeCircleIcon.tsx +35 -0
  165. package/src/icons/ChatBubbleFilledIcon.tsx +35 -0
  166. package/src/icons/ChatBubbleIcon.tsx +35 -0
  167. package/src/icons/ChatFilledIcon.tsx +35 -0
  168. package/src/icons/ChatIcon.tsx +35 -0
  169. package/src/icons/CheckCircleFilledIcon.tsx +35 -0
  170. package/src/icons/CheckCircleIcon.tsx +35 -0
  171. package/src/icons/CheckIcon.tsx +35 -0
  172. package/src/icons/ChevronLeftIcon.tsx +43 -0
  173. package/src/icons/ChevronRightIcon.tsx +43 -0
  174. package/src/icons/CloseIcon.tsx +35 -0
  175. package/src/icons/CloudUploadIcon.tsx +35 -0
  176. package/src/icons/CodeIcon.tsx +35 -0
  177. package/src/icons/CoffeeIcon.tsx +35 -0
  178. package/src/icons/CollectionsBookmarkIcon.tsx +35 -0
  179. package/src/icons/ColorPickerIcon.tsx +22 -0
  180. package/src/icons/CommentCircleAltChatMessageIcon.tsx +24 -0
  181. package/src/icons/ConfirmationNumberIcon.tsx +35 -0
  182. package/src/icons/ContactMailFilledIcon.tsx +35 -0
  183. package/src/icons/ContactMailIcon.tsx +35 -0
  184. package/src/icons/ContactPageIcon.tsx +22 -0
  185. package/src/icons/ContactPhoneFilledIcon.tsx +35 -0
  186. package/src/icons/ContactPhoneIcon.tsx +35 -0
  187. package/src/icons/ContactsIcon.tsx +22 -0
  188. package/src/icons/ContentCopyIcon.tsx +35 -0
  189. package/src/icons/CopyIcon.tsx +35 -0
  190. package/src/icons/CreditCardFilledIcon.tsx +35 -0
  191. package/src/icons/CreditCardIcon.tsx +35 -0
  192. package/src/icons/DarkModeIcon.tsx +35 -0
  193. package/src/icons/DashboardFilledIcon.tsx +35 -0
  194. package/src/icons/DashboardIcon.tsx +35 -0
  195. package/src/icons/DatabaseFilledIcon.tsx +35 -0
  196. package/src/icons/DeleteIcon.tsx +35 -0
  197. package/src/icons/DescriptionIcon.tsx +35 -0
  198. package/src/icons/DesktopMacIcon.tsx +35 -0
  199. package/src/icons/DevicesIcon.tsx +35 -0
  200. package/src/icons/DiamondFilledIcon.tsx +35 -0
  201. package/src/icons/DiamondIcon.tsx +35 -0
  202. package/src/icons/DigitalProductsIcon.tsx +58 -0
  203. package/src/icons/DiscountIcon.tsx +24 -0
  204. package/src/icons/Diversity1Icon.tsx +22 -0
  205. package/src/icons/Diversity2Icon.tsx +22 -0
  206. package/src/icons/Diversity3Icon.tsx +22 -0
  207. package/src/icons/DnsIcon.tsx +35 -0
  208. package/src/icons/DoNotDisturbOnFilledIcon.tsx +35 -0
  209. package/src/icons/DoNotDisturbOnIcon.tsx +35 -0
  210. package/src/icons/DomainAddIcon.tsx +35 -0
  211. package/src/icons/DomainIcon.tsx +35 -0
  212. package/src/icons/DomainVerificationIcon.tsx +35 -0
  213. package/src/icons/DownloadIcon.tsx +35 -0
  214. package/src/icons/DraftsIcon.tsx +35 -0
  215. package/src/icons/DragHandleIcon.tsx +35 -0
  216. package/src/icons/DragIndicatorIcon.tsx +35 -0
  217. package/src/icons/EditFilledIcon.tsx +35 -0
  218. package/src/icons/EditIcon.tsx +35 -0
  219. package/src/icons/EmojiEventsFilledIcon.tsx +35 -0
  220. package/src/icons/EmojiEventsIcon.tsx +35 -0
  221. package/src/icons/EmojiFoodBeverageIcon.tsx +35 -0
  222. package/src/icons/EmojiIcon.tsx +35 -0
  223. package/src/icons/EmptyIcon.tsx +22 -0
  224. package/src/icons/ErrorFilledIcon.tsx +35 -0
  225. package/src/icons/ErrorIcon.tsx +35 -0
  226. package/src/icons/EventFilledIcon.tsx +35 -0
  227. package/src/icons/EventIcon.tsx +35 -0
  228. package/src/icons/EventTicketIcon.tsx +54 -0
  229. package/src/icons/ExpandLessIcon.tsx +40 -0
  230. package/src/icons/ExpandMoreIcon.tsx +35 -0
  231. package/src/icons/FastActionPricingIcon.tsx +58 -0
  232. package/src/icons/FeedFilledIcon.tsx +35 -0
  233. package/src/icons/FeedIcon.tsx +35 -0
  234. package/src/icons/FilePresentIcon.tsx +35 -0
  235. package/src/icons/FilterListIcon.tsx +35 -0
  236. package/src/icons/FitbitArrowDownIcon.tsx +35 -0
  237. package/src/icons/FitbitArrowUpwardIcon.tsx +35 -0
  238. package/src/icons/FlagIcon.tsx +35 -0
  239. package/src/icons/FormatAlignCenterIcon.tsx +35 -0
  240. package/src/icons/FormatAlignJustifyIcon.tsx +35 -0
  241. package/src/icons/FormatAlignLeftIcon.tsx +35 -0
  242. package/src/icons/FormatAlignRightIcon.tsx +35 -0
  243. package/src/icons/FormatBoldIcon.tsx +35 -0
  244. package/src/icons/FormatItalicIcon.tsx +35 -0
  245. package/src/icons/FormatListBulletedIcon.tsx +35 -0
  246. package/src/icons/FormatListNumberedIcon.tsx +35 -0
  247. package/src/icons/FormatSizeIcon.tsx +35 -0
  248. package/src/icons/FormatUnderlineIcon.tsx +35 -0
  249. package/src/icons/ForumIcon.tsx +35 -0
  250. package/src/icons/ForwardToInboxIcon.tsx +35 -0
  251. package/src/icons/GalleryThumbnailIcon.tsx +35 -0
  252. package/src/icons/GppBadFilledIcon.tsx +35 -0
  253. package/src/icons/GppBadIcon.tsx +35 -0
  254. package/src/icons/GppMaybeFilledIcon.tsx +35 -0
  255. package/src/icons/GppMaybeIcon.tsx +35 -0
  256. package/src/icons/GridViewIcon.tsx +35 -0
  257. package/src/icons/GroupFilledIcon.tsx +35 -0
  258. package/src/icons/GroupIcon.tsx +35 -0
  259. package/src/icons/HeadphonesIcon.tsx +35 -0
  260. package/src/icons/HomeFilledIcon.tsx +35 -0
  261. package/src/icons/HomeIcon.tsx +35 -0
  262. package/src/icons/HomePinIcon.tsx +35 -0
  263. package/src/icons/HourGlassEmptyIcon.tsx +35 -0
  264. package/src/icons/HubIcon.tsx +22 -0
  265. package/src/icons/InfoFilledIcon.tsx +35 -0
  266. package/src/icons/InfoGradientFilledIcon.tsx +49 -0
  267. package/src/icons/InfoIcon.tsx +35 -0
  268. package/src/icons/InsertChartFilledIcon.tsx +35 -0
  269. package/src/icons/InsertChartIcon.tsx +35 -0
  270. package/src/icons/InventoryIcon.tsx +22 -0
  271. package/src/icons/IosShareIcon.tsx +35 -0
  272. package/src/icons/KeyboardBackspaceIcon.tsx +35 -0
  273. package/src/icons/LanguageIcon.tsx +35 -0
  274. package/src/icons/LibraryMusicIcon.tsx +35 -0
  275. package/src/icons/LinkIcon.tsx +35 -0
  276. package/src/icons/LinkOffIcon.tsx +35 -0
  277. package/src/icons/LocalActivityIcon.tsx +35 -0
  278. package/src/icons/LocalFloristFilledIcon.tsx +35 -0
  279. package/src/icons/LocalFloristIcon.tsx +35 -0
  280. package/src/icons/LocationOnIcon.tsx +35 -0
  281. package/src/icons/LockIcon.tsx +35 -0
  282. package/src/icons/LoginIcon.tsx +35 -0
  283. package/src/icons/LogoutIcon.tsx +43 -0
  284. package/src/icons/MailIcon.tsx +35 -0
  285. package/src/icons/MarkUnreadChatIcon.tsx +35 -0
  286. package/src/icons/MasterClassIcon.tsx +74 -0
  287. package/src/icons/MediaLinkFilledIcon.tsx +35 -0
  288. package/src/icons/MediaLinkIcon.tsx +35 -0
  289. package/src/icons/MenuIcon.tsx +35 -0
  290. package/src/icons/MenuOpenIcon.tsx +35 -0
  291. package/src/icons/MilitaryTechFilledIcon.tsx +35 -0
  292. package/src/icons/MilitaryTechIcon.tsx +35 -0
  293. package/src/icons/MonitoringIcon.tsx +35 -0
  294. package/src/icons/MoreHorizontalIcon.tsx +35 -0
  295. package/src/icons/MoreHorizontalSmallIcon.tsx +35 -0
  296. package/src/icons/MoreVerticalIcon.tsx +35 -0
  297. package/src/icons/NotificationsFilledIcon.tsx +40 -0
  298. package/src/icons/NotificationsIcon.tsx +35 -0
  299. package/src/icons/OpenInNewIcon.tsx +35 -0
  300. package/src/icons/OthersIcon.tsx +58 -0
  301. package/src/icons/PageViewIcon.tsx +35 -0
  302. package/src/icons/PaidIcon.tsx +35 -0
  303. package/src/icons/PaletteFilledIcon.tsx +35 -0
  304. package/src/icons/PaletteIcon.tsx +35 -0
  305. package/src/icons/PauseIcon.tsx +22 -0
  306. package/src/icons/PayInTranchesIcon.tsx +29 -0
  307. package/src/icons/PaymentsFilledIcon.tsx +35 -0
  308. package/src/icons/PaymentsIcon.tsx +35 -0
  309. package/src/icons/PendingActionsIcon.tsx +35 -0
  310. package/src/icons/PermMediaIcon.tsx +35 -0
  311. package/src/icons/PersonAddIcon.tsx +35 -0
  312. package/src/icons/PersonIcon.tsx +35 -0
  313. package/src/icons/PhotoCameraIcon.tsx +35 -0
  314. package/src/icons/PhotoFilledIcon.tsx +35 -0
  315. package/src/icons/PhotoIcon.tsx +35 -0
  316. package/src/icons/PhotoLibraryFilledIcon.tsx +35 -0
  317. package/src/icons/PhotoLibraryIcon.tsx +35 -0
  318. package/src/icons/PictureAsPdfFilledIcon.tsx +35 -0
  319. package/src/icons/PictureAsPdfIcon.tsx +35 -0
  320. package/src/icons/PlayArrowIcon.tsx +32 -0
  321. package/src/icons/PlayCircleFilledIcon.tsx +35 -0
  322. package/src/icons/PlayCircleIcon.tsx +22 -0
  323. package/src/icons/PowerRoundedIcon.tsx +35 -0
  324. package/src/icons/PreviewIcon.tsx +35 -0
  325. package/src/icons/PublicIcon.tsx +22 -0
  326. package/src/icons/PublishIcon.tsx +35 -0
  327. package/src/icons/PushPinFilledIcon.tsx +35 -0
  328. package/src/icons/PushPinIcon.tsx +35 -0
  329. package/src/icons/QrCode2Icon.tsx +35 -0
  330. package/src/icons/RadioButtonCheckedIcon.tsx +35 -0
  331. package/src/icons/RadioButtonUncheckedIcon.tsx +35 -0
  332. package/src/icons/RecieptLongFilledIcon.tsx +35 -0
  333. package/src/icons/RecieptLongIcon.tsx +35 -0
  334. package/src/icons/RecordVoiceOverIcon.tsx +35 -0
  335. package/src/icons/RedeemIcon.tsx +35 -0
  336. package/src/icons/RedoIcon.tsx +35 -0
  337. package/src/icons/RemoveIcon.tsx +32 -0
  338. package/src/icons/RemoveRoadIcon.tsx +35 -0
  339. package/src/icons/ReportFilledIcon.tsx +35 -0
  340. package/src/icons/ReportIcon.tsx +35 -0
  341. package/src/icons/ReviewsIcon.tsx +43 -0
  342. package/src/icons/SavingsFilledIcon.tsx +35 -0
  343. package/src/icons/SavingsIcon.tsx +35 -0
  344. package/src/icons/ScheduleIcon.tsx +35 -0
  345. package/src/icons/ScheduleSendIcon.tsx +35 -0
  346. package/src/icons/SearchNormalIcon.tsx +32 -0
  347. package/src/icons/SellIcon.tsx +35 -0
  348. package/src/icons/SendIcon.tsx +35 -0
  349. package/src/icons/ServicesIcon.tsx +39 -0
  350. package/src/icons/SettingsFilledIcon.tsx +35 -0
  351. package/src/icons/SettingsIcon.tsx +35 -0
  352. package/src/icons/ShareIcon.tsx +35 -0
  353. package/src/icons/ShareWithContactsIcon.tsx +62 -0
  354. package/src/icons/ShareWithSocialsIcon.tsx +64 -0
  355. package/src/icons/ShoppingCartFilledIcon.tsx +35 -0
  356. package/src/icons/ShoppingCartIcon.tsx +35 -0
  357. package/src/icons/ShuffleIcon.tsx +35 -0
  358. package/src/icons/SmartPhoneIcon.tsx +35 -0
  359. package/src/icons/SocialLeaderboardIcon.tsx +35 -0
  360. package/src/icons/StarFilledIcon.tsx +35 -0
  361. package/src/icons/StarHalfIcon.tsx +35 -0
  362. package/src/icons/StarIcon.tsx +35 -0
  363. package/src/icons/StoreFrontFilledIcon.tsx +35 -0
  364. package/src/icons/StoreFrontIcon.tsx +35 -0
  365. package/src/icons/StrikeThroughSIcon.tsx +35 -0
  366. package/src/icons/StyleIcon.tsx +35 -0
  367. package/src/icons/SubscriptionIcon.tsx +46 -0
  368. package/src/icons/SubscriptionsFilledIcon.tsx +35 -0
  369. package/src/icons/SubscriptionsIcon.tsx +35 -0
  370. package/src/icons/SupervisorAccountIcon.tsx +35 -0
  371. package/src/icons/SwitchAccountFilledIcon.tsx +35 -0
  372. package/src/icons/SwitchAccountIcon.tsx +35 -0
  373. package/src/icons/SyncSavedLocallyIcon.tsx +35 -0
  374. package/src/icons/TabletIcon.tsx +35 -0
  375. package/src/icons/ThumbDownFilledIcon.tsx +22 -0
  376. package/src/icons/ThumbDownIcon.tsx +22 -0
  377. package/src/icons/ThumbUpFilledIcon.tsx +22 -0
  378. package/src/icons/ThumbUpIcon.tsx +22 -0
  379. package/src/icons/TocIcon.tsx +35 -0
  380. package/src/icons/TrainingsIcon.tsx +37 -0
  381. package/src/icons/TrashDeleteBinIcon.tsx +36 -0
  382. package/src/icons/TrendingUpIcon.tsx +35 -0
  383. package/src/icons/UndoIcon.tsx +35 -0
  384. package/src/icons/UnfoldMoreIcon.tsx +35 -0
  385. package/src/icons/UploadIcon.tsx +35 -0
  386. package/src/icons/VerifiedIcon.tsx +24 -0
  387. package/src/icons/ViewAgendaIcon.tsx +22 -0
  388. package/src/icons/ViewArrayIcon.tsx +35 -0
  389. package/src/icons/ViewCarouselIcon.tsx +35 -0
  390. package/src/icons/ViewCozyIcon.tsx +22 -0
  391. package/src/icons/ViewModuleIcon.tsx +35 -0
  392. package/src/icons/VisibilityIcon.tsx +35 -0
  393. package/src/icons/VisibilityOffIcon.tsx +35 -0
  394. package/src/icons/VolunteerActivismFilledIcon.tsx +35 -0
  395. package/src/icons/VolunteerActivismIcon.tsx +35 -0
  396. package/src/icons/WBSunnyIcon.tsx +35 -0
  397. package/src/icons/WarningFilledIcon.tsx +35 -0
  398. package/src/icons/WarningIcon.tsx +35 -0
  399. package/src/icons/WebinarsIcon.tsx +57 -0
  400. package/src/icons/WidgetsFilledIcon.tsx +35 -0
  401. package/src/icons/WidgetsIcon.tsx +35 -0
  402. package/src/icons/WorkshopsIcon.tsx +50 -0
  403. package/src/icons/index.ts +305 -0
  404. package/src/pages/Home.tsx +30 -0
  405. package/src/pages/Login.tsx +13 -0
  406. package/src/pages/Page404.tsx +13 -0
  407. package/src/pages/index.tsx +21 -0
  408. package/src/routes/index.tsx +7 -0
  409. package/src/stories/Accordion/Accordion.stories.tsx +100 -0
  410. package/src/stories/Accordion/AccordionWrapper.tsx +16 -0
  411. package/src/stories/Avatars/Avatar.stories.ts +57 -0
  412. package/src/stories/Buttons/Button.stories.tsx +95 -0
  413. package/src/stories/Buttons/IconButton.stories.ts +68 -0
  414. package/src/stories/Buttons/IconButtonWrapper.tsx +14 -0
  415. package/src/stories/Colors.mdx +12 -0
  416. package/src/stories/Configure.mdx +371 -0
  417. package/src/stories/InputFields/InputFields.stories.ts +54 -0
  418. package/src/stories/InputFields/MarkdownEditor.stories.ts +20 -0
  419. package/src/stories/InputFields/SearchInput.stories.ts +22 -0
  420. package/src/stories/InputFields/SearchInput.tsx +19 -0
  421. package/src/stories/InputFields/Select/CountrySelect.stories.tsx +21 -0
  422. package/src/stories/InputFields/Select/CountrySelectWrapper.tsx +25 -0
  423. package/src/stories/InputFields/Select/CreatableSelect.stories.tsx +48 -0
  424. package/src/stories/InputFields/Select/CreatableSelectWrapper.tsx +25 -0
  425. package/src/stories/InputFields/Select/PhoneNumberInput.stories.tsx +33 -0
  426. package/src/stories/InputFields/Select/PhoneNumberInputWrapper.tsx +21 -0
  427. package/src/stories/InputFields/Select/Select.stories.tsx +49 -0
  428. package/src/stories/InputFields/Select/SelectWrapper.tsx +25 -0
  429. package/src/stories/InputFields/TextArea.stories.ts +22 -0
  430. package/src/stories/InputFields/UsernameInput.stories.ts +22 -0
  431. package/src/stories/Tiles/Tile.stories.tsx +71 -0
  432. package/src/stories/Tiles/TileWrapper.tsx +17 -0
  433. package/src/stories/Typography/DisplayText.stories.ts +52 -0
  434. package/src/stories/Typography/HeadingText.stories.ts +86 -0
  435. package/src/stories/Typography/ParagraphText.stories.ts +62 -0
  436. package/src/stories/Typography/SubtitleText.stories.ts +93 -0
  437. package/src/stories/Uploaders/FileUploadWrapper.tsx +25 -0
  438. package/src/stories/Uploaders/FileUploader.stories.tsx +17 -0
  439. package/src/stories/Uploaders/ImageUploadWrapper.tsx +30 -0
  440. package/src/stories/Uploaders/ImageUploader.stories.tsx +19 -0
  441. package/src/stories/assets/accessibility.png +0 -0
  442. package/src/stories/assets/accessibility.svg +5 -0
  443. package/src/stories/assets/addon-library.png +0 -0
  444. package/src/stories/assets/assets.png +0 -0
  445. package/src/stories/assets/context.png +0 -0
  446. package/src/stories/assets/discord.svg +15 -0
  447. package/src/stories/assets/docs.png +0 -0
  448. package/src/stories/assets/figma-plugin.png +0 -0
  449. package/src/stories/assets/github.svg +3 -0
  450. package/src/stories/assets/share.png +0 -0
  451. package/src/stories/assets/styling.png +0 -0
  452. package/src/stories/assets/testing.png +0 -0
  453. package/src/stories/assets/theming.png +0 -0
  454. package/src/stories/assets/tutorials.svg +12 -0
  455. package/src/stories/assets/youtube.svg +4 -0
  456. package/src/stories/colors/index.ts +4 -0
  457. package/src/stories/controls/Chip.stories.ts +42 -0
  458. package/src/stories/controls/DoubleTab.stories.ts +32 -0
  459. package/src/stories/controls/DoubleTabWrapper.tsx +15 -0
  460. package/src/stories/controls/Pagination.stories.ts +21 -0
  461. package/src/stories/controls/PaginationWrapper.tsx +23 -0
  462. package/src/stories/controls/RadioButton.stories.ts +49 -0
  463. package/src/stories/controls/RectangleCheckButton.stories.ts +41 -0
  464. package/src/stories/controls/RoundCheckButton.stories.ts +41 -0
  465. package/src/stories/controls/Stepper.stories.ts +37 -0
  466. package/src/stories/controls/StepperDemoCmp.tsx +37 -0
  467. package/src/stories/controls/TabMenu.stories.ts +33 -0
  468. package/src/stories/controls/TabMenuWrapper.tsx +14 -0
  469. package/src/stories/controls/ToggleButton.stories.ts +41 -0
  470. package/src/stories/icons/Icons.mdx +26 -0
  471. package/src/stories/icons/index.ts +613 -0
  472. package/src/stories/notifications/Banner.stories.ts +88 -0
  473. package/src/stories/notifications/ClickTooltip.stories.ts +21 -0
  474. package/src/stories/notifications/ClickTooltipWrapper.tsx +19 -0
  475. package/src/stories/notifications/HoverTooltip.stories.ts +35 -0
  476. package/src/stories/notifications/HoverTooltipWrapper.tsx +16 -0
  477. package/src/stories/notifications/Snackbar.stories.ts +17 -0
  478. package/src/stories/notifications/SnackbarWrapper.tsx +107 -0
  479. package/src/utils/countries-flag.json +1752 -0
  480. package/tsconfig.json +34 -0
  481. package/vite.config.ts +27 -0
@@ -0,0 +1,135 @@
1
+ /** @format */
2
+
3
+ import { Box, Flex, useRadio, RadioProps, Text } from "@chakra-ui/react";
4
+ import Colors from "components/styleGuide/Colors";
5
+
6
+ interface Props extends RadioProps {
7
+ label?: string;
8
+ subtext?: string;
9
+ }
10
+
11
+ const RadioButton = (props: Props) => {
12
+ const { htmlProps, getInputProps, getCheckboxProps } = useRadio(props);
13
+ const input = getInputProps({});
14
+ const checkbox = getCheckboxProps();
15
+ return (
16
+ <Box as="label" cursor="pointer" position="relative" {...htmlProps}>
17
+ <input {...input} disabled={props.isDisabled} />
18
+ <Flex alignItems="center" direction={"row"} gap={"12px"}>
19
+ <Box
20
+ {...checkbox}
21
+ cursor="pointer"
22
+ border={`1px solid ${Colors.gray100}`}
23
+ borderWidth={1}
24
+ h="18px"
25
+ w="18px"
26
+ borderRadius="100px"
27
+ position="relative"
28
+ display="inline-flex"
29
+ justifyContent={"center"}
30
+ alignItems={"center"}
31
+ boxSizing="border-box"
32
+ outline={"1px solid transparent"}
33
+ bg={Colors.white100}
34
+ _pressed={{
35
+ bg: Colors.black300,
36
+ outline: `0.6px solid ${Colors.gray100} `,
37
+ _after: {
38
+ content: '""',
39
+ h: "100%",
40
+ w: "100%",
41
+ bg: Colors.white100,
42
+ borderRadius: "50%",
43
+ display: "block",
44
+ },
45
+ }}
46
+ _hover={{
47
+ bg: Colors.black300,
48
+ transition: "outline 0.3s ease-in-out, background 0.3s ease-in-out",
49
+ padding: "2px",
50
+ border: "none",
51
+ _disabled: {
52
+ bg: Colors.white100,
53
+ border: `1px solid ${Colors.gray100}`,
54
+ cursor: "not-allowed",
55
+ _after: {
56
+ display: "none",
57
+ },
58
+ },
59
+ _pressed: {
60
+ outline: `0.6px solid ${Colors.gray100} `,
61
+ },
62
+ _checked: {
63
+ padding: "5px",
64
+ _after: {
65
+ content: '""',
66
+ h: "100%",
67
+ w: "100%",
68
+ bg: Colors.white100,
69
+ borderRadius: "50%",
70
+ display: "block",
71
+ },
72
+ outline: `1.8px solid ${Colors.gray100} `,
73
+ },
74
+ _after: {
75
+ content: '""',
76
+ h: "100%",
77
+ w: "100%",
78
+ bg: Colors.white100,
79
+ borderRadius: "100%",
80
+ display: "block",
81
+ },
82
+ }}
83
+ _checked={{
84
+ bg: Colors.black300,
85
+ border: "none",
86
+ padding: "5px",
87
+ _after: {
88
+ display: "block",
89
+ },
90
+ }}
91
+ _focus={{
92
+ boxShadow: "none",
93
+ }}
94
+ _after={{
95
+ content: '""',
96
+ h: "100%",
97
+ w: "100%",
98
+ bg: Colors.white100,
99
+ borderRadius: "50%",
100
+ display: "none",
101
+ }}
102
+ {...props}
103
+ />
104
+ {(props.label || props.subtext) && (
105
+ <Flex direction={"column"} gap={"4px"}>
106
+ <Text
107
+ color={Colors.black300}
108
+ fontFamily={"Degular"}
109
+ fontSize={"16px"}
110
+ fontWeight={600}
111
+ lineHeight={"20px"}
112
+ letterSpacing={"-0.064px"}
113
+ margin={0}
114
+ >
115
+ {props.label}
116
+ </Text>
117
+ <Text
118
+ color={Colors.gray400}
119
+ fontFamily={"Degular"}
120
+ fontSize={"14px"}
121
+ fontWeight={500}
122
+ lineHeight={"16px"}
123
+ letterSpacing={"-0.2px"}
124
+ margin={0}
125
+ >
126
+ {props.subtext}
127
+ </Text>
128
+ </Flex>
129
+ )}
130
+ </Flex>
131
+ </Box>
132
+ );
133
+ };
134
+
135
+ export default RadioButton;
@@ -0,0 +1,106 @@
1
+ /** @format */
2
+
3
+ import { Box, Flex, Text, useCheckbox, CheckboxProps } from "@chakra-ui/react";
4
+ import Colors from "components/styleGuide/Colors";
5
+ import CheckIcon from "icons/CheckIcon";
6
+
7
+ interface Props extends CheckboxProps {
8
+ label?: string;
9
+ subtext?: string;
10
+ }
11
+ const RectangleCheckButton = (props: Props) => {
12
+ const { state, getCheckboxProps, getInputProps, getLabelProps, htmlProps } =
13
+ useCheckbox(props);
14
+
15
+ return (
16
+ <Box as="label" cursor="pointer" position={"relative"} {...htmlProps}>
17
+ <input {...getInputProps()} disabled={props.isDisabled} />
18
+ <Flex alignItems={"center"} direction={"row"} gap={"12px"}>
19
+ <Box
20
+ cursor="pointer"
21
+ border={`1px solid ${Colors.gray100}`}
22
+ borderWidth={1}
23
+ h="18px"
24
+ w="18px"
25
+ borderRadius="4.5px"
26
+ position="relative"
27
+ display="inline-flex"
28
+ justifyContent={"center"}
29
+ alignItems={"center"}
30
+ boxSizing="border-box"
31
+ outline={"1px solid transparent"}
32
+ bg={Colors.white100}
33
+ _pressed={{
34
+ bg: Colors.black300,
35
+ outline: `0.6px solid ${Colors.gray100} `,
36
+ _after: {
37
+ content: '""',
38
+ h: "100%",
39
+ w: "100%",
40
+ bg: Colors.white100,
41
+ borderRadius: "2.25px",
42
+ display: "block",
43
+ },
44
+ }}
45
+ _hover={{
46
+ bg: Colors.black300,
47
+ transition: "outline 0.3s ease-in-out, background 0.3s ease-in-out",
48
+ padding: "2px",
49
+ border: "none",
50
+ _checked: {
51
+ _after: {
52
+ display: "none",
53
+ },
54
+ outline: `1.8px solid ${Colors.gray100} `,
55
+ },
56
+ _after: {
57
+ content: '""',
58
+ h: "100%",
59
+ w: "100%",
60
+ bg: Colors.white100,
61
+ borderRadius: "2.25px",
62
+ display: "block",
63
+ },
64
+ }}
65
+ _checked={{
66
+ bg: Colors.black300,
67
+ border: "none",
68
+ }}
69
+ {...getCheckboxProps()}
70
+ >
71
+ {state.isChecked && <CheckIcon color={Colors.white100} />}
72
+ </Box>
73
+ <Flex direction={"column"} gap={"4px"}>
74
+ {props.label && (
75
+ <Text
76
+ color={Colors.black300}
77
+ fontFamily={"Degular"}
78
+ fontSize={"16px"}
79
+ fontWeight={600}
80
+ lineHeight={"20px"}
81
+ letterSpacing={"-0.064px"}
82
+ margin={0}
83
+ >
84
+ {props.label}
85
+ </Text>
86
+ )}
87
+ {props.subtext && (
88
+ <Text
89
+ color={Colors.gray400}
90
+ fontFamily={"Degular"}
91
+ fontSize={"14px"}
92
+ fontWeight={500}
93
+ lineHeight={"16px"}
94
+ letterSpacing={"-0.2px"}
95
+ margin={0}
96
+ >
97
+ {props.subtext}
98
+ </Text>
99
+ )}
100
+ </Flex>
101
+ </Flex>
102
+ </Box>
103
+ );
104
+ };
105
+
106
+ export default RectangleCheckButton;
@@ -0,0 +1,106 @@
1
+ /** @format */
2
+
3
+ import { Box, Flex, Text, useCheckbox, CheckboxProps } from "@chakra-ui/react";
4
+ import Colors from "components/styleGuide/Colors";
5
+ import CheckIcon from "icons/CheckIcon";
6
+
7
+ interface Props extends CheckboxProps {
8
+ label?: string;
9
+ subtext?: string;
10
+ }
11
+ const RoundCheckButton = (props: Props) => {
12
+ const { state, getCheckboxProps, getInputProps, getLabelProps, htmlProps } =
13
+ useCheckbox(props);
14
+
15
+ return (
16
+ <Box as="label" cursor="pointer" position={"relative"} {...htmlProps}>
17
+ <input {...getInputProps()} disabled={props.isDisabled} />
18
+ <Flex alignItems={"center"} direction={"row"} gap={"12px"}>
19
+ <Box
20
+ cursor="pointer"
21
+ border={`1px solid ${Colors.gray100}`}
22
+ borderWidth={1}
23
+ h="18px"
24
+ w="18px"
25
+ borderRadius="100px"
26
+ position="relative"
27
+ display="inline-flex"
28
+ justifyContent={"center"}
29
+ alignItems={"center"}
30
+ boxSizing="border-box"
31
+ outline={"1px solid transparent"}
32
+ bg={Colors.white100}
33
+ _pressed={{
34
+ bg: Colors.black300,
35
+ outline: `0.6px solid ${Colors.gray100} `,
36
+ _after: {
37
+ content: '""',
38
+ h: "100%",
39
+ w: "100%",
40
+ bg: Colors.white100,
41
+ borderRadius: "50%",
42
+ display: "block",
43
+ },
44
+ }}
45
+ _hover={{
46
+ bg: Colors.black300,
47
+ transition: "outline 0.3s ease-in-out, background 0.3s ease-in-out",
48
+ padding: "2px",
49
+ border: "none",
50
+ _checked: {
51
+ _after: {
52
+ display: "none",
53
+ },
54
+ outline: `1.8px solid ${Colors.gray100} `,
55
+ },
56
+ _after: {
57
+ content: '""',
58
+ h: "100%",
59
+ w: "100%",
60
+ bg: Colors.white100,
61
+ borderRadius: "50%",
62
+ display: "block",
63
+ },
64
+ }}
65
+ _checked={{
66
+ bg: Colors.black300,
67
+ border: "none",
68
+ }}
69
+ {...getCheckboxProps()}
70
+ >
71
+ {state.isChecked && <CheckIcon color={Colors.white100} />}
72
+ </Box>
73
+ <Flex direction={"column"} gap={"4px"}>
74
+ {props.label && (
75
+ <Text
76
+ color={Colors.black300}
77
+ fontFamily={"Degular"}
78
+ fontSize={"16px"}
79
+ fontWeight={600}
80
+ lineHeight={"20px"}
81
+ letterSpacing={"-0.064px"}
82
+ margin={0}
83
+ >
84
+ {props.label}
85
+ </Text>
86
+ )}
87
+ {props.subtext && (
88
+ <Text
89
+ color={Colors.gray400}
90
+ fontFamily={"Degular"}
91
+ fontSize={"14px"}
92
+ fontWeight={500}
93
+ lineHeight={"16px"}
94
+ letterSpacing={"-0.2px"}
95
+ margin={0}
96
+ >
97
+ {props.subtext}
98
+ </Text>
99
+ )}
100
+ </Flex>
101
+ </Flex>
102
+ </Box>
103
+ );
104
+ };
105
+
106
+ export default RoundCheckButton;
@@ -0,0 +1,84 @@
1
+ /** @format */
2
+
3
+ import { Flex, Text, Box, FlexProps } from "@chakra-ui/react";
4
+ import { useEffect, useState, useCallback } from "react";
5
+ import Colors from "components/styleGuide/Colors";
6
+ import CheckIcon from "icons/CheckIcon";
7
+ export interface StepperProps extends FlexProps {
8
+ steps: {
9
+ name: string;
10
+ id: number;
11
+ }[];
12
+ page: number;
13
+ }
14
+ const Stepper = ({ steps, page, ...rest }: StepperProps) => {
15
+ const [elementHeight, setElementHeight] = useState(0);
16
+ const [marginTop, setMarginTop] = useState(0);
17
+ const [marginLeft, setMarginLeft] = useState(0);
18
+ const stepBar = useCallback(
19
+ (node: HTMLInputElement) => {
20
+ if (node !== null) {
21
+ const paddingTop = 28;
22
+ const marginBetweenSteps = 24;
23
+
24
+ setElementHeight(node?.clientHeight - paddingTop);
25
+ setMarginTop(marginBetweenSteps * steps.length);
26
+ setMarginLeft((node?.clientHeight - paddingTop - paddingTop) / 2);
27
+ }
28
+ },
29
+ [steps.length]
30
+ );
31
+
32
+ return (
33
+ <Flex
34
+ direction={"column"}
35
+ position={"relative"}
36
+ rowGap={"24px"}
37
+ ref={stepBar}
38
+ {...rest}
39
+ >
40
+ <Box
41
+ w={`${elementHeight}px`}
42
+ h={0}
43
+ transform="rotate(-90deg)"
44
+ border={`1px solid ${Colors.gray50} !important`}
45
+ pos="absolute"
46
+ top={`${marginTop}px`}
47
+ left={`-${marginLeft}px`}
48
+ ></Box>
49
+ {steps.map((step) => (
50
+ <Flex alignItems="center" gap="12px" key={step.id} height={"28px"}>
51
+ <Flex
52
+ alignItems="center"
53
+ bg={page === step.id ? Colors.polychromePinkOrange : Colors.gray50}
54
+ color={page === step.id ? Colors.white100 : Colors.gray400}
55
+ borderRadius="50%"
56
+ fontFamily={"Degular"}
57
+ fontSize={"14px"}
58
+ lineHeight={"16px"}
59
+ letterSpacing={"-0.2px"}
60
+ boxSize="28px"
61
+ justifyContent="center"
62
+ textAlign="center"
63
+ fontWeight={500}
64
+ zIndex={"99"}
65
+ >
66
+ {page > step.id ? <CheckIcon color={Colors.black300} /> : step.id}
67
+ </Flex>
68
+ <Text
69
+ fontSize={"16px"}
70
+ lineHeight="24px"
71
+ fontWeight={600}
72
+ fontFamily="Degular"
73
+ letterSpacing="-0.4px"
74
+ color={Colors.black300}
75
+ >
76
+ {step.name}
77
+ </Text>
78
+ </Flex>
79
+ ))}
80
+ </Flex>
81
+ );
82
+ };
83
+
84
+ export default Stepper;
@@ -0,0 +1,114 @@
1
+ /** @format */
2
+
3
+ import {
4
+ Tabs as DefaultTabs,
5
+ Tab,
6
+ TabList,
7
+ TabPanels,
8
+ TabPanel,
9
+ TabProps,
10
+ } from "@chakra-ui/react";
11
+ import Colors from "components/styleGuide/Colors";
12
+ export interface TabMenuProps extends TabProps {
13
+ items: {
14
+ name: string;
15
+ element: any;
16
+ }[];
17
+ }
18
+ const TabMenu = ({ items }: TabMenuProps) => {
19
+ return (
20
+ <DefaultTabs>
21
+ <TabList
22
+ h={"50px"}
23
+ alignItems="center"
24
+ p={"4px"}
25
+ borderBottom="unset"
26
+ fontFamily="Degular"
27
+ fontSize={"16px"}
28
+ lineHeight={"18px"}
29
+ gap={"24px"}
30
+ w={["100%", "max-content"]}
31
+ overflowX={["scroll", "auto"]}
32
+ >
33
+ {items.map((item, index) => (
34
+ <Tab
35
+ w="fit-content"
36
+ h="100%"
37
+ display="flex"
38
+ position={"relative"}
39
+ fontFamily={"Degular"}
40
+ fontSize={"16px"}
41
+ justifyContent="center"
42
+ border="none"
43
+ bg={"none"}
44
+ marginBottom="0"
45
+ cursor="pointer"
46
+ fontWeight={600}
47
+ color={Colors.gray400}
48
+ letterSpacing={"-0.4px"}
49
+ lineHeight={"16px"}
50
+ _hover={{
51
+ _after: {
52
+ bg: Colors.gray100,
53
+ width: "100%",
54
+ },
55
+ _selected: {
56
+ color: Colors.black300,
57
+ _after: {
58
+ width: "100%",
59
+ bg: Colors.black300,
60
+ },
61
+ },
62
+ _pressed: {
63
+ _after: {
64
+ bg: Colors.gray400,
65
+ width: "100%",
66
+ },
67
+ },
68
+ }}
69
+ _pressed={{
70
+ _after: {
71
+ bg: Colors.gray400,
72
+ width: "100%",
73
+ },
74
+ }}
75
+ _selected={{
76
+ bg: "none",
77
+ color: Colors.black300,
78
+ _after: {
79
+ width: "100%",
80
+ bg: Colors.black300,
81
+ },
82
+ }}
83
+ _after={{
84
+ content: '""',
85
+ position: "absolute",
86
+ left: 0,
87
+ right: 0,
88
+ bottom: "-4px",
89
+ width: "0%",
90
+ height: "2px",
91
+ borderRadius: "16px",
92
+ transition: "ease .40s",
93
+ }}
94
+ px={0}
95
+ py={"10px"}
96
+ key={index}
97
+ >
98
+ {item.name}
99
+ </Tab>
100
+ ))}
101
+ </TabList>
102
+
103
+ <TabPanels>
104
+ {items.map((item, index) => (
105
+ <TabPanel padding={"0"} key={index}>
106
+ {item.element}
107
+ </TabPanel>
108
+ ))}
109
+ </TabPanels>
110
+ </DefaultTabs>
111
+ );
112
+ };
113
+
114
+ export default TabMenu;
@@ -0,0 +1,123 @@
1
+ /** @format */
2
+
3
+ import { Switch, SwitchProps, Box, Flex, Text } from "@chakra-ui/react";
4
+ import Colors from "components/styleGuide/Colors";
5
+
6
+ interface ISwitch extends SwitchProps {
7
+ label?: string;
8
+ subtext?: string;
9
+ refkey?: string;
10
+ access?: string;
11
+ as?: any;
12
+ name?: string;
13
+ className?: string;
14
+ value?: any;
15
+ }
16
+ const ToggleButton = ({
17
+ label,
18
+ subtext,
19
+ refkey,
20
+ size,
21
+ className,
22
+ value,
23
+ as,
24
+ id,
25
+ onChange,
26
+ isChecked,
27
+ name,
28
+ isDisabled,
29
+ }: ISwitch) => {
30
+ return (
31
+ <Box as="label" cursor="pointer" position="relative">
32
+ <Flex alignItems={"center"} gap={"12px"}>
33
+ <Flex direction={"column"} gap={"4px"}>
34
+ {label && (
35
+ <Text
36
+ color={Colors.black300}
37
+ fontFamily={"Degular"}
38
+ fontSize={"16px"}
39
+ fontWeight={600}
40
+ lineHeight={"20px"}
41
+ letterSpacing={"-0.064px"}
42
+ margin={0}
43
+ >
44
+ {label}
45
+ </Text>
46
+ )}
47
+ {subtext && (
48
+ <Text
49
+ color={Colors.gray400}
50
+ fontFamily={"Degular"}
51
+ fontSize={"14px"}
52
+ fontWeight={500}
53
+ lineHeight={"16px"}
54
+ letterSpacing={"-0.2px"}
55
+ margin={0}
56
+ >
57
+ {subtext}
58
+ </Text>
59
+ )}
60
+ </Flex>
61
+ <Switch
62
+ id={id}
63
+ as={as}
64
+ name={name}
65
+ sx={{
66
+ ".chakra-switch__track": {
67
+ width: "36px",
68
+ height: "24px",
69
+ padding: "0px",
70
+ backgroundColor: Colors.gray100,
71
+ borderRadius: "100px",
72
+ border: "none",
73
+ },
74
+ ".chakra-switch__track[data-checked]": {
75
+ width: "36px",
76
+ height: "24px",
77
+ backgroundColor: Colors.black300,
78
+ padding: "0px",
79
+ },
80
+ ".chakra-switch__thumb": {
81
+ height: "20px",
82
+ width: "20px",
83
+ margin: "2px 0px 2px 2px",
84
+
85
+ backgroundColor: Colors.white100,
86
+ borderRadius: "100px",
87
+ boxShadow:
88
+ "0px 1px 1px 0px rgba(45, 59, 67, 0.03), 0px 1px 1px 0px rgba(45, 59, 67, 0.03)",
89
+ transition: "transform ease-in-out .3s",
90
+ },
91
+ ".chakra-switch__thumb[data-checked]": {
92
+ height: "20px",
93
+ width: "20px",
94
+ margin: "2px 2px 2px 0px",
95
+ transform: "translateX(14px)",
96
+ },
97
+ }}
98
+ onChange={onChange}
99
+ isChecked={isChecked}
100
+ isDisabled={isDisabled}
101
+ data-refkey={refkey}
102
+ accessKey={refkey}
103
+ value={value}
104
+ outline={"1px solid transparent"}
105
+ border={"none"}
106
+ _hover={{
107
+ _disabled: {
108
+ outline: "0px solid transparent !important",
109
+ },
110
+ transition: "outline 0.3s ease-in-out, background 0.3s ease-in-out",
111
+ outline: `2px solid ${Colors.gray50} `,
112
+ }}
113
+ _checked={{
114
+ outline: `2px solid ${Colors.gray50} `,
115
+ }}
116
+ borderRadius="100px"
117
+ />
118
+ </Flex>
119
+ </Box>
120
+ );
121
+ };
122
+
123
+ export default ToggleButton;