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,517 @@
1
+ // Datepicker/Calendar component for JasminCSS
2
+
3
+ export function generateDatepickerStyles(config) {
4
+ return `/* Datepicker Container */
5
+ .datepicker {
6
+ position: relative;
7
+ display: inline-block;
8
+ width: 100%;
9
+ }
10
+
11
+ /* Datepicker Input */
12
+ .datepicker-input {
13
+ width: 100%;
14
+ padding: 0.625rem 2.5rem 0.625rem 0.875rem;
15
+ font-size: 0.875rem;
16
+ line-height: 1.5;
17
+ color: var(--j-text);
18
+ background-color: var(--j-bg);
19
+ border: 1px solid var(--j-border);
20
+ border-radius: var(--j-radius-default, 0.5rem);
21
+ transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
22
+ }
23
+
24
+ .datepicker-input:focus {
25
+ border-color: var(--j-primary);
26
+ outline: none;
27
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--j-primary) 20%, transparent);
28
+ }
29
+
30
+ .datepicker-icon {
31
+ position: absolute;
32
+ right: 0.75rem;
33
+ top: 50%;
34
+ transform: translateY(-50%);
35
+ width: 1.25rem;
36
+ height: 1.25rem;
37
+ color: var(--j-text-muted);
38
+ pointer-events: none;
39
+ }
40
+
41
+ /* Calendar Dropdown */
42
+ .datepicker-dropdown {
43
+ position: absolute;
44
+ top: 100%;
45
+ left: 0;
46
+ z-index: 1000;
47
+ min-width: 280px;
48
+ margin-top: 0.25rem;
49
+ background-color: var(--j-bg);
50
+ border: 1px solid var(--j-border);
51
+ border-radius: var(--j-radius-lg, 0.5rem);
52
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
53
+ opacity: 0;
54
+ visibility: hidden;
55
+ transform: translateY(-0.5rem);
56
+ transition: opacity 150ms ease-in-out, transform 150ms ease-in-out, visibility 150ms;
57
+ }
58
+
59
+ .datepicker.open .datepicker-dropdown,
60
+ .datepicker-dropdown.show {
61
+ opacity: 1;
62
+ visibility: visible;
63
+ transform: translateY(0);
64
+ }
65
+
66
+ /* Calendar */
67
+ .calendar {
68
+ padding: 1rem;
69
+ }
70
+
71
+ /* Calendar Header */
72
+ .calendar-header {
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: space-between;
76
+ margin-bottom: 1rem;
77
+ }
78
+
79
+ .calendar-title {
80
+ font-size: 1rem;
81
+ font-weight: 600;
82
+ color: var(--j-text);
83
+ }
84
+
85
+ .calendar-nav {
86
+ display: flex;
87
+ gap: 0.25rem;
88
+ }
89
+
90
+ .calendar-nav-btn {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ width: 2rem;
95
+ height: 2rem;
96
+ padding: 0;
97
+ background: transparent;
98
+ border: none;
99
+ border-radius: var(--j-radius-default, 0.375rem);
100
+ color: var(--j-text-muted);
101
+ cursor: pointer;
102
+ transition: all 150ms ease-in-out;
103
+ }
104
+
105
+ .calendar-nav-btn:hover {
106
+ background-color: var(--j-bg-subtle);
107
+ color: var(--j-text);
108
+ }
109
+
110
+ .calendar-nav-btn:disabled {
111
+ opacity: 0.3;
112
+ cursor: not-allowed;
113
+ }
114
+
115
+ /* Weekday Headers */
116
+ .calendar-weekdays {
117
+ display: grid;
118
+ grid-template-columns: repeat(7, 1fr);
119
+ gap: 0;
120
+ margin-bottom: 0.5rem;
121
+ }
122
+
123
+ .calendar-weekday {
124
+ padding: 0.5rem;
125
+ font-size: 0.75rem;
126
+ font-weight: 600;
127
+ text-align: center;
128
+ color: var(--j-text-muted);
129
+ text-transform: uppercase;
130
+ }
131
+
132
+ /* Calendar Grid */
133
+ .calendar-grid {
134
+ display: grid;
135
+ grid-template-columns: repeat(7, 1fr);
136
+ gap: 0.125rem;
137
+ }
138
+
139
+ /* Calendar Day */
140
+ .calendar-day {
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: center;
144
+ width: 2.25rem;
145
+ height: 2.25rem;
146
+ padding: 0;
147
+ font-size: 0.875rem;
148
+ background: transparent;
149
+ border: none;
150
+ border-radius: var(--j-radius-default, 0.375rem);
151
+ color: var(--j-text);
152
+ cursor: pointer;
153
+ transition: all 150ms ease-in-out;
154
+ }
155
+
156
+ .calendar-day:hover:not(:disabled):not(.calendar-day-selected) {
157
+ background-color: var(--j-bg-subtle);
158
+ }
159
+
160
+ .calendar-day:focus {
161
+ outline: none;
162
+ box-shadow: 0 0 0 2px var(--j-primary);
163
+ }
164
+
165
+ /* Day States */
166
+ .calendar-day-today {
167
+ font-weight: 600;
168
+ color: var(--j-primary);
169
+ background-color: color-mix(in srgb, var(--j-primary) 10%, transparent);
170
+ }
171
+
172
+ .calendar-day-selected {
173
+ background-color: var(--j-primary);
174
+ color: white;
175
+ font-weight: 600;
176
+ }
177
+
178
+ .calendar-day-selected:hover {
179
+ background-color: color-mix(in srgb, var(--j-primary) 85%, black);
180
+ }
181
+
182
+ .calendar-day-outside {
183
+ color: var(--j-text-muted);
184
+ opacity: 0.5;
185
+ }
186
+
187
+ .calendar-day-disabled,
188
+ .calendar-day:disabled {
189
+ color: var(--j-text-muted);
190
+ opacity: 0.3;
191
+ cursor: not-allowed;
192
+ }
193
+
194
+ .calendar-day-weekend {
195
+ color: var(--j-error);
196
+ }
197
+
198
+ /* Range Selection */
199
+ .calendar-day-range-start {
200
+ background-color: var(--j-primary);
201
+ color: white;
202
+ border-radius: var(--j-radius-default, 0.375rem) 0 0 var(--j-radius-default, 0.375rem);
203
+ }
204
+
205
+ .calendar-day-range-end {
206
+ background-color: var(--j-primary);
207
+ color: white;
208
+ border-radius: 0 var(--j-radius-default, 0.375rem) var(--j-radius-default, 0.375rem) 0;
209
+ }
210
+
211
+ .calendar-day-range-middle {
212
+ background-color: color-mix(in srgb, var(--j-primary) 15%, transparent);
213
+ color: var(--j-primary);
214
+ border-radius: 0;
215
+ }
216
+
217
+ /* Month/Year Picker */
218
+ .calendar-months,
219
+ .calendar-years {
220
+ display: grid;
221
+ grid-template-columns: repeat(3, 1fr);
222
+ gap: 0.5rem;
223
+ padding: 0.5rem;
224
+ }
225
+
226
+ .calendar-month,
227
+ .calendar-year {
228
+ padding: 0.75rem 0.5rem;
229
+ font-size: 0.875rem;
230
+ text-align: center;
231
+ background: transparent;
232
+ border: 1px solid transparent;
233
+ border-radius: var(--j-radius-default, 0.375rem);
234
+ color: var(--j-text);
235
+ cursor: pointer;
236
+ transition: all 150ms ease-in-out;
237
+ }
238
+
239
+ .calendar-month:hover,
240
+ .calendar-year:hover {
241
+ background-color: var(--j-bg-subtle);
242
+ }
243
+
244
+ .calendar-month.selected,
245
+ .calendar-year.selected {
246
+ background-color: var(--j-primary);
247
+ color: white;
248
+ }
249
+
250
+ .calendar-month.current,
251
+ .calendar-year.current {
252
+ border-color: var(--j-primary);
253
+ color: var(--j-primary);
254
+ }
255
+
256
+ /* Calendar Footer */
257
+ .calendar-footer {
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: space-between;
261
+ padding: 0.75rem 1rem;
262
+ border-top: 1px solid var(--j-border);
263
+ }
264
+
265
+ .calendar-today-btn {
266
+ padding: 0.375rem 0.75rem;
267
+ font-size: 0.8125rem;
268
+ color: var(--j-primary);
269
+ background: transparent;
270
+ border: none;
271
+ cursor: pointer;
272
+ }
273
+
274
+ .calendar-today-btn:hover {
275
+ text-decoration: underline;
276
+ }
277
+
278
+ .calendar-clear-btn {
279
+ padding: 0.375rem 0.75rem;
280
+ font-size: 0.8125rem;
281
+ color: var(--j-text-muted);
282
+ background: transparent;
283
+ border: none;
284
+ cursor: pointer;
285
+ }
286
+
287
+ .calendar-clear-btn:hover {
288
+ color: var(--j-text);
289
+ }
290
+
291
+ /* Datepicker Sizes */
292
+ .datepicker-sm .datepicker-input {
293
+ padding: 0.375rem 2rem 0.375rem 0.75rem;
294
+ font-size: 0.8125rem;
295
+ }
296
+
297
+ .datepicker-sm .datepicker-icon {
298
+ right: 0.5rem;
299
+ width: 1rem;
300
+ height: 1rem;
301
+ }
302
+
303
+ .datepicker-sm .calendar {
304
+ min-width: 240px;
305
+ }
306
+
307
+ .datepicker-sm .calendar-day {
308
+ width: 1.75rem;
309
+ height: 1.75rem;
310
+ font-size: 0.75rem;
311
+ }
312
+
313
+ .datepicker-lg .datepicker-input {
314
+ padding: 0.875rem 3rem 0.875rem 1rem;
315
+ font-size: 1rem;
316
+ }
317
+
318
+ .datepicker-lg .calendar {
319
+ min-width: 320px;
320
+ }
321
+
322
+ .datepicker-lg .calendar-day {
323
+ width: 2.5rem;
324
+ height: 2.5rem;
325
+ }
326
+
327
+ /* Inline Calendar */
328
+ .calendar-inline {
329
+ display: block;
330
+ border: 1px solid var(--j-border);
331
+ border-radius: var(--j-radius-lg, 0.5rem);
332
+ }
333
+
334
+ /* Dark Variant */
335
+ .datepicker-dark .datepicker-dropdown,
336
+ .calendar-dark {
337
+ background-color: var(--j-bg-dark, #1f2937);
338
+ border-color: var(--j-border-dark, #374151);
339
+ color: white;
340
+ }
341
+
342
+ .datepicker-dark .calendar-title,
343
+ .calendar-dark .calendar-title {
344
+ color: white;
345
+ }
346
+
347
+ .datepicker-dark .calendar-day,
348
+ .calendar-dark .calendar-day {
349
+ color: white;
350
+ }
351
+
352
+ .datepicker-dark .calendar-day:hover:not(:disabled),
353
+ .calendar-dark .calendar-day:hover:not(:disabled) {
354
+ background-color: rgba(255, 255, 255, 0.1);
355
+ }
356
+
357
+ .datepicker-dark .calendar-footer,
358
+ .calendar-dark .calendar-footer {
359
+ border-color: var(--j-border-dark, #374151);
360
+ }
361
+
362
+ /* Glass Variant */
363
+ .datepicker-glass .datepicker-dropdown,
364
+ .calendar-glass {
365
+ background: rgba(255, 255, 255, 0.85);
366
+ backdrop-filter: blur(12px);
367
+ -webkit-backdrop-filter: blur(12px);
368
+ border-color: rgba(255, 255, 255, 0.3);
369
+ }
370
+
371
+ /* Date Range Picker */
372
+ .daterange-picker {
373
+ display: flex;
374
+ gap: 0.5rem;
375
+ align-items: center;
376
+ }
377
+
378
+ .daterange-picker .datepicker {
379
+ flex: 1;
380
+ }
381
+
382
+ .daterange-separator {
383
+ color: var(--j-text-muted);
384
+ }
385
+
386
+ /* Multiple Month View */
387
+ .calendar-multi {
388
+ display: flex;
389
+ gap: 1rem;
390
+ }
391
+
392
+ .calendar-multi .calendar {
393
+ border-right: 1px solid var(--j-border);
394
+ padding-right: 1rem;
395
+ }
396
+
397
+ .calendar-multi .calendar:last-child {
398
+ border-right: none;
399
+ padding-right: 0;
400
+ }
401
+
402
+ /* With Time */
403
+ .datepicker-datetime .datepicker-dropdown {
404
+ min-width: 320px;
405
+ }
406
+
407
+ .calendar-time {
408
+ display: flex;
409
+ align-items: center;
410
+ justify-content: center;
411
+ gap: 0.5rem;
412
+ padding: 0.75rem;
413
+ border-top: 1px solid var(--j-border);
414
+ }
415
+
416
+ .calendar-time-input {
417
+ width: 3rem;
418
+ padding: 0.375rem 0.5rem;
419
+ text-align: center;
420
+ font-size: 0.875rem;
421
+ border: 1px solid var(--j-border);
422
+ border-radius: var(--j-radius-default, 0.375rem);
423
+ background-color: var(--j-bg);
424
+ color: var(--j-text);
425
+ }
426
+
427
+ .calendar-time-input:focus {
428
+ outline: none;
429
+ border-color: var(--j-primary);
430
+ }
431
+
432
+ .calendar-time-separator {
433
+ font-size: 1rem;
434
+ font-weight: 600;
435
+ color: var(--j-text-muted);
436
+ }
437
+
438
+ .calendar-time-period {
439
+ display: flex;
440
+ gap: 0.25rem;
441
+ }
442
+
443
+ .calendar-time-period-btn {
444
+ padding: 0.375rem 0.5rem;
445
+ font-size: 0.75rem;
446
+ font-weight: 500;
447
+ background-color: var(--j-bg-subtle);
448
+ border: 1px solid var(--j-border);
449
+ border-radius: var(--j-radius-sm, 0.25rem);
450
+ cursor: pointer;
451
+ transition: all 150ms ease-in-out;
452
+ }
453
+
454
+ .calendar-time-period-btn:hover {
455
+ background-color: var(--j-bg-muted);
456
+ }
457
+
458
+ .calendar-time-period-btn.active {
459
+ background-color: var(--j-primary);
460
+ border-color: var(--j-primary);
461
+ color: white;
462
+ }
463
+
464
+ /* Preset Ranges */
465
+ .datepicker-presets {
466
+ display: flex;
467
+ flex-direction: column;
468
+ gap: 0.25rem;
469
+ padding: 0.75rem;
470
+ border-right: 1px solid var(--j-border);
471
+ min-width: 140px;
472
+ }
473
+
474
+ .datepicker-preset {
475
+ padding: 0.5rem 0.75rem;
476
+ font-size: 0.8125rem;
477
+ text-align: left;
478
+ background: transparent;
479
+ border: none;
480
+ border-radius: var(--j-radius-default, 0.375rem);
481
+ color: var(--j-text);
482
+ cursor: pointer;
483
+ transition: all 150ms ease-in-out;
484
+ }
485
+
486
+ .datepicker-preset:hover {
487
+ background-color: var(--j-bg-subtle);
488
+ }
489
+
490
+ .datepicker-preset.active {
491
+ background-color: color-mix(in srgb, var(--j-primary) 15%, transparent);
492
+ color: var(--j-primary);
493
+ }
494
+
495
+ /* Events/Markers */
496
+ .calendar-day-event {
497
+ position: relative;
498
+ }
499
+
500
+ .calendar-day-event::after {
501
+ content: "";
502
+ position: absolute;
503
+ bottom: 0.25rem;
504
+ left: 50%;
505
+ transform: translateX(-50%);
506
+ width: 0.25rem;
507
+ height: 0.25rem;
508
+ border-radius: 50%;
509
+ background-color: var(--j-primary);
510
+ }
511
+
512
+ .calendar-day-event-multiple::after {
513
+ width: 0.5rem;
514
+ border-radius: var(--j-radius-full, 9999px);
515
+ }
516
+ `;
517
+ }