@zentauri-ui/zentauri-components 0.0.84 → 0.0.92

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 (144) hide show
  1. package/README.md +47 -29
  2. package/dist/chunk-BZSIXBA7.js +70 -0
  3. package/dist/chunk-BZSIXBA7.js.map +1 -0
  4. package/dist/chunk-E5UX537J.js +11 -0
  5. package/dist/chunk-E5UX537J.js.map +1 -0
  6. package/dist/chunk-MEWYFWBX.mjs +14 -0
  7. package/dist/chunk-MEWYFWBX.mjs.map +1 -0
  8. package/dist/chunk-VJHD7QZH.mjs +73 -0
  9. package/dist/chunk-VJHD7QZH.mjs.map +1 -0
  10. package/dist/ui/accordion.d.mts +70 -0
  11. package/dist/ui/accordion.d.ts +70 -0
  12. package/dist/ui/accordion.js +280 -0
  13. package/dist/ui/accordion.js.map +1 -0
  14. package/dist/ui/accordion.mjs +282 -0
  15. package/dist/ui/accordion.mjs.map +1 -0
  16. package/dist/ui/alert.d.mts +66 -0
  17. package/dist/ui/alert.d.ts +66 -0
  18. package/dist/ui/alert.js +218 -0
  19. package/dist/ui/alert.js.map +1 -0
  20. package/dist/ui/alert.mjs +220 -0
  21. package/dist/ui/alert.mjs.map +1 -0
  22. package/dist/ui/badge.d.mts +37 -0
  23. package/dist/ui/badge.d.ts +37 -0
  24. package/dist/ui/badge.js +159 -0
  25. package/dist/ui/badge.js.map +1 -0
  26. package/dist/ui/badge.mjs +161 -0
  27. package/dist/ui/badge.mjs.map +1 -0
  28. package/dist/ui/buttons.d.mts +27 -0
  29. package/dist/ui/buttons.d.ts +27 -0
  30. package/dist/ui/buttons.js +107 -0
  31. package/dist/ui/buttons.js.map +1 -0
  32. package/dist/ui/buttons.mjs +109 -0
  33. package/dist/ui/buttons.mjs.map +1 -0
  34. package/dist/ui/card.d.mts +77 -0
  35. package/dist/ui/card.d.ts +77 -0
  36. package/dist/ui/card.js +252 -0
  37. package/dist/ui/card.js.map +1 -0
  38. package/dist/ui/card.mjs +254 -0
  39. package/dist/ui/card.mjs.map +1 -0
  40. package/dist/ui/divider.d.mts +39 -0
  41. package/dist/ui/divider.d.ts +39 -0
  42. package/dist/ui/divider.js +194 -0
  43. package/dist/ui/divider.js.map +1 -0
  44. package/dist/ui/divider.mjs +196 -0
  45. package/dist/ui/divider.mjs.map +1 -0
  46. package/dist/ui/drawer.d.mts +81 -0
  47. package/dist/ui/drawer.d.ts +81 -0
  48. package/dist/ui/drawer.js +377 -0
  49. package/dist/ui/drawer.js.map +1 -0
  50. package/dist/ui/drawer.mjs +379 -0
  51. package/dist/ui/drawer.mjs.map +1 -0
  52. package/dist/ui/dropdown.d.mts +50 -0
  53. package/dist/ui/dropdown.d.ts +50 -0
  54. package/dist/ui/dropdown.js +272 -0
  55. package/dist/ui/dropdown.js.map +1 -0
  56. package/dist/ui/dropdown.mjs +274 -0
  57. package/dist/ui/dropdown.mjs.map +1 -0
  58. package/dist/ui/empty-state.d.mts +55 -0
  59. package/dist/ui/empty-state.d.ts +55 -0
  60. package/dist/ui/empty-state.js +148 -0
  61. package/dist/ui/empty-state.js.map +1 -0
  62. package/dist/ui/empty-state.mjs +150 -0
  63. package/dist/ui/empty-state.mjs.map +1 -0
  64. package/dist/ui/inputs.d.mts +35 -0
  65. package/dist/ui/inputs.d.ts +35 -0
  66. package/dist/ui/inputs.js +426 -0
  67. package/dist/ui/inputs.js.map +1 -0
  68. package/dist/ui/inputs.mjs +428 -0
  69. package/dist/ui/inputs.mjs.map +1 -0
  70. package/dist/ui/modal.d.mts +84 -0
  71. package/dist/ui/modal.d.ts +84 -0
  72. package/dist/ui/modal.js +378 -0
  73. package/dist/ui/modal.js.map +1 -0
  74. package/dist/ui/modal.mjs +380 -0
  75. package/dist/ui/modal.mjs.map +1 -0
  76. package/dist/ui/pagination.d.mts +114 -0
  77. package/dist/ui/pagination.d.ts +114 -0
  78. package/dist/ui/pagination.js +425 -0
  79. package/dist/ui/pagination.js.map +1 -0
  80. package/dist/ui/pagination.mjs +427 -0
  81. package/dist/ui/pagination.mjs.map +1 -0
  82. package/dist/ui/progress.d.mts +61 -0
  83. package/dist/ui/progress.d.ts +61 -0
  84. package/dist/ui/progress.js +231 -0
  85. package/dist/ui/progress.js.map +1 -0
  86. package/dist/ui/progress.mjs +233 -0
  87. package/dist/ui/progress.mjs.map +1 -0
  88. package/dist/ui/select.d.mts +73 -0
  89. package/dist/ui/select.d.ts +73 -0
  90. package/dist/ui/select.js +321 -0
  91. package/dist/ui/select.js.map +1 -0
  92. package/dist/ui/select.mjs +323 -0
  93. package/dist/ui/select.mjs.map +1 -0
  94. package/dist/ui/skeleton.d.mts +90 -0
  95. package/dist/ui/skeleton.d.ts +90 -0
  96. package/dist/ui/skeleton.js +538 -0
  97. package/dist/ui/skeleton.js.map +1 -0
  98. package/dist/ui/skeleton.mjs +540 -0
  99. package/dist/ui/skeleton.mjs.map +1 -0
  100. package/dist/ui/spinner.d.mts +27 -0
  101. package/dist/ui/spinner.d.ts +27 -0
  102. package/dist/ui/spinner.js +187 -0
  103. package/dist/ui/spinner.js.map +1 -0
  104. package/dist/ui/spinner.mjs +189 -0
  105. package/dist/ui/spinner.mjs.map +1 -0
  106. package/dist/ui/table.d.mts +81 -0
  107. package/dist/ui/table.d.ts +81 -0
  108. package/dist/ui/table.js +287 -0
  109. package/dist/ui/table.js.map +1 -0
  110. package/dist/ui/table.mjs +289 -0
  111. package/dist/ui/table.mjs.map +1 -0
  112. package/dist/ui/tabs.d.mts +58 -0
  113. package/dist/ui/tabs.d.ts +58 -0
  114. package/dist/ui/tabs.js +268 -0
  115. package/dist/ui/tabs.js.map +1 -0
  116. package/dist/ui/tabs.mjs +270 -0
  117. package/dist/ui/tabs.mjs.map +1 -0
  118. package/dist/ui/toast.d.mts +86 -0
  119. package/dist/ui/toast.d.ts +86 -0
  120. package/dist/ui/toast.js +252 -0
  121. package/dist/ui/toast.js.map +1 -0
  122. package/dist/ui/toast.mjs +254 -0
  123. package/dist/ui/toast.mjs.map +1 -0
  124. package/dist/ui/toggle.d.mts +37 -0
  125. package/dist/ui/toggle.d.ts +37 -0
  126. package/dist/ui/toggle.js +152 -0
  127. package/dist/ui/toggle.js.map +1 -0
  128. package/dist/ui/toggle.mjs +154 -0
  129. package/dist/ui/toggle.mjs.map +1 -0
  130. package/dist/ui/tooltip.d.mts +46 -0
  131. package/dist/ui/tooltip.d.ts +46 -0
  132. package/dist/ui/tooltip.js +208 -0
  133. package/dist/ui/tooltip.js.map +1 -0
  134. package/dist/ui/tooltip.mjs +210 -0
  135. package/dist/ui/tooltip.mjs.map +1 -0
  136. package/dist/variants-Dd9pe-ov.d.mts +8 -0
  137. package/dist/variants-Dd9pe-ov.d.ts +8 -0
  138. package/package.json +15 -14
  139. package/dist/ui/index.cjs +0 -5764
  140. package/dist/ui/index.cjs.map +0 -1
  141. package/dist/ui/index.d.cts +0 -1164
  142. package/dist/ui/index.d.ts +0 -1164
  143. package/dist/ui/index.js +0 -5626
  144. package/dist/ui/index.js.map +0 -1
@@ -0,0 +1,540 @@
1
+ "use client";
2
+
3
+ import {
4
+ cn
5
+ } from "../chunk-MEWYFWBX.mjs";
6
+
7
+ // src/ui/skeleton/skeleton.tsx
8
+ import { createContext, useContext, useMemo } from "react";
9
+ import { motion } from "framer-motion";
10
+
11
+ // src/ui/skeleton/animations.ts
12
+ var skeletonAnimationPresets = {
13
+ none: {},
14
+ shimmer: {
15
+ initial: { backgroundPosition: "100% 0%" },
16
+ animate: { backgroundPosition: ["100% 0%", "0% 0%"] },
17
+ transition: { repeat: Infinity, duration: 1.35, ease: "linear" }
18
+ },
19
+ pulse: {
20
+ initial: { opacity: 1 },
21
+ animate: { opacity: [1, 0.5, 1] },
22
+ transition: { repeat: Infinity, duration: 1.35, ease: "easeInOut" }
23
+ }
24
+ };
25
+
26
+ // src/ui/skeleton/variants.ts
27
+ import { cva } from "class-variance-authority";
28
+ var shimmerLayer = "[background-size:220%_100%] [background-repeat:no-repeat] [background-position:100%_0%]";
29
+ var skeletonShimmerGradientClasses = {
30
+ default: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.04),rgba(255,255,255,0.22),rgba(255,255,255,0.04))]`,
31
+ subtle: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.03),rgba(255,255,255,0.14),rgba(255,255,255,0.03))]`,
32
+ muted: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.02),rgba(255,255,255,0.1),rgba(255,255,255,0.02))]`,
33
+ sky: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(56,189,248,0.1),rgba(56,189,248,0.42),rgba(56,189,248,0.1))]`,
34
+ rose: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,113,133,0.1),rgba(251,113,133,0.42),rgba(251,113,133,0.1))]`,
35
+ purple: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(192,132,252,0.1),rgba(192,132,252,0.42),rgba(192,132,252,0.1))]`,
36
+ pink: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,
37
+ orange: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`,
38
+ yellow: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.4),rgba(250,204,21,0.12))]`,
39
+ teal: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,
40
+ indigo: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,
41
+ emerald: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,
42
+ gray: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(161,161,170,0.1),rgba(161,161,170,0.38),rgba(161,161,170,0.1))]`,
43
+ amber: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,191,36,0.12),rgba(251,191,36,0.42),rgba(251,191,36,0.12))]`,
44
+ violet: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,
45
+ "gradient-blue": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(100,149,237,0.1),rgba(100,149,237,0.42),rgba(100,149,237,0.1))]`,
46
+ "gradient-green": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,
47
+ "gradient-red": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(239,68,68,0.1),rgba(239,68,68,0.42),rgba(239,68,68,0.1))]`,
48
+ "gradient-yellow": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.42),rgba(250,204,21,0.12))]`,
49
+ "gradient-purple": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,
50
+ "gradient-teal": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,
51
+ "gradient-indigo": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,
52
+ "gradient-pink": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,
53
+ "gradient-orange": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`
54
+ };
55
+ var skeletonVariants = cva(
56
+ "relative overflow-hidden bg-white/10 text-transparent",
57
+ {
58
+ variants: {
59
+ appearance: {
60
+ default: "bg-white/10",
61
+ subtle: "bg-white/[0.07]",
62
+ muted: "bg-slate-800/80",
63
+ sky: "bg-sky-500/10",
64
+ rose: "bg-rose-500/10",
65
+ purple: "bg-purple-500/10",
66
+ pink: "bg-pink-500/10",
67
+ orange: "bg-orange-500/10",
68
+ yellow: "bg-yellow-500/10",
69
+ teal: "bg-teal-500/10",
70
+ indigo: "bg-indigo-500/10",
71
+ emerald: "bg-emerald-500/10",
72
+ gray: "bg-gray-500/10",
73
+ amber: "bg-amber-500/10",
74
+ violet: "bg-violet-500/10",
75
+ "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600",
76
+ "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600",
77
+ "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600",
78
+ "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600",
79
+ "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600",
80
+ "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600",
81
+ "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600",
82
+ "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600",
83
+ "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600"
84
+ },
85
+ size: {
86
+ sm: "min-h-3",
87
+ md: "min-h-4",
88
+ lg: "min-h-6"
89
+ },
90
+ rounded: {
91
+ none: "rounded-none",
92
+ sm: "rounded-md",
93
+ md: "rounded-lg",
94
+ lg: "rounded-xl",
95
+ full: "rounded-full"
96
+ },
97
+ animation: {
98
+ none: "",
99
+ shimmer: "",
100
+ pulse: ""
101
+ },
102
+ shimmerTone: {
103
+ default: "",
104
+ subtle: "",
105
+ muted: "",
106
+ sky: "",
107
+ rose: "",
108
+ purple: "",
109
+ pink: "",
110
+ orange: "",
111
+ yellow: "",
112
+ teal: "",
113
+ indigo: "",
114
+ emerald: "",
115
+ gray: "",
116
+ amber: "",
117
+ violet: "",
118
+ "gradient-blue": "",
119
+ "gradient-green": "",
120
+ "gradient-red": "",
121
+ "gradient-yellow": "",
122
+ "gradient-purple": "",
123
+ "gradient-teal": "",
124
+ "gradient-indigo": "",
125
+ "gradient-pink": "",
126
+ "gradient-orange": ""
127
+ }
128
+ },
129
+ compoundVariants: [
130
+ {
131
+ animation: "shimmer",
132
+ shimmerTone: "default",
133
+ class: skeletonShimmerGradientClasses.default
134
+ },
135
+ {
136
+ animation: "shimmer",
137
+ shimmerTone: "muted",
138
+ class: skeletonShimmerGradientClasses.subtle
139
+ },
140
+ {
141
+ animation: "shimmer",
142
+ shimmerTone: "subtle",
143
+ class: skeletonShimmerGradientClasses.subtle
144
+ },
145
+ {
146
+ animation: "shimmer",
147
+ shimmerTone: "sky",
148
+ class: skeletonShimmerGradientClasses.sky
149
+ },
150
+ {
151
+ animation: "shimmer",
152
+ shimmerTone: "rose",
153
+ class: skeletonShimmerGradientClasses.rose
154
+ },
155
+ {
156
+ animation: "shimmer",
157
+ shimmerTone: "purple",
158
+ class: skeletonShimmerGradientClasses.purple
159
+ },
160
+ {
161
+ animation: "shimmer",
162
+ shimmerTone: "pink",
163
+ class: skeletonShimmerGradientClasses.pink
164
+ },
165
+ {
166
+ animation: "shimmer",
167
+ shimmerTone: "orange",
168
+ class: skeletonShimmerGradientClasses.orange
169
+ },
170
+ {
171
+ animation: "shimmer",
172
+ shimmerTone: "yellow",
173
+ class: skeletonShimmerGradientClasses.yellow
174
+ },
175
+ {
176
+ animation: "shimmer",
177
+ shimmerTone: "teal",
178
+ class: skeletonShimmerGradientClasses.teal
179
+ },
180
+ {
181
+ animation: "shimmer",
182
+ shimmerTone: "indigo",
183
+ class: skeletonShimmerGradientClasses.indigo
184
+ },
185
+ {
186
+ animation: "shimmer",
187
+ shimmerTone: "emerald",
188
+ class: skeletonShimmerGradientClasses.emerald
189
+ },
190
+ {
191
+ animation: "shimmer",
192
+ shimmerTone: "gray",
193
+ class: skeletonShimmerGradientClasses.gray
194
+ },
195
+ {
196
+ animation: "shimmer",
197
+ shimmerTone: "amber",
198
+ class: skeletonShimmerGradientClasses.amber
199
+ },
200
+ {
201
+ animation: "shimmer",
202
+ shimmerTone: "violet",
203
+ class: skeletonShimmerGradientClasses.violet
204
+ },
205
+ {
206
+ animation: "shimmer",
207
+ shimmerTone: "gradient-blue",
208
+ class: skeletonShimmerGradientClasses["gradient-blue"]
209
+ },
210
+ {
211
+ animation: "shimmer",
212
+ shimmerTone: "gradient-green",
213
+ class: skeletonShimmerGradientClasses["gradient-green"]
214
+ },
215
+ {
216
+ animation: "shimmer",
217
+ shimmerTone: "gradient-red",
218
+ class: skeletonShimmerGradientClasses["gradient-red"]
219
+ },
220
+ {
221
+ animation: "shimmer",
222
+ shimmerTone: "gradient-yellow",
223
+ class: skeletonShimmerGradientClasses["gradient-yellow"]
224
+ },
225
+ {
226
+ animation: "shimmer",
227
+ shimmerTone: "gradient-purple",
228
+ class: skeletonShimmerGradientClasses["gradient-purple"]
229
+ },
230
+ {
231
+ animation: "shimmer",
232
+ shimmerTone: "gradient-teal",
233
+ class: skeletonShimmerGradientClasses["gradient-teal"]
234
+ },
235
+ {
236
+ animation: "shimmer",
237
+ shimmerTone: "gradient-indigo",
238
+ class: skeletonShimmerGradientClasses["gradient-indigo"]
239
+ },
240
+ {
241
+ animation: "shimmer",
242
+ shimmerTone: "gradient-pink",
243
+ class: skeletonShimmerGradientClasses["gradient-pink"]
244
+ },
245
+ {
246
+ animation: "shimmer",
247
+ shimmerTone: "gradient-orange",
248
+ class: skeletonShimmerGradientClasses["gradient-orange"]
249
+ },
250
+ {
251
+ animation: "pulse",
252
+ class: ""
253
+ }
254
+ ],
255
+ defaultVariants: {
256
+ appearance: "default",
257
+ size: "md",
258
+ rounded: "md",
259
+ animation: "shimmer",
260
+ shimmerTone: "default"
261
+ }
262
+ }
263
+ );
264
+ var skeletonTextLineVariants = cva("block w-full", {
265
+ variants: {
266
+ size: {
267
+ sm: "h-2.5",
268
+ md: "h-3",
269
+ lg: "h-4"
270
+ }
271
+ },
272
+ defaultVariants: { size: "md" }
273
+ });
274
+
275
+ // src/ui/skeleton/skeleton.tsx
276
+ import { jsx, jsxs } from "react/jsx-runtime";
277
+ var SkeletonAnimationContext = createContext(
278
+ void 0
279
+ );
280
+ function useSkeletonAnimation(fallback) {
281
+ return useContext(SkeletonAnimationContext) ?? fallback;
282
+ }
283
+ function Skeleton(props) {
284
+ const {
285
+ className,
286
+ appearance,
287
+ size,
288
+ rounded,
289
+ animation = "shimmer",
290
+ shimmerTone,
291
+ busy,
292
+ children,
293
+ ref,
294
+ ...rest
295
+ } = props;
296
+ const motionProps = skeletonAnimationPresets[animation];
297
+ const ctx = useMemo(() => animation, [animation]);
298
+ return /* @__PURE__ */ jsx(SkeletonAnimationContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
299
+ motion.div,
300
+ {
301
+ ref,
302
+ "data-slot": "skeleton",
303
+ "aria-hidden": true,
304
+ "aria-busy": busy ? true : void 0,
305
+ className: cn(
306
+ skeletonVariants({
307
+ appearance,
308
+ size,
309
+ rounded,
310
+ animation,
311
+ shimmerTone
312
+ }),
313
+ className
314
+ ),
315
+ initial: false,
316
+ ...motionProps,
317
+ ...rest,
318
+ children
319
+ }
320
+ ) });
321
+ }
322
+ Skeleton.displayName = "Skeleton";
323
+ function SkeletonText(props) {
324
+ const {
325
+ lines = 3,
326
+ className,
327
+ appearance,
328
+ size,
329
+ rounded,
330
+ animation = "shimmer",
331
+ shimmerTone,
332
+ busy,
333
+ ref
334
+ } = props;
335
+ const effectiveAnimation = useSkeletonAnimation(animation);
336
+ const motionProps = skeletonAnimationPresets[effectiveAnimation];
337
+ return /* @__PURE__ */ jsx(
338
+ "div",
339
+ {
340
+ "data-slot": "skeleton-text",
341
+ className: cn("flex w-full flex-col gap-2", className),
342
+ "aria-hidden": true,
343
+ "aria-busy": busy ? true : void 0,
344
+ children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx(
345
+ motion.div,
346
+ {
347
+ ref: index === 0 ? ref : void 0,
348
+ className: cn(
349
+ skeletonVariants({
350
+ appearance,
351
+ size,
352
+ rounded,
353
+ animation: effectiveAnimation,
354
+ shimmerTone
355
+ }),
356
+ skeletonTextLineVariants({ size }),
357
+ index === lines - 1 ? "w-3/5" : "w-full"
358
+ ),
359
+ initial: false,
360
+ ...motionProps
361
+ },
362
+ index
363
+ ))
364
+ }
365
+ );
366
+ }
367
+ SkeletonText.displayName = "SkeletonText";
368
+ var avatarSizeClass = {
369
+ xs: "size-6",
370
+ sm: "size-8",
371
+ md: "size-10",
372
+ lg: "size-12",
373
+ xl: "size-14",
374
+ "2xl": "size-16"
375
+ };
376
+ function SkeletonAvatar(props) {
377
+ const {
378
+ avatarSize = "md",
379
+ className,
380
+ appearance,
381
+ size,
382
+ rounded = "full",
383
+ animation,
384
+ shimmerTone,
385
+ busy,
386
+ ref,
387
+ ...rest
388
+ } = props;
389
+ const effectiveAnimation = useSkeletonAnimation(animation ?? "shimmer");
390
+ const motionProps = skeletonAnimationPresets[effectiveAnimation];
391
+ return /* @__PURE__ */ jsx(
392
+ motion.div,
393
+ {
394
+ ref,
395
+ "data-slot": "skeleton-avatar",
396
+ "aria-hidden": true,
397
+ "aria-busy": busy ? true : void 0,
398
+ className: cn(
399
+ skeletonVariants({
400
+ appearance,
401
+ size,
402
+ rounded,
403
+ animation: effectiveAnimation,
404
+ shimmerTone
405
+ }),
406
+ avatarSizeClass[avatarSize],
407
+ className
408
+ ),
409
+ initial: false,
410
+ ...motionProps,
411
+ ...rest
412
+ }
413
+ );
414
+ }
415
+ SkeletonAvatar.displayName = "SkeletonAvatar";
416
+ function SkeletonCard(props) {
417
+ const {
418
+ className,
419
+ busy,
420
+ animation = "shimmer",
421
+ shimmerTone,
422
+ appearance,
423
+ size,
424
+ rounded,
425
+ ref
426
+ } = props;
427
+ return /* @__PURE__ */ jsx(
428
+ "div",
429
+ {
430
+ ref,
431
+ "data-slot": "skeleton-card",
432
+ className: cn("w-full max-w-sm", className),
433
+ "aria-busy": busy ? true : void 0,
434
+ children: /* @__PURE__ */ jsxs(
435
+ Skeleton,
436
+ {
437
+ rounded: "lg",
438
+ animation,
439
+ shimmerTone,
440
+ appearance,
441
+ size,
442
+ busy,
443
+ className: "flex flex-col gap-4 p-4",
444
+ children: [
445
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
446
+ /* @__PURE__ */ jsx(
447
+ SkeletonAvatar,
448
+ {
449
+ appearance,
450
+ size,
451
+ animation,
452
+ shimmerTone,
453
+ rounded
454
+ }
455
+ ),
456
+ /* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col gap-2", children: /* @__PURE__ */ jsx(
457
+ SkeletonText,
458
+ {
459
+ lines: 2,
460
+ appearance,
461
+ size,
462
+ animation,
463
+ shimmerTone
464
+ }
465
+ ) })
466
+ ] }),
467
+ /* @__PURE__ */ jsx(
468
+ SkeletonText,
469
+ {
470
+ lines: 4,
471
+ appearance,
472
+ size,
473
+ animation,
474
+ shimmerTone
475
+ }
476
+ )
477
+ ]
478
+ }
479
+ )
480
+ }
481
+ );
482
+ }
483
+ SkeletonCard.displayName = "SkeletonCard";
484
+ var buttonHeight = {
485
+ sm: "h-8 w-24",
486
+ md: "h-10 w-32",
487
+ lg: "h-12 w-40"
488
+ };
489
+ function SkeletonButton(props) {
490
+ const {
491
+ buttonSize = "md",
492
+ className,
493
+ appearance,
494
+ size,
495
+ rounded = "md",
496
+ animation,
497
+ shimmerTone,
498
+ busy,
499
+ ref,
500
+ ...rest
501
+ } = props;
502
+ const effectiveAnimation = useSkeletonAnimation(animation ?? "shimmer");
503
+ const motionProps = skeletonAnimationPresets[effectiveAnimation];
504
+ return /* @__PURE__ */ jsx(
505
+ motion.div,
506
+ {
507
+ ref,
508
+ "data-slot": "skeleton-button",
509
+ "aria-hidden": true,
510
+ "aria-busy": busy ? true : void 0,
511
+ className: cn(
512
+ skeletonVariants({
513
+ appearance,
514
+ size,
515
+ rounded,
516
+ animation: effectiveAnimation,
517
+ shimmerTone
518
+ }),
519
+ buttonHeight[buttonSize],
520
+ className
521
+ ),
522
+ initial: false,
523
+ ...motionProps,
524
+ ...rest
525
+ }
526
+ );
527
+ }
528
+ SkeletonButton.displayName = "SkeletonButton";
529
+ export {
530
+ Skeleton,
531
+ SkeletonAvatar,
532
+ SkeletonButton,
533
+ SkeletonCard,
534
+ SkeletonText,
535
+ skeletonAnimationPresets,
536
+ skeletonShimmerGradientClasses,
537
+ skeletonTextLineVariants,
538
+ skeletonVariants
539
+ };
540
+ //# sourceMappingURL=skeleton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/skeleton/skeleton.tsx","../../src/ui/skeleton/animations.ts","../../src/ui/skeleton/variants.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { skeletonAnimationPresets } from \"./animations\";\nimport type {\n SkeletonAnimation,\n SkeletonAvatarProps,\n SkeletonButtonProps,\n SkeletonCardProps,\n SkeletonProps,\n SkeletonTextProps,\n} from \"./types\";\nimport { skeletonTextLineVariants, skeletonVariants } from \"./variants\";\n\nconst SkeletonAnimationContext = createContext<SkeletonAnimation | undefined>(\n undefined,\n);\n\nfunction useSkeletonAnimation(fallback: SkeletonAnimation): SkeletonAnimation {\n return useContext(SkeletonAnimationContext) ?? fallback;\n}\n\nexport function Skeleton(props: SkeletonProps) {\n const {\n className,\n appearance,\n size,\n rounded,\n animation = \"shimmer\",\n shimmerTone,\n busy,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = skeletonAnimationPresets[animation];\n const ctx = useMemo(() => animation, [animation]);\n\n return (\n <SkeletonAnimationContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"skeleton\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation,\n shimmerTone,\n }),\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.div>\n </SkeletonAnimationContext.Provider>\n );\n}\n\nSkeleton.displayName = \"Skeleton\";\n\nexport function SkeletonText(props: SkeletonTextProps) {\n const {\n lines = 3,\n className,\n appearance,\n size,\n rounded,\n animation = \"shimmer\",\n shimmerTone,\n busy,\n ref,\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation);\n const motionProps = skeletonAnimationPresets[effectiveAnimation];\n\n return (\n <div\n data-slot=\"skeleton-text\"\n className={cn(\"flex w-full flex-col gap-2\", className)}\n aria-hidden\n aria-busy={busy ? true : undefined}\n >\n {Array.from({ length: lines }).map((_, index) => (\n <motion.div\n key={index}\n ref={index === 0 ? ref : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n skeletonTextLineVariants({ size }),\n index === lines - 1 ? \"w-3/5\" : \"w-full\",\n )}\n initial={false}\n {...motionProps}\n />\n ))}\n </div>\n );\n}\n\nSkeletonText.displayName = \"SkeletonText\";\n\nconst avatarSizeClass: Record<\n NonNullable<SkeletonAvatarProps[\"avatarSize\"]>,\n string\n> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n lg: \"size-12\",\n xl: \"size-14\",\n \"2xl\": \"size-16\",\n};\n\nexport function SkeletonAvatar(props: SkeletonAvatarProps) {\n const {\n avatarSize = \"md\",\n className,\n appearance,\n size,\n rounded = \"full\",\n animation,\n shimmerTone,\n busy,\n ref,\n ...rest\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation ?? \"shimmer\");\n const motionProps = skeletonAnimationPresets[effectiveAnimation];\n\n return (\n <motion.div\n ref={ref}\n data-slot=\"skeleton-avatar\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n avatarSizeClass[avatarSize],\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n />\n );\n}\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\nexport function SkeletonCard(props: SkeletonCardProps) {\n const {\n className,\n busy,\n animation = \"shimmer\",\n shimmerTone,\n appearance,\n size,\n rounded,\n ref,\n } = props;\n\n return (\n <div\n ref={ref as never}\n data-slot=\"skeleton-card\"\n className={cn(\"w-full max-w-sm\", className)}\n aria-busy={busy ? true : undefined}\n >\n <Skeleton\n rounded=\"lg\"\n animation={animation}\n shimmerTone={shimmerTone}\n appearance={appearance}\n size={size}\n busy={busy}\n className=\"flex flex-col gap-4 p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <SkeletonAvatar\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n rounded={rounded}\n />\n <div className=\"flex flex-1 flex-col gap-2\">\n <SkeletonText\n lines={2}\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n />\n </div>\n </div>\n <SkeletonText\n lines={4}\n appearance={appearance}\n size={size}\n animation={animation}\n shimmerTone={shimmerTone}\n />\n </Skeleton>\n </div>\n );\n}\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\nconst buttonHeight: Record<NonNullable<SkeletonButtonProps[\"buttonSize\"]>, string> = {\n sm: \"h-8 w-24\",\n md: \"h-10 w-32\",\n lg: \"h-12 w-40\",\n};\n\nexport function SkeletonButton(props: SkeletonButtonProps) {\n const {\n buttonSize = \"md\",\n className,\n appearance,\n size,\n rounded = \"md\",\n animation,\n shimmerTone,\n busy,\n ref,\n ...rest\n } = props;\n const effectiveAnimation = useSkeletonAnimation(animation ?? \"shimmer\");\n const motionProps = skeletonAnimationPresets[effectiveAnimation];\n\n return (\n <motion.div\n ref={ref}\n data-slot=\"skeleton-button\"\n aria-hidden\n aria-busy={busy ? true : undefined}\n className={cn(\n skeletonVariants({\n appearance,\n size,\n rounded,\n animation: effectiveAnimation,\n shimmerTone,\n }),\n buttonHeight[buttonSize],\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n />\n );\n}\n\nSkeletonButton.displayName = \"SkeletonButton\";\n","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { SkeletonAnimation } from \"./types\";\n\ntype SkeletonPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\"\n>;\n\nexport type SkeletonAnimationPresets = Record<\n SkeletonAnimation,\n SkeletonPresetMotionProps\n>;\n\nexport const skeletonAnimationPresets: SkeletonAnimationPresets = {\n none: {},\n shimmer: {\n initial: { backgroundPosition: \"100% 0%\" },\n animate: { backgroundPosition: [\"100% 0%\", \"0% 0%\"] },\n transition: { repeat: Infinity, duration: 1.35, ease: \"linear\" },\n },\n pulse: {\n initial: { opacity: 1 },\n animate: { opacity: [1, 0.5, 1] },\n transition: { repeat: Infinity, duration: 1.35, ease: \"easeInOut\" },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nconst shimmerLayer =\n \"[background-size:220%_100%] [background-repeat:no-repeat] [background-position:100%_0%]\";\n\nexport const skeletonShimmerGradientClasses = {\n default: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.04),rgba(255,255,255,0.22),rgba(255,255,255,0.04))]`,\n subtle: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.03),rgba(255,255,255,0.14),rgba(255,255,255,0.03))]`,\n muted: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(255,255,255,0.02),rgba(255,255,255,0.1),rgba(255,255,255,0.02))]`,\n sky: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(56,189,248,0.1),rgba(56,189,248,0.42),rgba(56,189,248,0.1))]`,\n rose: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,113,133,0.1),rgba(251,113,133,0.42),rgba(251,113,133,0.1))]`,\n purple: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(192,132,252,0.1),rgba(192,132,252,0.42),rgba(192,132,252,0.1))]`,\n pink: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,\n orange: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`,\n yellow: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.4),rgba(250,204,21,0.12))]`,\n teal: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,\n indigo: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,\n emerald: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,\n gray: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(161,161,170,0.1),rgba(161,161,170,0.38),rgba(161,161,170,0.1))]`,\n amber: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,191,36,0.12),rgba(251,191,36,0.42),rgba(251,191,36,0.12))]`,\n violet: `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,\n \"gradient-blue\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(100,149,237,0.1),rgba(100,149,237,0.42),rgba(100,149,237,0.1))]`,\n \"gradient-green\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(52,211,153,0.1),rgba(52,211,153,0.42),rgba(52,211,153,0.1))]`,\n \"gradient-red\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(239,68,68,0.1),rgba(239,68,68,0.42),rgba(239,68,68,0.1))]`,\n \"gradient-yellow\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(250,204,21,0.12),rgba(250,204,21,0.42),rgba(250,204,21,0.12))]`,\n \"gradient-purple\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(167,139,250,0.1),rgba(167,139,250,0.42),rgba(167,139,250,0.1))]`,\n \"gradient-teal\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(45,212,191,0.1),rgba(45,212,191,0.42),rgba(45,212,191,0.1))]`,\n \"gradient-indigo\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(129,140,248,0.1),rgba(129,140,248,0.42),rgba(129,140,248,0.1))]`,\n \"gradient-pink\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(244,114,182,0.1),rgba(244,114,182,0.42),rgba(244,114,182,0.1))]`,\n \"gradient-orange\": `${shimmerLayer} [background-image:linear-gradient(90deg,rgba(251,146,60,0.1),rgba(251,146,60,0.42),rgba(251,146,60,0.1))]`,\n} as const;\n\nexport type SkeletonShimmerTone = keyof typeof skeletonShimmerGradientClasses;\n\nexport const skeletonVariants = cva(\n \"relative overflow-hidden bg-white/10 text-transparent\",\n {\n variants: {\n appearance: {\n default: \"bg-white/10\",\n subtle: \"bg-white/[0.07]\",\n muted: \"bg-slate-800/80\",\n sky: \"bg-sky-500/10\",\n rose: \"bg-rose-500/10\",\n purple: \"bg-purple-500/10\",\n pink: \"bg-pink-500/10\",\n orange: \"bg-orange-500/10\",\n yellow: \"bg-yellow-500/10\",\n teal: \"bg-teal-500/10\",\n indigo: \"bg-indigo-500/10\",\n emerald: \"bg-emerald-500/10\",\n gray: \"bg-gray-500/10\",\n amber: \"bg-amber-500/10\",\n violet: \"bg-violet-500/10\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\": \"bg-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\": \"bg-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600\",\n },\n size: {\n sm: \"min-h-3\",\n md: \"min-h-4\",\n lg: \"min-h-6\",\n },\n rounded: {\n none: \"rounded-none\",\n sm: \"rounded-md\",\n md: \"rounded-lg\",\n lg: \"rounded-xl\",\n full: \"rounded-full\",\n },\n animation: {\n none: \"\",\n shimmer: \"\",\n pulse: \"\",\n },\n shimmerTone: {\n default: \"\",\n subtle: \"\",\n muted: \"\",\n sky: \"\",\n rose: \"\",\n purple: \"\",\n pink: \"\",\n orange: \"\",\n yellow: \"\",\n teal: \"\",\n indigo: \"\",\n emerald: \"\",\n gray: \"\",\n amber: \"\",\n violet: \"\",\n \"gradient-blue\": \"\",\n \"gradient-green\": \"\",\n \"gradient-red\": \"\",\n \"gradient-yellow\": \"\",\n \"gradient-purple\": \"\",\n \"gradient-teal\": \"\",\n \"gradient-indigo\": \"\",\n \"gradient-pink\": \"\",\n \"gradient-orange\": \"\",\n },\n },\n compoundVariants: [\n {\n animation: \"shimmer\",\n shimmerTone: \"default\",\n class: skeletonShimmerGradientClasses.default,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"muted\",\n class: skeletonShimmerGradientClasses.subtle,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"subtle\",\n class: skeletonShimmerGradientClasses.subtle,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"sky\",\n class: skeletonShimmerGradientClasses.sky,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"rose\",\n class: skeletonShimmerGradientClasses.rose,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"purple\",\n class: skeletonShimmerGradientClasses.purple,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"pink\",\n class: skeletonShimmerGradientClasses.pink,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"orange\",\n class: skeletonShimmerGradientClasses.orange,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"yellow\",\n class: skeletonShimmerGradientClasses.yellow,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"teal\",\n class: skeletonShimmerGradientClasses.teal,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"indigo\",\n class: skeletonShimmerGradientClasses.indigo,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"emerald\",\n class: skeletonShimmerGradientClasses.emerald,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gray\",\n class: skeletonShimmerGradientClasses.gray,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"amber\",\n class: skeletonShimmerGradientClasses.amber,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"violet\",\n class: skeletonShimmerGradientClasses.violet,\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-blue\",\n class: skeletonShimmerGradientClasses[\"gradient-blue\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-green\",\n class: skeletonShimmerGradientClasses[\"gradient-green\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-red\",\n class: skeletonShimmerGradientClasses[\"gradient-red\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-yellow\",\n class: skeletonShimmerGradientClasses[\"gradient-yellow\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-purple\",\n class: skeletonShimmerGradientClasses[\"gradient-purple\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-teal\",\n class: skeletonShimmerGradientClasses[\"gradient-teal\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-indigo\",\n class: skeletonShimmerGradientClasses[\"gradient-indigo\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-pink\",\n class: skeletonShimmerGradientClasses[\"gradient-pink\"],\n },\n {\n animation: \"shimmer\",\n shimmerTone: \"gradient-orange\",\n class: skeletonShimmerGradientClasses[\"gradient-orange\"],\n },\n {\n animation: \"pulse\",\n class: \"\",\n },\n ],\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n rounded: \"md\",\n animation: \"shimmer\",\n shimmerTone: \"default\",\n },\n },\n);\n\nexport const skeletonTextLineVariants = cva(\"block w-full\", {\n variants: {\n size: {\n sm: \"h-2.5\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { HTMLMotionProps } from 'framer-motion';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+
6
+ declare const spinnerVariants: (props?: ({
7
+ appearance?: "default" | "secondary" | "destructive" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
8
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
9
+ variant?: "ring" | "dots" | "pulse" | "bars" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+
12
+ type SpinnerVariantProps = VariantProps<typeof spinnerVariants>;
13
+ type SpinnerProps = SpinnerVariantProps & Omit<HTMLMotionProps<"span">, "children"> & {
14
+ "aria-label"?: string;
15
+ };
16
+
17
+ declare function Spinner(props: SpinnerProps): react_jsx_runtime.JSX.Element;
18
+ declare namespace Spinner {
19
+ var displayName: string;
20
+ }
21
+
22
+ /** Spinner variants use Framer `animate` on the root; presets reserved for future. */
23
+ declare const spinnerAnimationPresets: {
24
+ readonly none: {};
25
+ };
26
+
27
+ export { Spinner, type SpinnerProps, spinnerAnimationPresets, spinnerVariants };
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { HTMLMotionProps } from 'framer-motion';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+
6
+ declare const spinnerVariants: (props?: ({
7
+ appearance?: "default" | "secondary" | "destructive" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
8
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
9
+ variant?: "ring" | "dots" | "pulse" | "bars" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+
12
+ type SpinnerVariantProps = VariantProps<typeof spinnerVariants>;
13
+ type SpinnerProps = SpinnerVariantProps & Omit<HTMLMotionProps<"span">, "children"> & {
14
+ "aria-label"?: string;
15
+ };
16
+
17
+ declare function Spinner(props: SpinnerProps): react_jsx_runtime.JSX.Element;
18
+ declare namespace Spinner {
19
+ var displayName: string;
20
+ }
21
+
22
+ /** Spinner variants use Framer `animate` on the root; presets reserved for future. */
23
+ declare const spinnerAnimationPresets: {
24
+ readonly none: {};
25
+ };
26
+
27
+ export { Spinner, type SpinnerProps, spinnerAnimationPresets, spinnerVariants };