diff --git a/.changeset/wet-fans-add.md b/.changeset/wet-fans-add.md new file mode 100644 index 00000000..cc39e914 --- /dev/null +++ b/.changeset/wet-fans-add.md @@ -0,0 +1,6 @@ +--- +"@devup-ui/wasm": patch +"@devup-ui/react": patch +--- + +Impl font-faces to global diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 785b296e..e7332bc8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -41,12 +41,12 @@ jobs: pnpm build pnpm lint # rust coverage issue - echo 'max_width = 1000' > .rustfmt.toml + echo 'max_width = 100000' > .rustfmt.toml echo 'tab_spaces = 4' >> .rustfmt.toml echo 'newline_style = "Unix"' >> .rustfmt.toml - echo 'fn_call_width = 1000' >> .rustfmt.toml + echo 'fn_call_width = 100000' >> .rustfmt.toml echo 'fn_params_layout = "Compressed"' >> .rustfmt.toml - echo 'chain_width = 1000' >> .rustfmt.toml + echo 'chain_width = 100000' >> .rustfmt.toml echo 'merge_derives = true' >> .rustfmt.toml echo 'use_small_heuristics = "Default"' >> .rustfmt.toml cargo fmt diff --git a/Cargo.lock b/Cargo.lock index 5f85952d..3c2166a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -641,9 +641,9 @@ dependencies = [ [[package]] name = "oxc_allocator" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387e852fa63147768141c5d1d4ca62adf5de4d0c8cfc502d60ebc863dd60fef7" +checksum = "0b1301e61c53d6f0a252a0e9f6495b112f403e6fcee7f7040055a77682e68768" dependencies = [ "allocator-api2", "bumpalo", @@ -654,9 +654,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2865881163de2608e5e9981746de727930e5c23c92954973903adaa22601aee" +checksum = "670cf83ede2349153ffcd30105aa42aa34de493919a2dea628cfbfada8461b97" dependencies = [ "bitflags", "oxc_allocator", @@ -670,9 +670,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9cff8428e0513c6f2b2fd55cd1217f8243ba806ba1914d9783a4c47cf85eb1" +checksum = "79a8d5845a8fce343729abff7c46bfe839a6a763c2ec805dcfb85c83fd15a8b5" dependencies = [ "phf", "proc-macro2", @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97271b9fd4b8bceb887feaa73f4f8b5c1d4e2348124ab569be8982c24f1b95da" +checksum = "bd499527d053a9932b0263fdb93dd5f8b2b319e039b16dcefe35c41d12a6aa2d" dependencies = [ "oxc_allocator", "oxc_ast", @@ -694,9 +694,9 @@ dependencies = [ [[package]] name = "oxc_cfg" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ff1d5f65cc95c0f1df6d0fa6bcbcfd24e914ea063387ecd1ede1ad7c363ce9" +checksum = "24790a46aeee018020ba6c3d9f78c61cf7ce1b8c448ef41c1c40e7b207a52d0a" dependencies = [ "bitflags", "itertools 0.14.0", @@ -709,9 +709,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9bbc612e6043e46052fce74afa0ee48fe2a8285f85e4dab146e0797f8379c5" +checksum = "50768c311d0db5641da3708d0b6c9c63edb6841f19b722f98ae4c1a9e811238c" dependencies = [ "bitflags", "cow-utils", @@ -730,18 +730,18 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c1442a0ccd0667148c49e5fcb79d0578aaef863f65d9f30b4dbce262c7ccac8" +checksum = "15f63e3fbabe99f18ad51db5d68d5dc5c407d038f67e4faf3ca9a4a3e6836122" dependencies = [ "rustversion", ] [[package]] name = "oxc_diagnostics" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2ddf131f04efd708f8d4325183ebd4b73ce70cfe75ae0f9718985193faad74" +checksum = "395715864b505c0f1ac61fd5fd9dad03b85529323be5c69143c28d10c10a87e3" dependencies = [ "cow-utils", "oxc-miette", @@ -750,12 +750,14 @@ dependencies = [ [[package]] name = "oxc_ecmascript" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea921bd0bf9d2827de585f6e2e5177b763a7b3de24016a493c69aae022750bfe" +checksum = "420a96025457985ecb7bc537d80a1760d0326b4faa627f3362f1203cc802993e" dependencies = [ + "cow-utils", "num-bigint", "num-traits", + "oxc_allocator", "oxc_ast", "oxc_span", "oxc_syntax", @@ -763,9 +765,9 @@ dependencies = [ [[package]] name = "oxc_estree" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4adb8dff81cbddb3c2b722c6bf839bb222f57d2d6d7bda27326cdeb642d76c3a" +checksum = "a75a6aca8a627435939ab1b216b3013fcd6797915faa220566978179b11315b2" [[package]] name = "oxc_index" @@ -775,9 +777,9 @@ checksum = "2fa07b0cfa997730afed43705766ef27792873fdf5215b1391949fec678d2392" [[package]] name = "oxc_parser" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3994791fdb377e2dd4a27a4ce2ba8b4350bdf155bb1389c0b241ae4982f61855" +checksum = "e3795e25917b06c517761baa5fea9fe2ce1f67180608945375d67f605b4f7980" dependencies = [ "bitflags", "cow-utils", @@ -798,9 +800,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ae00a7b2d35c832f97da58d5faf852c4e8e70ab271550109c1d77e1b1b43b" +checksum = "d5649b52cca897621f4f403c6d92bddb45fade8da0f01e68e3b88240d232fda7" dependencies = [ "bitflags", "oxc_allocator", @@ -814,9 +816,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27bd11691ff8fc042f30c5f2024ec3fbc9c9e5f91a2e16a131279c7338a6ccd8" +checksum = "76d661bed7b8349ca63e8100a983ee1a3d059f51a345db0b90c49ef3a05bf5ef" dependencies = [ "itertools 0.14.0", "oxc_allocator", @@ -850,9 +852,9 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c27ab8f00b330fdbc3fc22872851f48d79284dda51428043bb2ed4e0d34816" +checksum = "96fd662d7483121c8acee269f0ec52759fc506e7c92d52453f716d4ab4b25f2b" dependencies = [ "compact_str", "oxc-miette", @@ -863,9 +865,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.79.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a89b351b05d9a44ea8291fb48a6d32f4687ebc7e12b95d1695b46e12f96e2b" +checksum = "74e67afd539df6cb1f8de52e3df056b745c4f91b5e5ce59c3b2c398bd5ec54b8" dependencies = [ "bitflags", "cow-utils", diff --git a/apps/landing/package.json b/apps/landing/package.json index 366ec147..df24c1a7 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -16,11 +16,11 @@ "@devup-ui/reset-css": "workspace:*", "@mdx-js/loader": "^3.1.0", "@mdx-js/react": "^3.1.0", - "@next/mdx": "^15.4.4", + "@next/mdx": "^15.4.5", "@types/mdx": "^2.0.13", "body-scroll-lock": "3.1.5", "clsx": "^2.1.1", - "next": "^15.4.4", + "next": "^15.4.5", "react": "^19.1.1", "react-dom": "^19.1.1", "react-markdown": "^10.1.0", diff --git a/apps/next/package.json b/apps/next/package.json index ad9e8a7f..38d88bf8 100644 --- a/apps/next/package.json +++ b/apps/next/package.json @@ -12,7 +12,7 @@ "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1", - "next": "^15.4.4", + "next": "^15.4.5", "@devup-ui/react": "workspace:*" }, "devDependencies": { diff --git a/apps/rsbuild/package.json b/apps/rsbuild/package.json index 46990e29..3c769530 100644 --- a/apps/rsbuild/package.json +++ b/apps/rsbuild/package.json @@ -15,8 +15,8 @@ "@devup-ui/react": "workspace:*" }, "devDependencies": { - "@rsbuild/core": "^1.4.11", - "@rsbuild/plugin-react": "^1.3.4", + "@rsbuild/core": "^1.4.14", + "@rsbuild/plugin-react": "^1.3.5", "@devup-ui/rsbuild-plugin": "workspace:*" } } \ No newline at end of file diff --git a/benchmark/next-chakra-ui/package.json b/benchmark/next-chakra-ui/package.json index 9a304665..abd569ea 100644 --- a/benchmark/next-chakra-ui/package.json +++ b/benchmark/next-chakra-ui/package.json @@ -10,9 +10,9 @@ "lint": "next lint" }, "dependencies": { - "@chakra-ui/react": "^3.23.0", + "@chakra-ui/react": "^3.24.0", "@emotion/react": "^11.14.0", - "next": "^15.4.4", + "next": "^15.4.5", "next-themes": "^0.4.6", "react": "^19.1.1", "react-dom": "^19.1.1", diff --git a/benchmark/next-devup-ui/package.json b/benchmark/next-devup-ui/package.json index e26053dd..2b211973 100644 --- a/benchmark/next-devup-ui/package.json +++ b/benchmark/next-devup-ui/package.json @@ -12,7 +12,7 @@ "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1", - "next": "^15.4.4", + "next": "^15.4.5", "@devup-ui/react": "workspace:*" }, "devDependencies": { diff --git a/benchmark/next-kuma-ui/package.json b/benchmark/next-kuma-ui/package.json index 0edab516..7822429c 100644 --- a/benchmark/next-kuma-ui/package.json +++ b/benchmark/next-kuma-ui/package.json @@ -12,7 +12,7 @@ "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1", - "next": "^15.4.4", + "next": "^15.4.5", "@kuma-ui/core": "^1.5.9" }, "devDependencies": { diff --git a/benchmark/next-mui/package.json b/benchmark/next-mui/package.json index ddf20da4..131bcce7 100644 --- a/benchmark/next-mui/package.json +++ b/benchmark/next-mui/package.json @@ -12,8 +12,8 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@mui/material": "7.2.0", - "next": "^15.4.4", + "@mui/material": "7.3.0", + "next": "^15.4.5", "next-themes": "^0.4.6", "react": "^19.1.1", "react-dom": "^19.1.1", diff --git a/bindings/devup-ui-wasm/src/lib.rs b/bindings/devup-ui-wasm/src/lib.rs index c55a70b3..930cd73f 100644 --- a/bindings/devup-ui-wasm/src/lib.rs +++ b/bindings/devup-ui-wasm/src/lib.rs @@ -128,6 +128,9 @@ impl Output { ExtractStyleValue::Import(st) => { sheet.add_import(&st.file, &st.url); } + ExtractStyleValue::FontFace(font) => { + sheet.add_font_face(&font.file, &font.properties); + } } } diff --git a/libs/css/src/constant.rs b/libs/css/src/constant.rs index acd2bc5e..2ef8c1b3 100644 --- a/libs/css/src/constant.rs +++ b/libs/css/src/constant.rs @@ -69,6 +69,12 @@ pub(super) static GLOBAL_STYLE_PROPERTY: phf::Map<&str, &[&str]> = phf_map! { "objectPos" => &["object-position"], "offsetPos" => &["offset-position"], }; +pub(super) static OPTIMIZE_MULTI_CSS_VALUE_PROPERTY: phf::Set<&str> = phf_set! { + "font-family", + "src", + "content", + "animation-name", +}; pub(super) static DOUBLE_SEPARATOR: phf::Set<&str> = phf_set! { "after", diff --git a/libs/css/src/lib.rs b/libs/css/src/lib.rs index 12b33044..9dd6a6e7 100644 --- a/libs/css/src/lib.rs +++ b/libs/css/src/lib.rs @@ -2,6 +2,7 @@ pub mod class_map; mod constant; pub mod debug; pub mod is_special_property; +pub mod optimize_multi_css_value; pub mod optimize_value; pub mod rm_css_comment; mod selector_separator; @@ -486,6 +487,17 @@ mod tests { ), ".cls:hover" ); + + assert_eq!( + merge_selector( + "cls", + Some(&StyleSelector::Global( + "&".to_string(), + "file.ts".to_string() + )) + ), + "&" + ); } #[test] diff --git a/libs/css/src/optimize_multi_css_value.rs b/libs/css/src/optimize_multi_css_value.rs new file mode 100644 index 00000000..d77c6bdd --- /dev/null +++ b/libs/css/src/optimize_multi_css_value.rs @@ -0,0 +1,69 @@ +use crate::constant::OPTIMIZE_MULTI_CSS_VALUE_PROPERTY; + +pub fn optimize_mutli_css_value(value: &str) -> String { + value + .split(",") + .map(|s| { + let s = s.trim(); + let s = if s.starts_with("'") && s.ends_with("'") + || s.starts_with('"') && s.ends_with('"') + { + s[1..s.len() - 1].to_string() + } else { + s.to_string() + }; + if s.contains(" ") { + format!("\"{s}\"") + } else { + s + } + }) + .collect::>() + .join(",") +} + +pub fn check_multi_css_optimize(property: &str) -> bool { + OPTIMIZE_MULTI_CSS_VALUE_PROPERTY.contains(property) +} + +#[cfg(test)] +mod tests { + use super::*; + + use rstest::rstest; + + #[rstest] + #[case("Roboto, sans-serif", "Roboto,sans-serif")] + #[case("'Roboto', sans-serif", "Roboto,sans-serif")] + #[case("\"Roboto\", sans-serif", "Roboto,sans-serif")] + #[case("'Roboto Hello', sans-serif", "\"Roboto Hello\",sans-serif")] + #[case("\"Roboto Hello\", sans-serif", "\"Roboto Hello\",sans-serif")] + #[case("Roboto", "Roboto")] + #[case("'Roboto'", "Roboto")] + #[case("\"Roboto\"", "Roboto")] + #[case("url('/fonts/Roboto-Regular.ttf')", "url('/fonts/Roboto-Regular.ttf')")] + #[case( + "url(\"/fonts/Roboto-Regular.ttf\")", + "url(\"/fonts/Roboto-Regular.ttf\")" + )] + #[case("'A B', 'C D', E", "\"A B\",\"C D\",E")] + #[case("A,B,C", "A,B,C")] + #[case("A, B, C", "A,B,C")] + #[case("'A', 'B', 'C'", "A,B,C")] + #[case("\"A\", \"B\", \"C\"", "A,B,C")] + fn test_optimize_mutli_css_value(#[case] input: &str, #[case] expected: &str) { + assert_eq!(optimize_mutli_css_value(input), expected); + } + + #[rstest] + #[case("font-family", true)] + #[case("src", true)] + #[case("content", true)] + #[case("animation-name", true)] + #[case("background", false)] + #[case("color", false)] + #[case("margin", false)] + fn test_check_multi_css_optimize(#[case] property: &str, #[case] expected: bool) { + assert_eq!(check_multi_css_optimize(property), expected); + } +} diff --git a/libs/css/src/rm_css_comment.rs b/libs/css/src/rm_css_comment.rs index 2816e719..7178a123 100644 --- a/libs/css/src/rm_css_comment.rs +++ b/libs/css/src/rm_css_comment.rs @@ -7,6 +7,7 @@ pub fn rm_css_comment(value: &str) -> String { .split_ascii_whitespace() .collect::>() .join(" ") + .replace(", ", ",") } #[cfg(test)] diff --git a/libs/extractor/Cargo.toml b/libs/extractor/Cargo.toml index d2782fc0..7ac8eb0f 100644 --- a/libs/extractor/Cargo.toml +++ b/libs/extractor/Cargo.toml @@ -4,13 +4,13 @@ version = "0.1.0" edition = "2024" [dependencies] -oxc_parser = "0.79.1" -oxc_syntax = "0.79.1" -oxc_span = "0.79.1" -oxc_allocator = "0.79.1" -oxc_ast = "0.79.1" -oxc_ast_visit = "0.79.1" -oxc_codegen = "0.79.1" +oxc_parser = "0.80.0" +oxc_syntax = "0.80.0" +oxc_span = "0.80.0" +oxc_allocator = "0.80.0" +oxc_ast = "0.80.0" +oxc_ast_visit = "0.80.0" +oxc_codegen = "0.80.0" css = { path = "../css" } phf = "0.12" strum = "0.27.2" diff --git a/libs/extractor/src/css_utils.rs b/libs/extractor/src/css_utils.rs index d0f9853e..c1c6be7f 100644 --- a/libs/extractor/src/css_utils.rs +++ b/libs/extractor/src/css_utils.rs @@ -1,19 +1,18 @@ use std::collections::BTreeMap; -use css::{rm_css_comment::rm_css_comment, style_selector::StyleSelector}; - -use crate::{ - ExtractStyleProp, - extract_style::{ - extract_static_style::ExtractStaticStyle, extract_style_value::ExtractStyleValue, - }, +use css::{ + optimize_multi_css_value::{check_multi_css_optimize, optimize_mutli_css_value}, + rm_css_comment::rm_css_comment, + style_selector::StyleSelector, }; -pub fn css_to_style<'a>( +use crate::extract_style::extract_static_style::ExtractStaticStyle; + +pub fn css_to_style( css: &str, level: u8, selector: &Option, -) -> Vec> { +) -> Vec { let mut styles = vec![]; let mut input = css; @@ -82,21 +81,15 @@ pub fn css_to_style<'a>( styles.extend(css_to_style_block(input, level, selector)); } - styles.sort_by_key(|a| { - if let crate::ExtractStyleProp::Static(crate::ExtractStyleValue::Static(a)) = a { - a.property().to_string() - } else { - "".to_string() - } - }); + styles.sort_by_key(|a| a.property().to_string()); styles } -fn css_to_style_block<'a>( +fn css_to_style_block( css: &str, level: u8, selector: &Option, -) -> Vec> { +) -> Vec { rm_css_comment(css) .split(";") .filter_map(|s| { @@ -107,17 +100,23 @@ fn css_to_style_block<'a>( let mut iter = s.split(":").map(|s| s.trim()); let property = iter.next().unwrap(); let value = iter.next().unwrap(); - Some(ExtractStyleProp::Static(ExtractStyleValue::Static( - ExtractStaticStyle::new(property, value, level, selector.clone()), - ))) + let value = if check_multi_css_optimize(property) { + optimize_mutli_css_value(value) + } else { + value.to_string() + }; + Some(ExtractStaticStyle::new( + property, + &value, + level, + selector.clone(), + )) } }) .collect() } -pub fn keyframes_to_keyframes_style<'a>( - keyframes: &str, -) -> BTreeMap>> { +pub fn keyframes_to_keyframes_style(keyframes: &str) -> BTreeMap> { let mut map = BTreeMap::new(); let mut input = keyframes; @@ -126,17 +125,9 @@ pub fn keyframes_to_keyframes_style<'a>( let rest = &input[start + 1..]; if let Some(end) = rest.find('}') { let block = &rest[..end]; - let mut styles = css_to_style(block, 0, &None) - .into_iter() - .collect::>(); + let mut styles = css_to_style(block, 0, &None); - styles.sort_by_key(|a| { - if let crate::ExtractStyleProp::Static(crate::ExtractStyleValue::Static(a)) = a { - a.property().to_string() - } else { - "".to_string() - } - }); + styles.sort_by_key(|a| a.property().to_string()); map.insert(key, styles); input = &rest[end + 1..]; } else { @@ -164,6 +155,11 @@ pub fn optimize_css_block(css: &str) -> String { let mut iter = s.split(":"); let property = iter.next().unwrap().trim(); let value = iter.next().unwrap().trim(); + let value = if check_multi_css_optimize(property.split("{").last().unwrap()) { + optimize_mutli_css_value(value) + } else { + value.to_string() + }; format!("{property}:{value}") } }) @@ -219,6 +215,14 @@ mod tests { "ul { list-style : none ; margin : 0 ; padding : 0 ; }", "ul{list-style:none;margin:0;padding:0}" )] + #[case( + "ul { font-family: 'Roboto', sans-serif; }", + "ul{font-family:Roboto,sans-serif}" + )] + #[case( + "ul { font-family: \"Roboto Hello\", sans-serif; }", + "ul{font-family:\"Roboto Hello\",sans-serif}" + )] #[case("section{ }", "section{}")] fn test_optimize_css_block(#[case] input: &str, #[case] expected: &str) { assert_eq!(optimize_css_block(input), expected); @@ -456,6 +460,12 @@ mod tests { }", vec![] )] + #[case( + "ul { font-family: 'Roboto Hello', sans-serif; }", + vec![ + ("font-family", "\"Roboto Hello\",sans-serif", Some(StyleSelector::Selector("ul".to_string()))), + ] + )] fn test_css_to_style( #[case] input: &str, #[case] expected: Vec<(&str, &str, Option)>, @@ -463,14 +473,7 @@ mod tests { let styles = css_to_style(input, 0, &None); let mut result: Vec<(&str, &str, Option)> = styles .iter() - .filter_map(|prop| { - if let crate::ExtractStyleProp::Static(crate::ExtractStyleValue::Static(st)) = prop - { - Some((st.property(), st.value(), st.selector().cloned())) - } else { - None - } - }) + .map(|prop| (prop.property(), prop.value(), prop.selector().cloned())) .collect(); result.sort(); let mut expected_sorted = expected.clone(); @@ -541,15 +544,7 @@ mod tests { let styles = expected_styles; let mut result: Vec<(&str, &str)> = styles .iter() - .filter_map(|prop| { - if let crate::ExtractStyleProp::Static(crate::ExtractStyleValue::Static(st)) = - prop - { - Some((st.property(), st.value())) - } else { - None - } - }) + .map(|prop| (prop.property(), prop.value())) .collect(); result.sort(); let mut expected_sorted = expected diff --git a/libs/extractor/src/extract_style/extract_font_face.rs b/libs/extractor/src/extract_style/extract_font_face.rs new file mode 100644 index 00000000..1a9b7538 --- /dev/null +++ b/libs/extractor/src/extract_style/extract_font_face.rs @@ -0,0 +1,7 @@ +use std::collections::BTreeMap; + +#[derive(Debug, PartialEq, Clone, Eq, Hash, Ord, PartialOrd)] +pub struct ExtractFontFace { + pub file: String, + pub properties: BTreeMap, +} diff --git a/libs/extractor/src/extract_style/extract_static_style.rs b/libs/extractor/src/extract_style/extract_static_style.rs index acb53172..2f9be507 100644 --- a/libs/extractor/src/extract_style/extract_static_style.rs +++ b/libs/extractor/src/extract_style/extract_static_style.rs @@ -1,4 +1,5 @@ use css::{ + optimize_multi_css_value::{check_multi_css_optimize, optimize_mutli_css_value}, optimize_value::optimize_value, sheet_to_classname, style_selector::{StyleSelector, optimize_selector}, @@ -97,16 +98,20 @@ impl ExtractStaticStyle { impl ExtractStyleProperty for ExtractStaticStyle { fn extract(&self) -> StyleProperty { let s = self.selector.clone().map(|s| s.to_string()); + let v = optimize_value(&if MAINTAIN_VALUE_PROPERTIES.contains(&self.property) { + self.value.to_string() + } else { + convert_value(&self.value) + }); + let v = if check_multi_css_optimize(&self.property) { + optimize_mutli_css_value(&v) + } else { + v + }; StyleProperty::ClassName(sheet_to_classname( &self.property, self.level, - Some(&optimize_value( - &if MAINTAIN_VALUE_PROPERTIES.contains(&self.property) { - self.value.to_string() - } else { - convert_value(&self.value) - }, - )), + Some(&v), s.as_deref(), self.style_order, )) diff --git a/libs/extractor/src/extract_style/extract_style_value.rs b/libs/extractor/src/extract_style/extract_style_value.rs index 20c45805..cd377a78 100644 --- a/libs/extractor/src/extract_style/extract_style_value.rs +++ b/libs/extractor/src/extract_style/extract_style_value.rs @@ -1,7 +1,8 @@ use crate::extract_style::{ ExtractStyleProperty, extract_css::ExtractCss, extract_dynamic_style::ExtractDynamicStyle, - extract_import::ExtractImport, extract_keyframes::ExtractKeyframes, - extract_static_style::ExtractStaticStyle, style_property::StyleProperty, + extract_font_face::ExtractFontFace, extract_import::ExtractImport, + extract_keyframes::ExtractKeyframes, extract_static_style::ExtractStaticStyle, + style_property::StyleProperty, }; #[derive(Debug, PartialEq, Clone, Eq, Hash, Ord, PartialOrd)] @@ -11,6 +12,7 @@ pub enum ExtractStyleValue { Dynamic(ExtractDynamicStyle), Css(ExtractCss), Import(ExtractImport), + FontFace(ExtractFontFace), Keyframes(ExtractKeyframes), } @@ -23,7 +25,9 @@ impl ExtractStyleValue { ExtractStyleValue::Typography(typo) => { Some(StyleProperty::ClassName(format!("typo-{typo}"))) } - ExtractStyleValue::Css(_) | ExtractStyleValue::Import(_) => None, + ExtractStyleValue::Css(_) + | ExtractStyleValue::Import(_) + | ExtractStyleValue::FontFace(_) => None, } } pub fn set_style_order(&mut self, order: u8) { diff --git a/libs/extractor/src/extract_style/mod.rs b/libs/extractor/src/extract_style/mod.rs index dd7dbd9c..6bbb6872 100644 --- a/libs/extractor/src/extract_style/mod.rs +++ b/libs/extractor/src/extract_style/mod.rs @@ -1,6 +1,7 @@ pub(super) mod constant; pub(super) mod extract_css; pub(super) mod extract_dynamic_style; +pub(super) mod extract_font_face; pub(super) mod extract_import; pub(super) mod extract_keyframes; pub(super) mod extract_static_style; diff --git a/libs/extractor/src/extractor/extract_global_style_from_expression.rs b/libs/extractor/src/extractor/extract_global_style_from_expression.rs index 5b4c3243..b3b5fc15 100644 --- a/libs/extractor/src/extractor/extract_global_style_from_expression.rs +++ b/libs/extractor/src/extractor/extract_global_style_from_expression.rs @@ -1,11 +1,22 @@ +use std::collections::BTreeMap; + use crate::{ ExtractStyleProp, - extract_style::{extract_import::ExtractImport, extract_style_value::ExtractStyleValue}, + css_utils::css_to_style, + extract_style::{ + extract_font_face::ExtractFontFace, extract_import::ExtractImport, + extract_style_value::ExtractStyleValue, + }, extractor::{ GlobalExtractResult, extract_style_from_expression::extract_style_from_expression, }, + utils::get_string_by_literal_expression, +}; +use css::{ + disassemble_property, + optimize_multi_css_value::{check_multi_css_optimize, optimize_mutli_css_value}, + style_selector::StyleSelector, }; -use css::style_selector::StyleSelector; use oxc_ast::{ AstBuilder, ast::{ArrayExpressionElement, Expression, ObjectPropertyKind, PropertyKey}, @@ -20,40 +31,101 @@ pub fn extract_global_style_from_expression<'a>( if let Expression::ObjectExpression(obj) = expression { for p in obj.properties.iter_mut() { - if let ObjectPropertyKind::ObjectProperty(o) = p { - let name = if let PropertyKey::StaticIdentifier(ident) = &o.key { - ident.name.to_string() + if let ObjectPropertyKind::ObjectProperty(o) = p + && let Some(name) = if let PropertyKey::StaticIdentifier(ident) = &o.key { + Some(ident.name.to_string()) } else if let PropertyKey::StringLiteral(s) = &o.key { - s.value.to_string() + Some(s.value.to_string()) } else if let PropertyKey::TemplateLiteral(t) = &o.key { - t.quasis - .iter() - .map(|q| q.value.raw.as_str()) - .collect::() + Some( + t.quasis + .iter() + .map(|q| q.value.raw.as_str()) + .collect::(), + ) } else { - continue; - }; - + None + } + { if name == "imports" { if let Expression::ArrayExpression(arr) = &o.value { for p in arr.elements.iter() { - styles.push(ExtractStyleProp::Static(ExtractStyleValue::Import( - ExtractImport { - url: if let ArrayExpressionElement::StringLiteral(s) = p { - s.value.trim().to_string() - } else if let ArrayExpressionElement::TemplateLiteral(t) = p { - t.quasis - .iter() - .map(|q| q.value.raw.as_str()) - .collect::() - .trim() - .to_string() - } else { - continue; + if let Some(url) = if let ArrayExpressionElement::StringLiteral(s) = p { + Some(s.value.trim().to_string()) + } else if let ArrayExpressionElement::TemplateLiteral(t) = p { + Some( + t.quasis + .iter() + .map(|q| q.value.raw.as_str()) + .collect::() + .trim() + .to_string(), + ) + } else { + None + } { + styles.push(ExtractStyleProp::Static(ExtractStyleValue::Import( + ExtractImport { + url, + file: file.to_string(), }, + ))); + } + } + } + } else if name == "fontFaces" { + if let Expression::ArrayExpression(arr) = &o.value { + for p in arr.elements.iter() { + if let ArrayExpressionElement::ObjectExpression(o) = p { + styles.push(ExtractStyleProp::Static(ExtractStyleValue::FontFace(ExtractFontFace { + properties: BTreeMap::from_iter( + o.properties + .iter() + .filter_map(|p| { + if let ObjectPropertyKind::ObjectProperty(o) = p + && let PropertyKey::StaticIdentifier(ident) = &o.key + && let Some(s) = get_string_by_literal_expression(&o.value) + { + Some(disassemble_property(&ident.name).iter().map(|p| (p.to_string(), if check_multi_css_optimize(p) { optimize_mutli_css_value(&s) } else { s.clone() })).collect::>()) + } else { + None + } + }) + .flatten(), + ), file: file.to_string(), - }, - ))); + }))); + } else if let ArrayExpressionElement::TemplateLiteral(t) = p { + let css_styles = css_to_style( + t.quasis + .iter() + .map(|q| q.value.raw.as_str()) + .collect::() + .trim(), + 0, + &None, + ) + .into_iter() + .map(ExtractStyleValue::Static) + .collect::>(); + styles.push(ExtractStyleProp::Static(ExtractStyleValue::FontFace( + ExtractFontFace { + properties: BTreeMap::from_iter( + css_styles.iter().filter_map(|p| { + if let ExtractStyleValue::Static(st) = p { + Some(( + st.property().to_string(), + st.value().to_string(), + )) + } else { + None + } + }), + ), + file: file.to_string(), + }, + ))); + } } } } else { diff --git a/libs/extractor/src/extractor/extract_keyframes_from_expression.rs b/libs/extractor/src/extractor/extract_keyframes_from_expression.rs index c0a78652..fd1f4766 100644 --- a/libs/extractor/src/extractor/extract_keyframes_from_expression.rs +++ b/libs/extractor/src/extractor/extract_keyframes_from_expression.rs @@ -2,7 +2,8 @@ use crate::{ ExtractStyleProp, extract_style::{extract_keyframes::ExtractKeyframes, extract_style_value::ExtractStyleValue}, extractor::{ - KeyframesExtractResult, extract_style_from_expression::extract_style_from_expression, + ExtractResult, KeyframesExtractResult, + extract_style_from_expression::extract_style_from_expression, }, }; use oxc_ast::{ @@ -18,30 +19,34 @@ pub fn extract_keyframes_from_expression<'a>( if let Expression::ObjectExpression(obj) = expression { for p in obj.properties.iter_mut() { - if let ObjectPropertyKind::ObjectProperty(o) = p { - let name = if let PropertyKey::StaticIdentifier(ident) = &o.key { - ident.name.to_string() + if let ObjectPropertyKind::ObjectProperty(o) = p + && let Some(name) = if let PropertyKey::StaticIdentifier(ident) = &o.key { + Some(ident.name.to_string()) } else if let PropertyKey::StringLiteral(s) = &o.key { - s.value.to_string() + Some(s.value.to_string()) } else if let PropertyKey::TemplateLiteral(t) = &o.key { - t.quasis - .iter() - .map(|q| q.value.raw.as_str()) - .collect::() + Some( + t.quasis + .iter() + .map(|q| q.value.raw.as_str()) + .collect::(), + ) } else if let PropertyKey::NumericLiteral(n) = &o.key { - n.value.to_string() + Some(n.value.to_string()) } else { - continue; - }; - let mut styles = - extract_style_from_expression(ast_builder, None, &mut o.value, 0, &None) - .styles - .into_iter() - .filter_map(|s| match s { - ExtractStyleProp::Static(ExtractStyleValue::Static(s)) => Some(s), - _ => None, - }) - .collect::>(); + None + } + { + let ExtractResult { styles, .. } = + extract_style_from_expression(ast_builder, None, &mut o.value, 0, &None); + + let mut styles = styles + .into_iter() + .filter_map(|s| match s { + ExtractStyleProp::Static(ExtractStyleValue::Static(s)) => Some(s), + _ => None, + }) + .collect::>(); styles.sort_by_key(|a| a.property().to_string()); keyframes.keyframes.insert( name.parse::().map(|v| format!("{v}%")).unwrap_or(name), diff --git a/libs/extractor/src/extractor/extract_style_from_expression.rs b/libs/extractor/src/extractor/extract_style_from_expression.rs index 2add2f81..03885097 100644 --- a/libs/extractor/src/extractor/extract_style_from_expression.rs +++ b/libs/extractor/src/extractor/extract_style_from_expression.rs @@ -148,7 +148,10 @@ pub fn extract_style_from_expression<'a>( .collect::(), level, selector, - ), + ) + .into_iter() + .map(|ex| ExtractStyleProp::Static(ExtractStyleValue::Static(ex))) + .collect(), ..ExtractResult::default() }, _ => ExtractResult::default(), @@ -156,10 +159,6 @@ pub fn extract_style_from_expression<'a>( } if let Some(name) = name { - if is_special_property(name) { - return ExtractResult::default(); - } - if name == "as" { return ExtractResult { tag: Some(expression.clone_in(ast_builder.allocator)), @@ -272,7 +271,10 @@ pub fn extract_style_from_expression<'a>( } } else { ExtractResult { - styles: css_to_style(&value, level, selector), + styles: css_to_style(&value, level, selector) + .into_iter() + .map(|ex| ExtractStyleProp::Static(ExtractStyleValue::Static(ex))) + .collect(), ..ExtractResult::default() } } @@ -302,66 +304,46 @@ pub fn extract_style_from_expression<'a>( Expression::ComputedMemberExpression(mem) => { extract_style_from_member_expression(ast_builder, name, mem, level, selector) } - Expression::TemplateLiteral(tmp) => { - let name = name.unwrap(); - if tmp.quasis.len() == 1 { - ExtractResult { - styles: vec![ExtractStyleProp::Static(if typo { - ExtractStyleValue::Typography(tmp.quasis[0].value.raw.to_string()) - } else { - ExtractStyleValue::Static(ExtractStaticStyle::new( - name, - &tmp.quasis[0].value.raw, - level, - selector.clone(), - )) - })], - ..ExtractResult::default() - } - } else if typo { - ExtractResult { - styles: vec![ExtractStyleProp::Expression { - expression: ast_builder.expression_template_literal( - SPAN, - ast_builder.vec_from_array([ - ast_builder.template_element( - SPAN, - TemplateElementValue { - raw: ast_builder.atom("typo-"), - cooked: None, - }, - false, - ), - ast_builder.template_element( - SPAN, - TemplateElementValue { - raw: ast_builder.atom(""), - cooked: None, - }, - true, - ), - ]), - ast_builder - .vec_from_array([expression.clone_in(ast_builder.allocator)]), - ), - styles: vec![], - }], - ..ExtractResult::default() - } + Expression::TemplateLiteral(_) => ExtractResult { + styles: if typo { + vec![ExtractStyleProp::Expression { + expression: ast_builder.expression_template_literal( + SPAN, + ast_builder.vec_from_array([ + ast_builder.template_element( + SPAN, + TemplateElementValue { + raw: ast_builder.atom("typo-"), + cooked: None, + }, + false, + ), + ast_builder.template_element( + SPAN, + TemplateElementValue { + raw: ast_builder.atom(""), + cooked: None, + }, + true, + ), + ]), + ast_builder + .vec_from_array([expression.clone_in(ast_builder.allocator)]), + ), + styles: vec![], + }] } else { - ExtractResult { - styles: vec![ExtractStyleProp::Static(ExtractStyleValue::Dynamic( - ExtractDynamicStyle::new( - name, - level, - &expression_to_code(expression), - selector.clone(), - ), - ))], - ..ExtractResult::default() - } - } - } + vec![ExtractStyleProp::Static(ExtractStyleValue::Dynamic( + ExtractDynamicStyle::new( + name.unwrap(), + level, + &expression_to_code(expression), + selector.clone(), + ), + ))] + }, + ..ExtractResult::default() + }, Expression::Identifier(identifier) => { if IGNORED_IDENTIFIERS.contains(&identifier.name.as_str()) { ExtractResult::default() diff --git a/libs/extractor/src/lib.rs b/libs/extractor/src/lib.rs index 1afe1313..e3c0816c 100644 --- a/libs/extractor/src/lib.rs +++ b/libs/extractor/src/lib.rs @@ -2944,6 +2944,9 @@ e(o, { className: "a", bg: variable, style: { color: "blue" }, ...props }) reset_class_map(); assert_debug_snapshot!(ToBTreeSet::from(extract("test.js", r#""use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("@devup-ui/react");function t(){return e.jsxs("div",{children:[e.jsx(r.Box,{_hover:{bg:"blue"},bg:"$text",color:"red",children:"hello"}),e.jsx(r.Text,{typography:"header",children:"typo"}),e.jsx(r.Flex,{as:"section",mt:2,children:"section"})]})}exports.Lib=t;"#, ExtractOption { package: "@devup-ui/react".to_string(), css_file: None }).unwrap())); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from(extract("test.js", r#""use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("@devup-ui/react");function t(){return e.jsxs("div",{children:[e.jsx(r.Box,{_hover:{bg:"blue"},bg:"$text",color:"red",children:"hello"}),e.jsx(r.Text,{typography:`header`,children:"typo"}),e.jsx(r.Flex,{as:"section",mt:2,children:"section"})]})}exports.Lib=t;"#, ExtractOption { package: "@devup-ui/react".to_string(), css_file: None }).unwrap())); } #[test] @@ -5072,6 +5075,150 @@ globalCss({ )); } + #[test] + #[serial] + fn extract_global_css_with_font_faces() { + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [ + { + fontFamily: "Roboto", + src: "url('/fonts/Roboto-Regular.ttf')", + fontWeight: 400, + }, + { + fontFamily: "Roboto2", + src: "url('/fonts/Roboto-Regular.ttf')", + fontWeight: 400, + } + ] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [ + { + fontFamily: "Roboto", + src: `url('/fonts/Roboto-Regular.ttf')`, + fontWeight: `400`, + } + ] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [ + { + fontFamily: "Roboto", + src: "url('/fonts/Roboto-Regular.ttf')", + } + ] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [` + font-family: "Roboto"; + src: "url('/fonts/Roboto-Regular.ttf')"; + font-weight: 400; + `] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [ + { + fontFamily: "Roboto Hello", + src: "url('/fonts/Roboto-Regular.ttf')", + fontWeight: 400, + } + ] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + + reset_class_map(); + assert_debug_snapshot!(ToBTreeSet::from( + extract( + "test.tsx", + r#"import { globalCss } from "@devup-ui/core"; +globalCss({ + fontFaces: [ + { + fontFamily: undefined, + src: "url('/fonts/Roboto-Regular.ttf')", + fontWeight: 400, + } + ] +}) +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap() + )); + } + #[test] #[serial] fn extract_global_css_with_wrong_imports() { diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-2.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-2.snap new file mode 100644 index 00000000..a3c52735 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-2.snap @@ -0,0 +1,19 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [\n {\n fontFamily: \"Roboto\",\n src: `url('/fonts/Roboto-Regular.ttf')`,\n fontWeight: `400`,\n }\n ]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "Roboto", + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-3.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-3.snap new file mode 100644 index 00000000..3f4bd6c1 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-3.snap @@ -0,0 +1,18 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [\n {\n fontFamily: \"Roboto\",\n src: \"url('/fonts/Roboto-Regular.ttf')\",\n }\n ]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "Roboto", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-4.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-4.snap new file mode 100644 index 00000000..7a390c1d --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-4.snap @@ -0,0 +1,19 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [`\n font-family: \"Roboto\";\n src: \"url('/fonts/Roboto-Regular.ttf')\";\n font-weight: 400;\n `]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "Roboto", + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-5.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-5.snap new file mode 100644 index 00000000..a4cbae22 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-5.snap @@ -0,0 +1,19 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [\n {\n fontFamily: \"Roboto Hello\",\n src: \"url('/fonts/Roboto-Regular.ttf')\",\n fontWeight: 400,\n }\n ]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "\"Roboto Hello\"", + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-6.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-6.snap new file mode 100644 index 00000000..fb7cb1aa --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces-6.snap @@ -0,0 +1,18 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [\n {\n fontFamily: undefined,\n src: \"url('/fonts/Roboto-Regular.ttf')\",\n fontWeight: 400,\n }\n ]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces.snap b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces.snap new file mode 100644 index 00000000..406137f8 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_global_css_with_font_faces.snap @@ -0,0 +1,29 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { globalCss } from \"@devup-ui/core\";\nglobalCss({\n fontFaces: [\n {\n fontFamily: \"Roboto\",\n src: \"url('/fonts/Roboto-Regular.ttf')\",\n fontWeight: 400,\n },\n {\n fontFamily: \"Roboto2\",\n src: \"url('/fonts/Roboto-Regular.ttf')\",\n fontWeight: 400,\n }\n ]\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "Roboto", + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + FontFace( + ExtractFontFace { + file: "test.tsx", + properties: { + "font-family": "Roboto2", + "font-weight": "400", + "src": "url('/fonts/Roboto-Regular.ttf')", + }, + }, + ), + }, + code: "import \"@devup-ui/core/devup-ui.css\";\n;\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_wrong_keyframs.snap b/libs/extractor/src/snapshots/extractor__tests__extract_wrong_keyframs.snap index 510849eb..8ec12b32 100644 --- a/libs/extractor/src/snapshots/extractor__tests__extract_wrong_keyframs.snap +++ b/libs/extractor/src/snapshots/extractor__tests__extract_wrong_keyframs.snap @@ -1,6 +1,6 @@ --- source: libs/extractor/src/lib.rs -expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { keyframes } from \"@devup-ui/core\";\nkeyframes({\n from: { opacity: 0 },\n [true]: { opacity: 0.5 },\n to: { opacity: 1 }\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" +expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr#\"import { keyframes } from \"@devup-ui/core\";\nkeyframes({\n from: { opacity: 0 },\n [true]: { opacity: 0.5 },\n to: { opacity: 1, color: dy }\n})\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())" --- ToBTreeSet { styles: { diff --git a/libs/extractor/src/snapshots/extractor__tests__support_transpile_cjs-4.snap b/libs/extractor/src/snapshots/extractor__tests__support_transpile_cjs-4.snap new file mode 100644 index 00000000..8d721875 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__support_transpile_cjs-4.snap @@ -0,0 +1,63 @@ +--- +source: libs/extractor/src/lib.rs +expression: "ToBTreeSet::from(extract(\"test.js\",\nr#\"\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const e=require(\"react/jsx-runtime\"),r=require(\"@devup-ui/react\");function t(){return e.jsxs(\"div\",{children:[e.jsx(r.Box,{_hover:{bg:\"blue\"},bg:\"$text\",color:\"red\",children:\"hello\"}),e.jsx(r.Text,{typography:`header`,children:\"typo\"}),e.jsx(r.Flex,{as:\"section\",mt:2,children:\"section\"})]})}exports.Lib=t;\"#,\nExtractOption\n{ package: \"@devup-ui/react\".to_string(), css_file: None }).unwrap())" +--- +ToBTreeSet { + styles: { + Static( + ExtractStaticStyle { + property: "background", + value: "$text", + level: 0, + selector: None, + style_order: None, + }, + ), + Static( + ExtractStaticStyle { + property: "background", + value: "blue", + level: 0, + selector: Some( + Selector( + "&:hover", + ), + ), + style_order: None, + }, + ), + Static( + ExtractStaticStyle { + property: "color", + value: "red", + level: 0, + selector: None, + style_order: None, + }, + ), + Static( + ExtractStaticStyle { + property: "display", + value: "flex", + level: 0, + selector: None, + style_order: Some( + 0, + ), + }, + ), + Static( + ExtractStaticStyle { + property: "margin-top", + value: "8px", + level: 0, + selector: None, + style_order: None, + }, + ), + Typography( + "header", + ), + }, + code: "\"use strict\";\nimport \"@devup-ui/react/devup-ui.css\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst e = require(\"react/jsx-runtime\"), r = require(\"@devup-ui/react\");\nfunction t() {\n\treturn e.jsxs(\"div\", { children: [\n\t\te.jsx(\"div\", {\n\t\t\tchildren: \"hello\",\n\t\t\tclassName: \"d0 d1 d2\"\n\t\t}),\n\t\te.jsx(\"span\", {\n\t\t\tchildren: \"typo\",\n\t\t\tclassName: \"typo-header\"\n\t\t}),\n\t\te.jsx(\"section\", {\n\t\t\tchildren: \"section\",\n\t\t\tclassName: \"d3 d4\"\n\t\t})\n\t] });\n}\nexports.Lib = t;\n", +} diff --git a/libs/extractor/src/visit.rs b/libs/extractor/src/visit.rs index cfe4031d..f144f9b3 100644 --- a/libs/extractor/src/visit.rs +++ b/libs/extractor/src/visit.rs @@ -164,16 +164,12 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { .expression_string_literal(SPAN, self.ast.atom(""), None) } else { // css can not reachable - // ExtractResult::ExtractStyleWithChangeTag(styles, _) let class_name = gen_class_names(&self.ast, &mut styles, style_order); - self.styles.extend( - styles - .into_iter() - // already set style order - .flat_map(|ex| ex.extract()), - ); + // already set style order + self.styles + .extend(styles.into_iter().flat_map(|ex| ex.extract())); if let Some(cls) = class_name { cls } else { @@ -206,17 +202,13 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { call.arguments[0].to_expression_mut(), &self.filename, ); - self.styles.extend( - styles - .into_iter() - // already set style order - .flat_map(|mut ex| { - if let ExtractStyleProp::Static(css) = &mut ex { - css.set_style_order(style_order.unwrap_or(0)); - } - ex.extract() - }), - ); + // already set style order + self.styles.extend(styles.into_iter().flat_map(|mut ex| { + if let ExtractStyleProp::Static(css) = &mut ex { + css.set_style_order(style_order.unwrap_or(0)); + } + ex.extract() + })); self.ast.expression_identifier(SPAN, self.ast.atom("")) } } @@ -234,8 +226,17 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { .collect::(); match css_type.as_ref() { UtilType::Css => { - let mut styles = css_to_style(&css_str, 0, &None); - let class_name = gen_class_names(&self.ast, &mut styles, None); + let styles = css_to_style(&css_str, 0, &None); + let class_name = gen_class_names( + &self.ast, + &mut styles + .iter() + .map(|ex| { + ExtractStyleProp::Static(ExtractStyleValue::Static(ex.clone())) + }) + .collect::>(), + None, + ); if let Some(cls) = class_name { *it = cls; @@ -244,35 +245,13 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { .ast .expression_string_literal(SPAN, self.ast.atom(""), None); } - self.styles.extend( - styles - .into_iter() - // already set style order - .flat_map(|ex| ex.extract()), - ); + // already set style order + self.styles + .extend(styles.into_iter().map(ExtractStyleValue::Static)); } UtilType::Keyframes => { let keyframes = ExtractKeyframes { - keyframes: keyframes_to_keyframes_style(&css_str) - .into_iter() - .map(|(k, v)| { - ( - k, - v.into_iter() - .filter_map(|ex| { - if let crate::ExtractStyleProp::Static( - crate::ExtractStyleValue::Static(st), - ) = ex - { - Some(st) - } else { - None - } - }) - .collect(), - ) - }) - .collect(), + keyframes: keyframes_to_keyframes_style(&css_str), }; let name = keyframes.extract().to_string(); @@ -382,11 +361,9 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { } fn visit_variable_declarator(&mut self, it: &mut VariableDeclarator<'a>) { if let Some(Expression::CallExpression(call)) = &it.init { - if call.arguments.len() != 1 { - return; - } - if let (Expression::Identifier(ident), Argument::StringLiteral(arg)) = - (&call.callee, &call.arguments[0]) + if call.arguments.len() == 1 + && let (Expression::Identifier(ident), Argument::StringLiteral(arg)) = + (&call.callee, &call.arguments[0]) && ident.name == "require" { if arg.value == "react/jsx-runtime" { diff --git a/libs/sheet/src/lib.rs b/libs/sheet/src/lib.rs index 3171a479..7026c331 100644 --- a/libs/sheet/src/lib.rs +++ b/libs/sheet/src/lib.rs @@ -134,6 +134,8 @@ pub struct StyleSheet { pub global_css_files: BTreeSet, #[serde(default)] pub imports: BTreeMap>, + #[serde(default)] + pub font_faces: BTreeMap>>, #[serde(skip)] pub theme: Theme, } @@ -174,6 +176,14 @@ impl StyleSheet { .insert(import.to_string()); } + pub fn add_font_face(&mut self, file: &str, properties: &BTreeMap) { + self.global_css_files.insert(file.to_string()); + self.font_faces + .entry(file.to_string()) + .or_default() + .insert(properties.clone()); + } + pub fn add_css(&mut self, file: &str, css: &str) -> bool { self.global_css_files.insert(file.to_string()); self.css @@ -204,6 +214,9 @@ impl StyleSheet { } self.global_css_files.remove(file); self.css.remove(file); + + self.font_faces.remove(file); + for map in self.properties.values_mut() { for props in map.values_mut() { props.retain(|prop| { @@ -297,6 +310,19 @@ impl StyleSheet { )); } + for (_, font_faces) in self.font_faces.iter() { + for font_face in font_faces.iter() { + css.push_str(&format!( + "@font-face{{{}}}", + font_face + .iter() + .map(|(key, value)| format!("{key}:{value}")) + .collect::>() + .join(";") + )); + } + } + for (_, _css) in self.css.iter() { for _css in _css.iter() { css.push_str(&_css.extract()); @@ -1370,4 +1396,26 @@ mod tests { assert_debug_snapshot!(now); assert_eq!(past, now); } + + #[test] + fn test_font_face() { + let mut sheet = StyleSheet::default(); + let mut font_face_props = BTreeMap::new(); + font_face_props.insert("font-family".to_string(), "Roboto".to_string()); + font_face_props.insert( + "src".to_string(), + "url('/fonts/Roboto-Regular.ttf')".to_string(), + ); + font_face_props.insert("font-weight".to_string(), "400".to_string()); + + sheet.add_font_face("test.tsx", &font_face_props); + + let css = sheet.create_css(); + assert!(css.contains("@font-face")); + assert!(css.contains("font-family:Roboto")); + assert!(css.contains("src:url('/fonts/Roboto-Regular.ttf')")); + assert!(css.contains("font-weight:400")); + + assert_debug_snapshot!(css); + } } diff --git a/libs/sheet/src/snapshots/sheet__tests__deserialize.snap b/libs/sheet/src/snapshots/sheet__tests__deserialize.snap index b63a9ead..a4d88a1f 100644 --- a/libs/sheet/src/snapshots/sheet__tests__deserialize.snap +++ b/libs/sheet/src/snapshots/sheet__tests__deserialize.snap @@ -19,6 +19,7 @@ StyleSheet { keyframes: {}, global_css_files: {}, imports: {}, + font_faces: {}, theme: Theme { colors: {}, breakpoints: [ diff --git a/libs/sheet/src/snapshots/sheet__tests__font_face.snap b/libs/sheet/src/snapshots/sheet__tests__font_face.snap new file mode 100644 index 00000000..f51b6a0d --- /dev/null +++ b/libs/sheet/src/snapshots/sheet__tests__font_face.snap @@ -0,0 +1,5 @@ +--- +source: libs/sheet/src/lib.rs +expression: css +--- +"@font-face{font-family:Roboto;font-weight:400;src:url('/fonts/Roboto-Regular.ttf')}" diff --git a/libs/sheet/src/snapshots/sheet__tests__keyframes-3.snap b/libs/sheet/src/snapshots/sheet__tests__keyframes-3.snap deleted file mode 100644 index af506892..00000000 --- a/libs/sheet/src/snapshots/sheet__tests__keyframes-3.snap +++ /dev/null @@ -1,5 +0,0 @@ ---- -source: libs/sheet/src/lib.rs -expression: sheet.create_css() ---- -"@keyframes fadeIn{from{opacity:0}to{opacity:1}}" diff --git a/libs/sheet/src/snapshots/sheet__tests__keyframes.snap b/libs/sheet/src/snapshots/sheet__tests__keyframes.snap index af506892..365df572 100644 --- a/libs/sheet/src/snapshots/sheet__tests__keyframes.snap +++ b/libs/sheet/src/snapshots/sheet__tests__keyframes.snap @@ -1,5 +1,5 @@ --- source: libs/sheet/src/lib.rs -expression: sheet.create_css() +expression: past --- "@keyframes fadeIn{from{opacity:0}to{opacity:1}}" diff --git a/package.json b/package.json index c5dd88d5..356a7f52 100644 --- a/package.json +++ b/package.json @@ -18,14 +18,14 @@ "vitest": "^3.2.4", "@vitest/coverage-v8": "^3.2.4", "@changesets/cli": "^2.29.5", - "@types/node": "^24.1.0", + "@types/node": "^24.2.0", "happy-dom": "^18.0.1", "@testing-library/react": "^16.3.0", "@testing-library/jest-dom": "^6.6.4", "@devup-ui/vite-plugin": "workspace:*" }, "author": "devfive", - "packageManager": "pnpm@10.13.1", + "packageManager": "pnpm@10.14.0", "resolutions": { "vite": "^6" } diff --git a/packages/components/package.json b/packages/components/package.json index 0675a8f7..24e3c7b5 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -48,14 +48,14 @@ }, "devDependencies": { "@devup-ui/vite-plugin": "workspace:*", - "@storybook/addon-docs": "^9.0.18", - "@storybook/addon-onboarding": "^9.0.18", - "@storybook/react-vite": "^9.0.18", + "@storybook/addon-docs": "^9.1.1", + "@storybook/addon-onboarding": "^9.1.1", + "@storybook/react-vite": "^9.1.1", "@types/react": "^19.1.9", - "eslint-plugin-storybook": "^9.0.18", + "eslint-plugin-storybook": "^9.1.1", "rollup-plugin-preserve-directives": "^0.4.0", - "storybook": "^9.0.18", - "typescript": "^5.8.3", + "storybook": "^9.1.1", + "typescript": "^5.9.2", "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4" diff --git a/packages/next-plugin/package.json b/packages/next-plugin/package.json index 5036a173..1df10d8c 100644 --- a/packages/next-plugin/package.json +++ b/packages/next-plugin/package.json @@ -49,7 +49,7 @@ "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "@types/webpack": "^5.28.5" }, "peerDependencies": { diff --git a/packages/react/package.json b/packages/react/package.json index dc06dac5..9eba214e 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -46,7 +46,7 @@ "rollup-plugin-preserve-directives": "^0.4.0", "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "@types/react": "^19" }, "peerDependencies": { diff --git a/packages/react/src/utils/global-css.ts b/packages/react/src/utils/global-css.ts index 8d5e1df0..72268340 100644 --- a/packages/react/src/utils/global-css.ts +++ b/packages/react/src/utils/global-css.ts @@ -12,15 +12,33 @@ type GlobalCssProps = { | DevupThemeSelectorProps } +interface FontFaceProps { + fontFamily: string + src: string + fontWeight?: string | number + fontStyle?: string + fontDisplay?: string + unicodeRange?: string + fontVariant?: string + ascentOverride?: string + descentOverride?: string + fontStretch?: string + lineGapOverride?: string + sizeAdjust?: string + fontFeatureSettings?: string + fontVariationSettings?: string +} + export function globalCss( strings?: | TemplateStringsArray | (Omit & { imports?: string[] + fontFaces?: FontFaceProps[] }), -): never +): void -export function globalCss(): never +export function globalCss(): void export function globalCss( // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -29,6 +47,6 @@ export function globalCss( | (Omit & { imports?: string[] }), -): never { +): void { throw new Error('Cannot run on the runtime') } diff --git a/packages/reset-css/package.json b/packages/reset-css/package.json index e4f23a4b..4f19bf0b 100644 --- a/packages/reset-css/package.json +++ b/packages/reset-css/package.json @@ -42,7 +42,7 @@ "@devup-ui/react": "workspace:*" }, "devDependencies": { - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", "rollup-plugin-preserve-directives": "^0.4.0" diff --git a/packages/rsbuild-plugin/package.json b/packages/rsbuild-plugin/package.json index 4fb71fc7..0a7fa876 100644 --- a/packages/rsbuild-plugin/package.json +++ b/packages/rsbuild-plugin/package.json @@ -56,10 +56,10 @@ "@rsbuild/core": "*" }, "devDependencies": { - "@rsbuild/core": "^1.4.11", + "@rsbuild/core": "^1.4.14", "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", - "typescript": "^5.8.3" + "typescript": "^5.9.2" } } \ No newline at end of file diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index e64f6541..410a97c1 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -44,7 +44,7 @@ }, "devDependencies": { "vite-plugin-dts": "^4.5.4", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "peerDependencies": { "vite": "*", diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 1e2d2eaf..ec37b0d2 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -59,6 +59,6 @@ "@types/webpack": "^5.28.5", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", - "typescript": "^5.8.3" + "typescript": "^5.9.2" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8573c51b..1ec8ca1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,23 +24,23 @@ importers: specifier: ^16.3.0 version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@types/node': - specifier: ^24.1.0 - version: 24.1.0 + specifier: ^24.2.0 + version: 24.2.0 '@vitest/coverage-v8': specifier: ^3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1)) eslint: specifier: ^9.32.0 version: 9.32.0(jiti@2.5.1) eslint-plugin-devup: specifier: ^2.0.5 - version: 2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + version: 2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) happy-dom: specifier: ^18.0.1 version: 18.0.1 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) apps/landing: dependencies: @@ -60,8 +60,8 @@ importers: specifier: ^3.1.0 version: 3.1.0(@types/react@19.1.9)(react@19.1.1) '@next/mdx': - specifier: ^15.4.4 - version: 15.4.4(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.9)(react@19.1.1)) + specifier: ^15.4.5 + version: 15.4.5(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.9)(react@19.1.1)) '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -72,8 +72,8 @@ importers: specifier: ^2.1.1 version: 2.1.1 next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -98,7 +98,7 @@ importers: version: 3.1.2 '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -116,7 +116,7 @@ importers: version: 15.0.1 typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 apps/next: dependencies: @@ -124,8 +124,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -138,7 +138,7 @@ importers: version: link:../../packages/next-plugin '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -147,7 +147,7 @@ importers: version: 19.1.7(@types/react@19.1.9) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 apps/rsbuild: dependencies: @@ -165,11 +165,11 @@ importers: specifier: workspace:* version: link:../../packages/rsbuild-plugin '@rsbuild/core': - specifier: ^1.4.11 - version: 1.4.11 + specifier: ^1.4.14 + version: 1.4.14 '@rsbuild/plugin-react': - specifier: ^1.3.4 - version: 1.3.4(@rsbuild/core@1.4.11) + specifier: ^1.3.5 + version: 1.3.5(@rsbuild/core@1.4.14) apps/vite: dependencies: @@ -191,7 +191,7 @@ importers: version: link:../../packages/vite-plugin '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -200,13 +200,13 @@ importers: version: 19.1.7(@types/react@19.1.9) '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.7.0(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) apps/vite-lib: dependencies: @@ -218,38 +218,38 @@ importers: version: 19.1.1 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) devDependencies: '@devup-ui/vite-plugin': specifier: workspace:* version: link:../../packages/vite-plugin '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.7.0(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) benchmark/next-chakra-ui: dependencies: '@chakra-ui/react': - specifier: ^3.23.0 - version: 3.23.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^3.24.0 + version: 3.24.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@19.1.9)(react@19.1.1) next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -265,7 +265,7 @@ importers: devDependencies: '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -274,7 +274,7 @@ importers: version: 19.1.7(@types/react@19.1.9) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 benchmark/next-devup-ui: dependencies: @@ -282,8 +282,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -296,7 +296,7 @@ importers: version: link:../../packages/next-plugin '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -305,16 +305,16 @@ importers: version: 19.1.7(@types/react@19.1.9) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 benchmark/next-kuma-ui: dependencies: '@kuma-ui/core': specifier: ^1.5.9 - version: 1.5.9(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 1.5.9(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -324,10 +324,10 @@ importers: devDependencies: '@kuma-ui/next-plugin': specifier: ^1.3.3 - version: 1.3.3(@babel/core@7.28.0)(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0) + version: 1.3.3(@babel/core@7.28.0)(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0) '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -336,7 +336,7 @@ importers: version: 19.1.7(@types/react@19.1.9) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 benchmark/next-mui: dependencies: @@ -347,11 +347,11 @@ importers: specifier: ^11.14.1 version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) '@mui/material': - specifier: 7.2.0 - version: 7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 7.3.0 + version: 7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) next: - specifier: ^15.4.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.4.5 + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -367,7 +367,7 @@ importers: devDependencies: '@types/node': specifier: ^24 - version: 24.1.0 + version: 24.2.0 '@types/react': specifier: ^19 version: 19.1.9 @@ -376,7 +376,7 @@ importers: version: 19.1.7(@types/react@19.1.9) typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.2 bindings/devup-ui-wasm: {} @@ -399,38 +399,38 @@ importers: specifier: workspace:* version: link:../vite-plugin '@storybook/addon-docs': - specifier: ^9.0.18 - version: 9.0.18(@types/react@19.1.9)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) + specifier: ^9.1.1 + version: 9.1.1(@types/react@19.1.9)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) '@storybook/addon-onboarding': - specifier: ^9.0.18 - version: 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) + specifier: ^9.1.1 + version: 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) '@storybook/react-vite': - specifier: ^9.0.18 - version: 9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + specifier: ^9.1.1 + version: 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) '@types/react': specifier: ^19.1.9 version: 19.1.9 eslint-plugin-storybook: - specifier: ^9.0.18 - version: 9.0.18(eslint@9.32.0(jiti@2.5.1))(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3) + specifier: ^9.1.1 + version: 9.1.1(eslint@9.32.0(jiti@2.5.1))(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2) rollup-plugin-preserve-directives: specifier: ^0.4.0 - version: 0.4.0(rollup@4.46.1) + version: 0.4.0(rollup@4.46.2) storybook: - specifier: ^9.0.18 - version: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + specifier: ^9.1.1 + version: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) packages/next-plugin: dependencies: @@ -442,23 +442,23 @@ importers: version: 4.25.1 next: specifier: ^15.4 - version: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) devDependencies: '@types/webpack': specifier: ^5.28.5 version: 5.28.5 typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) packages/react: dependencies: @@ -474,16 +474,16 @@ importers: version: 19.1.9 rollup-plugin-preserve-directives: specifier: ^0.4.0 - version: 0.4.0(rollup@4.46.1) + version: 0.4.0(rollup@4.46.2) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) packages/reset-css: dependencies: @@ -493,16 +493,16 @@ importers: devDependencies: rollup-plugin-preserve-directives: specifier: ^0.4.0 - version: 0.4.0(rollup@4.46.1) + version: 0.4.0(rollup@4.46.2) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) packages/rsbuild-plugin: dependencies: @@ -511,20 +511,20 @@ importers: version: link:../../bindings/devup-ui-wasm devDependencies: '@rsbuild/core': - specifier: ^1.4.11 - version: 1.4.11 + specifier: ^1.4.14 + version: 1.4.14 typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) packages/vite-plugin: dependencies: @@ -533,14 +533,14 @@ importers: version: link:../../bindings/devup-ui-wasm vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) devDependencies: typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) packages/webpack-plugin: dependencies: @@ -552,17 +552,17 @@ importers: specifier: ^5.28.5 version: 5.28.5 typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.2 + version: 5.9.2 vite: specifier: ^6 - version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + version: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + version: 4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) packages: @@ -1144,8 +1144,8 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@chakra-ui/react@3.23.0': - resolution: {integrity: sha512-a5t5IY6xx+euxLE6+d9fyZTdYSkZFwlNgIO79FMFJnxHOINmbc8n2DWvmy3Qn8640GQoSvdD20lMYGwi+nM78w==} + '@chakra-ui/react@3.24.0': + resolution: {integrity: sha512-fkKXtPJ2WVwgDAL50W2yHLzGrv8YAY6g09yrIMU8LuUkTa+xSlQJadAtuqARc0TqxTha+RL2rjPZkWvL/f0I6w==} peerDependencies: '@emotion/react': '>=11' react: '>=18' @@ -1595,8 +1595,8 @@ packages: resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.2': - resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==} + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} '@floating-ui/dom@1.7.2': resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==} @@ -1862,8 +1862,8 @@ packages: '@microsoft/api-extractor-model@7.30.7': resolution: {integrity: sha512-TBbmSI2/BHpfR9YhQA7nH0nqVmGgJ0xH0Ex4D99/qBDAUpnhA2oikGmdXanbw9AWWY/ExBYIpkmY8dBHdla3YQ==} - '@microsoft/api-extractor@7.52.9': - resolution: {integrity: sha512-313nyhc6DSSMVKD43jZK6Yp5XbliGw5vjN7QOw1FHzR1V6DQ67k4dzkd3BSxMtWcm+cEs1Ux8rmDqots6EABFA==} + '@microsoft/api-extractor@7.52.10': + resolution: {integrity: sha512-LhKytJM5ZJkbHQVfW/3o747rZUNs/MGg6j/wt/9qwwqEOfvUDTYXXxIBuMgrRXhJ528p41iyz4zjBVHZU74Odg==} hasBin: true '@microsoft/tsdoc-config@0.17.1': @@ -1872,34 +1872,34 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@module-federation/error-codes@0.17.0': - resolution: {integrity: sha512-+pZ12frhaDqh4Xs/MQj4Vu4CAjnJTiEb8Z6fqPfn/TLHh4YLWMOzpzxGuMFDHqXwMb3o8FRAUhNB0eX2ZmhwTA==} + '@module-federation/error-codes@0.17.1': + resolution: {integrity: sha512-n6Elm4qKSjwAPxLUGtwnl7qt4y1dxB8OpSgVvXBIzqI9p27a3ZXshLPLnumlpPg1Qudaj8sLnSnFtt9yGpt5yQ==} - '@module-federation/runtime-core@0.17.0': - resolution: {integrity: sha512-MYwDDevYnBB9gXFfNOmJVIX5XZcbCHd0dral7gT7yVmlwOhbuGOLlm2dh2icwwdCYHA9AFDCfU9l1nJR4ex/ng==} + '@module-federation/runtime-core@0.17.1': + resolution: {integrity: sha512-LCtIFuKgWPQ3E+13OyrVpuTPOWBMI/Ggwsq1Q874YeT8Px28b8tJRCj09DjyRFyhpSPyV/uG80T6iXPAUoLIfQ==} - '@module-federation/runtime-tools@0.17.0': - resolution: {integrity: sha512-t4QcKfhmwOHedwByDKUlTQVw4+gPotySYPyNa8GFrBSr1F6wcGdGyOhzP+PdgpiJLIM03cB6V+IKGGHE28SfDQ==} + '@module-federation/runtime-tools@0.17.1': + resolution: {integrity: sha512-4kr6zTFFwGywJx6whBtxsc84V+COAuuBpEdEbPZN//YLXhNB0iz2IGsy9r9wDl+06h84bD+3dQ05l9euRLgXzQ==} - '@module-federation/runtime@0.17.0': - resolution: {integrity: sha512-eMtrtCSSV6neJpMmQ8WdFpYv93raSgsG5RiAPsKUuSCXfZ5D+yzvleZ+gPcEpFT9HokmloxAn0jep50/1upTQw==} + '@module-federation/runtime@0.17.1': + resolution: {integrity: sha512-vKEN32MvUbpeuB/s6UXfkHDZ9N5jFyDDJnj83UTJ8n4N1jHIJu9VZ6Yi4/Ac8cfdvU8UIK9bIbfVXWbUYZUDsw==} - '@module-federation/sdk@0.17.0': - resolution: {integrity: sha512-tjrNaYdDocHZsWu5iXlm83lwEK8A64r4PQB3/kY1cW1iOvggR2RESLAWPxRJXC2cLF8fg8LDKOBdgERZW1HPFA==} + '@module-federation/sdk@0.17.1': + resolution: {integrity: sha512-nlUcN6UTEi+3HWF+k8wPy7gH0yUOmCT+xNatihkIVR9REAnr7BUvHFGlPJmx7WEbLPL46+zJUbtQHvLzXwFhng==} - '@module-federation/webpack-bundler-runtime@0.17.0': - resolution: {integrity: sha512-o8XtXwqTDlqLgcALOfObcCbqXvUcSDHIEXrkcb4W+I8GJY7IqV0+x6rX4mJ3f59tca9qOF8zsZsOA6BU93Pvgw==} + '@module-federation/webpack-bundler-runtime@0.17.1': + resolution: {integrity: sha512-Swspdgf4PzcbvS9SNKFlBzfq8h/Qxwqjq/xRSqw1pqAZWondZQzwTTqPXhgrg0bFlz7qWjBS/6a8KuH/gRvGaQ==} - '@mui/core-downloads-tracker@7.2.0': - resolution: {integrity: sha512-d49s7kEgI5iX40xb2YPazANvo7Bx0BLg/MNRwv+7BVpZUzXj1DaVCKlQTDex3gy/0jsCb4w7AY2uH4t4AJvSog==} + '@mui/core-downloads-tracker@7.3.0': + resolution: {integrity: sha512-E4eWI90atwCf0rUjuzdlDRI6coA03ZEOAqk5qjEU9IdCLYRlOG65P7WBCpwFYOwDqzUVCHzx8U4q//csULLsOg==} - '@mui/material@7.2.0': - resolution: {integrity: sha512-NTuyFNen5Z2QY+I242MDZzXnFIVIR6ERxo7vntFi9K1wCgSwvIl0HcAO2OOydKqqKApE6omRiYhpny1ZhGuH7Q==} + '@mui/material@7.3.0': + resolution: {integrity: sha512-t0fb7+zEDTjnVe4hqzNvoGIopzGJ6AyN+qodGRENAFvL/UV3IT/vFIMHloFGnJ9DPmIgWaWasKgefPUU3OsgOQ==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^7.2.0 + '@mui/material-pigment-css': ^7.3.0 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1913,8 +1913,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@7.2.0': - resolution: {integrity: sha512-y6N1Yt3T5RMxVFnCh6+zeSWBuQdNDm5/UlM0EAYZzZR/1u+XKJWYQmbpx4e+F+1EpkYi3Nk8KhPiQDi83M3zIw==} + '@mui/private-theming@7.3.0': + resolution: {integrity: sha512-qU6rkH377L9byQrgXVW4rGsXVs7Q7H65Rj4IaITK3Vj2J5IP9nomMxJ77/w5kbJcEcaDEoLK42Ro3qMtHmvd4Q==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1923,8 +1923,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@7.2.0': - resolution: {integrity: sha512-yq08xynbrNYcB1nBcW9Fn8/h/iniM3ewRguGJXPIAbHvxEF7Pz95kbEEOAAhwzxMX4okhzvHmk0DFuC5ayvgIQ==} + '@mui/styled-engine@7.3.0': + resolution: {integrity: sha512-O8GNVzpr+ZGzHXCGlYXnc9iSgBldrX3UtPswvLEZX8fyjKfh6wYVvbc7Oa6FdFKdbWWXAnrJ9YTVBQsk2VXDSg==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -1936,8 +1936,8 @@ packages: '@emotion/styled': optional: true - '@mui/system@7.2.0': - resolution: {integrity: sha512-PG7cm/WluU6RAs+gNND2R9vDwNh+ERWxPkqTaiXQJGIFAyJ+VxhyKfzpdZNk0z0XdmBxxi9KhFOpgxjehf/O0A==} + '@mui/system@7.3.0': + resolution: {integrity: sha512-D4VclTIVbMxwrPeDF+PEfwCo9BC+4pYnM1OakA5iFznmE1QRVanyXtpUM3319IhlZolN82EG04iKk3XiiQZmHg==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -1952,16 +1952,16 @@ packages: '@types/react': optional: true - '@mui/types@7.4.4': - resolution: {integrity: sha512-p63yhbX52MO/ajXC7hDHJA5yjzJekvWD3q4YDLl1rSg+OXLczMYPvTuSuviPRCgRX8+E42RXz1D/dz9SxPSlWg==} + '@mui/types@7.4.5': + resolution: {integrity: sha512-ZPwlAOE3e8C0piCKbaabwrqZbW4QvWz0uapVPWya7fYj6PeDkl5sSJmomT7wjOcZGPB48G/a6Ubidqreptxz4g==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@7.2.0': - resolution: {integrity: sha512-O0i1GQL6MDzhKdy9iAu5Yr0Sz1wZjROH1o3aoztuivdCXqEeQYnEjTDiRLGuFxI9zrUbTHBwobMyQH5sNtyacw==} + '@mui/utils@7.3.0': + resolution: {integrity: sha512-YdL6ebwFV7PIOidIsees3HxkZ8hZjj+/atKLuI1ENwvJJ1puiEoLEmuDU72qSbKu911/GeFa7pc7Cn/ZmAj6yQ==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1973,11 +1973,11 @@ packages: '@napi-rs/wasm-runtime@1.0.1': resolution: {integrity: sha512-KVlQ/jgywZpixGCKMNwxStmmbYEMyokZpCf2YuIChhfJA2uqfAKNEM8INz7zzTo55iEXfBhIIs3VqYyqzDLj8g==} - '@next/env@15.4.4': - resolution: {integrity: sha512-SJKOOkULKENyHSYXE5+KiFU6itcIb6wSBjgM92meK0HVKpo94dNOLZVdLLuS7/BxImROkGoPsjR4EnuDucqiiA==} + '@next/env@15.4.5': + resolution: {integrity: sha512-ruM+q2SCOVCepUiERoxOmZY9ZVoecR3gcXNwCYZRvQQWRjhOiPJGmQ2fAiLR6YKWXcSAh7G79KEFxN3rwhs4LQ==} - '@next/mdx@15.4.4': - resolution: {integrity: sha512-DB64O/+wlcqr0XrATgGLTk3FqxdOgC035iC4wDlmG2QugNVq7godC6bLhVdNbo9uW7ib0tmgESXcG3JV7l9HiA==} + '@next/mdx@15.4.5': + resolution: {integrity: sha512-VQKJDAj/oRUG4vkxigCEEHalvXfTVtQyNsmIkXpFF+xSfN7GPnbvri2kzmMepWDA4ctaHKNEmvvEK53F4ZG3xg==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -1987,50 +1987,50 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@15.4.4': - resolution: {integrity: sha512-eVG55dnGwfUuG+TtnUCt+mEJ+8TGgul6nHEvdb8HEH7dmJIFYOCApAaFrIrxwtEq2Cdf+0m5sG1Np8cNpw9EAw==} + '@next/swc-darwin-arm64@15.4.5': + resolution: {integrity: sha512-84dAN4fkfdC7nX6udDLz9GzQlMUwEMKD7zsseXrl7FTeIItF8vpk1lhLEnsotiiDt+QFu3O1FVWnqwcRD2U3KA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.4.4': - resolution: {integrity: sha512-zqG+/8apsu49CltEj4NAmCGZvHcZbOOOsNoTVeIXphYWIbE4l6A/vuQHyqll0flU2o3dmYCXsBW5FmbrGDgljQ==} + '@next/swc-darwin-x64@15.4.5': + resolution: {integrity: sha512-CL6mfGsKuFSyQjx36p2ftwMNSb8PQog8y0HO/ONLdQqDql7x3aJb/wB+LA651r4we2pp/Ck+qoRVUeZZEvSurA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.4.4': - resolution: {integrity: sha512-LRD4l2lq4R+2QCHBQVC0wjxxkLlALGJCwigaJ5FSRSqnje+MRKHljQNZgDCaKUZQzO/TXxlmUdkZP/X3KNGZaw==} + '@next/swc-linux-arm64-gnu@15.4.5': + resolution: {integrity: sha512-1hTVd9n6jpM/thnDc5kYHD1OjjWYpUJrJxY4DlEacT7L5SEOXIifIdTye6SQNNn8JDZrcN+n8AWOmeJ8u3KlvQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.4.4': - resolution: {integrity: sha512-LsGUCTvuZ0690fFWerA4lnQvjkYg9gHo12A3wiPUR4kCxbx/d+SlwmonuTH2SWZI+RVGA9VL3N0S03WTYv6bYg==} + '@next/swc-linux-arm64-musl@15.4.5': + resolution: {integrity: sha512-4W+D/nw3RpIwGrqpFi7greZ0hjrCaioGErI7XHgkcTeWdZd146NNu1s4HnaHonLeNTguKnL2Urqvj28UJj6Gqw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.4.4': - resolution: {integrity: sha512-aOy5yNRpLL3wNiJVkFYl6w22hdREERNjvegE6vvtix8LHRdsTHhWTpgvcYdCK7AIDCQW5ATmzr9XkPHvSoAnvg==} + '@next/swc-linux-x64-gnu@15.4.5': + resolution: {integrity: sha512-N6Mgdxe/Cn2K1yMHge6pclffkxzbSGOydXVKYOjYqQXZYjLCfN/CuFkaYDeDHY2VBwSHyM2fUjYBiQCIlxIKDA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.4.4': - resolution: {integrity: sha512-FL7OAn4UkR8hKQRGBmlHiHinzOb07tsfARdGh7v0Z0jEJ3sz8/7L5bR23ble9E6DZMabSStqlATHlSxv1fuzAg==} + '@next/swc-linux-x64-musl@15.4.5': + resolution: {integrity: sha512-YZ3bNDrS8v5KiqgWE0xZQgtXgCTUacgFtnEgI4ccotAASwSvcMPDLua7BWLuTfucoRv6mPidXkITJLd8IdJplQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.4.4': - resolution: {integrity: sha512-eEdNW/TXwjYhOulQh0pffTMMItWVwKCQpbziSBmgBNFZIIRn2GTXrhrewevs8wP8KXWYMx8Z+mNU0X+AfvtrRg==} + '@next/swc-win32-arm64-msvc@15.4.5': + resolution: {integrity: sha512-9Wr4t9GkZmMNcTVvSloFtjzbH4vtT4a8+UHqDoVnxA5QyfWe6c5flTH1BIWPGNWSUlofc8dVJAE7j84FQgskvQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.4.4': - resolution: {integrity: sha512-SE5pYNbn/xZKMy1RE3pAs+4xD32OI4rY6mzJa4XUkp/ItZY+OMjIgilskmErt8ls/fVJ+Ihopi2QIeW6O3TrMw==} + '@next/swc-win32-x64-msvc@15.4.5': + resolution: {integrity: sha512-voWk7XtGvlsP+w8VBz7lqp8Y+dYw/MTI4KeS0gTVtfdhdJ5QwhXLmNrndFOin/MDoCvUaLWMkYKATaCoUkt2/A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2073,170 +2073,170 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.46.1': - resolution: {integrity: sha512-oENme6QxtLCqjChRUUo3S6X8hjCXnWmJWnedD7VbGML5GUtaOtAyx+fEEXnBXVf0CBZApMQU0Idwi0FmyxzQhw==} + '@rollup/rollup-android-arm-eabi@4.46.2': + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.46.1': - resolution: {integrity: sha512-OikvNT3qYTl9+4qQ9Bpn6+XHM+ogtFadRLuT2EXiFQMiNkXFLQfNVppi5o28wvYdHL2s3fM0D/MZJ8UkNFZWsw==} + '@rollup/rollup-android-arm64@4.46.2': + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.46.1': - resolution: {integrity: sha512-EFYNNGij2WllnzljQDQnlFTXzSJw87cpAs4TVBAWLdkvic5Uh5tISrIL6NRcxoh/b2EFBG/TK8hgRrGx94zD4A==} + '@rollup/rollup-darwin-arm64@4.46.2': + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.46.1': - resolution: {integrity: sha512-ZaNH06O1KeTug9WI2+GRBE5Ujt9kZw4a1+OIwnBHal92I8PxSsl5KpsrPvthRynkhMck4XPdvY0z26Cym/b7oA==} + '@rollup/rollup-darwin-x64@4.46.2': + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.46.1': - resolution: {integrity: sha512-n4SLVebZP8uUlJ2r04+g2U/xFeiQlw09Me5UFqny8HGbARl503LNH5CqFTb5U5jNxTouhRjai6qPT0CR5c/Iig==} + '@rollup/rollup-freebsd-arm64@4.46.2': + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.46.1': - resolution: {integrity: sha512-8vu9c02F16heTqpvo3yeiu7Vi1REDEC/yES/dIfq3tSXe6mLndiwvYr3AAvd1tMNUqE9yeGYa5w7PRbI5QUV+w==} + '@rollup/rollup-freebsd-x64@4.46.2': + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.46.1': - resolution: {integrity: sha512-K4ncpWl7sQuyp6rWiGUvb6Q18ba8mzM0rjWJ5JgYKlIXAau1db7hZnR0ldJvqKWWJDxqzSLwGUhA4jp+KqgDtQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.46.1': - resolution: {integrity: sha512-YykPnXsjUjmXE6j6k2QBBGAn1YsJUix7pYaPLK3RVE0bQL2jfdbfykPxfF8AgBlqtYbfEnYHmLXNa6QETjdOjQ==} + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.46.1': - resolution: {integrity: sha512-kKvqBGbZ8i9pCGW3a1FH3HNIVg49dXXTsChGFsHGXQaVJPLA4f/O+XmTxfklhccxdF5FefUn2hvkoGJH0ScWOA==} + '@rollup/rollup-linux-arm64-gnu@4.46.2': + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.46.1': - resolution: {integrity: sha512-zzX5nTw1N1plmqC9RGC9vZHFuiM7ZP7oSWQGqpbmfjK7p947D518cVK1/MQudsBdcD84t6k70WNczJOct6+hdg==} + '@rollup/rollup-linux-arm64-musl@4.46.2': + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.46.1': - resolution: {integrity: sha512-O8CwgSBo6ewPpktFfSDgB6SJN9XDcPSvuwxfejiddbIC/hn9Tg6Ai0f0eYDf3XvB/+PIWzOQL+7+TZoB8p9Yuw==} + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.46.1': - resolution: {integrity: sha512-JnCfFVEKeq6G3h3z8e60kAp8Rd7QVnWCtPm7cxx+5OtP80g/3nmPtfdCXbVl063e3KsRnGSKDHUQMydmzc/wBA==} + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.46.1': - resolution: {integrity: sha512-dVxuDqS237eQXkbYzQQfdf/njgeNw6LZuVyEdUaWwRpKHhsLI+y4H/NJV8xJGU19vnOJCVwaBFgr936FHOnJsQ==} + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.46.1': - resolution: {integrity: sha512-CvvgNl2hrZrTR9jXK1ye0Go0HQRT6ohQdDfWR47/KFKiLd5oN5T14jRdUVGF4tnsN8y9oSfMOqH6RuHh+ck8+w==} + '@rollup/rollup-linux-riscv64-musl@4.46.2': + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.46.1': - resolution: {integrity: sha512-x7ANt2VOg2565oGHJ6rIuuAon+A8sfe1IeUx25IKqi49OjSr/K3awoNqr9gCwGEJo9OuXlOn+H2p1VJKx1psxA==} + '@rollup/rollup-linux-s390x-gnu@4.46.2': + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.46.1': - resolution: {integrity: sha512-9OADZYryz/7E8/qt0vnaHQgmia2Y0wrjSSn1V/uL+zw/i7NUhxbX4cHXdEQ7dnJgzYDS81d8+tf6nbIdRFZQoQ==} + '@rollup/rollup-linux-x64-gnu@4.46.2': + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.46.1': - resolution: {integrity: sha512-NuvSCbXEKY+NGWHyivzbjSVJi68Xfq1VnIvGmsuXs6TCtveeoDRKutI5vf2ntmNnVq64Q4zInet0UDQ+yMB6tA==} + '@rollup/rollup-linux-x64-musl@4.46.2': + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.46.1': - resolution: {integrity: sha512-mWz+6FSRb82xuUMMV1X3NGiaPFqbLN9aIueHleTZCc46cJvwTlvIh7reQLk4p97dv0nddyewBhwzryBHH7wtPw==} + '@rollup/rollup-win32-arm64-msvc@4.46.2': + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.46.1': - resolution: {integrity: sha512-7Thzy9TMXDw9AU4f4vsLNBxh7/VOKuXi73VH3d/kHGr0tZ3x/ewgL9uC7ojUKmH1/zvmZe2tLapYcZllk3SO8Q==} + '@rollup/rollup-win32-ia32-msvc@4.46.2': + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.46.1': - resolution: {integrity: sha512-7GVB4luhFmGUNXXJhH2jJwZCFB3pIOixv2E3s17GQHBFUOQaISlt7aGcQgqvCaDSxTZJUzlK/QJ1FN8S94MrzQ==} + '@rollup/rollup-win32-x64-msvc@4.46.2': + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] - '@rsbuild/core@1.4.11': - resolution: {integrity: sha512-G5x7jUGxVw0Z984IEKmOP/tW8gslhUjN81D3fuogKb95hlESWpc+LuckuA5iO1ydbLVrhuYKLv1tC8wTAIDsqA==} + '@rsbuild/core@1.4.14': + resolution: {integrity: sha512-9ExdIME+/FFEZ30CKGLgNqjyISA8ww/n0+1qd8M69oLoodPuoqIiTMNu1fJVbErXsjje/Kd3MaodlyqGfa4RLw==} engines: {node: '>=16.10.0'} hasBin: true - '@rsbuild/plugin-react@1.3.4': - resolution: {integrity: sha512-PeLmPkUUm+t2cBGBe1WHhw1NNPHDFnKiXnRUGM5WSSlSZWfSi96RbeLqrm+gH6TaefdyvmLvurJu+7tSSUrQjQ==} + '@rsbuild/plugin-react@1.3.5': + resolution: {integrity: sha512-L/GoHgJV4j+EQbI4KOhe5EscM0OHgnSat1eR0Nt5P3JZxpJV2ryO5Yfx5jElPWOkYZZCuk+EWhHWDQ4CkeC5BQ==} peerDependencies: '@rsbuild/core': 1.x - '@rspack/binding-darwin-arm64@1.4.10': - resolution: {integrity: sha512-PraYGuVSzvEwdoYC8T70qI/8j1QeUe2sysiWmjSdxUpxJsDfw35hK9TfxULeAJULlAUAiiXs03hdZk29DBc3ow==} + '@rspack/binding-darwin-arm64@1.4.11': + resolution: {integrity: sha512-PrmBVhR8MC269jo6uQ+BMy1uwIDx0HAJYLQRQur8gXiehWabUBCRg/d4U9KR7rLzdaSScRyc5JWXR52T7/4MfA==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.4.10': - resolution: {integrity: sha512-rWTSJ08TE0uqUjqAHkTmWqJu+FLSJ70A199Fk9k/FLZTS8UtHjuzZW7rv4qIN2nwJJLherxFUnP6y69cHuaGNw==} + '@rspack/binding-darwin-x64@1.4.11': + resolution: {integrity: sha512-YIV8Wzy+JY0SoSsVtN4wxFXOjzxxVPnVXNswrrfqVUTPr9jqGOFYUWCGpbt8lcCgfuBFm6zN8HpOsKm1xUNsVA==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.4.10': - resolution: {integrity: sha512-cs6yu250FzRU1hl+02VLoJRdzbAveTOqvREeHgqL5AiTc6q1dQo1IZ16/Qt4+g0DMjnvM66pELRIO2nphXL8aA==} + '@rspack/binding-linux-arm64-gnu@1.4.11': + resolution: {integrity: sha512-ms6uwECUIcu+6e82C5HJhRMHnfsI+l33v7XQezntzRPN0+sG3EpikEoT7SGbgt4vDwaWLR7wS20suN4qd5r3GA==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.4.10': - resolution: {integrity: sha512-NnOAoWkpZvOa+xM7NAJg25O+tSKt6xCXoga+gOw5XPni1NxHDc3PNh5bU6fAmc2Z29YLLdxeVqPmIDfdk1EkDg==} + '@rspack/binding-linux-arm64-musl@1.4.11': + resolution: {integrity: sha512-9evq0DOdxMN/H8VM8ZmyY9NSuBgILNVV6ydBfVPMHPx4r1E7JZGpWeKDegZcS5Erw3sS9kVSIxyX78L5PDzzKw==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.4.10': - resolution: {integrity: sha512-FcaBqMclADWiqX+Mez15kggwaVYZkoEqDiQwYRpYDbBMsiJEtfp41GnNRstTWxYxFbcmuWoZl2cYy+LepR21ag==} + '@rspack/binding-linux-x64-gnu@1.4.11': + resolution: {integrity: sha512-bHYFLxPPYBOSaHdQbEoCYGMQ1gOrEWj7Mro/DLfSHZi1a0okcQ2Q1y0i1DczReim3ZhLGNrK7k1IpFXCRbAobQ==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.4.10': - resolution: {integrity: sha512-vgRQhCw+C/Nxv6MZVNUkPzSXs6kIWHIrGKUvOM1ceeAkT+jNFEQdukkQ5LsYgEqEwP9ezWubxN3IGrMxyimlPw==} + '@rspack/binding-linux-x64-musl@1.4.11': + resolution: {integrity: sha512-wrm4E7q2k4+cwT6Uhp6hIQ3eUe/YoaUttj6j5TqHYZX6YeLrNPtD9+ne6lQQ17BV8wmm6NZsmoFIJ5xIptpRhQ==} cpu: [x64] os: [linux] - '@rspack/binding-wasm32-wasi@1.4.10': - resolution: {integrity: sha512-lk647+Ob3yvVS2FgW0vCfo/gz9h0Q7v9HGBFcsD1uW0/tSqXMa2s9ZvIn+B7S9tRgIoosXEAuq8NeCXKGWVj5Q==} + '@rspack/binding-wasm32-wasi@1.4.11': + resolution: {integrity: sha512-hiYxHZjaZ17wQtXyLCK0IdtOvMWreGVTiGsaHCxyeT+SldDG+r16bXNjmlqfZsjlfl1mkAqKz1dg+mMX28OTqw==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.4.10': - resolution: {integrity: sha512-9mB3kh4pKaY4wFosZwuxb5EUtt7vv/uKW3OF4TJDC35bH7r54s+YYpHyXROT304r6URl4b6HNHlysL2m7BLihg==} + '@rspack/binding-win32-arm64-msvc@1.4.11': + resolution: {integrity: sha512-+HF/mnjmTr8PC1dccRt1bkrD2tPDGeqvXC1BBLYd/Klq1VbtIcnrhfmvQM6KaXbiLcY9VWKzcZPOTmnyZ8TaHQ==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.4.10': - resolution: {integrity: sha512-DPlyLZDUWkNcFI7zp1BQVVnihd4j/hCIbxqvIKvUt7whIVYMP52i8lCsa52uNGBSj7BcbcKAFElXC9dHVvoQGA==} + '@rspack/binding-win32-ia32-msvc@1.4.11': + resolution: {integrity: sha512-EU2fQGwrRfwFd/tcOInlD0jy6gNQE4Q3Ayj0Is+cX77sbhPPyyOz0kZDEaQ4qaN2VU8w4Hu/rrD7c0GAKLFvCw==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.4.10': - resolution: {integrity: sha512-FEE6OM0Wh7nj90+1ARXojT0Dnqox9UlIUIj7MQmX09yeMtckR+HITeq75F8y0l7HUvKOl2zQovmenk1KgyJV8Q==} + '@rspack/binding-win32-x64-msvc@1.4.11': + resolution: {integrity: sha512-1Nc5ZzWqfvE+iJc47qtHFzYYnHsC3awavXrCo74GdGip1vxtksM3G30BlvAQHHVtEmULotWqPbjZpflw/Xk9Ag==} cpu: [x64] os: [win32] - '@rspack/binding@1.4.10': - resolution: {integrity: sha512-awiXN7qTTTLWFThbJFL+M4k1if4sb17xKA5TaHbbxs0qKSlpe3adwNrNHaNU2WOQz+PbuF++OMyd+4gUusKuVg==} + '@rspack/binding@1.4.11': + resolution: {integrity: sha512-maGl/zRwnl0QVwkBCkgjn5PH20L9HdlRIdkYhEsfTepy5x2QZ0ti/0T49djjTJQrqb+S1i6wWQymMMMMMsxx6Q==} - '@rspack/core@1.4.10': - resolution: {integrity: sha512-eK3H328pihiM1323OlaClKJ9WlqgGBZpcR5AqFoWsG0KD01tKCJOeZEgtCY6paRLrsQrEJwBrLntkG0fE7WNGg==} + '@rspack/core@1.4.11': + resolution: {integrity: sha512-JtKnL6p7Kc/YgWQJF3Woo4OccbgKGyT/4187W4dyex8BMkdQcbqCNIdi6dFk02hwQzxpOOxRSBI4hlGRbz7oYQ==} engines: {node: '>=16.0.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -2279,26 +2279,26 @@ packages: '@rushstack/ts-command-line@5.0.2': resolution: {integrity: sha512-+AkJDbu1GFMPIU8Sb7TLVXDv/Q7Mkvx+wAjEl8XiXVVq+p1FmWW6M3LYpJMmoHNckSofeMecgWg5lfMwNAAsEQ==} - '@storybook/addon-docs@9.0.18': - resolution: {integrity: sha512-1mLhaRDx8s1JAF51o56OmwMnIsg4BOQJ8cn+4wbMjh14pDFALrovlFl/BpAXnV1VaZqHjCB4ZWuP+y5CwXEpeQ==} + '@storybook/addon-docs@9.1.1': + resolution: {integrity: sha512-CzgvTy3V5X4fe+VPkiZVwPKARlpEBDAKte8ajLAlHJQLFpADdYrBRQ0se6I+kcxva7rZQzdhuH7qjXMDRVcfnw==} peerDependencies: - storybook: ^9.0.18 + storybook: ^9.1.1 - '@storybook/addon-onboarding@9.0.18': - resolution: {integrity: sha512-A079BfJ3g3wYOtAuq9cPf2l6JHo+6UzEw1A2AbSNBBNP4hKfXpHcLadIVwuyOxuKjDUWzY5f4dJa3hCMurHXGQ==} + '@storybook/addon-onboarding@9.1.1': + resolution: {integrity: sha512-QHkirYjgHqhJMmD2riVJ4qvkwNif79phEJuMd+Zna2niT5MMkmFSd+lfLgbEYr6ufbL2OWnsoUmxRY5s3RgKQw==} peerDependencies: - storybook: ^9.0.18 + storybook: ^9.1.1 - '@storybook/builder-vite@9.0.18': - resolution: {integrity: sha512-lfbrozA6UPVizDrgbPEe04WMtxIraESwUkmwW3+Lxh8rKEUj5cXngcrJUW+meQNNaggdZZWEqeEtweuaLIR+Hg==} + '@storybook/builder-vite@9.1.1': + resolution: {integrity: sha512-rM0QOfykr39SFBRQnoAa5PU3xTHnJE1R5tigvjved1o7sumcfjrhqmEyAgNZv1SoRztOO92jwkTi7En6yheOKg==} peerDependencies: - storybook: ^9.0.18 + storybook: ^9.1.1 vite: ^6 - '@storybook/csf-plugin@9.0.18': - resolution: {integrity: sha512-MQ3WwXnMua5sX0uYyuO7dC5WOWuJCLqf8CsOn3zQ2ptNoH6hD7DFx5ZOa1uD6VxIuJ3LkA+YqfSRBncomJoRnA==} + '@storybook/csf-plugin@9.1.1': + resolution: {integrity: sha512-MwdtvzzFpkard06pCfDrgRXZiBfWAQICdKh7kzpv1L8SwewsRgUr5WZQuEAVfYdSvCFJbWnNN4KirzPhe5ENCg==} peerDependencies: - storybook: ^9.0.18 + storybook: ^9.1.1 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -2310,29 +2310,29 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/react-dom-shim@9.0.18': - resolution: {integrity: sha512-qGR/d9x9qWRRxITaBVQkMnb73kwOm+N8fkbZRxc7U4lxupXRvkMIDh247nn71SYVBnvbh6//AL7P6ghiPWZYjA==} + '@storybook/react-dom-shim@9.1.1': + resolution: {integrity: sha512-L+HCOXvOP+PwKrVS8od9aF+F4hO7zA0Nt1vnpbg2LeAHCxYghrjFVtioe7gSlzrlYdozQrPLY98a4OkDB7KGrw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.18 + storybook: ^9.1.1 - '@storybook/react-vite@9.0.18': - resolution: {integrity: sha512-dHzUoeY0/S35TvSYxCkPuBlNQZx4Zj9QDhAZ0qdv+nSll++uPgqSe2y2vF+2p+XVYhjDn+YX5LORv00YtuQezg==} + '@storybook/react-vite@9.1.1': + resolution: {integrity: sha512-9rMjAqgrcuVF/GS171fYSLuUs5QC3e0WPpIm2JOP7Z9qWctM1ApVb9UCYY7ZNl9Gc3kvjKsK5J1+A4Zw4a2+ag==} engines: {node: '>=20.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.18 + storybook: ^9.1.1 vite: ^6 - '@storybook/react@9.0.18': - resolution: {integrity: sha512-CCH6Vj/O6I07PrhCHxc1pvCWYMfZhRzK7CVHAtrBP9xxnYA7OoXhM2wymuDogml5HW1BKtyVMeQ3oWZXFNgDXQ==} + '@storybook/react@9.1.1': + resolution: {integrity: sha512-F5vRFxDf1fzM6CG88olrzEH03iP6C1YAr4/nr5bkLNs6TNm9Hh7KmRVG2jFtoy5w9uCwbQ9RdY+TrRbBI7n67g==} engines: {node: '>=20.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.18 + storybook: ^9.1.1 typescript: '>= 4.9.x' peerDependenciesMeta: typescript: @@ -2344,8 +2344,8 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tanstack/eslint-plugin-query@5.81.2': - resolution: {integrity: sha512-h4k6P6fm5VhKP5NkK+0TTVpGGyKQdx6tk7NYYG7J7PkSu7ClpLgBihw7yzK8N3n5zPaF3IMyErxfoNiXWH/3/A==} + '@tanstack/eslint-plugin-query@5.83.1': + resolution: {integrity: sha512-tdkpPFfzkTksN9BIlT/qjixSAtKrsW6PUVRwdKWaOcag7DrD1vpki3UzzdfMQGDRGeg1Ue1Dg+rcl5FJGembNg==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2399,8 +2399,8 @@ packages: '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} '@types/body-scroll-lock@3.1.2': resolution: {integrity: sha512-ELhtuphE/YbhEcpBf/rIV9Tl3/O0A0gpCVD+oYFSS8bWstHFJUgA4nNw1ZakVlRC38XaQEIsBogUZKWIPBvpfQ==} @@ -2453,8 +2453,8 @@ packages: '@types/node@20.19.9': resolution: {integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==} - '@types/node@24.1.0': - resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==} + '@types/node@24.2.0': + resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2496,63 +2496,63 @@ packages: '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} - '@typescript-eslint/eslint-plugin@8.38.0': - resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} + '@typescript-eslint/eslint-plugin@8.39.0': + resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.38.0 + '@typescript-eslint/parser': ^8.39.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.38.0': - resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} + '@typescript-eslint/parser@8.39.0': + resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.38.0': - resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} + '@typescript-eslint/project-service@8.39.0': + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.38.0': - resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} + '@typescript-eslint/scope-manager@8.39.0': + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.38.0': - resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} + '@typescript-eslint/tsconfig-utils@8.39.0': + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.38.0': - resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} + '@typescript-eslint/type-utils@8.39.0': + resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.38.0': - resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} + '@typescript-eslint/types@8.39.0': + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.38.0': - resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} + '@typescript-eslint/typescript-estree@8.39.0': + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.38.0': - resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} + '@typescript-eslint/utils@8.39.0': + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.38.0': - resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} + '@typescript-eslint/visitor-keys@8.39.0': + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3032,8 +3032,8 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} - ast-v8-to-istanbul@0.3.3: - resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==} + ast-v8-to-istanbul@0.3.4: + resolution: {integrity: sha512-cxrAnZNLBnQwBPByK4CeDaw5sWZtMilJE/Q3iDA0aamgaIVNDF9T6K2/8DfYDZEejZ2jNnDrG9m8MY72HFd0KA==} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} @@ -3240,8 +3240,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.44.0: - resolution: {integrity: sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==} + core-js-compat@3.45.0: + resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} core-js@3.44.0: resolution: {integrity: sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==} @@ -3349,8 +3349,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.192: - resolution: {integrity: sha512-rP8Ez0w7UNw/9j5eSXCe10o1g/8B1P5SM90PCCMVkIRQn2R0LEHWz4Eh9RnxkniuDe1W0cTSOB3MLlkTGDcuCg==} + electron-to-chromium@1.5.195: + resolution: {integrity: sha512-URclP0iIaDUzqcAyV1v2PgduJ9N0IdXmWsnPzPfelvBmjmZzEy6xJcjb1cXj+TbYqXgtLrjHEoaSIdTYhw4ezg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3486,12 +3486,12 @@ packages: peerDependencies: eslint: '>=5.0.0' - eslint-plugin-storybook@9.0.18: - resolution: {integrity: sha512-f2FnWjTQkM9kYtbpChVuEo8F04QATBiuxYUdSBR58lWb3NprPKBfmRZC1dTA5NVeLY6geXduDLIPXefwXFz6Ag==} + eslint-plugin-storybook@9.1.1: + resolution: {integrity: sha512-g4/i9yW6cl4TCEMzYyALNvO3d/jB6TDvSs/Pmye7dHDrra2B7dgZJGzmEWILD62brVrLVHNoXgy2dNPtx80kmw==} engines: {node: '>=20.0.0'} peerDependencies: eslint: '>=8' - storybook: ^9.0.18 + storybook: ^9.1.1 eslint-plugin-unused-imports@4.1.4: resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} @@ -4414,9 +4414,6 @@ packages: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -4470,8 +4467,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@15.4.4: - resolution: {integrity: sha512-kNcubvJjOL9yUOfwtZF3HfDhuhp+kVD+FM2A6Tyua1eI/xfmY4r/8ZS913MMz+oWKDlbps/dQOWdDricuIkXLw==} + next@15.4.5: + resolution: {integrity: sha512-nJ4v+IO9CPmbmcvsPebIoX3Q+S7f6Fu08/dEWu0Ttfa+wVwQRh9epcmsyCPjmL2b8MxC+CkBR97jgDhUUztI3g==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -4894,8 +4891,8 @@ packages: peerDependencies: rollup: 2.x || 3.x || 4.x - rollup@4.46.1: - resolution: {integrity: sha512-33xGNBsDJAkzt0PvninskHlWnTIPgDtTwhg0U38CUoNP/7H6wI2Cz6dUeoNPbjdTdsYTGuiFFASuUOWovH0SyQ==} + rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5042,8 +5039,8 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - storybook@9.0.18: - resolution: {integrity: sha512-ruxpEpizwoYQTt1hBOrWyp9trPYWD9Apt1TJ37rs1rzmNQWpSNGJDMg91JV4mUhBChzRvnid/oRBFFCWJz/dfw==} + storybook@9.1.1: + resolution: {integrity: sha512-q6GaGZdVZh6rjOdGnc+4hGTu8ECyhyjQDw4EZNxKtQjDO8kqtuxbFm8l/IP2l+zLVJAatGWKkaX9Qcd7QZxz+Q==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -5265,20 +5262,20 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.38.0: - resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==} + typescript-eslint@8.39.0: + resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true @@ -5292,8 +5289,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -6301,7 +6298,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) - core-js-compat: 3.44.0 + core-js-compat: 3.45.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -6363,7 +6360,7 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@chakra-ui/react@3.23.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@chakra-ui/react@3.24.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@ark-ui/react': 5.18.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@emotion/is-prop-valid': 1.3.1 @@ -6806,13 +6803,13 @@ snapshots: '@eslint/core': 0.15.1 levn: 0.4.1 - '@floating-ui/core@1.7.2': + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 '@floating-ui/dom@1.7.2': dependencies: - '@floating-ui/core': 1.7.2 + '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 '@floating-ui/utils@0.2.10': {} @@ -6941,14 +6938,14 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))': dependencies: glob: 10.4.5 magic-string: 0.30.17 - react-docgen-typescript: 2.4.0(typescript@5.8.3) - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + react-docgen-typescript: 2.4.0(typescript@5.9.2) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@jridgewell/gen-mapping@0.3.12': dependencies: @@ -6969,10 +6966,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 - '@kuma-ui/babel-plugin@1.2.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': + '@kuma-ui/babel-plugin@1.2.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@babel/core': 7.28.0 - '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) '@kuma-ui/sheet': 1.3.1 '@kuma-ui/system': 1.7.6 transitivePeerDependencies: @@ -6981,11 +6978,11 @@ snapshots: - react - supports-color - '@kuma-ui/compiler@1.3.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': + '@kuma-ui/compiler@1.3.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@babel/core': 7.28.0 - '@kuma-ui/babel-plugin': 1.2.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) - '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + '@kuma-ui/babel-plugin': 1.2.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) '@kuma-ui/sheet': 1.3.1 '@kuma-ui/system': 1.7.6 '@kuma-ui/wasm': 1.0.3 @@ -6996,7 +6993,7 @@ snapshots: - react - supports-color - '@kuma-ui/core@1.5.9(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': + '@kuma-ui/core@1.5.9(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@kuma-ui/sheet': 1.3.1 '@kuma-ui/system': 1.7.6 @@ -7005,18 +7002,18 @@ snapshots: stylis: 4.3.6 optionalDependencies: '@types/react': 19.1.9 - next: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@kuma-ui/next-plugin@1.3.3(@babel/core@7.28.0)(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0)': + '@kuma-ui/next-plugin@1.3.3(@babel/core@7.28.0)(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0)': dependencies: '@babel/preset-env': 7.28.0(@babel/core@7.28.0) '@babel/preset-react': 7.27.1(@babel/core@7.28.0) '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) - '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) - '@kuma-ui/webpack-plugin': 1.4.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0) + '@kuma-ui/core': 1.5.9(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + '@kuma-ui/webpack-plugin': 1.4.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0) babel-loader: 9.2.1(@babel/core@7.28.0)(webpack@5.101.0) browserslist: 4.21.5 - next: 15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 webpack: 5.101.0 optionalDependencies: @@ -7036,9 +7033,9 @@ snapshots: '@kuma-ui/wasm@1.0.3': {} - '@kuma-ui/webpack-plugin@1.4.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0)': + '@kuma-ui/webpack-plugin@1.4.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.0)': dependencies: - '@kuma-ui/compiler': 1.3.3(@types/react@19.1.9)(next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + '@kuma-ui/compiler': 1.3.3(@types/react@19.1.9)(next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) '@kuma-ui/sheet': 1.3.1 '@kuma-ui/system': 1.7.6 esbuild: 0.18.20 @@ -7112,25 +7109,25 @@ snapshots: '@types/react': 19.1.9 react: 19.1.1 - '@microsoft/api-extractor-model@7.30.7(@types/node@24.1.0)': + '@microsoft/api-extractor-model@7.30.7(@types/node@24.2.0)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@24.1.0) + '@rushstack/node-core-library': 5.14.0(@types/node@24.2.0) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.9(@types/node@24.1.0)': + '@microsoft/api-extractor@7.52.10(@types/node@24.2.0)': dependencies: - '@microsoft/api-extractor-model': 7.30.7(@types/node@24.1.0) + '@microsoft/api-extractor-model': 7.30.7(@types/node@24.2.0) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@24.1.0) + '@rushstack/node-core-library': 5.14.0(@types/node@24.2.0) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.4(@types/node@24.1.0) - '@rushstack/ts-command-line': 5.0.2(@types/node@24.1.0) + '@rushstack/terminal': 0.15.4(@types/node@24.2.0) + '@rushstack/ts-command-line': 5.0.2(@types/node@24.2.0) lodash: 4.17.21 - minimatch: 3.0.8 + minimatch: 10.0.3 resolve: 1.22.10 semver: 7.5.4 source-map: 0.6.1 @@ -7147,40 +7144,40 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@module-federation/error-codes@0.17.0': {} + '@module-federation/error-codes@0.17.1': {} - '@module-federation/runtime-core@0.17.0': + '@module-federation/runtime-core@0.17.1': dependencies: - '@module-federation/error-codes': 0.17.0 - '@module-federation/sdk': 0.17.0 + '@module-federation/error-codes': 0.17.1 + '@module-federation/sdk': 0.17.1 - '@module-federation/runtime-tools@0.17.0': + '@module-federation/runtime-tools@0.17.1': dependencies: - '@module-federation/runtime': 0.17.0 - '@module-federation/webpack-bundler-runtime': 0.17.0 + '@module-federation/runtime': 0.17.1 + '@module-federation/webpack-bundler-runtime': 0.17.1 - '@module-federation/runtime@0.17.0': + '@module-federation/runtime@0.17.1': dependencies: - '@module-federation/error-codes': 0.17.0 - '@module-federation/runtime-core': 0.17.0 - '@module-federation/sdk': 0.17.0 + '@module-federation/error-codes': 0.17.1 + '@module-federation/runtime-core': 0.17.1 + '@module-federation/sdk': 0.17.1 - '@module-federation/sdk@0.17.0': {} + '@module-federation/sdk@0.17.1': {} - '@module-federation/webpack-bundler-runtime@0.17.0': + '@module-federation/webpack-bundler-runtime@0.17.1': dependencies: - '@module-federation/runtime': 0.17.0 - '@module-federation/sdk': 0.17.0 + '@module-federation/runtime': 0.17.1 + '@module-federation/sdk': 0.17.1 - '@mui/core-downloads-tracker@7.2.0': {} + '@mui/core-downloads-tracker@7.3.0': {} - '@mui/material@7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@mui/material@7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.28.2 - '@mui/core-downloads-tracker': 7.2.0 - '@mui/system': 7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) - '@mui/types': 7.4.4(@types/react@19.1.9) - '@mui/utils': 7.2.0(@types/react@19.1.9)(react@19.1.1) + '@mui/core-downloads-tracker': 7.3.0 + '@mui/system': 7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) + '@mui/types': 7.4.5(@types/react@19.1.9) + '@mui/utils': 7.3.0(@types/react@19.1.9)(react@19.1.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.1.9) clsx: 2.1.1 @@ -7195,16 +7192,16 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) '@types/react': 19.1.9 - '@mui/private-theming@7.2.0(@types/react@19.1.9)(react@19.1.1)': + '@mui/private-theming@7.3.0(@types/react@19.1.9)(react@19.1.1)': dependencies: '@babel/runtime': 7.28.2 - '@mui/utils': 7.2.0(@types/react@19.1.9)(react@19.1.1) + '@mui/utils': 7.3.0(@types/react@19.1.9)(react@19.1.1) prop-types: 15.8.1 react: 19.1.1 optionalDependencies: '@types/react': 19.1.9 - '@mui/styled-engine@7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(react@19.1.1)': + '@mui/styled-engine@7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.28.2 '@emotion/cache': 11.14.0 @@ -7217,13 +7214,13 @@ snapshots: '@emotion/react': 11.14.0(@types/react@19.1.9)(react@19.1.1) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) - '@mui/system@7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1)': + '@mui/system@7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1)': dependencies: '@babel/runtime': 7.28.2 - '@mui/private-theming': 7.2.0(@types/react@19.1.9)(react@19.1.1) - '@mui/styled-engine': 7.2.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(react@19.1.1) - '@mui/types': 7.4.4(@types/react@19.1.9) - '@mui/utils': 7.2.0(@types/react@19.1.9)(react@19.1.1) + '@mui/private-theming': 7.3.0(@types/react@19.1.9)(react@19.1.1) + '@mui/styled-engine': 7.3.0(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1))(react@19.1.1) + '@mui/types': 7.4.5(@types/react@19.1.9) + '@mui/utils': 7.3.0(@types/react@19.1.9)(react@19.1.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -7233,16 +7230,16 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.9)(react@19.1.1))(@types/react@19.1.9)(react@19.1.1) '@types/react': 19.1.9 - '@mui/types@7.4.4(@types/react@19.1.9)': + '@mui/types@7.4.5(@types/react@19.1.9)': dependencies: '@babel/runtime': 7.28.2 optionalDependencies: '@types/react': 19.1.9 - '@mui/utils@7.2.0(@types/react@19.1.9)(react@19.1.1)': + '@mui/utils@7.3.0(@types/react@19.1.9)(react@19.1.1)': dependencies: '@babel/runtime': 7.28.2 - '@mui/types': 7.4.4(@types/react@19.1.9) + '@mui/types': 7.4.5(@types/react@19.1.9) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 @@ -7258,37 +7255,37 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true - '@next/env@15.4.4': {} + '@next/env@15.4.5': {} - '@next/mdx@15.4.4(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.9)(react@19.1.1))': + '@next/mdx@15.4.5(@mdx-js/loader@3.1.0(acorn@8.15.0)(webpack@5.101.0))(@mdx-js/react@3.1.0(@types/react@19.1.9)(react@19.1.1))': dependencies: source-map: 0.7.6 optionalDependencies: '@mdx-js/loader': 3.1.0(acorn@8.15.0)(webpack@5.101.0) '@mdx-js/react': 3.1.0(@types/react@19.1.9)(react@19.1.1) - '@next/swc-darwin-arm64@15.4.4': + '@next/swc-darwin-arm64@15.4.5': optional: true - '@next/swc-darwin-x64@15.4.4': + '@next/swc-darwin-x64@15.4.5': optional: true - '@next/swc-linux-arm64-gnu@15.4.4': + '@next/swc-linux-arm64-gnu@15.4.5': optional: true - '@next/swc-linux-arm64-musl@15.4.4': + '@next/swc-linux-arm64-musl@15.4.5': optional: true - '@next/swc-linux-x64-gnu@15.4.4': + '@next/swc-linux-x64-gnu@15.4.5': optional: true - '@next/swc-linux-x64-musl@15.4.4': + '@next/swc-linux-x64-musl@15.4.5': optional: true - '@next/swc-win32-arm64-msvc@15.4.4': + '@next/swc-win32-arm64-msvc@15.4.5': optional: true - '@next/swc-win32-x64-msvc@15.4.4': + '@next/swc-win32-x64-msvc@15.4.5': optional: true '@nodelib/fs.scandir@2.1.5': @@ -7314,139 +7311,139 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rollup/pluginutils@5.2.0(rollup@4.46.1)': + '@rollup/pluginutils@5.2.0(rollup@4.46.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.46.1 + rollup: 4.46.2 - '@rollup/rollup-android-arm-eabi@4.46.1': + '@rollup/rollup-android-arm-eabi@4.46.2': optional: true - '@rollup/rollup-android-arm64@4.46.1': + '@rollup/rollup-android-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-arm64@4.46.1': + '@rollup/rollup-darwin-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-x64@4.46.1': + '@rollup/rollup-darwin-x64@4.46.2': optional: true - '@rollup/rollup-freebsd-arm64@4.46.1': + '@rollup/rollup-freebsd-arm64@4.46.2': optional: true - '@rollup/rollup-freebsd-x64@4.46.1': + '@rollup/rollup-freebsd-x64@4.46.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.46.1': + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.46.1': + '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.46.1': + '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.46.1': + '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.46.1': + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.46.1': + '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.46.1': + '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.46.1': + '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.46.1': + '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.46.1': + '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-musl@4.46.1': + '@rollup/rollup-linux-x64-musl@4.46.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.46.1': + '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.46.1': + '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.46.1': + '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rsbuild/core@1.4.11': + '@rsbuild/core@1.4.14': dependencies: - '@rspack/core': 1.4.10(@swc/helpers@0.5.17) + '@rspack/core': 1.4.11(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 core-js: 3.44.0 jiti: 2.5.1 - '@rsbuild/plugin-react@1.3.4(@rsbuild/core@1.4.11)': + '@rsbuild/plugin-react@1.3.5(@rsbuild/core@1.4.14)': dependencies: - '@rsbuild/core': 1.4.11 + '@rsbuild/core': 1.4.14 '@rspack/plugin-react-refresh': 1.4.3(react-refresh@0.17.0) react-refresh: 0.17.0 transitivePeerDependencies: - webpack-hot-middleware - '@rspack/binding-darwin-arm64@1.4.10': + '@rspack/binding-darwin-arm64@1.4.11': optional: true - '@rspack/binding-darwin-x64@1.4.10': + '@rspack/binding-darwin-x64@1.4.11': optional: true - '@rspack/binding-linux-arm64-gnu@1.4.10': + '@rspack/binding-linux-arm64-gnu@1.4.11': optional: true - '@rspack/binding-linux-arm64-musl@1.4.10': + '@rspack/binding-linux-arm64-musl@1.4.11': optional: true - '@rspack/binding-linux-x64-gnu@1.4.10': + '@rspack/binding-linux-x64-gnu@1.4.11': optional: true - '@rspack/binding-linux-x64-musl@1.4.10': + '@rspack/binding-linux-x64-musl@1.4.11': optional: true - '@rspack/binding-wasm32-wasi@1.4.10': + '@rspack/binding-wasm32-wasi@1.4.11': dependencies: '@napi-rs/wasm-runtime': 1.0.1 optional: true - '@rspack/binding-win32-arm64-msvc@1.4.10': + '@rspack/binding-win32-arm64-msvc@1.4.11': optional: true - '@rspack/binding-win32-ia32-msvc@1.4.10': + '@rspack/binding-win32-ia32-msvc@1.4.11': optional: true - '@rspack/binding-win32-x64-msvc@1.4.10': + '@rspack/binding-win32-x64-msvc@1.4.11': optional: true - '@rspack/binding@1.4.10': + '@rspack/binding@1.4.11': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.4.10 - '@rspack/binding-darwin-x64': 1.4.10 - '@rspack/binding-linux-arm64-gnu': 1.4.10 - '@rspack/binding-linux-arm64-musl': 1.4.10 - '@rspack/binding-linux-x64-gnu': 1.4.10 - '@rspack/binding-linux-x64-musl': 1.4.10 - '@rspack/binding-wasm32-wasi': 1.4.10 - '@rspack/binding-win32-arm64-msvc': 1.4.10 - '@rspack/binding-win32-ia32-msvc': 1.4.10 - '@rspack/binding-win32-x64-msvc': 1.4.10 - - '@rspack/core@1.4.10(@swc/helpers@0.5.17)': - dependencies: - '@module-federation/runtime-tools': 0.17.0 - '@rspack/binding': 1.4.10 + '@rspack/binding-darwin-arm64': 1.4.11 + '@rspack/binding-darwin-x64': 1.4.11 + '@rspack/binding-linux-arm64-gnu': 1.4.11 + '@rspack/binding-linux-arm64-musl': 1.4.11 + '@rspack/binding-linux-x64-gnu': 1.4.11 + '@rspack/binding-linux-x64-musl': 1.4.11 + '@rspack/binding-wasm32-wasi': 1.4.11 + '@rspack/binding-win32-arm64-msvc': 1.4.11 + '@rspack/binding-win32-ia32-msvc': 1.4.11 + '@rspack/binding-win32-x64-msvc': 1.4.11 + + '@rspack/core@1.4.11(@swc/helpers@0.5.17)': + dependencies: + '@module-federation/runtime-tools': 0.17.1 + '@rspack/binding': 1.4.11 '@rspack/lite-tapable': 1.0.1 optionalDependencies: '@swc/helpers': 0.5.17 @@ -7459,7 +7456,7 @@ snapshots: html-entities: 2.6.0 react-refresh: 0.17.0 - '@rushstack/node-core-library@5.14.0(@types/node@24.1.0)': + '@rushstack/node-core-library@5.14.0(@types/node@24.2.0)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -7470,56 +7467,56 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.15.4(@types/node@24.1.0)': + '@rushstack/terminal@0.15.4(@types/node@24.2.0)': dependencies: - '@rushstack/node-core-library': 5.14.0(@types/node@24.1.0) + '@rushstack/node-core-library': 5.14.0(@types/node@24.2.0) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 - '@rushstack/ts-command-line@5.0.2(@types/node@24.1.0)': + '@rushstack/ts-command-line@5.0.2(@types/node@24.2.0)': dependencies: - '@rushstack/terminal': 0.15.4(@types/node@24.1.0) + '@rushstack/terminal': 0.15.4(@types/node@24.2.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@storybook/addon-docs@9.0.18(@types/react@19.1.9)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))': + '@storybook/addon-docs@9.1.1(@types/react@19.1.9)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))': dependencies: '@mdx-js/react': 3.1.0(@types/react@19.1.9)(react@19.1.1) - '@storybook/csf-plugin': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) + '@storybook/csf-plugin': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) '@storybook/icons': 1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@storybook/react-dom-shim': 9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) + '@storybook/react-dom-shim': 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-onboarding@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))': + '@storybook/addon-onboarding@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))': dependencies: - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) - '@storybook/builder-vite@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1))': + '@storybook/builder-vite@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))': dependencies: - '@storybook/csf-plugin': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + '@storybook/csf-plugin': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) ts-dedent: 2.2.0 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) - '@storybook/csf-plugin@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))': + '@storybook/csf-plugin@9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))': dependencies: - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -7529,41 +7526,41 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@storybook/react-dom-shim@9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))': + '@storybook/react-dom-shim@9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))': dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) - '@storybook/react-vite@9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1))': + '@storybook/react-vite@9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) - '@rollup/pluginutils': 5.2.0(rollup@4.46.1) - '@storybook/builder-vite': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) - '@storybook/react': 9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + '@storybook/builder-vite': 9.1.1(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) + '@storybook/react': 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2) find-up: 7.0.0 magic-string: 0.30.17 react: 19.1.1 react-docgen: 8.0.0 react-dom: 19.1.1(react@19.1.1) resolve: 1.22.10 - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) tsconfig-paths: 4.2.0 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3)': + '@storybook/react@9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.0.18(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2)) + '@storybook/react-dom-shim': 9.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@swc/helpers@0.5.15': dependencies: @@ -7573,9 +7570,9 @@ snapshots: dependencies: tslib: 2.8.1 - '@tanstack/eslint-plugin-query@5.81.2(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': + '@tanstack/eslint-plugin-query@5.83.1(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) transitivePeerDependencies: - supports-color @@ -7638,7 +7635,7 @@ snapshots: '@babel/types': 7.28.2 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: @@ -7649,7 +7646,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/types': 7.28.2 - '@types/babel__traverse@7.20.7': + '@types/babel__traverse@7.28.0': dependencies: '@babel/types': 7.28.2 @@ -7707,9 +7704,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.1.0': + '@types/node@24.2.0': dependencies: - undici-types: 7.8.0 + undici-types: 7.10.0 '@types/parse-json@4.0.2': {} @@ -7741,7 +7738,7 @@ snapshots: '@types/webpack@5.28.5': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 tapable: 2.2.2 webpack: 5.101.0 transitivePeerDependencies: @@ -7752,102 +7749,102 @@ snapshots: '@types/whatwg-mimetype@3.0.2': {} - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.38.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 debug: 4.4.1 - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.38.0': + '@typescript-eslint/scope-manager@8.39.0': dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 - '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)': dependencies: - typescript: 5.8.3 + typescript: 5.9.2 - '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.38.0': {} + '@typescript-eslint/types@8.39.0': {} - '@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.38.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.38.0': + '@typescript-eslint/visitor-keys@8.39.0': dependencies: - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/types': 8.39.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.7.0(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1))': + '@vitejs/plugin-react@4.7.0(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) @@ -7855,15 +7852,15 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - ast-v8-to-istanbul: 0.3.3 + ast-v8-to-istanbul: 0.3.4 debug: 4.4.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -7874,7 +7871,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1) transitivePeerDependencies: - supports-color @@ -7886,13 +7883,13 @@ snapshots: chai: 5.2.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1))': + '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -7950,7 +7947,7 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - '@vue/language-core@2.2.0(typescript@5.8.3)': + '@vue/language-core@2.2.0(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.22 '@vue/compiler-dom': 3.5.18 @@ -7961,7 +7958,7 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@vue/shared@3.5.18': {} @@ -8694,7 +8691,7 @@ snapshots: dependencies: tslib: 2.8.1 - ast-v8-to-istanbul@0.3.3: + ast-v8-to-istanbul@0.3.4: dependencies: '@jridgewell/trace-mapping': 0.3.29 estree-walker: 3.0.3 @@ -8734,7 +8731,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) - core-js-compat: 3.44.0 + core-js-compat: 3.45.0 transitivePeerDependencies: - supports-color @@ -8775,14 +8772,14 @@ snapshots: browserslist@4.21.5: dependencies: caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.192 + electron-to-chromium: 1.5.195 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.21.5) browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.192 + electron-to-chromium: 1.5.195 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -8894,7 +8891,7 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.44.0: + core-js-compat@3.45.0: dependencies: browserslist: 4.25.1 @@ -9004,7 +9001,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.192: {} + electron-to-chromium@1.5.195: {} emoji-regex@8.0.0: {} @@ -9218,19 +9215,19 @@ snapshots: dependencies: eslint: 9.32.0(jiti@2.5.1) - eslint-plugin-devup@2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3): + eslint-plugin-devup@2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: '@eslint/js': 9.32.0 - '@tanstack/eslint-plugin-query': 5.81.2(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@tanstack/eslint-plugin-query': 5.83.1(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) eslint-config-prettier: 10.1.8(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-prettier: 5.5.3(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(prettier@3.6.2) eslint-plugin-react: 7.37.5(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-simple-import-sort: 12.1.1(eslint@9.32.0(jiti@2.5.1)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)) prettier: 3.6.2 - typescript-eslint: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + typescript-eslint: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) transitivePeerDependencies: - '@types/eslint' - '@typescript-eslint/eslint-plugin' @@ -9277,20 +9274,20 @@ snapshots: dependencies: eslint: 9.32.0(jiti@2.5.1) - eslint-plugin-storybook@9.0.18(eslint@9.32.0(jiti@2.5.1))(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2))(typescript@5.8.3): + eslint-plugin-storybook@9.1.1(eslint@9.32.0(jiti@2.5.1))(storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)))(typescript@5.9.2): dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2) + storybook: 9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)): dependencies: eslint: 9.32.0(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint-scope@5.1.1: dependencies: @@ -9407,7 +9404,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 require-like: 0.1.2 events@3.3.0: {} @@ -9946,7 +9943,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -10536,10 +10533,6 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.0 - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.12 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -10582,9 +10575,9 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - next@15.4.4(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + next@15.4.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - '@next/env': 15.4.4 + '@next/env': 15.4.5 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001731 postcss: 8.4.31 @@ -10592,14 +10585,14 @@ snapshots: react-dom: 19.1.1(react@19.1.1) styled-jsx: 5.1.6(@babel/core@7.28.0)(react@19.1.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.4.4 - '@next/swc-darwin-x64': 15.4.4 - '@next/swc-linux-arm64-gnu': 15.4.4 - '@next/swc-linux-arm64-musl': 15.4.4 - '@next/swc-linux-x64-gnu': 15.4.4 - '@next/swc-linux-x64-musl': 15.4.4 - '@next/swc-win32-arm64-msvc': 15.4.4 - '@next/swc-win32-x64-msvc': 15.4.4 + '@next/swc-darwin-arm64': 15.4.5 + '@next/swc-darwin-x64': 15.4.5 + '@next/swc-linux-arm64-gnu': 15.4.5 + '@next/swc-linux-arm64-musl': 15.4.5 + '@next/swc-linux-x64-gnu': 15.4.5 + '@next/swc-linux-x64-musl': 15.4.5 + '@next/swc-win32-arm64-msvc': 15.4.5 + '@next/swc-win32-x64-msvc': 15.4.5 sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' @@ -10850,9 +10843,9 @@ snapshots: dependencies: safe-buffer: 5.2.1 - react-docgen-typescript@2.4.0(typescript@5.8.3): + react-docgen-typescript@2.4.0(typescript@5.9.2): dependencies: - typescript: 5.8.3 + typescript: 5.9.2 react-docgen@8.0.0: dependencies: @@ -10860,7 +10853,7 @@ snapshots: '@babel/traverse': 7.28.0 '@babel/types': 7.28.2 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 @@ -11101,36 +11094,36 @@ snapshots: reusify@1.1.0: {} - rollup-plugin-preserve-directives@0.4.0(rollup@4.46.1): + rollup-plugin-preserve-directives@0.4.0(rollup@4.46.2): dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.46.1) + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) magic-string: 0.30.17 - rollup: 4.46.1 + rollup: 4.46.2 - rollup@4.46.1: + rollup@4.46.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.46.1 - '@rollup/rollup-android-arm64': 4.46.1 - '@rollup/rollup-darwin-arm64': 4.46.1 - '@rollup/rollup-darwin-x64': 4.46.1 - '@rollup/rollup-freebsd-arm64': 4.46.1 - '@rollup/rollup-freebsd-x64': 4.46.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.46.1 - '@rollup/rollup-linux-arm-musleabihf': 4.46.1 - '@rollup/rollup-linux-arm64-gnu': 4.46.1 - '@rollup/rollup-linux-arm64-musl': 4.46.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.46.1 - '@rollup/rollup-linux-ppc64-gnu': 4.46.1 - '@rollup/rollup-linux-riscv64-gnu': 4.46.1 - '@rollup/rollup-linux-riscv64-musl': 4.46.1 - '@rollup/rollup-linux-s390x-gnu': 4.46.1 - '@rollup/rollup-linux-x64-gnu': 4.46.1 - '@rollup/rollup-linux-x64-musl': 4.46.1 - '@rollup/rollup-win32-arm64-msvc': 4.46.1 - '@rollup/rollup-win32-ia32-msvc': 4.46.1 - '@rollup/rollup-win32-x64-msvc': 4.46.1 + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 run-parallel@1.2.0: @@ -11313,12 +11306,13 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.6.2): + storybook@9.1.1(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.6.4 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.8 @@ -11331,8 +11325,10 @@ snapshots: transitivePeerDependencies: - '@testing-library/dom' - bufferutil + - msw - supports-color - utf-8-validate + - vite string-argv@0.3.2: {} @@ -11509,9 +11505,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.2): dependencies: - typescript: 5.8.3 + typescript: 5.9.2 ts-dedent@2.2.0: {} @@ -11565,20 +11561,20 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3): + typescript-eslint@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color typescript@5.8.2: {} - typescript@5.8.3: {} + typescript@5.9.2: {} ufo@1.6.1: {} @@ -11591,7 +11587,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.8.0: {} + undici-types@7.10.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -11680,13 +11676,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1): + vite-node@3.2.4(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - jiti @@ -11701,44 +11697,44 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@24.1.0)(rollup@4.46.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)): + vite-plugin-dts@4.5.4(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)): dependencies: - '@microsoft/api-extractor': 7.52.9(@types/node@24.1.0) - '@rollup/pluginutils': 5.2.0(rollup@4.46.1) + '@microsoft/api-extractor': 7.52.10(@types/node@24.2.0) + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) '@volar/typescript': 2.4.22 - '@vue/language-core': 2.2.0(typescript@5.8.3) + '@vue/language-core': 2.2.0(typescript@5.9.2) compare-versions: 6.1.1 debug: 4.4.1 kolorist: 1.8.0 local-pkg: 1.1.1 magic-string: 0.30.17 - typescript: 5.8.3 + typescript: 5.9.2 optionalDependencies: - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1): + vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1): dependencies: esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.46.1 + rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 fsevents: 2.3.3 jiti: 2.5.1 terser: 5.43.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@18.0.1)(jiti@2.5.1)(terser@5.43.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1)) + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -11756,12 +11752,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) - vite-node: 3.2.4(@types/node@24.1.0)(jiti@2.5.1)(terser@5.43.1) + vite: 6.3.5(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) + vite-node: 3.2.4(@types/node@24.2.0)(jiti@2.5.1)(terser@5.43.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.1.0 + '@types/node': 24.2.0 happy-dom: 18.0.1 transitivePeerDependencies: - jiti