@tamagui/core 1.0.1-beta.66 → 1.0.1-beta.69
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/constants/rnw.js +2 -13
- package/dist/cjs/constants/rnw.js.map +2 -2
- package/dist/cjs/createComponent.js +69 -47
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +3 -0
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/generateAtomicStyles.js +133 -89
- package/dist/cjs/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +27 -21
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +22 -67
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/pseudos.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/constants/rnw.js +2 -13
- package/dist/esm/constants/rnw.js.map +2 -2
- package/dist/esm/createComponent.js +69 -47
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +3 -0
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/generateAtomicStyles.js +133 -89
- package/dist/esm/helpers/generateAtomicStyles.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +27 -22
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +22 -67
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/pseudos.js.map +1 -1
- package/dist/jsx/constants/rnw.js +2 -13
- package/dist/jsx/createComponent.js +67 -44
- package/dist/jsx/helpers/createPropMapper.js +3 -0
- package/dist/jsx/helpers/generateAtomicStyles.js +133 -89
- package/dist/jsx/helpers/getSplitStyles.js +27 -22
- package/dist/jsx/helpers/getStylesAtomic.js +22 -67
- package/package.json +6 -5
- package/types/constants/rnw.d.ts.map +1 -1
- package/types/createComponent.d.ts +3 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/generateAtomicStyles.d.ts +3 -12
- package/types/helpers/generateAtomicStyles.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +6 -0
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +0 -5
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/pseudos.d.ts +1 -0
- package/types/helpers/pseudos.d.ts.map +1 -1
- package/types/types.d.ts +2 -1
- package/types/types.d.ts.map +1 -1
|
@@ -43,8 +43,43 @@ module.exports = __toCommonJS(generateAtomicStyles_exports);
|
|
|
43
43
|
var import_helpers = require("@tamagui/helpers");
|
|
44
44
|
var import_hyphenate_style_name = __toESM(require("hyphenate-style-name"));
|
|
45
45
|
var import_normalize_css_color = __toESM(require("normalize-css-color"));
|
|
46
|
+
var import_conf = require("../conf");
|
|
46
47
|
var import_platform = require("../constants/platform");
|
|
48
|
+
var import_createTamagui = require("../createTamagui");
|
|
47
49
|
var import_pseudos = require("./pseudos");
|
|
50
|
+
const generateAtomicStyles = /* @__PURE__ */ __name((style, pseudo) => {
|
|
51
|
+
const res = expandStyles(style);
|
|
52
|
+
const out = [];
|
|
53
|
+
for (const key in res) {
|
|
54
|
+
const value = res[key];
|
|
55
|
+
if (value != null) {
|
|
56
|
+
const valueString = stringifyValueWithProperty(value, key);
|
|
57
|
+
const hash = (0, import_helpers.simpleHash)(key + valueString + ((pseudo == null ? void 0 : pseudo.name) || ""));
|
|
58
|
+
const cachedResult = cache.get(hash, valueString);
|
|
59
|
+
if (cachedResult != null) {
|
|
60
|
+
out.push(cachedResult);
|
|
61
|
+
} else {
|
|
62
|
+
const pseudoPrefix = pseudo ? `0${pseudo.name}-` : "";
|
|
63
|
+
const shortProp = import_createTamagui.reversedShorthands[key] || key;
|
|
64
|
+
const identifier = `_${shortProp}-${pseudoPrefix}${hash}`;
|
|
65
|
+
const rules = createAtomicRules(identifier, key, valueString, pseudo);
|
|
66
|
+
const styleObject = {
|
|
67
|
+
property: key,
|
|
68
|
+
pseudo: pseudo == null ? void 0 : pseudo.name,
|
|
69
|
+
value,
|
|
70
|
+
identifier,
|
|
71
|
+
rules
|
|
72
|
+
};
|
|
73
|
+
cache.set(hash, valueString, styleObject);
|
|
74
|
+
out.push(styleObject);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (style.borderColor === "transparent") {
|
|
79
|
+
debugger;
|
|
80
|
+
}
|
|
81
|
+
return out;
|
|
82
|
+
}, "generateAtomicStyles");
|
|
48
83
|
const reducedStyleKeys = {
|
|
49
84
|
shadowColor: true,
|
|
50
85
|
shadowOffset: true,
|
|
@@ -54,58 +89,116 @@ const reducedStyleKeys = {
|
|
|
54
89
|
textShadowOffset: true,
|
|
55
90
|
textShadowRadius: true
|
|
56
91
|
};
|
|
92
|
+
let shorthands = null;
|
|
57
93
|
function expandStyles(style) {
|
|
58
94
|
const res = {};
|
|
59
95
|
boxShadowReducer(res, style);
|
|
60
96
|
textShadowReducer(res, style);
|
|
61
|
-
|
|
97
|
+
borderReducer(res, style);
|
|
98
|
+
for (let key in style) {
|
|
99
|
+
shorthands = shorthands || (0, import_conf.getConfig)().shorthands;
|
|
100
|
+
if (shorthands) {
|
|
101
|
+
key = shorthands[key] || key;
|
|
102
|
+
}
|
|
62
103
|
if (reducedStyleKeys[key])
|
|
63
104
|
continue;
|
|
64
105
|
if (key in import_pseudos.pseudos) {
|
|
65
106
|
res[key] = expandStyles(style[key]);
|
|
66
107
|
} else {
|
|
67
|
-
|
|
108
|
+
const val = normalizeValueWithProperty(style[key], key);
|
|
109
|
+
const out = expandStyle(key, val);
|
|
110
|
+
if (out) {
|
|
111
|
+
Object.assign(res, Object.fromEntries(out));
|
|
112
|
+
} else {
|
|
113
|
+
res[key] = val;
|
|
114
|
+
}
|
|
68
115
|
}
|
|
69
116
|
}
|
|
70
117
|
return res;
|
|
71
118
|
}
|
|
72
119
|
__name(expandStyles, "expandStyles");
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
} else {
|
|
79
|
-
style[key] = value;
|
|
120
|
+
function borderReducer(res, cur) {
|
|
121
|
+
for (const key in borderDefaults) {
|
|
122
|
+
if (key in cur) {
|
|
123
|
+
res[borderDefaults[key]] = cur[borderDefaults[key]] || "solid";
|
|
124
|
+
}
|
|
80
125
|
}
|
|
81
126
|
}
|
|
82
|
-
__name(
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
127
|
+
__name(borderReducer, "borderReducer");
|
|
128
|
+
const borderDefaults = {
|
|
129
|
+
borderWidth: "borderStyle",
|
|
130
|
+
borderBottomWidth: "borderBottomStyle",
|
|
131
|
+
borderTopWidth: "borderTopStyle",
|
|
132
|
+
borderLeftWidth: "borderLeftStyle",
|
|
133
|
+
borderRightWidth: "borderRightStyle"
|
|
134
|
+
};
|
|
135
|
+
function createDeclarationBlock(style, important = false) {
|
|
136
|
+
let declarations = "";
|
|
137
|
+
for (const key in style) {
|
|
138
|
+
const prop = (0, import_hyphenate_style_name.default)(key);
|
|
139
|
+
const value = style[key];
|
|
140
|
+
declarations += `${prop}:${value}`;
|
|
141
|
+
}
|
|
142
|
+
return `{${declarations}${important ? ` !important` : ""};}`;
|
|
143
|
+
}
|
|
144
|
+
__name(createDeclarationBlock, "createDeclarationBlock");
|
|
145
|
+
const pseudoSelectorPrefixes = (() => {
|
|
146
|
+
const res = {};
|
|
147
|
+
for (const key in import_pseudos.pseudos) {
|
|
148
|
+
const pseudo = import_pseudos.pseudos[key];
|
|
149
|
+
res[pseudo.name] = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
|
|
150
|
+
}
|
|
151
|
+
return res;
|
|
152
|
+
})();
|
|
153
|
+
function createAtomicRules(identifier, property, value, pseudo) {
|
|
154
|
+
const selector = pseudo ? `${pseudoSelectorPrefixes[pseudo.name]} .${identifier}:${pseudo.name}` : `.${identifier}`;
|
|
155
|
+
const important = !!pseudo;
|
|
156
|
+
let rules = [];
|
|
157
|
+
switch (property) {
|
|
158
|
+
case "placeholderTextColor": {
|
|
159
|
+
const block = createDeclarationBlock({ color: value, opacity: 1 }, important);
|
|
160
|
+
rules.push(`${selector}::placeholder${block}`);
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case "pointerEvents": {
|
|
164
|
+
let finalValue = value;
|
|
165
|
+
if (value === "auto" || value === "box-only") {
|
|
166
|
+
finalValue = "auto!important";
|
|
167
|
+
if (value === "box-only") {
|
|
168
|
+
const block2 = createDeclarationBlock({ pointerEvents: "none" }, important);
|
|
169
|
+
rules.push(`${selector}>*${block2}`);
|
|
170
|
+
}
|
|
171
|
+
} else if (value === "none" || value === "box-none") {
|
|
172
|
+
finalValue = "none!important";
|
|
173
|
+
if (value === "box-none") {
|
|
174
|
+
const block2 = createDeclarationBlock({ pointerEvents: "auto" }, important);
|
|
175
|
+
rules.push(`${selector}>*${block2}`);
|
|
176
|
+
}
|
|
104
177
|
}
|
|
178
|
+
const block = createDeclarationBlock({ pointerEvents: finalValue }, important);
|
|
179
|
+
rules.push(`${selector}${block}`);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case "scrollbarWidth": {
|
|
183
|
+
if (value === "none") {
|
|
184
|
+
rules.push(`${selector}::-webkit-scrollbar{display:none}`);
|
|
185
|
+
}
|
|
186
|
+
const block = createDeclarationBlock({ scrollbarWidth: value }, important);
|
|
187
|
+
rules.push(`${selector}${block}`);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
default: {
|
|
191
|
+
const block = createDeclarationBlock({ [property]: value }, important);
|
|
192
|
+
rules.push(`${selector}${block}`);
|
|
193
|
+
break;
|
|
105
194
|
}
|
|
106
195
|
}
|
|
107
|
-
|
|
108
|
-
}
|
|
196
|
+
if ((pseudo == null ? void 0 : pseudo.name) === "hover") {
|
|
197
|
+
rules = rules.map((r) => `@media not all and (hover: none) { ${r} }`);
|
|
198
|
+
}
|
|
199
|
+
return rules;
|
|
200
|
+
}
|
|
201
|
+
__name(createAtomicRules, "createAtomicRules");
|
|
109
202
|
function expandStyle(key, value) {
|
|
110
203
|
if (key === "flex") {
|
|
111
204
|
if (value <= -1) {
|
|
@@ -170,61 +263,6 @@ function expandStyle(key, value) {
|
|
|
170
263
|
}
|
|
171
264
|
}
|
|
172
265
|
__name(expandStyle, "expandStyle");
|
|
173
|
-
function createAtomicRules(identifier, property, value) {
|
|
174
|
-
const rules = [];
|
|
175
|
-
const selector = `.${identifier}`;
|
|
176
|
-
switch (property) {
|
|
177
|
-
case "placeholderTextColor": {
|
|
178
|
-
const block = createDeclarationBlock({ color: value, opacity: 1 });
|
|
179
|
-
rules.push(`${selector}::placeholder${block}`);
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
case "pointerEvents": {
|
|
183
|
-
let finalValue = value;
|
|
184
|
-
if (value === "auto" || value === "box-only") {
|
|
185
|
-
finalValue = "auto!important";
|
|
186
|
-
if (value === "box-only") {
|
|
187
|
-
const block2 = createDeclarationBlock({ pointerEvents: "none" });
|
|
188
|
-
rules.push(`${selector}>*${block2}`);
|
|
189
|
-
}
|
|
190
|
-
} else if (value === "none" || value === "box-none") {
|
|
191
|
-
finalValue = "none!important";
|
|
192
|
-
if (value === "box-none") {
|
|
193
|
-
const block2 = createDeclarationBlock({ pointerEvents: "auto" });
|
|
194
|
-
rules.push(`${selector}>*${block2}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
const block = createDeclarationBlock({ pointerEvents: finalValue });
|
|
198
|
-
rules.push(`${selector}${block}`);
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
case "scrollbarWidth": {
|
|
202
|
-
if (value === "none") {
|
|
203
|
-
rules.push(`${selector}::-webkit-scrollbar{display:none}`);
|
|
204
|
-
}
|
|
205
|
-
const block = createDeclarationBlock({ scrollbarWidth: value });
|
|
206
|
-
rules.push(`${selector}${block}`);
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
default: {
|
|
210
|
-
const block = createDeclarationBlock({ [property]: value });
|
|
211
|
-
rules.push(`${selector}${block}`);
|
|
212
|
-
break;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return rules;
|
|
216
|
-
}
|
|
217
|
-
__name(createAtomicRules, "createAtomicRules");
|
|
218
|
-
function createDeclarationBlock(style) {
|
|
219
|
-
const domStyle = expandStyles(style);
|
|
220
|
-
const declarationsString = Object.keys(domStyle).map((property) => {
|
|
221
|
-
const value = domStyle[property];
|
|
222
|
-
const prop = (0, import_hyphenate_style_name.default)(property);
|
|
223
|
-
return `${prop}:${value}`;
|
|
224
|
-
}).sort().join(";");
|
|
225
|
-
return `{${declarationsString};}`;
|
|
226
|
-
}
|
|
227
|
-
__name(createDeclarationBlock, "createDeclarationBlock");
|
|
228
266
|
const cache = {
|
|
229
267
|
get(property, value) {
|
|
230
268
|
if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {
|
|
@@ -297,7 +335,13 @@ const normalizeColor = /* @__PURE__ */ __name((color, opacity = 1) => {
|
|
|
297
335
|
}
|
|
298
336
|
return `${color}`;
|
|
299
337
|
}, "normalizeColor");
|
|
300
|
-
const
|
|
338
|
+
const webColors = {
|
|
339
|
+
currentColor: true,
|
|
340
|
+
currentcolor: true,
|
|
341
|
+
transparent: true,
|
|
342
|
+
inherit: true
|
|
343
|
+
};
|
|
344
|
+
const isWebColor = /* @__PURE__ */ __name((color) => webColors[color] || color.indexOf("var(") === 0, "isWebColor");
|
|
301
345
|
const processColor = /* @__PURE__ */ __name((color) => {
|
|
302
346
|
if (color === void 0 || color === null) {
|
|
303
347
|
return color;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/generateAtomicStyles.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Some parts adapted from react-native-web\n * Copyright (c) Nicolas Gallagher licensed under the MIT license.\n */\n\nimport { simpleHash } from '@tamagui/helpers'\nimport hyphenateStyleName from 'hyphenate-style-name'\nimport normalizeCSSColor from 'normalize-css-color'\nimport { TextStyle, ViewStyle } from 'react-native'\n\nimport { isWeb } from '../constants/platform'\nimport { pseudos } from './pseudos'\n\ntype Value = Object | Array<any> | string | number\nexport type Style = { [key: string]: Value }\n\ntype Rule = string\ntype Rules = Array<Rule>\n\nexport type RulesData = {\n property?: string\n value?: string\n identifier: string\n rules: Rules\n}\n\ntype CompilerOutput = { [key: string]: RulesData }\n\nconst reducedStyleKeys = {\n shadowColor: true,\n shadowOffset: true,\n shadowOpacity: true,\n shadowRadius: true,\n textShadowColor: true,\n textShadowOffset: true,\n textShadowRadius: true,\n}\n\nexport function expandStyles(style: any) {\n const res = {}\n boxShadowReducer(res, style)\n textShadowReducer(res, style)\n for (const key in style) {\n if (reducedStyleKeys[key]) continue\n if (key in pseudos) {\n res[key] = expandStyles(style[key])\n } else {\n updateReactDOMStyle(res, key, style[key])\n }\n }\n return res\n}\n\nfunction updateReactDOMStyle(style: Object, key: string, value: any) {\n value = normalizeValueWithProperty(value, key)\n const out = expandStyle(key, value)\n if (out) {\n Object.assign(style, Object.fromEntries(out))\n } else {\n style[key] = value\n }\n}\n\nexport const generateAtomicStyles = (style: ViewStyle & TextStyle): CompilerOutput => {\n const res = expandStyles(style)\n\n const out = {}\n for (const key in res) {\n const value = res[key]\n if (value != null) {\n const valueString = stringifyValueWithProperty(value, key)\n const cachedResult = cache.get(key, valueString)\n if (cachedResult != null) {\n const { identifier } = cachedResult\n out[identifier] = cachedResult\n } else {\n const identifier = simpleHash(key + valueString)\n const rules = createAtomicRules(identifier, key, valueString)\n const cachedResult = cache.set(key, valueString, {\n property: key,\n value: valueString,\n identifier,\n rules,\n })\n out[identifier] = cachedResult\n }\n }\n }\n\n return out\n}\n\nexport function expandStyle(key: string, value: any) {\n if (key === 'flex') {\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n if (value <= -1) {\n return [\n ['flexGrow', 0],\n ['flexShrink', 1],\n ['flexBasis', 'auto'],\n ]\n }\n // normalizing to better align with native\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (value >= 0) {\n return [\n ['flexGrow', value],\n ['flexShrink', 1],\n ]\n }\n return\n }\n\n // web only\n switch (key) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor': {\n break\n }\n\n case 'aspectRatio': {\n return [[key, value.toString()]]\n }\n\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n case 'backgroundClip': {\n if (value === 'text') {\n return [\n ['backgroundClip', value],\n ['WebkitBackgroundClip', value],\n ]\n }\n break\n }\n\n case 'textAlignVertical': {\n return [['verticalAlign', value === 'center' ? 'middle' : value]]\n }\n\n case 'textDecorationLine': {\n return [['textDecorationLine', value]]\n }\n\n case 'transform': {\n if (Array.isArray(value)) {\n return [[key, value.map(mapTransform).join(' ')]]\n }\n break\n }\n\n case 'writingDirection': {\n return [['direction', value]]\n }\n }\n\n const longKey = STYLE_SHORT_FORM_EXPANSIONS[key]\n if (longKey) {\n return longKey.map((key) => {\n return [key, value]\n })\n } else {\n if (isWeb && Array.isArray(value)) {\n return [[key, value.join(',')]]\n }\n }\n}\n\nfunction createAtomicRules(identifier: string, property, value): Rules {\n const rules: string[] = []\n const selector = `.${identifier}`\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor': {\n const block = createDeclarationBlock({ color: value, opacity: 1 })\n rules.push(`${selector}::placeholder${block}`)\n break\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents': {\n let finalValue = value\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important'\n if (value === 'box-only') {\n const block = createDeclarationBlock({ pointerEvents: 'none' })\n rules.push(`${selector}>*${block}`)\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important'\n if (value === 'box-none') {\n const block = createDeclarationBlock({ pointerEvents: 'auto' })\n rules.push(`${selector}>*${block}`)\n }\n }\n const block = createDeclarationBlock({ pointerEvents: finalValue })\n rules.push(`${selector}${block}`)\n break\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth': {\n if (value === 'none') {\n rules.push(`${selector}::-webkit-scrollbar{display:none}`)\n }\n const block = createDeclarationBlock({ scrollbarWidth: value })\n rules.push(`${selector}${block}`)\n break\n }\n\n default: {\n const block = createDeclarationBlock({ [property]: value })\n rules.push(`${selector}${block}`)\n break\n }\n }\n\n return rules\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style: Style) {\n const domStyle = expandStyles(style)\n const declarationsString = Object.keys(domStyle)\n .map((property) => {\n const value = domStyle[property]\n const prop = hyphenateStyleName(property)\n return `${prop}:${value}`\n })\n // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort()\n .join(';')\n\n return `{${declarationsString};}`\n}\n\nconst cache = {\n get(property, value) {\n if (\n cache[property] != null &&\n cache[property].hasOwnProperty(value) &&\n cache[property][value] != null\n ) {\n return cache[property][value]\n }\n },\n set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {}\n }\n return (cache[property][value] = object)\n },\n}\n\nfunction stringifyValueWithProperty(value: Value, property?: string): string {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n return normalizeValueWithProperty(value, property)\n}\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nconst mapTransform = (transform) => {\n const type = Object.keys(transform)[0]\n const value = transform[type]\n if (type === 'matrix' || type === 'matrix3d') {\n return `${type}(${value.join(',')})`\n } else {\n const normalizedValue = normalizeValueWithProperty(value, type)\n return `${type}(${normalizedValue})`\n }\n}\n\nconst colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true,\n}\n\nfunction normalizeValueWithProperty(value: any, property?: string): any {\n if (process.env.TAMAGUI_TARGET === 'web') {\n const shouldCoerceToPx =\n typeof value === 'number' &&\n (property === undefined || property === null || !unitlessNumbers[property])\n if (shouldCoerceToPx) {\n return `${value}px`\n }\n }\n if (property && colorProps[property]) {\n return normalizeColor(value)\n }\n return value\n}\n\nconst normalizeColor = (color?: number | string, opacity = 1): void | string => {\n if (color == null || color == undefined) {\n return\n }\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (typeof color === 'string' && isWebColor(color)) {\n return color\n }\n }\n const colorInt = processColor(color)\n if (colorInt != null) {\n const r = (colorInt >> 16) & 255\n const g = (colorInt >> 8) & 255\n const b = colorInt & 255\n const a = ((colorInt >> 24) & 255) / 255\n const alpha = (a * opacity).toFixed(2)\n return `rgba(${r},${g},${b},${alpha})`\n }\n return `${color}`\n}\n\nconst isWebColor = (color: string): boolean =>\n color === 'currentcolor' ||\n color === 'currentColor' ||\n color === 'inherit' ||\n color.indexOf('var(') === 0\n\nconst processColor = (color?: number | string): number | undefined | null => {\n if (color === undefined || color === null) {\n return color\n }\n let intColor = normalizeCSSColor(color)\n if (intColor === undefined || intColor === null) {\n return undefined\n }\n return ((+intColor << 24) | (+intColor >>> 8)) >>> 0\n}\n\nconst unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFleGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n shadowOpacity: true,\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nconst resolveShadowValue = (style: ViewStyle): void | string => {\n const { shadowColor, shadowOffset, shadowOpacity, shadowRadius } = style\n if (shadowRadius === undefined) {\n return\n }\n const { height, width } = shadowOffset || defaultOffset\n const offsetX = normalizeValueWithProperty(width)\n const offsetY = normalizeValueWithProperty(height)\n const blurRadius = normalizeValueWithProperty(shadowRadius || 0)\n const color = normalizeColor(String(shadowColor || 'black'), shadowOpacity)\n return `${offsetX} ${offsetY} ${blurRadius} ${color}`\n}\n\nfunction boxShadowReducer(resolvedStyle, style) {\n const { boxShadow } = style\n const shadow = resolveShadowValue(style)\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? `${boxShadow}, ${shadow}` : shadow\n }\n}\n\nconst defaultOffset = { height: 0, width: 0 }\nfunction textShadowReducer(resolvedStyle, style) {\n const { textShadowColor, textShadowOffset, textShadowRadius } = style\n const { height, width } = textShadowOffset || defaultOffset\n const radius = textShadowRadius || 0\n const offsetX = normalizeValueWithProperty(width)\n const offsetY = normalizeValueWithProperty(height)\n const blurRadius = normalizeValueWithProperty(radius)\n const color = normalizeValueWithProperty(textShadowColor, 'textShadowColor')\n\n if (\n color &&\n (height !== 0 || width !== 0 || radius !== 0) &&\n offsetX != null &&\n offsetY != null &&\n blurRadius != null\n ) {\n resolvedStyle.textShadow = `${offsetX} ${offsetY} ${blurRadius} ${color}`\n }\n}\n\nconst STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: [\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomRightRadius',\n 'borderBottomLeftRadius',\n ],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom'],\n ...(isWeb && {\n // react-native doesn't support X / Y\n overflow: ['overflowX', 'overflowY'],\n }),\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,
|
|
4
|
+
"sourcesContent": ["/**\n * Some parts adapted from react-native-web\n * Copyright (c) Nicolas Gallagher licensed under the MIT license.\n */\n\nimport { StyleObject, simpleHash } from '@tamagui/helpers'\nimport hyphenateStyleName from 'hyphenate-style-name'\nimport normalizeCSSColor from 'normalize-css-color'\nimport { TextStyle, ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { reversedShorthands } from '../createTamagui'\nimport { PseudoDescriptor, pseudos } from './pseudos'\n\ntype Value = Object | Array<any> | string | number\nexport type Style = { [key: string]: Value }\n\nexport const generateAtomicStyles = (\n style: ViewStyle & TextStyle,\n pseudo?: PseudoDescriptor\n): StyleObject[] => {\n const res = expandStyles(style)\n const out: StyleObject[] = []\n for (const key in res) {\n const value = res[key]\n if (value != null) {\n const valueString = stringifyValueWithProperty(value, key)\n const hash = simpleHash(key + valueString + (pseudo?.name || ''))\n const cachedResult = cache.get(hash, valueString)\n if (cachedResult != null) {\n out.push(cachedResult)\n } else {\n const pseudoPrefix = pseudo ? `0${pseudo.name}-` : ''\n const shortProp = reversedShorthands[key] || key\n const identifier = `_${shortProp}-${pseudoPrefix}${hash}`\n const rules = createAtomicRules(identifier, key, valueString, pseudo)\n const styleObject: StyleObject = {\n property: key,\n pseudo: pseudo?.name,\n value,\n identifier,\n rules,\n }\n cache.set(hash, valueString, styleObject)\n out.push(styleObject)\n }\n }\n }\n if (style.borderColor === 'transparent') {\n debugger\n }\n return out\n}\n\nconst reducedStyleKeys = {\n shadowColor: true,\n shadowOffset: true,\n shadowOpacity: true,\n shadowRadius: true,\n textShadowColor: true,\n textShadowOffset: true,\n textShadowRadius: true,\n}\n\nlet shorthands: Record<string, string> | null = null\n\n// can likely remove this and include in other loops\nexport function expandStyles(style: any) {\n const res = {}\n boxShadowReducer(res, style)\n textShadowReducer(res, style)\n borderReducer(res, style)\n for (let key in style) {\n shorthands = shorthands || getConfig().shorthands\n if (shorthands) {\n key = shorthands[key] || key\n }\n if (reducedStyleKeys[key]) continue\n if (key in pseudos) {\n res[key] = expandStyles(style[key])\n } else {\n const val = normalizeValueWithProperty(style[key], key)\n const out = expandStyle(key, val)\n if (out) {\n Object.assign(res, Object.fromEntries(out))\n } else {\n res[key] = val\n }\n }\n }\n return res\n}\n\n// why is this diff from react-native-web!? need to figure out\nfunction borderReducer(res: any, cur: any) {\n for (const key in borderDefaults) {\n if (key in cur) {\n res[borderDefaults[key]] = cur[borderDefaults[key]] || 'solid'\n }\n }\n}\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\nfunction createDeclarationBlock(style: Style, important = false) {\n let declarations = ''\n for (const key in style) {\n const prop = hyphenateStyleName(key)\n const value = style[key]\n declarations += `${prop}:${value}`\n }\n return `{${declarations}${important ? ` !important` : ''};}`\n}\n\nconst pseudoSelectorPrefixes = (() => {\n const res: Record<string, string> = {}\n for (const key in pseudos) {\n const pseudo = pseudos[key]\n res[pseudo.name] = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n }\n return res\n})()\n\nfunction createAtomicRules(\n identifier: string,\n property: string,\n value: any,\n pseudo?: PseudoDescriptor\n): string[] {\n const selector = pseudo\n ? `${pseudoSelectorPrefixes[pseudo.name]} .${identifier}:${pseudo.name}`\n : `.${identifier}`\n const important = !!pseudo\n\n let rules: string[] = []\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor': {\n const block = createDeclarationBlock({ color: value, opacity: 1 }, important)\n rules.push(`${selector}::placeholder${block}`)\n break\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents': {\n let finalValue = value\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important'\n if (value === 'box-only') {\n const block = createDeclarationBlock({ pointerEvents: 'none' }, important)\n rules.push(`${selector}>*${block}`)\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important'\n if (value === 'box-none') {\n const block = createDeclarationBlock({ pointerEvents: 'auto' }, important)\n rules.push(`${selector}>*${block}`)\n }\n }\n const block = createDeclarationBlock({ pointerEvents: finalValue }, important)\n rules.push(`${selector}${block}`)\n break\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth': {\n if (value === 'none') {\n rules.push(`${selector}::-webkit-scrollbar{display:none}`)\n }\n const block = createDeclarationBlock({ scrollbarWidth: value }, important)\n rules.push(`${selector}${block}`)\n break\n }\n\n default: {\n const block = createDeclarationBlock({ [property]: value }, important)\n rules.push(`${selector}${block}`)\n break\n }\n }\n\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n if (pseudo?.name === 'hover') {\n rules = rules.map((r) => `@media not all and (hover: none) { ${r} }`)\n }\n\n return rules\n}\n\nexport function expandStyle(key: string, value: any) {\n if (key === 'flex') {\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n if (value <= -1) {\n return [\n ['flexGrow', 0],\n ['flexShrink', 1],\n ['flexBasis', 'auto'],\n ]\n }\n // normalizing to better align with native\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (value >= 0) {\n return [\n ['flexGrow', value],\n ['flexShrink', 1],\n ]\n }\n return\n }\n\n // web only\n switch (key) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor': {\n break\n }\n\n case 'aspectRatio': {\n return [[key, value.toString()]]\n }\n\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n case 'backgroundClip': {\n if (value === 'text') {\n return [\n ['backgroundClip', value],\n ['WebkitBackgroundClip', value],\n ]\n }\n break\n }\n\n case 'textAlignVertical': {\n return [['verticalAlign', value === 'center' ? 'middle' : value]]\n }\n\n case 'textDecorationLine': {\n return [['textDecorationLine', value]]\n }\n\n case 'transform': {\n if (Array.isArray(value)) {\n return [[key, value.map(mapTransform).join(' ')]]\n }\n break\n }\n\n case 'writingDirection': {\n return [['direction', value]]\n }\n }\n\n const longKey = STYLE_SHORT_FORM_EXPANSIONS[key]\n if (longKey) {\n return longKey.map((key) => {\n return [key, value]\n })\n } else {\n if (isWeb && Array.isArray(value)) {\n return [[key, value.join(',')]]\n }\n }\n}\n\nconst cache = {\n get(property, value) {\n if (\n cache[property] != null &&\n cache[property].hasOwnProperty(value) &&\n cache[property][value] != null\n ) {\n return cache[property][value]\n }\n },\n set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {}\n }\n return (cache[property][value] = object)\n },\n}\n\nfunction stringifyValueWithProperty(value: Value, property?: string): string {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n return normalizeValueWithProperty(value, property)\n}\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nconst mapTransform = (transform) => {\n const type = Object.keys(transform)[0]\n const value = transform[type]\n if (type === 'matrix' || type === 'matrix3d') {\n return `${type}(${value.join(',')})`\n } else {\n const normalizedValue = normalizeValueWithProperty(value, type)\n return `${type}(${normalizedValue})`\n }\n}\n\nconst colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true,\n}\n\nfunction normalizeValueWithProperty(value: any, property?: string): any {\n if (process.env.TAMAGUI_TARGET === 'web') {\n const shouldCoerceToPx =\n typeof value === 'number' &&\n (property === undefined || property === null || !unitlessNumbers[property])\n if (shouldCoerceToPx) {\n return `${value}px`\n }\n }\n if (property && colorProps[property]) {\n return normalizeColor(value)\n }\n return value\n}\n\nconst normalizeColor = (color?: number | string, opacity = 1): void | string => {\n if (color == null || color == undefined) {\n return\n }\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (typeof color === 'string' && isWebColor(color)) {\n return color\n }\n }\n const colorInt = processColor(color)\n if (colorInt != null) {\n const r = (colorInt >> 16) & 255\n const g = (colorInt >> 8) & 255\n const b = colorInt & 255\n const a = ((colorInt >> 24) & 255) / 255\n const alpha = (a * opacity).toFixed(2)\n return `rgba(${r},${g},${b},${alpha})`\n }\n return `${color}`\n}\n\nconst webColors = {\n currentColor: true,\n currentcolor: true,\n transparent: true,\n inherit: true,\n}\n\nconst isWebColor = (color: string): boolean => webColors[color] || color.indexOf('var(') === 0\n\nconst processColor = (color?: number | string): number | undefined | null => {\n if (color === undefined || color === null) {\n return color\n }\n let intColor = normalizeCSSColor(color)\n if (intColor === undefined || intColor === null) {\n return undefined\n }\n return ((+intColor << 24) | (+intColor >>> 8)) >>> 0\n}\n\nconst unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFleGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n shadowOpacity: true,\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nconst resolveShadowValue = (style: ViewStyle): void | string => {\n const { shadowColor, shadowOffset, shadowOpacity, shadowRadius } = style\n if (shadowRadius === undefined) {\n return\n }\n const { height, width } = shadowOffset || defaultOffset\n const offsetX = normalizeValueWithProperty(width)\n const offsetY = normalizeValueWithProperty(height)\n const blurRadius = normalizeValueWithProperty(shadowRadius || 0)\n const color = normalizeColor(String(shadowColor || 'black'), shadowOpacity)\n return `${offsetX} ${offsetY} ${blurRadius} ${color}`\n}\n\nfunction boxShadowReducer(resolvedStyle: any, style: any) {\n const { boxShadow } = style\n const shadow = resolveShadowValue(style)\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? `${boxShadow}, ${shadow}` : shadow\n }\n}\n\nconst defaultOffset = { height: 0, width: 0 }\n\nfunction textShadowReducer(resolvedStyle: any, style: any) {\n const { textShadowColor, textShadowOffset, textShadowRadius } = style\n const { height, width } = textShadowOffset || defaultOffset\n const radius = textShadowRadius || 0\n const offsetX = normalizeValueWithProperty(width)\n const offsetY = normalizeValueWithProperty(height)\n const blurRadius = normalizeValueWithProperty(radius)\n const color = normalizeValueWithProperty(textShadowColor, 'textShadowColor')\n\n if (\n color &&\n (height !== 0 || width !== 0 || radius !== 0) &&\n offsetX != null &&\n offsetY != null &&\n blurRadius != null\n ) {\n resolvedStyle.textShadow = `${offsetX} ${offsetY} ${blurRadius} ${color}`\n }\n}\n\nconst STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: [\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomRightRadius',\n 'borderBottomLeftRadius',\n ],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom'],\n ...(isWeb && {\n // react-native doesn't support X / Y\n overflow: ['overflowX', 'overflowY'],\n }),\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -36,6 +36,7 @@ __export(getSplitStyles_exports, {
|
|
|
36
36
|
getSubStyle: () => getSubStyle,
|
|
37
37
|
insertSplitStyles: () => insertSplitStyles,
|
|
38
38
|
normalizeStyleObject: () => normalizeStyleObject,
|
|
39
|
+
pseudoCNInverse: () => pseudoCNInverse,
|
|
39
40
|
useSplitStyles: () => useSplitStyles
|
|
40
41
|
});
|
|
41
42
|
module.exports = __toCommonJS(getSplitStyles_exports);
|
|
@@ -49,6 +50,7 @@ var import_fixNativeShadow = require("./fixNativeShadow");
|
|
|
49
50
|
var import_getStylesAtomic = require("./getStylesAtomic");
|
|
50
51
|
var import_insertStyleRule = require("./insertStyleRule");
|
|
51
52
|
var import_mergeTransform = require("./mergeTransform");
|
|
53
|
+
var import_pseudos = require("./pseudos");
|
|
52
54
|
const skipProps = __spreadValues({
|
|
53
55
|
animation: true,
|
|
54
56
|
animateOnly: true,
|
|
@@ -68,6 +70,11 @@ const skipProps = __spreadValues({
|
|
|
68
70
|
boxShadow: true
|
|
69
71
|
});
|
|
70
72
|
let conf;
|
|
73
|
+
const pseudoCNInverse = {
|
|
74
|
+
hover: "hoverStyle",
|
|
75
|
+
focus: "focusStyle",
|
|
76
|
+
press: "pressStyle"
|
|
77
|
+
};
|
|
71
78
|
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames, debug) => {
|
|
72
79
|
var _a;
|
|
73
80
|
conf = conf || (0, import_conf.getConfig)();
|
|
@@ -77,6 +84,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
77
84
|
const medias = {};
|
|
78
85
|
const usedKeys = /* @__PURE__ */ new Set();
|
|
79
86
|
let style = {};
|
|
87
|
+
if (state.hasTextAncestor) {
|
|
88
|
+
style.display = "inline-flex";
|
|
89
|
+
}
|
|
80
90
|
let classNames = {};
|
|
81
91
|
let transforms = null;
|
|
82
92
|
const rulesToInsert = [];
|
|
@@ -123,6 +133,7 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
123
133
|
}
|
|
124
134
|
__name(mergeClassName, "mergeClassName");
|
|
125
135
|
const propKeys = Object.keys(props);
|
|
136
|
+
const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
|
|
126
137
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
127
138
|
console.log("propKeys", propKeys);
|
|
128
139
|
}
|
|
@@ -162,18 +173,18 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
162
173
|
}
|
|
163
174
|
for (const cn of valInit.split(" ")) {
|
|
164
175
|
if (cn[0] === "_") {
|
|
165
|
-
const [shorthand,
|
|
166
|
-
const isMedia2 =
|
|
167
|
-
const isPseudo2 =
|
|
176
|
+
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
177
|
+
const isMedia2 = mediaOrPseudo[0] === "_";
|
|
178
|
+
const isPseudo2 = mediaOrPseudo[0] === "0";
|
|
168
179
|
const isMediaOrPseudo2 = isMedia2 || isPseudo2;
|
|
169
180
|
let fullKey = conf.shorthands[shorthand];
|
|
170
181
|
if (isMedia2) {
|
|
171
|
-
let mediaShortKey =
|
|
182
|
+
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
172
183
|
mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
|
|
173
|
-
fullKey +=
|
|
184
|
+
fullKey += `_${mediaShortKey}`;
|
|
174
185
|
} else if (isPseudo2) {
|
|
175
|
-
const pseudoShortKey =
|
|
176
|
-
fullKey +=
|
|
186
|
+
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
187
|
+
fullKey += `_${pseudoShortKey}`;
|
|
177
188
|
}
|
|
178
189
|
usedKeys.add(fullKey);
|
|
179
190
|
mergeClassName(fullKey, cn, isMediaOrPseudo2);
|
|
@@ -187,7 +198,7 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
187
198
|
}
|
|
188
199
|
continue;
|
|
189
200
|
}
|
|
190
|
-
if (
|
|
201
|
+
if (valInit && valInit[0] === "_") {
|
|
191
202
|
usedKeys.add(keyInit);
|
|
192
203
|
mergeClassName(keyInit, valInit);
|
|
193
204
|
continue;
|
|
@@ -237,10 +248,10 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
237
248
|
}
|
|
238
249
|
pseudos[key] = pseudos[key] || {};
|
|
239
250
|
pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
|
|
240
|
-
if (
|
|
251
|
+
if (shouldDoClasses) {
|
|
241
252
|
const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
|
|
242
253
|
for (const style2 of pseudoStyles) {
|
|
243
|
-
const fullKey = `${style2.property}
|
|
254
|
+
const fullKey = `${style2.property}_${import_pseudos.pseudos[key].name}`;
|
|
244
255
|
if (!usedKeys.has(fullKey)) {
|
|
245
256
|
usedKeys.add(fullKey);
|
|
246
257
|
addStyle(style2.identifier, style2.rules.join(";"));
|
|
@@ -260,7 +271,6 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
260
271
|
continue;
|
|
261
272
|
}
|
|
262
273
|
const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
|
|
263
|
-
const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
|
|
264
274
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
265
275
|
console.log(" \xBB getSplitStyles mediaStyle", { mediaKey, mediaStyle, props, shouldDoClasses });
|
|
266
276
|
}
|
|
@@ -268,7 +278,7 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
268
278
|
const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
|
|
269
279
|
for (const style2 of mediaStyles) {
|
|
270
280
|
const out = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
|
|
271
|
-
const fullKey = `${style2.property}
|
|
281
|
+
const fullKey = `${style2.property}_${mediaKeyShort}`;
|
|
272
282
|
if (!usedKeys.has(fullKey)) {
|
|
273
283
|
usedKeys.add(fullKey);
|
|
274
284
|
addStyle(out.identifier, out.styleRule);
|
|
@@ -294,15 +304,10 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
294
304
|
usedKeys.add(key);
|
|
295
305
|
if (val && val[0] === "_") {
|
|
296
306
|
classNames[key] = val;
|
|
307
|
+
} else if (key in import_helpers.stylePropsTransform) {
|
|
308
|
+
(0, import_mergeTransform.mergeTransform)(style, key, val, true);
|
|
297
309
|
} else {
|
|
298
|
-
|
|
299
|
-
if (process.env.NODE_ENV === "development" && debug) {
|
|
300
|
-
console.log(" > mergeTransform", key, val);
|
|
301
|
-
}
|
|
302
|
-
(0, import_mergeTransform.mergeTransform)(style, key, val, true);
|
|
303
|
-
} else {
|
|
304
|
-
style[key] = val;
|
|
305
|
-
}
|
|
310
|
+
style[key] = val;
|
|
306
311
|
}
|
|
307
312
|
continue;
|
|
308
313
|
}
|
|
@@ -317,7 +322,7 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
317
322
|
if (defaultClassNames) {
|
|
318
323
|
classNames = __spreadValues(__spreadValues({}, defaultClassNames), classNames);
|
|
319
324
|
}
|
|
320
|
-
if (
|
|
325
|
+
if (shouldDoClasses) {
|
|
321
326
|
const atomic = (0, import_getStylesAtomic.getStylesAtomic)(style);
|
|
322
327
|
for (const atomicStyle of atomic) {
|
|
323
328
|
const key = atomicStyle.property;
|
|
@@ -406,6 +411,7 @@ __name(normalizeStyleObject, "normalizeStyleObject");
|
|
|
406
411
|
getSubStyle,
|
|
407
412
|
insertSplitStyles,
|
|
408
413
|
normalizeStyleObject,
|
|
414
|
+
pseudoCNInverse,
|
|
409
415
|
useSplitStyles
|
|
410
416
|
});
|
|
411
417
|
//# sourceMappingURL=getSplitStyles.js.map
|