@work-rjkashyap/unified-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/README.md +365 -0
  3. package/dist/chunk-2JFREULQ.cjs +29 -0
  4. package/dist/chunk-2RGLRX6K.cjs +279 -0
  5. package/dist/chunk-3HHJAYQI.cjs +469 -0
  6. package/dist/chunk-5S5DMH5G.cjs +5983 -0
  7. package/dist/chunk-BIW2RPDU.cjs +73 -0
  8. package/dist/chunk-CWETOWRM.mjs +456 -0
  9. package/dist/chunk-ECIGDEAH.cjs +140 -0
  10. package/dist/chunk-EO4WROWH.mjs +432 -0
  11. package/dist/chunk-EZ2L3XPS.mjs +83 -0
  12. package/dist/chunk-I74E52C5.mjs +271 -0
  13. package/dist/chunk-ITBG42M5.mjs +133 -0
  14. package/dist/chunk-IWJ5VMZ7.mjs +323 -0
  15. package/dist/chunk-KHON2AEM.cjs +342 -0
  16. package/dist/chunk-LSNKPQP7.cjs +58 -0
  17. package/dist/chunk-M2LNQWOB.mjs +63 -0
  18. package/dist/chunk-NMPHV6ZD.mjs +27 -0
  19. package/dist/chunk-QXR4VY7Q.cjs +268 -0
  20. package/dist/chunk-SSGN5QDC.mjs +248 -0
  21. package/dist/chunk-X2WCY4VB.mjs +5836 -0
  22. package/dist/chunk-XCKK6P46.cjs +91 -0
  23. package/dist/chunk-ZBN26FLO.mjs +46 -0
  24. package/dist/chunk-ZPIPKY2J.cjs +478 -0
  25. package/dist/components.cjs +477 -0
  26. package/dist/components.d.cts +3077 -0
  27. package/dist/components.d.ts +3077 -0
  28. package/dist/components.mjs +4 -0
  29. package/dist/index.cjs +1027 -0
  30. package/dist/index.d.cts +30 -0
  31. package/dist/index.d.ts +30 -0
  32. package/dist/index.mjs +17 -0
  33. package/dist/motion-D9wQbcKL.d.cts +80 -0
  34. package/dist/motion-D9wQbcKL.d.ts +80 -0
  35. package/dist/motion.cjs +216 -0
  36. package/dist/motion.d.cts +104 -0
  37. package/dist/motion.d.ts +104 -0
  38. package/dist/motion.mjs +3 -0
  39. package/dist/primitives.cjs +57 -0
  40. package/dist/primitives.d.cts +390 -0
  41. package/dist/primitives.d.ts +390 -0
  42. package/dist/primitives.mjs +4 -0
  43. package/dist/theme.cjs +38 -0
  44. package/dist/theme.d.cts +117 -0
  45. package/dist/theme.d.ts +117 -0
  46. package/dist/theme.mjs +5 -0
  47. package/dist/tokens.cjs +137 -0
  48. package/dist/tokens.d.cts +30 -0
  49. package/dist/tokens.d.ts +30 -0
  50. package/dist/tokens.mjs +4 -0
  51. package/dist/typography-DlvVjEdE.d.cts +146 -0
  52. package/dist/typography-DlvVjEdE.d.ts +146 -0
  53. package/dist/utils.cjs +164 -0
  54. package/dist/utils.d.cts +521 -0
  55. package/dist/utils.d.ts +521 -0
  56. package/dist/utils.mjs +3 -0
  57. package/dist/z-index-B_nTQ3qo.d.cts +422 -0
  58. package/dist/z-index-B_nTQ3qo.d.ts +422 -0
  59. package/package.json +183 -0
  60. package/styles.css +500 -0
@@ -0,0 +1,91 @@
1
+ 'use strict';
2
+
3
+ // src/tokens/motion.ts
4
+ var duration = {
5
+ /** Instant feedback — hover states, color changes */
6
+ instant: 0,
7
+ /** Micro-interactions — focus rings, icon swaps */
8
+ fast: 100,
9
+ /** Snappy transitions — tooltips, small toggles */
10
+ moderate: 150,
11
+ /** Standard transitions — dropdowns, accordions, tabs */
12
+ normal: 200,
13
+ /** Emphasis transitions — modals, drawers, slide-ins */
14
+ slow: 300,
15
+ /** Complex orchestrated animations — page transitions */
16
+ slower: 400,
17
+ /** Long-form animations — skeleton loaders, progress */
18
+ slowest: 500
19
+ };
20
+ var durationCSS = Object.fromEntries(
21
+ Object.entries(duration).map(([key, value]) => [key, `${value}ms`])
22
+ );
23
+ var durationSeconds = Object.fromEntries(
24
+ Object.entries(duration).map(([key, value]) => [key, value / 1e3])
25
+ );
26
+ var easing = {
27
+ /** General-purpose — equal acceleration and deceleration */
28
+ standard: [0.2, 0, 0.38, 0.9],
29
+ /** Enter animations — element arriving on screen */
30
+ decelerate: [0, 0, 0.2, 1],
31
+ /** Exit animations — element leaving the screen */
32
+ accelerate: [0.4, 0, 1, 1],
33
+ /** Attention / emphasis — overshoots slightly for impact */
34
+ emphasize: [0, 0, 0.15, 1],
35
+ /** Constant rate — spinners, progress bars */
36
+ linear: [0, 0, 1, 1],
37
+ /** Spring-like snap — toggle switches, checkboxes */
38
+ snap: [0.2, 0, 0, 1]
39
+ };
40
+ var easingCSS = Object.fromEntries(
41
+ Object.entries(easing).map(([key, value]) => [
42
+ key,
43
+ `cubic-bezier(${value.join(", ")})`
44
+ ])
45
+ );
46
+ var spring = {
47
+ /** Gentle — tooltips, small popovers */
48
+ gentle: {
49
+ type: "spring",
50
+ stiffness: 150,
51
+ damping: 20,
52
+ mass: 1
53
+ },
54
+ /** Snappy — buttons, toggles, micro-interactions */
55
+ snappy: {
56
+ type: "spring",
57
+ stiffness: 300,
58
+ damping: 25,
59
+ mass: 0.8
60
+ },
61
+ /** Bouncy — playful emphasis, celebrations */
62
+ bouncy: {
63
+ type: "spring",
64
+ stiffness: 400,
65
+ damping: 15,
66
+ mass: 0.8
67
+ },
68
+ /** Stiff — immediate, no overshoot (dialogs, drawers) */
69
+ stiff: {
70
+ type: "spring",
71
+ stiffness: 500,
72
+ damping: 35,
73
+ mass: 1
74
+ }
75
+ };
76
+ var stagger = {
77
+ /** Rapid list items — 30ms between each */
78
+ fast: 0.03,
79
+ /** Standard stagger — 50ms between each */
80
+ normal: 0.05,
81
+ /** Deliberate reveal — 80ms between each */
82
+ slow: 0.08
83
+ };
84
+
85
+ exports.duration = duration;
86
+ exports.durationCSS = durationCSS;
87
+ exports.durationSeconds = durationSeconds;
88
+ exports.easing = easing;
89
+ exports.easingCSS = easingCSS;
90
+ exports.spring = spring;
91
+ exports.stagger = stagger;
@@ -0,0 +1,46 @@
1
+ // src/utils/focus-ring.ts
2
+ var focusRingClasses = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus-ring focus-visible:ring-offset-2 focus-visible:ring-offset-ds-background";
3
+ var focusRingClassList = [
4
+ "focus-visible:outline-none",
5
+ "focus-visible:ring-2",
6
+ "focus-visible:ring-ds-focus-ring",
7
+ "focus-visible:ring-offset-2",
8
+ "focus-visible:ring-offset-ds-background"
9
+ ];
10
+ var focusRingInsetClasses = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus-ring";
11
+ var focusRingInsetClassList = [
12
+ "focus-visible:outline-none",
13
+ "focus-visible:ring-2",
14
+ "focus-visible:ring-ds-focus-ring"
15
+ ];
16
+ var focusRingCompactClasses = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus-ring focus-visible:ring-offset-1";
17
+ var focusRingCompactClassList = [
18
+ "focus-visible:outline-none",
19
+ "focus-visible:ring-2",
20
+ "focus-visible:ring-ds-focus-ring",
21
+ "focus-visible:ring-offset-1"
22
+ ];
23
+ var focusRingVariantOverrides = {
24
+ /** Override ring color to danger red */
25
+ danger: "focus-visible:ring-ds-danger",
26
+ /** Override ring color to success green */
27
+ success: "focus-visible:ring-ds-success",
28
+ /** Override ring color to warning amber */
29
+ warning: "focus-visible:ring-ds-warning",
30
+ /** Override ring color to info blue */
31
+ info: "focus-visible:ring-ds-info",
32
+ /** Override ring color to current text color */
33
+ current: "focus-visible:ring-current"
34
+ };
35
+ var focusRingGroupTriggerClasses = "focus-visible:outline-none";
36
+ var focusRingGroupRingClasses = "group-focus-visible:ring-2 group-focus-visible:ring-ds-focus-ring group-focus-visible:ring-offset-2 group-focus-visible:ring-offset-ds-background";
37
+ var focusWithinRingClasses = "focus-within:outline-none focus-within:ring-2 focus-within:ring-ds-focus-ring focus-within:ring-offset-2 focus-within:ring-offset-ds-background";
38
+ var focusWithinRingClassList = [
39
+ "focus-within:outline-none",
40
+ "focus-within:ring-2",
41
+ "focus-within:ring-ds-focus-ring",
42
+ "focus-within:ring-offset-2",
43
+ "focus-within:ring-offset-ds-background"
44
+ ];
45
+
46
+ export { focusRingClassList, focusRingClasses, focusRingCompactClassList, focusRingCompactClasses, focusRingGroupRingClasses, focusRingGroupTriggerClasses, focusRingInsetClassList, focusRingInsetClasses, focusRingVariantOverrides, focusWithinRingClassList, focusWithinRingClasses };
@@ -0,0 +1,478 @@
1
+ 'use strict';
2
+
3
+ var chunkXCKK6P46_cjs = require('./chunk-XCKK6P46.cjs');
4
+ var react = require('react');
5
+
6
+ // src/motion/presets.ts
7
+ function buildTransition(duration2, easingCurve) {
8
+ return {
9
+ duration: duration2,
10
+ ease: [...easingCurve]
11
+ };
12
+ }
13
+ function motionProps(preset) {
14
+ return {
15
+ variants: preset.variants,
16
+ initial: "initial",
17
+ animate: "animate",
18
+ exit: "exit"
19
+ };
20
+ }
21
+ var fadeIn = {
22
+ variants: {
23
+ initial: { opacity: 0 },
24
+ animate: { opacity: 1 },
25
+ exit: { opacity: 0 }
26
+ },
27
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.standard)
28
+ };
29
+ var fadeInSlow = {
30
+ variants: {
31
+ initial: { opacity: 0 },
32
+ animate: { opacity: 1 },
33
+ exit: { opacity: 0 }
34
+ },
35
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
36
+ };
37
+ var fadeInFast = {
38
+ variants: {
39
+ initial: { opacity: 0 },
40
+ animate: { opacity: 1 },
41
+ exit: { opacity: 0 }
42
+ },
43
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.fast, chunkXCKK6P46_cjs.easing.standard)
44
+ };
45
+ var scaleIn = {
46
+ variants: {
47
+ initial: { opacity: 0, scale: 0.95 },
48
+ animate: { opacity: 1, scale: 1 },
49
+ exit: { opacity: 0, scale: 0.95 }
50
+ },
51
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
52
+ };
53
+ var scaleInSpring = {
54
+ variants: {
55
+ initial: { opacity: 0, scale: 0.9 },
56
+ animate: { opacity: 1, scale: 1 },
57
+ exit: { opacity: 0, scale: 0.9 }
58
+ },
59
+ transition: chunkXCKK6P46_cjs.spring.snappy
60
+ };
61
+ var scaleInLg = {
62
+ variants: {
63
+ initial: { opacity: 0, scale: 0.85 },
64
+ animate: { opacity: 1, scale: 1 },
65
+ exit: { opacity: 0, scale: 0.85 }
66
+ },
67
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
68
+ };
69
+ var slideUp = {
70
+ variants: {
71
+ initial: { opacity: 0, y: 16 },
72
+ animate: { opacity: 1, y: 0 },
73
+ exit: { opacity: 0, y: 16 }
74
+ },
75
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
76
+ };
77
+ var slideUpSm = {
78
+ variants: {
79
+ initial: { opacity: 0, y: 8 },
80
+ animate: { opacity: 1, y: 0 },
81
+ exit: { opacity: 0, y: 8 }
82
+ },
83
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.moderate, chunkXCKK6P46_cjs.easing.decelerate)
84
+ };
85
+ var slideUpLg = {
86
+ variants: {
87
+ initial: { opacity: 0, y: 24 },
88
+ animate: { opacity: 1, y: 0 },
89
+ exit: { opacity: 0, y: 24 }
90
+ },
91
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
92
+ };
93
+ var slideUpSpring = {
94
+ variants: {
95
+ initial: { opacity: 0, y: 20 },
96
+ animate: { opacity: 1, y: 0 },
97
+ exit: { opacity: 0, y: 20 }
98
+ },
99
+ transition: chunkXCKK6P46_cjs.spring.gentle
100
+ };
101
+ var slideDown = {
102
+ variants: {
103
+ initial: { opacity: 0, y: -16 },
104
+ animate: { opacity: 1, y: 0 },
105
+ exit: { opacity: 0, y: -16 }
106
+ },
107
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
108
+ };
109
+ var slideDownSm = {
110
+ variants: {
111
+ initial: { opacity: 0, y: -8 },
112
+ animate: { opacity: 1, y: 0 },
113
+ exit: { opacity: 0, y: -8 }
114
+ },
115
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.moderate, chunkXCKK6P46_cjs.easing.decelerate)
116
+ };
117
+ var slideLeft = {
118
+ variants: {
119
+ initial: { opacity: 0, x: 20 },
120
+ animate: { opacity: 1, x: 0 },
121
+ exit: { opacity: 0, x: 20 }
122
+ },
123
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
124
+ };
125
+ var slideRight = {
126
+ variants: {
127
+ initial: { opacity: 0, x: -20 },
128
+ animate: { opacity: 1, x: 0 },
129
+ exit: { opacity: 0, x: -20 }
130
+ },
131
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
132
+ };
133
+ var slideInFromRight = {
134
+ variants: {
135
+ initial: { opacity: 0, x: "100%" },
136
+ animate: { opacity: 1, x: 0 },
137
+ exit: { opacity: 0, x: "100%" }
138
+ },
139
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
140
+ };
141
+ var slideInFromLeft = {
142
+ variants: {
143
+ initial: { opacity: 0, x: "-100%" },
144
+ animate: { opacity: 1, x: 0 },
145
+ exit: { opacity: 0, x: "-100%" }
146
+ },
147
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
148
+ };
149
+ var slideInFromBottom = {
150
+ variants: {
151
+ initial: { opacity: 0, y: "100%" },
152
+ animate: { opacity: 1, y: 0 },
153
+ exit: { opacity: 0, y: "100%" }
154
+ },
155
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
156
+ };
157
+ var expandHeight = {
158
+ variants: {
159
+ initial: { opacity: 0, height: 0, overflow: "hidden" },
160
+ animate: { opacity: 1, height: "auto", overflow: "hidden" },
161
+ exit: { opacity: 0, height: 0, overflow: "hidden" }
162
+ },
163
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.standard)
164
+ };
165
+ var expandHeightSlow = {
166
+ variants: {
167
+ initial: { opacity: 0, height: 0, overflow: "hidden" },
168
+ animate: { opacity: 1, height: "auto", overflow: "hidden" },
169
+ exit: { opacity: 0, height: 0, overflow: "hidden" }
170
+ },
171
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
172
+ };
173
+ var pop = {
174
+ variants: {
175
+ initial: { opacity: 0, scale: 0.6 },
176
+ animate: { opacity: 1, scale: 1 },
177
+ exit: { opacity: 0, scale: 0.6 }
178
+ },
179
+ transition: chunkXCKK6P46_cjs.spring.bouncy
180
+ };
181
+ var popSubtle = {
182
+ variants: {
183
+ initial: { opacity: 0, scale: 0.8 },
184
+ animate: { opacity: 1, scale: 1 },
185
+ exit: { opacity: 0, scale: 0.8 }
186
+ },
187
+ transition: chunkXCKK6P46_cjs.spring.snappy
188
+ };
189
+ var blurIn = {
190
+ variants: {
191
+ initial: { opacity: 0, filter: "blur(8px)" },
192
+ animate: { opacity: 1, filter: "blur(0px)" },
193
+ exit: { opacity: 0, filter: "blur(8px)" }
194
+ },
195
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.slow, chunkXCKK6P46_cjs.easing.decelerate)
196
+ };
197
+ var blurInSubtle = {
198
+ variants: {
199
+ initial: { opacity: 0, filter: "blur(4px)" },
200
+ animate: { opacity: 1, filter: "blur(0px)" },
201
+ exit: { opacity: 0, filter: "blur(4px)" }
202
+ },
203
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
204
+ };
205
+ var staggerContainer = {
206
+ variants: {
207
+ initial: {},
208
+ animate: {
209
+ transition: {
210
+ staggerChildren: chunkXCKK6P46_cjs.stagger.normal,
211
+ delayChildren: 0
212
+ }
213
+ },
214
+ exit: {
215
+ transition: {
216
+ staggerChildren: chunkXCKK6P46_cjs.stagger.fast,
217
+ staggerDirection: -1
218
+ }
219
+ }
220
+ },
221
+ transition: {}
222
+ };
223
+ var staggerContainerFast = {
224
+ variants: {
225
+ initial: {},
226
+ animate: {
227
+ transition: {
228
+ staggerChildren: chunkXCKK6P46_cjs.stagger.fast,
229
+ delayChildren: 0
230
+ }
231
+ },
232
+ exit: {
233
+ transition: {
234
+ staggerChildren: chunkXCKK6P46_cjs.stagger.fast,
235
+ staggerDirection: -1
236
+ }
237
+ }
238
+ },
239
+ transition: {}
240
+ };
241
+ var staggerContainerSlow = {
242
+ variants: {
243
+ initial: {},
244
+ animate: {
245
+ transition: {
246
+ staggerChildren: chunkXCKK6P46_cjs.stagger.slow,
247
+ delayChildren: 0.05
248
+ }
249
+ },
250
+ exit: {
251
+ transition: {
252
+ staggerChildren: chunkXCKK6P46_cjs.stagger.normal,
253
+ staggerDirection: -1
254
+ }
255
+ }
256
+ },
257
+ transition: {}
258
+ };
259
+ var overlayBackdrop = {
260
+ variants: {
261
+ initial: { opacity: 0 },
262
+ animate: { opacity: 1 },
263
+ exit: { opacity: 0 }
264
+ },
265
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.moderate, chunkXCKK6P46_cjs.easing.standard)
266
+ };
267
+ var modalContent = {
268
+ variants: {
269
+ initial: { opacity: 0, scale: 0.96, y: 8 },
270
+ animate: { opacity: 1, scale: 1, y: 0 },
271
+ exit: { opacity: 0, scale: 0.96, y: 8 }
272
+ },
273
+ transition: buildTransition(chunkXCKK6P46_cjs.durationSeconds.normal, chunkXCKK6P46_cjs.easing.decelerate)
274
+ };
275
+ var modalContentSpring = {
276
+ variants: {
277
+ initial: { opacity: 0, scale: 0.95, y: 10 },
278
+ animate: { opacity: 1, scale: 1, y: 0 },
279
+ exit: { opacity: 0, scale: 0.95, y: 10 }
280
+ },
281
+ transition: chunkXCKK6P46_cjs.spring.stiff
282
+ };
283
+ var toastSlideIn = {
284
+ variants: {
285
+ initial: { opacity: 0, x: 24, scale: 0.95 },
286
+ animate: { opacity: 1, x: 0, scale: 1 },
287
+ exit: { opacity: 0, x: 24, scale: 0.95 }
288
+ },
289
+ transition: chunkXCKK6P46_cjs.spring.snappy
290
+ };
291
+ var toastSlideUp = {
292
+ variants: {
293
+ initial: { opacity: 0, y: 16, scale: 0.95 },
294
+ animate: { opacity: 1, y: 0, scale: 1 },
295
+ exit: { opacity: 0, y: 16, scale: 0.95 }
296
+ },
297
+ transition: chunkXCKK6P46_cjs.spring.snappy
298
+ };
299
+ var press = {
300
+ variants: {
301
+ initial: { scale: 1 },
302
+ animate: { scale: 1 },
303
+ exit: { scale: 1 }
304
+ },
305
+ transition: chunkXCKK6P46_cjs.spring.snappy
306
+ };
307
+ var tapScale = {
308
+ scale: 0.97,
309
+ transition: chunkXCKK6P46_cjs.spring.snappy
310
+ };
311
+ var hoverScale = {
312
+ scale: 1.02,
313
+ transition: chunkXCKK6P46_cjs.spring.snappy
314
+ };
315
+ var hoverLift = {
316
+ y: -2,
317
+ transition: {
318
+ duration: chunkXCKK6P46_cjs.durationSeconds.fast,
319
+ ease: [...chunkXCKK6P46_cjs.easing.decelerate]
320
+ }
321
+ };
322
+ var pulse = {
323
+ variants: {
324
+ initial: { opacity: 1 },
325
+ animate: {
326
+ opacity: [1, 0.5, 1],
327
+ transition: {
328
+ duration: chunkXCKK6P46_cjs.durationSeconds.slowest * 3,
329
+ ease: [...chunkXCKK6P46_cjs.easing.linear],
330
+ repeat: Number.POSITIVE_INFINITY
331
+ }
332
+ },
333
+ exit: { opacity: 0 }
334
+ },
335
+ transition: {}
336
+ };
337
+ var spin = {
338
+ variants: {
339
+ initial: { rotate: 0 },
340
+ animate: {
341
+ rotate: 360,
342
+ transition: {
343
+ duration: chunkXCKK6P46_cjs.durationSeconds.slowest * 2,
344
+ ease: [...chunkXCKK6P46_cjs.easing.linear],
345
+ repeat: Number.POSITIVE_INFINITY
346
+ }
347
+ },
348
+ exit: { opacity: 0 }
349
+ },
350
+ transition: {}
351
+ };
352
+ function reduceMotion(preset) {
353
+ return {
354
+ variants: {
355
+ initial: { opacity: 0 },
356
+ animate: { opacity: 1 },
357
+ exit: { opacity: 0 }
358
+ },
359
+ transition: {
360
+ duration: chunkXCKK6P46_cjs.durationSeconds.fast,
361
+ ease: [...chunkXCKK6P46_cjs.easing.standard]
362
+ }
363
+ };
364
+ }
365
+ function withReducedMotion(preset, prefersReduced) {
366
+ if (prefersReduced) {
367
+ return reduceMotion();
368
+ }
369
+ return preset;
370
+ }
371
+
372
+ // src/motion/hooks.ts
373
+ var mediaQuery = null;
374
+ function getMediaQuery() {
375
+ if (typeof window === "undefined") return null;
376
+ if (!mediaQuery) {
377
+ mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
378
+ }
379
+ return mediaQuery;
380
+ }
381
+ function getSnapshot() {
382
+ const mq = getMediaQuery();
383
+ return mq ? mq.matches : false;
384
+ }
385
+ function getServerSnapshot() {
386
+ return false;
387
+ }
388
+ function subscribe(callback) {
389
+ const mq = getMediaQuery();
390
+ if (!mq) return () => {
391
+ };
392
+ mq.addEventListener("change", callback);
393
+ return () => {
394
+ mq.removeEventListener("change", callback);
395
+ };
396
+ }
397
+ function useReducedMotion() {
398
+ return react.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
399
+ }
400
+ function useMotion(preset) {
401
+ const prefersReduced = useReducedMotion();
402
+ return react.useMemo(
403
+ () => withReducedMotion(preset, prefersReduced),
404
+ [preset, prefersReduced]
405
+ );
406
+ }
407
+ function useMotionProps(preset) {
408
+ const safePreset = useMotion(preset);
409
+ return react.useMemo(() => motionProps(safePreset), [safePreset]);
410
+ }
411
+ var INSTANT_SPRING = {
412
+ stiffness: 1e4,
413
+ damping: 1e4,
414
+ mass: 0.01
415
+ };
416
+ function useMotionSpringConfig(config) {
417
+ const prefersReduced = useReducedMotion();
418
+ return react.useMemo(
419
+ () => prefersReduced ? INSTANT_SPRING : config,
420
+ [prefersReduced, config]
421
+ );
422
+ }
423
+ function MotionSafe({ children, fallback }) {
424
+ const prefersReduced = useReducedMotion();
425
+ if (typeof children === "function") {
426
+ return children(prefersReduced);
427
+ }
428
+ if (prefersReduced && fallback !== void 0) {
429
+ return fallback;
430
+ }
431
+ return children;
432
+ }
433
+
434
+ exports.MotionSafe = MotionSafe;
435
+ exports.blurIn = blurIn;
436
+ exports.blurInSubtle = blurInSubtle;
437
+ exports.expandHeight = expandHeight;
438
+ exports.expandHeightSlow = expandHeightSlow;
439
+ exports.fadeIn = fadeIn;
440
+ exports.fadeInFast = fadeInFast;
441
+ exports.fadeInSlow = fadeInSlow;
442
+ exports.hoverLift = hoverLift;
443
+ exports.hoverScale = hoverScale;
444
+ exports.modalContent = modalContent;
445
+ exports.modalContentSpring = modalContentSpring;
446
+ exports.motionProps = motionProps;
447
+ exports.overlayBackdrop = overlayBackdrop;
448
+ exports.pop = pop;
449
+ exports.popSubtle = popSubtle;
450
+ exports.press = press;
451
+ exports.pulse = pulse;
452
+ exports.reduceMotion = reduceMotion;
453
+ exports.scaleIn = scaleIn;
454
+ exports.scaleInLg = scaleInLg;
455
+ exports.scaleInSpring = scaleInSpring;
456
+ exports.slideDown = slideDown;
457
+ exports.slideDownSm = slideDownSm;
458
+ exports.slideInFromBottom = slideInFromBottom;
459
+ exports.slideInFromLeft = slideInFromLeft;
460
+ exports.slideInFromRight = slideInFromRight;
461
+ exports.slideLeft = slideLeft;
462
+ exports.slideRight = slideRight;
463
+ exports.slideUp = slideUp;
464
+ exports.slideUpLg = slideUpLg;
465
+ exports.slideUpSm = slideUpSm;
466
+ exports.slideUpSpring = slideUpSpring;
467
+ exports.spin = spin;
468
+ exports.staggerContainer = staggerContainer;
469
+ exports.staggerContainerFast = staggerContainerFast;
470
+ exports.staggerContainerSlow = staggerContainerSlow;
471
+ exports.tapScale = tapScale;
472
+ exports.toastSlideIn = toastSlideIn;
473
+ exports.toastSlideUp = toastSlideUp;
474
+ exports.useMotion = useMotion;
475
+ exports.useMotionProps = useMotionProps;
476
+ exports.useMotionSpringConfig = useMotionSpringConfig;
477
+ exports.useReducedMotion = useReducedMotion;
478
+ exports.withReducedMotion = withReducedMotion;