bynana-ui 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/dist/accordion/index.js +2 -0
  2. package/dist/accordion/index.js.map +1 -0
  3. package/dist/accordion/index.mjs +2 -0
  4. package/dist/accordion/index.mjs.map +1 -0
  5. package/dist/alert/index.js +2 -0
  6. package/dist/alert/index.js.map +1 -0
  7. package/dist/alert/index.mjs +2 -0
  8. package/dist/alert/index.mjs.map +1 -0
  9. package/dist/attract-button/index.js +2 -0
  10. package/dist/attract-button/index.js.map +1 -0
  11. package/dist/attract-button/index.mjs +2 -0
  12. package/dist/attract-button/index.mjs.map +1 -0
  13. package/dist/avatar/index.js +2 -0
  14. package/dist/avatar/index.js.map +1 -0
  15. package/dist/avatar/index.mjs +2 -0
  16. package/dist/avatar/index.mjs.map +1 -0
  17. package/dist/badge/index.js +2 -0
  18. package/dist/badge/index.js.map +1 -0
  19. package/dist/badge/index.mjs +2 -0
  20. package/dist/badge/index.mjs.map +1 -0
  21. package/dist/card/index.js +2 -0
  22. package/dist/card/index.js.map +1 -0
  23. package/dist/card/index.mjs +2 -0
  24. package/dist/card/index.mjs.map +1 -0
  25. package/dist/checkbox/index.js +2 -0
  26. package/dist/checkbox/index.js.map +1 -0
  27. package/dist/checkbox/index.mjs +2 -0
  28. package/dist/checkbox/index.mjs.map +1 -0
  29. package/dist/circular-text/index.js +2 -0
  30. package/dist/circular-text/index.js.map +1 -0
  31. package/dist/circular-text/index.mjs +2 -0
  32. package/dist/circular-text/index.mjs.map +1 -0
  33. package/dist/command-button/index.js +2 -0
  34. package/dist/command-button/index.js.map +1 -0
  35. package/dist/command-button/index.mjs +2 -0
  36. package/dist/command-button/index.mjs.map +1 -0
  37. package/dist/copy-button/index.js +2 -0
  38. package/dist/copy-button/index.js.map +1 -0
  39. package/dist/copy-button/index.mjs +2 -0
  40. package/dist/copy-button/index.mjs.map +1 -0
  41. package/dist/count-up/index.js +2 -0
  42. package/dist/count-up/index.js.map +1 -0
  43. package/dist/count-up/index.mjs +2 -0
  44. package/dist/count-up/index.mjs.map +1 -0
  45. package/dist/counter/index.js +2 -0
  46. package/dist/counter/index.js.map +1 -0
  47. package/dist/counter/index.mjs +2 -0
  48. package/dist/counter/index.mjs.map +1 -0
  49. package/dist/decrypted-text/index.js +2 -0
  50. package/dist/decrypted-text/index.js.map +1 -0
  51. package/dist/decrypted-text/index.mjs +2 -0
  52. package/dist/decrypted-text/index.mjs.map +1 -0
  53. package/dist/dock/index.js +2 -0
  54. package/dist/dock/index.js.map +1 -0
  55. package/dist/dock/index.mjs +2 -0
  56. package/dist/dock/index.mjs.map +1 -0
  57. package/dist/drawer/index.js +2 -0
  58. package/dist/drawer/index.js.map +1 -0
  59. package/dist/drawer/index.mjs +2 -0
  60. package/dist/drawer/index.mjs.map +1 -0
  61. package/dist/dynamic-text/index.js +2 -0
  62. package/dist/dynamic-text/index.js.map +1 -0
  63. package/dist/dynamic-text/index.mjs +2 -0
  64. package/dist/dynamic-text/index.mjs.map +1 -0
  65. package/dist/elastic-text/index.js +2 -0
  66. package/dist/elastic-text/index.js.map +1 -0
  67. package/dist/elastic-text/index.mjs +2 -0
  68. package/dist/elastic-text/index.mjs.map +1 -0
  69. package/dist/file-tree/index.js +2 -0
  70. package/dist/file-tree/index.js.map +1 -0
  71. package/dist/file-tree/index.mjs +2 -0
  72. package/dist/file-tree/index.mjs.map +1 -0
  73. package/dist/fuzzy-text/index.js +2 -0
  74. package/dist/fuzzy-text/index.js.map +1 -0
  75. package/dist/fuzzy-text/index.mjs +2 -0
  76. package/dist/fuzzy-text/index.mjs.map +1 -0
  77. package/dist/glowing-text/index.js +2 -0
  78. package/dist/glowing-text/index.js.map +1 -0
  79. package/dist/glowing-text/index.mjs +2 -0
  80. package/dist/glowing-text/index.mjs.map +1 -0
  81. package/dist/gradient-button/index.js +2 -0
  82. package/dist/gradient-button/index.js.map +1 -0
  83. package/dist/gradient-button/index.mjs +2 -0
  84. package/dist/gradient-button/index.mjs.map +1 -0
  85. package/dist/hold-button/index.js +2 -0
  86. package/dist/hold-button/index.js.map +1 -0
  87. package/dist/hold-button/index.mjs +2 -0
  88. package/dist/hold-button/index.mjs.map +1 -0
  89. package/dist/index.js +32 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/index.mjs +32 -1
  92. package/dist/index.mjs.map +1 -1
  93. package/dist/input/index.js +2 -0
  94. package/dist/input/index.js.map +1 -0
  95. package/dist/input/index.mjs +2 -0
  96. package/dist/input/index.mjs.map +1 -0
  97. package/dist/liquid-button/index.js +2 -0
  98. package/dist/liquid-button/index.js.map +1 -0
  99. package/dist/liquid-button/index.mjs +2 -0
  100. package/dist/liquid-button/index.mjs.map +1 -0
  101. package/dist/liquid-text/index.js +2 -0
  102. package/dist/liquid-text/index.js.map +1 -0
  103. package/dist/liquid-text/index.mjs +2 -0
  104. package/dist/liquid-text/index.mjs.map +1 -0
  105. package/dist/loading-bar/index.js +2 -0
  106. package/dist/loading-bar/index.js.map +1 -0
  107. package/dist/loading-bar/index.mjs +2 -0
  108. package/dist/loading-bar/index.mjs.map +1 -0
  109. package/dist/loading-bounce/index.js +2 -0
  110. package/dist/loading-bounce/index.js.map +1 -0
  111. package/dist/loading-bounce/index.mjs +2 -0
  112. package/dist/loading-bounce/index.mjs.map +1 -0
  113. package/dist/loading-flower/index.js +7 -0
  114. package/dist/loading-flower/index.js.map +1 -0
  115. package/dist/loading-flower/index.mjs +7 -0
  116. package/dist/loading-flower/index.mjs.map +1 -0
  117. package/dist/loading-geometric/index.js +7 -0
  118. package/dist/loading-geometric/index.js.map +1 -0
  119. package/dist/loading-geometric/index.mjs +7 -0
  120. package/dist/loading-geometric/index.mjs.map +1 -0
  121. package/dist/loading-morph/index.js +5 -0
  122. package/dist/loading-morph/index.js.map +1 -0
  123. package/dist/loading-morph/index.mjs +5 -0
  124. package/dist/loading-morph/index.mjs.map +1 -0
  125. package/dist/loading-pulse/index.js +2 -0
  126. package/dist/loading-pulse/index.js.map +1 -0
  127. package/dist/loading-pulse/index.mjs +2 -0
  128. package/dist/loading-pulse/index.mjs.map +1 -0
  129. package/dist/loading-rings/index.js +4 -0
  130. package/dist/loading-rings/index.js.map +1 -0
  131. package/dist/loading-rings/index.mjs +4 -0
  132. package/dist/loading-rings/index.mjs.map +1 -0
  133. package/dist/loading-text/index.js +6 -0
  134. package/dist/loading-text/index.js.map +1 -0
  135. package/dist/loading-text/index.mjs +6 -0
  136. package/dist/loading-text/index.mjs.map +1 -0
  137. package/dist/loading-words/index.js +4 -0
  138. package/dist/loading-words/index.js.map +1 -0
  139. package/dist/loading-words/index.mjs +4 -0
  140. package/dist/loading-words/index.mjs.map +1 -0
  141. package/dist/magnetic-text/index.js +2 -0
  142. package/dist/magnetic-text/index.js.map +1 -0
  143. package/dist/magnetic-text/index.mjs +2 -0
  144. package/dist/magnetic-text/index.mjs.map +1 -0
  145. package/dist/matrix-text/index.js +2 -0
  146. package/dist/matrix-text/index.js.map +1 -0
  147. package/dist/matrix-text/index.mjs +2 -0
  148. package/dist/matrix-text/index.mjs.map +1 -0
  149. package/dist/modal/index.js +2 -0
  150. package/dist/modal/index.js.map +1 -0
  151. package/dist/modal/index.mjs +2 -0
  152. package/dist/modal/index.mjs.map +1 -0
  153. package/dist/morph-text/index.js +2 -0
  154. package/dist/morph-text/index.js.map +1 -0
  155. package/dist/morph-text/index.mjs +2 -0
  156. package/dist/morph-text/index.mjs.map +1 -0
  157. package/dist/neon-button/index.js +2 -0
  158. package/dist/neon-button/index.js.map +1 -0
  159. package/dist/neon-button/index.mjs +2 -0
  160. package/dist/neon-button/index.mjs.map +1 -0
  161. package/dist/particle-button/index.js +2 -0
  162. package/dist/particle-button/index.js.map +1 -0
  163. package/dist/particle-button/index.mjs +2 -0
  164. package/dist/particle-button/index.mjs.map +1 -0
  165. package/dist/perspective-text/index.js +2 -0
  166. package/dist/perspective-text/index.js.map +1 -0
  167. package/dist/perspective-text/index.mjs +2 -0
  168. package/dist/perspective-text/index.mjs.map +1 -0
  169. package/dist/progress/index.js +2 -0
  170. package/dist/progress/index.js.map +1 -0
  171. package/dist/progress/index.mjs +2 -0
  172. package/dist/progress/index.mjs.map +1 -0
  173. package/dist/radio/index.js +2 -0
  174. package/dist/radio/index.js.map +1 -0
  175. package/dist/radio/index.mjs +2 -0
  176. package/dist/radio/index.mjs.map +1 -0
  177. package/dist/rainbow-text/index.js +7 -0
  178. package/dist/rainbow-text/index.js.map +1 -0
  179. package/dist/rainbow-text/index.mjs +7 -0
  180. package/dist/rainbow-text/index.mjs.map +1 -0
  181. package/dist/reveal-text/index.js +2 -0
  182. package/dist/reveal-text/index.js.map +1 -0
  183. package/dist/reveal-text/index.mjs +2 -0
  184. package/dist/reveal-text/index.mjs.map +1 -0
  185. package/dist/rotating-text/index.js +2 -0
  186. package/dist/rotating-text/index.js.map +1 -0
  187. package/dist/rotating-text/index.mjs +2 -0
  188. package/dist/rotating-text/index.mjs.map +1 -0
  189. package/dist/scrambled-text/index.js +2 -0
  190. package/dist/scrambled-text/index.js.map +1 -0
  191. package/dist/scrambled-text/index.mjs +2 -0
  192. package/dist/scrambled-text/index.mjs.map +1 -0
  193. package/dist/select/index.js +2 -0
  194. package/dist/select/index.js.map +1 -0
  195. package/dist/select/index.mjs +2 -0
  196. package/dist/select/index.mjs.map +1 -0
  197. package/dist/shiny-text/index.js +7 -0
  198. package/dist/shiny-text/index.js.map +1 -0
  199. package/dist/shiny-text/index.mjs +7 -0
  200. package/dist/shiny-text/index.mjs.map +1 -0
  201. package/dist/skeleton/index.js +2 -0
  202. package/dist/skeleton/index.js.map +1 -0
  203. package/dist/skeleton/index.mjs +2 -0
  204. package/dist/skeleton/index.mjs.map +1 -0
  205. package/dist/sliced-text/index.js +2 -0
  206. package/dist/sliced-text/index.js.map +1 -0
  207. package/dist/sliced-text/index.mjs +2 -0
  208. package/dist/sliced-text/index.mjs.map +1 -0
  209. package/dist/slide-button/index.js +2 -0
  210. package/dist/slide-button/index.js.map +1 -0
  211. package/dist/slide-button/index.mjs +2 -0
  212. package/dist/slide-button/index.mjs.map +1 -0
  213. package/dist/split-text/index.js +2 -0
  214. package/dist/split-text/index.js.map +1 -0
  215. package/dist/split-text/index.mjs +2 -0
  216. package/dist/split-text/index.mjs.map +1 -0
  217. package/dist/stagger-text/index.js +2 -0
  218. package/dist/stagger-text/index.js.map +1 -0
  219. package/dist/stagger-text/index.mjs +2 -0
  220. package/dist/stagger-text/index.mjs.map +1 -0
  221. package/dist/stepper/index.js +2 -0
  222. package/dist/stepper/index.js.map +1 -0
  223. package/dist/stepper/index.mjs +2 -0
  224. package/dist/stepper/index.mjs.map +1 -0
  225. package/dist/switch/index.js +2 -0
  226. package/dist/switch/index.js.map +1 -0
  227. package/dist/switch/index.mjs +2 -0
  228. package/dist/switch/index.mjs.map +1 -0
  229. package/dist/swoosh-text/index.js +2 -0
  230. package/dist/swoosh-text/index.js.map +1 -0
  231. package/dist/swoosh-text/index.mjs +2 -0
  232. package/dist/swoosh-text/index.mjs.map +1 -0
  233. package/dist/tabs/index.js +2 -0
  234. package/dist/tabs/index.js.map +1 -0
  235. package/dist/tabs/index.mjs +2 -0
  236. package/dist/tabs/index.mjs.map +1 -0
  237. package/dist/terminal/index.js +2 -0
  238. package/dist/terminal/index.js.map +1 -0
  239. package/dist/terminal/index.mjs +2 -0
  240. package/dist/terminal/index.mjs.map +1 -0
  241. package/dist/textarea/index.js +2 -0
  242. package/dist/textarea/index.js.map +1 -0
  243. package/dist/textarea/index.mjs +2 -0
  244. package/dist/textarea/index.mjs.map +1 -0
  245. package/dist/threed-button/index.js +2 -0
  246. package/dist/threed-button/index.js.map +1 -0
  247. package/dist/threed-button/index.mjs +2 -0
  248. package/dist/threed-button/index.mjs.map +1 -0
  249. package/dist/toolbar/index.js +2 -0
  250. package/dist/toolbar/index.js.map +1 -0
  251. package/dist/toolbar/index.mjs +2 -0
  252. package/dist/toolbar/index.mjs.map +1 -0
  253. package/dist/tooltip/index.js +2 -0
  254. package/dist/tooltip/index.js.map +1 -0
  255. package/dist/tooltip/index.mjs +2 -0
  256. package/dist/tooltip/index.mjs.map +1 -0
  257. package/dist/tooltip-animated/index.js +2 -0
  258. package/dist/tooltip-animated/index.js.map +1 -0
  259. package/dist/tooltip-animated/index.mjs +2 -0
  260. package/dist/tooltip-animated/index.mjs.map +1 -0
  261. package/dist/tooltip-minimal/index.js +2 -0
  262. package/dist/tooltip-minimal/index.js.map +1 -0
  263. package/dist/tooltip-minimal/index.mjs +2 -0
  264. package/dist/tooltip-minimal/index.mjs.map +1 -0
  265. package/dist/true-focus/index.js +2 -0
  266. package/dist/true-focus/index.js.map +1 -0
  267. package/dist/true-focus/index.mjs +2 -0
  268. package/dist/true-focus/index.mjs.map +1 -0
  269. package/package.json +94 -140
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function l(...t){return tailwindMerge.twMerge(clsx.clsx(t))}var o=react.forwardRef(({className:t,label:a,error:r,icon:n,...s},c)=>jsxRuntime.jsxs("div",{className:"w-full",children:[a&&jsxRuntime.jsx("label",{className:"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1",children:a}),jsxRuntime.jsxs("div",{className:"relative",children:[n&&jsxRuntime.jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400",children:n}),jsxRuntime.jsx("input",{ref:c,className:l("w-full px-4 py-2 rounded-lg","bg-white dark:bg-zinc-900","border border-zinc-300 dark:border-zinc-700","text-zinc-900 dark:text-zinc-100","placeholder:text-zinc-400 dark:placeholder:text-zinc-500","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent","transition-all duration-200",n&&"pl-10",r&&"border-red-500 focus:ring-red-500",t),...s})]}),r&&jsxRuntime.jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]}));o.displayName="Input";var g=o;exports.Input=o;exports.default=g;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/input/index.tsx"],"names":["cn","inputs","twMerge","clsx","Input","forwardRef","className","label","error","icon","props","ref","jsxs","jsx","input_default"],"mappings":"sMAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,IAAMG,CAAAA,CAAQC,gBAAAA,CACnB,CAAC,CAAE,UAAAC,CAAAA,CAAW,KAAA,CAAAC,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,IAAA,CAAAC,EAAM,GAAGC,CAAM,CAAA,CAAGC,CAAAA,GAE1CC,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,QAAA,CACZ,QAAA,CAAA,CAAAL,CAAAA,EACCM,cAAAA,CAAC,OAAA,CAAA,CAAM,SAAA,CAAU,kEACd,QAAA,CAAAN,CAAAA,CACH,CAAA,CAEFK,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,WACZ,QAAA,CAAA,CAAAH,CAAAA,EACCI,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,wDAAA,CACZ,SAAAJ,CAAAA,CACH,CAAA,CAEFI,cAAAA,CAAC,OAAA,CAAA,CACC,GAAA,CAAKF,CAAAA,CACL,UAAWX,CAAAA,CACT,6BAAA,CACA,2BAAA,CACA,6CAAA,CACA,kCAAA,CACA,0DAAA,CACA,+EACA,6BAAA,CACAS,CAAAA,EAAQ,OAAA,CACRD,CAAAA,EAAS,mCAAA,CACTF,CACF,EACC,GAAGI,CAAAA,CACN,CAAA,CAAA,CACF,CAAA,CACCF,CAAAA,EAASK,cAAAA,CAAC,KAAE,SAAA,CAAU,2BAAA,CAA6B,QAAA,CAAAL,CAAAA,CAAM,CAAA,CAAA,CAC5D,CAGN,EAEAJ,CAAAA,CAAM,WAAA,CAAc,OAAA,CAEpB,IAAOU,CAAAA,CAAQV","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, label, error, icon, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n {icon && (\r\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\">\r\n {icon}\r\n </div>\r\n )}\r\n <input\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n icon && \"pl-10\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {forwardRef}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function l(...t){return twMerge(clsx(t))}var o=forwardRef(({className:t,label:a,error:r,icon:n,...s},c)=>jsxs("div",{className:"w-full",children:[a&&jsx("label",{className:"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1",children:a}),jsxs("div",{className:"relative",children:[n&&jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400",children:n}),jsx("input",{ref:c,className:l("w-full px-4 py-2 rounded-lg","bg-white dark:bg-zinc-900","border border-zinc-300 dark:border-zinc-700","text-zinc-900 dark:text-zinc-100","placeholder:text-zinc-400 dark:placeholder:text-zinc-500","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent","transition-all duration-200",n&&"pl-10",r&&"border-red-500 focus:ring-red-500",t),...s})]}),r&&jsx("p",{className:"mt-1 text-sm text-red-500",children:r})]}));o.displayName="Input";var g=o;export{o as Input,g as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/input/index.tsx"],"names":["cn","inputs","twMerge","clsx","Input","forwardRef","className","label","error","icon","props","ref","jsxs","jsx","input_default"],"mappings":"qIAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,IAAMG,CAAAA,CAAQC,UAAAA,CACnB,CAAC,CAAE,UAAAC,CAAAA,CAAW,KAAA,CAAAC,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,IAAA,CAAAC,EAAM,GAAGC,CAAM,CAAA,CAAGC,CAAAA,GAE1CC,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,QAAA,CACZ,QAAA,CAAA,CAAAL,CAAAA,EACCM,GAAAA,CAAC,OAAA,CAAA,CAAM,SAAA,CAAU,kEACd,QAAA,CAAAN,CAAAA,CACH,CAAA,CAEFK,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,WACZ,QAAA,CAAA,CAAAH,CAAAA,EACCI,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,wDAAA,CACZ,SAAAJ,CAAAA,CACH,CAAA,CAEFI,GAAAA,CAAC,OAAA,CAAA,CACC,GAAA,CAAKF,CAAAA,CACL,UAAWX,CAAAA,CACT,6BAAA,CACA,2BAAA,CACA,6CAAA,CACA,kCAAA,CACA,0DAAA,CACA,+EACA,6BAAA,CACAS,CAAAA,EAAQ,OAAA,CACRD,CAAAA,EAAS,mCAAA,CACTF,CACF,EACC,GAAGI,CAAAA,CACN,CAAA,CAAA,CACF,CAAA,CACCF,CAAAA,EAASK,GAAAA,CAAC,KAAE,SAAA,CAAU,2BAAA,CAA6B,QAAA,CAAAL,CAAAA,CAAM,CAAA,CAAA,CAC5D,CAGN,EAEAJ,CAAAA,CAAM,WAAA,CAAc,OAAA,CAEpB,IAAOU,CAAAA,CAAQV","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n icon?: React.ReactNode;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n ({ className, label, error, icon, ...props }, ref) => {\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label className=\"block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1\">\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n {icon && (\r\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\">\r\n {icon}\r\n </div>\r\n )}\r\n <input\r\n ref={ref}\r\n className={cn(\r\n \"w-full px-4 py-2 rounded-lg\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"border border-zinc-300 dark:border-zinc-700\",\r\n \"text-zinc-900 dark:text-zinc-100\",\r\n \"placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\r\n \"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\",\r\n \"transition-all duration-200\",\r\n icon && \"pl-10\",\r\n error && \"border-red-500 focus:ring-red-500\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var react=require('react'),framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function n(...r){return tailwindMerge.twMerge(clsx.clsx(r))}function k({children:r,className:u,variant:e="primary",size:m="md",onClick:s,...p}){let[a,l]=react.useState(false);function b(i){i.preventDefault(),i.stopPropagation(),l(true),setTimeout(()=>l(false),800),s&&s(i);}let f={sm:"px-4 py-2 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"},y={primary:"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white",secondary:"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700",outline:"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600"};return jsxRuntime.jsxs("button",{className:n("relative overflow-hidden rounded-lg font-medium border-2 transition-colors",f[m],y[e],u),onClick:b,...p,children:[jsxRuntime.jsx(framerMotion.AnimatePresence,{children:a&&jsxRuntime.jsx(framerMotion.motion.div,{className:n("absolute inset-0 origin-bottom",e==="primary"?"bg-blue-500 dark:bg-blue-400":"bg-zinc-900 dark:bg-white"),initial:{scaleY:0},animate:{scaleY:1},exit:{scaleY:0,transition:{duration:.3}},transition:{duration:.5,ease:[.4,0,.2,1]},style:{transformOrigin:"bottom"}},"liquid-fill")}),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:a&&jsxRuntime.jsx(jsxRuntime.Fragment,{children:[...Array(5)].map((i,o)=>jsxRuntime.jsx(framerMotion.motion.div,{className:"absolute w-1.5 h-1.5 bg-white/60 rounded-full",style:{left:`${20+o*15}%`,bottom:"10%"},initial:{y:0,opacity:0,scale:0},animate:{y:-60,opacity:[0,1,0],scale:[0,1,.5]},transition:{duration:.6,delay:o*.08,ease:"easeOut"}},o))})}),jsxRuntime.jsx("span",{className:n("relative flex items-center justify-center gap-2 transition-colors duration-200 z-10",a&&(e==="outline"||e==="secondary"?"text-white dark:text-zinc-900":"text-white")),children:r})]})}var M=k;exports.LiquidButton=k;exports.default=M;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/liquid-button/index.tsx"],"names":["cn","inputs","twMerge","clsx","LiquidButton","children","className","variant","size","onClick","props","isFilling","setIsFilling","useState","handleClick","e","sizeClasses","variantClasses","jsxs","jsx","AnimatePresence","motion","Fragment","_","i","liquid_button_default"],"mappings":"4OAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,SAASG,CAAAA,CAAa,CAC3B,QAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,SAAA,CACV,IAAA,CAAAC,EAAO,IAAA,CACP,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAsB,CACpB,GAAM,CAACC,CAAAA,CAAWC,CAAY,CAAA,CAAIC,cAAAA,CAAS,KAAK,CAAA,CAEhD,SAASC,CAAAA,CAAYC,EAAwC,CAC3DA,CAAAA,CAAE,cAAA,EAAe,CACjBA,CAAAA,CAAE,eAAA,EAAgB,CAClBH,CAAAA,CAAa,IAAI,CAAA,CACjB,UAAA,CAAW,IAAMA,CAAAA,CAAa,KAAK,CAAA,CAAG,GAAG,EACrCH,CAAAA,EAASA,CAAAA,CAAQM,CAAC,EACxB,CAEA,IAAMC,CAAAA,CAAc,CAClB,GAAI,mBAAA,CACJ,EAAA,CAAI,qBAAA,CACJ,EAAA,CAAI,mBACN,CAAA,CAEMC,CAAAA,CAAiB,CACrB,QAAS,2FAAA,CACT,SAAA,CAAW,iGAAA,CACX,OAAA,CAAS,mFACX,CAAA,CAEA,OACEC,eAAAA,CAAC,UACC,SAAA,CAAWlB,CAAAA,CACT,4EAAA,CACAgB,CAAAA,CAAYR,CAAI,CAAA,CAChBS,CAAAA,CAAeV,CAAO,EACtBD,CACF,CAAA,CACA,OAAA,CAASQ,CAAAA,CACR,GAAGJ,CAAAA,CAEJ,QAAA,CAAA,CAAAS,cAAAA,CAACC,6BAAA,CACE,QAAA,CAAAT,CAAAA,EACCQ,cAAAA,CAACE,mBAAAA,CAAO,GAAA,CAAP,CAEC,SAAA,CAAWrB,EACT,gCAAA,CACAO,CAAAA,GAAY,SAAA,CAAY,8BAAA,CAAiC,2BAC3D,CAAA,CACA,OAAA,CAAS,CAAE,MAAA,CAAQ,CAAE,CAAA,CACrB,OAAA,CAAS,CAAE,MAAA,CAAQ,CAAE,CAAA,CACrB,KAAM,CAAE,MAAA,CAAQ,CAAA,CAAG,UAAA,CAAY,CAAE,QAAA,CAAU,EAAI,CAAE,EACjD,UAAA,CAAY,CAAE,QAAA,CAAU,EAAA,CAAK,IAAA,CAAM,CAAC,EAAA,CAAK,CAAA,CAAG,GAAK,CAAC,CAAE,CAAA,CACpD,KAAA,CAAO,CAAE,eAAA,CAAiB,QAAS,CAAA,CAAA,CAT/B,aAUN,CAAA,CAEJ,CAAA,CAEAY,cAAAA,CAACC,4BAAAA,CAAA,CACE,QAAA,CAAAT,CAAAA,EACCQ,eAAAG,mBAAAA,CAAA,CACG,QAAA,CAAA,CAAC,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAE,IAAI,CAACC,CAAAA,CAAGC,CAAAA,GACrBL,cAAAA,CAACE,mBAAAA,CAAO,GAAA,CAAP,CAEC,SAAA,CAAU,gDACV,KAAA,CAAO,CAAE,IAAA,CAAM,CAAA,EAAG,EAAA,CAAKG,CAAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAK,MAAA,CAAQ,KAAM,CAAA,CAChD,OAAA,CAAS,CAAE,CAAA,CAAG,CAAA,CAAG,OAAA,CAAS,EAAG,KAAA,CAAO,CAAE,CAAA,CACtC,OAAA,CAAS,CAAE,CAAA,CAAG,GAAA,CAAK,OAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAG,KAAA,CAAO,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAE,CAAA,CAC1D,UAAA,CAAY,CAAE,QAAA,CAAU,EAAA,CAAK,KAAA,CAAOA,CAAAA,CAAI,IAAM,IAAA,CAAM,SAAU,CAAA,CAAA,CALzDA,CAMP,CACD,CAAA,CACH,CAAA,CAEJ,CAAA,CAEAL,eAAC,MAAA,CAAA,CAAK,SAAA,CAAWnB,CAAAA,CACf,qFAAA,CACAW,CAAAA,GAAcJ,CAAAA,GAAY,SAAA,EAAaA,CAAAA,GAAY,YAAc,+BAAA,CAAkC,YAAA,CACrG,CAAA,CACG,QAAA,CAAAF,CAAAA,CACH,CAAA,CAAA,CACF,CAEJ,KAEOoB,CAAAA,CAAQrB","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LiquidButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n onClick,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const [isFilling, setIsFilling] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsFilling(true);\r\n setTimeout(() => setIsFilling(false), 800);\r\n if (onClick) onClick(e);\r\n }\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white\",\r\n secondary: \"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700\",\r\n outline: \"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium border-2 transition-colors\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {isFilling && (\r\n <motion.div\r\n key=\"liquid-fill\"\r\n className={cn(\r\n \"absolute inset-0 origin-bottom\",\r\n variant === \"primary\" ? \"bg-blue-500 dark:bg-blue-400\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ scaleY: 0 }}\r\n animate={{ scaleY: 1 }}\r\n exit={{ scaleY: 0, transition: { duration: 0.3 } }}\r\n transition={{ duration: 0.5, ease: [0.4, 0, 0.2, 1] }}\r\n style={{ transformOrigin: \"bottom\" }}\r\n />\r\n )}\r\n </AnimatePresence>\r\n \r\n <AnimatePresence>\r\n {isFilling && (\r\n <>\r\n {[...Array(5)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1.5 h-1.5 bg-white/60 rounded-full\"\r\n style={{ left: `${20 + i * 15}%`, bottom: \"10%\" }}\r\n initial={{ y: 0, opacity: 0, scale: 0 }}\r\n animate={{ y: -60, opacity: [0, 1, 0], scale: [0, 1, 0.5] }}\r\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </AnimatePresence>\r\n\r\n <span className={cn(\r\n \"relative flex items-center justify-center gap-2 transition-colors duration-200 z-10\",\r\n isFilling && (variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\")\r\n )}>\r\n {children}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default LiquidButton;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useState}from'react';import {AnimatePresence,motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function n(...r){return twMerge(clsx(r))}function k({children:r,className:u,variant:e="primary",size:m="md",onClick:s,...p}){let[a,l]=useState(false);function b(i){i.preventDefault(),i.stopPropagation(),l(true),setTimeout(()=>l(false),800),s&&s(i);}let f={sm:"px-4 py-2 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"},y={primary:"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white",secondary:"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700",outline:"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600"};return jsxs("button",{className:n("relative overflow-hidden rounded-lg font-medium border-2 transition-colors",f[m],y[e],u),onClick:b,...p,children:[jsx(AnimatePresence,{children:a&&jsx(motion.div,{className:n("absolute inset-0 origin-bottom",e==="primary"?"bg-blue-500 dark:bg-blue-400":"bg-zinc-900 dark:bg-white"),initial:{scaleY:0},animate:{scaleY:1},exit:{scaleY:0,transition:{duration:.3}},transition:{duration:.5,ease:[.4,0,.2,1]},style:{transformOrigin:"bottom"}},"liquid-fill")}),jsx(AnimatePresence,{children:a&&jsx(Fragment,{children:[...Array(5)].map((i,o)=>jsx(motion.div,{className:"absolute w-1.5 h-1.5 bg-white/60 rounded-full",style:{left:`${20+o*15}%`,bottom:"10%"},initial:{y:0,opacity:0,scale:0},animate:{y:-60,opacity:[0,1,0],scale:[0,1,.5]},transition:{duration:.6,delay:o*.08,ease:"easeOut"}},o))})}),jsx("span",{className:n("relative flex items-center justify-center gap-2 transition-colors duration-200 z-10",a&&(e==="outline"||e==="secondary"?"text-white dark:text-zinc-900":"text-white")),children:r})]})}var M=k;export{k as LiquidButton,M as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/liquid-button/index.tsx"],"names":["cn","inputs","twMerge","clsx","LiquidButton","children","className","variant","size","onClick","props","isFilling","setIsFilling","useState","handleClick","e","sizeClasses","variantClasses","jsxs","jsx","AnimatePresence","motion","Fragment","_","i","liquid_button_default"],"mappings":"+LAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,SAASG,CAAAA,CAAa,CAC3B,QAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAU,SAAA,CACV,IAAA,CAAAC,EAAO,IAAA,CACP,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAsB,CACpB,GAAM,CAACC,CAAAA,CAAWC,CAAY,CAAA,CAAIC,QAAAA,CAAS,KAAK,CAAA,CAEhD,SAASC,CAAAA,CAAYC,EAAwC,CAC3DA,CAAAA,CAAE,cAAA,EAAe,CACjBA,CAAAA,CAAE,eAAA,EAAgB,CAClBH,CAAAA,CAAa,IAAI,CAAA,CACjB,UAAA,CAAW,IAAMA,CAAAA,CAAa,KAAK,CAAA,CAAG,GAAG,EACrCH,CAAAA,EAASA,CAAAA,CAAQM,CAAC,EACxB,CAEA,IAAMC,CAAAA,CAAc,CAClB,GAAI,mBAAA,CACJ,EAAA,CAAI,qBAAA,CACJ,EAAA,CAAI,mBACN,CAAA,CAEMC,CAAAA,CAAiB,CACrB,QAAS,2FAAA,CACT,SAAA,CAAW,iGAAA,CACX,OAAA,CAAS,mFACX,CAAA,CAEA,OACEC,IAAAA,CAAC,UACC,SAAA,CAAWlB,CAAAA,CACT,4EAAA,CACAgB,CAAAA,CAAYR,CAAI,CAAA,CAChBS,CAAAA,CAAeV,CAAO,EACtBD,CACF,CAAA,CACA,OAAA,CAASQ,CAAAA,CACR,GAAGJ,CAAAA,CAEJ,QAAA,CAAA,CAAAS,GAAAA,CAACC,gBAAA,CACE,QAAA,CAAAT,CAAAA,EACCQ,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CAEC,SAAA,CAAWrB,EACT,gCAAA,CACAO,CAAAA,GAAY,SAAA,CAAY,8BAAA,CAAiC,2BAC3D,CAAA,CACA,OAAA,CAAS,CAAE,MAAA,CAAQ,CAAE,CAAA,CACrB,OAAA,CAAS,CAAE,MAAA,CAAQ,CAAE,CAAA,CACrB,KAAM,CAAE,MAAA,CAAQ,CAAA,CAAG,UAAA,CAAY,CAAE,QAAA,CAAU,EAAI,CAAE,EACjD,UAAA,CAAY,CAAE,QAAA,CAAU,EAAA,CAAK,IAAA,CAAM,CAAC,EAAA,CAAK,CAAA,CAAG,GAAK,CAAC,CAAE,CAAA,CACpD,KAAA,CAAO,CAAE,eAAA,CAAiB,QAAS,CAAA,CAAA,CAT/B,aAUN,CAAA,CAEJ,CAAA,CAEAY,GAAAA,CAACC,eAAAA,CAAA,CACE,QAAA,CAAAT,CAAAA,EACCQ,IAAAG,QAAAA,CAAA,CACG,QAAA,CAAA,CAAC,GAAG,KAAA,CAAM,CAAC,CAAC,CAAA,CAAE,IAAI,CAACC,CAAAA,CAAGC,CAAAA,GACrBL,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CAEC,SAAA,CAAU,gDACV,KAAA,CAAO,CAAE,IAAA,CAAM,CAAA,EAAG,EAAA,CAAKG,CAAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAK,MAAA,CAAQ,KAAM,CAAA,CAChD,OAAA,CAAS,CAAE,CAAA,CAAG,CAAA,CAAG,OAAA,CAAS,EAAG,KAAA,CAAO,CAAE,CAAA,CACtC,OAAA,CAAS,CAAE,CAAA,CAAG,GAAA,CAAK,OAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAG,KAAA,CAAO,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAE,CAAA,CAC1D,UAAA,CAAY,CAAE,QAAA,CAAU,EAAA,CAAK,KAAA,CAAOA,CAAAA,CAAI,IAAM,IAAA,CAAM,SAAU,CAAA,CAAA,CALzDA,CAMP,CACD,CAAA,CACH,CAAA,CAEJ,CAAA,CAEAL,IAAC,MAAA,CAAA,CAAK,SAAA,CAAWnB,CAAAA,CACf,qFAAA,CACAW,CAAAA,GAAcJ,CAAAA,GAAY,SAAA,EAAaA,CAAAA,GAAY,YAAc,+BAAA,CAAkC,YAAA,CACrG,CAAA,CACG,QAAA,CAAAF,CAAAA,CACH,CAAA,CAAA,CACF,CAEJ,KAEOoB,CAAAA,CAAQrB","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useState } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: \"primary\" | \"secondary\" | \"outline\";\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport function LiquidButton({\r\n children,\r\n className,\r\n variant = \"primary\",\r\n size = \"md\",\r\n onClick,\r\n ...props\r\n}: LiquidButtonProps) {\r\n const [isFilling, setIsFilling] = useState(false);\r\n\r\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsFilling(true);\r\n setTimeout(() => setIsFilling(false), 800);\r\n if (onClick) onClick(e);\r\n }\r\n\r\n const sizeClasses = {\r\n sm: \"px-4 py-2 text-sm\",\r\n md: \"px-6 py-3 text-base\",\r\n lg: \"px-8 py-4 text-lg\"\r\n };\r\n\r\n const variantClasses = {\r\n primary: \"bg-zinc-900 text-white border-zinc-900 dark:bg-white dark:text-zinc-900 dark:border-white\",\r\n secondary: \"bg-zinc-100 text-zinc-900 border-zinc-200 dark:bg-zinc-800 dark:text-white dark:border-zinc-700\",\r\n outline: \"bg-transparent text-zinc-900 border-zinc-300 dark:text-white dark:border-zinc-600\"\r\n };\r\n\r\n return (\r\n <button\r\n className={cn(\r\n \"relative overflow-hidden rounded-lg font-medium border-2 transition-colors\",\r\n sizeClasses[size],\r\n variantClasses[variant],\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n <AnimatePresence>\r\n {isFilling && (\r\n <motion.div\r\n key=\"liquid-fill\"\r\n className={cn(\r\n \"absolute inset-0 origin-bottom\",\r\n variant === \"primary\" ? \"bg-blue-500 dark:bg-blue-400\" : \"bg-zinc-900 dark:bg-white\"\r\n )}\r\n initial={{ scaleY: 0 }}\r\n animate={{ scaleY: 1 }}\r\n exit={{ scaleY: 0, transition: { duration: 0.3 } }}\r\n transition={{ duration: 0.5, ease: [0.4, 0, 0.2, 1] }}\r\n style={{ transformOrigin: \"bottom\" }}\r\n />\r\n )}\r\n </AnimatePresence>\r\n \r\n <AnimatePresence>\r\n {isFilling && (\r\n <>\r\n {[...Array(5)].map((_, i) => (\r\n <motion.div\r\n key={i}\r\n className=\"absolute w-1.5 h-1.5 bg-white/60 rounded-full\"\r\n style={{ left: `${20 + i * 15}%`, bottom: \"10%\" }}\r\n initial={{ y: 0, opacity: 0, scale: 0 }}\r\n animate={{ y: -60, opacity: [0, 1, 0], scale: [0, 1, 0.5] }}\r\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </AnimatePresence>\r\n\r\n <span className={cn(\r\n \"relative flex items-center justify-center gap-2 transition-colors duration-200 z-10\",\r\n isFilling && (variant === \"outline\" || variant === \"secondary\" ? \"text-white dark:text-zinc-900\" : \"text-white\")\r\n )}>\r\n {children}\r\n </span>\r\n </button>\r\n );\r\n}\r\n\r\nexport default LiquidButton;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function e(...i){return tailwindMerge.twMerge(clsx.clsx(i))}function f({text:i,className:r,delay:a=0}){let o=i.split(" "),p={hidden:{opacity:0},visible:(t=1)=>({opacity:1,transition:{staggerChildren:.12,delayChildren:a*t}})},l={visible:{opacity:1,y:0,filter:"blur(0px)",transition:{type:"spring",damping:12,stiffness:100}},hidden:{opacity:0,y:20,filter:"blur(10px)",transition:{type:"spring",damping:12,stiffness:100}}};return jsxRuntime.jsx(framerMotion.motion.div,{className:e("flex flex-wrap",r),variants:p,initial:"hidden",animate:"visible",children:o.map((t,d)=>jsxRuntime.jsx(framerMotion.motion.span,{variants:l,className:"mr-2",children:t},d))})}var b=f;exports.LiquidText=f;exports.default=b;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/liquid-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","LiquidText","text","className","delay","words","container","i","child","jsx","motion","word","index","liquid_text_default"],"mappings":"qNAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,SAASG,CAAAA,CAAW,CAAE,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAAA,CAAW,MAAAC,CAAAA,CAAQ,CAAE,CAAA,CAAoB,CAC1E,IAAMC,CAAAA,CAAQH,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAEtBI,CAAAA,CAAY,CAChB,MAAA,CAAQ,CAAE,OAAA,CAAS,CAAE,CAAA,CACrB,QAAS,CAACC,CAAAA,CAAI,CAAA,IAAO,CACnB,OAAA,CAAS,CAAA,CACT,UAAA,CAAY,CAAE,gBAAiB,GAAA,CAAM,aAAA,CAAeH,CAAAA,CAAQG,CAAE,CAChE,CAAA,CACF,CAAA,CAEMC,CAAAA,CAAQ,CACZ,QAAS,CACP,OAAA,CAAS,CAAA,CACT,CAAA,CAAG,CAAA,CACH,MAAA,CAAQ,WAAA,CACR,UAAA,CAAY,CACV,IAAA,CAAM,QAAA,CACN,OAAA,CAAS,EAAA,CACT,SAAA,CAAW,GACb,CACF,CAAA,CACA,OAAQ,CACN,OAAA,CAAS,CAAA,CACT,CAAA,CAAG,EAAA,CACH,MAAA,CAAQ,YAAA,CACR,UAAA,CAAY,CACV,IAAA,CAAM,QAAA,CACN,OAAA,CAAS,EAAA,CACT,UAAW,GACb,CACF,CACF,CAAA,CAEA,OACEC,cAAAA,CAACC,mBAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWb,CAAAA,CAAG,gBAAA,CAAkBM,CAAS,EACzC,QAAA,CAAUG,CAAAA,CACV,OAAA,CAAQ,QAAA,CACR,OAAA,CAAQ,SAAA,CAEP,QAAA,CAAAD,CAAAA,CAAM,IAAI,CAACM,CAAAA,CAAMC,CAAAA,GAChBH,cAAAA,CAACC,mBAAAA,CAAO,IAAA,CAAP,CACC,QAAA,CAAUF,EAEV,SAAA,CAAU,MAAA,CAET,QAAA,CAAAG,CAAAA,CAAAA,CAHIC,CAIP,CACD,CAAA,CACH,CAEJ,KAEOC,CAAAA,CAAQZ","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function LiquidText({ text, className, delay = 0 }: LiquidTextProps) {\r\n const words = text.split(\" \");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: (i = 1) => ({\r\n opacity: 1,\r\n transition: { staggerChildren: 0.12, delayChildren: delay * i },\r\n }),\r\n };\r\n\r\n const child = {\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n filter: \"blur(0px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n y: 20,\r\n filter: \"blur(10px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex flex-wrap\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {words.map((word, index) => (\r\n <motion.span\r\n variants={child}\r\n key={index}\r\n className=\"mr-2\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default LiquidText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function e(...i){return twMerge(clsx(i))}function f({text:i,className:r,delay:a=0}){let o=i.split(" "),p={hidden:{opacity:0},visible:(t=1)=>({opacity:1,transition:{staggerChildren:.12,delayChildren:a*t}})},l={visible:{opacity:1,y:0,filter:"blur(0px)",transition:{type:"spring",damping:12,stiffness:100}},hidden:{opacity:0,y:20,filter:"blur(10px)",transition:{type:"spring",damping:12,stiffness:100}}};return jsx(motion.div,{className:e("flex flex-wrap",r),variants:p,initial:"hidden",animate:"visible",children:o.map((t,d)=>jsx(motion.span,{variants:l,className:"mr-2",children:t},d))})}var b=f;export{f as LiquidText,b as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/liquid-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","LiquidText","text","className","delay","words","container","i","child","jsx","motion","word","index","liquid_text_default"],"mappings":"oIAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMO,SAASG,CAAAA,CAAW,CAAE,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAAA,CAAW,MAAAC,CAAAA,CAAQ,CAAE,CAAA,CAAoB,CAC1E,IAAMC,CAAAA,CAAQH,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAEtBI,CAAAA,CAAY,CAChB,MAAA,CAAQ,CAAE,OAAA,CAAS,CAAE,CAAA,CACrB,QAAS,CAACC,CAAAA,CAAI,CAAA,IAAO,CACnB,OAAA,CAAS,CAAA,CACT,UAAA,CAAY,CAAE,gBAAiB,GAAA,CAAM,aAAA,CAAeH,CAAAA,CAAQG,CAAE,CAChE,CAAA,CACF,CAAA,CAEMC,CAAAA,CAAQ,CACZ,QAAS,CACP,OAAA,CAAS,CAAA,CACT,CAAA,CAAG,CAAA,CACH,MAAA,CAAQ,WAAA,CACR,UAAA,CAAY,CACV,IAAA,CAAM,QAAA,CACN,OAAA,CAAS,EAAA,CACT,SAAA,CAAW,GACb,CACF,CAAA,CACA,OAAQ,CACN,OAAA,CAAS,CAAA,CACT,CAAA,CAAG,EAAA,CACH,MAAA,CAAQ,YAAA,CACR,UAAA,CAAY,CACV,IAAA,CAAM,QAAA,CACN,OAAA,CAAS,EAAA,CACT,UAAW,GACb,CACF,CACF,CAAA,CAEA,OACEC,GAAAA,CAACC,MAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWb,CAAAA,CAAG,gBAAA,CAAkBM,CAAS,EACzC,QAAA,CAAUG,CAAAA,CACV,OAAA,CAAQ,QAAA,CACR,OAAA,CAAQ,SAAA,CAEP,QAAA,CAAAD,CAAAA,CAAM,IAAI,CAACM,CAAAA,CAAMC,CAAAA,GAChBH,GAAAA,CAACC,MAAAA,CAAO,IAAA,CAAP,CACC,QAAA,CAAUF,EAEV,SAAA,CAAU,MAAA,CAET,QAAA,CAAAG,CAAAA,CAAAA,CAHIC,CAIP,CACD,CAAA,CACH,CAEJ,KAEOC,CAAAA,CAAQZ","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LiquidTextProps {\r\n text: string;\r\n className?: string;\r\n delay?: number;\r\n}\r\n\r\nexport function LiquidText({ text, className, delay = 0 }: LiquidTextProps) {\r\n const words = text.split(\" \");\r\n\r\n const container = {\r\n hidden: { opacity: 0 },\r\n visible: (i = 1) => ({\r\n opacity: 1,\r\n transition: { staggerChildren: 0.12, delayChildren: delay * i },\r\n }),\r\n };\r\n\r\n const child = {\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n filter: \"blur(0px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n hidden: {\r\n opacity: 0,\r\n y: 20,\r\n filter: \"blur(10px)\",\r\n transition: {\r\n type: \"spring\",\r\n damping: 12,\r\n stiffness: 100,\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <motion.div\r\n className={cn(\"flex flex-wrap\", className)}\r\n variants={container}\r\n initial=\"hidden\"\r\n animate=\"visible\"\r\n >\r\n {words.map((word, index) => (\r\n <motion.span\r\n variants={child}\r\n key={index}\r\n className=\"mr-2\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default LiquidText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function e(...r){return tailwindMerge.twMerge(clsx.clsx(r))}function l({className:r,color:n="bg-blue-500"}){return jsxRuntime.jsx("div",{className:e("h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800",r),children:jsxRuntime.jsx(framerMotion.motion.div,{className:e("h-full rounded-full",n),initial:{x:"-100%"},animate:{x:"100%"},transition:{repeat:1/0,duration:1.5,ease:"easeInOut"},style:{width:"50%"}})})}var m=l;exports.LoadingBar=l;exports.default=m;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-bar/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingBar","className","color","jsx","motion","loading_bar_default"],"mappings":"qNAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,sBAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCKO,SAASG,EAAW,CAAE,SAAA,CAAAC,CAAAA,CAAW,KAAA,CAAAC,EAAQ,aAAc,CAAA,CAAoB,CAChF,OACEC,cAAAA,CAAC,OAAI,SAAA,CAAWP,CAAAA,CAAG,sEAAA,CAAwEK,CAAS,EAClG,QAAA,CAAAE,cAAAA,CAACC,mBAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWR,CAAAA,CAAG,qBAAA,CAAuBM,CAAK,EAC1C,OAAA,CAAS,CAAE,EAAG,OAAQ,CAAA,CACtB,QAAS,CAAE,CAAA,CAAG,MAAO,CAAA,CACrB,WAAY,CACV,MAAA,CAAQ,IACR,QAAA,CAAU,GAAA,CACV,KAAM,WACR,CAAA,CACA,KAAA,CAAO,CAAE,MAAO,KAAM,CAAA,CACxB,EACF,CAEJ,KAEOG,CAAAA,CAAQL","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBarProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBar({ className, color = \"bg-blue-500\" }: LoadingBarProps) {\r\n return (\r\n <div className={cn(\"h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\", className)}>\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: \"100%\" }}\r\n transition={{\r\n repeat: Infinity,\r\n duration: 1.5,\r\n ease: \"easeInOut\",\r\n }}\r\n style={{ width: \"50%\" }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBar;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function e(...r){return twMerge(clsx(r))}function l({className:r,color:n="bg-blue-500"}){return jsx("div",{className:e("h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800",r),children:jsx(motion.div,{className:e("h-full rounded-full",n),initial:{x:"-100%"},animate:{x:"100%"},transition:{repeat:1/0,duration:1.5,ease:"easeInOut"},style:{width:"50%"}})})}var m=l;export{l as LoadingBar,m as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-bar/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingBar","className","color","jsx","motion","loading_bar_default"],"mappings":"oIAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,QAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCKO,SAASG,EAAW,CAAE,SAAA,CAAAC,CAAAA,CAAW,KAAA,CAAAC,EAAQ,aAAc,CAAA,CAAoB,CAChF,OACEC,GAAAA,CAAC,OAAI,SAAA,CAAWP,CAAAA,CAAG,sEAAA,CAAwEK,CAAS,EAClG,QAAA,CAAAE,GAAAA,CAACC,MAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWR,CAAAA,CAAG,qBAAA,CAAuBM,CAAK,EAC1C,OAAA,CAAS,CAAE,EAAG,OAAQ,CAAA,CACtB,QAAS,CAAE,CAAA,CAAG,MAAO,CAAA,CACrB,WAAY,CACV,MAAA,CAAQ,IACR,QAAA,CAAU,GAAA,CACV,KAAM,WACR,CAAA,CACA,KAAA,CAAO,CAAE,MAAO,KAAM,CAAA,CACxB,EACF,CAEJ,KAEOG,CAAAA,CAAQL","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBarProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBar({ className, color = \"bg-blue-500\" }: LoadingBarProps) {\r\n return (\r\n <div className={cn(\"h-1 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\", className)}>\r\n <motion.div\r\n className={cn(\"h-full rounded-full\", color)}\r\n initial={{ x: \"-100%\" }}\r\n animate={{ x: \"100%\" }}\r\n transition={{\r\n repeat: Infinity,\r\n duration: 1.5,\r\n ease: \"easeInOut\",\r\n }}\r\n style={{ width: \"50%\" }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBar;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function o(...e){return tailwindMerge.twMerge(clsx.clsx(e))}function l({className:e,color:r="bg-zinc-900 dark:bg-white"}){return jsxRuntime.jsx("div",{className:o("flex gap-1",e),children:[0,1,2].map(n=>jsxRuntime.jsx(framerMotion.motion.div,{className:o("w-3 h-3 rounded-full",r),animate:{y:[0,-10,0]},transition:{duration:.6,repeat:1/0,delay:n*.1,ease:"easeInOut"}},n))})}var f=l;exports.LoadingBounce=l;exports.default=f;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-bounce/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingBounce","className","color","jsx","i","motion","loading_bounce_default"],"mappings":"qNAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,UAAKF,CAAM,CAAC,CAC7B,CCKO,SAASG,CAAAA,CAAc,CAAE,UAAAC,CAAAA,CAAW,KAAA,CAAAC,EAAQ,2BAA4B,CAAA,CAAuB,CACpG,OACEC,cAAAA,CAAC,OAAI,SAAA,CAAWP,CAAAA,CAAG,aAAcK,CAAS,CAAA,CACvC,QAAA,CAAA,CAAC,CAAA,CAAG,EAAG,CAAC,CAAA,CAAE,IAAKG,CAAAA,EACdD,cAAAA,CAACE,oBAAO,GAAA,CAAP,CAEC,SAAA,CAAWT,CAAAA,CAAG,uBAAwBM,CAAK,CAAA,CAC3C,QAAS,CAAE,CAAA,CAAG,CAAC,CAAA,CAAG,GAAA,CAAK,CAAC,CAAE,EAC1B,UAAA,CAAY,CACV,SAAU,EAAA,CACV,MAAA,CAAQ,IACR,KAAA,CAAOE,CAAAA,CAAI,GACX,IAAA,CAAM,WACR,GARKA,CASP,CACD,EACH,CAEJ,KAEOE,CAAAA,CAAQN","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBounceProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBounce({ className, color = \"bg-zinc-900 dark:bg-white\" }: LoadingBounceProps) {\r\n return (\r\n <div className={cn(\"flex gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <motion.div\r\n key={i}\r\n className={cn(\"w-3 h-3 rounded-full\", color)}\r\n animate={{ y: [0, -10, 0] }}\r\n transition={{\r\n duration: 0.6,\r\n repeat: Infinity,\r\n delay: i * 0.1,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBounce;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function o(...e){return twMerge(clsx(e))}function l({className:e,color:r="bg-zinc-900 dark:bg-white"}){return jsx("div",{className:o("flex gap-1",e),children:[0,1,2].map(n=>jsx(motion.div,{className:o("w-3 h-3 rounded-full",r),animate:{y:[0,-10,0]},transition:{duration:.6,repeat:1/0,delay:n*.1,ease:"easeInOut"}},n))})}var f=l;export{l as LoadingBounce,f as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-bounce/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingBounce","className","color","jsx","i","motion","loading_bounce_default"],"mappings":"oIAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCKO,SAASG,CAAAA,CAAc,CAAE,UAAAC,CAAAA,CAAW,KAAA,CAAAC,EAAQ,2BAA4B,CAAA,CAAuB,CACpG,OACEC,GAAAA,CAAC,OAAI,SAAA,CAAWP,CAAAA,CAAG,aAAcK,CAAS,CAAA,CACvC,QAAA,CAAA,CAAC,CAAA,CAAG,EAAG,CAAC,CAAA,CAAE,IAAKG,CAAAA,EACdD,GAAAA,CAACE,OAAO,GAAA,CAAP,CAEC,SAAA,CAAWT,CAAAA,CAAG,uBAAwBM,CAAK,CAAA,CAC3C,QAAS,CAAE,CAAA,CAAG,CAAC,CAAA,CAAG,GAAA,CAAK,CAAC,CAAE,EAC1B,UAAA,CAAY,CACV,SAAU,EAAA,CACV,MAAA,CAAQ,IACR,KAAA,CAAOE,CAAAA,CAAI,GACX,IAAA,CAAM,WACR,GARKA,CASP,CACD,EACH,CAEJ,KAEOE,CAAAA,CAAQN","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingBounceProps {\r\n className?: string;\r\n color?: string;\r\n}\r\n\r\nexport function LoadingBounce({ className, color = \"bg-zinc-900 dark:bg-white\" }: LoadingBounceProps) {\r\n return (\r\n <div className={cn(\"flex gap-1\", className)}>\r\n {[0, 1, 2].map((i) => (\r\n <motion.div\r\n key={i}\r\n className={cn(\"w-3 h-3 rounded-full\", color)}\r\n animate={{ y: [0, -10, 0] }}\r\n transition={{\r\n duration: 0.6,\r\n repeat: Infinity,\r\n delay: i * 0.1,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingBounce;\r\n"]}
@@ -0,0 +1,7 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function s(...a){return tailwindMerge.twMerge(clsx.clsx(a))}function o({className:a=""}){return jsxRuntime.jsxs("div",{className:s("w-full h-full min-h-[400px] flex items-center justify-center",a),children:[jsxRuntime.jsx("div",{className:"relative",children:jsxRuntime.jsxs("div",{className:"flex items-center justify-center",children:[[...Array(8)].map((n,l)=>jsxRuntime.jsx("div",{className:"absolute w-3 h-3 rounded-full bg-black dark:bg-white",style:{transform:`rotate(${l*45}deg) translateY(-20px)`,animation:"flower-pulse 1.5s ease-in-out infinite",animationDelay:`${l*.1}s`}},l)),jsxRuntime.jsx("div",{className:"w-4 h-4 rounded-full bg-zinc-400"})]})}),jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes flower-pulse {
3
+ 0%, 100% { opacity: 0.3; scale: 0.8; }
4
+ 50% { opacity: 1; scale: 1.2; }
5
+ }
6
+ `})]})}var d=o;exports.LoadingFlower=o;exports.default=d;//# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-flower/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingFlower","className","jsxs","jsx","_","i","loading_flower_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,UAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,EAAc,CAAE,SAAA,CAAAC,EAAY,EAAG,CAAA,CAAuB,CACpE,OACEC,eAAAA,CAAC,OAAI,SAAA,CAAWN,CAAAA,CAAG,+DAAgEK,CAAS,CAAA,CAC1F,UAAAE,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,UAAA,CACb,QAAA,CAAAD,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCACZ,QAAA,CAAA,CAAA,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAA,CAAI,CAACE,EAAGC,CAAAA,GACrBF,cAAAA,CAAC,OAEC,SAAA,CAAU,sDAAA,CACV,MAAO,CACL,SAAA,CAAW,UAAUE,CAAAA,CAAI,EAAE,yBAC3B,SAAA,CAAW,wCAAA,CACX,eAAgB,CAAA,EAAGA,CAAAA,CAAI,EAAG,CAAA,CAAA,CAC5B,CAAA,CAAA,CANKA,CAOP,CACD,CAAA,CACDF,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCAAmC,CAAA,CAAA,CACpD,CAAA,CACF,EACAA,cAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA,CAKV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOG,CAAAA,CAAQN","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingFlowerProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingFlower({ className = \"\" }: LoadingFlowerProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative\">\r\n <div className=\"flex items-center justify-center\">\r\n {[...Array(8)].map((_, i) => (\r\n <div\r\n key={i}\r\n className=\"absolute w-3 h-3 rounded-full bg-black dark:bg-white\"\r\n style={{\r\n transform: `rotate(${i * 45}deg) translateY(-20px)`,\r\n animation: `flower-pulse 1.5s ease-in-out infinite`,\r\n animationDelay: `${i * 0.1}s`,\r\n }}\r\n />\r\n ))}\r\n <div className=\"w-4 h-4 rounded-full bg-zinc-400\" />\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes flower-pulse {\r\n 0%, 100% { opacity: 0.3; scale: 0.8; }\r\n 50% { opacity: 1; scale: 1.2; }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingFlower;\r\n"]}
@@ -0,0 +1,7 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function s(...a){return twMerge(clsx(a))}function o({className:a=""}){return jsxs("div",{className:s("w-full h-full min-h-[400px] flex items-center justify-center",a),children:[jsx("div",{className:"relative",children:jsxs("div",{className:"flex items-center justify-center",children:[[...Array(8)].map((n,l)=>jsx("div",{className:"absolute w-3 h-3 rounded-full bg-black dark:bg-white",style:{transform:`rotate(${l*45}deg) translateY(-20px)`,animation:"flower-pulse 1.5s ease-in-out infinite",animationDelay:`${l*.1}s`}},l)),jsx("div",{className:"w-4 h-4 rounded-full bg-zinc-400"})]})}),jsx("style",{jsx:true,children:`
2
+ @keyframes flower-pulse {
3
+ 0%, 100% { opacity: 0.3; scale: 0.8; }
4
+ 50% { opacity: 1; scale: 1.2; }
5
+ }
6
+ `})]})}var d=o;export{o as LoadingFlower,d as default};//# sourceMappingURL=index.mjs.map
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-flower/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingFlower","className","jsxs","jsx","_","i","loading_flower_default"],"mappings":"sGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,EAAc,CAAE,SAAA,CAAAC,EAAY,EAAG,CAAA,CAAuB,CACpE,OACEC,IAAAA,CAAC,OAAI,SAAA,CAAWN,CAAAA,CAAG,+DAAgEK,CAAS,CAAA,CAC1F,UAAAE,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,UAAA,CACb,QAAA,CAAAD,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCACZ,QAAA,CAAA,CAAA,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAA,CAAI,CAACE,EAAGC,CAAAA,GACrBF,GAAAA,CAAC,OAEC,SAAA,CAAU,sDAAA,CACV,MAAO,CACL,SAAA,CAAW,UAAUE,CAAAA,CAAI,EAAE,yBAC3B,SAAA,CAAW,wCAAA,CACX,eAAgB,CAAA,EAAGA,CAAAA,CAAI,EAAG,CAAA,CAAA,CAC5B,CAAA,CAAA,CANKA,CAOP,CACD,CAAA,CACDF,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCAAmC,CAAA,CAAA,CACpD,CAAA,CACF,EACAA,GAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA,CAKV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOG,CAAAA,CAAQN","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingFlowerProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingFlower({ className = \"\" }: LoadingFlowerProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative\">\r\n <div className=\"flex items-center justify-center\">\r\n {[...Array(8)].map((_, i) => (\r\n <div\r\n key={i}\r\n className=\"absolute w-3 h-3 rounded-full bg-black dark:bg-white\"\r\n style={{\r\n transform: `rotate(${i * 45}deg) translateY(-20px)`,\r\n animation: `flower-pulse 1.5s ease-in-out infinite`,\r\n animationDelay: `${i * 0.1}s`,\r\n }}\r\n />\r\n ))}\r\n <div className=\"w-4 h-4 rounded-full bg-zinc-400\" />\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes flower-pulse {\r\n 0%, 100% { opacity: 0.3; scale: 0.8; }\r\n 50% { opacity: 1; scale: 1.2; }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingFlower;\r\n"]}
@@ -0,0 +1,7 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function i(...t){return tailwindMerge.twMerge(clsx.clsx(t))}function s({className:t=""}){return jsxRuntime.jsxs("div",{className:i("w-full h-full min-h-[400px] flex items-center justify-center",t),children:[jsxRuntime.jsx("div",{className:"flex justify-center items-center",children:jsxRuntime.jsxs("div",{className:"w-36 h-36 flex justify-center items-center relative",children:[jsxRuntime.jsx("div",{className:"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]"}),jsxRuntime.jsx("div",{className:"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]"}),jsxRuntime.jsx("div",{className:"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]",children:"X"}),jsxRuntime.jsx("div",{className:"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]",children:"*"})]})}),jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
3
+ @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
4
+ @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
5
+ @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }
6
+ `})]})}var f=s;exports.LoadingGeometric=s;exports.default=f;//# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-geometric/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingGeometric","className","jsxs","jsx","loading_geometric_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,EAAiB,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,EAA0B,CAC1E,OACEC,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAWN,EAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAA,CAAAE,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCAAA,CACb,QAAA,CAAAD,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CACb,QAAA,CAAA,CAAAC,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,8GAAA,CAA+G,CAAA,CAC9HA,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,wHAAA,CAAyH,CAAA,CACxIA,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,gIAAA,CAAiI,QAAA,CAAA,GAAA,CAAC,EACjJA,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,uIAAA,CAAwI,aAAC,CAAA,CAAA,CAC1J,CAAA,CACF,EACAA,cAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA,CAKV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOC,CAAAA,CAAQJ","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingGeometricProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingGeometric({ className = \"\" }: LoadingGeometricProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"flex justify-center items-center\">\r\n <div className=\"w-36 h-36 flex justify-center items-center relative\">\r\n <div className=\"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">X</div>\r\n <div className=\"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">*</div>\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }\r\n @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }\r\n @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingGeometric;\r\n"]}
@@ -0,0 +1,7 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function i(...t){return twMerge(clsx(t))}function s({className:t=""}){return jsxs("div",{className:i("w-full h-full min-h-[400px] flex items-center justify-center",t),children:[jsx("div",{className:"flex justify-center items-center",children:jsxs("div",{className:"w-36 h-36 flex justify-center items-center relative",children:[jsx("div",{className:"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]"}),jsx("div",{className:"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]"}),jsx("div",{className:"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]",children:"X"}),jsx("div",{className:"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]",children:"*"})]})}),jsx("style",{jsx:true,children:`
2
+ @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
3
+ @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
4
+ @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
5
+ @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }
6
+ `})]})}var f=s;export{s as LoadingGeometric,f as default};//# sourceMappingURL=index.mjs.map
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-geometric/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingGeometric","className","jsxs","jsx","loading_geometric_default"],"mappings":"sGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,EAAiB,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,EAA0B,CAC1E,OACEC,KAAC,KAAA,CAAA,CAAI,SAAA,CAAWN,EAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAA,CAAAE,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCAAA,CACb,QAAA,CAAAD,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CACb,QAAA,CAAA,CAAAC,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,8GAAA,CAA+G,CAAA,CAC9HA,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,wHAAA,CAAyH,CAAA,CACxIA,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,gIAAA,CAAiI,QAAA,CAAA,GAAA,CAAC,EACjJA,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,uIAAA,CAAwI,aAAC,CAAA,CAAA,CAC1J,CAAA,CACF,EACAA,GAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA,CAKV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOC,CAAAA,CAAQJ","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingGeometricProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingGeometric({ className = \"\" }: LoadingGeometricProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"flex justify-center items-center\">\r\n <div className=\"w-36 h-36 flex justify-center items-center relative\">\r\n <div className=\"w-4 h-16 absolute bg-zinc-600 dark:bg-zinc-400 animate-[move-h_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"w-4 h-16 absolute bg-zinc-800 dark:bg-zinc-200 rotate-90 animate-[move-v_1.2s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\" />\r\n <div className=\"absolute top-4 left-5 font-black text-lg text-black dark:text-white animate-[rot_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">X</div>\r\n <div className=\"absolute bottom-0 right-0 font-black text-3xl text-black dark:text-white animate-[scale_0.8s_infinite_cubic-bezier(0.65,0.05,0.36,1)]\">*</div>\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes move-h { 0% { top: 0; opacity: 0; } 25% { opacity: 1; } 50% { top: 30%; opacity: 1; } 75% { opacity: 1; } 100% { top: 100%; opacity: 0; } }\r\n @keyframes move-v { 0% { left: 0; opacity: 0; } 25% { opacity: 1; } 50% { left: 45%; opacity: 1; } 75% { opacity: 1; } 100% { left: 100%; opacity: 0; } }\r\n @keyframes rot { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes scale { 0% { scale: 1; } 50% { scale: 1.9; } 100% { scale: 1; } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingGeometric;\r\n"]}
@@ -0,0 +1,5 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function o(...r){return tailwindMerge.twMerge(clsx.clsx(r))}function a({className:r=""}){return jsxRuntime.jsx("div",{className:o("w-full h-full min-h-[400px] flex items-center justify-center",r),children:jsxRuntime.jsx("div",{className:"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]",children:jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
3
+ @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }
4
+ `})})})}var c=a;exports.LoadingMorph=a;exports.default=c;//# sourceMappingURL=index.js.map
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-morph/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingMorph","className","jsx","loading_morph_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,UAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAsB,CAClE,OACEC,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAWN,CAAAA,CAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAAC,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,2RACb,QAAA,CAAAA,cAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA,QAAA,CAAA,CAGV,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOC,CAAAA,CAAQH","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingMorphProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingMorph({ className = \"\" }: LoadingMorphProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]\">\r\n <style jsx>{`\r\n @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingMorph;\r\n"]}
@@ -0,0 +1,5 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function o(...r){return twMerge(clsx(r))}function a({className:r=""}){return jsx("div",{className:o("w-full h-full min-h-[400px] flex items-center justify-center",r),children:jsx("div",{className:"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]",children:jsx("style",{jsx:true,children:`
2
+ @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
3
+ @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }
4
+ `})})})}var c=a;export{a as LoadingMorph,c as default};//# sourceMappingURL=index.mjs.map
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-morph/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingMorph","className","jsx","loading_morph_default"],"mappings":"iGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAsB,CAClE,OACEC,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAWN,CAAAA,CAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAAC,IAAC,KAAA,CAAA,CAAI,SAAA,CAAU,2RACb,QAAA,CAAAA,GAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA,QAAA,CAAA,CAGV,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOC,CAAAA,CAAQH","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingMorphProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingMorph({ className = \"\" }: LoadingMorphProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-20 h-20 rounded-full border-8 border-transparent border-t-black dark:border-t-white border-r-zinc-600 dark:border-r-zinc-400 border-b-zinc-400 dark:border-b-zinc-600 border-l-zinc-200 dark:border-l-zinc-800 animate-[morph_2s_ease-in-out_infinite,rotate-color_2s_linear_infinite]\">\r\n <style jsx>{`\r\n @keyframes rotate-color { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n @keyframes morph { 0%, 100% { border-radius: 50%; width: 80px; height: 80px; } 50% { border-radius: 10%; width: 100px; height: 100px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingMorph;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function e(...s){return tailwindMerge.twMerge(clsx.clsx(s))}var r={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"};function u({className:s,size:a="md",color:t="bg-blue-500"}){return jsxRuntime.jsxs("div",{className:e("relative",r[a],s),children:[jsxRuntime.jsx(framerMotion.motion.div,{className:e("absolute inset-0 rounded-full",t),animate:{scale:[1,1.5,1],opacity:[.5,0,.5]},transition:{duration:1.5,repeat:1/0,ease:"easeInOut"}}),jsxRuntime.jsx("div",{className:e("absolute inset-2 rounded-full",t)})]})}var v=u;exports.LoadingPulse=u;exports.default=v;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-pulse/index.tsx"],"names":["cn","inputs","twMerge","clsx","sizes","LoadingPulse","className","size","color","jsxs","jsx","motion","loading_pulse_default"],"mappings":"qNAGO,SAASA,KAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMA,IAAMG,CAAAA,CAAQ,CACZ,EAAA,CAAI,SAAA,CACJ,GAAI,WAAA,CACJ,EAAA,CAAI,WACN,CAAA,CAEO,SAASC,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAW,IAAA,CAAAC,CAAAA,CAAO,IAAA,CAAM,KAAA,CAAAC,EAAQ,aAAc,CAAA,CAAsB,CACjG,OACEC,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAWT,CAAAA,CAAG,UAAA,CAAYI,CAAAA,CAAMG,CAAI,CAAA,CAAGD,CAAS,EACnD,QAAA,CAAA,CAAAI,cAAAA,CAACC,mBAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWX,EAAG,+BAAA,CAAiCQ,CAAK,CAAA,CACpD,OAAA,CAAS,CACP,KAAA,CAAO,CAAC,CAAA,CAAG,GAAA,CAAK,CAAC,CAAA,CACjB,OAAA,CAAS,CAAC,GAAK,CAAA,CAAG,EAAG,CACvB,CAAA,CACA,UAAA,CAAY,CACV,SAAU,GAAA,CACV,MAAA,CAAQ,CAAA,CAAA,CAAA,CACR,IAAA,CAAM,WACR,CAAA,CACF,EACAE,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWV,CAAAA,CAAG,+BAAA,CAAiCQ,CAAK,EAAG,CAAA,CAAA,CAC9D,CAEJ,CAEA,IAAOI,CAAAA,CAAQP","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingPulseProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n color?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8\",\r\n md: \"w-12 h-12\",\r\n lg: \"w-16 h-16\",\r\n};\r\n\r\nexport function LoadingPulse({ className, size = \"md\", color = \"bg-blue-500\" }: LoadingPulseProps) {\r\n return (\r\n <div className={cn(\"relative\", sizes[size], className)}>\r\n <motion.div\r\n className={cn(\"absolute inset-0 rounded-full\", color)}\r\n animate={{\r\n scale: [1, 1.5, 1],\r\n opacity: [0.5, 0, 0.5],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n <div className={cn(\"absolute inset-2 rounded-full\", color)} />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingPulse;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function e(...s){return twMerge(clsx(s))}var r={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"};function u({className:s,size:a="md",color:t="bg-blue-500"}){return jsxs("div",{className:e("relative",r[a],s),children:[jsx(motion.div,{className:e("absolute inset-0 rounded-full",t),animate:{scale:[1,1.5,1],opacity:[.5,0,.5]},transition:{duration:1.5,repeat:1/0,ease:"easeInOut"}}),jsx("div",{className:e("absolute inset-2 rounded-full",t)})]})}var v=u;export{u as LoadingPulse,v as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-pulse/index.tsx"],"names":["cn","inputs","twMerge","clsx","sizes","LoadingPulse","className","size","color","jsxs","jsx","motion","loading_pulse_default"],"mappings":"yIAGO,SAASA,KAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMA,IAAMG,CAAAA,CAAQ,CACZ,EAAA,CAAI,SAAA,CACJ,GAAI,WAAA,CACJ,EAAA,CAAI,WACN,CAAA,CAEO,SAASC,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAW,IAAA,CAAAC,CAAAA,CAAO,IAAA,CAAM,KAAA,CAAAC,EAAQ,aAAc,CAAA,CAAsB,CACjG,OACEC,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAWT,CAAAA,CAAG,UAAA,CAAYI,CAAAA,CAAMG,CAAI,CAAA,CAAGD,CAAS,EACnD,QAAA,CAAA,CAAAI,GAAAA,CAACC,MAAAA,CAAO,GAAA,CAAP,CACC,SAAA,CAAWX,EAAG,+BAAA,CAAiCQ,CAAK,CAAA,CACpD,OAAA,CAAS,CACP,KAAA,CAAO,CAAC,CAAA,CAAG,GAAA,CAAK,CAAC,CAAA,CACjB,OAAA,CAAS,CAAC,GAAK,CAAA,CAAG,EAAG,CACvB,CAAA,CACA,UAAA,CAAY,CACV,SAAU,GAAA,CACV,MAAA,CAAQ,CAAA,CAAA,CAAA,CACR,IAAA,CAAM,WACR,CAAA,CACF,EACAE,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWV,CAAAA,CAAG,+BAAA,CAAiCQ,CAAK,EAAG,CAAA,CAAA,CAC9D,CAEJ,CAEA,IAAOI,CAAAA,CAAQP","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingPulseProps {\r\n className?: string;\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n color?: string;\r\n}\r\n\r\nconst sizes = {\r\n sm: \"w-8 h-8\",\r\n md: \"w-12 h-12\",\r\n lg: \"w-16 h-16\",\r\n};\r\n\r\nexport function LoadingPulse({ className, size = \"md\", color = \"bg-blue-500\" }: LoadingPulseProps) {\r\n return (\r\n <div className={cn(\"relative\", sizes[size], className)}>\r\n <motion.div\r\n className={cn(\"absolute inset-0 rounded-full\", color)}\r\n animate={{\r\n scale: [1, 1.5, 1],\r\n opacity: [0.5, 0, 0.5],\r\n }}\r\n transition={{\r\n duration: 1.5,\r\n repeat: Infinity,\r\n ease: \"easeInOut\",\r\n }}\r\n />\r\n <div className={cn(\"absolute inset-2 rounded-full\", color)} />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingPulse;\r\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function o(...e){return tailwindMerge.twMerge(clsx.clsx(e))}function i({className:e=""}){return jsxRuntime.jsx("div",{className:o("w-full h-full min-h-[400px] flex items-center justify-center",e),children:jsxRuntime.jsxs("div",{className:"w-16 h-16",children:[jsxRuntime.jsx("div",{className:"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]",children:jsxRuntime.jsx("div",{className:"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]"})}),jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }
3
+ `})]})})}var f=i;exports.LoadingRings=i;exports.default=f;//# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-rings/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingRings","className","jsx","jsxs","loading_rings_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAsB,CAClE,OACEC,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWN,CAAAA,CAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAAE,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,WAAA,CACb,QAAA,CAAA,CAAAD,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,yLAAA,CACb,QAAA,CAAAA,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,4MAAA,CAA6M,CAAA,CAC9N,CAAA,CACAA,cAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA,QAAA,CAAA,CAEV,CAAA,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOE,CAAAA,CAAQJ","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingRingsProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingRings({ className = \"\" }: LoadingRingsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-16 h-16\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]\" />\r\n </div>\r\n <style jsx>{`\r\n @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingRings;\r\n"]}
@@ -0,0 +1,4 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs}from'react/jsx-runtime';function o(...e){return twMerge(clsx(e))}function i({className:e=""}){return jsx("div",{className:o("w-full h-full min-h-[400px] flex items-center justify-center",e),children:jsxs("div",{className:"w-16 h-16",children:[jsx("div",{className:"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]",children:jsx("div",{className:"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]"})}),jsx("style",{jsx:true,children:`
2
+ @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }
3
+ `})]})})}var f=i;export{i as LoadingRings,f as default};//# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-rings/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingRings","className","jsx","jsxs","loading_rings_default"],"mappings":"sGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCGO,SAASG,CAAAA,CAAa,CAAE,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAsB,CAClE,OACEC,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWN,CAAAA,CAAG,8DAAA,CAAgEK,CAAS,CAAA,CAC1F,QAAA,CAAAE,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,WAAA,CACb,QAAA,CAAA,CAAAD,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,yLAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,4MAAA,CAA6M,CAAA,CAC9N,CAAA,CACAA,GAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA,QAAA,CAAA,CAEV,CAAA,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOE,CAAAA,CAAQJ","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingRingsProps {\r\n className?: string;\r\n}\r\n\r\nexport function LoadingRings({ className = \"\" }: LoadingRingsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"w-16 h-16\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-700 dark:border-t-zinc-200 border-b-zinc-500 rounded-full animate-[rotate_5s_linear_infinite]\">\r\n <div className=\"box-border w-full h-full border-[10px] border-zinc-300 dark:border-zinc-800 border-t-zinc-600 dark:border-t-zinc-400 border-b-black dark:border-b-white rounded-full animate-[rotate_2.5s_linear_infinite]\" />\r\n </div>\r\n <style jsx>{`\r\n @keyframes rotate { 0% { transform: scale(1) rotate(360deg); } 50% { transform: scale(0.8) rotate(-360deg); } 100% { transform: scale(1) rotate(360deg); } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingRings;\r\n"]}
@@ -0,0 +1,6 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function e(...a){return tailwindMerge.twMerge(clsx.clsx(a))}function i({text:a="loading",className:r=""}){return jsxRuntime.jsx("div",{className:e("w-full h-full min-h-[400px] flex items-center justify-center",r),children:jsxRuntime.jsxs("div",{className:"relative w-20 h-12",children:[jsxRuntime.jsx("span",{className:"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]",children:a}),jsxRuntime.jsx("span",{className:"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]",children:jsxRuntime.jsx("span",{className:"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]"})}),jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }
3
+ @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }
4
+ @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }
5
+ `})]})})}var m=i;exports.LoadingText=i;exports.default=m;//# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingText","text","className","jsx","jsxs","loading_text_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,UAAKF,CAAM,CAAC,CAC7B,CCIO,SAASG,CAAAA,CAAY,CAAE,KAAAC,CAAAA,CAAO,SAAA,CAAW,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAqB,CAClF,OACEC,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWP,CAAAA,CAAG,8DAAA,CAAgEM,CAAS,CAAA,CAC1F,QAAA,CAAAE,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oBAAA,CACb,QAAA,CAAA,CAAAD,cAAAA,CAAC,QAAK,SAAA,CAAU,gIAAA,CACb,QAAA,CAAAF,CAAAA,CACH,CAAA,CACAE,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,2HACd,QAAA,CAAAA,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,kHAAkH,CAAA,CACpI,CAAA,CACAA,cAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,CAIV,CAAA,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOE,CAAAA,CAAQL","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingText({ text = \"loading\", className = \"\" }: LoadingTextProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative w-20 h-12\">\r\n <span className=\"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]\">\r\n {text}\r\n </span>\r\n <span className=\"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]\">\r\n <span className=\"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]\" />\r\n </span>\r\n <style jsx>{`\r\n @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }\r\n @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }\r\n @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingText;\r\n"]}
@@ -0,0 +1,6 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs}from'react/jsx-runtime';function e(...a){return twMerge(clsx(a))}function i({text:a="loading",className:r=""}){return jsx("div",{className:e("w-full h-full min-h-[400px] flex items-center justify-center",r),children:jsxs("div",{className:"relative w-20 h-12",children:[jsx("span",{className:"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]",children:a}),jsx("span",{className:"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]",children:jsx("span",{className:"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]"})}),jsx("style",{jsx:true,children:`
2
+ @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }
3
+ @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }
4
+ @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }
5
+ `})]})})}var m=i;export{i as LoadingText,m as default};//# sourceMappingURL=index.mjs.map
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingText","text","className","jsx","jsxs","loading_text_default"],"mappings":"sGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCIO,SAASG,CAAAA,CAAY,CAAE,KAAAC,CAAAA,CAAO,SAAA,CAAW,SAAA,CAAAC,CAAAA,CAAY,EAAG,CAAA,CAAqB,CAClF,OACEC,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWP,CAAAA,CAAG,8DAAA,CAAgEM,CAAS,CAAA,CAC1F,QAAA,CAAAE,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oBAAA,CACb,QAAA,CAAA,CAAAD,GAAAA,CAAC,QAAK,SAAA,CAAU,gIAAA,CACb,QAAA,CAAAF,CAAAA,CACH,CAAA,CACAE,GAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,2HACd,QAAA,CAAAA,GAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,kHAAkH,CAAA,CACpI,CAAA,CACAA,GAAAA,CAAC,OAAA,CAAA,CAAM,IAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,CAIV,CAAA,CAAA,CACJ,CAAA,CACF,CAEJ,KAEOE,CAAAA,CAAQL","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingTextProps {\r\n text?: string;\r\n className?: string;\r\n}\r\n\r\nexport function LoadingText({ text = \"loading\", className = \"\" }: LoadingTextProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"relative w-20 h-12\">\r\n <span className=\"absolute top-0 left-0 m-0 p-0 text-black dark:text-white text-sm tracking-wider animate-[loading-text_3.5s_ease_both_infinite]\">\r\n {text}\r\n </span>\r\n <span className=\"absolute bottom-0 left-0 block h-4 w-4 rounded-full bg-black dark:bg-white animate-[loading-bar_3.5s_ease_both_infinite]\">\r\n <span className=\"absolute inset-0 rounded-full bg-zinc-400 dark:bg-zinc-500 animate-[loading-bar-before_3.5s_ease_both_infinite]\" />\r\n </span>\r\n <style jsx>{`\r\n @keyframes loading-text { 0% { letter-spacing: 1px; transform: translateX(0px); } 40% { letter-spacing: 2px; transform: translateX(26px); } 80% { letter-spacing: 1px; transform: translateX(32px); } 90% { letter-spacing: 2px; transform: translateX(0px); } 100% { letter-spacing: 1px; transform: translateX(0px); } }\r\n @keyframes loading-bar { 0% { width: 16px; transform: translateX(0px); } 40% { width: 100%; transform: translateX(0px); } 80% { width: 16px; transform: translateX(64px); } 90% { width: 100%; transform: translateX(0px); } 100% { width: 16px; transform: translateX(0px); } }\r\n @keyframes loading-bar-before { 0% { transform: translateX(0px); width: 16px; } 40% { transform: translateX(0%); width: 80%; } 80% { width: 100%; transform: translateX(0px); } 90% { width: 80%; transform: translateX(15px); } 100% { transform: translateX(0px); width: 16px; } }\r\n `}</style>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingText;\r\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function e(...a){return tailwindMerge.twMerge(clsx.clsx(a))}function m({words:a=["buttons","forms","switches","cards","loaders"],className:n=""}){return jsxRuntime.jsxs("div",{className:e("w-full h-full min-h-[400px] flex items-center justify-center",n),children:[jsxRuntime.jsxs("div",{className:"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg",children:[jsxRuntime.jsx("span",{className:"mr-2",children:"loading"}),jsxRuntime.jsxs("div",{className:"overflow-hidden relative h-full",children:[jsxRuntime.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10"}),a.map((o,s)=>jsxRuntime.jsx("span",{className:"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]",style:{animationDelay:`${s*.8}s`},children:o},s))]})]}),jsxRuntime.jsx("style",{jsx:true,children:`
2
+ @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }
3
+ `})]})}var u=m;exports.LoadingWords=m;exports.default=u;//# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-words/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingWords","words","className","jsxs","jsx","word","index","loading_words_default"],"mappings":"+KAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,UAAKF,CAAM,CAAC,CAC7B,CCIO,SAASG,CAAAA,CAAa,CAC3B,MAAAC,CAAAA,CAAQ,CAAC,UAAW,OAAA,CAAS,UAAA,CAAY,QAAS,SAAS,CAAA,CAC3D,UAAAC,CAAAA,CAAY,EACd,EAAsB,CACpB,OACEC,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAWP,CAAAA,CAAG,8DAAA,CAAgEM,CAAS,CAAA,CAC1F,UAAAC,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,gHAAA,CACb,QAAA,CAAA,CAAAC,eAAC,MAAA,CAAA,CAAK,SAAA,CAAU,OAAO,QAAA,CAAA,SAAA,CAAO,CAAA,CAC9BD,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCACb,QAAA,CAAA,CAAAC,cAAAA,CAAC,OAAI,SAAA,CAAU,qIAAA,CAAsI,CAAA,CACpJH,CAAAA,CAAM,GAAA,CAAI,CAACI,EAAMC,CAAAA,GAChBF,cAAAA,CAAC,QAEC,SAAA,CAAU,iFAAA,CACV,MAAO,CAAE,cAAA,CAAgB,CAAA,EAAGE,CAAAA,CAAQ,EAAG,CAAA,CAAA,CAAI,EAE1C,QAAA,CAAAD,CAAAA,CAAAA,CAJIC,CAKP,CACD,CAAA,CAAA,CACH,GACF,CAAA,CACAF,cAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA,MAAA,CAAA,CAEV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOG,CAAAA,CAAQP","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingWordsProps {\r\n words?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function LoadingWords({\r\n words = [\"buttons\", \"forms\", \"switches\", \"cards\", \"loaders\"],\r\n className = \"\",\r\n}: LoadingWordsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg\">\r\n <span className=\"mr-2\">loading</span>\r\n <div className=\"overflow-hidden relative h-full\">\r\n <div className=\"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10\" />\r\n {words.map((word, index) => (\r\n <span\r\n key={index}\r\n className=\"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]\"\r\n style={{ animationDelay: `${index * 0.8}s` }}\r\n >\r\n {word}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingWords;\r\n"]}
@@ -0,0 +1,4 @@
1
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function e(...a){return twMerge(clsx(a))}function m({words:a=["buttons","forms","switches","cards","loaders"],className:n=""}){return jsxs("div",{className:e("w-full h-full min-h-[400px] flex items-center justify-center",n),children:[jsxs("div",{className:"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg",children:[jsx("span",{className:"mr-2",children:"loading"}),jsxs("div",{className:"overflow-hidden relative h-full",children:[jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10"}),a.map((o,s)=>jsx("span",{className:"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]",style:{animationDelay:`${s*.8}s`},children:o},s))]})]}),jsx("style",{jsx:true,children:`
2
+ @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }
3
+ `})]})}var u=m;export{m as LoadingWords,u as default};//# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/loading-words/index.tsx"],"names":["cn","inputs","twMerge","clsx","LoadingWords","words","className","jsxs","jsx","word","index","loading_words_default"],"mappings":"sGAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,KAAKF,CAAM,CAAC,CAC7B,CCIO,SAASG,CAAAA,CAAa,CAC3B,MAAAC,CAAAA,CAAQ,CAAC,UAAW,OAAA,CAAS,UAAA,CAAY,QAAS,SAAS,CAAA,CAC3D,UAAAC,CAAAA,CAAY,EACd,EAAsB,CACpB,OACEC,KAAC,KAAA,CAAA,CAAI,SAAA,CAAWP,CAAAA,CAAG,8DAAA,CAAgEM,CAAS,CAAA,CAC1F,UAAAC,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,gHAAA,CACb,QAAA,CAAA,CAAAC,IAAC,MAAA,CAAA,CAAK,SAAA,CAAU,OAAO,QAAA,CAAA,SAAA,CAAO,CAAA,CAC9BD,KAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kCACb,QAAA,CAAA,CAAAC,GAAAA,CAAC,OAAI,SAAA,CAAU,qIAAA,CAAsI,CAAA,CACpJH,CAAAA,CAAM,GAAA,CAAI,CAACI,EAAMC,CAAAA,GAChBF,GAAAA,CAAC,QAEC,SAAA,CAAU,iFAAA,CACV,MAAO,CAAE,cAAA,CAAgB,CAAA,EAAGE,CAAAA,CAAQ,EAAG,CAAA,CAAA,CAAI,EAE1C,QAAA,CAAAD,CAAAA,CAAAA,CAJIC,CAKP,CACD,CAAA,CAAA,CACH,GACF,CAAA,CACAF,GAAAA,CAAC,OAAA,CAAA,CAAM,GAAA,CAAG,IAAA,CAAE,QAAA,CAAA;AAAA;AAAA,MAAA,CAAA,CAEV,CAAA,CAAA,CACJ,CAEJ,CAEA,IAAOG,CAAAA,CAAQP","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface LoadingWordsProps {\r\n words?: string[];\r\n className?: string;\r\n}\r\n\r\nexport function LoadingWords({\r\n words = [\"buttons\", \"forms\", \"switches\", \"cards\", \"loaders\"],\r\n className = \"\",\r\n}: LoadingWordsProps) {\r\n return (\r\n <div className={cn(\"w-full h-full min-h-[400px] flex items-center justify-center\", className)}>\r\n <div className=\"text-zinc-400 dark:text-zinc-500 font-medium text-2xl box-border h-10 px-2.5 py-2 flex items-center rounded-lg\">\r\n <span className=\"mr-2\">loading</span>\r\n <div className=\"overflow-hidden relative h-full\">\r\n <div className=\"absolute inset-0 bg-gradient-to-b from-white via-transparent to-white dark:from-zinc-950 dark:via-transparent dark:to-zinc-950 z-10\" />\r\n {words.map((word, index) => (\r\n <span\r\n key={index}\r\n className=\"block h-full pl-1.5 text-black dark:text-white animate-[spin-words_4s_infinite]\"\r\n style={{ animationDelay: `${index * 0.8}s` }}\r\n >\r\n {word}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <style jsx>{`\r\n @keyframes spin-words { 10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); } 35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); } 60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); } 85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); } }\r\n `}</style>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LoadingWords;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var react=require('react'),framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}function L({children:e,className:s,strength:t=.5}){let n=react.useRef(null),[r,o]=react.useState({x:0,y:0}),c=u=>{let{clientX:p,clientY:f}=u,{height:d,width:M,left:g,top:x}=n.current.getBoundingClientRect(),v=p-(g+M/2),y=f-(x+d/2);o({x:v*t,y:y*t});},a=()=>{o({x:0,y:0});},{x:l,y:m}=r;return jsxRuntime.jsx(framerMotion.motion.div,{ref:n,onMouseMove:c,onMouseLeave:a,animate:{x:l,y:m},transition:{type:"spring",stiffness:150,damping:15,mass:.1},className:i("inline-block cursor-pointer",s),children:e})}var X=L;exports.MagneticText=L;exports.default=X;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/magnetic-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","MagneticText","children","className","strength","ref","useRef","position","setPosition","useState","handleMouse","e","clientX","clientY","height","width","left","top","middleX","middleY","reset","x","y","jsx","motion","magnetic_text_default"],"mappings":"4OAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCOO,SAASG,CAAAA,CAAa,CAAE,SAAAC,CAAAA,CAAU,SAAA,CAAAC,EAAW,QAAA,CAAAC,CAAAA,CAAW,EAAI,CAAA,CAAsB,CACvF,IAAMC,CAAAA,CAAMC,YAAAA,CAAuB,IAAI,EACjC,CAACC,CAAAA,CAAUC,CAAW,CAAA,CAAIC,eAAS,CAAE,CAAA,CAAG,EAAG,CAAA,CAAG,CAAE,CAAC,CAAA,CAEjDC,CAAAA,CAAeC,CAAAA,EAAwC,CAC3D,GAAM,CAAE,OAAA,CAAAC,CAAAA,CAAS,OAAA,CAAAC,CAAQ,CAAA,CAAIF,CAAAA,CACvB,CAAE,MAAA,CAAAG,EAAQ,KAAA,CAAAC,CAAAA,CAAO,KAAAC,CAAAA,CAAM,GAAA,CAAAC,CAAI,CAAA,CAAIZ,CAAAA,CAAI,OAAA,CAAS,qBAAA,GAC5Ca,CAAAA,CAAUN,CAAAA,EAAWI,CAAAA,CAAOD,CAAAA,CAAQ,GACpCI,CAAAA,CAAUN,CAAAA,EAAWI,CAAAA,CAAMH,CAAAA,CAAS,GAC1CN,CAAAA,CAAY,CAAE,EAAGU,CAAAA,CAAUd,CAAAA,CAAU,EAAGe,CAAAA,CAAUf,CAAS,CAAC,EAC9D,EAEMgB,CAAAA,CAAQ,IAAM,CAClBZ,CAAAA,CAAY,CAAE,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAE,CAAC,EAC5B,CAAA,CAEM,CAAE,CAAA,CAAAa,CAAAA,CAAG,EAAAC,CAAE,CAAA,CAAIf,CAAAA,CAEjB,OACEgB,eAACC,mBAAAA,CAAO,GAAA,CAAP,CACC,GAAA,CAAKnB,EACL,WAAA,CAAaK,CAAAA,CACb,YAAA,CAAcU,CAAAA,CACd,QAAS,CAAE,CAAA,CAAAC,EAAG,CAAA,CAAAC,CAAE,EAChB,UAAA,CAAY,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAA,CAAI,IAAA,CAAM,EAAI,CAAA,CACrE,SAAA,CAAWzB,CAAAA,CAAG,6BAAA,CAA+BM,CAAS,CAAA,CAErD,QAAA,CAAAD,EACH,CAEJ,KAEOuB,CAAAA,CAAQxB","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n strength?: number;\r\n}\r\n\r\nexport function MagneticText({ children, className, strength = 0.5 }: MagneticTextProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n\r\n const handleMouse = (e: React.MouseEvent<HTMLDivElement>) => {\r\n const { clientX, clientY } = e;\r\n const { height, width, left, top } = ref.current!.getBoundingClientRect();\r\n const middleX = clientX - (left + width / 2);\r\n const middleY = clientY - (top + height / 2);\r\n setPosition({ x: middleX * strength, y: middleY * strength });\r\n };\r\n\r\n const reset = () => {\r\n setPosition({ x: 0, y: 0 });\r\n };\r\n\r\n const { x, y } = position;\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n onMouseMove={handleMouse}\r\n onMouseLeave={reset}\r\n animate={{ x, y }}\r\n transition={{ type: \"spring\", stiffness: 150, damping: 15, mass: 0.1 }}\r\n className={cn(\"inline-block cursor-pointer\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default MagneticText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useRef,useState}from'react';import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function i(...e){return twMerge(clsx(e))}function L({children:e,className:s,strength:t=.5}){let n=useRef(null),[r,o]=useState({x:0,y:0}),c=u=>{let{clientX:p,clientY:f}=u,{height:d,width:M,left:g,top:x}=n.current.getBoundingClientRect(),v=p-(g+M/2),y=f-(x+d/2);o({x:v*t,y:y*t});},a=()=>{o({x:0,y:0});},{x:l,y:m}=r;return jsx(motion.div,{ref:n,onMouseMove:c,onMouseLeave:a,animate:{x:l,y:m},transition:{type:"spring",stiffness:150,damping:15,mass:.1},className:i("inline-block cursor-pointer",s),children:e})}var X=L;export{L as MagneticText,X as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/magnetic-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","MagneticText","children","className","strength","ref","useRef","position","setPosition","useState","handleMouse","e","clientX","clientY","height","width","left","top","middleX","middleY","reset","x","y","jsx","motion","magnetic_text_default"],"mappings":"wKAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCOO,SAASG,CAAAA,CAAa,CAAE,SAAAC,CAAAA,CAAU,SAAA,CAAAC,EAAW,QAAA,CAAAC,CAAAA,CAAW,EAAI,CAAA,CAAsB,CACvF,IAAMC,CAAAA,CAAMC,MAAAA,CAAuB,IAAI,EACjC,CAACC,CAAAA,CAAUC,CAAW,CAAA,CAAIC,SAAS,CAAE,CAAA,CAAG,EAAG,CAAA,CAAG,CAAE,CAAC,CAAA,CAEjDC,CAAAA,CAAeC,CAAAA,EAAwC,CAC3D,GAAM,CAAE,OAAA,CAAAC,CAAAA,CAAS,OAAA,CAAAC,CAAQ,CAAA,CAAIF,CAAAA,CACvB,CAAE,MAAA,CAAAG,EAAQ,KAAA,CAAAC,CAAAA,CAAO,KAAAC,CAAAA,CAAM,GAAA,CAAAC,CAAI,CAAA,CAAIZ,CAAAA,CAAI,OAAA,CAAS,qBAAA,GAC5Ca,CAAAA,CAAUN,CAAAA,EAAWI,CAAAA,CAAOD,CAAAA,CAAQ,GACpCI,CAAAA,CAAUN,CAAAA,EAAWI,CAAAA,CAAMH,CAAAA,CAAS,GAC1CN,CAAAA,CAAY,CAAE,EAAGU,CAAAA,CAAUd,CAAAA,CAAU,EAAGe,CAAAA,CAAUf,CAAS,CAAC,EAC9D,EAEMgB,CAAAA,CAAQ,IAAM,CAClBZ,CAAAA,CAAY,CAAE,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAE,CAAC,EAC5B,CAAA,CAEM,CAAE,CAAA,CAAAa,CAAAA,CAAG,EAAAC,CAAE,CAAA,CAAIf,CAAAA,CAEjB,OACEgB,IAACC,MAAAA,CAAO,GAAA,CAAP,CACC,GAAA,CAAKnB,EACL,WAAA,CAAaK,CAAAA,CACb,YAAA,CAAcU,CAAAA,CACd,QAAS,CAAE,CAAA,CAAAC,EAAG,CAAA,CAAAC,CAAE,EAChB,UAAA,CAAY,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAA,CAAI,IAAA,CAAM,EAAI,CAAA,CACrE,SAAA,CAAWzB,CAAAA,CAAG,6BAAA,CAA+BM,CAAS,CAAA,CAErD,QAAA,CAAAD,EACH,CAEJ,KAEOuB,CAAAA,CAAQxB","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MagneticTextProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n strength?: number;\r\n}\r\n\r\nexport function MagneticText({ children, className, strength = 0.5 }: MagneticTextProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n\r\n const handleMouse = (e: React.MouseEvent<HTMLDivElement>) => {\r\n const { clientX, clientY } = e;\r\n const { height, width, left, top } = ref.current!.getBoundingClientRect();\r\n const middleX = clientX - (left + width / 2);\r\n const middleY = clientY - (top + height / 2);\r\n setPosition({ x: middleX * strength, y: middleY * strength });\r\n };\r\n\r\n const reset = () => {\r\n setPosition({ x: 0, y: 0 });\r\n };\r\n\r\n const { x, y } = position;\r\n\r\n return (\r\n <motion.div\r\n ref={ref}\r\n onMouseMove={handleMouse}\r\n onMouseLeave={reset}\r\n animate={{ x, y }}\r\n transition={{ type: \"spring\", stiffness: 150, damping: 15, mass: 0.1 }}\r\n className={cn(\"inline-block cursor-pointer\", className)}\r\n >\r\n {children}\r\n </motion.div>\r\n );\r\n}\r\n\r\nexport default MagneticText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function s(...r){return tailwindMerge.twMerge(clsx.clsx(r))}function M({text:r,className:f,speed:o=50,color:m="#22c55e"}){let i=react.useRef(null),t=react.useRef(null);return react.useEffect(()=>{let a=i.current;if(!a)return;let l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*",e=r,n=0,p=()=>{if(a.innerText=e.split("").map((h,c)=>c<n?e[c]:l[Math.floor(Math.random()*l.length)]).join(""),n>=e.length){t.current&&clearInterval(t.current);return}n+=1/3;};return t.current=setInterval(p,o),()=>{t.current&&clearInterval(t.current);}},[r,o]),jsxRuntime.jsx("div",{ref:i,className:s("font-mono",f),style:{color:m},children:r})}var C=M;exports.MatrixText=M;exports.default=C;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/matrix-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","MatrixText","text","className","speed","color","containerRef","useRef","intervalRef","useEffect","container","chars","originalText","iteration","animate","char","index","jsx","matrix_text_default"],"mappings":"sMAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCOO,SAASG,CAAAA,CAAW,CACzB,KAAAC,CAAAA,CACA,SAAA,CAAAC,EACA,KAAA,CAAAC,CAAAA,CAAQ,GACR,KAAA,CAAAC,CAAAA,CAAQ,SACV,CAAA,CAAoB,CAClB,IAAMC,CAAAA,CAAeC,YAAAA,CAAuB,IAAI,EAC1CC,CAAAA,CAAcD,YAAAA,CAA8B,IAAI,CAAA,CAEtD,OAAAE,eAAAA,CAAU,IAAM,CACd,IAAMC,EAAYJ,CAAAA,CAAa,OAAA,CAC/B,GAAI,CAACI,EAAW,OAEhB,IAAMC,CAAAA,CAAQ,uEAAA,CACRC,EAAeV,CAAAA,CACjBW,CAAAA,CAAY,CAAA,CAEVC,CAAAA,CAAU,IAAM,CASpB,GARAJ,EAAU,SAAA,CAAYE,CAAAA,CACnB,MAAM,EAAE,CAAA,CACR,GAAA,CAAI,CAACG,EAAMC,CAAAA,GACNA,CAAAA,CAAQH,CAAAA,CAAkBD,CAAAA,CAAaI,CAAK,CAAA,CACzCL,CAAAA,CAAM,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,CAAIA,CAAAA,CAAM,MAAM,CAAC,CACtD,CAAA,CACA,IAAA,CAAK,EAAE,EAENE,CAAAA,EAAaD,CAAAA,CAAa,MAAA,CAAQ,CAChCJ,EAAY,OAAA,EAAS,aAAA,CAAcA,CAAAA,CAAY,OAAO,EAC1D,MACF,CAEAK,GAAa,CAAA,CAAI,EACnB,EAEA,OAAAL,CAAAA,CAAY,OAAA,CAAU,WAAA,CAAYM,EAASV,CAAK,CAAA,CAEzC,IAAM,CACPI,EAAY,OAAA,EAAS,aAAA,CAAcA,CAAAA,CAAY,OAAO,EAC5D,CACF,CAAA,CAAG,CAACN,CAAAA,CAAME,CAAK,CAAC,CAAA,CAGda,cAAAA,CAAC,KAAA,CAAA,CACC,IAAKX,CAAAA,CACL,SAAA,CAAWT,CAAAA,CAAG,WAAA,CAAaM,CAAS,CAAA,CACpC,KAAA,CAAO,CAAE,KAAA,CAAAE,CAAM,CAAA,CAEd,QAAA,CAAAH,EACH,CAEJ,KAEOgB,CAAAA,CAAQjB","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MatrixTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n color?: string;\r\n}\r\n\r\nexport function MatrixText({ \r\n text, \r\n className,\r\n speed = 50,\r\n color = \"#22c55e\"\r\n}: MatrixTextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*\";\r\n const originalText = text;\r\n let iteration = 0;\r\n\r\n const animate = () => {\r\n container.innerText = originalText\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return originalText[index];\r\n return chars[Math.floor(Math.random() * chars.length)];\r\n })\r\n .join(\"\");\r\n\r\n if (iteration >= originalText.length) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return;\r\n }\r\n\r\n iteration += 1 / 3;\r\n };\r\n\r\n intervalRef.current = setInterval(animate, speed);\r\n\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, [text, speed]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"font-mono\", className)}\r\n style={{ color }}\r\n >\r\n {text}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MatrixText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useRef,useEffect}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function s(...r){return twMerge(clsx(r))}function M({text:r,className:f,speed:o=50,color:m="#22c55e"}){let i=useRef(null),t=useRef(null);return useEffect(()=>{let a=i.current;if(!a)return;let l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*",e=r,n=0,p=()=>{if(a.innerText=e.split("").map((h,c)=>c<n?e[c]:l[Math.floor(Math.random()*l.length)]).join(""),n>=e.length){t.current&&clearInterval(t.current);return}n+=1/3;};return t.current=setInterval(p,o),()=>{t.current&&clearInterval(t.current);}},[r,o]),jsx("div",{ref:i,className:s("font-mono",f),style:{color:m},children:r})}var C=M;export{M as MatrixText,C as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/matrix-text/index.tsx"],"names":["cn","inputs","twMerge","clsx","MatrixText","text","className","speed","color","containerRef","useRef","intervalRef","useEffect","container","chars","originalText","iteration","animate","char","index","jsx","matrix_text_default"],"mappings":"sIAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCOO,SAASG,CAAAA,CAAW,CACzB,KAAAC,CAAAA,CACA,SAAA,CAAAC,EACA,KAAA,CAAAC,CAAAA,CAAQ,GACR,KAAA,CAAAC,CAAAA,CAAQ,SACV,CAAA,CAAoB,CAClB,IAAMC,CAAAA,CAAeC,MAAAA,CAAuB,IAAI,EAC1CC,CAAAA,CAAcD,MAAAA,CAA8B,IAAI,CAAA,CAEtD,OAAAE,SAAAA,CAAU,IAAM,CACd,IAAMC,EAAYJ,CAAAA,CAAa,OAAA,CAC/B,GAAI,CAACI,EAAW,OAEhB,IAAMC,CAAAA,CAAQ,uEAAA,CACRC,EAAeV,CAAAA,CACjBW,CAAAA,CAAY,CAAA,CAEVC,CAAAA,CAAU,IAAM,CASpB,GARAJ,EAAU,SAAA,CAAYE,CAAAA,CACnB,MAAM,EAAE,CAAA,CACR,GAAA,CAAI,CAACG,EAAMC,CAAAA,GACNA,CAAAA,CAAQH,CAAAA,CAAkBD,CAAAA,CAAaI,CAAK,CAAA,CACzCL,CAAAA,CAAM,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,CAAIA,CAAAA,CAAM,MAAM,CAAC,CACtD,CAAA,CACA,IAAA,CAAK,EAAE,EAENE,CAAAA,EAAaD,CAAAA,CAAa,MAAA,CAAQ,CAChCJ,EAAY,OAAA,EAAS,aAAA,CAAcA,CAAAA,CAAY,OAAO,EAC1D,MACF,CAEAK,GAAa,CAAA,CAAI,EACnB,EAEA,OAAAL,CAAAA,CAAY,OAAA,CAAU,WAAA,CAAYM,EAASV,CAAK,CAAA,CAEzC,IAAM,CACPI,EAAY,OAAA,EAAS,aAAA,CAAcA,CAAAA,CAAY,OAAO,EAC5D,CACF,CAAA,CAAG,CAACN,CAAAA,CAAME,CAAK,CAAC,CAAA,CAGda,GAAAA,CAAC,KAAA,CAAA,CACC,IAAKX,CAAAA,CACL,SAAA,CAAWT,CAAAA,CAAG,WAAA,CAAaM,CAAS,CAAA,CACpC,KAAA,CAAO,CAAE,KAAA,CAAAE,CAAM,CAAA,CAEd,QAAA,CAAAH,EACH,CAEJ,KAEOgB,CAAAA,CAAQjB","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface MatrixTextProps {\r\n text: string;\r\n className?: string;\r\n speed?: number;\r\n color?: string;\r\n}\r\n\r\nexport function MatrixText({ \r\n text, \r\n className,\r\n speed = 50,\r\n color = \"#22c55e\"\r\n}: MatrixTextProps) {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*\";\r\n const originalText = text;\r\n let iteration = 0;\r\n\r\n const animate = () => {\r\n container.innerText = originalText\r\n .split(\"\")\r\n .map((char, index) => {\r\n if (index < iteration) return originalText[index];\r\n return chars[Math.floor(Math.random() * chars.length)];\r\n })\r\n .join(\"\");\r\n\r\n if (iteration >= originalText.length) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return;\r\n }\r\n\r\n iteration += 1 / 3;\r\n };\r\n\r\n intervalRef.current = setInterval(animate, speed);\r\n\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, [text, speed]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"font-mono\", className)}\r\n style={{ color }}\r\n >\r\n {text}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MatrixText;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var react=require('react'),framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function r(...t){return tailwindMerge.twMerge(clsx.clsx(t))}function y({isOpen:t,onClose:o,children:l,className:c,title:n}){return react.useEffect(()=>{let a=d=>{d.key==="Escape"&&o();};return t&&(document.addEventListener("keydown",a),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",a),document.body.style.overflow="unset";}},[t,o]),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:t&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(framerMotion.motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:o,className:"fixed inset-0 bg-black/50 z-50"}),jsxRuntime.jsxs(framerMotion.motion.div,{initial:{opacity:0,scale:.95,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:20},transition:{type:"spring",damping:25,stiffness:300},className:r("fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-50","w-full max-w-md p-6 rounded-xl","bg-white dark:bg-zinc-900","shadow-xl",c),children:[n&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between mb-4",children:[jsxRuntime.jsx("h2",{className:"text-lg font-semibold",children:n}),jsxRuntime.jsx("button",{onClick:o,className:"p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors",children:jsxRuntime.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),l]})]})})}var N=y;exports.Modal=y;exports.default=N;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/modal/index.tsx"],"names":["cn","inputs","twMerge","clsx","Modal","isOpen","onClose","children","className","title","useEffect","handleEscape","e","jsx","AnimatePresence","jsxs","Fragment","motion","modal_default"],"mappings":"4OAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCSO,SAASG,CAAAA,CAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAAC,EAAS,QAAA,CAAAC,CAAAA,CAAU,SAAA,CAAAC,CAAAA,CAAW,KAAA,CAAAC,CAAM,CAAA,CAAe,CACjF,OAAAC,eAAAA,CAAU,IAAM,CACd,IAAMC,CAAAA,CAAgBC,GAAqB,CACrCA,CAAAA,CAAE,GAAA,GAAQ,QAAA,EAAUN,CAAAA,GAC1B,EACA,OAAID,CAAAA,GACF,QAAA,CAAS,gBAAA,CAAiB,SAAA,CAAWM,CAAY,EACjD,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,QAAA,CAAW,QAAA,CAAA,CAE1B,IAAM,CACX,QAAA,CAAS,mBAAA,CAAoB,SAAA,CAAWA,CAAY,CAAA,CACpD,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,CAAW,QACjC,CACF,CAAA,CAAG,CAACN,CAAAA,CAAQC,CAAO,CAAC,CAAA,CAGlBO,cAAAA,CAACC,4BAAAA,CAAA,CACE,QAAA,CAAAT,GACCU,eAAAA,CAAAC,mBAAAA,CAAA,CACE,QAAA,CAAA,CAAAH,cAAAA,CAACI,mBAAAA,CAAO,GAAA,CAAP,CACC,OAAA,CAAS,CAAE,OAAA,CAAS,CAAE,CAAA,CACtB,OAAA,CAAS,CAAE,OAAA,CAAS,CAAE,CAAA,CACtB,IAAA,CAAM,CAAE,OAAA,CAAS,CAAE,CAAA,CACnB,OAAA,CAASX,CAAAA,CACT,SAAA,CAAU,gCAAA,CACZ,CAAA,CACAS,gBAACE,mBAAAA,CAAO,GAAA,CAAP,CACC,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,GAAA,CAAM,CAAA,CAAG,EAAG,CAAA,CAC1C,OAAA,CAAS,CAAE,QAAS,CAAA,CAAG,KAAA,CAAO,CAAA,CAAG,CAAA,CAAG,CAAE,CAAA,CACtC,KAAM,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,GAAA,CAAM,CAAA,CAAG,EAAG,CAAA,CACvC,UAAA,CAAY,CAAE,IAAA,CAAM,QAAA,CAAU,OAAA,CAAS,EAAA,CAAI,SAAA,CAAW,GAAI,CAAA,CAC1D,SAAA,CAAWjB,CAAAA,CACT,+DAAA,CACA,gCAAA,CACA,4BACA,WAAA,CACAQ,CACF,CAAA,CAEC,QAAA,CAAA,CAAAC,CAAAA,EACCM,eAAAA,CAAC,OAAI,SAAA,CAAU,wCAAA,CACb,QAAA,CAAA,CAAAF,cAAAA,CAAC,IAAA,CAAA,CAAG,SAAA,CAAU,wBAAyB,QAAA,CAAAJ,CAAAA,CAAM,CAAA,CAC7CI,cAAAA,CAAC,QAAA,CAAA,CACC,OAAA,CAASP,CAAAA,CACT,SAAA,CAAU,2EAAA,CAEV,QAAA,CAAAO,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,SAAA,CAAU,KAAK,MAAA,CAAO,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,WAAA,CACjE,QAAA,CAAAA,eAAC,MAAA,CAAA,CAAK,aAAA,CAAc,OAAA,CAAQ,cAAA,CAAe,OAAA,CAAQ,WAAA,CAAa,EAAG,CAAA,CAAE,sBAAA,CAAuB,CAAA,CAC9F,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAEDN,CAAAA,CAAAA,CACH,CAAA,CAAA,CACF,CAAA,CAEJ,CAEJ,CAEA,IAAOW,CAAAA,CAAQd","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\nexport function Modal({ isOpen, onClose, children, className, title }: ModalProps) {\r\n useEffect(() => {\r\n const handleEscape = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n if (isOpen) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"unset\";\r\n };\r\n }, [isOpen, onClose]);\r\n\r\n return (\r\n <AnimatePresence>\r\n {isOpen && (\r\n <>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n onClick={onClose}\r\n className=\"fixed inset-0 bg-black/50 z-50\"\r\n />\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: 20 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: 20 }}\r\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\r\n className={cn(\r\n \"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-50\",\r\n \"w-full max-w-md p-6 rounded-xl\",\r\n \"bg-white dark:bg-zinc-900\",\r\n \"shadow-xl\",\r\n className\r\n )}\r\n >\r\n {title && (\r\n <div className=\"flex items-center justify-between mb-4\">\r\n <h2 className=\"text-lg font-semibold\">{title}</h2>\r\n <button\r\n onClick={onClose}\r\n className=\"p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors\"\r\n >\r\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n )}\r\n {children}\r\n </motion.div>\r\n </>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useEffect}from'react';import {AnimatePresence,motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';function r(...t){return twMerge(clsx(t))}function y({isOpen:t,onClose:o,children:l,className:c,title:n}){return useEffect(()=>{let a=d=>{d.key==="Escape"&&o();};return t&&(document.addEventListener("keydown",a),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",a),document.body.style.overflow="unset";}},[t,o]),jsx(AnimatePresence,{children:t&&jsxs(Fragment,{children:[jsx(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:o,className:"fixed inset-0 bg-black/50 z-50"}),jsxs(motion.div,{initial:{opacity:0,scale:.95,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:20},transition:{type:"spring",damping:25,stiffness:300},className:r("fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-50","w-full max-w-md p-6 rounded-xl","bg-white dark:bg-zinc-900","shadow-xl",c),children:[n&&jsxs("div",{className:"flex items-center justify-between mb-4",children:[jsx("h2",{className:"text-lg font-semibold",children:n}),jsx("button",{onClick:o,className:"p-1 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors",children:jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),l]})]})})}var N=y;export{y as Modal,N as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map