Skip to content

Commit cf500ec

Browse files
committed
Update snapshot
1 parent 8928eed commit cf500ec

14 files changed

+111
-108
lines changed

apps/next/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"type": "module",
55
"private": true,
66
"scripts": {
7-
"dev": "next dev --turbopack",
8-
"build": "next build --turbopack",
7+
"dev": "next dev",
8+
"build": "next build",
99
"start": "next start",
1010
"lint": "next lint"
1111
},

libs/css/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ mod tests {
439439
".cls::placeholder"
440440
);
441441
assert_eq!(
442-
merge_selector("cls", Some(&"themeDark".into())),
442+
merge_selector("cls", Some(&"theme-dark".into())),
443443
":root[data-theme=dark] .cls"
444444
);
445445
assert_eq!(
@@ -462,7 +462,7 @@ mod tests {
462462
);
463463

464464
assert_eq!(
465-
merge_selector("cls", Some(&["themeDark", "hover"].into()),),
465+
merge_selector("cls", Some(&["theme-dark", "hover"].into()),),
466466
":root[data-theme=dark] .cls:hover"
467467
);
468468
assert_eq!(

libs/css/src/style_selector.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ use std::{
55

66
use serde::{Deserialize, Serialize};
77

8-
use crate::{constant::SELECTOR_ORDER_MAP, selector_separator::SelectorSeparator, to_kebab_case};
8+
use crate::{
9+
constant::SELECTOR_ORDER_MAP, selector_separator::SelectorSeparator, to_kebab_case,
10+
utils::to_camel_case,
11+
};
912

1013
#[derive(Debug, PartialEq, Clone, Hash, Eq, Serialize, Deserialize)]
1114
pub enum StyleSelector {
@@ -26,6 +29,7 @@ fn optimize_selector_string(selector: &str) -> String {
2629
.replace(", ", ",")
2730
}
2831
pub fn optimize_selector(selector: StyleSelector) -> StyleSelector {
32+
println!("optimize_selector: {:?}", selector);
2933
match selector {
3034
StyleSelector::Media { query, selector } => StyleSelector::Media {
3135
query: query.to_string(),
@@ -117,28 +121,25 @@ impl Ord for StyleSelector {
117121

118122
impl From<&str> for StyleSelector {
119123
fn from(value: &str) -> Self {
124+
println!("from: {:?}", value);
120125
let value = value
121126
.split_whitespace()
122127
.collect::<Vec<_>>()
123128
.join(" ")
124129
.replace(", ", ",");
125130
if value.contains("&") {
126131
StyleSelector::Selector(value.to_string())
127-
} else if let Some(s) = value.strip_prefix("group") {
132+
} else if let Some(s) = value.strip_prefix("group-") {
128133
let post = to_kebab_case(s);
129134
StyleSelector::Selector(format!(
130135
"{}{}{} &",
131136
"*[role=group]",
132137
SelectorSeparator::from(post.as_str()),
133138
post
134139
))
135-
} else if let Some(s) = value.strip_prefix("theme") {
140+
} else if let Some(s) = value.strip_prefix("theme-") {
136141
// first character should lower case
137-
StyleSelector::Selector(format!(
138-
":root[data-theme={}{}] &",
139-
s.chars().next().unwrap().to_ascii_lowercase(),
140-
&s[1..]
141-
))
142+
StyleSelector::Selector(format!(":root[data-theme={}] &", to_camel_case(s)))
142143
} else if value == "print" {
143144
StyleSelector::Media {
144145
query: "print".to_string(),
@@ -236,11 +237,11 @@ mod tests {
236237
#[rstest]
237238
#[case("hover", StyleSelector::Selector("&:hover".to_string()))]
238239
#[case("focusVisible", StyleSelector::Selector("&:focus-visible".to_string()))]
239-
#[case("groupHover", StyleSelector::Selector("*[role=group]:hover &".to_string()))]
240-
#[case("groupFocusVisible", StyleSelector::Selector("*[role=group]:focus-visible &".to_string()))]
241-
#[case("group1", StyleSelector::Selector("*[role=group]:1 &".to_string()))]
242-
#[case(["themeDark", "placeholder"], StyleSelector::Selector(":root[data-theme=dark] &::placeholder".to_string()))]
243-
#[case("themeLight", StyleSelector::Selector(":root[data-theme=light] &".to_string()))]
240+
#[case("group-hover", StyleSelector::Selector("*[role=group]:hover &".to_string()))]
241+
#[case("group-focus-visible", StyleSelector::Selector("*[role=group]:focus-visible &".to_string()))]
242+
#[case("group-1", StyleSelector::Selector("*[role=group]:1 &".to_string()))]
243+
#[case(["theme-dark", "placeholder"], StyleSelector::Selector(":root[data-theme=dark] &::placeholder".to_string()))]
244+
#[case("theme-light", StyleSelector::Selector(":root[data-theme=light] &".to_string()))]
244245
#[case("*[aria=disabled='true'] &:hover", StyleSelector::Selector("*[aria=disabled='true'] &:hover".to_string()))]
245246
fn test_style_selector(
246247
#[case] input: impl Into<StyleSelector>,

libs/extractor/src/extractor/extract_style_from_expression.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use crate::{
1515
};
1616
use css::{
1717
disassemble_property, is_special_property::is_special_property, style_selector::StyleSelector,
18+
utils::to_kebab_case,
1819
};
1920
use oxc_allocator::CloneIn;
2021
use oxc_ast::{
@@ -200,21 +201,23 @@ pub fn extract_style_from_expression<'a>(
200201
if let Some(selector) = selector {
201202
if name.starts_with("_theme") {
202203
StyleSelector::from([
203-
name.replace("_theme", "theme").as_str(),
204+
to_kebab_case(name.replace("_theme", "theme").as_str())
205+
.as_str(),
204206
&selector.to_string(),
205207
])
206208
.to_string()
207209
} else if name.contains("&") {
208-
name.replace("&", &selector.to_string())
210+
to_kebab_case(&name.replace("&", &selector.to_string()))
209211
} else {
210212
StyleSelector::from([
211213
selector.to_string().replace("_", "").as_str(),
212-
&name.replace("_", ""),
214+
&to_kebab_case(&name.replace("_", "")),
213215
])
214216
.to_string()
215217
}
216218
} else {
217-
StyleSelector::from(name.replace("_", "").as_str()).to_string()
219+
StyleSelector::from(to_kebab_case(&name.replace("_", "")).as_str())
220+
.to_string()
218221
}
219222
})
220223
.collect::<Vec<_>>()

libs/extractor/src/snapshots/extractor__tests__group_selector_props.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ToBTreeSet {
1111
level: 0,
1212
selector: Some(
1313
Selector(
14-
"*[role=group]:-hover &",
14+
"*[role=group]:hover &",
1515
),
1616
),
1717
style_order: None,

libs/extractor/src/snapshots/extractor__tests__nested_theme_props.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ToBTreeSet {
1111
level: 0,
1212
selector: Some(
1313
Selector(
14-
":root[data-theme=-dark] &:active",
14+
":root[data-theme=dark] &:active",
1515
),
1616
),
1717
style_order: None,
@@ -24,7 +24,7 @@ ToBTreeSet {
2424
level: 0,
2525
selector: Some(
2626
Selector(
27-
":root[data-theme=-dark] &:active::placeholder",
27+
":root[data-theme=dark] &:active::placeholder",
2828
),
2929
),
3030
style_order: None,
@@ -37,7 +37,7 @@ ToBTreeSet {
3737
level: 0,
3838
selector: Some(
3939
Selector(
40-
":root[data-theme=-dark] &:hover",
40+
":root[data-theme=dark] &:hover",
4141
),
4242
),
4343
style_order: None,

libs/extractor/src/snapshots/extractor__tests__template_literal_props-6.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ToBTreeSet {
1111
level: 0,
1212
selector: Some(
1313
Selector(
14-
":root[data-theme=-dark] &:hover",
14+
":root[data-theme=dark] &:hover",
1515
),
1616
),
1717
style_order: None,

libs/extractor/src/snapshots/extractor__tests__theme_props.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ToBTreeSet {
1111
level: 0,
1212
selector: Some(
1313
Selector(
14-
":root[data-theme=-light] &",
14+
":root[data-theme=light] &",
1515
),
1616
),
1717
style_order: None,
@@ -24,7 +24,7 @@ ToBTreeSet {
2424
level: 0,
2525
selector: Some(
2626
Selector(
27-
":root[data-theme=-dark] &",
27+
":root[data-theme=dark] &",
2828
),
2929
),
3030
style_order: None,

libs/extractor/src/snapshots/extractor__tests__theme_selector-2.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ToBTreeSet {
1111
level: 0,
1212
selector: Some(
1313
Selector(
14-
":root[data-theme=-dark] &:hover",
14+
":root[data-theme=dark] &:hover",
1515
),
1616
),
1717
style_order: None,

libs/extractor/src/snapshots/extractor__tests__theme_selector-3.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ToBTreeSet {
2424
level: 0,
2525
selector: Some(
2626
Selector(
27-
":root[data-theme=-dark] & :is(svg,img)",
27+
":root[data-theme=dark] & :is(svg,img)",
2828
),
2929
),
3030
style_order: None,
@@ -37,7 +37,7 @@ ToBTreeSet {
3737
level: 0,
3838
selector: Some(
3939
Selector(
40-
":root[data-theme=-dark] & :is(svg,img)",
40+
":root[data-theme=dark] & :is(svg,img)",
4141
),
4242
),
4343
style_order: None,
@@ -50,7 +50,7 @@ ToBTreeSet {
5050
level: 0,
5151
selector: Some(
5252
Selector(
53-
":root[data-theme=-dark] & :is(svg,img)",
53+
":root[data-theme=dark] & :is(svg,img)",
5454
),
5555
),
5656
style_order: None,

0 commit comments

Comments
 (0)