@dub/ui 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 (397) hide show
  1. package/.turbo/turbo-build.log +129 -0
  2. package/dist/accordion.d.ts +9 -0
  3. package/dist/accordion.mjs +2 -0
  4. package/dist/avatar.d.ts +15 -0
  5. package/dist/avatar.mjs +2 -0
  6. package/dist/background/index.css +1 -0
  7. package/dist/background/index.d.ts +5 -0
  8. package/dist/background/index.mjs +2 -0
  9. package/dist/background.d.ts +5 -0
  10. package/dist/background.mjs +2 -0
  11. package/dist/badge.d.ts +12 -0
  12. package/dist/badge.mjs +2 -0
  13. package/dist/blur-image.d.ts +6 -0
  14. package/dist/blur-image.mjs +2 -0
  15. package/dist/button.css +1 -0
  16. package/dist/button.d.ts +13 -0
  17. package/dist/button.mjs +2 -0
  18. package/dist/chunk-244OSE43.mjs +2 -0
  19. package/dist/chunk-25PGVVAM.mjs +2 -0
  20. package/dist/chunk-2CR6AI65.mjs +2 -0
  21. package/dist/chunk-2KZFWJJX.mjs +2 -0
  22. package/dist/chunk-2O5K4D5Q.mjs +2 -0
  23. package/dist/chunk-2SFV6FGR.mjs +2 -0
  24. package/dist/chunk-2TGXECZQ.mjs +2 -0
  25. package/dist/chunk-2ZQKPJ36.mjs +2 -0
  26. package/dist/chunk-33QWEDY7.mjs +8 -0
  27. package/dist/chunk-3GU5I4KI.mjs +2 -0
  28. package/dist/chunk-3Q6B4UEP.mjs +2 -0
  29. package/dist/chunk-3S3WMTNJ.mjs +2 -0
  30. package/dist/chunk-3YDMSFPQ.mjs +2 -0
  31. package/dist/chunk-3ZOR7HDE.mjs +2 -0
  32. package/dist/chunk-4555QYZ6.mjs +2 -0
  33. package/dist/chunk-46KYE2TK.mjs +2 -0
  34. package/dist/chunk-4B27GTB4.mjs +3 -0
  35. package/dist/chunk-4JKAA2S4.mjs +2 -0
  36. package/dist/chunk-4JXT2OCG.mjs +2 -0
  37. package/dist/chunk-4OESW4SN.mjs +2 -0
  38. package/dist/chunk-4QDUUMAW.mjs +2 -0
  39. package/dist/chunk-4XBYRIVX.mjs +2 -0
  40. package/dist/chunk-4ZSCYPP2.mjs +2 -0
  41. package/dist/chunk-56D4WGXU.mjs +2 -0
  42. package/dist/chunk-56DTUGDB.mjs +2 -0
  43. package/dist/chunk-5A2BHTHD.mjs +2 -0
  44. package/dist/chunk-5EWSH7PD.mjs +2 -0
  45. package/dist/chunk-5JYRCHLM.mjs +2 -0
  46. package/dist/chunk-5SGX2GJA.mjs +2 -0
  47. package/dist/chunk-5UODCYNT.mjs +2 -0
  48. package/dist/chunk-5VNTIKQZ.mjs +2 -0
  49. package/dist/chunk-5WZZBGKJ.mjs +2 -0
  50. package/dist/chunk-6C6ANQBQ.mjs +2 -0
  51. package/dist/chunk-6DKNMNDW.mjs +2 -0
  52. package/dist/chunk-6GJY5OO4.mjs +2 -0
  53. package/dist/chunk-6KTUEBPU.mjs +2 -0
  54. package/dist/chunk-6S57E6BS.mjs +2 -0
  55. package/dist/chunk-6TNUMRJD.mjs +3 -0
  56. package/dist/chunk-7AQLFQZX.mjs +2 -0
  57. package/dist/chunk-7FBJXRA5.mjs +2 -0
  58. package/dist/chunk-7FTHTS2N.mjs +2 -0
  59. package/dist/chunk-7GWUKTP3.mjs +2 -0
  60. package/dist/chunk-7HABTH45.mjs +2 -0
  61. package/dist/chunk-7JAMW2DV.mjs +2 -0
  62. package/dist/chunk-7LB36OSM.mjs +2 -0
  63. package/dist/chunk-7O2ZOJNB.mjs +2 -0
  64. package/dist/chunk-7QQZYSZX.mjs +2 -0
  65. package/dist/chunk-7RM43KIQ.mjs +2 -0
  66. package/dist/chunk-7UOWPARW.mjs +2 -0
  67. package/dist/chunk-A3PUDJ7V.mjs +1 -0
  68. package/dist/chunk-AACJEMFS.mjs +2 -0
  69. package/dist/chunk-ABLQYIFT.mjs +2 -0
  70. package/dist/chunk-AUBFB4SI.mjs +2 -0
  71. package/dist/chunk-AUVV5HUC.mjs +2 -0
  72. package/dist/chunk-AZD2JXYJ.mjs +2 -0
  73. package/dist/chunk-B3VKF2VA.mjs +2 -0
  74. package/dist/chunk-B4HABAR3.mjs +2 -0
  75. package/dist/chunk-B6VWIQYU.mjs +3 -0
  76. package/dist/chunk-BHTYGPAI.mjs +2 -0
  77. package/dist/chunk-BZJK6BT5.mjs +2 -0
  78. package/dist/chunk-C33FCZ32.mjs +2 -0
  79. package/dist/chunk-C3ZLFBBA.mjs +1 -0
  80. package/dist/chunk-C4PESNHJ.mjs +2 -0
  81. package/dist/chunk-C5IOO5UD.mjs +2 -0
  82. package/dist/chunk-CBHHIJGG.mjs +2 -0
  83. package/dist/chunk-CCKZ5QDB.mjs +2 -0
  84. package/dist/chunk-CFCHBBAJ.mjs +2 -0
  85. package/dist/chunk-D2Q6GSHJ.mjs +2 -0
  86. package/dist/chunk-D3NFRR3I.mjs +2 -0
  87. package/dist/chunk-DG5QULNJ.mjs +2 -0
  88. package/dist/chunk-DHJFK2S6.mjs +2 -0
  89. package/dist/chunk-DIJAPN4A.mjs +2 -0
  90. package/dist/chunk-DMNL3RKY.mjs +2 -0
  91. package/dist/chunk-DNZ5INSW.mjs +2 -0
  92. package/dist/chunk-DOE7DSDC.mjs +2 -0
  93. package/dist/chunk-E2TMZ3II.mjs +2 -0
  94. package/dist/chunk-E5ZJGOXG.mjs +2 -0
  95. package/dist/chunk-ECNXBGSQ.mjs +2 -0
  96. package/dist/chunk-EFQSHW3O.mjs +2 -0
  97. package/dist/chunk-EGZBNRFB.mjs +2 -0
  98. package/dist/chunk-EHYVEIOL.mjs +2 -0
  99. package/dist/chunk-EL4XTTMC.mjs +2 -0
  100. package/dist/chunk-EY55E5DB.mjs +2 -0
  101. package/dist/chunk-F6OPUNTW.mjs +2 -0
  102. package/dist/chunk-F6RVKSBN.mjs +2 -0
  103. package/dist/chunk-FMOY54OP.mjs +2 -0
  104. package/dist/chunk-FMUX4F5B.mjs +2 -0
  105. package/dist/chunk-FR336PIX.mjs +2 -0
  106. package/dist/chunk-G4PPRIHO.mjs +2 -0
  107. package/dist/chunk-GA4JDGWI.mjs +2 -0
  108. package/dist/chunk-GF6NH2NZ.mjs +2 -0
  109. package/dist/chunk-GFMXORYG.mjs +2 -0
  110. package/dist/chunk-GR726Z6I.mjs +2 -0
  111. package/dist/chunk-GRAJLMHF.mjs +2 -0
  112. package/dist/chunk-GSQUGPJ2.mjs +2 -0
  113. package/dist/chunk-GVANYQ67.mjs +1 -0
  114. package/dist/chunk-GVCIDQOF.mjs +2 -0
  115. package/dist/chunk-GXDFY5X2.mjs +2 -0
  116. package/dist/chunk-HCV274NJ.mjs +2 -0
  117. package/dist/chunk-HFY7GEA4.mjs +2 -0
  118. package/dist/chunk-HI3TSQ5W.mjs +2 -0
  119. package/dist/chunk-HMVFMHDB.mjs +2 -0
  120. package/dist/chunk-HNCJ4TJR.mjs +2 -0
  121. package/dist/chunk-HRN3EQEB.mjs +2 -0
  122. package/dist/chunk-I23BSUWS.mjs +2 -0
  123. package/dist/chunk-I57LZ6JE.mjs +2 -0
  124. package/dist/chunk-IG7XYDDR.mjs +2 -0
  125. package/dist/chunk-IHPV7RPK.mjs +2 -0
  126. package/dist/chunk-IJBZR4LN.mjs +8 -0
  127. package/dist/chunk-IJKZ5HB5.mjs +2 -0
  128. package/dist/chunk-IK4XBUOE.mjs +2 -0
  129. package/dist/chunk-ITDAQXDS.mjs +1 -0
  130. package/dist/chunk-IWV22LBB.mjs +2 -0
  131. package/dist/chunk-IY2HG3NK.mjs +8 -0
  132. package/dist/chunk-IYAB6FPB.mjs +2 -0
  133. package/dist/chunk-IZXIJLTW.mjs +2 -0
  134. package/dist/chunk-J5SA2VPW.mjs +3 -0
  135. package/dist/chunk-J63GHRZH.mjs +2 -0
  136. package/dist/chunk-JBL2DUF5.mjs +2 -0
  137. package/dist/chunk-JEJ4EWU7.mjs +2 -0
  138. package/dist/chunk-JIFH2LYE.mjs +3 -0
  139. package/dist/chunk-JJNAD6S4.mjs +3 -0
  140. package/dist/chunk-JLET4OCX.mjs +3 -0
  141. package/dist/chunk-JORK4T7Q.mjs +2 -0
  142. package/dist/chunk-JP7IWWG3.mjs +2 -0
  143. package/dist/chunk-JVM44TKC.mjs +2 -0
  144. package/dist/chunk-KBSQGAWB.mjs +2 -0
  145. package/dist/chunk-KDGZ6H77.mjs +2 -0
  146. package/dist/chunk-KF5NIC53.mjs +2 -0
  147. package/dist/chunk-KKCOE2RH.mjs +2 -0
  148. package/dist/chunk-KMHFLT2M.mjs +2 -0
  149. package/dist/chunk-KNYITJKS.mjs +2 -0
  150. package/dist/chunk-KQEO6U4W.mjs +2 -0
  151. package/dist/chunk-KQFL4H7A.mjs +2 -0
  152. package/dist/chunk-KUSH4SR2.mjs +2 -0
  153. package/dist/chunk-KVVEZANZ.mjs +2 -0
  154. package/dist/chunk-KWZ4DBE4.mjs +2 -0
  155. package/dist/chunk-L5KPIGCR.mjs +2 -0
  156. package/dist/chunk-L6UWBEZE.mjs +2 -0
  157. package/dist/chunk-LAQSQMES.mjs +2 -0
  158. package/dist/chunk-LFMW2GVW.mjs +3 -0
  159. package/dist/chunk-LRCJQIJG.mjs +2 -0
  160. package/dist/chunk-M4Q2EF5G.mjs +2 -0
  161. package/dist/chunk-MCXA7VY2.mjs +2 -0
  162. package/dist/chunk-MKKBN6XG.mjs +2 -0
  163. package/dist/chunk-MN57ZXBI.mjs +2 -0
  164. package/dist/chunk-MO5Z5S7B.mjs +2 -0
  165. package/dist/chunk-MOPBLS6N.mjs +2 -0
  166. package/dist/chunk-MURAUI3W.mjs +2 -0
  167. package/dist/chunk-MYBLDYMF.mjs +2 -0
  168. package/dist/chunk-MYKWMBLF.mjs +2 -0
  169. package/dist/chunk-N7BNEQPU.mjs +2 -0
  170. package/dist/chunk-NA4EVPAY.mjs +2 -0
  171. package/dist/chunk-NEH5H6FT.mjs +8 -0
  172. package/dist/chunk-NFAXHR5T.mjs +2 -0
  173. package/dist/chunk-NHHVF35L.mjs +2 -0
  174. package/dist/chunk-NJKAWDPD.mjs +2 -0
  175. package/dist/chunk-NPDJHIVO.mjs +2 -0
  176. package/dist/chunk-NSWEINWF.mjs +2 -0
  177. package/dist/chunk-NWB2AZNS.mjs +2 -0
  178. package/dist/chunk-NX47KGRW.mjs +2 -0
  179. package/dist/chunk-NYBTLOVB.mjs +3 -0
  180. package/dist/chunk-O55CBIBG.mjs +8 -0
  181. package/dist/chunk-OGAYDFMV.mjs +2 -0
  182. package/dist/chunk-OI77O6SL.mjs +2 -0
  183. package/dist/chunk-OIU4BN7T.mjs +2 -0
  184. package/dist/chunk-OJXGRTYX.mjs +2 -0
  185. package/dist/chunk-OKOSJ4DF.mjs +2 -0
  186. package/dist/chunk-OLQNYINM.mjs +2 -0
  187. package/dist/chunk-OMIP4OG5.mjs +2 -0
  188. package/dist/chunk-OTLHHZOF.mjs +2 -0
  189. package/dist/chunk-OX66FZYY.mjs +2 -0
  190. package/dist/chunk-OXANJWH4.mjs +2 -0
  191. package/dist/chunk-OYEGFR5W.mjs +2 -0
  192. package/dist/chunk-PGXM347Z.mjs +2 -0
  193. package/dist/chunk-PIEMQYVU.mjs +2 -0
  194. package/dist/chunk-PISF5LGD.mjs +2 -0
  195. package/dist/chunk-PMAKRWPB.mjs +2 -0
  196. package/dist/chunk-PPNWHWNQ.mjs +2 -0
  197. package/dist/chunk-PPR7AQWS.mjs +2 -0
  198. package/dist/chunk-PRUCD3QQ.mjs +2 -0
  199. package/dist/chunk-PVPFL6D6.mjs +2 -0
  200. package/dist/chunk-Q64KZRX2.mjs +2 -0
  201. package/dist/chunk-QDT2R7NG.mjs +2 -0
  202. package/dist/chunk-QLD74AUU.mjs +2 -0
  203. package/dist/chunk-QP2EHAF7.mjs +2 -0
  204. package/dist/chunk-QS3K2BUJ.mjs +2 -0
  205. package/dist/chunk-QTY5FUJ3.mjs +2 -0
  206. package/dist/chunk-QXM65Z6A.mjs +2 -0
  207. package/dist/chunk-QZJO3GBP.mjs +2 -0
  208. package/dist/chunk-RF3BM6RY.mjs +2 -0
  209. package/dist/chunk-RF6IPNCO.mjs +2 -0
  210. package/dist/chunk-RF757N25.mjs +3 -0
  211. package/dist/chunk-RQBEORWD.mjs +2 -0
  212. package/dist/chunk-RRZDOFPB.mjs +2 -0
  213. package/dist/chunk-RT4DYHL4.mjs +2 -0
  214. package/dist/chunk-RWND7PHS.mjs +2 -0
  215. package/dist/chunk-S7GVW42L.mjs +2 -0
  216. package/dist/chunk-SGDLNADF.mjs +2 -0
  217. package/dist/chunk-SJHDGCSL.mjs +2 -0
  218. package/dist/chunk-SN3ZPBNA.mjs +2 -0
  219. package/dist/chunk-SRB37H2M.mjs +2 -0
  220. package/dist/chunk-SVXEWZS2.mjs +2 -0
  221. package/dist/chunk-SWY5WJTL.mjs +2 -0
  222. package/dist/chunk-T2HLWVVR.mjs +3 -0
  223. package/dist/chunk-T4YFARK5.mjs +2 -0
  224. package/dist/chunk-TEYRN5YH.mjs +2 -0
  225. package/dist/chunk-TFO3ND3W.mjs +2 -0
  226. package/dist/chunk-TLCO7PTI.mjs +2 -0
  227. package/dist/chunk-TN7DEVEE.mjs +2 -0
  228. package/dist/chunk-TNTITL6S.mjs +3 -0
  229. package/dist/chunk-TRZ3KXED.mjs +8 -0
  230. package/dist/chunk-TSU5QRYZ.mjs +2 -0
  231. package/dist/chunk-TTICNZG7.mjs +2 -0
  232. package/dist/chunk-U7OUT2WV.mjs +1 -0
  233. package/dist/chunk-UBZTDYQG.mjs +2 -0
  234. package/dist/chunk-UEZD34PU.mjs +2 -0
  235. package/dist/chunk-UQPZMB6C.mjs +2 -0
  236. package/dist/chunk-UTIBO7SO.mjs +2 -0
  237. package/dist/chunk-UVSGUIBW.mjs +8 -0
  238. package/dist/chunk-VAQHITBV.mjs +2 -0
  239. package/dist/chunk-VBY3N2TS.mjs +3 -0
  240. package/dist/chunk-VE55VEAS.mjs +2 -0
  241. package/dist/chunk-VFWL5XAA.mjs +2 -0
  242. package/dist/chunk-VIDJ5SRV.mjs +2 -0
  243. package/dist/chunk-W2MLKAZN.mjs +2 -0
  244. package/dist/chunk-W65Y5YRU.mjs +2 -0
  245. package/dist/chunk-W6R5YWL6.mjs +2 -0
  246. package/dist/chunk-WB7VZJZA.mjs +2 -0
  247. package/dist/chunk-WDSNVW3W.mjs +2 -0
  248. package/dist/chunk-WURMVTJP.mjs +2 -0
  249. package/dist/chunk-WWM6WQCY.mjs +2 -0
  250. package/dist/chunk-X2XFCFUL.mjs +2 -0
  251. package/dist/chunk-X374ODLH.mjs +2 -0
  252. package/dist/chunk-X7ADEEVD.mjs +8 -0
  253. package/dist/chunk-XE5CT2M3.mjs +2 -0
  254. package/dist/chunk-XE5QS5VD.mjs +8 -0
  255. package/dist/chunk-XHGXSXB3.mjs +2 -0
  256. package/dist/chunk-XQ47XIIO.mjs +2 -0
  257. package/dist/chunk-XYVV643U.mjs +8 -0
  258. package/dist/chunk-XZMMZD3Z.mjs +2 -0
  259. package/dist/chunk-XZSQWDME.mjs +2 -0
  260. package/dist/chunk-YBWQTHOI.mjs +2 -0
  261. package/dist/chunk-YOWYEBY3.mjs +2 -0
  262. package/dist/chunk-YQXTW7IL.mjs +2 -0
  263. package/dist/chunk-YVROMH7J.mjs +2 -0
  264. package/dist/chunk-YVVQMYLM.mjs +2 -0
  265. package/dist/chunk-Z46XMMXR.mjs +2 -0
  266. package/dist/chunk-Z4MSMGYC.mjs +2 -0
  267. package/dist/chunk-Z5P2KHPP.mjs +2 -0
  268. package/dist/chunk-ZGUSKAF7.mjs +2 -0
  269. package/dist/chunk-ZMZG5IED.mjs +8 -0
  270. package/dist/chunk-ZNLJMM2N.mjs +2 -0
  271. package/dist/chunk-ZSF6CHQK.mjs +2 -0
  272. package/dist/chunk-ZXOXZAH4.mjs +2 -0
  273. package/dist/copy-button.css +1 -0
  274. package/dist/copy-button.d.ts +8 -0
  275. package/dist/copy-button.mjs +2 -0
  276. package/dist/footer.css +1 -0
  277. package/dist/footer.d.ts +5 -0
  278. package/dist/footer.mjs +2 -0
  279. package/dist/form.css +1 -0
  280. package/dist/form.d.ts +14 -0
  281. package/dist/form.mjs +2 -0
  282. package/dist/google-b9019ca9.d.ts +7 -0
  283. package/dist/grid-AJXQWCY6.svg +5 -0
  284. package/dist/icon-menu.d.ts +10 -0
  285. package/dist/icon-menu.mjs +2 -0
  286. package/dist/icons/copy.d.ts +7 -0
  287. package/dist/icons/copy.mjs +2 -0
  288. package/dist/icons/expanding-arrow.d.ts +7 -0
  289. package/dist/icons/expanding-arrow.mjs +2 -0
  290. package/dist/icons/facebook.d.ts +8 -0
  291. package/dist/icons/facebook.mjs +2 -0
  292. package/dist/icons/github.d.ts +7 -0
  293. package/dist/icons/github.mjs +2 -0
  294. package/dist/icons/google.d.ts +7 -0
  295. package/dist/icons/google.mjs +2 -0
  296. package/dist/icons/index.css +1 -0
  297. package/dist/icons/index.d.ts +16 -0
  298. package/dist/icons/index.mjs +2 -0
  299. package/dist/icons/linkedin.d.ts +8 -0
  300. package/dist/icons/linkedin.mjs +2 -0
  301. package/dist/icons/loading-circle.d.ts +7 -0
  302. package/dist/icons/loading-circle.mjs +2 -0
  303. package/dist/icons/loading-dots.css +1 -0
  304. package/dist/icons/loading-dots.d.ts +5 -0
  305. package/dist/icons/loading-dots.mjs +2 -0
  306. package/dist/icons/loading-spinner.css +1 -0
  307. package/dist/icons/loading-spinner.d.ts +7 -0
  308. package/dist/icons/loading-spinner.mjs +2 -0
  309. package/dist/icons/logo.d.ts +7 -0
  310. package/dist/icons/logo.mjs +2 -0
  311. package/dist/icons/logotype.d.ts +7 -0
  312. package/dist/icons/logotype.mjs +2 -0
  313. package/dist/icons/photo.d.ts +7 -0
  314. package/dist/icons/photo.mjs +2 -0
  315. package/dist/icons/tick.d.ts +7 -0
  316. package/dist/icons/tick.mjs +2 -0
  317. package/dist/icons/twitter.d.ts +7 -0
  318. package/dist/icons/twitter.mjs +2 -0
  319. package/dist/icons/unsplash.d.ts +7 -0
  320. package/dist/icons/unsplash.mjs +2 -0
  321. package/dist/index.css +1 -0
  322. package/dist/index.d.ts +128 -0
  323. package/dist/index.mjs +2 -0
  324. package/dist/link-preview.css +1 -0
  325. package/dist/link-preview.d.ts +7 -0
  326. package/dist/link-preview.mjs +2 -0
  327. package/dist/max-width-wrapper.d.ts +9 -0
  328. package/dist/max-width-wrapper.mjs +2 -0
  329. package/dist/modal.d.ts +14 -0
  330. package/dist/modal.mjs +2 -0
  331. package/dist/nav-mobile.css +1 -0
  332. package/dist/nav-mobile.d.ts +5 -0
  333. package/dist/nav-mobile.mjs +2 -0
  334. package/dist/nav.css +1 -0
  335. package/dist/nav.d.ts +9 -0
  336. package/dist/nav.mjs +2 -0
  337. package/dist/number-tooltip.d.ts +12 -0
  338. package/dist/number-tooltip.mjs +2 -0
  339. package/dist/number.d.ts +12 -0
  340. package/dist/number.mjs +2 -0
  341. package/dist/popover.d.ts +13 -0
  342. package/dist/popover.mjs +2 -0
  343. package/dist/switch.d.ts +14 -0
  344. package/dist/switch.mjs +2 -0
  345. package/dist/tab-select.d.ts +9 -0
  346. package/dist/tab-select.mjs +2 -0
  347. package/dist/tooltip.d.ts +32 -0
  348. package/dist/tooltip.mjs +2 -0
  349. package/package.json +65 -0
  350. package/postcss.config.js +9 -0
  351. package/src/accordion.tsx +60 -0
  352. package/src/avatar.tsx +47 -0
  353. package/src/background.tsx +71 -0
  354. package/src/badge.tsx +33 -0
  355. package/src/button.tsx +60 -0
  356. package/src/content.ts +230 -0
  357. package/src/copy-button.tsx +39 -0
  358. package/src/footer.tsx +203 -0
  359. package/src/form.tsx +77 -0
  360. package/src/hooks/index.ts +5 -0
  361. package/src/hooks/use-current-anchor.ts +65 -0
  362. package/src/hooks/use-intersection-observer.ts +41 -0
  363. package/src/hooks/use-local-storage.ts +24 -0
  364. package/src/hooks/use-media-query.ts +46 -0
  365. package/src/hooks/use-scroll.ts +21 -0
  366. package/src/icon-menu.tsx +15 -0
  367. package/src/icons/copy.tsx +18 -0
  368. package/src/icons/expanding-arrow.tsx +39 -0
  369. package/src/icons/facebook.tsx +23 -0
  370. package/src/icons/github.tsx +14 -0
  371. package/src/icons/google.tsx +12 -0
  372. package/src/icons/index.tsx +22 -0
  373. package/src/icons/linkedin.tsx +22 -0
  374. package/src/icons/loading-circle.tsx +25 -0
  375. package/src/icons/loading-dots.css +40 -0
  376. package/src/icons/loading-dots.tsx +13 -0
  377. package/src/icons/loading-spinner.tsx +34 -0
  378. package/src/icons/logo.tsx +29 -0
  379. package/src/icons/logotype.tsx +51 -0
  380. package/src/icons/photo.tsx +20 -0
  381. package/src/icons/tick.tsx +18 -0
  382. package/src/icons/twitter.tsx +31 -0
  383. package/src/icons/unsplash.tsx +17 -0
  384. package/src/index.tsx +35 -0
  385. package/src/link-preview.tsx +111 -0
  386. package/src/max-width-wrapper.tsx +21 -0
  387. package/src/modal.tsx +102 -0
  388. package/src/nav-mobile.tsx +108 -0
  389. package/src/nav.tsx +205 -0
  390. package/src/popover.tsx +61 -0
  391. package/src/styles.css +3 -0
  392. package/src/switch.tsx +60 -0
  393. package/src/tab-select.tsx +27 -0
  394. package/src/tooltip.tsx +184 -0
  395. package/tailwind.config.ts +9 -0
  396. package/tsconfig.json +5 -0
  397. package/tsup.config.ts +15 -0
@@ -0,0 +1,24 @@
1
+ import { useEffect, useState } from "react";
2
+
3
+ export default function useLocalStorage<T>(
4
+ key: string,
5
+ initialValue: T,
6
+ ): [T, (value: T) => void] {
7
+ const [storedValue, setStoredValue] = useState(initialValue);
8
+
9
+ useEffect(() => {
10
+ // Retrieve from localStorage
11
+ const item = window.localStorage.getItem(key);
12
+ if (item) {
13
+ setStoredValue(JSON.parse(item));
14
+ }
15
+ }, [key]);
16
+
17
+ const setValue = (value: T) => {
18
+ // Save state
19
+ setStoredValue(value);
20
+ // Save to localStorage
21
+ window.localStorage.setItem(key, JSON.stringify(value));
22
+ };
23
+ return [storedValue, setValue];
24
+ }
@@ -0,0 +1,46 @@
1
+ import { useEffect, useState } from "react";
2
+
3
+ export default function useMediaQuery() {
4
+ const [device, setDevice] = useState<"mobile" | "tablet" | "desktop" | null>(
5
+ null,
6
+ );
7
+ const [dimensions, setDimensions] = useState<{
8
+ width: number;
9
+ height: number;
10
+ } | null>(null);
11
+
12
+ useEffect(() => {
13
+ const checkDevice = () => {
14
+ if (window.matchMedia("(max-width: 640px)").matches) {
15
+ setDevice("mobile");
16
+ } else if (
17
+ window.matchMedia("(min-width: 641px) and (max-width: 1024px)").matches
18
+ ) {
19
+ setDevice("tablet");
20
+ } else {
21
+ setDevice("desktop");
22
+ }
23
+ setDimensions({ width: window.innerWidth, height: window.innerHeight });
24
+ };
25
+
26
+ // Initial detection
27
+ checkDevice();
28
+
29
+ // Listener for windows resize
30
+ window.addEventListener("resize", checkDevice);
31
+
32
+ // Cleanup listener
33
+ return () => {
34
+ window.removeEventListener("resize", checkDevice);
35
+ };
36
+ }, []);
37
+
38
+ return {
39
+ device,
40
+ width: dimensions?.width,
41
+ height: dimensions?.height,
42
+ isMobile: device === "mobile",
43
+ isTablet: device === "tablet",
44
+ isDesktop: device === "desktop",
45
+ };
46
+ }
@@ -0,0 +1,21 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+
3
+ export default function useScroll(threshold: number) {
4
+ const [scrolled, setScrolled] = useState(false);
5
+
6
+ const onScroll = useCallback(() => {
7
+ setScrolled(window.scrollY > threshold);
8
+ }, [threshold]);
9
+
10
+ useEffect(() => {
11
+ window.addEventListener("scroll", onScroll);
12
+ return () => window.removeEventListener("scroll", onScroll);
13
+ }, [onScroll]);
14
+
15
+ // also check on first load
16
+ useEffect(() => {
17
+ onScroll();
18
+ }, [onScroll]);
19
+
20
+ return scrolled;
21
+ }
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from "react";
2
+
3
+ interface MenuIconProps {
4
+ icon: ReactNode;
5
+ text: string;
6
+ }
7
+
8
+ export function IconMenu({ icon, text }: MenuIconProps) {
9
+ return (
10
+ <div className="flex items-center justify-start space-x-2">
11
+ {icon}
12
+ <p className="text-sm">{text}</p>
13
+ </div>
14
+ );
15
+ }
@@ -0,0 +1,18 @@
1
+ export default function Copy({ className }: { className?: string }) {
2
+ return (
3
+ <svg
4
+ fill="none"
5
+ shapeRendering="geometricPrecision"
6
+ stroke="currentColor"
7
+ strokeLinecap="round"
8
+ strokeLinejoin="round"
9
+ strokeWidth="1.5"
10
+ viewBox="0 0 24 24"
11
+ width="14"
12
+ height="14"
13
+ className={className}
14
+ >
15
+ <path d="M8 17.929H6c-1.105 0-2-.912-2-2.036V5.036C4 3.91 4.895 3 6 3h8c1.105 0 2 .911 2 2.036v1.866m-6 .17h8c1.105 0 2 .91 2 2.035v10.857C20 21.09 19.105 22 18 22h-8c-1.105 0-2-.911-2-2.036V9.107c0-1.124.895-2.036 2-2.036z" />
16
+ </svg>
17
+ );
18
+ }
@@ -0,0 +1,39 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function ExpandingArrow({ className }: { className?: string }) {
4
+ return (
5
+ <div className="group relative flex items-center">
6
+ <svg
7
+ className={cn(
8
+ "absolute h-4 w-4 transition-all group-hover:translate-x-1 group-hover:opacity-0",
9
+ className,
10
+ )}
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ fill="currentColor"
13
+ viewBox="0 0 16 16"
14
+ width="16"
15
+ height="16"
16
+ >
17
+ <path
18
+ fillRule="evenodd"
19
+ d="M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"
20
+ ></path>
21
+ </svg>
22
+ <svg
23
+ className={`${
24
+ className ? className : "h-4 w-4"
25
+ } absolute opacity-0 transition-all group-hover:translate-x-1 group-hover:opacity-100`}
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ fill="currentColor"
28
+ viewBox="0 0 16 16"
29
+ width="16"
30
+ height="16"
31
+ >
32
+ <path
33
+ fillRule="evenodd"
34
+ d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"
35
+ ></path>
36
+ </svg>
37
+ </div>
38
+ );
39
+ }
@@ -0,0 +1,23 @@
1
+ export default function Facebook({
2
+ className,
3
+ fill = "#1977f3",
4
+ }: {
5
+ className?: string;
6
+ fill?: string;
7
+ }) {
8
+ return (
9
+ <svg
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ width="1365.12"
12
+ height="1365.12"
13
+ viewBox="0 0 14222 14222"
14
+ className={className}
15
+ >
16
+ <circle cx="7111" cy="7112" r="7111" fill={fill} />
17
+ <path
18
+ d="M9879 9168l315-2056H8222V5778c0-562 275-1111 1159-1111h897V2917s-814-139-1592-139c-1624 0-2686 984-2686 2767v1567H4194v2056h1806v4969c362 57 733 86 1111 86s749-30 1111-86V9168z"
19
+ fill="#fff"
20
+ />
21
+ </svg>
22
+ );
23
+ }
@@ -0,0 +1,14 @@
1
+ export default function Github({ className }: { className?: string }) {
2
+ return (
3
+ <svg
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="20"
6
+ height="20"
7
+ fill="currentColor"
8
+ viewBox="0 0 24 24"
9
+ className={className}
10
+ >
11
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
12
+ </svg>
13
+ );
14
+ }
@@ -0,0 +1,12 @@
1
+ export default function Google({ className }: { className?: string }) {
2
+ return (
3
+ <svg
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ viewBox="0 0 488 512"
6
+ fill="currentColor"
7
+ className={className}
8
+ >
9
+ <path d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z" />
10
+ </svg>
11
+ );
12
+ }
@@ -0,0 +1,22 @@
1
+ // custom icons
2
+ export { default as Copy } from "./copy";
3
+ export { default as ExpandingArrow } from "./expanding-arrow";
4
+ export { default as Photo } from "./photo";
5
+ export { default as Tick } from "./tick";
6
+
7
+ // loaders
8
+ export { default as LoadingCircle } from "./loading-circle";
9
+ export { default as LoadingDots } from "./loading-dots";
10
+ export { default as LoadingSpinner } from "./loading-spinner";
11
+
12
+ // dub logos
13
+ export { default as Logo } from "./logo";
14
+ export { default as LogoType } from "./logotype";
15
+
16
+ // brand logos
17
+ export { default as Facebook } from "./facebook";
18
+ export { default as Github } from "./github";
19
+ export { default as Google } from "./google";
20
+ export { default as LinkedIn } from "./linkedin";
21
+ export { default as Twitter } from "./twitter";
22
+ export { default as Unsplash } from "./unsplash";
@@ -0,0 +1,22 @@
1
+ export default function LinkedIn({
2
+ className,
3
+ fill = "#027ab5",
4
+ }: {
5
+ className?: string;
6
+ fill?: string;
7
+ }) {
8
+ return (
9
+ <svg
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ width="24"
12
+ height="24"
13
+ viewBox="0 0 24 24"
14
+ className={className}
15
+ >
16
+ <path
17
+ fill={fill}
18
+ d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
19
+ />
20
+ </svg>
21
+ );
22
+ }
@@ -0,0 +1,25 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function LoadingCircle({ className }: { className?: string }) {
4
+ return (
5
+ <svg
6
+ aria-hidden="true"
7
+ className={cn(
8
+ "h-4 w-4 animate-spin fill-gray-600 text-gray-200",
9
+ className,
10
+ )}
11
+ viewBox="0 0 100 101"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ >
15
+ <path
16
+ d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"
17
+ fill="currentColor"
18
+ />
19
+ <path
20
+ d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z"
21
+ fill="currentFill"
22
+ />
23
+ </svg>
24
+ );
25
+ }
@@ -0,0 +1,40 @@
1
+ .loading-dots {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ }
5
+
6
+ .loading-dots .spacer {
7
+ margin-right: 2px;
8
+ }
9
+
10
+ .loading-dots span {
11
+ animation-name: blink;
12
+ animation-duration: 1.4s;
13
+ animation-iteration-count: infinite;
14
+ animation-fill-mode: both;
15
+ width: 5px;
16
+ height: 5px;
17
+ border-radius: 50%;
18
+ display: inline-block;
19
+ margin: 0 1px;
20
+ }
21
+
22
+ .loading-dots span:nth-of-type(2) {
23
+ animation-delay: 0.2s;
24
+ }
25
+
26
+ .loading-dots span:nth-of-type(3) {
27
+ animation-delay: 0.4s;
28
+ }
29
+
30
+ @keyframes blink {
31
+ 0% {
32
+ opacity: 0.2;
33
+ }
34
+ 20% {
35
+ opacity: 1;
36
+ }
37
+ 100% {
38
+ opacity: 0.2;
39
+ }
40
+ }
@@ -0,0 +1,13 @@
1
+ import "./loading-dots.css";
2
+
3
+ const LoadingDots = () => {
4
+ return (
5
+ <span className="loading-dots">
6
+ <span />
7
+ <span />
8
+ <span />
9
+ </span>
10
+ );
11
+ };
12
+
13
+ export default LoadingDots;
@@ -0,0 +1,34 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function LoadingSpinner({ className }: { className?: string }) {
4
+ return (
5
+ <div className={cn("h-5 w-5", className)}>
6
+ <div
7
+ style={{
8
+ position: "relative",
9
+ top: "50%",
10
+ left: "50%",
11
+ }}
12
+ className={cn("loading-spinner", "h-5 w-5", className)}
13
+ >
14
+ {[...Array(12)].map((_, i) => (
15
+ <div
16
+ key={i}
17
+ style={{
18
+ animationDelay: `${-1.2 + 0.1 * i}s`,
19
+ background: "gray",
20
+ position: "absolute",
21
+ borderRadius: "1rem",
22
+ width: "30%",
23
+ height: "8%",
24
+ left: "-10%",
25
+ top: "-4%",
26
+ transform: `rotate(${30 * i}deg) translate(120%)`,
27
+ }}
28
+ className="animate-spinner"
29
+ />
30
+ ))}
31
+ </div>
32
+ </div>
33
+ );
34
+ }
@@ -0,0 +1,29 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function Logo({ className }: { className?: string }) {
4
+ return (
5
+ <svg
6
+ width="191"
7
+ height="191"
8
+ viewBox="0 0 191 191"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ className={cn("h-10 w-10 text-black", className)}
12
+ >
13
+ <g clipPath="url(#clip0_1301_107)">
14
+ <path
15
+ fillRule="evenodd"
16
+ clipRule="evenodd"
17
+ d="M122 -14H144 9.17859 129.788 5.96937 122 3.72462V-14ZM122 3.72462C113.586 1.29941 104.695 0 95.5 0C42.7568 0 0 42.7568 0 95.5C0 148.243 42.7568 191 95.5 191C148.243 191 191 148.243 191 95.5C191 60.462 172.131 29.8311 144 13.2146V100V148H122V140.897C114.258 146.018 104.977 149 95 149C67.938 149 46 127.062 46 100C46 72.938 67.938 51 95 51C104.977 51 114.258 53.982 122 59.1034V3.72462Z"
18
+ fill="currentColor"
19
+ shapeRendering="geometricPrecision"
20
+ />
21
+ </g>
22
+ <defs>
23
+ <clipPath id="clip0_1301_107">
24
+ <rect width="191" height="191" rx="95.5" fill="white" />
25
+ </clipPath>
26
+ </defs>
27
+ </svg>
28
+ );
29
+ }
@@ -0,0 +1,51 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function LogoType({ className }: { className?: string }) {
4
+ return (
5
+ <svg
6
+ width="834"
7
+ height="236"
8
+ viewBox="0 0 834 236"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ className={cn("h-6 w-24", className)}
12
+ >
13
+ <path
14
+ d="M266 119.5C266 181.632 215.632 232 153.5 232C91.368 232 41 181.632 41 119.5C41 57.368 91.368 7 153.5 7C215.632 7 266 57.368 266 119.5Z"
15
+ fill="currentColor"
16
+ />
17
+ <mask
18
+ id="mask0_46_2"
19
+ style={{
20
+ maskType: "alpha",
21
+ }}
22
+ maskUnits="userSpaceOnUse"
23
+ x="41"
24
+ y="7"
25
+ width="225"
26
+ height="225"
27
+ >
28
+ <path
29
+ d="M266 119.5C266 181.632 215.632 232 153.5 232C91.368 232 41 181.632 41 119.5C41 57.368 91.368 7 153.5 7C215.632 7 266 57.368 266 119.5Z"
30
+ fill="currentColor"
31
+ />
32
+ </mask>
33
+ <g mask="url(#mask0_46_2)">
34
+ <ellipse cx="153" cy="124.5" rx="58" ry="57.5" fill="white" />
35
+ <path d="M185 -10H211V181H185V-10Z" fill="white" />
36
+ </g>
37
+ <path
38
+ d="M397.25 213.75C385.25 213.75 374.833 211.083 366 205.75C357.167 200.417 350.25 192.917 345.25 183.25C340.417 173.417 338 161.917 338 148.75C338 135.417 340.5 123.75 345.5 113.75C350.5 103.583 357.583 95.6667 366.75 90C376.083 84.3333 387.083 81.5 399.75 81.5C407.583 81.5 414.833 82.9167 421.5 85.75C428.333 88.5833 433.583 92.3333 437.25 97V22H475.75V210.5H439.5L437.5 194.5C434.167 200.167 428.833 204.833 421.5 208.5C414.333 212 406.25 213.75 397.25 213.75ZM406.5 178.5C412.5 178.5 417.75 177.25 422.25 174.75C426.917 172.083 430.5 168.417 433 163.75C435.667 158.917 437 153.417 437 147.25C437 140.917 435.667 135.417 433 130.75C430.5 126.083 426.917 122.5 422.25 120C417.75 117.333 412.5 116 406.5 116C400.5 116 395.25 117.333 390.75 120C386.25 122.667 382.75 126.333 380.25 131C377.917 135.667 376.75 141.083 376.75 147.25C376.75 153.417 377.917 158.833 380.25 163.5C382.75 168.167 386.25 171.833 390.75 174.5C395.25 177.167 400.5 178.5 406.5 178.5Z"
39
+ fill="currentColor"
40
+ />
41
+ <path
42
+ d="M587.662 85.5H626.162C626.162 85.5 626.162 148.5 626.162 164C626.162 179.5 623.786 191.5 616.5 200.5C609.214 209.5 594 213.75 582.162 213.75C570.324 213.75 564.412 213.75 564.412 213.75C564.412 213.75 556.662 213.75 549.162 213.75C534.995 213.75 523.745 209.333 515.412 200.5C507.245 191.5 503.162 179.333 503.162 164V85.5H541.662V150C541.662 160.167 543.495 167.667 547.162 172.5C550.829 177.167 556.579 179.5 564.412 179.5C572.745 179.5 578.662 177.25 582.162 172.75C585.829 168.083 587.662 160.667 587.662 150.5V85.5Z"
43
+ fill="currentColor"
44
+ />
45
+ <path
46
+ d="M691.303 210.5H655.053V22H693.553V100C697.386 94.3333 703.053 89.8333 710.553 86.5C718.219 83 726.553 81.25 735.553 81.25C747.219 81.25 757.303 84.0833 765.803 89.75C774.469 95.4167 781.136 103.333 785.803 113.5C790.469 123.667 792.803 135.583 792.803 149.25C792.803 162.083 790.219 173.417 785.053 183.25C780.053 192.917 772.969 200.417 763.803 205.75C754.803 211.083 744.386 213.75 732.553 213.75C723.886 213.75 715.969 212 708.803 208.5C701.803 204.833 696.636 200.167 693.303 194.5L691.303 210.5ZM693.803 147.25C693.803 153.417 695.053 158.917 697.553 163.75C700.219 168.417 703.803 172.083 708.303 174.75C712.969 177.25 718.303 178.5 724.303 178.5C730.469 178.5 735.719 177.167 740.053 174.5C744.553 171.833 747.969 168.167 750.303 163.5C752.803 158.833 754.053 153.417 754.053 147.25C754.053 141.083 752.803 135.667 750.303 131C747.969 126.333 744.553 122.667 740.053 120C735.719 117.333 730.469 116 724.303 116C718.303 116 712.969 117.333 708.303 120C703.803 122.5 700.219 126.083 697.553 130.75C695.053 135.417 693.803 140.917 693.803 147.25Z"
47
+ fill="currentColor"
48
+ />
49
+ </svg>
50
+ );
51
+ }
@@ -0,0 +1,20 @@
1
+ export default function Photo({ className }: { className?: string }) {
2
+ return (
3
+ <svg
4
+ fill="none"
5
+ height="24"
6
+ shapeRendering="geometricPrecision"
7
+ stroke="currentColor"
8
+ strokeLinecap="round"
9
+ strokeLinejoin="round"
10
+ strokeWidth="1.5"
11
+ viewBox="0 0 24 24"
12
+ width="24"
13
+ className={className}
14
+ >
15
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
16
+ <circle cx="8.5" cy="8.5" r="1.5" />
17
+ <path d="M21 15l-5-5L5 21" />
18
+ </svg>
19
+ );
20
+ }
@@ -0,0 +1,18 @@
1
+ export default function Tick({ className }: { className: string }) {
2
+ return (
3
+ <svg
4
+ fill="none"
5
+ shapeRendering="geometricPrecision"
6
+ stroke="currentColor"
7
+ strokeLinecap="round"
8
+ strokeLinejoin="round"
9
+ strokeWidth="1.5"
10
+ viewBox="0 0 24 24"
11
+ width="14"
12
+ height="14"
13
+ className={className}
14
+ >
15
+ <path d="M20 6L9 17l-5-5" />
16
+ </svg>
17
+ );
18
+ }
@@ -0,0 +1,31 @@
1
+ import { cn } from "@dub/utils";
2
+
3
+ export default function Twitter({ className }: { className?: string }) {
4
+ return (
5
+ <div className="group">
6
+ <svg
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ viewBox="0 0 248 204"
9
+ className={cn("group-hover:hidden", className)}
10
+ >
11
+ <path
12
+ fill="currentColor"
13
+ d="M221.95 51.29c.15 2.17.15 4.34.15 6.53 0 66.73-50.8 143.69-143.69 143.69v-.04c-27.44.04-54.31-7.82-77.41-22.64 3.99.48 8 .72 12.02.73 22.74.02 44.83-7.61 62.72-21.66-21.61-.41-40.56-14.5-47.18-35.07 7.57 1.46 15.37 1.16 22.8-.87-23.56-4.76-40.51-25.46-40.51-49.5v-.64c7.02 3.91 14.88 6.08 22.92 6.32C11.58 63.31 4.74 33.79 18.14 10.71c25.64 31.55 63.47 50.73 104.08 52.76-4.07-17.54 1.49-35.92 14.61-48.25 20.34-19.12 52.33-18.14 71.45 2.19 11.31-2.23 22.15-6.38 32.07-12.26-3.77 11.69-11.66 21.62-22.2 27.93 10.01-1.18 19.79-3.86 29-7.95-6.78 10.16-15.32 19.01-25.2 26.16z"
14
+ />
15
+ </svg>
16
+ <svg
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ viewBox="0 0 1668.56 1221.19"
19
+ className={cn("hidden scale-150 group-hover:block", className)}
20
+ >
21
+ <g transform="translate(52.390088,-25.058597)">
22
+ <path
23
+ fill="currentColor"
24
+ d="M283.94,167.31l386.39,516.64L281.5,1104h87.51l340.42-367.76L984.48,1104h297.8L874.15,558.3l361.92-390.99
25
+ h-87.51l-313.51,338.7l-253.31-338.7H283.94z M412.63,231.77h136.81l604.13,807.76h-136.81L412.63,231.77z"
26
+ />
27
+ </g>
28
+ </svg>
29
+ </div>
30
+ );
31
+ }
@@ -0,0 +1,17 @@
1
+ export default function Unsplash({ className }: { className?: string }) {
2
+ return (
3
+ <svg
4
+ width="32"
5
+ height="32"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ viewBox="0 0 32 32"
8
+ className={className}
9
+ >
10
+ <path
11
+ d="M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z"
12
+ fill="currentColor"
13
+ fillRule="nonzero"
14
+ />
15
+ </svg>
16
+ );
17
+ }
package/src/index.tsx ADDED
@@ -0,0 +1,35 @@
1
+ // styles
2
+ import "./styles.css";
3
+
4
+ // components
5
+ export * from "./accordion";
6
+ export * from "./avatar";
7
+ export * from "./badge";
8
+ export * from "./button";
9
+ export * from "./form";
10
+ export * from "./modal";
11
+ export * from "./popover";
12
+ export * from "./switch";
13
+ export * from "./tooltip";
14
+
15
+ // hooks
16
+ export * from "./hooks";
17
+
18
+ // icons
19
+ export * from "./icons";
20
+
21
+ // layout
22
+ export * from "./background";
23
+ export * from "./footer";
24
+ export * from "./max-width-wrapper";
25
+ export * from "./nav";
26
+ export * from "./nav-mobile";
27
+
28
+ // content
29
+ export * from "./content";
30
+
31
+ // misc
32
+ export * from "./copy-button";
33
+ export * from "./icon-menu";
34
+ export * from "./link-preview";
35
+ export * from "./tab-select";