@betterlb/kapwa 1.1.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 (52) hide show
  1. package/LICENSE +121 -0
  2. package/README.md +177 -0
  3. package/dist/index.cjs +2 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.ts +6 -0
  6. package/dist/index.js +22 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/jsx-runtime-DdAyboqB.js +282 -0
  9. package/dist/jsx-runtime-DdAyboqB.js.map +1 -0
  10. package/dist/jsx-runtime-KWq1EBG2.cjs +23 -0
  11. package/dist/jsx-runtime-KWq1EBG2.cjs.map +1 -0
  12. package/dist/kapwa/banner/index.d.ts +26 -0
  13. package/dist/kapwa/banner/index.tsx.cjs +2 -0
  14. package/dist/kapwa/banner/index.tsx.cjs.map +1 -0
  15. package/dist/kapwa/banner/index.tsx.js +309 -0
  16. package/dist/kapwa/banner/index.tsx.js.map +1 -0
  17. package/dist/kapwa/button/hooks/index.d.ts +1 -0
  18. package/dist/kapwa/button/hooks/index.ts.cjs +2 -0
  19. package/dist/kapwa/button/hooks/index.ts.cjs.map +1 -0
  20. package/dist/kapwa/button/hooks/index.ts.js +6 -0
  21. package/dist/kapwa/button/hooks/index.ts.js.map +1 -0
  22. package/dist/kapwa/button/index.d.ts +12 -0
  23. package/dist/kapwa/button/index.tsx.cjs +2 -0
  24. package/dist/kapwa/button/index.tsx.cjs.map +1 -0
  25. package/dist/kapwa/button/index.tsx.js +82 -0
  26. package/dist/kapwa/button/index.tsx.js.map +1 -0
  27. package/dist/kapwa/card/index.d.ts +27 -0
  28. package/dist/kapwa/card/index.tsx.cjs +2 -0
  29. package/dist/kapwa/card/index.tsx.cjs.map +1 -0
  30. package/dist/kapwa/card/index.tsx.js +64 -0
  31. package/dist/kapwa/card/index.tsx.js.map +1 -0
  32. package/dist/kapwa/input/index.d.ts +3 -0
  33. package/dist/kapwa/input/index.tsx.cjs +2 -0
  34. package/dist/kapwa/input/index.tsx.cjs.map +1 -0
  35. package/dist/kapwa/input/index.tsx.js +22 -0
  36. package/dist/kapwa/input/index.tsx.js.map +1 -0
  37. package/dist/kapwa/label/index.d.ts +5 -0
  38. package/dist/kapwa/label/index.tsx.cjs +2 -0
  39. package/dist/kapwa/label/index.tsx.cjs.map +1 -0
  40. package/dist/kapwa/label/index.tsx.js +121 -0
  41. package/dist/kapwa/label/index.tsx.js.map +1 -0
  42. package/dist/kapwa.css +612 -0
  43. package/dist/lib/utils.cjs +2 -0
  44. package/dist/lib/utils.cjs.map +1 -0
  45. package/dist/lib/utils.d.ts +5 -0
  46. package/dist/lib/utils.js +8 -0
  47. package/dist/lib/utils.js.map +1 -0
  48. package/dist/utils-BWXuiikn.js +2293 -0
  49. package/dist/utils-BWXuiikn.js.map +1 -0
  50. package/dist/utils-GVl92sVg.cjs +2 -0
  51. package/dist/utils-GVl92sVg.cjs.map +1 -0
  52. package/package.json +219 -0
package/dist/kapwa.css ADDED
@@ -0,0 +1,612 @@
1
+ /* Kapwa Design System Theme */
2
+ @theme {
3
+ /* Kapwa Brand Colors */
4
+ --color-kapwa-brand-50: #ebf6ff;
5
+ --color-kapwa-brand-100: #d1ecff;
6
+ --color-kapwa-brand-200: #aedfff;
7
+ --color-kapwa-brand-300: #76cdff;
8
+ --color-kapwa-brand-400: #35b0ff;
9
+ --color-kapwa-brand-500: #0787ff;
10
+ --color-kapwa-brand-600: #005df5;
11
+ --color-kapwa-brand-700: #0052d6;
12
+ --color-kapwa-brand-800: #004ac2;
13
+ --color-kapwa-brand-900: #0038a8;
14
+ --color-kapwa-brand-950: #062365;
15
+
16
+ /* Kapwa Primitive Colors */
17
+ --color-kapwa-red-50: #fff1f2;
18
+ --color-kapwa-red-100: #ffe0e3;
19
+ --color-kapwa-red-200: #ffc6cc;
20
+ --color-kapwa-red-300: #ff9fa9;
21
+ --color-kapwa-red-400: #ff6878;
22
+ --color-kapwa-red-500: #fb384d;
23
+ --color-kapwa-red-600: #e9192f;
24
+ --color-kapwa-red-700: #ce1226;
25
+ --color-kapwa-red-800: #a21221;
26
+ --color-kapwa-red-900: #861622;
27
+ --color-kapwa-red-950: #49060d;
28
+
29
+ --color-kapwa-green-50: #effef5;
30
+ --color-kapwa-green-100: #d9ffea;
31
+ --color-kapwa-green-200: #b6fcd5;
32
+ --color-kapwa-green-300: #7df8b6;
33
+ --color-kapwa-green-400: #3deb8e;
34
+ --color-kapwa-green-500: #14d36d;
35
+ --color-kapwa-green-600: #0b7f42;
36
+ --color-kapwa-green-700: #0a713a;
37
+ --color-kapwa-green-800: #0d5e33;
38
+ --color-kapwa-green-900: #0d4a2b;
39
+ --color-kapwa-green-950: #01321a;
40
+
41
+ --color-kapwa-blue-50: #f0f8ff;
42
+ --color-kapwa-blue-100: #e0f0fe;
43
+ --color-kapwa-blue-200: #b9defe;
44
+ --color-kapwa-blue-300: #7cc1fd;
45
+ --color-kapwa-blue-400: #369ffa;
46
+ --color-kapwa-blue-500: #0c83eb;
47
+ --color-kapwa-blue-600: #006ac7;
48
+ --color-kapwa-blue-700: #0159a3;
49
+ --color-kapwa-blue-800: #064d86;
50
+ --color-kapwa-blue-900: #0b406f;
51
+ --color-kapwa-blue-950: #07284a;
52
+
53
+ --color-kapwa-orange-50: #fff9ed;
54
+ --color-kapwa-orange-100: #fff3d4;
55
+ --color-kapwa-orange-200: #ffe3a9;
56
+ --color-kapwa-orange-300: #ffcd72;
57
+ --color-kapwa-orange-400: #fdad3a;
58
+ --color-kapwa-orange-500: #fc9416;
59
+ --color-kapwa-orange-600: #ed7609;
60
+ --color-kapwa-orange-700: #c45a0a;
61
+ --color-kapwa-orange-800: #9c4610;
62
+ --color-kapwa-orange-900: #7d3b11;
63
+ --color-kapwa-orange-950: #441d06;
64
+
65
+ --color-kapwa-yellow-50: #fefce8;
66
+ --color-kapwa-yellow-100: #fffac2;
67
+ --color-kapwa-yellow-200: #fff389;
68
+ --color-kapwa-yellow-300: #ffe445;
69
+ --color-kapwa-yellow-400: #fcd116;
70
+ --color-kapwa-yellow-500: #ecb706;
71
+ --color-kapwa-yellow-600: #cc8e02;
72
+ --color-kapwa-yellow-700: #a26406;
73
+ --color-kapwa-yellow-800: #864f0d;
74
+ --color-kapwa-yellow-900: #724011;
75
+ --color-kapwa-yellow-950: #432105;
76
+
77
+ --color-kapwa-purple-50: #f5f4fe;
78
+ --color-kapwa-purple-100: #eeeafd;
79
+ --color-kapwa-purple-200: #dfd8fc;
80
+ --color-kapwa-purple-300: #c6b9f9;
81
+ --color-kapwa-purple-400: #aa92f3;
82
+ --color-kapwa-purple-500: #8f65ed;
83
+ --color-kapwa-purple-600: #8148e3;
84
+ --color-kapwa-purple-700: #6f32cf;
85
+ --color-kapwa-purple-800: #5d2aad;
86
+ --color-kapwa-purple-900: #4e248e;
87
+ --color-kapwa-purple-950: #2f1560;
88
+
89
+ --color-kapwa-gray-50: #f7f7f8;
90
+ --color-kapwa-gray-100: #ecedee;
91
+ --color-kapwa-gray-200: #d8dbdf;
92
+ --color-kapwa-gray-300: #c6ccd2;
93
+ --color-kapwa-gray-400: #b8c0c6;
94
+ --color-kapwa-gray-500: #abb2ba;
95
+ --color-kapwa-gray-600: #6f7c88;
96
+ --color-kapwa-gray-700: #596570;
97
+ --color-kapwa-gray-800: #49525b;
98
+ --color-kapwa-gray-900: #373d43;
99
+ --color-kapwa-gray-950: #1e2124;
100
+
101
+ --color-kapwa-neutral-50: hsla(0, 0%, 100%, 1);
102
+ --color-kapwa-neutral-100: hsla(209, 61%, 12%, 0.06);
103
+ --color-kapwa-neutral-200: hsla(209, 61%, 12%, 0.08);
104
+ --color-kapwa-neutral-300: hsla(209, 61%, 12%, 0.12);
105
+
106
+ --color-kapwa-bg-overlay: hsla(210, 9%, 13%, 0.6);
107
+
108
+ @keyframes spin {
109
+ to {
110
+ transform: rotate(360deg);
111
+ }
112
+ }
113
+ @keyframes ping {
114
+ 75%,
115
+ 100% {
116
+ transform: scale(2);
117
+ opacity: 0;
118
+ }
119
+ }
120
+ @keyframes pulse {
121
+ 50% {
122
+ opacity: 0.5;
123
+ }
124
+ }
125
+ @keyframes bounce {
126
+ 0%,
127
+ 100% {
128
+ transform: translateY(-25%);
129
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
130
+ }
131
+ 50% {
132
+ transform: none;
133
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
134
+ }
135
+ }
136
+
137
+ /* Animation Durations */
138
+ --duration-kapwa-75: 75ms;
139
+ --duration-kapwa-100: 100ms;
140
+ --duration-kapwa-150: 150ms;
141
+ --duration-kapwa-200: 200ms;
142
+ --duration-kapwa-300: 300ms;
143
+ --duration-kapwa-500: 500ms;
144
+ --duration-kapwa-700: 700ms;
145
+ --duration-kapwa-1000: 1000ms;
146
+
147
+ /* Animation Easing */
148
+ --ease-kapwa-linear: linear;
149
+ --ease-kapwa-in: cubic-bezier(0.4, 0, 1, 1);
150
+ --ease-kapwa-out: cubic-bezier(0, 0, 0.2, 1);
151
+ --ease-kapwa-in-out: cubic-bezier(0.4, 0, 0.2, 1);
152
+ --ease-kapwa-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
153
+ --ease-kapwa-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
154
+
155
+ /* Kapwa Spacing Tokens */
156
+ --spacing-kapwa-3xs: 0.125rem; /* 2px */
157
+ --spacing-kapwa-2xs: 0.25rem; /* 4px */
158
+ --spacing-kapwa-xs: 0.5rem; /* 8px */
159
+ --spacing-kapwa-sm: 0.75rem; /* 12px */
160
+ --spacing-kapwa-md: 1rem; /* 16px */
161
+ --spacing-kapwa-lg: 1.5rem; /* 24px */
162
+ --spacing-kapwa-xl: 2rem; /* 32px */
163
+ --spacing-kapwa-2xl: 2.5rem; /* 40px */
164
+ --spacing-kapwa-3xl: 3rem; /* 48px */
165
+ }
166
+
167
+ @theme inline {
168
+ /* Kapwa Semantic Colors */
169
+ /* Semantic aliases are registered here in @theme inline to avoid redundant global vars. */
170
+
171
+ /* Kapwa Text Colors */
172
+ --color-kapwa-text-strong: var(--color-kapwa-gray-950);
173
+ --color-kapwa-text-support: var(--color-kapwa-gray-700);
174
+ --color-kapwa-text-disabled: var(--color-kapwa-gray-500);
175
+ --color-kapwa-text-on-disabled: var(--color-kapwa-gray-600);
176
+ --color-kapwa-text-inverse: var(--color-kapwa-neutral-50);
177
+ --color-kapwa-text-inverse-subtle: var(--color-kapwa-gray-400);
178
+ --color-kapwa-text-link: var(--color-kapwa-blue-500);
179
+ --color-kapwa-text-link-hover: var(--color-kapwa-blue-600);
180
+ --color-kapwa-text-link-visited: var(--color-kapwa-blue-700);
181
+ --color-kapwa-text-brand: var(--color-kapwa-brand-600);
182
+ --color-kapwa-text-brand-bold: var(--color-kapwa-brand-950);
183
+ --color-kapwa-text-success: var(--color-kapwa-green-600);
184
+ --color-kapwa-text-danger: var(--color-kapwa-red-600);
185
+ --color-kapwa-text-warning: var(--color-kapwa-orange-600);
186
+ --color-kapwa-text-info: var(--color-kapwa-blue-600);
187
+
188
+ --color-kapwa-text-accent-purple: var(--color-kapwa-purple-700);
189
+ --color-kapwa-text-accent-green: var(--color-kapwa-green-700);
190
+ --color-kapwa-text-accent-red: var(--color-kapwa-red-700);
191
+ --color-kapwa-text-accent-orange: var(--color-kapwa-orange-700);
192
+ --color-kapwa-text-accent-blue: var(--color-kapwa-blue-700);
193
+
194
+ /* Kapwa Background Colors */
195
+ --color-kapwa-bg-surface: var(--color-kapwa-neutral-50);
196
+ --color-kapwa-bg-surface-raised: var(--color-kapwa-gray-50);
197
+ --color-kapwa-bg-surface-brand: var(--color-kapwa-brand-100);
198
+ --color-kapwa-bg-surface-bold: var(--color-kapwa-gray-950);
199
+ --color-kapwa-bg-surface-adaptive: var(--color-kapwa-neutral-100);
200
+ --color-kapwa-bg-hover: var(--color-kapwa-neutral-200);
201
+ --color-kapwa-bg-active: var(--color-kapwa-neutral-300);
202
+ --color-kapwa-bg-disabled: var(--color-kapwa-neutral-300);
203
+ --color-kapwa-bg-focus: var(--color-kapwa-yellow-500);
204
+ --color-kapwa-bg-surface-brand-active: var(--color-kapwa-brand-50);
205
+
206
+ --color-kapwa-bg-gray-default: var(--color-kapwa-gray-50);
207
+ --color-kapwa-bg-gray-hover: var(--color-kapwa-gray-100);
208
+ --color-kapwa-bg-gray-active: var(--color-kapwa-gray-200);
209
+ --color-kapwa-bg-gray-disabled: var(--color-kapwa-gray-300);
210
+
211
+ --color-kapwa-bg-brand-default: var(--color-kapwa-brand-600);
212
+ --color-kapwa-bg-brand-hover: var(--color-kapwa-brand-700);
213
+ --color-kapwa-bg-brand-active: var(--color-kapwa-brand-800);
214
+ --color-kapwa-bg-brand-weak: var(--color-kapwa-brand-50);
215
+
216
+ --color-kapwa-bg-info-default: var(--color-kapwa-blue-600);
217
+ --color-kapwa-bg-info-hover: var(--color-kapwa-blue-700);
218
+ --color-kapwa-bg-info-active: var(--color-kapwa-blue-800);
219
+ --color-kapwa-bg-info-weak: var(--color-kapwa-blue-50);
220
+
221
+ --color-kapwa-bg-danger-default: var(--color-kapwa-red-700);
222
+ --color-kapwa-bg-danger-hover: var(--color-kapwa-red-800);
223
+ --color-kapwa-bg-danger-active: var(--color-kapwa-red-900);
224
+ --color-kapwa-bg-danger-weak: var(--color-kapwa-red-50);
225
+
226
+ --color-kapwa-bg-warning-default: var(--color-kapwa-orange-600);
227
+ --color-kapwa-bg-warning-hover: var(--color-kapwa-orange-700);
228
+ --color-kapwa-bg-warning-active: var(--color-kapwa-orange-800);
229
+ --color-kapwa-bg-warning-weak: var(--color-kapwa-orange-50);
230
+
231
+ --color-kapwa-bg-success-default: var(--color-kapwa-green-600);
232
+ --color-kapwa-bg-success-hover: var(--color-kapwa-green-700);
233
+ --color-kapwa-bg-success-active: var(--color-kapwa-green-800);
234
+ --color-kapwa-bg-success-weak: var(--color-kapwa-green-50);
235
+
236
+ --color-kapwa-bg-accent-purple-default: var(--color-kapwa-purple-700);
237
+ --color-kapwa-bg-accent-purple-weak: var(--color-kapwa-purple-50);
238
+
239
+ --color-kapwa-bg-accent-green-default: var(--color-kapwa-green-600);
240
+ --color-kapwa-bg-accent-green-weak: var(--color-kapwa-green-50);
241
+
242
+ --color-kapwa-bg-accent-red-default: var(--color-kapwa-red-500);
243
+ --color-kapwa-bg-accent-red-weak: var(--color-kapwa-red-50);
244
+
245
+ --color-kapwa-bg-accent-orange-default: var(--color-kapwa-orange-600);
246
+ --color-kapwa-bg-accent-orange-weak: var(--color-kapwa-orange-50);
247
+
248
+ --color-kapwa-bg-accent-blue-default: var(--color-kapwa-blue-600);
249
+ --color-kapwa-bg-accent-blue-weak: var(--color-kapwa-blue-50);
250
+
251
+ --color-kapwa-bg-accent-yellow-default: var(--color-kapwa-yellow-500);
252
+ --color-kapwa-bg-accent-yellow-weak: var(--color-kapwa-yellow-50);
253
+
254
+ /* Kapwa Border Colors */
255
+ --color-kapwa-border-strong: var(--color-kapwa-gray-400);
256
+ --color-kapwa-border-weak: var(--color-kapwa-gray-200);
257
+ --color-kapwa-border-inverse: var(--color-kapwa-gray-50);
258
+ --color-kapwa-border-on-disabled: var(--color-kapwa-gray-400);
259
+ --color-kapwa-border-focus: var(--color-kapwa-blue-500);
260
+ --color-kapwa-border-brand: var(--color-kapwa-brand-600);
261
+ --color-kapwa-border-success: var(--color-kapwa-green-600);
262
+ --color-kapwa-border-danger: var(--color-kapwa-red-700);
263
+ --color-kapwa-border-warning: var(--color-kapwa-orange-600);
264
+ --color-kapwa-border-info: var(--color-kapwa-blue-600);
265
+ }
266
+
267
+ .kapwa-heading-xl {
268
+ font-size: 2.5rem;
269
+ font-weight: 700;
270
+ line-height: 140%;
271
+ letter-spacing: var(--letter-spacing-tight);
272
+ font-style: var(--font-family-sans);
273
+ }
274
+
275
+ .kapwa-heading-lg {
276
+ font-size: 2rem;
277
+ font-weight: 700;
278
+ line-height: 140%;
279
+ letter-spacing: var(--letter-spacing-tight);
280
+ font-style: var(--font-family-sans);
281
+ }
282
+
283
+ .kapwa-heading-md {
284
+ font-size: 1.5rem;
285
+ font-weight: 700;
286
+ line-height: 140%;
287
+ letter-spacing: var(--letter-spacing-tight);
288
+ font-style: var(--font-family-sans);
289
+ }
290
+
291
+ .kapwa-heading-sm {
292
+ font-size: 1.25rem;
293
+ font-weight: 700;
294
+ line-height: 140%;
295
+ letter-spacing: var(--letter-spacing-tight);
296
+ font-style: var(--font-family-sans);
297
+ }
298
+
299
+ .kapwa-body-xl-default {
300
+ font-size: 1.25rem;
301
+ font-weight: 400;
302
+ line-height: 140%;
303
+ font-style: var(--font-family-sans);
304
+ }
305
+
306
+ .kapwa-body-xl-strong {
307
+ font-size: 1.25rem;
308
+ font-weight: 700;
309
+ line-height: 140%;
310
+ font-style: var(--font-family-sans);
311
+ }
312
+
313
+ .kapwa-body-lg-default {
314
+ font-size: 1.125rem;
315
+ font-weight: 400;
316
+ line-height: 140%;
317
+ font-style: var(--font-family-sans);
318
+ }
319
+
320
+ .kapwa-body-lg-strong {
321
+ font-size: 1.125rem;
322
+ font-weight: 700;
323
+ line-height: 140%;
324
+ font-style: var(--font-family-sans);
325
+ }
326
+
327
+ .kapwa-body-md-default {
328
+ font-size: 1rem;
329
+ font-weight: 400;
330
+ line-height: 140%;
331
+ font-style: var(--font-family-sans);
332
+ }
333
+
334
+ .kapwa-body-md-strong {
335
+ font-size: 1rem;
336
+ font-weight: 700;
337
+ line-height: 140%;
338
+ font-style: var(--font-family-sans);
339
+ }
340
+
341
+ .kapwa-body-sm-default {
342
+ font-size: 0.875rem;
343
+ font-weight: 400;
344
+ line-height: 140%;
345
+ font-style: var(--font-family-sans);
346
+ }
347
+
348
+ .kapwa-body-sm-strong {
349
+ font-size: 0.875rem;
350
+ font-weight: 700;
351
+ line-height: 140%;
352
+ font-style: var(--font-family-sans);
353
+ }
354
+
355
+ .kapwa-body-xs-default {
356
+ font-size: 0.75rem;
357
+ font-weight: 400;
358
+ line-height: 140%;
359
+ font-style: var(--font-family-sans);
360
+ }
361
+
362
+ .kapwa-body-xs-strong {
363
+ font-size: 0.775rem;
364
+ font-weight: 700;
365
+ line-height: 140%;
366
+ font-style: var(--font-family-sans);
367
+ }
368
+
369
+ .kapwa-code-lg {
370
+ font-size: 1.125rem;
371
+ font-weight: 400;
372
+ line-height: 140%;
373
+ font-style: var(--font-family-mono);
374
+ }
375
+
376
+ .kapwa-code-md {
377
+ font-size: 1;
378
+ font-weight: 400;
379
+ line-height: 140%;
380
+ font-style: var(--font-family-mono);
381
+ }
382
+
383
+ .kapwa-code-sm {
384
+ font-size: 0.875rem;
385
+ font-weight: 400;
386
+ line-height: 140%;
387
+ font-style: var(--font-family-mono);
388
+ }
389
+
390
+ .kapwa-label-lg {
391
+ font-size: 1.125rem;
392
+ font-weight: 700;
393
+ line-height: 120%;
394
+ font-style: var(--font-family-sans);
395
+ }
396
+
397
+ .kapwa-label-md {
398
+ font-size: 1rem;
399
+ font-weight: 700;
400
+ line-height: 120%;
401
+ font-style: var(--font-family-sans);
402
+ }
403
+
404
+ .kapwa-label-sm {
405
+ font-size: 0.875rem;
406
+ font-weight: 700;
407
+ line-height: 120%;
408
+ font-style: var(--font-family-sans);
409
+ }
410
+
411
+ .kapwa-label-xs {
412
+ font-size: 0.75rem;
413
+ font-weight: 700;
414
+ line-height: 120%;
415
+ font-style: var(--font-family-sans);
416
+ }
417
+
418
+ .kapwa-input {
419
+ font-size: 1rem;
420
+ font-weight: 400;
421
+ line-height: 1.5rem;
422
+ font-style: var(--font-family-sans);
423
+ }
424
+
425
+ .kapwa-link-lg {
426
+ font-size: 1.125rem;
427
+ font-weight: 400;
428
+ line-height: 140%;
429
+ font-style: var(--font-family-sans);
430
+ text-decoration: underline;
431
+ }
432
+
433
+ .kapwa-link-md {
434
+ font-size: 1rem;
435
+ font-weight: 400;
436
+ line-height: 140%;
437
+ font-style: var(--font-family-sans);
438
+ text-decoration: underline;
439
+ }
440
+
441
+ .kapwa-link-sm {
442
+ font-size: 0.875rem;
443
+ font-weight: 400;
444
+ line-height: 140%;
445
+ font-style: var(--font-family-sans);
446
+ text-decoration: underline;
447
+ }
448
+
449
+ /*
450
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
451
+ so we've added these compatibility styles to make sure everything still
452
+ looks the same as it did with Tailwind CSS v3.
453
+
454
+ If we ever want to remove these styles, we need to add an explicit border
455
+ color utility to any element that depends on these defaults.
456
+ */
457
+ @layer base {
458
+ *,
459
+ ::after,
460
+ ::before,
461
+ ::backdrop,
462
+ ::file-selector-button {
463
+ border-color: var(--color-gray-200, currentcolor);
464
+ }
465
+ }
466
+
467
+ /* Leaflet popup fixes for Tailwind CSS conflicts */
468
+ .leaflet-popup-content-wrapper {
469
+ border-radius: 8px !important;
470
+ box-shadow:
471
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1),
472
+ 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
473
+ }
474
+
475
+ .leaflet-popup-content {
476
+ margin: 0 !important;
477
+ line-height: 1.5 !important;
478
+ font-size: 14px !important;
479
+ color: #374151 !important;
480
+ padding: 16px;
481
+ min-width: 300px;
482
+ }
483
+
484
+ .leaflet-popup-tip {
485
+ background: white !important;
486
+ border: none !important;
487
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
488
+ }
489
+
490
+ .leaflet-popup-close-button {
491
+ color: #6b7280 !important;
492
+ font-size: 18px !important;
493
+ font-weight: bold !important;
494
+ padding: 4px 8px !important;
495
+ margin-right: 12px !important;
496
+ }
497
+
498
+ .leaflet-popup-close-button:hover {
499
+ color: #374151 !important;
500
+ background: transparent !important;
501
+ }
502
+
503
+ /* Ensure popup content displays properly */
504
+ .leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content {
505
+ width: auto !important;
506
+ white-space: normal !important;
507
+ }
508
+
509
+ @keyframes marquee {
510
+ 0% {
511
+ transform: translateX(100%);
512
+ }
513
+ 100% {
514
+ transform: translateX(-100%);
515
+ }
516
+ }
517
+
518
+ .animate-marquee {
519
+ animation: marquee 30s linear infinite;
520
+ }
521
+
522
+ @layer base {
523
+ :root {
524
+ --background: 0 0% 100%;
525
+ --foreground: 0 0% 3.9%;
526
+ --card: 0 0% 100%;
527
+ --card-foreground: 0 0% 3.9%;
528
+ --popover: 0 0% 100%;
529
+ --popover-foreground: 0 0% 3.9%;
530
+ --primary: 0 0% 9%;
531
+ --primary-foreground: 0 0% 98%;
532
+ --secondary: 0 0% 96.1%;
533
+ --secondary-foreground: 0 0% 9%;
534
+ --muted: 0 0% 96.1%;
535
+ --muted-foreground: 0 0% 45.1%;
536
+ --accent: 0 0% 96.1%;
537
+ --accent-foreground: 0 0% 9%;
538
+ --destructive: 0 84.2% 60.2%;
539
+ --destructive-foreground: 0 0% 98%;
540
+ --border: 0 0% 89.8%;
541
+ --input: 0 0% 89.8%;
542
+ --ring: 0 0% 3.9%;
543
+ --chart-1: 12 76% 61%;
544
+ --chart-2: 173 58% 39%;
545
+ --chart-3: 197 37% 24%;
546
+ --chart-4: 43 74% 66%;
547
+ --chart-5: 27 87% 67%;
548
+ --radius: 0.5rem;
549
+ }
550
+ .dark {
551
+ --background: 0 0% 3.9%;
552
+ --foreground: 0 0% 98%;
553
+ --card: 0 0% 3.9%;
554
+ --card-foreground: 0 0% 98%;
555
+ --popover: 0 0% 3.9%;
556
+ --popover-foreground: 0 0% 98%;
557
+ --primary: 0 0% 98%;
558
+ --primary-foreground: 0 0% 9%;
559
+ --secondary: 0 0% 14.9%;
560
+ --secondary-foreground: 0 0% 98%;
561
+ --muted: 0 0% 14.9%;
562
+ --muted-foreground: 0 0% 63.9%;
563
+ --accent: 0 0% 14.9%;
564
+ --accent-foreground: 0 0% 98%;
565
+ --destructive: 0 62.8% 30.6%;
566
+ --destructive-foreground: 0 0% 98%;
567
+ --border: 0 0% 14.9%;
568
+ --input: 0 0% 14.9%;
569
+ --ring: 0 0% 83.1%;
570
+ --chart-1: 220 70% 50%;
571
+ --chart-2: 160 60% 45%;
572
+ --chart-3: 30 80% 55%;
573
+ --chart-4: 280 65% 60%;
574
+ --chart-5: 340 75% 55%;
575
+ }
576
+
577
+ /* * {
578
+ @apply border-border;
579
+ } */
580
+
581
+ /* body {
582
+ @apply bg-background text-foreground;
583
+ } */
584
+ }
585
+
586
+ @keyframes fadeIn {
587
+ 0% {
588
+ opacity: 0;
589
+ }
590
+ 100% {
591
+ opacity: 1;
592
+ }
593
+ }
594
+ @keyframes slideIn {
595
+ 0% {
596
+ transform: translateY(10px);
597
+ opacity: 0;
598
+ }
599
+ 100% {
600
+ transform: translateY(0);
601
+ opacity: 1;
602
+ }
603
+ }
604
+
605
+ /* Utility classes to mirror v3 `animation` map */
606
+ @utility animate-fade-in {
607
+ animation: fadeIn 0.5s ease-in-out;
608
+ }
609
+
610
+ @utility animate-slide-in {
611
+ animation: slideIn 0.5s ease-out;
612
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../utils-GVl92sVg.cjs");exports.cn=t.cn;exports.formatDate=t.formatDate;exports.getRandomNumber=t.getRandomNumber;exports.truncateText=t.truncateText;
2
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ export declare function formatDate(date: Date): string;
4
+ export declare function truncateText(text: string, maxLength: number): string;
5
+ export declare const getRandomNumber: (min: number, max: number) => number;
@@ -0,0 +1,8 @@
1
+ import { c as e, f as r, g as m, t as o } from "../utils-BWXuiikn.js";
2
+ export {
3
+ e as cn,
4
+ r as formatDate,
5
+ m as getRandomNumber,
6
+ o as truncateText
7
+ };
8
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}