@tamagui/static 3.0.0-beta.806.1 → 3.0.0-beta.831.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/compilerHost.cjs +26 -16
- package/dist/cjs/domStructuralPass.cjs +4 -4
- package/dist/cjs/staticEvaluationIgnoredModules.cjs +1 -1
- package/dist/esm/compilerHost.mjs +26 -16
- package/dist/esm/compilerHost.mjs.map +1 -1
- package/dist/esm/domStructuralPass.mjs +4 -4
- package/dist/esm/domStructuralPass.mjs.map +1 -1
- package/dist/esm/staticEvaluationIgnoredModules.mjs +1 -1
- package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -1
- package/package.json +17 -17
- package/src/compilerHost.ts +27 -35
- package/src/domStructuralPass.ts +4 -4
- package/src/staticEvaluationIgnoredModules.ts +1 -1
- package/types/compilerHost.d.ts.map +1 -1
|
@@ -551,8 +551,8 @@ function nativeDOMProps(input, tag) {
|
|
|
551
551
|
const consume = (entry) => consumed.push(entry);
|
|
552
552
|
for (const entry of entries) {
|
|
553
553
|
const value = entrySource(input, entry);
|
|
554
|
-
const attribute = (
|
|
555
|
-
const event =
|
|
554
|
+
const attribute = (entry.name in import_dom.ATTRIBUTES ? import_dom.ATTRIBUTES[entry.name] : void 0) ?? (entry.name.startsWith("data-") ? import_dom.ATTRIBUTES["data-*"] : void 0);
|
|
555
|
+
const event = entry.name in import_dom.EVENTS ? import_dom.EVENTS[entry.name] : void 0;
|
|
556
556
|
if (event) {
|
|
557
557
|
if (event.native === "none") {
|
|
558
558
|
return {
|
|
@@ -785,7 +785,20 @@ function createTamaguiCompilerHost(options) {
|
|
|
785
785
|
};
|
|
786
786
|
const modulesById = new Map(options.componentModules.map((module2) => [module2.resolvedId, module2.moduleName]));
|
|
787
787
|
const componentsByModule = new Map(options.components.map((component) => [component.moduleName, component]));
|
|
788
|
-
const
|
|
788
|
+
const normalizedStyleConfigs = /* @__PURE__ */ new WeakMap();
|
|
789
|
+
const normalizeStaticConfig = (staticConfig) => {
|
|
790
|
+
if (!staticConfig.styleFrontend) return staticConfig;
|
|
791
|
+
const normalized = core.getStyleStaticConfig(staticConfig, options.tamaguiConfig);
|
|
792
|
+
const result = {
|
|
793
|
+
...staticConfig,
|
|
794
|
+
baseStyle: normalized.baseStyle,
|
|
795
|
+
defaultProps: normalized.defaultProps,
|
|
796
|
+
variants: normalized.variants,
|
|
797
|
+
passthroughClassName: normalized.passthroughClassName
|
|
798
|
+
};
|
|
799
|
+
normalizedStyleConfigs.set(result, normalized);
|
|
800
|
+
return result;
|
|
801
|
+
};
|
|
789
802
|
const directStaticConfig = (element) => {
|
|
790
803
|
const identity = element.component.provenance;
|
|
791
804
|
if (!identity) return null;
|
|
@@ -801,7 +814,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
801
814
|
const domStaticConfig = (element) => {
|
|
802
815
|
const identity = element.component.provenance;
|
|
803
816
|
const tag = element.component.name;
|
|
804
|
-
if (identity?.importedName !== "html" || !DOM_FRONTENDS.has(identity.specifier) || !
|
|
817
|
+
if (identity?.importedName !== "html" || !DOM_FRONTENDS.has(identity.specifier) || !(tag in import_dom.TAGS)) {
|
|
805
818
|
return null;
|
|
806
819
|
}
|
|
807
820
|
const row = import_dom.TAGS[tag];
|
|
@@ -850,7 +863,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
850
863
|
bailouts: []
|
|
851
864
|
});
|
|
852
865
|
if (!base || !staticObject(definition.options.value)) return null;
|
|
853
|
-
const { variants, defaultVariants,
|
|
866
|
+
const { variants, defaultVariants, displayName, context, contextProps, ...defaultProps } = definition.options.value;
|
|
854
867
|
const baseClassName = definition.baseClassName?.kind === "static" && typeof definition.baseClassName.value === "string" ? definition.baseClassName.value : void 0;
|
|
855
868
|
return {
|
|
856
869
|
key: componentKey(definition.id, definition.name),
|
|
@@ -861,7 +874,6 @@ function createTamaguiCompilerHost(options) {
|
|
|
861
874
|
...base.staticConfig.variants,
|
|
862
875
|
...variants
|
|
863
876
|
},
|
|
864
|
-
compoundVariants: [...base.staticConfig.compoundVariants ?? [], ...compoundVariants ?? []],
|
|
865
877
|
defaultProps: {
|
|
866
878
|
...base.staticConfig.defaultProps,
|
|
867
879
|
...defaultProps,
|
|
@@ -878,14 +890,14 @@ function createTamaguiCompilerHost(options) {
|
|
|
878
890
|
const dom = domStaticConfig(element);
|
|
879
891
|
const resolved = dom ?? styledStaticConfig(styledDefinition) ?? directStaticConfig(element);
|
|
880
892
|
if (!resolved) return null;
|
|
881
|
-
const defaultProps =
|
|
893
|
+
const defaultProps = resolved.staticConfig.defaultProps ?? {};
|
|
882
894
|
return {
|
|
883
895
|
key: resolved.key,
|
|
884
896
|
canFlatten: resolved.staticConfig.acceptsClassName !== false && !resolved.staticConfig.neverFlatten && !resolved.staticConfig.context,
|
|
885
897
|
staticConfig: resolved.staticConfig,
|
|
886
898
|
displayName: resolved.displayName,
|
|
887
899
|
...dom && { domTag: dom.tag },
|
|
888
|
-
partialRuntimeSafe: !dom && !styledDefinition && Object.keys(defaultProps).length === 0 && !resolved.staticConfig.defaultVariants && !resolved.staticConfig.baseClassName && !resolved.staticConfig.baseStyle
|
|
900
|
+
partialRuntimeSafe: !dom && !styledDefinition && Object.keys(defaultProps).length === 0 && !resolved.staticConfig.defaultVariants && !resolved.staticConfig.baseClassName && !resolved.staticConfig.baseStyle
|
|
889
901
|
};
|
|
890
902
|
};
|
|
891
903
|
const isStyleProp = (name, component) => {
|
|
@@ -928,13 +940,12 @@ function createTamaguiCompilerHost(options) {
|
|
|
928
940
|
}
|
|
929
941
|
process.env.TAMAGUI_TARGET = platform;
|
|
930
942
|
try {
|
|
931
|
-
core.prepareStyleStaticConfig(staticConfig);
|
|
932
943
|
return core.getSplitStyles(props, staticConfig, theme, firstThemeName, componentState, {
|
|
933
944
|
resolveValues: platform === "native" ? "except-theme" : "variable",
|
|
934
945
|
noClass: platform === "native",
|
|
935
946
|
isAnimated: false,
|
|
936
947
|
displayName
|
|
937
|
-
}, void 0, void 0, void 0, void 0, void 0, void 0, animationDriver);
|
|
948
|
+
}, void 0, void 0, void 0, void 0, void 0, void 0, animationDriver, normalizedStyleConfigs.get(staticConfig));
|
|
938
949
|
} finally {
|
|
939
950
|
if (previousStatic === void 0) delete process.env.IS_STATIC;
|
|
940
951
|
else process.env.IS_STATIC = previousStatic;
|
|
@@ -947,7 +958,6 @@ function createTamaguiCompilerHost(options) {
|
|
|
947
958
|
baseStyle: void 0,
|
|
948
959
|
defaultProps: {},
|
|
949
960
|
defaultVariants: void 0,
|
|
950
|
-
compoundVariants: [],
|
|
951
961
|
variants: {}
|
|
952
962
|
});
|
|
953
963
|
const styleOwners = (name, value, staticConfig) => {
|
|
@@ -1084,7 +1094,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1084
1094
|
}
|
|
1085
1095
|
}
|
|
1086
1096
|
const disableOptimizationEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "disableOptimization");
|
|
1087
|
-
if (disableOptimizationEntry ||
|
|
1097
|
+
if (disableOptimizationEntry || "disableOptimization" in props) {
|
|
1088
1098
|
return bailout(input, "local/unsupported-target", "disableOptimization keeps the component on the runtime path", disableOptimizationEntry?.span);
|
|
1089
1099
|
}
|
|
1090
1100
|
if (component.domTag && props.hidden) props.display = "none";
|
|
@@ -1108,7 +1118,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1108
1118
|
return bailout(input, "local/unsupported-target", `${runtimeEvent} requires Tamagui runtime event mapping`);
|
|
1109
1119
|
}
|
|
1110
1120
|
}
|
|
1111
|
-
const animationDefaultProps =
|
|
1121
|
+
const animationDefaultProps = component.staticConfig.defaultProps ?? {};
|
|
1112
1122
|
const animationProps = core.mergeProps(animationDefaultProps, props);
|
|
1113
1123
|
const animationNames = /* @__PURE__ */ new Set([...input.element.entries.flatMap((entry) => entry.kind === "prop" && runtimeAnimationProps.has(entry.name) ? [entry.name] : []), ...Object.keys(animationProps).filter((name) => runtimeAnimationProps.has(name) && animationProps[name] !== void 0)]);
|
|
1114
1124
|
const animateOnlyEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "animateOnly");
|
|
@@ -1198,7 +1208,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1198
1208
|
});
|
|
1199
1209
|
}
|
|
1200
1210
|
const asChildEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "asChild");
|
|
1201
|
-
if (asChildEntry ||
|
|
1211
|
+
if (asChildEntry || "asChild" in props) {
|
|
1202
1212
|
return bailout(input, "local/unsupported-target", "asChild renders a Slot, not a host view", asChildEntry?.span);
|
|
1203
1213
|
}
|
|
1204
1214
|
if (platform === "native" && ("group" in props || "container" in props || "containerName" in props || "containerType" in props)) {
|
|
@@ -1298,7 +1308,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1298
1308
|
const entry = dynamicStyleEntries[0];
|
|
1299
1309
|
return bailout(input, "local/dynamic-style-value", `Style prop ${entry.kind === "prop" ? entry.name : "unknown"} could not be safely extracted`, entry.span);
|
|
1300
1310
|
}
|
|
1301
|
-
const staticDefaultProps =
|
|
1311
|
+
const staticDefaultProps = component.staticConfig.defaultProps ?? {};
|
|
1302
1312
|
const defaultProps = platform === "web" && !component.staticConfig.isText && options.tamaguiConfig.settings.defaultPosition === "relative" && staticDefaultProps.position === void 0 ? core.mergeProps({ position: "relative" }, staticDefaultProps) : staticDefaultProps;
|
|
1303
1313
|
let completeProps = core.mergeProps(defaultProps, props);
|
|
1304
1314
|
if (platform === "native" && component.domTag && props.display === "flex") {
|
|
@@ -1339,7 +1349,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1339
1349
|
if (platform === "native") {
|
|
1340
1350
|
const isClauseValue = (name, value) => isStyleProp(name, component) && (typeof value === "string" && flatClausePattern.test(value) || isClauseObjectValue(value));
|
|
1341
1351
|
const defaultVariants = component.staticConfig.defaultVariants ?? {};
|
|
1342
|
-
const carriesClause = Object.entries(completeProps).some(([name, value]) => isClauseValue(name, value)) || Object.entries(component.staticConfig.variants ?? {}).some(([variantName, definitions]) => (completeProps[variantName] !== void 0 || defaultVariants[variantName] !== void 0) && staticObject(definitions) && Object.values(definitions).some((definition) => staticObject(definition) && Object.entries(definition).some(([name, value]) => isClauseValue(name, value))))
|
|
1352
|
+
const carriesClause = Object.entries(completeProps).some(([name, value]) => isClauseValue(name, value)) || Object.entries(component.staticConfig.variants ?? {}).some(([variantName, definitions]) => (completeProps[variantName] !== void 0 || defaultVariants[variantName] !== void 0) && staticObject(definitions) && Object.values(definitions).some((definition) => staticObject(definition) && Object.entries(definition).some(([name, value]) => isClauseValue(name, value))));
|
|
1343
1353
|
if (carriesClause) {
|
|
1344
1354
|
return bailout(input, "local/unsupported-target", "Native conditional value programs remain on the runtime path");
|
|
1345
1355
|
}
|
|
@@ -48,11 +48,11 @@ const domStructuralPass = {
|
|
|
48
48
|
const edits = [];
|
|
49
49
|
const diagnostics = [];
|
|
50
50
|
const domElements = module2.elements.filter(isDOMElement);
|
|
51
|
-
const supportedDOMElements = domElements.filter((element) =>
|
|
51
|
+
const supportedDOMElements = domElements.filter((element) => element.component.name in import_dom.TAGS);
|
|
52
52
|
const domBySpan = new Map(supportedDOMElements.map((element) => [`${element.span.start}:${element.span.end}`, element]));
|
|
53
53
|
for (const element of domElements) {
|
|
54
54
|
const tagName = element.component.name;
|
|
55
|
-
if (!
|
|
55
|
+
if (!(tagName in import_dom.TAGS)) {
|
|
56
56
|
diagnostics.push((0, import_compiler_core.localBailout)("local/unsupported-target", element.component.span, `html.${element.component.name} is not part of the Tamagui DOM contract`));
|
|
57
57
|
continue;
|
|
58
58
|
}
|
|
@@ -63,8 +63,8 @@ const domStructuralPass = {
|
|
|
63
63
|
}
|
|
64
64
|
for (const entry of element.entries) {
|
|
65
65
|
if (entry.kind !== "prop") continue;
|
|
66
|
-
const attribute = (
|
|
67
|
-
const event =
|
|
66
|
+
const attribute = (entry.name in import_dom.ATTRIBUTES ? import_dom.ATTRIBUTES[entry.name] : void 0) ?? (entry.name.startsWith("data-") ? import_dom.ATTRIBUTES["data-*"] : void 0);
|
|
67
|
+
const event = entry.name in import_dom.EVENTS ? import_dom.EVENTS[entry.name] : void 0;
|
|
68
68
|
const row = attribute ?? event;
|
|
69
69
|
if (!row) continue;
|
|
70
70
|
if (!acceptsTag(row.tags, tagName)) {
|
|
@@ -33,7 +33,7 @@ const tamaguiStaticEvaluationModules = Object.freeze({
|
|
|
33
33
|
"react-native-worklets": "react-native-worklets/lib/module/mock.js"
|
|
34
34
|
});
|
|
35
35
|
function getStaticEvaluationModuleReplacement(moduleName) {
|
|
36
|
-
return
|
|
36
|
+
return moduleName in tamaguiStaticEvaluationModules ? tamaguiStaticEvaluationModules[moduleName] : void 0;
|
|
37
37
|
}
|
|
38
38
|
function isIgnoredStaticEvaluationModule(moduleName, userIgnoredModules = []) {
|
|
39
39
|
return getStaticEvaluationModuleReplacement(moduleName) !== void 0 || userIgnoredModules.includes(moduleName);
|
|
@@ -529,8 +529,8 @@ function nativeDOMProps(input, tag) {
|
|
|
529
529
|
const consume = (entry) => consumed.push(entry);
|
|
530
530
|
for (const entry of entries) {
|
|
531
531
|
const value = entrySource(input, entry);
|
|
532
|
-
const attribute = (
|
|
533
|
-
const event =
|
|
532
|
+
const attribute = (entry.name in ATTRIBUTES ? ATTRIBUTES[entry.name] : void 0) ?? (entry.name.startsWith("data-") ? ATTRIBUTES["data-*"] : void 0);
|
|
533
|
+
const event = entry.name in EVENTS ? EVENTS[entry.name] : void 0;
|
|
534
534
|
if (event) {
|
|
535
535
|
if (event.native === "none") {
|
|
536
536
|
return {
|
|
@@ -763,7 +763,20 @@ function createTamaguiCompilerHost(options) {
|
|
|
763
763
|
};
|
|
764
764
|
const modulesById = new Map(options.componentModules.map((module) => [module.resolvedId, module.moduleName]));
|
|
765
765
|
const componentsByModule = new Map(options.components.map((component) => [component.moduleName, component]));
|
|
766
|
-
const
|
|
766
|
+
const normalizedStyleConfigs = /* @__PURE__ */ new WeakMap();
|
|
767
|
+
const normalizeStaticConfig = (staticConfig) => {
|
|
768
|
+
if (!staticConfig.styleFrontend) return staticConfig;
|
|
769
|
+
const normalized = core.getStyleStaticConfig(staticConfig, options.tamaguiConfig);
|
|
770
|
+
const result = {
|
|
771
|
+
...staticConfig,
|
|
772
|
+
baseStyle: normalized.baseStyle,
|
|
773
|
+
defaultProps: normalized.defaultProps,
|
|
774
|
+
variants: normalized.variants,
|
|
775
|
+
passthroughClassName: normalized.passthroughClassName
|
|
776
|
+
};
|
|
777
|
+
normalizedStyleConfigs.set(result, normalized);
|
|
778
|
+
return result;
|
|
779
|
+
};
|
|
767
780
|
const directStaticConfig = (element) => {
|
|
768
781
|
const identity = element.component.provenance;
|
|
769
782
|
if (!identity) return null;
|
|
@@ -779,7 +792,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
779
792
|
const domStaticConfig = (element) => {
|
|
780
793
|
const identity = element.component.provenance;
|
|
781
794
|
const tag = element.component.name;
|
|
782
|
-
if (identity?.importedName !== "html" || !DOM_FRONTENDS.has(identity.specifier) || !
|
|
795
|
+
if (identity?.importedName !== "html" || !DOM_FRONTENDS.has(identity.specifier) || !(tag in TAGS)) {
|
|
783
796
|
return null;
|
|
784
797
|
}
|
|
785
798
|
const row = TAGS[tag];
|
|
@@ -828,7 +841,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
828
841
|
bailouts: []
|
|
829
842
|
});
|
|
830
843
|
if (!base || !staticObject(definition.options.value)) return null;
|
|
831
|
-
const { variants, defaultVariants,
|
|
844
|
+
const { variants, defaultVariants, displayName, context, contextProps, ...defaultProps } = definition.options.value;
|
|
832
845
|
const baseClassName = definition.baseClassName?.kind === "static" && typeof definition.baseClassName.value === "string" ? definition.baseClassName.value : void 0;
|
|
833
846
|
return {
|
|
834
847
|
key: componentKey(definition.id, definition.name),
|
|
@@ -839,7 +852,6 @@ function createTamaguiCompilerHost(options) {
|
|
|
839
852
|
...base.staticConfig.variants,
|
|
840
853
|
...variants
|
|
841
854
|
},
|
|
842
|
-
compoundVariants: [...base.staticConfig.compoundVariants ?? [], ...compoundVariants ?? []],
|
|
843
855
|
defaultProps: {
|
|
844
856
|
...base.staticConfig.defaultProps,
|
|
845
857
|
...defaultProps,
|
|
@@ -856,14 +868,14 @@ function createTamaguiCompilerHost(options) {
|
|
|
856
868
|
const dom = domStaticConfig(element);
|
|
857
869
|
const resolved = dom ?? styledStaticConfig(styledDefinition) ?? directStaticConfig(element);
|
|
858
870
|
if (!resolved) return null;
|
|
859
|
-
const defaultProps =
|
|
871
|
+
const defaultProps = resolved.staticConfig.defaultProps ?? {};
|
|
860
872
|
return {
|
|
861
873
|
key: resolved.key,
|
|
862
874
|
canFlatten: resolved.staticConfig.acceptsClassName !== false && !resolved.staticConfig.neverFlatten && !resolved.staticConfig.context,
|
|
863
875
|
staticConfig: resolved.staticConfig,
|
|
864
876
|
displayName: resolved.displayName,
|
|
865
877
|
...dom && { domTag: dom.tag },
|
|
866
|
-
partialRuntimeSafe: !dom && !styledDefinition && Object.keys(defaultProps).length === 0 && !resolved.staticConfig.defaultVariants && !resolved.staticConfig.baseClassName && !resolved.staticConfig.baseStyle
|
|
878
|
+
partialRuntimeSafe: !dom && !styledDefinition && Object.keys(defaultProps).length === 0 && !resolved.staticConfig.defaultVariants && !resolved.staticConfig.baseClassName && !resolved.staticConfig.baseStyle
|
|
867
879
|
};
|
|
868
880
|
};
|
|
869
881
|
const isStyleProp = (name, component) => {
|
|
@@ -906,13 +918,12 @@ function createTamaguiCompilerHost(options) {
|
|
|
906
918
|
}
|
|
907
919
|
process.env.TAMAGUI_TARGET = platform;
|
|
908
920
|
try {
|
|
909
|
-
core.prepareStyleStaticConfig(staticConfig);
|
|
910
921
|
return core.getSplitStyles(props, staticConfig, theme, firstThemeName, componentState, {
|
|
911
922
|
resolveValues: platform === "native" ? "except-theme" : "variable",
|
|
912
923
|
noClass: platform === "native",
|
|
913
924
|
isAnimated: false,
|
|
914
925
|
displayName
|
|
915
|
-
}, void 0, void 0, void 0, void 0, void 0, void 0, animationDriver);
|
|
926
|
+
}, void 0, void 0, void 0, void 0, void 0, void 0, animationDriver, normalizedStyleConfigs.get(staticConfig));
|
|
916
927
|
} finally {
|
|
917
928
|
if (previousStatic === void 0) delete process.env.IS_STATIC;
|
|
918
929
|
else process.env.IS_STATIC = previousStatic;
|
|
@@ -925,7 +936,6 @@ function createTamaguiCompilerHost(options) {
|
|
|
925
936
|
baseStyle: void 0,
|
|
926
937
|
defaultProps: {},
|
|
927
938
|
defaultVariants: void 0,
|
|
928
|
-
compoundVariants: [],
|
|
929
939
|
variants: {}
|
|
930
940
|
});
|
|
931
941
|
const styleOwners = (name, value, staticConfig) => {
|
|
@@ -1062,7 +1072,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1062
1072
|
}
|
|
1063
1073
|
}
|
|
1064
1074
|
const disableOptimizationEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "disableOptimization");
|
|
1065
|
-
if (disableOptimizationEntry ||
|
|
1075
|
+
if (disableOptimizationEntry || "disableOptimization" in props) {
|
|
1066
1076
|
return bailout(input, "local/unsupported-target", "disableOptimization keeps the component on the runtime path", disableOptimizationEntry?.span);
|
|
1067
1077
|
}
|
|
1068
1078
|
if (component.domTag && props.hidden) props.display = "none";
|
|
@@ -1086,7 +1096,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1086
1096
|
return bailout(input, "local/unsupported-target", `${runtimeEvent} requires Tamagui runtime event mapping`);
|
|
1087
1097
|
}
|
|
1088
1098
|
}
|
|
1089
|
-
const animationDefaultProps =
|
|
1099
|
+
const animationDefaultProps = component.staticConfig.defaultProps ?? {};
|
|
1090
1100
|
const animationProps = core.mergeProps(animationDefaultProps, props);
|
|
1091
1101
|
const animationNames = /* @__PURE__ */ new Set([...input.element.entries.flatMap((entry) => entry.kind === "prop" && runtimeAnimationProps.has(entry.name) ? [entry.name] : []), ...Object.keys(animationProps).filter((name) => runtimeAnimationProps.has(name) && animationProps[name] !== void 0)]);
|
|
1092
1102
|
const animateOnlyEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "animateOnly");
|
|
@@ -1176,7 +1186,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1176
1186
|
});
|
|
1177
1187
|
}
|
|
1178
1188
|
const asChildEntry = input.element.entries.find((entry) => entry.kind === "prop" && entry.name === "asChild");
|
|
1179
|
-
if (asChildEntry ||
|
|
1189
|
+
if (asChildEntry || "asChild" in props) {
|
|
1180
1190
|
return bailout(input, "local/unsupported-target", "asChild renders a Slot, not a host view", asChildEntry?.span);
|
|
1181
1191
|
}
|
|
1182
1192
|
if (platform === "native" && ("group" in props || "container" in props || "containerName" in props || "containerType" in props)) {
|
|
@@ -1276,7 +1286,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1276
1286
|
const entry = dynamicStyleEntries[0];
|
|
1277
1287
|
return bailout(input, "local/dynamic-style-value", `Style prop ${entry.kind === "prop" ? entry.name : "unknown"} could not be safely extracted`, entry.span);
|
|
1278
1288
|
}
|
|
1279
|
-
const staticDefaultProps =
|
|
1289
|
+
const staticDefaultProps = component.staticConfig.defaultProps ?? {};
|
|
1280
1290
|
const defaultProps = platform === "web" && !component.staticConfig.isText && options.tamaguiConfig.settings.defaultPosition === "relative" && staticDefaultProps.position === void 0 ? core.mergeProps({ position: "relative" }, staticDefaultProps) : staticDefaultProps;
|
|
1281
1291
|
let completeProps = core.mergeProps(defaultProps, props);
|
|
1282
1292
|
if (platform === "native" && component.domTag && props.display === "flex") {
|
|
@@ -1317,7 +1327,7 @@ function createTamaguiCompilerHost(options) {
|
|
|
1317
1327
|
if (platform === "native") {
|
|
1318
1328
|
const isClauseValue = (name, value) => isStyleProp(name, component) && (typeof value === "string" && flatClausePattern.test(value) || isClauseObjectValue(value));
|
|
1319
1329
|
const defaultVariants = component.staticConfig.defaultVariants ?? {};
|
|
1320
|
-
const carriesClause = Object.entries(completeProps).some(([name, value]) => isClauseValue(name, value)) || Object.entries(component.staticConfig.variants ?? {}).some(([variantName, definitions]) => (completeProps[variantName] !== void 0 || defaultVariants[variantName] !== void 0) && staticObject(definitions) && Object.values(definitions).some((definition) => staticObject(definition) && Object.entries(definition).some(([name, value]) => isClauseValue(name, value))))
|
|
1330
|
+
const carriesClause = Object.entries(completeProps).some(([name, value]) => isClauseValue(name, value)) || Object.entries(component.staticConfig.variants ?? {}).some(([variantName, definitions]) => (completeProps[variantName] !== void 0 || defaultVariants[variantName] !== void 0) && staticObject(definitions) && Object.values(definitions).some((definition) => staticObject(definition) && Object.entries(definition).some(([name, value]) => isClauseValue(name, value))));
|
|
1321
1331
|
if (carriesClause) {
|
|
1322
1332
|
return bailout(input, "local/unsupported-target", "Native conditional value programs remain on the runtime path");
|
|
1323
1333
|
}
|