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 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/tooltip-animated/index.tsx"],"names":["cn","inputs","twMerge","clsx","TooltipAnimated","content","children","position","delay","animation","className","isVisible","setIsVisible","useState","timeoutRef","useRef","showTooltip","hideTooltip","getPositionClasses","getAnimationProps","offsets","x","y","jsxs","jsx","AnimatePresence","motion","tooltip_animated_default"],"mappings":"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","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, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipAnimatedProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n animation?: \"fade\" | \"slide\" | \"bounce\" | \"scale\";\r\n className?: string;\r\n}\r\n\r\nexport function TooltipAnimated({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 200,\r\n animation = \"slide\",\r\n className,\r\n}: TooltipAnimatedProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-3\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-3\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-3\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-3\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n const getAnimationProps = () => {\r\n const slideOffset = 10;\r\n const offsets = { top: { y: slideOffset }, bottom: { y: -slideOffset }, left: { x: slideOffset }, right: { x: -slideOffset } };\r\n const { x = 0, y = 0 } = offsets[position];\r\n\r\n const animations = {\r\n fade: { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } },\r\n scale: { initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 } },\r\n bounce: { initial: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.3, y: position === \"top\" ? 10 : -10 } },\r\n slide: { initial: { opacity: 0, x, y }, animate: { opacity: 1, x: 0, y: 0 }, exit: { opacity: 0, x, y } },\r\n };\r\n return { ...animations[animation], transition: { type: \"spring\", stiffness: 300, damping: 25 } };\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div {...getAnimationProps()} className={cn(\"absolute z-50 px-4 py-2 text-sm bg-popover border border-border rounded-xl shadow-lg whitespace-nowrap backdrop-blur-sm\", getPositionClasses())}>\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipAnimated;\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 o(...t){return tailwindMerge.twMerge(clsx.clsx(t))}function y({content:t,children:n,position:r="top",delay:l=300,className:a}){let[m,i]=react.useState(false),e=react.useRef(void 0),p=()=>{e.current=setTimeout(()=>i(true),l);},c=()=>{e.current&&clearTimeout(e.current),i(false);},u=()=>({top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"})[r];return jsxRuntime.jsxs("div",{className:o("relative inline-block",a),onMouseEnter:p,onMouseLeave:c,children:[n,jsxRuntime.jsx(framerMotion.AnimatePresence,{children:m&&jsxRuntime.jsx(framerMotion.motion.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.15},className:o("absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap",u()),children:t})})]})}var C=y;exports.TooltipMinimal=y;exports.default=C;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/tooltip-minimal/index.tsx"],"names":["cn","inputs","twMerge","clsx","TooltipMinimal","content","children","position","delay","className","isVisible","setIsVisible","useState","timeoutRef","useRef","showTooltip","hideTooltip","getPositionClasses","jsxs","jsx","AnimatePresence","motion","tooltip_minimal_default"],"mappings":"4OAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCSO,SAASG,EAAe,CAC7B,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CAAW,KAAA,CACX,KAAA,CAAAC,EAAQ,GAAA,CACR,SAAA,CAAAC,CACF,CAAA,CAAwB,CACtB,GAAM,CAACC,EAAWC,CAAY,CAAA,CAAIC,eAAS,KAAK,CAAA,CAC1CC,CAAAA,CAAaC,YAAAA,CAAuB,MAAS,CAAA,CAE7CC,CAAAA,CAAc,IAAM,CACxBF,CAAAA,CAAW,QAAU,UAAA,CAAW,IAAMF,CAAAA,CAAa,IAAI,EAAGH,CAAK,EACjE,EAEMQ,CAAAA,CAAc,IAAM,CACpBH,CAAAA,CAAW,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAW,OAAO,CAAA,CACvDF,CAAAA,CAAa,KAAK,EACpB,EAEMM,CAAAA,CAAqB,IAAA,CACP,CAChB,GAAA,CAAK,6CACL,MAAA,CAAQ,yCAAA,CACR,KAAM,0CAAA,CACN,KAAA,CAAO,yCACT,CAAA,EACiBV,CAAQ,CAAA,CAG3B,OACEW,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAWlB,EAAG,uBAAA,CAAyBS,CAAS,EAAG,YAAA,CAAcM,CAAAA,CAAa,YAAA,CAAcC,CAAAA,CAC9F,UAAAV,CAAAA,CACDa,cAAAA,CAACC,6BAAA,CACE,QAAA,CAAAV,GACCS,cAAAA,CAACE,mBAAAA,CAAO,GAAA,CAAP,CACC,QAAS,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,GAAK,CAAA,CACnC,OAAA,CAAS,CAAE,OAAA,CAAS,EAAG,KAAA,CAAO,CAAE,EAChC,IAAA,CAAM,CAAE,QAAS,CAAA,CAAG,KAAA,CAAO,GAAK,CAAA,CAChC,WAAY,CAAE,QAAA,CAAU,GAAK,CAAA,CAC7B,SAAA,CAAWrB,EAAG,wGAAA,CAA0GiB,CAAAA,EAAoB,CAAA,CAE3I,SAAAZ,CAAAA,CACH,CAAA,CAEJ,GACF,CAEJ,KAEOiB,CAAAA,CAAQlB","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, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipMinimalProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipMinimal({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 300,\r\n className,\r\n}: TooltipMinimalProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\"absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap\", getPositionClasses())}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipMinimal;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useState,useRef}from'react';import {AnimatePresence,motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function o(...t){return twMerge(clsx(t))}function y({content:t,children:n,position:r="top",delay:l=300,className:a}){let[m,i]=useState(false),e=useRef(void 0),p=()=>{e.current=setTimeout(()=>i(true),l);},c=()=>{e.current&&clearTimeout(e.current),i(false);},u=()=>({top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"})[r];return jsxs("div",{className:o("relative inline-block",a),onMouseEnter:p,onMouseLeave:c,children:[n,jsx(AnimatePresence,{children:m&&jsx(motion.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.15},className:o("absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap",u()),children:t})})]})}var C=y;export{y as TooltipMinimal,C as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/tooltip-minimal/index.tsx"],"names":["cn","inputs","twMerge","clsx","TooltipMinimal","content","children","position","delay","className","isVisible","setIsVisible","useState","timeoutRef","useRef","showTooltip","hideTooltip","getPositionClasses","jsxs","jsx","AnimatePresence","motion","tooltip_minimal_default"],"mappings":"6LAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCSO,SAASG,EAAe,CAC7B,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CAAW,KAAA,CACX,KAAA,CAAAC,EAAQ,GAAA,CACR,SAAA,CAAAC,CACF,CAAA,CAAwB,CACtB,GAAM,CAACC,EAAWC,CAAY,CAAA,CAAIC,SAAS,KAAK,CAAA,CAC1CC,CAAAA,CAAaC,MAAAA,CAAuB,MAAS,CAAA,CAE7CC,CAAAA,CAAc,IAAM,CACxBF,CAAAA,CAAW,QAAU,UAAA,CAAW,IAAMF,CAAAA,CAAa,IAAI,EAAGH,CAAK,EACjE,EAEMQ,CAAAA,CAAc,IAAM,CACpBH,CAAAA,CAAW,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAW,OAAO,CAAA,CACvDF,CAAAA,CAAa,KAAK,EACpB,EAEMM,CAAAA,CAAqB,IAAA,CACP,CAChB,GAAA,CAAK,6CACL,MAAA,CAAQ,yCAAA,CACR,KAAM,0CAAA,CACN,KAAA,CAAO,yCACT,CAAA,EACiBV,CAAQ,CAAA,CAG3B,OACEW,KAAC,KAAA,CAAA,CAAI,SAAA,CAAWlB,EAAG,uBAAA,CAAyBS,CAAS,EAAG,YAAA,CAAcM,CAAAA,CAAa,YAAA,CAAcC,CAAAA,CAC9F,UAAAV,CAAAA,CACDa,GAAAA,CAACC,gBAAA,CACE,QAAA,CAAAV,GACCS,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CACC,QAAS,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,GAAK,CAAA,CACnC,OAAA,CAAS,CAAE,OAAA,CAAS,EAAG,KAAA,CAAO,CAAE,EAChC,IAAA,CAAM,CAAE,QAAS,CAAA,CAAG,KAAA,CAAO,GAAK,CAAA,CAChC,WAAY,CAAE,QAAA,CAAU,GAAK,CAAA,CAC7B,SAAA,CAAWrB,EAAG,wGAAA,CAA0GiB,CAAAA,EAAoB,CAAA,CAE3I,SAAAZ,CAAAA,CACH,CAAA,CAEJ,GACF,CAEJ,KAEOiB,CAAAA,CAAQlB","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, useRef } from \"react\";\r\nimport { motion, AnimatePresence } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TooltipMinimalProps {\r\n content: string;\r\n children: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n delay?: number;\r\n className?: string;\r\n}\r\n\r\nexport function TooltipMinimal({\r\n content,\r\n children,\r\n position = \"top\",\r\n delay = 300,\r\n className,\r\n}: TooltipMinimalProps) {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const timeoutRef = useRef<NodeJS.Timeout>(undefined);\r\n\r\n const showTooltip = () => {\r\n timeoutRef.current = setTimeout(() => setIsVisible(true), delay);\r\n };\r\n\r\n const hideTooltip = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n setIsVisible(false);\r\n };\r\n\r\n const getPositionClasses = () => {\r\n const positions = {\r\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\r\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\r\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\r\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\r\n };\r\n return positions[position];\r\n };\r\n\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} onMouseEnter={showTooltip} onMouseLeave={hideTooltip}>\r\n {children}\r\n <AnimatePresence>\r\n {isVisible && (\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\"absolute z-50 px-3 py-2 text-sm bg-popover border border-border rounded-lg shadow-md whitespace-nowrap\", getPositionClasses())}\r\n >\r\n {content}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TooltipMinimal;\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 d(...u){return tailwindMerge.twMerge(clsx.clsx(u))}function A({sentence:u="True Focus",manualMode:s=false,blurAmount:v=5,borderColor:x="green",glowColor:w="rgba(0, 255, 0, 0.6)",animationDuration:o=.5,pauseBetweenAnimations:m=1,className:R}){let c=u.split(" "),[r,i]=react.useState(0),[y,F]=react.useState(null),a=react.useRef(null),f=react.useRef([]),[l,C]=react.useState({x:0,y:0,width:0,height:0});return react.useEffect(()=>{if(!s){let n=setInterval(()=>{i(e=>(e+1)%c.length);},(o+m)*1e3);return ()=>clearInterval(n)}},[s,o,m,c.length]),react.useEffect(()=>{let n=()=>{if(r===null||r===-1||!f.current[r]||!a.current)return;let e=a.current.getBoundingClientRect(),t=f.current[r].getBoundingClientRect();C({x:t.left-e.left,y:t.top-e.top,width:t.width,height:t.height});};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[r,c.length]),jsxRuntime.jsxs("div",{ref:a,className:d("relative flex flex-wrap gap-3 p-12 items-center justify-center",R),children:[c.map((n,e)=>{let t=e===r;return jsxRuntime.jsx("span",{ref:E=>{f.current[e]=E;},className:"text-4xl font-bold relative z-10",style:{filter:t?"blur(0px)":`blur(${v}px)`,transition:`all ${o}s ease`,color:t?"#000":"#666",transform:t?"scale(1.05)":"scale(1)"},onMouseEnter:()=>s&&(F(e),i(e)),onMouseLeave:()=>s&&i(y??0),children:n},e)}),jsxRuntime.jsx(framerMotion.motion.div,{className:"absolute pointer-events-none",animate:{x:l.x,y:l.y,width:l.width,height:l.height,opacity:r>=0?1:0},transition:{duration:o},style:{border:`2px solid ${x}`,boxShadow:`0 0 10px ${w}`,borderRadius:4}})]})}var P=A;exports.TrueFocus=A;exports.default=P;//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/true-focus/index.tsx"],"names":["cn","inputs","twMerge","clsx","TrueFocus","sentence","manualMode","blurAmount","borderColor","glowColor","animationDuration","pauseBetweenAnimations","className","words","currentIndex","setCurrentIndex","useState","lastActiveIndex","setLastActiveIndex","containerRef","useRef","wordRefs","focusRect","setFocusRect","useEffect","interval","prev","updateFocusRect","parentRect","activeRect","jsxs","word","index","isActive","jsx","el","motion","true_focus_default"],"mappings":"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","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, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TrueFocusProps {\r\n sentence?: string;\r\n manualMode?: boolean;\r\n blurAmount?: number;\r\n borderColor?: string;\r\n glowColor?: string;\r\n animationDuration?: number;\r\n pauseBetweenAnimations?: number;\r\n className?: string;\r\n}\r\n\r\ninterface FocusRect {\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport function TrueFocus({\r\n sentence = \"True Focus\",\r\n manualMode = false,\r\n blurAmount = 5,\r\n borderColor = \"green\",\r\n glowColor = \"rgba(0, 255, 0, 0.6)\",\r\n animationDuration = 0.5,\r\n pauseBetweenAnimations = 1,\r\n className,\r\n}: TrueFocusProps) {\r\n const words = sentence.split(\" \");\r\n const [currentIndex, setCurrentIndex] = useState<number>(0);\r\n const [lastActiveIndex, setLastActiveIndex] = useState<number | null>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const wordRefs = useRef<(HTMLSpanElement | null)[]>([]);\r\n const [focusRect, setFocusRect] = useState<FocusRect>({ x: 0, y: 0, width: 0, height: 0 });\r\n\r\n useEffect(() => {\r\n if (!manualMode) {\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % words.length);\r\n }, (animationDuration + pauseBetweenAnimations) * 1000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [manualMode, animationDuration, pauseBetweenAnimations, words.length]);\r\n\r\n useEffect(() => {\r\n const updateFocusRect = () => {\r\n if (currentIndex === null || currentIndex === -1) return;\r\n if (!wordRefs.current[currentIndex] || !containerRef.current) return;\r\n const parentRect = containerRef.current.getBoundingClientRect();\r\n const activeRect = wordRefs.current[currentIndex]!.getBoundingClientRect();\r\n setFocusRect({\r\n x: activeRect.left - parentRect.left,\r\n y: activeRect.top - parentRect.top,\r\n width: activeRect.width,\r\n height: activeRect.height,\r\n });\r\n };\r\n updateFocusRect();\r\n window.addEventListener(\"resize\", updateFocusRect);\r\n return () => window.removeEventListener(\"resize\", updateFocusRect);\r\n }, [currentIndex, words.length]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative flex flex-wrap gap-3 p-12 items-center justify-center\", className)}>\r\n {words.map((word, index) => {\r\n const isActive = index === currentIndex;\r\n return (\r\n <span\r\n key={index}\r\n ref={(el) => { wordRefs.current[index] = el; }}\r\n className=\"text-4xl font-bold relative z-10\"\r\n style={{\r\n filter: isActive ? \"blur(0px)\" : `blur(${blurAmount}px)`,\r\n transition: `all ${animationDuration}s ease`,\r\n color: isActive ? \"#000\" : \"#666\",\r\n transform: isActive ? \"scale(1.05)\" : \"scale(1)\",\r\n }}\r\n onMouseEnter={() => manualMode && (setLastActiveIndex(index), setCurrentIndex(index))}\r\n onMouseLeave={() => manualMode && setCurrentIndex(lastActiveIndex ?? 0)}\r\n >\r\n {word}\r\n </span>\r\n );\r\n })}\r\n <motion.div\r\n className=\"absolute pointer-events-none\"\r\n animate={{ x: focusRect.x, y: focusRect.y, width: focusRect.width, height: focusRect.height, opacity: currentIndex >= 0 ? 1 : 0 }}\r\n transition={{ duration: animationDuration }}\r\n style={{ border: `2px solid ${borderColor}`, boxShadow: `0 0 10px ${glowColor}`, borderRadius: 4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default TrueFocus;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {useState,useRef,useEffect}from'react';import {motion}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';function d(...u){return twMerge(clsx(u))}function A({sentence:u="True Focus",manualMode:s=false,blurAmount:v=5,borderColor:x="green",glowColor:w="rgba(0, 255, 0, 0.6)",animationDuration:o=.5,pauseBetweenAnimations:m=1,className:R}){let c=u.split(" "),[r,i]=useState(0),[y,F]=useState(null),a=useRef(null),f=useRef([]),[l,C]=useState({x:0,y:0,width:0,height:0});return useEffect(()=>{if(!s){let n=setInterval(()=>{i(e=>(e+1)%c.length);},(o+m)*1e3);return ()=>clearInterval(n)}},[s,o,m,c.length]),useEffect(()=>{let n=()=>{if(r===null||r===-1||!f.current[r]||!a.current)return;let e=a.current.getBoundingClientRect(),t=f.current[r].getBoundingClientRect();C({x:t.left-e.left,y:t.top-e.top,width:t.width,height:t.height});};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[r,c.length]),jsxs("div",{ref:a,className:d("relative flex flex-wrap gap-3 p-12 items-center justify-center",R),children:[c.map((n,e)=>{let t=e===r;return jsx("span",{ref:E=>{f.current[e]=E;},className:"text-4xl font-bold relative z-10",style:{filter:t?"blur(0px)":`blur(${v}px)`,transition:`all ${o}s ease`,color:t?"#000":"#666",transform:t?"scale(1.05)":"scale(1)"},onMouseEnter:()=>s&&(F(e),i(e)),onMouseLeave:()=>s&&i(y??0),children:n},e)}),jsx(motion.div,{className:"absolute pointer-events-none",animate:{x:l.x,y:l.y,width:l.width,height:l.height,opacity:r>=0?1:0},transition:{duration:o},style:{border:`2px solid ${x}`,boxShadow:`0 0 10px ${w}`,borderRadius:4}})]})}var P=A;export{A as TrueFocus,P as default};//# sourceMappingURL=index.mjs.map
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/true-focus/index.tsx"],"names":["cn","inputs","twMerge","clsx","TrueFocus","sentence","manualMode","blurAmount","borderColor","glowColor","animationDuration","pauseBetweenAnimations","className","words","currentIndex","setCurrentIndex","useState","lastActiveIndex","setLastActiveIndex","containerRef","useRef","wordRefs","focusRect","setFocusRect","useEffect","interval","prev","updateFocusRect","parentRect","activeRect","jsxs","word","index","isActive","jsx","el","motion","true_focus_default"],"mappings":"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","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, useState } from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { cn } from \"../utils/cn\";\r\n\r\ninterface TrueFocusProps {\r\n sentence?: string;\r\n manualMode?: boolean;\r\n blurAmount?: number;\r\n borderColor?: string;\r\n glowColor?: string;\r\n animationDuration?: number;\r\n pauseBetweenAnimations?: number;\r\n className?: string;\r\n}\r\n\r\ninterface FocusRect {\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport function TrueFocus({\r\n sentence = \"True Focus\",\r\n manualMode = false,\r\n blurAmount = 5,\r\n borderColor = \"green\",\r\n glowColor = \"rgba(0, 255, 0, 0.6)\",\r\n animationDuration = 0.5,\r\n pauseBetweenAnimations = 1,\r\n className,\r\n}: TrueFocusProps) {\r\n const words = sentence.split(\" \");\r\n const [currentIndex, setCurrentIndex] = useState<number>(0);\r\n const [lastActiveIndex, setLastActiveIndex] = useState<number | null>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const wordRefs = useRef<(HTMLSpanElement | null)[]>([]);\r\n const [focusRect, setFocusRect] = useState<FocusRect>({ x: 0, y: 0, width: 0, height: 0 });\r\n\r\n useEffect(() => {\r\n if (!manualMode) {\r\n const interval = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % words.length);\r\n }, (animationDuration + pauseBetweenAnimations) * 1000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [manualMode, animationDuration, pauseBetweenAnimations, words.length]);\r\n\r\n useEffect(() => {\r\n const updateFocusRect = () => {\r\n if (currentIndex === null || currentIndex === -1) return;\r\n if (!wordRefs.current[currentIndex] || !containerRef.current) return;\r\n const parentRect = containerRef.current.getBoundingClientRect();\r\n const activeRect = wordRefs.current[currentIndex]!.getBoundingClientRect();\r\n setFocusRect({\r\n x: activeRect.left - parentRect.left,\r\n y: activeRect.top - parentRect.top,\r\n width: activeRect.width,\r\n height: activeRect.height,\r\n });\r\n };\r\n updateFocusRect();\r\n window.addEventListener(\"resize\", updateFocusRect);\r\n return () => window.removeEventListener(\"resize\", updateFocusRect);\r\n }, [currentIndex, words.length]);\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative flex flex-wrap gap-3 p-12 items-center justify-center\", className)}>\r\n {words.map((word, index) => {\r\n const isActive = index === currentIndex;\r\n return (\r\n <span\r\n key={index}\r\n ref={(el) => { wordRefs.current[index] = el; }}\r\n className=\"text-4xl font-bold relative z-10\"\r\n style={{\r\n filter: isActive ? \"blur(0px)\" : `blur(${blurAmount}px)`,\r\n transition: `all ${animationDuration}s ease`,\r\n color: isActive ? \"#000\" : \"#666\",\r\n transform: isActive ? \"scale(1.05)\" : \"scale(1)\",\r\n }}\r\n onMouseEnter={() => manualMode && (setLastActiveIndex(index), setCurrentIndex(index))}\r\n onMouseLeave={() => manualMode && setCurrentIndex(lastActiveIndex ?? 0)}\r\n >\r\n {word}\r\n </span>\r\n );\r\n })}\r\n <motion.div\r\n className=\"absolute pointer-events-none\"\r\n animate={{ x: focusRect.x, y: focusRect.y, width: focusRect.width, height: focusRect.height, opacity: currentIndex >= 0 ? 1 : 0 }}\r\n transition={{ duration: animationDuration }}\r\n style={{ border: `2px solid ${borderColor}`, boxShadow: `0 0 10px ${glowColor}`, borderRadius: 4 }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default TrueFocus;\r\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bynana-ui",
3
- "version": "1.0.0",
4
- "description": "200+ Beautiful React UI components built with Tailwind CSS and Framer Motion",
3
+ "version": "1.3.0",
4
+ "description": "90+ Beautiful React UI components built with Tailwind CSS and Framer Motion",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
@@ -11,152 +11,106 @@
11
11
  "require": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts"
13
13
  },
14
- "./shine-button": {
15
- "import": "./dist/shine-button/index.mjs",
16
- "require": "./dist/shine-button/index.js",
17
- "types": "./dist/shine-button/index.d.ts"
18
- },
19
- "./ripple-button": {
20
- "import": "./dist/ripple-button/index.mjs",
21
- "require": "./dist/ripple-button/index.js",
22
- "types": "./dist/ripple-button/index.d.ts"
23
- },
24
- "./magnetic-button": {
25
- "import": "./dist/magnetic-button/index.mjs",
26
- "require": "./dist/magnetic-button/index.js",
27
- "types": "./dist/magnetic-button/index.d.ts"
28
- },
29
- "./bounce-button": {
30
- "import": "./dist/bounce-button/index.mjs",
31
- "require": "./dist/bounce-button/index.js",
32
- "types": "./dist/bounce-button/index.d.ts"
33
- },
34
- "./glow-button": {
35
- "import": "./dist/glow-button/index.mjs",
36
- "require": "./dist/glow-button/index.js",
37
- "types": "./dist/glow-button/index.d.ts"
38
- },
39
- "./pulse-button": {
40
- "import": "./dist/pulse-button/index.mjs",
41
- "require": "./dist/pulse-button/index.js",
42
- "types": "./dist/pulse-button/index.d.ts"
43
- },
44
- "./gradient-text": {
45
- "import": "./dist/gradient-text/index.mjs",
46
- "require": "./dist/gradient-text/index.js",
47
- "types": "./dist/gradient-text/index.d.ts"
48
- },
49
- "./shimmer-text": {
50
- "import": "./dist/shimmer-text/index.mjs",
51
- "require": "./dist/shimmer-text/index.js",
52
- "types": "./dist/shimmer-text/index.d.ts"
53
- },
54
- "./glitch-text": {
55
- "import": "./dist/glitch-text/index.mjs",
56
- "require": "./dist/glitch-text/index.js",
57
- "types": "./dist/glitch-text/index.d.ts"
58
- },
59
- "./bounce-text": {
60
- "import": "./dist/bounce-text/index.mjs",
61
- "require": "./dist/bounce-text/index.js",
62
- "types": "./dist/bounce-text/index.d.ts"
63
- },
64
- "./blur-text": {
65
- "import": "./dist/blur-text/index.mjs",
66
- "require": "./dist/blur-text/index.js",
67
- "types": "./dist/blur-text/index.d.ts"
68
- },
69
- "./typewriter": {
70
- "import": "./dist/typewriter/index.mjs",
71
- "require": "./dist/typewriter/index.js",
72
- "types": "./dist/typewriter/index.d.ts"
73
- },
74
- "./wave-text": {
75
- "import": "./dist/wave-text/index.mjs",
76
- "require": "./dist/wave-text/index.js",
77
- "types": "./dist/wave-text/index.d.ts"
78
- },
79
- "./flip-text": {
80
- "import": "./dist/flip-text/index.mjs",
81
- "require": "./dist/flip-text/index.js",
82
- "types": "./dist/flip-text/index.d.ts"
83
- },
84
- "./glass-card": {
85
- "import": "./dist/glass-card/index.mjs",
86
- "require": "./dist/glass-card/index.js",
87
- "types": "./dist/glass-card/index.d.ts"
88
- },
89
- "./hover-card": {
90
- "import": "./dist/hover-card/index.mjs",
91
- "require": "./dist/hover-card/index.js",
92
- "types": "./dist/hover-card/index.d.ts"
93
- },
94
- "./card-flip": {
95
- "import": "./dist/card-flip/index.mjs",
96
- "require": "./dist/card-flip/index.js",
97
- "types": "./dist/card-flip/index.d.ts"
98
- },
99
- "./loading-dots": {
100
- "import": "./dist/loading-dots/index.mjs",
101
- "require": "./dist/loading-dots/index.js",
102
- "types": "./dist/loading-dots/index.d.ts"
103
- },
104
- "./loading-spinner": {
105
- "import": "./dist/loading-spinner/index.mjs",
106
- "require": "./dist/loading-spinner/index.js",
107
- "types": "./dist/loading-spinner/index.d.ts"
108
- },
109
- "./animated-list": {
110
- "import": "./dist/animated-list/index.mjs",
111
- "require": "./dist/animated-list/index.js",
112
- "types": "./dist/animated-list/index.d.ts"
113
- },
14
+ "./shine-button": { "import": "./dist/shine-button/index.mjs", "require": "./dist/shine-button/index.js", "types": "./dist/shine-button/index.d.ts" },
15
+ "./ripple-button": { "import": "./dist/ripple-button/index.mjs", "require": "./dist/ripple-button/index.js", "types": "./dist/ripple-button/index.d.ts" },
16
+ "./magnetic-button": { "import": "./dist/magnetic-button/index.mjs", "require": "./dist/magnetic-button/index.js", "types": "./dist/magnetic-button/index.d.ts" },
17
+ "./bounce-button": { "import": "./dist/bounce-button/index.mjs", "require": "./dist/bounce-button/index.js", "types": "./dist/bounce-button/index.d.ts" },
18
+ "./glow-button": { "import": "./dist/glow-button/index.mjs", "require": "./dist/glow-button/index.js", "types": "./dist/glow-button/index.d.ts" },
19
+ "./pulse-button": { "import": "./dist/pulse-button/index.mjs", "require": "./dist/pulse-button/index.js", "types": "./dist/pulse-button/index.d.ts" },
20
+ "./neon-button": { "import": "./dist/neon-button/index.mjs", "require": "./dist/neon-button/index.js", "types": "./dist/neon-button/index.d.ts" },
21
+ "./liquid-button": { "import": "./dist/liquid-button/index.mjs", "require": "./dist/liquid-button/index.js", "types": "./dist/liquid-button/index.d.ts" },
22
+ "./slide-button": { "import": "./dist/slide-button/index.mjs", "require": "./dist/slide-button/index.js", "types": "./dist/slide-button/index.d.ts" },
23
+ "./gradient-button": { "import": "./dist/gradient-button/index.mjs", "require": "./dist/gradient-button/index.js", "types": "./dist/gradient-button/index.d.ts" },
24
+ "./hold-button": { "import": "./dist/hold-button/index.mjs", "require": "./dist/hold-button/index.js", "types": "./dist/hold-button/index.d.ts" },
25
+ "./threed-button": { "import": "./dist/threed-button/index.mjs", "require": "./dist/threed-button/index.js", "types": "./dist/threed-button/index.d.ts" },
26
+ "./copy-button": { "import": "./dist/copy-button/index.mjs", "require": "./dist/copy-button/index.js", "types": "./dist/copy-button/index.d.ts" },
27
+ "./particle-button": { "import": "./dist/particle-button/index.mjs", "require": "./dist/particle-button/index.js", "types": "./dist/particle-button/index.d.ts" },
28
+ "./attract-button": { "import": "./dist/attract-button/index.mjs", "require": "./dist/attract-button/index.js", "types": "./dist/attract-button/index.d.ts" },
29
+ "./command-button": { "import": "./dist/command-button/index.mjs", "require": "./dist/command-button/index.js", "types": "./dist/command-button/index.d.ts" },
30
+ "./gradient-text": { "import": "./dist/gradient-text/index.mjs", "require": "./dist/gradient-text/index.js", "types": "./dist/gradient-text/index.d.ts" },
31
+ "./shimmer-text": { "import": "./dist/shimmer-text/index.mjs", "require": "./dist/shimmer-text/index.js", "types": "./dist/shimmer-text/index.d.ts" },
32
+ "./glitch-text": { "import": "./dist/glitch-text/index.mjs", "require": "./dist/glitch-text/index.js", "types": "./dist/glitch-text/index.d.ts" },
33
+ "./bounce-text": { "import": "./dist/bounce-text/index.mjs", "require": "./dist/bounce-text/index.js", "types": "./dist/bounce-text/index.d.ts" },
34
+ "./blur-text": { "import": "./dist/blur-text/index.mjs", "require": "./dist/blur-text/index.js", "types": "./dist/blur-text/index.d.ts" },
35
+ "./typewriter": { "import": "./dist/typewriter/index.mjs", "require": "./dist/typewriter/index.js", "types": "./dist/typewriter/index.d.ts" },
36
+ "./wave-text": { "import": "./dist/wave-text/index.mjs", "require": "./dist/wave-text/index.js", "types": "./dist/wave-text/index.d.ts" },
37
+ "./flip-text": { "import": "./dist/flip-text/index.mjs", "require": "./dist/flip-text/index.js", "types": "./dist/flip-text/index.d.ts" },
38
+ "./shiny-text": { "import": "./dist/shiny-text/index.mjs", "require": "./dist/shiny-text/index.js", "types": "./dist/shiny-text/index.d.ts" },
39
+ "./fuzzy-text": { "import": "./dist/fuzzy-text/index.mjs", "require": "./dist/fuzzy-text/index.js", "types": "./dist/fuzzy-text/index.d.ts" },
40
+ "./matrix-text": { "import": "./dist/matrix-text/index.mjs", "require": "./dist/matrix-text/index.js", "types": "./dist/matrix-text/index.d.ts" },
41
+ "./liquid-text": { "import": "./dist/liquid-text/index.mjs", "require": "./dist/liquid-text/index.js", "types": "./dist/liquid-text/index.d.ts" },
42
+ "./swoosh-text": { "import": "./dist/swoosh-text/index.mjs", "require": "./dist/swoosh-text/index.js", "types": "./dist/swoosh-text/index.d.ts" },
43
+ "./scrambled-text": { "import": "./dist/scrambled-text/index.mjs", "require": "./dist/scrambled-text/index.js", "types": "./dist/scrambled-text/index.d.ts" },
44
+ "./magnetic-text": { "import": "./dist/magnetic-text/index.mjs", "require": "./dist/magnetic-text/index.js", "types": "./dist/magnetic-text/index.d.ts" },
45
+ "./dynamic-text": { "import": "./dist/dynamic-text/index.mjs", "require": "./dist/dynamic-text/index.js", "types": "./dist/dynamic-text/index.d.ts" },
46
+ "./rotating-text": { "import": "./dist/rotating-text/index.mjs", "require": "./dist/rotating-text/index.js", "types": "./dist/rotating-text/index.d.ts" },
47
+ "./stagger-text": { "import": "./dist/stagger-text/index.mjs", "require": "./dist/stagger-text/index.js", "types": "./dist/stagger-text/index.d.ts" },
48
+ "./rainbow-text": { "import": "./dist/rainbow-text/index.mjs", "require": "./dist/rainbow-text/index.js", "types": "./dist/rainbow-text/index.d.ts" },
49
+ "./count-up": { "import": "./dist/count-up/index.mjs", "require": "./dist/count-up/index.js", "types": "./dist/count-up/index.d.ts" },
50
+ "./reveal-text": { "import": "./dist/reveal-text/index.mjs", "require": "./dist/reveal-text/index.js", "types": "./dist/reveal-text/index.d.ts" },
51
+ "./split-text": { "import": "./dist/split-text/index.mjs", "require": "./dist/split-text/index.js", "types": "./dist/split-text/index.d.ts" },
52
+ "./morph-text": { "import": "./dist/morph-text/index.mjs", "require": "./dist/morph-text/index.js", "types": "./dist/morph-text/index.d.ts" },
53
+ "./perspective-text": { "import": "./dist/perspective-text/index.mjs", "require": "./dist/perspective-text/index.js", "types": "./dist/perspective-text/index.d.ts" },
54
+ "./elastic-text": { "import": "./dist/elastic-text/index.mjs", "require": "./dist/elastic-text/index.js", "types": "./dist/elastic-text/index.d.ts" },
55
+ "./circular-text": { "import": "./dist/circular-text/index.mjs", "require": "./dist/circular-text/index.js", "types": "./dist/circular-text/index.d.ts" },
56
+ "./glowing-text": { "import": "./dist/glowing-text/index.mjs", "require": "./dist/glowing-text/index.js", "types": "./dist/glowing-text/index.d.ts" },
57
+ "./sliced-text": { "import": "./dist/sliced-text/index.mjs", "require": "./dist/sliced-text/index.js", "types": "./dist/sliced-text/index.d.ts" },
58
+ "./decrypted-text": { "import": "./dist/decrypted-text/index.mjs", "require": "./dist/decrypted-text/index.js", "types": "./dist/decrypted-text/index.d.ts" },
59
+ "./true-focus": { "import": "./dist/true-focus/index.mjs", "require": "./dist/true-focus/index.js", "types": "./dist/true-focus/index.d.ts" },
60
+ "./glass-card": { "import": "./dist/glass-card/index.mjs", "require": "./dist/glass-card/index.js", "types": "./dist/glass-card/index.d.ts" },
61
+ "./hover-card": { "import": "./dist/hover-card/index.mjs", "require": "./dist/hover-card/index.js", "types": "./dist/hover-card/index.d.ts" },
62
+ "./card-flip": { "import": "./dist/card-flip/index.mjs", "require": "./dist/card-flip/index.js", "types": "./dist/card-flip/index.d.ts" },
63
+ "./card": { "import": "./dist/card/index.mjs", "require": "./dist/card/index.js", "types": "./dist/card/index.d.ts" },
64
+ "./loading-dots": { "import": "./dist/loading-dots/index.mjs", "require": "./dist/loading-dots/index.js", "types": "./dist/loading-dots/index.d.ts" },
65
+ "./loading-spinner": { "import": "./dist/loading-spinner/index.mjs", "require": "./dist/loading-spinner/index.js", "types": "./dist/loading-spinner/index.d.ts" },
66
+ "./loading-bar": { "import": "./dist/loading-bar/index.mjs", "require": "./dist/loading-bar/index.js", "types": "./dist/loading-bar/index.d.ts" },
67
+ "./loading-pulse": { "import": "./dist/loading-pulse/index.mjs", "require": "./dist/loading-pulse/index.js", "types": "./dist/loading-pulse/index.d.ts" },
68
+ "./loading-bounce": { "import": "./dist/loading-bounce/index.mjs", "require": "./dist/loading-bounce/index.js", "types": "./dist/loading-bounce/index.d.ts" },
69
+ "./loading-flower": { "import": "./dist/loading-flower/index.mjs", "require": "./dist/loading-flower/index.js", "types": "./dist/loading-flower/index.d.ts" },
70
+ "./loading-geometric": { "import": "./dist/loading-geometric/index.mjs", "require": "./dist/loading-geometric/index.js", "types": "./dist/loading-geometric/index.d.ts" },
71
+ "./loading-morph": { "import": "./dist/loading-morph/index.mjs", "require": "./dist/loading-morph/index.js", "types": "./dist/loading-morph/index.d.ts" },
72
+ "./loading-rings": { "import": "./dist/loading-rings/index.mjs", "require": "./dist/loading-rings/index.js", "types": "./dist/loading-rings/index.d.ts" },
73
+ "./loading-text": { "import": "./dist/loading-text/index.mjs", "require": "./dist/loading-text/index.js", "types": "./dist/loading-text/index.d.ts" },
74
+ "./loading-words": { "import": "./dist/loading-words/index.mjs", "require": "./dist/loading-words/index.js", "types": "./dist/loading-words/index.d.ts" },
75
+ "./animated-list": { "import": "./dist/animated-list/index.mjs", "require": "./dist/animated-list/index.js", "types": "./dist/animated-list/index.d.ts" },
76
+ "./skeleton": { "import": "./dist/skeleton/index.mjs", "require": "./dist/skeleton/index.js", "types": "./dist/skeleton/index.d.ts" },
77
+ "./tooltip": { "import": "./dist/tooltip/index.mjs", "require": "./dist/tooltip/index.js", "types": "./dist/tooltip/index.d.ts" },
78
+ "./tooltip-minimal": { "import": "./dist/tooltip-minimal/index.mjs", "require": "./dist/tooltip-minimal/index.js", "types": "./dist/tooltip-minimal/index.d.ts" },
79
+ "./tooltip-animated": { "import": "./dist/tooltip-animated/index.mjs", "require": "./dist/tooltip-animated/index.js", "types": "./dist/tooltip-animated/index.d.ts" },
80
+ "./badge": { "import": "./dist/badge/index.mjs", "require": "./dist/badge/index.js", "types": "./dist/badge/index.d.ts" },
81
+ "./avatar": { "import": "./dist/avatar/index.mjs", "require": "./dist/avatar/index.js", "types": "./dist/avatar/index.d.ts" },
82
+ "./progress": { "import": "./dist/progress/index.mjs", "require": "./dist/progress/index.js", "types": "./dist/progress/index.d.ts" },
83
+ "./switch": { "import": "./dist/switch/index.mjs", "require": "./dist/switch/index.js", "types": "./dist/switch/index.d.ts" },
84
+ "./accordion": { "import": "./dist/accordion/index.mjs", "require": "./dist/accordion/index.js", "types": "./dist/accordion/index.d.ts" },
85
+ "./tabs": { "import": "./dist/tabs/index.mjs", "require": "./dist/tabs/index.js", "types": "./dist/tabs/index.d.ts" },
86
+ "./modal": { "import": "./dist/modal/index.mjs", "require": "./dist/modal/index.js", "types": "./dist/modal/index.d.ts" },
87
+ "./drawer": { "import": "./dist/drawer/index.mjs", "require": "./dist/drawer/index.js", "types": "./dist/drawer/index.d.ts" },
88
+ "./alert": { "import": "./dist/alert/index.mjs", "require": "./dist/alert/index.js", "types": "./dist/alert/index.d.ts" },
89
+ "./terminal": { "import": "./dist/terminal/index.mjs", "require": "./dist/terminal/index.js", "types": "./dist/terminal/index.d.ts" },
90
+ "./stepper": { "import": "./dist/stepper/index.mjs", "require": "./dist/stepper/index.js", "types": "./dist/stepper/index.d.ts" },
91
+ "./file-tree": { "import": "./dist/file-tree/index.mjs", "require": "./dist/file-tree/index.js", "types": "./dist/file-tree/index.d.ts" },
92
+ "./counter": { "import": "./dist/counter/index.mjs", "require": "./dist/counter/index.js", "types": "./dist/counter/index.d.ts" },
93
+ "./toolbar": { "import": "./dist/toolbar/index.mjs", "require": "./dist/toolbar/index.js", "types": "./dist/toolbar/index.d.ts" },
94
+ "./dock": { "import": "./dist/dock/index.mjs", "require": "./dist/dock/index.js", "types": "./dist/dock/index.d.ts" },
95
+ "./input": { "import": "./dist/input/index.mjs", "require": "./dist/input/index.js", "types": "./dist/input/index.d.ts" },
96
+ "./textarea": { "import": "./dist/textarea/index.mjs", "require": "./dist/textarea/index.js", "types": "./dist/textarea/index.d.ts" },
97
+ "./checkbox": { "import": "./dist/checkbox/index.mjs", "require": "./dist/checkbox/index.js", "types": "./dist/checkbox/index.d.ts" },
98
+ "./radio": { "import": "./dist/radio/index.mjs", "require": "./dist/radio/index.js", "types": "./dist/radio/index.d.ts" },
99
+ "./select": { "import": "./dist/select/index.mjs", "require": "./dist/select/index.js", "types": "./dist/select/index.d.ts" },
114
100
  "./styles.css": "./dist/styles.css"
115
101
  },
116
- "files": [
117
- "dist",
118
- "README.md"
119
- ],
102
+ "files": ["dist", "README.md"],
120
103
  "scripts": {
121
104
  "build": "tsup",
122
105
  "dev": "tsup --watch",
123
106
  "prepublishOnly": "npm run build"
124
107
  },
125
- "keywords": [
126
- "react",
127
- "ui",
128
- "components",
129
- "tailwindcss",
130
- "framer-motion",
131
- "animation",
132
- "buttons",
133
- "cards",
134
- "text-effects",
135
- "bynana-ui"
136
- ],
108
+ "keywords": ["react", "ui", "components", "tailwindcss", "framer-motion", "animation", "buttons", "cards", "text-effects", "bynana-ui"],
137
109
  "author": "Bynana UI",
138
110
  "license": "MIT",
139
111
  "homepage": "https://bynanaui.com",
140
- "repository": {
141
- "type": "git",
142
- "url": "https://github.com/bynana-ui/bynana-ui"
143
- },
144
- "peerDependencies": {
145
- "react": ">=18.0.0",
146
- "react-dom": ">=18.0.0",
147
- "tailwindcss": ">=3.0.0"
148
- },
149
- "dependencies": {
150
- "clsx": "^2.1.0",
151
- "tailwind-merge": "^2.2.0"
152
- },
153
- "devDependencies": {
154
- "@types/react": "^18.2.0",
155
- "@types/react-dom": "^18.2.0",
156
- "framer-motion": "^11.0.0",
157
- "react": "^18.2.0",
158
- "react-dom": "^18.2.0",
159
- "tsup": "^8.0.0",
160
- "typescript": "^5.3.0"
161
- }
112
+ "repository": { "type": "git", "url": "https://github.com/bynana-ui/bynana-ui" },
113
+ "peerDependencies": { "react": ">=18.0.0", "react-dom": ">=18.0.0", "tailwindcss": ">=3.0.0" },
114
+ "dependencies": { "clsx": "^2.1.0", "tailwind-merge": "^2.2.0" },
115
+ "devDependencies": { "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", "framer-motion": "^11.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "tsup": "^8.0.0", "typescript": "^5.3.0" }
162
116
  }