@blueshift-gg/ui-components 0.1.70 → 0.1.72

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 (360) hide show
  1. package/dist/Alert.d.cts +2 -2
  2. package/dist/Alert.d.cts.map +1 -1
  3. package/dist/Alert.d.mts +2 -2
  4. package/dist/Avatar.d.cts +2 -2
  5. package/dist/Avatar.d.cts.map +1 -1
  6. package/dist/Avatar.d.mts +2 -2
  7. package/dist/Avatar.d.mts.map +1 -1
  8. package/dist/Badge.d.cts +2 -2
  9. package/dist/Banner.d.cts +2 -2
  10. package/dist/Banner.d.cts.map +1 -1
  11. package/dist/Banner.d.mts +2 -2
  12. package/dist/Button.d.mts +2 -2
  13. package/dist/Button.d.mts.map +1 -1
  14. package/dist/Checkbox.d.cts +2 -2
  15. package/dist/Checkbox.d.cts.map +1 -1
  16. package/dist/Checkbox.d.mts +2 -2
  17. package/dist/Codeblock.d.mts +2 -2
  18. package/dist/CrossHair.d.cts +2 -2
  19. package/dist/CrossHair.d.cts.map +1 -1
  20. package/dist/CrossHair.d.mts +2 -2
  21. package/dist/CrossHair.d.mts.map +1 -1
  22. package/dist/DecryptText.d.cts +2 -2
  23. package/dist/DecryptText.d.cts.map +1 -1
  24. package/dist/DecryptText.d.mts +2 -2
  25. package/dist/Difficulty.d.cts +2 -2
  26. package/dist/Difficulty.d.cts.map +1 -1
  27. package/dist/Difficulty.d.mts +2 -2
  28. package/dist/Divider.d.cts +2 -2
  29. package/dist/Divider.d.mts +2 -2
  30. package/dist/Divider.d.mts.map +1 -1
  31. package/dist/Dropdown.d.cts +5 -5
  32. package/dist/Dropdown.d.mts +5 -5
  33. package/dist/GridLines.d.cts +2 -2
  34. package/dist/GridLines.d.mts +2 -2
  35. package/dist/GridLines.d.mts.map +1 -1
  36. package/dist/HeadingReveal.d.cts +2 -2
  37. package/dist/HeadingReveal.d.cts.map +1 -1
  38. package/dist/HeadingReveal.d.mts +2 -2
  39. package/dist/Icon.d.cts +2 -2
  40. package/dist/Icon.d.cts.map +1 -1
  41. package/dist/Icon.d.mts +2 -2
  42. package/dist/Icon.d.mts.map +1 -1
  43. package/dist/Input.cjs +2 -2
  44. package/dist/Input.cjs.map +1 -1
  45. package/dist/Input.d.cts +6 -3
  46. package/dist/Input.d.cts.map +1 -1
  47. package/dist/Input.d.mts +5 -3
  48. package/dist/Input.d.mts.map +1 -1
  49. package/dist/Input.mjs +2 -2
  50. package/dist/Input.mjs.map +1 -1
  51. package/dist/Logo.d.cts +2 -2
  52. package/dist/Logo.d.mts +2 -2
  53. package/dist/Logo.d.mts.map +1 -1
  54. package/dist/Pagination.d.mts +3 -3
  55. package/dist/Slider.d.cts +2 -2
  56. package/dist/Slider.d.mts +2 -2
  57. package/dist/Tabs.d.cts +2 -2
  58. package/dist/Tabs.d.cts.map +1 -1
  59. package/dist/Tabs.d.mts +2 -2
  60. package/dist/Tabs.d.mts.map +1 -1
  61. package/dist/Toast.d.cts +3 -2
  62. package/dist/Toast.d.cts.map +1 -1
  63. package/dist/Toast.d.mts +2 -2
  64. package/dist/Tooltip.cjs +10 -10
  65. package/dist/Tooltip.cjs.map +1 -1
  66. package/dist/Tooltip.d.cts +6 -1
  67. package/dist/Tooltip.d.cts.map +1 -1
  68. package/dist/Tooltip.d.mts +8 -3
  69. package/dist/Tooltip.d.mts.map +1 -1
  70. package/dist/Tooltip.mjs +10 -10
  71. package/dist/Tooltip.mjs.map +1 -1
  72. package/dist/icons/Add.d.cts +2 -2
  73. package/dist/icons/Add.d.mts +2 -2
  74. package/dist/icons/Anchor.d.cts +2 -2
  75. package/dist/icons/Anchor.d.cts.map +1 -1
  76. package/dist/icons/Anchor.d.mts +2 -2
  77. package/dist/icons/Anchor.d.mts.map +1 -1
  78. package/dist/icons/ArrowLeft.d.cts +2 -2
  79. package/dist/icons/ArrowLeft.d.cts.map +1 -1
  80. package/dist/icons/ArrowLeft.d.mts +2 -2
  81. package/dist/icons/ArrowRight.d.cts +2 -2
  82. package/dist/icons/ArrowRight.d.cts.map +1 -1
  83. package/dist/icons/ArrowRight.d.mts +2 -2
  84. package/dist/icons/Assembly.d.cts +2 -2
  85. package/dist/icons/Assembly.d.cts.map +1 -1
  86. package/dist/icons/Assembly.d.mts +2 -2
  87. package/dist/icons/Backpack.d.cts +2 -2
  88. package/dist/icons/Backpack.d.cts.map +1 -1
  89. package/dist/icons/Backpack.d.mts +2 -2
  90. package/dist/icons/Bin.d.cts +2 -2
  91. package/dist/icons/Bin.d.cts.map +1 -1
  92. package/dist/icons/Bin.d.mts +2 -2
  93. package/dist/icons/Brave.d.cts +2 -2
  94. package/dist/icons/Brave.d.cts.map +1 -1
  95. package/dist/icons/Brave.d.mts +2 -2
  96. package/dist/icons/Challenge.d.cts +2 -2
  97. package/dist/icons/Challenge.d.cts.map +1 -1
  98. package/dist/icons/Challenge.d.mts +2 -2
  99. package/dist/icons/Challenge.d.mts.map +1 -1
  100. package/dist/icons/Check.d.cts +2 -2
  101. package/dist/icons/Check.d.cts.map +1 -1
  102. package/dist/icons/Check.d.mts +2 -2
  103. package/dist/icons/Check.d.mts.map +1 -1
  104. package/dist/icons/Chevron.d.cts +2 -2
  105. package/dist/icons/Chevron.d.cts.map +1 -1
  106. package/dist/icons/Chevron.d.mts +2 -2
  107. package/dist/icons/ChevronLeft.d.cts +2 -2
  108. package/dist/icons/ChevronLeft.d.cts.map +1 -1
  109. package/dist/icons/ChevronLeft.d.mts +2 -2
  110. package/dist/icons/ChevronRight.d.cts +2 -2
  111. package/dist/icons/ChevronRight.d.cts.map +1 -1
  112. package/dist/icons/ChevronRight.d.mts +2 -2
  113. package/dist/icons/Claim.d.cts +2 -2
  114. package/dist/icons/Claim.d.mts +2 -2
  115. package/dist/icons/Claimed.d.cts +2 -2
  116. package/dist/icons/Claimed.d.mts +2 -2
  117. package/dist/icons/Clock.d.cts +2 -2
  118. package/dist/icons/Clock.d.cts.map +1 -1
  119. package/dist/icons/Clock.d.mts +2 -2
  120. package/dist/icons/Close.d.cts +2 -2
  121. package/dist/icons/Close.d.cts.map +1 -1
  122. package/dist/icons/Close.d.mts +2 -2
  123. package/dist/icons/Code.d.cts +2 -2
  124. package/dist/icons/Code.d.cts.map +1 -1
  125. package/dist/icons/Code.d.mts +2 -2
  126. package/dist/icons/Copy.d.cts +2 -2
  127. package/dist/icons/Copy.d.cts.map +1 -1
  128. package/dist/icons/Copy.d.mts +2 -2
  129. package/dist/icons/Cross.d.cts +2 -2
  130. package/dist/icons/Cross.d.cts.map +1 -1
  131. package/dist/icons/Cross.d.mts +2 -2
  132. package/dist/icons/Developer.d.cts +2 -2
  133. package/dist/icons/Developer.d.cts.map +1 -1
  134. package/dist/icons/Developer.d.mts +2 -2
  135. package/dist/icons/Disconnect.d.cts +2 -2
  136. package/dist/icons/Disconnect.d.cts.map +1 -1
  137. package/dist/icons/Disconnect.d.mts +2 -2
  138. package/dist/icons/Discord.d.cts +2 -2
  139. package/dist/icons/Discord.d.cts.map +1 -1
  140. package/dist/icons/Discord.d.mts +2 -2
  141. package/dist/icons/Dollar.d.cts +2 -2
  142. package/dist/icons/Dollar.d.mts +2 -2
  143. package/dist/icons/DoubleArrow.d.cts +2 -2
  144. package/dist/icons/DoubleArrow.d.cts.map +1 -1
  145. package/dist/icons/DoubleArrow.d.mts +2 -2
  146. package/dist/icons/Download.d.cts +2 -2
  147. package/dist/icons/Download.d.cts.map +1 -1
  148. package/dist/icons/Download.d.mts +2 -2
  149. package/dist/icons/EVM.d.cts +2 -2
  150. package/dist/icons/EVM.d.cts.map +1 -1
  151. package/dist/icons/EVM.d.mts +2 -2
  152. package/dist/icons/EVM.d.mts.map +1 -1
  153. package/dist/icons/Email.d.cts +2 -2
  154. package/dist/icons/Email.d.cts.map +1 -1
  155. package/dist/icons/Email.d.mts +2 -2
  156. package/dist/icons/Email.d.mts.map +1 -1
  157. package/dist/icons/Error.d.cts +2 -2
  158. package/dist/icons/Error.d.cts.map +1 -1
  159. package/dist/icons/Error.d.mts +2 -2
  160. package/dist/icons/Error.d.mts.map +1 -1
  161. package/dist/icons/Expand.d.cts +2 -2
  162. package/dist/icons/Expand.d.mts +2 -2
  163. package/dist/icons/External.d.cts +2 -2
  164. package/dist/icons/External.d.cts.map +1 -1
  165. package/dist/icons/External.d.mts +2 -2
  166. package/dist/icons/External.d.mts.map +1 -1
  167. package/dist/icons/Filter.d.cts +2 -2
  168. package/dist/icons/Filter.d.cts.map +1 -1
  169. package/dist/icons/Filter.d.mts +2 -2
  170. package/dist/icons/Firmware.d.cts +2 -2
  171. package/dist/icons/Firmware.d.cts.map +1 -1
  172. package/dist/icons/Firmware.d.mts +2 -2
  173. package/dist/icons/Flag.d.cts +2 -2
  174. package/dist/icons/Flag.d.cts.map +1 -1
  175. package/dist/icons/Flag.d.mts +2 -2
  176. package/dist/icons/Flag.d.mts.map +1 -1
  177. package/dist/icons/Flame.d.cts +2 -2
  178. package/dist/icons/Flame.d.mts +2 -2
  179. package/dist/icons/Flame.d.mts.map +1 -1
  180. package/dist/icons/Flexible.d.cts +2 -2
  181. package/dist/icons/Flexible.d.mts +2 -2
  182. package/dist/icons/Free.d.cts +2 -2
  183. package/dist/icons/Free.d.cts.map +1 -1
  184. package/dist/icons/Free.d.mts +2 -2
  185. package/dist/icons/General.d.cts +2 -2
  186. package/dist/icons/General.d.cts.map +1 -1
  187. package/dist/icons/General.d.mts +2 -2
  188. package/dist/icons/Github.d.cts +2 -2
  189. package/dist/icons/Github.d.cts.map +1 -1
  190. package/dist/icons/Github.d.mts +2 -2
  191. package/dist/icons/Globe.d.cts +2 -2
  192. package/dist/icons/Globe.d.cts.map +1 -1
  193. package/dist/icons/Globe.d.mts +2 -2
  194. package/dist/icons/GridView.d.cts +2 -2
  195. package/dist/icons/GridView.d.cts.map +1 -1
  196. package/dist/icons/GridView.d.mts +2 -2
  197. package/dist/icons/Grip.d.cts +2 -2
  198. package/dist/icons/Grip.d.cts.map +1 -1
  199. package/dist/icons/Grip.d.mts +2 -2
  200. package/dist/icons/Heart.d.cts +2 -2
  201. package/dist/icons/Heart.d.cts.map +1 -1
  202. package/dist/icons/Heart.d.mts +2 -2
  203. package/dist/icons/Info.d.cts +2 -2
  204. package/dist/icons/Info.d.cts.map +1 -1
  205. package/dist/icons/Info.d.mts +2 -2
  206. package/dist/icons/Language.d.cts +2 -2
  207. package/dist/icons/Language.d.cts.map +1 -1
  208. package/dist/icons/Language.d.mts +2 -2
  209. package/dist/icons/Lessons.d.cts +2 -2
  210. package/dist/icons/Lessons.d.cts.map +1 -1
  211. package/dist/icons/Lessons.d.mts +2 -2
  212. package/dist/icons/Link.d.cts +2 -2
  213. package/dist/icons/Link.d.cts.map +1 -1
  214. package/dist/icons/Link.d.mts +2 -2
  215. package/dist/icons/ListView.d.cts +2 -2
  216. package/dist/icons/ListView.d.cts.map +1 -1
  217. package/dist/icons/ListView.d.mts +2 -2
  218. package/dist/icons/ListView.d.mts.map +1 -1
  219. package/dist/icons/Loading.d.cts +2 -2
  220. package/dist/icons/Loading.d.cts.map +1 -1
  221. package/dist/icons/Loading.d.mts +2 -2
  222. package/dist/icons/Loading.d.mts.map +1 -1
  223. package/dist/icons/Locked.d.cts +2 -2
  224. package/dist/icons/Locked.d.cts.map +1 -1
  225. package/dist/icons/Locked.d.mts +2 -2
  226. package/dist/icons/Locked.d.mts.map +1 -1
  227. package/dist/icons/Logs.d.cts +2 -2
  228. package/dist/icons/Logs.d.cts.map +1 -1
  229. package/dist/icons/Logs.d.mts +2 -2
  230. package/dist/icons/Mentor.d.cts +2 -2
  231. package/dist/icons/Mentor.d.cts.map +1 -1
  232. package/dist/icons/Mentor.d.mts +2 -2
  233. package/dist/icons/Mentor.d.mts.map +1 -1
  234. package/dist/icons/Metamask.d.cts +2 -2
  235. package/dist/icons/Metamask.d.cts.map +1 -1
  236. package/dist/icons/Metamask.d.mts +2 -2
  237. package/dist/icons/Metamask.d.mts.map +1 -1
  238. package/dist/icons/Minimize.d.cts +2 -2
  239. package/dist/icons/Minimize.d.cts.map +1 -1
  240. package/dist/icons/Minimize.d.mts +2 -2
  241. package/dist/icons/Minimize.d.mts.map +1 -1
  242. package/dist/icons/Minus.d.cts +2 -2
  243. package/dist/icons/Minus.d.cts.map +1 -1
  244. package/dist/icons/Minus.d.mts +2 -2
  245. package/dist/icons/Minus.d.mts.map +1 -1
  246. package/dist/icons/Mobile.d.cts +2 -2
  247. package/dist/icons/Mobile.d.mts +2 -2
  248. package/dist/icons/Modular.d.cts +2 -2
  249. package/dist/icons/Modular.d.cts.map +1 -1
  250. package/dist/icons/Modular.d.mts +2 -2
  251. package/dist/icons/Modular.d.mts.map +1 -1
  252. package/dist/icons/NFT.d.cts +2 -2
  253. package/dist/icons/NFT.d.cts.map +1 -1
  254. package/dist/icons/NFT.d.mts +2 -2
  255. package/dist/icons/NFT.d.mts.map +1 -1
  256. package/dist/icons/Online.d.cts +2 -2
  257. package/dist/icons/Online.d.cts.map +1 -1
  258. package/dist/icons/Online.d.mts +2 -2
  259. package/dist/icons/Online.d.mts.map +1 -1
  260. package/dist/icons/Password.d.cts +2 -2
  261. package/dist/icons/Password.d.cts.map +1 -1
  262. package/dist/icons/Password.d.mts +2 -2
  263. package/dist/icons/Password.d.mts.map +1 -1
  264. package/dist/icons/Path.d.cts +2 -2
  265. package/dist/icons/Path.d.cts.map +1 -1
  266. package/dist/icons/Path.d.mts +2 -2
  267. package/dist/icons/Path.d.mts.map +1 -1
  268. package/dist/icons/Pen.d.cts +2 -2
  269. package/dist/icons/Pen.d.cts.map +1 -1
  270. package/dist/icons/Pen.d.mts +2 -2
  271. package/dist/icons/Pen.d.mts.map +1 -1
  272. package/dist/icons/Perks.d.cts +2 -2
  273. package/dist/icons/Perks.d.cts.map +1 -1
  274. package/dist/icons/Perks.d.mts +2 -2
  275. package/dist/icons/Perks.d.mts.map +1 -1
  276. package/dist/icons/Phantom.d.cts +2 -2
  277. package/dist/icons/Phantom.d.mts +2 -2
  278. package/dist/icons/Phantom.d.mts.map +1 -1
  279. package/dist/icons/Play.d.cts +2 -2
  280. package/dist/icons/Play.d.cts.map +1 -1
  281. package/dist/icons/Play.d.mts +2 -2
  282. package/dist/icons/Plus.d.cts +2 -2
  283. package/dist/icons/Plus.d.cts.map +1 -1
  284. package/dist/icons/Plus.d.mts +2 -2
  285. package/dist/icons/Plus.d.mts.map +1 -1
  286. package/dist/icons/Product.d.cts +2 -2
  287. package/dist/icons/Product.d.mts +2 -2
  288. package/dist/icons/Progress.d.cts +2 -2
  289. package/dist/icons/Progress.d.mts +2 -2
  290. package/dist/icons/Protocol.d.cts +2 -2
  291. package/dist/icons/Protocol.d.cts.map +1 -1
  292. package/dist/icons/Refresh.d.cts +2 -2
  293. package/dist/icons/Refresh.d.mts +2 -2
  294. package/dist/icons/Rewards.d.cts +2 -2
  295. package/dist/icons/Rewards.d.mts +2 -2
  296. package/dist/icons/Rust.d.cts +2 -2
  297. package/dist/icons/Rust.d.mts +2 -2
  298. package/dist/icons/Search.d.cts +2 -2
  299. package/dist/icons/Search.d.mts +2 -2
  300. package/dist/icons/Search.d.mts.map +1 -1
  301. package/dist/icons/Share.d.cts +2 -2
  302. package/dist/icons/Share.d.cts.map +1 -1
  303. package/dist/icons/Share.d.mts +2 -2
  304. package/dist/icons/SmartContract.d.cts +2 -2
  305. package/dist/icons/SmartContract.d.cts.map +1 -1
  306. package/dist/icons/SmartContract.d.mts +2 -2
  307. package/dist/icons/SmartContract.d.mts.map +1 -1
  308. package/dist/icons/Solana.d.cts +2 -2
  309. package/dist/icons/Solana.d.mts +2 -2
  310. package/dist/icons/Solana.d.mts.map +1 -1
  311. package/dist/icons/Solflare.d.cts +2 -2
  312. package/dist/icons/Solflare.d.mts +2 -2
  313. package/dist/icons/Solflare.d.mts.map +1 -1
  314. package/dist/icons/Success.d.cts +2 -2
  315. package/dist/icons/SuccessCircle.d.cts +2 -2
  316. package/dist/icons/SuccessCircle.d.cts.map +1 -1
  317. package/dist/icons/SuccessCircle.d.mts +2 -2
  318. package/dist/icons/Table.d.cts +2 -2
  319. package/dist/icons/Table.d.cts.map +1 -1
  320. package/dist/icons/Table.d.mts +2 -2
  321. package/dist/icons/Table.d.mts.map +1 -1
  322. package/dist/icons/Target.d.cts +2 -2
  323. package/dist/icons/Target.d.cts.map +1 -1
  324. package/dist/icons/Target.d.mts +2 -2
  325. package/dist/icons/Target.d.mts.map +1 -1
  326. package/dist/icons/Training.d.cts +2 -2
  327. package/dist/icons/Training.d.mts +2 -2
  328. package/dist/icons/Training.d.mts.map +1 -1
  329. package/dist/icons/Typescript.d.cts +2 -2
  330. package/dist/icons/Typescript.d.mts +2 -2
  331. package/dist/icons/Typescript.d.mts.map +1 -1
  332. package/dist/icons/Unclaimed.d.cts +2 -2
  333. package/dist/icons/Unclaimed.d.cts.map +1 -1
  334. package/dist/icons/Unclaimed.d.mts +2 -2
  335. package/dist/icons/Unclaimed.d.mts.map +1 -1
  336. package/dist/icons/Upload.d.cts +2 -2
  337. package/dist/icons/Upload.d.cts.map +1 -1
  338. package/dist/icons/Upload.d.mts +2 -2
  339. package/dist/icons/User.d.cts +2 -2
  340. package/dist/icons/User.d.cts.map +1 -1
  341. package/dist/icons/User.d.mts +2 -2
  342. package/dist/icons/User.d.mts.map +1 -1
  343. package/dist/icons/Wallet.d.cts +2 -2
  344. package/dist/icons/Wallet.d.cts.map +1 -1
  345. package/dist/icons/Wallet.d.mts +2 -2
  346. package/dist/icons/WalletSmall.d.cts +2 -2
  347. package/dist/icons/WalletSmall.d.cts.map +1 -1
  348. package/dist/icons/WalletSmall.d.mts +2 -2
  349. package/dist/icons/Warning.d.cts +2 -2
  350. package/dist/icons/Warning.d.mts +2 -2
  351. package/dist/icons/Warning.d.mts.map +1 -1
  352. package/dist/icons/X.d.cts +2 -2
  353. package/dist/icons/X.d.mts +2 -2
  354. package/dist/icons/X.d.mts.map +1 -1
  355. package/dist/icons/index.d.cts +91 -91
  356. package/dist/icons/index.d.cts.map +1 -1
  357. package/dist/icons/index.d.mts +91 -91
  358. package/dist/utils/easings.d.cts.map +1 -1
  359. package/dist/utils/easings.d.mts.map +1 -1
  360. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","names":["motion","Tooltip","Icon","CrosshairCorners","Badge","Button","AnimatePresence","crisp"],"sources":["../src/Input.tsx"],"sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n innerClassname?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n innerClassname,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\",\n innerClassname\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAyCA,MAAa,SAAS,EACpB,OACA,OACA,WACA,UACA,SACA,QACA,SACA,OACA,MACA,SACA,aAAa,MACb,UACA,aACA,UAAU,MACV,SACA,QACA,WACA,SACA,UACA,qBACgB;CAChB,MAAM,CAAC,eAAe,wCAA6B,MAAM;AACzD,QACE,4CAACA,oBAAO;EACN,GAAI;EACJ,mCACE,uDACA,UACD;;GAEA,SACC,4CAAC;IAAI,WAAU;eACb,4CAAC;KAAI,WAAU;gBACb,2CAAC;MAAK,WAAU;gBACb;OACI,EACN,WACC,4CAAC;MACC,WAAU;MACV,oBAAoB,iBAAiB,KAAK;MAC1C,oBAAoB,iBAAiB,MAAM;iBAE3C,2CAACC;OACC,QAAQ;OACR,UAAU,QAAQ;OAClB,aAAa,QAAQ;QACrB,EACF,2CAACC;OAAK,MAAK;OAAO,MAAM;OAAI,WAAU;QAAwB;OAC1D;MAEJ,EACL,WACC,4CAAC;KAAI,WAAU;gBACb,2CAACA;MACC,MAAM,QAAQ;MACd,MAAM;MACN,WAAU;OACV,EACF,4CAAC;MAAK,WAAU;;OACb,QAAQ;OAAO;OAAE,QAAQ;;OACrB;MACH;KAEJ;GAER,4CAAC;IACC,mCACE,4VACA,CAAC,WAAW,0CACZ,CAAC,CAAC,SAAS,oBACX,CAAC,SAAS,aACV,CAAC,CAAC,YAAY,WACd,eACD;eAEA,WACC,2CAAC;KAAI,WAAU;eACb,2CAACC;MACC,MAAM;MACN,SAAQ;MACR,SAAS,CAAC,eAAe;MACzB,gBAAgB;MAChB,mBAAmB;OACnB;MACE,EAER,4CAAC;KACC,mCACE,sDACD;;MAEA,SAAS,2CAACC,uBAAM,GAAI,QAAS;MAC9B,2CAAC;OACC,mCACE,uGACA,SAAS,WAAW,iCAEpB,mMACD;OACQ;OACD;OACK;OACN;OACP,WAAW,MAAM,WAAW,EAAE,OAAO,MAAM;OACjC;OACV,MAAM,SAAS,UAAU,WAAW;QACpC;MACD,WAAW,SACV,2CAAC;OACC,SAAS;OACT,WAAU;OACV,MAAK;iBAEL,2CAACF;QACC,MAAK;QACL,MAAM;QACN,WAAU;SACV;QACK;MAEV,YAAY;MACZ,UACC,2CAACG;OACC,OAAO,OAAO;OACd,SAAS,OAAO;OAChB,SAAQ;OACR,MAAK;OACL,gBAAgB;QAChB;;MAEA;KACF;GACL,cACC,2CAAC;IAAI,WAAU;cACb,2CAACC,0CACE,WACC,2CAACN,oBAAO;KACN,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,MAAM;MAAE,SAAS;MAAG,QAAQ;MAAa;KACzC,YAAY;MAAE,UAAU;MAAK,MAAMO;MAAO;KAC1C,mCACE,2DACA,CAAC,WAAW,mBACb;eAEA;MACW,GAEA;KACd;;GAEG"}
1
+ {"version":3,"file":"Input.cjs","names":["motion","Tooltip","Icon","CrosshairCorners","Badge","Button","AnimatePresence","crisp"],"sources":["../src/Input.tsx"],"sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n innerClassname?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n inputClassName?: string;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n innerClassname,\n inputClassName,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\",\n innerClassname\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\",\n inputClassName\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AA0CA,MAAa,SAAS,EACpB,OACA,OACA,WACA,UACA,SACA,QACA,SACA,OACA,MACA,SACA,aAAa,MACb,UACA,aACA,UAAU,MACV,SACA,QACA,WACA,SACA,UACA,gBACA,qBACgB;CAChB,MAAM,CAAC,eAAe,wCAA6B,MAAM;AACzD,QACE,4CAACA,oBAAO;EACN,GAAI;EACJ,mCACE,uDACA,UACD;;GAEA,SACC,4CAAC;IAAI,WAAU;eACb,4CAAC;KAAI,WAAU;gBACb,2CAAC;MAAK,WAAU;gBACb;OACI,EACN,WACC,4CAAC;MACC,WAAU;MACV,oBAAoB,iBAAiB,KAAK;MAC1C,oBAAoB,iBAAiB,MAAM;iBAE3C,2CAACC;OACC,QAAQ;OACR,UAAU,QAAQ;OAClB,aAAa,QAAQ;QACrB,EACF,2CAACC;OAAK,MAAK;OAAO,MAAM;OAAI,WAAU;QAAwB;OAC1D;MAEJ,EACL,WACC,4CAAC;KAAI,WAAU;gBACb,2CAACA;MACC,MAAM,QAAQ;MACd,MAAM;MACN,WAAU;OACV,EACF,4CAAC;MAAK,WAAU;;OACb,QAAQ;OAAO;OAAE,QAAQ;;OACrB;MACH;KAEJ;GAER,4CAAC;IACC,mCACE,4VACA,CAAC,WAAW,0CACZ,CAAC,CAAC,SAAS,oBACX,CAAC,SAAS,aACV,CAAC,CAAC,YAAY,WACd,eACD;eAEA,WACC,2CAAC;KAAI,WAAU;eACb,2CAACC;MACC,MAAM;MACN,SAAQ;MACR,SAAS,CAAC,eAAe;MACzB,gBAAgB;MAChB,mBAAmB;OACnB;MACE,EAER,4CAAC;KACC,mCACE,sDACD;;MAEA,SAAS,2CAACC,uBAAM,GAAI,QAAS;MAC9B,2CAAC;OACC,mCACE,uGACA,SAAS,WAAW,iCAEpB,oMACA,eACD;OACQ;OACD;OACK;OACN;OACP,WAAW,MAAM,WAAW,EAAE,OAAO,MAAM;OACjC;OACV,MAAM,SAAS,UAAU,WAAW;QACpC;MACD,WAAW,SACV,2CAAC;OACC,SAAS;OACT,WAAU;OACV,MAAK;iBAEL,2CAACF;QACC,MAAK;QACL,MAAM;QACN,WAAU;SACV;QACK;MAEV,YAAY;MACZ,UACC,2CAACG;OACC,OAAO,OAAO;OACd,SAAS,OAAO;OAChB,SAAQ;OACR,MAAK;OACL,gBAAgB;QAChB;;MAEA;KACF;GACL,cACC,2CAAC;IAAI,WAAU;cACb,2CAACC,0CACE,WACC,2CAACN,oBAAO;KACN,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,MAAM;MAAE,SAAS;MAAG,QAAQ;MAAa;KACzC,YAAY;MAAE,UAAU;MAAK,MAAMO;MAAO;KAC1C,mCACE,2DACA,CAAC,WAAW,mBACb;eAEA;MACW,GAEA;KACd;;GAEG"}
package/dist/Input.d.cts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { BadgeProps } from "./Badge.cjs";
2
2
  import { TooltipProps } from "./Tooltip.cjs";
3
3
  import { IconName } from "./icons/index.cjs";
4
- import * as react_jsx_runtime22 from "react/jsx-runtime";
4
+ import "./Icon.cjs";
5
+ import * as react_jsx_runtime12 from "react/jsx-runtime";
5
6
  import { MotionProps } from "motion/react";
6
7
 
7
8
  //#region src/Input.d.ts
@@ -33,6 +34,7 @@ type InputProps = {
33
34
  animation?: MotionProps;
34
35
  tooltip?: TooltipProps;
35
36
  children?: React.ReactNode;
37
+ inputClassName?: string;
36
38
  };
37
39
  declare const Input: ({
38
40
  title,
@@ -54,8 +56,9 @@ declare const Input: ({
54
56
  animation,
55
57
  tooltip,
56
58
  children,
57
- innerClassname
58
- }: InputProps) => react_jsx_runtime22.JSX.Element;
59
+ innerClassname,
60
+ inputClassName
61
+ }: InputProps) => react_jsx_runtime12.JSX.Element;
59
62
  //#endregion
60
63
  export { Input, InputProps };
61
64
  //# sourceMappingURL=Input.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.cts","names":[],"sources":["../src/Input.tsx"],"sourcesContent":[],"mappings":";;;;;;;KAWY,UAAA;;;EAAA,SAAA,CAAA,EAAA,MAAU;EASZ,cAAA,CAAA,EAAA,MAAA;EAUC,QAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAMG,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACF,MAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACC,OAAM,CAAA,EAAA,GAAA,GAAA,IAAA;EAAS,KAAA,CAAA,EAlBlB,UAkBkB;EAGf,OAAA,CA2JZ,EAAA,MAAA;EA3JqB,UAAA,CAAA,EAAA,OAAA;EAAA,QAAA,CAAA,EAAA,OAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,SAAA,GAAA,OAAA;EAAA,OAAA,CAAA,EAAA;IAAA,MAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;IAAA,IAAA,CAAA,EAXX,QAWW;EAAA,CAAA;EAAA,MAAA,CAAA,EAAA;IAAA,KAAA,EAAA,MAAA;IAAA,OAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;EAAA,SAAA,CAAA,EALR,WAKQ;EAAA,OAAA,CAAA,EAJV,YAIU;EAAA,QAAA,CAAA,EAHT,KAAA,CAAM,SAGG;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,MAAA;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA,OAAA;EAAA,UAAA;EAAA,QAAA;EAAA,WAAA;EAAA,OAAA;EAAA,OAAA;EAAA,MAAA;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAqBnB,UArBmB,EAAA,GAqBT,mBAAA,CAAA,GAAA,CAAA,OArBS"}
1
+ {"version":3,"file":"Input.d.cts","names":[],"sources":["../src/Input.tsx"],"sourcesContent":[],"mappings":";;;;;;;;KAWY,UAAA;;;;EAAA,cAAU,CAAA,EAAA,MAAA;EASZ,QAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAUC,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAMG,MAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACF,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACC,KAAM,CAAA,EAlBT,UAkBS;EAAS,OAAA,CAAA,EAAA,MAAA;EAIf,UA6JZ,CAAA,EAAA,OAAA;EA7JqB,QAAA,CAAA,EAAA,OAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,SAAA,GAAA,OAAA;EAAA,OAAA,CAAA,EAAA;IAAA,MAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;IAAA,IAAA,CAAA,EAZX,QAYW;EAAA,CAAA;EAAA,MAAA,CAAA,EAAA;IAAA,KAAA,EAAA,MAAA;IAAA,OAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;EAAA,SAAA,CAAA,EANR,WAMQ;EAAA,OAAA,CAAA,EALV,YAKU;EAAA,QAAA,CAAA,EAJT,KAAA,CAAM,SAIG;EAAA,cAAA,CAAA,EAAA,MAAA;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,MAAA;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA,OAAA;EAAA,UAAA;EAAA,QAAA;EAAA,WAAA;EAAA,OAAA;EAAA,OAAA;EAAA,MAAA;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA,cAAA;EAAA;AAAA,CAAA,EAsBnB,UAtBmB,EAAA,GAsBT,mBAAA,CAAA,GAAA,CAAA,OAtBS"}
package/dist/Input.d.mts CHANGED
@@ -3,7 +3,7 @@ import { TooltipProps } from "./Tooltip.mjs";
3
3
  import { IconName } from "./icons/index.mjs";
4
4
  import "./Icon.mjs";
5
5
  import { MotionProps } from "motion/react";
6
- import * as react_jsx_runtime18 from "react/jsx-runtime";
6
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
7
7
 
8
8
  //#region src/Input.d.ts
9
9
  type InputProps = {
@@ -34,6 +34,7 @@ type InputProps = {
34
34
  animation?: MotionProps;
35
35
  tooltip?: TooltipProps;
36
36
  children?: React.ReactNode;
37
+ inputClassName?: string;
37
38
  };
38
39
  declare const Input: ({
39
40
  title,
@@ -55,8 +56,9 @@ declare const Input: ({
55
56
  animation,
56
57
  tooltip,
57
58
  children,
58
- innerClassname
59
- }: InputProps) => react_jsx_runtime18.JSX.Element;
59
+ innerClassname,
60
+ inputClassName
61
+ }: InputProps) => react_jsx_runtime22.JSX.Element;
60
62
  //#endregion
61
63
  export { Input, InputProps };
62
64
  //# sourceMappingURL=Input.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.mts","names":[],"sources":["../src/Input.tsx"],"sourcesContent":[],"mappings":";;;;;;;;KAWY,UAAA;;;;EAAA,cAAU,CAAA,EAAA,MAAA;EASZ,QAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAUC,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAMG,MAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACF,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACC,KAAM,CAAA,EAlBT,UAkBS;EAAS,OAAA,CAAA,EAAA,MAAA;EAGf,UA2JZ,CAAA,EAAA,OAAA;EA3JqB,QAAA,CAAA,EAAA,OAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,SAAA,GAAA,OAAA;EAAA,OAAA,CAAA,EAAA;IAAA,MAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;IAAA,IAAA,CAAA,EAXX,QAWW;EAAA,CAAA;EAAA,MAAA,CAAA,EAAA;IAAA,KAAA,EAAA,MAAA;IAAA,OAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;EAAA,SAAA,CAAA,EALR,WAKQ;EAAA,OAAA,CAAA,EAJV,YAIU;EAAA,QAAA,CAAA,EAHT,KAAA,CAAM,SAGG;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,MAAA;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA,OAAA;EAAA,UAAA;EAAA,QAAA;EAAA,WAAA;EAAA,OAAA;EAAA,OAAA;EAAA,MAAA;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAqBnB,UArBmB,EAAA,GAqBT,mBAAA,CAAA,GAAA,CAAA,OArBS"}
1
+ {"version":3,"file":"Input.d.mts","names":[],"sources":["../src/Input.tsx"],"sourcesContent":[],"mappings":";;;;;;;;KAWY,UAAA;;;;EAAA,cAAU,CAAA,EAAA,MAAA;EASZ,QAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAUC,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAMG,MAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACF,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACC,KAAM,CAAA,EAlBT,UAkBS;EAAS,OAAA,CAAA,EAAA,MAAA;EAIf,UA6JZ,CAAA,EAAA,OAAA;EA7JqB,QAAA,CAAA,EAAA,OAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,SAAA,GAAA,OAAA;EAAA,OAAA,CAAA,EAAA;IAAA,MAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;IAAA,IAAA,CAAA,EAZX,QAYW;EAAA,CAAA;EAAA,MAAA,CAAA,EAAA;IAAA,KAAA,EAAA,MAAA;IAAA,OAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;EAAA,SAAA,CAAA,EANR,WAMQ;EAAA,OAAA,CAAA,EALV,YAKU;EAAA,QAAA,CAAA,EAJT,KAAA,CAAM,SAIG;EAAA,cAAA,CAAA,EAAA,MAAA;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,MAAA;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA,OAAA;EAAA,UAAA;EAAA,QAAA;EAAA,WAAA;EAAA,OAAA;EAAA,OAAA;EAAA,MAAA;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA,cAAA;EAAA;AAAA,CAAA,EAsBnB,UAtBmB,EAAA,GAsBT,mBAAA,CAAA,GAAA,CAAA,OAtBS"}
package/dist/Input.mjs CHANGED
@@ -12,7 +12,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import { useState } from "react";
13
13
 
14
14
  //#region src/Input.tsx
15
- const Input = ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage = true, disabled, placeholder, isValid = true, balance, action, animation, tooltip, children, innerClassname }) => {
15
+ const Input = ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage = true, disabled, placeholder, isValid = true, balance, action, animation, tooltip, children, innerClassname, inputClassName }) => {
16
16
  const [isTooltipOpen, setIsTooltipOpen] = useState(false);
17
17
  return /* @__PURE__ */ jsxs(motion.div, {
18
18
  ...animation,
@@ -71,7 +71,7 @@ const Input = ({ title, value, className, onChange, onFocus, onBlur, onClear, ba
71
71
  children: [
72
72
  badge && /* @__PURE__ */ jsx(Badge, { ...badge }),
73
73
  /* @__PURE__ */ jsx("input", {
74
- className: classNames("h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute", type === "value" && "text-2xl font-mono text-right", "[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none"),
74
+ className: classNames("h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute", type === "value" && "text-2xl font-mono text-right", "[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none", inputClassName),
75
75
  onFocus,
76
76
  onBlur,
77
77
  placeholder,
@@ -1 +1 @@
1
- {"version":3,"file":"Input.mjs","names":[],"sources":["../src/Input.tsx"],"sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n innerClassname?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n innerClassname,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\",\n innerClassname\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAyCA,MAAa,SAAS,EACpB,OACA,OACA,WACA,UACA,SACA,QACA,SACA,OACA,MACA,SACA,aAAa,MACb,UACA,aACA,UAAU,MACV,SACA,QACA,WACA,SACA,UACA,qBACgB;CAChB,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;AACzD,QACE,qBAAC,OAAO;EACN,GAAI;EACJ,WAAW,WACT,uDACA,UACD;;GAEA,SACC,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAK,WAAU;gBACb;OACI,EACN,WACC,qBAAC;MACC,WAAU;MACV,oBAAoB,iBAAiB,KAAK;MAC1C,oBAAoB,iBAAiB,MAAM;iBAE3C,oBAAC;OACC,QAAQ;OACR,UAAU,QAAQ;OAClB,aAAa,QAAQ;QACrB,EACF,oBAAC;OAAK,MAAK;OAAO,MAAM;OAAI,WAAU;QAAwB;OAC1D;MAEJ,EACL,WACC,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,MAAM,QAAQ;MACd,MAAM;MACN,WAAU;OACV,EACF,qBAAC;MAAK,WAAU;;OACb,QAAQ;OAAO;OAAE,QAAQ;;OACrB;MACH;KAEJ;GAER,qBAAC;IACC,WAAW,WACT,4VACA,CAAC,WAAW,0CACZ,CAAC,CAAC,SAAS,oBACX,CAAC,SAAS,aACV,CAAC,CAAC,YAAY,WACd,eACD;eAEA,WACC,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,MAAM;MACN,SAAQ;MACR,SAAS,CAAC,eAAe;MACzB,gBAAgB;MAChB,mBAAmB;OACnB;MACE,EAER,qBAAC;KACC,WAAW,WACT,sDACD;;MAEA,SAAS,oBAAC,SAAM,GAAI,QAAS;MAC9B,oBAAC;OACC,WAAW,WACT,uGACA,SAAS,WAAW,iCAEpB,mMACD;OACQ;OACD;OACK;OACN;OACP,WAAW,MAAM,WAAW,EAAE,OAAO,MAAM;OACjC;OACV,MAAM,SAAS,UAAU,WAAW;QACpC;MACD,WAAW,SACV,oBAAC;OACC,SAAS;OACT,WAAU;OACV,MAAK;iBAEL,oBAAC;QACC,MAAK;QACL,MAAM;QACN,WAAU;SACV;QACK;MAEV,YAAY;MACZ,UACC,oBAAC;OACC,OAAO,OAAO;OACd,SAAS,OAAO;OAChB,SAAQ;OACR,MAAK;OACL,gBAAgB;QAChB;;MAEA;KACF;GACL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,6BACE,WACC,oBAAC,OAAO;KACN,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,MAAM;MAAE,SAAS;MAAG,QAAQ;MAAa;KACzC,YAAY;MAAE,UAAU;MAAK,MAAM;MAAO;KAC1C,WAAW,WACT,2DACA,CAAC,WAAW,mBACb;eAEA;MACW,GAEA;KACd;;GAEG"}
1
+ {"version":3,"file":"Input.mjs","names":[],"sources":["../src/Input.tsx"],"sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n innerClassname?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n inputClassName?: string;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n innerClassname,\n inputClassName,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\",\n innerClassname\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\",\n inputClassName\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AA0CA,MAAa,SAAS,EACpB,OACA,OACA,WACA,UACA,SACA,QACA,SACA,OACA,MACA,SACA,aAAa,MACb,UACA,aACA,UAAU,MACV,SACA,QACA,WACA,SACA,UACA,gBACA,qBACgB;CAChB,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;AACzD,QACE,qBAAC,OAAO;EACN,GAAI;EACJ,WAAW,WACT,uDACA,UACD;;GAEA,SACC,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAK,WAAU;gBACb;OACI,EACN,WACC,qBAAC;MACC,WAAU;MACV,oBAAoB,iBAAiB,KAAK;MAC1C,oBAAoB,iBAAiB,MAAM;iBAE3C,oBAAC;OACC,QAAQ;OACR,UAAU,QAAQ;OAClB,aAAa,QAAQ;QACrB,EACF,oBAAC;OAAK,MAAK;OAAO,MAAM;OAAI,WAAU;QAAwB;OAC1D;MAEJ,EACL,WACC,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,MAAM,QAAQ;MACd,MAAM;MACN,WAAU;OACV,EACF,qBAAC;MAAK,WAAU;;OACb,QAAQ;OAAO;OAAE,QAAQ;;OACrB;MACH;KAEJ;GAER,qBAAC;IACC,WAAW,WACT,4VACA,CAAC,WAAW,0CACZ,CAAC,CAAC,SAAS,oBACX,CAAC,SAAS,aACV,CAAC,CAAC,YAAY,WACd,eACD;eAEA,WACC,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,MAAM;MACN,SAAQ;MACR,SAAS,CAAC,eAAe;MACzB,gBAAgB;MAChB,mBAAmB;OACnB;MACE,EAER,qBAAC;KACC,WAAW,WACT,sDACD;;MAEA,SAAS,oBAAC,SAAM,GAAI,QAAS;MAC9B,oBAAC;OACC,WAAW,WACT,uGACA,SAAS,WAAW,iCAEpB,oMACA,eACD;OACQ;OACD;OACK;OACN;OACP,WAAW,MAAM,WAAW,EAAE,OAAO,MAAM;OACjC;OACV,MAAM,SAAS,UAAU,WAAW;QACpC;MACD,WAAW,SACV,oBAAC;OACC,SAAS;OACT,WAAU;OACV,MAAK;iBAEL,oBAAC;QACC,MAAK;QACL,MAAM;QACN,WAAU;SACV;QACK;MAEV,YAAY;MACZ,UACC,oBAAC;OACC,OAAO,OAAO;OACd,SAAS,OAAO;OAChB,SAAQ;OACR,MAAK;OACL,gBAAgB;QAChB;;MAEA;KACF;GACL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,6BACE,WACC,oBAAC,OAAO;KACN,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,SAAS;MAAE,SAAS;MAAG,QAAQ;MAAa;KAC5C,MAAM;MAAE,SAAS;MAAG,QAAQ;MAAa;KACzC,YAAY;MAAE,UAAU;MAAK,MAAM;MAAO;KAC1C,WAAW,WACT,2DACA,CAAC,WAAW,mBACb;eAEA;MACW,GAEA;KACd;;GAEG"}
package/dist/Logo.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime17 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime26 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/Logo.d.ts
4
4
  type LogoProps = {
@@ -12,7 +12,7 @@ declare const Logo: ({
12
12
  height,
13
13
  hideText,
14
14
  isScrolled
15
- }: LogoProps) => react_jsx_runtime17.JSX.Element;
15
+ }: LogoProps) => react_jsx_runtime26.JSX.Element;
16
16
  //#endregion
17
17
  export { Logo, LogoProps };
18
18
  //# sourceMappingURL=Logo.d.cts.map
package/dist/Logo.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime29 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/Logo.d.ts
4
4
  type LogoProps = {
@@ -12,7 +12,7 @@ declare const Logo: ({
12
12
  height,
13
13
  hideText,
14
14
  isScrolled
15
- }: LogoProps) => react_jsx_runtime2.JSX.Element;
15
+ }: LogoProps) => react_jsx_runtime29.JSX.Element;
16
16
  //#endregion
17
17
  export { Logo, LogoProps };
18
18
  //# sourceMappingURL=Logo.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logo.d.mts","names":[],"sources":["../src/Logo.tsx"],"sourcesContent":[],"mappings":";;;KAMY,SAAA;;;EAAA,QAAA,CAAA,EAAA,OAAS;EAOR,UAgHZ,CAAA,EAAA,OAAA;CAhHoB;AAAA,cAAR,IAAQ,EAAA,CAAA;EAAA,KAAA;EAAA,MAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAKlB,SALkB,EAAA,GAKT,kBAAA,CAAA,GAAA,CAAA,OALS"}
1
+ {"version":3,"file":"Logo.d.mts","names":[],"sources":["../src/Logo.tsx"],"sourcesContent":[],"mappings":";;;KAMY,SAAA;;;EAAA,QAAA,CAAA,EAAA,OAAS;EAOR,UAgHZ,CAAA,EAAA,OAAA;CAhHoB;AAAA,cAAR,IAAQ,EAAA,CAAA;EAAA,KAAA;EAAA,MAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAKlB,SALkB,EAAA,GAKT,mBAAA,CAAA,GAAA,CAAA,OALS"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime11 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime31 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/Pagination.d.ts
4
4
  type PaginationProps = {
@@ -18,7 +18,7 @@ declare const Pagination: ({
18
18
  className,
19
19
  itemsPerPage,
20
20
  itemsPerPageOptions
21
- }: PaginationProps) => react_jsx_runtime11.JSX.Element;
21
+ }: PaginationProps) => react_jsx_runtime31.JSX.Element;
22
22
  type PaginationButtonProps = {
23
23
  label: string;
24
24
  onClick: () => void;
@@ -34,7 +34,7 @@ declare const PaginationButton: ({
34
34
  isControl,
35
35
  isActive,
36
36
  controlDirection
37
- }: PaginationButtonProps) => react_jsx_runtime11.JSX.Element;
37
+ }: PaginationButtonProps) => react_jsx_runtime31.JSX.Element;
38
38
  //#endregion
39
39
  export { Pagination, PaginationButton, PaginationButtonProps, PaginationProps };
40
40
  //# sourceMappingURL=Pagination.d.mts.map
package/dist/Slider.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { IconProps } from "./Icon.cjs";
2
- import * as react_jsx_runtime34 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/Slider.d.ts
5
5
  type SliderProps = {
@@ -34,7 +34,7 @@ declare const Slider: ({
34
34
  onChange,
35
35
  className,
36
36
  abbreviateValues
37
- }: SliderProps) => react_jsx_runtime34.JSX.Element;
37
+ }: SliderProps) => react_jsx_runtime19.JSX.Element;
38
38
  //#endregion
39
39
  export { Slider, SliderProps };
40
40
  //# sourceMappingURL=Slider.d.cts.map
package/dist/Slider.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { IconProps } from "./Icon.mjs";
2
- import * as react_jsx_runtime16 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime69 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/Slider.d.ts
5
5
  type SliderProps = {
@@ -34,7 +34,7 @@ declare const Slider: ({
34
34
  onChange,
35
35
  className,
36
36
  abbreviateValues
37
- }: SliderProps) => react_jsx_runtime16.JSX.Element;
37
+ }: SliderProps) => react_jsx_runtime69.JSX.Element;
38
38
  //#endregion
39
39
  export { Slider, SliderProps };
40
40
  //# sourceMappingURL=Slider.d.mts.map
package/dist/Tabs.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { IconProps } from "./Icon.cjs";
2
- import * as react_jsx_runtime9 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime17 from "react/jsx-runtime";
3
3
  import { MotionProps } from "motion/react";
4
4
 
5
5
  //#region src/Tabs.d.ts
@@ -33,7 +33,7 @@ declare const Tabs: ({
33
33
  size,
34
34
  title,
35
35
  isNavigation
36
- }: TabsProps) => react_jsx_runtime9.JSX.Element;
36
+ }: TabsProps) => react_jsx_runtime17.JSX.Element;
37
37
  //#endregion
38
38
  export { Tabs, TabsProps };
39
39
  //# sourceMappingURL=Tabs.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.cts","names":[],"sources":["../src/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,SAAA;;;EAAA,KAAA,EAAA;IAMD,KAAA,CAAA,EAAA,MAAA;IAIU,KAAA,EAAA,MAAA;IAIP,IAAA,CAAA,EARH,SAQG;IAAW,QAAA,CAAA,EAAA,OAAA;IAOZ,QA6FZ,CAAA,EAAA,OAAA;IA7FoB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;IAAA,QAAA,CAAA,EAXN,KAAA,CAAM,SAWA;IAAA,SAAA,CAAA,EAAA,MAAA;EAAA,CAAA,EAAA;EAAA,KAAA,EAAA,SAAA,GAAA,WAAA;EAAA,SAAA,CAAA,EAPP,WAOO;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,IAAA,GAAA,IAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAUlB,YAAA,CAAA,EAAA,OAAA;CAAS;AAmFX,cA7FY,IA6FZ,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAnFE,SAmFF,EAAA,GAnFW,kBAAA,CAAA,GAAA,CAAA,OAmFX"}
1
+ {"version":3,"file":"Tabs.d.cts","names":[],"sources":["../src/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,SAAA;;;EAAA,KAAA,EAAA;IAMD,KAAA,CAAA,EAAA,MAAA;IAIU,KAAA,EAAA,MAAA;IAIP,IAAA,CAAA,EARH,SAQG;IAAW,QAAA,CAAA,EAAA,OAAA;IAOZ,QA6FZ,CAAA,EAAA,OAAA;IA7FoB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;IAAA,QAAA,CAAA,EAXN,KAAA,CAAM,SAWA;IAAA,SAAA,CAAA,EAAA,MAAA;EAAA,CAAA,EAAA;EAAA,KAAA,EAAA,SAAA,GAAA,WAAA;EAAA,SAAA,CAAA,EAPP,WAOO;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,IAAA,GAAA,IAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAUlB,YAAA,CAAA,EAAA,OAAA;CAAS;AAmFX,cA7FY,IA6FZ,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAnFE,SAmFF,EAAA,GAnFW,mBAAA,CAAA,GAAA,CAAA,OAmFX"}
package/dist/Tabs.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IconProps } from "./Icon.mjs";
2
2
  import { MotionProps } from "motion/react";
3
- import * as react_jsx_runtime8 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime62 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/Tabs.d.ts
6
6
  type TabsProps = {
@@ -33,7 +33,7 @@ declare const Tabs: ({
33
33
  size,
34
34
  title,
35
35
  isNavigation
36
- }: TabsProps) => react_jsx_runtime8.JSX.Element;
36
+ }: TabsProps) => react_jsx_runtime62.JSX.Element;
37
37
  //#endregion
38
38
  export { Tabs, TabsProps };
39
39
  //# sourceMappingURL=Tabs.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.mts","names":[],"sources":["../src/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,SAAA;;;EAAA,KAAA,EAAA;IAMD,KAAA,CAAA,EAAA,MAAA;IAIU,KAAA,EAAA,MAAA;IAIP,IAAA,CAAA,EARH,SAQG;IAAW,QAAA,CAAA,EAAA,OAAA;IAOZ,QA6FZ,CAAA,EAAA,OAAA;IA7FoB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;IAAA,QAAA,CAAA,EAXN,KAAA,CAAM,SAWA;IAAA,SAAA,CAAA,EAAA,MAAA;EAAA,CAAA,EAAA;EAAA,KAAA,EAAA,SAAA,GAAA,WAAA;EAAA,SAAA,CAAA,EAPP,WAOO;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,IAAA,GAAA,IAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAUlB,YAAA,CAAA,EAAA,OAAA;CAAS;AAmFX,cA7FY,IA6FZ,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAnFE,SAmFF,EAAA,GAnFW,kBAAA,CAAA,GAAA,CAAA,OAmFX"}
1
+ {"version":3,"file":"Tabs.d.mts","names":[],"sources":["../src/Tabs.tsx"],"sourcesContent":[],"mappings":";;;;;KAQY,SAAA;;;EAAA,KAAA,EAAA;IAMD,KAAA,CAAA,EAAA,MAAA;IAIU,KAAA,EAAA,MAAA;IAIP,IAAA,CAAA,EARH,SAQG;IAAW,QAAA,CAAA,EAAA,OAAA;IAOZ,QA6FZ,CAAA,EAAA,OAAA;IA7FoB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;IAAA,QAAA,CAAA,EAXN,KAAA,CAAM,SAWA;IAAA,SAAA,CAAA,EAAA,MAAA;EAAA,CAAA,EAAA;EAAA,KAAA,EAAA,SAAA,GAAA,WAAA;EAAA,SAAA,CAAA,EAPP,WAOO;EAAA,OAAA,CAAA,EAAA,OAAA;EAAA,IAAA,CAAA,EAAA,IAAA,GAAA,IAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAUlB,YAAA,CAAA,EAAA,OAAA;CAAS;AAmFX,cA7FY,IA6FZ,EAAA,CAAA;EAAA,SAAA;EAAA,OAAA;EAAA,KAAA;EAAA,KAAA;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAnFE,SAmFF,EAAA,GAnFW,mBAAA,CAAA,GAAA,CAAA,OAmFX"}
package/dist/Toast.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { IconName } from "./icons/index.cjs";
2
- import * as react_jsx_runtime16 from "react/jsx-runtime";
2
+ import "./Icon.cjs";
3
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
3
4
 
4
5
  //#region src/Toast.d.ts
5
6
  type ToastProps = {
@@ -17,7 +18,7 @@ declare const Toast: ({
17
18
  icon,
18
19
  variant,
19
20
  clearable
20
- }: ToastProps) => react_jsx_runtime16.JSX.Element;
21
+ }: ToastProps) => react_jsx_runtime21.JSX.Element;
21
22
  declare const showToast: (props: Omit<ToastProps, "className">) => string | number;
22
23
  declare const showSuccessToast: (title: string, description: string) => string | number;
23
24
  declare const showErrorToast: (title: string, description: string) => string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.cts","names":[],"sources":["../src/Toast.tsx"],"sourcesContent":[],"mappings":";;;;KAOY,UAAA;;;EAAA,WAAA,EAAU,MAAA;EAST,IAAA,EALL,QAwCP;EAnCqB,OAAA,EAAA,SAAA,GAAA,OAAA,GAAA,MAAA;EAAA,SAAA,CAAA,EAAA,OAAA;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,OAAA;EAAA;AAAA,CAAA,EAOnB,UAPmB,EAAA,GAOT,mBAAA,CAAA,GAAA,CAAA,OAPS;AAAA,cAsCT,SAtCS,EAAA,CAAA,KAAA,EAsCW,IAtCX,CAsCgB,UAtChB,EAAA,WAAA,CAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAAA,cA6CT,gBA7CS,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAOnB,cA+CU,cA/CV,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAAU,cAwDA,aAxDA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA"}
1
+ {"version":3,"file":"Toast.d.cts","names":[],"sources":["../src/Toast.tsx"],"sourcesContent":[],"mappings":";;;;;KAOY,UAAA;;;;EAAA,IAAA,EAIJ,QAJc;EAST,OAAA,EAmCZ,SAAA,GAAA,OAAA,GAAA,MAAA;EAnCqB,SAAA,CAAA,EAAA,OAAA;CAAA;AAAA,cAAT,KAAS,EAAA,CAAA;EAAA,SAAA;EAAA,KAAA;EAAA,WAAA;EAAA,IAAA;EAAA,OAAA;EAAA;AAAA,CAAA,EAOnB,UAPmB,EAAA,GAOT,mBAAA,CAAA,GAAA,CAAA,OAPS;AAAA,cAsCT,SAtCS,EAAA,CAAA,KAAA,EAsCW,IAtCX,CAsCgB,UAtChB,EAAA,WAAA,CAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAAA,cA6CT,gBA7CS,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAAA,cAsDT,cAtDS,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA;AAOnB,cAwDU,aAxDV,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,MAAA"}
package/dist/Toast.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IconName } from "./icons/index.mjs";
2
2
  import "./Icon.mjs";
3
- import * as react_jsx_runtime29 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime27 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/Toast.d.ts
6
6
  type ToastProps = {
@@ -18,7 +18,7 @@ declare const Toast: ({
18
18
  icon,
19
19
  variant,
20
20
  clearable
21
- }: ToastProps) => react_jsx_runtime29.JSX.Element;
21
+ }: ToastProps) => react_jsx_runtime27.JSX.Element;
22
22
  declare const showToast: (props: Omit<ToastProps, "className">) => string | number;
23
23
  declare const showSuccessToast: (title: string, description: string) => string | number;
24
24
  declare const showErrorToast: (title: string, description: string) => string | number;
package/dist/Tooltip.cjs CHANGED
@@ -9,7 +9,14 @@ classnames = require_rolldown_runtime.__toESM(classnames);
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
10
 
11
11
  //#region src/Tooltip.tsx
12
- const Tooltip = ({ description, position, isOpen }) => {
12
+ const Tooltip = ({ description, position, isOpen, className, crosshairProps = {
13
+ size: 4,
14
+ variant: "corners",
15
+ className: "text-shade-mute",
16
+ animationDelay: .15,
17
+ animationDuration: .75,
18
+ corners: position === "top-left" || position === "bottom-right" ? ["bottom-left", "top-right"] : ["bottom-right", "top-left"]
19
+ } }) => {
13
20
  const getPositionBasedAnimation = (position$1) => {
14
21
  const baseAnimation = {
15
22
  animate: {
@@ -92,18 +99,11 @@ const Tooltip = ({ description, position, isOpen }) => {
92
99
  const animations = getPositionBasedAnimation(position);
93
100
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.AnimatePresence, { children: isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(motion_react.motion.div, {
94
101
  ...animations,
95
- className: (0, classnames.default)("z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary", "after:absolute after:bg-border", !position.startsWith("center") && "after:!w-[10px] after:!h-[5px]", position.startsWith("center") && "after:!h-[10px] after:!w-[5px]", getTooltipPosition(position), getArrowPosition(position)),
102
+ className: (0, classnames.default)("z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary", "after:absolute after:bg-border", !position.startsWith("center") && "after:!w-[10px] after:!h-[5px]", position.startsWith("center") && "after:!h-[10px] after:!w-[5px]", getTooltipPosition(position), getArrowPosition(position), className),
96
103
  style: { transformOrigin: getTransformOrigin(position) },
97
104
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
98
105
  className: "absolute inset-0.5",
99
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CrossHair.CrosshairCorners, {
100
- size: 4,
101
- variant: "corners",
102
- className: "text-shade-mute",
103
- animationDelay: .15,
104
- animationDuration: .75,
105
- corners: position === "top-left" || position === "bottom-right" ? ["bottom-left", "top-right"] : ["bottom-right", "top-left"]
106
- })
106
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CrossHair.CrosshairCorners, { ...crosshairProps })
107
107
  }), description]
108
108
  }, position) });
109
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.cjs","names":["crisp","position","AnimatePresence","motion","CrosshairCorners"],"sources":["../src/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { crisp, swift } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\n\nexport type TooltipProps = {\n description: string;\n isOpen?: boolean;\n position:\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n | \"center-left\"\n | \"center-right\";\n};\n\nexport const Tooltip = ({ description, position, isOpen }: TooltipProps) => {\n const getPositionBasedAnimation = (position: TooltipProps[\"position\"]) => {\n const baseAnimation = {\n animate: { opacity: 1, y: 0, x: 0, scale: 1 },\n exit: { opacity: 0, scale: 0.9 },\n transition: { duration: 0.15, ease: crisp, delay: 0.15 },\n };\n\n if (position.startsWith(\"bottom\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n } else if (position.startsWith(\"top\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: 10 },\n };\n } else if (position.startsWith(\"center-left\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: 10 },\n };\n } else if (position.startsWith(\"center-right\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: -10 },\n };\n }\n\n // Fallback to default animation\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n };\n\n const animations = getPositionBasedAnimation(position);\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n key={position}\n {...animations}\n className={classNames(\n \"z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary\",\n \"after:absolute after:bg-border\",\n !position.startsWith(\"center\") && \"after:!w-[10px] after:!h-[5px]\",\n position.startsWith(\"center\") && \"after:!h-[10px] after:!w-[5px]\",\n getTooltipPosition(position),\n getArrowPosition(position)\n )}\n style={{ transformOrigin: getTransformOrigin(position) }}\n >\n <div className=\"absolute inset-0.5\">\n <CrosshairCorners\n size={4}\n variant=\"corners\"\n className=\"text-shade-mute\"\n animationDelay={0.15}\n animationDuration={0.75}\n corners={\n position === \"top-left\" || position === \"bottom-right\"\n ? [\"bottom-left\", \"top-right\"]\n : [\"bottom-right\", \"top-left\"]\n }\n />\n </div>\n {description}\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nconst getTooltipPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"top-right\":\n return \"bottom-[calc(100%+6px)] left-1/2 mb-1\";\n case \"top-center\":\n return \"bottom-[calc(100%+6px)] left-1/2 -translate-x-1/2 mb-1\";\n case \"top-left\":\n return \"bottom-[calc(100%+6px)] right-1/2 mb-1\";\n case \"bottom-right\":\n return \"top-[calc(100%+6px)] left-1/2 mt-1\";\n case \"bottom-center\":\n return \"top-[calc(100%+6px)] left-1/2 -translate-x-1/2 mt-1\";\n case \"bottom-left\":\n return \"top-[calc(100%+6px)] right-1/2 mt-1\";\n case \"center-left\":\n return \"right-[calc(100%+6px)] top-1/2 -translate-y-1/2 mr-1\";\n case \"center-right\":\n return \"left-[calc(100%+6px)] top-1/2 -translate-y-1/2 ml-1\";\n }\n};\n\nconst getTransformOrigin = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"bottom left\";\n case \"bottom-center\":\n return \"bottom center\";\n case \"bottom-left\":\n return \"bottom right\";\n case \"top-right\":\n return \"top left\";\n case \"top-center\":\n return \"top center\";\n case \"top-left\":\n return \"top right\";\n case \"center-left\":\n return \"center right\";\n case \"center-right\":\n return \"center left\";\n }\n};\n\nconst getArrowPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"after:top-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_0%,100%_100%,0%_100%,0%_0%)]\";\n case \"bottom-center\":\n return \"after:top-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_0%,0%_100%,100%_100%)]\";\n case \"bottom-left\":\n return \"after:top-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_0%,0%_100%,100%_100%,100%_0%)]\";\n case \"top-right\":\n return \"after:bottom-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_100%,100%_0%,0%_0%,0%_100%)]\";\n case \"top-center\":\n return \"after:bottom-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_100%,0%_0%,100%_0%)]\";\n case \"top-left\":\n return \"after:bottom-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_100%,0%_0%,100%_0%,100%_100%)]\";\n case \"center-right\":\n return \"after:top-1/2 after:left-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(100%_0%,0%_50%,100%_100%)]\";\n case \"center-left\":\n return \"after:top-1/2 after:right-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(0%_0%,100%_50%,0%_100%)]\";\n }\n};\n"],"mappings":";;;;;;;;;;;AAqBA,MAAa,WAAW,EAAE,aAAa,UAAU,aAA2B;CAC1E,MAAM,6BAA6B,eAAuC;EACxE,MAAM,gBAAgB;GACpB,SAAS;IAAE,SAAS;IAAG,GAAG;IAAG,GAAG;IAAG,OAAO;IAAG;GAC7C,MAAM;IAAE,SAAS;IAAG,OAAO;IAAK;GAChC,YAAY;IAAE,UAAU;IAAM,MAAMA;IAAO,OAAO;IAAM;GACzD;AAED,MAAIC,WAAS,WAAW,SAAS,CAC/B,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;WACQA,WAAS,WAAW,MAAM,CACnC,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,cAAc,CAC3C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,eAAe,CAC5C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;AAIH,SAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;;CAGH,MAAM,aAAa,0BAA0B,SAAS;AAEtD,QACE,2CAACC,0CACE,UACC,4CAACC,oBAAO;EAEN,GAAI;EACJ,mCACE,mKACA,kCACA,CAAC,SAAS,WAAW,SAAS,IAAI,kCAClC,SAAS,WAAW,SAAS,IAAI,kCACjC,mBAAmB,SAAS,EAC5B,iBAAiB,SAAS,CAC3B;EACD,OAAO,EAAE,iBAAiB,mBAAmB,SAAS,EAAE;aAExD,2CAAC;GAAI,WAAU;aACb,2CAACC;IACC,MAAM;IACN,SAAQ;IACR,WAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,SACE,aAAa,cAAc,aAAa,iBACpC,CAAC,eAAe,YAAY,GAC5B,CAAC,gBAAgB,WAAW;KAElC;IACE,EACL;IA1BI,SA2BM,GAEC;;AAItB,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,oBAAoB,aAAuC;AAC/D,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,cACH,QAAO"}
1
+ {"version":3,"file":"Tooltip.cjs","names":["crisp","position","AnimatePresence","motion","CrosshairCorners"],"sources":["../src/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { crisp, swift } from \"./utils/easings\";\nimport { CrosshairCorners, CrosshairCornersProps } from \"./CrossHair\";\n\nexport type TooltipProps = {\n description: string;\n isOpen?: boolean;\n position:\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n | \"center-left\"\n | \"center-right\";\n crosshairProps?: CrosshairCornersProps;\n className?: string;\n};\n\nexport const Tooltip = ({ description, position, isOpen, className, crosshairProps = {\n size: 4,\n variant: \"corners\",\n className: \"text-shade-mute\",\n animationDelay: 0.15,\n animationDuration: 0.75,\n corners: position === \"top-left\" || position === \"bottom-right\"\n ? [\"bottom-left\", \"top-right\"]\n : [\"bottom-right\", \"top-left\"]\n} }: TooltipProps) => {\n const getPositionBasedAnimation = (position: TooltipProps[\"position\"]) => {\n const baseAnimation = {\n animate: { opacity: 1, y: 0, x: 0, scale: 1 },\n exit: { opacity: 0, scale: 0.9 },\n transition: { duration: 0.15, ease: crisp, delay: 0.15 },\n };\n\n if (position.startsWith(\"bottom\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n } else if (position.startsWith(\"top\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: 10 },\n };\n } else if (position.startsWith(\"center-left\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: 10 },\n };\n } else if (position.startsWith(\"center-right\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: -10 },\n };\n }\n\n // Fallback to default animation\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n };\n\n const animations = getPositionBasedAnimation(position);\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n key={position}\n {...animations}\n className={classNames(\n \"z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary\",\n \"after:absolute after:bg-border\",\n !position.startsWith(\"center\") && \"after:!w-[10px] after:!h-[5px]\",\n position.startsWith(\"center\") && \"after:!h-[10px] after:!w-[5px]\",\n getTooltipPosition(position),\n getArrowPosition(position),\n className\n )}\n style={{ transformOrigin: getTransformOrigin(position) }}\n >\n <div className=\"absolute inset-0.5\">\n <CrosshairCorners\n {...crosshairProps}\n />\n </div>\n {description}\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nconst getTooltipPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"top-right\":\n return \"bottom-[calc(100%+6px)] left-1/2 mb-1\";\n case \"top-center\":\n return \"bottom-[calc(100%+6px)] left-1/2 -translate-x-1/2 mb-1\";\n case \"top-left\":\n return \"bottom-[calc(100%+6px)] right-1/2 mb-1\";\n case \"bottom-right\":\n return \"top-[calc(100%+6px)] left-1/2 mt-1\";\n case \"bottom-center\":\n return \"top-[calc(100%+6px)] left-1/2 -translate-x-1/2 mt-1\";\n case \"bottom-left\":\n return \"top-[calc(100%+6px)] right-1/2 mt-1\";\n case \"center-left\":\n return \"right-[calc(100%+6px)] top-1/2 -translate-y-1/2 mr-1\";\n case \"center-right\":\n return \"left-[calc(100%+6px)] top-1/2 -translate-y-1/2 ml-1\";\n }\n};\n\nconst getTransformOrigin = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"bottom left\";\n case \"bottom-center\":\n return \"bottom center\";\n case \"bottom-left\":\n return \"bottom right\";\n case \"top-right\":\n return \"top left\";\n case \"top-center\":\n return \"top center\";\n case \"top-left\":\n return \"top right\";\n case \"center-left\":\n return \"center right\";\n case \"center-right\":\n return \"center left\";\n }\n};\n\nconst getArrowPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"after:top-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_0%,100%_100%,0%_100%,0%_0%)]\";\n case \"bottom-center\":\n return \"after:top-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_0%,0%_100%,100%_100%)]\";\n case \"bottom-left\":\n return \"after:top-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_0%,0%_100%,100%_100%,100%_0%)]\";\n case \"top-right\":\n return \"after:bottom-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_100%,100%_0%,0%_0%,0%_100%)]\";\n case \"top-center\":\n return \"after:bottom-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_100%,0%_0%,100%_0%)]\";\n case \"top-left\":\n return \"after:bottom-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_100%,0%_0%,100%_0%,100%_100%)]\";\n case \"center-right\":\n return \"after:top-1/2 after:left-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(100%_0%,0%_50%,100%_100%)]\";\n case \"center-left\":\n return \"after:top-1/2 after:right-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(0%_0%,100%_50%,0%_100%)]\";\n }\n};\n"],"mappings":";;;;;;;;;;;AAuBA,MAAa,WAAW,EAAE,aAAa,UAAU,QAAQ,WAAW,iBAAiB;CACnF,MAAM;CACN,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB,mBAAmB;CACnB,SAAS,aAAa,cAAc,aAAa,iBAC7C,CAAC,eAAe,YAAY,GAC5B,CAAC,gBAAgB,WAAW;CACjC,OAAqB;CACpB,MAAM,6BAA6B,eAAuC;EACxE,MAAM,gBAAgB;GACpB,SAAS;IAAE,SAAS;IAAG,GAAG;IAAG,GAAG;IAAG,OAAO;IAAG;GAC7C,MAAM;IAAE,SAAS;IAAG,OAAO;IAAK;GAChC,YAAY;IAAE,UAAU;IAAM,MAAMA;IAAO,OAAO;IAAM;GACzD;AAED,MAAIC,WAAS,WAAW,SAAS,CAC/B,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;WACQA,WAAS,WAAW,MAAM,CACnC,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,cAAc,CAC3C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,eAAe,CAC5C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;AAIH,SAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;;CAGH,MAAM,aAAa,0BAA0B,SAAS;AAEtD,QACE,2CAACC,0CACE,UACC,4CAACC,oBAAO;EAEN,GAAI;EACJ,mCACE,mKACA,kCACA,CAAC,SAAS,WAAW,SAAS,IAAI,kCAClC,SAAS,WAAW,SAAS,IAAI,kCACjC,mBAAmB,SAAS,EAC5B,iBAAiB,SAAS,EAC1B,UACD;EACD,OAAO,EAAE,iBAAiB,mBAAmB,SAAS,EAAE;aAExD,2CAAC;GAAI,WAAU;aACb,2CAACC,sCACC,GAAI,iBACJ;IACE,EACL;IAlBI,SAmBM,GAEC;;AAItB,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,oBAAoB,aAAuC;AAC/D,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,cACH,QAAO"}
@@ -1,3 +1,4 @@
1
+ import { CrosshairCornersProps } from "./CrossHair.cjs";
1
2
  import * as react_jsx_runtime23 from "react/jsx-runtime";
2
3
 
3
4
  //#region src/Tooltip.d.ts
@@ -5,11 +6,15 @@ type TooltipProps = {
5
6
  description: string;
6
7
  isOpen?: boolean;
7
8
  position: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right" | "center-left" | "center-right";
9
+ crosshairProps?: CrosshairCornersProps;
10
+ className?: string;
8
11
  };
9
12
  declare const Tooltip: ({
10
13
  description,
11
14
  position,
12
- isOpen
15
+ isOpen,
16
+ className,
17
+ crosshairProps
13
18
  }: TooltipProps) => react_jsx_runtime23.JSX.Element;
14
19
  //#endregion
15
20
  export { Tooltip, TooltipProps };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.cts","names":[],"sources":["../src/Tooltip.tsx"],"sourcesContent":[],"mappings":";;;KAOY,YAAA;;;EAAA,QAAA,EAAA,UAAY,GAAA,YAAA,GAAA,WAAA,GAAA,aAAA,GAAA,eAAA,GAAA,cAAA,GAAA,aAAA,GAAA,cAAA;AAcxB,CAAA;AAAwB,cAAX,OAAW,EAAA,CAAA;EAAA,WAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAmC,YAAnC,EAAA,GAA+C,mBAAA,CAAA,GAAA,CAAA,OAA/C"}
1
+ {"version":3,"file":"Tooltip.d.cts","names":[],"sources":["../src/Tooltip.tsx"],"sourcesContent":[],"mappings":";;;;KAOY,YAAA;;;EAAA,QAAA,EAAA,UAAY,GAAA,YAYL,GAAA,WAAqB,GAAA,aAAA,GAAA,eAAA,GAAA,cAAA,GAAA,aAAA,GAAA,cAAA;EAI3B,cAgFZ,CAAA,EApFkB,qBAoFlB;EAhFuB,SAAA,CAAA,EAAA,MAAA;CAAA;AAAA,cAAX,OAAW,EAAA,CAAA;EAAA,WAAA;EAAA,QAAA;EAAA,MAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EASnB,YATmB,EAAA,GASP,mBAAA,CAAA,GAAA,CAAA,OATO"}
@@ -1,16 +1,21 @@
1
- import * as react_jsx_runtime17 from "react/jsx-runtime";
1
+ import { CrosshairCornersProps } from "./CrossHair.mjs";
2
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
2
3
 
3
4
  //#region src/Tooltip.d.ts
4
5
  type TooltipProps = {
5
6
  description: string;
6
7
  isOpen?: boolean;
7
8
  position: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right" | "center-left" | "center-right";
9
+ crosshairProps?: CrosshairCornersProps;
10
+ className?: string;
8
11
  };
9
12
  declare const Tooltip: ({
10
13
  description,
11
14
  position,
12
- isOpen
13
- }: TooltipProps) => react_jsx_runtime17.JSX.Element;
15
+ isOpen,
16
+ className,
17
+ crosshairProps
18
+ }: TooltipProps) => react_jsx_runtime18.JSX.Element;
14
19
  //#endregion
15
20
  export { Tooltip, TooltipProps };
16
21
  //# sourceMappingURL=Tooltip.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.mts","names":[],"sources":["../src/Tooltip.tsx"],"sourcesContent":[],"mappings":";;;KAOY,YAAA;;;EAAA,QAAA,EAAA,UAAY,GAAA,YAAA,GAAA,WAAA,GAAA,aAAA,GAAA,eAAA,GAAA,cAAA,GAAA,aAAA,GAAA,cAAA;AAcxB,CAAA;AAAwB,cAAX,OAAW,EAAA,CAAA;EAAA,WAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAmC,YAAnC,EAAA,GAA+C,mBAAA,CAAA,GAAA,CAAA,OAA/C"}
1
+ {"version":3,"file":"Tooltip.d.mts","names":[],"sources":["../src/Tooltip.tsx"],"sourcesContent":[],"mappings":";;;;KAOY,YAAA;;;EAAA,QAAA,EAAA,UAAY,GAAA,YAYL,GAAA,WAAqB,GAAA,aAAA,GAAA,eAAA,GAAA,cAAA,GAAA,aAAA,GAAA,cAAA;EAI3B,cAgFZ,CAAA,EApFkB,qBAoFlB;EAhFuB,SAAA,CAAA,EAAA,MAAA;CAAA;AAAA,cAAX,OAAW,EAAA,CAAA;EAAA,WAAA;EAAA,QAAA;EAAA,MAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EASnB,YATmB,EAAA,GASP,mBAAA,CAAA,GAAA,CAAA,OATO"}
package/dist/Tooltip.mjs CHANGED
@@ -7,7 +7,14 @@ import classNames from "classnames";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
9
9
  //#region src/Tooltip.tsx
10
- const Tooltip = ({ description, position, isOpen }) => {
10
+ const Tooltip = ({ description, position, isOpen, className, crosshairProps = {
11
+ size: 4,
12
+ variant: "corners",
13
+ className: "text-shade-mute",
14
+ animationDelay: .15,
15
+ animationDuration: .75,
16
+ corners: position === "top-left" || position === "bottom-right" ? ["bottom-left", "top-right"] : ["bottom-right", "top-left"]
17
+ } }) => {
11
18
  const getPositionBasedAnimation = (position$1) => {
12
19
  const baseAnimation = {
13
20
  animate: {
@@ -90,18 +97,11 @@ const Tooltip = ({ description, position, isOpen }) => {
90
97
  const animations = getPositionBasedAnimation(position);
91
98
  return /* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsxs(motion.div, {
92
99
  ...animations,
93
- className: classNames("z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary", "after:absolute after:bg-border", !position.startsWith("center") && "after:!w-[10px] after:!h-[5px]", position.startsWith("center") && "after:!h-[10px] after:!w-[5px]", getTooltipPosition(position), getArrowPosition(position)),
100
+ className: classNames("z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary", "after:absolute after:bg-border", !position.startsWith("center") && "after:!w-[10px] after:!h-[5px]", position.startsWith("center") && "after:!h-[10px] after:!w-[5px]", getTooltipPosition(position), getArrowPosition(position), className),
94
101
  style: { transformOrigin: getTransformOrigin(position) },
95
102
  children: [/* @__PURE__ */ jsx("div", {
96
103
  className: "absolute inset-0.5",
97
- children: /* @__PURE__ */ jsx(CrosshairCorners, {
98
- size: 4,
99
- variant: "corners",
100
- className: "text-shade-mute",
101
- animationDelay: .15,
102
- animationDuration: .75,
103
- corners: position === "top-left" || position === "bottom-right" ? ["bottom-left", "top-right"] : ["bottom-right", "top-left"]
104
- })
104
+ children: /* @__PURE__ */ jsx(CrosshairCorners, { ...crosshairProps })
105
105
  }), description]
106
106
  }, position) });
107
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.mjs","names":["position"],"sources":["../src/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { crisp, swift } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\n\nexport type TooltipProps = {\n description: string;\n isOpen?: boolean;\n position:\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n | \"center-left\"\n | \"center-right\";\n};\n\nexport const Tooltip = ({ description, position, isOpen }: TooltipProps) => {\n const getPositionBasedAnimation = (position: TooltipProps[\"position\"]) => {\n const baseAnimation = {\n animate: { opacity: 1, y: 0, x: 0, scale: 1 },\n exit: { opacity: 0, scale: 0.9 },\n transition: { duration: 0.15, ease: crisp, delay: 0.15 },\n };\n\n if (position.startsWith(\"bottom\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n } else if (position.startsWith(\"top\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: 10 },\n };\n } else if (position.startsWith(\"center-left\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: 10 },\n };\n } else if (position.startsWith(\"center-right\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: -10 },\n };\n }\n\n // Fallback to default animation\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n };\n\n const animations = getPositionBasedAnimation(position);\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n key={position}\n {...animations}\n className={classNames(\n \"z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary\",\n \"after:absolute after:bg-border\",\n !position.startsWith(\"center\") && \"after:!w-[10px] after:!h-[5px]\",\n position.startsWith(\"center\") && \"after:!h-[10px] after:!w-[5px]\",\n getTooltipPosition(position),\n getArrowPosition(position)\n )}\n style={{ transformOrigin: getTransformOrigin(position) }}\n >\n <div className=\"absolute inset-0.5\">\n <CrosshairCorners\n size={4}\n variant=\"corners\"\n className=\"text-shade-mute\"\n animationDelay={0.15}\n animationDuration={0.75}\n corners={\n position === \"top-left\" || position === \"bottom-right\"\n ? [\"bottom-left\", \"top-right\"]\n : [\"bottom-right\", \"top-left\"]\n }\n />\n </div>\n {description}\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nconst getTooltipPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"top-right\":\n return \"bottom-[calc(100%+6px)] left-1/2 mb-1\";\n case \"top-center\":\n return \"bottom-[calc(100%+6px)] left-1/2 -translate-x-1/2 mb-1\";\n case \"top-left\":\n return \"bottom-[calc(100%+6px)] right-1/2 mb-1\";\n case \"bottom-right\":\n return \"top-[calc(100%+6px)] left-1/2 mt-1\";\n case \"bottom-center\":\n return \"top-[calc(100%+6px)] left-1/2 -translate-x-1/2 mt-1\";\n case \"bottom-left\":\n return \"top-[calc(100%+6px)] right-1/2 mt-1\";\n case \"center-left\":\n return \"right-[calc(100%+6px)] top-1/2 -translate-y-1/2 mr-1\";\n case \"center-right\":\n return \"left-[calc(100%+6px)] top-1/2 -translate-y-1/2 ml-1\";\n }\n};\n\nconst getTransformOrigin = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"bottom left\";\n case \"bottom-center\":\n return \"bottom center\";\n case \"bottom-left\":\n return \"bottom right\";\n case \"top-right\":\n return \"top left\";\n case \"top-center\":\n return \"top center\";\n case \"top-left\":\n return \"top right\";\n case \"center-left\":\n return \"center right\";\n case \"center-right\":\n return \"center left\";\n }\n};\n\nconst getArrowPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"after:top-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_0%,100%_100%,0%_100%,0%_0%)]\";\n case \"bottom-center\":\n return \"after:top-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_0%,0%_100%,100%_100%)]\";\n case \"bottom-left\":\n return \"after:top-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_0%,0%_100%,100%_100%,100%_0%)]\";\n case \"top-right\":\n return \"after:bottom-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_100%,100%_0%,0%_0%,0%_100%)]\";\n case \"top-center\":\n return \"after:bottom-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_100%,0%_0%,100%_0%)]\";\n case \"top-left\":\n return \"after:bottom-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_100%,0%_0%,100%_0%,100%_100%)]\";\n case \"center-right\":\n return \"after:top-1/2 after:left-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(100%_0%,0%_50%,100%_100%)]\";\n case \"center-left\":\n return \"after:top-1/2 after:right-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(0%_0%,100%_50%,0%_100%)]\";\n }\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,WAAW,EAAE,aAAa,UAAU,aAA2B;CAC1E,MAAM,6BAA6B,eAAuC;EACxE,MAAM,gBAAgB;GACpB,SAAS;IAAE,SAAS;IAAG,GAAG;IAAG,GAAG;IAAG,OAAO;IAAG;GAC7C,MAAM;IAAE,SAAS;IAAG,OAAO;IAAK;GAChC,YAAY;IAAE,UAAU;IAAM,MAAM;IAAO,OAAO;IAAM;GACzD;AAED,MAAIA,WAAS,WAAW,SAAS,CAC/B,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;WACQA,WAAS,WAAW,MAAM,CACnC,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,cAAc,CAC3C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,eAAe,CAC5C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;AAIH,SAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;;CAGH,MAAM,aAAa,0BAA0B,SAAS;AAEtD,QACE,oBAAC,6BACE,UACC,qBAAC,OAAO;EAEN,GAAI;EACJ,WAAW,WACT,mKACA,kCACA,CAAC,SAAS,WAAW,SAAS,IAAI,kCAClC,SAAS,WAAW,SAAS,IAAI,kCACjC,mBAAmB,SAAS,EAC5B,iBAAiB,SAAS,CAC3B;EACD,OAAO,EAAE,iBAAiB,mBAAmB,SAAS,EAAE;aAExD,oBAAC;GAAI,WAAU;aACb,oBAAC;IACC,MAAM;IACN,SAAQ;IACR,WAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,SACE,aAAa,cAAc,aAAa,iBACpC,CAAC,eAAe,YAAY,GAC5B,CAAC,gBAAgB,WAAW;KAElC;IACE,EACL;IA1BI,SA2BM,GAEC;;AAItB,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,oBAAoB,aAAuC;AAC/D,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,cACH,QAAO"}
1
+ {"version":3,"file":"Tooltip.mjs","names":["position"],"sources":["../src/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { crisp, swift } from \"./utils/easings\";\nimport { CrosshairCorners, CrosshairCornersProps } from \"./CrossHair\";\n\nexport type TooltipProps = {\n description: string;\n isOpen?: boolean;\n position:\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n | \"center-left\"\n | \"center-right\";\n crosshairProps?: CrosshairCornersProps;\n className?: string;\n};\n\nexport const Tooltip = ({ description, position, isOpen, className, crosshairProps = {\n size: 4,\n variant: \"corners\",\n className: \"text-shade-mute\",\n animationDelay: 0.15,\n animationDuration: 0.75,\n corners: position === \"top-left\" || position === \"bottom-right\"\n ? [\"bottom-left\", \"top-right\"]\n : [\"bottom-right\", \"top-left\"]\n} }: TooltipProps) => {\n const getPositionBasedAnimation = (position: TooltipProps[\"position\"]) => {\n const baseAnimation = {\n animate: { opacity: 1, y: 0, x: 0, scale: 1 },\n exit: { opacity: 0, scale: 0.9 },\n transition: { duration: 0.15, ease: crisp, delay: 0.15 },\n };\n\n if (position.startsWith(\"bottom\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n } else if (position.startsWith(\"top\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: 10 },\n };\n } else if (position.startsWith(\"center-left\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: 10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: 10 },\n };\n } else if (position.startsWith(\"center-right\")) {\n return {\n ...baseAnimation,\n initial: { opacity: 0, x: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, x: -10 },\n };\n }\n\n // Fallback to default animation\n return {\n ...baseAnimation,\n initial: { opacity: 0, y: -10, scale: 0.9 },\n exit: { ...baseAnimation.exit, y: -10 },\n };\n };\n\n const animations = getPositionBasedAnimation(position);\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n key={position}\n {...animations}\n className={classNames(\n \"z-50 absolute font-medium w-max max-w-[200px] px-2.5 pt-1.5 pb-2 bg-card-foreground gradient-border before:bg-border text-xs leading-[150%] text-shade-tertiary\",\n \"after:absolute after:bg-border\",\n !position.startsWith(\"center\") && \"after:!w-[10px] after:!h-[5px]\",\n position.startsWith(\"center\") && \"after:!h-[10px] after:!w-[5px]\",\n getTooltipPosition(position),\n getArrowPosition(position),\n className\n )}\n style={{ transformOrigin: getTransformOrigin(position) }}\n >\n <div className=\"absolute inset-0.5\">\n <CrosshairCorners\n {...crosshairProps}\n />\n </div>\n {description}\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nconst getTooltipPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"top-right\":\n return \"bottom-[calc(100%+6px)] left-1/2 mb-1\";\n case \"top-center\":\n return \"bottom-[calc(100%+6px)] left-1/2 -translate-x-1/2 mb-1\";\n case \"top-left\":\n return \"bottom-[calc(100%+6px)] right-1/2 mb-1\";\n case \"bottom-right\":\n return \"top-[calc(100%+6px)] left-1/2 mt-1\";\n case \"bottom-center\":\n return \"top-[calc(100%+6px)] left-1/2 -translate-x-1/2 mt-1\";\n case \"bottom-left\":\n return \"top-[calc(100%+6px)] right-1/2 mt-1\";\n case \"center-left\":\n return \"right-[calc(100%+6px)] top-1/2 -translate-y-1/2 mr-1\";\n case \"center-right\":\n return \"left-[calc(100%+6px)] top-1/2 -translate-y-1/2 ml-1\";\n }\n};\n\nconst getTransformOrigin = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"bottom left\";\n case \"bottom-center\":\n return \"bottom center\";\n case \"bottom-left\":\n return \"bottom right\";\n case \"top-right\":\n return \"top left\";\n case \"top-center\":\n return \"top center\";\n case \"top-left\":\n return \"top right\";\n case \"center-left\":\n return \"center right\";\n case \"center-right\":\n return \"center left\";\n }\n};\n\nconst getArrowPosition = (position: TooltipProps[\"position\"]) => {\n switch (position) {\n case \"bottom-right\":\n return \"after:top-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_0%,100%_100%,0%_100%,0%_0%)]\";\n case \"bottom-center\":\n return \"after:top-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_0%,0%_100%,100%_100%)]\";\n case \"bottom-left\":\n return \"after:top-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_0%,0%_100%,100%_100%,100%_0%)]\";\n case \"top-right\":\n return \"after:bottom-[calc(0%-5px)] after:left-0 after:[clip-path:polygon(0%_100%,100%_0%,0%_0%,0%_100%)]\";\n case \"top-center\":\n return \"after:bottom-[calc(0%-5px)] after:left-1/2 after:-translate-x-1/2 after:[clip-path:polygon(50%_100%,0%_0%,100%_0%)]\";\n case \"top-left\":\n return \"after:bottom-[calc(0%-5px)] after:right-0 after:[clip-path:polygon(100%_100%,0%_0%,100%_0%,100%_100%)]\";\n case \"center-right\":\n return \"after:top-1/2 after:left-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(100%_0%,0%_50%,100%_100%)]\";\n case \"center-left\":\n return \"after:top-1/2 after:right-[calc(0%-5px)] after:-translate-y-1/2 after:[clip-path:polygon(0%_0%,100%_50%,0%_100%)]\";\n }\n};\n"],"mappings":";;;;;;;;;AAuBA,MAAa,WAAW,EAAE,aAAa,UAAU,QAAQ,WAAW,iBAAiB;CACnF,MAAM;CACN,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB,mBAAmB;CACnB,SAAS,aAAa,cAAc,aAAa,iBAC7C,CAAC,eAAe,YAAY,GAC5B,CAAC,gBAAgB,WAAW;CACjC,OAAqB;CACpB,MAAM,6BAA6B,eAAuC;EACxE,MAAM,gBAAgB;GACpB,SAAS;IAAE,SAAS;IAAG,GAAG;IAAG,GAAG;IAAG,OAAO;IAAG;GAC7C,MAAM;IAAE,SAAS;IAAG,OAAO;IAAK;GAChC,YAAY;IAAE,UAAU;IAAM,MAAM;IAAO,OAAO;IAAM;GACzD;AAED,MAAIA,WAAS,WAAW,SAAS,CAC/B,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;WACQA,WAAS,WAAW,MAAM,CACnC,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,cAAc,CAC3C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAI,OAAO;IAAK;GAC1C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAI;GACvC;WACQA,WAAS,WAAW,eAAe,CAC5C,QAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;AAIH,SAAO;GACL,GAAG;GACH,SAAS;IAAE,SAAS;IAAG,GAAG;IAAK,OAAO;IAAK;GAC3C,MAAM;IAAE,GAAG,cAAc;IAAM,GAAG;IAAK;GACxC;;CAGH,MAAM,aAAa,0BAA0B,SAAS;AAEtD,QACE,oBAAC,6BACE,UACC,qBAAC,OAAO;EAEN,GAAI;EACJ,WAAW,WACT,mKACA,kCACA,CAAC,SAAS,WAAW,SAAS,IAAI,kCAClC,SAAS,WAAW,SAAS,IAAI,kCACjC,mBAAmB,SAAS,EAC5B,iBAAiB,SAAS,EAC1B,UACD;EACD,OAAO,EAAE,iBAAiB,mBAAmB,SAAS,EAAE;aAExD,oBAAC;GAAI,WAAU;aACb,oBAAC,oBACC,GAAI,iBACJ;IACE,EACL;IAlBI,SAmBM,GAEC;;AAItB,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,sBAAsB,aAAuC;AACjE,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,eACH,QAAO;;;AAIb,MAAM,oBAAoB,aAAuC;AAC/D,SAAQ,UAAR;EACE,KAAK,eACH,QAAO;EACT,KAAK,gBACH,QAAO;EACT,KAAK,cACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,eACH,QAAO;EACT,KAAK,cACH,QAAO"}