@zentauri-ui/zentauri-components 1.8.2 → 1.8.4
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/README.md +155 -27
- package/cli/cli.integration.test.ts +94 -2
- package/cli/index.mjs +97 -14
- package/cli/registry.json +334 -1
- package/cli/rewrite-imports.mjs +4 -1
- package/dist/animations/blur-in/blur-in.d.ts +5 -0
- package/dist/animations/blur-in/blur-in.d.ts.map +1 -0
- package/dist/animations/blur-in/index.d.ts +4 -0
- package/dist/animations/blur-in/index.d.ts.map +1 -0
- package/dist/animations/blur-in/presets.d.ts +19 -0
- package/dist/animations/blur-in/presets.d.ts.map +1 -0
- package/dist/animations/blur-in/types.d.ts +3 -0
- package/dist/animations/blur-in/types.d.ts.map +1 -0
- package/dist/animations/blur-in.js +24 -0
- package/dist/animations/blur-in.js.map +1 -0
- package/dist/animations/blur-in.mjs +21 -0
- package/dist/animations/blur-in.mjs.map +1 -0
- package/dist/animations/blur-out/blur-out.d.ts +5 -0
- package/dist/animations/blur-out/blur-out.d.ts.map +1 -0
- package/dist/animations/blur-out/index.d.ts +4 -0
- package/dist/animations/blur-out/index.d.ts.map +1 -0
- package/dist/animations/blur-out/presets.d.ts +19 -0
- package/dist/animations/blur-out/presets.d.ts.map +1 -0
- package/dist/animations/blur-out/types.d.ts +3 -0
- package/dist/animations/blur-out/types.d.ts.map +1 -0
- package/dist/animations/blur-out.js +24 -0
- package/dist/animations/blur-out.js.map +1 -0
- package/dist/animations/blur-out.mjs +21 -0
- package/dist/animations/blur-out.mjs.map +1 -0
- package/dist/animations/bounce/bounce.d.ts +5 -0
- package/dist/animations/bounce/bounce.d.ts.map +1 -0
- package/dist/animations/bounce/index.d.ts +4 -0
- package/dist/animations/bounce/index.d.ts.map +1 -0
- package/dist/animations/bounce/presets.d.ts +19 -0
- package/dist/animations/bounce/presets.d.ts.map +1 -0
- package/dist/animations/bounce/types.d.ts +3 -0
- package/dist/animations/bounce/types.d.ts.map +1 -0
- package/dist/animations/bounce.js +29 -0
- package/dist/animations/bounce.js.map +1 -0
- package/dist/animations/bounce.mjs +26 -0
- package/dist/animations/bounce.mjs.map +1 -0
- package/dist/animations/fade-down/fade-down.d.ts +5 -0
- package/dist/animations/fade-down/fade-down.d.ts.map +1 -0
- package/dist/animations/fade-down/index.d.ts +4 -0
- package/dist/animations/fade-down/index.d.ts.map +1 -0
- package/dist/animations/fade-down/presets.d.ts +19 -0
- package/dist/animations/fade-down/presets.d.ts.map +1 -0
- package/dist/animations/fade-down/types.d.ts +3 -0
- package/dist/animations/fade-down/types.d.ts.map +1 -0
- package/dist/animations/fade-down.js +24 -0
- package/dist/animations/fade-down.js.map +1 -0
- package/dist/animations/fade-down.mjs +21 -0
- package/dist/animations/fade-down.mjs.map +1 -0
- package/dist/animations/fade-in/fade-in.d.ts +5 -0
- package/dist/animations/fade-in/fade-in.d.ts.map +1 -0
- package/dist/animations/fade-in/index.d.ts +4 -0
- package/dist/animations/fade-in/index.d.ts.map +1 -0
- package/dist/animations/fade-in/presets.d.ts +16 -0
- package/dist/animations/fade-in/presets.d.ts.map +1 -0
- package/dist/animations/fade-in/types.d.ts +3 -0
- package/dist/animations/fade-in/types.d.ts.map +1 -0
- package/dist/animations/fade-in.js +24 -0
- package/dist/animations/fade-in.js.map +1 -0
- package/dist/animations/fade-in.mjs +21 -0
- package/dist/animations/fade-in.mjs.map +1 -0
- package/dist/animations/fade-left/fade-left.d.ts +5 -0
- package/dist/animations/fade-left/fade-left.d.ts.map +1 -0
- package/dist/animations/fade-left/index.d.ts +4 -0
- package/dist/animations/fade-left/index.d.ts.map +1 -0
- package/dist/animations/fade-left/presets.d.ts +19 -0
- package/dist/animations/fade-left/presets.d.ts.map +1 -0
- package/dist/animations/fade-left/types.d.ts +3 -0
- package/dist/animations/fade-left/types.d.ts.map +1 -0
- package/dist/animations/fade-left.js +24 -0
- package/dist/animations/fade-left.js.map +1 -0
- package/dist/animations/fade-left.mjs +21 -0
- package/dist/animations/fade-left.mjs.map +1 -0
- package/dist/animations/fade-out/fade-out.d.ts +5 -0
- package/dist/animations/fade-out/fade-out.d.ts.map +1 -0
- package/dist/animations/fade-out/index.d.ts +4 -0
- package/dist/animations/fade-out/index.d.ts.map +1 -0
- package/dist/animations/fade-out/presets.d.ts +16 -0
- package/dist/animations/fade-out/presets.d.ts.map +1 -0
- package/dist/animations/fade-out/types.d.ts +3 -0
- package/dist/animations/fade-out/types.d.ts.map +1 -0
- package/dist/animations/fade-out.js +24 -0
- package/dist/animations/fade-out.js.map +1 -0
- package/dist/animations/fade-out.mjs +21 -0
- package/dist/animations/fade-out.mjs.map +1 -0
- package/dist/animations/fade-right/fade-right.d.ts +5 -0
- package/dist/animations/fade-right/fade-right.d.ts.map +1 -0
- package/dist/animations/fade-right/index.d.ts +4 -0
- package/dist/animations/fade-right/index.d.ts.map +1 -0
- package/dist/animations/fade-right/presets.d.ts +19 -0
- package/dist/animations/fade-right/presets.d.ts.map +1 -0
- package/dist/animations/fade-right/types.d.ts +3 -0
- package/dist/animations/fade-right/types.d.ts.map +1 -0
- package/dist/animations/fade-right.js +24 -0
- package/dist/animations/fade-right.js.map +1 -0
- package/dist/animations/fade-right.mjs +21 -0
- package/dist/animations/fade-right.mjs.map +1 -0
- package/dist/animations/fade-up/fade-up.d.ts +5 -0
- package/dist/animations/fade-up/fade-up.d.ts.map +1 -0
- package/dist/animations/fade-up/index.d.ts +4 -0
- package/dist/animations/fade-up/index.d.ts.map +1 -0
- package/dist/animations/fade-up/presets.d.ts +19 -0
- package/dist/animations/fade-up/presets.d.ts.map +1 -0
- package/dist/animations/fade-up/types.d.ts +3 -0
- package/dist/animations/fade-up/types.d.ts.map +1 -0
- package/dist/animations/fade-up.js +24 -0
- package/dist/animations/fade-up.js.map +1 -0
- package/dist/animations/fade-up.mjs +21 -0
- package/dist/animations/fade-up.mjs.map +1 -0
- package/dist/animations/flip/flip.d.ts +5 -0
- package/dist/animations/flip/flip.d.ts.map +1 -0
- package/dist/animations/flip/index.d.ts +4 -0
- package/dist/animations/flip/index.d.ts.map +1 -0
- package/dist/animations/flip/presets.d.ts +22 -0
- package/dist/animations/flip/presets.d.ts.map +1 -0
- package/dist/animations/flip/types.d.ts +3 -0
- package/dist/animations/flip/types.d.ts.map +1 -0
- package/dist/animations/flip-in/flip-in.d.ts +5 -0
- package/dist/animations/flip-in/flip-in.d.ts.map +1 -0
- package/dist/animations/flip-in/index.d.ts +4 -0
- package/dist/animations/flip-in/index.d.ts.map +1 -0
- package/dist/animations/flip-in/presets.d.ts +22 -0
- package/dist/animations/flip-in/presets.d.ts.map +1 -0
- package/dist/animations/flip-in/types.d.ts +3 -0
- package/dist/animations/flip-in/types.d.ts.map +1 -0
- package/dist/animations/flip-in.js +24 -0
- package/dist/animations/flip-in.js.map +1 -0
- package/dist/animations/flip-in.mjs +21 -0
- package/dist/animations/flip-in.mjs.map +1 -0
- package/dist/animations/flip.js +25 -0
- package/dist/animations/flip.js.map +1 -0
- package/dist/animations/flip.mjs +22 -0
- package/dist/animations/flip.mjs.map +1 -0
- package/dist/animations/float/float.d.ts +5 -0
- package/dist/animations/float/float.d.ts.map +1 -0
- package/dist/animations/float/index.d.ts +4 -0
- package/dist/animations/float/index.d.ts.map +1 -0
- package/dist/animations/float/presets.d.ts +18 -0
- package/dist/animations/float/presets.d.ts.map +1 -0
- package/dist/animations/float/types.d.ts +3 -0
- package/dist/animations/float/types.d.ts.map +1 -0
- package/dist/animations/float.js +24 -0
- package/dist/animations/float.js.map +1 -0
- package/dist/animations/float.mjs +21 -0
- package/dist/animations/float.mjs.map +1 -0
- package/dist/animations/hover-lift/hover-lift.d.ts +5 -0
- package/dist/animations/hover-lift/hover-lift.d.ts.map +1 -0
- package/dist/animations/hover-lift/index.d.ts +4 -0
- package/dist/animations/hover-lift/index.d.ts.map +1 -0
- package/dist/animations/hover-lift/presets.d.ts +29 -0
- package/dist/animations/hover-lift/presets.d.ts.map +1 -0
- package/dist/animations/hover-lift/types.d.ts +3 -0
- package/dist/animations/hover-lift/types.d.ts.map +1 -0
- package/dist/animations/hover-lift.js +26 -0
- package/dist/animations/hover-lift.js.map +1 -0
- package/dist/animations/hover-lift.mjs +23 -0
- package/dist/animations/hover-lift.mjs.map +1 -0
- package/dist/animations/hover-scale/hover-scale.d.ts +5 -0
- package/dist/animations/hover-scale/hover-scale.d.ts.map +1 -0
- package/dist/animations/hover-scale/index.d.ts +4 -0
- package/dist/animations/hover-scale/index.d.ts.map +1 -0
- package/dist/animations/hover-scale/presets.d.ts +24 -0
- package/dist/animations/hover-scale/presets.d.ts.map +1 -0
- package/dist/animations/hover-scale/types.d.ts +3 -0
- package/dist/animations/hover-scale/types.d.ts.map +1 -0
- package/dist/animations/hover-scale.js +26 -0
- package/dist/animations/hover-scale.js.map +1 -0
- package/dist/animations/hover-scale.mjs +23 -0
- package/dist/animations/hover-scale.mjs.map +1 -0
- package/dist/animations/magnetic/index.d.ts +4 -0
- package/dist/animations/magnetic/index.d.ts.map +1 -0
- package/dist/animations/magnetic/magnetic.d.ts +5 -0
- package/dist/animations/magnetic/magnetic.d.ts.map +1 -0
- package/dist/animations/magnetic/presets.d.ts +32 -0
- package/dist/animations/magnetic/presets.d.ts.map +1 -0
- package/dist/animations/magnetic/types.d.ts +3 -0
- package/dist/animations/magnetic/types.d.ts.map +1 -0
- package/dist/animations/magnetic.js +26 -0
- package/dist/animations/magnetic.js.map +1 -0
- package/dist/animations/magnetic.mjs +23 -0
- package/dist/animations/magnetic.mjs.map +1 -0
- package/dist/animations/parallax/index.d.ts +4 -0
- package/dist/animations/parallax/index.d.ts.map +1 -0
- package/dist/animations/parallax/parallax.d.ts +5 -0
- package/dist/animations/parallax/parallax.d.ts.map +1 -0
- package/dist/animations/parallax/presets.d.ts +20 -0
- package/dist/animations/parallax/presets.d.ts.map +1 -0
- package/dist/animations/parallax/types.d.ts +3 -0
- package/dist/animations/parallax/types.d.ts.map +1 -0
- package/dist/animations/parallax.js +24 -0
- package/dist/animations/parallax.js.map +1 -0
- package/dist/animations/parallax.mjs +21 -0
- package/dist/animations/parallax.mjs.map +1 -0
- package/dist/animations/ping/index.d.ts +4 -0
- package/dist/animations/ping/index.d.ts.map +1 -0
- package/dist/animations/ping/ping.d.ts +5 -0
- package/dist/animations/ping/ping.d.ts.map +1 -0
- package/dist/animations/ping/presets.d.ts +21 -0
- package/dist/animations/ping/presets.d.ts.map +1 -0
- package/dist/animations/ping/types.d.ts +3 -0
- package/dist/animations/ping/types.d.ts.map +1 -0
- package/dist/animations/ping.js +25 -0
- package/dist/animations/ping.js.map +1 -0
- package/dist/animations/ping.mjs +22 -0
- package/dist/animations/ping.mjs.map +1 -0
- package/dist/animations/pop-in/index.d.ts +4 -0
- package/dist/animations/pop-in/index.d.ts.map +1 -0
- package/dist/animations/pop-in/pop-in.d.ts +5 -0
- package/dist/animations/pop-in/pop-in.d.ts.map +1 -0
- package/dist/animations/pop-in/presets.d.ts +19 -0
- package/dist/animations/pop-in/presets.d.ts.map +1 -0
- package/dist/animations/pop-in/types.d.ts +3 -0
- package/dist/animations/pop-in/types.d.ts.map +1 -0
- package/dist/animations/pop-in.js +24 -0
- package/dist/animations/pop-in.js.map +1 -0
- package/dist/animations/pop-in.mjs +21 -0
- package/dist/animations/pop-in.mjs.map +1 -0
- package/dist/animations/press/index.d.ts +4 -0
- package/dist/animations/press/index.d.ts.map +1 -0
- package/dist/animations/press/presets.d.ts +24 -0
- package/dist/animations/press/presets.d.ts.map +1 -0
- package/dist/animations/press/press.d.ts +5 -0
- package/dist/animations/press/press.d.ts.map +1 -0
- package/dist/animations/press/types.d.ts +3 -0
- package/dist/animations/press/types.d.ts.map +1 -0
- package/dist/animations/press.js +25 -0
- package/dist/animations/press.js.map +1 -0
- package/dist/animations/press.mjs +22 -0
- package/dist/animations/press.mjs.map +1 -0
- package/dist/animations/progress/index.d.ts +4 -0
- package/dist/animations/progress/index.d.ts.map +1 -0
- package/dist/animations/progress/presets.d.ts +19 -0
- package/dist/animations/progress/presets.d.ts.map +1 -0
- package/dist/animations/progress/progress.d.ts +5 -0
- package/dist/animations/progress/progress.d.ts.map +1 -0
- package/dist/animations/progress/types.d.ts +3 -0
- package/dist/animations/progress/types.d.ts.map +1 -0
- package/dist/animations/progress.js +24 -0
- package/dist/animations/progress.js.map +1 -0
- package/dist/animations/progress.mjs +21 -0
- package/dist/animations/progress.mjs.map +1 -0
- package/dist/animations/pulse/index.d.ts +4 -0
- package/dist/animations/pulse/index.d.ts.map +1 -0
- package/dist/animations/pulse/presets.d.ts +20 -0
- package/dist/animations/pulse/presets.d.ts.map +1 -0
- package/dist/animations/pulse/pulse.d.ts +5 -0
- package/dist/animations/pulse/pulse.d.ts.map +1 -0
- package/dist/animations/pulse/types.d.ts +3 -0
- package/dist/animations/pulse/types.d.ts.map +1 -0
- package/dist/animations/pulse.js +24 -0
- package/dist/animations/pulse.js.map +1 -0
- package/dist/animations/pulse.mjs +21 -0
- package/dist/animations/pulse.mjs.map +1 -0
- package/dist/animations/reorder/index.d.ts +4 -0
- package/dist/animations/reorder/index.d.ts.map +1 -0
- package/dist/animations/reorder/presets.d.ts +24 -0
- package/dist/animations/reorder/presets.d.ts.map +1 -0
- package/dist/animations/reorder/reorder.d.ts +5 -0
- package/dist/animations/reorder/reorder.d.ts.map +1 -0
- package/dist/animations/reorder/types.d.ts +3 -0
- package/dist/animations/reorder/types.d.ts.map +1 -0
- package/dist/animations/reorder.js +26 -0
- package/dist/animations/reorder.js.map +1 -0
- package/dist/animations/reorder.mjs +23 -0
- package/dist/animations/reorder.mjs.map +1 -0
- package/dist/animations/reveal-blur/index.d.ts +4 -0
- package/dist/animations/reveal-blur/index.d.ts.map +1 -0
- package/dist/animations/reveal-blur/presets.d.ts +22 -0
- package/dist/animations/reveal-blur/presets.d.ts.map +1 -0
- package/dist/animations/reveal-blur/reveal-blur.d.ts +5 -0
- package/dist/animations/reveal-blur/reveal-blur.d.ts.map +1 -0
- package/dist/animations/reveal-blur/types.d.ts +3 -0
- package/dist/animations/reveal-blur/types.d.ts.map +1 -0
- package/dist/animations/reveal-blur.js +24 -0
- package/dist/animations/reveal-blur.js.map +1 -0
- package/dist/animations/reveal-blur.mjs +21 -0
- package/dist/animations/reveal-blur.mjs.map +1 -0
- package/dist/animations/reveal-down/index.d.ts +4 -0
- package/dist/animations/reveal-down/index.d.ts.map +1 -0
- package/dist/animations/reveal-down/presets.d.ts +22 -0
- package/dist/animations/reveal-down/presets.d.ts.map +1 -0
- package/dist/animations/reveal-down/reveal-down.d.ts +5 -0
- package/dist/animations/reveal-down/reveal-down.d.ts.map +1 -0
- package/dist/animations/reveal-down/types.d.ts +3 -0
- package/dist/animations/reveal-down/types.d.ts.map +1 -0
- package/dist/animations/reveal-down.js +24 -0
- package/dist/animations/reveal-down.js.map +1 -0
- package/dist/animations/reveal-down.mjs +21 -0
- package/dist/animations/reveal-down.mjs.map +1 -0
- package/dist/animations/reveal-left/index.d.ts +4 -0
- package/dist/animations/reveal-left/index.d.ts.map +1 -0
- package/dist/animations/reveal-left/presets.d.ts +22 -0
- package/dist/animations/reveal-left/presets.d.ts.map +1 -0
- package/dist/animations/reveal-left/reveal-left.d.ts +5 -0
- package/dist/animations/reveal-left/reveal-left.d.ts.map +1 -0
- package/dist/animations/reveal-left/types.d.ts +3 -0
- package/dist/animations/reveal-left/types.d.ts.map +1 -0
- package/dist/animations/reveal-left.js +24 -0
- package/dist/animations/reveal-left.js.map +1 -0
- package/dist/animations/reveal-left.mjs +21 -0
- package/dist/animations/reveal-left.mjs.map +1 -0
- package/dist/animations/reveal-right/index.d.ts +4 -0
- package/dist/animations/reveal-right/index.d.ts.map +1 -0
- package/dist/animations/reveal-right/presets.d.ts +22 -0
- package/dist/animations/reveal-right/presets.d.ts.map +1 -0
- package/dist/animations/reveal-right/reveal-right.d.ts +5 -0
- package/dist/animations/reveal-right/reveal-right.d.ts.map +1 -0
- package/dist/animations/reveal-right/types.d.ts +3 -0
- package/dist/animations/reveal-right/types.d.ts.map +1 -0
- package/dist/animations/reveal-right.js +24 -0
- package/dist/animations/reveal-right.js.map +1 -0
- package/dist/animations/reveal-right.mjs +21 -0
- package/dist/animations/reveal-right.mjs.map +1 -0
- package/dist/animations/reveal-up/index.d.ts +4 -0
- package/dist/animations/reveal-up/index.d.ts.map +1 -0
- package/dist/animations/reveal-up/presets.d.ts +22 -0
- package/dist/animations/reveal-up/presets.d.ts.map +1 -0
- package/dist/animations/reveal-up/reveal-up.d.ts +5 -0
- package/dist/animations/reveal-up/reveal-up.d.ts.map +1 -0
- package/dist/animations/reveal-up/types.d.ts +3 -0
- package/dist/animations/reveal-up/types.d.ts.map +1 -0
- package/dist/animations/reveal-up.js +24 -0
- package/dist/animations/reveal-up.js.map +1 -0
- package/dist/animations/reveal-up.mjs +21 -0
- package/dist/animations/reveal-up.mjs.map +1 -0
- package/dist/animations/rotate-in/index.d.ts +4 -0
- package/dist/animations/rotate-in/index.d.ts.map +1 -0
- package/dist/animations/rotate-in/presets.d.ts +22 -0
- package/dist/animations/rotate-in/presets.d.ts.map +1 -0
- package/dist/animations/rotate-in/rotate-in.d.ts +5 -0
- package/dist/animations/rotate-in/rotate-in.d.ts.map +1 -0
- package/dist/animations/rotate-in/types.d.ts +3 -0
- package/dist/animations/rotate-in/types.d.ts.map +1 -0
- package/dist/animations/rotate-in.js +24 -0
- package/dist/animations/rotate-in.js.map +1 -0
- package/dist/animations/rotate-in.mjs +21 -0
- package/dist/animations/rotate-in.mjs.map +1 -0
- package/dist/animations/scale-in/index.d.ts +4 -0
- package/dist/animations/scale-in/index.d.ts.map +1 -0
- package/dist/animations/scale-in/presets.d.ts +19 -0
- package/dist/animations/scale-in/presets.d.ts.map +1 -0
- package/dist/animations/scale-in/scale-in.d.ts +5 -0
- package/dist/animations/scale-in/scale-in.d.ts.map +1 -0
- package/dist/animations/scale-in/types.d.ts +3 -0
- package/dist/animations/scale-in/types.d.ts.map +1 -0
- package/dist/animations/scale-in.js +24 -0
- package/dist/animations/scale-in.js.map +1 -0
- package/dist/animations/scale-in.mjs +21 -0
- package/dist/animations/scale-in.mjs.map +1 -0
- package/dist/animations/scale-out/index.d.ts +4 -0
- package/dist/animations/scale-out/index.d.ts.map +1 -0
- package/dist/animations/scale-out/presets.d.ts +19 -0
- package/dist/animations/scale-out/presets.d.ts.map +1 -0
- package/dist/animations/scale-out/scale-out.d.ts +5 -0
- package/dist/animations/scale-out/scale-out.d.ts.map +1 -0
- package/dist/animations/scale-out/types.d.ts +3 -0
- package/dist/animations/scale-out/types.d.ts.map +1 -0
- package/dist/animations/scale-out.js +24 -0
- package/dist/animations/scale-out.js.map +1 -0
- package/dist/animations/scale-out.mjs +21 -0
- package/dist/animations/scale-out.mjs.map +1 -0
- package/dist/animations/shake/index.d.ts +4 -0
- package/dist/animations/shake/index.d.ts.map +1 -0
- package/dist/animations/shake/presets.d.ts +19 -0
- package/dist/animations/shake/presets.d.ts.map +1 -0
- package/dist/animations/shake/shake.d.ts +5 -0
- package/dist/animations/shake/shake.d.ts.map +1 -0
- package/dist/animations/shake/types.d.ts +3 -0
- package/dist/animations/shake/types.d.ts.map +1 -0
- package/dist/animations/shake.js +29 -0
- package/dist/animations/shake.js.map +1 -0
- package/dist/animations/shake.mjs +26 -0
- package/dist/animations/shake.mjs.map +1 -0
- package/dist/animations/shared/create-motion-animation.d.ts +6 -0
- package/dist/animations/shared/create-motion-animation.d.ts.map +1 -0
- package/dist/animations/shared/index.d.ts +3 -0
- package/dist/animations/shared/index.d.ts.map +1 -0
- package/dist/animations/shared/types.d.ts +28 -0
- package/dist/animations/shared/types.d.ts.map +1 -0
- package/dist/animations/skeleton-shimmer/index.d.ts +4 -0
- package/dist/animations/skeleton-shimmer/index.d.ts.map +1 -0
- package/dist/animations/skeleton-shimmer/presets.d.ts +19 -0
- package/dist/animations/skeleton-shimmer/presets.d.ts.map +1 -0
- package/dist/animations/skeleton-shimmer/skeleton-shimmer.d.ts +5 -0
- package/dist/animations/skeleton-shimmer/skeleton-shimmer.d.ts.map +1 -0
- package/dist/animations/skeleton-shimmer/types.d.ts +3 -0
- package/dist/animations/skeleton-shimmer/types.d.ts.map +1 -0
- package/dist/animations/skeleton-shimmer.js +24 -0
- package/dist/animations/skeleton-shimmer.js.map +1 -0
- package/dist/animations/skeleton-shimmer.mjs +21 -0
- package/dist/animations/skeleton-shimmer.mjs.map +1 -0
- package/dist/animations/slide-down/index.d.ts +4 -0
- package/dist/animations/slide-down/index.d.ts.map +1 -0
- package/dist/animations/slide-down/presets.d.ts +16 -0
- package/dist/animations/slide-down/presets.d.ts.map +1 -0
- package/dist/animations/slide-down/slide-down.d.ts +5 -0
- package/dist/animations/slide-down/slide-down.d.ts.map +1 -0
- package/dist/animations/slide-down/types.d.ts +3 -0
- package/dist/animations/slide-down/types.d.ts.map +1 -0
- package/dist/animations/slide-down.js +24 -0
- package/dist/animations/slide-down.js.map +1 -0
- package/dist/animations/slide-down.mjs +21 -0
- package/dist/animations/slide-down.mjs.map +1 -0
- package/dist/animations/slide-left/index.d.ts +4 -0
- package/dist/animations/slide-left/index.d.ts.map +1 -0
- package/dist/animations/slide-left/presets.d.ts +16 -0
- package/dist/animations/slide-left/presets.d.ts.map +1 -0
- package/dist/animations/slide-left/slide-left.d.ts +5 -0
- package/dist/animations/slide-left/slide-left.d.ts.map +1 -0
- package/dist/animations/slide-left/types.d.ts +3 -0
- package/dist/animations/slide-left/types.d.ts.map +1 -0
- package/dist/animations/slide-left.js +24 -0
- package/dist/animations/slide-left.js.map +1 -0
- package/dist/animations/slide-left.mjs +21 -0
- package/dist/animations/slide-left.mjs.map +1 -0
- package/dist/animations/slide-right/index.d.ts +4 -0
- package/dist/animations/slide-right/index.d.ts.map +1 -0
- package/dist/animations/slide-right/presets.d.ts +16 -0
- package/dist/animations/slide-right/presets.d.ts.map +1 -0
- package/dist/animations/slide-right/slide-right.d.ts +5 -0
- package/dist/animations/slide-right/slide-right.d.ts.map +1 -0
- package/dist/animations/slide-right/types.d.ts +3 -0
- package/dist/animations/slide-right/types.d.ts.map +1 -0
- package/dist/animations/slide-right.js +24 -0
- package/dist/animations/slide-right.js.map +1 -0
- package/dist/animations/slide-right.mjs +21 -0
- package/dist/animations/slide-right.mjs.map +1 -0
- package/dist/animations/slide-up/index.d.ts +4 -0
- package/dist/animations/slide-up/index.d.ts.map +1 -0
- package/dist/animations/slide-up/presets.d.ts +16 -0
- package/dist/animations/slide-up/presets.d.ts.map +1 -0
- package/dist/animations/slide-up/slide-up.d.ts +5 -0
- package/dist/animations/slide-up/slide-up.d.ts.map +1 -0
- package/dist/animations/slide-up/types.d.ts +3 -0
- package/dist/animations/slide-up/types.d.ts.map +1 -0
- package/dist/animations/slide-up.js +24 -0
- package/dist/animations/slide-up.js.map +1 -0
- package/dist/animations/slide-up.mjs +21 -0
- package/dist/animations/slide-up.mjs.map +1 -0
- package/dist/animations/spin/index.d.ts +4 -0
- package/dist/animations/spin/index.d.ts.map +1 -0
- package/dist/animations/spin/presets.d.ts +18 -0
- package/dist/animations/spin/presets.d.ts.map +1 -0
- package/dist/animations/spin/spin.d.ts +5 -0
- package/dist/animations/spin/spin.d.ts.map +1 -0
- package/dist/animations/spin/types.d.ts +3 -0
- package/dist/animations/spin/types.d.ts.map +1 -0
- package/dist/animations/spin.js +20 -0
- package/dist/animations/spin.js.map +1 -0
- package/dist/animations/spin.mjs +17 -0
- package/dist/animations/spin.mjs.map +1 -0
- package/dist/animations/text-reveal/index.d.ts +4 -0
- package/dist/animations/text-reveal/index.d.ts.map +1 -0
- package/dist/animations/text-reveal/presets.d.ts +22 -0
- package/dist/animations/text-reveal/presets.d.ts.map +1 -0
- package/dist/animations/text-reveal/text-reveal.d.ts +5 -0
- package/dist/animations/text-reveal/text-reveal.d.ts.map +1 -0
- package/dist/animations/text-reveal/types.d.ts +3 -0
- package/dist/animations/text-reveal/types.d.ts.map +1 -0
- package/dist/animations/text-reveal.js +24 -0
- package/dist/animations/text-reveal.js.map +1 -0
- package/dist/animations/text-reveal.mjs +21 -0
- package/dist/animations/text-reveal.mjs.map +1 -0
- package/dist/animations/text-shimmer/index.d.ts +4 -0
- package/dist/animations/text-shimmer/index.d.ts.map +1 -0
- package/dist/animations/text-shimmer/presets.d.ts +19 -0
- package/dist/animations/text-shimmer/presets.d.ts.map +1 -0
- package/dist/animations/text-shimmer/text-shimmer.d.ts +5 -0
- package/dist/animations/text-shimmer/text-shimmer.d.ts.map +1 -0
- package/dist/animations/text-shimmer/types.d.ts +3 -0
- package/dist/animations/text-shimmer/types.d.ts.map +1 -0
- package/dist/animations/text-shimmer.js +24 -0
- package/dist/animations/text-shimmer.js.map +1 -0
- package/dist/animations/text-shimmer.mjs +21 -0
- package/dist/animations/text-shimmer.mjs.map +1 -0
- package/dist/animations/tilt/index.d.ts +4 -0
- package/dist/animations/tilt/index.d.ts.map +1 -0
- package/dist/animations/tilt/presets.d.ts +24 -0
- package/dist/animations/tilt/presets.d.ts.map +1 -0
- package/dist/animations/tilt/tilt.d.ts +5 -0
- package/dist/animations/tilt/tilt.d.ts.map +1 -0
- package/dist/animations/tilt/types.d.ts +3 -0
- package/dist/animations/tilt/types.d.ts.map +1 -0
- package/dist/animations/tilt.js +24 -0
- package/dist/animations/tilt.js.map +1 -0
- package/dist/animations/tilt.mjs +21 -0
- package/dist/animations/tilt.mjs.map +1 -0
- package/dist/animations/wiggle/index.d.ts +4 -0
- package/dist/animations/wiggle/index.d.ts.map +1 -0
- package/dist/animations/wiggle/presets.d.ts +19 -0
- package/dist/animations/wiggle/presets.d.ts.map +1 -0
- package/dist/animations/wiggle/types.d.ts +3 -0
- package/dist/animations/wiggle/types.d.ts.map +1 -0
- package/dist/animations/wiggle/wiggle.d.ts +5 -0
- package/dist/animations/wiggle/wiggle.d.ts.map +1 -0
- package/dist/animations/wiggle.js +29 -0
- package/dist/animations/wiggle.js.map +1 -0
- package/dist/animations/wiggle.mjs +26 -0
- package/dist/animations/wiggle.mjs.map +1 -0
- package/dist/charts/shared/variants.d.ts +1 -1
- package/dist/{chunk-RKX5MERK.js → chunk-2F7P4EJQ.js} +2 -2
- package/dist/chunk-2F7P4EJQ.js.map +1 -0
- package/dist/{chunk-MEAVYU2Y.mjs → chunk-2ZKW2E7B.mjs} +10 -3
- package/dist/chunk-2ZKW2E7B.mjs.map +1 -0
- package/dist/{chunk-CL3VH223.mjs → chunk-3F4FF2H4.mjs} +3 -9
- package/dist/chunk-3F4FF2H4.mjs.map +1 -0
- package/dist/{chunk-LMIL2R4R.js → chunk-3J3FYIG3.js} +10 -3
- package/dist/chunk-3J3FYIG3.js.map +1 -0
- package/dist/{chunk-ABOZ5QIX.js → chunk-466QDL44.js} +5 -12
- package/dist/chunk-466QDL44.js.map +1 -0
- package/dist/chunk-4ZP444GA.mjs +19 -0
- package/dist/chunk-4ZP444GA.mjs.map +1 -0
- package/dist/chunk-AACGI7FX.mjs +67 -0
- package/dist/chunk-AACGI7FX.mjs.map +1 -0
- package/dist/{chunk-XXRDLZW7.mjs → chunk-BJSWQQSC.mjs} +2 -2
- package/dist/{chunk-XXRDLZW7.mjs.map → chunk-BJSWQQSC.mjs.map} +1 -1
- package/dist/{chunk-HDO5ZM2S.mjs → chunk-CIEZFHCO.mjs} +3 -10
- package/dist/chunk-CIEZFHCO.mjs.map +1 -0
- package/dist/{chunk-VYI3GS2C.mjs → chunk-CJXGDY7A.mjs} +10 -3
- package/dist/chunk-CJXGDY7A.mjs.map +1 -0
- package/dist/{chunk-7TGUGTTQ.mjs → chunk-ECLHBSC6.mjs} +2 -2
- package/dist/chunk-ECLHBSC6.mjs.map +1 -0
- package/dist/{chunk-SFRS4EZ5.mjs → chunk-IM6KN77X.mjs} +3 -10
- package/dist/chunk-IM6KN77X.mjs.map +1 -0
- package/dist/{chunk-QQ6F4LZK.js → chunk-JFS5PJSH.js} +5 -5
- package/dist/{chunk-QQ6F4LZK.js.map → chunk-JFS5PJSH.js.map} +1 -1
- package/dist/chunk-MUP7DVQR.js +26 -0
- package/dist/chunk-MUP7DVQR.js.map +1 -0
- package/dist/{chunk-4OCTFG3W.js → chunk-NSJ6KGW2.js} +2 -2
- package/dist/{chunk-4OCTFG3W.js.map → chunk-NSJ6KGW2.js.map} +1 -1
- package/dist/chunk-ODZM25II.js +69 -0
- package/dist/chunk-ODZM25II.js.map +1 -0
- package/dist/{chunk-DN7TYUJ6.js → chunk-RFT2FLQT.js} +10 -3
- package/dist/chunk-RFT2FLQT.js.map +1 -0
- package/dist/{chunk-PMALYOPA.js → chunk-UY65KX3M.js} +3 -10
- package/dist/chunk-UY65KX3M.js.map +1 -0
- package/dist/{chunk-ASJQP53L.mjs → chunk-VARQ7W4G.mjs} +3 -3
- package/dist/{chunk-ASJQP53L.mjs.map → chunk-VARQ7W4G.mjs.map} +1 -1
- package/dist/{chunk-KTLJEPLF.js → chunk-VHVQELWF.js} +3 -9
- package/dist/chunk-VHVQELWF.js.map +1 -0
- package/dist/design-system/copy-button.d.ts.map +1 -1
- package/dist/design-system/kbd.d.ts.map +1 -1
- package/dist/design-system/tokens.js +32 -0
- package/dist/design-system/tokens.js.map +1 -0
- package/dist/design-system/tokens.mjs +3 -0
- package/dist/design-system/tokens.mjs.map +1 -0
- package/dist/hooks/useTableSort/index.d.ts +1 -1
- package/dist/hooks/useTableSort/index.d.ts.map +1 -1
- package/dist/ui/accordion/variants.d.ts +2 -2
- package/dist/ui/alert/animated.js.map +1 -1
- package/dist/ui/alert/animated.mjs.map +1 -1
- package/dist/ui/animated-number/animated-number.d.ts.map +1 -1
- package/dist/ui/animated-number/types.d.ts.map +1 -1
- package/dist/ui/animated-number/variants.d.ts.map +1 -1
- package/dist/ui/animated-number.js.map +1 -1
- package/dist/ui/animated-number.mjs.map +1 -1
- package/dist/ui/badge/variants.d.ts +1 -1
- package/dist/ui/buttons/animated.js +4 -3
- package/dist/ui/buttons/animated.js.map +1 -1
- package/dist/ui/buttons/animated.mjs +2 -1
- package/dist/ui/buttons/animated.mjs.map +1 -1
- package/dist/ui/buttons/variants.d.ts +1 -1
- package/dist/ui/buttons.js +5 -4
- package/dist/ui/buttons.mjs +3 -2
- package/dist/ui/card/variants.d.ts +1 -1
- package/dist/ui/checkbox/animated/checkbox-animated.d.ts.map +1 -1
- package/dist/ui/checkbox/animated.js.map +1 -1
- package/dist/ui/checkbox/animated.mjs.map +1 -1
- package/dist/ui/checkbox/checkbox-base.d.ts.map +1 -1
- package/dist/ui/checkbox/types.d.ts.map +1 -1
- package/dist/ui/checkbox.js +1 -8
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/checkbox.mjs +1 -8
- package/dist/ui/checkbox.mjs.map +1 -1
- package/dist/ui/command/animated.js +2 -2
- package/dist/ui/command/animated.mjs +1 -1
- package/dist/ui/command/index.d.ts +1 -1
- package/dist/ui/command/index.d.ts.map +1 -1
- package/dist/ui/command/types.d.ts.map +1 -1
- package/dist/ui/command.js +15 -15
- package/dist/ui/command.mjs +2 -2
- package/dist/ui/context-menu/variants.d.ts +2 -2
- package/dist/ui/copy-button/animated.js +2 -2
- package/dist/ui/copy-button/animated.mjs +1 -1
- package/dist/ui/copy-button/types.d.ts.map +1 -1
- package/dist/ui/copy-button/variants.d.ts +1 -1
- package/dist/ui/copy-button.js +3 -3
- package/dist/ui/copy-button.mjs +2 -2
- package/dist/ui/drawer/animated.js +11 -11
- package/dist/ui/drawer/animated.mjs +2 -2
- package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
- package/dist/ui/drawer/variants.d.ts +1 -1
- package/dist/ui/drawer.js +11 -11
- package/dist/ui/drawer.mjs +1 -1
- package/dist/ui/dropdown/variants.d.ts +4 -4
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/dynamic-stepper.js +5 -4
- package/dist/ui/dynamic-stepper.js.map +1 -1
- package/dist/ui/dynamic-stepper.mjs +3 -2
- package/dist/ui/dynamic-stepper.mjs.map +1 -1
- package/dist/ui/inputs/variants.d.ts +1 -1
- package/dist/ui/kbd/animated/kbd-animated.d.ts.map +1 -1
- package/dist/ui/kbd/animated.js +6 -3
- package/dist/ui/kbd/animated.js.map +1 -1
- package/dist/ui/kbd/animated.mjs +5 -2
- package/dist/ui/kbd/animated.mjs.map +1 -1
- package/dist/ui/kbd/kbd-base.d.ts.map +1 -1
- package/dist/ui/kbd/types.d.ts.map +1 -1
- package/dist/ui/kbd/variants.d.ts +1 -1
- package/dist/ui/kbd.js +4 -4
- package/dist/ui/kbd.mjs +2 -2
- package/dist/ui/marquee/variants.d.ts +1 -1
- package/dist/ui/otp-input/variants.d.ts +1 -1
- package/dist/ui/pagination/variants.d.ts +1 -1
- package/dist/ui/pagination.js +5 -4
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +2 -1
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/popover/animated.js +4 -4
- package/dist/ui/popover/animated.mjs +1 -1
- package/dist/ui/popover/popover-base.d.ts.map +1 -1
- package/dist/ui/popover/types.d.ts.map +1 -1
- package/dist/ui/popover/variants.d.ts +1 -1
- package/dist/ui/popover.js +7 -7
- package/dist/ui/popover.mjs +1 -1
- package/dist/ui/progress/variants.d.ts +1 -1
- package/dist/ui/radio-group/animated/index.d.ts +1 -1
- package/dist/ui/radio-group/animated/index.d.ts.map +1 -1
- package/dist/ui/radio-group/animated/radio-group-animated.d.ts.map +1 -1
- package/dist/ui/radio-group/animated.js.map +1 -1
- package/dist/ui/radio-group/animated.mjs.map +1 -1
- package/dist/ui/radio-group/radio-group.d.ts.map +1 -1
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/radio-group.mjs.map +1 -1
- package/dist/ui/rating/variants.d.ts +1 -1
- package/dist/ui/scroll-area/variants.d.ts +1 -1
- package/dist/ui/select/variants.d.ts +4 -4
- package/dist/ui/stepper/variants.d.ts +1 -1
- package/dist/ui/timeline/animated/index.d.ts +1 -1
- package/dist/ui/timeline/animated/index.d.ts.map +1 -1
- package/dist/ui/timeline/animated/timeline-item-animated.d.ts.map +1 -1
- package/dist/ui/timeline/animated.js.map +1 -1
- package/dist/ui/timeline/animated.mjs.map +1 -1
- package/dist/ui/timeline/types.d.ts.map +1 -1
- package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
- package/dist/ui/toggle/animated.js +12 -5
- package/dist/ui/toggle/animated.js.map +1 -1
- package/dist/ui/toggle/animated.mjs +9 -2
- package/dist/ui/toggle/animated.mjs.map +1 -1
- package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
- package/dist/ui/toggle.js +4 -4
- package/dist/ui/toggle.mjs +2 -2
- package/dist/ui/tooltip/variants.d.ts +1 -1
- package/dist/ui/tree-view/variants.d.ts +2 -2
- package/dist/ui/typography/variants.d.ts +2 -2
- package/package.json +14 -2
- package/src/animations/animations.test.tsx +129 -0
- package/src/animations/blur-in/blur-in.tsx +11 -0
- package/src/animations/blur-in/index.ts +5 -0
- package/src/animations/blur-in/presets.ts +8 -0
- package/src/animations/blur-in/types.ts +3 -0
- package/src/animations/blur-out/blur-out.tsx +11 -0
- package/src/animations/blur-out/index.ts +5 -0
- package/src/animations/blur-out/presets.ts +8 -0
- package/src/animations/blur-out/types.ts +3 -0
- package/src/animations/bounce/bounce.tsx +11 -0
- package/src/animations/bounce/index.ts +5 -0
- package/src/animations/bounce/presets.ts +13 -0
- package/src/animations/bounce/types.ts +3 -0
- package/src/animations/fade-down/fade-down.tsx +11 -0
- package/src/animations/fade-down/index.ts +5 -0
- package/src/animations/fade-down/presets.ts +8 -0
- package/src/animations/fade-down/types.ts +3 -0
- package/src/animations/fade-in/fade-in.tsx +11 -0
- package/src/animations/fade-in/index.ts +5 -0
- package/src/animations/fade-in/presets.ts +8 -0
- package/src/animations/fade-in/types.ts +3 -0
- package/src/animations/fade-left/fade-left.tsx +11 -0
- package/src/animations/fade-left/index.ts +5 -0
- package/src/animations/fade-left/presets.ts +8 -0
- package/src/animations/fade-left/types.ts +3 -0
- package/src/animations/fade-out/fade-out.tsx +11 -0
- package/src/animations/fade-out/index.ts +5 -0
- package/src/animations/fade-out/presets.ts +8 -0
- package/src/animations/fade-out/types.ts +3 -0
- package/src/animations/fade-right/fade-right.tsx +11 -0
- package/src/animations/fade-right/index.ts +5 -0
- package/src/animations/fade-right/presets.ts +8 -0
- package/src/animations/fade-right/types.ts +3 -0
- package/src/animations/fade-up/fade-up.tsx +11 -0
- package/src/animations/fade-up/index.ts +5 -0
- package/src/animations/fade-up/presets.ts +8 -0
- package/src/animations/fade-up/types.ts +3 -0
- package/src/animations/flip/flip.tsx +7 -0
- package/src/animations/flip/index.ts +5 -0
- package/src/animations/flip/presets.ts +13 -0
- package/src/animations/flip/types.ts +3 -0
- package/src/animations/flip-in/flip-in.tsx +11 -0
- package/src/animations/flip-in/index.ts +5 -0
- package/src/animations/flip-in/presets.ts +8 -0
- package/src/animations/flip-in/types.ts +3 -0
- package/src/animations/float/float.tsx +11 -0
- package/src/animations/float/index.ts +5 -0
- package/src/animations/float/presets.ts +8 -0
- package/src/animations/float/types.ts +3 -0
- package/src/animations/hover-lift/hover-lift.tsx +11 -0
- package/src/animations/hover-lift/index.ts +5 -0
- package/src/animations/hover-lift/presets.ts +10 -0
- package/src/animations/hover-lift/types.ts +3 -0
- package/src/animations/hover-scale/hover-scale.tsx +11 -0
- package/src/animations/hover-scale/index.ts +5 -0
- package/src/animations/hover-scale/presets.ts +10 -0
- package/src/animations/hover-scale/types.ts +3 -0
- package/src/animations/magnetic/index.ts +5 -0
- package/src/animations/magnetic/magnetic.tsx +11 -0
- package/src/animations/magnetic/presets.ts +10 -0
- package/src/animations/magnetic/types.ts +3 -0
- package/src/animations/parallax/index.ts +5 -0
- package/src/animations/parallax/parallax.tsx +11 -0
- package/src/animations/parallax/presets.ts +8 -0
- package/src/animations/parallax/types.ts +3 -0
- package/src/animations/ping/index.ts +5 -0
- package/src/animations/ping/ping.tsx +7 -0
- package/src/animations/ping/presets.ts +13 -0
- package/src/animations/ping/types.ts +3 -0
- package/src/animations/pop-in/index.ts +5 -0
- package/src/animations/pop-in/pop-in.tsx +11 -0
- package/src/animations/pop-in/presets.ts +8 -0
- package/src/animations/pop-in/types.ts +3 -0
- package/src/animations/press/index.ts +5 -0
- package/src/animations/press/presets.ts +9 -0
- package/src/animations/press/press.tsx +11 -0
- package/src/animations/press/types.ts +3 -0
- package/src/animations/progress/index.ts +5 -0
- package/src/animations/progress/presets.ts +8 -0
- package/src/animations/progress/progress.tsx +11 -0
- package/src/animations/progress/types.ts +3 -0
- package/src/animations/pulse/index.ts +5 -0
- package/src/animations/pulse/presets.ts +8 -0
- package/src/animations/pulse/pulse.tsx +11 -0
- package/src/animations/pulse/types.ts +3 -0
- package/src/animations/reorder/index.ts +5 -0
- package/src/animations/reorder/presets.ts +10 -0
- package/src/animations/reorder/reorder.tsx +11 -0
- package/src/animations/reorder/types.ts +3 -0
- package/src/animations/reveal-blur/index.ts +5 -0
- package/src/animations/reveal-blur/presets.ts +8 -0
- package/src/animations/reveal-blur/reveal-blur.tsx +11 -0
- package/src/animations/reveal-blur/types.ts +3 -0
- package/src/animations/reveal-down/index.ts +5 -0
- package/src/animations/reveal-down/presets.ts +8 -0
- package/src/animations/reveal-down/reveal-down.tsx +11 -0
- package/src/animations/reveal-down/types.ts +3 -0
- package/src/animations/reveal-left/index.ts +5 -0
- package/src/animations/reveal-left/presets.ts +8 -0
- package/src/animations/reveal-left/reveal-left.tsx +11 -0
- package/src/animations/reveal-left/types.ts +3 -0
- package/src/animations/reveal-right/index.ts +5 -0
- package/src/animations/reveal-right/presets.ts +8 -0
- package/src/animations/reveal-right/reveal-right.tsx +11 -0
- package/src/animations/reveal-right/types.ts +3 -0
- package/src/animations/reveal-up/index.ts +5 -0
- package/src/animations/reveal-up/presets.ts +8 -0
- package/src/animations/reveal-up/reveal-up.tsx +11 -0
- package/src/animations/reveal-up/types.ts +3 -0
- package/src/animations/rotate-in/index.ts +5 -0
- package/src/animations/rotate-in/presets.ts +8 -0
- package/src/animations/rotate-in/rotate-in.tsx +11 -0
- package/src/animations/rotate-in/types.ts +3 -0
- package/src/animations/scale-in/index.ts +5 -0
- package/src/animations/scale-in/presets.ts +8 -0
- package/src/animations/scale-in/scale-in.tsx +11 -0
- package/src/animations/scale-in/types.ts +3 -0
- package/src/animations/scale-out/index.ts +5 -0
- package/src/animations/scale-out/presets.ts +8 -0
- package/src/animations/scale-out/scale-out.tsx +11 -0
- package/src/animations/scale-out/types.ts +3 -0
- package/src/animations/shake/index.ts +5 -0
- package/src/animations/shake/presets.ts +13 -0
- package/src/animations/shake/shake.tsx +11 -0
- package/src/animations/shake/types.ts +3 -0
- package/src/animations/shared/create-motion-animation.tsx +89 -0
- package/src/animations/shared/index.ts +2 -0
- package/src/animations/shared/types.ts +34 -0
- package/src/animations/skeleton-shimmer/index.ts +5 -0
- package/src/animations/skeleton-shimmer/presets.ts +8 -0
- package/src/animations/skeleton-shimmer/skeleton-shimmer.tsx +11 -0
- package/src/animations/skeleton-shimmer/types.ts +3 -0
- package/src/animations/slide-down/index.ts +5 -0
- package/src/animations/slide-down/presets.ts +8 -0
- package/src/animations/slide-down/slide-down.tsx +11 -0
- package/src/animations/slide-down/types.ts +3 -0
- package/src/animations/slide-left/index.ts +5 -0
- package/src/animations/slide-left/presets.ts +8 -0
- package/src/animations/slide-left/slide-left.tsx +11 -0
- package/src/animations/slide-left/types.ts +3 -0
- package/src/animations/slide-right/index.ts +5 -0
- package/src/animations/slide-right/presets.ts +8 -0
- package/src/animations/slide-right/slide-right.tsx +11 -0
- package/src/animations/slide-right/types.ts +3 -0
- package/src/animations/slide-up/index.ts +5 -0
- package/src/animations/slide-up/presets.ts +8 -0
- package/src/animations/slide-up/slide-up.tsx +11 -0
- package/src/animations/slide-up/types.ts +3 -0
- package/src/animations/spin/index.ts +5 -0
- package/src/animations/spin/presets.ts +8 -0
- package/src/animations/spin/spin.tsx +7 -0
- package/src/animations/spin/types.ts +3 -0
- package/src/animations/text-reveal/index.ts +5 -0
- package/src/animations/text-reveal/presets.ts +8 -0
- package/src/animations/text-reveal/text-reveal.tsx +11 -0
- package/src/animations/text-reveal/types.ts +3 -0
- package/src/animations/text-shimmer/index.ts +5 -0
- package/src/animations/text-shimmer/presets.ts +8 -0
- package/src/animations/text-shimmer/text-shimmer.tsx +11 -0
- package/src/animations/text-shimmer/types.ts +3 -0
- package/src/animations/tilt/index.ts +5 -0
- package/src/animations/tilt/presets.ts +12 -0
- package/src/animations/tilt/tilt.tsx +7 -0
- package/src/animations/tilt/types.ts +3 -0
- package/src/animations/wiggle/index.ts +5 -0
- package/src/animations/wiggle/presets.ts +13 -0
- package/src/animations/wiggle/types.ts +3 -0
- package/src/animations/wiggle/wiggle.tsx +11 -0
- package/src/design-system/copy-button.ts +5 -10
- package/src/design-system/kbd.ts +5 -10
- package/src/hooks/useTableFilter/types.ts +1 -1
- package/src/hooks/useTableSort/index.ts +1 -4
- package/src/ui/alert/animated/alert-animated.tsx +1 -1
- package/src/ui/animated-number/animated-number.tsx +7 -1
- package/src/ui/animated-number/types.ts +10 -1
- package/src/ui/animated-number/variants.ts +7 -4
- package/src/ui/checkbox/animated/checkbox-animated.tsx +3 -1
- package/src/ui/checkbox/checkbox-base.tsx +4 -6
- package/src/ui/checkbox/checkbox.test.tsx +4 -4
- package/src/ui/checkbox/types.ts +4 -7
- package/src/ui/command/command-base.tsx +2 -2
- package/src/ui/command/command.test.tsx +10 -24
- package/src/ui/command/index.ts +1 -1
- package/src/ui/command/types.ts +1 -2
- package/src/ui/context-menu/context-menu.test.tsx +30 -0
- package/src/ui/copy-button/types.ts +4 -2
- package/src/ui/drawer/drawer-base.tsx +1 -4
- package/src/ui/dropdown/dropdown.tsx +1 -1
- package/src/ui/kbd/animated/kbd-animated.tsx +4 -1
- package/src/ui/kbd/kbd-base.tsx +4 -1
- package/src/ui/kbd/kbd.test.tsx +1 -3
- package/src/ui/kbd/types.ts +4 -2
- package/src/ui/modal/modal.test.tsx +24 -0
- package/src/ui/peer-isolation.test.ts +81 -0
- package/src/ui/popover/popover-base.tsx +1 -3
- package/src/ui/popover/types.ts +2 -2
- package/src/ui/radio-group/animated/index.ts +4 -1
- package/src/ui/radio-group/animated/radio-group-animated.tsx +3 -1
- package/src/ui/radio-group/radio-group.test.tsx +3 -1
- package/src/ui/radio-group/radio-group.tsx +4 -5
- package/src/ui/select/select.test.tsx +98 -2
- package/src/ui/timeline/animated/index.ts +1 -4
- package/src/ui/timeline/animated/timeline-item-animated.tsx +1 -4
- package/src/ui/timeline/types.ts +1 -4
- package/src/ui/toggle/animated/toggle-animated.tsx +6 -1
- package/src/ui/toggle/toggle-base.tsx +6 -1
- package/src/ui/tree-view/tree-view.test.tsx +6 -2
- package/dist/chunk-7TGUGTTQ.mjs.map +0 -1
- package/dist/chunk-ABOZ5QIX.js.map +0 -1
- package/dist/chunk-CL3VH223.mjs.map +0 -1
- package/dist/chunk-DN7TYUJ6.js.map +0 -1
- package/dist/chunk-HDO5ZM2S.mjs.map +0 -1
- package/dist/chunk-KTLJEPLF.js.map +0 -1
- package/dist/chunk-LMIL2R4R.js.map +0 -1
- package/dist/chunk-MEAVYU2Y.mjs.map +0 -1
- package/dist/chunk-PMALYOPA.js.map +0 -1
- package/dist/chunk-RKX5MERK.js.map +0 -1
- package/dist/chunk-SFRS4EZ5.mjs.map +0 -1
- package/dist/chunk-VYI3GS2C.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -9,31 +9,46 @@ A React UI kit for building product interfaces with Tailwind CSS. Components are
|
|
|
9
9
|
|
|
10
10
|
The library targets **React 18+** apps that use **Tailwind CSS v4** (or an equivalent setup where Tailwind can scan this package via `@source`). Styling uses utility classes; **class-variance-authority** powers variant APIs (size, appearance, and similar props), with **clsx** and **tailwind-merge** for predictable `className` composition. Component variants are light-theme ready by default and include paired `dark:` Tailwind classes for dark-mode surfaces, text, borders, focus rings, gradients, and form controls. **Framer Motion** backs motion where a feature ships animated variants, and **react-icons** is used for iconography where applicable.
|
|
11
11
|
|
|
12
|
-
Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@zentauri-ui/zentauri-components/ui/<area>` for static UI, `@zentauri-ui/zentauri-components/ui/<area>/animated` where a motion bundle exists, `@zentauri-ui/zentauri-components/charts/<type>` for Recharts-powered chart primitives, and `@zentauri-ui/zentauri-components/hooks/<entry>` for React hooks (and shared helpers under `hooks/utils`). Base UI entries do **not** re-export animated components; motion lives on its own entry so optional `framer-motion` usage stays tree-shakeable and chunk-friendly. Each entry resolves to its own ESM (`.mjs`), CJS (`.js`), and types (`.d.ts`) so bundlers pull only what you import. Most apps rely on Tailwind scanning the package sources (see installation); a separate CSS import is not required for that setup.
|
|
12
|
+
Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@zentauri-ui/zentauri-components/ui/<area>` for static UI, `@zentauri-ui/zentauri-components/ui/<area>/animated` where a motion bundle exists, `@zentauri-ui/zentauri-components/animations/<name>` for standalone Motion wrappers, `@zentauri-ui/zentauri-components/charts/<type>` for Recharts-powered chart primitives, and `@zentauri-ui/zentauri-components/hooks/<entry>` for React hooks (and shared helpers under `hooks/utils`). Base UI entries do **not** re-export animated components; motion lives on its own entry so optional `framer-motion` usage stays tree-shakeable and chunk-friendly. Each entry resolves to its own ESM (`.mjs`), CJS (`.js`), and types (`.d.ts`) so bundlers pull only what you import. Most apps rely on Tailwind scanning the package sources (see installation); a separate CSS import is not required for that setup.
|
|
13
|
+
|
|
14
|
+
## Current package surface
|
|
15
|
+
|
|
16
|
+
| Surface | Count | Import shape |
|
|
17
|
+
| ------------------- | ----: | ----------------------------------------------------- |
|
|
18
|
+
| Static UI entries | 42 | `@zentauri-ui/zentauri-components/ui/<name>` |
|
|
19
|
+
| Animated UI entries | 27 | `@zentauri-ui/zentauri-components/ui/<name>/animated` |
|
|
20
|
+
| Animation entries | 41 | `@zentauri-ui/zentauri-components/animations/<name>` |
|
|
21
|
+
| Chart entries | 9 | `@zentauri-ui/zentauri-components/charts/<type>` |
|
|
22
|
+
| Hook entries | 28 | `@zentauri-ui/zentauri-components/hooks/<entry>` |
|
|
23
|
+
|
|
24
|
+
`spinner` is the only animated-only UI area. Import it from `@zentauri-ui/zentauri-components/ui/spinner/animated`; there is no `@zentauri-ui/zentauri-components/ui/spinner` static entry.
|
|
13
25
|
|
|
14
26
|
## Package status and test coverage
|
|
15
27
|
|
|
16
28
|
| Metric | Result |
|
|
17
29
|
| ---------- | ---------------- |
|
|
18
|
-
| Test files |
|
|
19
|
-
| Tests |
|
|
30
|
+
| Test files | 77 passed (77) |
|
|
31
|
+
| Tests | 591 passed (591) |
|
|
20
32
|
|
|
21
33
|
| Area | Test files | Tests |
|
|
22
34
|
| --------------------------- | ---------- | ----- |
|
|
23
|
-
| Components and UI utilities |
|
|
35
|
+
| Components and UI utilities | 46 | 433 |
|
|
36
|
+
| Standalone animations | 1 | 42 |
|
|
24
37
|
| React hooks | 28 | 101 |
|
|
25
|
-
| CLI and import rewriting | 2 |
|
|
38
|
+
| CLI and import rewriting | 2 | 15 |
|
|
26
39
|
|
|
27
40
|
### Per-suite snapshot
|
|
28
41
|
|
|
29
42
|
| Suite | Tests |
|
|
30
43
|
| ----------------------------------------------------------------------- | ----: |
|
|
31
44
|
| `src/ui/dynamic-stepper/dynamic-stepper.test.tsx` | 8 |
|
|
32
|
-
| `src/ui/select/select.test.tsx` |
|
|
45
|
+
| `src/ui/select/select.test.tsx` | 10 |
|
|
33
46
|
| `src/charts/charts.test.tsx` | 6 |
|
|
34
|
-
| `src/ui/modal/modal.test.tsx` |
|
|
47
|
+
| `src/ui/modal/modal.test.tsx` | 10 |
|
|
35
48
|
| `src/ui/drawer/drawer.test.tsx` | 7 |
|
|
36
|
-
| `
|
|
49
|
+
| `src/ui/peer-isolation.test.ts` | 29 |
|
|
50
|
+
| `cli/cli.integration.test.ts` | 10 |
|
|
51
|
+
| `src/animations/animations.test.tsx` | 42 |
|
|
37
52
|
| `src/ui/buttons/button.test.tsx` | 41 |
|
|
38
53
|
| `src/ui/inputs/input.test.tsx` | 40 |
|
|
39
54
|
| `src/ui/marquee/marquee.test.tsx` | 10 |
|
|
@@ -43,7 +58,7 @@ Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@ze
|
|
|
43
58
|
| `src/ui/checkbox/checkbox.test.tsx` | 6 |
|
|
44
59
|
| `src/ui/popover/popover.test.tsx` | 4 |
|
|
45
60
|
| `src/ui/command/command.test.tsx` | 7 |
|
|
46
|
-
| `src/ui/context-menu/context-menu.test.tsx` |
|
|
61
|
+
| `src/ui/context-menu/context-menu.test.tsx` | 10 |
|
|
47
62
|
| `src/ui/copy-button/copy-button.test.tsx` | 8 |
|
|
48
63
|
| `src/ui/kbd/kbd.test.tsx` | 7 |
|
|
49
64
|
| `src/ui/tooltip/tooltip.test.tsx` | 4 |
|
|
@@ -106,12 +121,13 @@ Published artifacts live under `dist/`. Imports use **per-entry subpaths**: `@ze
|
|
|
106
121
|
|
|
107
122
|
## Package exports
|
|
108
123
|
|
|
109
|
-
| Subpath | Description
|
|
110
|
-
| ----------------------------------------------------- |
|
|
111
|
-
| `@zentauri-ui/zentauri-components/ui/<name>` | Single UI area: static primitives, compound parts, variants, and types. Does **not** include Framer Motion–based animated exports.
|
|
112
|
-
| `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**).
|
|
113
|
-
| `@zentauri-ui/zentauri-components/
|
|
114
|
-
| `@zentauri-ui/zentauri-components/
|
|
124
|
+
| Subpath | Description |
|
|
125
|
+
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
126
|
+
| `@zentauri-ui/zentauri-components/ui/<name>` | Single UI area: static primitives, compound parts, variants, and types. Does **not** include Framer Motion–based animated exports. |
|
|
127
|
+
| `@zentauri-ui/zentauri-components/ui/<name>/animated` | Motion entry for that area when published: animated components, motion presets, and related types (depends on **framer-motion**). |
|
|
128
|
+
| `@zentauri-ui/zentauri-components/animations/<name>` | Standalone Motion wrapper and preset entry for reusable transitions such as `fade-in`, `scale-in`, and `blur-out` (depends on **framer-motion**). |
|
|
129
|
+
| `@zentauri-ui/zentauri-components/charts/<type>` | Responsive Recharts chart entry for `area`, `bar`, `stacked-bar`, `radar`, `scatter`, `bubble`, `funnel`, `line`, or `pie`, with shared variants, palettes, and exported chart prop types. |
|
|
130
|
+
| `@zentauri-ui/zentauri-components/hooks/<entry>` | One hook module or `utils` (`cn`, `clampPage`, `range` from `src/lib/utils.ts`). Entries match files under `src/hooks/` (see **React hooks**). |
|
|
115
131
|
|
|
116
132
|
The UI `<name>` segment matches the folder under `src/ui/` (for example `accordion`, `select`, `empty-state`, `buttons` for `Button`, `inputs` for `Input`, `typography` for `Heading` / `Text` and related primitives). The hooks `<entry>` is the file stem (for example `useMediaQuery`, `usePagination`) or `utils`.
|
|
117
133
|
|
|
@@ -124,10 +140,39 @@ Only a subset of UI areas publish a `/animated` entry (see **Components**). Some
|
|
|
124
140
|
|
|
125
141
|
Published motion entries (same `<name>` as the base UI folder):
|
|
126
142
|
|
|
127
|
-
`accordion`, `alert`, `avatar`, `badge`, `buttons`, `card`, `checkbox`, `divider`, `drawer`, `empty-state`, `inputs`, `modal`, `popover`, `progress`, `radio-group`, `skeleton`, `spinner`, `table`, `tabs`, `toast`, `toggle`, `tooltip`, `tree-view`
|
|
143
|
+
`accordion`, `alert`, `avatar`, `badge`, `buttons`, `card`, `checkbox`, `command`, `copy-button`, `divider`, `drawer`, `empty-state`, `inputs`, `kbd`, `modal`, `popover`, `progress`, `radio-group`, `skeleton`, `spinner`, `table`, `tabs`, `timeline`, `toast`, `toggle`, `tooltip`, `tree-view`
|
|
128
144
|
|
|
129
145
|
**Spinner:** only the motion entry is built—import from `@zentauri-ui/zentauri-components/ui/spinner/animated` (there is no separate `ui/spinner` static bundle).
|
|
130
146
|
|
|
147
|
+
## Animations
|
|
148
|
+
|
|
149
|
+
Standalone animations live outside `ui/*` under `@zentauri-ui/zentauri-components/animations/<name>`. They are small **framer-motion** wrappers around `motion.div`, designed for composing page sections, cards, panels, list items, and route-level content without coupling the motion preset to a UI primitive.
|
|
150
|
+
|
|
151
|
+
**Animation entries:** `fade-in`, `fade-out`, `fade-up`, `fade-down`, `fade-left`, `fade-right`, `scale-in`, `scale-out`, `pop-in`, `blur-in`, `blur-out`, `slide-up`, `slide-down`, `slide-left`, `slide-right`, `reveal-up`, `reveal-down`, `reveal-left`, `reveal-right`, `reveal-blur`, `text-reveal`, `text-shimmer`, `rotate-in`, `pulse`, `ping`, `shake`, `bounce`, `wiggle`, `float`, `spin`, `flip`, `flip-in`, `tilt`, `magnetic`, `hover-lift`, `hover-scale`, `press`, `reorder`, `skeleton-shimmer`, `progress`, `parallax`.
|
|
152
|
+
|
|
153
|
+
Each entry exports a named component and its preset object, for example `FadeIn` and `fadeInPreset`. Components accept regular `HTMLMotionProps<"div">`, so you can pass `className`, `transition`, `initial`, `animate`, `exit`, and accessibility attributes directly.
|
|
154
|
+
|
|
155
|
+
For lighter customization without replacing the whole Motion target, pass `from`, `to`, and `exitTo`. These override preset values for `opacity`, `x`, `y`, `scale`, `scaleX`, `scaleY`, `rotate`, `rotateX`, `rotateY`, and `blur`.
|
|
156
|
+
|
|
157
|
+
```tsx
|
|
158
|
+
import { FadeIn } from "@zentauri-ui/zentauri-components/animations/fade-in";
|
|
159
|
+
import { ScaleIn } from "@zentauri-ui/zentauri-components/animations/scale-in";
|
|
160
|
+
|
|
161
|
+
export function MotionPanel() {
|
|
162
|
+
return (
|
|
163
|
+
<FadeIn className="rounded-xl border border-white/10 bg-white/5 p-4">
|
|
164
|
+
<ScaleIn
|
|
165
|
+
from={{ scale: 0.92, blur: 8 }}
|
|
166
|
+
to={{ scale: 1, blur: 0 }}
|
|
167
|
+
transition={{ duration: 0.2 }}
|
|
168
|
+
>
|
|
169
|
+
Content with a nested scale entrance.
|
|
170
|
+
</ScaleIn>
|
|
171
|
+
</FadeIn>
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
131
176
|
## Requirements
|
|
132
177
|
|
|
133
178
|
- **React** and **React DOM** `>= 18` (peer dependencies)
|
|
@@ -142,6 +187,7 @@ Import static primitives from `@zentauri-ui/zentauri-components/ui/<subpath>` wh
|
|
|
142
187
|
| --------------- | ----------------- | ---------------------------------- |
|
|
143
188
|
| Accordion | `accordion` | `accordion/animated` |
|
|
144
189
|
| Alert | `alert` | `alert/animated` |
|
|
190
|
+
| Animated number | `animated-number` | — |
|
|
145
191
|
| Avatar | `avatar` | `avatar/animated` |
|
|
146
192
|
| Badge | `badge` | `badge/animated` |
|
|
147
193
|
| Breadcrumb | `breadcrumb` | — |
|
|
@@ -169,7 +215,7 @@ Import static primitives from `@zentauri-ui/zentauri-components/ui/<subpath>` wh
|
|
|
169
215
|
| Rating | `rating` | — |
|
|
170
216
|
| Radio group | `radio-group` | `radio-group/animated` |
|
|
171
217
|
| Scroll area | `scroll-area` | — |
|
|
172
|
-
| Search | `search` |
|
|
218
|
+
| Search | `search` | — |
|
|
173
219
|
| Select | `select` | — |
|
|
174
220
|
| Skeleton | `skeleton` | `skeleton/animated` |
|
|
175
221
|
| Slider | `slider` | — |
|
|
@@ -177,6 +223,7 @@ Import static primitives from `@zentauri-ui/zentauri-components/ui/<subpath>` wh
|
|
|
177
223
|
| Stepper | `stepper` | — |
|
|
178
224
|
| Table | `table` | `table/animated` |
|
|
179
225
|
| Tabs | `tabs` | `tabs/animated` |
|
|
226
|
+
| Timeline | `timeline` | `timeline/animated` |
|
|
180
227
|
| Toast | `toast` | `toast/animated` |
|
|
181
228
|
| Toggle | `toggle` | `toggle/animated` |
|
|
182
229
|
| Tooltip | `tooltip` | `tooltip/animated` |
|
|
@@ -430,7 +477,7 @@ yarn add react react-dom class-variance-authority clsx tailwind-merge
|
|
|
430
477
|
|
|
431
478
|
#### Optional: animations, icons, and charts
|
|
432
479
|
|
|
433
|
-
Add **`framer-motion`** when you import any `@zentauri-ui/zentauri-components/ui/<name>/animated` entry
|
|
480
|
+
Add **`framer-motion`** when you import any `@zentauri-ui/zentauri-components/ui/<name>/animated` entry, any `@zentauri-ui/zentauri-components/animations/<name>` entry, or **Spinner** (which is only published under `ui/spinner/animated`). Add **`react-icons`** when using icon sets from that package. Add **`recharts`** when you import any `@zentauri-ui/zentauri-components/charts/<type>` entry or vendor charts with the CLI.
|
|
434
481
|
|
|
435
482
|
```bash
|
|
436
483
|
npm install framer-motion react-icons recharts
|
|
@@ -444,7 +491,7 @@ pnpm add framer-motion react-icons recharts
|
|
|
444
491
|
yarn add framer-motion react-icons recharts
|
|
445
492
|
```
|
|
446
493
|
|
|
447
|
-
Published `dist/` files **import** these packages; they are **not** vendored inside `@zentauri-ui/zentauri-components`. Static `ui/<name>` bundles do not depend on `framer-motion`; only `ui/<name>/animated` entries do. Chart bundles are isolated to `charts/<type>` entries and depend on `recharts`. Your app installs peers via `dependencies` where needed, and your bundler resolves them from `node_modules`.
|
|
494
|
+
Published `dist/` files **import** these packages; they are **not** vendored inside `@zentauri-ui/zentauri-components`. Static `ui/<name>` bundles do not depend on `framer-motion`; only `ui/<name>/animated` and `animations/<name>` entries do. Chart bundles are isolated to `charts/<type>` entries and depend on `recharts`. Your app installs peers via `dependencies` where needed, and your bundler resolves them from `node_modules`.
|
|
448
495
|
|
|
449
496
|
### Next.js: smaller route chunks
|
|
450
497
|
|
|
@@ -512,7 +559,7 @@ Place these rules in your global stylesheet (for example `globals.css`) after Ta
|
|
|
512
559
|
|
|
513
560
|
### Step 4 — Import and use components and hooks
|
|
514
561
|
|
|
515
|
-
Use **one subpath per UI area** (static and animated are separate entries: `ui/<name>` vs `ui/<name>/animated`) and **one subpath per hook module** so the bundler resolves only the entries you use.
|
|
562
|
+
Use **one subpath per UI area** (static and animated are separate entries: `ui/<name>` vs `ui/<name>/animated`), **one subpath per animation**, and **one subpath per hook module** so the bundler resolves only the entries you use.
|
|
516
563
|
|
|
517
564
|
#### Imports (single UI area)
|
|
518
565
|
|
|
@@ -557,6 +604,13 @@ import { ButtonAnimated } from "@zentauri-ui/zentauri-components/ui/buttons/anim
|
|
|
557
604
|
import { Spinner } from "@zentauri-ui/zentauri-components/ui/spinner/animated";
|
|
558
605
|
```
|
|
559
606
|
|
|
607
|
+
#### Imports (standalone animations)
|
|
608
|
+
|
|
609
|
+
```tsx
|
|
610
|
+
import { FadeUp } from "@zentauri-ui/zentauri-components/animations/fade-up";
|
|
611
|
+
import { BlurIn } from "@zentauri-ui/zentauri-components/animations/blur-in";
|
|
612
|
+
```
|
|
613
|
+
|
|
560
614
|
#### Usage
|
|
561
615
|
|
|
562
616
|
```tsx
|
|
@@ -589,9 +643,9 @@ import { Spinner } from "@zentauri-ui/zentauri-components/ui/spinner/animated";
|
|
|
589
643
|
|
|
590
644
|
## CLI — copy component source into your app
|
|
591
645
|
|
|
592
|
-
The package ships a small **Node CLI** (`zentauri-components` and `zentauri-ui` point to the same `cli/index.mjs`) that copies **selected** folders from this package’s `src/ui`, `src/charts`, and `src/hooks` into your repository—similar to shadcn/ui. You keep the files, control paths via `components.json`, and imports are rewritten to your path aliases (`@/components/ui`, `@/hooks`, `@/lib/utils`, and so on).
|
|
646
|
+
The package ships a small **Node CLI** (`zentauri-components` and `zentauri-ui` point to the same `cli/index.mjs`) that copies **selected** folders from this package’s `src/ui`, `src/animations`, `src/charts`, and `src/hooks` into your repository—similar to shadcn/ui. You keep the files, control paths via `components.json`, and imports are rewritten to your path aliases (`@/components/ui`, `@/components/animations`, `@/hooks`, `@/lib/utils`, and so on).
|
|
593
647
|
|
|
594
|
-
Which UI folders are valid for `add` is driven by **`cli/registry.json`**: a generated manifest listing every addable directory name (matching `src/ui/<name
|
|
648
|
+
Which UI folders are valid for `add` is driven by **`cli/registry.json`**: a generated manifest listing every addable directory name (matching `src/ui/<name>`, animation entries like `animations/fade-in`, plus chart entries like `charts/area`) plus optional **`nameAliases`** so the CLI accepts friendly tokens (for example `button` → `buttons`).
|
|
595
649
|
|
|
596
650
|
### Commands
|
|
597
651
|
|
|
@@ -600,6 +654,7 @@ Call the published binary by name after the package (recommended so `npx` does n
|
|
|
600
654
|
```bash
|
|
601
655
|
npx @zentauri-ui/zentauri-components init
|
|
602
656
|
npx @zentauri-ui/zentauri-components add buttons inputs
|
|
657
|
+
npx @zentauri-ui/zentauri-components add animations/fade-in
|
|
603
658
|
npx @zentauri-ui/zentauri-components add charts/area charts/line
|
|
604
659
|
npx @zentauri-ui/zentauri-components -h
|
|
605
660
|
```
|
|
@@ -655,9 +710,10 @@ Defaults look like this; edit `resolvedPaths` and `aliases` so they match your a
|
|
|
655
710
|
|
|
656
711
|
### Registry (`cli/registry.json`)
|
|
657
712
|
|
|
658
|
-
- **`components`**: sorted list of folder names under **`src/ui/`**, plus chart entries from **`src/charts/<type>`**, that `add` may copy. The file is **generated**; the canonical build
|
|
713
|
+
- **`components`**: sorted list of folder names under **`src/ui/`**, plus chart entries from **`src/charts/<type>`**, that `add` may copy. The file is **generated**; the canonical build lists live in **`tsup.config.ts`** as `uiComponentNames`, `uiAnimatedComponentNames`, and `chartEntryNames`, so animated-only entries such as **`spinner`** stay aligned with the CLI.
|
|
659
714
|
- **`hooks`**: sorted list of folder names under **`src/hooks/`** that `add hook` may copy; generated from **`hooksEntryNames`** in **`tsup.config.ts`** (same entries as published `…/hooks/<name>` subpaths).
|
|
660
|
-
- **`nameAliases`**: optional map from a CLI token to a real folder name
|
|
715
|
+
- **`nameAliases`**: optional map from a CLI token to a real folder name: `button` → `buttons`, `input` → `inputs` (singular forms while folders stay plural), and `chart-<type>` → `charts/<type>` for every chart (so `add chart-line` and `add charts/line` are equivalent).
|
|
716
|
+
- **`peerHints`**: generated map from a component/chart name to the **optional peer dependencies** its source imports (`framer-motion` for components that ship an `animated/` variant, `react-icons` where icons are used, `recharts` for every chart). After `add`, the CLI prints a deduplicated install hint built from this map, so you never have to guess which peers a vendored component needs.
|
|
661
717
|
|
|
662
718
|
Example: these are equivalent when `nameAliases` is configured:
|
|
663
719
|
|
|
@@ -668,6 +724,45 @@ zentauri-components add buttons
|
|
|
668
724
|
|
|
669
725
|
After `add`, imports inside copied `.ts`/`.tsx` files are rewritten using your `aliases`; test files (`*.test.*`, `*.spec.*`) from the package are not copied.
|
|
670
726
|
|
|
727
|
+
### Worked examples
|
|
728
|
+
|
|
729
|
+
```bash
|
|
730
|
+
# A static UI primitive — copies src/ui/buttons plus the shared design-system tokens it imports.
|
|
731
|
+
zentauri-ui add button
|
|
732
|
+
|
|
733
|
+
# A chart — copies src/charts/line and the shared chart frame; CLI hints `recharts`.
|
|
734
|
+
zentauri-ui add charts/line
|
|
735
|
+
|
|
736
|
+
# A hook on its own — copies src/hooks/useClipboard (plus any sibling hooks it imports).
|
|
737
|
+
zentauri-ui add hook useClipboard
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
### Vendored destination structure
|
|
741
|
+
|
|
742
|
+
Given the default `components.json`, running `zentauri-ui add button charts/line` then `add hook useClipboard` produces:
|
|
743
|
+
|
|
744
|
+
```
|
|
745
|
+
your-app/
|
|
746
|
+
├── components.json
|
|
747
|
+
└── src/
|
|
748
|
+
├── components/
|
|
749
|
+
│ ├── design-system/ # shared token + variant strings (copied once, never overwritten)
|
|
750
|
+
│ │ └── button.ts
|
|
751
|
+
│ └── ui/
|
|
752
|
+
│ ├── buttons/ # the component folder (index.ts, button.tsx, variants.ts, …)
|
|
753
|
+
│ └── charts/
|
|
754
|
+
│ ├── shared/ # chart frame + helpers shared by every chart
|
|
755
|
+
│ └── line/ # the requested chart entry only
|
|
756
|
+
├── hooks/
|
|
757
|
+
│ └── useClipboard/ # hooks pulled in by components or `add hook`
|
|
758
|
+
└── lib/
|
|
759
|
+
└── utils.ts # cn() helper, created from the package template if missing
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
- `design-system/` lands beside `ui/` (one level up from `resolvedPaths.ui`) so vendored components keep their `../../design-system/*` imports working without a new alias. Existing files there are left untouched on re-add.
|
|
763
|
+
- Charts always land under `<ui>/charts/`, with a single shared `charts/shared/` folder regardless of how many chart types you add.
|
|
764
|
+
- Re-adding a component overwrites that component's files but preserves your `design-system/` and `lib/utils.ts` edits.
|
|
765
|
+
|
|
671
766
|
### When to use the CLI vs npm imports
|
|
672
767
|
|
|
673
768
|
| Approach | Best when |
|
|
@@ -681,14 +776,47 @@ Tailwind still needs to see the classes your **copied** files use—point `@sour
|
|
|
681
776
|
|
|
682
777
|
https://zentauri-ui.vercel.app/
|
|
683
778
|
|
|
779
|
+
## Accessibility checklist for contributors
|
|
780
|
+
|
|
781
|
+
Every new or changed component should clear this bar before it merges. The
|
|
782
|
+
highest-risk primitives (overlays and keyboard-heavy controls) are expected to
|
|
783
|
+
have explicit tests for the items below.
|
|
784
|
+
|
|
785
|
+
**Semantics & ARIA**
|
|
786
|
+
|
|
787
|
+
- [ ] Correct landmark/role for the pattern (`dialog`, `menu`/`menuitem`, `listbox`/`option`, `tab`/`tabpanel`, `slider`, `tree`/`treeitem`, …).
|
|
788
|
+
- [ ] State is announced: `aria-expanded`, `aria-selected`, `aria-checked`, `aria-disabled`, `aria-current` as appropriate.
|
|
789
|
+
- [ ] Overlays set `aria-modal` and wire `aria-labelledby` / `aria-describedby` to the rendered title/description.
|
|
790
|
+
- [ ] Compound parts are linked by id (`aria-controls`, `aria-haspopup`) rather than relying on DOM proximity.
|
|
791
|
+
|
|
792
|
+
**Keyboard**
|
|
793
|
+
|
|
794
|
+
- [ ] All interactive parts are reachable and operable by keyboard (Enter/Space activate; Arrow keys navigate where the role implies it).
|
|
795
|
+
- [ ] Roving tabindex for composite widgets (one tab stop; arrows move within).
|
|
796
|
+
- [ ] Dismissible surfaces close on `Escape`.
|
|
797
|
+
- [ ] Focus moves into an opened overlay and **returns to the trigger** on close.
|
|
798
|
+
|
|
799
|
+
**Disabled & edge states**
|
|
800
|
+
|
|
801
|
+
- [ ] Disabled items are skipped by keyboard navigation and ignore pointer activation, and expose `aria-disabled`.
|
|
802
|
+
- [ ] SSR-safe: no access to `window`/`document` during render (guard effects; the package targets React 18+ server rendering).
|
|
803
|
+
|
|
804
|
+
**Motion**
|
|
805
|
+
|
|
806
|
+
- [ ] Animated entries respect `prefers-reduced-motion` (use `usePrefersReducedMotion` / Framer Motion's `useReducedMotion`).
|
|
807
|
+
- [ ] `framer-motion` stays out of static entries — enforced by `src/ui/peer-isolation.test.ts`. Charts stay isolated to `src/charts/*`.
|
|
808
|
+
|
|
809
|
+
Add or extend the component's `*.test.tsx` to cover the items that apply; see
|
|
810
|
+
`modal`, `select`, and `context-menu` tests for worked examples.
|
|
811
|
+
|
|
684
812
|
## Development
|
|
685
813
|
|
|
686
814
|
From this package directory in the monorepo:
|
|
687
815
|
|
|
688
|
-
- `pnpm build` (or `npm run build`) — production bundle via `tsup` (Rollup treeshake + `scripts/prepend-use-client.mjs` via `onSuccess` so each UI entry under `dist/ui/`,
|
|
816
|
+
- `pnpm build` (or `npm run build`) — production bundle via `tsup` (Rollup treeshake + `scripts/prepend-use-client.mjs` via `onSuccess` so each UI entry under `dist/ui/`, animation entry under `dist/animations/`, chart entry under `dist/charts/`, and `dist/ui/<name>/animated.*` starts with `"use client"` where needed)
|
|
689
817
|
- `pnpm dev` — `tsup` watch mode (same `onSuccess` hook after each rebuild)
|
|
690
|
-
- `pnpm test` / `pnpm test:watch` — **Vitest** and **Testing Library** unit tests // covered
|
|
691
|
-
- **`pnpm run generate:registry`** — runs `scripts/generate-registry.mjs`, which reads **`uiComponentNames`**, **`chartEntryNames`**, and **`hooksEntryNames`** from `tsup.config.ts`,
|
|
818
|
+
- `pnpm test` / `pnpm test:watch` — **Vitest** and **Testing Library** unit tests // covered 591 test cases in total
|
|
819
|
+
- **`pnpm run generate:registry`** — runs `scripts/generate-registry.mjs`, which reads **`uiComponentNames`**, **`uiAnimatedComponentNames`**, **`animationEntryNames`**, **`chartEntryNames`**, and **`hooksEntryNames`** from `tsup.config.ts`, applies fixed **`nameAliases`**, scans each component/chart source to build **`peerHints`**, and writes **`cli/registry.json`** (`components` + `animations` + `hooks` + `peerHints`). Run this after adding or renaming UI, animation, chart, or hook entries so the CLI stays in sync (the script prints counts).
|
|
692
820
|
|
|
693
821
|
## Github Release log
|
|
694
822
|
|
|
@@ -9,8 +9,8 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
9
9
|
const packageRoot = join(__dirname, "..");
|
|
10
10
|
const cliEntry = join(packageRoot, "cli", "index.mjs");
|
|
11
11
|
|
|
12
|
-
function runCli(cwd: string, args: string[]) {
|
|
13
|
-
execFileSync(process.execPath, [cliEntry, ...args], {
|
|
12
|
+
function runCli(cwd: string, args: string[]): string {
|
|
13
|
+
return execFileSync(process.execPath, [cliEntry, ...args], {
|
|
14
14
|
cwd,
|
|
15
15
|
encoding: "utf8",
|
|
16
16
|
stdio: ["pipe", "pipe", "pipe"],
|
|
@@ -84,4 +84,96 @@ describe("zentauri-ui CLI", () => {
|
|
|
84
84
|
rmSync(dir, { recursive: true, force: true });
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
|
+
|
|
88
|
+
it("should add a chart entry under charts/ and hint recharts", () => {
|
|
89
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-chart-"));
|
|
90
|
+
try {
|
|
91
|
+
runCli(dir, ["init"]);
|
|
92
|
+
const out = runCli(dir, ["add", "charts/line"]);
|
|
93
|
+
expect(
|
|
94
|
+
existsSync(join(dir, "src/components/ui/charts/line/index.ts")),
|
|
95
|
+
).toBe(true);
|
|
96
|
+
// chart-line alias resolves to charts/line as well
|
|
97
|
+
expect(out).toContain("recharts");
|
|
98
|
+
} finally {
|
|
99
|
+
rmSync(dir, { recursive: true, force: true });
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("should add an animation entry under animations/ and hint framer-motion", () => {
|
|
104
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-animation-"));
|
|
105
|
+
try {
|
|
106
|
+
runCli(dir, ["init"]);
|
|
107
|
+
const out = runCli(dir, ["add", "animations/fade-in"]);
|
|
108
|
+
expect(
|
|
109
|
+
existsSync(join(dir, "src/components/animations/fade-in/index.ts")),
|
|
110
|
+
).toBe(true);
|
|
111
|
+
expect(
|
|
112
|
+
existsSync(join(dir, "src/components/animations/shared/index.ts")),
|
|
113
|
+
).toBe(true);
|
|
114
|
+
expect(out).toContain("framer-motion");
|
|
115
|
+
} finally {
|
|
116
|
+
rmSync(dir, { recursive: true, force: true });
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it("should add multiple components in one run", () => {
|
|
121
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-multi-"));
|
|
122
|
+
try {
|
|
123
|
+
runCli(dir, ["init"]);
|
|
124
|
+
const out = runCli(dir, ["add", "buttons", "card", "badge"]);
|
|
125
|
+
expect(
|
|
126
|
+
existsSync(join(dir, "src/components/ui/buttons/button.tsx")),
|
|
127
|
+
).toBe(true);
|
|
128
|
+
expect(existsSync(join(dir, "src/components/ui/card/card.tsx"))).toBe(
|
|
129
|
+
true,
|
|
130
|
+
);
|
|
131
|
+
expect(existsSync(join(dir, "src/components/ui/badge/badge.tsx"))).toBe(
|
|
132
|
+
true,
|
|
133
|
+
);
|
|
134
|
+
expect(out).toContain("Adding buttons…");
|
|
135
|
+
expect(out).toContain("Adding badge…");
|
|
136
|
+
} finally {
|
|
137
|
+
rmSync(dir, { recursive: true, force: true });
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it("should print react-icons peer hint for components that use icons", () => {
|
|
142
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-peer-"));
|
|
143
|
+
try {
|
|
144
|
+
runCli(dir, ["init"]);
|
|
145
|
+
const out = runCli(dir, ["add", "rating"]);
|
|
146
|
+
expect(out).toContain("Optional peer dependencies");
|
|
147
|
+
expect(out).toContain("react-icons");
|
|
148
|
+
} finally {
|
|
149
|
+
rmSync(dir, { recursive: true, force: true });
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("should print Tailwind v4 source guidance after adding", () => {
|
|
154
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-tw-"));
|
|
155
|
+
try {
|
|
156
|
+
runCli(dir, ["init"]);
|
|
157
|
+
const out = runCli(dir, ["add", "buttons"]);
|
|
158
|
+
expect(out).toContain("Tailwind v4");
|
|
159
|
+
expect(out).toContain("@source");
|
|
160
|
+
} finally {
|
|
161
|
+
rmSync(dir, { recursive: true, force: true });
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it("should not error when re-adding a component (existing files)", () => {
|
|
166
|
+
const dir = mkdtempSync(join(tmpdir(), "zentauri-cli-reAdd-"));
|
|
167
|
+
try {
|
|
168
|
+
runCli(dir, ["init"]);
|
|
169
|
+
runCli(dir, ["add", "buttons"]);
|
|
170
|
+
// Second add over existing files must succeed and keep the design-system.
|
|
171
|
+
expect(() => runCli(dir, ["add", "buttons"])).not.toThrow();
|
|
172
|
+
expect(
|
|
173
|
+
existsSync(join(dir, "src/components/design-system/button.ts")),
|
|
174
|
+
).toBe(true);
|
|
175
|
+
} finally {
|
|
176
|
+
rmSync(dir, { recursive: true, force: true });
|
|
177
|
+
}
|
|
178
|
+
});
|
|
87
179
|
});
|
package/cli/index.mjs
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* └── src/ui/<name>/ ← source copied by `add`
|
|
23
23
|
* └── src/design-system/ ← shared tokens/variant maps copied by `add`
|
|
24
24
|
* └── src/charts/<type>/ ← chart source copied by `add charts/area` etc.
|
|
25
|
+
* └── src/animations/<name>/ ← animation source copied by `add animations/fade-in`
|
|
25
26
|
* └── src/hooks/<name>/ ← hooks pulled in as dependencies
|
|
26
27
|
* └── src/lib/utils.ts ← template for `cn()` etc. if missing in app
|
|
27
28
|
* ```
|
|
@@ -136,6 +137,7 @@ function loadRegistry() {
|
|
|
136
137
|
function printHelp() {
|
|
137
138
|
const reg = loadRegistry();
|
|
138
139
|
const componentsList = (reg.components ?? []).join("\n");
|
|
140
|
+
const animationsList = (reg.animations ?? []).join("\n");
|
|
139
141
|
const hooksList = (reg.hooks ?? []).join("\n");
|
|
140
142
|
|
|
141
143
|
console.log(`Zentauri UI — copy component source into your app (shadcn-style)
|
|
@@ -148,6 +150,9 @@ Usage:
|
|
|
148
150
|
List of components:
|
|
149
151
|
${componentsList}
|
|
150
152
|
|
|
153
|
+
List of animations:
|
|
154
|
+
${animationsList}
|
|
155
|
+
|
|
151
156
|
List of hooks:
|
|
152
157
|
${hooksList}
|
|
153
158
|
|
|
@@ -278,11 +283,13 @@ function defaultConfig() {
|
|
|
278
283
|
return {
|
|
279
284
|
aliases: {
|
|
280
285
|
ui: "@/components/ui",
|
|
286
|
+
animations: "@/components/animations",
|
|
281
287
|
utils: "@/lib/utils",
|
|
282
288
|
hooks: "@/hooks",
|
|
283
289
|
},
|
|
284
290
|
resolvedPaths: {
|
|
285
291
|
ui: "src/components/ui",
|
|
292
|
+
animations: "src/components/animations",
|
|
286
293
|
utils: "src/lib/utils.ts",
|
|
287
294
|
hooks: "src/hooks",
|
|
288
295
|
},
|
|
@@ -321,7 +328,7 @@ function validateConfig(cfg) {
|
|
|
321
328
|
|
|
322
329
|
/**
|
|
323
330
|
* Maps CLI input (any casing, optional registry alias) to a canonical folder name
|
|
324
|
-
* under `src/ui/<name
|
|
331
|
+
* under `src/ui/<name>`, `src/animations/<name>`, or `src/charts/<type>`.
|
|
325
332
|
*
|
|
326
333
|
* Resolution order:
|
|
327
334
|
* 1. Exact key in `registry.nameAliases`
|
|
@@ -425,10 +432,10 @@ async function collectHookTransitiveClosure(packageRoot, seedHooks) {
|
|
|
425
432
|
}
|
|
426
433
|
|
|
427
434
|
/**
|
|
428
|
-
* Copies `packageRoot/src/ui/<componentName
|
|
429
|
-
*
|
|
430
|
-
* imports in TS/JS files,
|
|
431
|
-
* files for later copying.
|
|
435
|
+
* Copies `packageRoot/src/ui/<componentName>`,
|
|
436
|
+
* `packageRoot/src/animations/<name>`, or `packageRoot/src/charts/<type>` into
|
|
437
|
+
* the configured destination, skipping tests, rewriting imports in TS/JS files,
|
|
438
|
+
* and collecting hook folder names referenced by those files for later copying.
|
|
432
439
|
*
|
|
433
440
|
* @param {string} componentName — resolved registry name (directory under `src/ui`, or `charts/<type>`)
|
|
434
441
|
* @param {object} config — validated `components.json`
|
|
@@ -444,26 +451,44 @@ async function collectHookTransitiveClosure(packageRoot, seedHooks) {
|
|
|
444
451
|
*/
|
|
445
452
|
async function copyUiComponent(componentName, config, configDir, packageRoot) {
|
|
446
453
|
const isChartEntry = componentName.startsWith("charts/");
|
|
454
|
+
const isAnimationEntry = componentName.startsWith("animations/");
|
|
455
|
+
const animationName = componentName.slice("animations/".length);
|
|
447
456
|
const srcRoot = isChartEntry
|
|
448
457
|
? join(packageRoot, "src", "charts")
|
|
449
|
-
:
|
|
458
|
+
: isAnimationEntry
|
|
459
|
+
? join(packageRoot, "src", "animations")
|
|
460
|
+
: join(packageRoot, "src", "ui", componentName);
|
|
450
461
|
if (!existsSync(srcRoot)) {
|
|
451
462
|
throw new Error(
|
|
452
463
|
`Missing package source: ${relative(packageRoot, srcRoot)}`,
|
|
453
464
|
);
|
|
454
465
|
}
|
|
466
|
+
const animationsPath =
|
|
467
|
+
config.resolvedPaths.animations ??
|
|
468
|
+
join(dirname(config.resolvedPaths.ui), "animations");
|
|
455
469
|
const destRoot = isChartEntry
|
|
456
470
|
? join(configDir, config.resolvedPaths.ui, "charts")
|
|
457
|
-
:
|
|
471
|
+
: isAnimationEntry
|
|
472
|
+
? join(configDir, animationsPath)
|
|
473
|
+
: join(configDir, config.resolvedPaths.ui, componentName);
|
|
458
474
|
const files = (await walkFiles(srcRoot)).filter((absSrc) => {
|
|
459
|
-
if (
|
|
460
|
-
|
|
475
|
+
if (isAnimationEntry) {
|
|
476
|
+
const relFromAnimationsRoot = relative(srcRoot, absSrc);
|
|
477
|
+
return (
|
|
478
|
+
relFromAnimationsRoot.startsWith("shared/") ||
|
|
479
|
+
relFromAnimationsRoot.startsWith(`${animationName}/`)
|
|
480
|
+
);
|
|
461
481
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
482
|
+
if (isChartEntry) {
|
|
483
|
+
const relFromChartsRoot = relative(srcRoot, absSrc);
|
|
484
|
+
return (
|
|
485
|
+
relFromChartsRoot.startsWith("shared/") ||
|
|
486
|
+
relFromChartsRoot.startsWith(
|
|
487
|
+
`${componentName.slice("charts/".length)}/`,
|
|
488
|
+
)
|
|
489
|
+
);
|
|
490
|
+
}
|
|
491
|
+
return true;
|
|
467
492
|
});
|
|
468
493
|
const usedHooks = new Set();
|
|
469
494
|
|
|
@@ -599,6 +624,63 @@ async function ensureUtilsFile(config, configDir, packageRoot) {
|
|
|
599
624
|
console.log(`Created ${relative(configDir, dest)}`);
|
|
600
625
|
}
|
|
601
626
|
|
|
627
|
+
/**
|
|
628
|
+
* Human-readable note explaining why each optional peer dependency may be
|
|
629
|
+
* needed, so the install hint is self-explanatory.
|
|
630
|
+
*/
|
|
631
|
+
const PEER_HINT_REASONS = {
|
|
632
|
+
"framer-motion": "only if you use animated UI or animation entries",
|
|
633
|
+
"react-icons": "icons used by this component",
|
|
634
|
+
recharts: "required to render charts",
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* Prints optional peer-dependency install hints and Tailwind v4 scanning
|
|
639
|
+
* guidance after a successful `add`. Hints come from `registry.peerHints`
|
|
640
|
+
* (generated by scripts/generate-registry.mjs). Silent when nothing applies.
|
|
641
|
+
*
|
|
642
|
+
* @param {string[]} resolvedNames — canonical component/chart names that were added
|
|
643
|
+
* @param {object} registry — from `loadRegistry()`
|
|
644
|
+
* @param {object} config — validated `components.json` (for resolvedPaths.ui)
|
|
645
|
+
*/
|
|
646
|
+
function printAdoptionHints(resolvedNames, registry, config) {
|
|
647
|
+
const peerHints = registry.peerHints ?? {};
|
|
648
|
+
/** @type {Map<string, string[]>} peer -> component names that need it */
|
|
649
|
+
const needed = new Map();
|
|
650
|
+
for (const name of resolvedNames) {
|
|
651
|
+
for (const peer of peerHints[name] ?? []) {
|
|
652
|
+
if (!needed.has(peer)) {
|
|
653
|
+
needed.set(peer, []);
|
|
654
|
+
}
|
|
655
|
+
needed.get(peer).push(name);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
if (needed.size > 0) {
|
|
660
|
+
console.log("\nOptional peer dependencies:");
|
|
661
|
+
for (const [peer, users] of needed) {
|
|
662
|
+
const reason = PEER_HINT_REASONS[peer] ?? "";
|
|
663
|
+
console.log(
|
|
664
|
+
` - ${peer}${reason ? ` (${reason})` : ""} — used by ${users.join(", ")}`,
|
|
665
|
+
);
|
|
666
|
+
}
|
|
667
|
+
console.log(` Install with: npm i ${[...needed.keys()].join(" ")}`);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
const uiPath = config?.resolvedPaths?.ui ?? "your components directory";
|
|
671
|
+
const animationsPath =
|
|
672
|
+
config?.resolvedPaths?.animations ?? "your animations directory";
|
|
673
|
+
console.log(
|
|
674
|
+
`\nTailwind v4: vendored files live in ${uiPath}, so they are scanned automatically when inside your app's content sources.`,
|
|
675
|
+
);
|
|
676
|
+
if (resolvedNames.some((name) => name.startsWith("animations/"))) {
|
|
677
|
+
console.log(` Animation files live in ${animationsPath}.`);
|
|
678
|
+
}
|
|
679
|
+
console.log(
|
|
680
|
+
` If you placed them elsewhere, add: @source "${uiPath}"; (light + dark: classes are paired, so the whole tree must be scanned)`,
|
|
681
|
+
);
|
|
682
|
+
}
|
|
683
|
+
|
|
602
684
|
/**
|
|
603
685
|
* `zentauri-components init` — writes default `components.json` next to `--cwd`.
|
|
604
686
|
*
|
|
@@ -707,6 +789,7 @@ async function cmdAdd(names, cwd) {
|
|
|
707
789
|
}
|
|
708
790
|
|
|
709
791
|
console.log("Done.");
|
|
792
|
+
printAdoptionHints(resolvedNames, registry, config);
|
|
710
793
|
}
|
|
711
794
|
|
|
712
795
|
/**
|