@omnikit-js/ui 0.3.4 → 0.3.6

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,553 @@
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
+ }
package/package.json CHANGED
@@ -1,19 +1,21 @@
1
1
  {
2
2
  "name": "@omnikit-js/ui",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "A SaaS billing component for Next.js with Stripe integration",
5
- "main": "src/index.ts",
6
- "module": "src/index.ts",
7
- "types": "src/index.ts",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./src/index.ts",
11
- "import": "./src/index.ts",
12
- "require": "./src/index.ts"
13
- }
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.esm.js",
12
+ "require": "./dist/index.js"
13
+ },
14
+ "./styles.css": "./styles.css"
14
15
  },
15
16
  "files": [
16
17
  "src",
18
+ "dist",
17
19
  "styles.css"
18
20
  ],
19
21
  "scripts": {