diff --git a/.changeset/dull-doors-nail.md b/.changeset/dull-doors-nail.md new file mode 100644 index 00000000..277e7e5d --- /dev/null +++ b/.changeset/dull-doors-nail.md @@ -0,0 +1,5 @@ +--- +"@devup-ui/wasm": patch +--- + +Support static member expression diff --git a/libs/extractor/src/lib.rs b/libs/extractor/src/lib.rs index 8e545ed8..17e004f1 100644 --- a/libs/extractor/src/lib.rs +++ b/libs/extractor/src/lib.rs @@ -505,6 +505,32 @@ mod tests { "test.tsx", r#"import { Box } from "@devup-ui/core"; ; +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap()); + + reset_class_map(); + assert_debug_snapshot!(extract( + "test.tsx", + r#"import { Box } from "@devup-ui/core"; +; +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap()); + + reset_class_map(); + assert_debug_snapshot!(extract( + "test.tsx", + r#"import { Box } from "@devup-ui/core"; +; "#, ExtractOption { package: "@devup-ui/core".to_string(), diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-3.snap b/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-3.snap new file mode 100644 index 00000000..87fe2938 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-3.snap @@ -0,0 +1,18 @@ +--- +source: libs/extractor/src/lib.rs +expression: "extract(\"test.tsx\",\nr#\"import { Box } from \"@devup-ui/core\";\n;\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" +--- +ExtractOutput { + styles: [ + Dynamic( + ExtractDynamicStyle { + property: "background", + level: 0, + identifier: "data.buttonBgColor", + selector: None, + style_order: None, + }, + ), + ], + code: "import \"@devup-ui/core/devup-ui.css\";\n
;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-4.snap b/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-4.snap new file mode 100644 index 00000000..0ffbbbfb --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props-4.snap @@ -0,0 +1,18 @@ +--- +source: libs/extractor/src/lib.rs +expression: "extract(\"test.tsx\",\nr#\"import { Box } from \"@devup-ui/core\";\n;\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" +--- +ExtractOutput { + styles: [ + Dynamic( + ExtractDynamicStyle { + property: "background", + level: 0, + identifier: "data.a.b.buttonBgColor", + selector: None, + style_order: None, + }, + ), + ], + code: "import \"@devup-ui/core/devup-ui.css\";\n
;\n", +} diff --git a/libs/extractor/src/style_extractor.rs b/libs/extractor/src/style_extractor.rs index 454255e6..b7dea643 100644 --- a/libs/extractor/src/style_extractor.rs +++ b/libs/extractor/src/style_extractor.rs @@ -329,6 +329,7 @@ pub fn extract_style_from_expression<'a>( match expression { Expression::UnaryExpression(_) | Expression::BinaryExpression(_) + | Expression::StaticMemberExpression(_) | Expression::CallExpression(_) => ExtractResult::Extract { styles: Some(vec![ExtractStyleProp::Static(Dynamic( ExtractDynamicStyle::new(