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,463 @@
1
+ export function generateNavigationStyles(config) {
2
+ return `/* Navbar */
3
+ .navbar {
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: space-between;
7
+ padding: 0.75rem 1.5rem;
8
+ background-color: var(--j-bg);
9
+ border-bottom: 1px solid var(--j-border);
10
+ }
11
+
12
+ .navbar-brand {
13
+ font-size: 1.25rem;
14
+ font-weight: 700;
15
+ color: var(--j-text);
16
+ text-decoration: none;
17
+ display: flex;
18
+ align-items: center;
19
+ gap: 0.5rem;
20
+ }
21
+
22
+ .navbar-nav {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 0.25rem;
26
+ list-style: none;
27
+ margin: 0;
28
+ padding: 0;
29
+ }
30
+
31
+ .nav-item {
32
+ position: relative;
33
+ }
34
+
35
+ .nav-link {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 0.5rem;
39
+ padding: 0.5rem 0.875rem;
40
+ font-size: 0.875rem;
41
+ font-weight: 500;
42
+ color: var(--j-text-subtle);
43
+ text-decoration: none;
44
+ border-radius: var(--j-radius-default, 0.5rem);
45
+ transition: color 150ms ease-in-out, background-color 150ms ease-in-out;
46
+ }
47
+
48
+ .nav-link:hover {
49
+ color: var(--j-text);
50
+ background-color: var(--j-bg-subtle);
51
+ }
52
+
53
+ .nav-link.active {
54
+ color: var(--j-primary);
55
+ background-color: color-mix(in srgb, var(--j-primary) 10%, transparent);
56
+ }
57
+
58
+ .nav-link:focus-visible {
59
+ outline: 2px solid var(--j-primary);
60
+ outline-offset: 2px;
61
+ }
62
+
63
+ /* Navbar Variants */
64
+ .navbar-dark {
65
+ background-color: var(--j-gray-900, #18181b);
66
+ border-color: var(--j-gray-800, #27272a);
67
+ }
68
+
69
+ .navbar-dark .navbar-brand,
70
+ .navbar-dark .nav-link {
71
+ color: rgba(255, 255, 255, 0.8);
72
+ }
73
+
74
+ .navbar-dark .nav-link:hover {
75
+ color: white;
76
+ background-color: rgba(255, 255, 255, 0.1);
77
+ }
78
+
79
+ .navbar-dark .nav-link.active {
80
+ color: white;
81
+ background-color: rgba(255, 255, 255, 0.15);
82
+ }
83
+
84
+ .navbar-transparent {
85
+ background-color: transparent;
86
+ border: none;
87
+ }
88
+
89
+ .navbar-glass {
90
+ background: rgba(255, 255, 255, 0.1);
91
+ backdrop-filter: blur(12px);
92
+ -webkit-backdrop-filter: blur(12px);
93
+ border: none;
94
+ }
95
+
96
+ .navbar-sticky {
97
+ position: sticky;
98
+ top: 0;
99
+ z-index: var(--j-z-sticky, 1020);
100
+ }
101
+
102
+ .navbar-fixed {
103
+ position: fixed;
104
+ top: 0;
105
+ left: 0;
106
+ right: 0;
107
+ z-index: var(--j-z-fixed, 1030);
108
+ }
109
+
110
+ /* Mobile Toggle */
111
+ .navbar-toggle {
112
+ display: none;
113
+ padding: 0.5rem;
114
+ background: transparent;
115
+ border: none;
116
+ cursor: pointer;
117
+ color: var(--j-text);
118
+ }
119
+
120
+ .navbar-toggle-icon {
121
+ display: block;
122
+ width: 1.5rem;
123
+ height: 2px;
124
+ background-color: currentColor;
125
+ border-radius: 2px;
126
+ position: relative;
127
+ }
128
+
129
+ .navbar-toggle-icon::before,
130
+ .navbar-toggle-icon::after {
131
+ content: "";
132
+ position: absolute;
133
+ width: 100%;
134
+ height: 100%;
135
+ background-color: currentColor;
136
+ border-radius: 2px;
137
+ transition: transform 200ms ease-in-out;
138
+ }
139
+
140
+ .navbar-toggle-icon::before {
141
+ top: -6px;
142
+ }
143
+
144
+ .navbar-toggle-icon::after {
145
+ top: 6px;
146
+ }
147
+
148
+ .navbar-collapse {
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 1rem;
152
+ }
153
+
154
+ @media (max-width: 768px) {
155
+ .navbar-toggle {
156
+ display: block;
157
+ }
158
+
159
+ .navbar-collapse {
160
+ display: none;
161
+ position: absolute;
162
+ top: 100%;
163
+ left: 0;
164
+ right: 0;
165
+ flex-direction: column;
166
+ padding: 1rem;
167
+ background-color: var(--j-bg);
168
+ border-bottom: 1px solid var(--j-border);
169
+ box-shadow: var(--j-shadow-lg);
170
+ }
171
+
172
+ .navbar-collapse.show {
173
+ display: flex;
174
+ }
175
+
176
+ .navbar-nav {
177
+ flex-direction: column;
178
+ width: 100%;
179
+ }
180
+
181
+ .nav-link {
182
+ width: 100%;
183
+ justify-content: flex-start;
184
+ }
185
+ }
186
+
187
+ /* Sidebar Navigation */
188
+ .sidebar {
189
+ width: 16rem;
190
+ height: 100vh;
191
+ background-color: var(--j-bg);
192
+ border-right: 1px solid var(--j-border);
193
+ display: flex;
194
+ flex-direction: column;
195
+ position: fixed;
196
+ left: 0;
197
+ top: 0;
198
+ overflow-y: auto;
199
+ }
200
+
201
+ .sidebar-header {
202
+ padding: 1rem 1.25rem;
203
+ border-bottom: 1px solid var(--j-border);
204
+ }
205
+
206
+ .sidebar-body {
207
+ flex: 1;
208
+ padding: 1rem 0.75rem;
209
+ overflow-y: auto;
210
+ }
211
+
212
+ .sidebar-footer {
213
+ padding: 1rem 1.25rem;
214
+ border-top: 1px solid var(--j-border);
215
+ }
216
+
217
+ .sidebar-nav {
218
+ list-style: none;
219
+ margin: 0;
220
+ padding: 0;
221
+ }
222
+
223
+ .sidebar-nav-item {
224
+ margin-bottom: 0.25rem;
225
+ }
226
+
227
+ .sidebar-nav-link {
228
+ display: flex;
229
+ align-items: center;
230
+ gap: 0.75rem;
231
+ padding: 0.625rem 0.875rem;
232
+ font-size: 0.875rem;
233
+ color: var(--j-text-subtle);
234
+ text-decoration: none;
235
+ border-radius: var(--j-radius-default, 0.5rem);
236
+ transition: all 150ms ease-in-out;
237
+ }
238
+
239
+ .sidebar-nav-link:hover {
240
+ color: var(--j-text);
241
+ background-color: var(--j-bg-subtle);
242
+ }
243
+
244
+ .sidebar-nav-link.active {
245
+ color: var(--j-primary);
246
+ background-color: color-mix(in srgb, var(--j-primary) 10%, transparent);
247
+ }
248
+
249
+ .sidebar-nav-link-icon {
250
+ width: 1.25rem;
251
+ height: 1.25rem;
252
+ opacity: 0.7;
253
+ }
254
+
255
+ .sidebar-nav-link.active .sidebar-nav-link-icon {
256
+ opacity: 1;
257
+ }
258
+
259
+ /* Sidebar Collapsed */
260
+ .sidebar-collapsed {
261
+ width: 4rem;
262
+ }
263
+
264
+ .sidebar-collapsed .sidebar-nav-link span {
265
+ display: none;
266
+ }
267
+
268
+ .sidebar-collapsed .sidebar-header {
269
+ padding: 1rem;
270
+ text-align: center;
271
+ }
272
+
273
+ /* Sidebar Dark */
274
+ .sidebar-dark {
275
+ background-color: var(--j-gray-900, #18181b);
276
+ border-color: var(--j-gray-800, #27272a);
277
+ }
278
+
279
+ .sidebar-dark .sidebar-nav-link {
280
+ color: rgba(255, 255, 255, 0.7);
281
+ }
282
+
283
+ .sidebar-dark .sidebar-nav-link:hover {
284
+ color: white;
285
+ background-color: rgba(255, 255, 255, 0.1);
286
+ }
287
+
288
+ .sidebar-dark .sidebar-nav-link.active {
289
+ color: white;
290
+ background-color: var(--j-primary);
291
+ }
292
+
293
+ /* Breadcrumb */
294
+ .breadcrumb {
295
+ display: flex;
296
+ flex-wrap: wrap;
297
+ align-items: center;
298
+ gap: 0.5rem;
299
+ list-style: none;
300
+ margin: 0;
301
+ padding: 0;
302
+ font-size: 0.875rem;
303
+ }
304
+
305
+ .breadcrumb-item {
306
+ display: flex;
307
+ align-items: center;
308
+ }
309
+
310
+ .breadcrumb-item + .breadcrumb-item::before {
311
+ content: "/";
312
+ padding-right: 0.5rem;
313
+ color: var(--j-text-muted);
314
+ }
315
+
316
+ .breadcrumb-item a {
317
+ color: var(--j-text-subtle);
318
+ text-decoration: none;
319
+ transition: color 150ms ease-in-out;
320
+ }
321
+
322
+ .breadcrumb-item a:hover {
323
+ color: var(--j-primary);
324
+ }
325
+
326
+ .breadcrumb-item.active {
327
+ color: var(--j-text);
328
+ font-weight: 500;
329
+ }
330
+
331
+ /* Tabs */
332
+ .tabs {
333
+ display: flex;
334
+ border-bottom: 1px solid var(--j-border);
335
+ gap: 0;
336
+ }
337
+
338
+ .tab {
339
+ padding: 0.75rem 1.25rem;
340
+ font-size: 0.875rem;
341
+ font-weight: 500;
342
+ color: var(--j-text-subtle);
343
+ text-decoration: none;
344
+ border-bottom: 2px solid transparent;
345
+ margin-bottom: -1px;
346
+ transition: all 150ms ease-in-out;
347
+ cursor: pointer;
348
+ background: transparent;
349
+ border-top: none;
350
+ border-left: none;
351
+ border-right: none;
352
+ }
353
+
354
+ .tab:hover {
355
+ color: var(--j-text);
356
+ border-bottom-color: var(--j-border);
357
+ }
358
+
359
+ .tab.active {
360
+ color: var(--j-primary);
361
+ border-bottom-color: var(--j-primary);
362
+ }
363
+
364
+ .tab-content {
365
+ padding: 1.5rem 0;
366
+ }
367
+
368
+ .tab-pane {
369
+ display: none;
370
+ }
371
+
372
+ .tab-pane.active {
373
+ display: block;
374
+ }
375
+
376
+ /* Tabs Variants */
377
+ .tabs-pills {
378
+ border-bottom: none;
379
+ gap: 0.5rem;
380
+ background-color: var(--j-bg-subtle);
381
+ padding: 0.25rem;
382
+ border-radius: var(--j-radius-default, 0.5rem);
383
+ }
384
+
385
+ .tabs-pills .tab {
386
+ border-bottom: none;
387
+ border-radius: var(--j-radius-default, 0.5rem);
388
+ margin-bottom: 0;
389
+ }
390
+
391
+ .tabs-pills .tab:hover {
392
+ background-color: var(--j-bg);
393
+ }
394
+
395
+ .tabs-pills .tab.active {
396
+ background-color: var(--j-bg);
397
+ box-shadow: var(--j-shadow-sm);
398
+ }
399
+
400
+ /* Pagination */
401
+ .pagination {
402
+ display: flex;
403
+ align-items: center;
404
+ gap: 0.25rem;
405
+ list-style: none;
406
+ margin: 0;
407
+ padding: 0;
408
+ }
409
+
410
+ .page-item {
411
+ display: flex;
412
+ }
413
+
414
+ .page-link {
415
+ display: flex;
416
+ align-items: center;
417
+ justify-content: center;
418
+ min-width: 2.25rem;
419
+ height: 2.25rem;
420
+ padding: 0.375rem 0.75rem;
421
+ font-size: 0.875rem;
422
+ color: var(--j-text-subtle);
423
+ text-decoration: none;
424
+ background-color: var(--j-bg);
425
+ border: 1px solid var(--j-border);
426
+ border-radius: var(--j-radius-default, 0.5rem);
427
+ transition: all 150ms ease-in-out;
428
+ }
429
+
430
+ .page-link:hover {
431
+ color: var(--j-text);
432
+ background-color: var(--j-bg-subtle);
433
+ border-color: var(--j-border);
434
+ }
435
+
436
+ .page-item.active .page-link {
437
+ color: white;
438
+ background-color: var(--j-primary);
439
+ border-color: var(--j-primary);
440
+ }
441
+
442
+ .page-item.disabled .page-link {
443
+ color: var(--j-text-muted);
444
+ pointer-events: none;
445
+ opacity: 0.5;
446
+ }
447
+
448
+ /* Pagination Sizes */
449
+ .pagination-sm .page-link {
450
+ min-width: 1.75rem;
451
+ height: 1.75rem;
452
+ padding: 0.25rem 0.5rem;
453
+ font-size: 0.8125rem;
454
+ }
455
+
456
+ .pagination-lg .page-link {
457
+ min-width: 2.75rem;
458
+ height: 2.75rem;
459
+ padding: 0.5rem 1rem;
460
+ font-size: 1rem;
461
+ }
462
+ `;
463
+ }