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,427 @@
1
+ // Popover component for JasminCSS
2
+
3
+ export function generatePopoverStyles(config) {
4
+ return `/* Popover Base */
5
+ .popover {
6
+ position: absolute;
7
+ z-index: 1070;
8
+ max-width: 276px;
9
+ background-color: var(--j-bg);
10
+ border: 1px solid var(--j-border);
11
+ border-radius: var(--j-radius-lg, 0.5rem);
12
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
13
+ opacity: 0;
14
+ visibility: hidden;
15
+ transition: opacity 150ms ease-in-out, visibility 150ms;
16
+ }
17
+
18
+ .popover.show {
19
+ opacity: 1;
20
+ visibility: visible;
21
+ }
22
+
23
+ /* Popover Arrow */
24
+ .popover-arrow {
25
+ position: absolute;
26
+ width: 1rem;
27
+ height: 0.5rem;
28
+ }
29
+
30
+ .popover-arrow::before,
31
+ .popover-arrow::after {
32
+ content: "";
33
+ position: absolute;
34
+ border-style: solid;
35
+ border-color: transparent;
36
+ }
37
+
38
+ /* Arrow Positions */
39
+ .popover[data-placement^="top"] .popover-arrow {
40
+ bottom: -0.5rem;
41
+ }
42
+
43
+ .popover[data-placement^="top"] .popover-arrow::before {
44
+ bottom: 0;
45
+ border-width: 0.5rem 0.5rem 0;
46
+ border-top-color: var(--j-border);
47
+ }
48
+
49
+ .popover[data-placement^="top"] .popover-arrow::after {
50
+ bottom: 1px;
51
+ border-width: 0.5rem 0.5rem 0;
52
+ border-top-color: var(--j-bg);
53
+ }
54
+
55
+ .popover[data-placement^="bottom"] .popover-arrow {
56
+ top: -0.5rem;
57
+ }
58
+
59
+ .popover[data-placement^="bottom"] .popover-arrow::before {
60
+ top: 0;
61
+ border-width: 0 0.5rem 0.5rem;
62
+ border-bottom-color: var(--j-border);
63
+ }
64
+
65
+ .popover[data-placement^="bottom"] .popover-arrow::after {
66
+ top: 1px;
67
+ border-width: 0 0.5rem 0.5rem;
68
+ border-bottom-color: var(--j-bg);
69
+ }
70
+
71
+ .popover[data-placement^="left"] .popover-arrow {
72
+ right: -0.5rem;
73
+ width: 0.5rem;
74
+ height: 1rem;
75
+ }
76
+
77
+ .popover[data-placement^="left"] .popover-arrow::before {
78
+ right: 0;
79
+ border-width: 0.5rem 0 0.5rem 0.5rem;
80
+ border-left-color: var(--j-border);
81
+ }
82
+
83
+ .popover[data-placement^="left"] .popover-arrow::after {
84
+ right: 1px;
85
+ border-width: 0.5rem 0 0.5rem 0.5rem;
86
+ border-left-color: var(--j-bg);
87
+ }
88
+
89
+ .popover[data-placement^="right"] .popover-arrow {
90
+ left: -0.5rem;
91
+ width: 0.5rem;
92
+ height: 1rem;
93
+ }
94
+
95
+ .popover[data-placement^="right"] .popover-arrow::before {
96
+ left: 0;
97
+ border-width: 0.5rem 0.5rem 0.5rem 0;
98
+ border-right-color: var(--j-border);
99
+ }
100
+
101
+ .popover[data-placement^="right"] .popover-arrow::after {
102
+ left: 1px;
103
+ border-width: 0.5rem 0.5rem 0.5rem 0;
104
+ border-right-color: var(--j-bg);
105
+ }
106
+
107
+ /* Popover Header */
108
+ .popover-header {
109
+ padding: 0.75rem 1rem;
110
+ font-size: 1rem;
111
+ font-weight: 600;
112
+ color: var(--j-text);
113
+ background-color: var(--j-bg-subtle);
114
+ border-bottom: 1px solid var(--j-border);
115
+ border-radius: calc(var(--j-radius-lg, 0.5rem) - 1px) calc(var(--j-radius-lg, 0.5rem) - 1px) 0 0;
116
+ margin: 0;
117
+ }
118
+
119
+ /* Popover Body */
120
+ .popover-body {
121
+ padding: 1rem;
122
+ color: var(--j-text);
123
+ font-size: 0.875rem;
124
+ }
125
+
126
+ /* Popover Close */
127
+ .popover-close {
128
+ position: absolute;
129
+ top: 0.5rem;
130
+ right: 0.5rem;
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ width: 1.5rem;
135
+ height: 1.5rem;
136
+ padding: 0;
137
+ background: transparent;
138
+ border: none;
139
+ border-radius: var(--j-radius-sm, 0.25rem);
140
+ color: var(--j-text-muted);
141
+ cursor: pointer;
142
+ transition: all 150ms ease-in-out;
143
+ }
144
+
145
+ .popover-close:hover {
146
+ background-color: var(--j-bg-muted);
147
+ color: var(--j-text);
148
+ }
149
+
150
+ .popover-close::before {
151
+ content: "×";
152
+ font-size: 1.25rem;
153
+ line-height: 1;
154
+ }
155
+
156
+ /* Popover Sizes */
157
+ .popover-sm {
158
+ max-width: 200px;
159
+ }
160
+
161
+ .popover-sm .popover-header {
162
+ padding: 0.5rem 0.75rem;
163
+ font-size: 0.875rem;
164
+ }
165
+
166
+ .popover-sm .popover-body {
167
+ padding: 0.75rem;
168
+ font-size: 0.8125rem;
169
+ }
170
+
171
+ .popover-lg {
172
+ max-width: 400px;
173
+ }
174
+
175
+ .popover-lg .popover-body {
176
+ padding: 1.25rem;
177
+ }
178
+
179
+ .popover-xl {
180
+ max-width: 500px;
181
+ }
182
+
183
+ .popover-full {
184
+ max-width: calc(100vw - 2rem);
185
+ }
186
+
187
+ /* Popover Without Arrow */
188
+ .popover-no-arrow .popover-arrow {
189
+ display: none;
190
+ }
191
+
192
+ /* Popover Colors */
193
+ .popover-primary {
194
+ background-color: var(--j-primary);
195
+ border-color: var(--j-primary);
196
+ color: white;
197
+ }
198
+
199
+ .popover-primary .popover-header {
200
+ background-color: color-mix(in srgb, var(--j-primary) 85%, black);
201
+ border-color: color-mix(in srgb, var(--j-primary) 70%, black);
202
+ color: white;
203
+ }
204
+
205
+ .popover-primary .popover-body {
206
+ color: white;
207
+ }
208
+
209
+ .popover-primary[data-placement^="top"] .popover-arrow::before,
210
+ .popover-primary[data-placement^="top"] .popover-arrow::after {
211
+ border-top-color: var(--j-primary);
212
+ }
213
+
214
+ .popover-primary[data-placement^="bottom"] .popover-arrow::before,
215
+ .popover-primary[data-placement^="bottom"] .popover-arrow::after {
216
+ border-bottom-color: var(--j-primary);
217
+ }
218
+
219
+ .popover-dark {
220
+ background-color: var(--j-bg-dark, #1f2937);
221
+ border-color: var(--j-border-dark, #374151);
222
+ color: white;
223
+ }
224
+
225
+ .popover-dark .popover-header {
226
+ background-color: rgba(0, 0, 0, 0.2);
227
+ border-color: var(--j-border-dark, #374151);
228
+ color: white;
229
+ }
230
+
231
+ .popover-dark .popover-body {
232
+ color: rgba(255, 255, 255, 0.9);
233
+ }
234
+
235
+ .popover-dark[data-placement^="top"] .popover-arrow::before {
236
+ border-top-color: var(--j-border-dark, #374151);
237
+ }
238
+
239
+ .popover-dark[data-placement^="top"] .popover-arrow::after {
240
+ border-top-color: var(--j-bg-dark, #1f2937);
241
+ }
242
+
243
+ .popover-dark[data-placement^="bottom"] .popover-arrow::before {
244
+ border-bottom-color: var(--j-border-dark, #374151);
245
+ }
246
+
247
+ .popover-dark[data-placement^="bottom"] .popover-arrow::after {
248
+ border-bottom-color: var(--j-bg-dark, #1f2937);
249
+ }
250
+
251
+ /* Glass Popover */
252
+ .popover-glass {
253
+ background: rgba(255, 255, 255, 0.85);
254
+ backdrop-filter: blur(12px);
255
+ -webkit-backdrop-filter: blur(12px);
256
+ border-color: rgba(255, 255, 255, 0.3);
257
+ }
258
+
259
+ .popover-glass .popover-header {
260
+ background-color: rgba(0, 0, 0, 0.05);
261
+ border-color: rgba(0, 0, 0, 0.1);
262
+ }
263
+
264
+ .dark .popover-glass {
265
+ background: rgba(0, 0, 0, 0.7);
266
+ border-color: rgba(255, 255, 255, 0.1);
267
+ }
268
+
269
+ .dark .popover-glass .popover-header {
270
+ background-color: rgba(255, 255, 255, 0.05);
271
+ border-color: rgba(255, 255, 255, 0.1);
272
+ }
273
+
274
+ /* Popover Animation Variants */
275
+ .popover-fade {
276
+ transition: opacity 200ms ease-in-out;
277
+ }
278
+
279
+ .popover-scale {
280
+ transform: scale(0.9);
281
+ transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;
282
+ }
283
+
284
+ .popover-scale.show {
285
+ transform: scale(1);
286
+ }
287
+
288
+ .popover-slide-up {
289
+ transform: translateY(0.5rem);
290
+ transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;
291
+ }
292
+
293
+ .popover-slide-up.show {
294
+ transform: translateY(0);
295
+ }
296
+
297
+ /* Popover with Image */
298
+ .popover-image {
299
+ padding: 0;
300
+ overflow: hidden;
301
+ }
302
+
303
+ .popover-image img {
304
+ width: 100%;
305
+ height: auto;
306
+ display: block;
307
+ }
308
+
309
+ .popover-image .popover-body {
310
+ padding: 1rem;
311
+ }
312
+
313
+ /* Popover Menu */
314
+ .popover-menu {
315
+ padding: 0.5rem 0;
316
+ }
317
+
318
+ .popover-menu .popover-body {
319
+ padding: 0;
320
+ }
321
+
322
+ .popover-menu-item {
323
+ display: flex;
324
+ align-items: center;
325
+ gap: 0.75rem;
326
+ width: 100%;
327
+ padding: 0.5rem 1rem;
328
+ font-size: 0.875rem;
329
+ color: var(--j-text);
330
+ text-decoration: none;
331
+ background: transparent;
332
+ border: none;
333
+ cursor: pointer;
334
+ transition: background-color 150ms ease-in-out;
335
+ }
336
+
337
+ .popover-menu-item:hover {
338
+ background-color: var(--j-bg-subtle);
339
+ }
340
+
341
+ .popover-menu-item-icon {
342
+ width: 1rem;
343
+ height: 1rem;
344
+ flex-shrink: 0;
345
+ opacity: 0.7;
346
+ }
347
+
348
+ .popover-menu-divider {
349
+ height: 0;
350
+ margin: 0.5rem 0;
351
+ border-top: 1px solid var(--j-border);
352
+ }
353
+
354
+ /* Confirmation Popover */
355
+ .popover-confirm .popover-body {
356
+ text-align: center;
357
+ }
358
+
359
+ .popover-confirm-title {
360
+ font-weight: 600;
361
+ margin-bottom: 0.25rem;
362
+ }
363
+
364
+ .popover-confirm-text {
365
+ color: var(--j-text-muted);
366
+ margin-bottom: 1rem;
367
+ }
368
+
369
+ .popover-confirm-actions {
370
+ display: flex;
371
+ gap: 0.5rem;
372
+ justify-content: center;
373
+ }
374
+
375
+ /* Profile Popover */
376
+ .popover-profile {
377
+ min-width: 280px;
378
+ }
379
+
380
+ .popover-profile-header {
381
+ display: flex;
382
+ align-items: center;
383
+ gap: 1rem;
384
+ padding: 1rem;
385
+ border-bottom: 1px solid var(--j-border);
386
+ }
387
+
388
+ .popover-profile-avatar {
389
+ width: 3rem;
390
+ height: 3rem;
391
+ border-radius: 50%;
392
+ object-fit: cover;
393
+ }
394
+
395
+ .popover-profile-info {
396
+ flex: 1;
397
+ }
398
+
399
+ .popover-profile-name {
400
+ font-weight: 600;
401
+ color: var(--j-text);
402
+ }
403
+
404
+ .popover-profile-email {
405
+ font-size: 0.75rem;
406
+ color: var(--j-text-muted);
407
+ }
408
+
409
+ /* Trigger Wrapper */
410
+ .popover-trigger {
411
+ position: relative;
412
+ display: inline-block;
413
+ }
414
+
415
+ /* Hover Trigger */
416
+ .popover-hover:hover .popover {
417
+ opacity: 1;
418
+ visibility: visible;
419
+ }
420
+
421
+ /* Focus Trigger */
422
+ .popover-focus:focus-within .popover {
423
+ opacity: 1;
424
+ visibility: visible;
425
+ }
426
+ `;
427
+ }