@baybreezy/docd 0.1.10 → 0.1.11

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 +612 -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 +1 -1
@@ -0,0 +1,612 @@
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(
115
+ --_scroll-fade-size-t,
116
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
117
+ );
118
+ }
119
+ }
120
+ @keyframes scroll-fade-reveal-b {
121
+ from {
122
+ --scroll-fade-b: var(
123
+ --_scroll-fade-size-b,
124
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
125
+ );
126
+ }
127
+ to {
128
+ --scroll-fade-b: 0px;
129
+ }
130
+ }
131
+ @keyframes scroll-fade-reveal-s {
132
+ from {
133
+ --scroll-fade-s: 0px;
134
+ }
135
+ to {
136
+ --scroll-fade-s: var(
137
+ --_scroll-fade-size-s,
138
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
139
+ );
140
+ }
141
+ }
142
+ @keyframes scroll-fade-reveal-e {
143
+ from {
144
+ --scroll-fade-e: var(
145
+ --_scroll-fade-size-e,
146
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
147
+ );
148
+ }
149
+ to {
150
+ --scroll-fade-e: 0px;
151
+ }
152
+ }
153
+ }
154
+
155
+ @utility scroll-fade {
156
+ --_scroll-fade-size-t: var(
157
+ --scroll-fade-t-size,
158
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
159
+ );
160
+ --_scroll-fade-size-b: var(
161
+ --scroll-fade-b-size,
162
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
163
+ );
164
+ --scroll-fade-block: linear-gradient(
165
+ to bottom,
166
+ transparent 0,
167
+ #000 var(--scroll-fade-t, 0px),
168
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
169
+ transparent 100%
170
+ );
171
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
172
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
173
+ -webkit-mask-composite: source-in;
174
+ mask-composite: intersect;
175
+ -webkit-mask-repeat: no-repeat;
176
+ mask-repeat: no-repeat;
177
+
178
+ @supports (animation-timeline: scroll()) {
179
+ animation:
180
+ scroll-fade-reveal-t 1ms ease-in-out,
181
+ scroll-fade-reveal-b 1ms ease-in-out;
182
+ animation-timeline: scroll(self y), scroll(self y);
183
+ animation-range:
184
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
185
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
186
+ animation-fill-mode: both;
187
+ }
188
+
189
+ @supports not (animation-timeline: scroll()) {
190
+ --scroll-fade-t: var(--_scroll-fade-size-t);
191
+ --scroll-fade-b: var(--_scroll-fade-size-b);
192
+ }
193
+ }
194
+
195
+ @utility scroll-fade-y {
196
+ --_scroll-fade-size-t: var(
197
+ --scroll-fade-t-size,
198
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
199
+ );
200
+ --_scroll-fade-size-b: var(
201
+ --scroll-fade-b-size,
202
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
203
+ );
204
+ --scroll-fade-block: linear-gradient(
205
+ to bottom,
206
+ transparent 0,
207
+ #000 var(--scroll-fade-t, 0px),
208
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
209
+ transparent 100%
210
+ );
211
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
212
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
213
+ -webkit-mask-composite: source-in;
214
+ mask-composite: intersect;
215
+ -webkit-mask-repeat: no-repeat;
216
+ mask-repeat: no-repeat;
217
+
218
+ @supports (animation-timeline: scroll()) {
219
+ animation:
220
+ scroll-fade-reveal-t 1ms ease-in-out,
221
+ scroll-fade-reveal-b 1ms ease-in-out;
222
+ animation-timeline: scroll(self y), scroll(self y);
223
+ animation-range:
224
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
225
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
226
+ animation-fill-mode: both;
227
+ }
228
+
229
+ @supports not (animation-timeline: scroll()) {
230
+ --scroll-fade-t: var(--_scroll-fade-size-t);
231
+ --scroll-fade-b: var(--_scroll-fade-size-b);
232
+ }
233
+ }
234
+
235
+ @utility scroll-fade-x {
236
+ --_scroll-fade-size-s: var(
237
+ --scroll-fade-s-size,
238
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
239
+ );
240
+ --_scroll-fade-size-e: var(
241
+ --scroll-fade-e-size,
242
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
243
+ );
244
+ --scroll-fade-inline: linear-gradient(
245
+ to right,
246
+ transparent 0,
247
+ #000 var(--scroll-fade-s, 0px),
248
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
249
+ transparent 100%
250
+ );
251
+ &:where([dir="rtl"], [dir="rtl"] *) {
252
+ --scroll-fade-inline: linear-gradient(
253
+ to left,
254
+ transparent 0,
255
+ #000 var(--scroll-fade-s, 0px),
256
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
257
+ transparent 100%
258
+ );
259
+ }
260
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
261
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
262
+ -webkit-mask-composite: source-in;
263
+ mask-composite: intersect;
264
+ -webkit-mask-repeat: no-repeat;
265
+ mask-repeat: no-repeat;
266
+
267
+ @supports (animation-timeline: scroll()) {
268
+ animation:
269
+ scroll-fade-reveal-s 1ms ease-in-out,
270
+ scroll-fade-reveal-e 1ms ease-in-out;
271
+ animation-timeline: scroll(self inline), scroll(self inline);
272
+ animation-range:
273
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
274
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
275
+ animation-fill-mode: both;
276
+ }
277
+
278
+ @supports not (animation-timeline: scroll()) {
279
+ --scroll-fade-s: var(--_scroll-fade-size-s);
280
+ --scroll-fade-e: var(--_scroll-fade-size-e);
281
+ }
282
+ }
283
+
284
+ @utility scroll-fade-t {
285
+ --_scroll-fade-size-t: var(
286
+ --scroll-fade-t-size,
287
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
288
+ );
289
+ --scroll-fade-mask: linear-gradient(
290
+ to bottom,
291
+ transparent 0,
292
+ #000 var(--scroll-fade-t, 0px),
293
+ #000 100%
294
+ );
295
+ -webkit-mask-image: var(--scroll-fade-mask);
296
+ mask-image: var(--scroll-fade-mask);
297
+ -webkit-mask-composite: source-in;
298
+ mask-composite: intersect;
299
+ -webkit-mask-repeat: no-repeat;
300
+ mask-repeat: no-repeat;
301
+
302
+ @supports (animation-timeline: scroll()) {
303
+ animation: scroll-fade-reveal-t 1ms ease-in-out;
304
+ animation-timeline: scroll(self y);
305
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
306
+ animation-fill-mode: both;
307
+ }
308
+
309
+ @supports not (animation-timeline: scroll()) {
310
+ --scroll-fade-t: var(--_scroll-fade-size-t);
311
+ }
312
+ }
313
+
314
+ @utility scroll-fade-b {
315
+ --_scroll-fade-size-b: var(
316
+ --scroll-fade-b-size,
317
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
318
+ );
319
+ --scroll-fade-mask: linear-gradient(
320
+ to bottom,
321
+ #000 0,
322
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
323
+ transparent 100%
324
+ );
325
+ -webkit-mask-image: var(--scroll-fade-mask);
326
+ mask-image: var(--scroll-fade-mask);
327
+ -webkit-mask-composite: source-in;
328
+ mask-composite: intersect;
329
+ -webkit-mask-repeat: no-repeat;
330
+ mask-repeat: no-repeat;
331
+
332
+ @supports (animation-timeline: scroll()) {
333
+ animation: scroll-fade-reveal-b 1ms ease-in-out;
334
+ animation-timeline: scroll(self y);
335
+ animation-range: calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
336
+ animation-fill-mode: both;
337
+ }
338
+
339
+ @supports not (animation-timeline: scroll()) {
340
+ --scroll-fade-b: var(--_scroll-fade-size-b);
341
+ }
342
+ }
343
+
344
+ @utility scroll-fade-l {
345
+ --_scroll-fade-size-s: var(
346
+ --scroll-fade-s-size,
347
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
348
+ );
349
+ --scroll-fade-mask: linear-gradient(
350
+ to right,
351
+ transparent 0,
352
+ #000 var(--scroll-fade-s, 0px),
353
+ #000 100%
354
+ );
355
+ -webkit-mask-image: var(--scroll-fade-mask);
356
+ mask-image: var(--scroll-fade-mask);
357
+ -webkit-mask-composite: source-in;
358
+ mask-composite: intersect;
359
+ -webkit-mask-repeat: no-repeat;
360
+ mask-repeat: no-repeat;
361
+
362
+ @supports (animation-timeline: scroll()) {
363
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
364
+ animation-timeline: scroll(self x);
365
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
366
+ animation-fill-mode: both;
367
+ }
368
+
369
+ @supports not (animation-timeline: scroll()) {
370
+ --scroll-fade-s: var(--_scroll-fade-size-s);
371
+ }
372
+ }
373
+
374
+ @utility scroll-fade-r {
375
+ --_scroll-fade-size-e: var(
376
+ --scroll-fade-e-size,
377
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
378
+ );
379
+ --scroll-fade-mask: linear-gradient(
380
+ to right,
381
+ #000 0,
382
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
383
+ transparent 100%
384
+ );
385
+ -webkit-mask-image: var(--scroll-fade-mask);
386
+ mask-image: var(--scroll-fade-mask);
387
+ -webkit-mask-composite: source-in;
388
+ mask-composite: intersect;
389
+ -webkit-mask-repeat: no-repeat;
390
+ mask-repeat: no-repeat;
391
+
392
+ @supports (animation-timeline: scroll()) {
393
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
394
+ animation-timeline: scroll(self x);
395
+ animation-range: calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
396
+ animation-fill-mode: both;
397
+ }
398
+
399
+ @supports not (animation-timeline: scroll()) {
400
+ --scroll-fade-e: var(--_scroll-fade-size-e);
401
+ }
402
+ }
403
+
404
+ @utility scroll-fade-s {
405
+ --_scroll-fade-size-s: var(
406
+ --scroll-fade-s-size,
407
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
408
+ );
409
+ --scroll-fade-mask: linear-gradient(
410
+ to right,
411
+ transparent 0,
412
+ #000 var(--scroll-fade-s, 0px),
413
+ #000 100%
414
+ );
415
+ &:where([dir="rtl"], [dir="rtl"] *) {
416
+ --scroll-fade-mask: linear-gradient(
417
+ to left,
418
+ transparent 0,
419
+ #000 var(--scroll-fade-s, 0px),
420
+ #000 100%
421
+ );
422
+ }
423
+ -webkit-mask-image: var(--scroll-fade-mask);
424
+ mask-image: var(--scroll-fade-mask);
425
+ -webkit-mask-composite: source-in;
426
+ mask-composite: intersect;
427
+ -webkit-mask-repeat: no-repeat;
428
+ mask-repeat: no-repeat;
429
+
430
+ @supports (animation-timeline: scroll()) {
431
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
432
+ animation-timeline: scroll(self inline);
433
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
434
+ animation-fill-mode: both;
435
+ }
436
+
437
+ @supports not (animation-timeline: scroll()) {
438
+ --scroll-fade-s: var(--_scroll-fade-size-s);
439
+ }
440
+ }
441
+
442
+ @utility scroll-fade-e {
443
+ --_scroll-fade-size-e: var(
444
+ --scroll-fade-e-size,
445
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
446
+ );
447
+ --scroll-fade-mask: linear-gradient(
448
+ to right,
449
+ #000 0,
450
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
451
+ transparent 100%
452
+ );
453
+ &:where([dir="rtl"], [dir="rtl"] *) {
454
+ --scroll-fade-mask: linear-gradient(
455
+ to left,
456
+ #000 0,
457
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
458
+ transparent 100%
459
+ );
460
+ }
461
+ -webkit-mask-image: var(--scroll-fade-mask);
462
+ mask-image: var(--scroll-fade-mask);
463
+ -webkit-mask-composite: source-in;
464
+ mask-composite: intersect;
465
+ -webkit-mask-repeat: no-repeat;
466
+ mask-repeat: no-repeat;
467
+
468
+ @supports (animation-timeline: scroll()) {
469
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
470
+ animation-timeline: scroll(self inline);
471
+ animation-range: calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
472
+ animation-fill-mode: both;
473
+ }
474
+
475
+ @supports not (animation-timeline: scroll()) {
476
+ --scroll-fade-e: var(--_scroll-fade-size-e);
477
+ }
478
+ }
479
+
480
+ @utility scroll-fade-* {
481
+ --scroll-fade-size: calc(var(--spacing) * --value(integer));
482
+ --scroll-fade-size: --value([length], [percentage]);
483
+ }
484
+
485
+ @utility scroll-fade-t-* {
486
+ --scroll-fade-t-size: calc(var(--spacing) * --value(integer));
487
+ --scroll-fade-t-size: --value([length], [percentage]);
488
+ }
489
+
490
+ @utility scroll-fade-b-* {
491
+ --scroll-fade-b-size: calc(var(--spacing) * --value(integer));
492
+ --scroll-fade-b-size: --value([length], [percentage]);
493
+ }
494
+
495
+ @utility scroll-fade-s-* {
496
+ --scroll-fade-s-size: calc(var(--spacing) * --value(integer));
497
+ --scroll-fade-s-size: --value([length], [percentage]);
498
+ }
499
+
500
+ @utility scroll-fade-e-* {
501
+ --scroll-fade-e-size: calc(var(--spacing) * --value(integer));
502
+ --scroll-fade-e-size: --value([length], [percentage]);
503
+ }
504
+
505
+ @utility scroll-fade-none {
506
+ --scroll-fade-mask: none;
507
+ }
508
+
509
+ /* shimmer */
510
+ @property --shimmer-angle {
511
+ syntax: "<angle>";
512
+ inherits: true;
513
+ initial-value: 20deg;
514
+ }
515
+ @property --shimmer-image {
516
+ syntax: "*";
517
+ inherits: false;
518
+ }
519
+ @property --shimmer-text-fill {
520
+ syntax: "*";
521
+ inherits: false;
522
+ }
523
+
524
+ @theme inline {
525
+ @keyframes tw-shimmer {
526
+ from {
527
+ background-position: 100% 0;
528
+ }
529
+ to {
530
+ background-position: 0 0;
531
+ }
532
+ }
533
+ }
534
+
535
+ @utility shimmer {
536
+ --_spread: var(--shimmer-spread, calc(3ch + 40px));
537
+ --_base: currentColor;
538
+ --_highlight: var(--shimmer-color, oklch(from currentColor l c h / calc(alpha* 0.2)));
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%) calc(50% - var(--_spread) * 0.5),
546
+ var(--_highlight) 50%,
547
+ color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * 0.5),
548
+ var(--_base) calc(50% + var(--_spread))
549
+ )
550
+ );
551
+ background-repeat: no-repeat;
552
+ background-size: calc(200% + var(--_spread) * 2) 100%;
553
+ background-position: 0 0;
554
+ background-clip: text;
555
+ -webkit-background-clip: text;
556
+ -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
557
+ animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite;
558
+
559
+ @variant dark {
560
+ --_highlight: var(
561
+ --shimmer-color,
562
+ oklch(from currentColor max(0.8, calc(l + 0.4)) c h / calc(alpha + 0.4))
563
+ );
564
+ }
565
+
566
+ &:where([dir="rtl"], [dir="rtl"] *) {
567
+ animation-direction: reverse;
568
+ }
569
+ }
570
+
571
+ @utility shimmer-once {
572
+ animation-iteration-count: 1;
573
+ }
574
+
575
+ @utility shimmer-reverse {
576
+ animation-direction: reverse;
577
+ }
578
+
579
+ @utility shimmer-none {
580
+ --shimmer-image: none;
581
+ --shimmer-text-fill: currentColor;
582
+ }
583
+
584
+ @utility shimmer-color-* {
585
+ --shimmer-color: --value(--color, [color]);
586
+ --shimmer-color: color-mix(
587
+ in oklch,
588
+ --value(--color, [color]) calc(--modifier(integer) * 1%),
589
+ transparent
590
+ );
591
+ }
592
+
593
+ @utility shimmer-duration-* {
594
+ --shimmer-duration: calc(--value(integer) * 1ms);
595
+ }
596
+
597
+ @utility shimmer-spread-* {
598
+ --shimmer-spread: calc(var(--spacing) * --value(integer));
599
+ --shimmer-spread: --value([length], [percentage]);
600
+ }
601
+
602
+ @utility shimmer-angle-* {
603
+ --shimmer-angle: calc(--value(integer) * 1deg);
604
+ }
605
+
606
+ @media (prefers-reduced-motion: reduce) {
607
+ .shimmer {
608
+ animation: none;
609
+ background-image: none;
610
+ -webkit-text-fill-color: currentColor;
611
+ }
612
+ }
@@ -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
  >(),
@@ -17,9 +17,9 @@
17
17
 
18
18
  const props = defineProps<
19
19
  AvatarFallbackProps & {
20
- /** The text to display inside the avatar */
20
+ /** The text to display inside the avatar. */
21
21
  fallback?: string;
22
- /** Custom class(es) to add to the element */
22
+ /** Custom class(es) to add to the element. */
23
23
  class?: any;
24
24
  }
25
25
  >();
@@ -15,7 +15,7 @@
15
15
 
16
16
  const props = defineProps<
17
17
  PrimitiveProps & {
18
- /** Custom class(es) to add to the element */
18
+ /** Custom class(es) to add to the element. */
19
19
  class?: any;
20
20
  }
21
21
  >();
@@ -15,7 +15,7 @@
15
15
 
16
16
  const props = defineProps<
17
17
  PrimitiveProps & {
18
- /** Custom class(es) to add to the element */
18
+ /** Custom class(es) to add to the element. */
19
19
  class?: any;
20
20
  }
21
21
  >();
@@ -13,9 +13,9 @@
13
13
 
14
14
  const props = defineProps<
15
15
  AvatarImageProps & {
16
- /** The alt text for the image */
16
+ /** The alt text for the image. */
17
17
  alt?: string;
18
- /** Custom class(es) to add to the element */
18
+ /** Custom class(es) to add to the element. */
19
19
  class?: any;
20
20
  }
21
21
  >();