asterui 0.12.66 → 0.12.68
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
export interface RowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
children: React.ReactNode;
|
|
4
|
-
cols?: 24 |
|
|
4
|
+
cols?: 24 | 30;
|
|
5
5
|
gutter?: number | [number, number];
|
|
6
6
|
justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';
|
|
7
7
|
align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
|
package/dist/components/Grid.js
CHANGED
|
@@ -219,97 +219,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
219
219
|
27: "col-span-27",
|
|
220
220
|
28: "col-span-28",
|
|
221
221
|
29: "col-span-29",
|
|
222
|
-
30: "col-span-30"
|
|
223
|
-
31: "col-span-31",
|
|
224
|
-
32: "col-span-32",
|
|
225
|
-
33: "col-span-33",
|
|
226
|
-
34: "col-span-34",
|
|
227
|
-
35: "col-span-35",
|
|
228
|
-
36: "col-span-36",
|
|
229
|
-
37: "col-span-37",
|
|
230
|
-
38: "col-span-38",
|
|
231
|
-
39: "col-span-39",
|
|
232
|
-
40: "col-span-40",
|
|
233
|
-
41: "col-span-41",
|
|
234
|
-
42: "col-span-42",
|
|
235
|
-
43: "col-span-43",
|
|
236
|
-
44: "col-span-44",
|
|
237
|
-
45: "col-span-45",
|
|
238
|
-
46: "col-span-46",
|
|
239
|
-
47: "col-span-47",
|
|
240
|
-
48: "col-span-48",
|
|
241
|
-
49: "col-span-49",
|
|
242
|
-
50: "col-span-50",
|
|
243
|
-
51: "col-span-51",
|
|
244
|
-
52: "col-span-52",
|
|
245
|
-
53: "col-span-53",
|
|
246
|
-
54: "col-span-54",
|
|
247
|
-
55: "col-span-55",
|
|
248
|
-
56: "col-span-56",
|
|
249
|
-
57: "col-span-57",
|
|
250
|
-
58: "col-span-58",
|
|
251
|
-
59: "col-span-59",
|
|
252
|
-
60: "col-span-60",
|
|
253
|
-
61: "col-span-61",
|
|
254
|
-
62: "col-span-62",
|
|
255
|
-
63: "col-span-63",
|
|
256
|
-
64: "col-span-64",
|
|
257
|
-
65: "col-span-65",
|
|
258
|
-
66: "col-span-66",
|
|
259
|
-
67: "col-span-67",
|
|
260
|
-
68: "col-span-68",
|
|
261
|
-
69: "col-span-69",
|
|
262
|
-
70: "col-span-70",
|
|
263
|
-
71: "col-span-71",
|
|
264
|
-
72: "col-span-72",
|
|
265
|
-
73: "col-span-73",
|
|
266
|
-
74: "col-span-74",
|
|
267
|
-
75: "col-span-75",
|
|
268
|
-
76: "col-span-76",
|
|
269
|
-
77: "col-span-77",
|
|
270
|
-
78: "col-span-78",
|
|
271
|
-
79: "col-span-79",
|
|
272
|
-
80: "col-span-80",
|
|
273
|
-
81: "col-span-81",
|
|
274
|
-
82: "col-span-82",
|
|
275
|
-
83: "col-span-83",
|
|
276
|
-
84: "col-span-84",
|
|
277
|
-
85: "col-span-85",
|
|
278
|
-
86: "col-span-86",
|
|
279
|
-
87: "col-span-87",
|
|
280
|
-
88: "col-span-88",
|
|
281
|
-
89: "col-span-89",
|
|
282
|
-
90: "col-span-90",
|
|
283
|
-
91: "col-span-91",
|
|
284
|
-
92: "col-span-92",
|
|
285
|
-
93: "col-span-93",
|
|
286
|
-
94: "col-span-94",
|
|
287
|
-
95: "col-span-95",
|
|
288
|
-
96: "col-span-96",
|
|
289
|
-
97: "col-span-97",
|
|
290
|
-
98: "col-span-98",
|
|
291
|
-
99: "col-span-99",
|
|
292
|
-
100: "col-span-100",
|
|
293
|
-
101: "col-span-101",
|
|
294
|
-
102: "col-span-102",
|
|
295
|
-
103: "col-span-103",
|
|
296
|
-
104: "col-span-104",
|
|
297
|
-
105: "col-span-105",
|
|
298
|
-
106: "col-span-106",
|
|
299
|
-
107: "col-span-107",
|
|
300
|
-
108: "col-span-108",
|
|
301
|
-
109: "col-span-109",
|
|
302
|
-
110: "col-span-110",
|
|
303
|
-
111: "col-span-111",
|
|
304
|
-
112: "col-span-112",
|
|
305
|
-
113: "col-span-113",
|
|
306
|
-
114: "col-span-114",
|
|
307
|
-
115: "col-span-115",
|
|
308
|
-
116: "col-span-116",
|
|
309
|
-
117: "col-span-117",
|
|
310
|
-
118: "col-span-118",
|
|
311
|
-
119: "col-span-119",
|
|
312
|
-
120: "col-span-120"
|
|
222
|
+
30: "col-span-30"
|
|
313
223
|
}, T = {
|
|
314
224
|
1: "sm:col-span-1",
|
|
315
225
|
2: "sm:col-span-2",
|
|
@@ -340,97 +250,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
340
250
|
27: "sm:col-span-27",
|
|
341
251
|
28: "sm:col-span-28",
|
|
342
252
|
29: "sm:col-span-29",
|
|
343
|
-
30: "sm:col-span-30"
|
|
344
|
-
31: "sm:col-span-31",
|
|
345
|
-
32: "sm:col-span-32",
|
|
346
|
-
33: "sm:col-span-33",
|
|
347
|
-
34: "sm:col-span-34",
|
|
348
|
-
35: "sm:col-span-35",
|
|
349
|
-
36: "sm:col-span-36",
|
|
350
|
-
37: "sm:col-span-37",
|
|
351
|
-
38: "sm:col-span-38",
|
|
352
|
-
39: "sm:col-span-39",
|
|
353
|
-
40: "sm:col-span-40",
|
|
354
|
-
41: "sm:col-span-41",
|
|
355
|
-
42: "sm:col-span-42",
|
|
356
|
-
43: "sm:col-span-43",
|
|
357
|
-
44: "sm:col-span-44",
|
|
358
|
-
45: "sm:col-span-45",
|
|
359
|
-
46: "sm:col-span-46",
|
|
360
|
-
47: "sm:col-span-47",
|
|
361
|
-
48: "sm:col-span-48",
|
|
362
|
-
49: "sm:col-span-49",
|
|
363
|
-
50: "sm:col-span-50",
|
|
364
|
-
51: "sm:col-span-51",
|
|
365
|
-
52: "sm:col-span-52",
|
|
366
|
-
53: "sm:col-span-53",
|
|
367
|
-
54: "sm:col-span-54",
|
|
368
|
-
55: "sm:col-span-55",
|
|
369
|
-
56: "sm:col-span-56",
|
|
370
|
-
57: "sm:col-span-57",
|
|
371
|
-
58: "sm:col-span-58",
|
|
372
|
-
59: "sm:col-span-59",
|
|
373
|
-
60: "sm:col-span-60",
|
|
374
|
-
61: "sm:col-span-61",
|
|
375
|
-
62: "sm:col-span-62",
|
|
376
|
-
63: "sm:col-span-63",
|
|
377
|
-
64: "sm:col-span-64",
|
|
378
|
-
65: "sm:col-span-65",
|
|
379
|
-
66: "sm:col-span-66",
|
|
380
|
-
67: "sm:col-span-67",
|
|
381
|
-
68: "sm:col-span-68",
|
|
382
|
-
69: "sm:col-span-69",
|
|
383
|
-
70: "sm:col-span-70",
|
|
384
|
-
71: "sm:col-span-71",
|
|
385
|
-
72: "sm:col-span-72",
|
|
386
|
-
73: "sm:col-span-73",
|
|
387
|
-
74: "sm:col-span-74",
|
|
388
|
-
75: "sm:col-span-75",
|
|
389
|
-
76: "sm:col-span-76",
|
|
390
|
-
77: "sm:col-span-77",
|
|
391
|
-
78: "sm:col-span-78",
|
|
392
|
-
79: "sm:col-span-79",
|
|
393
|
-
80: "sm:col-span-80",
|
|
394
|
-
81: "sm:col-span-81",
|
|
395
|
-
82: "sm:col-span-82",
|
|
396
|
-
83: "sm:col-span-83",
|
|
397
|
-
84: "sm:col-span-84",
|
|
398
|
-
85: "sm:col-span-85",
|
|
399
|
-
86: "sm:col-span-86",
|
|
400
|
-
87: "sm:col-span-87",
|
|
401
|
-
88: "sm:col-span-88",
|
|
402
|
-
89: "sm:col-span-89",
|
|
403
|
-
90: "sm:col-span-90",
|
|
404
|
-
91: "sm:col-span-91",
|
|
405
|
-
92: "sm:col-span-92",
|
|
406
|
-
93: "sm:col-span-93",
|
|
407
|
-
94: "sm:col-span-94",
|
|
408
|
-
95: "sm:col-span-95",
|
|
409
|
-
96: "sm:col-span-96",
|
|
410
|
-
97: "sm:col-span-97",
|
|
411
|
-
98: "sm:col-span-98",
|
|
412
|
-
99: "sm:col-span-99",
|
|
413
|
-
100: "sm:col-span-100",
|
|
414
|
-
101: "sm:col-span-101",
|
|
415
|
-
102: "sm:col-span-102",
|
|
416
|
-
103: "sm:col-span-103",
|
|
417
|
-
104: "sm:col-span-104",
|
|
418
|
-
105: "sm:col-span-105",
|
|
419
|
-
106: "sm:col-span-106",
|
|
420
|
-
107: "sm:col-span-107",
|
|
421
|
-
108: "sm:col-span-108",
|
|
422
|
-
109: "sm:col-span-109",
|
|
423
|
-
110: "sm:col-span-110",
|
|
424
|
-
111: "sm:col-span-111",
|
|
425
|
-
112: "sm:col-span-112",
|
|
426
|
-
113: "sm:col-span-113",
|
|
427
|
-
114: "sm:col-span-114",
|
|
428
|
-
115: "sm:col-span-115",
|
|
429
|
-
116: "sm:col-span-116",
|
|
430
|
-
117: "sm:col-span-117",
|
|
431
|
-
118: "sm:col-span-118",
|
|
432
|
-
119: "sm:col-span-119",
|
|
433
|
-
120: "sm:col-span-120"
|
|
253
|
+
30: "sm:col-span-30"
|
|
434
254
|
}, I = {
|
|
435
255
|
1: "md:col-span-1",
|
|
436
256
|
2: "md:col-span-2",
|
|
@@ -461,97 +281,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
461
281
|
27: "md:col-span-27",
|
|
462
282
|
28: "md:col-span-28",
|
|
463
283
|
29: "md:col-span-29",
|
|
464
|
-
30: "md:col-span-30"
|
|
465
|
-
31: "md:col-span-31",
|
|
466
|
-
32: "md:col-span-32",
|
|
467
|
-
33: "md:col-span-33",
|
|
468
|
-
34: "md:col-span-34",
|
|
469
|
-
35: "md:col-span-35",
|
|
470
|
-
36: "md:col-span-36",
|
|
471
|
-
37: "md:col-span-37",
|
|
472
|
-
38: "md:col-span-38",
|
|
473
|
-
39: "md:col-span-39",
|
|
474
|
-
40: "md:col-span-40",
|
|
475
|
-
41: "md:col-span-41",
|
|
476
|
-
42: "md:col-span-42",
|
|
477
|
-
43: "md:col-span-43",
|
|
478
|
-
44: "md:col-span-44",
|
|
479
|
-
45: "md:col-span-45",
|
|
480
|
-
46: "md:col-span-46",
|
|
481
|
-
47: "md:col-span-47",
|
|
482
|
-
48: "md:col-span-48",
|
|
483
|
-
49: "md:col-span-49",
|
|
484
|
-
50: "md:col-span-50",
|
|
485
|
-
51: "md:col-span-51",
|
|
486
|
-
52: "md:col-span-52",
|
|
487
|
-
53: "md:col-span-53",
|
|
488
|
-
54: "md:col-span-54",
|
|
489
|
-
55: "md:col-span-55",
|
|
490
|
-
56: "md:col-span-56",
|
|
491
|
-
57: "md:col-span-57",
|
|
492
|
-
58: "md:col-span-58",
|
|
493
|
-
59: "md:col-span-59",
|
|
494
|
-
60: "md:col-span-60",
|
|
495
|
-
61: "md:col-span-61",
|
|
496
|
-
62: "md:col-span-62",
|
|
497
|
-
63: "md:col-span-63",
|
|
498
|
-
64: "md:col-span-64",
|
|
499
|
-
65: "md:col-span-65",
|
|
500
|
-
66: "md:col-span-66",
|
|
501
|
-
67: "md:col-span-67",
|
|
502
|
-
68: "md:col-span-68",
|
|
503
|
-
69: "md:col-span-69",
|
|
504
|
-
70: "md:col-span-70",
|
|
505
|
-
71: "md:col-span-71",
|
|
506
|
-
72: "md:col-span-72",
|
|
507
|
-
73: "md:col-span-73",
|
|
508
|
-
74: "md:col-span-74",
|
|
509
|
-
75: "md:col-span-75",
|
|
510
|
-
76: "md:col-span-76",
|
|
511
|
-
77: "md:col-span-77",
|
|
512
|
-
78: "md:col-span-78",
|
|
513
|
-
79: "md:col-span-79",
|
|
514
|
-
80: "md:col-span-80",
|
|
515
|
-
81: "md:col-span-81",
|
|
516
|
-
82: "md:col-span-82",
|
|
517
|
-
83: "md:col-span-83",
|
|
518
|
-
84: "md:col-span-84",
|
|
519
|
-
85: "md:col-span-85",
|
|
520
|
-
86: "md:col-span-86",
|
|
521
|
-
87: "md:col-span-87",
|
|
522
|
-
88: "md:col-span-88",
|
|
523
|
-
89: "md:col-span-89",
|
|
524
|
-
90: "md:col-span-90",
|
|
525
|
-
91: "md:col-span-91",
|
|
526
|
-
92: "md:col-span-92",
|
|
527
|
-
93: "md:col-span-93",
|
|
528
|
-
94: "md:col-span-94",
|
|
529
|
-
95: "md:col-span-95",
|
|
530
|
-
96: "md:col-span-96",
|
|
531
|
-
97: "md:col-span-97",
|
|
532
|
-
98: "md:col-span-98",
|
|
533
|
-
99: "md:col-span-99",
|
|
534
|
-
100: "md:col-span-100",
|
|
535
|
-
101: "md:col-span-101",
|
|
536
|
-
102: "md:col-span-102",
|
|
537
|
-
103: "md:col-span-103",
|
|
538
|
-
104: "md:col-span-104",
|
|
539
|
-
105: "md:col-span-105",
|
|
540
|
-
106: "md:col-span-106",
|
|
541
|
-
107: "md:col-span-107",
|
|
542
|
-
108: "md:col-span-108",
|
|
543
|
-
109: "md:col-span-109",
|
|
544
|
-
110: "md:col-span-110",
|
|
545
|
-
111: "md:col-span-111",
|
|
546
|
-
112: "md:col-span-112",
|
|
547
|
-
113: "md:col-span-113",
|
|
548
|
-
114: "md:col-span-114",
|
|
549
|
-
115: "md:col-span-115",
|
|
550
|
-
116: "md:col-span-116",
|
|
551
|
-
117: "md:col-span-117",
|
|
552
|
-
118: "md:col-span-118",
|
|
553
|
-
119: "md:col-span-119",
|
|
554
|
-
120: "md:col-span-120"
|
|
284
|
+
30: "md:col-span-30"
|
|
555
285
|
}, B = {
|
|
556
286
|
1: "lg:col-span-1",
|
|
557
287
|
2: "lg:col-span-2",
|
|
@@ -582,97 +312,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
582
312
|
27: "lg:col-span-27",
|
|
583
313
|
28: "lg:col-span-28",
|
|
584
314
|
29: "lg:col-span-29",
|
|
585
|
-
30: "lg:col-span-30"
|
|
586
|
-
31: "lg:col-span-31",
|
|
587
|
-
32: "lg:col-span-32",
|
|
588
|
-
33: "lg:col-span-33",
|
|
589
|
-
34: "lg:col-span-34",
|
|
590
|
-
35: "lg:col-span-35",
|
|
591
|
-
36: "lg:col-span-36",
|
|
592
|
-
37: "lg:col-span-37",
|
|
593
|
-
38: "lg:col-span-38",
|
|
594
|
-
39: "lg:col-span-39",
|
|
595
|
-
40: "lg:col-span-40",
|
|
596
|
-
41: "lg:col-span-41",
|
|
597
|
-
42: "lg:col-span-42",
|
|
598
|
-
43: "lg:col-span-43",
|
|
599
|
-
44: "lg:col-span-44",
|
|
600
|
-
45: "lg:col-span-45",
|
|
601
|
-
46: "lg:col-span-46",
|
|
602
|
-
47: "lg:col-span-47",
|
|
603
|
-
48: "lg:col-span-48",
|
|
604
|
-
49: "lg:col-span-49",
|
|
605
|
-
50: "lg:col-span-50",
|
|
606
|
-
51: "lg:col-span-51",
|
|
607
|
-
52: "lg:col-span-52",
|
|
608
|
-
53: "lg:col-span-53",
|
|
609
|
-
54: "lg:col-span-54",
|
|
610
|
-
55: "lg:col-span-55",
|
|
611
|
-
56: "lg:col-span-56",
|
|
612
|
-
57: "lg:col-span-57",
|
|
613
|
-
58: "lg:col-span-58",
|
|
614
|
-
59: "lg:col-span-59",
|
|
615
|
-
60: "lg:col-span-60",
|
|
616
|
-
61: "lg:col-span-61",
|
|
617
|
-
62: "lg:col-span-62",
|
|
618
|
-
63: "lg:col-span-63",
|
|
619
|
-
64: "lg:col-span-64",
|
|
620
|
-
65: "lg:col-span-65",
|
|
621
|
-
66: "lg:col-span-66",
|
|
622
|
-
67: "lg:col-span-67",
|
|
623
|
-
68: "lg:col-span-68",
|
|
624
|
-
69: "lg:col-span-69",
|
|
625
|
-
70: "lg:col-span-70",
|
|
626
|
-
71: "lg:col-span-71",
|
|
627
|
-
72: "lg:col-span-72",
|
|
628
|
-
73: "lg:col-span-73",
|
|
629
|
-
74: "lg:col-span-74",
|
|
630
|
-
75: "lg:col-span-75",
|
|
631
|
-
76: "lg:col-span-76",
|
|
632
|
-
77: "lg:col-span-77",
|
|
633
|
-
78: "lg:col-span-78",
|
|
634
|
-
79: "lg:col-span-79",
|
|
635
|
-
80: "lg:col-span-80",
|
|
636
|
-
81: "lg:col-span-81",
|
|
637
|
-
82: "lg:col-span-82",
|
|
638
|
-
83: "lg:col-span-83",
|
|
639
|
-
84: "lg:col-span-84",
|
|
640
|
-
85: "lg:col-span-85",
|
|
641
|
-
86: "lg:col-span-86",
|
|
642
|
-
87: "lg:col-span-87",
|
|
643
|
-
88: "lg:col-span-88",
|
|
644
|
-
89: "lg:col-span-89",
|
|
645
|
-
90: "lg:col-span-90",
|
|
646
|
-
91: "lg:col-span-91",
|
|
647
|
-
92: "lg:col-span-92",
|
|
648
|
-
93: "lg:col-span-93",
|
|
649
|
-
94: "lg:col-span-94",
|
|
650
|
-
95: "lg:col-span-95",
|
|
651
|
-
96: "lg:col-span-96",
|
|
652
|
-
97: "lg:col-span-97",
|
|
653
|
-
98: "lg:col-span-98",
|
|
654
|
-
99: "lg:col-span-99",
|
|
655
|
-
100: "lg:col-span-100",
|
|
656
|
-
101: "lg:col-span-101",
|
|
657
|
-
102: "lg:col-span-102",
|
|
658
|
-
103: "lg:col-span-103",
|
|
659
|
-
104: "lg:col-span-104",
|
|
660
|
-
105: "lg:col-span-105",
|
|
661
|
-
106: "lg:col-span-106",
|
|
662
|
-
107: "lg:col-span-107",
|
|
663
|
-
108: "lg:col-span-108",
|
|
664
|
-
109: "lg:col-span-109",
|
|
665
|
-
110: "lg:col-span-110",
|
|
666
|
-
111: "lg:col-span-111",
|
|
667
|
-
112: "lg:col-span-112",
|
|
668
|
-
113: "lg:col-span-113",
|
|
669
|
-
114: "lg:col-span-114",
|
|
670
|
-
115: "lg:col-span-115",
|
|
671
|
-
116: "lg:col-span-116",
|
|
672
|
-
117: "lg:col-span-117",
|
|
673
|
-
118: "lg:col-span-118",
|
|
674
|
-
119: "lg:col-span-119",
|
|
675
|
-
120: "lg:col-span-120"
|
|
315
|
+
30: "lg:col-span-30"
|
|
676
316
|
}, Y = {
|
|
677
317
|
1: "xl:col-span-1",
|
|
678
318
|
2: "xl:col-span-2",
|
|
@@ -703,97 +343,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
703
343
|
27: "xl:col-span-27",
|
|
704
344
|
28: "xl:col-span-28",
|
|
705
345
|
29: "xl:col-span-29",
|
|
706
|
-
30: "xl:col-span-30"
|
|
707
|
-
31: "xl:col-span-31",
|
|
708
|
-
32: "xl:col-span-32",
|
|
709
|
-
33: "xl:col-span-33",
|
|
710
|
-
34: "xl:col-span-34",
|
|
711
|
-
35: "xl:col-span-35",
|
|
712
|
-
36: "xl:col-span-36",
|
|
713
|
-
37: "xl:col-span-37",
|
|
714
|
-
38: "xl:col-span-38",
|
|
715
|
-
39: "xl:col-span-39",
|
|
716
|
-
40: "xl:col-span-40",
|
|
717
|
-
41: "xl:col-span-41",
|
|
718
|
-
42: "xl:col-span-42",
|
|
719
|
-
43: "xl:col-span-43",
|
|
720
|
-
44: "xl:col-span-44",
|
|
721
|
-
45: "xl:col-span-45",
|
|
722
|
-
46: "xl:col-span-46",
|
|
723
|
-
47: "xl:col-span-47",
|
|
724
|
-
48: "xl:col-span-48",
|
|
725
|
-
49: "xl:col-span-49",
|
|
726
|
-
50: "xl:col-span-50",
|
|
727
|
-
51: "xl:col-span-51",
|
|
728
|
-
52: "xl:col-span-52",
|
|
729
|
-
53: "xl:col-span-53",
|
|
730
|
-
54: "xl:col-span-54",
|
|
731
|
-
55: "xl:col-span-55",
|
|
732
|
-
56: "xl:col-span-56",
|
|
733
|
-
57: "xl:col-span-57",
|
|
734
|
-
58: "xl:col-span-58",
|
|
735
|
-
59: "xl:col-span-59",
|
|
736
|
-
60: "xl:col-span-60",
|
|
737
|
-
61: "xl:col-span-61",
|
|
738
|
-
62: "xl:col-span-62",
|
|
739
|
-
63: "xl:col-span-63",
|
|
740
|
-
64: "xl:col-span-64",
|
|
741
|
-
65: "xl:col-span-65",
|
|
742
|
-
66: "xl:col-span-66",
|
|
743
|
-
67: "xl:col-span-67",
|
|
744
|
-
68: "xl:col-span-68",
|
|
745
|
-
69: "xl:col-span-69",
|
|
746
|
-
70: "xl:col-span-70",
|
|
747
|
-
71: "xl:col-span-71",
|
|
748
|
-
72: "xl:col-span-72",
|
|
749
|
-
73: "xl:col-span-73",
|
|
750
|
-
74: "xl:col-span-74",
|
|
751
|
-
75: "xl:col-span-75",
|
|
752
|
-
76: "xl:col-span-76",
|
|
753
|
-
77: "xl:col-span-77",
|
|
754
|
-
78: "xl:col-span-78",
|
|
755
|
-
79: "xl:col-span-79",
|
|
756
|
-
80: "xl:col-span-80",
|
|
757
|
-
81: "xl:col-span-81",
|
|
758
|
-
82: "xl:col-span-82",
|
|
759
|
-
83: "xl:col-span-83",
|
|
760
|
-
84: "xl:col-span-84",
|
|
761
|
-
85: "xl:col-span-85",
|
|
762
|
-
86: "xl:col-span-86",
|
|
763
|
-
87: "xl:col-span-87",
|
|
764
|
-
88: "xl:col-span-88",
|
|
765
|
-
89: "xl:col-span-89",
|
|
766
|
-
90: "xl:col-span-90",
|
|
767
|
-
91: "xl:col-span-91",
|
|
768
|
-
92: "xl:col-span-92",
|
|
769
|
-
93: "xl:col-span-93",
|
|
770
|
-
94: "xl:col-span-94",
|
|
771
|
-
95: "xl:col-span-95",
|
|
772
|
-
96: "xl:col-span-96",
|
|
773
|
-
97: "xl:col-span-97",
|
|
774
|
-
98: "xl:col-span-98",
|
|
775
|
-
99: "xl:col-span-99",
|
|
776
|
-
100: "xl:col-span-100",
|
|
777
|
-
101: "xl:col-span-101",
|
|
778
|
-
102: "xl:col-span-102",
|
|
779
|
-
103: "xl:col-span-103",
|
|
780
|
-
104: "xl:col-span-104",
|
|
781
|
-
105: "xl:col-span-105",
|
|
782
|
-
106: "xl:col-span-106",
|
|
783
|
-
107: "xl:col-span-107",
|
|
784
|
-
108: "xl:col-span-108",
|
|
785
|
-
109: "xl:col-span-109",
|
|
786
|
-
110: "xl:col-span-110",
|
|
787
|
-
111: "xl:col-span-111",
|
|
788
|
-
112: "xl:col-span-112",
|
|
789
|
-
113: "xl:col-span-113",
|
|
790
|
-
114: "xl:col-span-114",
|
|
791
|
-
115: "xl:col-span-115",
|
|
792
|
-
116: "xl:col-span-116",
|
|
793
|
-
117: "xl:col-span-117",
|
|
794
|
-
118: "xl:col-span-118",
|
|
795
|
-
119: "xl:col-span-119",
|
|
796
|
-
120: "xl:col-span-120"
|
|
346
|
+
30: "xl:col-span-30"
|
|
797
347
|
}, k = {
|
|
798
348
|
1: "2xl:col-span-1",
|
|
799
349
|
2: "2xl:col-span-2",
|
|
@@ -824,97 +374,7 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
824
374
|
27: "2xl:col-span-27",
|
|
825
375
|
28: "2xl:col-span-28",
|
|
826
376
|
29: "2xl:col-span-29",
|
|
827
|
-
30: "2xl:col-span-30"
|
|
828
|
-
31: "2xl:col-span-31",
|
|
829
|
-
32: "2xl:col-span-32",
|
|
830
|
-
33: "2xl:col-span-33",
|
|
831
|
-
34: "2xl:col-span-34",
|
|
832
|
-
35: "2xl:col-span-35",
|
|
833
|
-
36: "2xl:col-span-36",
|
|
834
|
-
37: "2xl:col-span-37",
|
|
835
|
-
38: "2xl:col-span-38",
|
|
836
|
-
39: "2xl:col-span-39",
|
|
837
|
-
40: "2xl:col-span-40",
|
|
838
|
-
41: "2xl:col-span-41",
|
|
839
|
-
42: "2xl:col-span-42",
|
|
840
|
-
43: "2xl:col-span-43",
|
|
841
|
-
44: "2xl:col-span-44",
|
|
842
|
-
45: "2xl:col-span-45",
|
|
843
|
-
46: "2xl:col-span-46",
|
|
844
|
-
47: "2xl:col-span-47",
|
|
845
|
-
48: "2xl:col-span-48",
|
|
846
|
-
49: "2xl:col-span-49",
|
|
847
|
-
50: "2xl:col-span-50",
|
|
848
|
-
51: "2xl:col-span-51",
|
|
849
|
-
52: "2xl:col-span-52",
|
|
850
|
-
53: "2xl:col-span-53",
|
|
851
|
-
54: "2xl:col-span-54",
|
|
852
|
-
55: "2xl:col-span-55",
|
|
853
|
-
56: "2xl:col-span-56",
|
|
854
|
-
57: "2xl:col-span-57",
|
|
855
|
-
58: "2xl:col-span-58",
|
|
856
|
-
59: "2xl:col-span-59",
|
|
857
|
-
60: "2xl:col-span-60",
|
|
858
|
-
61: "2xl:col-span-61",
|
|
859
|
-
62: "2xl:col-span-62",
|
|
860
|
-
63: "2xl:col-span-63",
|
|
861
|
-
64: "2xl:col-span-64",
|
|
862
|
-
65: "2xl:col-span-65",
|
|
863
|
-
66: "2xl:col-span-66",
|
|
864
|
-
67: "2xl:col-span-67",
|
|
865
|
-
68: "2xl:col-span-68",
|
|
866
|
-
69: "2xl:col-span-69",
|
|
867
|
-
70: "2xl:col-span-70",
|
|
868
|
-
71: "2xl:col-span-71",
|
|
869
|
-
72: "2xl:col-span-72",
|
|
870
|
-
73: "2xl:col-span-73",
|
|
871
|
-
74: "2xl:col-span-74",
|
|
872
|
-
75: "2xl:col-span-75",
|
|
873
|
-
76: "2xl:col-span-76",
|
|
874
|
-
77: "2xl:col-span-77",
|
|
875
|
-
78: "2xl:col-span-78",
|
|
876
|
-
79: "2xl:col-span-79",
|
|
877
|
-
80: "2xl:col-span-80",
|
|
878
|
-
81: "2xl:col-span-81",
|
|
879
|
-
82: "2xl:col-span-82",
|
|
880
|
-
83: "2xl:col-span-83",
|
|
881
|
-
84: "2xl:col-span-84",
|
|
882
|
-
85: "2xl:col-span-85",
|
|
883
|
-
86: "2xl:col-span-86",
|
|
884
|
-
87: "2xl:col-span-87",
|
|
885
|
-
88: "2xl:col-span-88",
|
|
886
|
-
89: "2xl:col-span-89",
|
|
887
|
-
90: "2xl:col-span-90",
|
|
888
|
-
91: "2xl:col-span-91",
|
|
889
|
-
92: "2xl:col-span-92",
|
|
890
|
-
93: "2xl:col-span-93",
|
|
891
|
-
94: "2xl:col-span-94",
|
|
892
|
-
95: "2xl:col-span-95",
|
|
893
|
-
96: "2xl:col-span-96",
|
|
894
|
-
97: "2xl:col-span-97",
|
|
895
|
-
98: "2xl:col-span-98",
|
|
896
|
-
99: "2xl:col-span-99",
|
|
897
|
-
100: "2xl:col-span-100",
|
|
898
|
-
101: "2xl:col-span-101",
|
|
899
|
-
102: "2xl:col-span-102",
|
|
900
|
-
103: "2xl:col-span-103",
|
|
901
|
-
104: "2xl:col-span-104",
|
|
902
|
-
105: "2xl:col-span-105",
|
|
903
|
-
106: "2xl:col-span-106",
|
|
904
|
-
107: "2xl:col-span-107",
|
|
905
|
-
108: "2xl:col-span-108",
|
|
906
|
-
109: "2xl:col-span-109",
|
|
907
|
-
110: "2xl:col-span-110",
|
|
908
|
-
111: "2xl:col-span-111",
|
|
909
|
-
112: "2xl:col-span-112",
|
|
910
|
-
113: "2xl:col-span-113",
|
|
911
|
-
114: "2xl:col-span-114",
|
|
912
|
-
115: "2xl:col-span-115",
|
|
913
|
-
116: "2xl:col-span-116",
|
|
914
|
-
117: "2xl:col-span-117",
|
|
915
|
-
118: "2xl:col-span-118",
|
|
916
|
-
119: "2xl:col-span-119",
|
|
917
|
-
120: "2xl:col-span-120"
|
|
377
|
+
30: "2xl:col-span-30"
|
|
918
378
|
}, q = {
|
|
919
379
|
1: "col-start-1",
|
|
920
380
|
2: "col-start-2",
|
|
@@ -946,107 +406,17 @@ const R = P.createContext({ cols: 24, gutter: [0, 0] }), X = {
|
|
|
946
406
|
28: "col-start-28",
|
|
947
407
|
29: "col-start-29",
|
|
948
408
|
30: "col-start-30",
|
|
949
|
-
31: "col-start-31"
|
|
950
|
-
32: "col-start-32",
|
|
951
|
-
33: "col-start-33",
|
|
952
|
-
34: "col-start-34",
|
|
953
|
-
35: "col-start-35",
|
|
954
|
-
36: "col-start-36",
|
|
955
|
-
37: "col-start-37",
|
|
956
|
-
38: "col-start-38",
|
|
957
|
-
39: "col-start-39",
|
|
958
|
-
40: "col-start-40",
|
|
959
|
-
41: "col-start-41",
|
|
960
|
-
42: "col-start-42",
|
|
961
|
-
43: "col-start-43",
|
|
962
|
-
44: "col-start-44",
|
|
963
|
-
45: "col-start-45",
|
|
964
|
-
46: "col-start-46",
|
|
965
|
-
47: "col-start-47",
|
|
966
|
-
48: "col-start-48",
|
|
967
|
-
49: "col-start-49",
|
|
968
|
-
50: "col-start-50",
|
|
969
|
-
51: "col-start-51",
|
|
970
|
-
52: "col-start-52",
|
|
971
|
-
53: "col-start-53",
|
|
972
|
-
54: "col-start-54",
|
|
973
|
-
55: "col-start-55",
|
|
974
|
-
56: "col-start-56",
|
|
975
|
-
57: "col-start-57",
|
|
976
|
-
58: "col-start-58",
|
|
977
|
-
59: "col-start-59",
|
|
978
|
-
60: "col-start-60",
|
|
979
|
-
61: "col-start-61",
|
|
980
|
-
62: "col-start-62",
|
|
981
|
-
63: "col-start-63",
|
|
982
|
-
64: "col-start-64",
|
|
983
|
-
65: "col-start-65",
|
|
984
|
-
66: "col-start-66",
|
|
985
|
-
67: "col-start-67",
|
|
986
|
-
68: "col-start-68",
|
|
987
|
-
69: "col-start-69",
|
|
988
|
-
70: "col-start-70",
|
|
989
|
-
71: "col-start-71",
|
|
990
|
-
72: "col-start-72",
|
|
991
|
-
73: "col-start-73",
|
|
992
|
-
74: "col-start-74",
|
|
993
|
-
75: "col-start-75",
|
|
994
|
-
76: "col-start-76",
|
|
995
|
-
77: "col-start-77",
|
|
996
|
-
78: "col-start-78",
|
|
997
|
-
79: "col-start-79",
|
|
998
|
-
80: "col-start-80",
|
|
999
|
-
81: "col-start-81",
|
|
1000
|
-
82: "col-start-82",
|
|
1001
|
-
83: "col-start-83",
|
|
1002
|
-
84: "col-start-84",
|
|
1003
|
-
85: "col-start-85",
|
|
1004
|
-
86: "col-start-86",
|
|
1005
|
-
87: "col-start-87",
|
|
1006
|
-
88: "col-start-88",
|
|
1007
|
-
89: "col-start-89",
|
|
1008
|
-
90: "col-start-90",
|
|
1009
|
-
91: "col-start-91",
|
|
1010
|
-
92: "col-start-92",
|
|
1011
|
-
93: "col-start-93",
|
|
1012
|
-
94: "col-start-94",
|
|
1013
|
-
95: "col-start-95",
|
|
1014
|
-
96: "col-start-96",
|
|
1015
|
-
97: "col-start-97",
|
|
1016
|
-
98: "col-start-98",
|
|
1017
|
-
99: "col-start-99",
|
|
1018
|
-
100: "col-start-100",
|
|
1019
|
-
101: "col-start-101",
|
|
1020
|
-
102: "col-start-102",
|
|
1021
|
-
103: "col-start-103",
|
|
1022
|
-
104: "col-start-104",
|
|
1023
|
-
105: "col-start-105",
|
|
1024
|
-
106: "col-start-106",
|
|
1025
|
-
107: "col-start-107",
|
|
1026
|
-
108: "col-start-108",
|
|
1027
|
-
109: "col-start-109",
|
|
1028
|
-
110: "col-start-110",
|
|
1029
|
-
111: "col-start-111",
|
|
1030
|
-
112: "col-start-112",
|
|
1031
|
-
113: "col-start-113",
|
|
1032
|
-
114: "col-start-114",
|
|
1033
|
-
115: "col-start-115",
|
|
1034
|
-
116: "col-start-116",
|
|
1035
|
-
117: "col-start-117",
|
|
1036
|
-
118: "col-start-118",
|
|
1037
|
-
119: "col-start-119",
|
|
1038
|
-
120: "col-start-120",
|
|
1039
|
-
121: "col-start-121"
|
|
409
|
+
31: "col-start-31"
|
|
1040
410
|
};
|
|
1041
|
-
function z({ children:
|
|
1042
|
-
const [o, a] = Array.isArray(c) ? c : [c, 0],
|
|
411
|
+
function z({ children: d, cols: r = 24, gutter: c = 16, justify: n, align: x, className: p = "", style: t, ...m }) {
|
|
412
|
+
const [o, a] = Array.isArray(c) ? c : [c, 0], e = {
|
|
1043
413
|
start: "justify-items-start",
|
|
1044
414
|
end: "justify-items-end",
|
|
1045
415
|
center: "justify-items-center",
|
|
1046
416
|
between: "justify-items-between",
|
|
1047
417
|
around: "justify-items-around",
|
|
1048
418
|
evenly: "justify-items-evenly"
|
|
1049
|
-
},
|
|
419
|
+
}, S = {
|
|
1050
420
|
start: "items-start",
|
|
1051
421
|
end: "items-end",
|
|
1052
422
|
center: "items-center",
|
|
@@ -1056,27 +426,27 @@ function z({ children: g, cols: x = 24, gutter: c = 16, justify: n, align: r, cl
|
|
|
1056
426
|
"grid",
|
|
1057
427
|
{
|
|
1058
428
|
24: "grid-cols-[repeat(24,minmax(0,1fr))]",
|
|
1059
|
-
|
|
1060
|
-
}[
|
|
429
|
+
30: "grid-cols-[repeat(30,minmax(0,1fr))]"
|
|
430
|
+
}[r],
|
|
1061
431
|
"w-full",
|
|
1062
|
-
n &&
|
|
1063
|
-
|
|
432
|
+
n && e[n],
|
|
433
|
+
x && S[x],
|
|
1064
434
|
p
|
|
1065
|
-
].filter(Boolean).join(" "),
|
|
435
|
+
].filter(Boolean).join(" "), g = {
|
|
1066
436
|
...o && { marginLeft: `-${o / 2}px`, marginRight: `-${o / 2}px` },
|
|
1067
437
|
...a && { rowGap: `${a}px` },
|
|
1068
438
|
...t
|
|
1069
439
|
};
|
|
1070
|
-
return /* @__PURE__ */ _(R.Provider, { value: { cols:
|
|
440
|
+
return /* @__PURE__ */ _(R.Provider, { value: { cols: r, gutter: [o, a] }, children: /* @__PURE__ */ _("div", { className: l, style: g, ...m, children: d }) });
|
|
1071
441
|
}
|
|
1072
|
-
function F({ children:
|
|
1073
|
-
const { cols: l, gutter:
|
|
1074
|
-
C && A[C] && s.push(A[C]), p && u[p] && s.push(u[p]), t && f[t] && s.push(f[t]), m && E[m] && s.push(E[m]), o && O[o] && s.push(O[o]), a && h[a] && s.push(h[a]), c && y[c + 1] && s.push(y[c + 1]), n && N[n] && s.push(N[n]),
|
|
442
|
+
function F({ children: d, span: r, offset: c, order: n, xs: x, sm: p, md: t, lg: m, xl: o, xxl: a, className: e = "", style: S, ...L }) {
|
|
443
|
+
const { cols: l, gutter: g } = P.useContext(R), [i] = g, s = [], A = l === 30 ? M : X, u = l === 30 ? T : G, f = l === 30 ? I : v, E = l === 30 ? B : b, O = l === 30 ? Y : w, h = l === 30 ? k : D, y = l === 30 ? q : $, C = r ?? x ?? l;
|
|
444
|
+
C && A[C] && s.push(A[C]), p && u[p] && s.push(u[p]), t && f[t] && s.push(f[t]), m && E[m] && s.push(E[m]), o && O[o] && s.push(O[o]), a && h[a] && s.push(h[a]), c && y[c + 1] && s.push(y[c + 1]), n && N[n] && s.push(N[n]), e && s.push(e);
|
|
1075
445
|
const j = {
|
|
1076
446
|
...i && { paddingLeft: `${i / 2}px`, paddingRight: `${i / 2}px` },
|
|
1077
|
-
...
|
|
447
|
+
...S
|
|
1078
448
|
};
|
|
1079
|
-
return /* @__PURE__ */ _("div", { className: s.join(" "), style: j, ...L, children:
|
|
449
|
+
return /* @__PURE__ */ _("div", { className: s.join(" "), style: j, ...L, children: d });
|
|
1080
450
|
}
|
|
1081
451
|
const K = {
|
|
1082
452
|
Row: z,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sources":["../../src/components/Grid.tsx"],"sourcesContent":["import React from 'react'\n\nconst GridContext = React.createContext<{ cols: 24 | 120; gutter: [number, number] }>({ cols: 24, gutter: [0, 0] })\n\nexport interface RowProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n cols?: 24 | 120\n gutter?: number | [number, number]\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline'\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nexport interface ColProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n span?: number\n offset?: number\n order?: number\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n xxl?: number\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\n// Explicit class mappings - Tailwind v4 supports any grid value natively\nconst COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4',\n 5: 'col-span-5', 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8',\n 9: 'col-span-9', 10: 'col-span-10', 11: 'col-span-11', 12: 'col-span-12',\n 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15', 16: 'col-span-16',\n 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24',\n}\n\nconst SM_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4',\n 5: 'sm:col-span-5', 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8',\n 9: 'sm:col-span-9', 10: 'sm:col-span-10', 11: 'sm:col-span-11', 12: 'sm:col-span-12',\n 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15', 16: 'sm:col-span-16',\n 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24',\n}\n\nconst MD_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4',\n 5: 'md:col-span-5', 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8',\n 9: 'md:col-span-9', 10: 'md:col-span-10', 11: 'md:col-span-11', 12: 'md:col-span-12',\n 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15', 16: 'md:col-span-16',\n 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24',\n}\n\nconst LG_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4',\n 5: 'lg:col-span-5', 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8',\n 9: 'lg:col-span-9', 10: 'lg:col-span-10', 11: 'lg:col-span-11', 12: 'lg:col-span-12',\n 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15', 16: 'lg:col-span-16',\n 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24',\n}\n\nconst XL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4',\n 5: 'xl:col-span-5', 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8',\n 9: 'xl:col-span-9', 10: 'xl:col-span-10', 11: 'xl:col-span-11', 12: 'xl:col-span-12',\n 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15', 16: 'xl:col-span-16',\n 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24',\n}\n\nconst XXL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4',\n 5: '2xl:col-span-5', 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8',\n 9: '2xl:col-span-9', 10: '2xl:col-span-10', 11: '2xl:col-span-11', 12: '2xl:col-span-12',\n 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15', 16: '2xl:col-span-16',\n 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24',\n}\n\nconst COL_START_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4',\n 5: 'col-start-5', 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8',\n 9: 'col-start-9', 10: 'col-start-10', 11: 'col-start-11', 12: 'col-start-12',\n 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15', 16: 'col-start-16',\n 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24',\n 25: 'col-start-25',\n}\n\nconst ORDER_CLASSES: Record<number, string> = {\n 1: 'order-1', 2: 'order-2', 3: 'order-3', 4: 'order-4',\n 5: 'order-5', 6: 'order-6', 7: 'order-7', 8: 'order-8',\n 9: 'order-9', 10: 'order-10', 11: 'order-11', 12: 'order-12',\n}\n\n// 120-column grid mappings - using arbitrary value syntax for values > 12\nconst COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4', 5: 'col-span-5',\n 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8', 9: 'col-span-9', 10: 'col-span-10',\n 11: 'col-span-11', 12: 'col-span-12', 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15',\n 16: 'col-span-16', 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24', 25: 'col-span-25',\n 26: 'col-span-26', 27: 'col-span-27', 28: 'col-span-28', 29: 'col-span-29', 30: 'col-span-30',\n 31: 'col-span-31', 32: 'col-span-32', 33: 'col-span-33', 34: 'col-span-34', 35: 'col-span-35',\n 36: 'col-span-36', 37: 'col-span-37', 38: 'col-span-38', 39: 'col-span-39', 40: 'col-span-40',\n 41: 'col-span-41', 42: 'col-span-42', 43: 'col-span-43', 44: 'col-span-44', 45: 'col-span-45',\n 46: 'col-span-46', 47: 'col-span-47', 48: 'col-span-48', 49: 'col-span-49', 50: 'col-span-50',\n 51: 'col-span-51', 52: 'col-span-52', 53: 'col-span-53', 54: 'col-span-54', 55: 'col-span-55',\n 56: 'col-span-56', 57: 'col-span-57', 58: 'col-span-58', 59: 'col-span-59', 60: 'col-span-60',\n 61: 'col-span-61', 62: 'col-span-62', 63: 'col-span-63', 64: 'col-span-64', 65: 'col-span-65',\n 66: 'col-span-66', 67: 'col-span-67', 68: 'col-span-68', 69: 'col-span-69', 70: 'col-span-70',\n 71: 'col-span-71', 72: 'col-span-72', 73: 'col-span-73', 74: 'col-span-74', 75: 'col-span-75',\n 76: 'col-span-76', 77: 'col-span-77', 78: 'col-span-78', 79: 'col-span-79', 80: 'col-span-80',\n 81: 'col-span-81', 82: 'col-span-82', 83: 'col-span-83', 84: 'col-span-84', 85: 'col-span-85',\n 86: 'col-span-86', 87: 'col-span-87', 88: 'col-span-88', 89: 'col-span-89', 90: 'col-span-90',\n 91: 'col-span-91', 92: 'col-span-92', 93: 'col-span-93', 94: 'col-span-94', 95: 'col-span-95',\n 96: 'col-span-96', 97: 'col-span-97', 98: 'col-span-98', 99: 'col-span-99', 100: 'col-span-100',\n 101: 'col-span-101', 102: 'col-span-102', 103: 'col-span-103', 104: 'col-span-104', 105: 'col-span-105',\n 106: 'col-span-106', 107: 'col-span-107', 108: 'col-span-108', 109: 'col-span-109', 110: 'col-span-110',\n 111: 'col-span-111', 112: 'col-span-112', 113: 'col-span-113', 114: 'col-span-114', 115: 'col-span-115',\n 116: 'col-span-116', 117: 'col-span-117', 118: 'col-span-118', 119: 'col-span-119', 120: 'col-span-120',\n}\n\nconst SM_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4', 5: 'sm:col-span-5',\n 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8', 9: 'sm:col-span-9', 10: 'sm:col-span-10',\n 11: 'sm:col-span-11', 12: 'sm:col-span-12', 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15',\n 16: 'sm:col-span-16', 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24', 25: 'sm:col-span-25',\n 26: 'sm:col-span-26', 27: 'sm:col-span-27', 28: 'sm:col-span-28', 29: 'sm:col-span-29', 30: 'sm:col-span-30',\n 31: 'sm:col-span-31', 32: 'sm:col-span-32', 33: 'sm:col-span-33', 34: 'sm:col-span-34', 35: 'sm:col-span-35',\n 36: 'sm:col-span-36', 37: 'sm:col-span-37', 38: 'sm:col-span-38', 39: 'sm:col-span-39', 40: 'sm:col-span-40',\n 41: 'sm:col-span-41', 42: 'sm:col-span-42', 43: 'sm:col-span-43', 44: 'sm:col-span-44', 45: 'sm:col-span-45',\n 46: 'sm:col-span-46', 47: 'sm:col-span-47', 48: 'sm:col-span-48', 49: 'sm:col-span-49', 50: 'sm:col-span-50',\n 51: 'sm:col-span-51', 52: 'sm:col-span-52', 53: 'sm:col-span-53', 54: 'sm:col-span-54', 55: 'sm:col-span-55',\n 56: 'sm:col-span-56', 57: 'sm:col-span-57', 58: 'sm:col-span-58', 59: 'sm:col-span-59', 60: 'sm:col-span-60',\n 61: 'sm:col-span-61', 62: 'sm:col-span-62', 63: 'sm:col-span-63', 64: 'sm:col-span-64', 65: 'sm:col-span-65',\n 66: 'sm:col-span-66', 67: 'sm:col-span-67', 68: 'sm:col-span-68', 69: 'sm:col-span-69', 70: 'sm:col-span-70',\n 71: 'sm:col-span-71', 72: 'sm:col-span-72', 73: 'sm:col-span-73', 74: 'sm:col-span-74', 75: 'sm:col-span-75',\n 76: 'sm:col-span-76', 77: 'sm:col-span-77', 78: 'sm:col-span-78', 79: 'sm:col-span-79', 80: 'sm:col-span-80',\n 81: 'sm:col-span-81', 82: 'sm:col-span-82', 83: 'sm:col-span-83', 84: 'sm:col-span-84', 85: 'sm:col-span-85',\n 86: 'sm:col-span-86', 87: 'sm:col-span-87', 88: 'sm:col-span-88', 89: 'sm:col-span-89', 90: 'sm:col-span-90',\n 91: 'sm:col-span-91', 92: 'sm:col-span-92', 93: 'sm:col-span-93', 94: 'sm:col-span-94', 95: 'sm:col-span-95',\n 96: 'sm:col-span-96', 97: 'sm:col-span-97', 98: 'sm:col-span-98', 99: 'sm:col-span-99', 100: 'sm:col-span-100',\n 101: 'sm:col-span-101', 102: 'sm:col-span-102', 103: 'sm:col-span-103', 104: 'sm:col-span-104', 105: 'sm:col-span-105',\n 106: 'sm:col-span-106', 107: 'sm:col-span-107', 108: 'sm:col-span-108', 109: 'sm:col-span-109', 110: 'sm:col-span-110',\n 111: 'sm:col-span-111', 112: 'sm:col-span-112', 113: 'sm:col-span-113', 114: 'sm:col-span-114', 115: 'sm:col-span-115',\n 116: 'sm:col-span-116', 117: 'sm:col-span-117', 118: 'sm:col-span-118', 119: 'sm:col-span-119', 120: 'sm:col-span-120',\n}\n\nconst MD_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4', 5: 'md:col-span-5',\n 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8', 9: 'md:col-span-9', 10: 'md:col-span-10',\n 11: 'md:col-span-11', 12: 'md:col-span-12', 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15',\n 16: 'md:col-span-16', 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24', 25: 'md:col-span-25',\n 26: 'md:col-span-26', 27: 'md:col-span-27', 28: 'md:col-span-28', 29: 'md:col-span-29', 30: 'md:col-span-30',\n 31: 'md:col-span-31', 32: 'md:col-span-32', 33: 'md:col-span-33', 34: 'md:col-span-34', 35: 'md:col-span-35',\n 36: 'md:col-span-36', 37: 'md:col-span-37', 38: 'md:col-span-38', 39: 'md:col-span-39', 40: 'md:col-span-40',\n 41: 'md:col-span-41', 42: 'md:col-span-42', 43: 'md:col-span-43', 44: 'md:col-span-44', 45: 'md:col-span-45',\n 46: 'md:col-span-46', 47: 'md:col-span-47', 48: 'md:col-span-48', 49: 'md:col-span-49', 50: 'md:col-span-50',\n 51: 'md:col-span-51', 52: 'md:col-span-52', 53: 'md:col-span-53', 54: 'md:col-span-54', 55: 'md:col-span-55',\n 56: 'md:col-span-56', 57: 'md:col-span-57', 58: 'md:col-span-58', 59: 'md:col-span-59', 60: 'md:col-span-60',\n 61: 'md:col-span-61', 62: 'md:col-span-62', 63: 'md:col-span-63', 64: 'md:col-span-64', 65: 'md:col-span-65',\n 66: 'md:col-span-66', 67: 'md:col-span-67', 68: 'md:col-span-68', 69: 'md:col-span-69', 70: 'md:col-span-70',\n 71: 'md:col-span-71', 72: 'md:col-span-72', 73: 'md:col-span-73', 74: 'md:col-span-74', 75: 'md:col-span-75',\n 76: 'md:col-span-76', 77: 'md:col-span-77', 78: 'md:col-span-78', 79: 'md:col-span-79', 80: 'md:col-span-80',\n 81: 'md:col-span-81', 82: 'md:col-span-82', 83: 'md:col-span-83', 84: 'md:col-span-84', 85: 'md:col-span-85',\n 86: 'md:col-span-86', 87: 'md:col-span-87', 88: 'md:col-span-88', 89: 'md:col-span-89', 90: 'md:col-span-90',\n 91: 'md:col-span-91', 92: 'md:col-span-92', 93: 'md:col-span-93', 94: 'md:col-span-94', 95: 'md:col-span-95',\n 96: 'md:col-span-96', 97: 'md:col-span-97', 98: 'md:col-span-98', 99: 'md:col-span-99', 100: 'md:col-span-100',\n 101: 'md:col-span-101', 102: 'md:col-span-102', 103: 'md:col-span-103', 104: 'md:col-span-104', 105: 'md:col-span-105',\n 106: 'md:col-span-106', 107: 'md:col-span-107', 108: 'md:col-span-108', 109: 'md:col-span-109', 110: 'md:col-span-110',\n 111: 'md:col-span-111', 112: 'md:col-span-112', 113: 'md:col-span-113', 114: 'md:col-span-114', 115: 'md:col-span-115',\n 116: 'md:col-span-116', 117: 'md:col-span-117', 118: 'md:col-span-118', 119: 'md:col-span-119', 120: 'md:col-span-120',\n}\n\nconst LG_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4', 5: 'lg:col-span-5',\n 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8', 9: 'lg:col-span-9', 10: 'lg:col-span-10',\n 11: 'lg:col-span-11', 12: 'lg:col-span-12', 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15',\n 16: 'lg:col-span-16', 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24', 25: 'lg:col-span-25',\n 26: 'lg:col-span-26', 27: 'lg:col-span-27', 28: 'lg:col-span-28', 29: 'lg:col-span-29', 30: 'lg:col-span-30',\n 31: 'lg:col-span-31', 32: 'lg:col-span-32', 33: 'lg:col-span-33', 34: 'lg:col-span-34', 35: 'lg:col-span-35',\n 36: 'lg:col-span-36', 37: 'lg:col-span-37', 38: 'lg:col-span-38', 39: 'lg:col-span-39', 40: 'lg:col-span-40',\n 41: 'lg:col-span-41', 42: 'lg:col-span-42', 43: 'lg:col-span-43', 44: 'lg:col-span-44', 45: 'lg:col-span-45',\n 46: 'lg:col-span-46', 47: 'lg:col-span-47', 48: 'lg:col-span-48', 49: 'lg:col-span-49', 50: 'lg:col-span-50',\n 51: 'lg:col-span-51', 52: 'lg:col-span-52', 53: 'lg:col-span-53', 54: 'lg:col-span-54', 55: 'lg:col-span-55',\n 56: 'lg:col-span-56', 57: 'lg:col-span-57', 58: 'lg:col-span-58', 59: 'lg:col-span-59', 60: 'lg:col-span-60',\n 61: 'lg:col-span-61', 62: 'lg:col-span-62', 63: 'lg:col-span-63', 64: 'lg:col-span-64', 65: 'lg:col-span-65',\n 66: 'lg:col-span-66', 67: 'lg:col-span-67', 68: 'lg:col-span-68', 69: 'lg:col-span-69', 70: 'lg:col-span-70',\n 71: 'lg:col-span-71', 72: 'lg:col-span-72', 73: 'lg:col-span-73', 74: 'lg:col-span-74', 75: 'lg:col-span-75',\n 76: 'lg:col-span-76', 77: 'lg:col-span-77', 78: 'lg:col-span-78', 79: 'lg:col-span-79', 80: 'lg:col-span-80',\n 81: 'lg:col-span-81', 82: 'lg:col-span-82', 83: 'lg:col-span-83', 84: 'lg:col-span-84', 85: 'lg:col-span-85',\n 86: 'lg:col-span-86', 87: 'lg:col-span-87', 88: 'lg:col-span-88', 89: 'lg:col-span-89', 90: 'lg:col-span-90',\n 91: 'lg:col-span-91', 92: 'lg:col-span-92', 93: 'lg:col-span-93', 94: 'lg:col-span-94', 95: 'lg:col-span-95',\n 96: 'lg:col-span-96', 97: 'lg:col-span-97', 98: 'lg:col-span-98', 99: 'lg:col-span-99', 100: 'lg:col-span-100',\n 101: 'lg:col-span-101', 102: 'lg:col-span-102', 103: 'lg:col-span-103', 104: 'lg:col-span-104', 105: 'lg:col-span-105',\n 106: 'lg:col-span-106', 107: 'lg:col-span-107', 108: 'lg:col-span-108', 109: 'lg:col-span-109', 110: 'lg:col-span-110',\n 111: 'lg:col-span-111', 112: 'lg:col-span-112', 113: 'lg:col-span-113', 114: 'lg:col-span-114', 115: 'lg:col-span-115',\n 116: 'lg:col-span-116', 117: 'lg:col-span-117', 118: 'lg:col-span-118', 119: 'lg:col-span-119', 120: 'lg:col-span-120',\n}\n\nconst XL_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4', 5: 'xl:col-span-5',\n 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8', 9: 'xl:col-span-9', 10: 'xl:col-span-10',\n 11: 'xl:col-span-11', 12: 'xl:col-span-12', 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15',\n 16: 'xl:col-span-16', 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24', 25: 'xl:col-span-25',\n 26: 'xl:col-span-26', 27: 'xl:col-span-27', 28: 'xl:col-span-28', 29: 'xl:col-span-29', 30: 'xl:col-span-30',\n 31: 'xl:col-span-31', 32: 'xl:col-span-32', 33: 'xl:col-span-33', 34: 'xl:col-span-34', 35: 'xl:col-span-35',\n 36: 'xl:col-span-36', 37: 'xl:col-span-37', 38: 'xl:col-span-38', 39: 'xl:col-span-39', 40: 'xl:col-span-40',\n 41: 'xl:col-span-41', 42: 'xl:col-span-42', 43: 'xl:col-span-43', 44: 'xl:col-span-44', 45: 'xl:col-span-45',\n 46: 'xl:col-span-46', 47: 'xl:col-span-47', 48: 'xl:col-span-48', 49: 'xl:col-span-49', 50: 'xl:col-span-50',\n 51: 'xl:col-span-51', 52: 'xl:col-span-52', 53: 'xl:col-span-53', 54: 'xl:col-span-54', 55: 'xl:col-span-55',\n 56: 'xl:col-span-56', 57: 'xl:col-span-57', 58: 'xl:col-span-58', 59: 'xl:col-span-59', 60: 'xl:col-span-60',\n 61: 'xl:col-span-61', 62: 'xl:col-span-62', 63: 'xl:col-span-63', 64: 'xl:col-span-64', 65: 'xl:col-span-65',\n 66: 'xl:col-span-66', 67: 'xl:col-span-67', 68: 'xl:col-span-68', 69: 'xl:col-span-69', 70: 'xl:col-span-70',\n 71: 'xl:col-span-71', 72: 'xl:col-span-72', 73: 'xl:col-span-73', 74: 'xl:col-span-74', 75: 'xl:col-span-75',\n 76: 'xl:col-span-76', 77: 'xl:col-span-77', 78: 'xl:col-span-78', 79: 'xl:col-span-79', 80: 'xl:col-span-80',\n 81: 'xl:col-span-81', 82: 'xl:col-span-82', 83: 'xl:col-span-83', 84: 'xl:col-span-84', 85: 'xl:col-span-85',\n 86: 'xl:col-span-86', 87: 'xl:col-span-87', 88: 'xl:col-span-88', 89: 'xl:col-span-89', 90: 'xl:col-span-90',\n 91: 'xl:col-span-91', 92: 'xl:col-span-92', 93: 'xl:col-span-93', 94: 'xl:col-span-94', 95: 'xl:col-span-95',\n 96: 'xl:col-span-96', 97: 'xl:col-span-97', 98: 'xl:col-span-98', 99: 'xl:col-span-99', 100: 'xl:col-span-100',\n 101: 'xl:col-span-101', 102: 'xl:col-span-102', 103: 'xl:col-span-103', 104: 'xl:col-span-104', 105: 'xl:col-span-105',\n 106: 'xl:col-span-106', 107: 'xl:col-span-107', 108: 'xl:col-span-108', 109: 'xl:col-span-109', 110: 'xl:col-span-110',\n 111: 'xl:col-span-111', 112: 'xl:col-span-112', 113: 'xl:col-span-113', 114: 'xl:col-span-114', 115: 'xl:col-span-115',\n 116: 'xl:col-span-116', 117: 'xl:col-span-117', 118: 'xl:col-span-118', 119: 'xl:col-span-119', 120: 'xl:col-span-120',\n}\n\nconst XXL_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4', 5: '2xl:col-span-5',\n 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8', 9: '2xl:col-span-9', 10: '2xl:col-span-10',\n 11: '2xl:col-span-11', 12: '2xl:col-span-12', 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15',\n 16: '2xl:col-span-16', 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24', 25: '2xl:col-span-25',\n 26: '2xl:col-span-26', 27: '2xl:col-span-27', 28: '2xl:col-span-28', 29: '2xl:col-span-29', 30: '2xl:col-span-30',\n 31: '2xl:col-span-31', 32: '2xl:col-span-32', 33: '2xl:col-span-33', 34: '2xl:col-span-34', 35: '2xl:col-span-35',\n 36: '2xl:col-span-36', 37: '2xl:col-span-37', 38: '2xl:col-span-38', 39: '2xl:col-span-39', 40: '2xl:col-span-40',\n 41: '2xl:col-span-41', 42: '2xl:col-span-42', 43: '2xl:col-span-43', 44: '2xl:col-span-44', 45: '2xl:col-span-45',\n 46: '2xl:col-span-46', 47: '2xl:col-span-47', 48: '2xl:col-span-48', 49: '2xl:col-span-49', 50: '2xl:col-span-50',\n 51: '2xl:col-span-51', 52: '2xl:col-span-52', 53: '2xl:col-span-53', 54: '2xl:col-span-54', 55: '2xl:col-span-55',\n 56: '2xl:col-span-56', 57: '2xl:col-span-57', 58: '2xl:col-span-58', 59: '2xl:col-span-59', 60: '2xl:col-span-60',\n 61: '2xl:col-span-61', 62: '2xl:col-span-62', 63: '2xl:col-span-63', 64: '2xl:col-span-64', 65: '2xl:col-span-65',\n 66: '2xl:col-span-66', 67: '2xl:col-span-67', 68: '2xl:col-span-68', 69: '2xl:col-span-69', 70: '2xl:col-span-70',\n 71: '2xl:col-span-71', 72: '2xl:col-span-72', 73: '2xl:col-span-73', 74: '2xl:col-span-74', 75: '2xl:col-span-75',\n 76: '2xl:col-span-76', 77: '2xl:col-span-77', 78: '2xl:col-span-78', 79: '2xl:col-span-79', 80: '2xl:col-span-80',\n 81: '2xl:col-span-81', 82: '2xl:col-span-82', 83: '2xl:col-span-83', 84: '2xl:col-span-84', 85: '2xl:col-span-85',\n 86: '2xl:col-span-86', 87: '2xl:col-span-87', 88: '2xl:col-span-88', 89: '2xl:col-span-89', 90: '2xl:col-span-90',\n 91: '2xl:col-span-91', 92: '2xl:col-span-92', 93: '2xl:col-span-93', 94: '2xl:col-span-94', 95: '2xl:col-span-95',\n 96: '2xl:col-span-96', 97: '2xl:col-span-97', 98: '2xl:col-span-98', 99: '2xl:col-span-99', 100: '2xl:col-span-100',\n 101: '2xl:col-span-101', 102: '2xl:col-span-102', 103: '2xl:col-span-103', 104: '2xl:col-span-104', 105: '2xl:col-span-105',\n 106: '2xl:col-span-106', 107: '2xl:col-span-107', 108: '2xl:col-span-108', 109: '2xl:col-span-109', 110: '2xl:col-span-110',\n 111: '2xl:col-span-111', 112: '2xl:col-span-112', 113: '2xl:col-span-113', 114: '2xl:col-span-114', 115: '2xl:col-span-115',\n 116: '2xl:col-span-116', 117: '2xl:col-span-117', 118: '2xl:col-span-118', 119: '2xl:col-span-119', 120: '2xl:col-span-120',\n}\n\nconst COL_START_120_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4', 5: 'col-start-5',\n 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8', 9: 'col-start-9', 10: 'col-start-10',\n 11: 'col-start-11', 12: 'col-start-12', 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15',\n 16: 'col-start-16', 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24', 25: 'col-start-25',\n 26: 'col-start-26', 27: 'col-start-27', 28: 'col-start-28', 29: 'col-start-29', 30: 'col-start-30',\n 31: 'col-start-31', 32: 'col-start-32', 33: 'col-start-33', 34: 'col-start-34', 35: 'col-start-35',\n 36: 'col-start-36', 37: 'col-start-37', 38: 'col-start-38', 39: 'col-start-39', 40: 'col-start-40',\n 41: 'col-start-41', 42: 'col-start-42', 43: 'col-start-43', 44: 'col-start-44', 45: 'col-start-45',\n 46: 'col-start-46', 47: 'col-start-47', 48: 'col-start-48', 49: 'col-start-49', 50: 'col-start-50',\n 51: 'col-start-51', 52: 'col-start-52', 53: 'col-start-53', 54: 'col-start-54', 55: 'col-start-55',\n 56: 'col-start-56', 57: 'col-start-57', 58: 'col-start-58', 59: 'col-start-59', 60: 'col-start-60',\n 61: 'col-start-61', 62: 'col-start-62', 63: 'col-start-63', 64: 'col-start-64', 65: 'col-start-65',\n 66: 'col-start-66', 67: 'col-start-67', 68: 'col-start-68', 69: 'col-start-69', 70: 'col-start-70',\n 71: 'col-start-71', 72: 'col-start-72', 73: 'col-start-73', 74: 'col-start-74', 75: 'col-start-75',\n 76: 'col-start-76', 77: 'col-start-77', 78: 'col-start-78', 79: 'col-start-79', 80: 'col-start-80',\n 81: 'col-start-81', 82: 'col-start-82', 83: 'col-start-83', 84: 'col-start-84', 85: 'col-start-85',\n 86: 'col-start-86', 87: 'col-start-87', 88: 'col-start-88', 89: 'col-start-89', 90: 'col-start-90',\n 91: 'col-start-91', 92: 'col-start-92', 93: 'col-start-93', 94: 'col-start-94', 95: 'col-start-95',\n 96: 'col-start-96', 97: 'col-start-97', 98: 'col-start-98', 99: 'col-start-99', 100: 'col-start-100',\n 101: 'col-start-101', 102: 'col-start-102', 103: 'col-start-103', 104: 'col-start-104', 105: 'col-start-105',\n 106: 'col-start-106', 107: 'col-start-107', 108: 'col-start-108', 109: 'col-start-109', 110: 'col-start-110',\n 111: 'col-start-111', 112: 'col-start-112', 113: 'col-start-113', 114: 'col-start-114', 115: 'col-start-115',\n 116: 'col-start-116', 117: 'col-start-117', 118: 'col-start-118', 119: 'col-start-119', 120: 'col-start-120',\n 121: 'col-start-121',\n}\n\nexport function Row({ children, cols = 24, gutter = 16, justify, align, className = '', style: userStyle, ...rest }: RowProps) {\n const [gutterX, gutterY] = Array.isArray(gutter) ? gutter : [gutter, 0]\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-items-start',\n end: 'justify-items-end',\n center: 'justify-items-center',\n between: 'justify-items-between',\n around: 'justify-items-around',\n evenly: 'justify-items-evenly',\n }\n\n const alignClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n }\n\n // Grid column class mapping - literal strings for Tailwind\n const GRID_COLS_CLASSES: Record<24 | 120, string> = {\n 24: 'grid-cols-[repeat(24,minmax(0,1fr))]',\n 120: 'grid-cols-[repeat(120,minmax(0,1fr))]',\n }\n\n const classes = [\n 'grid',\n GRID_COLS_CLASSES[cols],\n 'w-full',\n justify && justifyClasses[justify],\n align && alignClasses[align],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Use negative margin to compensate for column padding (classic grid gutter technique)\n const style: React.CSSProperties = {\n ...(gutterX && { marginLeft: `-${gutterX / 2}px`, marginRight: `-${gutterX / 2}px` }),\n ...(gutterY && { rowGap: `${gutterY}px` }),\n ...userStyle,\n }\n\n return (\n <GridContext.Provider value={{ cols, gutter: [gutterX, gutterY] }}>\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n </GridContext.Provider>\n )\n}\n\nexport function Col({ children, span, offset, order, xs, sm, md, lg, xl, xxl, className = '', style: userStyle, ...rest }: ColProps) {\n const { cols, gutter } = React.useContext(GridContext)\n const [gutterX] = gutter\n const classes: string[] = []\n\n // Select mapping objects based on column count\n const colSpanClasses = cols === 120 ? COL_SPAN_120_CLASSES : COL_SPAN_CLASSES\n const smColSpanClasses = cols === 120 ? SM_COL_SPAN_120_CLASSES : SM_COL_SPAN_CLASSES\n const mdColSpanClasses = cols === 120 ? MD_COL_SPAN_120_CLASSES : MD_COL_SPAN_CLASSES\n const lgColSpanClasses = cols === 120 ? LG_COL_SPAN_120_CLASSES : LG_COL_SPAN_CLASSES\n const xlColSpanClasses = cols === 120 ? XL_COL_SPAN_120_CLASSES : XL_COL_SPAN_CLASSES\n const xxlColSpanClasses = cols === 120 ? XXL_COL_SPAN_120_CLASSES : XXL_COL_SPAN_CLASSES\n const colStartClasses = cols === 120 ? COL_START_120_CLASSES : COL_START_CLASSES\n\n // Base span or xs (mobile-first), default to full width if nothing specified\n const baseSpan = span ?? xs ?? cols\n if (baseSpan && colSpanClasses[baseSpan]) {\n classes.push(colSpanClasses[baseSpan])\n }\n\n // Responsive spans\n if (sm && smColSpanClasses[sm]) classes.push(smColSpanClasses[sm])\n if (md && mdColSpanClasses[md]) classes.push(mdColSpanClasses[md])\n if (lg && lgColSpanClasses[lg]) classes.push(lgColSpanClasses[lg])\n if (xl && xlColSpanClasses[xl]) classes.push(xlColSpanClasses[xl])\n if (xxl && xxlColSpanClasses[xxl]) classes.push(xxlColSpanClasses[xxl])\n\n // Offset (uses col-start)\n if (offset && colStartClasses[offset + 1]) {\n classes.push(colStartClasses[offset + 1])\n }\n\n // Order\n if (order && ORDER_CLASSES[order]) {\n classes.push(ORDER_CLASSES[order])\n }\n\n if (className) classes.push(className)\n\n // Apply horizontal padding for gutter spacing\n const style: React.CSSProperties = {\n ...(gutterX && { paddingLeft: `${gutterX / 2}px`, paddingRight: `${gutterX / 2}px` }),\n ...userStyle,\n }\n\n return <div className={classes.join(' ')} style={style} {...rest}>{children}</div>\n}\n\nexport const Grid = {\n Row,\n Col,\n}\n"],"names":["GridContext","React","COL_SPAN_CLASSES","SM_COL_SPAN_CLASSES","MD_COL_SPAN_CLASSES","LG_COL_SPAN_CLASSES","XL_COL_SPAN_CLASSES","XXL_COL_SPAN_CLASSES","COL_START_CLASSES","ORDER_CLASSES","COL_SPAN_120_CLASSES","SM_COL_SPAN_120_CLASSES","MD_COL_SPAN_120_CLASSES","LG_COL_SPAN_120_CLASSES","XL_COL_SPAN_120_CLASSES","XXL_COL_SPAN_120_CLASSES","COL_START_120_CLASSES","Row","children","cols","gutter","justify","align","className","userStyle","rest","gutterX","gutterY","justifyClasses","alignClasses","classes","style","jsx","Col","span","offset","order","xs","sm","md","lg","xl","xxl","colSpanClasses","smColSpanClasses","mdColSpanClasses","lgColSpanClasses","xlColSpanClasses","xxlColSpanClasses","colStartClasses","baseSpan","Grid"],"mappings":";;AAEA,MAAMA,IAAcC,EAAM,cAA4D,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,GA4B5GC,IAA2C;AAAA,EAC/C,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACtD,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACtD,GAAG;AAAA,EAAc,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC3D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC7D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC7D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAC/D,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA+C;AAAA,EACnD,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAClE,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAClE,GAAG;AAAA,EAAkB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACvE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACzE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACzE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAC3E,GAEMC,IAA4C;AAAA,EAChD,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EACzD,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EACzD,GAAG;AAAA,EAAe,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAC9D,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AACN,GAEMC,IAAwC;AAAA,EAC5C,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAC7C,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAC7C,GAAG;AAAA,EAAW,IAAI;AAAA,EAAY,IAAI;AAAA,EAAY,IAAI;AACpD,GAGMC,IAA+C;AAAA,EACnD,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACvE,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,IAAI;AAAA,EACxE,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,KAAK;AAAA,EACjF,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EACzF,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EACzF,KAAK;AAAA,EAAgB,KAAK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IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,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AiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,KAAK;AAAA,EAC7F,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AACvG,GAEMC,IAAmD;AAAA,EACvD,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EACvF,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,IAAI;AAAA,EACxF,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,KAAK;AAAA,EACjG,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EACzG,KAAK;AAAA,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"}
|
|
1
|
+
{"version":3,"file":"Grid.js","sources":["../../src/components/Grid.tsx"],"sourcesContent":["import React from 'react'\n\nconst GridContext = React.createContext<{ cols: 24 | 30; gutter: [number, number] }>({ cols: 24, gutter: [0, 0] })\n\nexport interface RowProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n cols?: 24 | 30\n gutter?: number | [number, number]\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline'\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nexport interface ColProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n span?: number\n offset?: number\n order?: number\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n xxl?: number\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\n// Explicit class mappings - Tailwind v4 supports any grid value natively\nconst COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4',\n 5: 'col-span-5', 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8',\n 9: 'col-span-9', 10: 'col-span-10', 11: 'col-span-11', 12: 'col-span-12',\n 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15', 16: 'col-span-16',\n 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24',\n}\n\nconst SM_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4',\n 5: 'sm:col-span-5', 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8',\n 9: 'sm:col-span-9', 10: 'sm:col-span-10', 11: 'sm:col-span-11', 12: 'sm:col-span-12',\n 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15', 16: 'sm:col-span-16',\n 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24',\n}\n\nconst MD_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4',\n 5: 'md:col-span-5', 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8',\n 9: 'md:col-span-9', 10: 'md:col-span-10', 11: 'md:col-span-11', 12: 'md:col-span-12',\n 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15', 16: 'md:col-span-16',\n 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24',\n}\n\nconst LG_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4',\n 5: 'lg:col-span-5', 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8',\n 9: 'lg:col-span-9', 10: 'lg:col-span-10', 11: 'lg:col-span-11', 12: 'lg:col-span-12',\n 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15', 16: 'lg:col-span-16',\n 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24',\n}\n\nconst XL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4',\n 5: 'xl:col-span-5', 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8',\n 9: 'xl:col-span-9', 10: 'xl:col-span-10', 11: 'xl:col-span-11', 12: 'xl:col-span-12',\n 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15', 16: 'xl:col-span-16',\n 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24',\n}\n\nconst XXL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4',\n 5: '2xl:col-span-5', 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8',\n 9: '2xl:col-span-9', 10: '2xl:col-span-10', 11: '2xl:col-span-11', 12: '2xl:col-span-12',\n 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15', 16: '2xl:col-span-16',\n 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24',\n}\n\nconst COL_START_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4',\n 5: 'col-start-5', 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8',\n 9: 'col-start-9', 10: 'col-start-10', 11: 'col-start-11', 12: 'col-start-12',\n 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15', 16: 'col-start-16',\n 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24',\n 25: 'col-start-25',\n}\n\nconst ORDER_CLASSES: Record<number, string> = {\n 1: 'order-1', 2: 'order-2', 3: 'order-3', 4: 'order-4',\n 5: 'order-5', 6: 'order-6', 7: 'order-7', 8: 'order-8',\n 9: 'order-9', 10: 'order-10', 11: 'order-11', 12: 'order-12',\n}\n\n// 30-column grid mappings\nconst COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4', 5: 'col-span-5',\n 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8', 9: 'col-span-9', 10: 'col-span-10',\n 11: 'col-span-11', 12: 'col-span-12', 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15',\n 16: 'col-span-16', 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24', 25: 'col-span-25',\n 26: 'col-span-26', 27: 'col-span-27', 28: 'col-span-28', 29: 'col-span-29', 30: 'col-span-30',\n}\n\nconst SM_COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4', 5: 'sm:col-span-5',\n 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8', 9: 'sm:col-span-9', 10: 'sm:col-span-10',\n 11: 'sm:col-span-11', 12: 'sm:col-span-12', 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15',\n 16: 'sm:col-span-16', 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24', 25: 'sm:col-span-25',\n 26: 'sm:col-span-26', 27: 'sm:col-span-27', 28: 'sm:col-span-28', 29: 'sm:col-span-29', 30: 'sm:col-span-30',\n}\n\nconst MD_COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4', 5: 'md:col-span-5',\n 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8', 9: 'md:col-span-9', 10: 'md:col-span-10',\n 11: 'md:col-span-11', 12: 'md:col-span-12', 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15',\n 16: 'md:col-span-16', 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24', 25: 'md:col-span-25',\n 26: 'md:col-span-26', 27: 'md:col-span-27', 28: 'md:col-span-28', 29: 'md:col-span-29', 30: 'md:col-span-30',\n}\n\nconst LG_COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4', 5: 'lg:col-span-5',\n 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8', 9: 'lg:col-span-9', 10: 'lg:col-span-10',\n 11: 'lg:col-span-11', 12: 'lg:col-span-12', 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15',\n 16: 'lg:col-span-16', 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24', 25: 'lg:col-span-25',\n 26: 'lg:col-span-26', 27: 'lg:col-span-27', 28: 'lg:col-span-28', 29: 'lg:col-span-29', 30: 'lg:col-span-30',\n}\n\nconst XL_COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4', 5: 'xl:col-span-5',\n 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8', 9: 'xl:col-span-9', 10: 'xl:col-span-10',\n 11: 'xl:col-span-11', 12: 'xl:col-span-12', 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15',\n 16: 'xl:col-span-16', 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24', 25: 'xl:col-span-25',\n 26: 'xl:col-span-26', 27: 'xl:col-span-27', 28: 'xl:col-span-28', 29: 'xl:col-span-29', 30: 'xl:col-span-30',\n}\n\nconst XXL_COL_SPAN_30_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4', 5: '2xl:col-span-5',\n 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8', 9: '2xl:col-span-9', 10: '2xl:col-span-10',\n 11: '2xl:col-span-11', 12: '2xl:col-span-12', 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15',\n 16: '2xl:col-span-16', 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24', 25: '2xl:col-span-25',\n 26: '2xl:col-span-26', 27: '2xl:col-span-27', 28: '2xl:col-span-28', 29: '2xl:col-span-29', 30: '2xl:col-span-30',\n}\n\nconst COL_START_30_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4', 5: 'col-start-5',\n 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8', 9: 'col-start-9', 10: 'col-start-10',\n 11: 'col-start-11', 12: 'col-start-12', 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15',\n 16: 'col-start-16', 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24', 25: 'col-start-25',\n 26: 'col-start-26', 27: 'col-start-27', 28: 'col-start-28', 29: 'col-start-29', 30: 'col-start-30',\n 31: 'col-start-31',\n}\n\nexport function Row({ children, cols = 24, gutter = 16, justify, align, className = '', style: userStyle, ...rest }: RowProps) {\n const [gutterX, gutterY] = Array.isArray(gutter) ? gutter : [gutter, 0]\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-items-start',\n end: 'justify-items-end',\n center: 'justify-items-center',\n between: 'justify-items-between',\n around: 'justify-items-around',\n evenly: 'justify-items-evenly',\n }\n\n const alignClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n }\n\n // Grid column class mapping - literal strings for Tailwind\n const GRID_COLS_CLASSES: Record<24 | 30, string> = {\n 24: 'grid-cols-[repeat(24,minmax(0,1fr))]',\n 30: 'grid-cols-[repeat(30,minmax(0,1fr))]',\n }\n\n const classes = [\n 'grid',\n GRID_COLS_CLASSES[cols],\n 'w-full',\n justify && justifyClasses[justify],\n align && alignClasses[align],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Use negative margin to compensate for column padding (classic grid gutter technique)\n const style: React.CSSProperties = {\n ...(gutterX && { marginLeft: `-${gutterX / 2}px`, marginRight: `-${gutterX / 2}px` }),\n ...(gutterY && { rowGap: `${gutterY}px` }),\n ...userStyle,\n }\n\n return (\n <GridContext.Provider value={{ cols, gutter: [gutterX, gutterY] }}>\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n </GridContext.Provider>\n )\n}\n\nexport function Col({ children, span, offset, order, xs, sm, md, lg, xl, xxl, className = '', style: userStyle, ...rest }: ColProps) {\n const { cols, gutter } = React.useContext(GridContext)\n const [gutterX] = gutter\n const classes: string[] = []\n\n // Select mapping objects based on column count\n const colSpanClasses = cols === 30 ? COL_SPAN_30_CLASSES : COL_SPAN_CLASSES\n const smColSpanClasses = cols === 30 ? SM_COL_SPAN_30_CLASSES : SM_COL_SPAN_CLASSES\n const mdColSpanClasses = cols === 30 ? MD_COL_SPAN_30_CLASSES : MD_COL_SPAN_CLASSES\n const lgColSpanClasses = cols === 30 ? LG_COL_SPAN_30_CLASSES : LG_COL_SPAN_CLASSES\n const xlColSpanClasses = cols === 30 ? XL_COL_SPAN_30_CLASSES : XL_COL_SPAN_CLASSES\n const xxlColSpanClasses = cols === 30 ? XXL_COL_SPAN_30_CLASSES : XXL_COL_SPAN_CLASSES\n const colStartClasses = cols === 30 ? COL_START_30_CLASSES : COL_START_CLASSES\n\n // Base span or xs (mobile-first), default to full width if nothing specified\n const baseSpan = span ?? xs ?? cols\n if (baseSpan && colSpanClasses[baseSpan]) {\n classes.push(colSpanClasses[baseSpan])\n }\n\n // Responsive spans\n if (sm && smColSpanClasses[sm]) classes.push(smColSpanClasses[sm])\n if (md && mdColSpanClasses[md]) classes.push(mdColSpanClasses[md])\n if (lg && lgColSpanClasses[lg]) classes.push(lgColSpanClasses[lg])\n if (xl && xlColSpanClasses[xl]) classes.push(xlColSpanClasses[xl])\n if (xxl && xxlColSpanClasses[xxl]) classes.push(xxlColSpanClasses[xxl])\n\n // Offset (uses col-start)\n if (offset && colStartClasses[offset + 1]) {\n classes.push(colStartClasses[offset + 1])\n }\n\n // Order\n if (order && ORDER_CLASSES[order]) {\n classes.push(ORDER_CLASSES[order])\n }\n\n if (className) classes.push(className)\n\n // Apply horizontal padding for gutter spacing\n const style: React.CSSProperties = {\n ...(gutterX && { paddingLeft: `${gutterX / 2}px`, paddingRight: `${gutterX / 2}px` }),\n ...userStyle,\n }\n\n return <div className={classes.join(' ')} style={style} {...rest}>{children}</div>\n}\n\nexport const Grid = {\n Row,\n Col,\n}\n"],"names":["GridContext","React","COL_SPAN_CLASSES","SM_COL_SPAN_CLASSES","MD_COL_SPAN_CLASSES","LG_COL_SPAN_CLASSES","XL_COL_SPAN_CLASSES","XXL_COL_SPAN_CLASSES","COL_START_CLASSES","ORDER_CLASSES","COL_SPAN_30_CLASSES","SM_COL_SPAN_30_CLASSES","MD_COL_SPAN_30_CLASSES","LG_COL_SPAN_30_CLASSES","XL_COL_SPAN_30_CLASSES","XXL_COL_SPAN_30_CLASSES","COL_START_30_CLASSES","Row","children","cols","gutter","justify","align","className","userStyle","rest","gutterX","gutterY","justifyClasses","alignClasses","classes","style","jsx","Col","span","offset","order","xs","sm","md","lg","xl","xxl","colSpanClasses","smColSpanClasses","mdColSpanClasses","lgColSpanClasses","xlColSpanClasses","xxlColSpanClasses","colStartClasses","baseSpan","Grid"],"mappings":";;AAEA,MAAMA,IAAcC,EAAM,cAA2D,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,GA4B3GC,IAA2C;AAAA,EAC/C,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACtD,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACtD,GAAG;AAAA,EAAc,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC3D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC7D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAC7D,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAC/D,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAC/D,GAAG;AAAA,EAAiB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACpE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EACtE,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AACxE,GAEMC,IAA+C;AAAA,EACnD,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAClE,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAClE,GAAG;AAAA,EAAkB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACvE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACzE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EACzE,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAC3E,GAEMC,IAA4C;AAAA,EAChD,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EACzD,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EACzD,GAAG;AAAA,EAAe,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAC9D,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAChE,IAAI;AACN,GAEMC,IAAwC;AAAA,EAC5C,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAC7C,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAAW,GAAG;AAAA,EAC7C,GAAG;AAAA,EAAW,IAAI;AAAA,EAAY,IAAI;AAAA,EAAY,IAAI;AACpD,GAGMC,IAA8C;AAAA,EAClD,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EACvE,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,GAAG;AAAA,EAAc,IAAI;AAAA,EACxE,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAClF,GAEMC,IAAiD;AAAA,EACrD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAC9F,GAEMC,IAAiD;AAAA,EACrD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAC9F,GAEMC,IAAiD;AAAA,EACrD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAC9F,GAEMC,IAAiD;AAAA,EACrD,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAC9F,GAEMC,IAAkD;AAAA,EACtD,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EACvF,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,IAAI;AAAA,EACxF,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAClG,GAEMC,IAA+C;AAAA,EACnD,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAC3E,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,GAAG;AAAA,EAAe,IAAI;AAAA,EAC5E,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EAAgB,IAAI;AAAA,EACpF,IAAI;AACN;AAEO,SAASC,EAAI,EAAE,UAAAC,GAAU,MAAAC,IAAO,IAAI,QAAAC,IAAS,IAAI,SAAAC,GAAS,OAAAC,GAAO,WAAAC,IAAY,IAAI,OAAOC,GAAW,GAAGC,KAAkB;AAC7H,QAAM,CAACC,GAASC,CAAO,IAAI,MAAM,QAAQP,CAAM,IAAIA,IAAS,CAACA,GAAQ,CAAC,GAEhEQ,IAAyC;AAAA,IAC7C,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EAAA,GAGJC,IAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,EAAA,GASNC,IAAU;AAAA,IACd;AAAA,IANiD;AAAA,MACjD,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,EAKcX,CAAI;AAAA,IACtB;AAAA,IACAE,KAAWO,EAAeP,CAAO;AAAA,IACjCC,KAASO,EAAaP,CAAK;AAAA,IAC3BC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAGLQ,IAA6B;AAAA,IACjC,GAAIL,KAAW,EAAE,YAAY,IAAIA,IAAU,CAAC,MAAM,aAAa,IAAIA,IAAU,CAAC,KAAA;AAAA,IAC9E,GAAIC,KAAW,EAAE,QAAQ,GAAGA,CAAO,KAAA;AAAA,IACnC,GAAGH;AAAA,EAAA;AAGL,SACE,gBAAAQ,EAAChC,EAAY,UAAZ,EAAqB,OAAO,EAAE,MAAAmB,GAAM,QAAQ,CAACO,GAASC,CAAO,EAAA,GAC5D,4BAAC,OAAA,EAAI,WAAWG,GAAS,OAAAC,GAAe,GAAGN,GACxC,UAAAP,EAAA,CACH,GACF;AAEJ;AAEO,SAASe,EAAI,EAAE,UAAAf,GAAU,MAAAgB,GAAM,QAAAC,GAAQ,OAAAC,GAAO,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,KAAAC,GAAK,WAAAnB,IAAY,IAAI,OAAOC,GAAW,GAAGC,KAAkB;AACnI,QAAM,EAAE,MAAAN,GAAM,QAAAC,EAAA,IAAWnB,EAAM,WAAWD,CAAW,GAC/C,CAAC0B,CAAO,IAAIN,GACZU,IAAoB,CAAA,GAGpBa,IAAiBxB,MAAS,KAAKT,IAAsBR,GACrD0C,IAAmBzB,MAAS,KAAKR,IAAyBR,GAC1D0C,IAAmB1B,MAAS,KAAKP,IAAyBR,GAC1D0C,IAAmB3B,MAAS,KAAKN,IAAyBR,GAC1D0C,IAAmB5B,MAAS,KAAKL,IAAyBR,GAC1D0C,IAAoB7B,MAAS,KAAKJ,IAA0BR,GAC5D0C,IAAkB9B,MAAS,KAAKH,IAAuBR,GAGvD0C,IAAWhB,KAAQG,KAAMlB;AAC/B,EAAI+B,KAAYP,EAAeO,CAAQ,KACrCpB,EAAQ,KAAKa,EAAeO,CAAQ,CAAC,GAInCZ,KAAMM,EAAiBN,CAAE,OAAW,KAAKM,EAAiBN,CAAE,CAAC,GAC7DC,KAAMM,EAAiBN,CAAE,OAAW,KAAKM,EAAiBN,CAAE,CAAC,GAC7DC,KAAMM,EAAiBN,CAAE,OAAW,KAAKM,EAAiBN,CAAE,CAAC,GAC7DC,KAAMM,EAAiBN,CAAE,OAAW,KAAKM,EAAiBN,CAAE,CAAC,GAC7DC,KAAOM,EAAkBN,CAAG,OAAW,KAAKM,EAAkBN,CAAG,CAAC,GAGlEP,KAAUc,EAAgBd,IAAS,CAAC,KACtCL,EAAQ,KAAKmB,EAAgBd,IAAS,CAAC,CAAC,GAItCC,KAAS3B,EAAc2B,CAAK,KAC9BN,EAAQ,KAAKrB,EAAc2B,CAAK,CAAC,GAG/Bb,KAAWO,EAAQ,KAAKP,CAAS;AAGrC,QAAMQ,IAA6B;AAAA,IACjC,GAAIL,KAAW,EAAE,aAAa,GAAGA,IAAU,CAAC,MAAM,cAAc,GAAGA,IAAU,CAAC,KAAA;AAAA,IAC9E,GAAGF;AAAA,EAAA;AAGL,SAAO,gBAAAQ,EAAC,OAAA,EAAI,WAAWF,EAAQ,KAAK,GAAG,GAAG,OAAAC,GAAe,GAAGN,GAAO,UAAAP,EAAA,CAAS;AAC9E;AAEO,MAAMiC,IAAO;AAAA,EAClB,KAAAlC;AAAA,EACA,KAAAgB;AACF;"}
|
package/dist/components/Image.js
CHANGED
|
@@ -1,99 +1,114 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { forwardRef as T, useState as
|
|
3
|
-
const
|
|
1
|
+
import { jsxs as x, Fragment as H, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as T, useState as u, useRef as V, useEffect as B, useCallback as l } from "react";
|
|
3
|
+
const q = "btn", A = "btn-circle", G = "btn-sm", I = T(
|
|
4
4
|
({
|
|
5
|
-
src:
|
|
6
|
-
alt:
|
|
7
|
-
fallback:
|
|
8
|
-
placeholder:
|
|
9
|
-
preview:
|
|
10
|
-
width:
|
|
11
|
-
height:
|
|
12
|
-
className:
|
|
13
|
-
onLoad:
|
|
14
|
-
onError:
|
|
5
|
+
src: m,
|
|
6
|
+
alt: c = "",
|
|
7
|
+
fallback: o,
|
|
8
|
+
placeholder: $,
|
|
9
|
+
preview: d = !0,
|
|
10
|
+
width: f,
|
|
11
|
+
height: h,
|
|
12
|
+
className: S = "",
|
|
13
|
+
onLoad: C,
|
|
14
|
+
onError: N,
|
|
15
15
|
"data-testid": r = "image",
|
|
16
|
-
...
|
|
17
|
-
},
|
|
18
|
-
const [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
...D
|
|
17
|
+
}, g) => {
|
|
18
|
+
const [a, i] = u(!0), [s, n] = u(!1), [E, p] = u(!1), [j, b] = u(m), [v, w] = u(!1), L = V(null);
|
|
19
|
+
B(() => {
|
|
20
|
+
i(!0), n(!1), w(!1), b(m);
|
|
21
|
+
}, [m]), B(() => {
|
|
22
|
+
const e = L.current;
|
|
23
|
+
if (!(!e || !e.complete)) {
|
|
24
|
+
if (e.naturalWidth > 0) {
|
|
25
|
+
i(!1), n(!1);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (o && !v) {
|
|
29
|
+
w(!0), b(o), i(!0), n(!1);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
i(!1), n(!0);
|
|
33
|
+
}
|
|
34
|
+
}, [j, o, v]);
|
|
35
|
+
const F = l(() => {
|
|
36
|
+
i(!1), n(!1), C?.();
|
|
37
|
+
}, [C]), K = l(() => {
|
|
38
|
+
if (N?.(), o && !v) {
|
|
39
|
+
w(!0), b(o), i(!0), n(!1);
|
|
27
40
|
return;
|
|
28
41
|
}
|
|
29
|
-
|
|
30
|
-
}, [
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
|
|
34
|
-
}, []),
|
|
42
|
+
i(!1), n(!0);
|
|
43
|
+
}, [o, v, N]), M = l(() => {
|
|
44
|
+
d && !s && !a && p(!0);
|
|
45
|
+
}, [d, s, a]), P = l(() => {
|
|
46
|
+
p(!1);
|
|
47
|
+
}, []), R = l(
|
|
35
48
|
(e) => {
|
|
36
|
-
|
|
49
|
+
d && !s && !a && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), p(!0));
|
|
37
50
|
},
|
|
38
|
-
[
|
|
39
|
-
),
|
|
40
|
-
e.key === "Escape" &&
|
|
41
|
-
}, []),
|
|
51
|
+
[d, s, a]
|
|
52
|
+
), W = l((e) => {
|
|
53
|
+
e.key === "Escape" && p(!1);
|
|
54
|
+
}, []), k = () => {
|
|
42
55
|
const e = {};
|
|
43
|
-
return
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
return f && (e.width = typeof f == "number" ? `${f}px` : f), h && (e.height = typeof h == "number" ? `${h}px` : h), e;
|
|
57
|
+
}, y = d && !s && !a, z = [
|
|
58
|
+
S,
|
|
59
|
+
y ? "cursor-pointer hover:opacity-80 transition-opacity" : ""
|
|
47
60
|
].filter(Boolean).join(" ");
|
|
48
|
-
return /* @__PURE__ */
|
|
49
|
-
/* @__PURE__ */
|
|
61
|
+
return /* @__PURE__ */ x(H, { children: [
|
|
62
|
+
/* @__PURE__ */ x(
|
|
50
63
|
"div",
|
|
51
64
|
{
|
|
52
65
|
className: "relative inline-block",
|
|
53
|
-
style:
|
|
66
|
+
style: k(),
|
|
54
67
|
"data-testid": r,
|
|
55
|
-
"data-state":
|
|
68
|
+
"data-state": a ? "loading" : s ? "error" : "loaded",
|
|
56
69
|
children: [
|
|
57
|
-
|
|
70
|
+
a && $ && /* @__PURE__ */ t(
|
|
58
71
|
"div",
|
|
59
72
|
{
|
|
60
73
|
className: "absolute inset-0 flex items-center justify-center bg-base-200",
|
|
61
74
|
"data-testid": `${r}-placeholder`,
|
|
62
|
-
children:
|
|
75
|
+
children: $
|
|
63
76
|
}
|
|
64
77
|
),
|
|
65
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ t(
|
|
66
79
|
"img",
|
|
67
80
|
{
|
|
68
|
-
ref:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
ref: (e) => {
|
|
82
|
+
L.current = e, typeof g == "function" ? g(e) : g && (g.current = e);
|
|
83
|
+
},
|
|
84
|
+
...D,
|
|
85
|
+
src: j,
|
|
86
|
+
alt: c,
|
|
72
87
|
className: z,
|
|
73
88
|
style: {
|
|
74
|
-
...
|
|
75
|
-
opacity:
|
|
89
|
+
...k(),
|
|
90
|
+
opacity: a ? 0 : 1,
|
|
76
91
|
transition: "opacity 150ms ease"
|
|
77
92
|
},
|
|
78
|
-
onLoad:
|
|
79
|
-
onError:
|
|
80
|
-
onClick:
|
|
81
|
-
onKeyDown:
|
|
82
|
-
tabIndex:
|
|
83
|
-
role:
|
|
84
|
-
"aria-label":
|
|
93
|
+
onLoad: F,
|
|
94
|
+
onError: K,
|
|
95
|
+
onClick: M,
|
|
96
|
+
onKeyDown: R,
|
|
97
|
+
tabIndex: y ? 0 : void 0,
|
|
98
|
+
role: y ? "button" : void 0,
|
|
99
|
+
"aria-label": y ? `${c || "Image"} (click to preview)` : void 0,
|
|
85
100
|
"data-testid": `${r}-img`
|
|
86
101
|
}
|
|
87
102
|
),
|
|
88
|
-
|
|
103
|
+
s && /* @__PURE__ */ t(
|
|
89
104
|
"div",
|
|
90
105
|
{
|
|
91
106
|
className: "flex items-center justify-center bg-base-200 text-base-content/50",
|
|
92
|
-
style:
|
|
107
|
+
style: k(),
|
|
93
108
|
"data-testid": `${r}-error`,
|
|
94
109
|
role: "img",
|
|
95
|
-
"aria-label": `Failed to load: ${
|
|
96
|
-
children: /* @__PURE__ */
|
|
110
|
+
"aria-label": `Failed to load: ${c || "image"}`,
|
|
111
|
+
children: /* @__PURE__ */ t(
|
|
97
112
|
"svg",
|
|
98
113
|
{
|
|
99
114
|
className: "w-12 h-12",
|
|
@@ -101,7 +116,7 @@ const R = "btn", V = "btn-circle", q = "btn-sm", A = T(
|
|
|
101
116
|
stroke: "currentColor",
|
|
102
117
|
viewBox: "0 0 24 24",
|
|
103
118
|
"aria-hidden": "true",
|
|
104
|
-
children: /* @__PURE__ */
|
|
119
|
+
children: /* @__PURE__ */ t(
|
|
105
120
|
"path",
|
|
106
121
|
{
|
|
107
122
|
strokeLinecap: "round",
|
|
@@ -117,26 +132,26 @@ const R = "btn", V = "btn-circle", q = "btn-sm", A = T(
|
|
|
117
132
|
]
|
|
118
133
|
}
|
|
119
134
|
),
|
|
120
|
-
|
|
135
|
+
E && /* @__PURE__ */ t(
|
|
121
136
|
"div",
|
|
122
137
|
{
|
|
123
138
|
className: "fixed inset-0 z-50 bg-black bg-opacity-80 flex items-center justify-center p-4",
|
|
124
|
-
onClick:
|
|
125
|
-
onKeyDown:
|
|
139
|
+
onClick: P,
|
|
140
|
+
onKeyDown: W,
|
|
126
141
|
role: "dialog",
|
|
127
142
|
"aria-modal": "true",
|
|
128
|
-
"aria-label": `Preview: ${
|
|
143
|
+
"aria-label": `Preview: ${c || "Image"}`,
|
|
129
144
|
"data-testid": `${r}-preview`,
|
|
130
|
-
children: /* @__PURE__ */
|
|
131
|
-
/* @__PURE__ */
|
|
145
|
+
children: /* @__PURE__ */ x("div", { className: "relative max-w-full max-h-full", children: [
|
|
146
|
+
/* @__PURE__ */ t(
|
|
132
147
|
"button",
|
|
133
148
|
{
|
|
134
|
-
className: `absolute top-4 right-4 ${
|
|
135
|
-
onClick:
|
|
149
|
+
className: `absolute top-4 right-4 ${q} ${A} ${G}`,
|
|
150
|
+
onClick: P,
|
|
136
151
|
"aria-label": "Close preview",
|
|
137
152
|
autoFocus: !0,
|
|
138
153
|
"data-testid": `${r}-preview-close`,
|
|
139
|
-
children: /* @__PURE__ */
|
|
154
|
+
children: /* @__PURE__ */ t(
|
|
140
155
|
"svg",
|
|
141
156
|
{
|
|
142
157
|
className: "w-6 h-6",
|
|
@@ -144,7 +159,7 @@ const R = "btn", V = "btn-circle", q = "btn-sm", A = T(
|
|
|
144
159
|
stroke: "currentColor",
|
|
145
160
|
viewBox: "0 0 24 24",
|
|
146
161
|
"aria-hidden": "true",
|
|
147
|
-
children: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ t(
|
|
148
163
|
"path",
|
|
149
164
|
{
|
|
150
165
|
strokeLinecap: "round",
|
|
@@ -157,11 +172,11 @@ const R = "btn", V = "btn-circle", q = "btn-sm", A = T(
|
|
|
157
172
|
)
|
|
158
173
|
}
|
|
159
174
|
),
|
|
160
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ t(
|
|
161
176
|
"img",
|
|
162
177
|
{
|
|
163
|
-
src:
|
|
164
|
-
alt:
|
|
178
|
+
src: m,
|
|
179
|
+
alt: c,
|
|
165
180
|
className: "max-w-full max-h-[90vh] object-contain",
|
|
166
181
|
onClick: (e) => e.stopPropagation(),
|
|
167
182
|
"data-testid": `${r}-preview-img`
|
|
@@ -173,8 +188,8 @@ const R = "btn", V = "btn-circle", q = "btn-sm", A = T(
|
|
|
173
188
|
] });
|
|
174
189
|
}
|
|
175
190
|
);
|
|
176
|
-
|
|
191
|
+
I.displayName = "Image";
|
|
177
192
|
export {
|
|
178
|
-
|
|
193
|
+
I as Image
|
|
179
194
|
};
|
|
180
195
|
//# sourceMappingURL=Image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../src/components/Image.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef, useCallback } from 'react'\n\n// DaisyUI classes\nconst dBtn = 'btn'\nconst dBtnCircle = 'btn-circle'\nconst dBtnSm = 'btn-sm'\n\nexport interface ImageProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {\n /** Image source URL */\n src: string\n /** Alternative text for the image */\n alt?: string\n /** Fallback image URL when source fails to load */\n fallback?: string\n /** Placeholder content shown while loading */\n placeholder?: React.ReactNode\n /** Enable click to preview image in lightbox */\n preview?: boolean\n /** Image width */\n width?: string | number\n /** Image height */\n height?: string | number\n /** Additional CSS classes */\n className?: string\n /** Callback when image loads successfully */\n onLoad?: () => void\n /** Callback when image fails to load */\n onError?: () => void\n /** Test ID for the component */\n 'data-testid'?: string\n}\n\nexport const Image = forwardRef<HTMLImageElement, ImageProps>(\n (\n {\n src,\n alt = '',\n fallback,\n placeholder,\n preview = true,\n width,\n height,\n className = '',\n onLoad,\n onError,\n 'data-testid': testId = 'image',\n ...props\n },\n ref\n ) => {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [showPreview, setShowPreview] = useState(false)\n const [currentSrc, setCurrentSrc] = useState(src)\n const [hasTriedFallback, setHasTriedFallback] = useState(false)\n\n useEffect(() => {\n setLoading(true)\n setError(false)\n setHasTriedFallback(false)\n setCurrentSrc(src)\n }, [src])\n\n const handleLoad = useCallback(() => {\n setLoading(false)\n setError(false)\n onLoad?.()\n }, [onLoad])\n\n const handleError = useCallback(() => {\n onError?.()\n if (fallback && !hasTriedFallback) {\n setHasTriedFallback(true)\n setCurrentSrc(fallback)\n setLoading(true)\n setError(false)\n return\n }\n setLoading(false)\n setError(true)\n }, [fallback, hasTriedFallback, onError])\n\n const handleImageClick = useCallback(() => {\n if (preview && !error && !loading) {\n setShowPreview(true)\n }\n }, [preview, error, loading])\n\n const handleClosePreview = useCallback(() => {\n setShowPreview(false)\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (preview && !error && !loading && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n setShowPreview(true)\n }\n },\n [preview, error, loading]\n )\n\n const handlePreviewKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setShowPreview(false)\n }\n }, [])\n\n const getStyle = (): React.CSSProperties => {\n const style: React.CSSProperties = {}\n if (width) {\n style.width = typeof width === 'number' ? `${width}px` : width\n }\n if (height) {\n style.height = typeof height === 'number' ? `${height}px` : height\n }\n return style\n }\n\n const isPreviewable = preview && !error && !loading\n const imageClasses = [\n className,\n isPreviewable ? 'cursor-pointer hover:opacity-80 transition-opacity' : '',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <>\n <div\n className=\"relative inline-block\"\n style={getStyle()}\n data-testid={testId}\n data-state={loading ? 'loading' : error ? 'error' : 'loaded'}\n >\n {loading && placeholder && (\n <div\n className=\"absolute inset-0 flex items-center justify-center bg-base-200\"\n data-testid={`${testId}-placeholder`}\n >\n {placeholder}\n </div>\n )}\n <img\n ref={ref}\n {...props}\n src={currentSrc}\n alt={alt}\n className={imageClasses}\n style={{\n ...getStyle(),\n opacity: loading ? 0 : 1,\n transition: 'opacity 150ms ease',\n }}\n onLoad={handleLoad}\n onError={handleError}\n onClick={handleImageClick}\n onKeyDown={handleKeyDown}\n tabIndex={isPreviewable ? 0 : undefined}\n role={isPreviewable ? 'button' : undefined}\n aria-label={isPreviewable ? `${alt || 'Image'} (click to preview)` : undefined}\n data-testid={`${testId}-img`}\n />\n {error && (\n <div\n className=\"flex items-center justify-center bg-base-200 text-base-content/50\"\n style={getStyle()}\n data-testid={`${testId}-error`}\n role=\"img\"\n aria-label={`Failed to load: ${alt || 'image'}`}\n >\n <svg\n className=\"w-12 h-12\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </div>\n )}\n </div>\n\n {showPreview && (\n <div\n className=\"fixed inset-0 z-50 bg-black bg-opacity-80 flex items-center justify-center p-4\"\n onClick={handleClosePreview}\n onKeyDown={handlePreviewKeyDown}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`Preview: ${alt || 'Image'}`}\n data-testid={`${testId}-preview`}\n >\n <div className=\"relative max-w-full max-h-full\">\n <button\n className={`absolute top-4 right-4 ${dBtn} ${dBtnCircle} ${dBtnSm}`}\n onClick={handleClosePreview}\n aria-label=\"Close preview\"\n autoFocus\n data-testid={`${testId}-preview-close`}\n >\n <svg\n className=\"w-6 h-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n <img\n src={src}\n alt={alt}\n className=\"max-w-full max-h-[90vh] object-contain\"\n onClick={(e) => e.stopPropagation()}\n data-testid={`${testId}-preview-img`}\n />\n </div>\n </div>\n )}\n </>\n )\n }\n)\n\nImage.displayName = 'Image'\n"],"names":["dBtn","dBtnCircle","dBtnSm","Image","forwardRef","src","alt","fallback","placeholder","preview","width","height","className","onLoad","onError","testId","props","ref","loading","setLoading","useState","error","setError","showPreview","setShowPreview","currentSrc","setCurrentSrc","hasTriedFallback","setHasTriedFallback","useEffect","handleLoad","useCallback","handleError","handleImageClick","handleClosePreview","handleKeyDown","handlePreviewKeyDown","getStyle","style","isPreviewable","imageClasses","jsxs","Fragment","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../src/components/Image.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef, useCallback, useRef } from 'react'\n\n// DaisyUI classes\nconst dBtn = 'btn'\nconst dBtnCircle = 'btn-circle'\nconst dBtnSm = 'btn-sm'\n\nexport interface ImageProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {\n /** Image source URL */\n src: string\n /** Alternative text for the image */\n alt?: string\n /** Fallback image URL when source fails to load */\n fallback?: string\n /** Placeholder content shown while loading */\n placeholder?: React.ReactNode\n /** Enable click to preview image in lightbox */\n preview?: boolean\n /** Image width */\n width?: string | number\n /** Image height */\n height?: string | number\n /** Additional CSS classes */\n className?: string\n /** Callback when image loads successfully */\n onLoad?: () => void\n /** Callback when image fails to load */\n onError?: () => void\n /** Test ID for the component */\n 'data-testid'?: string\n}\n\nexport const Image = forwardRef<HTMLImageElement, ImageProps>(\n (\n {\n src,\n alt = '',\n fallback,\n placeholder,\n preview = true,\n width,\n height,\n className = '',\n onLoad,\n onError,\n 'data-testid': testId = 'image',\n ...props\n },\n ref\n ) => {\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState(false)\n const [showPreview, setShowPreview] = useState(false)\n const [currentSrc, setCurrentSrc] = useState(src)\n const [hasTriedFallback, setHasTriedFallback] = useState(false)\n const imgRef = useRef<HTMLImageElement | null>(null)\n\n useEffect(() => {\n setLoading(true)\n setError(false)\n setHasTriedFallback(false)\n setCurrentSrc(src)\n }, [src])\n\n useEffect(() => {\n const img = imgRef.current\n if (!img || !img.complete) return\n\n if (img.naturalWidth > 0) {\n setLoading(false)\n setError(false)\n return\n }\n\n if (fallback && !hasTriedFallback) {\n setHasTriedFallback(true)\n setCurrentSrc(fallback)\n setLoading(true)\n setError(false)\n return\n }\n\n setLoading(false)\n setError(true)\n }, [currentSrc, fallback, hasTriedFallback])\n\n const handleLoad = useCallback(() => {\n setLoading(false)\n setError(false)\n onLoad?.()\n }, [onLoad])\n\n const handleError = useCallback(() => {\n onError?.()\n if (fallback && !hasTriedFallback) {\n setHasTriedFallback(true)\n setCurrentSrc(fallback)\n setLoading(true)\n setError(false)\n return\n }\n setLoading(false)\n setError(true)\n }, [fallback, hasTriedFallback, onError])\n\n const handleImageClick = useCallback(() => {\n if (preview && !error && !loading) {\n setShowPreview(true)\n }\n }, [preview, error, loading])\n\n const handleClosePreview = useCallback(() => {\n setShowPreview(false)\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (preview && !error && !loading && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n setShowPreview(true)\n }\n },\n [preview, error, loading]\n )\n\n const handlePreviewKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setShowPreview(false)\n }\n }, [])\n\n const getStyle = (): React.CSSProperties => {\n const style: React.CSSProperties = {}\n if (width) {\n style.width = typeof width === 'number' ? `${width}px` : width\n }\n if (height) {\n style.height = typeof height === 'number' ? `${height}px` : height\n }\n return style\n }\n\n const isPreviewable = preview && !error && !loading\n const imageClasses = [\n className,\n isPreviewable ? 'cursor-pointer hover:opacity-80 transition-opacity' : '',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <>\n <div\n className=\"relative inline-block\"\n style={getStyle()}\n data-testid={testId}\n data-state={loading ? 'loading' : error ? 'error' : 'loaded'}\n >\n {loading && placeholder && (\n <div\n className=\"absolute inset-0 flex items-center justify-center bg-base-200\"\n data-testid={`${testId}-placeholder`}\n >\n {placeholder}\n </div>\n )}\n <img\n ref={(node) => {\n imgRef.current = node\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n }}\n {...props}\n src={currentSrc}\n alt={alt}\n className={imageClasses}\n style={{\n ...getStyle(),\n opacity: loading ? 0 : 1,\n transition: 'opacity 150ms ease',\n }}\n onLoad={handleLoad}\n onError={handleError}\n onClick={handleImageClick}\n onKeyDown={handleKeyDown}\n tabIndex={isPreviewable ? 0 : undefined}\n role={isPreviewable ? 'button' : undefined}\n aria-label={isPreviewable ? `${alt || 'Image'} (click to preview)` : undefined}\n data-testid={`${testId}-img`}\n />\n {error && (\n <div\n className=\"flex items-center justify-center bg-base-200 text-base-content/50\"\n style={getStyle()}\n data-testid={`${testId}-error`}\n role=\"img\"\n aria-label={`Failed to load: ${alt || 'image'}`}\n >\n <svg\n className=\"w-12 h-12\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </div>\n )}\n </div>\n\n {showPreview && (\n <div\n className=\"fixed inset-0 z-50 bg-black bg-opacity-80 flex items-center justify-center p-4\"\n onClick={handleClosePreview}\n onKeyDown={handlePreviewKeyDown}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`Preview: ${alt || 'Image'}`}\n data-testid={`${testId}-preview`}\n >\n <div className=\"relative max-w-full max-h-full\">\n <button\n className={`absolute top-4 right-4 ${dBtn} ${dBtnCircle} ${dBtnSm}`}\n onClick={handleClosePreview}\n aria-label=\"Close preview\"\n autoFocus\n data-testid={`${testId}-preview-close`}\n >\n <svg\n className=\"w-6 h-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n <img\n src={src}\n alt={alt}\n className=\"max-w-full max-h-[90vh] object-contain\"\n onClick={(e) => e.stopPropagation()}\n data-testid={`${testId}-preview-img`}\n />\n </div>\n </div>\n )}\n </>\n )\n }\n)\n\nImage.displayName = 'Image'\n"],"names":["dBtn","dBtnCircle","dBtnSm","Image","forwardRef","src","alt","fallback","placeholder","preview","width","height","className","onLoad","onError","testId","props","ref","loading","setLoading","useState","error","setError","showPreview","setShowPreview","currentSrc","setCurrentSrc","hasTriedFallback","setHasTriedFallback","imgRef","useRef","useEffect","img","handleLoad","useCallback","handleError","handleImageClick","handleClosePreview","handleKeyDown","handlePreviewKeyDown","getStyle","style","isPreviewable","imageClasses","jsxs","Fragment","jsx","node"],"mappings":"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"}
|