@omnikit-js/ui 0.5.0 → 0.5.1

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.
@@ -0,0 +1,95 @@
1
+ @import "./prefixed.css";
2
+
3
+ /* Essential component-specific styles only */
4
+
5
+ /* Pricing text styles */
6
+ span.omnikit-price-text {
7
+ font-size: 2rem !important;
8
+ line-height: 1 !important;
9
+ font-weight: 700 !important;
10
+ letter-spacing: -0.025em !important;
11
+ display: inline-block !important;
12
+ }
13
+
14
+ .omnikit-price-units {
15
+ font-size: 0.875rem;
16
+ line-height: 1.25rem;
17
+ color: #6b7280;
18
+ font-weight: 400;
19
+ margin-left: 0.25rem;
20
+ }
21
+
22
+ /* Feature value styles */
23
+ .omnikit-feature-value {
24
+ font-weight: 600;
25
+ color: #111827;
26
+ }
27
+
28
+ .omnikit-feature-value.unlimited {
29
+ color: #10b981;
30
+ }
31
+
32
+ /* Badge styles */
33
+ .omnikit-badge {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ border-radius: 9999px;
37
+ padding: 0.25rem 0.75rem;
38
+ font-size: 0.75rem;
39
+ font-weight: 600;
40
+ transition: all 150ms;
41
+ }
42
+
43
+ .omnikit-badge.popular {
44
+ background-color: #fbbf24;
45
+ color: #78350f;
46
+ }
47
+
48
+ /* Modal overlay */
49
+ .omnikit-modal-overlay {
50
+ position: fixed;
51
+ inset: 0;
52
+ background-color: rgba(0, 0, 0, 0.5);
53
+ z-index: 50;
54
+ }
55
+
56
+ /* Modal content */
57
+ .omnikit-modal-content {
58
+ position: fixed;
59
+ left: 50%;
60
+ top: 50%;
61
+ transform: translate(-50%, -50%);
62
+ background-color: white;
63
+ padding: 1.5rem;
64
+ border-radius: 0.5rem;
65
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
66
+ z-index: 50;
67
+ max-width: 500px;
68
+ width: 90%;
69
+ max-height: 90vh;
70
+ overflow-y: auto;
71
+ }
72
+
73
+ /* Form input styles */
74
+ .omnikit-input {
75
+ width: 100%;
76
+ padding: 0.5rem;
77
+ border: 1px solid #e5e7eb;
78
+ border-radius: 0.375rem;
79
+ font-size: 0.875rem;
80
+ transition: border-color 150ms;
81
+ }
82
+
83
+ .omnikit-input:focus {
84
+ outline: none;
85
+ border-color: #3b82f6;
86
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
87
+ }
88
+
89
+ .omnikit-input.error {
90
+ border-color: #ef4444;
91
+ }
92
+
93
+ .omnikit-input.error:focus {
94
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
95
+ }
@@ -1,3 +1 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
1
+ @import "tailwindcss" prefix(tw);
package/styles.css DELETED
@@ -1,553 +0,0 @@
1
- /* @omnikit-js/ui Component Styles */
2
- /* This file includes all Tailwind CSS classes used by the billing component */
3
-
4
- /* Reset and base styles */
5
- *, ::before, ::after {
6
- box-sizing: border-box;
7
- }
8
-
9
- /* Color utilities */
10
- .text-red-600 { color: #dc2626; }
11
- .text-red-400 { color: #f87171; }
12
- .text-orange-600 { color: #ea580c; }
13
- .text-orange-400 { color: #fb923c; }
14
- .text-yellow-600 { color: #d97706; }
15
- .text-yellow-400 { color: #facc15; }
16
- .text-green-600 { color: #16a34a; }
17
- .text-green-400 { color: #4ade80; }
18
- .text-gray-500 { color: #6b7280; }
19
- .text-muted-foreground { color: #6b7280; }
20
- .text-foreground { color: #111827; }
21
- .text-primary { color: #3b82f6; }
22
- .text-primary-foreground { color: #ffffff; }
23
-
24
- /* Background colors */
25
- .bg-red-100 { background-color: #fee2e2; }
26
- .bg-red-950 { background-color: #450a0a; }
27
- .bg-orange-100 { background-color: #ffedd5; }
28
- .bg-orange-950 { background-color: #431407; }
29
- .bg-yellow-100 { background-color: #fef3c7; }
30
- .bg-yellow-950 { background-color: #451a03; }
31
- .bg-green-100 { background-color: #dcfce7; }
32
- .bg-green-950 { background-color: #14532d; }
33
- .bg-primary { background-color: #3b82f6; }
34
- .bg-popover { background-color: #ffffff; }
35
- .bg-muted { background-color: #f9fafb; }
36
- .bg-secondary { background-color: #f3f4f6; }
37
- .bg-destructive { background-color: #ef4444; }
38
-
39
- /* Border colors */
40
- .border-primary { border-color: #3b82f6; }
41
- .border-primary\/50 { border-color: rgba(59, 130, 246, 0.5); }
42
- .border-muted { border-color: #e5e7eb; }
43
- .border { border-width: 1px; }
44
- .border-t { border-top-width: 1px; }
45
-
46
- /* Text sizes */
47
- .text-xs { font-size: 0.75rem; line-height: 1rem; }
48
- .text-sm { font-size: 0.875rem; line-height: 1.25rem; }
49
- .text-base { font-size: 1rem; line-height: 1.5rem; }
50
- .text-lg { font-size: 1.125rem; line-height: 1.75rem; }
51
- .text-xl { font-size: 1.25rem; line-height: 1.75rem; }
52
- .text-2xl { font-size: 1.5rem; line-height: 2rem; }
53
- .text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
54
- .text-5xl { font-size: 3rem; line-height: 1; }
55
-
56
- /* Font weights */
57
- .font-normal { font-weight: 400; }
58
- .font-medium { font-weight: 500; }
59
- .font-semibold { font-weight: 600; }
60
- .font-bold { font-weight: 700; }
61
-
62
- /* Spacing */
63
- .p-1 { padding: 0.25rem; }
64
- .p-3 { padding: 0.75rem; }
65
- .p-4 { padding: 1rem; }
66
- .p-6 { padding: 1.5rem; }
67
- .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
68
- .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
69
- .pt-2 { padding-top: 0.5rem; }
70
- .pt-3 { padding-top: 0.75rem; }
71
- .pt-4 { padding-top: 1rem; }
72
- .pb-4 { padding-bottom: 1rem; }
73
- .pb-8 { padding-bottom: 2rem; }
74
- .ml-1 { margin-left: 0.25rem; }
75
- .ml-2 { margin-left: 0.5rem; }
76
- .mr-2 { margin-right: 0.5rem; }
77
- .mt-1 { margin-top: 0.25rem; }
78
- .mt-2 { margin-top: 0.5rem; }
79
- .mb-4 { margin-bottom: 1rem; }
80
- .mb-8 { margin-bottom: 2rem; }
81
-
82
- /* Layout */
83
- .flex { display: flex; }
84
- .inline-flex { display: inline-flex; }
85
- .grid { display: grid; }
86
- .hidden { display: none; }
87
- .flex-col { flex-direction: column; }
88
- .flex-1 { flex: 1 1 0%; }
89
- .flex-shrink-0 { flex-shrink: 0; }
90
- .items-start { align-items: flex-start; }
91
- .items-center { align-items: center; }
92
- .items-baseline { align-items: baseline; }
93
- .justify-center { justify-content: center; }
94
- .justify-between { justify-content: space-between; }
95
- .justify-end { justify-content: flex-end; }
96
-
97
- /* Grid */
98
- .gap-4 { gap: 1rem; }
99
- .gap-6 { gap: 1.5rem; }
100
-
101
- /* Width and height */
102
- .w-full { width: 100%; }
103
- .h-4 { height: 1rem; }
104
- .h-6 { height: 1.5rem; }
105
- .h-full { height: 100%; }
106
- .min-h-\[300px\] { min-height: 300px; }
107
-
108
- /* Positioning */
109
- .relative { position: relative; }
110
- .absolute { position: absolute; }
111
- .fixed { position: fixed; }
112
- .top-0 { top: 0px; }
113
- .right-0 { right: 0px; }
114
- .left-1\/2 { left: 50%; }
115
- .top-1\/2 { top: 50%; }
116
- .inset { inset: 0px; }
117
- .z-50 { z-index: 50; }
118
- .z-51 { z-index: 51; }
119
-
120
- /* Transforms */
121
- .-translate-x-1\/2 { transform: translateX(-50%); }
122
- .-translate-y-1\/2 { transform: translateY(-50%); }
123
-
124
- /* Overflow */
125
- .overflow-hidden { overflow: hidden; }
126
-
127
- /* Border radius */
128
- .rounded { border-radius: 0.25rem; }
129
- .rounded-md { border-radius: 0.375rem; }
130
- .rounded-lg { border-radius: 0.5rem; }
131
- .rounded-bl-lg { border-bottom-left-radius: 0.5rem; }
132
- .rounded-full { border-radius: 9999px; }
133
-
134
- /* Box shadow */
135
- .shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
136
- .shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
137
-
138
- /* Cursor */
139
- .cursor-pointer { cursor: pointer; }
140
- .cursor-help { cursor: help; }
141
-
142
- /* Transitions */
143
- .transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
144
- .animate-in { animation: enter 150ms ease-out; }
145
- .animate-out { animation: exit 150ms ease-in; }
146
- .animate-spin { animation: spin 1s linear infinite; }
147
-
148
- /* Space between children */
149
- .space-y-1 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.25rem; }
150
- .space-y-2 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.5rem; }
151
- .space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
152
- .space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
153
- .space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.5rem; }
154
- .space-x-2 > :not([hidden]) ~ :not([hidden]) { margin-left: 0.5rem; }
155
-
156
- /* Responsive grid columns */
157
- @media (min-width: 768px) {
158
- .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
159
- .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
160
- }
161
-
162
- @media (min-width: 1024px) {
163
- .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
164
- }
165
-
166
- @media (min-width: 1280px) {
167
- .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
168
- }
169
-
170
- /* Pseudo-class utilities */
171
- .first\:border-t-0:first-child { border-top-width: 0px; }
172
- .first\:pt-0:first-child { padding-top: 0px; }
173
-
174
- /* Dark mode styles */
175
- @media (prefers-color-scheme: dark) {
176
- .dark\:text-red-400 { color: #f87171; }
177
- .dark\:text-orange-400 { color: #fb923c; }
178
- .dark\:text-yellow-400 { color: #facc15; }
179
- .dark\:text-green-400 { color: #4ade80; }
180
- .dark\:bg-red-950 { background-color: #450a0a; }
181
- .dark\:bg-orange-950 { background-color: #431407; }
182
- .dark\:bg-yellow-950 { background-color: #451a03; }
183
- .dark\:bg-green-950 { background-color: #14532d; }
184
- }
185
-
186
- /* Custom keyframes */
187
- @keyframes enter {
188
- from { opacity: 0; transform: scale(0.95); }
189
- to { opacity: 1; transform: scale(1); }
190
- }
191
-
192
- @keyframes exit {
193
- from { opacity: 1; transform: scale(1); }
194
- to { opacity: 0; transform: scale(0.95); }
195
- }
196
-
197
- @keyframes spin {
198
- to { transform: rotate(360deg); }
199
- }
200
-
201
- /* Card styles */
202
- .omnikit-card {
203
- background: white;
204
- border: 1px solid #e5e7eb;
205
- border-radius: 0.5rem;
206
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
207
- }
208
-
209
- .omnikit-card-header {
210
- padding: 1.5rem 1.5rem 0 1.5rem;
211
- }
212
-
213
- .omnikit-card-content {
214
- padding: 1.5rem;
215
- }
216
-
217
- .omnikit-card-footer {
218
- padding: 0 1.5rem 1.5rem 1.5rem;
219
- }
220
-
221
- /* Button styles */
222
- .omnikit-button {
223
- display: inline-flex;
224
- align-items: center;
225
- justify-content: center;
226
- border-radius: 0.375rem;
227
- font-size: 0.875rem;
228
- font-weight: 500;
229
- padding: 0.5rem 1rem;
230
- border: 1px solid transparent;
231
- cursor: pointer;
232
- transition: all 0.2s;
233
- }
234
-
235
- .omnikit-button-primary {
236
- background: #3b82f6;
237
- color: white;
238
- }
239
-
240
- .omnikit-button-primary:hover {
241
- background: #2563eb;
242
- }
243
-
244
- .omnikit-button-secondary {
245
- background: #f3f4f6;
246
- color: #374151;
247
- }
248
-
249
- .omnikit-button-secondary:hover {
250
- background: #e5e7eb;
251
- }
252
-
253
- .omnikit-button-outline {
254
- background: transparent;
255
- border-color: #d1d5db;
256
- color: #374151;
257
- }
258
-
259
- .omnikit-button-outline:hover {
260
- background: #f9fafb;
261
- }
262
-
263
- .omnikit-button-destructive {
264
- background: #ef4444;
265
- color: white;
266
- }
267
-
268
- .omnikit-button-destructive:hover {
269
- background: #dc2626;
270
- }
271
-
272
- /* Pricing card styles */
273
- .omnikit-pricing-grid {
274
- display: grid;
275
- gap: 1rem;
276
- grid-template-columns: 1fr;
277
- }
278
-
279
- @media (min-width: 768px) {
280
- .omnikit-pricing-grid {
281
- grid-template-columns: repeat(2, 1fr);
282
- }
283
- }
284
-
285
- @media (min-width: 1024px) {
286
- .omnikit-pricing-grid {
287
- grid-template-columns: repeat(3, 1fr);
288
- }
289
- }
290
-
291
- @media (min-width: 1280px) {
292
- .omnikit-pricing-grid-4 {
293
- grid-template-columns: repeat(4, 1fr);
294
- }
295
- }
296
-
297
- .omnikit-pricing-card {
298
- position: relative;
299
- display: flex;
300
- flex-direction: column;
301
- height: 100%;
302
- overflow: hidden;
303
- }
304
-
305
- .omnikit-pricing-card.current {
306
- border-color: #3b82f6;
307
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
308
- }
309
-
310
- .omnikit-pricing-card.popular {
311
- border-color: rgba(59, 130, 246, 0.5);
312
- }
313
-
314
- /* Feature styles */
315
- .omnikit-feature-value {
316
- font-size: 1.125rem;
317
- font-weight: 600;
318
- color: #111827;
319
- }
320
-
321
- .omnikit-feature-units {
322
- font-size: 0.875rem;
323
- color: #6b7280;
324
- font-weight: 400;
325
- }
326
-
327
- .omnikit-feature-name {
328
- font-size: 0.75rem;
329
- color: #6b7280;
330
- margin-top: 0.25rem;
331
- cursor: help;
332
- }
333
-
334
- /* Badge styles */
335
- .omnikit-badge {
336
- display: inline-flex;
337
- align-items: center;
338
- border-radius: 9999px;
339
- padding: 0.25rem 0.75rem;
340
- font-size: 0.75rem;
341
- font-weight: 500;
342
- background: #f3f4f6;
343
- color: #374151;
344
- }
345
-
346
- .omnikit-badge-secondary {
347
- background: #f3f4f6;
348
- color: #374151;
349
- }
350
-
351
- /* Progress bar styles */
352
- .omnikit-progress {
353
- width: 100%;
354
- height: 0.5rem;
355
- background: #f3f4f6;
356
- border-radius: 9999px;
357
- overflow: hidden;
358
- }
359
-
360
- .omnikit-progress-fill {
361
- height: 100%;
362
- background: #3b82f6;
363
- transition: width 0.3s ease;
364
- }
365
-
366
- /* Modal/Dialog styles */
367
- .omnikit-dialog-overlay {
368
- position: fixed;
369
- inset: 0;
370
- background: rgba(0, 0, 0, 0.5);
371
- z-index: 50;
372
- }
373
-
374
- .omnikit-dialog-content {
375
- position: fixed;
376
- left: 50%;
377
- top: 50%;
378
- transform: translate(-50%, -50%);
379
- background: white;
380
- border-radius: 0.5rem;
381
- padding: 1.5rem;
382
- max-width: 28rem;
383
- width: 90vw;
384
- z-index: 51;
385
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
386
- }
387
-
388
- /* Tabs styles */
389
- .omnikit-tabs-list {
390
- display: inline-flex;
391
- align-items: center;
392
- justify-content: center;
393
- border-radius: 0.375rem;
394
- background: #f3f4f6;
395
- padding: 0.25rem;
396
- }
397
-
398
- .omnikit-tabs-trigger {
399
- display: inline-flex;
400
- align-items: center;
401
- justify-content: center;
402
- padding: 0.375rem 0.75rem;
403
- font-size: 0.875rem;
404
- font-weight: 500;
405
- border-radius: 0.25rem;
406
- cursor: pointer;
407
- color: #6b7280;
408
- transition: all 0.2s;
409
- }
410
-
411
- .omnikit-tabs-trigger[data-state="active"] {
412
- background: white;
413
- color: #111827;
414
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
415
- }
416
-
417
- /* Utility classes */
418
- .omnikit-text-muted {
419
- color: #6b7280;
420
- }
421
-
422
- .omnikit-text-foreground {
423
- color: #111827;
424
- }
425
-
426
- .omnikit-text-primary {
427
- color: #3b82f6;
428
- }
429
-
430
- .omnikit-flex {
431
- display: flex;
432
- }
433
-
434
- .omnikit-flex-col {
435
- flex-direction: column;
436
- }
437
-
438
- .omnikit-flex-1 {
439
- flex: 1 1 0%;
440
- }
441
-
442
- .omnikit-items-center {
443
- align-items: center;
444
- }
445
-
446
- .omnikit-justify-center {
447
- justify-content: center;
448
- }
449
-
450
- .omnikit-justify-between {
451
- justify-content: space-between;
452
- }
453
-
454
- .omnikit-space-y-2 > * + * {
455
- margin-top: 0.5rem;
456
- }
457
-
458
- .omnikit-space-y-3 > * + * {
459
- margin-top: 0.75rem;
460
- }
461
-
462
- .omnikit-space-y-4 > * + * {
463
- margin-top: 1rem;
464
- }
465
-
466
- .omnikit-mt-1 {
467
- margin-top: 0.25rem;
468
- }
469
-
470
- .omnikit-mt-2 {
471
- margin-top: 0.5rem;
472
- }
473
-
474
- .omnikit-mb-4 {
475
- margin-bottom: 1rem;
476
- }
477
-
478
- .omnikit-p-4 {
479
- padding: 1rem;
480
- }
481
-
482
- .omnikit-pt-2 {
483
- padding-top: 0.5rem;
484
- }
485
-
486
- .omnikit-pt-3 {
487
- padding-top: 0.75rem;
488
- }
489
-
490
- .omnikit-w-full {
491
- width: 100%;
492
- }
493
-
494
- .omnikit-h-6 {
495
- height: 1.5rem;
496
- }
497
-
498
- .omnikit-min-h-300 {
499
- min-height: 300px;
500
- }
501
-
502
- /* Dark mode support */
503
- @media (prefers-color-scheme: dark) {
504
- .omnikit-card {
505
- background: #1f2937;
506
- border-color: #374151;
507
- color: white;
508
- }
509
-
510
- .omnikit-feature-value {
511
- color: white;
512
- }
513
-
514
- .omnikit-text-foreground {
515
- color: white;
516
- }
517
-
518
- .omnikit-button-secondary {
519
- background: #374151;
520
- color: #d1d5db;
521
- }
522
-
523
- .omnikit-button-secondary:hover {
524
- background: #4b5563;
525
- }
526
-
527
- .omnikit-button-outline {
528
- border-color: #4b5563;
529
- color: #d1d5db;
530
- }
531
-
532
- .omnikit-button-outline:hover {
533
- background: #374151;
534
- }
535
-
536
- .omnikit-dialog-content {
537
- background: #1f2937;
538
- color: white;
539
- }
540
-
541
- .omnikit-tabs-list {
542
- background: #374151;
543
- }
544
-
545
- .omnikit-tabs-trigger {
546
- color: #9ca3af;
547
- }
548
-
549
- .omnikit-tabs-trigger[data-state="active"] {
550
- background: #1f2937;
551
- color: white;
552
- }
553
- }