ilyass-tv-kit 1.0.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/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # ILYASS TV Kit
2
+
3
+ Premium UI/Animation kit for ILYASS TV projects. Shared components, animations, design tokens, and utilities.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install ilyass-tv-kit framer-motion
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Animation Variants
14
+
15
+ ```tsx
16
+ import { fadeIn, fadeInUp, staggerContainer, scaleIn } from "ilyass-tv-kit"
17
+ import { motion } from "framer-motion"
18
+
19
+ <motion.div variants={fadeIn} initial="hidden" whileInView="visible">
20
+ Animated content
21
+ </motion.div>
22
+ ```
23
+
24
+ ### Pre-typed Motion Components
25
+
26
+ ```tsx
27
+ import { MotionDiv, MotionSection } from "ilyass-tv-kit"
28
+
29
+ <MotionDiv variants={fadeInUp} initial="hidden" whileInView="visible">
30
+ Typed motion.div
31
+ </MotionDiv>
32
+ ```
33
+
34
+ ### cn Utility
35
+
36
+ ```tsx
37
+ import { cn } from "ilyass-tv-kit"
38
+
39
+ cn("px-4 py-2", isActive && "bg-blue-500")
40
+ ```
41
+
42
+ ### Design Tokens
43
+
44
+ ```tsx
45
+ import { darkTheme, lightTheme } from "ilyass-tv-kit"
46
+
47
+ // Apply theme to :root
48
+ Object.entries(darkTheme).forEach(([key, value]) => {
49
+ document.documentElement.style.setProperty(key, value)
50
+ })
51
+ ```
52
+
53
+ ## Package Contents
54
+
55
+ | Path | Exports |
56
+ |------|---------|
57
+ | `ilyass-tv-kit` | All |
58
+ | `ilyass-tv-kit/animations` | Variants + Motion components |
59
+ | `ilyass-tv-kit/utils` | cn utility |
60
+ | `ilyass-tv-kit/tokens` | Dark/Light theme tokens |
61
+
62
+ ## Variants
63
+
64
+ | Variant | Effect | Duration |
65
+ |---------|--------|----------|
66
+ | `fadeIn` | Opacity + y:20 | 0.6s |
67
+ | `fadeInUp` | Opacity + y:40 | 0.7s |
68
+ | `fadeInLeft` | Opacity + x:-30 | 0.6s |
69
+ | `fadeInRight` | Opacity + x:30 | 0.6s |
70
+ | `scaleIn` | Opacity + scale:0.92 | 0.5s |
71
+ | `slideUp` | Opacity + y:100% | 0.8s |
72
+ | `staggerContainer` | staggerChildren: 0.08s | - |
73
+ | `listStagger` | staggerChildren: 0.04s | - |
74
+ | `listItem` | Opacity + x:-10 | 0.3s |
75
+
76
+ All use the custom easing `[0.16, 1, 0.3, 1]`.
77
+
78
+ ## License
79
+
80
+ MIT
@@ -0,0 +1,60 @@
1
+ import * as framer_motion from 'framer-motion';
2
+ import { Variants } from 'framer-motion';
3
+
4
+ declare const ease: readonly [0.16, 1, 0.3, 1];
5
+ declare const fadeIn: Variants;
6
+ declare const fadeInUp: Variants;
7
+ declare const fadeInLeft: Variants;
8
+ declare const fadeInRight: Variants;
9
+ declare const scaleIn: Variants;
10
+ declare const staggerContainer: Variants;
11
+ declare const slideUp: Variants;
12
+ declare const float: Variants;
13
+ declare const cardHover: {
14
+ rest: {
15
+ scale: number;
16
+ boxShadow: string;
17
+ transition: {
18
+ duration: number;
19
+ ease: readonly [0.16, 1, 0.3, 1];
20
+ };
21
+ };
22
+ hover: {
23
+ scale: number;
24
+ boxShadow: string;
25
+ transition: {
26
+ duration: number;
27
+ ease: readonly [0.16, 1, 0.3, 1];
28
+ };
29
+ };
30
+ };
31
+ declare const pageTransition: Variants;
32
+ declare const sidebarVariants: Variants;
33
+ declare const mobileMenu: Variants;
34
+ declare const dropdown: Variants;
35
+ declare const shimmer: Variants;
36
+ declare const buttonTap: {
37
+ scale: number;
38
+ };
39
+ declare const listStagger: Variants;
40
+ declare const listItem: Variants;
41
+
42
+ declare const MotionDiv: framer_motion.ForwardRefComponent<HTMLDivElement, framer_motion.HTMLMotionProps<Tag>>;
43
+ declare const MotionSpan: framer_motion.ForwardRefComponent<HTMLSpanElement, framer_motion.HTMLMotionProps<Tag>>;
44
+ declare const MotionSection: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
45
+ declare const MotionNav: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
46
+ declare const MotionLi: framer_motion.ForwardRefComponent<HTMLLIElement, framer_motion.HTMLMotionProps<Tag>>;
47
+ declare const MotionButton: framer_motion.ForwardRefComponent<HTMLButtonElement, framer_motion.HTMLMotionProps<Tag>>;
48
+ declare const MotionA: framer_motion.ForwardRefComponent<HTMLAnchorElement, framer_motion.HTMLMotionProps<Tag>>;
49
+ declare const MotionImg: framer_motion.ForwardRefComponent<HTMLImageElement, framer_motion.HTMLMotionProps<Tag>>;
50
+ declare const MotionP: framer_motion.ForwardRefComponent<HTMLParagraphElement, framer_motion.HTMLMotionProps<Tag>>;
51
+ declare const MotionH1: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
52
+ declare const MotionH2: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
53
+ declare const MotionH3: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
54
+ declare const MotionUl: framer_motion.ForwardRefComponent<HTMLUListElement, framer_motion.HTMLMotionProps<Tag>>;
55
+ declare const MotionHeader: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
56
+ declare const MotionFooter: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
57
+ declare const MotionMain: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
58
+ declare const MotionAside: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
59
+
60
+ export { MotionA, MotionAside, MotionButton, MotionDiv, MotionFooter, MotionH1, MotionH2, MotionH3, MotionHeader, MotionImg, MotionLi, MotionMain, MotionNav, MotionP, MotionSection, MotionSpan, MotionUl, buttonTap, cardHover, dropdown, ease, fadeIn, fadeInLeft, fadeInRight, fadeInUp, float, listItem, listStagger, mobileMenu, pageTransition, scaleIn, shimmer, sidebarVariants, slideUp, staggerContainer };
@@ -0,0 +1,60 @@
1
+ import * as framer_motion from 'framer-motion';
2
+ import { Variants } from 'framer-motion';
3
+
4
+ declare const ease: readonly [0.16, 1, 0.3, 1];
5
+ declare const fadeIn: Variants;
6
+ declare const fadeInUp: Variants;
7
+ declare const fadeInLeft: Variants;
8
+ declare const fadeInRight: Variants;
9
+ declare const scaleIn: Variants;
10
+ declare const staggerContainer: Variants;
11
+ declare const slideUp: Variants;
12
+ declare const float: Variants;
13
+ declare const cardHover: {
14
+ rest: {
15
+ scale: number;
16
+ boxShadow: string;
17
+ transition: {
18
+ duration: number;
19
+ ease: readonly [0.16, 1, 0.3, 1];
20
+ };
21
+ };
22
+ hover: {
23
+ scale: number;
24
+ boxShadow: string;
25
+ transition: {
26
+ duration: number;
27
+ ease: readonly [0.16, 1, 0.3, 1];
28
+ };
29
+ };
30
+ };
31
+ declare const pageTransition: Variants;
32
+ declare const sidebarVariants: Variants;
33
+ declare const mobileMenu: Variants;
34
+ declare const dropdown: Variants;
35
+ declare const shimmer: Variants;
36
+ declare const buttonTap: {
37
+ scale: number;
38
+ };
39
+ declare const listStagger: Variants;
40
+ declare const listItem: Variants;
41
+
42
+ declare const MotionDiv: framer_motion.ForwardRefComponent<HTMLDivElement, framer_motion.HTMLMotionProps<Tag>>;
43
+ declare const MotionSpan: framer_motion.ForwardRefComponent<HTMLSpanElement, framer_motion.HTMLMotionProps<Tag>>;
44
+ declare const MotionSection: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
45
+ declare const MotionNav: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
46
+ declare const MotionLi: framer_motion.ForwardRefComponent<HTMLLIElement, framer_motion.HTMLMotionProps<Tag>>;
47
+ declare const MotionButton: framer_motion.ForwardRefComponent<HTMLButtonElement, framer_motion.HTMLMotionProps<Tag>>;
48
+ declare const MotionA: framer_motion.ForwardRefComponent<HTMLAnchorElement, framer_motion.HTMLMotionProps<Tag>>;
49
+ declare const MotionImg: framer_motion.ForwardRefComponent<HTMLImageElement, framer_motion.HTMLMotionProps<Tag>>;
50
+ declare const MotionP: framer_motion.ForwardRefComponent<HTMLParagraphElement, framer_motion.HTMLMotionProps<Tag>>;
51
+ declare const MotionH1: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
52
+ declare const MotionH2: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
53
+ declare const MotionH3: framer_motion.ForwardRefComponent<HTMLHeadingElement, framer_motion.HTMLMotionProps<Tag>>;
54
+ declare const MotionUl: framer_motion.ForwardRefComponent<HTMLUListElement, framer_motion.HTMLMotionProps<Tag>>;
55
+ declare const MotionHeader: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
56
+ declare const MotionFooter: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
57
+ declare const MotionMain: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
58
+ declare const MotionAside: framer_motion.ForwardRefComponent<HTMLElement, framer_motion.HTMLMotionProps<Tag>>;
59
+
60
+ export { MotionA, MotionAside, MotionButton, MotionDiv, MotionFooter, MotionH1, MotionH2, MotionH3, MotionHeader, MotionImg, MotionLi, MotionMain, MotionNav, MotionP, MotionSection, MotionSpan, MotionUl, buttonTap, cardHover, dropdown, ease, fadeIn, fadeInLeft, fadeInRight, fadeInUp, float, listItem, listStagger, mobileMenu, pageTransition, scaleIn, shimmer, sidebarVariants, slideUp, staggerContainer };
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/animations/index.ts
21
+ var animations_exports = {};
22
+ __export(animations_exports, {
23
+ MotionA: () => MotionA,
24
+ MotionAside: () => MotionAside,
25
+ MotionButton: () => MotionButton,
26
+ MotionDiv: () => MotionDiv,
27
+ MotionFooter: () => MotionFooter,
28
+ MotionH1: () => MotionH1,
29
+ MotionH2: () => MotionH2,
30
+ MotionH3: () => MotionH3,
31
+ MotionHeader: () => MotionHeader,
32
+ MotionImg: () => MotionImg,
33
+ MotionLi: () => MotionLi,
34
+ MotionMain: () => MotionMain,
35
+ MotionNav: () => MotionNav,
36
+ MotionP: () => MotionP,
37
+ MotionSection: () => MotionSection,
38
+ MotionSpan: () => MotionSpan,
39
+ MotionUl: () => MotionUl,
40
+ buttonTap: () => buttonTap,
41
+ cardHover: () => cardHover,
42
+ dropdown: () => dropdown,
43
+ ease: () => ease,
44
+ fadeIn: () => fadeIn,
45
+ fadeInLeft: () => fadeInLeft,
46
+ fadeInRight: () => fadeInRight,
47
+ fadeInUp: () => fadeInUp,
48
+ float: () => float,
49
+ listItem: () => listItem,
50
+ listStagger: () => listStagger,
51
+ mobileMenu: () => mobileMenu,
52
+ pageTransition: () => pageTransition,
53
+ scaleIn: () => scaleIn,
54
+ shimmer: () => shimmer,
55
+ sidebarVariants: () => sidebarVariants,
56
+ slideUp: () => slideUp,
57
+ staggerContainer: () => staggerContainer
58
+ });
59
+ module.exports = __toCommonJS(animations_exports);
60
+
61
+ // src/animations/variants.ts
62
+ var ease = [0.16, 1, 0.3, 1];
63
+ var fadeIn = {
64
+ hidden: { opacity: 0, y: 20 },
65
+ visible: { opacity: 1, y: 0, transition: { duration: 0.6, ease } }
66
+ };
67
+ var fadeInUp = {
68
+ hidden: { opacity: 0, y: 40 },
69
+ visible: { opacity: 1, y: 0, transition: { duration: 0.7, ease } }
70
+ };
71
+ var fadeInLeft = {
72
+ hidden: { opacity: 0, x: -30 },
73
+ visible: { opacity: 1, x: 0, transition: { duration: 0.6, ease } }
74
+ };
75
+ var fadeInRight = {
76
+ hidden: { opacity: 0, x: 30 },
77
+ visible: { opacity: 1, x: 0, transition: { duration: 0.6, ease } }
78
+ };
79
+ var scaleIn = {
80
+ hidden: { opacity: 0, scale: 0.92 },
81
+ visible: { opacity: 1, scale: 1, transition: { duration: 0.5, ease } }
82
+ };
83
+ var staggerContainer = {
84
+ hidden: {},
85
+ visible: {
86
+ transition: { staggerChildren: 0.08, delayChildren: 0.1 }
87
+ }
88
+ };
89
+ var slideUp = {
90
+ hidden: { opacity: 0, y: "100%" },
91
+ visible: { opacity: 1, y: 0, transition: { duration: 0.8, ease } }
92
+ };
93
+ var float = {
94
+ animate: {
95
+ y: [0, -10, 0],
96
+ transition: { duration: 4, repeat: Infinity, ease: "easeInOut" }
97
+ }
98
+ };
99
+ var cardHover = {
100
+ rest: { scale: 1, boxShadow: "var(--shadow-card)", transition: { duration: 0.3, ease } },
101
+ hover: { scale: 1.02, boxShadow: "var(--shadow-card-hover)", transition: { duration: 0.3, ease } }
102
+ };
103
+ var pageTransition = {
104
+ initial: { opacity: 0, y: 12 },
105
+ enter: { opacity: 1, y: 0, transition: { duration: 0.4, ease } },
106
+ exit: { opacity: 0, y: -12, transition: { duration: 0.2, ease } }
107
+ };
108
+ var sidebarVariants = {
109
+ open: { width: 260, transition: { duration: 0.3, ease } },
110
+ closed: { width: 72, transition: { duration: 0.3, ease } }
111
+ };
112
+ var mobileMenu = {
113
+ closed: { x: "-100%", transition: { duration: 0.3, ease } },
114
+ open: { x: 0, transition: { duration: 0.3, ease } }
115
+ };
116
+ var dropdown = {
117
+ closed: { opacity: 0, y: -8, scale: 0.96, pointerEvents: "none" },
118
+ open: { opacity: 1, y: 0, scale: 1, pointerEvents: "auto", transition: { duration: 0.2, ease } }
119
+ };
120
+ var shimmer = {
121
+ hidden: { backgroundPosition: "-200% 0" },
122
+ visible: { backgroundPosition: "200% 0", transition: { duration: 2, repeat: Infinity, ease: "linear" } }
123
+ };
124
+ var buttonTap = { scale: 0.97 };
125
+ var listStagger = {
126
+ hidden: {},
127
+ visible: { transition: { staggerChildren: 0.04, delayChildren: 0.05 } }
128
+ };
129
+ var listItem = {
130
+ hidden: { opacity: 0, x: -10 },
131
+ visible: { opacity: 1, x: 0, transition: { duration: 0.3, ease } }
132
+ };
133
+
134
+ // src/animations/motion.ts
135
+ var import_framer_motion = require("framer-motion");
136
+ var MotionDiv = import_framer_motion.motion.div;
137
+ var MotionSpan = import_framer_motion.motion.span;
138
+ var MotionSection = import_framer_motion.motion.section;
139
+ var MotionNav = import_framer_motion.motion.nav;
140
+ var MotionLi = import_framer_motion.motion.li;
141
+ var MotionButton = import_framer_motion.motion.button;
142
+ var MotionA = import_framer_motion.motion.a;
143
+ var MotionImg = import_framer_motion.motion.img;
144
+ var MotionP = import_framer_motion.motion.p;
145
+ var MotionH1 = import_framer_motion.motion.h1;
146
+ var MotionH2 = import_framer_motion.motion.h2;
147
+ var MotionH3 = import_framer_motion.motion.h3;
148
+ var MotionUl = import_framer_motion.motion.ul;
149
+ var MotionHeader = import_framer_motion.motion.header;
150
+ var MotionFooter = import_framer_motion.motion.footer;
151
+ var MotionMain = import_framer_motion.motion.main;
152
+ var MotionAside = import_framer_motion.motion.aside;
153
+ // Annotate the CommonJS export names for ESM import in node:
154
+ 0 && (module.exports = {
155
+ MotionA,
156
+ MotionAside,
157
+ MotionButton,
158
+ MotionDiv,
159
+ MotionFooter,
160
+ MotionH1,
161
+ MotionH2,
162
+ MotionH3,
163
+ MotionHeader,
164
+ MotionImg,
165
+ MotionLi,
166
+ MotionMain,
167
+ MotionNav,
168
+ MotionP,
169
+ MotionSection,
170
+ MotionSpan,
171
+ MotionUl,
172
+ buttonTap,
173
+ cardHover,
174
+ dropdown,
175
+ ease,
176
+ fadeIn,
177
+ fadeInLeft,
178
+ fadeInRight,
179
+ fadeInUp,
180
+ float,
181
+ listItem,
182
+ listStagger,
183
+ mobileMenu,
184
+ pageTransition,
185
+ scaleIn,
186
+ shimmer,
187
+ sidebarVariants,
188
+ slideUp,
189
+ staggerContainer
190
+ });
@@ -0,0 +1,74 @@
1
+ import {
2
+ MotionA,
3
+ MotionAside,
4
+ MotionButton,
5
+ MotionDiv,
6
+ MotionFooter,
7
+ MotionH1,
8
+ MotionH2,
9
+ MotionH3,
10
+ MotionHeader,
11
+ MotionImg,
12
+ MotionLi,
13
+ MotionMain,
14
+ MotionNav,
15
+ MotionP,
16
+ MotionSection,
17
+ MotionSpan,
18
+ MotionUl,
19
+ buttonTap,
20
+ cardHover,
21
+ dropdown,
22
+ ease,
23
+ fadeIn,
24
+ fadeInLeft,
25
+ fadeInRight,
26
+ fadeInUp,
27
+ float,
28
+ listItem,
29
+ listStagger,
30
+ mobileMenu,
31
+ pageTransition,
32
+ scaleIn,
33
+ shimmer,
34
+ sidebarVariants,
35
+ slideUp,
36
+ staggerContainer
37
+ } from "../chunk-656U4BHL.mjs";
38
+ export {
39
+ MotionA,
40
+ MotionAside,
41
+ MotionButton,
42
+ MotionDiv,
43
+ MotionFooter,
44
+ MotionH1,
45
+ MotionH2,
46
+ MotionH3,
47
+ MotionHeader,
48
+ MotionImg,
49
+ MotionLi,
50
+ MotionMain,
51
+ MotionNav,
52
+ MotionP,
53
+ MotionSection,
54
+ MotionSpan,
55
+ MotionUl,
56
+ buttonTap,
57
+ cardHover,
58
+ dropdown,
59
+ ease,
60
+ fadeIn,
61
+ fadeInLeft,
62
+ fadeInRight,
63
+ fadeInUp,
64
+ float,
65
+ listItem,
66
+ listStagger,
67
+ mobileMenu,
68
+ pageTransition,
69
+ scaleIn,
70
+ shimmer,
71
+ sidebarVariants,
72
+ slideUp,
73
+ staggerContainer
74
+ };
@@ -0,0 +1,130 @@
1
+ // src/animations/variants.ts
2
+ var ease = [0.16, 1, 0.3, 1];
3
+ var fadeIn = {
4
+ hidden: { opacity: 0, y: 20 },
5
+ visible: { opacity: 1, y: 0, transition: { duration: 0.6, ease } }
6
+ };
7
+ var fadeInUp = {
8
+ hidden: { opacity: 0, y: 40 },
9
+ visible: { opacity: 1, y: 0, transition: { duration: 0.7, ease } }
10
+ };
11
+ var fadeInLeft = {
12
+ hidden: { opacity: 0, x: -30 },
13
+ visible: { opacity: 1, x: 0, transition: { duration: 0.6, ease } }
14
+ };
15
+ var fadeInRight = {
16
+ hidden: { opacity: 0, x: 30 },
17
+ visible: { opacity: 1, x: 0, transition: { duration: 0.6, ease } }
18
+ };
19
+ var scaleIn = {
20
+ hidden: { opacity: 0, scale: 0.92 },
21
+ visible: { opacity: 1, scale: 1, transition: { duration: 0.5, ease } }
22
+ };
23
+ var staggerContainer = {
24
+ hidden: {},
25
+ visible: {
26
+ transition: { staggerChildren: 0.08, delayChildren: 0.1 }
27
+ }
28
+ };
29
+ var slideUp = {
30
+ hidden: { opacity: 0, y: "100%" },
31
+ visible: { opacity: 1, y: 0, transition: { duration: 0.8, ease } }
32
+ };
33
+ var float = {
34
+ animate: {
35
+ y: [0, -10, 0],
36
+ transition: { duration: 4, repeat: Infinity, ease: "easeInOut" }
37
+ }
38
+ };
39
+ var cardHover = {
40
+ rest: { scale: 1, boxShadow: "var(--shadow-card)", transition: { duration: 0.3, ease } },
41
+ hover: { scale: 1.02, boxShadow: "var(--shadow-card-hover)", transition: { duration: 0.3, ease } }
42
+ };
43
+ var pageTransition = {
44
+ initial: { opacity: 0, y: 12 },
45
+ enter: { opacity: 1, y: 0, transition: { duration: 0.4, ease } },
46
+ exit: { opacity: 0, y: -12, transition: { duration: 0.2, ease } }
47
+ };
48
+ var sidebarVariants = {
49
+ open: { width: 260, transition: { duration: 0.3, ease } },
50
+ closed: { width: 72, transition: { duration: 0.3, ease } }
51
+ };
52
+ var mobileMenu = {
53
+ closed: { x: "-100%", transition: { duration: 0.3, ease } },
54
+ open: { x: 0, transition: { duration: 0.3, ease } }
55
+ };
56
+ var dropdown = {
57
+ closed: { opacity: 0, y: -8, scale: 0.96, pointerEvents: "none" },
58
+ open: { opacity: 1, y: 0, scale: 1, pointerEvents: "auto", transition: { duration: 0.2, ease } }
59
+ };
60
+ var shimmer = {
61
+ hidden: { backgroundPosition: "-200% 0" },
62
+ visible: { backgroundPosition: "200% 0", transition: { duration: 2, repeat: Infinity, ease: "linear" } }
63
+ };
64
+ var buttonTap = { scale: 0.97 };
65
+ var listStagger = {
66
+ hidden: {},
67
+ visible: { transition: { staggerChildren: 0.04, delayChildren: 0.05 } }
68
+ };
69
+ var listItem = {
70
+ hidden: { opacity: 0, x: -10 },
71
+ visible: { opacity: 1, x: 0, transition: { duration: 0.3, ease } }
72
+ };
73
+
74
+ // src/animations/motion.ts
75
+ import { motion } from "framer-motion";
76
+ var MotionDiv = motion.div;
77
+ var MotionSpan = motion.span;
78
+ var MotionSection = motion.section;
79
+ var MotionNav = motion.nav;
80
+ var MotionLi = motion.li;
81
+ var MotionButton = motion.button;
82
+ var MotionA = motion.a;
83
+ var MotionImg = motion.img;
84
+ var MotionP = motion.p;
85
+ var MotionH1 = motion.h1;
86
+ var MotionH2 = motion.h2;
87
+ var MotionH3 = motion.h3;
88
+ var MotionUl = motion.ul;
89
+ var MotionHeader = motion.header;
90
+ var MotionFooter = motion.footer;
91
+ var MotionMain = motion.main;
92
+ var MotionAside = motion.aside;
93
+
94
+ export {
95
+ ease,
96
+ fadeIn,
97
+ fadeInUp,
98
+ fadeInLeft,
99
+ fadeInRight,
100
+ scaleIn,
101
+ staggerContainer,
102
+ slideUp,
103
+ float,
104
+ cardHover,
105
+ pageTransition,
106
+ sidebarVariants,
107
+ mobileMenu,
108
+ dropdown,
109
+ shimmer,
110
+ buttonTap,
111
+ listStagger,
112
+ listItem,
113
+ MotionDiv,
114
+ MotionSpan,
115
+ MotionSection,
116
+ MotionNav,
117
+ MotionLi,
118
+ MotionButton,
119
+ MotionA,
120
+ MotionImg,
121
+ MotionP,
122
+ MotionH1,
123
+ MotionH2,
124
+ MotionH3,
125
+ MotionUl,
126
+ MotionHeader,
127
+ MotionFooter,
128
+ MotionMain,
129
+ MotionAside
130
+ };
@@ -0,0 +1,10 @@
1
+ // src/utils/cn.ts
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ export {
9
+ cn
10
+ };
@@ -0,0 +1,78 @@
1
+ // src/tokens/colors.ts
2
+ var darkTheme = {
3
+ "--bg-primary": "#06061a",
4
+ "--bg-secondary": "#080828",
5
+ "--bg-tertiary": "#0a0a30",
6
+ "--surface": "#0b0b2e",
7
+ "--surface-hover": "#10103d",
8
+ "--surface-elevated": "#121242",
9
+ "--border": "rgba(34, 211, 238, 0.08)",
10
+ "--border-light": "rgba(255, 255, 255, 0.03)",
11
+ "--border-accent": "rgba(34, 211, 238, 0.18)",
12
+ "--text-primary": "#f0f0fa",
13
+ "--text-secondary": "#9292c0",
14
+ "--text-muted": "#5a5a8a",
15
+ "--accent": "#22d3ee",
16
+ "--accent-light": "#67e8f9",
17
+ "--accent-dark": "#0891b2",
18
+ "--accent-gradient": "linear-gradient(135deg, #22d3ee, #6366f1)",
19
+ "--accent-subtle": "rgba(34, 211, 238, 0.08)",
20
+ "--accent-green": "#34d399",
21
+ "--accent-orange": "#fbbf24",
22
+ "--accent-pink": "#f472b6",
23
+ "--accent-cyan": "#22d3ee",
24
+ "--accent-purple": "#a78bfa",
25
+ "--success": "#34d399",
26
+ "--warning": "#fbbf24",
27
+ "--error": "#f87171",
28
+ "--gradient-blue": "linear-gradient(135deg, #1e3a5f, #2563eb)",
29
+ "--gradient-green": "linear-gradient(135deg, #065f46, #10b981)",
30
+ "--gradient-orange": "linear-gradient(135deg, #92400e, #f59e0b)",
31
+ "--gradient-pink": "linear-gradient(135deg, #831843, #ec4899)",
32
+ "--gradient-cyan": "linear-gradient(135deg, #164e63, #06b6d4)",
33
+ "--gradient-purple": "linear-gradient(135deg, #4c1d95, #8b5cf6)",
34
+ "--gradient-page-bg": "linear-gradient(180deg, #06061a 0%, #080828 40%, #0a0a2c 100%)",
35
+ "--glass-bg": "rgba(8, 8, 36, 0.82)",
36
+ "--glass-border": "rgba(34, 211, 238, 0.06)"
37
+ };
38
+ var lightTheme = {
39
+ "--bg-primary": "#ffffff",
40
+ "--bg-secondary": "#f8faff",
41
+ "--bg-tertiary": "#f0f5ff",
42
+ "--surface": "#ffffff",
43
+ "--surface-hover": "#f8faff",
44
+ "--surface-elevated": "#ffffff",
45
+ "--border": "rgba(37, 99, 235, 0.08)",
46
+ "--border-light": "rgba(0, 0, 0, 0.04)",
47
+ "--border-accent": "rgba(37, 99, 235, 0.18)",
48
+ "--text-primary": "#0a0a1a",
49
+ "--text-secondary": "#52527a",
50
+ "--text-muted": "#8a8aaa",
51
+ "--accent": "#2563eb",
52
+ "--accent-light": "#3b82f6",
53
+ "--accent-dark": "#1d4ed8",
54
+ "--accent-gradient": "linear-gradient(135deg, #2563eb, #3b82f6)",
55
+ "--accent-subtle": "rgba(37, 99, 235, 0.08)",
56
+ "--accent-green": "#10b981",
57
+ "--accent-orange": "#f59e0b",
58
+ "--accent-pink": "#ec4899",
59
+ "--accent-cyan": "#06b6d4",
60
+ "--accent-purple": "#8b5cf6",
61
+ "--success": "#10b981",
62
+ "--warning": "#f59e0b",
63
+ "--error": "#ef4444",
64
+ "--gradient-blue": "linear-gradient(135deg, #dbeafe, #3b82f6)",
65
+ "--gradient-green": "linear-gradient(135deg, #d1fae5, #10b981)",
66
+ "--gradient-orange": "linear-gradient(135deg, #fef3c7, #f59e0b)",
67
+ "--gradient-pink": "linear-gradient(135deg, #fce7f3, #ec4899)",
68
+ "--gradient-cyan": "linear-gradient(135deg, #cffafe, #06b6d4)",
69
+ "--gradient-purple": "linear-gradient(135deg, #ede9fe, #8b5cf6)",
70
+ "--gradient-page-bg": "linear-gradient(180deg, #ffffff 0%, #f8faff 40%, #f0f5ff 100%)",
71
+ "--glass-bg": "rgba(255, 255, 255, 0.72)",
72
+ "--glass-border": "rgba(255, 255, 255, 0.25)"
73
+ };
74
+
75
+ export {
76
+ darkTheme,
77
+ lightTheme
78
+ };
@@ -0,0 +1,5 @@
1
+ export { MotionA, MotionAside, MotionButton, MotionDiv, MotionFooter, MotionH1, MotionH2, MotionH3, MotionHeader, MotionImg, MotionLi, MotionMain, MotionNav, MotionP, MotionSection, MotionSpan, MotionUl, buttonTap, cardHover, dropdown, ease, fadeIn, fadeInLeft, fadeInRight, fadeInUp, float, listItem, listStagger, mobileMenu, pageTransition, scaleIn, shimmer, sidebarVariants, slideUp, staggerContainer } from './animations/index.mjs';
2
+ export { cn } from './utils/index.mjs';
3
+ export { ThemeTokens, darkTheme, lightTheme } from './tokens/index.mjs';
4
+ import 'framer-motion';
5
+ import 'clsx';