@kbach/react 0.5.1 → 0.5.3

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.
@@ -45,290 +45,312 @@ var defaultColors = {
45
45
  black: "#000000",
46
46
  white: "#ffffff",
47
47
  slate: {
48
- 1: "#f8f9fc",
49
- 2: "#edf0f8",
50
- 3: "#dde3f2",
51
- 4: "#c5cee8",
52
- 5: "#9badd3",
53
- 6: "#6c87b6",
54
- 7: "#526b98",
55
- 8: "#3e5479",
56
- 9: "#2d3f5e",
57
- 10: "#1d2b42",
58
- 11: "#0f1828"
48
+ 1: "#f8fafc",
49
+ 2: "#f1f5f9",
50
+ 3: "#e2e8f0",
51
+ 4: "#cbd5e1",
52
+ 5: "#94a3b8",
53
+ 6: "#64748b",
54
+ 7: "#475569",
55
+ 8: "#334155",
56
+ 9: "#1e293b",
57
+ 10: "#0f172a",
58
+ 11: "#020617",
59
+ 12: "#01020a"
59
60
  },
60
61
  gray: {
61
- 1: "#f9f9f9",
62
- 2: "#f3f3f3",
63
- 3: "#e6e6e7",
64
- 4: "#d2d2d4",
65
- 5: "#aaaaad",
66
- 6: "#757578",
67
- 7: "#585860",
68
- 8: "#434349",
69
- 9: "#2c2c32",
70
- 10: "#1c1c21",
71
- 11: "#0c0c0f"
62
+ 1: "#f9fafb",
63
+ 2: "#f3f4f6",
64
+ 3: "#e5e7eb",
65
+ 4: "#d1d5db",
66
+ 5: "#9ca3af",
67
+ 6: "#6b7280",
68
+ 7: "#4b5563",
69
+ 8: "#374151",
70
+ 9: "#1f2937",
71
+ 10: "#111827",
72
+ 11: "#030712",
73
+ 12: "#020409"
72
74
  },
73
75
  zinc: {
74
76
  1: "#fafafa",
75
77
  2: "#f4f4f5",
76
- 3: "#e8e8ea",
77
- 4: "#d3d4d7",
78
- 5: "#a9aaae",
79
- 6: "#74757c",
80
- 7: "#57585f",
81
- 8: "#42434b",
82
- 9: "#2a2b31",
83
- 10: "#1a1b20",
84
- 11: "#0b0b0e"
78
+ 3: "#e4e4e7",
79
+ 4: "#d4d4d8",
80
+ 5: "#a1a1aa",
81
+ 6: "#71717a",
82
+ 7: "#52525b",
83
+ 8: "#3f3f46",
84
+ 9: "#27272a",
85
+ 10: "#18181b",
86
+ 11: "#09090b",
87
+ 12: "#050506"
85
88
  },
86
89
  neutral: {
87
90
  1: "#fafafa",
88
91
  2: "#f5f5f5",
89
- 3: "#e9e9e9",
90
- 4: "#d5d5d5",
91
- 5: "#ababab",
92
- 6: "#777777",
93
- 7: "#5a5a5a",
94
- 8: "#444444",
95
- 9: "#2d2d2d",
96
- 10: "#1d1d1d",
97
- 11: "#0d0d0d"
92
+ 3: "#e5e5e5",
93
+ 4: "#d4d4d4",
94
+ 5: "#a3a3a3",
95
+ 6: "#737373",
96
+ 7: "#525252",
97
+ 8: "#404040",
98
+ 9: "#262626",
99
+ 10: "#171717",
100
+ 11: "#0a0a0a",
101
+ 12: "#050505"
98
102
  },
99
103
  stone: {
100
- 1: "#fafaf8",
101
- 2: "#f5f4f1",
102
- 3: "#e9e6e0",
103
- 4: "#d6d0c8",
104
- 5: "#b3ab9c",
105
- 6: "#7e7568",
106
- 7: "#605850",
107
- 8: "#4a4440",
108
- 9: "#302c28",
109
- 10: "#201d1a",
110
- 11: "#100f0c"
104
+ 1: "#fafaf9",
105
+ 2: "#f5f5f4",
106
+ 3: "#e7e5e4",
107
+ 4: "#d6d3d1",
108
+ 5: "#a8a29e",
109
+ 6: "#78716c",
110
+ 7: "#57534e",
111
+ 8: "#44403c",
112
+ 9: "#292524",
113
+ 10: "#1c1917",
114
+ 11: "#0c0a09",
115
+ 12: "#070605"
111
116
  },
112
117
  red: {
113
- 1: "#fff4f3",
114
- 2: "#ffe8e6",
115
- 3: "#ffd1ce",
116
- 4: "#ffaba5",
117
- 5: "#ff7b73",
118
- 6: "#f44642",
119
- 7: "#d6302c",
120
- 8: "#be2020",
121
- 9: "#961515",
122
- 10: "#6e0f0f",
123
- 11: "#3e0606"
118
+ 1: "#fef2f2",
119
+ 2: "#fee2e2",
120
+ 3: "#fecaca",
121
+ 4: "#fca5a5",
122
+ 5: "#f87171",
123
+ 6: "#ef4444",
124
+ 7: "#dc2626",
125
+ 8: "#b91c1c",
126
+ 9: "#991b1b",
127
+ 10: "#7f1d1d",
128
+ 11: "#450a0a",
129
+ 12: "#280606"
124
130
  },
125
131
  orange: {
126
- 1: "#fff8ec",
127
- 2: "#ffedce",
128
- 3: "#ffdda0",
129
- 4: "#ffc06a",
130
- 5: "#ff9c32",
131
- 6: "#f47c0c",
132
- 7: "#cc6205",
133
- 8: "#a34b04",
134
- 9: "#7d3806",
135
- 10: "#5b2807",
136
- 11: "#311502"
132
+ 1: "#fff7ed",
133
+ 2: "#ffedd5",
134
+ 3: "#fed7aa",
135
+ 4: "#fdba74",
136
+ 5: "#fb923c",
137
+ 6: "#f97316",
138
+ 7: "#ea580c",
139
+ 8: "#c2410c",
140
+ 9: "#9a3412",
141
+ 10: "#7c2d12",
142
+ 11: "#431407",
143
+ 12: "#270c04"
137
144
  },
138
145
  amber: {
139
- 1: "#fffbea",
140
- 2: "#fff5c7",
141
- 3: "#ffeb85",
142
- 4: "#ffd944",
143
- 5: "#f8c00e",
144
- 6: "#e4a500",
145
- 7: "#bd8300",
146
- 8: "#956600",
147
- 9: "#704c00",
148
- 10: "#513600",
149
- 11: "#2d1e00"
146
+ 1: "#fffbeb",
147
+ 2: "#fef3c7",
148
+ 3: "#fde68a",
149
+ 4: "#fcd34d",
150
+ 5: "#fbbf24",
151
+ 6: "#f59e0b",
152
+ 7: "#d97706",
153
+ 8: "#b45309",
154
+ 9: "#92400e",
155
+ 10: "#78350f",
156
+ 11: "#451a03",
157
+ 12: "#291002"
150
158
  },
151
159
  yellow: {
152
- 1: "#ffffe8",
153
- 2: "#ffffc8",
154
- 3: "#fffb82",
155
- 4: "#fff342",
156
- 5: "#f5da0e",
157
- 6: "#e1bd00",
158
- 7: "#bb9a00",
159
- 8: "#947800",
160
- 9: "#6f5900",
161
- 10: "#514200",
162
- 11: "#2d2500"
160
+ 1: "#fefce8",
161
+ 2: "#fef9c3",
162
+ 3: "#fef08a",
163
+ 4: "#fde047",
164
+ 5: "#facc15",
165
+ 6: "#eab308",
166
+ 7: "#ca8a04",
167
+ 8: "#a16207",
168
+ 9: "#854d0e",
169
+ 10: "#713f12",
170
+ 11: "#422006",
171
+ 12: "#271304"
163
172
  },
164
173
  lime: {
165
- 1: "#f5ffe8",
166
- 2: "#eaffca",
167
- 3: "#d5ff90",
168
- 4: "#b8f658",
169
- 5: "#97e422",
170
- 6: "#74c90b",
171
- 7: "#5aa407",
172
- 8: "#457e08",
173
- 9: "#346008",
174
- 10: "#254408",
175
- 11: "#132505"
174
+ 1: "#f7fee7",
175
+ 2: "#ecfccb",
176
+ 3: "#d9f99d",
177
+ 4: "#bef264",
178
+ 5: "#a3e635",
179
+ 6: "#84cc16",
180
+ 7: "#65a30d",
181
+ 8: "#4d7c0f",
182
+ 9: "#3f6212",
183
+ 10: "#365314",
184
+ 11: "#1a2e05",
185
+ 12: "#0f1b03"
176
186
  },
177
187
  green: {
178
- 1: "#f0fdf5",
179
- 2: "#dcfce9",
180
- 3: "#b8f4d2",
181
- 4: "#84e8b1",
182
- 5: "#47d38d",
183
- 6: "#1cb86d",
184
- 7: "#129a57",
185
- 8: "#0e7b45",
186
- 9: "#0d6035",
187
- 10: "#0b4f2d",
188
- 11: "#042a18"
188
+ 1: "#f0fdf4",
189
+ 2: "#dcfce7",
190
+ 3: "#bbf7d0",
191
+ 4: "#86efac",
192
+ 5: "#4ade80",
193
+ 6: "#22c55e",
194
+ 7: "#16a34a",
195
+ 8: "#15803d",
196
+ 9: "#166534",
197
+ 10: "#14532d",
198
+ 11: "#052e16",
199
+ 12: "#031b0d"
189
200
  },
190
201
  emerald: {
191
- 1: "#ecfdf7",
192
- 2: "#d0fcea",
193
- 3: "#a5f4d6",
194
- 4: "#6aeabc",
195
- 5: "#35d49f",
196
- 6: "#10b982",
197
- 7: "#099768",
198
- 8: "#087a53",
199
- 9: "#0a5f43",
200
- 10: "#094e37",
201
- 11: "#032b1f"
202
+ 1: "#ecfdf5",
203
+ 2: "#d1fae5",
204
+ 3: "#a7f3d0",
205
+ 4: "#6ee7b7",
206
+ 5: "#34d399",
207
+ 6: "#10b981",
208
+ 7: "#059669",
209
+ 8: "#047857",
210
+ 9: "#065f46",
211
+ 10: "#064e3b",
212
+ 11: "#022c22",
213
+ 12: "#011a14"
202
214
  },
203
215
  teal: {
204
- 1: "#efffff",
205
- 2: "#ccfcf8",
206
- 3: "#99f7f1",
207
- 4: "#60eee6",
208
- 5: "#2cdad3",
209
- 6: "#13bebc",
210
- 7: "#0d9997",
211
- 8: "#0d7a78",
212
- 9: "#0e6160",
213
- 10: "#0d4f4e",
214
- 11: "#063535"
216
+ 1: "#f0fdfa",
217
+ 2: "#ccfbf1",
218
+ 3: "#99f6e4",
219
+ 4: "#5eead4",
220
+ 5: "#2dd4bf",
221
+ 6: "#14b8a6",
222
+ 7: "#0d9488",
223
+ 8: "#0f766e",
224
+ 9: "#115e59",
225
+ 10: "#134e4a",
226
+ 11: "#042f2e",
227
+ 12: "#021c1b"
215
228
  },
216
229
  cyan: {
217
230
  1: "#ecfeff",
218
- 2: "#cffcfe",
219
- 3: "#a3f6fc",
220
- 4: "#67ebfa",
221
- 5: "#23d7f5",
222
- 6: "#07bde0",
223
- 7: "#0898b8",
224
- 8: "#0c7896",
225
- 9: "#135f78",
226
- 10: "#134e65",
227
- 11: "#053143"
231
+ 2: "#cffafe",
232
+ 3: "#a5f3fc",
233
+ 4: "#67e8f9",
234
+ 5: "#22d3ee",
235
+ 6: "#06b6d4",
236
+ 7: "#0891b2",
237
+ 8: "#0e7490",
238
+ 9: "#155e75",
239
+ 10: "#164e63",
240
+ 11: "#083344",
241
+ 12: "#041e28"
228
242
  },
229
243
  sky: {
230
- 1: "#f0f8ff",
244
+ 1: "#f0f9ff",
231
245
  2: "#e0f2fe",
232
- 3: "#bde3fd",
233
- 4: "#89cffa",
234
- 5: "#48b4f8",
235
- 6: "#149aeb",
236
- 7: "#057ec8",
237
- 8: "#0664a4",
238
- 9: "#0a5087",
239
- 10: "#0d4270",
240
- 11: "#082748"
246
+ 3: "#bae6fd",
247
+ 4: "#7dd3fc",
248
+ 5: "#38bdf8",
249
+ 6: "#0ea5e9",
250
+ 7: "#0284c7",
251
+ 8: "#0369a1",
252
+ 9: "#075985",
253
+ 10: "#0c4a6e",
254
+ 11: "#082f49",
255
+ 12: "#041b2b"
241
256
  },
242
257
  blue: {
243
- 1: "#eff5ff",
244
- 2: "#dde9fe",
245
- 3: "#bdd2fd",
246
- 4: "#8db1fb",
247
- 5: "#5a89f7",
248
- 6: "#2f64f3",
249
- 7: "#1b4de6",
250
- 8: "#1740cc",
251
- 9: "#142da8",
252
- 10: "#102080",
253
- 11: "#0b144f"
258
+ 1: "#eff6ff",
259
+ 2: "#dbeafe",
260
+ 3: "#bfdbfe",
261
+ 4: "#93c5fd",
262
+ 5: "#60a5fa",
263
+ 6: "#3b82f6",
264
+ 7: "#2563eb",
265
+ 8: "#1d4ed8",
266
+ 9: "#1e40af",
267
+ 10: "#1e3a8a",
268
+ 11: "#172554",
269
+ 12: "#0d1633"
254
270
  },
255
271
  indigo: {
256
- 1: "#eff1ff",
257
- 2: "#e2e7ff",
258
- 3: "#c9d1ff",
259
- 4: "#a9b4ff",
260
- 5: "#8590fe",
261
- 6: "#6267f3",
262
- 7: "#4f51e7",
263
- 8: "#4240d0",
264
- 9: "#3434ae",
265
- 10: "#292888",
266
- 11: "#181854"
272
+ 1: "#eef2ff",
273
+ 2: "#e0e7ff",
274
+ 3: "#c7d2fe",
275
+ 4: "#a5b4fc",
276
+ 5: "#818cf8",
277
+ 6: "#6366f1",
278
+ 7: "#4f46e5",
279
+ 8: "#4338ca",
280
+ 9: "#3730a3",
281
+ 10: "#312e81",
282
+ 11: "#1e1b4b",
283
+ 12: "#12102d"
267
284
  },
268
285
  violet: {
269
286
  1: "#f5f3ff",
270
- 2: "#ede9ff",
271
- 3: "#ddd5fe",
272
- 4: "#c6b8fd",
273
- 5: "#a893fa",
274
- 6: "#8a69f7",
275
- 7: "#7248ec",
276
- 8: "#6137d6",
277
- 9: "#4f28ae",
278
- 10: "#3f218e",
279
- 11: "#250f58"
287
+ 2: "#ede9fe",
288
+ 3: "#ddd6fe",
289
+ 4: "#c4b5fd",
290
+ 5: "#a78bfa",
291
+ 6: "#8b5cf6",
292
+ 7: "#7c3aed",
293
+ 8: "#6d28d9",
294
+ 9: "#5b21b6",
295
+ 10: "#4c1d95",
296
+ 11: "#2e1065",
297
+ 12: "#1c0a3d"
280
298
  },
281
299
  purple: {
282
- 1: "#fbf3ff",
283
- 2: "#f4e8ff",
284
- 3: "#e9cfff",
285
- 4: "#d8adfd",
286
- 5: "#bf7cfa",
287
- 6: "#a650f5",
288
- 7: "#8f30e7",
289
- 8: "#7c1fce",
290
- 9: "#671caa",
291
- 10: "#521885",
292
- 11: "#300860"
300
+ 1: "#faf5ff",
301
+ 2: "#f3e8ff",
302
+ 3: "#e9d5ff",
303
+ 4: "#d8b4fe",
304
+ 5: "#c084fc",
305
+ 6: "#a855f7",
306
+ 7: "#9333ea",
307
+ 8: "#7e22ce",
308
+ 9: "#6b21a8",
309
+ 10: "#581c87",
310
+ 11: "#3b0764",
311
+ 12: "#23043c"
293
312
  },
294
313
  fuchsia: {
295
- 1: "#fef3ff",
296
- 2: "#fbe8ff",
297
- 3: "#f6cfff",
298
- 4: "#efaaff",
299
- 5: "#e672fb",
300
- 6: "#d748ef",
301
- 7: "#be20d3",
302
- 8: "#a41ab5",
303
- 9: "#86168e",
304
- 10: "#631470",
305
- 11: "#42024a"
314
+ 1: "#fdf4ff",
315
+ 2: "#fae8ff",
316
+ 3: "#f5d0fe",
317
+ 4: "#f0abfc",
318
+ 5: "#e879f9",
319
+ 6: "#d946ef",
320
+ 7: "#c026d3",
321
+ 8: "#a21caf",
322
+ 9: "#86198f",
323
+ 10: "#701a75",
324
+ 11: "#4a044e",
325
+ 12: "#2d022f"
306
326
  },
307
327
  pink: {
308
- 1: "#fef2f8",
309
- 2: "#fde7f3",
310
- 3: "#fbcde7",
311
- 4: "#f8a8d1",
312
- 5: "#f36cb8",
313
- 6: "#ea3f98",
314
- 7: "#d4217c",
315
- 8: "#be1965",
316
- 9: "#9c1651",
317
- 10: "#74143e",
318
- 11: "#450827"
328
+ 1: "#fdf2f8",
329
+ 2: "#fce7f3",
330
+ 3: "#fbcfe8",
331
+ 4: "#f9a8d4",
332
+ 5: "#f472b6",
333
+ 6: "#ec4899",
334
+ 7: "#db2777",
335
+ 8: "#be185d",
336
+ 9: "#9d174d",
337
+ 10: "#831843",
338
+ 11: "#500724",
339
+ 12: "#300415"
319
340
  },
320
341
  rose: {
321
- 1: "#fff2f3",
322
- 2: "#ffe5e8",
323
- 3: "#ffcacd",
324
- 4: "#ff9fa7",
325
- 5: "#fd6b77",
326
- 6: "#f43e52",
327
- 7: "#e01e31",
328
- 8: "#c0152c",
329
- 9: "#9a1222",
330
- 10: "#701019",
331
- 11: "#420611"
342
+ 1: "#fff1f2",
343
+ 2: "#ffe4e6",
344
+ 3: "#fecdd3",
345
+ 4: "#fda4af",
346
+ 5: "#fb7185",
347
+ 6: "#f43f5e",
348
+ 7: "#e11d48",
349
+ 8: "#be123c",
350
+ 9: "#9f1239",
351
+ 10: "#881337",
352
+ 11: "#4c0519",
353
+ 12: "#2d030e"
332
354
  }
333
355
  };
334
356
  var defaultTheme = {
@@ -659,7 +681,18 @@ var MODIFIERS = /* @__PURE__ */ new Set([
659
681
  "first-line",
660
682
  "marker",
661
683
  // Print media modifier
662
- "print"
684
+ "print",
685
+ // Orientation media modifiers (CSS-injection only)
686
+ "landscape",
687
+ "portrait",
688
+ // Accessibility media modifiers (CSS-injection only)
689
+ "motion-reduce",
690
+ "motion-safe",
691
+ "contrast-more",
692
+ "contrast-less",
693
+ // Directionality modifiers (CSS-injection only)
694
+ "rtl",
695
+ "ltr"
663
696
  ]);
664
697
  var UTILITY_PREFIXES = [
665
698
  // Multi-word flex
@@ -836,6 +869,7 @@ var UTILITY_PREFIXES = [
836
869
  "outline-offset",
837
870
  "will-change",
838
871
  "mix-blend",
872
+ "bg-blend",
839
873
  "decoration",
840
874
  "perspective",
841
875
  "tint",
@@ -858,6 +892,8 @@ var UTILITY_PREFIXES = [
858
892
  "capitalize",
859
893
  "normal-case",
860
894
  "antialiased",
895
+ "subpixel-antialiased",
896
+ "overflow-ellipsis",
861
897
  "truncate",
862
898
  "sr-only",
863
899
  "not-sr-only",
@@ -1184,6 +1220,20 @@ var STANDALONE_UTILITIES = /* @__PURE__ */ new Set([
1184
1220
  "max-h-screen",
1185
1221
  "min-w-screen",
1186
1222
  "max-w-screen",
1223
+ // max-w named container sizes (Tailwind compat)
1224
+ "max-w-none",
1225
+ "max-w-xs",
1226
+ "max-w-sm",
1227
+ "max-w-md",
1228
+ "max-w-lg",
1229
+ "max-w-xl",
1230
+ "max-w-2xl",
1231
+ "max-w-3xl",
1232
+ "max-w-4xl",
1233
+ "max-w-5xl",
1234
+ "max-w-6xl",
1235
+ "max-w-7xl",
1236
+ "max-w-prose",
1187
1237
  // Extended cursors (web-only)
1188
1238
  "cursor-grab",
1189
1239
  "cursor-grabbing",
@@ -1573,6 +1623,8 @@ var STANDALONE = {
1573
1623
  "resize-y": isWeb ? { resize: "vertical" } : null,
1574
1624
  "resize-x": isWeb ? { resize: "horizontal" } : null,
1575
1625
  antialiased: isWeb ? { WebkitFontSmoothing: "antialiased", MozOsxFontSmoothing: "grayscale" } : null,
1626
+ "subpixel-antialiased": isWeb ? { WebkitFontSmoothing: "subpixel-antialiased", MozOsxFontSmoothing: "auto" } : null,
1627
+ "overflow-ellipsis": isWeb ? { textOverflow: "ellipsis" } : null,
1576
1628
  "sr-only": isWeb ? {
1577
1629
  position: "absolute",
1578
1630
  width: 1,
@@ -1687,6 +1739,20 @@ var STANDALONE = {
1687
1739
  "max-h-screen": { maxHeight: "100vh" },
1688
1740
  "min-w-screen": isWeb ? { minWidth: "100vw" } : null,
1689
1741
  "max-w-screen": isWeb ? { maxWidth: "100vw" } : null,
1742
+ // max-w named container sizes (mirrors Tailwind's container scale)
1743
+ "max-w-none": { maxWidth: "none" },
1744
+ "max-w-xs": { maxWidth: 320 },
1745
+ "max-w-sm": { maxWidth: 384 },
1746
+ "max-w-md": { maxWidth: 448 },
1747
+ "max-w-lg": { maxWidth: 512 },
1748
+ "max-w-xl": { maxWidth: 576 },
1749
+ "max-w-2xl": { maxWidth: 672 },
1750
+ "max-w-3xl": { maxWidth: 768 },
1751
+ "max-w-4xl": { maxWidth: 896 },
1752
+ "max-w-5xl": { maxWidth: 1024 },
1753
+ "max-w-6xl": { maxWidth: 1152 },
1754
+ "max-w-7xl": { maxWidth: 1280 },
1755
+ "max-w-prose": isWeb ? { maxWidth: "65ch" } : null,
1690
1756
  // Extended cursors (web-only)
1691
1757
  "cursor-grab": isWeb ? { cursor: "grab" } : null,
1692
1758
  "cursor-grabbing": isWeb ? { cursor: "grabbing" } : null,
@@ -2426,7 +2492,7 @@ var RESOLVERS = {
2426
2492
  };
2427
2493
  return widths[value] ? { columnWidth: widths[value] } : null;
2428
2494
  },
2429
- // ── Mix blend mode (web-only) ─────────────────────────────────────────────
2495
+ // ── Mix / background blend mode (web-only) ───────────────────────────────
2430
2496
  "mix-blend": ({ value }) => {
2431
2497
  if (!isWeb) return null;
2432
2498
  const modes = [
@@ -2450,6 +2516,28 @@ var RESOLVERS = {
2450
2516
  ];
2451
2517
  return modes.includes(value) ? { mixBlendMode: value } : null;
2452
2518
  },
2519
+ "bg-blend": ({ value }) => {
2520
+ if (!isWeb) return null;
2521
+ const modes = [
2522
+ "normal",
2523
+ "multiply",
2524
+ "screen",
2525
+ "overlay",
2526
+ "darken",
2527
+ "lighten",
2528
+ "color-dodge",
2529
+ "color-burn",
2530
+ "hard-light",
2531
+ "soft-light",
2532
+ "difference",
2533
+ "exclusion",
2534
+ "hue",
2535
+ "saturation",
2536
+ "color",
2537
+ "luminosity"
2538
+ ];
2539
+ return modes.includes(value) ? { backgroundBlendMode: value } : null;
2540
+ },
2453
2541
  // ── Will-change (web-only) ─────────────────────────────────────────────────
2454
2542
  "will-change": ({ value, isArbitrary }) => {
2455
2543
  if (!isWeb) return null;
@@ -2978,6 +3066,18 @@ var GROUP_PEER_PREFIX = {
2978
3066
  var MODE_MODS = /* @__PURE__ */ new Set(["dark", "light", "not-dark", "not-light"]);
2979
3067
  var RESPONSIVE_MODS = /* @__PURE__ */ new Set(["sm", "md", "lg", "xl", "2xl"]);
2980
3068
  var PRINT_MODS = /* @__PURE__ */ new Set(["print"]);
3069
+ var MEDIA_MODS = {
3070
+ landscape: "(orientation: landscape)",
3071
+ portrait: "(orientation: portrait)",
3072
+ "motion-reduce": "(prefers-reduced-motion: reduce)",
3073
+ "motion-safe": "(prefers-reduced-motion: no-preference)",
3074
+ "contrast-more": "(prefers-contrast: more)",
3075
+ "contrast-less": "(prefers-contrast: less)"
3076
+ };
3077
+ var DIR_MODS = {
3078
+ rtl: '[dir="rtl"]',
3079
+ ltr: '[dir="ltr"]'
3080
+ };
2981
3081
  function buildDivideDecls(styles) {
2982
3082
  const parts = [];
2983
3083
  if ("__divideX" in styles) {
@@ -2999,12 +3099,12 @@ function injectClassRule(cls, bucketKey, styles, darkMode, important = false) {
2999
3099
  injectRule(styles.__keyframe);
3000
3100
  }
3001
3101
  const isDivide = "__divideX" in styles || "__divideY" in styles || "__divideColor" in styles || "__divideStyle" in styles;
3002
- const cssDecls = isDivide ? buildDivideDecls(styles) : styleValueToCSS(styles, important);
3003
- if (!cssDecls) return;
3004
3102
  const escaped = escapeCSSSelector(cls);
3005
3103
  const childSuffix = isDivide ? " > * + *" : "";
3006
3104
  if (bucketKey === "base") {
3007
- injectRule(`.${escaped}${childSuffix} { ${cssDecls} }`);
3105
+ const baseCssDecls = isDivide ? buildDivideDecls(styles) : styleValueToCSS(styles, important);
3106
+ if (!baseCssDecls) return;
3107
+ injectRule(`.${escaped}${childSuffix} { ${baseCssDecls} }`);
3008
3108
  return;
3009
3109
  }
3010
3110
  const mods = bucketKey.split(":");
@@ -3013,12 +3113,29 @@ function injectClassRule(cls, bucketKey, styles, darkMode, important = false) {
3013
3113
  const hasDark = nonResponsiveMods.includes("dark") || nonResponsiveMods.includes("not-light");
3014
3114
  const hasLight = nonResponsiveMods.includes("light") || nonResponsiveMods.includes("not-dark");
3015
3115
  const hasPrint = nonResponsiveMods.includes("print");
3116
+ const mediaMods = nonResponsiveMods.filter((m) => m in MEDIA_MODS);
3117
+ const dirMods = nonResponsiveMods.filter((m) => m in DIR_MODS);
3016
3118
  const ancestorMods = nonResponsiveMods.filter((m) => m in GROUP_PEER_PREFIX);
3017
- const pseudoMods = nonResponsiveMods.filter((m) => !MODE_MODS.has(m) && !(m in GROUP_PEER_PREFIX) && !PRINT_MODS.has(m));
3119
+ const pseudoMods = nonResponsiveMods.filter(
3120
+ (m) => !MODE_MODS.has(m) && !(m in GROUP_PEER_PREFIX) && !PRINT_MODS.has(m) && !(m in MEDIA_MODS) && !(m in DIR_MODS)
3121
+ );
3018
3122
  const pseudoSuffix = pseudoMods.map((p) => MODIFIER_TO_PSEUDO[p] ?? `:${p}`).join("");
3019
3123
  const elementSelector = `.${escaped}${pseudoSuffix}${childSuffix}`;
3020
3124
  const ancestorPrefix = ancestorMods.length ? ancestorMods.map((m) => GROUP_PEER_PREFIX[m]).join(" ") + " " : "";
3021
- const selector = `${ancestorPrefix}${elementSelector}`;
3125
+ const dirPrefix = dirMods.length ? dirMods.map((m) => DIR_MODS[m]).join(" ") + " " : "";
3126
+ const selector = `${dirPrefix}${ancestorPrefix}${elementSelector}`;
3127
+ const CSS_ONLY_PSEUDOS = /* @__PURE__ */ new Set([
3128
+ "first",
3129
+ "last",
3130
+ "odd",
3131
+ "even",
3132
+ "only",
3133
+ "focus-within",
3134
+ "focus-visible"
3135
+ ]);
3136
+ const needsImportant = important || hasPrint || mediaMods.length > 0 || dirMods.length > 0 || ancestorMods.length > 0 || pseudoMods.some((m) => CSS_ONLY_PSEUDOS.has(m));
3137
+ const cssDecls = isDivide ? buildDivideDecls(styles) : styleValueToCSS(styles, needsImportant);
3138
+ if (!cssDecls) return;
3022
3139
  let rule;
3023
3140
  if (hasDark) {
3024
3141
  if (darkMode === "media") {
@@ -3042,6 +3159,9 @@ function injectClassRule(cls, bucketKey, styles, darkMode, important = false) {
3042
3159
  if (hasPrint) {
3043
3160
  rule = `@media print { ${rule} }`;
3044
3161
  }
3162
+ for (const m of mediaMods) {
3163
+ rule = `@media ${MEDIA_MODS[m]} { ${rule} }`;
3164
+ }
3045
3165
  if (responsiveMods.length > 0) {
3046
3166
  const screens = getGlobalScreens();
3047
3167
  const minWidth = Math.max(...responsiveMods.map((m) => screens[m] ?? 0));
@@ -3138,9 +3258,19 @@ function resolve(classString, theme, darkMode = "attribute") {
3138
3258
  return result;
3139
3259
  }
3140
3260
  function flatten(resolved, isDark, state = {}, breakpoints = /* @__PURE__ */ new Set()) {
3141
- const result = { ...resolved.base ?? {} };
3142
- for (const [key, styles] of Object.entries(resolved)) {
3143
- if (key === "base" || !styles) continue;
3261
+ const result = {};
3262
+ const entries = Object.entries(resolved);
3263
+ entries.sort((a, b) => {
3264
+ const pa = a[0] === "base" ? -1 : a[0].split(":").length;
3265
+ const pb = b[0] === "base" ? -1 : b[0].split(":").length;
3266
+ return pa - pb;
3267
+ });
3268
+ for (const [key, styles] of entries) {
3269
+ if (!styles) continue;
3270
+ if (key === "base") {
3271
+ Object.assign(result, styles);
3272
+ continue;
3273
+ }
3144
3274
  const mods = key.split(":");
3145
3275
  if (matchesMods(mods, isDark, state, breakpoints)) {
3146
3276
  Object.assign(result, styles);
@@ -3192,6 +3322,17 @@ function matchesMods(mods, isDark, state, breakpoints) {
3192
3322
  case "xl":
3193
3323
  case "2xl":
3194
3324
  return breakpoints.has(mod);
3325
+ // CSS-only modifiers — never applied as inline styles
3326
+ case "print":
3327
+ case "landscape":
3328
+ case "portrait":
3329
+ case "motion-reduce":
3330
+ case "motion-safe":
3331
+ case "contrast-more":
3332
+ case "contrast-less":
3333
+ case "rtl":
3334
+ case "ltr":
3335
+ return false;
3195
3336
  default:
3196
3337
  return false;
3197
3338
  }
@@ -3586,17 +3727,12 @@ var INTERACTIVE_MODS = /* @__PURE__ */ new Set([
3586
3727
  "visited",
3587
3728
  "not-visited",
3588
3729
  "placeholder",
3589
- "focus-within",
3590
- "focus-visible",
3591
3730
  "group-hover",
3592
3731
  "group-focus",
3593
3732
  "peer-hover",
3594
- "peer-focus",
3595
- "first",
3596
- "last",
3597
- "odd",
3598
- "even",
3599
- "only"
3733
+ "peer-focus"
3734
+ // focus-within / focus-visible / first / last / odd / even / only are CSS-only —
3735
+ // they have no JS state to track, so they don't need InteractiveWrapper.
3600
3736
  ]);
3601
3737
  var RESPONSIVE_MODS4 = /* @__PURE__ */ new Set(["sm", "md", "lg", "xl", "2xl"]);
3602
3738
  var MODE_MODS_JSX = /* @__PURE__ */ new Set(["dark", "light", "not-dark", "not-light"]);