@bamboocss/preset-base 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs ADDED
@@ -0,0 +1,3328 @@
1
+ // src/conditions.ts
2
+ var conditions = {
3
+ hover: "&:is(:hover, [data-hover])",
4
+ focus: "&:is(:focus, [data-focus])",
5
+ focusWithin: "&:focus-within",
6
+ focusVisible: "&:is(:focus-visible, [data-focus-visible])",
7
+ disabled: "&:is(:disabled, [disabled], [data-disabled], [aria-disabled=true])",
8
+ active: "&:is(:active, [data-active])",
9
+ visited: "&:visited",
10
+ target: "&:target",
11
+ readOnly: "&:is(:read-only, [data-read-only], [aria-readonly=true])",
12
+ readWrite: "&:read-write",
13
+ empty: "&:is(:empty, [data-empty])",
14
+ checked: '&:is(:checked, [data-checked], [aria-checked=true], [data-state="checked"])',
15
+ enabled: "&:enabled",
16
+ expanded: '&:is([aria-expanded=true], [data-expanded], [data-state="expanded"])',
17
+ highlighted: "&[data-highlighted]",
18
+ complete: "&[data-complete]",
19
+ incomplete: "&[data-incomplete]",
20
+ dragging: "&[data-dragging]",
21
+ before: "&::before",
22
+ after: "&::after",
23
+ firstLetter: "&::first-letter",
24
+ firstLine: "&::first-line",
25
+ marker: "&::marker, &::-webkit-details-marker",
26
+ selection: "&::selection",
27
+ file: "&::file-selector-button",
28
+ backdrop: "&::backdrop",
29
+ first: "&:first-child",
30
+ last: "&:last-child",
31
+ only: "&:only-child",
32
+ even: "&:nth-child(even)",
33
+ odd: "&:nth-child(odd)",
34
+ firstOfType: "&:first-of-type",
35
+ lastOfType: "&:last-of-type",
36
+ onlyOfType: "&:only-of-type",
37
+ peerFocus: ".peer:is(:focus, [data-focus]) ~ &",
38
+ peerHover: ".peer:is(:hover, [data-hover]) ~ &",
39
+ peerActive: ".peer:is(:active, [data-active]) ~ &",
40
+ peerFocusWithin: ".peer:focus-within ~ &",
41
+ peerFocusVisible: ".peer:is(:focus-visible, [data-focus-visible]) ~ &",
42
+ peerDisabled: ".peer:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]) ~ &",
43
+ peerChecked: '.peer:is(:checked, [data-checked], [aria-checked=true], [data-state="checked"]) ~ &',
44
+ peerInvalid: ".peer:is(:invalid, [data-invalid], [aria-invalid=true]) ~ &",
45
+ peerExpanded: '.peer:is([aria-expanded=true], [data-expanded], [data-state="expanded"]) ~ &',
46
+ peerPlaceholderShown: ".peer:placeholder-shown ~ &",
47
+ groupFocus: ".group:is(:focus, [data-focus]) &",
48
+ groupHover: ".group:is(:hover, [data-hover]) &",
49
+ groupActive: ".group:is(:active, [data-active]) &",
50
+ groupFocusWithin: ".group:focus-within &",
51
+ groupFocusVisible: ".group:is(:focus-visible, [data-focus-visible]) &",
52
+ groupDisabled: ".group:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]) &",
53
+ groupChecked: '.group:is(:checked, [data-checked], [aria-checked=true], [data-state="checked"]) &',
54
+ groupExpanded: '.group:is([aria-expanded=true], [data-expanded], [data-state="expanded"]) &',
55
+ groupInvalid: ".group:is(:invalid, [data-invalid], [aria-invalid=true]) &",
56
+ indeterminate: '&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed], [data-state="indeterminate"])',
57
+ required: "&:is(:required, [data-required], [aria-required=true])",
58
+ valid: "&:is(:valid, [data-valid])",
59
+ invalid: "&:is(:invalid, [data-invalid], [aria-invalid=true])",
60
+ autofill: "&:autofill",
61
+ inRange: "&:is(:in-range, [data-in-range])",
62
+ outOfRange: "&:is(:out-of-range, [data-outside-range])",
63
+ placeholder: "&::placeholder, &[data-placeholder]",
64
+ placeholderShown: "&:is(:placeholder-shown, [data-placeholder-shown])",
65
+ pressed: "&:is([aria-pressed=true], [data-pressed])",
66
+ selected: "&:is([aria-selected=true], [data-selected])",
67
+ grabbed: "&:is([aria-grabbed=true], [data-grabbed])",
68
+ underValue: "&[data-state=under-value]",
69
+ overValue: "&[data-state=over-value]",
70
+ atValue: "&[data-state=at-value]",
71
+ default: "&:default",
72
+ optional: "&:optional",
73
+ open: '&:is([open], [data-open], [data-state="open"], :popover-open)',
74
+ closed: '&:is([closed], [data-closed], [data-state="closed"])',
75
+ fullscreen: "&:is(:fullscreen, [data-fullscreen])",
76
+ loading: "&:is([data-loading], [aria-busy=true])",
77
+ hidden: "&:is([hidden], [data-hidden])",
78
+ current: "&:is([aria-current=true], [data-current])",
79
+ currentPage: "&[aria-current=page]",
80
+ currentStep: "&[aria-current=step]",
81
+ today: "&[data-today]",
82
+ unavailable: "&[data-unavailable]",
83
+ rangeStart: "&[data-range-start]",
84
+ rangeEnd: "&[data-range-end]",
85
+ now: "&[data-now]",
86
+ topmost: "&[data-topmost]",
87
+ motionReduce: "@media (prefers-reduced-motion: reduce)",
88
+ motionSafe: "@media (prefers-reduced-motion: no-preference)",
89
+ print: "@media print",
90
+ landscape: "@media (orientation: landscape)",
91
+ portrait: "@media (orientation: portrait)",
92
+ dark: ".dark &",
93
+ light: ".light &",
94
+ osDark: "@media (prefers-color-scheme: dark)",
95
+ osLight: "@media (prefers-color-scheme: light)",
96
+ highContrast: "@media (forced-colors: active)",
97
+ lessContrast: "@media (prefers-contrast: less)",
98
+ moreContrast: "@media (prefers-contrast: more)",
99
+ ltr: ":where([dir=ltr], :dir(ltr)) &",
100
+ rtl: ":where([dir=rtl], :dir(rtl)) &",
101
+ scrollbar: "&::-webkit-scrollbar",
102
+ scrollbarThumb: "&::-webkit-scrollbar-thumb",
103
+ scrollbarTrack: "&::-webkit-scrollbar-track",
104
+ horizontal: "&[data-orientation=horizontal]",
105
+ vertical: "&[data-orientation=vertical]",
106
+ icon: "& :where(svg)",
107
+ starting: "@starting-style",
108
+ noscript: "@media (scripting: none)",
109
+ invertedColors: "@media (inverted-colors: inverted)"
110
+ };
111
+
112
+ // src/global-css.ts
113
+ var EMPTY = "/*-*/ /*-*/";
114
+ var globalCss = {
115
+ "*, ::before, ::after, ::backdrop": {
116
+ "--blur": EMPTY,
117
+ "--brightness": EMPTY,
118
+ "--contrast": EMPTY,
119
+ "--grayscale": EMPTY,
120
+ "--hue-rotate": EMPTY,
121
+ "--invert": EMPTY,
122
+ "--saturate": EMPTY,
123
+ "--sepia": EMPTY,
124
+ "--drop-shadow": EMPTY,
125
+ "--backdrop-blur": EMPTY,
126
+ "--backdrop-brightness": EMPTY,
127
+ "--backdrop-contrast": EMPTY,
128
+ "--backdrop-grayscale": EMPTY,
129
+ "--backdrop-hue-rotate": EMPTY,
130
+ "--backdrop-invert": EMPTY,
131
+ "--backdrop-opacity": EMPTY,
132
+ "--backdrop-saturate": EMPTY,
133
+ "--backdrop-sepia": EMPTY,
134
+ "--gradient-from-position": EMPTY,
135
+ "--gradient-to-position": EMPTY,
136
+ "--gradient-via-position": EMPTY,
137
+ "--scroll-snap-strictness": "proximity",
138
+ "--border-spacing-x": 0,
139
+ "--border-spacing-y": 0,
140
+ "--translate-x": 0,
141
+ "--translate-y": 0,
142
+ "--rotate": 0,
143
+ "--rotate-x": 0,
144
+ "--rotate-y": 0,
145
+ "--skew-x": 0,
146
+ "--skew-y": 0,
147
+ "--scale-x": 1,
148
+ "--scale-y": 1
149
+ }
150
+ };
151
+
152
+ // src/patterns.ts
153
+ function definePattern(config) {
154
+ return config;
155
+ }
156
+ var box = definePattern({
157
+ transform(props) {
158
+ return props;
159
+ }
160
+ });
161
+ var flex = definePattern({
162
+ properties: {
163
+ align: { type: "property", value: "alignItems" },
164
+ justify: { type: "property", value: "justifyContent" },
165
+ direction: { type: "property", value: "flexDirection" },
166
+ wrap: { type: "property", value: "flexWrap" },
167
+ basis: { type: "property", value: "flexBasis" },
168
+ grow: { type: "property", value: "flexGrow" },
169
+ shrink: { type: "property", value: "flexShrink" }
170
+ },
171
+ transform(props) {
172
+ const { direction, align, justify, wrap: wrap2, basis, grow, shrink, ...rest } = props;
173
+ return {
174
+ display: "flex",
175
+ flexDirection: direction,
176
+ alignItems: align,
177
+ justifyContent: justify,
178
+ flexWrap: wrap2,
179
+ flexBasis: basis,
180
+ flexGrow: grow,
181
+ flexShrink: shrink,
182
+ ...rest
183
+ };
184
+ }
185
+ });
186
+ var stack = definePattern({
187
+ properties: {
188
+ align: { type: "property", value: "alignItems" },
189
+ justify: { type: "property", value: "justifyContent" },
190
+ direction: { type: "property", value: "flexDirection" },
191
+ gap: { type: "property", value: "gap" }
192
+ },
193
+ defaultValues: {
194
+ direction: "column",
195
+ gap: "8px"
196
+ },
197
+ transform(props) {
198
+ const { align, justify, direction, gap, ...rest } = props;
199
+ return {
200
+ display: "flex",
201
+ flexDirection: direction,
202
+ alignItems: align,
203
+ justifyContent: justify,
204
+ gap,
205
+ ...rest
206
+ };
207
+ }
208
+ });
209
+ var vstack = definePattern({
210
+ jsxName: "VStack",
211
+ properties: {
212
+ justify: { type: "property", value: "justifyContent" },
213
+ gap: { type: "property", value: "gap" }
214
+ },
215
+ defaultValues: {
216
+ gap: "8px"
217
+ },
218
+ transform(props) {
219
+ const { justify, gap, ...rest } = props;
220
+ return {
221
+ display: "flex",
222
+ alignItems: "center",
223
+ justifyContent: justify,
224
+ gap,
225
+ flexDirection: "column",
226
+ ...rest
227
+ };
228
+ }
229
+ });
230
+ var hstack = definePattern({
231
+ jsxName: "HStack",
232
+ properties: {
233
+ justify: { type: "property", value: "justifyContent" },
234
+ gap: { type: "property", value: "gap" }
235
+ },
236
+ defaultValues: {
237
+ gap: "8px"
238
+ },
239
+ transform(props) {
240
+ const { justify, gap, ...rest } = props;
241
+ return {
242
+ display: "flex",
243
+ alignItems: "center",
244
+ justifyContent: justify,
245
+ gap,
246
+ flexDirection: "row",
247
+ ...rest
248
+ };
249
+ }
250
+ });
251
+ var spacer = definePattern({
252
+ properties: {
253
+ size: { type: "token", value: "spacing" }
254
+ },
255
+ transform(props, { map, isCssUnit, isCssVar }) {
256
+ const { size, ...rest } = props;
257
+ return {
258
+ alignSelf: "stretch",
259
+ justifySelf: "stretch",
260
+ flex: map(size, (v) => {
261
+ if (v == null) return "1";
262
+ const val = isCssUnit(v) || isCssVar(v) ? v : `token(spacing.${v}, ${v})`;
263
+ return `0 0 ${val}`;
264
+ }),
265
+ ...rest
266
+ };
267
+ }
268
+ });
269
+ var circle = definePattern({
270
+ properties: {
271
+ size: { type: "property", value: "width" }
272
+ },
273
+ transform(props) {
274
+ const { size, ...rest } = props;
275
+ return {
276
+ display: "flex",
277
+ alignItems: "center",
278
+ justifyContent: "center",
279
+ flex: "0 0 auto",
280
+ width: size,
281
+ height: size,
282
+ borderRadius: "9999px",
283
+ ...rest
284
+ };
285
+ }
286
+ });
287
+ var square = definePattern({
288
+ properties: {
289
+ size: { type: "property", value: "width" }
290
+ },
291
+ transform(props) {
292
+ const { size, ...rest } = props;
293
+ return {
294
+ display: "flex",
295
+ alignItems: "center",
296
+ justifyContent: "center",
297
+ flex: "0 0 auto",
298
+ width: size,
299
+ height: size,
300
+ ...rest
301
+ };
302
+ }
303
+ });
304
+ var grid = definePattern({
305
+ properties: {
306
+ gap: { type: "property", value: "gap" },
307
+ columnGap: { type: "property", value: "gap" },
308
+ rowGap: { type: "property", value: "gap" },
309
+ columns: { type: "number" },
310
+ minChildWidth: { type: "token", value: "sizes", property: "width" }
311
+ },
312
+ defaultValues(props) {
313
+ return { gap: props.columnGap || props.rowGap ? void 0 : "8px" };
314
+ },
315
+ transform(props, { map, isCssUnit }) {
316
+ const { columnGap, rowGap, gap, columns, minChildWidth, ...rest } = props;
317
+ const getValue = (v) => isCssUnit(v) ? v : `token(sizes.${v}, ${v})`;
318
+ return {
319
+ display: "grid",
320
+ gridTemplateColumns: columns != null ? map(columns, (v) => `repeat(${v}, minmax(0, 1fr))`) : minChildWidth != null ? map(minChildWidth, (v) => `repeat(auto-fit, minmax(${getValue(v)}, 1fr))`) : void 0,
321
+ gap,
322
+ columnGap,
323
+ rowGap,
324
+ ...rest
325
+ };
326
+ }
327
+ });
328
+ var gridItem = definePattern({
329
+ properties: {
330
+ colSpan: { type: "number" },
331
+ rowSpan: { type: "number" },
332
+ colStart: { type: "number" },
333
+ rowStart: { type: "number" },
334
+ colEnd: { type: "number" },
335
+ rowEnd: { type: "number" }
336
+ },
337
+ transform(props, { map }) {
338
+ const { colSpan, rowSpan, colStart, rowStart, colEnd, rowEnd, ...rest } = props;
339
+ const spanFn = (v) => v === "auto" ? v : `span ${v}`;
340
+ return {
341
+ gridColumn: colSpan != null ? map(colSpan, spanFn) : void 0,
342
+ gridRow: rowSpan != null ? map(rowSpan, spanFn) : void 0,
343
+ gridColumnStart: colStart,
344
+ gridColumnEnd: colEnd,
345
+ gridRowStart: rowStart,
346
+ gridRowEnd: rowEnd,
347
+ ...rest
348
+ };
349
+ }
350
+ });
351
+ var wrap = definePattern({
352
+ properties: {
353
+ gap: { type: "property", value: "gap" },
354
+ rowGap: { type: "property", value: "gap" },
355
+ columnGap: { type: "property", value: "gap" },
356
+ align: { type: "property", value: "alignItems" },
357
+ justify: { type: "property", value: "justifyContent" }
358
+ },
359
+ transform(props) {
360
+ const { columnGap, rowGap, gap = columnGap || rowGap ? void 0 : "8px", align, justify, ...rest } = props;
361
+ return {
362
+ display: "flex",
363
+ flexWrap: "wrap",
364
+ alignItems: align,
365
+ justifyContent: justify,
366
+ gap,
367
+ columnGap,
368
+ rowGap,
369
+ ...rest
370
+ };
371
+ }
372
+ });
373
+ var container = definePattern({
374
+ transform(props) {
375
+ return {
376
+ position: "relative",
377
+ maxWidth: "8xl",
378
+ mx: "auto",
379
+ px: { base: "4", md: "6", lg: "8" },
380
+ ...props
381
+ };
382
+ }
383
+ });
384
+ var center = definePattern({
385
+ properties: {
386
+ inline: { type: "boolean" }
387
+ },
388
+ transform(props) {
389
+ const { inline, ...rest } = props;
390
+ return {
391
+ display: inline ? "inline-flex" : "flex",
392
+ alignItems: "center",
393
+ justifyContent: "center",
394
+ ...rest
395
+ };
396
+ }
397
+ });
398
+ var aspectRatio = definePattern({
399
+ properties: {
400
+ ratio: { type: "number" }
401
+ },
402
+ blocklist: ["aspectRatio"],
403
+ transform(props, { map }) {
404
+ const { ratio = 4 / 3, ...rest } = props;
405
+ return {
406
+ position: "relative",
407
+ _before: {
408
+ content: `""`,
409
+ display: "block",
410
+ height: "0",
411
+ paddingBottom: map(ratio, (r) => `${1 / r * 100}%`)
412
+ },
413
+ "&>*": {
414
+ display: "flex",
415
+ justifyContent: "center",
416
+ alignItems: "center",
417
+ overflow: "hidden",
418
+ position: "absolute",
419
+ inset: "0",
420
+ width: "100%",
421
+ height: "100%"
422
+ },
423
+ "&>img, &>video": {
424
+ objectFit: "cover"
425
+ },
426
+ ...rest
427
+ };
428
+ }
429
+ });
430
+ var divider = definePattern({
431
+ properties: {
432
+ orientation: { type: "enum", value: ["horizontal", "vertical"] },
433
+ thickness: { type: "token", value: "sizes", property: "borderWidth" },
434
+ color: { type: "token", value: "colors", property: "borderColor" }
435
+ },
436
+ defaultValues: {
437
+ orientation: "horizontal",
438
+ thickness: "1px"
439
+ },
440
+ transform(props, { map }) {
441
+ const { orientation, thickness, color, ...rest } = props;
442
+ return {
443
+ "--thickness": thickness,
444
+ width: map(orientation, (v) => v === "vertical" ? void 0 : "100%"),
445
+ height: map(orientation, (v) => v === "horizontal" ? void 0 : "100%"),
446
+ borderBlockEndWidth: map(orientation, (v) => v === "horizontal" ? "var(--thickness)" : void 0),
447
+ borderInlineEndWidth: map(orientation, (v) => v === "vertical" ? "var(--thickness)" : void 0),
448
+ borderColor: color,
449
+ ...rest
450
+ };
451
+ }
452
+ });
453
+ var linkOverlay = definePattern({
454
+ jsxElement: "a",
455
+ transform(props) {
456
+ return {
457
+ _before: {
458
+ content: '""',
459
+ position: "absolute",
460
+ inset: "0",
461
+ zIndex: "0",
462
+ ...props["_before"]
463
+ },
464
+ ...props
465
+ };
466
+ }
467
+ });
468
+ var float = definePattern({
469
+ properties: {
470
+ offsetX: { type: "token", value: "spacing", property: "left" },
471
+ offsetY: { type: "token", value: "spacing", property: "top" },
472
+ offset: { type: "token", value: "spacing", property: "top" },
473
+ placement: {
474
+ type: "enum",
475
+ value: [
476
+ "bottom-end",
477
+ "bottom-start",
478
+ "top-end",
479
+ "top-start",
480
+ "bottom-center",
481
+ "top-center",
482
+ "middle-center",
483
+ "middle-end",
484
+ "middle-start"
485
+ ]
486
+ }
487
+ },
488
+ defaultValues(props) {
489
+ const offset = props.offset || "0";
490
+ return { offset, offsetX: offset, offsetY: offset, placement: "top-end" };
491
+ },
492
+ transform(props, { map }) {
493
+ const { offset, offsetX, offsetY, placement, ...rest } = props;
494
+ return {
495
+ display: "inline-flex",
496
+ justifyContent: "center",
497
+ alignItems: "center",
498
+ position: "absolute",
499
+ insetBlockStart: map(placement, (v) => {
500
+ const [side] = v.split("-");
501
+ const map2 = { top: offsetY, middle: "50%", bottom: "auto" };
502
+ return map2[side];
503
+ }),
504
+ insetBlockEnd: map(placement, (v) => {
505
+ const [side] = v.split("-");
506
+ const map2 = { top: "auto", middle: "50%", bottom: offsetY };
507
+ return map2[side];
508
+ }),
509
+ insetInlineStart: map(placement, (v) => {
510
+ const [, align] = v.split("-");
511
+ const map2 = { start: offsetX, center: "50%", end: "auto" };
512
+ return map2[align];
513
+ }),
514
+ insetInlineEnd: map(placement, (v) => {
515
+ const [, align] = v.split("-");
516
+ const map2 = { start: "auto", center: "50%", end: offsetX };
517
+ return map2[align];
518
+ }),
519
+ translate: map(placement, (v) => {
520
+ const [side, align] = v.split("-");
521
+ const mapX = { start: "-50%", center: "-50%", end: "50%" };
522
+ const mapY = { top: "-50%", middle: "-50%", bottom: "50%" };
523
+ return `${mapX[align]} ${mapY[side]}`;
524
+ }),
525
+ ...rest
526
+ };
527
+ }
528
+ });
529
+ var bleed = definePattern({
530
+ properties: {
531
+ inline: { type: "property", value: "marginInline" },
532
+ block: { type: "property", value: "marginBlock" }
533
+ },
534
+ defaultValues: {
535
+ inline: "0",
536
+ block: "0"
537
+ },
538
+ transform(props, { map, isCssUnit, isCssVar }) {
539
+ const { inline, block, ...rest } = props;
540
+ const valueFn = (v) => isCssUnit(v) || isCssVar(v) ? v : `token(spacing.${v}, ${v})`;
541
+ return {
542
+ "--bleed-x": map(inline, valueFn),
543
+ "--bleed-y": map(block, valueFn),
544
+ marginInline: "calc(var(--bleed-x, 0) * -1)",
545
+ marginBlock: "calc(var(--bleed-y, 0) * -1)",
546
+ ...rest
547
+ };
548
+ }
549
+ });
550
+ var visuallyHidden = definePattern({
551
+ transform(props) {
552
+ return {
553
+ srOnly: true,
554
+ ...props
555
+ };
556
+ }
557
+ });
558
+ var cq = definePattern({
559
+ properties: {
560
+ name: { type: "token", value: "containerNames", property: "containerName" },
561
+ type: { type: "property", value: "containerType" }
562
+ },
563
+ defaultValues: {
564
+ type: "inline-size"
565
+ },
566
+ transform(props) {
567
+ const { name, type, ...rest } = props;
568
+ return {
569
+ containerType: type,
570
+ containerName: name,
571
+ ...rest
572
+ };
573
+ }
574
+ });
575
+ var patterns = {
576
+ box,
577
+ flex,
578
+ stack,
579
+ vstack,
580
+ hstack,
581
+ spacer,
582
+ square,
583
+ circle,
584
+ center,
585
+ linkOverlay,
586
+ aspectRatio,
587
+ grid,
588
+ gridItem,
589
+ wrap,
590
+ container,
591
+ divider,
592
+ float,
593
+ bleed,
594
+ visuallyHidden,
595
+ cq
596
+ };
597
+
598
+ // src/color-mix-transform.ts
599
+ var createColorMixTransform = (prop) => (value, args) => {
600
+ const mix = args.utils.colorMix(value);
601
+ if (mix.invalid) return { [prop]: value };
602
+ const cssVar = "--mix-" + prop;
603
+ return {
604
+ [cssVar]: mix.value,
605
+ [prop]: `var(${cssVar}, ${mix.color})`
606
+ };
607
+ };
608
+
609
+ // src/utilities/background.ts
610
+ var background = {
611
+ backgroundPosition: {
612
+ shorthand: "bgPosition",
613
+ className: "bg-p",
614
+ group: "Background"
615
+ },
616
+ backgroundPositionX: {
617
+ shorthand: "bgPositionX",
618
+ className: "bg-p-x",
619
+ group: "Background"
620
+ },
621
+ backgroundPositionY: {
622
+ shorthand: "bgPositionY",
623
+ className: "bg-p-y",
624
+ group: "Background"
625
+ },
626
+ backgroundAttachment: {
627
+ shorthand: "bgAttachment",
628
+ className: "bg-a",
629
+ group: "Background"
630
+ },
631
+ backgroundClip: {
632
+ shorthand: "bgClip",
633
+ className: "bg-cp",
634
+ group: "Background",
635
+ transform(value) {
636
+ return {
637
+ backgroundClip: value,
638
+ WebkitBackgroundClip: value
639
+ };
640
+ }
641
+ },
642
+ background: {
643
+ shorthand: "bg",
644
+ className: "bg",
645
+ values: "colors",
646
+ group: "Background",
647
+ transform: createColorMixTransform("background")
648
+ },
649
+ backgroundColor: {
650
+ shorthand: "bgColor",
651
+ className: "bg-c",
652
+ values: "colors",
653
+ group: "Background",
654
+ transform: createColorMixTransform("backgroundColor")
655
+ },
656
+ backgroundOrigin: {
657
+ shorthand: "bgOrigin",
658
+ className: "bg-o",
659
+ group: "Background"
660
+ },
661
+ backgroundImage: {
662
+ shorthand: "bgImage",
663
+ className: "bg-i",
664
+ values: "assets",
665
+ group: "Background"
666
+ },
667
+ backgroundRepeat: {
668
+ shorthand: "bgRepeat",
669
+ className: "bg-r",
670
+ group: "Background"
671
+ },
672
+ backgroundBlendMode: {
673
+ shorthand: "bgBlendMode",
674
+ className: "bg-bm",
675
+ group: "Background"
676
+ },
677
+ backgroundSize: {
678
+ shorthand: "bgSize",
679
+ className: "bg-s",
680
+ group: "Background"
681
+ }
682
+ };
683
+
684
+ // src/utilities/border.ts
685
+ var border = {
686
+ // Border Radius
687
+ borderRadius: {
688
+ className: "bdr",
689
+ shorthand: "rounded",
690
+ values: "radii",
691
+ group: "Border Radius"
692
+ },
693
+ borderTopLeftRadius: {
694
+ className: "bdr-tl",
695
+ shorthand: "roundedTopLeft",
696
+ values: "radii",
697
+ group: "Border Radius"
698
+ },
699
+ borderTopRightRadius: {
700
+ className: "bdr-tr",
701
+ shorthand: "roundedTopRight",
702
+ values: "radii",
703
+ group: "Border Radius"
704
+ },
705
+ borderBottomRightRadius: {
706
+ className: "bdr-br",
707
+ shorthand: "roundedBottomRight",
708
+ values: "radii",
709
+ group: "Border Radius"
710
+ },
711
+ borderBottomLeftRadius: {
712
+ className: "bdr-bl",
713
+ shorthand: "roundedBottomLeft",
714
+ values: "radii",
715
+ group: "Border Radius"
716
+ },
717
+ borderTopRadius: {
718
+ className: "bdr-t",
719
+ shorthand: "roundedTop",
720
+ property: "borderRadius",
721
+ values: "radii",
722
+ group: "Border Radius",
723
+ transform(value) {
724
+ return {
725
+ borderTopLeftRadius: value,
726
+ borderTopRightRadius: value
727
+ };
728
+ }
729
+ },
730
+ borderRightRadius: {
731
+ className: "bdr-r",
732
+ shorthand: "roundedRight",
733
+ property: "borderRadius",
734
+ values: "radii",
735
+ group: "Border Radius",
736
+ transform(value) {
737
+ return {
738
+ borderTopRightRadius: value,
739
+ borderBottomRightRadius: value
740
+ };
741
+ }
742
+ },
743
+ borderBottomRadius: {
744
+ className: "bdr-b",
745
+ shorthand: "roundedBottom",
746
+ property: "borderRadius",
747
+ values: "radii",
748
+ group: "Border Radius",
749
+ transform(value) {
750
+ return {
751
+ borderBottomLeftRadius: value,
752
+ borderBottomRightRadius: value
753
+ };
754
+ }
755
+ },
756
+ borderLeftRadius: {
757
+ className: "bdr-l",
758
+ shorthand: "roundedLeft",
759
+ values: "radii",
760
+ property: "borderRadius",
761
+ group: "Border Radius",
762
+ transform(value) {
763
+ return {
764
+ borderTopLeftRadius: value,
765
+ borderBottomLeftRadius: value
766
+ };
767
+ }
768
+ },
769
+ borderStartStartRadius: {
770
+ className: "bdr-ss",
771
+ shorthand: "roundedStartStart",
772
+ values: "radii",
773
+ group: "Border Radius"
774
+ },
775
+ borderStartEndRadius: {
776
+ className: "bdr-se",
777
+ shorthand: "roundedStartEnd",
778
+ values: "radii",
779
+ group: "Border Radius"
780
+ },
781
+ borderStartRadius: {
782
+ className: "bdr-s",
783
+ values: "radii",
784
+ property: "borderRadius",
785
+ shorthand: "roundedStart",
786
+ group: "Border Radius",
787
+ transform(value) {
788
+ return {
789
+ borderStartStartRadius: value,
790
+ borderEndStartRadius: value
791
+ };
792
+ }
793
+ },
794
+ borderEndStartRadius: {
795
+ className: "bdr-es",
796
+ shorthand: "roundedEndStart",
797
+ values: "radii",
798
+ group: "Border Radius"
799
+ },
800
+ borderEndEndRadius: {
801
+ className: "bdr-ee",
802
+ shorthand: "roundedEndEnd",
803
+ values: "radii",
804
+ group: "Border Radius"
805
+ },
806
+ borderEndRadius: {
807
+ className: "bdr-e",
808
+ shorthand: "roundedEnd",
809
+ property: "borderRadius",
810
+ values: "radii",
811
+ group: "Border Radius",
812
+ transform(value) {
813
+ return {
814
+ borderStartEndRadius: value,
815
+ borderEndEndRadius: value
816
+ };
817
+ }
818
+ },
819
+ // Border
820
+ border: {
821
+ className: "bd",
822
+ values: "borders",
823
+ group: "Border"
824
+ },
825
+ borderWidth: {
826
+ className: "bd-w",
827
+ values: "borderWidths",
828
+ group: "Border Radius"
829
+ },
830
+ borderTopWidth: {
831
+ className: "bd-t-w",
832
+ values: "borderWidths",
833
+ group: "Border"
834
+ },
835
+ borderLeftWidth: {
836
+ className: "bd-l-w",
837
+ values: "borderWidths",
838
+ group: "Border"
839
+ },
840
+ borderRightWidth: {
841
+ className: "bd-r-w",
842
+ values: "borderWidths",
843
+ group: "Border"
844
+ },
845
+ borderBottomWidth: {
846
+ className: "bd-b-w",
847
+ values: "borderWidths",
848
+ group: "Border"
849
+ },
850
+ borderBlockStartWidth: {
851
+ className: "bd-bs-w",
852
+ values: "borderWidths",
853
+ group: "Border Radius"
854
+ },
855
+ borderBlockEndWidth: {
856
+ className: "bd-be-w",
857
+ values: "borderWidths",
858
+ group: "Border Radius"
859
+ },
860
+ borderColor: {
861
+ className: "bd-c",
862
+ values: "colors",
863
+ group: "Border",
864
+ transform: createColorMixTransform("borderColor")
865
+ },
866
+ borderInline: {
867
+ className: "bd-x",
868
+ values: "borders",
869
+ group: "Border",
870
+ shorthand: "borderX"
871
+ },
872
+ borderInlineWidth: {
873
+ className: "bd-x-w",
874
+ values: "borderWidths",
875
+ group: "Border",
876
+ shorthand: "borderXWidth"
877
+ },
878
+ borderInlineColor: {
879
+ className: "bd-x-c",
880
+ values: "colors",
881
+ group: "Border",
882
+ shorthand: "borderXColor",
883
+ transform: createColorMixTransform("borderInlineColor")
884
+ },
885
+ borderBlock: {
886
+ className: "bd-y",
887
+ values: "borders",
888
+ group: "Border",
889
+ shorthand: "borderY"
890
+ },
891
+ borderBlockWidth: {
892
+ className: "bd-y-w",
893
+ values: "borderWidths",
894
+ group: "Border",
895
+ shorthand: "borderYWidth"
896
+ },
897
+ borderBlockColor: {
898
+ className: "bd-y-c",
899
+ values: "colors",
900
+ group: "Border",
901
+ shorthand: "borderYColor",
902
+ transform: createColorMixTransform("borderBlockColor")
903
+ },
904
+ borderLeft: {
905
+ className: "bd-l",
906
+ values: "borders",
907
+ group: "Border"
908
+ },
909
+ borderLeftColor: {
910
+ className: "bd-l-c",
911
+ values: "colors",
912
+ group: "Border",
913
+ transform: createColorMixTransform("borderLeftColor")
914
+ },
915
+ borderInlineStart: {
916
+ className: "bd-s",
917
+ values: "borders",
918
+ group: "Border",
919
+ shorthand: "borderStart"
920
+ },
921
+ borderInlineStartWidth: {
922
+ className: "bd-s-w",
923
+ values: "borderWidths",
924
+ group: "Border",
925
+ shorthand: "borderStartWidth"
926
+ },
927
+ borderInlineStartColor: {
928
+ className: "bd-s-c",
929
+ values: "colors",
930
+ group: "Border",
931
+ shorthand: "borderStartColor",
932
+ transform: createColorMixTransform("borderInlineStartColor")
933
+ },
934
+ borderRight: {
935
+ className: "bd-r",
936
+ values: "borders",
937
+ group: "Border"
938
+ },
939
+ borderRightColor: {
940
+ className: "bd-r-c",
941
+ values: "colors",
942
+ group: "Border",
943
+ transform: createColorMixTransform("borderRightColor")
944
+ },
945
+ borderInlineEnd: {
946
+ className: "bd-e",
947
+ values: "borders",
948
+ group: "Border",
949
+ shorthand: "borderEnd"
950
+ },
951
+ borderInlineEndWidth: {
952
+ className: "bd-e-w",
953
+ values: "borderWidths",
954
+ group: "Border",
955
+ shorthand: "borderEndWidth"
956
+ },
957
+ borderInlineEndColor: {
958
+ className: "bd-e-c",
959
+ values: "colors",
960
+ group: "Border",
961
+ shorthand: "borderEndColor",
962
+ transform: createColorMixTransform("borderInlineEndColor")
963
+ },
964
+ borderTop: {
965
+ className: "bd-t",
966
+ values: "borders",
967
+ group: "Border"
968
+ },
969
+ borderTopColor: {
970
+ className: "bd-t-c",
971
+ values: "colors",
972
+ group: "Border",
973
+ transform: createColorMixTransform("borderTopColor")
974
+ },
975
+ borderBottom: {
976
+ className: "bd-b",
977
+ values: "borders",
978
+ group: "Border"
979
+ },
980
+ borderBottomColor: {
981
+ className: "bd-b-c",
982
+ values: "colors",
983
+ group: "Border",
984
+ transform: createColorMixTransform("borderBottomColor")
985
+ },
986
+ borderBlockEnd: {
987
+ className: "bd-be",
988
+ values: "borders",
989
+ group: "Border"
990
+ },
991
+ borderBlockEndColor: {
992
+ className: "bd-be-c",
993
+ values: "colors",
994
+ group: "Border",
995
+ transform: createColorMixTransform("borderBlockEndColor")
996
+ },
997
+ borderBlockStart: {
998
+ className: "bd-bs",
999
+ values: "borders",
1000
+ group: "Border"
1001
+ },
1002
+ borderBlockStartColor: {
1003
+ className: "bd-bs-c",
1004
+ values: "colors",
1005
+ group: "Border",
1006
+ transform: createColorMixTransform("borderBlockStartColor")
1007
+ }
1008
+ };
1009
+
1010
+ // src/utilities/container.ts
1011
+ var container2 = {
1012
+ container: {
1013
+ className: "cq",
1014
+ group: "Container"
1015
+ },
1016
+ containerName: {
1017
+ className: "cq-n",
1018
+ property: "containerName",
1019
+ values: "containerNames",
1020
+ group: "Container"
1021
+ },
1022
+ containerType: {
1023
+ className: "cq-t",
1024
+ group: "Container"
1025
+ }
1026
+ };
1027
+
1028
+ // src/utilities/cursor.ts
1029
+ var cursor = {
1030
+ cursor: {
1031
+ className: "cursor",
1032
+ values: "cursor",
1033
+ group: "System"
1034
+ }
1035
+ };
1036
+
1037
+ // src/utilities/display.ts
1038
+ var display = {
1039
+ display: {
1040
+ className: "d",
1041
+ group: "Display"
1042
+ },
1043
+ hideFrom: {
1044
+ className: "hide",
1045
+ values: "breakpoints",
1046
+ group: "Display",
1047
+ transform(value, { raw, token }) {
1048
+ const bp = token.raw(`breakpoints.${raw}`);
1049
+ const media = bp ? `@breakpoint ${raw}` : `@media screen and (min-width: ${value})`;
1050
+ return {
1051
+ [media]: {
1052
+ display: "none"
1053
+ }
1054
+ };
1055
+ }
1056
+ },
1057
+ hideBelow: {
1058
+ className: "show",
1059
+ values: "breakpoints",
1060
+ group: "Display",
1061
+ transform(value, { raw, token }) {
1062
+ const bp = token.raw(`breakpoints.${raw}`);
1063
+ const media = bp ? `@breakpoint ${raw}Down` : `@media screen and (max-width: ${value})`;
1064
+ return {
1065
+ [media]: {
1066
+ display: "none"
1067
+ }
1068
+ };
1069
+ }
1070
+ }
1071
+ };
1072
+
1073
+ // src/utilities/divide.ts
1074
+ var divideColor = createColorMixTransform("borderColor");
1075
+ var divide = {
1076
+ divideX: {
1077
+ className: "dvd-x",
1078
+ values: "borderWidths",
1079
+ group: "Border",
1080
+ transform(value) {
1081
+ return {
1082
+ "& > :not([hidden]) ~ :not([hidden])": {
1083
+ borderInlineStartWidth: value,
1084
+ borderInlineEndWidth: "0px"
1085
+ }
1086
+ };
1087
+ }
1088
+ },
1089
+ divideY: {
1090
+ className: "dvd-y",
1091
+ values: "borderWidths",
1092
+ group: "Border",
1093
+ transform(value) {
1094
+ return {
1095
+ "& > :not([hidden]) ~ :not([hidden])": {
1096
+ borderTopWidth: value,
1097
+ borderBottomWidth: "0px"
1098
+ }
1099
+ };
1100
+ }
1101
+ },
1102
+ divideColor: {
1103
+ className: "dvd-c",
1104
+ values: "colors",
1105
+ group: "Border",
1106
+ transform(value, args) {
1107
+ return {
1108
+ "& > :not([hidden]) ~ :not([hidden])": divideColor(value, args)
1109
+ };
1110
+ }
1111
+ },
1112
+ divideStyle: {
1113
+ className: "dvd-s",
1114
+ property: "borderStyle",
1115
+ group: "Border",
1116
+ transform(value) {
1117
+ return {
1118
+ "& > :not([hidden]) ~ :not([hidden])": {
1119
+ borderStyle: value
1120
+ }
1121
+ };
1122
+ }
1123
+ }
1124
+ };
1125
+
1126
+ // src/utilities/effects.ts
1127
+ var effects = {
1128
+ opacity: {
1129
+ className: "op",
1130
+ values: "opacity",
1131
+ group: "Background"
1132
+ },
1133
+ boxShadow: {
1134
+ shorthand: "shadow",
1135
+ className: "bx-sh",
1136
+ values: "shadows",
1137
+ group: "Shadow"
1138
+ },
1139
+ boxShadowColor: {
1140
+ shorthand: "shadowColor",
1141
+ className: "bx-sh-c",
1142
+ values: "colors",
1143
+ transform: createColorMixTransform("--shadow-color"),
1144
+ group: "Color"
1145
+ },
1146
+ mixBlendMode: {
1147
+ className: "mix-bm",
1148
+ group: "Effect"
1149
+ },
1150
+ filter: {
1151
+ className: "filter",
1152
+ group: "Effect",
1153
+ values: {
1154
+ auto: "var(--blur, ) var(--brightness, ) var(--contrast, ) var(--grayscale, ) var(--hue-rotate, ) var(--invert, ) var(--saturate, ) var(--sepia, ) var(--drop-shadow, )"
1155
+ }
1156
+ },
1157
+ brightness: {
1158
+ className: "brightness",
1159
+ group: "Effect",
1160
+ transform(value) {
1161
+ return {
1162
+ "--brightness": `brightness(${value})`
1163
+ };
1164
+ }
1165
+ },
1166
+ contrast: {
1167
+ className: "contrast",
1168
+ group: "Effect",
1169
+ transform(value) {
1170
+ return {
1171
+ "--contrast": `contrast(${value})`
1172
+ };
1173
+ }
1174
+ },
1175
+ grayscale: {
1176
+ className: "grayscale",
1177
+ group: "Effect",
1178
+ transform(value) {
1179
+ return {
1180
+ "--grayscale": `grayscale(${value})`
1181
+ };
1182
+ }
1183
+ },
1184
+ hueRotate: {
1185
+ className: "hue-rotate",
1186
+ group: "Effect",
1187
+ transform(value) {
1188
+ return {
1189
+ "--hue-rotate": `hue-rotate(${value})`
1190
+ };
1191
+ }
1192
+ },
1193
+ invert: {
1194
+ className: "invert",
1195
+ group: "Effect",
1196
+ transform(value) {
1197
+ return {
1198
+ "--invert": `invert(${value})`
1199
+ };
1200
+ }
1201
+ },
1202
+ saturate: {
1203
+ className: "saturate",
1204
+ group: "Effect",
1205
+ transform(value) {
1206
+ return {
1207
+ "--saturate": `saturate(${value})`
1208
+ };
1209
+ }
1210
+ },
1211
+ sepia: {
1212
+ className: "sepia",
1213
+ group: "Effect",
1214
+ transform(value) {
1215
+ return {
1216
+ "--sepia": `sepia(${value})`
1217
+ };
1218
+ }
1219
+ },
1220
+ dropShadow: {
1221
+ className: "drop-shadow",
1222
+ group: "Effect",
1223
+ values: "dropShadows",
1224
+ transform(value) {
1225
+ return {
1226
+ "--drop-shadow": value
1227
+ };
1228
+ }
1229
+ },
1230
+ blur: {
1231
+ className: "blur",
1232
+ group: "Effect",
1233
+ values: "blurs",
1234
+ transform(value) {
1235
+ return {
1236
+ "--blur": `blur(${value})`
1237
+ };
1238
+ }
1239
+ },
1240
+ backdropFilter: {
1241
+ className: "bkdp",
1242
+ group: "Effect",
1243
+ values: {
1244
+ auto: "var(--backdrop-blur, ) var(--backdrop-brightness, ) var(--backdrop-contrast, ) var(--backdrop-grayscale, ) var(--backdrop-hue-rotate, ) var(--backdrop-invert, ) var(--backdrop-opacity, ) var(--backdrop-saturate, ) var(--backdrop-sepia, )"
1245
+ },
1246
+ transform(value) {
1247
+ return {
1248
+ backdropFilter: value,
1249
+ WebkitBackdropFilter: value
1250
+ };
1251
+ }
1252
+ },
1253
+ backdropBlur: {
1254
+ className: "bkdp-blur",
1255
+ group: "Effect",
1256
+ values: "blurs",
1257
+ transform(value) {
1258
+ return {
1259
+ "--backdrop-blur": `blur(${value})`
1260
+ };
1261
+ }
1262
+ },
1263
+ backdropBrightness: {
1264
+ className: "bkdp-brightness",
1265
+ group: "Effect",
1266
+ transform(value) {
1267
+ return {
1268
+ "--backdrop-brightness": `brightness(${value})`
1269
+ };
1270
+ }
1271
+ },
1272
+ backdropContrast: {
1273
+ className: "bkdp-contrast",
1274
+ group: "Effect",
1275
+ transform(value) {
1276
+ return {
1277
+ "--backdrop-contrast": `contrast(${value})`
1278
+ };
1279
+ }
1280
+ },
1281
+ backdropGrayscale: {
1282
+ className: "bkdp-grayscale",
1283
+ group: "Effect",
1284
+ transform(value) {
1285
+ return {
1286
+ "--backdrop-grayscale": `grayscale(${value})`
1287
+ };
1288
+ }
1289
+ },
1290
+ backdropHueRotate: {
1291
+ className: "bkdp-hue-rotate",
1292
+ group: "Effect",
1293
+ transform(value) {
1294
+ return {
1295
+ "--backdrop-hue-rotate": `hue-rotate(${value})`
1296
+ };
1297
+ }
1298
+ },
1299
+ backdropInvert: {
1300
+ className: "bkdp-invert",
1301
+ group: "Effect",
1302
+ transform(value) {
1303
+ return {
1304
+ "--backdrop-invert": `invert(${value})`
1305
+ };
1306
+ }
1307
+ },
1308
+ backdropOpacity: {
1309
+ className: "bkdp-opacity",
1310
+ group: "Effect",
1311
+ transform(value) {
1312
+ return {
1313
+ "--backdrop-opacity": value
1314
+ };
1315
+ }
1316
+ },
1317
+ backdropSaturate: {
1318
+ className: "bkdp-saturate",
1319
+ group: "Effect",
1320
+ transform(value) {
1321
+ return {
1322
+ "--backdrop-saturate": `saturate(${value})`
1323
+ };
1324
+ }
1325
+ },
1326
+ backdropSepia: {
1327
+ className: "bkdp-sepia",
1328
+ group: "Effect",
1329
+ transform(value) {
1330
+ return {
1331
+ "--backdrop-sepia": `sepia(${value})`
1332
+ };
1333
+ }
1334
+ }
1335
+ };
1336
+
1337
+ // src/utilities/flex-and-grid.ts
1338
+ var flexGrid = {
1339
+ flexBasis: {
1340
+ className: "flex-b",
1341
+ group: "Flex Layout",
1342
+ values(theme) {
1343
+ return {
1344
+ ...theme("sizes"),
1345
+ "1/2": "50%",
1346
+ "1/3": "33.333333%",
1347
+ "2/3": "66.666667%",
1348
+ "1/4": "25%",
1349
+ "2/4": "50%",
1350
+ "3/4": "75%",
1351
+ "1/5": "20%",
1352
+ "2/5": "40%",
1353
+ "3/5": "60%",
1354
+ "4/5": "80%",
1355
+ "1/6": "16.666667%",
1356
+ "2/6": "33.333333%",
1357
+ "3/6": "50%",
1358
+ "4/6": "66.666667%",
1359
+ "5/6": "83.333333%",
1360
+ "1/12": "8.333333%",
1361
+ "2/12": "16.666667%",
1362
+ "3/12": "25%",
1363
+ "4/12": "33.333333%",
1364
+ "5/12": "41.666667%",
1365
+ "6/12": "50%",
1366
+ "7/12": "58.333333%",
1367
+ "8/12": "66.666667%",
1368
+ "9/12": "75%",
1369
+ "10/12": "83.333333%",
1370
+ "11/12": "91.666667%",
1371
+ full: "100%"
1372
+ };
1373
+ }
1374
+ },
1375
+ flex: {
1376
+ className: "flex",
1377
+ group: "Flex Layout",
1378
+ values: {
1379
+ "1": "1 1 0%",
1380
+ auto: "1 1 auto",
1381
+ initial: "0 1 auto",
1382
+ none: "none"
1383
+ }
1384
+ },
1385
+ flexDirection: {
1386
+ className: "flex-d",
1387
+ group: "Flex Layout",
1388
+ shorthand: "flexDir"
1389
+ },
1390
+ flexGrow: {
1391
+ className: "flex-g",
1392
+ group: "Flex Layout"
1393
+ },
1394
+ flexShrink: {
1395
+ className: "flex-sh",
1396
+ group: "Flex Layout"
1397
+ },
1398
+ gridTemplateColumns: {
1399
+ className: "grid-tc",
1400
+ group: "Grid Layout"
1401
+ },
1402
+ gridTemplateRows: {
1403
+ className: "grid-tr",
1404
+ group: "Grid Layout"
1405
+ },
1406
+ gridColumn: {
1407
+ className: "grid-c",
1408
+ group: "Grid Layout"
1409
+ },
1410
+ gridRow: {
1411
+ className: "grid-r",
1412
+ group: "Grid Layout"
1413
+ },
1414
+ gridColumnStart: {
1415
+ className: "grid-cs",
1416
+ group: "Grid Layout"
1417
+ },
1418
+ gridColumnEnd: {
1419
+ className: "grid-ce",
1420
+ group: "Grid Layout"
1421
+ },
1422
+ gridAutoFlow: {
1423
+ className: "grid-af",
1424
+ group: "Grid Layout"
1425
+ },
1426
+ gridAutoColumns: {
1427
+ className: "grid-ac",
1428
+ group: "Grid Layout",
1429
+ values: {
1430
+ min: "min-content",
1431
+ max: "max-content",
1432
+ fr: "minmax(0, 1fr)"
1433
+ }
1434
+ },
1435
+ gridAutoRows: {
1436
+ className: "grid-ar",
1437
+ group: "Grid Layout",
1438
+ values: {
1439
+ min: "min-content",
1440
+ max: "max-content",
1441
+ fr: "minmax(0, 1fr)"
1442
+ }
1443
+ },
1444
+ gap: {
1445
+ className: "gap",
1446
+ group: "Flex Layout",
1447
+ values: "spacing"
1448
+ },
1449
+ gridGap: {
1450
+ className: "grid-g",
1451
+ group: "Grid Layout",
1452
+ values: "spacing"
1453
+ },
1454
+ gridRowGap: {
1455
+ className: "grid-rg",
1456
+ group: "Grid Layout",
1457
+ values: "spacing"
1458
+ },
1459
+ gridColumnGap: {
1460
+ className: "grid-cg",
1461
+ group: "Grid Layout",
1462
+ values: "spacing"
1463
+ },
1464
+ rowGap: {
1465
+ className: "rg",
1466
+ group: "Grid Layout",
1467
+ values: "spacing"
1468
+ },
1469
+ columnGap: {
1470
+ className: "cg",
1471
+ group: "Grid Layout",
1472
+ values: "spacing"
1473
+ },
1474
+ justifyContent: {
1475
+ className: "jc",
1476
+ group: "Flex Layout"
1477
+ },
1478
+ alignContent: {
1479
+ className: "ac",
1480
+ group: "Flex Layout"
1481
+ },
1482
+ alignItems: {
1483
+ className: "ai",
1484
+ group: "Flex Layout"
1485
+ },
1486
+ alignSelf: {
1487
+ className: "as",
1488
+ group: "Flex Layout"
1489
+ }
1490
+ };
1491
+
1492
+ // src/utilities/focus-ring.ts
1493
+ function createFocusRing(selector, className) {
1494
+ return {
1495
+ className,
1496
+ group: "Focus Ring",
1497
+ values: ["outside", "inside", "mixed", "none"],
1498
+ transform(value) {
1499
+ const fallback = "var(--global-color-focus-ring, #005FCC)";
1500
+ const focusRingColor = `var(--focus-ring-color-prop, ${fallback})`;
1501
+ switch (value) {
1502
+ case "inside":
1503
+ return {
1504
+ "--focus-ring-color": focusRingColor,
1505
+ [selector]: {
1506
+ outlineOffset: "0px",
1507
+ outlineWidth: "var(--focus-ring-width, 1px)",
1508
+ outlineColor: "var(--focus-ring-color)",
1509
+ outlineStyle: "var(--focus-ring-style, solid)",
1510
+ borderColor: "var(--focus-ring-color)"
1511
+ }
1512
+ };
1513
+ case "outside":
1514
+ return {
1515
+ "--focus-ring-color": focusRingColor,
1516
+ [selector]: {
1517
+ outlineWidth: "var(--focus-ring-width, 2px)",
1518
+ outlineOffset: "var(--focus-ring-offset, 2px)",
1519
+ outlineStyle: "var(--focus-ring-style, solid)",
1520
+ outlineColor: "var(--focus-ring-color)"
1521
+ }
1522
+ };
1523
+ case "mixed":
1524
+ return {
1525
+ "--focus-ring-color": focusRingColor,
1526
+ [selector]: {
1527
+ outlineOffset: "0px",
1528
+ outlineWidth: "var(--focus-ring-width, 3px)",
1529
+ outlineStyle: "var(--focus-ring-style, solid)",
1530
+ outlineColor: "color-mix(in srgb, var(--focus-ring-color), transparent 60%)",
1531
+ borderColor: "var(--focus-ring-color)"
1532
+ }
1533
+ };
1534
+ case "none":
1535
+ return {
1536
+ "--focus-ring-color": focusRingColor,
1537
+ [selector]: {
1538
+ outline: "none"
1539
+ }
1540
+ };
1541
+ default:
1542
+ return {};
1543
+ }
1544
+ }
1545
+ };
1546
+ }
1547
+ var focusRing = {
1548
+ focusRing: createFocusRing("&:is(:focus, [data-focus])", "focus-ring"),
1549
+ focusVisibleRing: createFocusRing("&:is(:focus-visible, [data-focus-visible])", "focus-v-ring"),
1550
+ focusRingColor: {
1551
+ className: "focus-ring-c",
1552
+ values: "colors",
1553
+ group: "Focus Ring",
1554
+ transform(value, { utils }) {
1555
+ const prop = "--focus-ring-color-prop";
1556
+ const mix = utils.colorMix(value);
1557
+ if (mix.invalid) return { [prop]: value };
1558
+ const cssVar = "--mix-" + prop;
1559
+ return {
1560
+ [cssVar]: mix.value,
1561
+ [prop]: `var(${cssVar}, ${mix.color})`
1562
+ };
1563
+ }
1564
+ },
1565
+ focusRingOffset: {
1566
+ className: "focus-ring-o",
1567
+ values: "spacing",
1568
+ group: "Focus Ring",
1569
+ transform: (v) => ({ "--focus-ring-offset": v })
1570
+ },
1571
+ focusRingWidth: {
1572
+ className: "focus-ring-w",
1573
+ values: "borderWidths",
1574
+ property: "outlineWidth",
1575
+ group: "Focus Ring",
1576
+ transform: (v) => ({ "--focus-ring-width": v })
1577
+ },
1578
+ focusRingStyle: {
1579
+ className: "focus-ring-s",
1580
+ values: "borderStyles",
1581
+ property: "outlineStyle",
1582
+ group: "Focus Ring",
1583
+ transform: (v) => ({ "--focus-ring-style": v })
1584
+ }
1585
+ };
1586
+
1587
+ // src/utilities/gradient.ts
1588
+ var gradientVia = createColorMixTransform("--gradient-via");
1589
+ var linearGradientDirectionMap = /* @__PURE__ */ new Map([
1590
+ ["to-t", "to top"],
1591
+ ["to-tr", "to top right"],
1592
+ ["to-r", "to right"],
1593
+ ["to-br", "to bottom right"],
1594
+ ["to-b", "to bottom"],
1595
+ ["to-bl", "to bottom left"],
1596
+ ["to-l", "to left"],
1597
+ ["to-tl", "to top left"]
1598
+ ]);
1599
+ var isGradientShortcut = (value) => linearGradientDirectionMap.has(value);
1600
+ var linearGradientValues = (theme) => {
1601
+ return {
1602
+ ...theme("gradients"),
1603
+ ...Object.fromEntries(linearGradientDirectionMap.entries())
1604
+ };
1605
+ };
1606
+ var gradientStops = "var(--gradient-via-stops, var(--gradient-position), var(--gradient-from) var(--gradient-from-position), var(--gradient-to) var(--gradient-to-position))";
1607
+ var gradientViaStops = "var(--gradient-position), var(--gradient-from) var(--gradient-from-position), var(--gradient-via) var(--gradient-via-position), var(--gradient-to) var(--gradient-to-position)";
1608
+ var backgroundGradients = {
1609
+ backgroundGradient: {
1610
+ shorthand: "bgGradient",
1611
+ className: "bg-grad",
1612
+ group: "Background Gradient",
1613
+ values: linearGradientValues,
1614
+ transform(value, { raw, token }) {
1615
+ const tokenValue = token(`gradients.${raw}`);
1616
+ if (tokenValue) {
1617
+ return { backgroundImage: tokenValue };
1618
+ }
1619
+ if (!isGradientShortcut(raw)) {
1620
+ return { backgroundImage: value };
1621
+ }
1622
+ return {
1623
+ "--gradient-stops": gradientStops,
1624
+ "--gradient-position": linearGradientDirectionMap.get(raw),
1625
+ backgroundImage: `linear-gradient(var(--gradient-stops))`
1626
+ };
1627
+ }
1628
+ },
1629
+ backgroundLinear: {
1630
+ shorthand: "bgLinear",
1631
+ className: "bg-linear",
1632
+ group: "Background Gradient",
1633
+ values: linearGradientValues,
1634
+ transform(value, { raw, token }) {
1635
+ const tokenValue = token(`gradients.${raw}`);
1636
+ if (tokenValue) {
1637
+ return { backgroundImage: tokenValue };
1638
+ }
1639
+ if (!isGradientShortcut(raw)) {
1640
+ return { backgroundImage: value };
1641
+ }
1642
+ return {
1643
+ "--gradient-stops": gradientStops,
1644
+ "--gradient-position": linearGradientDirectionMap.get(raw),
1645
+ backgroundImage: `linear-gradient(var(--gradient-stops))`
1646
+ };
1647
+ }
1648
+ },
1649
+ backgroundRadial: {
1650
+ shorthand: "bgRadial",
1651
+ className: "bg-radial",
1652
+ group: "Background Gradient",
1653
+ values: "gradients",
1654
+ transform(value, { raw, token }) {
1655
+ const tokenValue = token(`gradients.${raw}`);
1656
+ if (tokenValue) {
1657
+ return { backgroundImage: tokenValue };
1658
+ }
1659
+ return {
1660
+ "--gradient-stops": gradientStops,
1661
+ "--gradient-position": value,
1662
+ backgroundImage: `radial-gradient(var(--gradient-stops,${value}))`
1663
+ };
1664
+ }
1665
+ },
1666
+ backgroundConic: {
1667
+ shorthand: "bgConic",
1668
+ className: "bg-conic",
1669
+ group: "Background Gradient",
1670
+ transform(value) {
1671
+ return {
1672
+ "--gradient-stops": gradientStops,
1673
+ "--gradient-position": value,
1674
+ backgroundImage: `conic-gradient(var(--gradient-stops))`
1675
+ };
1676
+ }
1677
+ },
1678
+ textGradient: {
1679
+ className: "txt-grad",
1680
+ group: "Background Gradient",
1681
+ values: linearGradientValues,
1682
+ transform(value, { raw, token }) {
1683
+ const tokenValue = token(`gradients.${raw}`);
1684
+ if (tokenValue) {
1685
+ return {
1686
+ backgroundImage: tokenValue,
1687
+ WebkitBackgroundClip: "text",
1688
+ color: "transparent"
1689
+ };
1690
+ }
1691
+ if (!isGradientShortcut(raw)) {
1692
+ return {
1693
+ backgroundImage: value,
1694
+ WebkitBackgroundClip: "text",
1695
+ color: "transparent"
1696
+ };
1697
+ }
1698
+ return {
1699
+ "--gradient-stops": gradientStops,
1700
+ "--gradient-position": linearGradientDirectionMap.get(raw),
1701
+ backgroundImage: `linear-gradient(var(--gradient-stops))`,
1702
+ WebkitBackgroundClip: "text",
1703
+ color: "transparent"
1704
+ };
1705
+ }
1706
+ },
1707
+ gradientFromPosition: {
1708
+ className: "grad-from-pos",
1709
+ group: "Background Gradient",
1710
+ transform(value) {
1711
+ return {
1712
+ "--gradient-from-position": value
1713
+ };
1714
+ }
1715
+ },
1716
+ gradientToPosition: {
1717
+ className: "grad-to-pos",
1718
+ group: "Background Gradient",
1719
+ transform(value) {
1720
+ return {
1721
+ "--gradient-to-position": value
1722
+ };
1723
+ }
1724
+ },
1725
+ gradientFrom: {
1726
+ className: "grad-from",
1727
+ values: "colors",
1728
+ group: "Background Gradient",
1729
+ transform: createColorMixTransform("--gradient-from")
1730
+ },
1731
+ gradientTo: {
1732
+ className: "grad-to",
1733
+ values: "colors",
1734
+ group: "Background Gradient",
1735
+ transform: createColorMixTransform("--gradient-to")
1736
+ },
1737
+ gradientVia: {
1738
+ className: "grad-via",
1739
+ values: "colors",
1740
+ group: "Background Gradient",
1741
+ transform(value, args) {
1742
+ const transformed = gradientVia(value, args);
1743
+ return {
1744
+ ...transformed,
1745
+ "--gradient-stops": "var(--gradient-via-stops)",
1746
+ "--gradient-via-stops": gradientViaStops
1747
+ };
1748
+ }
1749
+ },
1750
+ gradientViaPosition: {
1751
+ className: "grad-via-pos",
1752
+ group: "Background Gradient",
1753
+ transform(value) {
1754
+ return {
1755
+ "--gradient-via-position": value
1756
+ };
1757
+ }
1758
+ }
1759
+ };
1760
+
1761
+ // src/utilities/helpers.ts
1762
+ var srMapping = {
1763
+ true: {
1764
+ position: "absolute",
1765
+ width: "1px",
1766
+ height: "1px",
1767
+ padding: "0",
1768
+ margin: "-1px",
1769
+ overflow: "hidden",
1770
+ clip: "rect(0, 0, 0, 0)",
1771
+ whiteSpace: "nowrap",
1772
+ borderWidth: "0"
1773
+ },
1774
+ false: {
1775
+ position: "static",
1776
+ width: "auto",
1777
+ height: "auto",
1778
+ padding: "0",
1779
+ margin: "0",
1780
+ overflow: "visible",
1781
+ clip: "auto",
1782
+ whiteSpace: "normal"
1783
+ }
1784
+ };
1785
+ var helpers = {
1786
+ srOnly: {
1787
+ className: "sr",
1788
+ values: { type: "boolean" },
1789
+ group: "Other",
1790
+ transform(value) {
1791
+ return srMapping[value] || {};
1792
+ }
1793
+ },
1794
+ debug: {
1795
+ className: "debug",
1796
+ values: { type: "boolean" },
1797
+ group: "Other",
1798
+ transform(value) {
1799
+ if (!value) return {};
1800
+ return {
1801
+ outline: "1px solid blue !important",
1802
+ "&>*": {
1803
+ outline: "1px solid red !important"
1804
+ }
1805
+ };
1806
+ }
1807
+ }
1808
+ };
1809
+
1810
+ // src/utilities/interactivity.ts
1811
+ var interactivity = {
1812
+ accentColor: {
1813
+ className: "ac-c",
1814
+ values: "colors",
1815
+ transform: createColorMixTransform("accentColor"),
1816
+ group: "Color"
1817
+ },
1818
+ caretColor: {
1819
+ className: "ca-c",
1820
+ values: "colors",
1821
+ group: "Color",
1822
+ transform: createColorMixTransform("caretColor")
1823
+ },
1824
+ scrollBehavior: {
1825
+ className: "scr-bhv",
1826
+ group: "Scroll"
1827
+ },
1828
+ // Scroll bar
1829
+ scrollbar: {
1830
+ className: "scr-bar",
1831
+ values: ["visible", "hidden"],
1832
+ group: "Scroll",
1833
+ transform(value) {
1834
+ if (value === "visible") {
1835
+ return {
1836
+ msOverflowStyle: "auto",
1837
+ scrollbarWidth: "auto",
1838
+ "&::-webkit-scrollbar": {
1839
+ display: "block"
1840
+ }
1841
+ };
1842
+ }
1843
+ if (value === "hidden") {
1844
+ return {
1845
+ msOverflowStyle: "none",
1846
+ scrollbarWidth: "none",
1847
+ "&::-webkit-scrollbar": {
1848
+ display: "none"
1849
+ }
1850
+ };
1851
+ }
1852
+ }
1853
+ },
1854
+ scrollbarColor: {
1855
+ className: "scr-bar-c",
1856
+ values: "colors",
1857
+ group: "Scroll",
1858
+ transform: createColorMixTransform("scrollbarColor")
1859
+ },
1860
+ scrollbarGutter: {
1861
+ className: "scr-bar-g",
1862
+ group: "Scroll"
1863
+ },
1864
+ scrollbarWidth: {
1865
+ className: "scr-bar-w",
1866
+ values: "sizes",
1867
+ group: "Scroll"
1868
+ },
1869
+ // Scroll Margin
1870
+ scrollMargin: {
1871
+ className: "scr-m",
1872
+ values: "spacing",
1873
+ group: "Scroll"
1874
+ },
1875
+ scrollMarginLeft: {
1876
+ className: "scr-ml",
1877
+ values: "spacing",
1878
+ group: "Scroll"
1879
+ },
1880
+ scrollMarginRight: {
1881
+ className: "scr-mr",
1882
+ values: "spacing",
1883
+ group: "Scroll"
1884
+ },
1885
+ scrollMarginTop: {
1886
+ className: "scr-mt",
1887
+ values: "spacing",
1888
+ group: "Scroll"
1889
+ },
1890
+ scrollMarginBottom: {
1891
+ className: "scr-mb",
1892
+ values: "spacing",
1893
+ group: "Scroll"
1894
+ },
1895
+ scrollMarginBlock: {
1896
+ className: "scr-my",
1897
+ values: "spacing",
1898
+ group: "Scroll",
1899
+ shorthand: ["scrollMarginY"]
1900
+ },
1901
+ scrollMarginBlockEnd: {
1902
+ className: "scr-mbe",
1903
+ values: "spacing",
1904
+ group: "Scroll"
1905
+ },
1906
+ scrollMarginBlockStart: {
1907
+ className: "scr-mbt",
1908
+ values: "spacing",
1909
+ group: "Scroll"
1910
+ },
1911
+ scrollMarginInline: {
1912
+ className: "scr-mx",
1913
+ values: "spacing",
1914
+ group: "Scroll",
1915
+ shorthand: ["scrollMarginX"]
1916
+ },
1917
+ scrollMarginInlineEnd: {
1918
+ className: "scr-me",
1919
+ values: "spacing",
1920
+ group: "Scroll"
1921
+ },
1922
+ scrollMarginInlineStart: {
1923
+ className: "scr-ms",
1924
+ values: "spacing",
1925
+ group: "Scroll"
1926
+ },
1927
+ // Scroll Padding
1928
+ scrollPadding: {
1929
+ className: "scr-p",
1930
+ values: "spacing",
1931
+ group: "Scroll"
1932
+ },
1933
+ scrollPaddingBlock: {
1934
+ className: "scr-py",
1935
+ values: "spacing",
1936
+ group: "Scroll",
1937
+ shorthand: ["scrollPaddingY"]
1938
+ },
1939
+ scrollPaddingBlockStart: {
1940
+ className: "scr-pbs",
1941
+ values: "spacing",
1942
+ group: "Scroll"
1943
+ },
1944
+ scrollPaddingBlockEnd: {
1945
+ className: "scr-pbe",
1946
+ values: "spacing",
1947
+ group: "Scroll"
1948
+ },
1949
+ scrollPaddingInline: {
1950
+ className: "scr-px",
1951
+ values: "spacing",
1952
+ group: "Scroll",
1953
+ shorthand: ["scrollPaddingX"]
1954
+ },
1955
+ scrollPaddingInlineEnd: {
1956
+ className: "scr-pe",
1957
+ values: "spacing",
1958
+ group: "Scroll"
1959
+ },
1960
+ scrollPaddingInlineStart: {
1961
+ className: "scr-ps",
1962
+ values: "spacing",
1963
+ group: "Scroll"
1964
+ },
1965
+ scrollPaddingLeft: {
1966
+ className: "scr-pl",
1967
+ values: "spacing",
1968
+ group: "Scroll"
1969
+ },
1970
+ scrollPaddingRight: {
1971
+ className: "scr-pr",
1972
+ values: "spacing",
1973
+ group: "Scroll"
1974
+ },
1975
+ scrollPaddingTop: {
1976
+ className: "scr-pt",
1977
+ values: "spacing",
1978
+ group: "Scroll"
1979
+ },
1980
+ scrollPaddingBottom: {
1981
+ className: "scr-pb",
1982
+ values: "spacing",
1983
+ group: "Scroll"
1984
+ },
1985
+ // Scroll Snap
1986
+ scrollSnapAlign: {
1987
+ className: "scr-sa",
1988
+ group: "Scroll"
1989
+ },
1990
+ scrollSnapStop: {
1991
+ className: "scrs-s",
1992
+ group: "Scroll"
1993
+ },
1994
+ scrollSnapType: {
1995
+ className: "scrs-t",
1996
+ group: "Scroll",
1997
+ values: {
1998
+ none: "none",
1999
+ x: "x var(--scroll-snap-strictness)",
2000
+ y: "y var(--scroll-snap-strictness)",
2001
+ both: "both var(--scroll-snap-strictness)"
2002
+ }
2003
+ },
2004
+ scrollSnapStrictness: {
2005
+ className: "scrs-strt",
2006
+ values: ["mandatory", "proximity"],
2007
+ group: "Scroll",
2008
+ transform(value) {
2009
+ return {
2010
+ "--scroll-snap-strictness": value
2011
+ };
2012
+ }
2013
+ },
2014
+ scrollSnapMargin: {
2015
+ className: "scrs-m",
2016
+ values: "spacing",
2017
+ group: "Scroll"
2018
+ },
2019
+ scrollSnapMarginTop: {
2020
+ className: "scrs-mt",
2021
+ values: "spacing",
2022
+ group: "Scroll"
2023
+ },
2024
+ scrollSnapMarginBottom: {
2025
+ className: "scrs-mb",
2026
+ values: "spacing",
2027
+ group: "Scroll"
2028
+ },
2029
+ scrollSnapMarginLeft: {
2030
+ className: "scrs-ml",
2031
+ values: "spacing",
2032
+ group: "Scroll"
2033
+ },
2034
+ scrollSnapMarginRight: {
2035
+ className: "scrs-mr",
2036
+ values: "spacing",
2037
+ group: "Scroll"
2038
+ },
2039
+ scrollSnapCoordinate: {
2040
+ className: "scrs-c",
2041
+ group: "Scroll"
2042
+ },
2043
+ scrollSnapDestination: {
2044
+ className: "scrs-d",
2045
+ group: "Scroll"
2046
+ },
2047
+ scrollSnapPointsX: {
2048
+ className: "scrs-px",
2049
+ group: "Scroll"
2050
+ },
2051
+ scrollSnapPointsY: {
2052
+ className: "scrs-py",
2053
+ group: "Scroll"
2054
+ },
2055
+ scrollSnapTypeX: {
2056
+ className: "scrs-tx",
2057
+ group: "Scroll"
2058
+ },
2059
+ scrollSnapTypeY: {
2060
+ className: "scrs-ty",
2061
+ group: "Scroll"
2062
+ },
2063
+ // Scroll Timeline
2064
+ scrollTimeline: {
2065
+ className: "scrtl",
2066
+ group: "Scroll"
2067
+ },
2068
+ scrollTimelineAxis: {
2069
+ className: "scrtl-a",
2070
+ group: "Scroll"
2071
+ },
2072
+ scrollTimelineName: {
2073
+ className: "scrtl-n",
2074
+ group: "Scroll"
2075
+ },
2076
+ touchAction: {
2077
+ className: "tch-a",
2078
+ group: "Interactivity"
2079
+ },
2080
+ userSelect: {
2081
+ className: "us",
2082
+ group: "Interactivity",
2083
+ transform(value) {
2084
+ return {
2085
+ WebkitUserSelect: value,
2086
+ userSelect: value
2087
+ };
2088
+ }
2089
+ },
2090
+ // Overflow
2091
+ overflow: {
2092
+ className: "ov",
2093
+ group: "Scroll"
2094
+ },
2095
+ overflowWrap: {
2096
+ className: "ov-wrap",
2097
+ group: "Scroll"
2098
+ },
2099
+ overflowX: {
2100
+ className: "ov-x",
2101
+ group: "Scroll"
2102
+ },
2103
+ overflowY: {
2104
+ className: "ov-y",
2105
+ group: "Scroll"
2106
+ },
2107
+ overflowAnchor: {
2108
+ className: "ov-a",
2109
+ group: "Scroll"
2110
+ },
2111
+ overflowBlock: {
2112
+ className: "ov-b",
2113
+ group: "Scroll"
2114
+ },
2115
+ overflowInline: {
2116
+ className: "ov-i",
2117
+ group: "Scroll"
2118
+ },
2119
+ overflowClipBox: {
2120
+ className: "ovcp-bx",
2121
+ group: "Scroll"
2122
+ },
2123
+ overflowClipMargin: {
2124
+ className: "ovcp-m",
2125
+ group: "Scroll"
2126
+ },
2127
+ overscrollBehavior: {
2128
+ className: "ovs-b",
2129
+ group: "Scroll"
2130
+ },
2131
+ overscrollBehaviorX: {
2132
+ className: "ovs-bx",
2133
+ group: "Scroll"
2134
+ },
2135
+ overscrollBehaviorY: {
2136
+ className: "ovs-by",
2137
+ group: "Scroll"
2138
+ },
2139
+ overscrollBehaviorBlock: {
2140
+ className: "ovs-bb",
2141
+ group: "Scroll"
2142
+ },
2143
+ overscrollBehaviorInline: {
2144
+ className: "ovs-bi",
2145
+ group: "Scroll"
2146
+ }
2147
+ };
2148
+
2149
+ // src/utilities/layout.ts
2150
+ var layout = {
2151
+ aspectRatio: {
2152
+ className: "asp",
2153
+ values: "aspectRatios",
2154
+ group: "Layout"
2155
+ },
2156
+ boxDecorationBreak: {
2157
+ className: "bx-db",
2158
+ group: "Layout",
2159
+ transform(value) {
2160
+ return {
2161
+ boxDecorationBreak: value,
2162
+ WebkitBoxDecorationBreak: value
2163
+ };
2164
+ }
2165
+ },
2166
+ zIndex: {
2167
+ className: "z",
2168
+ values: "zIndex",
2169
+ group: "Visibility"
2170
+ },
2171
+ boxSizing: {
2172
+ className: "bx-s",
2173
+ group: "System"
2174
+ },
2175
+ objectPosition: {
2176
+ className: "obj-p",
2177
+ group: "Layout"
2178
+ },
2179
+ objectFit: {
2180
+ className: "obj-f",
2181
+ group: "Layout"
2182
+ },
2183
+ overscrollBehavior: {
2184
+ className: "ovscl",
2185
+ group: "Scroll"
2186
+ },
2187
+ overscrollBehaviorX: {
2188
+ className: "ovscl-x",
2189
+ group: "Scroll"
2190
+ },
2191
+ overscrollBehaviorY: {
2192
+ className: "ovscl-y",
2193
+ group: "Scroll"
2194
+ },
2195
+ position: {
2196
+ className: "pos",
2197
+ shorthand: "pos",
2198
+ group: "Position"
2199
+ },
2200
+ top: {
2201
+ className: "top",
2202
+ values: "spacing",
2203
+ group: "Position"
2204
+ },
2205
+ left: {
2206
+ className: "left",
2207
+ values: "spacing",
2208
+ group: "Position"
2209
+ },
2210
+ inset: {
2211
+ className: "inset",
2212
+ group: "Position",
2213
+ values: (theme) => ({
2214
+ auto: "auto",
2215
+ ...theme("spacing")
2216
+ })
2217
+ },
2218
+ insetInline: {
2219
+ className: "inset-x",
2220
+ values: "spacing",
2221
+ group: "Position",
2222
+ shorthand: ["insetX"]
2223
+ },
2224
+ insetBlock: {
2225
+ className: "inset-y",
2226
+ values: "spacing",
2227
+ group: "Position",
2228
+ shorthand: ["insetY"]
2229
+ },
2230
+ insetBlockEnd: {
2231
+ className: "inset-be",
2232
+ values: "spacing",
2233
+ group: "Position"
2234
+ },
2235
+ insetBlockStart: {
2236
+ className: "inset-bs",
2237
+ values: "spacing",
2238
+ group: "Position"
2239
+ },
2240
+ insetInlineEnd: {
2241
+ className: "inset-e",
2242
+ values: "spacing",
2243
+ group: "Position",
2244
+ shorthand: ["insetEnd", "end"]
2245
+ },
2246
+ insetInlineStart: {
2247
+ className: "inset-s",
2248
+ values: "spacing",
2249
+ group: "Position",
2250
+ shorthand: ["insetStart", "start"]
2251
+ },
2252
+ right: {
2253
+ className: "right",
2254
+ values: "spacing",
2255
+ group: "Position"
2256
+ },
2257
+ bottom: {
2258
+ className: "bottom",
2259
+ values: "spacing",
2260
+ group: "Position"
2261
+ },
2262
+ float: {
2263
+ className: "float",
2264
+ values: ["start", "end"],
2265
+ property: "float",
2266
+ group: "Position",
2267
+ transform(value) {
2268
+ if (value === "start") {
2269
+ return {
2270
+ float: "left",
2271
+ '[dir="rtl"] &': {
2272
+ float: "right"
2273
+ }
2274
+ };
2275
+ }
2276
+ if (value === "end") {
2277
+ return {
2278
+ float: "right",
2279
+ '[dir="rtl"] &': {
2280
+ float: "left"
2281
+ }
2282
+ };
2283
+ }
2284
+ return {
2285
+ float: value
2286
+ };
2287
+ }
2288
+ },
2289
+ visibility: {
2290
+ className: "vis",
2291
+ group: "Visibility"
2292
+ }
2293
+ };
2294
+
2295
+ // src/utilities/list.ts
2296
+ var list = {
2297
+ listStyleType: {
2298
+ className: "li-t",
2299
+ group: "List"
2300
+ },
2301
+ listStylePosition: {
2302
+ className: "li-pos",
2303
+ group: "List"
2304
+ },
2305
+ listStyleImage: {
2306
+ className: "li-img",
2307
+ group: "List",
2308
+ values: "assets"
2309
+ },
2310
+ listStyle: {
2311
+ className: "li-s",
2312
+ group: "List"
2313
+ }
2314
+ };
2315
+
2316
+ // src/utilities/outline.ts
2317
+ var outline = {
2318
+ outlineWidth: {
2319
+ className: "ring-w",
2320
+ shorthand: "ringWidth",
2321
+ values: "borderWidths",
2322
+ group: "Border"
2323
+ },
2324
+ outlineColor: {
2325
+ className: "ring-c",
2326
+ values: "colors",
2327
+ group: "Color",
2328
+ shorthand: "ringColor",
2329
+ transform: createColorMixTransform("outlineColor")
2330
+ },
2331
+ outline: {
2332
+ className: "ring",
2333
+ shorthand: "ring",
2334
+ values: "borders",
2335
+ group: "Border",
2336
+ transform(value) {
2337
+ if (value === "none") {
2338
+ return { outline: "2px solid transparent", outlineOffset: "2px" };
2339
+ }
2340
+ return { outline: value };
2341
+ }
2342
+ },
2343
+ outlineOffset: {
2344
+ className: "ring-o",
2345
+ shorthand: "ringOffset",
2346
+ values: "spacing",
2347
+ group: "Border"
2348
+ }
2349
+ };
2350
+
2351
+ // src/utilities/polyfill.ts
2352
+ var polyfill = {
2353
+ appearance: {
2354
+ className: "ap",
2355
+ group: "Visibility",
2356
+ transform(value) {
2357
+ return { appearance: value, WebkitAppearance: value };
2358
+ }
2359
+ },
2360
+ backfaceVisibility: {
2361
+ className: "bfv",
2362
+ group: "Visibility",
2363
+ transform(value) {
2364
+ return { backfaceVisibility: value, WebkitBackfaceVisibility: value };
2365
+ }
2366
+ },
2367
+ clipPath: {
2368
+ className: "cp-path",
2369
+ group: "Other",
2370
+ transform(value) {
2371
+ return { clipPath: value, WebkitClipPath: value };
2372
+ }
2373
+ },
2374
+ hyphens: {
2375
+ className: "hy",
2376
+ group: "Other",
2377
+ transform(value) {
2378
+ return { hyphens: value, WebkitHyphens: value };
2379
+ }
2380
+ },
2381
+ mask: {
2382
+ className: "msk",
2383
+ group: "Other",
2384
+ transform(value) {
2385
+ return { mask: value, WebkitMask: value };
2386
+ }
2387
+ },
2388
+ maskImage: {
2389
+ className: "msk-i",
2390
+ group: "Other",
2391
+ transform(value) {
2392
+ return { maskImage: value, WebkitMaskImage: value };
2393
+ }
2394
+ },
2395
+ maskSize: {
2396
+ className: "msk-s",
2397
+ group: "Other",
2398
+ transform(value) {
2399
+ return { maskSize: value, WebkitMaskSize: value };
2400
+ }
2401
+ },
2402
+ textSizeAdjust: {
2403
+ className: "txt-adj",
2404
+ group: "Typography",
2405
+ transform(value) {
2406
+ return { textSizeAdjust: value, WebkitTextSizeAdjust: value };
2407
+ }
2408
+ }
2409
+ };
2410
+
2411
+ // src/utilities/sizing.ts
2412
+ var widthValues = (theme) => ({
2413
+ auto: "auto",
2414
+ ...theme("sizes"),
2415
+ "1/2": "50%",
2416
+ "1/3": "33.333333%",
2417
+ "2/3": "66.666667%",
2418
+ "1/4": "25%",
2419
+ "2/4": "50%",
2420
+ "3/4": "75%",
2421
+ "1/5": "20%",
2422
+ "2/5": "40%",
2423
+ "3/5": "60%",
2424
+ "4/5": "80%",
2425
+ "1/6": "16.666667%",
2426
+ "2/6": "33.333333%",
2427
+ "3/6": "50%",
2428
+ "4/6": "66.666667%",
2429
+ "5/6": "83.333333%",
2430
+ "1/12": "8.333333%",
2431
+ "2/12": "16.666667%",
2432
+ "3/12": "25%",
2433
+ "4/12": "33.333333%",
2434
+ "5/12": "41.666667%",
2435
+ "6/12": "50%",
2436
+ "7/12": "58.333333%",
2437
+ "8/12": "66.666667%",
2438
+ "9/12": "75%",
2439
+ "10/12": "83.333333%",
2440
+ "11/12": "91.666667%",
2441
+ screen: "100vw"
2442
+ });
2443
+ var heightValues = (theme) => ({
2444
+ auto: "auto",
2445
+ ...theme("sizes"),
2446
+ svh: "100svh",
2447
+ lvh: "100lvh",
2448
+ dvh: "100dvh",
2449
+ screen: "100vh",
2450
+ "1/2": "50%",
2451
+ "1/3": "33.333333%",
2452
+ "2/3": "66.666667%",
2453
+ "1/4": "25%",
2454
+ "2/4": "50%",
2455
+ "3/4": "75%",
2456
+ "1/5": "20%",
2457
+ "2/5": "40%",
2458
+ "3/5": "60%",
2459
+ "4/5": "80%",
2460
+ "1/6": "16.666667%",
2461
+ "2/6": "33.333333%",
2462
+ "3/6": "50%",
2463
+ "4/6": "66.666667%",
2464
+ "5/6": "83.333333%"
2465
+ });
2466
+ var sizing = {
2467
+ width: {
2468
+ shorthand: "w",
2469
+ className: "w",
2470
+ group: "Width",
2471
+ values: widthValues
2472
+ },
2473
+ inlineSize: {
2474
+ className: "w-is",
2475
+ group: "Width",
2476
+ values: widthValues
2477
+ },
2478
+ minWidth: {
2479
+ shorthand: "minW",
2480
+ className: "min-w",
2481
+ group: "Width",
2482
+ values: widthValues
2483
+ },
2484
+ minInlineSize: {
2485
+ className: "min-w-is",
2486
+ group: "Width",
2487
+ values: widthValues
2488
+ },
2489
+ maxWidth: {
2490
+ shorthand: "maxW",
2491
+ className: "max-w",
2492
+ group: "Width",
2493
+ values: widthValues
2494
+ },
2495
+ maxInlineSize: {
2496
+ className: "max-w-is",
2497
+ group: "Width",
2498
+ values: widthValues
2499
+ },
2500
+ height: {
2501
+ shorthand: "h",
2502
+ className: "h",
2503
+ group: "Height",
2504
+ values: heightValues
2505
+ },
2506
+ blockSize: {
2507
+ className: "h-bs",
2508
+ group: "Height",
2509
+ values: heightValues
2510
+ },
2511
+ minHeight: {
2512
+ shorthand: "minH",
2513
+ className: "min-h",
2514
+ group: "Height",
2515
+ values: heightValues
2516
+ },
2517
+ minBlockSize: {
2518
+ className: "min-h-bs",
2519
+ group: "Height",
2520
+ values: heightValues
2521
+ },
2522
+ maxHeight: {
2523
+ shorthand: "maxH",
2524
+ className: "max-h",
2525
+ group: "Height",
2526
+ values: heightValues
2527
+ },
2528
+ maxBlockSize: {
2529
+ className: "max-b",
2530
+ group: "Height",
2531
+ values: heightValues
2532
+ },
2533
+ boxSize: {
2534
+ className: "size",
2535
+ group: "Width",
2536
+ values: widthValues,
2537
+ transform(value) {
2538
+ return {
2539
+ width: value,
2540
+ height: value
2541
+ };
2542
+ }
2543
+ }
2544
+ };
2545
+
2546
+ // src/utilities/spacing.ts
2547
+ var marginValues = (theme) => ({
2548
+ auto: "auto",
2549
+ ...theme("spacing")
2550
+ });
2551
+ var spacing = {
2552
+ padding: {
2553
+ className: "p",
2554
+ shorthand: "p",
2555
+ values: "spacing",
2556
+ group: "Padding"
2557
+ },
2558
+ paddingLeft: {
2559
+ className: "pl",
2560
+ shorthand: "pl",
2561
+ values: "spacing",
2562
+ group: "Padding"
2563
+ },
2564
+ paddingRight: {
2565
+ className: "pr",
2566
+ shorthand: "pr",
2567
+ values: "spacing",
2568
+ group: "Padding"
2569
+ },
2570
+ paddingTop: {
2571
+ className: "pt",
2572
+ shorthand: "pt",
2573
+ values: "spacing",
2574
+ group: "Padding"
2575
+ },
2576
+ paddingBottom: {
2577
+ className: "pb",
2578
+ shorthand: "pb",
2579
+ values: "spacing",
2580
+ group: "Padding"
2581
+ },
2582
+ paddingBlock: {
2583
+ className: "py",
2584
+ values: "spacing",
2585
+ group: "Padding",
2586
+ shorthand: ["py", "paddingY"]
2587
+ },
2588
+ paddingBlockEnd: {
2589
+ className: "pbe",
2590
+ values: "spacing",
2591
+ group: "Padding"
2592
+ },
2593
+ paddingBlockStart: {
2594
+ className: "pbs",
2595
+ values: "spacing",
2596
+ group: "Padding"
2597
+ },
2598
+ paddingInline: {
2599
+ className: "px",
2600
+ values: "spacing",
2601
+ group: "Padding",
2602
+ shorthand: ["paddingX", "px"]
2603
+ },
2604
+ paddingInlineEnd: {
2605
+ className: "pe",
2606
+ shorthand: ["pe", "paddingEnd"],
2607
+ values: "spacing",
2608
+ group: "Padding"
2609
+ },
2610
+ paddingInlineStart: {
2611
+ className: "ps",
2612
+ shorthand: ["ps", "paddingStart"],
2613
+ values: "spacing",
2614
+ group: "Padding"
2615
+ },
2616
+ marginLeft: {
2617
+ className: "ml",
2618
+ shorthand: "ml",
2619
+ values: marginValues,
2620
+ group: "Margin"
2621
+ },
2622
+ marginRight: {
2623
+ className: "mr",
2624
+ shorthand: "mr",
2625
+ values: marginValues,
2626
+ group: "Margin"
2627
+ },
2628
+ marginTop: {
2629
+ className: "mt",
2630
+ shorthand: "mt",
2631
+ values: marginValues,
2632
+ group: "Margin"
2633
+ },
2634
+ marginBottom: {
2635
+ className: "mb",
2636
+ shorthand: "mb",
2637
+ values: marginValues,
2638
+ group: "Margin"
2639
+ },
2640
+ margin: {
2641
+ className: "m",
2642
+ shorthand: "m",
2643
+ values: marginValues,
2644
+ group: "Margin"
2645
+ },
2646
+ marginBlock: {
2647
+ className: "my",
2648
+ values: marginValues,
2649
+ group: "Margin",
2650
+ shorthand: ["my", "marginY"]
2651
+ },
2652
+ marginBlockEnd: {
2653
+ className: "mbe",
2654
+ values: marginValues,
2655
+ group: "Margin"
2656
+ },
2657
+ marginBlockStart: {
2658
+ className: "mbs",
2659
+ values: marginValues,
2660
+ group: "Margin"
2661
+ },
2662
+ marginInline: {
2663
+ className: "mx",
2664
+ values: marginValues,
2665
+ group: "Margin",
2666
+ shorthand: ["mx", "marginX"]
2667
+ },
2668
+ marginInlineEnd: {
2669
+ className: "me",
2670
+ shorthand: ["me", "marginEnd"],
2671
+ values: marginValues,
2672
+ group: "Margin"
2673
+ },
2674
+ marginInlineStart: {
2675
+ className: "ms",
2676
+ shorthand: ["ms", "marginStart"],
2677
+ values: marginValues,
2678
+ group: "Margin"
2679
+ },
2680
+ spaceX: {
2681
+ className: "sx",
2682
+ values: marginValues,
2683
+ property: "marginInlineStart",
2684
+ group: "Margin",
2685
+ transform(value) {
2686
+ return {
2687
+ "& > :not([hidden]) ~ :not([hidden])": {
2688
+ marginInlineStart: value,
2689
+ marginInlineEnd: "0px"
2690
+ }
2691
+ };
2692
+ }
2693
+ },
2694
+ spaceY: {
2695
+ className: "sy",
2696
+ values: marginValues,
2697
+ property: "marginBlockStart",
2698
+ group: "Margin",
2699
+ transform(value) {
2700
+ return {
2701
+ "& > :not([hidden]) ~ :not([hidden])": {
2702
+ marginTop: value,
2703
+ marginBottom: "0px"
2704
+ }
2705
+ };
2706
+ }
2707
+ }
2708
+ };
2709
+
2710
+ // src/utilities/svg.ts
2711
+ var svg = {
2712
+ fill: {
2713
+ className: "fill",
2714
+ values: "colors",
2715
+ group: "Color",
2716
+ transform: createColorMixTransform("fill")
2717
+ },
2718
+ stroke: {
2719
+ className: "stk",
2720
+ values: "colors",
2721
+ group: "Color",
2722
+ transform: createColorMixTransform("stroke")
2723
+ },
2724
+ strokeWidth: {
2725
+ className: "stk-w",
2726
+ values: "borderWidths",
2727
+ group: "Border"
2728
+ },
2729
+ strokeDasharray: {
2730
+ className: "stk-dsh",
2731
+ group: "Border"
2732
+ },
2733
+ strokeDashoffset: {
2734
+ className: "stk-do",
2735
+ group: "Border"
2736
+ },
2737
+ strokeLinecap: {
2738
+ className: "stk-lc",
2739
+ group: "Border"
2740
+ },
2741
+ strokeLinejoin: {
2742
+ className: "stk-lj",
2743
+ group: "Border"
2744
+ },
2745
+ strokeMiterlimit: {
2746
+ className: "stk-ml",
2747
+ group: "Border"
2748
+ },
2749
+ strokeOpacity: {
2750
+ className: "stk-op",
2751
+ group: "Border"
2752
+ }
2753
+ };
2754
+
2755
+ // src/utilities/tables.ts
2756
+ var tables = {
2757
+ borderCollapse: {
2758
+ className: "bd-cl",
2759
+ group: "Table"
2760
+ },
2761
+ borderSpacing: {
2762
+ className: "bd-sp",
2763
+ group: "Table",
2764
+ values(theme) {
2765
+ return {
2766
+ ...theme("spacing"),
2767
+ auto: "var(--border-spacing-x) var(--border-spacing-y)"
2768
+ };
2769
+ }
2770
+ },
2771
+ borderSpacingX: {
2772
+ className: "bd-sx",
2773
+ values: "spacing",
2774
+ group: "Table",
2775
+ transform(value) {
2776
+ return {
2777
+ "--border-spacing-x": value
2778
+ };
2779
+ }
2780
+ },
2781
+ borderSpacingY: {
2782
+ className: "bd-sy",
2783
+ values: "spacing",
2784
+ group: "Table",
2785
+ transform(value) {
2786
+ return {
2787
+ "--border-spacing-y": value
2788
+ };
2789
+ }
2790
+ },
2791
+ tableLayout: {
2792
+ className: "tbl",
2793
+ group: "Table"
2794
+ }
2795
+ };
2796
+
2797
+ // src/utilities/transforms.ts
2798
+ var positiveFractions = {
2799
+ "1/2": "50%",
2800
+ "1/3": "33.333333%",
2801
+ "2/3": "66.666667%",
2802
+ "1/4": "25%",
2803
+ "2/4": "50%",
2804
+ "3/4": "75%",
2805
+ full: "100%"
2806
+ };
2807
+ var negativeFractions = Object.fromEntries(
2808
+ Object.entries(positiveFractions).map(([key, value]) => [`-${key}`, `-${value}`])
2809
+ );
2810
+ var fractions = { ...positiveFractions, ...negativeFractions };
2811
+ var transforms = {
2812
+ transformOrigin: {
2813
+ className: "trf-o",
2814
+ group: "Transform"
2815
+ },
2816
+ transformBox: {
2817
+ className: "trf-b",
2818
+ group: "Transform"
2819
+ },
2820
+ transformStyle: {
2821
+ className: "trf-s",
2822
+ group: "Transform"
2823
+ },
2824
+ transform: {
2825
+ className: "trf",
2826
+ group: "Transform"
2827
+ },
2828
+ rotate: {
2829
+ className: "rotate",
2830
+ group: "Transform",
2831
+ property: "rotate",
2832
+ values: {
2833
+ auto: "var(--rotate-x) var(--rotate-y)",
2834
+ "auto-3d": "var(--rotate-x) var(--rotate-y) var(--rotate-z)"
2835
+ }
2836
+ },
2837
+ rotateX: {
2838
+ className: "rotate-x",
2839
+ group: "Transform",
2840
+ property: "rotate",
2841
+ transform(value) {
2842
+ return {
2843
+ "--rotate-x": value
2844
+ };
2845
+ }
2846
+ },
2847
+ rotateY: {
2848
+ className: "rotate-y",
2849
+ group: "Transform",
2850
+ property: "rotate",
2851
+ transform(value) {
2852
+ return {
2853
+ "--rotate-y": value
2854
+ };
2855
+ }
2856
+ },
2857
+ rotateZ: {
2858
+ className: "rotate-z",
2859
+ group: "Transform",
2860
+ property: "rotate",
2861
+ transform(value) {
2862
+ return {
2863
+ "--rotate-z": value
2864
+ };
2865
+ }
2866
+ },
2867
+ scale: {
2868
+ className: "scale",
2869
+ group: "Transform",
2870
+ property: "scale",
2871
+ values: {
2872
+ auto: "var(--scale-x) var(--scale-y)"
2873
+ }
2874
+ },
2875
+ scaleX: {
2876
+ className: "scale-x",
2877
+ group: "Transform",
2878
+ transform(value) {
2879
+ return {
2880
+ "--scale-x": value
2881
+ };
2882
+ }
2883
+ },
2884
+ scaleY: {
2885
+ className: "scale-y",
2886
+ group: "Transform",
2887
+ transform(value) {
2888
+ return {
2889
+ "--scale-y": value
2890
+ };
2891
+ }
2892
+ },
2893
+ translate: {
2894
+ className: "translate",
2895
+ group: "Transform",
2896
+ property: "translate",
2897
+ values: {
2898
+ auto: "var(--translate-x) var(--translate-y)",
2899
+ "auto-3d": "var(--translate-x) var(--translate-y) var(--translate-z)"
2900
+ }
2901
+ },
2902
+ translateX: {
2903
+ shorthand: "x",
2904
+ className: "translate-x",
2905
+ group: "Transform",
2906
+ values(theme) {
2907
+ return {
2908
+ ...theme("spacing"),
2909
+ ...fractions
2910
+ };
2911
+ },
2912
+ transform(value) {
2913
+ return {
2914
+ "--translate-x": value
2915
+ };
2916
+ }
2917
+ },
2918
+ translateY: {
2919
+ shorthand: "y",
2920
+ className: "translate-y",
2921
+ group: "Transform",
2922
+ values(theme) {
2923
+ return {
2924
+ ...theme("spacing"),
2925
+ ...fractions
2926
+ };
2927
+ },
2928
+ transform(value) {
2929
+ return {
2930
+ "--translate-y": value
2931
+ };
2932
+ }
2933
+ },
2934
+ translateZ: {
2935
+ shorthand: "z",
2936
+ className: "translate-z",
2937
+ group: "Transform",
2938
+ values(theme) {
2939
+ return {
2940
+ ...theme("spacing"),
2941
+ ...fractions
2942
+ };
2943
+ },
2944
+ transform(value) {
2945
+ return {
2946
+ "--translate-z": value
2947
+ };
2948
+ }
2949
+ }
2950
+ };
2951
+
2952
+ // src/utilities/transitions.ts
2953
+ var createTransition = (value) => ({
2954
+ transitionProperty: `var(--transition-prop, ${value})`,
2955
+ transitionTimingFunction: "var(--transition-easing, cubic-bezier(0.4, 0, 0.2, 1))",
2956
+ transitionDuration: "var(--transition-duration, 150ms)"
2957
+ });
2958
+ var transitionMap = {
2959
+ all: createTransition("all"),
2960
+ common: createTransition(
2961
+ "color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter"
2962
+ ),
2963
+ size: createTransition("width, height, min-width, max-width, min-height, max-height"),
2964
+ position: createTransition("left, right, top, bottom, inset, inset-inline, inset-block"),
2965
+ background: createTransition("background, background-color, background-image, background-position"),
2966
+ colors: createTransition("color, background-color, border-color, outline-color, text-decoration-color, fill, stroke"),
2967
+ opacity: createTransition("opacity"),
2968
+ shadow: createTransition("box-shadow"),
2969
+ transform: createTransition("transform")
2970
+ };
2971
+ var transitionPropertyMap = {
2972
+ common: "color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",
2973
+ colors: "color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",
2974
+ size: "width, height, min-width, max-width, min-height, max-height",
2975
+ position: "left, right, top, bottom, inset, inset-inline, inset-block",
2976
+ background: "background, background-color, background-image, background-position"
2977
+ };
2978
+ var transitions = {
2979
+ transitionTimingFunction: {
2980
+ className: "trs-tmf",
2981
+ values: "easings",
2982
+ group: "Transition",
2983
+ transform(value) {
2984
+ return {
2985
+ "--transition-easing": value,
2986
+ transitionTimingFunction: value
2987
+ };
2988
+ }
2989
+ },
2990
+ transitionDelay: {
2991
+ className: "trs-dly",
2992
+ values: "durations",
2993
+ group: "Transition"
2994
+ },
2995
+ transitionDuration: {
2996
+ className: "trs-dur",
2997
+ values: "durations",
2998
+ group: "Transition",
2999
+ transform(value) {
3000
+ return {
3001
+ "--transition-duration": value,
3002
+ transitionDuration: value
3003
+ };
3004
+ }
3005
+ },
3006
+ transitionProperty: {
3007
+ className: "trs-prop",
3008
+ group: "Transition",
3009
+ values: transitionPropertyMap,
3010
+ transform(value) {
3011
+ return {
3012
+ "--transition-prop": value,
3013
+ transitionProperty: value
3014
+ };
3015
+ }
3016
+ },
3017
+ transition: {
3018
+ className: "trs",
3019
+ values: Object.keys(transitionMap),
3020
+ group: "Transition",
3021
+ transform(value) {
3022
+ return transitionMap[value] ?? { transition: value };
3023
+ }
3024
+ },
3025
+ // Animations
3026
+ animation: {
3027
+ className: "anim",
3028
+ values: "animations",
3029
+ group: "Animation"
3030
+ },
3031
+ animationName: {
3032
+ className: "anim-n",
3033
+ values: "keyframes",
3034
+ group: "Animation"
3035
+ },
3036
+ animationTimingFunction: {
3037
+ className: "anim-tmf",
3038
+ values: "easings",
3039
+ group: "Animation"
3040
+ },
3041
+ animationDuration: {
3042
+ className: "anim-dur",
3043
+ values: "durations",
3044
+ group: "Animation"
3045
+ },
3046
+ animationDelay: {
3047
+ className: "anim-dly",
3048
+ values: "durations",
3049
+ group: "Animation"
3050
+ },
3051
+ animationPlayState: {
3052
+ className: "anim-ps",
3053
+ group: "Animation"
3054
+ },
3055
+ animationComposition: {
3056
+ className: "anim-comp",
3057
+ group: "Animation"
3058
+ },
3059
+ animationFillMode: {
3060
+ className: "anim-fm",
3061
+ group: "Animation"
3062
+ },
3063
+ animationDirection: {
3064
+ className: "anim-dir",
3065
+ group: "Animation"
3066
+ },
3067
+ animationIterationCount: {
3068
+ className: "anim-ic",
3069
+ group: "Animation"
3070
+ },
3071
+ animationRange: {
3072
+ className: "anim-r",
3073
+ group: "Animation"
3074
+ },
3075
+ animationState: {
3076
+ className: "anim-s",
3077
+ group: "Animation"
3078
+ },
3079
+ animationRangeStart: {
3080
+ className: "anim-rs",
3081
+ group: "Animation"
3082
+ },
3083
+ animationRangeEnd: {
3084
+ className: "anim-re",
3085
+ group: "Animation"
3086
+ },
3087
+ animationTimeline: {
3088
+ className: "anim-tl",
3089
+ group: "Animation"
3090
+ }
3091
+ };
3092
+
3093
+ // src/utilities/typography.ts
3094
+ var typography = {
3095
+ color: {
3096
+ className: "c",
3097
+ values: "colors",
3098
+ group: "Color",
3099
+ transform: createColorMixTransform("color")
3100
+ },
3101
+ fontFamily: {
3102
+ className: "ff",
3103
+ values: "fonts",
3104
+ group: "Typography"
3105
+ },
3106
+ fontSize: {
3107
+ className: "fs",
3108
+ values: "fontSizes",
3109
+ group: "Typography"
3110
+ },
3111
+ fontSizeAdjust: {
3112
+ className: "fs-a",
3113
+ group: "Typography"
3114
+ },
3115
+ fontPalette: {
3116
+ className: "fp",
3117
+ group: "Typography"
3118
+ },
3119
+ fontKerning: {
3120
+ className: "fk",
3121
+ group: "Typography"
3122
+ },
3123
+ fontFeatureSettings: {
3124
+ className: "ff-s",
3125
+ group: "Typography"
3126
+ },
3127
+ fontWeight: {
3128
+ className: "fw",
3129
+ values: "fontWeights",
3130
+ group: "Typography"
3131
+ },
3132
+ fontSmoothing: {
3133
+ className: "fsmt",
3134
+ group: "Typography",
3135
+ values: {
3136
+ antialiased: "antialiased",
3137
+ "subpixel-antialiased": "auto"
3138
+ },
3139
+ transform(value) {
3140
+ return {
3141
+ WebkitFontSmoothing: value
3142
+ };
3143
+ }
3144
+ },
3145
+ fontVariant: {
3146
+ className: "fv",
3147
+ group: "Typography"
3148
+ },
3149
+ fontVariantAlternates: {
3150
+ className: "fv-alt",
3151
+ group: "Typography"
3152
+ },
3153
+ fontVariantCaps: {
3154
+ className: "fv-caps",
3155
+ group: "Typography"
3156
+ },
3157
+ fontVariationSettings: {
3158
+ className: "fv-s",
3159
+ group: "Typography"
3160
+ },
3161
+ fontVariantNumeric: {
3162
+ className: "fv-num",
3163
+ group: "Typography"
3164
+ },
3165
+ letterSpacing: {
3166
+ className: "ls",
3167
+ values: "letterSpacings",
3168
+ group: "Typography"
3169
+ },
3170
+ lineHeight: {
3171
+ className: "lh",
3172
+ values: "lineHeights",
3173
+ group: "Typography"
3174
+ },
3175
+ textAlign: {
3176
+ className: "ta",
3177
+ group: "Typography"
3178
+ },
3179
+ textDecoration: {
3180
+ className: "td",
3181
+ group: "Typography"
3182
+ },
3183
+ textDecorationColor: {
3184
+ className: "td-c",
3185
+ values: "colors",
3186
+ transform: createColorMixTransform("textDecorationColor"),
3187
+ group: "Typography"
3188
+ },
3189
+ textEmphasisColor: {
3190
+ className: "te-c",
3191
+ values: "colors",
3192
+ transform: createColorMixTransform("textEmphasisColor"),
3193
+ group: "Typography"
3194
+ },
3195
+ textDecorationStyle: {
3196
+ className: "td-s",
3197
+ group: "Typography"
3198
+ },
3199
+ textDecorationThickness: {
3200
+ className: "td-t",
3201
+ group: "Typography"
3202
+ },
3203
+ textUnderlineOffset: {
3204
+ className: "tu-o",
3205
+ group: "Typography"
3206
+ },
3207
+ textTransform: {
3208
+ className: "tt",
3209
+ group: "Typography"
3210
+ },
3211
+ textIndent: {
3212
+ className: "ti",
3213
+ group: "Typography",
3214
+ values: "spacing"
3215
+ },
3216
+ textShadow: {
3217
+ className: "tsh",
3218
+ values: "shadows",
3219
+ group: "Typography"
3220
+ },
3221
+ textShadowColor: {
3222
+ shorthand: "textShadowColor",
3223
+ className: "tsh-c",
3224
+ values: "colors",
3225
+ transform: createColorMixTransform("--text-shadow-color"),
3226
+ group: "Typography"
3227
+ },
3228
+ WebkitTextFillColor: {
3229
+ className: "wktf-c",
3230
+ values: "colors",
3231
+ transform: createColorMixTransform("WebkitTextFillColor"),
3232
+ group: "Typography"
3233
+ },
3234
+ textOverflow: {
3235
+ className: "tov",
3236
+ group: "Typography"
3237
+ },
3238
+ verticalAlign: {
3239
+ className: "va",
3240
+ group: "Typography"
3241
+ },
3242
+ wordBreak: {
3243
+ className: "wb",
3244
+ group: "Typography"
3245
+ },
3246
+ textWrap: {
3247
+ className: "tw",
3248
+ values: ["wrap", "balance", "nowrap"],
3249
+ group: "Typography",
3250
+ transform(value) {
3251
+ return { textWrap: value };
3252
+ }
3253
+ },
3254
+ truncate: {
3255
+ className: "trunc",
3256
+ values: { type: "boolean" },
3257
+ group: "Typography",
3258
+ transform(value) {
3259
+ if (!value) return {};
3260
+ return {
3261
+ overflow: "hidden",
3262
+ textOverflow: "ellipsis",
3263
+ whiteSpace: "nowrap"
3264
+ };
3265
+ }
3266
+ },
3267
+ lineClamp: {
3268
+ className: "lc",
3269
+ group: "Typography",
3270
+ transform(value) {
3271
+ if (value === "none") {
3272
+ return {
3273
+ WebkitLineClamp: "unset"
3274
+ };
3275
+ }
3276
+ return {
3277
+ overflow: "hidden",
3278
+ display: "-webkit-box",
3279
+ WebkitLineClamp: value,
3280
+ WebkitBoxOrient: "vertical"
3281
+ };
3282
+ }
3283
+ }
3284
+ };
3285
+
3286
+ // src/utilities/index.ts
3287
+ var utilities = Object.assign(
3288
+ {},
3289
+ layout,
3290
+ display,
3291
+ flexGrid,
3292
+ spacing,
3293
+ outline,
3294
+ focusRing,
3295
+ divide,
3296
+ sizing,
3297
+ typography,
3298
+ list,
3299
+ background,
3300
+ backgroundGradients,
3301
+ border,
3302
+ effects,
3303
+ tables,
3304
+ transitions,
3305
+ transforms,
3306
+ interactivity,
3307
+ svg,
3308
+ helpers,
3309
+ polyfill,
3310
+ container2,
3311
+ cursor
3312
+ );
3313
+
3314
+ // src/index.ts
3315
+ var definePreset = (preset2) => preset2;
3316
+ var preset = definePreset({
3317
+ name: "@bamboocss/preset-base",
3318
+ conditions,
3319
+ utilities,
3320
+ patterns,
3321
+ // globalVars,
3322
+ globalCss
3323
+ });
3324
+ var index_default = preset;
3325
+ export {
3326
+ index_default as default,
3327
+ preset
3328
+ };