Skip to content

Commit 27c414d

Browse files
committed
Implement style order
1 parent 4a1dd61 commit 27c414d

File tree

143 files changed

+1407
-651
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+1407
-651
lines changed

.changeset/tidy-parents-buy.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@devup-ui/wasm": patch
3+
"@devup-ui/react": patch
4+
---
5+
6+
Implement style order

Cargo.lock

Lines changed: 43 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindings/devup-ui-wasm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ css = { path = "../../libs/css" }
2121
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
2222
# code size when deploying.
2323
console_error_panic_hook = { version = "0.1.7", optional = true }
24-
once_cell = "1.20.2"
24+
once_cell = "1.20.3"
2525
js-sys = "0.3.76"
2626
serde_json = "1.0.138"
2727
serde-wasm-bindgen = "0.6.5"

bindings/devup-ui-wasm/src/lib.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ impl Output {
5353
st.level(),
5454
st.value(),
5555
st.selector(),
56-
st.basic(),
56+
st.style_order(),
5757
) {
5858
collected = true;
5959
}
@@ -65,7 +65,7 @@ impl Output {
6565
dy.level(),
6666
&format!("var({})", variable.unwrap()),
6767
dy.selector(),
68-
false,
68+
dy.style_order(),
6969
) {
7070
collected = true;
7171
}
@@ -81,6 +81,9 @@ impl Output {
8181
if !collected {
8282
return None;
8383
}
84+
85+
log_str(&format!("css: {:?}", sheet.properties));
86+
log_str(&sheet.create_css());
8487
Some(sheet.create_css())
8588
}
8689
}

libs/css/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7-
once_cell = "1.20.2"
7+
once_cell = "1.20.3"
88
serial_test = "3.2.0"
99
serde = { version = "1.0.217", features = ["derive"] }
1010
regex = "1.11.1"

libs/css/src/lib.rs

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -325,13 +325,15 @@ pub fn sheet_to_classname(
325325
level: u8,
326326
value: Option<&str>,
327327
selector: Option<&str>,
328+
style_order: Option<u8>,
328329
) -> String {
329330
let key = format!(
330-
"{}-{}-{}-{}",
331+
"{}-{}-{}-{}-{}",
331332
property.trim(),
332333
level,
333334
F_SPACE_RE.replace_all(value.unwrap_or(""), ",").trim(),
334-
selector.unwrap_or("").trim()
335+
selector.unwrap_or("").trim(),
336+
style_order.unwrap_or(255)
335337
);
336338
let mut map = GLOBAL_CLASS_MAP.lock().unwrap();
337339
map.get(&key).map(|v| format!("d{}", v)).unwrap_or_else(|| {
@@ -387,40 +389,53 @@ mod tests {
387389
#[serial]
388390
fn test_sheet_to_classname() {
389391
reset_class_map();
390-
assert_eq!(sheet_to_classname("background", 0, None, None), "d0");
392+
assert_eq!(sheet_to_classname("background", 0, None, None, None), "d0");
391393
assert_eq!(
392-
sheet_to_classname("background", 0, Some("hover"), None),
394+
sheet_to_classname("background", 0, Some("hover"), None, None),
393395
"d1"
394396
);
395-
assert_eq!(sheet_to_classname("background", 1, None, None), "d2");
397+
assert_eq!(sheet_to_classname("background", 1, None, None, None), "d2");
396398
assert_eq!(
397-
sheet_to_classname("background", 1, Some("hover"), None),
399+
sheet_to_classname("background", 1, Some("hover"), None, None),
398400
"d3"
399401
);
400402

401403
reset_class_map();
402-
assert_eq!(sheet_to_classname("background", 0, None, None), "d0");
403-
assert_eq!(sheet_to_classname("background", 0, None, None), "d0");
404-
assert_eq!(sheet_to_classname("background", 0, Some("red"), None), "d1");
405-
assert_eq!(sheet_to_classname("background", 0, Some("red"), None), "d1");
404+
assert_eq!(sheet_to_classname("background", 0, None, None, None), "d0");
405+
assert_eq!(sheet_to_classname("background", 0, None, None, None), "d0");
406406
assert_eq!(
407-
sheet_to_classname(" background ", 0, Some(" red "), None),
407+
sheet_to_classname("background", 0, Some("red"), None, None),
408+
"d1"
409+
);
410+
assert_eq!(
411+
sheet_to_classname("background", 0, Some("red"), None, None),
412+
"d1"
413+
);
414+
assert_eq!(
415+
sheet_to_classname(" background ", 0, Some(" red "), None, None),
408416
"d1"
409417
);
410418

411419
assert_eq!(
412-
sheet_to_classname("background", 0, Some("rgba(255, 0, 0, 0.5)"), None),
420+
sheet_to_classname("background", 0, Some("rgba(255, 0, 0, 0.5)"), None, None),
413421
"d2"
414422
);
415423
assert_eq!(
416-
sheet_to_classname("background", 0, Some("rgba(255,0,0,0.5)"), None),
424+
sheet_to_classname("background", 0, Some("rgba(255,0,0,0.5)"), None, None),
417425
"d2"
418426
);
419427

420428
{
421429
let map = GLOBAL_CLASS_MAP.lock().unwrap();
422-
assert_eq!(map.get("background-0-rgba(255,0,0,0.5)-"), Some(&2));
430+
assert_eq!(map.get("background-0-rgba(255,0,0,0.5)--255"), Some(&2));
423431
}
432+
433+
reset_class_map();
434+
assert_eq!(sheet_to_classname("background", 0, None, None, None), "d0");
435+
assert_eq!(
436+
sheet_to_classname("background", 0, None, None, Some(1)),
437+
"d1"
438+
);
424439
}
425440

426441
#[test]

0 commit comments

Comments
 (0)