@alivecss/aliveui 1.0.2 → 1.0.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.
package/dist/index.mjs CHANGED
@@ -2161,6 +2161,19 @@ function resolveColor(colors, name, shade) {
2161
2161
  if (!Object.prototype.hasOwnProperty.call(entry, shade)) return null;
2162
2162
  return entry[shade] ?? null;
2163
2163
  }
2164
+ function applyOpacity(value, opacity) {
2165
+ const alpha = +(opacity / 100).toFixed(3);
2166
+ const hexMatch = value.match(/^#([0-9a-fA-F]{3,6})$/);
2167
+ if (hexMatch) {
2168
+ let hex = hexMatch[1];
2169
+ if (hex.length === 3) hex = hex.split("").map((c) => c + c).join("");
2170
+ const r = parseInt(hex.slice(0, 2), 16);
2171
+ const g = parseInt(hex.slice(2, 4), 16);
2172
+ const b = parseInt(hex.slice(4, 6), 16);
2173
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
2174
+ }
2175
+ return `color-mix(in srgb, ${value} ${opacity}%, transparent)`;
2176
+ }
2164
2177
  function parseVariants(cls) {
2165
2178
  const variants = [];
2166
2179
  let depth = 0;
@@ -2200,7 +2213,7 @@ function matchColor(cls, colors) {
2200
2213
  if (bgMatch) {
2201
2214
  const value = resolveColor(colors, bgMatch[1], bgMatch[2]);
2202
2215
  if (value) {
2203
- return `.${cls} {
2216
+ return `.${escapeSelector(cls)} {
2204
2217
  background-color: ${value};${transitioned("background-color")}
2205
2218
  }`;
2206
2219
  }
@@ -2209,7 +2222,7 @@ function matchColor(cls, colors) {
2209
2222
  if (textColorMatch) {
2210
2223
  const value = resolveColor(colors, textColorMatch[1], textColorMatch[2]);
2211
2224
  if (value) {
2212
- return `.${cls} {
2225
+ return `.${escapeSelector(cls)} {
2213
2226
  color: ${value};${transitioned("color")}
2214
2227
  }`;
2215
2228
  }
@@ -2218,7 +2231,7 @@ function matchColor(cls, colors) {
2218
2231
  if (borderColorMatch) {
2219
2232
  const value = resolveColor(colors, borderColorMatch[1], borderColorMatch[2]);
2220
2233
  if (value) {
2221
- return `.${cls} {
2234
+ return `.${escapeSelector(cls)} {
2222
2235
  border-color: ${value};${transitioned("border-color")}
2223
2236
  }`;
2224
2237
  }
@@ -2227,7 +2240,7 @@ function matchColor(cls, colors) {
2227
2240
  if (ringColorMatch) {
2228
2241
  const value = resolveColor(colors, ringColorMatch[1], ringColorMatch[2]);
2229
2242
  if (value) {
2230
- return `.${cls} {
2243
+ return `.${escapeSelector(cls)} {
2231
2244
  --alive-ring-color: ${value};
2232
2245
  }`;
2233
2246
  }
@@ -2236,7 +2249,7 @@ function matchColor(cls, colors) {
2236
2249
  if (outlineColorMatch) {
2237
2250
  const value = resolveColor(colors, outlineColorMatch[1], outlineColorMatch[2]);
2238
2251
  if (value) {
2239
- return `.${cls} {
2252
+ return `.${escapeSelector(cls)} {
2240
2253
  outline-color: ${value};
2241
2254
  }`;
2242
2255
  }
@@ -2245,7 +2258,7 @@ function matchColor(cls, colors) {
2245
2258
  if (fillMatch) {
2246
2259
  const value = resolveColor(colors, fillMatch[1], fillMatch[2]);
2247
2260
  if (value) {
2248
- return `.${cls} {
2261
+ return `.${escapeSelector(cls)} {
2249
2262
  fill: ${value};
2250
2263
  }`;
2251
2264
  }
@@ -2254,7 +2267,7 @@ function matchColor(cls, colors) {
2254
2267
  if (strokeMatch) {
2255
2268
  const value = resolveColor(colors, strokeMatch[1], strokeMatch[2]);
2256
2269
  if (value) {
2257
- return `.${cls} {
2270
+ return `.${escapeSelector(cls)} {
2258
2271
  stroke: ${value};
2259
2272
  }`;
2260
2273
  }
@@ -2263,7 +2276,7 @@ function matchColor(cls, colors) {
2263
2276
  if (decorationMatch) {
2264
2277
  const value = resolveColor(colors, decorationMatch[1], decorationMatch[2]);
2265
2278
  if (value) {
2266
- return `.${cls} {
2279
+ return `.${escapeSelector(cls)} {
2267
2280
  text-decoration-color: ${value};
2268
2281
  }`;
2269
2282
  }
@@ -2272,7 +2285,7 @@ function matchColor(cls, colors) {
2272
2285
  if (caretMatch) {
2273
2286
  const value = resolveColor(colors, caretMatch[1], caretMatch[2]);
2274
2287
  if (value) {
2275
- return `.${cls} {
2288
+ return `.${escapeSelector(cls)} {
2276
2289
  caret-color: ${value};
2277
2290
  }`;
2278
2291
  }
@@ -2281,7 +2294,7 @@ function matchColor(cls, colors) {
2281
2294
  if (accentMatch) {
2282
2295
  const value = resolveColor(colors, accentMatch[1], accentMatch[2]);
2283
2296
  if (value) {
2284
- return `.${cls} {
2297
+ return `.${escapeSelector(cls)} {
2285
2298
  accent-color: ${value};
2286
2299
  }`;
2287
2300
  }
@@ -2290,49 +2303,72 @@ function matchColor(cls, colors) {
2290
2303
  if (shadowColorMatch) {
2291
2304
  const value = resolveColor(colors, shadowColorMatch[1], shadowColorMatch[2]);
2292
2305
  if (value) {
2293
- return `.${cls} {
2306
+ return `.${escapeSelector(cls)} {
2294
2307
  --alive-shadow-color: ${value};
2295
2308
  }`;
2296
2309
  }
2297
2310
  }
2298
- const arbBgMatch = cls.match(/^bg-\[(.+)\]$/);
2311
+ const arbBgMatch = cls.match(/^bg-\[(.+)\](?:\/(\d+))?$/);
2299
2312
  if (arbBgMatch) {
2300
- const val = arbBgMatch[1];
2313
+ const [, val, opStr] = arbBgMatch;
2301
2314
  const escaped = escapeSelector(cls);
2302
2315
  if (val.startsWith("url(") || val.startsWith("linear-gradient") || val.startsWith("radial-gradient")) {
2303
2316
  return `.${escaped} {
2304
2317
  background-image: ${val};${transitioned("background-image")}
2305
2318
  }`;
2306
2319
  }
2320
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2307
2321
  return `.${escaped} {
2308
- background-color: ${val};${transitioned("background-color")}
2322
+ background-color: ${colorVal};${transitioned("background-color")}
2309
2323
  }`;
2310
2324
  }
2311
- const arbTextMatch = cls.match(/^text-\[(.+)\]$/);
2325
+ const arbTextMatch = cls.match(/^text-\[(.+)\](?:\/(\d+))?$/);
2312
2326
  if (arbTextMatch) {
2327
+ const [, val, opStr] = arbTextMatch;
2328
+ const isSizeValue = val.endsWith("px") || val.endsWith("em") || val.endsWith("rem") || val.endsWith("%") || val.endsWith("vw") || val.endsWith("vh") || val.endsWith("ch") || val.endsWith("ex") || val.endsWith("dvh") || /^[\d.]/.test(val) || /^(calc|clamp|min|max)\(/.test(val);
2329
+ if (isSizeValue) {
2330
+ return `.${escapeSelector(cls)} {
2331
+ font-size: ${val};
2332
+ }`;
2333
+ }
2334
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2313
2335
  return `.${escapeSelector(cls)} {
2314
- color: ${arbTextMatch[1]};${transitioned("color")}
2336
+ color: ${colorVal};${transitioned("color")}
2315
2337
  }`;
2316
2338
  }
2317
- const arbBorderColorMatch = cls.match(/^border-\[#[0-9a-fA-F]|^border-\[rgb|^border-\[hsl|^border-\[oklch/);
2339
+ const arbBorderColorMatch = cls.match(/^border-\[(.+)\](?:\/(\d+))?$/);
2318
2340
  if (arbBorderColorMatch) {
2319
- const m = cls.match(/^border-\[(.+)\]$/);
2320
- if (m) {
2341
+ const [, val, opStr] = arbBorderColorMatch;
2342
+ const looksLikeColor = val.startsWith("#") || val.startsWith("rgb") || val.startsWith("hsl") || val.startsWith("oklch") || val.startsWith("var(") || val === "transparent" || val === "currentColor";
2343
+ if (looksLikeColor) {
2344
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2321
2345
  return `.${escapeSelector(cls)} {
2322
- border-color: ${m[1]};${transitioned("border-color")}
2346
+ border-color: ${colorVal};${transitioned("border-color")}
2323
2347
  }`;
2324
2348
  }
2325
2349
  }
2326
- const arbFillMatch = cls.match(/^fill-\[(.+)\]$/);
2350
+ const arbRingColorMatch = cls.match(/^ring-\[(.+)\](?:\/(\d+))?$/);
2351
+ if (arbRingColorMatch) {
2352
+ const [, val, opStr] = arbRingColorMatch;
2353
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2354
+ return `.${escapeSelector(cls)} {
2355
+ --alive-ring-color: ${colorVal};
2356
+ }`;
2357
+ }
2358
+ const arbFillMatch = cls.match(/^fill-\[(.+)\](?:\/(\d+))?$/);
2327
2359
  if (arbFillMatch) {
2360
+ const [, val, opStr] = arbFillMatch;
2361
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2328
2362
  return `.${escapeSelector(cls)} {
2329
- fill: ${arbFillMatch[1]};
2363
+ fill: ${colorVal};
2330
2364
  }`;
2331
2365
  }
2332
- const arbStrokeMatch = cls.match(/^stroke-\[(.+)\]$/);
2366
+ const arbStrokeMatch = cls.match(/^stroke-\[(.+)\](?:\/(\d+))?$/);
2333
2367
  if (arbStrokeMatch) {
2368
+ const [, val, opStr] = arbStrokeMatch;
2369
+ const colorVal = opStr ? applyOpacity(val, parseInt(opStr)) : val;
2334
2370
  return `.${escapeSelector(cls)} {
2335
- stroke: ${arbStrokeMatch[1]};
2371
+ stroke: ${colorVal};
2336
2372
  }`;
2337
2373
  }
2338
2374
  return null;
@@ -2354,182 +2390,182 @@ function has(obj, key) {
2354
2390
  function matchSpacing(cls, spacing) {
2355
2391
  const pMatch = cls.match(/^p-(.+)$/);
2356
2392
  if (pMatch && has(spacing, pMatch[1])) {
2357
- return `.${cls} { padding: ${spacing[pMatch[1]]}; }`;
2393
+ return `.${escapeSelector(cls)} { padding: ${spacing[pMatch[1]]}; }`;
2358
2394
  }
2359
2395
  const pxMatch = cls.match(/^px-(.+)$/);
2360
2396
  if (pxMatch && has(spacing, pxMatch[1])) {
2361
- return `.${cls} { padding-left: ${spacing[pxMatch[1]]}; padding-right: ${spacing[pxMatch[1]]}; }`;
2397
+ return `.${escapeSelector(cls)} { padding-left: ${spacing[pxMatch[1]]}; padding-right: ${spacing[pxMatch[1]]}; }`;
2362
2398
  }
2363
2399
  const pyMatch = cls.match(/^py-(.+)$/);
2364
2400
  if (pyMatch && has(spacing, pyMatch[1])) {
2365
- return `.${cls} { padding-top: ${spacing[pyMatch[1]]}; padding-bottom: ${spacing[pyMatch[1]]}; }`;
2401
+ return `.${escapeSelector(cls)} { padding-top: ${spacing[pyMatch[1]]}; padding-bottom: ${spacing[pyMatch[1]]}; }`;
2366
2402
  }
2367
2403
  const ptMatch = cls.match(/^pt-(.+)$/);
2368
2404
  if (ptMatch && has(spacing, ptMatch[1])) {
2369
- return `.${cls} { padding-top: ${spacing[ptMatch[1]]}; }`;
2405
+ return `.${escapeSelector(cls)} { padding-top: ${spacing[ptMatch[1]]}; }`;
2370
2406
  }
2371
2407
  const prMatch = cls.match(/^pr-(.+)$/);
2372
2408
  if (prMatch && has(spacing, prMatch[1])) {
2373
- return `.${cls} { padding-right: ${spacing[prMatch[1]]}; }`;
2409
+ return `.${escapeSelector(cls)} { padding-right: ${spacing[prMatch[1]]}; }`;
2374
2410
  }
2375
2411
  const pbMatch = cls.match(/^pb-(.+)$/);
2376
2412
  if (pbMatch && has(spacing, pbMatch[1])) {
2377
- return `.${cls} { padding-bottom: ${spacing[pbMatch[1]]}; }`;
2413
+ return `.${escapeSelector(cls)} { padding-bottom: ${spacing[pbMatch[1]]}; }`;
2378
2414
  }
2379
2415
  const plMatch = cls.match(/^pl-(.+)$/);
2380
2416
  if (plMatch && has(spacing, plMatch[1])) {
2381
- return `.${cls} { padding-left: ${spacing[plMatch[1]]}; }`;
2417
+ return `.${escapeSelector(cls)} { padding-left: ${spacing[plMatch[1]]}; }`;
2382
2418
  }
2383
2419
  const mMatch = cls.match(/^m-(.+)$/);
2384
2420
  if (mMatch) {
2385
- if (mMatch[1] === "auto") return `.${cls} { margin: auto; }`;
2386
- if (has(spacing, mMatch[1])) return `.${cls} { margin: ${spacing[mMatch[1]]}; }`;
2421
+ if (mMatch[1] === "auto") return `.${escapeSelector(cls)} { margin: auto; }`;
2422
+ if (has(spacing, mMatch[1])) return `.${escapeSelector(cls)} { margin: ${spacing[mMatch[1]]}; }`;
2387
2423
  }
2388
2424
  const mxMatch = cls.match(/^mx-(.+)$/);
2389
2425
  if (mxMatch) {
2390
- if (mxMatch[1] === "auto") return `.${cls} { margin-left: auto; margin-right: auto; }`;
2391
- if (has(spacing, mxMatch[1])) return `.${cls} { margin-left: ${spacing[mxMatch[1]]}; margin-right: ${spacing[mxMatch[1]]}; }`;
2426
+ if (mxMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-left: auto; margin-right: auto; }`;
2427
+ if (has(spacing, mxMatch[1])) return `.${escapeSelector(cls)} { margin-left: ${spacing[mxMatch[1]]}; margin-right: ${spacing[mxMatch[1]]}; }`;
2392
2428
  }
2393
2429
  const myMatch = cls.match(/^my-(.+)$/);
2394
2430
  if (myMatch) {
2395
- if (myMatch[1] === "auto") return `.${cls} { margin-top: auto; margin-bottom: auto; }`;
2396
- if (has(spacing, myMatch[1])) return `.${cls} { margin-top: ${spacing[myMatch[1]]}; margin-bottom: ${spacing[myMatch[1]]}; }`;
2431
+ if (myMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-top: auto; margin-bottom: auto; }`;
2432
+ if (has(spacing, myMatch[1])) return `.${escapeSelector(cls)} { margin-top: ${spacing[myMatch[1]]}; margin-bottom: ${spacing[myMatch[1]]}; }`;
2397
2433
  }
2398
2434
  const mtMatch = cls.match(/^mt-(.+)$/);
2399
2435
  if (mtMatch) {
2400
- if (mtMatch[1] === "auto") return `.${cls} { margin-top: auto; }`;
2401
- if (has(spacing, mtMatch[1])) return `.${cls} { margin-top: ${spacing[mtMatch[1]]}; }`;
2436
+ if (mtMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-top: auto; }`;
2437
+ if (has(spacing, mtMatch[1])) return `.${escapeSelector(cls)} { margin-top: ${spacing[mtMatch[1]]}; }`;
2402
2438
  }
2403
2439
  const mrMatch = cls.match(/^mr-(.+)$/);
2404
2440
  if (mrMatch) {
2405
- if (mrMatch[1] === "auto") return `.${cls} { margin-right: auto; }`;
2406
- if (has(spacing, mrMatch[1])) return `.${cls} { margin-right: ${spacing[mrMatch[1]]}; }`;
2441
+ if (mrMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-right: auto; }`;
2442
+ if (has(spacing, mrMatch[1])) return `.${escapeSelector(cls)} { margin-right: ${spacing[mrMatch[1]]}; }`;
2407
2443
  }
2408
2444
  const mbMatch = cls.match(/^mb-(.+)$/);
2409
2445
  if (mbMatch) {
2410
- if (mbMatch[1] === "auto") return `.${cls} { margin-bottom: auto; }`;
2411
- if (has(spacing, mbMatch[1])) return `.${cls} { margin-bottom: ${spacing[mbMatch[1]]}; }`;
2446
+ if (mbMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-bottom: auto; }`;
2447
+ if (has(spacing, mbMatch[1])) return `.${escapeSelector(cls)} { margin-bottom: ${spacing[mbMatch[1]]}; }`;
2412
2448
  }
2413
2449
  const mlMatch = cls.match(/^ml-(.+)$/);
2414
2450
  if (mlMatch) {
2415
- if (mlMatch[1] === "auto") return `.${cls} { margin-left: auto; }`;
2416
- if (has(spacing, mlMatch[1])) return `.${cls} { margin-left: ${spacing[mlMatch[1]]}; }`;
2451
+ if (mlMatch[1] === "auto") return `.${escapeSelector(cls)} { margin-left: auto; }`;
2452
+ if (has(spacing, mlMatch[1])) return `.${escapeSelector(cls)} { margin-left: ${spacing[mlMatch[1]]}; }`;
2417
2453
  }
2418
2454
  const gapMatch = cls.match(/^gap-(.+)$/);
2419
2455
  if (gapMatch && has(spacing, gapMatch[1])) {
2420
- return `.${cls} { gap: ${spacing[gapMatch[1]]}; }`;
2456
+ return `.${escapeSelector(cls)} { gap: ${spacing[gapMatch[1]]}; }`;
2421
2457
  }
2422
2458
  const gapXMatch = cls.match(/^gap-x-(.+)$/);
2423
2459
  if (gapXMatch && has(spacing, gapXMatch[1])) {
2424
- return `.${cls} { column-gap: ${spacing[gapXMatch[1]]}; }`;
2460
+ return `.${escapeSelector(cls)} { column-gap: ${spacing[gapXMatch[1]]}; }`;
2425
2461
  }
2426
2462
  const gapYMatch = cls.match(/^gap-y-(.+)$/);
2427
2463
  if (gapYMatch && has(spacing, gapYMatch[1])) {
2428
- return `.${cls} { row-gap: ${spacing[gapYMatch[1]]}; }`;
2464
+ return `.${escapeSelector(cls)} { row-gap: ${spacing[gapYMatch[1]]}; }`;
2429
2465
  }
2430
2466
  const spaceXMatch = cls.match(/^space-x-(.+)$/);
2431
2467
  if (spaceXMatch && has(spacing, spaceXMatch[1])) {
2432
- return `.${cls} > * + * { margin-left: ${spacing[spaceXMatch[1]]}; }`;
2468
+ return `.${escapeSelector(cls)}> * + * { margin-left: ${spacing[spaceXMatch[1]]}; }`;
2433
2469
  }
2434
2470
  const spaceYMatch = cls.match(/^space-y-(.+)$/);
2435
2471
  if (spaceYMatch && has(spacing, spaceYMatch[1])) {
2436
- return `.${cls} > * + * { margin-top: ${spacing[spaceYMatch[1]]}; }`;
2472
+ return `.${escapeSelector(cls)}> * + * { margin-top: ${spacing[spaceYMatch[1]]}; }`;
2437
2473
  }
2438
2474
  const insetMatch = cls.match(/^inset-(.+)$/);
2439
2475
  if (insetMatch) {
2440
- if (insetMatch[1] === "auto") return `.${cls} { inset: auto; }`;
2441
- if (insetMatch[1] === "0") return `.${cls} { inset: 0px; }`;
2442
- if (has(spacing, insetMatch[1])) return `.${cls} { inset: ${spacing[insetMatch[1]]}; }`;
2476
+ if (insetMatch[1] === "auto") return `.${escapeSelector(cls)} { inset: auto; }`;
2477
+ if (insetMatch[1] === "0") return `.${escapeSelector(cls)} { inset: 0px; }`;
2478
+ if (has(spacing, insetMatch[1])) return `.${escapeSelector(cls)} { inset: ${spacing[insetMatch[1]]}; }`;
2443
2479
  }
2444
2480
  const insetXMatch = cls.match(/^inset-x-(.+)$/);
2445
2481
  if (insetXMatch) {
2446
2482
  const val = insetXMatch[1] === "auto" ? "auto" : insetXMatch[1] === "0" ? "0px" : has(spacing, insetXMatch[1]) ? spacing[insetXMatch[1]] : void 0;
2447
- if (val) return `.${cls} { left: ${val}; right: ${val}; }`;
2483
+ if (val) return `.${escapeSelector(cls)} { left: ${val}; right: ${val}; }`;
2448
2484
  }
2449
2485
  const insetYMatch = cls.match(/^inset-y-(.+)$/);
2450
2486
  if (insetYMatch) {
2451
2487
  const val = insetYMatch[1] === "auto" ? "auto" : insetYMatch[1] === "0" ? "0px" : has(spacing, insetYMatch[1]) ? spacing[insetYMatch[1]] : void 0;
2452
- if (val) return `.${cls} { top: ${val}; bottom: ${val}; }`;
2488
+ if (val) return `.${escapeSelector(cls)} { top: ${val}; bottom: ${val}; }`;
2453
2489
  }
2454
2490
  const topMatch = cls.match(/^top-(.+)$/);
2455
2491
  if (topMatch) {
2456
- if (topMatch[1] === "auto") return `.${cls} { top: auto; }`;
2457
- if (topMatch[1] === "0") return `.${cls} { top: 0px; }`;
2458
- if (has(spacing, topMatch[1])) return `.${cls} { top: ${spacing[topMatch[1]]}; }`;
2492
+ if (topMatch[1] === "auto") return `.${escapeSelector(cls)} { top: auto; }`;
2493
+ if (topMatch[1] === "0") return `.${escapeSelector(cls)} { top: 0px; }`;
2494
+ if (has(spacing, topMatch[1])) return `.${escapeSelector(cls)} { top: ${spacing[topMatch[1]]}; }`;
2459
2495
  }
2460
2496
  const rightMatch = cls.match(/^right-(.+)$/);
2461
2497
  if (rightMatch) {
2462
- if (rightMatch[1] === "auto") return `.${cls} { right: auto; }`;
2463
- if (rightMatch[1] === "0") return `.${cls} { right: 0px; }`;
2464
- if (has(spacing, rightMatch[1])) return `.${cls} { right: ${spacing[rightMatch[1]]}; }`;
2498
+ if (rightMatch[1] === "auto") return `.${escapeSelector(cls)} { right: auto; }`;
2499
+ if (rightMatch[1] === "0") return `.${escapeSelector(cls)} { right: 0px; }`;
2500
+ if (has(spacing, rightMatch[1])) return `.${escapeSelector(cls)} { right: ${spacing[rightMatch[1]]}; }`;
2465
2501
  }
2466
2502
  const bottomMatch = cls.match(/^bottom-(.+)$/);
2467
2503
  if (bottomMatch) {
2468
- if (bottomMatch[1] === "auto") return `.${cls} { bottom: auto; }`;
2469
- if (bottomMatch[1] === "0") return `.${cls} { bottom: 0px; }`;
2470
- if (has(spacing, bottomMatch[1])) return `.${cls} { bottom: ${spacing[bottomMatch[1]]}; }`;
2504
+ if (bottomMatch[1] === "auto") return `.${escapeSelector(cls)} { bottom: auto; }`;
2505
+ if (bottomMatch[1] === "0") return `.${escapeSelector(cls)} { bottom: 0px; }`;
2506
+ if (has(spacing, bottomMatch[1])) return `.${escapeSelector(cls)} { bottom: ${spacing[bottomMatch[1]]}; }`;
2471
2507
  }
2472
2508
  const leftMatch = cls.match(/^left-(.+)$/);
2473
2509
  if (leftMatch) {
2474
- if (leftMatch[1] === "auto") return `.${cls} { left: auto; }`;
2475
- if (leftMatch[1] === "0") return `.${cls} { left: 0px; }`;
2476
- if (has(spacing, leftMatch[1])) return `.${cls} { left: ${spacing[leftMatch[1]]}; }`;
2510
+ if (leftMatch[1] === "auto") return `.${escapeSelector(cls)} { left: auto; }`;
2511
+ if (leftMatch[1] === "0") return `.${escapeSelector(cls)} { left: 0px; }`;
2512
+ if (has(spacing, leftMatch[1])) return `.${escapeSelector(cls)} { left: ${spacing[leftMatch[1]]}; }`;
2477
2513
  }
2478
2514
  const negMMatch = cls.match(/^-m-(.+)$/);
2479
2515
  if (negMMatch && has(spacing, negMMatch[1])) {
2480
- return `.\\-m-${negMMatch[1]} { margin: -${spacing[negMMatch[1]]}; }`;
2516
+ return `.${escapeSelector(cls)} { margin: -${spacing[negMMatch[1]]}; }`;
2481
2517
  }
2482
2518
  const negMxMatch = cls.match(/^-mx-(.+)$/);
2483
2519
  if (negMxMatch && has(spacing, negMxMatch[1])) {
2484
- return `.\\-mx-${negMxMatch[1]} { margin-left: -${spacing[negMxMatch[1]]}; margin-right: -${spacing[negMxMatch[1]]}; }`;
2520
+ return `.${escapeSelector(cls)} { margin-left: -${spacing[negMxMatch[1]]}; margin-right: -${spacing[negMxMatch[1]]}; }`;
2485
2521
  }
2486
2522
  const negMyMatch = cls.match(/^-my-(.+)$/);
2487
2523
  if (negMyMatch && has(spacing, negMyMatch[1])) {
2488
- return `.\\-my-${negMyMatch[1]} { margin-top: -${spacing[negMyMatch[1]]}; margin-bottom: -${spacing[negMyMatch[1]]}; }`;
2524
+ return `.${escapeSelector(cls)} { margin-top: -${spacing[negMyMatch[1]]}; margin-bottom: -${spacing[negMyMatch[1]]}; }`;
2489
2525
  }
2490
2526
  const negMtMatch = cls.match(/^-mt-(.+)$/);
2491
2527
  if (negMtMatch && has(spacing, negMtMatch[1])) {
2492
- return `.\\-mt-${negMtMatch[1]} { margin-top: -${spacing[negMtMatch[1]]}; }`;
2528
+ return `.${escapeSelector(cls)} { margin-top: -${spacing[negMtMatch[1]]}; }`;
2493
2529
  }
2494
2530
  const negMrMatch = cls.match(/^-mr-(.+)$/);
2495
2531
  if (negMrMatch && has(spacing, negMrMatch[1])) {
2496
- return `.\\-mr-${negMrMatch[1]} { margin-right: -${spacing[negMrMatch[1]]}; }`;
2532
+ return `.${escapeSelector(cls)} { margin-right: -${spacing[negMrMatch[1]]}; }`;
2497
2533
  }
2498
2534
  const negMbMatch = cls.match(/^-mb-(.+)$/);
2499
2535
  if (negMbMatch && has(spacing, negMbMatch[1])) {
2500
- return `.\\-mb-${negMbMatch[1]} { margin-bottom: -${spacing[negMbMatch[1]]}; }`;
2536
+ return `.${escapeSelector(cls)} { margin-bottom: -${spacing[negMbMatch[1]]}; }`;
2501
2537
  }
2502
2538
  const negMlMatch = cls.match(/^-ml-(.+)$/);
2503
2539
  if (negMlMatch && has(spacing, negMlMatch[1])) {
2504
- return `.\\-ml-${negMlMatch[1]} { margin-left: -${spacing[negMlMatch[1]]}; }`;
2540
+ return `.${escapeSelector(cls)} { margin-left: -${spacing[negMlMatch[1]]}; }`;
2505
2541
  }
2506
2542
  const negInsetMatch = cls.match(/^-inset-(.+)$/);
2507
2543
  if (negInsetMatch && has(spacing, negInsetMatch[1])) {
2508
- return `.\\-inset-${negInsetMatch[1]} { inset: -${spacing[negInsetMatch[1]]}; }`;
2544
+ return `.${escapeSelector(cls)} { inset: -${spacing[negInsetMatch[1]]}; }`;
2509
2545
  }
2510
2546
  const negInsetXMatch = cls.match(/^-inset-x-(.+)$/);
2511
2547
  if (negInsetXMatch && has(spacing, negInsetXMatch[1])) {
2512
- return `.\\-inset-x-${negInsetXMatch[1]} { left: -${spacing[negInsetXMatch[1]]}; right: -${spacing[negInsetXMatch[1]]}; }`;
2548
+ return `.${escapeSelector(cls)} { left: -${spacing[negInsetXMatch[1]]}; right: -${spacing[negInsetXMatch[1]]}; }`;
2513
2549
  }
2514
2550
  const negInsetYMatch = cls.match(/^-inset-y-(.+)$/);
2515
2551
  if (negInsetYMatch && has(spacing, negInsetYMatch[1])) {
2516
- return `.\\-inset-y-${negInsetYMatch[1]} { top: -${spacing[negInsetYMatch[1]]}; bottom: -${spacing[negInsetYMatch[1]]}; }`;
2552
+ return `.${escapeSelector(cls)} { top: -${spacing[negInsetYMatch[1]]}; bottom: -${spacing[negInsetYMatch[1]]}; }`;
2517
2553
  }
2518
2554
  const negTopMatch = cls.match(/^-top-(.+)$/);
2519
2555
  if (negTopMatch && has(spacing, negTopMatch[1])) {
2520
- return `.\\-top-${negTopMatch[1]} { top: -${spacing[negTopMatch[1]]}; }`;
2556
+ return `.${escapeSelector(cls)} { top: -${spacing[negTopMatch[1]]}; }`;
2521
2557
  }
2522
2558
  const negRightMatch = cls.match(/^-right-(.+)$/);
2523
2559
  if (negRightMatch && has(spacing, negRightMatch[1])) {
2524
- return `.\\-right-${negRightMatch[1]} { right: -${spacing[negRightMatch[1]]}; }`;
2560
+ return `.${escapeSelector(cls)} { right: -${spacing[negRightMatch[1]]}; }`;
2525
2561
  }
2526
2562
  const negBottomMatch = cls.match(/^-bottom-(.+)$/);
2527
2563
  if (negBottomMatch && has(spacing, negBottomMatch[1])) {
2528
- return `.\\-bottom-${negBottomMatch[1]} { bottom: -${spacing[negBottomMatch[1]]}; }`;
2564
+ return `.${escapeSelector(cls)} { bottom: -${spacing[negBottomMatch[1]]}; }`;
2529
2565
  }
2530
2566
  const negLeftMatch = cls.match(/^-left-(.+)$/);
2531
2567
  if (negLeftMatch && has(spacing, negLeftMatch[1])) {
2532
- return `.\\-left-${negLeftMatch[1]} { left: -${spacing[negLeftMatch[1]]}; }`;
2568
+ return `.${escapeSelector(cls)} { left: -${spacing[negLeftMatch[1]]}; }`;
2533
2569
  }
2534
2570
  const arbSpacingMatch = cls.match(/^(w|h|p|m|pt|pr|pb|pl|px|py|mt|mr|mb|ml|mx|my|gap|gap-x|gap-y|top|right|bottom|left|inset|inset-x|inset-y)-\[(.+)\]$/);
2535
2571
  if (arbSpacingMatch) {
@@ -2610,21 +2646,21 @@ function matchTypography(cls, fontSize, fontWeight, lineHeight) {
2610
2646
  const textSizeMatch = cls.match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);
2611
2647
  if (textSizeMatch && hasOwn(fontSize, textSizeMatch[1])) {
2612
2648
  const [size, lh] = fontSize[textSizeMatch[1]];
2613
- return `.${cls} {
2649
+ return `.${escapeSelector(cls)} {
2614
2650
  font-size: ${size};
2615
2651
  line-height: ${lh};
2616
2652
  }`;
2617
2653
  }
2618
2654
  const fontWeightMatch = cls.match(/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/);
2619
2655
  if (fontWeightMatch && hasOwn(fontWeight, fontWeightMatch[1])) {
2620
- return `.${cls} { font-weight: ${fontWeight[fontWeightMatch[1]]}; }`;
2656
+ return `.${escapeSelector(cls)} { font-weight: ${fontWeight[fontWeightMatch[1]]}; }`;
2621
2657
  }
2622
- if (cls === "font-sans") return `.${cls} { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }`;
2623
- if (cls === "font-serif") return `.${cls} { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }`;
2624
- if (cls === "font-mono") return `.${cls} { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }`;
2658
+ if (cls === "font-sans") return `.${escapeSelector(cls)} { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }`;
2659
+ if (cls === "font-serif") return `.${escapeSelector(cls)} { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }`;
2660
+ if (cls === "font-mono") return `.${escapeSelector(cls)} { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }`;
2625
2661
  const leadingMatch = cls.match(/^leading-(.+)$/);
2626
2662
  if (leadingMatch && hasOwn(lineHeight, leadingMatch[1])) {
2627
- return `.${cls} { line-height: ${lineHeight[leadingMatch[1]]}; }`;
2663
+ return `.${escapeSelector(cls)} { line-height: ${lineHeight[leadingMatch[1]]}; }`;
2628
2664
  }
2629
2665
  const trackingMap = {
2630
2666
  tighter: "-0.05em",
@@ -2636,63 +2672,49 @@ function matchTypography(cls, fontSize, fontWeight, lineHeight) {
2636
2672
  };
2637
2673
  const trackingMatch = cls.match(/^tracking-(.+)$/);
2638
2674
  if (trackingMatch && Object.prototype.hasOwnProperty.call(trackingMap, trackingMatch[1])) {
2639
- return `.${cls} { letter-spacing: ${trackingMap[trackingMatch[1]]}; }`;
2640
- }
2641
- if (cls === "text-left") return `.${cls} { text-align: left; }`;
2642
- if (cls === "text-center") return `.${cls} { text-align: center; }`;
2643
- if (cls === "text-right") return `.${cls} { text-align: right; }`;
2644
- if (cls === "text-justify") return `.${cls} { text-align: justify; }`;
2645
- if (cls === "text-start") return `.${cls} { text-align: start; }`;
2646
- if (cls === "text-end") return `.${cls} { text-align: end; }`;
2647
- if (cls === "uppercase") return `.${cls} { text-transform: uppercase; }`;
2648
- if (cls === "lowercase") return `.${cls} { text-transform: lowercase; }`;
2649
- if (cls === "capitalize") return `.${cls} { text-transform: capitalize; }`;
2650
- if (cls === "normal-case") return `.${cls} { text-transform: none; }`;
2651
- if (cls === "underline") return `.${cls} { text-decoration-line: underline; }`;
2652
- if (cls === "overline") return `.${cls} { text-decoration-line: overline; }`;
2653
- if (cls === "line-through") return `.${cls} { text-decoration-line: line-through; }`;
2654
- if (cls === "no-underline") return `.${cls} { text-decoration-line: none; }`;
2655
- if (cls === "truncate") return `.${cls} { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }`;
2656
- if (cls === "text-ellipsis") return `.${cls} { text-overflow: ellipsis; }`;
2657
- if (cls === "text-clip") return `.${cls} { text-overflow: clip; }`;
2658
- if (cls === "whitespace-normal") return `.${cls} { white-space: normal; }`;
2659
- if (cls === "whitespace-nowrap") return `.${cls} { white-space: nowrap; }`;
2660
- if (cls === "whitespace-pre") return `.${cls} { white-space: pre; }`;
2661
- if (cls === "whitespace-pre-line") return `.${cls} { white-space: pre-line; }`;
2662
- if (cls === "whitespace-pre-wrap") return `.${cls} { white-space: pre-wrap; }`;
2663
- if (cls === "whitespace-break-spaces") return `.${cls} { white-space: break-spaces; }`;
2664
- if (cls === "italic") return `.${cls} { font-style: italic; }`;
2665
- if (cls === "not-italic") return `.${cls} { font-style: normal; }`;
2666
- if (cls === "tabular-nums") return `.${cls} { font-variant-numeric: tabular-nums; }`;
2667
- if (cls === "oldstyle-nums") return `.${cls} { font-variant-numeric: oldstyle-nums; }`;
2668
- if (cls === "list-none") return `.${cls} { list-style-type: none; }`;
2669
- if (cls === "list-disc") return `.${cls} { list-style-type: disc; }`;
2670
- if (cls === "list-decimal") return `.${cls} { list-style-type: decimal; }`;
2671
- if (cls === "break-normal") return `.${cls} { overflow-wrap: normal; word-break: normal; }`;
2672
- if (cls === "break-words") return `.${cls} { overflow-wrap: break-word; }`;
2673
- if (cls === "break-all") return `.${cls} { word-break: break-all; }`;
2674
- if (cls === "break-keep") return `.${cls} { word-break: keep-all; }`;
2675
+ return `.${escapeSelector(cls)} { letter-spacing: ${trackingMap[trackingMatch[1]]}; }`;
2676
+ }
2677
+ if (cls === "text-left") return `.${escapeSelector(cls)} { text-align: left; }`;
2678
+ if (cls === "text-center") return `.${escapeSelector(cls)} { text-align: center; }`;
2679
+ if (cls === "text-right") return `.${escapeSelector(cls)} { text-align: right; }`;
2680
+ if (cls === "text-justify") return `.${escapeSelector(cls)} { text-align: justify; }`;
2681
+ if (cls === "text-start") return `.${escapeSelector(cls)} { text-align: start; }`;
2682
+ if (cls === "text-end") return `.${escapeSelector(cls)} { text-align: end; }`;
2683
+ if (cls === "uppercase") return `.${escapeSelector(cls)} { text-transform: uppercase; }`;
2684
+ if (cls === "lowercase") return `.${escapeSelector(cls)} { text-transform: lowercase; }`;
2685
+ if (cls === "capitalize") return `.${escapeSelector(cls)} { text-transform: capitalize; }`;
2686
+ if (cls === "normal-case") return `.${escapeSelector(cls)} { text-transform: none; }`;
2687
+ if (cls === "underline") return `.${escapeSelector(cls)} { text-decoration-line: underline; }`;
2688
+ if (cls === "overline") return `.${escapeSelector(cls)} { text-decoration-line: overline; }`;
2689
+ if (cls === "line-through") return `.${escapeSelector(cls)} { text-decoration-line: line-through; }`;
2690
+ if (cls === "no-underline") return `.${escapeSelector(cls)} { text-decoration-line: none; }`;
2691
+ if (cls === "truncate") return `.${escapeSelector(cls)} { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }`;
2692
+ if (cls === "text-ellipsis") return `.${escapeSelector(cls)} { text-overflow: ellipsis; }`;
2693
+ if (cls === "text-clip") return `.${escapeSelector(cls)} { text-overflow: clip; }`;
2694
+ if (cls === "whitespace-normal") return `.${escapeSelector(cls)} { white-space: normal; }`;
2695
+ if (cls === "whitespace-nowrap") return `.${escapeSelector(cls)} { white-space: nowrap; }`;
2696
+ if (cls === "whitespace-pre") return `.${escapeSelector(cls)} { white-space: pre; }`;
2697
+ if (cls === "whitespace-pre-line") return `.${escapeSelector(cls)} { white-space: pre-line; }`;
2698
+ if (cls === "whitespace-pre-wrap") return `.${escapeSelector(cls)} { white-space: pre-wrap; }`;
2699
+ if (cls === "whitespace-break-spaces") return `.${escapeSelector(cls)} { white-space: break-spaces; }`;
2700
+ if (cls === "italic") return `.${escapeSelector(cls)} { font-style: italic; }`;
2701
+ if (cls === "not-italic") return `.${escapeSelector(cls)} { font-style: normal; }`;
2702
+ if (cls === "tabular-nums") return `.${escapeSelector(cls)} { font-variant-numeric: tabular-nums; }`;
2703
+ if (cls === "oldstyle-nums") return `.${escapeSelector(cls)} { font-variant-numeric: oldstyle-nums; }`;
2704
+ if (cls === "list-none") return `.${escapeSelector(cls)} { list-style-type: none; }`;
2705
+ if (cls === "list-disc") return `.${escapeSelector(cls)} { list-style-type: disc; }`;
2706
+ if (cls === "list-decimal") return `.${escapeSelector(cls)} { list-style-type: decimal; }`;
2707
+ if (cls === "break-normal") return `.${escapeSelector(cls)} { overflow-wrap: normal; word-break: normal; }`;
2708
+ if (cls === "break-words") return `.${escapeSelector(cls)} { overflow-wrap: break-word; }`;
2709
+ if (cls === "break-all") return `.${escapeSelector(cls)} { word-break: break-all; }`;
2710
+ if (cls === "break-keep") return `.${escapeSelector(cls)} { word-break: keep-all; }`;
2675
2711
  return null;
2676
2712
  }
2677
2713
 
2678
2714
  // src/generator/layout.ts
2679
- function has2(obj, key) {
2680
- return typeof obj[key] === "string";
2681
- }
2682
- function generateLayout(classes, config) {
2683
- const { spacing } = config.theme;
2715
+ function generateLayout(classes, _config) {
2684
2716
  const rules = [];
2685
2717
  for (const cls of classes) {
2686
- const spaceYMatch = cls.match(/^space-y-(.+)$/);
2687
- if (spaceYMatch && has2(spacing, spaceYMatch[1])) {
2688
- rules.push(`.${escapeSelector(cls)} > * + * { margin-top: ${spacing[spaceYMatch[1]]}; }`);
2689
- continue;
2690
- }
2691
- const spaceXMatch = cls.match(/^space-x-(.+)$/);
2692
- if (spaceXMatch && has2(spacing, spaceXMatch[1])) {
2693
- rules.push(`.${escapeSelector(cls)} > * + * { margin-left: ${spacing[spaceXMatch[1]]}; }`);
2694
- continue;
2695
- }
2696
2718
  const generated = matchLayout(cls);
2697
2719
  if (generated) rules.push(generated);
2698
2720
  }
@@ -2711,7 +2733,7 @@ function matchLayout(cls) {
2711
2733
  hidden: "display: none;",
2712
2734
  contents: "display: contents;"
2713
2735
  };
2714
- if (displayMap[cls]) return `.${cls} { ${displayMap[cls]} }`;
2736
+ if (displayMap[cls]) return `.${escapeSelector(cls)} { ${displayMap[cls]} }`;
2715
2737
  const posMap = {
2716
2738
  static: "position: static;",
2717
2739
  relative: "position: relative;",
@@ -2719,115 +2741,115 @@ function matchLayout(cls) {
2719
2741
  fixed: "position: fixed;",
2720
2742
  sticky: "position: sticky;"
2721
2743
  };
2722
- if (posMap[cls]) return `.${cls} { ${posMap[cls]} }`;
2723
- if (cls === "flex-row") return `.${cls} { flex-direction: row; }`;
2724
- if (cls === "flex-row-reverse") return `.${cls} { flex-direction: row-reverse; }`;
2725
- if (cls === "flex-col") return `.${cls} { flex-direction: column; }`;
2726
- if (cls === "flex-col-reverse") return `.${cls} { flex-direction: column-reverse; }`;
2727
- if (cls === "flex-wrap") return `.${cls} { flex-wrap: wrap; }`;
2728
- if (cls === "flex-nowrap") return `.${cls} { flex-wrap: nowrap; }`;
2729
- if (cls === "flex-wrap-reverse") return `.${cls} { flex-wrap: wrap-reverse; }`;
2730
- if (cls === "flex-1") return `.${cls} { flex: 1 1 0%; }`;
2731
- if (cls === "flex-auto") return `.${cls} { flex: 1 1 auto; }`;
2732
- if (cls === "flex-initial") return `.${cls} { flex: 0 1 auto; }`;
2733
- if (cls === "flex-none") return `.${cls} { flex: none; }`;
2734
- if (cls === "flex-grow") return `.${cls} { flex-grow: 1; }`;
2735
- if (cls === "flex-grow-0") return `.${cls} { flex-grow: 0; }`;
2736
- if (cls === "flex-shrink") return `.${cls} { flex-shrink: 1; }`;
2737
- if (cls === "flex-shrink-0") return `.${cls} { flex-shrink: 0; }`;
2738
- if (cls === "grow") return `.${cls} { flex-grow: 1; }`;
2739
- if (cls === "grow-0") return `.${cls} { flex-grow: 0; }`;
2740
- if (cls === "shrink") return `.${cls} { flex-shrink: 1; }`;
2741
- if (cls === "shrink-0") return `.${cls} { flex-shrink: 0; }`;
2742
- if (cls === "items-start") return `.${cls} { align-items: flex-start; }`;
2743
- if (cls === "items-end") return `.${cls} { align-items: flex-end; }`;
2744
- if (cls === "items-center") return `.${cls} { align-items: center; }`;
2745
- if (cls === "items-baseline") return `.${cls} { align-items: baseline; }`;
2746
- if (cls === "items-stretch") return `.${cls} { align-items: stretch; }`;
2747
- if (cls === "self-auto") return `.${cls} { align-self: auto; }`;
2748
- if (cls === "self-start") return `.${cls} { align-self: flex-start; }`;
2749
- if (cls === "self-end") return `.${cls} { align-self: flex-end; }`;
2750
- if (cls === "self-center") return `.${cls} { align-self: center; }`;
2751
- if (cls === "self-stretch") return `.${cls} { align-self: stretch; }`;
2752
- if (cls === "self-baseline") return `.${cls} { align-self: baseline; }`;
2753
- if (cls === "justify-start") return `.${cls} { justify-content: flex-start; }`;
2754
- if (cls === "justify-end") return `.${cls} { justify-content: flex-end; }`;
2755
- if (cls === "justify-center") return `.${cls} { justify-content: center; }`;
2756
- if (cls === "justify-between") return `.${cls} { justify-content: space-between; }`;
2757
- if (cls === "justify-around") return `.${cls} { justify-content: space-around; }`;
2758
- if (cls === "justify-evenly") return `.${cls} { justify-content: space-evenly; }`;
2759
- if (cls === "justify-stretch") return `.${cls} { justify-content: stretch; }`;
2760
- if (cls === "justify-items-start") return `.${cls} { justify-items: start; }`;
2761
- if (cls === "justify-items-end") return `.${cls} { justify-items: end; }`;
2762
- if (cls === "justify-items-center") return `.${cls} { justify-items: center; }`;
2763
- if (cls === "justify-items-stretch") return `.${cls} { justify-items: stretch; }`;
2764
- if (cls === "justify-self-auto") return `.${cls} { justify-self: auto; }`;
2765
- if (cls === "justify-self-start") return `.${cls} { justify-self: start; }`;
2766
- if (cls === "justify-self-end") return `.${cls} { justify-self: end; }`;
2767
- if (cls === "justify-self-center") return `.${cls} { justify-self: center; }`;
2768
- if (cls === "justify-self-stretch") return `.${cls} { justify-self: stretch; }`;
2769
- if (cls === "content-normal") return `.${cls} { align-content: normal; }`;
2770
- if (cls === "content-center") return `.${cls} { align-content: center; }`;
2771
- if (cls === "content-start") return `.${cls} { align-content: flex-start; }`;
2772
- if (cls === "content-end") return `.${cls} { align-content: flex-end; }`;
2773
- if (cls === "content-between") return `.${cls} { align-content: space-between; }`;
2774
- if (cls === "content-around") return `.${cls} { align-content: space-around; }`;
2775
- if (cls === "content-evenly") return `.${cls} { align-content: space-evenly; }`;
2776
- if (cls === "content-stretch") return `.${cls} { align-content: stretch; }`;
2777
- if (cls === "content-baseline") return `.${cls} { align-content: baseline; }`;
2744
+ if (posMap[cls]) return `.${escapeSelector(cls)} { ${posMap[cls]} }`;
2745
+ if (cls === "flex-row") return `.${escapeSelector(cls)} { flex-direction: row; }`;
2746
+ if (cls === "flex-row-reverse") return `.${escapeSelector(cls)} { flex-direction: row-reverse; }`;
2747
+ if (cls === "flex-col") return `.${escapeSelector(cls)} { flex-direction: column; }`;
2748
+ if (cls === "flex-col-reverse") return `.${escapeSelector(cls)} { flex-direction: column-reverse; }`;
2749
+ if (cls === "flex-wrap") return `.${escapeSelector(cls)} { flex-wrap: wrap; }`;
2750
+ if (cls === "flex-nowrap") return `.${escapeSelector(cls)} { flex-wrap: nowrap; }`;
2751
+ if (cls === "flex-wrap-reverse") return `.${escapeSelector(cls)} { flex-wrap: wrap-reverse; }`;
2752
+ if (cls === "flex-1") return `.${escapeSelector(cls)} { flex: 1 1 0%; }`;
2753
+ if (cls === "flex-auto") return `.${escapeSelector(cls)} { flex: 1 1 auto; }`;
2754
+ if (cls === "flex-initial") return `.${escapeSelector(cls)} { flex: 0 1 auto; }`;
2755
+ if (cls === "flex-none") return `.${escapeSelector(cls)} { flex: none; }`;
2756
+ if (cls === "flex-grow") return `.${escapeSelector(cls)} { flex-grow: 1; }`;
2757
+ if (cls === "flex-grow-0") return `.${escapeSelector(cls)} { flex-grow: 0; }`;
2758
+ if (cls === "flex-shrink") return `.${escapeSelector(cls)} { flex-shrink: 1; }`;
2759
+ if (cls === "flex-shrink-0") return `.${escapeSelector(cls)} { flex-shrink: 0; }`;
2760
+ if (cls === "grow") return `.${escapeSelector(cls)} { flex-grow: 1; }`;
2761
+ if (cls === "grow-0") return `.${escapeSelector(cls)} { flex-grow: 0; }`;
2762
+ if (cls === "shrink") return `.${escapeSelector(cls)} { flex-shrink: 1; }`;
2763
+ if (cls === "shrink-0") return `.${escapeSelector(cls)} { flex-shrink: 0; }`;
2764
+ if (cls === "items-start") return `.${escapeSelector(cls)} { align-items: flex-start; }`;
2765
+ if (cls === "items-end") return `.${escapeSelector(cls)} { align-items: flex-end; }`;
2766
+ if (cls === "items-center") return `.${escapeSelector(cls)} { align-items: center; }`;
2767
+ if (cls === "items-baseline") return `.${escapeSelector(cls)} { align-items: baseline; }`;
2768
+ if (cls === "items-stretch") return `.${escapeSelector(cls)} { align-items: stretch; }`;
2769
+ if (cls === "self-auto") return `.${escapeSelector(cls)} { align-self: auto; }`;
2770
+ if (cls === "self-start") return `.${escapeSelector(cls)} { align-self: flex-start; }`;
2771
+ if (cls === "self-end") return `.${escapeSelector(cls)} { align-self: flex-end; }`;
2772
+ if (cls === "self-center") return `.${escapeSelector(cls)} { align-self: center; }`;
2773
+ if (cls === "self-stretch") return `.${escapeSelector(cls)} { align-self: stretch; }`;
2774
+ if (cls === "self-baseline") return `.${escapeSelector(cls)} { align-self: baseline; }`;
2775
+ if (cls === "justify-start") return `.${escapeSelector(cls)} { justify-content: flex-start; }`;
2776
+ if (cls === "justify-end") return `.${escapeSelector(cls)} { justify-content: flex-end; }`;
2777
+ if (cls === "justify-center") return `.${escapeSelector(cls)} { justify-content: center; }`;
2778
+ if (cls === "justify-between") return `.${escapeSelector(cls)} { justify-content: space-between; }`;
2779
+ if (cls === "justify-around") return `.${escapeSelector(cls)} { justify-content: space-around; }`;
2780
+ if (cls === "justify-evenly") return `.${escapeSelector(cls)} { justify-content: space-evenly; }`;
2781
+ if (cls === "justify-stretch") return `.${escapeSelector(cls)} { justify-content: stretch; }`;
2782
+ if (cls === "justify-items-start") return `.${escapeSelector(cls)} { justify-items: start; }`;
2783
+ if (cls === "justify-items-end") return `.${escapeSelector(cls)} { justify-items: end; }`;
2784
+ if (cls === "justify-items-center") return `.${escapeSelector(cls)} { justify-items: center; }`;
2785
+ if (cls === "justify-items-stretch") return `.${escapeSelector(cls)} { justify-items: stretch; }`;
2786
+ if (cls === "justify-self-auto") return `.${escapeSelector(cls)} { justify-self: auto; }`;
2787
+ if (cls === "justify-self-start") return `.${escapeSelector(cls)} { justify-self: start; }`;
2788
+ if (cls === "justify-self-end") return `.${escapeSelector(cls)} { justify-self: end; }`;
2789
+ if (cls === "justify-self-center") return `.${escapeSelector(cls)} { justify-self: center; }`;
2790
+ if (cls === "justify-self-stretch") return `.${escapeSelector(cls)} { justify-self: stretch; }`;
2791
+ if (cls === "content-normal") return `.${escapeSelector(cls)} { align-content: normal; }`;
2792
+ if (cls === "content-center") return `.${escapeSelector(cls)} { align-content: center; }`;
2793
+ if (cls === "content-start") return `.${escapeSelector(cls)} { align-content: flex-start; }`;
2794
+ if (cls === "content-end") return `.${escapeSelector(cls)} { align-content: flex-end; }`;
2795
+ if (cls === "content-between") return `.${escapeSelector(cls)} { align-content: space-between; }`;
2796
+ if (cls === "content-around") return `.${escapeSelector(cls)} { align-content: space-around; }`;
2797
+ if (cls === "content-evenly") return `.${escapeSelector(cls)} { align-content: space-evenly; }`;
2798
+ if (cls === "content-stretch") return `.${escapeSelector(cls)} { align-content: stretch; }`;
2799
+ if (cls === "content-baseline") return `.${escapeSelector(cls)} { align-content: baseline; }`;
2778
2800
  const gridColsMatch = cls.match(/^grid-cols-(\d+)$/);
2779
2801
  if (gridColsMatch) {
2780
2802
  const n = parseInt(gridColsMatch[1]);
2781
- return `.${cls} { grid-template-columns: repeat(${n}, minmax(0, 1fr)); }`;
2803
+ return `.${escapeSelector(cls)} { grid-template-columns: repeat(${n}, minmax(0, 1fr)); }`;
2782
2804
  }
2783
- if (cls === "grid-cols-none") return `.${cls} { grid-template-columns: none; }`;
2805
+ if (cls === "grid-cols-none") return `.${escapeSelector(cls)} { grid-template-columns: none; }`;
2784
2806
  const gridRowsMatch = cls.match(/^grid-rows-(\d+)$/);
2785
2807
  if (gridRowsMatch) {
2786
2808
  const n = parseInt(gridRowsMatch[1]);
2787
- return `.${cls} { grid-template-rows: repeat(${n}, minmax(0, 1fr)); }`;
2809
+ return `.${escapeSelector(cls)} { grid-template-rows: repeat(${n}, minmax(0, 1fr)); }`;
2788
2810
  }
2789
- if (cls === "grid-rows-none") return `.${cls} { grid-template-rows: none; }`;
2811
+ if (cls === "grid-rows-none") return `.${escapeSelector(cls)} { grid-template-rows: none; }`;
2790
2812
  const colSpanMatch = cls.match(/^col-span-(\d+)$/);
2791
- if (colSpanMatch) return `.${cls} { grid-column: span ${colSpanMatch[1]} / span ${colSpanMatch[1]}; }`;
2792
- if (cls === "col-span-full") return `.${cls} { grid-column: 1 / -1; }`;
2793
- if (cls === "col-auto") return `.${cls} { grid-column: auto; }`;
2813
+ if (colSpanMatch) return `.${escapeSelector(cls)} { grid-column: span ${colSpanMatch[1]} / span ${colSpanMatch[1]}; }`;
2814
+ if (cls === "col-span-full") return `.${escapeSelector(cls)} { grid-column: 1 / -1; }`;
2815
+ if (cls === "col-auto") return `.${escapeSelector(cls)} { grid-column: auto; }`;
2794
2816
  const rowSpanMatch = cls.match(/^row-span-(\d+)$/);
2795
- if (rowSpanMatch) return `.${cls} { grid-row: span ${rowSpanMatch[1]} / span ${rowSpanMatch[1]}; }`;
2796
- if (cls === "row-span-full") return `.${cls} { grid-row: 1 / -1; }`;
2797
- if (cls === "row-auto") return `.${cls} { grid-row: auto; }`;
2817
+ if (rowSpanMatch) return `.${escapeSelector(cls)} { grid-row: span ${rowSpanMatch[1]} / span ${rowSpanMatch[1]}; }`;
2818
+ if (cls === "row-span-full") return `.${escapeSelector(cls)} { grid-row: 1 / -1; }`;
2819
+ if (cls === "row-auto") return `.${escapeSelector(cls)} { grid-row: auto; }`;
2798
2820
  const colStartMatch = cls.match(/^col-start-(\d+)$/);
2799
- if (colStartMatch) return `.${cls} { grid-column-start: ${colStartMatch[1]}; }`;
2821
+ if (colStartMatch) return `.${escapeSelector(cls)} { grid-column-start: ${colStartMatch[1]}; }`;
2800
2822
  const colEndMatch = cls.match(/^col-end-(\d+)$/);
2801
- if (colEndMatch) return `.${cls} { grid-column-end: ${colEndMatch[1]}; }`;
2823
+ if (colEndMatch) return `.${escapeSelector(cls)} { grid-column-end: ${colEndMatch[1]}; }`;
2802
2824
  const rowStartMatch = cls.match(/^row-start-(\d+)$/);
2803
- if (rowStartMatch) return `.${cls} { grid-row-start: ${rowStartMatch[1]}; }`;
2825
+ if (rowStartMatch) return `.${escapeSelector(cls)} { grid-row-start: ${rowStartMatch[1]}; }`;
2804
2826
  const rowEndMatch = cls.match(/^row-end-(\d+)$/);
2805
- if (rowEndMatch) return `.${cls} { grid-row-end: ${rowEndMatch[1]}; }`;
2827
+ if (rowEndMatch) return `.${escapeSelector(cls)} { grid-row-end: ${rowEndMatch[1]}; }`;
2806
2828
  const orderMatch = cls.match(/^order-(-?\d+)$/);
2807
- if (orderMatch) return `.${cls} { order: ${orderMatch[1]}; }`;
2808
- if (cls === "order-first") return `.${cls} { order: -9999; }`;
2809
- if (cls === "order-last") return `.${cls} { order: 9999; }`;
2810
- if (cls === "order-none") return `.${cls} { order: 0; }`;
2811
- if (cls === "float-right") return `.${cls} { float: right; }`;
2812
- if (cls === "float-left") return `.${cls} { float: left; }`;
2813
- if (cls === "float-none") return `.${cls} { float: none; }`;
2829
+ if (orderMatch) return `.${escapeSelector(cls)} { order: ${orderMatch[1]}; }`;
2830
+ if (cls === "order-first") return `.${escapeSelector(cls)} { order: -9999; }`;
2831
+ if (cls === "order-last") return `.${escapeSelector(cls)} { order: 9999; }`;
2832
+ if (cls === "order-none") return `.${escapeSelector(cls)} { order: 0; }`;
2833
+ if (cls === "float-right") return `.${escapeSelector(cls)} { float: right; }`;
2834
+ if (cls === "float-left") return `.${escapeSelector(cls)} { float: left; }`;
2835
+ if (cls === "float-none") return `.${escapeSelector(cls)} { float: none; }`;
2814
2836
  if (cls === "clearfix") return `.${cls}::after { content: ""; display: table; clear: both; }`;
2815
- if (cls === "overflow-auto") return `.${cls} { overflow: auto; }`;
2816
- if (cls === "overflow-hidden") return `.${cls} { overflow: hidden; }`;
2817
- if (cls === "overflow-clip") return `.${cls} { overflow: clip; }`;
2818
- if (cls === "overflow-visible") return `.${cls} { overflow: visible; }`;
2819
- if (cls === "overflow-scroll") return `.${cls} { overflow: scroll; }`;
2820
- if (cls === "overflow-x-auto") return `.${cls} { overflow-x: auto; }`;
2821
- if (cls === "overflow-x-hidden") return `.${cls} { overflow-x: hidden; }`;
2822
- if (cls === "overflow-x-scroll") return `.${cls} { overflow-x: scroll; }`;
2823
- if (cls === "overflow-y-auto") return `.${cls} { overflow-y: auto; }`;
2824
- if (cls === "overflow-y-hidden") return `.${cls} { overflow-y: hidden; }`;
2825
- if (cls === "overflow-y-scroll") return `.${cls} { overflow-y: scroll; }`;
2826
- if (cls === "visible") return `.${cls} { visibility: visible; }`;
2827
- if (cls === "invisible") return `.${cls} { visibility: hidden; }`;
2828
- if (cls === "collapse") return `.${cls} { visibility: collapse; }`;
2829
- if (cls === "pointer-events-none") return `.${cls} { pointer-events: none; }`;
2830
- if (cls === "pointer-events-auto") return `.${cls} { pointer-events: auto; }`;
2837
+ if (cls === "overflow-auto") return `.${escapeSelector(cls)} { overflow: auto; }`;
2838
+ if (cls === "overflow-hidden") return `.${escapeSelector(cls)} { overflow: hidden; }`;
2839
+ if (cls === "overflow-clip") return `.${escapeSelector(cls)} { overflow: clip; }`;
2840
+ if (cls === "overflow-visible") return `.${escapeSelector(cls)} { overflow: visible; }`;
2841
+ if (cls === "overflow-scroll") return `.${escapeSelector(cls)} { overflow: scroll; }`;
2842
+ if (cls === "overflow-x-auto") return `.${escapeSelector(cls)} { overflow-x: auto; }`;
2843
+ if (cls === "overflow-x-hidden") return `.${escapeSelector(cls)} { overflow-x: hidden; }`;
2844
+ if (cls === "overflow-x-scroll") return `.${escapeSelector(cls)} { overflow-x: scroll; }`;
2845
+ if (cls === "overflow-y-auto") return `.${escapeSelector(cls)} { overflow-y: auto; }`;
2846
+ if (cls === "overflow-y-hidden") return `.${escapeSelector(cls)} { overflow-y: hidden; }`;
2847
+ if (cls === "overflow-y-scroll") return `.${escapeSelector(cls)} { overflow-y: scroll; }`;
2848
+ if (cls === "visible") return `.${escapeSelector(cls)} { visibility: visible; }`;
2849
+ if (cls === "invisible") return `.${escapeSelector(cls)} { visibility: hidden; }`;
2850
+ if (cls === "collapse") return `.${escapeSelector(cls)} { visibility: collapse; }`;
2851
+ if (cls === "pointer-events-none") return `.${escapeSelector(cls)} { pointer-events: none; }`;
2852
+ if (cls === "pointer-events-auto") return `.${escapeSelector(cls)} { pointer-events: auto; }`;
2831
2853
  const cursorMap = {
2832
2854
  "cursor-auto": "auto",
2833
2855
  "cursor-default": "default",
@@ -2844,30 +2866,30 @@ function matchLayout(cls) {
2844
2866
  "cursor-zoom-in": "zoom-in",
2845
2867
  "cursor-zoom-out": "zoom-out"
2846
2868
  };
2847
- if (cursorMap[cls]) return `.${cls} { cursor: ${cursorMap[cls]}; }`;
2848
- if (cls === "select-none") return `.${cls} { user-select: none; }`;
2849
- if (cls === "select-text") return `.${cls} { user-select: text; }`;
2850
- if (cls === "select-all") return `.${cls} { user-select: all; }`;
2851
- if (cls === "select-auto") return `.${cls} { user-select: auto; }`;
2852
- if (cls === "object-contain") return `.${cls} { object-fit: contain; }`;
2853
- if (cls === "object-cover") return `.${cls} { object-fit: cover; }`;
2854
- if (cls === "object-fill") return `.${cls} { object-fit: fill; }`;
2855
- if (cls === "object-none") return `.${cls} { object-fit: none; }`;
2856
- if (cls === "object-scale-down") return `.${cls} { object-fit: scale-down; }`;
2857
- if (cls === "aspect-auto") return `.${cls} { aspect-ratio: auto; }`;
2858
- if (cls === "aspect-square") return `.${cls} { aspect-ratio: 1 / 1; }`;
2859
- if (cls === "aspect-video") return `.${cls} { aspect-ratio: 16 / 9; }`;
2869
+ if (cursorMap[cls]) return `.${escapeSelector(cls)} { cursor: ${cursorMap[cls]}; }`;
2870
+ if (cls === "select-none") return `.${escapeSelector(cls)} { user-select: none; }`;
2871
+ if (cls === "select-text") return `.${escapeSelector(cls)} { user-select: text; }`;
2872
+ if (cls === "select-all") return `.${escapeSelector(cls)} { user-select: all; }`;
2873
+ if (cls === "select-auto") return `.${escapeSelector(cls)} { user-select: auto; }`;
2874
+ if (cls === "object-contain") return `.${escapeSelector(cls)} { object-fit: contain; }`;
2875
+ if (cls === "object-cover") return `.${escapeSelector(cls)} { object-fit: cover; }`;
2876
+ if (cls === "object-fill") return `.${escapeSelector(cls)} { object-fit: fill; }`;
2877
+ if (cls === "object-none") return `.${escapeSelector(cls)} { object-fit: none; }`;
2878
+ if (cls === "object-scale-down") return `.${escapeSelector(cls)} { object-fit: scale-down; }`;
2879
+ if (cls === "aspect-auto") return `.${escapeSelector(cls)} { aspect-ratio: auto; }`;
2880
+ if (cls === "aspect-square") return `.${escapeSelector(cls)} { aspect-ratio: 1 / 1; }`;
2881
+ if (cls === "aspect-video") return `.${escapeSelector(cls)} { aspect-ratio: 16 / 9; }`;
2860
2882
  if (cls === "container") {
2861
- return `.${cls} {
2883
+ return `.${escapeSelector(cls)} {
2862
2884
  width: 100%;
2863
2885
  margin-left: auto;
2864
2886
  margin-right: auto;
2865
2887
  }`;
2866
2888
  }
2867
- if (cls === "box-border") return `.${cls} { box-sizing: border-box; }`;
2868
- if (cls === "box-content") return `.${cls} { box-sizing: content-box; }`;
2869
- if (cls === "isolate") return `.${cls} { isolation: isolate; }`;
2870
- if (cls === "isolation-auto") return `.${cls} { isolation: auto; }`;
2889
+ if (cls === "box-border") return `.${escapeSelector(cls)} { box-sizing: border-box; }`;
2890
+ if (cls === "box-content") return `.${escapeSelector(cls)} { box-sizing: content-box; }`;
2891
+ if (cls === "isolate") return `.${escapeSelector(cls)} { isolation: isolate; }`;
2892
+ if (cls === "isolation-auto") return `.${escapeSelector(cls)} { isolation: auto; }`;
2871
2893
  const mixBlendMap = {
2872
2894
  "mix-blend-normal": "normal",
2873
2895
  "mix-blend-multiply": "multiply",
@@ -2882,40 +2904,40 @@ function matchLayout(cls) {
2882
2904
  "mix-blend-difference": "difference",
2883
2905
  "mix-blend-exclusion": "exclusion"
2884
2906
  };
2885
- if (mixBlendMap[cls]) return `.${cls} { mix-blend-mode: ${mixBlendMap[cls]}; }`;
2886
- if (cls === "bg-auto") return `.${cls} { background-size: auto; }`;
2887
- if (cls === "bg-cover") return `.${cls} { background-size: cover; }`;
2888
- if (cls === "bg-contain") return `.${cls} { background-size: contain; }`;
2889
- if (cls === "bg-center") return `.${cls} { background-position: center; }`;
2890
- if (cls === "bg-top") return `.${cls} { background-position: top; }`;
2891
- if (cls === "bg-bottom") return `.${cls} { background-position: bottom; }`;
2892
- if (cls === "bg-left") return `.${cls} { background-position: left; }`;
2893
- if (cls === "bg-right") return `.${cls} { background-position: right; }`;
2894
- if (cls === "bg-left-top") return `.${cls} { background-position: left top; }`;
2895
- if (cls === "bg-left-bottom") return `.${cls} { background-position: left bottom; }`;
2896
- if (cls === "bg-right-top") return `.${cls} { background-position: right top; }`;
2897
- if (cls === "bg-right-bottom") return `.${cls} { background-position: right bottom; }`;
2898
- if (cls === "bg-repeat") return `.${cls} { background-repeat: repeat; }`;
2899
- if (cls === "bg-no-repeat") return `.${cls} { background-repeat: no-repeat; }`;
2900
- if (cls === "bg-repeat-x") return `.${cls} { background-repeat: repeat-x; }`;
2901
- if (cls === "bg-repeat-y") return `.${cls} { background-repeat: repeat-y; }`;
2902
- if (cls === "bg-repeat-round") return `.${cls} { background-repeat: round; }`;
2903
- if (cls === "bg-repeat-space") return `.${cls} { background-repeat: space; }`;
2904
- if (cls === "bg-fixed") return `.${cls} { background-attachment: fixed; }`;
2905
- if (cls === "bg-local") return `.${cls} { background-attachment: local; }`;
2906
- if (cls === "bg-scroll") return `.${cls} { background-attachment: scroll; }`;
2907
- if (cls === "bg-origin-border") return `.${cls} { background-origin: border-box; }`;
2908
- if (cls === "bg-origin-padding") return `.${cls} { background-origin: padding-box; }`;
2909
- if (cls === "bg-origin-content") return `.${cls} { background-origin: content-box; }`;
2910
- if (cls === "bg-clip-border") return `.${cls} { background-clip: border-box; }`;
2911
- if (cls === "bg-clip-padding") return `.${cls} { background-clip: padding-box; }`;
2912
- if (cls === "bg-clip-content") return `.${cls} { background-clip: content-box; }`;
2913
- if (cls === "bg-clip-text") return `.${cls} { background-clip: text; -webkit-background-clip: text; }`;
2907
+ if (mixBlendMap[cls]) return `.${escapeSelector(cls)} { mix-blend-mode: ${mixBlendMap[cls]}; }`;
2908
+ if (cls === "bg-auto") return `.${escapeSelector(cls)} { background-size: auto; }`;
2909
+ if (cls === "bg-cover") return `.${escapeSelector(cls)} { background-size: cover; }`;
2910
+ if (cls === "bg-contain") return `.${escapeSelector(cls)} { background-size: contain; }`;
2911
+ if (cls === "bg-center") return `.${escapeSelector(cls)} { background-position: center; }`;
2912
+ if (cls === "bg-top") return `.${escapeSelector(cls)} { background-position: top; }`;
2913
+ if (cls === "bg-bottom") return `.${escapeSelector(cls)} { background-position: bottom; }`;
2914
+ if (cls === "bg-left") return `.${escapeSelector(cls)} { background-position: left; }`;
2915
+ if (cls === "bg-right") return `.${escapeSelector(cls)} { background-position: right; }`;
2916
+ if (cls === "bg-left-top") return `.${escapeSelector(cls)} { background-position: left top; }`;
2917
+ if (cls === "bg-left-bottom") return `.${escapeSelector(cls)} { background-position: left bottom; }`;
2918
+ if (cls === "bg-right-top") return `.${escapeSelector(cls)} { background-position: right top; }`;
2919
+ if (cls === "bg-right-bottom") return `.${escapeSelector(cls)} { background-position: right bottom; }`;
2920
+ if (cls === "bg-repeat") return `.${escapeSelector(cls)} { background-repeat: repeat; }`;
2921
+ if (cls === "bg-no-repeat") return `.${escapeSelector(cls)} { background-repeat: no-repeat; }`;
2922
+ if (cls === "bg-repeat-x") return `.${escapeSelector(cls)} { background-repeat: repeat-x; }`;
2923
+ if (cls === "bg-repeat-y") return `.${escapeSelector(cls)} { background-repeat: repeat-y; }`;
2924
+ if (cls === "bg-repeat-round") return `.${escapeSelector(cls)} { background-repeat: round; }`;
2925
+ if (cls === "bg-repeat-space") return `.${escapeSelector(cls)} { background-repeat: space; }`;
2926
+ if (cls === "bg-fixed") return `.${escapeSelector(cls)} { background-attachment: fixed; }`;
2927
+ if (cls === "bg-local") return `.${escapeSelector(cls)} { background-attachment: local; }`;
2928
+ if (cls === "bg-scroll") return `.${escapeSelector(cls)} { background-attachment: scroll; }`;
2929
+ if (cls === "bg-origin-border") return `.${escapeSelector(cls)} { background-origin: border-box; }`;
2930
+ if (cls === "bg-origin-padding") return `.${escapeSelector(cls)} { background-origin: padding-box; }`;
2931
+ if (cls === "bg-origin-content") return `.${escapeSelector(cls)} { background-origin: content-box; }`;
2932
+ if (cls === "bg-clip-border") return `.${escapeSelector(cls)} { background-clip: border-box; }`;
2933
+ if (cls === "bg-clip-padding") return `.${escapeSelector(cls)} { background-clip: padding-box; }`;
2934
+ if (cls === "bg-clip-content") return `.${escapeSelector(cls)} { background-clip: content-box; }`;
2935
+ if (cls === "bg-clip-text") return `.${escapeSelector(cls)} { background-clip: text; -webkit-background-clip: text; }`;
2914
2936
  return null;
2915
2937
  }
2916
2938
 
2917
2939
  // src/generator/sizing.ts
2918
- function has3(obj, key) {
2940
+ function has2(obj, key) {
2919
2941
  return typeof obj[key] === "string";
2920
2942
  }
2921
2943
  function generateSizing(classes, config) {
@@ -2959,25 +2981,25 @@ function matchSizing(cls, spacing) {
2959
2981
  const wMatch = cls.match(/^w-(.+)$/);
2960
2982
  if (wMatch) {
2961
2983
  const key = wMatch[1];
2962
- if (key === "auto") return `.${cls} { width: auto; }`;
2963
- if (key === "full") return `.${cls} { width: 100%; }`;
2964
- if (key === "screen") return `.${cls} { width: 100vw; }`;
2965
- if (key === "svw") return `.${cls} { width: 100svw; }`;
2966
- if (key === "min") return `.${cls} { width: min-content; }`;
2967
- if (key === "max") return `.${cls} { width: max-content; }`;
2968
- if (key === "fit") return `.${cls} { width: fit-content; }`;
2969
- if (has3(fractions, key)) return `.${cls} { width: ${fractions[key]}; }`;
2970
- if (has3(spacing, key)) return `.${cls} { width: ${spacing[key]}; }`;
2984
+ if (key === "auto") return `.${escapeSelector(cls)} { width: auto; }`;
2985
+ if (key === "full") return `.${escapeSelector(cls)} { width: 100%; }`;
2986
+ if (key === "screen") return `.${escapeSelector(cls)} { width: 100vw; }`;
2987
+ if (key === "svw") return `.${escapeSelector(cls)} { width: 100svw; }`;
2988
+ if (key === "min") return `.${escapeSelector(cls)} { width: min-content; }`;
2989
+ if (key === "max") return `.${escapeSelector(cls)} { width: max-content; }`;
2990
+ if (key === "fit") return `.${escapeSelector(cls)} { width: fit-content; }`;
2991
+ if (has2(fractions, key)) return `.${escapeSelector(cls)} { width: ${fractions[key]}; }`;
2992
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { width: ${spacing[key]}; }`;
2971
2993
  }
2972
2994
  const minWMatch = cls.match(/^min-w-(.+)$/);
2973
2995
  if (minWMatch) {
2974
2996
  const key = minWMatch[1];
2975
- if (key === "0") return `.${cls} { min-width: 0px; }`;
2976
- if (key === "full") return `.${cls} { min-width: 100%; }`;
2977
- if (key === "min") return `.${cls} { min-width: min-content; }`;
2978
- if (key === "max") return `.${cls} { min-width: max-content; }`;
2979
- if (key === "fit") return `.${cls} { min-width: fit-content; }`;
2980
- if (has3(spacing, key)) return `.${cls} { min-width: ${spacing[key]}; }`;
2997
+ if (key === "0") return `.${escapeSelector(cls)} { min-width: 0px; }`;
2998
+ if (key === "full") return `.${escapeSelector(cls)} { min-width: 100%; }`;
2999
+ if (key === "min") return `.${escapeSelector(cls)} { min-width: min-content; }`;
3000
+ if (key === "max") return `.${escapeSelector(cls)} { min-width: max-content; }`;
3001
+ if (key === "fit") return `.${escapeSelector(cls)} { min-width: fit-content; }`;
3002
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { min-width: ${spacing[key]}; }`;
2981
3003
  }
2982
3004
  const maxWMap = {
2983
3005
  none: "none",
@@ -3004,59 +3026,59 @@ function matchSizing(cls, spacing) {
3004
3026
  "screen-2xl": "1536px"
3005
3027
  };
3006
3028
  const maxWMatch = cls.match(/^max-w-(.+)$/);
3007
- if (maxWMatch && has3(maxWMap, maxWMatch[1])) {
3008
- return `.${cls} { max-width: ${maxWMap[maxWMatch[1]]}; }`;
3029
+ if (maxWMatch && has2(maxWMap, maxWMatch[1])) {
3030
+ return `.${escapeSelector(cls)} { max-width: ${maxWMap[maxWMatch[1]]}; }`;
3009
3031
  }
3010
3032
  const hMatch = cls.match(/^h-(.+)$/);
3011
3033
  if (hMatch) {
3012
3034
  const key = hMatch[1];
3013
- if (key === "auto") return `.${cls} { height: auto; }`;
3014
- if (key === "full") return `.${cls} { height: 100%; }`;
3015
- if (key === "screen") return `.${cls} { height: 100vh; }`;
3016
- if (key === "svh") return `.${cls} { height: 100svh; }`;
3017
- if (key === "dvh") return `.${cls} { height: 100dvh; }`;
3018
- if (key === "min") return `.${cls} { height: min-content; }`;
3019
- if (key === "max") return `.${cls} { height: max-content; }`;
3020
- if (key === "fit") return `.${cls} { height: fit-content; }`;
3021
- if (has3(fractions, key)) return `.${cls} { height: ${fractions[key]}; }`;
3022
- if (has3(spacing, key)) return `.${cls} { height: ${spacing[key]}; }`;
3035
+ if (key === "auto") return `.${escapeSelector(cls)} { height: auto; }`;
3036
+ if (key === "full") return `.${escapeSelector(cls)} { height: 100%; }`;
3037
+ if (key === "screen") return `.${escapeSelector(cls)} { height: 100vh; }`;
3038
+ if (key === "svh") return `.${escapeSelector(cls)} { height: 100svh; }`;
3039
+ if (key === "dvh") return `.${escapeSelector(cls)} { height: 100dvh; }`;
3040
+ if (key === "min") return `.${escapeSelector(cls)} { height: min-content; }`;
3041
+ if (key === "max") return `.${escapeSelector(cls)} { height: max-content; }`;
3042
+ if (key === "fit") return `.${escapeSelector(cls)} { height: fit-content; }`;
3043
+ if (has2(fractions, key)) return `.${escapeSelector(cls)} { height: ${fractions[key]}; }`;
3044
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { height: ${spacing[key]}; }`;
3023
3045
  }
3024
3046
  const minHMatch = cls.match(/^min-h-(.+)$/);
3025
3047
  if (minHMatch) {
3026
3048
  const key = minHMatch[1];
3027
- if (key === "0") return `.${cls} { min-height: 0px; }`;
3028
- if (key === "full") return `.${cls} { min-height: 100%; }`;
3029
- if (key === "screen") return `.${cls} { min-height: 100vh; }`;
3030
- if (key === "svh") return `.${cls} { min-height: 100svh; }`;
3031
- if (key === "dvh") return `.${cls} { min-height: 100dvh; }`;
3032
- if (key === "fit") return `.${cls} { min-height: fit-content; }`;
3033
- if (has3(spacing, key)) return `.${cls} { min-height: ${spacing[key]}; }`;
3049
+ if (key === "0") return `.${escapeSelector(cls)} { min-height: 0px; }`;
3050
+ if (key === "full") return `.${escapeSelector(cls)} { min-height: 100%; }`;
3051
+ if (key === "screen") return `.${escapeSelector(cls)} { min-height: 100vh; }`;
3052
+ if (key === "svh") return `.${escapeSelector(cls)} { min-height: 100svh; }`;
3053
+ if (key === "dvh") return `.${escapeSelector(cls)} { min-height: 100dvh; }`;
3054
+ if (key === "fit") return `.${escapeSelector(cls)} { min-height: fit-content; }`;
3055
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { min-height: ${spacing[key]}; }`;
3034
3056
  }
3035
3057
  const maxHMatch = cls.match(/^max-h-(.+)$/);
3036
3058
  if (maxHMatch) {
3037
3059
  const key = maxHMatch[1];
3038
- if (key === "none") return `.${cls} { max-height: none; }`;
3039
- if (key === "full") return `.${cls} { max-height: 100%; }`;
3040
- if (key === "screen") return `.${cls} { max-height: 100vh; }`;
3041
- if (key === "svh") return `.${cls} { max-height: 100svh; }`;
3042
- if (key === "dvh") return `.${cls} { max-height: 100dvh; }`;
3043
- if (key === "fit") return `.${cls} { max-height: fit-content; }`;
3044
- if (has3(spacing, key)) return `.${cls} { max-height: ${spacing[key]}; }`;
3060
+ if (key === "none") return `.${escapeSelector(cls)} { max-height: none; }`;
3061
+ if (key === "full") return `.${escapeSelector(cls)} { max-height: 100%; }`;
3062
+ if (key === "screen") return `.${escapeSelector(cls)} { max-height: 100vh; }`;
3063
+ if (key === "svh") return `.${escapeSelector(cls)} { max-height: 100svh; }`;
3064
+ if (key === "dvh") return `.${escapeSelector(cls)} { max-height: 100dvh; }`;
3065
+ if (key === "fit") return `.${escapeSelector(cls)} { max-height: fit-content; }`;
3066
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { max-height: ${spacing[key]}; }`;
3045
3067
  }
3046
3068
  const basisMatch = cls.match(/^basis-(.+)$/);
3047
3069
  if (basisMatch) {
3048
3070
  const key = basisMatch[1];
3049
- if (key === "auto") return `.${cls} { flex-basis: auto; }`;
3050
- if (key === "full") return `.${cls} { flex-basis: 100%; }`;
3051
- if (key === "0") return `.${cls} { flex-basis: 0px; }`;
3052
- if (has3(fractions, key)) return `.${cls} { flex-basis: ${fractions[key]}; }`;
3053
- if (has3(spacing, key)) return `.${cls} { flex-basis: ${spacing[key]}; }`;
3071
+ if (key === "auto") return `.${escapeSelector(cls)} { flex-basis: auto; }`;
3072
+ if (key === "full") return `.${escapeSelector(cls)} { flex-basis: 100%; }`;
3073
+ if (key === "0") return `.${escapeSelector(cls)} { flex-basis: 0px; }`;
3074
+ if (has2(fractions, key)) return `.${escapeSelector(cls)} { flex-basis: ${fractions[key]}; }`;
3075
+ if (has2(spacing, key)) return `.${escapeSelector(cls)} { flex-basis: ${spacing[key]}; }`;
3054
3076
  }
3055
3077
  return null;
3056
3078
  }
3057
3079
 
3058
3080
  // src/generator/effects.ts
3059
- function has4(obj, key) {
3081
+ function has3(obj, key) {
3060
3082
  return typeof obj[key] === "string";
3061
3083
  }
3062
3084
  function generateEffects(classes, config) {
@@ -3070,8 +3092,8 @@ function generateEffects(classes, config) {
3070
3092
  }
3071
3093
  function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3072
3094
  const opacityMatch = cls.match(/^opacity-(.+)$/);
3073
- if (opacityMatch && has4(opacity, opacityMatch[1])) {
3074
- return `.${cls} {
3095
+ if (opacityMatch && has3(opacity, opacityMatch[1])) {
3096
+ return `.${escapeSelector(cls)} {
3075
3097
  opacity: ${opacity[opacityMatch[1]]};
3076
3098
  transition-property: opacity;
3077
3099
  transition-duration: var(--alive-duration, 0ms);
@@ -3079,87 +3101,87 @@ function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3079
3101
  }`;
3080
3102
  }
3081
3103
  const zMatch = cls.match(/^z-(.+)$/);
3082
- if (zMatch && has4(zIndex, zMatch[1])) {
3083
- return `.${cls} { z-index: ${zIndex[zMatch[1]]}; }`;
3104
+ if (zMatch && has3(zIndex, zMatch[1])) {
3105
+ return `.${escapeSelector(cls)} { z-index: ${zIndex[zMatch[1]]}; }`;
3084
3106
  }
3085
3107
  const shadowMatch = cls.match(/^shadow(?:-(.+))?$/);
3086
3108
  if (shadowMatch) {
3087
3109
  const key = shadowMatch[1] ?? "DEFAULT";
3088
- if (has4(boxShadow, key)) {
3089
- return `.${cls} { box-shadow: ${boxShadow[key]}; }`;
3110
+ if (has3(boxShadow, key)) {
3111
+ return `.${escapeSelector(cls)} { box-shadow: ${boxShadow[key]}; }`;
3090
3112
  }
3091
- if (!shadowMatch[1] && has4(boxShadow, "DEFAULT")) {
3092
- return `.${cls} { box-shadow: ${boxShadow["DEFAULT"]}; }`;
3113
+ if (!shadowMatch[1] && has3(boxShadow, "DEFAULT")) {
3114
+ return `.${escapeSelector(cls)} { box-shadow: ${boxShadow["DEFAULT"]}; }`;
3093
3115
  }
3094
3116
  }
3095
3117
  const roundedMatch = cls.match(/^rounded(?:-(.+))?$/);
3096
3118
  if (roundedMatch) {
3097
3119
  const key = roundedMatch[1] ?? "DEFAULT";
3098
- if (has4(borderRadius, key)) return `.${cls} { border-radius: ${borderRadius[key]}; }`;
3099
- if (!roundedMatch[1] && has4(borderRadius, "DEFAULT")) return `.${cls} { border-radius: ${borderRadius["DEFAULT"]}; }`;
3120
+ if (has3(borderRadius, key)) return `.${escapeSelector(cls)} { border-radius: ${borderRadius[key]}; }`;
3121
+ if (!roundedMatch[1] && has3(borderRadius, "DEFAULT")) return `.${escapeSelector(cls)} { border-radius: ${borderRadius["DEFAULT"]}; }`;
3100
3122
  }
3101
3123
  const roundedTMatch = cls.match(/^rounded-t(?:-(.+))?$/);
3102
3124
  if (roundedTMatch) {
3103
3125
  const rkey = roundedTMatch[1] ?? "DEFAULT";
3104
- const val = has4(borderRadius, rkey) ? borderRadius[rkey] : has4(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3105
- if (val) return `.${cls} { border-top-left-radius: ${val}; border-top-right-radius: ${val}; }`;
3126
+ const val = has3(borderRadius, rkey) ? borderRadius[rkey] : has3(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3127
+ if (val) return `.${escapeSelector(cls)} { border-top-left-radius: ${val}; border-top-right-radius: ${val}; }`;
3106
3128
  }
3107
3129
  const roundedBMatch = cls.match(/^rounded-b(?:-(.+))?$/);
3108
3130
  if (roundedBMatch) {
3109
3131
  const rkey = roundedBMatch[1] ?? "DEFAULT";
3110
- const val = has4(borderRadius, rkey) ? borderRadius[rkey] : has4(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3111
- if (val) return `.${cls} { border-bottom-left-radius: ${val}; border-bottom-right-radius: ${val}; }`;
3132
+ const val = has3(borderRadius, rkey) ? borderRadius[rkey] : has3(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3133
+ if (val) return `.${escapeSelector(cls)} { border-bottom-left-radius: ${val}; border-bottom-right-radius: ${val}; }`;
3112
3134
  }
3113
3135
  const roundedLMatch = cls.match(/^rounded-l(?:-(.+))?$/);
3114
3136
  if (roundedLMatch) {
3115
3137
  const rkey = roundedLMatch[1] ?? "DEFAULT";
3116
- const val = has4(borderRadius, rkey) ? borderRadius[rkey] : has4(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3117
- if (val) return `.${cls} { border-top-left-radius: ${val}; border-bottom-left-radius: ${val}; }`;
3138
+ const val = has3(borderRadius, rkey) ? borderRadius[rkey] : has3(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3139
+ if (val) return `.${escapeSelector(cls)} { border-top-left-radius: ${val}; border-bottom-left-radius: ${val}; }`;
3118
3140
  }
3119
3141
  const roundedRMatch = cls.match(/^rounded-r(?:-(.+))?$/);
3120
3142
  if (roundedRMatch) {
3121
3143
  const rkey = roundedRMatch[1] ?? "DEFAULT";
3122
- const val = has4(borderRadius, rkey) ? borderRadius[rkey] : has4(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3123
- if (val) return `.${cls} { border-top-right-radius: ${val}; border-bottom-right-radius: ${val}; }`;
3124
- }
3125
- if (cls === "border") return `.${cls} { border-width: 1px; border-style: solid; }`;
3126
- if (cls === "border-0") return `.${cls} { border-width: 0px; }`;
3127
- if (cls === "border-2") return `.${cls} { border-width: 2px; border-style: solid; }`;
3128
- if (cls === "border-4") return `.${cls} { border-width: 4px; border-style: solid; }`;
3129
- if (cls === "border-8") return `.${cls} { border-width: 8px; border-style: solid; }`;
3130
- if (cls === "border-t") return `.${cls} { border-top-width: 1px; border-top-style: solid; }`;
3131
- if (cls === "border-r") return `.${cls} { border-right-width: 1px; border-right-style: solid; }`;
3132
- if (cls === "border-b") return `.${cls} { border-bottom-width: 1px; border-bottom-style: solid; }`;
3133
- if (cls === "border-l") return `.${cls} { border-left-width: 1px; border-left-style: solid; }`;
3134
- if (cls === "border-t-0") return `.${cls} { border-top-width: 0px; }`;
3135
- if (cls === "border-r-0") return `.${cls} { border-right-width: 0px; }`;
3136
- if (cls === "border-b-0") return `.${cls} { border-bottom-width: 0px; }`;
3137
- if (cls === "border-l-0") return `.${cls} { border-left-width: 0px; }`;
3138
- if (cls === "border-solid") return `.${cls} { border-style: solid; }`;
3139
- if (cls === "border-dashed") return `.${cls} { border-style: dashed; }`;
3140
- if (cls === "border-dotted") return `.${cls} { border-style: dotted; }`;
3141
- if (cls === "border-double") return `.${cls} { border-style: double; }`;
3142
- if (cls === "border-hidden") return `.${cls} { border-style: hidden; }`;
3143
- if (cls === "border-none") return `.${cls} { border-style: none; }`;
3144
- if (cls === "outline-none") return `.${cls} { outline: 2px solid transparent; outline-offset: 2px; }`;
3145
- if (cls === "outline") return `.${cls} { outline-style: solid; }`;
3146
- if (cls === "outline-dashed") return `.${cls} { outline-style: dashed; }`;
3147
- if (cls === "outline-dotted") return `.${cls} { outline-style: dotted; }`;
3148
- if (cls === "outline-double") return `.${cls} { outline-style: double; }`;
3144
+ const val = has3(borderRadius, rkey) ? borderRadius[rkey] : has3(borderRadius, "DEFAULT") ? borderRadius["DEFAULT"] : null;
3145
+ if (val) return `.${escapeSelector(cls)} { border-top-right-radius: ${val}; border-bottom-right-radius: ${val}; }`;
3146
+ }
3147
+ if (cls === "border") return `.${escapeSelector(cls)} { border-width: 1px; border-style: solid; }`;
3148
+ if (cls === "border-0") return `.${escapeSelector(cls)} { border-width: 0px; }`;
3149
+ if (cls === "border-2") return `.${escapeSelector(cls)} { border-width: 2px; border-style: solid; }`;
3150
+ if (cls === "border-4") return `.${escapeSelector(cls)} { border-width: 4px; border-style: solid; }`;
3151
+ if (cls === "border-8") return `.${escapeSelector(cls)} { border-width: 8px; border-style: solid; }`;
3152
+ if (cls === "border-t") return `.${escapeSelector(cls)} { border-top-width: 1px; border-top-style: solid; }`;
3153
+ if (cls === "border-r") return `.${escapeSelector(cls)} { border-right-width: 1px; border-right-style: solid; }`;
3154
+ if (cls === "border-b") return `.${escapeSelector(cls)} { border-bottom-width: 1px; border-bottom-style: solid; }`;
3155
+ if (cls === "border-l") return `.${escapeSelector(cls)} { border-left-width: 1px; border-left-style: solid; }`;
3156
+ if (cls === "border-t-0") return `.${escapeSelector(cls)} { border-top-width: 0px; }`;
3157
+ if (cls === "border-r-0") return `.${escapeSelector(cls)} { border-right-width: 0px; }`;
3158
+ if (cls === "border-b-0") return `.${escapeSelector(cls)} { border-bottom-width: 0px; }`;
3159
+ if (cls === "border-l-0") return `.${escapeSelector(cls)} { border-left-width: 0px; }`;
3160
+ if (cls === "border-solid") return `.${escapeSelector(cls)} { border-style: solid; }`;
3161
+ if (cls === "border-dashed") return `.${escapeSelector(cls)} { border-style: dashed; }`;
3162
+ if (cls === "border-dotted") return `.${escapeSelector(cls)} { border-style: dotted; }`;
3163
+ if (cls === "border-double") return `.${escapeSelector(cls)} { border-style: double; }`;
3164
+ if (cls === "border-hidden") return `.${escapeSelector(cls)} { border-style: hidden; }`;
3165
+ if (cls === "border-none") return `.${escapeSelector(cls)} { border-style: none; }`;
3166
+ if (cls === "outline-none") return `.${escapeSelector(cls)} { outline: 2px solid transparent; outline-offset: 2px; }`;
3167
+ if (cls === "outline") return `.${escapeSelector(cls)} { outline-style: solid; }`;
3168
+ if (cls === "outline-dashed") return `.${escapeSelector(cls)} { outline-style: dashed; }`;
3169
+ if (cls === "outline-dotted") return `.${escapeSelector(cls)} { outline-style: dotted; }`;
3170
+ if (cls === "outline-double") return `.${escapeSelector(cls)} { outline-style: double; }`;
3149
3171
  const outlineWidthMatch = cls.match(/^outline-(\d+)$/);
3150
- if (outlineWidthMatch) return `.${cls} { outline-width: ${outlineWidthMatch[1]}px; }`;
3172
+ if (outlineWidthMatch) return `.${escapeSelector(cls)} { outline-width: ${outlineWidthMatch[1]}px; }`;
3151
3173
  const outlineOffsetMatch = cls.match(/^outline-offset-(\d+)$/);
3152
- if (outlineOffsetMatch) return `.${cls} { outline-offset: ${outlineOffsetMatch[1]}px; }`;
3174
+ if (outlineOffsetMatch) return `.${escapeSelector(cls)} { outline-offset: ${outlineOffsetMatch[1]}px; }`;
3153
3175
  const ringMatch = cls.match(/^ring(?:-(\d+))?$/);
3154
3176
  if (ringMatch) {
3155
3177
  const width = ringMatch[1] ?? "3";
3156
- return `.${cls} { box-shadow: 0 0 0 ${width}px var(--alive-ring-color, rgba(59, 130, 246, 0.5)); }`;
3178
+ return `.${escapeSelector(cls)} { box-shadow: 0 0 0 ${width}px var(--alive-ring-color, rgba(59, 130, 246, 0.5)); }`;
3157
3179
  }
3158
- if (cls === "ring-inset") return `.${cls} { --alive-ring-inset: inset; }`;
3180
+ if (cls === "ring-inset") return `.${escapeSelector(cls)} { --alive-ring-inset: inset; }`;
3159
3181
  const ringOffsetMatch = cls.match(/^ring-offset-(\d+)$/);
3160
- if (ringOffsetMatch) return `.${cls} { --alive-ring-offset: ${ringOffsetMatch[1]}px; }`;
3161
- if (cls === "transform") return `.${cls} { transform: translateX(var(--alive-tx,0)) translateY(var(--alive-ty,0)) rotate(var(--alive-rotate,0)) scaleX(var(--alive-sx,1)) scaleY(var(--alive-sy,1)) skewX(var(--alive-skew-x,0)) skewY(var(--alive-skew-y,0)); }`;
3162
- if (cls === "transform-none") return `.${cls} { transform: none; }`;
3182
+ if (ringOffsetMatch) return `.${escapeSelector(cls)} { --alive-ring-offset: ${ringOffsetMatch[1]}px; }`;
3183
+ if (cls === "transform") return `.${escapeSelector(cls)} { transform: translateX(var(--alive-tx,0)) translateY(var(--alive-ty,0)) rotate(var(--alive-rotate,0)) scaleX(var(--alive-sx,1)) scaleY(var(--alive-sy,1)) skewX(var(--alive-skew-x,0)) skewY(var(--alive-skew-y,0)); }`;
3184
+ if (cls === "transform-none") return `.${escapeSelector(cls)} { transform: none; }`;
3163
3185
  const scaleMap = {
3164
3186
  "0": "0",
3165
3187
  "50": ".5",
@@ -3173,16 +3195,16 @@ function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3173
3195
  "150": "1.5"
3174
3196
  };
3175
3197
  const scaleMatch = cls.match(/^scale-(\d+)$/);
3176
- if (scaleMatch && has4(scaleMap, scaleMatch[1])) {
3177
- return `.${cls} { transform: scale(${scaleMap[scaleMatch[1]]}); }`;
3198
+ if (scaleMatch && has3(scaleMap, scaleMatch[1])) {
3199
+ return `.${escapeSelector(cls)} { transform: scale(${scaleMap[scaleMatch[1]]}); }`;
3178
3200
  }
3179
3201
  const scaleXMatch = cls.match(/^scale-x-(\d+)$/);
3180
- if (scaleXMatch && has4(scaleMap, scaleXMatch[1])) {
3181
- return `.${cls} { transform: scaleX(${scaleMap[scaleXMatch[1]]}); }`;
3202
+ if (scaleXMatch && has3(scaleMap, scaleXMatch[1])) {
3203
+ return `.${escapeSelector(cls)} { transform: scaleX(${scaleMap[scaleXMatch[1]]}); }`;
3182
3204
  }
3183
3205
  const scaleYMatch = cls.match(/^scale-y-(\d+)$/);
3184
- if (scaleYMatch && has4(scaleMap, scaleYMatch[1])) {
3185
- return `.${cls} { transform: scaleY(${scaleMap[scaleYMatch[1]]}); }`;
3206
+ if (scaleYMatch && has3(scaleMap, scaleYMatch[1])) {
3207
+ return `.${escapeSelector(cls)} { transform: scaleY(${scaleMap[scaleYMatch[1]]}); }`;
3186
3208
  }
3187
3209
  const rotateMatch = cls.match(/^-?rotate-(\d+)$/);
3188
3210
  if (rotateMatch) {
@@ -3205,12 +3227,12 @@ function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3205
3227
  const val = fractions[key] ?? null;
3206
3228
  if (val) return `.${cls.replace(/^-/, "\\-")} { transform: translateY(${neg}${val}); }`;
3207
3229
  }
3208
- if (cls === "transition-none") return `.${cls} { transition: none; }`;
3209
- if (cls === "transition-all") return `.${cls} { transition: all var(--alive-duration-normal) var(--alive-ease-standard); }`;
3210
- if (cls === "transition-colors") return `.${cls} { transition: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3211
- if (cls === "transition-opacity") return `.${cls} { transition: opacity; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3212
- if (cls === "transition-shadow") return `.${cls} { transition: box-shadow; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3213
- if (cls === "transition-transform") return `.${cls} { transition: transform; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3230
+ if (cls === "transition-none") return `.${escapeSelector(cls)} { transition: none; }`;
3231
+ if (cls === "transition-all") return `.${escapeSelector(cls)} { transition: all var(--alive-duration-normal) var(--alive-ease-standard); }`;
3232
+ if (cls === "transition-colors") return `.${escapeSelector(cls)} { transition: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3233
+ if (cls === "transition-opacity") return `.${escapeSelector(cls)} { transition: opacity; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3234
+ if (cls === "transition-shadow") return `.${escapeSelector(cls)} { transition: box-shadow; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3235
+ if (cls === "transition-transform") return `.${escapeSelector(cls)} { transition: transform; transition-duration: var(--alive-duration-normal); transition-timing-function: var(--alive-ease-standard); }`;
3214
3236
  const blurMatch = cls.match(/^blur(?:-(.+))?$/);
3215
3237
  if (blurMatch) {
3216
3238
  const blurMap = {
@@ -3224,7 +3246,7 @@ function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3224
3246
  "3xl": "64px"
3225
3247
  };
3226
3248
  const key = blurMatch[1] ?? "DEFAULT";
3227
- if (has4(blurMap, key)) return `.${cls} { filter: blur(${blurMap[key]}); }`;
3249
+ if (has3(blurMap, key)) return `.${escapeSelector(cls)} { filter: blur(${blurMap[key]}); }`;
3228
3250
  }
3229
3251
  const backdropBlurMatch = cls.match(/^backdrop-blur(?:-(.+))?$/);
3230
3252
  if (backdropBlurMatch) {
@@ -3239,7 +3261,7 @@ function matchEffects(cls, opacity, zIndex, boxShadow, borderRadius) {
3239
3261
  "3xl": "64px"
3240
3262
  };
3241
3263
  const key = backdropBlurMatch[1] ?? "DEFAULT";
3242
- if (has4(blurMap, key)) return `.${cls} { backdrop-filter: blur(${blurMap[key]}); }`;
3264
+ if (has3(blurMap, key)) return `.${escapeSelector(cls)} { backdrop-filter: blur(${blurMap[key]}); }`;
3243
3265
  }
3244
3266
  const arbOpacityMatch = cls.match(/^opacity-\[(.+)\]$/);
3245
3267
  if (arbOpacityMatch) {
@@ -3368,6 +3390,9 @@ function generateUtilities(classes, config) {
3368
3390
  case "placeholder":
3369
3391
  selector += "::placeholder";
3370
3392
  break;
3393
+ case "file":
3394
+ selector += "::file-selector-button";
3395
+ break;
3371
3396
  case "group-hover":
3372
3397
  selector = `.group:hover ${selector}`;
3373
3398
  break;
@@ -3462,275 +3487,275 @@ function generateAliveSpecific(classes, _config) {
3462
3487
  ];
3463
3488
  if (aliveBasePrefixes.some((p) => cls === p || cls.startsWith(p + "-"))) continue;
3464
3489
  if (cls === "animate-none") {
3465
- rules.push(`.${cls} { animation: none; }`);
3490
+ rules.push(`.${escapeSelector(cls)} { animation: none; }`);
3466
3491
  continue;
3467
3492
  }
3468
3493
  if (cls === "animate-spin") {
3469
- rules.push(`.${cls} { animation: alive-spin 1s linear infinite; }`);
3494
+ rules.push(`.${escapeSelector(cls)} { animation: alive-spin 1s linear infinite; }`);
3470
3495
  continue;
3471
3496
  }
3472
3497
  if (cls === "animate-ping") {
3473
- rules.push(`.${cls} { animation: alive-ping 1s cubic-bezier(0,0,0.2,1) infinite; }`);
3498
+ rules.push(`.${escapeSelector(cls)} { animation: alive-ping 1s cubic-bezier(0,0,0.2,1) infinite; }`);
3474
3499
  continue;
3475
3500
  }
3476
3501
  if (cls === "animate-pulse") {
3477
- rules.push(`.${cls} { animation: alive-pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }`);
3502
+ rules.push(`.${escapeSelector(cls)} { animation: alive-pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }`);
3478
3503
  continue;
3479
3504
  }
3480
3505
  if (cls === "animate-bounce") {
3481
- rules.push(`.${cls} { animation: alive-bounce 1s infinite; }`);
3506
+ rules.push(`.${escapeSelector(cls)} { animation: alive-bounce 1s infinite; }`);
3482
3507
  continue;
3483
3508
  }
3484
3509
  if (cls === "animate-shimmer") {
3485
- rules.push(`.${cls} { animation: alive-shimmer 1.5s linear infinite; }`);
3510
+ rules.push(`.${escapeSelector(cls)} { animation: alive-shimmer 1.5s linear infinite; }`);
3486
3511
  continue;
3487
3512
  }
3488
3513
  if (cls === "ease-linear") {
3489
- rules.push(`.${cls} { transition-timing-function: linear; }`);
3514
+ rules.push(`.${escapeSelector(cls)} { transition-timing-function: linear; }`);
3490
3515
  continue;
3491
3516
  }
3492
3517
  if (cls === "ease-in") {
3493
- rules.push(`.${cls} { transition-timing-function: cubic-bezier(0.4,0,1,1); }`);
3518
+ rules.push(`.${escapeSelector(cls)} { transition-timing-function: cubic-bezier(0.4,0,1,1); }`);
3494
3519
  continue;
3495
3520
  }
3496
3521
  if (cls === "ease-out") {
3497
- rules.push(`.${cls} { transition-timing-function: cubic-bezier(0,0,0.2,1); }`);
3522
+ rules.push(`.${escapeSelector(cls)} { transition-timing-function: cubic-bezier(0,0,0.2,1); }`);
3498
3523
  continue;
3499
3524
  }
3500
3525
  if (cls === "ease-in-out") {
3501
- rules.push(`.${cls} { transition-timing-function: cubic-bezier(0.4,0,0.2,1); }`);
3526
+ rules.push(`.${escapeSelector(cls)} { transition-timing-function: cubic-bezier(0.4,0,0.2,1); }`);
3502
3527
  continue;
3503
3528
  }
3504
3529
  if (cls === "group") {
3505
- rules.push(`.${cls} {}`);
3530
+ rules.push(`.${escapeSelector(cls)} {}`);
3506
3531
  continue;
3507
3532
  }
3508
3533
  const staggerMatch = cls.match(/^stagger-(\d+)$/);
3509
3534
  if (staggerMatch) {
3510
- rules.push(`.${cls} { --alive-stagger-gap: ${staggerMatch[1]}ms; }`);
3535
+ rules.push(`.${escapeSelector(cls)} { --alive-stagger-gap: ${staggerMatch[1]}ms; }`);
3511
3536
  continue;
3512
3537
  }
3513
3538
  const indexMatch = cls.match(/^alive-index-(\d+)$/);
3514
3539
  if (indexMatch) {
3515
- rules.push(`.${cls} { --alive-index: ${indexMatch[1]}; }`);
3540
+ rules.push(`.${escapeSelector(cls)} { --alive-index: ${indexMatch[1]}; }`);
3516
3541
  continue;
3517
3542
  }
3518
3543
  const durationMatch = cls.match(/^duration-(\d+)$/);
3519
3544
  if (durationMatch) {
3520
- rules.push(`.${cls} { --alive-duration: ${durationMatch[1]}ms; }`);
3545
+ rules.push(`.${escapeSelector(cls)} { --alive-duration: ${durationMatch[1]}ms; }`);
3521
3546
  continue;
3522
3547
  }
3523
3548
  const delayMatch = cls.match(/^delay-(\d+)$/);
3524
3549
  if (delayMatch) {
3525
- rules.push(`.${cls} { animation-delay: ${delayMatch[1]}ms; }`);
3550
+ rules.push(`.${escapeSelector(cls)} { animation-delay: ${delayMatch[1]}ms; }`);
3526
3551
  continue;
3527
3552
  }
3528
3553
  const motionMsMatch = cls.match(/^motion-(\d+)$/);
3529
3554
  if (motionMsMatch) {
3530
- rules.push(`.${cls} { --alive-duration: ${motionMsMatch[1]}ms !important; }`);
3555
+ rules.push(`.${escapeSelector(cls)} { --alive-duration: ${motionMsMatch[1]}ms !important; }`);
3531
3556
  continue;
3532
3557
  }
3533
3558
  if (cls === "divide-x") {
3534
- rules.push(`.${cls} > * + * { border-left-width: 1px; border-left-style: solid; }`);
3559
+ rules.push(`.${escapeSelector(cls)}> * + * { border-left-width: 1px; border-left-style: solid; }`);
3535
3560
  continue;
3536
3561
  }
3537
3562
  if (cls === "divide-y") {
3538
- rules.push(`.${cls} > * + * { border-top-width: 1px; border-top-style: solid; }`);
3563
+ rules.push(`.${escapeSelector(cls)}> * + * { border-top-width: 1px; border-top-style: solid; }`);
3539
3564
  continue;
3540
3565
  }
3541
3566
  const divideColorMatch = cls.match(/^divide-([a-z]+)(?:-(\d+))?$/);
3542
3567
  if (divideColorMatch) {
3543
- rules.push(`.${cls} > * + * { border-color: inherit; }`);
3568
+ rules.push(`.${escapeSelector(cls)}> * + * { border-color: inherit; }`);
3544
3569
  continue;
3545
3570
  }
3546
3571
  if (cls === "appearance-none") {
3547
- rules.push(`.${cls} { appearance: none; }`);
3572
+ rules.push(`.${escapeSelector(cls)} { appearance: none; }`);
3548
3573
  continue;
3549
3574
  }
3550
3575
  if (cls === "appearance-auto") {
3551
- rules.push(`.${cls} { appearance: auto; }`);
3576
+ rules.push(`.${escapeSelector(cls)} { appearance: auto; }`);
3552
3577
  continue;
3553
3578
  }
3554
3579
  if (cls === "resize-none") {
3555
- rules.push(`.${cls} { resize: none; }`);
3580
+ rules.push(`.${escapeSelector(cls)} { resize: none; }`);
3556
3581
  continue;
3557
3582
  }
3558
3583
  if (cls === "resize") {
3559
- rules.push(`.${cls} { resize: both; }`);
3584
+ rules.push(`.${escapeSelector(cls)} { resize: both; }`);
3560
3585
  continue;
3561
3586
  }
3562
3587
  if (cls === "resize-y") {
3563
- rules.push(`.${cls} { resize: vertical; }`);
3588
+ rules.push(`.${escapeSelector(cls)} { resize: vertical; }`);
3564
3589
  continue;
3565
3590
  }
3566
3591
  if (cls === "resize-x") {
3567
- rules.push(`.${cls} { resize: horizontal; }`);
3592
+ rules.push(`.${escapeSelector(cls)} { resize: horizontal; }`);
3568
3593
  continue;
3569
3594
  }
3570
3595
  if (cls === "snap-none") {
3571
- rules.push(`.${cls} { scroll-snap-type: none; }`);
3596
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-type: none; }`);
3572
3597
  continue;
3573
3598
  }
3574
3599
  if (cls === "snap-x") {
3575
- rules.push(`.${cls} { scroll-snap-type: x mandatory; }`);
3600
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-type: x mandatory; }`);
3576
3601
  continue;
3577
3602
  }
3578
3603
  if (cls === "snap-y") {
3579
- rules.push(`.${cls} { scroll-snap-type: y mandatory; }`);
3604
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-type: y mandatory; }`);
3580
3605
  continue;
3581
3606
  }
3582
3607
  if (cls === "snap-start") {
3583
- rules.push(`.${cls} { scroll-snap-align: start; }`);
3608
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-align: start; }`);
3584
3609
  continue;
3585
3610
  }
3586
3611
  if (cls === "snap-center") {
3587
- rules.push(`.${cls} { scroll-snap-align: center; }`);
3612
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-align: center; }`);
3588
3613
  continue;
3589
3614
  }
3590
3615
  if (cls === "snap-end") {
3591
- rules.push(`.${cls} { scroll-snap-align: end; }`);
3616
+ rules.push(`.${escapeSelector(cls)} { scroll-snap-align: end; }`);
3592
3617
  continue;
3593
3618
  }
3594
3619
  if (cls === "pointer-events-none") {
3595
- rules.push(`.${cls} { pointer-events: none; }`);
3620
+ rules.push(`.${escapeSelector(cls)} { pointer-events: none; }`);
3596
3621
  continue;
3597
3622
  }
3598
3623
  if (cls === "pointer-events-auto") {
3599
- rules.push(`.${cls} { pointer-events: auto; }`);
3624
+ rules.push(`.${escapeSelector(cls)} { pointer-events: auto; }`);
3600
3625
  continue;
3601
3626
  }
3602
3627
  if (cls === "sr-only") {
3603
- rules.push(`.${cls} { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }`);
3628
+ rules.push(`.${escapeSelector(cls)} { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }`);
3604
3629
  continue;
3605
3630
  }
3606
3631
  if (cls === "not-sr-only") {
3607
- rules.push(`.${cls} { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; }`);
3632
+ rules.push(`.${escapeSelector(cls)} { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; }`);
3608
3633
  continue;
3609
3634
  }
3610
3635
  if (cls === "will-change-auto") {
3611
- rules.push(`.${cls} { will-change: auto; }`);
3636
+ rules.push(`.${escapeSelector(cls)} { will-change: auto; }`);
3612
3637
  continue;
3613
3638
  }
3614
3639
  if (cls === "will-change-transform") {
3615
- rules.push(`.${cls} { will-change: transform; }`);
3640
+ rules.push(`.${escapeSelector(cls)} { will-change: transform; }`);
3616
3641
  continue;
3617
3642
  }
3618
3643
  if (cls === "will-change-opacity") {
3619
- rules.push(`.${cls} { will-change: opacity; }`);
3644
+ rules.push(`.${escapeSelector(cls)} { will-change: opacity; }`);
3620
3645
  continue;
3621
3646
  }
3622
3647
  const lineClampMatch = cls.match(/^line-clamp-(\d+)$/);
3623
3648
  if (lineClampMatch) {
3624
3649
  const n = lineClampMatch[1];
3625
- rules.push(`.${cls} { overflow: hidden; display: -webkit-box; -webkit-line-clamp: ${n}; -webkit-box-orient: vertical; }`);
3650
+ rules.push(`.${escapeSelector(cls)} { overflow: hidden; display: -webkit-box; -webkit-line-clamp: ${n}; -webkit-box-orient: vertical; }`);
3626
3651
  continue;
3627
3652
  }
3628
3653
  if (cls === "aspect-square") {
3629
- rules.push(`.${cls} { aspect-ratio: 1 / 1; }`);
3654
+ rules.push(`.${escapeSelector(cls)} { aspect-ratio: 1 / 1; }`);
3630
3655
  continue;
3631
3656
  }
3632
3657
  if (cls === "aspect-video") {
3633
- rules.push(`.${cls} { aspect-ratio: 16 / 9; }`);
3658
+ rules.push(`.${escapeSelector(cls)} { aspect-ratio: 16 / 9; }`);
3634
3659
  continue;
3635
3660
  }
3636
3661
  if (cls === "aspect-auto") {
3637
- rules.push(`.${cls} { aspect-ratio: auto; }`);
3662
+ rules.push(`.${escapeSelector(cls)} { aspect-ratio: auto; }`);
3638
3663
  continue;
3639
3664
  }
3640
3665
  if (cls === "object-contain") {
3641
- rules.push(`.${cls} { object-fit: contain; }`);
3666
+ rules.push(`.${escapeSelector(cls)} { object-fit: contain; }`);
3642
3667
  continue;
3643
3668
  }
3644
3669
  if (cls === "object-cover") {
3645
- rules.push(`.${cls} { object-fit: cover; }`);
3670
+ rules.push(`.${escapeSelector(cls)} { object-fit: cover; }`);
3646
3671
  continue;
3647
3672
  }
3648
3673
  if (cls === "object-fill") {
3649
- rules.push(`.${cls} { object-fit: fill; }`);
3674
+ rules.push(`.${escapeSelector(cls)} { object-fit: fill; }`);
3650
3675
  continue;
3651
3676
  }
3652
3677
  if (cls === "object-none") {
3653
- rules.push(`.${cls} { object-fit: none; }`);
3678
+ rules.push(`.${escapeSelector(cls)} { object-fit: none; }`);
3654
3679
  continue;
3655
3680
  }
3656
3681
  if (cls === "object-scale") {
3657
- rules.push(`.${cls} { object-fit: scale-down; }`);
3682
+ rules.push(`.${escapeSelector(cls)} { object-fit: scale-down; }`);
3658
3683
  continue;
3659
3684
  }
3660
3685
  if (cls === "mix-blend-multiply") {
3661
- rules.push(`.${cls} { mix-blend-mode: multiply; }`);
3686
+ rules.push(`.${escapeSelector(cls)} { mix-blend-mode: multiply; }`);
3662
3687
  continue;
3663
3688
  }
3664
3689
  if (cls === "mix-blend-screen") {
3665
- rules.push(`.${cls} { mix-blend-mode: screen; }`);
3690
+ rules.push(`.${escapeSelector(cls)} { mix-blend-mode: screen; }`);
3666
3691
  continue;
3667
3692
  }
3668
3693
  if (cls === "mix-blend-overlay") {
3669
- rules.push(`.${cls} { mix-blend-mode: overlay; }`);
3694
+ rules.push(`.${escapeSelector(cls)} { mix-blend-mode: overlay; }`);
3670
3695
  continue;
3671
3696
  }
3672
3697
  if (cls === "mix-blend-normal") {
3673
- rules.push(`.${cls} { mix-blend-mode: normal; }`);
3698
+ rules.push(`.${escapeSelector(cls)} { mix-blend-mode: normal; }`);
3674
3699
  continue;
3675
3700
  }
3676
3701
  if (cls === "isolate") {
3677
- rules.push(`.${cls} { isolation: isolate; }`);
3702
+ rules.push(`.${escapeSelector(cls)} { isolation: isolate; }`);
3678
3703
  continue;
3679
3704
  }
3680
3705
  if (cls === "isolation-auto") {
3681
- rules.push(`.${cls} { isolation: auto; }`);
3706
+ rules.push(`.${escapeSelector(cls)} { isolation: auto; }`);
3682
3707
  continue;
3683
3708
  }
3684
3709
  if (cls === "touch-auto") {
3685
- rules.push(`.${cls} { touch-action: auto; }`);
3710
+ rules.push(`.${escapeSelector(cls)} { touch-action: auto; }`);
3686
3711
  continue;
3687
3712
  }
3688
3713
  if (cls === "touch-none") {
3689
- rules.push(`.${cls} { touch-action: none; }`);
3714
+ rules.push(`.${escapeSelector(cls)} { touch-action: none; }`);
3690
3715
  continue;
3691
3716
  }
3692
3717
  if (cls === "touch-pan-x") {
3693
- rules.push(`.${cls} { touch-action: pan-x; }`);
3718
+ rules.push(`.${escapeSelector(cls)} { touch-action: pan-x; }`);
3694
3719
  continue;
3695
3720
  }
3696
3721
  if (cls === "touch-pan-y") {
3697
- rules.push(`.${cls} { touch-action: pan-y; }`);
3722
+ rules.push(`.${escapeSelector(cls)} { touch-action: pan-y; }`);
3698
3723
  continue;
3699
3724
  }
3700
3725
  if (cls === "touch-manipulation") {
3701
- rules.push(`.${cls} { touch-action: manipulation; }`);
3726
+ rules.push(`.${escapeSelector(cls)} { touch-action: manipulation; }`);
3702
3727
  continue;
3703
3728
  }
3704
3729
  if (cls === "select-none") {
3705
- rules.push(`.${cls} { user-select: none; }`);
3730
+ rules.push(`.${escapeSelector(cls)} { user-select: none; }`);
3706
3731
  continue;
3707
3732
  }
3708
3733
  if (cls === "select-text") {
3709
- rules.push(`.${cls} { user-select: text; }`);
3734
+ rules.push(`.${escapeSelector(cls)} { user-select: text; }`);
3710
3735
  continue;
3711
3736
  }
3712
3737
  if (cls === "select-all") {
3713
- rules.push(`.${cls} { user-select: all; }`);
3738
+ rules.push(`.${escapeSelector(cls)} { user-select: all; }`);
3714
3739
  continue;
3715
3740
  }
3716
3741
  if (cls === "select-auto") {
3717
- rules.push(`.${cls} { user-select: auto; }`);
3742
+ rules.push(`.${escapeSelector(cls)} { user-select: auto; }`);
3718
3743
  continue;
3719
3744
  }
3720
3745
  if (cls === "break-normal") {
3721
- rules.push(`.${cls} { overflow-wrap: normal; word-break: normal; }`);
3746
+ rules.push(`.${escapeSelector(cls)} { overflow-wrap: normal; word-break: normal; }`);
3722
3747
  continue;
3723
3748
  }
3724
3749
  if (cls === "break-words") {
3725
- rules.push(`.${cls} { overflow-wrap: break-word; }`);
3750
+ rules.push(`.${escapeSelector(cls)} { overflow-wrap: break-word; }`);
3726
3751
  continue;
3727
3752
  }
3728
3753
  if (cls === "break-all") {
3729
- rules.push(`.${cls} { word-break: break-all; }`);
3754
+ rules.push(`.${escapeSelector(cls)} { word-break: break-all; }`);
3730
3755
  continue;
3731
3756
  }
3732
3757
  if (cls === "break-keep") {
3733
- rules.push(`.${cls} { word-break: keep-all; }`);
3758
+ rules.push(`.${escapeSelector(cls)} { word-break: keep-all; }`);
3734
3759
  continue;
3735
3760
  }
3736
3761
  }