@tamagui/web 3.0.0-beta.1093.1 → 3.0.0-beta.1097.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config.cjs +2 -2
- package/dist/cjs/config.native.cjs +3 -4
- package/dist/cjs/config.native.js +3 -4
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/createComponent.cjs +1 -2
- package/dist/cjs/createComponent.native.cjs +1 -2
- package/dist/cjs/createComponent.native.js +1 -2
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyles.cjs +7 -1
- package/dist/cjs/helpers/expandStyles.native.cjs +7 -1
- package/dist/cjs/helpers/expandStyles.native.js +7 -1
- package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +99 -2
- package/dist/cjs/helpers/getSplitStyles.native.cjs +113 -2
- package/dist/cjs/helpers/getSplitStyles.native.js +113 -2
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/resolveNativeUnits.native.cjs +62 -31
- package/dist/cjs/helpers/resolveNativeUnits.native.js +62 -31
- package/dist/cjs/helpers/resolveNativeUnits.native.js.map +1 -1
- package/dist/cjs/helpers/warnOnce.cjs +6 -0
- package/dist/cjs/helpers/warnOnce.native.cjs +6 -0
- package/dist/cjs/helpers/warnOnce.native.js +6 -0
- package/dist/cjs/helpers/warnOnce.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +2 -11
- package/dist/cjs/views/Theme.native.cjs +1 -4
- package/dist/cjs/views/Theme.native.js +1 -4
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/esm/config.mjs +2 -2
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +3 -4
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/createComponent.mjs +1 -2
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +1 -2
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/helpers/expandStyles.mjs +7 -1
- package/dist/esm/helpers/expandStyles.mjs.map +1 -1
- package/dist/esm/helpers/expandStyles.native.js +7 -1
- package/dist/esm/helpers/expandStyles.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +101 -4
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +115 -4
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/resolveNativeUnits.native.js +62 -32
- package/dist/esm/helpers/resolveNativeUnits.native.js.map +1 -1
- package/dist/esm/helpers/warnOnce.mjs +6 -1
- package/dist/esm/helpers/warnOnce.mjs.map +1 -1
- package/dist/esm/helpers/warnOnce.native.js +6 -1
- package/dist/esm/helpers/warnOnce.native.js.map +1 -1
- package/dist/esm/views/Theme.mjs +2 -5
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +2 -5
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/package.json +17 -17
- package/src/config.ts +2 -6
- package/src/createComponent.tsx +0 -1
- package/src/dom/styleTypes.ts +1 -1
- package/src/helpers/expandStyles.ts +6 -2
- package/src/helpers/getSplitStyles.tsx +165 -3
- package/src/helpers/insertStyleRule.tsx +1 -1
- package/src/helpers/resolveNativeUnits.native.ts +71 -20
- package/src/helpers/warnOnce.ts +6 -0
- package/src/types.tsx +114 -34
- package/src/views/Theme.tsx +2 -8
- package/types/config.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/dom/styleTypes.d.ts +1 -1
- package/types/dom/styleTypes.d.ts.map +1 -1
- package/types/helpers/expandStyles.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/resolveNativeUnits.native.d.ts +1 -0
- package/types/helpers/resolveNativeUnits.native.d.ts.map +1 -1
- package/types/helpers/warnOnce.d.ts +1 -0
- package/types/helpers/warnOnce.d.ts.map +1 -1
- package/types/types.d.ts +57 -22
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
|
@@ -437,6 +437,19 @@ function contributeProp(pass, keyOg, valOg, originalOg = valOg, disabled = false
|
|
|
437
437
|
} else return;
|
|
438
438
|
}
|
|
439
439
|
let isValidStyleKeyInit = isValidStyleKey(keyInit, validStyles);
|
|
440
|
+
if (process.env.NODE_ENV === "development") {
|
|
441
|
+
if (!isValidStyleKeyInit && (!variants || !(keyInit in variants))) {
|
|
442
|
+
let replacement;
|
|
443
|
+
if (keyInit === "animation") replacement = "transition=";
|
|
444
|
+
else if (keyInit === "hoverStyle") replacement = "hover: clause";
|
|
445
|
+
else if (keyInit === "pressStyle") replacement = "press: clause";
|
|
446
|
+
else if (keyInit === "focusStyle") replacement = "focus: clause";
|
|
447
|
+
else if (keyInit === "enterStyle") replacement = "enter: clause";
|
|
448
|
+
else if (keyInit === "exitStyle") replacement = "exit: clause";
|
|
449
|
+
else if (keyInit.charCodeAt(0) === 36 && keyInit.length > 1) replacement = `${keyInit.slice(1)}: clause`;
|
|
450
|
+
if (replacement) (0, import_warnOnce.warnOnce)(`v2-prop:${keyInit}`, `prop "${keyInit}" was removed in v3; use ${replacement}`);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
440
453
|
if (keyInit.startsWith("data-")) {
|
|
441
454
|
viewProps[keyInit] = valInit;
|
|
442
455
|
return;
|
|
@@ -1225,7 +1238,7 @@ function emitUnderCondition(state, property, value, cursor, originalValue, conte
|
|
|
1225
1238
|
}
|
|
1226
1239
|
return condition;
|
|
1227
1240
|
}
|
|
1228
|
-
const formatScanFailure = (failure, source, failureIndex) => failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"";
|
|
1241
|
+
const formatScanFailure = (failure, source, failureIndex) => failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : failure === "over-deep-clause" ? `a clause with more than ${import_runtime.grammarMaxNonPlatformDepth} non-platform conditions` : "an unterminated \"(\"";
|
|
1229
1242
|
const warnScanFailure = (property, source, failure, failureIndex) => {
|
|
1230
1243
|
if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, formatScanFailure(failure, source, failureIndex));
|
|
1231
1244
|
};
|
|
@@ -1235,6 +1248,15 @@ let valueCaches = /* @__PURE__ */ new WeakMap();
|
|
|
1235
1248
|
let valueCacheEntries = 0;
|
|
1236
1249
|
const valueCacheRoot = {};
|
|
1237
1250
|
const parsedSlices = /* @__PURE__ */ new WeakMap();
|
|
1251
|
+
const cssWideColorKeywords = /* @__PURE__ */ new Set([
|
|
1252
|
+
"inherit",
|
|
1253
|
+
"initial",
|
|
1254
|
+
"unset",
|
|
1255
|
+
"revert",
|
|
1256
|
+
"revert-layer",
|
|
1257
|
+
"currentcolor",
|
|
1258
|
+
"transparent"
|
|
1259
|
+
]);
|
|
1238
1260
|
function configuredValue(state, property, raw, embedded = false) {
|
|
1239
1261
|
const grammar = (0, import_grammarConfig.getConfigRevisionState)(state.conf);
|
|
1240
1262
|
let name = raw;
|
|
@@ -1307,8 +1329,75 @@ function configuredValue(state, property, raw, embedded = false) {
|
|
|
1307
1329
|
}
|
|
1308
1330
|
}
|
|
1309
1331
|
if (process.env.NODE_ENV === "development") {
|
|
1310
|
-
const category = grammar.tokenCategory(property);
|
|
1332
|
+
const category = grammar.tokenCategory(property) || grammar.tokenCategory(state.conf.shorthands[property] || property);
|
|
1311
1333
|
if (category && category !== "color" && state.conf.tokensParsed.color?.[name]) (0, import_warnOnce.warnOnce)(`"${name}" contributes to "color", not "${property}"`);
|
|
1334
|
+
if (!value && !fontProperty) {
|
|
1335
|
+
if (name.charCodeAt(0) === 36 || raw.charCodeAt(0) === 36) {
|
|
1336
|
+
const suggested = name.charCodeAt(0) === 36 ? name.slice(1) : raw.slice(1);
|
|
1337
|
+
(0, import_warnOnce.warnOnce)(`v2-token:${property}=${raw}`, `${property}="${raw}": v3 tokens have no "$" prefix, did you mean "${suggested}"?`);
|
|
1338
|
+
} else if ((category === "size" || category === "space" || category === "radius" || category === "zIndex") && /^-?\d+(?:\.\d+)?$/.test(name)) {
|
|
1339
|
+
let nearest;
|
|
1340
|
+
let minDistance = Infinity;
|
|
1341
|
+
const rawNum = Number(name);
|
|
1342
|
+
const tokens = category ? state.conf.tokensParsed[category] : void 0;
|
|
1343
|
+
if (tokens && Number.isFinite(rawNum)) for (const key in tokens) {
|
|
1344
|
+
const keyNum = Number(key);
|
|
1345
|
+
if (Number.isFinite(keyNum)) {
|
|
1346
|
+
const dist = Math.abs(keyNum - rawNum);
|
|
1347
|
+
if (dist < minDistance) {
|
|
1348
|
+
minDistance = dist;
|
|
1349
|
+
nearest = key;
|
|
1350
|
+
}
|
|
1351
|
+
} else {
|
|
1352
|
+
const val = tokens[key]?.val;
|
|
1353
|
+
const valNum = typeof val === "number" ? val : Number(val);
|
|
1354
|
+
if (Number.isFinite(valNum)) {
|
|
1355
|
+
const dist = Math.abs(valNum - rawNum);
|
|
1356
|
+
if (dist < minDistance) {
|
|
1357
|
+
minDistance = dist;
|
|
1358
|
+
nearest = key;
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
}
|
|
1363
|
+
(0, import_warnOnce.warnOnce)(`numeric-token:${property}=${raw}`, `${property}="${raw}" was passed to CSS as-is with px units${nearest ? `; nearest token is "${nearest}"` : ""}`);
|
|
1364
|
+
} else if (category === "color" && /^[a-zA-Z0-9-]+$/.test(name) && /[a-zA-Z]/.test(name)) {
|
|
1365
|
+
const lower = name.toLowerCase();
|
|
1366
|
+
if (!import_runtime.namedCssColors.has(lower) && !cssWideColorKeywords.has(lower)) {
|
|
1367
|
+
const themeKeys = [];
|
|
1368
|
+
if (state.theme && typeof state.theme === "object") for (const k in state.theme) themeKeys.push(k);
|
|
1369
|
+
if (state.conf.themes) {
|
|
1370
|
+
const active = state.conf.themes[state.flatThemeName || ""];
|
|
1371
|
+
if (active) for (const k in active) themeKeys.push(k);
|
|
1372
|
+
else for (const t in state.conf.themes) for (const k in state.conf.themes[t]) themeKeys.push(k);
|
|
1373
|
+
}
|
|
1374
|
+
let bestMatch;
|
|
1375
|
+
let minDistance = 3;
|
|
1376
|
+
for (const key of themeKeys) {
|
|
1377
|
+
if (Math.abs(key.length - name.length) > 2) continue;
|
|
1378
|
+
const m = name.length;
|
|
1379
|
+
const n = key.length;
|
|
1380
|
+
const d = [];
|
|
1381
|
+
for (let i = 0; i <= m; i++) d[i] = i;
|
|
1382
|
+
for (let j = 1; j <= n; j++) {
|
|
1383
|
+
let prev = d[0];
|
|
1384
|
+
d[0] = j;
|
|
1385
|
+
for (let i = 1; i <= m; i++) {
|
|
1386
|
+
const temp = d[i];
|
|
1387
|
+
d[i] = name[i - 1] === key[j - 1] ? prev : Math.min(prev, d[i], d[i - 1]) + 1;
|
|
1388
|
+
prev = temp;
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
const dist = d[m];
|
|
1392
|
+
if (dist <= 2 && dist < minDistance) {
|
|
1393
|
+
minDistance = dist;
|
|
1394
|
+
bestMatch = key;
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
(0, import_warnOnce.warnOnce)(`unknown-color:${property}=${raw}`, bestMatch ? `unknown color "${name}", did you mean "${bestMatch}"?` : `unknown color "${name}"`);
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1312
1401
|
}
|
|
1313
1402
|
let out = raw;
|
|
1314
1403
|
if ((0, import_createVariable.isVariable)(value)) {
|
|
@@ -1513,6 +1602,11 @@ function walkConditionalValue(state, property, value, parent, sink, warnMode = 0
|
|
|
1513
1602
|
if (typeof value === "string") {
|
|
1514
1603
|
const parsed = (0, import_grammarConfig.getConfigRevisionState)(state.conf).parseFlatValue(value);
|
|
1515
1604
|
const [segments, failure, failureIndex] = parsed;
|
|
1605
|
+
if (process.env.NODE_ENV === "development") {
|
|
1606
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "object") {
|
|
1607
|
+
if (segments.length > 5 || segments.length >= 5 && segments[2] !== -1 || value.includes(":")) (0, import_warnOnce.warnOnce)(`syntax:string:${property}=${value}`, `string syntax is disabled by config (styleValueSyntax: 'object'); received "${property}=${value}"`);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1516
1610
|
let slices = parsedSlices.get(parsed);
|
|
1517
1611
|
if (slices === void 0) parsedSlices.set(parsed, slices = []);
|
|
1518
1612
|
const chainCount = segments.length / 5 - 1;
|
|
@@ -1558,6 +1652,9 @@ function walkConditionalValue(state, property, value, parent, sink, warnMode = 0
|
|
|
1558
1652
|
if (process.env.NODE_ENV !== "production") lastPayload = value.slice(lastPayloadStart);
|
|
1559
1653
|
} else {
|
|
1560
1654
|
if (!value || typeof value !== "object" || Array.isArray(value) || (0, import_createVariable.isVariable)(value) || !classifyConditionalObject(value, state)) return false;
|
|
1655
|
+
if (process.env.NODE_ENV === "development") {
|
|
1656
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "string") (0, import_warnOnce.warnOnce)(`syntax:object:${property}=${JSON.stringify(value)}`, `object-form conditional syntax is disabled by config (styleValueSyntax: 'string'); received "${property}"`);
|
|
1657
|
+
}
|
|
1561
1658
|
if (value.default != null) {
|
|
1562
1659
|
emitConditionalValue(state, property, value.default, parentCondition, value.default, sink, warnMode, contextOnly);
|
|
1563
1660
|
hasBase = true;
|
|
@@ -489,6 +489,19 @@ function contributeProp(pass, keyOg, valOg) {
|
|
|
489
489
|
if (!isNativeInputColor && keyInit in import_skipProps.skipProps && shouldSkipDirectProps && !(neverSkipProps === null || neverSkipProps === void 0 ? void 0 : neverSkipProps[keyInit])) if (keyInit === "transition" && typeof valInit === "string") return;
|
|
490
490
|
else return;
|
|
491
491
|
var isValidStyleKeyInit = isValidStyleKey(keyInit, validStyles);
|
|
492
|
+
if (process.env.NODE_ENV === "development") {
|
|
493
|
+
if (!isValidStyleKeyInit && (!variants || !(keyInit in variants))) {
|
|
494
|
+
var replacement;
|
|
495
|
+
if (keyInit === "animation") replacement = "transition=";
|
|
496
|
+
else if (keyInit === "hoverStyle") replacement = "hover: clause";
|
|
497
|
+
else if (keyInit === "pressStyle") replacement = "press: clause";
|
|
498
|
+
else if (keyInit === "focusStyle") replacement = "focus: clause";
|
|
499
|
+
else if (keyInit === "enterStyle") replacement = "enter: clause";
|
|
500
|
+
else if (keyInit === "exitStyle") replacement = "exit: clause";
|
|
501
|
+
else if (keyInit.charCodeAt(0) === 36 && keyInit.length > 1) replacement = `${keyInit.slice(1)}: clause`;
|
|
502
|
+
if (replacement) (0, import_warnOnce.warnOnce)(`v2-prop:${keyInit}`, `prop "${keyInit}" was removed in v3; use ${replacement}`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
492
505
|
if (!isValidStyleKeyInit) {
|
|
493
506
|
if (!import_constants.isAndroid) {
|
|
494
507
|
if (keyInit === "elevationAndroid") return;
|
|
@@ -1218,7 +1231,7 @@ function emitUnderCondition(state, property, value, cursor, originalValue, conte
|
|
|
1218
1231
|
return condition;
|
|
1219
1232
|
}
|
|
1220
1233
|
var formatScanFailure = function(failure, source, failureIndex) {
|
|
1221
|
-
return failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"";
|
|
1234
|
+
return failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : failure === "over-deep-clause" ? `a clause with more than ${import_runtime.grammarMaxNonPlatformDepth} non-platform conditions` : "an unterminated \"(\"";
|
|
1222
1235
|
};
|
|
1223
1236
|
var warnScanFailure = function(property, source, failure, failureIndex) {
|
|
1224
1237
|
if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, formatScanFailure(failure, source, failureIndex));
|
|
@@ -1244,6 +1257,15 @@ var valueCaches = /* @__PURE__ */ new WeakMap();
|
|
|
1244
1257
|
var valueCacheEntries = 0;
|
|
1245
1258
|
var valueCacheRoot = {};
|
|
1246
1259
|
var parsedSlices = /* @__PURE__ */ new WeakMap();
|
|
1260
|
+
var cssWideColorKeywords = /* @__PURE__ */ new Set([
|
|
1261
|
+
"inherit",
|
|
1262
|
+
"initial",
|
|
1263
|
+
"unset",
|
|
1264
|
+
"revert",
|
|
1265
|
+
"revert-layer",
|
|
1266
|
+
"currentcolor",
|
|
1267
|
+
"transparent"
|
|
1268
|
+
]);
|
|
1247
1269
|
function configuredValue(state, property, raw) {
|
|
1248
1270
|
var embedded = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
|
1249
1271
|
var grammar = (0, import_grammarConfig.getConfigRevisionState)(state.conf);
|
|
@@ -1329,8 +1351,89 @@ function configuredValue(state, property, raw) {
|
|
|
1329
1351
|
}
|
|
1330
1352
|
if (process.env.NODE_ENV === "development") {
|
|
1331
1353
|
var _state_conf_tokensParsed_color1;
|
|
1332
|
-
var category1 = grammar.tokenCategory(property);
|
|
1354
|
+
var category1 = grammar.tokenCategory(property) || grammar.tokenCategory(state.conf.shorthands[property] || property);
|
|
1333
1355
|
if (category1 && category1 !== "color" && ((_state_conf_tokensParsed_color1 = state.conf.tokensParsed.color) === null || _state_conf_tokensParsed_color1 === void 0 ? void 0 : _state_conf_tokensParsed_color1[name])) (0, import_warnOnce.warnOnce)(`"${name}" contributes to "color", not "${property}"`);
|
|
1356
|
+
if (!value && !fontProperty) {
|
|
1357
|
+
if (name.charCodeAt(0) === 36 || raw.charCodeAt(0) === 36) {
|
|
1358
|
+
var suggested = name.charCodeAt(0) === 36 ? name.slice(1) : raw.slice(1);
|
|
1359
|
+
(0, import_warnOnce.warnOnce)(`v2-token:${property}=${raw}`, `${property}="${raw}": v3 tokens have no "$" prefix, did you mean "${suggested}"?`);
|
|
1360
|
+
} else if ((category1 === "size" || category1 === "space" || category1 === "radius" || category1 === "zIndex") && /^-?\d+(?:\.\d+)?$/.test(name)) {
|
|
1361
|
+
var nearest;
|
|
1362
|
+
var minDistance = Infinity;
|
|
1363
|
+
var rawNum = Number(name);
|
|
1364
|
+
var tokens = category1 ? state.conf.tokensParsed[category1] : void 0;
|
|
1365
|
+
if (tokens && Number.isFinite(rawNum)) for (var key in tokens) {
|
|
1366
|
+
var keyNum = Number(key);
|
|
1367
|
+
if (Number.isFinite(keyNum)) {
|
|
1368
|
+
var dist = Math.abs(keyNum - rawNum);
|
|
1369
|
+
if (dist < minDistance) {
|
|
1370
|
+
minDistance = dist;
|
|
1371
|
+
nearest = key;
|
|
1372
|
+
}
|
|
1373
|
+
} else {
|
|
1374
|
+
var _tokens_key;
|
|
1375
|
+
var val = (_tokens_key = tokens[key]) === null || _tokens_key === void 0 ? void 0 : _tokens_key.val;
|
|
1376
|
+
var valNum = typeof val === "number" ? val : Number(val);
|
|
1377
|
+
if (Number.isFinite(valNum)) {
|
|
1378
|
+
var dist1 = Math.abs(valNum - rawNum);
|
|
1379
|
+
if (dist1 < minDistance) {
|
|
1380
|
+
minDistance = dist1;
|
|
1381
|
+
nearest = key;
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
(0, import_warnOnce.warnOnce)(`numeric-token:${property}=${raw}`, `${property}="${raw}" was passed to CSS as-is with px units${nearest ? `; nearest token is "${nearest}"` : ""}`);
|
|
1387
|
+
} else if (category1 === "color" && /^[a-zA-Z0-9-]+$/.test(name) && /[a-zA-Z]/.test(name)) {
|
|
1388
|
+
var lower = name.toLowerCase();
|
|
1389
|
+
if (!import_runtime.namedCssColors.has(lower) && !cssWideColorKeywords.has(lower)) {
|
|
1390
|
+
var themeKeys = [];
|
|
1391
|
+
if (state.theme && typeof state.theme === "object") for (var k in state.theme) themeKeys.push(k);
|
|
1392
|
+
if (state.conf.themes) {
|
|
1393
|
+
var active = state.conf.themes[state.flatThemeName || ""];
|
|
1394
|
+
if (active) for (var k1 in active) themeKeys.push(k1);
|
|
1395
|
+
else for (var t in state.conf.themes) for (var k2 in state.conf.themes[t]) themeKeys.push(k2);
|
|
1396
|
+
}
|
|
1397
|
+
var bestMatch;
|
|
1398
|
+
var minDistance1 = 3;
|
|
1399
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
1400
|
+
try {
|
|
1401
|
+
for (var _iterator = themeKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
1402
|
+
var key1 = _step.value;
|
|
1403
|
+
if (Math.abs(key1.length - name.length) > 2) continue;
|
|
1404
|
+
var m = name.length;
|
|
1405
|
+
var n = key1.length;
|
|
1406
|
+
var d = [];
|
|
1407
|
+
for (var i = 0; i <= m; i++) d[i] = i;
|
|
1408
|
+
for (var j = 1; j <= n; j++) {
|
|
1409
|
+
var prev = d[0];
|
|
1410
|
+
d[0] = j;
|
|
1411
|
+
for (var i1 = 1; i1 <= m; i1++) {
|
|
1412
|
+
var temp = d[i1];
|
|
1413
|
+
d[i1] = name[i1 - 1] === key1[j - 1] ? prev : Math.min(prev, d[i1], d[i1 - 1]) + 1;
|
|
1414
|
+
prev = temp;
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
var dist2 = d[m];
|
|
1418
|
+
if (dist2 <= 2 && dist2 < minDistance1) {
|
|
1419
|
+
minDistance1 = dist2;
|
|
1420
|
+
bestMatch = key1;
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
} catch (err) {
|
|
1424
|
+
_didIteratorError = true;
|
|
1425
|
+
_iteratorError = err;
|
|
1426
|
+
} finally {
|
|
1427
|
+
try {
|
|
1428
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
|
|
1429
|
+
} finally {
|
|
1430
|
+
if (_didIteratorError) throw _iteratorError;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
(0, import_warnOnce.warnOnce)(`unknown-color:${property}=${raw}`, bestMatch ? `unknown color "${name}", did you mean "${bestMatch}"?` : `unknown color "${name}"`);
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1334
1437
|
}
|
|
1335
1438
|
var out = raw;
|
|
1336
1439
|
if ((0, import_createVariable.isVariable)(value)) {
|
|
@@ -1661,6 +1764,11 @@ function walkConditionalValue(state, property, value, parent, sink) {
|
|
|
1661
1764
|
if (typeof value === "string") {
|
|
1662
1765
|
var parsed = (0, import_grammarConfig.getConfigRevisionState)(state.conf).parseFlatValue(value);
|
|
1663
1766
|
var [segments, failure, failureIndex] = parsed;
|
|
1767
|
+
if (process.env.NODE_ENV === "development") {
|
|
1768
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "object") {
|
|
1769
|
+
if (segments.length > 5 || segments.length >= 5 && segments[2] !== -1 || value.includes(":")) (0, import_warnOnce.warnOnce)(`syntax:string:${property}=${value}`, `string syntax is disabled by config (styleValueSyntax: 'object'); received "${property}=${value}"`);
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1664
1772
|
var slices = parsedSlices.get(parsed);
|
|
1665
1773
|
if (slices === void 0) parsedSlices.set(parsed, slices = []);
|
|
1666
1774
|
var chainCount = segments.length / 5 - 1;
|
|
@@ -1714,6 +1822,9 @@ function walkConditionalValue(state, property, value, parent, sink) {
|
|
|
1714
1822
|
if (process.env.NODE_ENV !== "production") lastPayload = value.slice(lastPayloadStart);
|
|
1715
1823
|
} else {
|
|
1716
1824
|
if (!value || typeof value !== "object" || Array.isArray(value) || (0, import_createVariable.isVariable)(value) || !classifyConditionalObject(value, state)) return false;
|
|
1825
|
+
if (process.env.NODE_ENV === "development") {
|
|
1826
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "string") (0, import_warnOnce.warnOnce)(`syntax:object:${property}=${JSON.stringify(value)}`, `object-form conditional syntax is disabled by config (styleValueSyntax: 'string'); received "${property}"`);
|
|
1827
|
+
}
|
|
1717
1828
|
if (value.default != null) {
|
|
1718
1829
|
emitConditionalValue(state, property, value.default, parentCondition, value.default, sink, warnMode, contextOnly);
|
|
1719
1830
|
hasBase = true;
|
|
@@ -489,6 +489,19 @@ function contributeProp(pass, keyOg, valOg) {
|
|
|
489
489
|
if (!isNativeInputColor && keyInit in import_skipProps.skipProps && shouldSkipDirectProps && !(neverSkipProps === null || neverSkipProps === void 0 ? void 0 : neverSkipProps[keyInit])) if (keyInit === "transition" && typeof valInit === "string") return;
|
|
490
490
|
else return;
|
|
491
491
|
var isValidStyleKeyInit = isValidStyleKey(keyInit, validStyles);
|
|
492
|
+
if (process.env.NODE_ENV === "development") {
|
|
493
|
+
if (!isValidStyleKeyInit && (!variants || !(keyInit in variants))) {
|
|
494
|
+
var replacement;
|
|
495
|
+
if (keyInit === "animation") replacement = "transition=";
|
|
496
|
+
else if (keyInit === "hoverStyle") replacement = "hover: clause";
|
|
497
|
+
else if (keyInit === "pressStyle") replacement = "press: clause";
|
|
498
|
+
else if (keyInit === "focusStyle") replacement = "focus: clause";
|
|
499
|
+
else if (keyInit === "enterStyle") replacement = "enter: clause";
|
|
500
|
+
else if (keyInit === "exitStyle") replacement = "exit: clause";
|
|
501
|
+
else if (keyInit.charCodeAt(0) === 36 && keyInit.length > 1) replacement = `${keyInit.slice(1)}: clause`;
|
|
502
|
+
if (replacement) (0, import_warnOnce.warnOnce)(`v2-prop:${keyInit}`, `prop "${keyInit}" was removed in v3; use ${replacement}`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
492
505
|
if (!isValidStyleKeyInit) {
|
|
493
506
|
if (!import_constants.isAndroid) {
|
|
494
507
|
if (keyInit === "elevationAndroid") return;
|
|
@@ -1218,7 +1231,7 @@ function emitUnderCondition(state, property, value, cursor, originalValue, conte
|
|
|
1218
1231
|
return condition;
|
|
1219
1232
|
}
|
|
1220
1233
|
var formatScanFailure = function(failure, source, failureIndex) {
|
|
1221
|
-
return failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"";
|
|
1234
|
+
return failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : failure === "over-deep-clause" ? `a clause with more than ${import_runtime.grammarMaxNonPlatformDepth} non-platform conditions` : "an unterminated \"(\"";
|
|
1222
1235
|
};
|
|
1223
1236
|
var warnScanFailure = function(property, source, failure, failureIndex) {
|
|
1224
1237
|
if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, formatScanFailure(failure, source, failureIndex));
|
|
@@ -1244,6 +1257,15 @@ var valueCaches = /* @__PURE__ */ new WeakMap();
|
|
|
1244
1257
|
var valueCacheEntries = 0;
|
|
1245
1258
|
var valueCacheRoot = {};
|
|
1246
1259
|
var parsedSlices = /* @__PURE__ */ new WeakMap();
|
|
1260
|
+
var cssWideColorKeywords = /* @__PURE__ */ new Set([
|
|
1261
|
+
"inherit",
|
|
1262
|
+
"initial",
|
|
1263
|
+
"unset",
|
|
1264
|
+
"revert",
|
|
1265
|
+
"revert-layer",
|
|
1266
|
+
"currentcolor",
|
|
1267
|
+
"transparent"
|
|
1268
|
+
]);
|
|
1247
1269
|
function configuredValue(state, property, raw) {
|
|
1248
1270
|
var embedded = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
|
1249
1271
|
var grammar = (0, import_grammarConfig.getConfigRevisionState)(state.conf);
|
|
@@ -1329,8 +1351,89 @@ function configuredValue(state, property, raw) {
|
|
|
1329
1351
|
}
|
|
1330
1352
|
if (process.env.NODE_ENV === "development") {
|
|
1331
1353
|
var _state_conf_tokensParsed_color1;
|
|
1332
|
-
var category1 = grammar.tokenCategory(property);
|
|
1354
|
+
var category1 = grammar.tokenCategory(property) || grammar.tokenCategory(state.conf.shorthands[property] || property);
|
|
1333
1355
|
if (category1 && category1 !== "color" && ((_state_conf_tokensParsed_color1 = state.conf.tokensParsed.color) === null || _state_conf_tokensParsed_color1 === void 0 ? void 0 : _state_conf_tokensParsed_color1[name])) (0, import_warnOnce.warnOnce)(`"${name}" contributes to "color", not "${property}"`);
|
|
1356
|
+
if (!value && !fontProperty) {
|
|
1357
|
+
if (name.charCodeAt(0) === 36 || raw.charCodeAt(0) === 36) {
|
|
1358
|
+
var suggested = name.charCodeAt(0) === 36 ? name.slice(1) : raw.slice(1);
|
|
1359
|
+
(0, import_warnOnce.warnOnce)(`v2-token:${property}=${raw}`, `${property}="${raw}": v3 tokens have no "$" prefix, did you mean "${suggested}"?`);
|
|
1360
|
+
} else if ((category1 === "size" || category1 === "space" || category1 === "radius" || category1 === "zIndex") && /^-?\d+(?:\.\d+)?$/.test(name)) {
|
|
1361
|
+
var nearest;
|
|
1362
|
+
var minDistance = Infinity;
|
|
1363
|
+
var rawNum = Number(name);
|
|
1364
|
+
var tokens = category1 ? state.conf.tokensParsed[category1] : void 0;
|
|
1365
|
+
if (tokens && Number.isFinite(rawNum)) for (var key in tokens) {
|
|
1366
|
+
var keyNum = Number(key);
|
|
1367
|
+
if (Number.isFinite(keyNum)) {
|
|
1368
|
+
var dist = Math.abs(keyNum - rawNum);
|
|
1369
|
+
if (dist < minDistance) {
|
|
1370
|
+
minDistance = dist;
|
|
1371
|
+
nearest = key;
|
|
1372
|
+
}
|
|
1373
|
+
} else {
|
|
1374
|
+
var _tokens_key;
|
|
1375
|
+
var val = (_tokens_key = tokens[key]) === null || _tokens_key === void 0 ? void 0 : _tokens_key.val;
|
|
1376
|
+
var valNum = typeof val === "number" ? val : Number(val);
|
|
1377
|
+
if (Number.isFinite(valNum)) {
|
|
1378
|
+
var dist1 = Math.abs(valNum - rawNum);
|
|
1379
|
+
if (dist1 < minDistance) {
|
|
1380
|
+
minDistance = dist1;
|
|
1381
|
+
nearest = key;
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
(0, import_warnOnce.warnOnce)(`numeric-token:${property}=${raw}`, `${property}="${raw}" was passed to CSS as-is with px units${nearest ? `; nearest token is "${nearest}"` : ""}`);
|
|
1387
|
+
} else if (category1 === "color" && /^[a-zA-Z0-9-]+$/.test(name) && /[a-zA-Z]/.test(name)) {
|
|
1388
|
+
var lower = name.toLowerCase();
|
|
1389
|
+
if (!import_runtime.namedCssColors.has(lower) && !cssWideColorKeywords.has(lower)) {
|
|
1390
|
+
var themeKeys = [];
|
|
1391
|
+
if (state.theme && typeof state.theme === "object") for (var k in state.theme) themeKeys.push(k);
|
|
1392
|
+
if (state.conf.themes) {
|
|
1393
|
+
var active = state.conf.themes[state.flatThemeName || ""];
|
|
1394
|
+
if (active) for (var k1 in active) themeKeys.push(k1);
|
|
1395
|
+
else for (var t in state.conf.themes) for (var k2 in state.conf.themes[t]) themeKeys.push(k2);
|
|
1396
|
+
}
|
|
1397
|
+
var bestMatch;
|
|
1398
|
+
var minDistance1 = 3;
|
|
1399
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
1400
|
+
try {
|
|
1401
|
+
for (var _iterator = themeKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
1402
|
+
var key1 = _step.value;
|
|
1403
|
+
if (Math.abs(key1.length - name.length) > 2) continue;
|
|
1404
|
+
var m = name.length;
|
|
1405
|
+
var n = key1.length;
|
|
1406
|
+
var d = [];
|
|
1407
|
+
for (var i = 0; i <= m; i++) d[i] = i;
|
|
1408
|
+
for (var j = 1; j <= n; j++) {
|
|
1409
|
+
var prev = d[0];
|
|
1410
|
+
d[0] = j;
|
|
1411
|
+
for (var i1 = 1; i1 <= m; i1++) {
|
|
1412
|
+
var temp = d[i1];
|
|
1413
|
+
d[i1] = name[i1 - 1] === key1[j - 1] ? prev : Math.min(prev, d[i1], d[i1 - 1]) + 1;
|
|
1414
|
+
prev = temp;
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
var dist2 = d[m];
|
|
1418
|
+
if (dist2 <= 2 && dist2 < minDistance1) {
|
|
1419
|
+
minDistance1 = dist2;
|
|
1420
|
+
bestMatch = key1;
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
} catch (err) {
|
|
1424
|
+
_didIteratorError = true;
|
|
1425
|
+
_iteratorError = err;
|
|
1426
|
+
} finally {
|
|
1427
|
+
try {
|
|
1428
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
|
|
1429
|
+
} finally {
|
|
1430
|
+
if (_didIteratorError) throw _iteratorError;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
(0, import_warnOnce.warnOnce)(`unknown-color:${property}=${raw}`, bestMatch ? `unknown color "${name}", did you mean "${bestMatch}"?` : `unknown color "${name}"`);
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1334
1437
|
}
|
|
1335
1438
|
var out = raw;
|
|
1336
1439
|
if ((0, import_createVariable.isVariable)(value)) {
|
|
@@ -1661,6 +1764,11 @@ function walkConditionalValue(state, property, value, parent, sink) {
|
|
|
1661
1764
|
if (typeof value === "string") {
|
|
1662
1765
|
var parsed = (0, import_grammarConfig.getConfigRevisionState)(state.conf).parseFlatValue(value);
|
|
1663
1766
|
var [segments, failure, failureIndex] = parsed;
|
|
1767
|
+
if (process.env.NODE_ENV === "development") {
|
|
1768
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "object") {
|
|
1769
|
+
if (segments.length > 5 || segments.length >= 5 && segments[2] !== -1 || value.includes(":")) (0, import_warnOnce.warnOnce)(`syntax:string:${property}=${value}`, `string syntax is disabled by config (styleValueSyntax: 'object'); received "${property}=${value}"`);
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1664
1772
|
var slices = parsedSlices.get(parsed);
|
|
1665
1773
|
if (slices === void 0) parsedSlices.set(parsed, slices = []);
|
|
1666
1774
|
var chainCount = segments.length / 5 - 1;
|
|
@@ -1714,6 +1822,9 @@ function walkConditionalValue(state, property, value, parent, sink) {
|
|
|
1714
1822
|
if (process.env.NODE_ENV !== "production") lastPayload = value.slice(lastPayloadStart);
|
|
1715
1823
|
} else {
|
|
1716
1824
|
if (!value || typeof value !== "object" || Array.isArray(value) || (0, import_createVariable.isVariable)(value) || !classifyConditionalObject(value, state)) return false;
|
|
1825
|
+
if (process.env.NODE_ENV === "development") {
|
|
1826
|
+
if ((0, import_config.getSetting)("styleValueSyntax") === "string") (0, import_warnOnce.warnOnce)(`syntax:object:${property}=${JSON.stringify(value)}`, `object-form conditional syntax is disabled by config (styleValueSyntax: 'string'); received "${property}"`);
|
|
1827
|
+
}
|
|
1717
1828
|
if (value.default != null) {
|
|
1718
1829
|
emitConditionalValue(state, property, value.default, parentCondition, value.default, sink, warnMode, contextOnly);
|
|
1719
1830
|
hasBase = true;
|