jasmincss 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +524 -0
  2. package/bin/jasmin.js +45 -0
  3. package/dist/index.d.ts +62 -0
  4. package/dist/index.js +14568 -0
  5. package/dist/index.mjs +14524 -0
  6. package/dist/jasmin.css +63308 -0
  7. package/dist/jasmin.min.css +1 -0
  8. package/dist/plugins/nextjs.js +14777 -0
  9. package/dist/plugins/nextjs.mjs +14747 -0
  10. package/dist/plugins/vite.js +14889 -0
  11. package/dist/plugins/vite.mjs +14860 -0
  12. package/package.json +101 -0
  13. package/src/cli/add.js +83 -0
  14. package/src/cli/init.js +210 -0
  15. package/src/cli/run.js +142 -0
  16. package/src/components/accordion.js +309 -0
  17. package/src/components/alerts.js +357 -0
  18. package/src/components/avatars.js +331 -0
  19. package/src/components/badges.js +353 -0
  20. package/src/components/buttons.js +412 -0
  21. package/src/components/cards.js +342 -0
  22. package/src/components/carousel.js +495 -0
  23. package/src/components/chips.js +440 -0
  24. package/src/components/command-palette.js +434 -0
  25. package/src/components/datepicker.js +517 -0
  26. package/src/components/dropdown.js +411 -0
  27. package/src/components/forms.js +516 -0
  28. package/src/components/index.js +81 -0
  29. package/src/components/modals.js +349 -0
  30. package/src/components/navigation.js +463 -0
  31. package/src/components/offcanvas.js +390 -0
  32. package/src/components/popover.js +427 -0
  33. package/src/components/progress.js +396 -0
  34. package/src/components/rating.js +394 -0
  35. package/src/components/skeleton.js +408 -0
  36. package/src/components/spinner.js +453 -0
  37. package/src/components/stepper.js +389 -0
  38. package/src/components/tables.js +304 -0
  39. package/src/components/timeline.js +452 -0
  40. package/src/components/timepicker.js +529 -0
  41. package/src/components/tooltips.js +345 -0
  42. package/src/components/upload.js +490 -0
  43. package/src/config/defaults.js +263 -0
  44. package/src/config/loader.js +109 -0
  45. package/src/core/base.js +241 -0
  46. package/src/core/compiler.js +135 -0
  47. package/src/core/utilities/accessibility.js +290 -0
  48. package/src/core/utilities/animations.js +205 -0
  49. package/src/core/utilities/background.js +109 -0
  50. package/src/core/utilities/colors.js +234 -0
  51. package/src/core/utilities/columns.js +161 -0
  52. package/src/core/utilities/effects.js +261 -0
  53. package/src/core/utilities/filters.js +135 -0
  54. package/src/core/utilities/icons.js +806 -0
  55. package/src/core/utilities/index.js +239 -0
  56. package/src/core/utilities/layout.js +321 -0
  57. package/src/core/utilities/scroll.js +205 -0
  58. package/src/core/utilities/spacing.js +120 -0
  59. package/src/core/utilities/svg.js +191 -0
  60. package/src/core/utilities/transforms.js +116 -0
  61. package/src/core/utilities/typography.js +188 -0
  62. package/src/index.js +7 -0
  63. package/src/js/components/accordion.js +154 -0
  64. package/src/js/components/alert.js +198 -0
  65. package/src/js/components/carousel.js +226 -0
  66. package/src/js/components/dropdown.js +166 -0
  67. package/src/js/components/modal.js +169 -0
  68. package/src/js/components/offcanvas.js +175 -0
  69. package/src/js/components/popover.js +221 -0
  70. package/src/js/components/tabs.js +163 -0
  71. package/src/js/components/tooltip.js +200 -0
  72. package/src/js/index.js +79 -0
  73. package/src/js/types/config.d.ts +228 -0
  74. package/src/js/types/index.d.ts +439 -0
  75. package/src/plugins/nextjs.js +100 -0
  76. package/src/plugins/vite.js +133 -0
@@ -0,0 +1,408 @@
1
+ export function generateSkeletonStyles(config) {
2
+ return `/* Skeleton Base */
3
+ .skeleton {
4
+ position: relative;
5
+ overflow: hidden;
6
+ background-color: var(--j-bg-muted);
7
+ border-radius: var(--j-radius-default, 0.5rem);
8
+ }
9
+
10
+ .skeleton::after {
11
+ content: "";
12
+ position: absolute;
13
+ top: 0;
14
+ right: 0;
15
+ bottom: 0;
16
+ left: 0;
17
+ transform: translateX(-100%);
18
+ background: linear-gradient(
19
+ 90deg,
20
+ transparent,
21
+ rgba(255, 255, 255, 0.4),
22
+ transparent
23
+ );
24
+ animation: skeleton-shimmer 1.5s infinite;
25
+ }
26
+
27
+ @keyframes skeleton-shimmer {
28
+ 100% {
29
+ transform: translateX(100%);
30
+ }
31
+ }
32
+
33
+ /* Dark Mode Skeleton */
34
+ .dark .skeleton::after,
35
+ .skeleton-dark::after {
36
+ background: linear-gradient(
37
+ 90deg,
38
+ transparent,
39
+ rgba(255, 255, 255, 0.1),
40
+ transparent
41
+ );
42
+ }
43
+
44
+ /* Skeleton Shapes */
45
+ .skeleton-text {
46
+ height: 1rem;
47
+ width: 100%;
48
+ border-radius: var(--j-radius-sm, 0.25rem);
49
+ }
50
+
51
+ .skeleton-title {
52
+ height: 1.5rem;
53
+ width: 60%;
54
+ border-radius: var(--j-radius-sm, 0.25rem);
55
+ }
56
+
57
+ .skeleton-circle {
58
+ border-radius: 50%;
59
+ }
60
+
61
+ .skeleton-rounded {
62
+ border-radius: var(--j-radius-lg, 0.75rem);
63
+ }
64
+
65
+ .skeleton-square {
66
+ border-radius: 0;
67
+ }
68
+
69
+ /* Skeleton Sizes */
70
+ .skeleton-xs {
71
+ height: 0.5rem;
72
+ }
73
+
74
+ .skeleton-sm {
75
+ height: 0.75rem;
76
+ }
77
+
78
+ .skeleton-md {
79
+ height: 1rem;
80
+ }
81
+
82
+ .skeleton-lg {
83
+ height: 1.5rem;
84
+ }
85
+
86
+ .skeleton-xl {
87
+ height: 2rem;
88
+ }
89
+
90
+ /* No Animation */
91
+ .skeleton-static::after {
92
+ animation: none;
93
+ display: none;
94
+ }
95
+
96
+ /* Pulse Animation (Alternative) */
97
+ .skeleton-pulse {
98
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
99
+ }
100
+
101
+ .skeleton-pulse::after {
102
+ display: none;
103
+ }
104
+
105
+ @keyframes skeleton-pulse {
106
+ 0%, 100% {
107
+ opacity: 1;
108
+ }
109
+ 50% {
110
+ opacity: 0.4;
111
+ }
112
+ }
113
+
114
+ /* Skeleton Avatar */
115
+ .skeleton-avatar {
116
+ width: 2.5rem;
117
+ height: 2.5rem;
118
+ border-radius: 50%;
119
+ flex-shrink: 0;
120
+ }
121
+
122
+ .skeleton-avatar-xs {
123
+ width: 1.5rem;
124
+ height: 1.5rem;
125
+ }
126
+
127
+ .skeleton-avatar-sm {
128
+ width: 2rem;
129
+ height: 2rem;
130
+ }
131
+
132
+ .skeleton-avatar-lg {
133
+ width: 3.5rem;
134
+ height: 3.5rem;
135
+ }
136
+
137
+ .skeleton-avatar-xl {
138
+ width: 5rem;
139
+ height: 5rem;
140
+ }
141
+
142
+ /* Skeleton Button */
143
+ .skeleton-btn {
144
+ width: 6rem;
145
+ height: 2.5rem;
146
+ }
147
+
148
+ .skeleton-btn-sm {
149
+ width: 5rem;
150
+ height: 2rem;
151
+ }
152
+
153
+ .skeleton-btn-lg {
154
+ width: 8rem;
155
+ height: 3rem;
156
+ }
157
+
158
+ /* Skeleton Image */
159
+ .skeleton-image {
160
+ width: 100%;
161
+ aspect-ratio: 16 / 9;
162
+ }
163
+
164
+ .skeleton-image-square {
165
+ aspect-ratio: 1 / 1;
166
+ }
167
+
168
+ .skeleton-image-portrait {
169
+ aspect-ratio: 3 / 4;
170
+ }
171
+
172
+ /* Common Skeleton Patterns */
173
+
174
+ /* Card Skeleton */
175
+ .skeleton-card {
176
+ display: flex;
177
+ flex-direction: column;
178
+ gap: 1rem;
179
+ padding: 1rem;
180
+ background-color: var(--j-bg);
181
+ border: 1px solid var(--j-border);
182
+ border-radius: var(--j-radius-lg, 0.75rem);
183
+ }
184
+
185
+ .skeleton-card-image {
186
+ width: 100%;
187
+ height: 10rem;
188
+ border-radius: var(--j-radius-default, 0.5rem);
189
+ }
190
+
191
+ .skeleton-card-content {
192
+ display: flex;
193
+ flex-direction: column;
194
+ gap: 0.5rem;
195
+ }
196
+
197
+ /* List Item Skeleton */
198
+ .skeleton-list-item {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 1rem;
202
+ padding: 0.75rem 0;
203
+ }
204
+
205
+ .skeleton-list-content {
206
+ flex: 1;
207
+ display: flex;
208
+ flex-direction: column;
209
+ gap: 0.375rem;
210
+ }
211
+
212
+ /* Table Row Skeleton */
213
+ .skeleton-table-row {
214
+ display: grid;
215
+ grid-template-columns: repeat(4, 1fr);
216
+ gap: 1rem;
217
+ padding: 1rem;
218
+ border-bottom: 1px solid var(--j-border);
219
+ }
220
+
221
+ .skeleton-table-cell {
222
+ height: 1rem;
223
+ }
224
+
225
+ /* Article Skeleton */
226
+ .skeleton-article {
227
+ display: flex;
228
+ flex-direction: column;
229
+ gap: 1rem;
230
+ }
231
+
232
+ .skeleton-article-header {
233
+ display: flex;
234
+ flex-direction: column;
235
+ gap: 0.5rem;
236
+ }
237
+
238
+ .skeleton-article-title {
239
+ height: 2rem;
240
+ width: 80%;
241
+ }
242
+
243
+ .skeleton-article-meta {
244
+ display: flex;
245
+ gap: 1rem;
246
+ }
247
+
248
+ .skeleton-article-body {
249
+ display: flex;
250
+ flex-direction: column;
251
+ gap: 0.5rem;
252
+ }
253
+
254
+ /* Profile Skeleton */
255
+ .skeleton-profile {
256
+ display: flex;
257
+ flex-direction: column;
258
+ align-items: center;
259
+ gap: 1rem;
260
+ padding: 2rem;
261
+ }
262
+
263
+ .skeleton-profile-avatar {
264
+ width: 6rem;
265
+ height: 6rem;
266
+ border-radius: 50%;
267
+ }
268
+
269
+ .skeleton-profile-info {
270
+ display: flex;
271
+ flex-direction: column;
272
+ align-items: center;
273
+ gap: 0.5rem;
274
+ width: 100%;
275
+ }
276
+
277
+ .skeleton-profile-name {
278
+ height: 1.5rem;
279
+ width: 50%;
280
+ }
281
+
282
+ .skeleton-profile-bio {
283
+ height: 1rem;
284
+ width: 80%;
285
+ }
286
+
287
+ /* Comment Skeleton */
288
+ .skeleton-comment {
289
+ display: flex;
290
+ gap: 1rem;
291
+ padding: 1rem 0;
292
+ }
293
+
294
+ .skeleton-comment-content {
295
+ flex: 1;
296
+ display: flex;
297
+ flex-direction: column;
298
+ gap: 0.5rem;
299
+ }
300
+
301
+ .skeleton-comment-header {
302
+ display: flex;
303
+ align-items: center;
304
+ gap: 0.5rem;
305
+ }
306
+
307
+ .skeleton-comment-name {
308
+ height: 0.875rem;
309
+ width: 8rem;
310
+ }
311
+
312
+ .skeleton-comment-time {
313
+ height: 0.75rem;
314
+ width: 4rem;
315
+ }
316
+
317
+ .skeleton-comment-body {
318
+ display: flex;
319
+ flex-direction: column;
320
+ gap: 0.375rem;
321
+ }
322
+
323
+ /* Dashboard Widget Skeleton */
324
+ .skeleton-widget {
325
+ padding: 1.5rem;
326
+ background-color: var(--j-bg);
327
+ border: 1px solid var(--j-border);
328
+ border-radius: var(--j-radius-lg, 0.75rem);
329
+ }
330
+
331
+ .skeleton-widget-header {
332
+ display: flex;
333
+ justify-content: space-between;
334
+ align-items: center;
335
+ margin-bottom: 1rem;
336
+ }
337
+
338
+ .skeleton-widget-title {
339
+ height: 1.25rem;
340
+ width: 40%;
341
+ }
342
+
343
+ .skeleton-widget-action {
344
+ height: 1rem;
345
+ width: 4rem;
346
+ }
347
+
348
+ .skeleton-widget-value {
349
+ height: 2.5rem;
350
+ width: 60%;
351
+ margin-bottom: 0.5rem;
352
+ }
353
+
354
+ .skeleton-widget-change {
355
+ height: 1rem;
356
+ width: 30%;
357
+ }
358
+
359
+ /* Navigation Skeleton */
360
+ .skeleton-nav {
361
+ display: flex;
362
+ align-items: center;
363
+ gap: 1rem;
364
+ padding: 1rem 1.5rem;
365
+ border-bottom: 1px solid var(--j-border);
366
+ }
367
+
368
+ .skeleton-nav-logo {
369
+ width: 2rem;
370
+ height: 2rem;
371
+ border-radius: var(--j-radius-default, 0.5rem);
372
+ }
373
+
374
+ .skeleton-nav-links {
375
+ display: flex;
376
+ gap: 1.5rem;
377
+ flex: 1;
378
+ }
379
+
380
+ .skeleton-nav-link {
381
+ height: 1rem;
382
+ width: 4rem;
383
+ }
384
+
385
+ /* Form Skeleton */
386
+ .skeleton-form {
387
+ display: flex;
388
+ flex-direction: column;
389
+ gap: 1.5rem;
390
+ }
391
+
392
+ .skeleton-form-group {
393
+ display: flex;
394
+ flex-direction: column;
395
+ gap: 0.5rem;
396
+ }
397
+
398
+ .skeleton-form-label {
399
+ height: 0.875rem;
400
+ width: 30%;
401
+ }
402
+
403
+ .skeleton-form-input {
404
+ height: 2.5rem;
405
+ width: 100%;
406
+ }
407
+ `;
408
+ }