@baybreezy/docd 0.1.10 → 0.1.12

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 (93) hide show
  1. package/app/assets/css/shadcn.css +660 -0
  2. package/app/assets/css/tailwind.css +1 -1
  3. package/app/components/Ui/Avatar/Avatar.vue +7 -19
  4. package/app/components/Ui/Avatar/Badge.vue +1 -1
  5. package/app/components/Ui/Avatar/Fallback.vue +2 -2
  6. package/app/components/Ui/Avatar/Group.vue +1 -1
  7. package/app/components/Ui/Avatar/GroupCount.vue +1 -1
  8. package/app/components/Ui/Avatar/Image.vue +2 -2
  9. package/app/components/Ui/Badge.vue +6 -6
  10. package/app/components/Ui/BadgeGroup.vue +6 -6
  11. package/app/components/Ui/BgPattern/Grid.vue +3 -2
  12. package/app/components/Ui/BorderBeam.vue +10 -30
  13. package/app/components/Ui/Breadcrumbs.vue +5 -10
  14. package/app/components/Ui/Button.vue +23 -18
  15. package/app/components/Ui/ButtonGroup/ButtonGroup.vue +3 -4
  16. package/app/components/Ui/ButtonGroup/Separator.vue +2 -6
  17. package/app/components/Ui/ButtonGroup/Text.vue +1 -3
  18. package/app/components/Ui/Card/Action.vue +1 -1
  19. package/app/components/Ui/Card/Card.vue +4 -4
  20. package/app/components/Ui/Card/Content.vue +2 -2
  21. package/app/components/Ui/Card/Description.vue +2 -2
  22. package/app/components/Ui/Card/Footer.vue +1 -1
  23. package/app/components/Ui/Card/Header.vue +1 -1
  24. package/app/components/Ui/Card/Title.vue +2 -2
  25. package/app/components/Ui/Collapsible/Content.vue +1 -1
  26. package/app/components/Ui/Command/Command.vue +4 -18
  27. package/app/components/Ui/Command/Dialog.vue +2 -6
  28. package/app/components/Ui/Command/Footer.vue +1 -1
  29. package/app/components/Ui/Command/Group.vue +1 -1
  30. package/app/components/Ui/Command/Input.vue +1 -1
  31. package/app/components/Ui/Command/Item.vue +5 -5
  32. package/app/components/Ui/Command/List.vue +1 -1
  33. package/app/components/Ui/Command/Separator.vue +1 -1
  34. package/app/components/Ui/Command/Shortcut.vue +2 -2
  35. package/app/components/Ui/Container.vue +2 -2
  36. package/app/components/Ui/ContextMenu/Arrow.vue +2 -2
  37. package/app/components/Ui/ContextMenu/CheckboxItem.vue +3 -3
  38. package/app/components/Ui/ContextMenu/Content.vue +2 -2
  39. package/app/components/Ui/ContextMenu/Item.vue +6 -8
  40. package/app/components/Ui/ContextMenu/ItemIndicator.vue +1 -1
  41. package/app/components/Ui/ContextMenu/Label.vue +3 -3
  42. package/app/components/Ui/ContextMenu/RadioItem.vue +3 -3
  43. package/app/components/Ui/ContextMenu/Separator.vue +1 -1
  44. package/app/components/Ui/ContextMenu/Shortcut.vue +1 -3
  45. package/app/components/Ui/ContextMenu/SubContent.vue +2 -2
  46. package/app/components/Ui/ContextMenu/SubTrigger.vue +4 -4
  47. package/app/components/Ui/Dialog/Content.vue +7 -7
  48. package/app/components/Ui/Dialog/Description.vue +2 -2
  49. package/app/components/Ui/Dialog/Footer.vue +1 -1
  50. package/app/components/Ui/Dialog/Header.vue +1 -1
  51. package/app/components/Ui/Dialog/Overlay.vue +1 -1
  52. package/app/components/Ui/Dialog/Title.vue +2 -2
  53. package/app/components/Ui/Divider.vue +8 -14
  54. package/app/components/Ui/Drawer/Description.vue +2 -6
  55. package/app/components/Ui/Drawer/Footer.vue +1 -3
  56. package/app/components/Ui/Drawer/Header.vue +1 -3
  57. package/app/components/Ui/Drawer/Title.vue +2 -6
  58. package/app/components/Ui/DropdownMenu/Arrow.vue +2 -2
  59. package/app/components/Ui/DropdownMenu/CheckboxItem.vue +3 -3
  60. package/app/components/Ui/DropdownMenu/Content.vue +2 -2
  61. package/app/components/Ui/DropdownMenu/Item.vue +6 -6
  62. package/app/components/Ui/DropdownMenu/ItemIndicator.vue +2 -2
  63. package/app/components/Ui/DropdownMenu/Label.vue +3 -3
  64. package/app/components/Ui/DropdownMenu/RadioItem.vue +3 -3
  65. package/app/components/Ui/DropdownMenu/Separator.vue +1 -1
  66. package/app/components/Ui/DropdownMenu/Shortcut.vue +1 -1
  67. package/app/components/Ui/DropdownMenu/SubContent.vue +3 -3
  68. package/app/components/Ui/DropdownMenu/SubTrigger.vue +5 -5
  69. package/app/components/Ui/FancyIcon.vue +5 -15
  70. package/app/components/Ui/GradientDivider.vue +16 -3
  71. package/app/components/Ui/IframeLazy.vue +10 -15
  72. package/app/components/Ui/Input.vue +12 -11
  73. package/app/components/Ui/InputGroup/Addon.vue +2 -3
  74. package/app/components/Ui/InputGroup/Button.vue +1 -0
  75. package/app/components/Ui/InputGroup/InputGroup.vue +1 -3
  76. package/app/components/Ui/InputGroup/Text.vue +1 -3
  77. package/app/components/Ui/Kbd/Group.vue +1 -3
  78. package/app/components/Ui/Kbd/Kbd.vue +7 -5
  79. package/app/components/Ui/Label.vue +2 -4
  80. package/app/components/Ui/ScrollArea/ScrollArea.vue +47 -4
  81. package/app/components/Ui/ScrollArea/Scrollbar.vue +1 -1
  82. package/app/components/Ui/ScrollArea/Thumb.vue +1 -1
  83. package/app/components/Ui/ScrollArea/Viewport.vue +1 -1
  84. package/app/components/Ui/Scrollspy.vue +1 -3
  85. package/app/components/Ui/Separator.vue +1 -3
  86. package/app/components/Ui/Skeleton.vue +2 -2
  87. package/app/components/Ui/Tabs/Content.vue +1 -1
  88. package/app/components/Ui/Tabs/Indicator.vue +1 -1
  89. package/app/components/Ui/Tabs/List.vue +1 -1
  90. package/app/components/Ui/Tabs/Trigger.vue +2 -2
  91. package/app/components/Ui/Textarea.vue +10 -10
  92. package/app/components/Ui/Tooltip/Arrow.vue +1 -1
  93. package/package.json +16 -16
@@ -0,0 +1,660 @@
1
+ @theme inline {
2
+ @keyframes accordion-down {
3
+ from {
4
+ height: 0;
5
+ }
6
+ to {
7
+ height: var(--reka-accordion-content-height, var(--accordion-panel-height, auto));
8
+ }
9
+ }
10
+
11
+ @keyframes accordion-up {
12
+ from {
13
+ height: var(--reka-accordion-content-height, var(--accordion-panel-height, auto));
14
+ }
15
+ to {
16
+ height: 0;
17
+ }
18
+ }
19
+ }
20
+
21
+ /* Custom variants */
22
+ @custom-variant data-open {
23
+ &:where([data-state="open"]),
24
+ &:where([data-open]:not([data-open="false"])) {
25
+ @slot;
26
+ }
27
+ }
28
+
29
+ @custom-variant data-closed {
30
+ &:where([data-state="closed"]),
31
+ &:where([data-closed]:not([data-closed="false"])) {
32
+ @slot;
33
+ }
34
+ }
35
+
36
+ @custom-variant data-checked {
37
+ &:where([data-state="checked"]),
38
+ &:where([data-checked]:not([data-checked="false"])) {
39
+ @slot;
40
+ }
41
+ }
42
+
43
+ @custom-variant data-unchecked {
44
+ &:where([data-state="unchecked"]),
45
+ &:where([data-unchecked]:not([data-unchecked="false"])) {
46
+ @slot;
47
+ }
48
+ }
49
+
50
+ @custom-variant data-selected {
51
+ &:where([data-selected="true"]) {
52
+ @slot;
53
+ }
54
+ }
55
+
56
+ @custom-variant data-disabled {
57
+ &:where([data-disabled="true"]),
58
+ &:where([data-disabled]:not([data-disabled="false"])) {
59
+ @slot;
60
+ }
61
+ }
62
+
63
+ @custom-variant data-active {
64
+ &:where([data-state="active"]),
65
+ &:where([data-active]:not([data-active="false"])) {
66
+ @slot;
67
+ }
68
+ }
69
+
70
+ @custom-variant data-horizontal {
71
+ &:where([data-orientation="horizontal"]) {
72
+ @slot;
73
+ }
74
+ }
75
+
76
+ @custom-variant data-vertical {
77
+ &:where([data-orientation="vertical"]) {
78
+ @slot;
79
+ }
80
+ }
81
+
82
+ /* scroll-fade */
83
+ @property --scroll-fade-t {
84
+ syntax: "<length-percentage>";
85
+ inherits: false;
86
+ initial-value: 0px;
87
+ }
88
+ @property --scroll-fade-b {
89
+ syntax: "<length-percentage>";
90
+ inherits: false;
91
+ initial-value: 0px;
92
+ }
93
+ @property --scroll-fade-s {
94
+ syntax: "<length-percentage>";
95
+ inherits: false;
96
+ initial-value: 0px;
97
+ }
98
+ @property --scroll-fade-e {
99
+ syntax: "<length-percentage>";
100
+ inherits: false;
101
+ initial-value: 0px;
102
+ }
103
+ @property --scroll-fade-mask {
104
+ syntax: "*";
105
+ inherits: false;
106
+ }
107
+
108
+ @theme inline {
109
+ @keyframes scroll-fade-reveal-t {
110
+ from {
111
+ --scroll-fade-t: 0px;
112
+ }
113
+ to {
114
+ --scroll-fade-t: var(--_scroll-fade-size-t, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
115
+ }
116
+ }
117
+ @keyframes scroll-fade-reveal-b {
118
+ from {
119
+ --scroll-fade-b: var(--_scroll-fade-size-b, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
120
+ }
121
+ to {
122
+ --scroll-fade-b: 0px;
123
+ }
124
+ }
125
+ @keyframes scroll-fade-reveal-s {
126
+ from {
127
+ --scroll-fade-s: 0px;
128
+ }
129
+ to {
130
+ --scroll-fade-s: var(--_scroll-fade-size-s, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
131
+ }
132
+ }
133
+ @keyframes scroll-fade-reveal-e {
134
+ from {
135
+ --scroll-fade-e: var(--_scroll-fade-size-e, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
136
+ }
137
+ to {
138
+ --scroll-fade-e: 0px;
139
+ }
140
+ }
141
+ }
142
+
143
+ @utility scroll-fade {
144
+ --_scroll-fade-size-t: var(
145
+ --scroll-fade-t-size,
146
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
147
+ );
148
+ --_scroll-fade-size-b: var(
149
+ --scroll-fade-b-size,
150
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
151
+ );
152
+ --scroll-fade-block: linear-gradient(
153
+ to bottom,
154
+ transparent 0,
155
+ #000 var(--scroll-fade-t, 0px),
156
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
157
+ transparent 100%
158
+ );
159
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
160
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
161
+ -webkit-mask-composite: source-in;
162
+ mask-composite: intersect;
163
+ -webkit-mask-repeat: no-repeat;
164
+ mask-repeat: no-repeat;
165
+
166
+ @supports (animation-timeline: scroll()) {
167
+ animation:
168
+ scroll-fade-reveal-t 1ms ease-in-out,
169
+ scroll-fade-reveal-b 1ms ease-in-out;
170
+ animation-timeline: scroll(self y), scroll(self y);
171
+ animation-range:
172
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
173
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
174
+ animation-fill-mode: both;
175
+ }
176
+
177
+ @supports not (animation-timeline: scroll()) {
178
+ --scroll-fade-t: var(--_scroll-fade-size-t);
179
+ --scroll-fade-b: var(--_scroll-fade-size-b);
180
+ }
181
+ }
182
+
183
+ @utility scroll-fade-y {
184
+ --_scroll-fade-size-t: var(
185
+ --scroll-fade-t-size,
186
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
187
+ );
188
+ --_scroll-fade-size-b: var(
189
+ --scroll-fade-b-size,
190
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
191
+ );
192
+ --scroll-fade-block: linear-gradient(
193
+ to bottom,
194
+ transparent 0,
195
+ #000 var(--scroll-fade-t, 0px),
196
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
197
+ transparent 100%
198
+ );
199
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
200
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
201
+ -webkit-mask-composite: source-in;
202
+ mask-composite: intersect;
203
+ -webkit-mask-repeat: no-repeat;
204
+ mask-repeat: no-repeat;
205
+
206
+ @supports (animation-timeline: scroll()) {
207
+ animation:
208
+ scroll-fade-reveal-t 1ms ease-in-out,
209
+ scroll-fade-reveal-b 1ms ease-in-out;
210
+ animation-timeline: scroll(self y), scroll(self y);
211
+ animation-range:
212
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
213
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
214
+ animation-fill-mode: both;
215
+ }
216
+
217
+ @supports not (animation-timeline: scroll()) {
218
+ --scroll-fade-t: var(--_scroll-fade-size-t);
219
+ --scroll-fade-b: var(--_scroll-fade-size-b);
220
+ }
221
+ }
222
+
223
+ @utility scroll-fade-x {
224
+ --_scroll-fade-size-s: var(
225
+ --scroll-fade-s-size,
226
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
227
+ );
228
+ --_scroll-fade-size-e: var(
229
+ --scroll-fade-e-size,
230
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
231
+ );
232
+ --scroll-fade-inline: linear-gradient(
233
+ to right,
234
+ transparent 0,
235
+ #000 var(--scroll-fade-s, 0px),
236
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
237
+ transparent 100%
238
+ );
239
+ &:where([dir="rtl"], [dir="rtl"] *) {
240
+ --scroll-fade-inline: linear-gradient(
241
+ to left,
242
+ transparent 0,
243
+ #000 var(--scroll-fade-s, 0px),
244
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
245
+ transparent 100%
246
+ );
247
+ }
248
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
249
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
250
+ -webkit-mask-composite: source-in;
251
+ mask-composite: intersect;
252
+ -webkit-mask-repeat: no-repeat;
253
+ mask-repeat: no-repeat;
254
+
255
+ @supports (animation-timeline: scroll()) {
256
+ animation:
257
+ scroll-fade-reveal-s 1ms ease-in-out,
258
+ scroll-fade-reveal-e 1ms ease-in-out;
259
+ animation-timeline: scroll(self inline), scroll(self inline);
260
+ animation-range:
261
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
262
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
263
+ animation-fill-mode: both;
264
+ }
265
+
266
+ @supports not (animation-timeline: scroll()) {
267
+ --scroll-fade-s: var(--_scroll-fade-size-s);
268
+ --scroll-fade-e: var(--_scroll-fade-size-e);
269
+ }
270
+ }
271
+
272
+ @utility scroll-fade-t {
273
+ --_scroll-fade-size-t: var(
274
+ --scroll-fade-t-size,
275
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
276
+ );
277
+ --scroll-fade-mask: linear-gradient(
278
+ to bottom,
279
+ transparent 0,
280
+ #000 var(--scroll-fade-t, 0px),
281
+ #000 100%
282
+ );
283
+ -webkit-mask-image: var(--scroll-fade-mask);
284
+ mask-image: var(--scroll-fade-mask);
285
+ -webkit-mask-composite: source-in;
286
+ mask-composite: intersect;
287
+ -webkit-mask-repeat: no-repeat;
288
+ mask-repeat: no-repeat;
289
+
290
+ @supports (animation-timeline: scroll()) {
291
+ animation: scroll-fade-reveal-t 1ms ease-in-out;
292
+ animation-timeline: scroll(self y);
293
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
294
+ animation-fill-mode: both;
295
+ }
296
+
297
+ @supports not (animation-timeline: scroll()) {
298
+ --scroll-fade-t: var(--_scroll-fade-size-t);
299
+ }
300
+ }
301
+
302
+ @utility scroll-fade-b {
303
+ --_scroll-fade-size-b: var(
304
+ --scroll-fade-b-size,
305
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
306
+ );
307
+ --scroll-fade-mask: linear-gradient(
308
+ to bottom,
309
+ #000 0,
310
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
311
+ transparent 100%
312
+ );
313
+ -webkit-mask-image: var(--scroll-fade-mask);
314
+ mask-image: var(--scroll-fade-mask);
315
+ -webkit-mask-composite: source-in;
316
+ mask-composite: intersect;
317
+ -webkit-mask-repeat: no-repeat;
318
+ mask-repeat: no-repeat;
319
+
320
+ @supports (animation-timeline: scroll()) {
321
+ animation: scroll-fade-reveal-b 1ms ease-in-out;
322
+ animation-timeline: scroll(self y);
323
+ animation-range: calc(
324
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
325
+ )
326
+ 100%;
327
+ animation-fill-mode: both;
328
+ }
329
+
330
+ @supports not (animation-timeline: scroll()) {
331
+ --scroll-fade-b: var(--_scroll-fade-size-b);
332
+ }
333
+ }
334
+
335
+ @utility scroll-fade-l {
336
+ --_scroll-fade-size-s: var(
337
+ --scroll-fade-s-size,
338
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
339
+ );
340
+ --scroll-fade-mask: linear-gradient(
341
+ to right,
342
+ transparent 0,
343
+ #000 var(--scroll-fade-s, 0px),
344
+ #000 100%
345
+ );
346
+ -webkit-mask-image: var(--scroll-fade-mask);
347
+ mask-image: var(--scroll-fade-mask);
348
+ -webkit-mask-composite: source-in;
349
+ mask-composite: intersect;
350
+ -webkit-mask-repeat: no-repeat;
351
+ mask-repeat: no-repeat;
352
+
353
+ @supports (animation-timeline: scroll()) {
354
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
355
+ animation-timeline: scroll(self x);
356
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
357
+ animation-fill-mode: both;
358
+ }
359
+
360
+ @supports not (animation-timeline: scroll()) {
361
+ --scroll-fade-s: var(--_scroll-fade-size-s);
362
+ }
363
+ }
364
+
365
+ @utility scroll-fade-r {
366
+ --_scroll-fade-size-e: var(
367
+ --scroll-fade-e-size,
368
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
369
+ );
370
+ --scroll-fade-mask: linear-gradient(
371
+ to right,
372
+ #000 0,
373
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
374
+ transparent 100%
375
+ );
376
+ -webkit-mask-image: var(--scroll-fade-mask);
377
+ mask-image: var(--scroll-fade-mask);
378
+ -webkit-mask-composite: source-in;
379
+ mask-composite: intersect;
380
+ -webkit-mask-repeat: no-repeat;
381
+ mask-repeat: no-repeat;
382
+
383
+ @supports (animation-timeline: scroll()) {
384
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
385
+ animation-timeline: scroll(self x);
386
+ animation-range: calc(
387
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
388
+ )
389
+ 100%;
390
+ animation-fill-mode: both;
391
+ }
392
+
393
+ @supports not (animation-timeline: scroll()) {
394
+ --scroll-fade-e: var(--_scroll-fade-size-e);
395
+ }
396
+ }
397
+
398
+ @utility scroll-fade-s {
399
+ --_scroll-fade-size-s: var(
400
+ --scroll-fade-s-size,
401
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
402
+ );
403
+ --scroll-fade-mask: linear-gradient(
404
+ to right,
405
+ transparent 0,
406
+ #000 var(--scroll-fade-s, 0px),
407
+ #000 100%
408
+ );
409
+ &:where([dir="rtl"], [dir="rtl"] *) {
410
+ --scroll-fade-mask: linear-gradient(
411
+ to left,
412
+ transparent 0,
413
+ #000 var(--scroll-fade-s, 0px),
414
+ #000 100%
415
+ );
416
+ }
417
+ -webkit-mask-image: var(--scroll-fade-mask);
418
+ mask-image: var(--scroll-fade-mask);
419
+ -webkit-mask-composite: source-in;
420
+ mask-composite: intersect;
421
+ -webkit-mask-repeat: no-repeat;
422
+ mask-repeat: no-repeat;
423
+
424
+ @supports (animation-timeline: scroll()) {
425
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
426
+ animation-timeline: scroll(self inline);
427
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
428
+ animation-fill-mode: both;
429
+ }
430
+
431
+ @supports not (animation-timeline: scroll()) {
432
+ --scroll-fade-s: var(--_scroll-fade-size-s);
433
+ }
434
+ }
435
+
436
+ @utility scroll-fade-e {
437
+ --_scroll-fade-size-e: var(
438
+ --scroll-fade-e-size,
439
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
440
+ );
441
+ --scroll-fade-mask: linear-gradient(
442
+ to right,
443
+ #000 0,
444
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
445
+ transparent 100%
446
+ );
447
+ &:where([dir="rtl"], [dir="rtl"] *) {
448
+ --scroll-fade-mask: linear-gradient(
449
+ to left,
450
+ #000 0,
451
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
452
+ transparent 100%
453
+ );
454
+ }
455
+ -webkit-mask-image: var(--scroll-fade-mask);
456
+ mask-image: var(--scroll-fade-mask);
457
+ -webkit-mask-composite: source-in;
458
+ mask-composite: intersect;
459
+ -webkit-mask-repeat: no-repeat;
460
+ mask-repeat: no-repeat;
461
+
462
+ @supports (animation-timeline: scroll()) {
463
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
464
+ animation-timeline: scroll(self inline);
465
+ animation-range: calc(
466
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
467
+ )
468
+ 100%;
469
+ animation-fill-mode: both;
470
+ }
471
+
472
+ @supports not (animation-timeline: scroll()) {
473
+ --scroll-fade-e: var(--_scroll-fade-size-e);
474
+ }
475
+ }
476
+
477
+ @utility scroll-fade-* {
478
+ --scroll-fade-size: calc(var(--spacing) * --value(integer));
479
+ --scroll-fade-size: --value([length], [percentage]);
480
+ }
481
+
482
+ @utility scroll-fade-t-* {
483
+ --scroll-fade-t-size: calc(var(--spacing) * --value(integer));
484
+ --scroll-fade-t-size: --value([length], [percentage]);
485
+ }
486
+
487
+ @utility scroll-fade-b-* {
488
+ --scroll-fade-b-size: calc(var(--spacing) * --value(integer));
489
+ --scroll-fade-b-size: --value([length], [percentage]);
490
+ }
491
+
492
+ @utility scroll-fade-s-* {
493
+ --scroll-fade-s-size: calc(var(--spacing) * --value(integer));
494
+ --scroll-fade-s-size: --value([length], [percentage]);
495
+ }
496
+
497
+ @utility scroll-fade-e-* {
498
+ --scroll-fade-e-size: calc(var(--spacing) * --value(integer));
499
+ --scroll-fade-e-size: --value([length], [percentage]);
500
+ }
501
+
502
+ @utility scroll-fade-none {
503
+ --scroll-fade-mask: none;
504
+ }
505
+
506
+ /* shimmer */
507
+ @property --shimmer-angle {
508
+ syntax: "<angle>";
509
+ inherits: true;
510
+ initial-value: 20deg;
511
+ }
512
+ @property --shimmer-image {
513
+ syntax: "*";
514
+ inherits: false;
515
+ }
516
+ @property --shimmer-text-fill {
517
+ syntax: "*";
518
+ inherits: false;
519
+ }
520
+
521
+ @theme inline {
522
+ @keyframes tw-shimmer {
523
+ from {
524
+ background-position: 100% 0;
525
+ }
526
+ to {
527
+ background-position: 0 0;
528
+ }
529
+ }
530
+ }
531
+
532
+ @utility shimmer {
533
+ --_spread: var(--shimmer-spread, calc(3ch + 40px));
534
+ --_base: currentColor;
535
+ --_highlight: var(
536
+ --shimmer-color,
537
+ oklch(from currentColor l c h / calc(alpha* 0.2))
538
+ );
539
+
540
+ background-image: var(
541
+ --shimmer-image,
542
+ linear-gradient(
543
+ calc(90deg + var(--shimmer-angle)),
544
+ var(--_base) calc(50% - var(--_spread)),
545
+ color-mix(in oklch, var(--_highlight), var(--_base) 50%)
546
+ calc(50% - var(--_spread) * 0.5),
547
+ var(--_highlight) 50%,
548
+ color-mix(in oklch, var(--_highlight), var(--_base) 50%)
549
+ calc(50% + var(--_spread) * 0.5),
550
+ var(--_base) calc(50% + var(--_spread))
551
+ )
552
+ );
553
+ background-repeat: no-repeat;
554
+ background-size: calc(200% + var(--_spread) * 2) 100%;
555
+ background-position: 0 0;
556
+ background-clip: text;
557
+ -webkit-background-clip: text;
558
+ -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
559
+ animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite;
560
+
561
+ @variant dark {
562
+ --_highlight: var(
563
+ --shimmer-color,
564
+ oklch(from currentColor max(0.8, calc(l + 0.4)) c h / calc(alpha + 0.4))
565
+ );
566
+ }
567
+
568
+ &:where([dir="rtl"], [dir="rtl"] *) {
569
+ animation-direction: reverse;
570
+ }
571
+ }
572
+
573
+ @utility shimmer-once {
574
+ animation-iteration-count: 1;
575
+ }
576
+
577
+ @utility shimmer-reverse {
578
+ animation-direction: reverse;
579
+ }
580
+
581
+ @utility shimmer-none {
582
+ --shimmer-image: none;
583
+ --shimmer-text-fill: currentColor;
584
+ }
585
+
586
+ @utility shimmer-color-* {
587
+ --shimmer-color: --value(--color, [color]);
588
+ --shimmer-color: color-mix(
589
+ in oklch,
590
+ --value(--color, [color]) calc(--modifier(integer) * 1%),
591
+ transparent
592
+ );
593
+ }
594
+
595
+ @utility shimmer-duration-* {
596
+ --shimmer-duration: calc(--value(integer) * 1ms);
597
+ }
598
+
599
+ @utility shimmer-spread-* {
600
+ --shimmer-spread: calc(var(--spacing) * --value(integer));
601
+ --shimmer-spread: --value([length], [percentage]);
602
+ }
603
+
604
+ @utility shimmer-angle-* {
605
+ --shimmer-angle: calc(--value(integer) * 1deg);
606
+ }
607
+
608
+ @media (prefers-reduced-motion: reduce) {
609
+ .shimmer {
610
+ animation: none;
611
+ background-image: none;
612
+ -webkit-text-fill-color: currentColor;
613
+ }
614
+ }
615
+
616
+
617
+ /* Message entrance animations for the MessageScroller demos. */
618
+ @keyframes ms-anim-fade {
619
+ from { opacity: 0; }
620
+ to { opacity: 1; }
621
+ }
622
+ @keyframes ms-anim-slide-up {
623
+ from { opacity: 0; transform: translateY(10px); }
624
+ to { opacity: 1; transform: translateY(0); }
625
+ }
626
+ @keyframes ms-anim-slide-side {
627
+ from { opacity: 0; transform: translateX(18px); }
628
+ to { opacity: 1; transform: translateX(0); }
629
+ }
630
+ @keyframes ms-anim-pop {
631
+ from { opacity: 0; transform: translateY(6px) scale(0.94); }
632
+ to { opacity: 1; transform: translateY(0) scale(1); }
633
+ }
634
+ @keyframes ms-anim-spring-bounce {
635
+ 0% { opacity: 0; transform: translateY(12px) scale(0.96); }
636
+ 60% { opacity: 1; transform: translateY(-2px) scale(1.01); }
637
+ 100% { opacity: 1; transform: translateY(0) scale(1); }
638
+ }
639
+ @keyframes ms-anim-blur-fade {
640
+ from { opacity: 0; filter: blur(4px); transform: translateY(6px); }
641
+ to { opacity: 1; filter: blur(0); transform: translateY(0); }
642
+ }
643
+ @keyframes ms-anim-scale-fade {
644
+ from { opacity: 0; transform: scale(0.98); }
645
+ to { opacity: 1; transform: scale(1); }
646
+ }
647
+
648
+ .ms-anim-fade { animation: ms-anim-fade 0.26s cubic-bezier(0.16, 1, 0.3, 1) both; }
649
+ .ms-anim-slide-up { animation: ms-anim-slide-up 0.26s cubic-bezier(0.16, 1, 0.3, 1) both; }
650
+ .ms-anim-slide-side { animation: ms-anim-slide-side 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; }
651
+ .ms-anim-pop { animation: ms-anim-pop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
652
+ .ms-anim-spring-bounce { animation: ms-anim-spring-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
653
+ .ms-anim-blur-fade { animation: ms-anim-blur-fade 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; }
654
+ .ms-anim-scale-fade { animation: ms-anim-scale-fade 0.24s cubic-bezier(0.16, 1, 0.3, 1) both; }
655
+
656
+ @media (prefers-reduced-motion: reduce) {
657
+ [class*="ms-anim-"] {
658
+ animation: none;
659
+ }
660
+ }
@@ -1,6 +1,6 @@
1
1
  @import "tailwindcss";
2
2
  @import "tw-animate-css";
3
-
3
+ @import "./shadcn.css";
4
4
  @config "../../../tailwind.config.cjs";
5
5
 
6
6
  @plugin "@tailwindcss/typography";
@@ -30,32 +30,20 @@
30
30
 
31
31
  export type AvatarProps = AvatarRootProps &
32
32
  Partial<AvatarImageProps> & {
33
- /**
34
- * Class to add to the root element
35
- */
33
+ /** Class to add to the root element. */
36
34
  class?: any;
37
- /**
38
- * Class to pass to the image element
39
- */
35
+ /** Class to pass to the image element. */
40
36
  imageClass?: any;
41
- /**
42
- * Class to pass to the fallback element
43
- */
37
+ /** Class to pass to the fallback element. */
44
38
  fallbackClass?: any;
45
- /**
46
- * The `alt` attribute value for the image
47
- */
39
+ /** The `alt` attribute value for the image. */
48
40
  alt?: string;
49
- /**
50
- * The fallback text to display when the image fails to load
51
- */
41
+ /** The fallback text to display when the image fails to load. */
52
42
  fallback?: string;
53
- /**
54
- * Useful for delaying rendering so it only appears for those with slower connections.
55
- */
43
+ /** Useful for delaying rendering so it only appears for those with slower connections. */
56
44
  delayMs?: number;
57
45
  /**
58
- * The size of the avatar
46
+ * The size of the avatar.
59
47
  *
60
48
  * @default "default"
61
49
  */
@@ -16,7 +16,7 @@
16
16
  const props = withDefaults(
17
17
  defineProps<
18
18
  PrimitiveProps & {
19
- /** Custom class(es) to add to the element */
19
+ /** Custom class(es) to add to the element. */
20
20
  class?: any;
21
21
  }
22
22
  >(),