@blueshift-gg/ui-components 0.1.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 (534) hide show
  1. package/README.md +105 -0
  2. package/dist/Avatar.d.mts +17 -0
  3. package/dist/Avatar.d.ts +17 -0
  4. package/dist/Avatar.js +66 -0
  5. package/dist/Avatar.js.map +1 -0
  6. package/dist/Avatar.mjs +60 -0
  7. package/dist/Avatar.mjs.map +1 -0
  8. package/dist/Badge.d.mts +19 -0
  9. package/dist/Badge.d.ts +19 -0
  10. package/dist/Badge.js +78 -0
  11. package/dist/Badge.js.map +1 -0
  12. package/dist/Badge.mjs +72 -0
  13. package/dist/Badge.mjs.map +1 -0
  14. package/dist/Button.d.mts +31 -0
  15. package/dist/Button.d.ts +31 -0
  16. package/dist/Button.js +132 -0
  17. package/dist/Button.js.map +1 -0
  18. package/dist/Button.mjs +125 -0
  19. package/dist/Button.mjs.map +1 -0
  20. package/dist/Checkbox.d.mts +12 -0
  21. package/dist/Checkbox.d.ts +12 -0
  22. package/dist/Checkbox.js +63 -0
  23. package/dist/Checkbox.js.map +1 -0
  24. package/dist/Checkbox.mjs +57 -0
  25. package/dist/Checkbox.mjs.map +1 -0
  26. package/dist/Codeblock.d.mts +11 -0
  27. package/dist/Codeblock.d.ts +11 -0
  28. package/dist/Codeblock.js +87 -0
  29. package/dist/Codeblock.js.map +1 -0
  30. package/dist/Codeblock.mjs +81 -0
  31. package/dist/Codeblock.mjs.map +1 -0
  32. package/dist/CrossHair.d.mts +19 -0
  33. package/dist/CrossHair.d.ts +19 -0
  34. package/dist/CrossHair.js +269 -0
  35. package/dist/CrossHair.js.map +1 -0
  36. package/dist/CrossHair.mjs +263 -0
  37. package/dist/CrossHair.mjs.map +1 -0
  38. package/dist/DecryptText.d.mts +13 -0
  39. package/dist/DecryptText.d.ts +13 -0
  40. package/dist/DecryptText.js +123 -0
  41. package/dist/DecryptText.js.map +1 -0
  42. package/dist/DecryptText.mjs +117 -0
  43. package/dist/DecryptText.mjs.map +1 -0
  44. package/dist/Divider.d.mts +9 -0
  45. package/dist/Divider.d.ts +9 -0
  46. package/dist/Divider.js +51 -0
  47. package/dist/Divider.js.map +1 -0
  48. package/dist/Divider.mjs +45 -0
  49. package/dist/Divider.mjs.map +1 -0
  50. package/dist/Dropdown.d.mts +73 -0
  51. package/dist/Dropdown.d.ts +73 -0
  52. package/dist/Dropdown.js +396 -0
  53. package/dist/Dropdown.js.map +1 -0
  54. package/dist/Dropdown.mjs +387 -0
  55. package/dist/Dropdown.mjs.map +1 -0
  56. package/dist/GridLines.d.mts +11 -0
  57. package/dist/GridLines.d.ts +11 -0
  58. package/dist/GridLines.js +91 -0
  59. package/dist/GridLines.js.map +1 -0
  60. package/dist/GridLines.mjs +85 -0
  61. package/dist/GridLines.mjs.map +1 -0
  62. package/dist/Icon.d.mts +3 -0
  63. package/dist/Icon.d.ts +3 -0
  64. package/dist/Icon.js +33 -0
  65. package/dist/Icon.js.map +1 -0
  66. package/dist/Icon.mjs +24 -0
  67. package/dist/Icon.mjs.map +1 -0
  68. package/dist/Input.d.mts +38 -0
  69. package/dist/Input.d.ts +38 -0
  70. package/dist/Input.js +186 -0
  71. package/dist/Input.js.map +1 -0
  72. package/dist/Input.mjs +180 -0
  73. package/dist/Input.mjs.map +1 -0
  74. package/dist/Logo.d.mts +11 -0
  75. package/dist/Logo.d.ts +11 -0
  76. package/dist/Logo.js +156 -0
  77. package/dist/Logo.js.map +1 -0
  78. package/dist/Logo.mjs +150 -0
  79. package/dist/Logo.mjs.map +1 -0
  80. package/dist/Pagination.d.mts +23 -0
  81. package/dist/Pagination.d.ts +23 -0
  82. package/dist/Pagination.js +186 -0
  83. package/dist/Pagination.js.map +1 -0
  84. package/dist/Pagination.mjs +179 -0
  85. package/dist/Pagination.mjs.map +1 -0
  86. package/dist/Slider.d.mts +28 -0
  87. package/dist/Slider.d.ts +28 -0
  88. package/dist/Slider.js +344 -0
  89. package/dist/Slider.js.map +1 -0
  90. package/dist/Slider.mjs +338 -0
  91. package/dist/Slider.mjs.map +1 -0
  92. package/dist/Tabs.d.mts +23 -0
  93. package/dist/Tabs.d.ts +23 -0
  94. package/dist/Tabs.js +101 -0
  95. package/dist/Tabs.js.map +1 -0
  96. package/dist/Tabs.mjs +95 -0
  97. package/dist/Tabs.mjs.map +1 -0
  98. package/dist/Toast.d.mts +19 -0
  99. package/dist/Toast.d.ts +19 -0
  100. package/dist/Toast.js +90 -0
  101. package/dist/Toast.js.map +1 -0
  102. package/dist/Toast.mjs +80 -0
  103. package/dist/Toast.mjs.map +1 -0
  104. package/dist/Tooltip.d.mts +10 -0
  105. package/dist/Tooltip.d.ts +10 -0
  106. package/dist/Tooltip.js +146 -0
  107. package/dist/Tooltip.js.map +1 -0
  108. package/dist/Tooltip.mjs +140 -0
  109. package/dist/Tooltip.mjs.map +1 -0
  110. package/dist/fonts/CommitMono-Regular.woff2 +0 -0
  111. package/dist/fonts/CommitMono-Regular.woff2.d.mts +2 -0
  112. package/dist/fonts/CommitMono-Regular.woff2.d.ts +2 -0
  113. package/dist/fonts/MONTECHV02-Medium.woff2 +0 -0
  114. package/dist/fonts/MONTECHV02-Medium.woff2.d.mts +2 -0
  115. package/dist/fonts/MONTECHV02-Medium.woff2.d.ts +2 -0
  116. package/dist/fonts/Switzer-Regular.woff2 +0 -0
  117. package/dist/fonts/Switzer-Regular.woff2.d.mts +2 -0
  118. package/dist/fonts/Switzer-Regular.woff2.d.ts +2 -0
  119. package/dist/icons/Anchor.d.mts +7 -0
  120. package/dist/icons/Anchor.d.ts +7 -0
  121. package/dist/icons/Anchor.js +89 -0
  122. package/dist/icons/Anchor.js.map +1 -0
  123. package/dist/icons/Anchor.mjs +83 -0
  124. package/dist/icons/Anchor.mjs.map +1 -0
  125. package/dist/icons/ArrowLeft.d.mts +7 -0
  126. package/dist/icons/ArrowLeft.d.ts +7 -0
  127. package/dist/icons/ArrowLeft.js +37 -0
  128. package/dist/icons/ArrowLeft.js.map +1 -0
  129. package/dist/icons/ArrowLeft.mjs +35 -0
  130. package/dist/icons/ArrowLeft.mjs.map +1 -0
  131. package/dist/icons/ArrowRight.d.mts +7 -0
  132. package/dist/icons/ArrowRight.d.ts +7 -0
  133. package/dist/icons/ArrowRight.js +37 -0
  134. package/dist/icons/ArrowRight.js.map +1 -0
  135. package/dist/icons/ArrowRight.mjs +35 -0
  136. package/dist/icons/ArrowRight.mjs.map +1 -0
  137. package/dist/icons/Assembly.d.mts +7 -0
  138. package/dist/icons/Assembly.d.ts +7 -0
  139. package/dist/icons/Assembly.js +172 -0
  140. package/dist/icons/Assembly.js.map +1 -0
  141. package/dist/icons/Assembly.mjs +166 -0
  142. package/dist/icons/Assembly.mjs.map +1 -0
  143. package/dist/icons/Challenge.d.mts +7 -0
  144. package/dist/icons/Challenge.d.ts +7 -0
  145. package/dist/icons/Challenge.js +42 -0
  146. package/dist/icons/Challenge.js.map +1 -0
  147. package/dist/icons/Challenge.mjs +40 -0
  148. package/dist/icons/Challenge.mjs.map +1 -0
  149. package/dist/icons/Chevron.d.mts +7 -0
  150. package/dist/icons/Chevron.d.ts +7 -0
  151. package/dist/icons/Chevron.js +28 -0
  152. package/dist/icons/Chevron.js.map +1 -0
  153. package/dist/icons/Chevron.mjs +26 -0
  154. package/dist/icons/Chevron.mjs.map +1 -0
  155. package/dist/icons/ChevronLeft.d.mts +7 -0
  156. package/dist/icons/ChevronLeft.d.ts +7 -0
  157. package/dist/icons/ChevronLeft.js +28 -0
  158. package/dist/icons/ChevronLeft.js.map +1 -0
  159. package/dist/icons/ChevronLeft.mjs +26 -0
  160. package/dist/icons/ChevronLeft.mjs.map +1 -0
  161. package/dist/icons/ChevronRight.d.mts +7 -0
  162. package/dist/icons/ChevronRight.d.ts +7 -0
  163. package/dist/icons/ChevronRight.js +28 -0
  164. package/dist/icons/ChevronRight.js.map +1 -0
  165. package/dist/icons/ChevronRight.mjs +26 -0
  166. package/dist/icons/ChevronRight.mjs.map +1 -0
  167. package/dist/icons/Claim.d.mts +7 -0
  168. package/dist/icons/Claim.d.ts +7 -0
  169. package/dist/icons/Claim.js +38 -0
  170. package/dist/icons/Claim.js.map +1 -0
  171. package/dist/icons/Claim.mjs +36 -0
  172. package/dist/icons/Claim.mjs.map +1 -0
  173. package/dist/icons/Claimed.d.mts +7 -0
  174. package/dist/icons/Claimed.d.ts +7 -0
  175. package/dist/icons/Claimed.js +28 -0
  176. package/dist/icons/Claimed.js.map +1 -0
  177. package/dist/icons/Claimed.mjs +26 -0
  178. package/dist/icons/Claimed.mjs.map +1 -0
  179. package/dist/icons/Close.d.mts +7 -0
  180. package/dist/icons/Close.d.ts +7 -0
  181. package/dist/icons/Close.js +39 -0
  182. package/dist/icons/Close.js.map +1 -0
  183. package/dist/icons/Close.mjs +37 -0
  184. package/dist/icons/Close.mjs.map +1 -0
  185. package/dist/icons/Code.d.mts +7 -0
  186. package/dist/icons/Code.d.ts +7 -0
  187. package/dist/icons/Code.js +40 -0
  188. package/dist/icons/Code.js.map +1 -0
  189. package/dist/icons/Code.mjs +38 -0
  190. package/dist/icons/Code.mjs.map +1 -0
  191. package/dist/icons/Copy.d.mts +7 -0
  192. package/dist/icons/Copy.d.ts +7 -0
  193. package/dist/icons/Copy.js +37 -0
  194. package/dist/icons/Copy.js.map +1 -0
  195. package/dist/icons/Copy.mjs +35 -0
  196. package/dist/icons/Copy.mjs.map +1 -0
  197. package/dist/icons/Developer.d.mts +7 -0
  198. package/dist/icons/Developer.d.ts +7 -0
  199. package/dist/icons/Developer.js +46 -0
  200. package/dist/icons/Developer.js.map +1 -0
  201. package/dist/icons/Developer.mjs +44 -0
  202. package/dist/icons/Developer.mjs.map +1 -0
  203. package/dist/icons/Difficulty.d.mts +3 -0
  204. package/dist/icons/Difficulty.d.ts +3 -0
  205. package/dist/icons/Difficulty.js +142 -0
  206. package/dist/icons/Difficulty.js.map +1 -0
  207. package/dist/icons/Difficulty.mjs +140 -0
  208. package/dist/icons/Difficulty.mjs.map +1 -0
  209. package/dist/icons/Discord.d.mts +7 -0
  210. package/dist/icons/Discord.d.ts +7 -0
  211. package/dist/icons/Discord.js +28 -0
  212. package/dist/icons/Discord.js.map +1 -0
  213. package/dist/icons/Discord.mjs +26 -0
  214. package/dist/icons/Discord.mjs.map +1 -0
  215. package/dist/icons/Dollar.d.mts +7 -0
  216. package/dist/icons/Dollar.d.ts +7 -0
  217. package/dist/icons/Dollar.js +30 -0
  218. package/dist/icons/Dollar.js.map +1 -0
  219. package/dist/icons/Dollar.mjs +28 -0
  220. package/dist/icons/Dollar.mjs.map +1 -0
  221. package/dist/icons/DoubleArrow.d.mts +7 -0
  222. package/dist/icons/DoubleArrow.d.ts +7 -0
  223. package/dist/icons/DoubleArrow.js +37 -0
  224. package/dist/icons/DoubleArrow.js.map +1 -0
  225. package/dist/icons/DoubleArrow.mjs +35 -0
  226. package/dist/icons/DoubleArrow.mjs.map +1 -0
  227. package/dist/icons/EVM.d.mts +7 -0
  228. package/dist/icons/EVM.d.ts +7 -0
  229. package/dist/icons/EVM.js +41 -0
  230. package/dist/icons/EVM.js.map +1 -0
  231. package/dist/icons/EVM.mjs +39 -0
  232. package/dist/icons/EVM.mjs.map +1 -0
  233. package/dist/icons/Email.d.mts +7 -0
  234. package/dist/icons/Email.d.ts +7 -0
  235. package/dist/icons/Email.js +45 -0
  236. package/dist/icons/Email.js.map +1 -0
  237. package/dist/icons/Email.mjs +43 -0
  238. package/dist/icons/Email.mjs.map +1 -0
  239. package/dist/icons/Error.d.mts +7 -0
  240. package/dist/icons/Error.d.ts +7 -0
  241. package/dist/icons/Error.js +28 -0
  242. package/dist/icons/Error.js.map +1 -0
  243. package/dist/icons/Error.mjs +26 -0
  244. package/dist/icons/Error.mjs.map +1 -0
  245. package/dist/icons/External.d.mts +7 -0
  246. package/dist/icons/External.d.ts +7 -0
  247. package/dist/icons/External.js +38 -0
  248. package/dist/icons/External.js.map +1 -0
  249. package/dist/icons/External.mjs +36 -0
  250. package/dist/icons/External.mjs.map +1 -0
  251. package/dist/icons/Filter.d.mts +7 -0
  252. package/dist/icons/Filter.d.ts +7 -0
  253. package/dist/icons/Filter.js +45 -0
  254. package/dist/icons/Filter.js.map +1 -0
  255. package/dist/icons/Filter.mjs +43 -0
  256. package/dist/icons/Filter.mjs.map +1 -0
  257. package/dist/icons/Firmware.d.mts +7 -0
  258. package/dist/icons/Firmware.d.ts +7 -0
  259. package/dist/icons/Firmware.js +37 -0
  260. package/dist/icons/Firmware.js.map +1 -0
  261. package/dist/icons/Firmware.mjs +35 -0
  262. package/dist/icons/Firmware.mjs.map +1 -0
  263. package/dist/icons/Flag.d.mts +7 -0
  264. package/dist/icons/Flag.d.ts +7 -0
  265. package/dist/icons/Flag.js +37 -0
  266. package/dist/icons/Flag.js.map +1 -0
  267. package/dist/icons/Flag.mjs +35 -0
  268. package/dist/icons/Flag.mjs.map +1 -0
  269. package/dist/icons/Flame.d.mts +7 -0
  270. package/dist/icons/Flame.d.ts +7 -0
  271. package/dist/icons/Flame.js +28 -0
  272. package/dist/icons/Flame.js.map +1 -0
  273. package/dist/icons/Flame.mjs +26 -0
  274. package/dist/icons/Flame.mjs.map +1 -0
  275. package/dist/icons/Flexible.d.mts +7 -0
  276. package/dist/icons/Flexible.d.ts +7 -0
  277. package/dist/icons/Flexible.js +52 -0
  278. package/dist/icons/Flexible.js.map +1 -0
  279. package/dist/icons/Flexible.mjs +50 -0
  280. package/dist/icons/Flexible.mjs.map +1 -0
  281. package/dist/icons/Free.d.mts +7 -0
  282. package/dist/icons/Free.d.ts +7 -0
  283. package/dist/icons/Free.js +53 -0
  284. package/dist/icons/Free.js.map +1 -0
  285. package/dist/icons/Free.mjs +51 -0
  286. package/dist/icons/Free.mjs.map +1 -0
  287. package/dist/icons/General.d.mts +7 -0
  288. package/dist/icons/General.d.ts +7 -0
  289. package/dist/icons/General.js +60 -0
  290. package/dist/icons/General.js.map +1 -0
  291. package/dist/icons/General.mjs +58 -0
  292. package/dist/icons/General.mjs.map +1 -0
  293. package/dist/icons/Github.d.mts +7 -0
  294. package/dist/icons/Github.d.ts +7 -0
  295. package/dist/icons/Github.js +39 -0
  296. package/dist/icons/Github.js.map +1 -0
  297. package/dist/icons/Github.mjs +37 -0
  298. package/dist/icons/Github.mjs.map +1 -0
  299. package/dist/icons/GridView.d.mts +7 -0
  300. package/dist/icons/GridView.d.ts +7 -0
  301. package/dist/icons/GridView.js +51 -0
  302. package/dist/icons/GridView.js.map +1 -0
  303. package/dist/icons/GridView.mjs +49 -0
  304. package/dist/icons/GridView.mjs.map +1 -0
  305. package/dist/icons/Heart.d.mts +7 -0
  306. package/dist/icons/Heart.d.ts +7 -0
  307. package/dist/icons/Heart.js +28 -0
  308. package/dist/icons/Heart.js.map +1 -0
  309. package/dist/icons/Heart.mjs +26 -0
  310. package/dist/icons/Heart.mjs.map +1 -0
  311. package/dist/icons/Info.d.mts +7 -0
  312. package/dist/icons/Info.d.ts +7 -0
  313. package/dist/icons/Info.js +28 -0
  314. package/dist/icons/Info.js.map +1 -0
  315. package/dist/icons/Info.mjs +26 -0
  316. package/dist/icons/Info.mjs.map +1 -0
  317. package/dist/icons/Language.d.mts +7 -0
  318. package/dist/icons/Language.d.ts +7 -0
  319. package/dist/icons/Language.js +42 -0
  320. package/dist/icons/Language.js.map +1 -0
  321. package/dist/icons/Language.mjs +40 -0
  322. package/dist/icons/Language.mjs.map +1 -0
  323. package/dist/icons/Lessons.d.mts +7 -0
  324. package/dist/icons/Lessons.d.ts +7 -0
  325. package/dist/icons/Lessons.js +38 -0
  326. package/dist/icons/Lessons.js.map +1 -0
  327. package/dist/icons/Lessons.mjs +36 -0
  328. package/dist/icons/Lessons.mjs.map +1 -0
  329. package/dist/icons/Link.d.mts +7 -0
  330. package/dist/icons/Link.d.ts +7 -0
  331. package/dist/icons/Link.js +37 -0
  332. package/dist/icons/Link.js.map +1 -0
  333. package/dist/icons/Link.mjs +35 -0
  334. package/dist/icons/Link.mjs.map +1 -0
  335. package/dist/icons/ListView.d.mts +7 -0
  336. package/dist/icons/ListView.d.ts +7 -0
  337. package/dist/icons/ListView.js +44 -0
  338. package/dist/icons/ListView.js.map +1 -0
  339. package/dist/icons/ListView.mjs +42 -0
  340. package/dist/icons/ListView.mjs.map +1 -0
  341. package/dist/icons/Loading.d.mts +7 -0
  342. package/dist/icons/Loading.d.ts +7 -0
  343. package/dist/icons/Loading.js +40 -0
  344. package/dist/icons/Loading.js.map +1 -0
  345. package/dist/icons/Loading.mjs +38 -0
  346. package/dist/icons/Loading.mjs.map +1 -0
  347. package/dist/icons/Locked.d.mts +7 -0
  348. package/dist/icons/Locked.d.ts +7 -0
  349. package/dist/icons/Locked.js +37 -0
  350. package/dist/icons/Locked.js.map +1 -0
  351. package/dist/icons/Locked.mjs +35 -0
  352. package/dist/icons/Locked.mjs.map +1 -0
  353. package/dist/icons/Mentor.d.mts +7 -0
  354. package/dist/icons/Mentor.d.ts +7 -0
  355. package/dist/icons/Mentor.js +47 -0
  356. package/dist/icons/Mentor.js.map +1 -0
  357. package/dist/icons/Mentor.mjs +45 -0
  358. package/dist/icons/Mentor.mjs.map +1 -0
  359. package/dist/icons/Modular.d.mts +7 -0
  360. package/dist/icons/Modular.d.ts +7 -0
  361. package/dist/icons/Modular.js +53 -0
  362. package/dist/icons/Modular.js.map +1 -0
  363. package/dist/icons/Modular.mjs +51 -0
  364. package/dist/icons/Modular.mjs.map +1 -0
  365. package/dist/icons/NFT.d.mts +7 -0
  366. package/dist/icons/NFT.d.ts +7 -0
  367. package/dist/icons/NFT.js +49 -0
  368. package/dist/icons/NFT.js.map +1 -0
  369. package/dist/icons/NFT.mjs +47 -0
  370. package/dist/icons/NFT.mjs.map +1 -0
  371. package/dist/icons/Online.d.mts +7 -0
  372. package/dist/icons/Online.d.ts +7 -0
  373. package/dist/icons/Online.js +55 -0
  374. package/dist/icons/Online.js.map +1 -0
  375. package/dist/icons/Online.mjs +53 -0
  376. package/dist/icons/Online.mjs.map +1 -0
  377. package/dist/icons/Password.d.mts +7 -0
  378. package/dist/icons/Password.d.ts +7 -0
  379. package/dist/icons/Password.js +44 -0
  380. package/dist/icons/Password.js.map +1 -0
  381. package/dist/icons/Password.mjs +42 -0
  382. package/dist/icons/Password.mjs.map +1 -0
  383. package/dist/icons/Product.d.mts +7 -0
  384. package/dist/icons/Product.d.ts +7 -0
  385. package/dist/icons/Product.js +44 -0
  386. package/dist/icons/Product.js.map +1 -0
  387. package/dist/icons/Product.mjs +42 -0
  388. package/dist/icons/Product.mjs.map +1 -0
  389. package/dist/icons/Progress.d.mts +7 -0
  390. package/dist/icons/Progress.d.ts +7 -0
  391. package/dist/icons/Progress.js +37 -0
  392. package/dist/icons/Progress.js.map +1 -0
  393. package/dist/icons/Progress.mjs +35 -0
  394. package/dist/icons/Progress.mjs.map +1 -0
  395. package/dist/icons/Protocol.d.mts +7 -0
  396. package/dist/icons/Protocol.d.ts +7 -0
  397. package/dist/icons/Protocol.js +44 -0
  398. package/dist/icons/Protocol.js.map +1 -0
  399. package/dist/icons/Protocol.mjs +42 -0
  400. package/dist/icons/Protocol.mjs.map +1 -0
  401. package/dist/icons/Rewards.d.mts +7 -0
  402. package/dist/icons/Rewards.d.ts +7 -0
  403. package/dist/icons/Rewards.js +38 -0
  404. package/dist/icons/Rewards.js.map +1 -0
  405. package/dist/icons/Rewards.mjs +36 -0
  406. package/dist/icons/Rewards.mjs.map +1 -0
  407. package/dist/icons/Rust.d.mts +7 -0
  408. package/dist/icons/Rust.d.ts +7 -0
  409. package/dist/icons/Rust.js +146 -0
  410. package/dist/icons/Rust.js.map +1 -0
  411. package/dist/icons/Rust.mjs +144 -0
  412. package/dist/icons/Rust.mjs.map +1 -0
  413. package/dist/icons/Search.d.mts +7 -0
  414. package/dist/icons/Search.d.ts +7 -0
  415. package/dist/icons/Search.js +52 -0
  416. package/dist/icons/Search.js.map +1 -0
  417. package/dist/icons/Search.mjs +50 -0
  418. package/dist/icons/Search.mjs.map +1 -0
  419. package/dist/icons/SmartContract.d.mts +7 -0
  420. package/dist/icons/SmartContract.d.ts +7 -0
  421. package/dist/icons/SmartContract.js +28 -0
  422. package/dist/icons/SmartContract.js.map +1 -0
  423. package/dist/icons/SmartContract.mjs +26 -0
  424. package/dist/icons/SmartContract.mjs.map +1 -0
  425. package/dist/icons/Solana.d.mts +7 -0
  426. package/dist/icons/Solana.d.ts +7 -0
  427. package/dist/icons/Solana.js +52 -0
  428. package/dist/icons/Solana.js.map +1 -0
  429. package/dist/icons/Solana.mjs +50 -0
  430. package/dist/icons/Solana.mjs.map +1 -0
  431. package/dist/icons/Success.d.mts +7 -0
  432. package/dist/icons/Success.d.ts +7 -0
  433. package/dist/icons/Success.js +31 -0
  434. package/dist/icons/Success.js.map +1 -0
  435. package/dist/icons/Success.mjs +29 -0
  436. package/dist/icons/Success.mjs.map +1 -0
  437. package/dist/icons/SuccessCircle.d.mts +7 -0
  438. package/dist/icons/SuccessCircle.d.ts +7 -0
  439. package/dist/icons/SuccessCircle.js +31 -0
  440. package/dist/icons/SuccessCircle.js.map +1 -0
  441. package/dist/icons/SuccessCircle.mjs +29 -0
  442. package/dist/icons/SuccessCircle.mjs.map +1 -0
  443. package/dist/icons/Table.d.mts +7 -0
  444. package/dist/icons/Table.d.ts +7 -0
  445. package/dist/icons/Table.js +44 -0
  446. package/dist/icons/Table.js.map +1 -0
  447. package/dist/icons/Table.mjs +42 -0
  448. package/dist/icons/Table.mjs.map +1 -0
  449. package/dist/icons/Target.d.mts +7 -0
  450. package/dist/icons/Target.d.ts +7 -0
  451. package/dist/icons/Target.js +47 -0
  452. package/dist/icons/Target.js.map +1 -0
  453. package/dist/icons/Target.mjs +45 -0
  454. package/dist/icons/Target.mjs.map +1 -0
  455. package/dist/icons/Training.d.mts +7 -0
  456. package/dist/icons/Training.d.ts +7 -0
  457. package/dist/icons/Training.js +44 -0
  458. package/dist/icons/Training.js.map +1 -0
  459. package/dist/icons/Training.mjs +42 -0
  460. package/dist/icons/Training.mjs.map +1 -0
  461. package/dist/icons/Typescript.d.mts +7 -0
  462. package/dist/icons/Typescript.d.ts +7 -0
  463. package/dist/icons/Typescript.js +124 -0
  464. package/dist/icons/Typescript.js.map +1 -0
  465. package/dist/icons/Typescript.mjs +122 -0
  466. package/dist/icons/Typescript.mjs.map +1 -0
  467. package/dist/icons/Unclaimed.d.mts +7 -0
  468. package/dist/icons/Unclaimed.d.ts +7 -0
  469. package/dist/icons/Unclaimed.js +37 -0
  470. package/dist/icons/Unclaimed.js.map +1 -0
  471. package/dist/icons/Unclaimed.mjs +35 -0
  472. package/dist/icons/Unclaimed.mjs.map +1 -0
  473. package/dist/icons/Upload.d.mts +7 -0
  474. package/dist/icons/Upload.d.ts +7 -0
  475. package/dist/icons/Upload.js +38 -0
  476. package/dist/icons/Upload.js.map +1 -0
  477. package/dist/icons/Upload.mjs +36 -0
  478. package/dist/icons/Upload.mjs.map +1 -0
  479. package/dist/icons/Wallet.d.mts +7 -0
  480. package/dist/icons/Wallet.d.ts +7 -0
  481. package/dist/icons/Wallet.js +46 -0
  482. package/dist/icons/Wallet.js.map +1 -0
  483. package/dist/icons/Wallet.mjs +44 -0
  484. package/dist/icons/Wallet.mjs.map +1 -0
  485. package/dist/icons/WalletSmall.d.mts +7 -0
  486. package/dist/icons/WalletSmall.d.ts +7 -0
  487. package/dist/icons/WalletSmall.js +37 -0
  488. package/dist/icons/WalletSmall.js.map +1 -0
  489. package/dist/icons/WalletSmall.mjs +35 -0
  490. package/dist/icons/WalletSmall.mjs.map +1 -0
  491. package/dist/icons/Warning.d.mts +7 -0
  492. package/dist/icons/Warning.d.ts +7 -0
  493. package/dist/icons/Warning.js +33 -0
  494. package/dist/icons/Warning.js.map +1 -0
  495. package/dist/icons/Warning.mjs +31 -0
  496. package/dist/icons/Warning.mjs.map +1 -0
  497. package/dist/icons/X.d.mts +7 -0
  498. package/dist/icons/X.d.ts +7 -0
  499. package/dist/icons/X.js +28 -0
  500. package/dist/icons/X.js.map +1 -0
  501. package/dist/icons/X.mjs +26 -0
  502. package/dist/icons/X.mjs.map +1 -0
  503. package/dist/icons/index.d.mts +3 -0
  504. package/dist/icons/index.d.ts +3 -0
  505. package/dist/icons/index.js +147 -0
  506. package/dist/icons/index.js.map +1 -0
  507. package/dist/icons/index.mjs +144 -0
  508. package/dist/icons/index.mjs.map +1 -0
  509. package/dist/index-DWGhkMUQ.d.mts +88 -0
  510. package/dist/index-ekBNDG0H.d.ts +88 -0
  511. package/dist/index.d.mts +20 -0
  512. package/dist/index.d.ts +20 -0
  513. package/dist/index.js +119 -0
  514. package/dist/index.js.map +1 -0
  515. package/dist/index.mjs +20 -0
  516. package/dist/index.mjs.map +1 -0
  517. package/dist/utils/colours.d.mts +30 -0
  518. package/dist/utils/colours.d.ts +30 -0
  519. package/dist/utils/colours.js +35 -0
  520. package/dist/utils/colours.js.map +1 -0
  521. package/dist/utils/colours.mjs +31 -0
  522. package/dist/utils/colours.mjs.map +1 -0
  523. package/dist/utils/easings.d.mts +19 -0
  524. package/dist/utils/easings.d.ts +19 -0
  525. package/dist/utils/easings.js +23 -0
  526. package/dist/utils/easings.js.map +1 -0
  527. package/dist/utils/easings.mjs +14 -0
  528. package/dist/utils/easings.mjs.map +1 -0
  529. package/package.json +87 -0
  530. package/src/fonts/CommitMono-Regular.woff2 +0 -0
  531. package/src/fonts/MONTECHV02-Medium.ttf +0 -0
  532. package/src/fonts/MONTECHV02-Medium.woff2 +0 -0
  533. package/src/fonts/Switzer-Regular.woff2 +0 -0
  534. package/src/theme.css +124 -0
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var classNames = require('classnames');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
9
+
10
+ const Divider = ({
11
+ className,
12
+ direction = "horizontal"
13
+ }) => {
14
+ return /* @__PURE__ */ jsxRuntime.jsxs(
15
+ "div",
16
+ {
17
+ className: classNames__default.default(
18
+ "flex",
19
+ direction === "horizontal" && "flex-col w-full",
20
+ direction === "vertical" && "flex-row h-full",
21
+ className
22
+ ),
23
+ children: [
24
+ /* @__PURE__ */ jsxRuntime.jsx(
25
+ "div",
26
+ {
27
+ className: classNames__default.default(
28
+ "bg-background",
29
+ direction === "horizontal" && "w-full h-px",
30
+ direction === "vertical" && "h-full w-px"
31
+ )
32
+ }
33
+ ),
34
+ /* @__PURE__ */ jsxRuntime.jsx(
35
+ "div",
36
+ {
37
+ className: classNames__default.default(
38
+ "bg-border-light",
39
+ direction === "horizontal" && "w-full h-px",
40
+ direction === "vertical" && "h-full w-px"
41
+ )
42
+ }
43
+ )
44
+ ]
45
+ }
46
+ );
47
+ };
48
+
49
+ exports.Divider = Divider;
50
+ //# sourceMappingURL=Divider.js.map
51
+ //# sourceMappingURL=Divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Divider.tsx"],"names":["jsxs","classNames","jsx"],"mappings":";;;;;;;;;AAQO,MAAM,UAAU,CAAC;AAAA,EACtB,SAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAoB;AAClB,EAAA,uBACEA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,2BAAA;AAAA,QACT,MAAA;AAAA,QACA,cAAc,YAAA,IAAgB,iBAAA;AAAA,QAC9B,cAAc,UAAA,IAAc,iBAAA;AAAA,QAC5B;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWD,2BAAA;AAAA,cACT,eAAA;AAAA,cACA,cAAc,YAAA,IAAgB,aAAA;AAAA,cAC9B,cAAc,UAAA,IAAc;AAAA;AAC9B;AAAA,SACF;AAAA,wBACAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWD,2BAAA;AAAA,cACT,iBAAA;AAAA,cACA,cAAc,YAAA,IAAgB,aAAA;AAAA,cAC9B,cAAc,UAAA,IAAc;AAAA;AAC9B;AAAA;AACF;AAAA;AAAA,GACF;AAEJ","file":"Divider.js","sourcesContent":["import classNames from \"classnames\";\nimport { GridLines } from \"./GridLines\";\n\nexport type DividerProps = {\n className?: string;\n direction?: \"horizontal\" | \"vertical\";\n};\n\nexport const Divider = ({\n className,\n direction = \"horizontal\",\n}: DividerProps) => {\n return (\n <div\n className={classNames(\n \"flex\",\n direction === \"horizontal\" && \"flex-col w-full\",\n direction === \"vertical\" && \"flex-row h-full\",\n className\n )}\n >\n <div\n className={classNames(\n \"bg-background\",\n direction === \"horizontal\" && \"w-full h-px\",\n direction === \"vertical\" && \"h-full w-px\"\n )}\n />\n <div\n className={classNames(\n \"bg-border-light\",\n direction === \"horizontal\" && \"w-full h-px\",\n direction === \"vertical\" && \"h-full w-px\"\n )}\n />\n </div>\n );\n};\n"]}
@@ -0,0 +1,45 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import classNames from 'classnames';
3
+
4
+ const Divider = ({
5
+ className,
6
+ direction = "horizontal"
7
+ }) => {
8
+ return /* @__PURE__ */ jsxs(
9
+ "div",
10
+ {
11
+ className: classNames(
12
+ "flex",
13
+ direction === "horizontal" && "flex-col w-full",
14
+ direction === "vertical" && "flex-row h-full",
15
+ className
16
+ ),
17
+ children: [
18
+ /* @__PURE__ */ jsx(
19
+ "div",
20
+ {
21
+ className: classNames(
22
+ "bg-background",
23
+ direction === "horizontal" && "w-full h-px",
24
+ direction === "vertical" && "h-full w-px"
25
+ )
26
+ }
27
+ ),
28
+ /* @__PURE__ */ jsx(
29
+ "div",
30
+ {
31
+ className: classNames(
32
+ "bg-border-light",
33
+ direction === "horizontal" && "w-full h-px",
34
+ direction === "vertical" && "h-full w-px"
35
+ )
36
+ }
37
+ )
38
+ ]
39
+ }
40
+ );
41
+ };
42
+
43
+ export { Divider };
44
+ //# sourceMappingURL=Divider.mjs.map
45
+ //# sourceMappingURL=Divider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Divider.tsx"],"names":[],"mappings":";;;AAQO,MAAM,UAAU,CAAC;AAAA,EACtB,SAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAoB;AAClB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,UAAA;AAAA,QACT,MAAA;AAAA,QACA,cAAc,YAAA,IAAgB,iBAAA;AAAA,QAC9B,cAAc,UAAA,IAAc,iBAAA;AAAA,QAC5B;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,UAAA;AAAA,cACT,eAAA;AAAA,cACA,cAAc,YAAA,IAAgB,aAAA;AAAA,cAC9B,cAAc,UAAA,IAAc;AAAA;AAC9B;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,UAAA;AAAA,cACT,iBAAA;AAAA,cACA,cAAc,YAAA,IAAgB,aAAA;AAAA,cAC9B,cAAc,UAAA,IAAc;AAAA;AAC9B;AAAA;AACF;AAAA;AAAA,GACF;AAEJ","file":"Divider.mjs","sourcesContent":["import classNames from \"classnames\";\nimport { GridLines } from \"./GridLines\";\n\nexport type DividerProps = {\n className?: string;\n direction?: \"horizontal\" | \"vertical\";\n};\n\nexport const Divider = ({\n className,\n direction = \"horizontal\",\n}: DividerProps) => {\n return (\n <div\n className={classNames(\n \"flex\",\n direction === \"horizontal\" && \"flex-col w-full\",\n direction === \"vertical\" && \"flex-row h-full\",\n className\n )}\n >\n <div\n className={classNames(\n \"bg-background\",\n direction === \"horizontal\" && \"w-full h-px\",\n direction === \"vertical\" && \"h-full w-px\"\n )}\n />\n <div\n className={classNames(\n \"bg-border-light\",\n direction === \"horizontal\" && \"w-full h-px\",\n direction === \"vertical\" && \"h-full w-px\"\n )}\n />\n </div>\n );\n};\n"]}
@@ -0,0 +1,73 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { a as IconProps } from './index-DWGhkMUQ.mjs';
3
+ import './utils/colours.mjs';
4
+
5
+ type DropdownProps = {
6
+ className?: string;
7
+ items: {
8
+ label: string;
9
+ icon?: IconProps;
10
+ value: string;
11
+ disabled?: boolean;
12
+ }[];
13
+ selectedItem?: string | string[] | undefined;
14
+ handleChange: (item: string | string[] | undefined) => void;
15
+ multiple?: boolean;
16
+ disabled?: boolean;
17
+ label: string;
18
+ multiSelectLabel?: string;
19
+ buttonClassName?: string;
20
+ menuClassName?: string;
21
+ menuIcon?: IconProps;
22
+ size?: "sm" | "md" | "lg";
23
+ isScrollable?: boolean;
24
+ animationOrigin?: "top-left" | "top-center" | "top-right";
25
+ search?: string;
26
+ onClearSearch?: () => void;
27
+ };
28
+ type DropdownButtonProps = {
29
+ label: string;
30
+ multiSelectLabel?: string;
31
+ disabled?: boolean;
32
+ className?: string;
33
+ onClick: () => void;
34
+ buttonClassName?: string;
35
+ selectedItems?: DropdownProps["items"];
36
+ multiple?: boolean;
37
+ count?: number;
38
+ menuIcon?: IconProps;
39
+ size?: "sm" | "md" | "lg";
40
+ };
41
+ type DropdownItemProps = {
42
+ label: string;
43
+ icon?: IconProps;
44
+ onClick: () => void;
45
+ disabled?: boolean;
46
+ isSelected?: boolean;
47
+ size?: "sm" | "md" | "lg";
48
+ };
49
+ type DropdownMenuProps = {
50
+ items: {
51
+ label: string;
52
+ icon?: IconProps;
53
+ value: string;
54
+ disabled?: boolean;
55
+ }[];
56
+ selectedItem?: string | string[] | undefined;
57
+ handleChange: (item: string | string[] | undefined) => void;
58
+ multiple?: boolean;
59
+ menuClassName?: string;
60
+ size?: "sm" | "md" | "lg";
61
+ isOpen: boolean;
62
+ onItemClick?: (value: string) => void;
63
+ isScrollable?: boolean;
64
+ animationOrigin?: "top-left" | "top-center" | "top-right";
65
+ search?: string;
66
+ onClearSearch?: () => void;
67
+ };
68
+ declare const DropdownMenu: ({ items, selectedItem, handleChange, multiple, menuClassName, size, isOpen, onItemClick, isScrollable, animationOrigin, search, onClearSearch, }: DropdownMenuProps) => react_jsx_runtime.JSX.Element;
69
+ declare const Dropdown: ({ className, items, selectedItem, handleChange, label, multiSelectLabel, disabled, buttonClassName, menuClassName, multiple, menuIcon, size, isScrollable, search, onClearSearch, }: DropdownProps) => react_jsx_runtime.JSX.Element;
70
+ declare const DropdownButton: ({ label, multiSelectLabel, disabled, className, onClick, selectedItems, multiple, count, menuIcon, size, }: DropdownButtonProps) => react_jsx_runtime.JSX.Element;
71
+ declare const DropdownItem: ({ label, icon, onClick, disabled, isSelected, size, }: DropdownItemProps) => react_jsx_runtime.JSX.Element;
72
+
73
+ export { Dropdown, DropdownButton, type DropdownButtonProps, DropdownItem, type DropdownItemProps, DropdownMenu, type DropdownMenuProps, type DropdownProps };
@@ -0,0 +1,73 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { a as IconProps } from './index-ekBNDG0H.js';
3
+ import './utils/colours.js';
4
+
5
+ type DropdownProps = {
6
+ className?: string;
7
+ items: {
8
+ label: string;
9
+ icon?: IconProps;
10
+ value: string;
11
+ disabled?: boolean;
12
+ }[];
13
+ selectedItem?: string | string[] | undefined;
14
+ handleChange: (item: string | string[] | undefined) => void;
15
+ multiple?: boolean;
16
+ disabled?: boolean;
17
+ label: string;
18
+ multiSelectLabel?: string;
19
+ buttonClassName?: string;
20
+ menuClassName?: string;
21
+ menuIcon?: IconProps;
22
+ size?: "sm" | "md" | "lg";
23
+ isScrollable?: boolean;
24
+ animationOrigin?: "top-left" | "top-center" | "top-right";
25
+ search?: string;
26
+ onClearSearch?: () => void;
27
+ };
28
+ type DropdownButtonProps = {
29
+ label: string;
30
+ multiSelectLabel?: string;
31
+ disabled?: boolean;
32
+ className?: string;
33
+ onClick: () => void;
34
+ buttonClassName?: string;
35
+ selectedItems?: DropdownProps["items"];
36
+ multiple?: boolean;
37
+ count?: number;
38
+ menuIcon?: IconProps;
39
+ size?: "sm" | "md" | "lg";
40
+ };
41
+ type DropdownItemProps = {
42
+ label: string;
43
+ icon?: IconProps;
44
+ onClick: () => void;
45
+ disabled?: boolean;
46
+ isSelected?: boolean;
47
+ size?: "sm" | "md" | "lg";
48
+ };
49
+ type DropdownMenuProps = {
50
+ items: {
51
+ label: string;
52
+ icon?: IconProps;
53
+ value: string;
54
+ disabled?: boolean;
55
+ }[];
56
+ selectedItem?: string | string[] | undefined;
57
+ handleChange: (item: string | string[] | undefined) => void;
58
+ multiple?: boolean;
59
+ menuClassName?: string;
60
+ size?: "sm" | "md" | "lg";
61
+ isOpen: boolean;
62
+ onItemClick?: (value: string) => void;
63
+ isScrollable?: boolean;
64
+ animationOrigin?: "top-left" | "top-center" | "top-right";
65
+ search?: string;
66
+ onClearSearch?: () => void;
67
+ };
68
+ declare const DropdownMenu: ({ items, selectedItem, handleChange, multiple, menuClassName, size, isOpen, onItemClick, isScrollable, animationOrigin, search, onClearSearch, }: DropdownMenuProps) => react_jsx_runtime.JSX.Element;
69
+ declare const Dropdown: ({ className, items, selectedItem, handleChange, label, multiSelectLabel, disabled, buttonClassName, menuClassName, multiple, menuIcon, size, isScrollable, search, onClearSearch, }: DropdownProps) => react_jsx_runtime.JSX.Element;
70
+ declare const DropdownButton: ({ label, multiSelectLabel, disabled, className, onClick, selectedItems, multiple, count, menuIcon, size, }: DropdownButtonProps) => react_jsx_runtime.JSX.Element;
71
+ declare const DropdownItem: ({ label, icon, onClick, disabled, isSelected, size, }: DropdownItemProps) => react_jsx_runtime.JSX.Element;
72
+
73
+ export { Dropdown, DropdownButton, type DropdownButtonProps, DropdownItem, type DropdownItemProps, DropdownMenu, type DropdownMenuProps, type DropdownProps };
@@ -0,0 +1,396 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Button = require('./Button');
5
+ var react = require('react');
6
+ var react$1 = require('motion/react');
7
+ var classNames = require('classnames');
8
+ var easings = require('./utils/easings');
9
+ var Checkbox = require('./Checkbox');
10
+ var Divider = require('./Divider');
11
+ var Icon = require('./Icon');
12
+ var usehooksTs = require('usehooks-ts');
13
+ var CrossHair = require('./CrossHair');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
+
17
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
18
+
19
+ const DropdownMenu = ({
20
+ items,
21
+ selectedItem,
22
+ handleChange,
23
+ multiple = false,
24
+ menuClassName,
25
+ size = "md",
26
+ isOpen,
27
+ onItemClick,
28
+ isScrollable = false,
29
+ animationOrigin = "top-left",
30
+ search,
31
+ onClearSearch
32
+ }) => {
33
+ const [isAtBottom, setIsAtBottom] = react.useState(false);
34
+ const scrollContainerRef = react.useRef(null);
35
+ const filteredItems = (() => {
36
+ if (search) {
37
+ return items.filter(
38
+ (item) => item.label.toLowerCase().includes(search.toLowerCase())
39
+ );
40
+ }
41
+ return items;
42
+ })();
43
+ const handleScroll = react.useCallback(() => {
44
+ const container = scrollContainerRef.current;
45
+ if (!container) return;
46
+ const { scrollTop, scrollHeight, clientHeight } = container;
47
+ const threshold = 5;
48
+ const isNearBottom = scrollTop + clientHeight >= scrollHeight - threshold;
49
+ setIsAtBottom(isNearBottom);
50
+ }, []);
51
+ react.useEffect(() => {
52
+ if (isOpen) {
53
+ setIsAtBottom(false);
54
+ }
55
+ }, [isOpen, filteredItems.length]);
56
+ react.useEffect(() => {
57
+ const container = scrollContainerRef.current;
58
+ if (!container || !isOpen) return;
59
+ const { scrollHeight, clientHeight } = container;
60
+ const hasScrollbar = scrollHeight > clientHeight;
61
+ if (!hasScrollbar) {
62
+ setIsAtBottom(true);
63
+ }
64
+ }, [isOpen, filteredItems.length]);
65
+ const isItemSelected = (value) => {
66
+ if (multiple) {
67
+ return Array.isArray(selectedItem) && selectedItem.length > 0 && selectedItem.includes(value);
68
+ }
69
+ return !!selectedItem && selectedItem === value;
70
+ };
71
+ const handleItemClick = (value) => {
72
+ if (multiple) {
73
+ const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];
74
+ if (isAllSelected()) {
75
+ handleChange([value]);
76
+ } else if (currentSelection.includes(value)) {
77
+ handleChange(currentSelection.filter((item) => item !== value));
78
+ } else {
79
+ handleChange([...currentSelection, value]);
80
+ }
81
+ } else {
82
+ if (selectedItem === value) {
83
+ handleChange(void 0);
84
+ } else {
85
+ handleChange(value);
86
+ }
87
+ onItemClick?.(value);
88
+ }
89
+ };
90
+ const handleSelectAll = () => {
91
+ const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];
92
+ const allValues = filteredItems.filter((item) => !item.disabled).map((item) => item.value);
93
+ if (currentSelection.length === allValues.length) {
94
+ handleChange([]);
95
+ } else {
96
+ handleChange(allValues);
97
+ }
98
+ };
99
+ const isAllSelected = () => {
100
+ if (!Array.isArray(selectedItem) || selectedItem.length === 0) return false;
101
+ const selectableItems = filteredItems.filter((item) => !item.disabled);
102
+ return selectableItems.length > 0 && selectedItem.length === selectableItems.length && selectableItems.every((item) => selectedItem.includes(item.value));
103
+ };
104
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.AnimatePresence, { children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
105
+ react$1.motion.div,
106
+ {
107
+ initial: { opacity: 0, scale: 0.8, y: -15 },
108
+ animate: { opacity: 1, scale: 1, y: 0 },
109
+ transition: { duration: 0.1, ease: easings.swift },
110
+ exit: { opacity: 0, scale: 0.8, y: -5 },
111
+ className: classNames__default.default(
112
+ "absolute top-[calc(100%+6px)] p-1 bg-card-foreground gradient-border before:bg-card-border",
113
+ (size === "lg" || size === "md") && "min-w-[200px]",
114
+ animationOrigin === "top-left" && "origin-top-left",
115
+ animationOrigin === "top-center" && "origin-top-center",
116
+ animationOrigin === "top-right" && "origin-top-right",
117
+ menuClassName
118
+ ),
119
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
120
+ "div",
121
+ {
122
+ ref: scrollContainerRef,
123
+ onScroll: handleScroll,
124
+ className: classNames__default.default(
125
+ "flex flex-col gap-y-1",
126
+ isScrollable && [
127
+ "max-h-[250px] overflow-y-auto",
128
+ !isAtBottom && "[mask-image:linear-gradient(180deg,black,black_85%,transparent_100%)]"
129
+ ]
130
+ ),
131
+ children: [
132
+ multiple && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group flex flex-col gap-y-1", children: [
133
+ /* @__PURE__ */ jsxRuntime.jsxs(
134
+ "button",
135
+ {
136
+ onClick: handleSelectAll,
137
+ className: classNames__default.default(
138
+ "py-3 pl-2.5 pr-3 flex items-center gap-x-2.5 outline-none bg-transparent transition-colors duration-100 ease-crisp hover:bg-border-light/50"
139
+ ),
140
+ children: [
141
+ /* @__PURE__ */ jsxRuntime.jsx(Checkbox.Checkbox, { checked: isAllSelected() }),
142
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-shade-primary font-medium", children: "Select All" })
143
+ ]
144
+ }
145
+ ),
146
+ /* @__PURE__ */ jsxRuntime.jsx(Divider.Divider, { direction: "horizontal" })
147
+ ] }),
148
+ filteredItems.length > 0 ? filteredItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
149
+ DropdownItem,
150
+ {
151
+ label: item.label,
152
+ icon: item.icon?.name ? {
153
+ name: item.icon.name,
154
+ className: item.icon.className,
155
+ size: item.icon.size,
156
+ difficulties: item.icon.difficulties
157
+ } : void 0,
158
+ onClick: () => handleItemClick(item.value),
159
+ disabled: item.disabled,
160
+ isSelected: isItemSelected(item.value),
161
+ size
162
+ },
163
+ item.value
164
+ )) : /* @__PURE__ */ jsxRuntime.jsx(
165
+ "button",
166
+ {
167
+ onClick: () => {
168
+ if (onClearSearch) {
169
+ onClearSearch();
170
+ }
171
+ },
172
+ className: "py-3 pl-2.5 pr-3 text-sm font-mono text-shade-tertiary hover:bg-border-light/50 transition-colors duration-100 ease-crisp w-full text-center",
173
+ children: "No options found"
174
+ }
175
+ )
176
+ ]
177
+ }
178
+ )
179
+ }
180
+ ) });
181
+ };
182
+ const Dropdown = ({
183
+ className,
184
+ items,
185
+ selectedItem,
186
+ handleChange,
187
+ label = "View All",
188
+ multiSelectLabel,
189
+ disabled,
190
+ buttonClassName,
191
+ menuClassName,
192
+ multiple = false,
193
+ menuIcon,
194
+ size = "md",
195
+ isScrollable = false,
196
+ search,
197
+ onClearSearch
198
+ }) => {
199
+ const [isOpen, setIsOpen] = react.useState(false);
200
+ const handleItemClick = (value) => {
201
+ if (!multiple) {
202
+ if (selectedItem === value) {
203
+ handleChange(void 0);
204
+ } else {
205
+ handleChange(value);
206
+ }
207
+ setIsOpen(false);
208
+ }
209
+ };
210
+ const ref = react.useRef(null);
211
+ const handleClickOutside = () => {
212
+ setIsOpen(false);
213
+ };
214
+ usehooksTs.useOnClickOutside(ref, handleClickOutside);
215
+ const getSelectedItems = () => {
216
+ if (multiple) {
217
+ const selectedValues = Array.isArray(selectedItem) ? selectedItem : [];
218
+ return items.filter((item) => selectedValues.includes(item.value));
219
+ } else {
220
+ const selected = items.find((item) => item.value === selectedItem);
221
+ return selected ? [selected] : [];
222
+ }
223
+ };
224
+ return /* @__PURE__ */ jsxRuntime.jsxs(
225
+ "div",
226
+ {
227
+ ref,
228
+ className: classNames__default.default(
229
+ "relative flex flex-col gap-y-1.5 items-start",
230
+ className
231
+ ),
232
+ children: [
233
+ /* @__PURE__ */ jsxRuntime.jsx(
234
+ DropdownButton,
235
+ {
236
+ label,
237
+ multiSelectLabel,
238
+ disabled,
239
+ className: buttonClassName,
240
+ onClick: () => setIsOpen(!isOpen),
241
+ selectedItems: getSelectedItems(),
242
+ multiple,
243
+ count: getSelectedItems().length,
244
+ menuIcon,
245
+ size
246
+ }
247
+ ),
248
+ /* @__PURE__ */ jsxRuntime.jsx(
249
+ DropdownMenu,
250
+ {
251
+ items,
252
+ selectedItem,
253
+ handleChange,
254
+ multiple,
255
+ menuClassName,
256
+ size,
257
+ isOpen,
258
+ onItemClick: handleItemClick,
259
+ isScrollable,
260
+ search,
261
+ onClearSearch
262
+ }
263
+ )
264
+ ]
265
+ }
266
+ );
267
+ };
268
+ const DropdownButton = ({
269
+ label,
270
+ multiSelectLabel,
271
+ disabled,
272
+ className,
273
+ onClick,
274
+ selectedItems = [],
275
+ multiple = false,
276
+ count = 0,
277
+ menuIcon,
278
+ size
279
+ }) => {
280
+ const [isHovered, setIsHovered] = react.useState(false);
281
+ const hasSelection = selectedItems.length > 0;
282
+ const isSingleSelection = selectedItems.length === 1;
283
+ const isMultipleSelection = selectedItems.length > 1;
284
+ let buttonIcon;
285
+ let buttonLabel;
286
+ if (hasSelection && isSingleSelection) {
287
+ const selectedItem = selectedItems[0];
288
+ buttonIcon = selectedItem.icon ? {
289
+ name: selectedItem.icon.name,
290
+ className: selectedItem.icon.className || "",
291
+ size: selectedItem.icon.size || 18,
292
+ difficulties: selectedItem.icon.difficulties
293
+ } : menuIcon;
294
+ buttonLabel = selectedItem.label;
295
+ } else if (isMultipleSelection && multiple && multiSelectLabel) {
296
+ const combinedDifficulties = selectedItems.filter((item) => item.icon?.difficulties).flatMap((item) => item.icon.difficulties).filter((value, index, self) => self.indexOf(value) === index).sort((a, b) => a - b);
297
+ buttonIcon = menuIcon ? {
298
+ name: menuIcon.name,
299
+ className: menuIcon.className || "",
300
+ size: menuIcon.size || 18,
301
+ difficulties: combinedDifficulties.length > 0 ? combinedDifficulties : menuIcon.difficulties
302
+ } : void 0;
303
+ buttonLabel = `${count} ${multiSelectLabel}`;
304
+ } else {
305
+ buttonIcon = menuIcon;
306
+ buttonLabel = label;
307
+ }
308
+ return /* @__PURE__ */ jsxRuntime.jsx(
309
+ Button.Button,
310
+ {
311
+ icon: buttonIcon,
312
+ label: buttonLabel,
313
+ disabled,
314
+ size,
315
+ variant: "secondary",
316
+ className: classNames__default.default(
317
+ "!origin-bottom-left !justify-start w-full",
318
+ (size === "md" || size === "lg") && "!pr-[18px] !pl-[12px]",
319
+ size === "sm" && "!pr-4 !pl-3",
320
+ className
321
+ ),
322
+ useHoverEffect: false,
323
+ crosshairProps: {
324
+ variant: "corners",
325
+ corners: ["bottom-right"],
326
+ spacingX: !isHovered ? -6 : -4,
327
+ spacingY: !isHovered ? -6 : -4,
328
+ animationDuration: 0.5,
329
+ animationDelay: 0,
330
+ className: "text-shade-mute group-hover:text-shade-primary"
331
+ },
332
+ onClick,
333
+ onMouseEnter: () => setIsHovered(true),
334
+ onMouseLeave: () => setIsHovered(false)
335
+ }
336
+ );
337
+ };
338
+ const DropdownItem = ({
339
+ label,
340
+ icon,
341
+ onClick,
342
+ disabled,
343
+ isSelected = false,
344
+ size
345
+ }) => {
346
+ return /* @__PURE__ */ jsxRuntime.jsxs(
347
+ "button",
348
+ {
349
+ onClick,
350
+ disabled,
351
+ className: classNames__default.default(
352
+ "hover:bg-border-light/50 relative group/item disabled:opacity-40 flex items-center gap-x-2.5 outline-none transition-colors duration-100 ease-crisp",
353
+ size === "lg" && "py-4 pl-3 pr-3 text-base",
354
+ size === "md" && "py-3 pl-2.5 pr-3 text-sm",
355
+ size === "sm" && "py-2 pl-2.5 pr-3 h-[36px] text-sm",
356
+ isSelected && "bg-background/50"
357
+ ),
358
+ children: [
359
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "opacity-0 group-hover/item:!opacity-100 absolute inset-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(
360
+ CrossHair.CrosshairCorners,
361
+ {
362
+ size: 6,
363
+ variant: "corners",
364
+ corners: ["bottom-right"],
365
+ className: "text-shade-mute",
366
+ animationDelay: 0,
367
+ animationDuration: 0.5
368
+ }
369
+ ) }),
370
+ icon && /* @__PURE__ */ jsxRuntime.jsx(
371
+ Icon.Icon,
372
+ {
373
+ name: icon.name,
374
+ className: classNames__default.default("flex-shrink-0", icon.className),
375
+ size: icon.size || 18,
376
+ difficulties: icon.difficulties
377
+ }
378
+ ),
379
+ /* @__PURE__ */ jsxRuntime.jsx(
380
+ "span",
381
+ {
382
+ className: classNames__default.default(" text-shade-primary font-medium leading-[100%]"),
383
+ children: label
384
+ }
385
+ )
386
+ ]
387
+ }
388
+ );
389
+ };
390
+
391
+ exports.Dropdown = Dropdown;
392
+ exports.DropdownButton = DropdownButton;
393
+ exports.DropdownItem = DropdownItem;
394
+ exports.DropdownMenu = DropdownMenu;
395
+ //# sourceMappingURL=Dropdown.js.map
396
+ //# sourceMappingURL=Dropdown.js.map