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.
- package/dist/accordion/index.js +2 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/accordion/index.mjs +2 -0
- package/dist/accordion/index.mjs.map +1 -0
- package/dist/alert/index.js +2 -0
- package/dist/alert/index.js.map +1 -0
- package/dist/alert/index.mjs +2 -0
- package/dist/alert/index.mjs.map +1 -0
- package/dist/attract-button/index.js +2 -0
- package/dist/attract-button/index.js.map +1 -0
- package/dist/attract-button/index.mjs +2 -0
- package/dist/attract-button/index.mjs.map +1 -0
- package/dist/avatar/index.js +2 -0
- package/dist/avatar/index.js.map +1 -0
- package/dist/avatar/index.mjs +2 -0
- package/dist/avatar/index.mjs.map +1 -0
- package/dist/badge/index.js +2 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/badge/index.mjs +2 -0
- package/dist/badge/index.mjs.map +1 -0
- package/dist/card/index.js +2 -0
- package/dist/card/index.js.map +1 -0
- package/dist/card/index.mjs +2 -0
- package/dist/card/index.mjs.map +1 -0
- package/dist/checkbox/index.js +2 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/checkbox/index.mjs +2 -0
- package/dist/checkbox/index.mjs.map +1 -0
- package/dist/circular-text/index.js +2 -0
- package/dist/circular-text/index.js.map +1 -0
- package/dist/circular-text/index.mjs +2 -0
- package/dist/circular-text/index.mjs.map +1 -0
- package/dist/command-button/index.js +2 -0
- package/dist/command-button/index.js.map +1 -0
- package/dist/command-button/index.mjs +2 -0
- package/dist/command-button/index.mjs.map +1 -0
- package/dist/copy-button/index.js +2 -0
- package/dist/copy-button/index.js.map +1 -0
- package/dist/copy-button/index.mjs +2 -0
- package/dist/copy-button/index.mjs.map +1 -0
- package/dist/count-up/index.js +2 -0
- package/dist/count-up/index.js.map +1 -0
- package/dist/count-up/index.mjs +2 -0
- package/dist/count-up/index.mjs.map +1 -0
- package/dist/counter/index.js +2 -0
- package/dist/counter/index.js.map +1 -0
- package/dist/counter/index.mjs +2 -0
- package/dist/counter/index.mjs.map +1 -0
- package/dist/decrypted-text/index.js +2 -0
- package/dist/decrypted-text/index.js.map +1 -0
- package/dist/decrypted-text/index.mjs +2 -0
- package/dist/decrypted-text/index.mjs.map +1 -0
- package/dist/dock/index.js +2 -0
- package/dist/dock/index.js.map +1 -0
- package/dist/dock/index.mjs +2 -0
- package/dist/dock/index.mjs.map +1 -0
- package/dist/drawer/index.js +2 -0
- package/dist/drawer/index.js.map +1 -0
- package/dist/drawer/index.mjs +2 -0
- package/dist/drawer/index.mjs.map +1 -0
- package/dist/dynamic-text/index.js +2 -0
- package/dist/dynamic-text/index.js.map +1 -0
- package/dist/dynamic-text/index.mjs +2 -0
- package/dist/dynamic-text/index.mjs.map +1 -0
- package/dist/elastic-text/index.js +2 -0
- package/dist/elastic-text/index.js.map +1 -0
- package/dist/elastic-text/index.mjs +2 -0
- package/dist/elastic-text/index.mjs.map +1 -0
- package/dist/file-tree/index.js +2 -0
- package/dist/file-tree/index.js.map +1 -0
- package/dist/file-tree/index.mjs +2 -0
- package/dist/file-tree/index.mjs.map +1 -0
- package/dist/fuzzy-text/index.js +2 -0
- package/dist/fuzzy-text/index.js.map +1 -0
- package/dist/fuzzy-text/index.mjs +2 -0
- package/dist/fuzzy-text/index.mjs.map +1 -0
- package/dist/glowing-text/index.js +2 -0
- package/dist/glowing-text/index.js.map +1 -0
- package/dist/glowing-text/index.mjs +2 -0
- package/dist/glowing-text/index.mjs.map +1 -0
- package/dist/gradient-button/index.js +2 -0
- package/dist/gradient-button/index.js.map +1 -0
- package/dist/gradient-button/index.mjs +2 -0
- package/dist/gradient-button/index.mjs.map +1 -0
- package/dist/hold-button/index.js +2 -0
- package/dist/hold-button/index.js.map +1 -0
- package/dist/hold-button/index.mjs +2 -0
- package/dist/hold-button/index.mjs.map +1 -0
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -1
- package/dist/index.mjs.map +1 -1
- package/dist/input/index.js +2 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/index.mjs +2 -0
- package/dist/input/index.mjs.map +1 -0
- package/dist/liquid-button/index.js +2 -0
- package/dist/liquid-button/index.js.map +1 -0
- package/dist/liquid-button/index.mjs +2 -0
- package/dist/liquid-button/index.mjs.map +1 -0
- package/dist/liquid-text/index.js +2 -0
- package/dist/liquid-text/index.js.map +1 -0
- package/dist/liquid-text/index.mjs +2 -0
- package/dist/liquid-text/index.mjs.map +1 -0
- package/dist/loading-bar/index.js +2 -0
- package/dist/loading-bar/index.js.map +1 -0
- package/dist/loading-bar/index.mjs +2 -0
- package/dist/loading-bar/index.mjs.map +1 -0
- package/dist/loading-bounce/index.js +2 -0
- package/dist/loading-bounce/index.js.map +1 -0
- package/dist/loading-bounce/index.mjs +2 -0
- package/dist/loading-bounce/index.mjs.map +1 -0
- package/dist/loading-flower/index.js +7 -0
- package/dist/loading-flower/index.js.map +1 -0
- package/dist/loading-flower/index.mjs +7 -0
- package/dist/loading-flower/index.mjs.map +1 -0
- package/dist/loading-geometric/index.js +7 -0
- package/dist/loading-geometric/index.js.map +1 -0
- package/dist/loading-geometric/index.mjs +7 -0
- package/dist/loading-geometric/index.mjs.map +1 -0
- package/dist/loading-morph/index.js +5 -0
- package/dist/loading-morph/index.js.map +1 -0
- package/dist/loading-morph/index.mjs +5 -0
- package/dist/loading-morph/index.mjs.map +1 -0
- package/dist/loading-pulse/index.js +2 -0
- package/dist/loading-pulse/index.js.map +1 -0
- package/dist/loading-pulse/index.mjs +2 -0
- package/dist/loading-pulse/index.mjs.map +1 -0
- package/dist/loading-rings/index.js +4 -0
- package/dist/loading-rings/index.js.map +1 -0
- package/dist/loading-rings/index.mjs +4 -0
- package/dist/loading-rings/index.mjs.map +1 -0
- package/dist/loading-text/index.js +6 -0
- package/dist/loading-text/index.js.map +1 -0
- package/dist/loading-text/index.mjs +6 -0
- package/dist/loading-text/index.mjs.map +1 -0
- package/dist/loading-words/index.js +4 -0
- package/dist/loading-words/index.js.map +1 -0
- package/dist/loading-words/index.mjs +4 -0
- package/dist/loading-words/index.mjs.map +1 -0
- package/dist/magnetic-text/index.js +2 -0
- package/dist/magnetic-text/index.js.map +1 -0
- package/dist/magnetic-text/index.mjs +2 -0
- package/dist/magnetic-text/index.mjs.map +1 -0
- package/dist/matrix-text/index.js +2 -0
- package/dist/matrix-text/index.js.map +1 -0
- package/dist/matrix-text/index.mjs +2 -0
- package/dist/matrix-text/index.mjs.map +1 -0
- package/dist/modal/index.js +2 -0
- package/dist/modal/index.js.map +1 -0
- package/dist/modal/index.mjs +2 -0
- package/dist/modal/index.mjs.map +1 -0
- package/dist/morph-text/index.js +2 -0
- package/dist/morph-text/index.js.map +1 -0
- package/dist/morph-text/index.mjs +2 -0
- package/dist/morph-text/index.mjs.map +1 -0
- package/dist/neon-button/index.js +2 -0
- package/dist/neon-button/index.js.map +1 -0
- package/dist/neon-button/index.mjs +2 -0
- package/dist/neon-button/index.mjs.map +1 -0
- package/dist/particle-button/index.js +2 -0
- package/dist/particle-button/index.js.map +1 -0
- package/dist/particle-button/index.mjs +2 -0
- package/dist/particle-button/index.mjs.map +1 -0
- package/dist/perspective-text/index.js +2 -0
- package/dist/perspective-text/index.js.map +1 -0
- package/dist/perspective-text/index.mjs +2 -0
- package/dist/perspective-text/index.mjs.map +1 -0
- package/dist/progress/index.js +2 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/progress/index.mjs +2 -0
- package/dist/progress/index.mjs.map +1 -0
- package/dist/radio/index.js +2 -0
- package/dist/radio/index.js.map +1 -0
- package/dist/radio/index.mjs +2 -0
- package/dist/radio/index.mjs.map +1 -0
- package/dist/rainbow-text/index.js +7 -0
- package/dist/rainbow-text/index.js.map +1 -0
- package/dist/rainbow-text/index.mjs +7 -0
- package/dist/rainbow-text/index.mjs.map +1 -0
- package/dist/reveal-text/index.js +2 -0
- package/dist/reveal-text/index.js.map +1 -0
- package/dist/reveal-text/index.mjs +2 -0
- package/dist/reveal-text/index.mjs.map +1 -0
- package/dist/rotating-text/index.js +2 -0
- package/dist/rotating-text/index.js.map +1 -0
- package/dist/rotating-text/index.mjs +2 -0
- package/dist/rotating-text/index.mjs.map +1 -0
- package/dist/scrambled-text/index.js +2 -0
- package/dist/scrambled-text/index.js.map +1 -0
- package/dist/scrambled-text/index.mjs +2 -0
- package/dist/scrambled-text/index.mjs.map +1 -0
- package/dist/select/index.js +2 -0
- package/dist/select/index.js.map +1 -0
- package/dist/select/index.mjs +2 -0
- package/dist/select/index.mjs.map +1 -0
- package/dist/shiny-text/index.js +7 -0
- package/dist/shiny-text/index.js.map +1 -0
- package/dist/shiny-text/index.mjs +7 -0
- package/dist/shiny-text/index.mjs.map +1 -0
- package/dist/skeleton/index.js +2 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/skeleton/index.mjs +2 -0
- package/dist/skeleton/index.mjs.map +1 -0
- package/dist/sliced-text/index.js +2 -0
- package/dist/sliced-text/index.js.map +1 -0
- package/dist/sliced-text/index.mjs +2 -0
- package/dist/sliced-text/index.mjs.map +1 -0
- package/dist/slide-button/index.js +2 -0
- package/dist/slide-button/index.js.map +1 -0
- package/dist/slide-button/index.mjs +2 -0
- package/dist/slide-button/index.mjs.map +1 -0
- package/dist/split-text/index.js +2 -0
- package/dist/split-text/index.js.map +1 -0
- package/dist/split-text/index.mjs +2 -0
- package/dist/split-text/index.mjs.map +1 -0
- package/dist/stagger-text/index.js +2 -0
- package/dist/stagger-text/index.js.map +1 -0
- package/dist/stagger-text/index.mjs +2 -0
- package/dist/stagger-text/index.mjs.map +1 -0
- package/dist/stepper/index.js +2 -0
- package/dist/stepper/index.js.map +1 -0
- package/dist/stepper/index.mjs +2 -0
- package/dist/stepper/index.mjs.map +1 -0
- package/dist/switch/index.js +2 -0
- package/dist/switch/index.js.map +1 -0
- package/dist/switch/index.mjs +2 -0
- package/dist/switch/index.mjs.map +1 -0
- package/dist/swoosh-text/index.js +2 -0
- package/dist/swoosh-text/index.js.map +1 -0
- package/dist/swoosh-text/index.mjs +2 -0
- package/dist/swoosh-text/index.mjs.map +1 -0
- package/dist/tabs/index.js +2 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/tabs/index.mjs +2 -0
- package/dist/tabs/index.mjs.map +1 -0
- package/dist/terminal/index.js +2 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/index.mjs +2 -0
- package/dist/terminal/index.mjs.map +1 -0
- package/dist/textarea/index.js +2 -0
- package/dist/textarea/index.js.map +1 -0
- package/dist/textarea/index.mjs +2 -0
- package/dist/textarea/index.mjs.map +1 -0
- package/dist/threed-button/index.js +2 -0
- package/dist/threed-button/index.js.map +1 -0
- package/dist/threed-button/index.mjs +2 -0
- package/dist/threed-button/index.mjs.map +1 -0
- package/dist/toolbar/index.js +2 -0
- package/dist/toolbar/index.js.map +1 -0
- package/dist/toolbar/index.mjs +2 -0
- package/dist/toolbar/index.mjs.map +1 -0
- package/dist/tooltip/index.js +2 -0
- package/dist/tooltip/index.js.map +1 -0
- package/dist/tooltip/index.mjs +2 -0
- package/dist/tooltip/index.mjs.map +1 -0
- package/dist/tooltip-animated/index.js +2 -0
- package/dist/tooltip-animated/index.js.map +1 -0
- package/dist/tooltip-animated/index.mjs +2 -0
- package/dist/tooltip-animated/index.mjs.map +1 -0
- package/dist/tooltip-minimal/index.js +2 -0
- package/dist/tooltip-minimal/index.js.map +1 -0
- package/dist/tooltip-minimal/index.mjs +2 -0
- package/dist/tooltip-minimal/index.mjs.map +1 -0
- package/dist/true-focus/index.js +2 -0
- package/dist/true-focus/index.js.map +1 -0
- package/dist/true-focus/index.mjs +2 -0
- package/dist/true-focus/index.mjs.map +1 -0
- 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":"6LAGO,SAASA,CAAAA,CAAAA,GAAMC,CAAAA,CAAsB,CAC1C,OAAOC,QAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCUO,SAASG,CAAAA,CAAgB,CAC9B,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CAAW,KAAA,CACX,KAAA,CAAAC,CAAAA,CAAQ,IACR,SAAA,CAAAC,CAAAA,CAAY,OAAA,CACZ,SAAA,CAAAC,CACF,CAAA,CAAyB,CACvB,GAAM,CAACC,EAAWC,CAAY,CAAA,CAAIC,QAAAA,CAAS,KAAK,EAC1CC,CAAAA,CAAaC,MAAAA,CAAuB,MAAS,CAAA,CAE7CC,EAAc,IAAM,CACxBF,CAAAA,CAAW,OAAA,CAAU,WAAW,IAAMF,CAAAA,CAAa,IAAI,CAAA,CAAGJ,CAAK,EACjE,CAAA,CAEMS,CAAAA,CAAc,IAAM,CACpBH,CAAAA,CAAW,OAAA,EAAS,YAAA,CAAaA,EAAW,OAAO,CAAA,CACvDF,CAAAA,CAAa,KAAK,EACpB,CAAA,CAEMM,CAAAA,CAAqB,IAAA,CACP,CAChB,IAAK,4CAAA,CACL,MAAA,CAAQ,yCAAA,CACR,IAAA,CAAM,2CACN,KAAA,CAAO,yCACT,CAAA,EACiBX,CAAQ,EAGrBY,CAAAA,CAAoB,IAAM,CAE9B,IAAMC,EAAU,CAAE,GAAA,CAAK,CAAE,CAAA,CAAG,EAAY,CAAA,CAAG,MAAA,CAAQ,CAAE,CAAA,CAAG,GAAa,CAAA,CAAG,IAAA,CAAM,CAAE,CAAA,CAAG,EAAY,CAAA,CAAG,KAAA,CAAO,CAAE,CAAA,CAAG,GAAa,CAAE,CAAA,CACvH,CAAE,CAAA,CAAAC,EAAI,CAAA,CAAG,CAAA,CAAAC,CAAAA,CAAI,CAAE,EAAIF,CAAAA,CAAQb,CAAQ,CAAA,CAQzC,OAAO,CAAE,GANU,CACjB,IAAA,CAAM,CAAE,QAAS,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,OAAA,CAAS,CAAE,OAAA,CAAS,CAAE,EAAG,IAAA,CAAM,CAAE,OAAA,CAAS,CAAE,CAAE,CAAA,CAC/E,KAAA,CAAO,CAAE,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,EAAI,EAAG,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,MAAO,CAAE,CAAA,CAAG,IAAA,CAAM,CAAE,QAAS,CAAA,CAAG,KAAA,CAAO,EAAI,CAAE,EAClH,MAAA,CAAQ,CAAE,OAAA,CAAS,CAAE,QAAS,CAAA,CAAG,KAAA,CAAO,EAAA,CAAK,CAAA,CAAGA,IAAa,KAAA,CAAQ,EAAA,CAAK,GAAI,CAAA,CAAG,QAAS,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,EAAG,CAAA,CAAG,CAAE,CAAA,CAAG,IAAA,CAAM,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,EAAA,CAAK,EAAGA,CAAAA,GAAa,KAAA,CAAQ,EAAA,CAAK,GAAI,CAAE,CAAA,CAC7L,KAAA,CAAO,CAAE,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,CAAA,CAAAc,CAAAA,CAAG,CAAA,CAAAC,CAAE,CAAA,CAAG,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,EAAG,CAAE,CAAA,CAAG,IAAA,CAAM,CAAE,QAAS,CAAA,CAAG,CAAA,CAAAD,CAAAA,CAAG,CAAA,CAAAC,CAAE,CAAE,CAC1G,CAAA,CACuBb,CAAS,EAAG,UAAA,CAAY,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAE,CACjG,CAAA,CAEA,OACEc,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAWvB,CAAAA,CAAG,uBAAA,CAAyBU,CAAS,CAAA,CAAG,aAAcM,CAAAA,CAAa,YAAA,CAAcC,CAAAA,CAC9F,QAAA,CAAA,CAAAX,EACDkB,GAAAA,CAACC,eAAAA,CAAA,CACE,QAAA,CAAAd,GACCa,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CAAY,GAAGP,CAAAA,EAAkB,CAAG,SAAA,CAAWnB,CAAAA,CAAG,0HAA2HkB,CAAAA,EAAoB,CAAA,CAC/L,QAAA,CAAAb,EACH,CAAA,CAEJ,CAAA,CAAA,CACF,CAEJ,KAEOsB,CAAAA,CAAQvB","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.
|
|
4
|
-
"description": "
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
"./
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
"./
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
"./
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
"./
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
"./
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
"./
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
"./
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
"./
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
"./
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
"./
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
},
|
|
69
|
-
"./
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
},
|
|
74
|
-
"./
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
},
|
|
79
|
-
"./
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
"./
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
},
|
|
89
|
-
"./
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
"./
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
},
|
|
99
|
-
"./
|
|
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
|
-
|
|
142
|
-
|
|
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
|
}
|