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