diff --git a/.changeset/config.json b/.changeset/config.json index 1c6921f1..bd8889c9 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -10,9 +10,5 @@ "access": "restricted", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": [ - "*-example", - "*-benchmark", - "landing" - ] + "ignore": ["*-example", "*-benchmark", "landing"] } diff --git a/.changeset/wise-impalas-jump.md b/.changeset/wise-impalas-jump.md new file mode 100644 index 00000000..0db2316f --- /dev/null +++ b/.changeset/wise-impalas-jump.md @@ -0,0 +1,5 @@ +--- +'@devup-ui/eslint-plugin': major +--- + +Implement rules diff --git a/.husky/pre-commit b/.husky/pre-commit index e9a388c2..e02c24e2 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - pnpm lint-staged \ No newline at end of file diff --git a/apps/landing/devup.json b/apps/landing/devup.json index bb2cabc3..df27821b 100644 --- a/apps/landing/devup.json +++ b/apps/landing/devup.json @@ -1,592 +1,592 @@ { - "theme": { - "colors": { - "light": { - "primary": "#5A44FF", - "secondary": "#85A5F2", - "link": "#006BFF", - "text": "#2F2F2F", - "background": "#FFF", - "containerBackground": "#FFF", - "border": "#E0E0E0", - "success": "#4CAF50", - "warning": "#FF9800", - "error": "#F44336", - "info": "#2196F3", - "base": "#FFF", - "negativeBase": "#000", - "title": "#1A1A1A", - "caption": "#A9A8B4", - "shadow": "#87878740", - "codeBg": "#3E3B41", - "cardBg": "#F8F8F8", - "buttonBlue": "#266CCD", - "joinBg": "#CDE2FA", - "third": "#918AE9", - "buttonBlueHover": "#1453AC", - "buttonBlueActive": "#19498B", - "textReverse": "#FFF", - "footerTitle": "#A3A4B4", - "footerBg": "#F4F4F6", - "footerText": "#51575F", - "menuHover": "#F6F4FF", - "menuActive": "#EAE8FC", - "captionBold": "#7C7B8E", - "search": "#9C50FF", - "kakaoButton": "#DE9800", - "kakaoButtonHover": "#C98900", - "kakaoButtonActive": "#B77D00", - "imageBorder": "#C8C7D1", - "imageDropdown": "#ECECEC", - "imagePlaceholder": "#999", - "imageDate": "#C9C9C9", - "imageDateNone": "#F2F2F2", - "imageProgress": "#DADADA", - "imageMenuBg": "#FBFBFB", - "imageMenuSelect": "#EDECF7", - "starBg": "#F7F8FF" - }, - "dark": { - "primary": "#9086FF", - "secondary": "#2A4586", - "link": "#006BFF", - "text": "#EDEDED", - "background": "#131313", - "containerBackground": "#373639", - "border": "#333", - "success": "#4CAF50", - "warning": "#FF9800", - "error": "#F44336", - "info": "#2196F3", - "base": "#000", - "negativeBase": "#FFF", - "title": "#FAFAFA", - "caption": "#787878", - "shadow": "#62626240", - "codeBg": "#2E303C", - "cardBg": "#28272B", - "buttonBlue": "#0867AF", - "joinBg": "#2F363E", - "third": "#737FE4", - "buttonBlueHover": "#1453AC", - "buttonBlueActive": "#19498B", - "textReverse": "#2F2F2F", - "footerTitle": "#A3A4B4", - "footerBg": "#2E303C", - "footerText": "#FFF", - "menuHover": "#3C404B", - "menuActive": "#283259", - "captionBold": "#9C9BA9", - "search": "#6FA4FF", - "kakaoButton": "#A3740D", - "kakaoButtonHover": "#C98900", - "kakaoButtonActive": "#E09900", - "imageBorder": "#4D4C53", - "imageDropdown": "#3A3A3A", - "imagePlaceholder": "#4C4C4C", - "imageDate": "#636363", - "imageDateNone": "#343333", - "imageProgress": "#444", - "imageMenuBg": "#262626", - "imageMenuSelect": "#3F3F3F", - "starBg": "#232323" - } - }, - "typography": { - "h1": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "38px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "52px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "h6Reg": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 400, - "fontSize": "18px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 400, - "fontSize": "24px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "buttonL": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "17px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "20px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "code": [ - { - "fontFamily": "D2Coding", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "13px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "D2Coding", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "15px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null - ], - "buttonM": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "15px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "17px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "h4": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "28px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "36px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "body": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "14px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "16px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null - ], - "h6": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "18px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "24px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "textS": { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "15px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - "buttonLbold": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "17px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "18px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "buttonLsemiB": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "17px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "18px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "h2": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "36px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "48px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "h3": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "32px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "42px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "h5": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 600, - "fontSize": "24px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "30px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "buttonS": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "14px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "15px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "caption": { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "14px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - "small": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 300, - "fontSize": "11px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 400, - "fontSize": "12px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - null - ], - "buttonSmid": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "14px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "15px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "captionBold": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "13px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "14px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null - ], - "textSbold": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "13px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "15px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - null - ], - "textL": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "16px", - "lineHeight": 1.3, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "18px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null - ], - "footerMenu": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "13px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 500, - "fontSize": "14px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - null - ], - "bodyReg": [ - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 400, - "fontSize": "14px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null, - null, - null, - { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 400, - "fontSize": "16px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - }, - null - ], - "smallBold": { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 800, - "fontSize": "12px", - "lineHeight": 1.4, - "letterSpacing": "-0.03em" - }, - "bodyBold": { - "fontFamily": "Pretendard", - "fontStyle": "normal", - "fontWeight": 700, - "fontSize": "16px", - "lineHeight": 1.5, - "letterSpacing": "-0.03em" - } - } + "theme": { + "colors": { + "light": { + "primary": "#5A44FF", + "secondary": "#85A5F2", + "link": "#006BFF", + "text": "#2F2F2F", + "background": "#FFF", + "containerBackground": "#FFF", + "border": "#E0E0E0", + "success": "#4CAF50", + "warning": "#FF9800", + "error": "#F44336", + "info": "#2196F3", + "base": "#FFF", + "negativeBase": "#000", + "title": "#1A1A1A", + "caption": "#A9A8B4", + "shadow": "#87878740", + "codeBg": "#3E3B41", + "cardBg": "#F8F8F8", + "buttonBlue": "#266CCD", + "joinBg": "#CDE2FA", + "third": "#918AE9", + "buttonBlueHover": "#1453AC", + "buttonBlueActive": "#19498B", + "textReverse": "#FFF", + "footerTitle": "#A3A4B4", + "footerBg": "#F4F4F6", + "footerText": "#51575F", + "menuHover": "#F6F4FF", + "menuActive": "#EAE8FC", + "captionBold": "#7C7B8E", + "search": "#9C50FF", + "kakaoButton": "#DE9800", + "kakaoButtonHover": "#C98900", + "kakaoButtonActive": "#B77D00", + "imageBorder": "#C8C7D1", + "imageDropdown": "#ECECEC", + "imagePlaceholder": "#999", + "imageDate": "#C9C9C9", + "imageDateNone": "#F2F2F2", + "imageProgress": "#DADADA", + "imageMenuBg": "#FBFBFB", + "imageMenuSelect": "#EDECF7", + "starBg": "#F7F8FF" + }, + "dark": { + "primary": "#9086FF", + "secondary": "#2A4586", + "link": "#006BFF", + "text": "#EDEDED", + "background": "#131313", + "containerBackground": "#373639", + "border": "#333", + "success": "#4CAF50", + "warning": "#FF9800", + "error": "#F44336", + "info": "#2196F3", + "base": "#000", + "negativeBase": "#FFF", + "title": "#FAFAFA", + "caption": "#787878", + "shadow": "#62626240", + "codeBg": "#2E303C", + "cardBg": "#28272B", + "buttonBlue": "#0867AF", + "joinBg": "#2F363E", + "third": "#737FE4", + "buttonBlueHover": "#1453AC", + "buttonBlueActive": "#19498B", + "textReverse": "#2F2F2F", + "footerTitle": "#A3A4B4", + "footerBg": "#2E303C", + "footerText": "#FFF", + "menuHover": "#3C404B", + "menuActive": "#283259", + "captionBold": "#9C9BA9", + "search": "#6FA4FF", + "kakaoButton": "#A3740D", + "kakaoButtonHover": "#C98900", + "kakaoButtonActive": "#E09900", + "imageBorder": "#4D4C53", + "imageDropdown": "#3A3A3A", + "imagePlaceholder": "#4C4C4C", + "imageDate": "#636363", + "imageDateNone": "#343333", + "imageProgress": "#444", + "imageMenuBg": "#262626", + "imageMenuSelect": "#3F3F3F", + "starBg": "#232323" + } + }, + "typography": { + "h1": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "38px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "52px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "h6Reg": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 400, + "fontSize": "18px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 400, + "fontSize": "24px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "buttonL": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "17px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "20px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "code": [ + { + "fontFamily": "D2Coding", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "13px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "D2Coding", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "15px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null + ], + "buttonM": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "15px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "17px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "h4": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "28px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "36px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "body": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "14px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "16px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null + ], + "h6": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "18px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "24px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "textS": { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "15px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + "buttonLbold": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "17px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "18px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "buttonLsemiB": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "17px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "18px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "h2": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "36px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "48px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "h3": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "32px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "42px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "h5": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 600, + "fontSize": "24px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "30px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "buttonS": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "14px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "15px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "caption": { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "14px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + "small": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 300, + "fontSize": "11px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 400, + "fontSize": "12px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + null + ], + "buttonSmid": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "14px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "15px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "captionBold": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "13px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "14px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null + ], + "textSbold": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "13px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "15px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + null + ], + "textL": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "16px", + "lineHeight": 1.3, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "18px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null + ], + "footerMenu": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "13px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 500, + "fontSize": "14px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + null + ], + "bodyReg": [ + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 400, + "fontSize": "14px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null, + null, + null, + { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 400, + "fontSize": "16px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + }, + null + ], + "smallBold": { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 800, + "fontSize": "12px", + "lineHeight": 1.4, + "letterSpacing": "-0.03em" + }, + "bodyBold": { + "fontFamily": "Pretendard", + "fontStyle": "normal", + "fontWeight": 700, + "fontSize": "16px", + "lineHeight": 1.5, + "letterSpacing": "-0.03em" + } } -} \ No newline at end of file + } +} diff --git a/apps/landing/package.json b/apps/landing/package.json index 809833d6..a31d0981 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -16,17 +16,17 @@ "@devup-ui/reset-css": "workspace:*", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", - "@next/mdx": "^15.5.3", + "@next/mdx": "^15.5.4", "@types/mdx": "^2.0.13", "body-scroll-lock": "3.1.5", "clsx": "^2.1.1", - "next": "^15.5.3", + "next": "^15.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", "react-markdown": "^10.1.0", "react-syntax-highlighter": "^15.6.6", "remark-gfm": "^4.0.1", - "lenis": "1.3.11" + "lenis": "1.3.11" }, "devDependencies": { "@devup-ui/next-plugin": "workspace:*", @@ -39,4 +39,4 @@ "remark": "^15.0.1", "typescript": "^5" } -} \ No newline at end of file +} diff --git a/apps/next/package.json b/apps/next/package.json index 3da1fccf..9c1af65a 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.5.3", + "next": "^15.5.4", "@devup-ui/react": "workspace:*" }, "devDependencies": { diff --git a/apps/next/src/app/page.tsx b/apps/next/src/app/page.tsx index d9519efc..b667af0f 100644 --- a/apps/next/src/app/page.tsx +++ b/apps/next/src/app/page.tsx @@ -43,7 +43,7 @@ export default function HomePage() { text typo text - + hello hello diff --git a/apps/rsbuild/package.json b/apps/rsbuild/package.json index 21ee119d..74760dd1 100644 --- a/apps/rsbuild/package.json +++ b/apps/rsbuild/package.json @@ -16,8 +16,8 @@ "@devup-ui/react": "workspace:*" }, "devDependencies": { - "@rsbuild/core": "^1.5.10", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/core": "^1.5.12", + "@rsbuild/plugin-react": "^1.4.1", "@devup-ui/rsbuild-plugin": "workspace:*" } } diff --git a/apps/vite-lib/package.json b/apps/vite-lib/package.json index 7154e899..75ec93b0 100644 --- a/apps/vite-lib/package.json +++ b/apps/vite-lib/package.json @@ -18,8 +18,8 @@ "devDependencies": { "vite-plugin-dts": "^4.5.4", "@devup-ui/vite-plugin": "workspace:*", - "@vitejs/plugin-react": "^5.0.3", - "vite": "^7.1.6", + "@vitejs/plugin-react": "^5.0.4", + "vite": "^7.1.7", "typescript": "^5", "@types/node": "^24", "@types/react": "^19" diff --git a/apps/vite/package.json b/apps/vite/package.json index 9900ac12..ac3fb35f 100644 --- a/apps/vite/package.json +++ b/apps/vite/package.json @@ -17,8 +17,8 @@ }, "devDependencies": { "@devup-ui/vite-plugin": "workspace:*", - "vite": "^7.1.6", - "@vitejs/plugin-react": "^5.0.3", + "vite": "^7.1.7", + "@vitejs/plugin-react": "^5.0.4", "typescript": "^5", "@types/node": "^24", "@types/react": "^19", diff --git a/benchmark/next-chakra-ui/package.json b/benchmark/next-chakra-ui/package.json index 7862ceb7..9b978a6e 100644 --- a/benchmark/next-chakra-ui/package.json +++ b/benchmark/next-chakra-ui/package.json @@ -12,7 +12,7 @@ "dependencies": { "@chakra-ui/react": "^3.27.0", "@emotion/react": "^11.14.0", - "next": "^15.5.3", + "next": "^15.5.4", "next-themes": "^0.4.6", "react": "^19.1.1", "react-dom": "^19.1.1", diff --git a/benchmark/next-devup-ui-single/package.json b/benchmark/next-devup-ui-single/package.json index 64f8711c..3490f43a 100644 --- a/benchmark/next-devup-ui-single/package.json +++ b/benchmark/next-devup-ui-single/package.json @@ -12,7 +12,7 @@ "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1", - "next": "^15.5.3", + "next": "^15.5.4", "@devup-ui/react": "workspace:*" }, "devDependencies": { diff --git a/benchmark/next-devup-ui-single/src/app/page.tsx b/benchmark/next-devup-ui-single/src/app/page.tsx index ab9216cc..310fa7e7 100644 --- a/benchmark/next-devup-ui-single/src/app/page.tsx +++ b/benchmark/next-devup-ui-single/src/app/page.tsx @@ -34,7 +34,7 @@ export default function HomePage() { hello text - + hello hello diff --git a/benchmark/next-devup-ui/package.json b/benchmark/next-devup-ui/package.json index 884eb5c8..cdcaddb4 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.5.3", + "next": "^15.5.4", "@devup-ui/react": "workspace:*" }, "devDependencies": { diff --git a/benchmark/next-devup-ui/src/app/page.tsx b/benchmark/next-devup-ui/src/app/page.tsx index ab9216cc..310fa7e7 100644 --- a/benchmark/next-devup-ui/src/app/page.tsx +++ b/benchmark/next-devup-ui/src/app/page.tsx @@ -34,7 +34,7 @@ export default function HomePage() { hello text - + hello hello diff --git a/benchmark/next-kuma-ui/package.json b/benchmark/next-kuma-ui/package.json index c398cc6e..207b6618 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.5.3", + "next": "^15.5.4", "@kuma-ui/core": "^1.5.9" }, "devDependencies": { diff --git a/benchmark/next-mui/package.json b/benchmark/next-mui/package.json index b35d0c8f..f8fa0f9d 100644 --- a/benchmark/next-mui/package.json +++ b/benchmark/next-mui/package.json @@ -13,7 +13,7 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@mui/material": "7.3.2", - "next": "^15.5.3", + "next": "^15.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", "react-icons": "^5.5.0" diff --git a/benchmark/next-panda-css/package.json b/benchmark/next-panda-css/package.json index 686950a8..10a7e38c 100644 --- a/benchmark/next-panda-css/package.json +++ b/benchmark/next-panda-css/package.json @@ -13,10 +13,10 @@ "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1", - "next": "^15.5.3" + "next": "^15.5.4" }, "devDependencies": { - "@pandacss/dev": "^1.3", + "@pandacss/dev": "^1.4", "typescript": "^5", "@types/node": "^24", "@types/react": "^19", diff --git a/benchmark/next-stylex/package.json b/benchmark/next-stylex/package.json index 0e284970..be3cd1b8 100644 --- a/benchmark/next-stylex/package.json +++ b/benchmark/next-stylex/package.json @@ -12,9 +12,9 @@ }, "dependencies": { "@stylexjs/open-props": "^0.11.1", - "@stylexjs/stylex": "^0.15.4", + "@stylexjs/stylex": "^0.16.0", "bright": "^1.0.0", - "next": "15.5.3", + "next": "15.5.4", "react": "19.1.1", "react-dom": "19.1.1" }, @@ -23,15 +23,15 @@ "@babel/plugin-syntax-flow": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", - "@stylexjs/babel-plugin": "^0.15.4", - "@stylexjs/eslint-plugin": "^0.15.4", + "@stylexjs/babel-plugin": "^0.16.0", + "@stylexjs/eslint-plugin": "^0.16.0", "@stylexjs/nextjs-plugin": "^0.11.1", "@types/node": "24.5.2", - "@types/react": "19.1.13", + "@types/react": "19.1.15", "@types/react-dom": "19.1.9", "@types/react-test-renderer": "^19.1.0", "eslint": "9.36.0", - "eslint-config-next": "15.5.3", + "eslint-config-next": "15.5.4", "prettier": "^3.6.2", "react-test-renderer": "^19.1.1", "rimraf": "^6.0.1", diff --git a/benchmark/next-tailwind/package.json b/benchmark/next-tailwind/package.json index ec87a173..e932b4f4 100644 --- a/benchmark/next-tailwind/package.json +++ b/benchmark/next-tailwind/package.json @@ -10,7 +10,7 @@ "lint": "next lint" }, "dependencies": { - "next": "^15.5.3", + "next": "^15.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", "react-icons": "^5.5.0" diff --git a/benchmark/next-vanilla-extract/package.json b/benchmark/next-vanilla-extract/package.json index e42d317a..304834ea 100644 --- a/benchmark/next-vanilla-extract/package.json +++ b/benchmark/next-vanilla-extract/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@vanilla-extract/css": "^1.17.4", - "next": "^15.5.3", + "next": "^15.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", "react-icons": "^5.5.0" diff --git a/eslint.config.mjs b/eslint.config.mjs index 7f6b5494..92a0b094 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,9 +1,18 @@ +import devupUIEslintPlugin from '@devup-ui/eslint-plugin' import { configs } from 'eslint-plugin-devup' +import eslintPlugin from 'eslint-plugin-eslint-plugin' import jsonc from 'eslint-plugin-jsonc' import * as mdx from 'eslint-plugin-mdx' import globals from 'globals' - export default [ + { + ignores: [ + '**/coverage', + 'target', + 'benchmark/next-panda-css/styled-system', + 'bindings/devup-ui-wasm/pkg', + ], + }, // eslint-plugin-devup ...configs.recommended, // eslint-plugin-jsonc @@ -61,4 +70,13 @@ export default [ 'react/jsx-tag-spacing': ['error', { beforeClosing: 'never' }], }, }, + // eslint-plugin rule + { + ...eslintPlugin.configs.recommended, + // files: ['packages/eslint-plugin/**/*.{js,jsx,ts,tsx}'], + }, + { + ignores: ['**/*.md'], + }, + ...devupUIEslintPlugin.configs.recommended, ] diff --git a/package.json b/package.json index b96bea0d..5a045dc3 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "description": "devup-ui", "type": "module", "scripts": { - "lint": "pnpm -F @devup-ui/* lint && cargo fmt --all -- --check && cargo clippy --all-targets --all-features -- -D warnings", + "lint": "pnpm -F @devup-ui/* lint && cargo fmt --all -- --check && cargo clippy --all-targets --all-features -- -D warnings && eslint", "pretest": "pnpm -F @devup-ui/vite-plugin build", "test": "cargo tarpaulin --out xml --out stdout --out html --all-targets && vitest test --coverage --run && pnpm -r test", "build": "pnpm -F wasm build && pnpm -F @devup-ui/* -F !wasm build", @@ -16,23 +16,25 @@ "devDependencies": { "@changesets/cli": "^2.29.7", "@devup-ui/vite-plugin": "workspace:*", + "@devup-ui/eslint-plugin": "workspace:*", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "14.6.1", "@types/node": "^24.5.2", "@vitest/coverage-v8": "^3.2.4", - "eslint": "^9.35.0", + "eslint": "^9.36.0", "eslint-plugin-devup": "^2.0.5", "eslint-plugin-jsonc": "^2.20.1", "eslint-plugin-mdx": "^3.6.2", "globals": "^16.4.0", - "happy-dom": "^18.0.1", + "happy-dom": "^19.0.1", "husky": "^9.1.7", - "lint-staged": "^16.1.6", - "vitest": "^3.2.4" + "lint-staged": "^16.2.3", + "vitest": "^3.2.4", + "eslint-plugin-eslint-plugin": "^7.0.0" }, "author": "devfive", - "packageManager": "pnpm@10.17.0", + "packageManager": "pnpm@10.17.1", "resolutions": { "vite": "^6" } diff --git a/packages/components/package.json b/packages/components/package.json index 9a54dbeb..acd704bd 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -49,15 +49,15 @@ }, "devDependencies": { "@devup-ui/vite-plugin": "workspace:*", - "@storybook/addon-docs": "^9.1.7", - "@storybook/addon-onboarding": "^9.1.7", - "@storybook/react-vite": "^9.1.7", - "@types/react": "^19.1.13", - "eslint-plugin-storybook": "^9.1.7", + "@storybook/addon-docs": "^9.1.8", + "@storybook/addon-onboarding": "^9.1.8", + "@storybook/react-vite": "^9.1.8", + "@types/react": "^19.1.15", + "eslint-plugin-storybook": "^9.1.8", "rollup-plugin-preserve-directives": "^0.4.0", - "storybook": "^9.1.7", + "storybook": "^9.1.8", "typescript": "^5.9.2", - "vite": "^7.1.6", + "vite": "^7.1.7", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4" }, diff --git a/packages/eslint-plugin/README.md b/packages/eslint-plugin/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json new file mode 100644 index 00000000..61c09fd7 --- /dev/null +++ b/packages/eslint-plugin/package.json @@ -0,0 +1,37 @@ +{ + "name": "@devup-ui/eslint-plugin", + "version": "0.1.0", + "description": "eslint plugin for devup-ui", + "main": "dist/index.cjs", + "type": "module", + "scripts": { + "test": "vitest run --coverage", + "test:s": "vitest run -u", + "lint": "eslint", + "build": "tsc && vite build" + }, + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, + "files": [ + "dist" + ], + "keywords": [ + "eslint" + ], + "author": "devfive", + "license": "ISC", + "dependencies": { + "typescript-eslint": "^8.44", + "@typescript-eslint/utils": "^8.44" + }, + "devDependencies": { + "@typescript-eslint/rule-tester": "^8.44", + "typescript": "^5.9.2", + "vite": "^7.1.7", + "vite-plugin-dts": "^4.5.4" + } +} diff --git a/packages/eslint-plugin/src/__tests__/index.test.ts b/packages/eslint-plugin/src/__tests__/index.test.ts new file mode 100644 index 00000000..d5aa2587 --- /dev/null +++ b/packages/eslint-plugin/src/__tests__/index.test.ts @@ -0,0 +1,16 @@ +import * as index from '../index' +describe('export index', () => { + it('export', () => { + expect({ ...index }).toEqual({ + rules: expect.any(Object), + configs: { + recommended: expect.any(Object), + }, + default: { + configs: { + recommended: expect.any(Object), + }, + }, + }) + }) +}) diff --git a/packages/eslint-plugin/src/configs/__tests__/__snapshots__/recommended.test.ts.snap b/packages/eslint-plugin/src/configs/__tests__/__snapshots__/recommended.test.ts.snap new file mode 100644 index 00000000..36f591bf --- /dev/null +++ b/packages/eslint-plugin/src/configs/__tests__/__snapshots__/recommended.test.ts.snap @@ -0,0 +1,83 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`recommended > export recommended config 1`] = ` +[ + { + "plugins": { + "@devup-ui": { + "rules": { + "css-utils-literal-only": { + "create": [Function], + "defaultOptions": [], + "meta": { + "docs": { + "description": "CSS utils should only be used with literal values.", + "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/css-utils-literal-only", + }, + "messages": { + "cssUtilsLiteralOnly": "CSS utils should only be used with literal values.", + }, + "schema": [], + "type": "problem", + }, + }, + "no-duplicate-value": { + "create": [Function], + "defaultOptions": [], + "meta": { + "docs": { + "description": "No duplicate value.", + "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-duplicate-value", + }, + "fixable": "code", + "messages": { + "duplicateValue": "Duplicate value found: {{value}}.", + }, + "schema": [], + "type": "problem", + }, + }, + "no-useless-responsive": { + "create": [Function], + "defaultOptions": [], + "meta": { + "docs": { + "description": "No useless responsive.", + "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-useless-responsive", + }, + "fixable": "code", + "messages": { + "uselessResponsive": "Responsive are useless. Remove them.", + }, + "schema": [], + "type": "problem", + }, + }, + "no-useless-tailing-nulls": { + "create": [Function], + "defaultOptions": [], + "meta": { + "docs": { + "description": "No useless tailing nulls.", + "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-useless-tailing-nulls", + }, + "fixable": "code", + "messages": { + "uselessTailingNulls": "Trailing nulls are useless. Remove them.", + }, + "schema": [], + "type": "problem", + }, + }, + }, + }, + }, + "rules": { + "@devup-ui/css-utils-literal-only": "error", + "@devup-ui/no-duplicate-value": "error", + "@devup-ui/no-useless-responsive": "error", + "@devup-ui/no-useless-tailing-nulls": "error", + }, + }, +] +`; diff --git a/packages/eslint-plugin/src/configs/__tests__/recommended.test.ts b/packages/eslint-plugin/src/configs/__tests__/recommended.test.ts new file mode 100644 index 00000000..38a93c49 --- /dev/null +++ b/packages/eslint-plugin/src/configs/__tests__/recommended.test.ts @@ -0,0 +1,6 @@ +import recommended from '../recommended' +describe('recommended', () => { + it('export recommended config', () => { + expect(recommended).toMatchSnapshot() + }) +}) diff --git a/packages/eslint-plugin/src/configs/recommended.ts b/packages/eslint-plugin/src/configs/recommended.ts new file mode 100644 index 00000000..7bfef860 --- /dev/null +++ b/packages/eslint-plugin/src/configs/recommended.ts @@ -0,0 +1,27 @@ +import { + cssUtilsLiteralOnly, + noDuplicateValue, + noUselessResponsive, + noUselessTailingNulls, +} from '../rules' + +export default [ + { + plugins: { + '@devup-ui': { + rules: { + 'no-useless-tailing-nulls': noUselessTailingNulls, + 'css-utils-literal-only': cssUtilsLiteralOnly, + 'no-duplicate-value': noDuplicateValue, + 'no-useless-responsive': noUselessResponsive, + }, + }, + }, + rules: { + '@devup-ui/no-useless-tailing-nulls': 'error', + '@devup-ui/css-utils-literal-only': 'error', + '@devup-ui/no-duplicate-value': 'error', + '@devup-ui/no-useless-responsive': 'error', + }, + }, +] diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts new file mode 100644 index 00000000..6342f5ac --- /dev/null +++ b/packages/eslint-plugin/src/index.ts @@ -0,0 +1,10 @@ +import recommended from './configs/recommended' +export * as rules from './rules' + +export const configs = { + recommended, +} + +export default { + configs, +} diff --git a/packages/eslint-plugin/src/rules/__tests__/index.test.ts b/packages/eslint-plugin/src/rules/__tests__/index.test.ts new file mode 100644 index 00000000..787c17c4 --- /dev/null +++ b/packages/eslint-plugin/src/rules/__tests__/index.test.ts @@ -0,0 +1,11 @@ +import * as index from '../index' +describe('export index', () => { + it('export', () => { + expect({ ...index }).toEqual({ + noUselessTailingNulls: expect.any(Object), + cssUtilsLiteralOnly: expect.any(Object), + noDuplicateValue: expect.any(Object), + noUselessResponsive: expect.any(Object), + }) + }) +}) diff --git a/packages/eslint-plugin/src/rules/css-utils-literal-only/README.md b/packages/eslint-plugin/src/rules/css-utils-literal-only/README.md new file mode 100644 index 00000000..51ac0c67 --- /dev/null +++ b/packages/eslint-plugin/src/rules/css-utils-literal-only/README.md @@ -0,0 +1,98 @@ +# css-utils-literal-only + +Enforce that CSS utility functions only use literal values in devup-ui. + +## Rule Details + +This rule ensures that CSS utility functions (`css`, `globalCss`, `keyframes`) from devup-ui only receive literal values as property values. Using variables or expressions in CSS utilities can lead to runtime issues and prevents proper static analysis and optimization. + +### Examples + +#### ❌ Incorrect + +```tsx +import { css } from '@devup-ui/react' + +const v = 'some-value' + +// Variables are not allowed in CSS utilities +css({ w: v }) +css({ w: [v] }) +css({ w: [1, null, v] }) +``` + +```tsx +import { globalCss } from '@devup-ui/react' + +const dynamicValue = getValue() + +// Dynamic values are not allowed +globalCss({ color: dynamicValue }) +``` + +```tsx +import { keyframes } from '@devup-ui/react' + +const animationName = 'fade' + +// Variables in keyframes are not allowed +keyframes({ from: { opacity: animationName } }) +``` + +#### ✅ Correct + +```tsx +import { css } from '@devup-ui/react' + +// Only literal values are allowed +css({ w: 1 }) +css({ w: '1' }) +css({ w: [1] }) +css({ w: ['1'] }) +css({ w: [1, null, '2'] }) +``` + +```tsx +import { globalCss } from '@devup-ui/react' + +// Literal values only +globalCss({ color: 'red' }) +globalCss({ fontSize: 16 }) +``` + +```tsx +import { keyframes } from '@devup-ui/react' + +// Literal values in keyframes +keyframes({ from: { opacity: 0 }, to: { opacity: 1 } }) +``` + +```tsx +import { css } from 'other-package' + +// Only applies to devup-ui CSS utilities +css({ w: v }) // This is fine for other packages +``` + +## When Not To Use It + +This rule is specifically designed for devup-ui CSS utility functions. It only applies when: + +- Using devup-ui CSS utilities (`css`, `globalCss`, `keyframes`) +- The utility function is called with an object containing properties +- Property values contain variables or expressions + +The rule will not trigger for: + +- CSS utilities from other packages +- Literal values (strings, numbers, arrays of literals) +- Non-CSS utility functions + +## Why This Rule Exists + +CSS utilities in devup-ui are designed to work with static, literal values for optimal performance and build-time optimization. Using variables or dynamic expressions can: + +- Prevent proper static analysis +- Cause runtime errors +- Reduce build-time optimizations +- Make the code harder to understand and maintain diff --git a/packages/eslint-plugin/src/rules/css-utils-literal-only/__tests__/index.test.ts b/packages/eslint-plugin/src/rules/css-utils-literal-only/__tests__/index.test.ts new file mode 100644 index 00000000..7c0f46d2 --- /dev/null +++ b/packages/eslint-plugin/src/rules/css-utils-literal-only/__tests__/index.test.ts @@ -0,0 +1,123 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { cssUtilsLiteralOnly } from '../index' + +describe.each(['css' /* 'globalCss', 'keyframes'*/])( + 'css-utils-literal-only rule', + (code) => { + const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + }) + ruleTester.run('css-utils-literal-only rule', cssUtilsLiteralOnly, { + valid: [ + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: 1})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: "1"})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} } from "other-package";\n${code}({w: [1][0]})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: [1]})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: ["1"]})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({w: ["1"]})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({_hover: {w: ["1"]}})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({ w: { a: 1, b: 2 }[v]})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({ w: v ? 1 : null})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({ w: v ? 1 : undefined})`, + filename: 'src/app/page.tsx', + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({ w: v || 1 ? 1 : null})`, + filename: 'src/app/page.tsx', + }, + ], + invalid: [ + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: v})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: [v]})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + { + code: `import { ${code} } from "@devup-ui/react";\n${code}({w: [1, null, v]})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({w: [1, null, v]})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({w: v ? 1 : v})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + { + code: `import { ${code} as B } from "@devup-ui/react";\nB({w: v || 1 ? 1 : v})`, + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'cssUtilsLiteralOnly', + }, + ], + }, + ], + }) + }, +) diff --git a/packages/eslint-plugin/src/rules/css-utils-literal-only/index.ts b/packages/eslint-plugin/src/rules/css-utils-literal-only/index.ts new file mode 100644 index 00000000..5f5dc228 --- /dev/null +++ b/packages/eslint-plugin/src/rules/css-utils-literal-only/index.ts @@ -0,0 +1,82 @@ +import { + AST_NODE_TYPES, + ESLintUtils, + type TSESTree, +} from '@typescript-eslint/utils' + +import { ImportStorage } from '../../utils/import-storage' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +export const cssUtilsLiteralOnly = createRule({ + name: 'css-utils-literal-only', + defaultOptions: [], + meta: { + schema: [], + messages: { + cssUtilsLiteralOnly: 'CSS utils should only be used with literal values.', + }, + type: 'problem', + docs: { + description: 'CSS utils should only be used with literal values.', + }, + }, + create(context) { + const importStorage = new ImportStorage() + let devupContext: + | TSESTree.CallExpression + | TSESTree.JSXOpeningElement + | null = null + return { + ImportDeclaration(node) { + importStorage.addImportByDeclaration(node) + }, + CallExpression(node) { + if ( + importStorage.checkContextType(node) === 'UTIL' && + node.arguments.length === 1 && + node.arguments[0].type === AST_NODE_TYPES.ObjectExpression + ) { + devupContext = node + } + }, + 'CallExpression:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + Identifier(node) { + if (!devupContext || node.name === 'undefined') return + + const an = context.sourceCode + .getAncestors(node) + .slice(context.sourceCode.getAncestors(devupContext).length) + + for (const ancestor of an) { + switch (ancestor.type) { + case AST_NODE_TYPES.Property: + if ([...an, node].indexOf(ancestor.key) !== -1) return + break + case AST_NODE_TYPES.ConditionalExpression: + if ([...an, node].indexOf(ancestor.test) !== -1) return + break + case AST_NODE_TYPES.MemberExpression: + if ([...an, node].indexOf(ancestor.property) !== -1) return + break + case AST_NODE_TYPES.CallExpression: + if ([...an, node].indexOf(ancestor.callee) !== -1) return + break + } + } + + context.report({ + node, + messageId: 'cssUtilsLiteralOnly', + }) + }, + } + }, +}) diff --git a/packages/eslint-plugin/src/rules/index.ts b/packages/eslint-plugin/src/rules/index.ts new file mode 100644 index 00000000..2c7e3eb8 --- /dev/null +++ b/packages/eslint-plugin/src/rules/index.ts @@ -0,0 +1,4 @@ +export * from './css-utils-literal-only' +export * from './no-duplicate-value' +export * from './no-useless-responsive' +export * from './no-useless-tailing-nulls' diff --git a/packages/eslint-plugin/src/rules/no-duplicate-value/README.md b/packages/eslint-plugin/src/rules/no-duplicate-value/README.md new file mode 100644 index 00000000..b5774d5b --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-duplicate-value/README.md @@ -0,0 +1,71 @@ +# no-duplicate-value + +Disallow consecutive duplicate values in arrays within devup-ui components and utilities. + +## Rule Details + +This rule prevents the use of consecutive duplicate literal values in arrays that are passed to devup-ui components or utilities. Consecutive duplicate values are considered redundant since they don't provide any additional styling information and can be replaced with `null` values. + +### Examples + +#### ❌ Incorrect + +```tsx +import { Box } from '@devup-ui/react' + +// Consecutive duplicate values are redundant +; +; +``` + +```tsx +import { css } from '@devup-ui/react' + +// Consecutive duplicates in css utility +css({ w: [1, 2, 2, 2, 3] }) +``` + +#### ✅ Correct + +```tsx +import { Box } from '@devup-ui/react' + +// No consecutive duplicates +; +; // null values are fine +; // null between different values +``` + +```tsx +import { Box } from 'other-package' + +// Only applies to devup-ui components +; +``` + +```tsx +import { css } from '@devup-ui/react' + +// No consecutive duplicates +css({ w: [1, 2, 3] }) +css({ w: [1, 2, null, null, 3] }) +``` + +## When Not To Use It + +This rule is specifically designed for devup-ui components and utilities. It only applies when: + +- Using devup-ui components (e.g., `Box`, `Flex`, etc.) +- Using devup-ui utilities (e.g., `css` function) +- The array contains consecutive literal values that are identical + +The rule will not trigger for: + +- Non-consecutive duplicate values (e.g., `[1, 2, 1]`) +- Arrays used with other libraries +- Non-literal values +- Arrays that are part of member expressions + +## Auto-fixable + +This rule is auto-fixable. ESLint will automatically replace consecutive duplicate values with `null` when possible. diff --git a/packages/eslint-plugin/src/rules/no-duplicate-value/__tests__/index.test.ts b/packages/eslint-plugin/src/rules/no-duplicate-value/__tests__/index.test.ts new file mode 100644 index 00000000..b16070cd --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-duplicate-value/__tests__/index.test.ts @@ -0,0 +1,85 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { noDuplicateValue } from '../index' + +describe('no-duplicate-value rule', () => { + const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + }) + ruleTester.run('no-duplicate-value rule', noDuplicateValue, { + valid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "other-package";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { css } from "other-package";\ncss()', + filename: 'src/app/page.tsx', + }, + ], + invalid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + output: + 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'duplicateValue', + }, + { + messageId: 'duplicateValue', + }, + ], + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + output: + 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'duplicateValue', + }, + ], + }, + { + code: 'import { css } from "@devup-ui/react";\ncss({w: [1, 2, 2, 2, 3]})', + output: + 'import { css } from "@devup-ui/react";\ncss({w: [1, 2, null, null, 3]})', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'duplicateValue', + }, + { + messageId: 'duplicateValue', + }, + ], + }, + ], + }) +}) diff --git a/packages/eslint-plugin/src/rules/no-duplicate-value/index.ts b/packages/eslint-plugin/src/rules/no-duplicate-value/index.ts new file mode 100644 index 00000000..0875d444 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-duplicate-value/index.ts @@ -0,0 +1,97 @@ +import { + AST_NODE_TYPES, + ESLintUtils, + type TSESTree, +} from '@typescript-eslint/utils' +import type { RuleContext } from '@typescript-eslint/utils/ts-eslint' + +import { ImportStorage } from '../../utils/import-storage' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +function checkDuplicateValue>( + node: TSESTree.ArrayExpression, + context: T, +) { + for (let i = 0; i < node.elements.length; i++) { + const element = node.elements[i] + if (element?.type === AST_NODE_TYPES.Literal) { + if (i === 0) continue + const prevElement = node.elements[i - 1] + if ( + prevElement?.type === AST_NODE_TYPES.Literal && + element.value === prevElement.value && + element.value !== null + ) { + context.report({ + node, + messageId: 'duplicateValue', + data: { + value: element.value, + }, + fix(fixer) { + return fixer.replaceText(element, 'null') + }, + }) + } + } + } +} + +export const noDuplicateValue = createRule({ + name: 'no-duplicate-value', + defaultOptions: [], + meta: { + schema: [], + messages: { + duplicateValue: 'Duplicate value found: {{value}}.', + }, + type: 'problem', + fixable: 'code', + docs: { + description: 'No duplicate value.', + }, + }, + create(context) { + const importStorage = new ImportStorage() + let devupContext: + | TSESTree.CallExpression + | TSESTree.JSXOpeningElement + | null = null + return { + ImportDeclaration(node) { + importStorage.addImportByDeclaration(node) + }, + CallExpression(node) { + if ( + importStorage.checkContextType(node) === 'UTIL' && + node.arguments.length === 1 && + node.arguments[0].type === AST_NODE_TYPES.ObjectExpression + ) { + devupContext = node + } + }, + 'CallExpression:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + JSXOpeningElement(node) { + if (importStorage.checkContextType(node) === 'COMPONENT') { + devupContext = node + } + }, + 'JSXOpeningElement:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + ArrayExpression(node) { + if (devupContext) checkDuplicateValue(node, context) + }, + } + }, +}) diff --git a/packages/eslint-plugin/src/rules/no-useless-responsive/README.md b/packages/eslint-plugin/src/rules/no-useless-responsive/README.md new file mode 100644 index 00000000..481c4a36 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-responsive/README.md @@ -0,0 +1,79 @@ +# no-useless-responsive + +Disallow useless responsive arrays with single values in devup-ui components and utilities. + +## Rule Details + +This rule prevents the use of arrays with only one element when passed to devup-ui components or utilities. Single-element arrays are considered useless for responsive design since they don't provide any responsive behavior and can be simplified to just the value itself. + +### Examples + +#### ❌ Incorrect + +```tsx +import { Box } from '@devup-ui/react' + +// Single-element arrays are useless +; +; +``` + +```tsx +import { css } from '@devup-ui/react' + +// Single-element arrays in css utility +css({ w: [1] }) +``` + +```tsx +import { css as c } from '@devup-ui/react' + +// Works with aliased imports +c({ w: [1] }) +``` + +#### ✅ Correct + +```tsx +import { Box } from '@devup-ui/react' + +// Use the value directly instead of wrapping in array +; +; +; // Empty arrays are fine +``` + +```tsx +import { Box } from 'other-package' + +// Only applies to devup-ui components +; +; // Multi-element arrays are fine +``` + +```tsx +import { css } from '@devup-ui/react' + +// Use the value directly +css({ w: 1 }) +css({ w: '1' }) +``` + +## When Not To Use It + +This rule is specifically designed for devup-ui components and utilities. It only applies when: + +- Using devup-ui components (e.g., `Box`, `Flex`, etc.) +- Using devup-ui utilities (e.g., `css` function) +- The array contains exactly one element + +The rule will not trigger for: + +- Arrays with multiple elements (e.g., `[1, 2, 3]`) +- Empty arrays (e.g., `[]`) +- Arrays used with other libraries +- Non-array values + +## Auto-fixable + +This rule is auto-fixable. ESLint will automatically convert single-element arrays to their direct values when possible. diff --git a/packages/eslint-plugin/src/rules/no-useless-responsive/__tests__/index.test.ts b/packages/eslint-plugin/src/rules/no-useless-responsive/__tests__/index.test.ts new file mode 100644 index 00000000..62c5b85a --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-responsive/__tests__/index.test.ts @@ -0,0 +1,166 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { noUselessResponsive } from '../index' + +describe('no-useless-responsive rule', () => { + const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + }) + ruleTester.run('no-useless-responsive rule', noUselessResponsive, { + valid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { "Box" as B } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import B from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import * as B from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n {console.log([1])}} />', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { css } from "@devup-ui/react";\ncss({w: 1})', + filename: 'src/app/page.tsx', + }, + { + code: 'import { css } from "@devup-ui/react";\ncss({w: "1"})', + filename: 'src/app/page.tsx', + }, + { + code: 'import { css } from "other-package";\ncss({w: [1][0]})', + filename: 'src/app/page.tsx', + }, + { + code: 'import { css } from "other-package";\ncss()', + filename: 'src/app/page.tsx', + }, + ], + invalid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + output: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + output: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import A from "@devup-ui/react";\n', + output: 'import A from "@devup-ui/react";\n', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import { css } from "@devup-ui/react";\ncss({w: [1]})', + output: 'import { css } from "@devup-ui/react";\ncss({w: 1})', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import { css as c } from "@devup-ui/react";\nc({w: [1]})', + output: 'import { css as c } from "@devup-ui/react";\nc({w: 1})', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import c from "@devup-ui/react";\nc.css({w: [1]})', + output: 'import c from "@devup-ui/react";\nc.css({w: 1})', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import * as c from "@devup-ui/react";\nc.css({w: [1]})', + output: 'import * as c from "@devup-ui/react";\nc.css({w: 1})', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + ], + }, + { + code: 'import * as c from "@devup-ui/react";\nc.css({w: [1].length === 1 ? [1] : [2]})', + output: + 'import * as c from "@devup-ui/react";\nc.css({w: [1].length === 1 ? 1 : 2})', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessResponsive', + }, + { + messageId: 'uselessResponsive', + }, + ], + }, + ], + }) +}) diff --git a/packages/eslint-plugin/src/rules/no-useless-responsive/index.ts b/packages/eslint-plugin/src/rules/no-useless-responsive/index.ts new file mode 100644 index 00000000..4d7721f6 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-responsive/index.ts @@ -0,0 +1,109 @@ +import { + AST_NODE_TYPES, + ESLintUtils, + type TSESTree, +} from '@typescript-eslint/utils' +import type { RuleContext } from '@typescript-eslint/utils/ts-eslint' + +import { ImportStorage } from '../../utils/import-storage' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +function checkUselessResponsive>( + node: TSESTree.ArrayExpression, + ancestors: TSESTree.Node[], + context: T, +) { + if (node.elements.length !== 1) return + + const element = node.elements[0]! + for (const ancestor of ancestors) { + switch (ancestor.type) { + case AST_NODE_TYPES.ConditionalExpression: + if (ancestors.indexOf(ancestor.test) !== -1) return + break + case AST_NODE_TYPES.JSXExpressionContainer: + case AST_NODE_TYPES.Property: + case AST_NODE_TYPES.JSXOpeningElement: + case AST_NODE_TYPES.CallExpression: + case AST_NODE_TYPES.ObjectExpression: + case AST_NODE_TYPES.JSXAttribute: + break + default: + return + } + } + + context.report({ + node, + messageId: 'uselessResponsive', + fix(fixer) { + return fixer.replaceText(node, context.sourceCode.getText(element!)) + }, + }) +} + +export const noUselessResponsive = createRule({ + name: 'no-useless-responsive', + defaultOptions: [], + meta: { + schema: [], + messages: { + uselessResponsive: 'Responsive are useless. Remove them.', + }, + type: 'problem', + fixable: 'code', + docs: { + description: 'No useless responsive.', + }, + }, + create(context) { + const importStorage = new ImportStorage() + let devupContext: + | TSESTree.CallExpression + | TSESTree.JSXOpeningElement + | null = null + return { + ImportDeclaration(node) { + importStorage.addImportByDeclaration(node) + }, + CallExpression(node) { + if ( + importStorage.checkContextType(node) === 'UTIL' && + node.arguments.length === 1 && + node.arguments[0].type === AST_NODE_TYPES.ObjectExpression + ) { + devupContext = node + } + }, + 'CallExpression:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + JSXOpeningElement(node) { + if (importStorage.checkContextType(node) === 'COMPONENT') { + devupContext = node + } + }, + 'JSXOpeningElement:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + ArrayExpression(node) { + if (devupContext) + checkUselessResponsive( + node, + context.sourceCode + .getAncestors(node) + .slice(context.sourceCode.getAncestors(devupContext).length), + context, + ) + }, + } + }, +}) diff --git a/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/README.md b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/README.md new file mode 100644 index 00000000..11a95db0 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/README.md @@ -0,0 +1,63 @@ +# no-useless-tailing-nulls + +Disallow useless trailing null values in arrays within devup-ui components and utilities. + +## Rule Details + +This rule prevents the use of trailing `null` values in arrays that are passed to devup-ui components or utilities. Trailing nulls are considered useless because they don't affect the styling behavior and can be safely removed. + +### Examples + +#### ❌ Incorrect + +```tsx +import { Box } from '@devup-ui/react' + +// Trailing nulls are useless +; +; +; +``` + +```tsx +import { css } from '@devup-ui/react' + +// Trailing nulls in css utility +css({ w: [1, 2, null, null] }) +``` + +#### ✅ Correct + +```tsx +import { Box } from '@devup-ui/react' + +// No trailing nulls +; +; // null in the middle is fine +; +``` + +```tsx +import { Box } from 'other-package' + +// Only applies to devup-ui components +; +``` + +## When Not To Use It + +This rule is specifically designed for devup-ui components and utilities. It only applies when: + +- Using devup-ui components (e.g., `Box`, `Flex`, etc.) +- Using devup-ui utilities (e.g., `css` function) +- The array is not part of a member expression (e.g., `array[1]`) + +The rule will not trigger for: + +- Arrays with null values in the middle +- Arrays used with other libraries +- Arrays that are part of member expressions + +## Auto-fixable + +This rule is auto-fixable. ESLint will automatically remove trailing null values when possible. diff --git a/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/__tests__/index.test.ts b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/__tests__/index.test.ts new file mode 100644 index 00000000..d83b2815 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/__tests__/index.test.ts @@ -0,0 +1,74 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { noUselessTailingNulls } from '../index' + +describe('no-useless-tailing-nulls rule', () => { + const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + }) + ruleTester.run('no-useless-tailing-nulls rule', noUselessTailingNulls, { + valid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + }, + { + code: 'import { Box } from "other-package";\n', + filename: 'src/app/page.tsx', + }, + ], + invalid: [ + { + code: 'import { Box } from "@devup-ui/react";\n', + output: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'uselessTailingNulls', + }, + ], + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + output: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'uselessTailingNulls', + }, + ], + }, + { + code: 'import { css } from "@devup-ui/react";\ncss({w: [1, 2, null, null]})', + output: 'import { css } from "@devup-ui/react";\ncss({w: [1, 2]})', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'uselessTailingNulls', + }, + ], + }, + { + code: 'import { Box } from "@devup-ui/react";\n', + output: 'import { Box } from "@devup-ui/react";\n', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'uselessTailingNulls', + }, + ], + }, + ], + }) +}) diff --git a/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/index.ts b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/index.ts new file mode 100644 index 00000000..da79db55 --- /dev/null +++ b/packages/eslint-plugin/src/rules/no-useless-tailing-nulls/index.ts @@ -0,0 +1,101 @@ +import { + AST_NODE_TYPES, + ESLintUtils, + type TSESTree, +} from '@typescript-eslint/utils' +import type { RuleContext } from '@typescript-eslint/utils/ts-eslint' + +import { ImportStorage } from '../../utils/import-storage' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +function checkUselessTailingNulls>( + node: TSESTree.ArrayExpression, + context: T, +) { + let nullCount = 0 + for (let i = node.elements.length - 1; i >= 0; i--) { + const element = node.elements[i] + if (element?.type === AST_NODE_TYPES.Literal && element.value === null) { + nullCount++ + } else { + break + } + } + if (nullCount === 0) return + context.report({ + node, + messageId: 'uselessTailingNulls', + fix(fixer) { + return fixer.removeRange([ + node.elements.length > nullCount + ? node.elements[node.elements.length - nullCount - 1]!.range[1] + : node.elements[0]!.range[0], + + node.elements[node.elements.length - 1]!.range[1], + ]) + }, + }) +} + +export const noUselessTailingNulls = createRule({ + name: 'no-useless-tailing-nulls', + defaultOptions: [], + meta: { + schema: [], + messages: { + uselessTailingNulls: 'Trailing nulls are useless. Remove them.', + }, + type: 'problem', + fixable: 'code', + docs: { + description: 'No useless tailing nulls.', + }, + }, + create(context) { + const importStorage = new ImportStorage() + let devupContext: + | TSESTree.CallExpression + | TSESTree.JSXOpeningElement + | null = null + return { + ImportDeclaration(node) { + importStorage.addImportByDeclaration(node) + }, + CallExpression(node) { + if ( + importStorage.checkContextType(node) === 'UTIL' && + node.arguments.length === 1 && + node.arguments[0].type === AST_NODE_TYPES.ObjectExpression + ) { + devupContext = node + } + }, + 'CallExpression:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + JSXOpeningElement(node) { + if (importStorage.checkContextType(node) === 'COMPONENT') { + devupContext = node + } + }, + 'JSXOpeningElement:exit'(node) { + if (devupContext === node) { + devupContext = null + } + }, + ArrayExpression(node) { + if ( + devupContext && + node.parent?.type !== AST_NODE_TYPES.MemberExpression + ) + checkUselessTailingNulls(node, context) + }, + } + }, +}) diff --git a/packages/eslint-plugin/src/utils/import-storage.ts b/packages/eslint-plugin/src/utils/import-storage.ts new file mode 100644 index 00000000..008fb21a --- /dev/null +++ b/packages/eslint-plugin/src/utils/import-storage.ts @@ -0,0 +1,87 @@ +import { AST_NODE_TYPES, type TSESTree } from '@typescript-eslint/utils' +const defaultImports = { + css: 'css', + globalCss: 'globalCss', + keyframes: 'keyframes', + Box: 'Box', + Button: 'Button', + Text: 'Text', + Image: 'Image', + Flex: 'Flex', + Grid: 'Grid', + Center: 'Center', + VStack: 'VStack', + Input: 'Input', +} + +export class ImportStorage { + private imports: Record = {} + private importObject: Set = new Set() + + public addImportByDeclaration(node: TSESTree.ImportDeclaration) { + if (node.source.value !== '@devup-ui/react') return + + for (const specifier of node.specifiers) { + switch (specifier.type) { + case AST_NODE_TYPES.ImportSpecifier: + this.addImport( + specifier.local.name, + specifier.imported.type === AST_NODE_TYPES.Literal + ? specifier.imported.value + : specifier.imported.name, + ) + break + case AST_NODE_TYPES.ImportDefaultSpecifier: + this.importObject.add(specifier.local.name) + break + case AST_NODE_TYPES.ImportNamespaceSpecifier: + this.importObject.add(specifier.local.name) + break + } + } + } + + public addImport(key: string, value: string) { + this.imports[key] = value + } + + public checkContextType(node: TSESTree.Node) { + switch (node.type) { + case AST_NODE_TYPES.JSXOpeningElement: { + if (this.checkDevupUIComponent(node.name)) { + return 'COMPONENT' + } + break + } + case AST_NODE_TYPES.CallExpression: { + if (this.checkDevupUIUtil(node)) { + return 'UTIL' + } + break + } + } + } + + private checkDevupUIUtil(node: TSESTree.CallExpression): boolean { + return ( + (node.callee.type === AST_NODE_TYPES.Identifier && + node.callee.name in this.imports) || + (node.callee.type === AST_NODE_TYPES.MemberExpression && + node.callee.object.type === AST_NODE_TYPES.Identifier && + this.importObject.has(node.callee.object.name) && + node.callee.property.type === AST_NODE_TYPES.Identifier && + node.callee.property.name in defaultImports) + ) + } + + private checkDevupUIComponent(node: TSESTree.JSXTagNameExpression): boolean { + return ( + (node.type === AST_NODE_TYPES.JSXIdentifier && + node.name in this.imports) || + (node.type === AST_NODE_TYPES.JSXMemberExpression && + node.object.type === AST_NODE_TYPES.JSXIdentifier && + this.importObject.has(node.object.name) && + node.property.name in defaultImports) + ) + } +} diff --git a/packages/eslint-plugin/tsconfig.json b/packages/eslint-plugin/tsconfig.json new file mode 100644 index 00000000..4c6e75be --- /dev/null +++ b/packages/eslint-plugin/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "types": ["vite/client", "vitest/importMeta", "vitest/globals"], + "strict": true, + "target": "ESNext", + "declaration": true, + "declarationMap": true, + "removeComments": true, + "sourceMap": true, + "useDefineForClassFields": true, + "allowJs": false, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "strictFunctionTypes": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "baseUrl": ".", + "jsx": "react-jsx" + } +} diff --git a/packages/eslint-plugin/vite.config.ts b/packages/eslint-plugin/vite.config.ts new file mode 100644 index 00000000..a1d1f0f0 --- /dev/null +++ b/packages/eslint-plugin/vite.config.ts @@ -0,0 +1,63 @@ +import dts from 'vite-plugin-dts' +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + globals: true, + coverage: { + all: true, + thresholds: { + '100': true, + }, + }, + }, + plugins: [ + dts({ + entryRoot: 'src', + staticImport: true, + pathsToAliases: false, + exclude: [ + '**/__tests__/**/*', + '**/*.test.(tsx|ts|js|jsx)', + '**/*.test-d.(tsx|ts|js|jsx)', + 'vite.config.ts', + ], + include: ['**/src/**/*.ts'], + copyDtsFiles: true, + compilerOptions: { + isolatedModules: false, + declaration: true, + }, + }) as any, + ], + build: { + rollupOptions: { + onwarn: (warning) => { + if (warning.code === 'MODULE_LEVEL_DIRECTIVE') { + return + } + }, + external: (source) => { + return !(source.includes('src') || source.startsWith('.')) + }, + + output: { + dir: 'dist', + preserveModules: true, + preserveModulesRoot: 'src', + + exports: 'named', + assetFileNames({ name }) { + return name?.replace(/^src\//g, '') ?? '' + }, + }, + }, + lib: { + formats: ['es', 'cjs'], + entry: { + index: 'src/index.ts', + }, + }, + outDir: 'dist', + }, +}) diff --git a/packages/next-plugin/package.json b/packages/next-plugin/package.json index 292a6f4e..29e3e7b7 100644 --- a/packages/next-plugin/package.json +++ b/packages/next-plugin/package.json @@ -46,7 +46,7 @@ "browserslist": "latest" }, "devDependencies": { - "vite": "^7.1.6", + "vite": "^7.1.7", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", "typescript": "^5.9.2", diff --git a/packages/react/package.json b/packages/react/package.json index 55253f0a..1112356a 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -44,7 +44,7 @@ }, "devDependencies": { "rollup-plugin-preserve-directives": "^0.4.0", - "vite": "^7.1.6", + "vite": "^7.1.7", "vite-plugin-dts": "^4.5.4", "typescript": "^5.9.2", "@types/react": "^19" diff --git a/packages/reset-css/package.json b/packages/reset-css/package.json index 4dabf3a2..e0da71f5 100644 --- a/packages/reset-css/package.json +++ b/packages/reset-css/package.json @@ -43,7 +43,7 @@ }, "devDependencies": { "typescript": "^5.9.2", - "vite": "^7.1.6", + "vite": "^7.1.7", "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 5714c89b..3eef9e6e 100644 --- a/packages/rsbuild-plugin/package.json +++ b/packages/rsbuild-plugin/package.json @@ -56,8 +56,8 @@ "@rsbuild/core": "*" }, "devDependencies": { - "@rsbuild/core": "^1.5.10", - "vite": "^7.1.6", + "@rsbuild/core": "^1.5.12", + "vite": "^7.1.7", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", "typescript": "^5.9.2" diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 3c622629..960d2ca8 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -55,7 +55,7 @@ "@devup-ui/wasm": "*" }, "devDependencies": { - "vite": "^7.1.6", + "vite": "^7.1.7", "@types/webpack": "^5.28.5", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7a28a73..9ca913e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@changesets/cli': specifier: ^2.29.7 version: 2.29.7(@types/node@24.5.2) + '@devup-ui/eslint-plugin': + specifier: workspace:* + version: link:packages/eslint-plugin '@devup-ui/vite-plugin': specifier: workspace:* version: link:packages/vite-plugin @@ -22,7 +25,7 @@ importers: version: 6.8.0 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.15))(@types/react@19.1.15)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@testing-library/user-event': specifier: 14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -31,34 +34,37 @@ importers: version: 24.5.2 '@vitest/coverage-v8': specifier: ^3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) eslint: - specifier: ^9.35.0 - version: 9.36.0(jiti@2.5.1) + specifier: ^9.36.0 + version: 9.36.0(jiti@2.6.0) eslint-plugin-devup: specifier: ^2.0.5 - version: 2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + version: 2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint-plugin-eslint-plugin: + specifier: ^7.0.0 + version: 7.0.0(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-jsonc: specifier: ^2.20.1 - version: 2.20.1(eslint@9.36.0(jiti@2.5.1)) + version: 2.20.1(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-mdx: specifier: ^3.6.2 - version: 3.6.2(eslint@9.36.0(jiti@2.5.1)) + version: 3.6.2(eslint@9.36.0(jiti@2.6.0)) globals: specifier: ^16.4.0 version: 16.4.0 happy-dom: - specifier: ^18.0.1 - version: 18.0.1 + specifier: ^19.0.1 + version: 19.0.1 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^16.1.6 - version: 16.1.6 + specifier: ^16.2.3 + version: 16.2.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) apps/landing: dependencies: @@ -78,8 +84,8 @@ importers: specifier: ^3.1.1 version: 3.1.1(@types/react@19.1.13)(react@19.1.1) '@next/mdx': - specifier: ^15.5.3 - version: 15.5.3(@mdx-js/loader@3.1.1(webpack@5.101.3))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1)) + specifier: ^15.5.4 + version: 15.5.4(@mdx-js/loader@3.1.1(webpack@5.101.3))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1)) '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -93,8 +99,8 @@ importers: specifier: 1.3.11 version: 1.3.11(react@19.1.1) next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -145,8 +151,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -186,11 +192,11 @@ importers: specifier: workspace:* version: link:../../packages/rsbuild-plugin '@rsbuild/core': - specifier: ^1.5.10 - version: 1.5.10 + specifier: ^1.5.12 + version: 1.5.12 '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.10) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) apps/vite: dependencies: @@ -220,14 +226,14 @@ importers: specifier: ^19 version: 19.1.9(@types/react@19.1.13) '@vitejs/plugin-react': - specifier: ^5.0.3 - version: 5.0.3(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^5.0.4 + version: 5.0.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) typescript: specifier: ^5 version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) apps/vite-lib: dependencies: @@ -248,17 +254,17 @@ importers: specifier: ^19 version: 19.1.13 '@vitejs/plugin-react': - specifier: ^5.0.3 - version: 5.0.3(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^5.0.4 + version: 5.0.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) typescript: specifier: ^5 version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) benchmark/next-chakra-ui: dependencies: @@ -269,8 +275,8 @@ importers: specifier: ^11.14.0 version: 11.14.0(@types/react@19.1.13)(react@19.1.1) next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.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) @@ -303,8 +309,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -334,8 +340,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -363,10 +369,10 @@ importers: dependencies: '@kuma-ui/core': specifier: ^1.5.9 - version: 1.5.9(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -376,7 +382,7 @@ importers: devDependencies: '@kuma-ui/next-plugin': specifier: ^1.3.3 - version: 1.3.3(@babel/core@7.28.4)(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3) + version: 1.3.3(@babel/core@7.28.4)(@types/react@19.1.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3) '@types/node': specifier: ^24 version: 24.5.2 @@ -402,8 +408,8 @@ importers: specifier: 7.3.2 version: 7.3.2(@emotion/react@11.14.0(@types/react@19.1.13)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.13)(react@19.1.1))(@types/react@19.1.13)(react@19.1.1))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -430,8 +436,8 @@ importers: benchmark/next-panda-css: dependencies: next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -440,8 +446,8 @@ importers: version: 19.1.1(react@19.1.1) devDependencies: '@pandacss/dev': - specifier: ^1.3 - version: 1.3.1(typescript@5.9.2) + specifier: ^1.4 + version: 1.4.0(typescript@5.9.2) '@types/node': specifier: ^24 version: 24.5.2 @@ -461,14 +467,14 @@ importers: specifier: ^0.11.1 version: 0.11.1 '@stylexjs/stylex': - specifier: ^0.15.4 - version: 0.15.4 + specifier: ^0.16.0 + version: 0.16.0 bright: specifier: ^1.0.0 version: 1.0.0(react@19.1.1) next: - specifier: 15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: 19.1.1 version: 19.1.1 @@ -489,32 +495,32 @@ importers: specifier: ^7.27.1 version: 7.27.1(@babel/core@7.28.4) '@stylexjs/babel-plugin': - specifier: ^0.15.4 - version: 0.15.4 + specifier: ^0.16.0 + version: 0.16.0 '@stylexjs/eslint-plugin': - specifier: ^0.15.4 - version: 0.15.4 + specifier: ^0.16.0 + version: 0.16.0 '@stylexjs/nextjs-plugin': specifier: ^0.11.1 - version: 0.11.1(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) + version: 0.11.1(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) '@types/node': specifier: 24.5.2 version: 24.5.2 '@types/react': - specifier: 19.1.13 - version: 19.1.13 + specifier: 19.1.15 + version: 19.1.15 '@types/react-dom': specifier: 19.1.9 - version: 19.1.9(@types/react@19.1.13) + version: 19.1.9(@types/react@19.1.15) '@types/react-test-renderer': specifier: ^19.1.0 version: 19.1.0 eslint: specifier: 9.36.0 - version: 9.36.0(jiti@2.5.1) + version: 9.36.0(jiti@2.6.0) eslint-config-next: - specifier: 15.5.3 - version: 15.5.3(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + specifier: 15.5.4 + version: 15.5.4(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -534,8 +540,8 @@ importers: benchmark/next-tailwind: dependencies: next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -574,8 +580,8 @@ importers: specifier: ^1.17.4 version: 1.17.4(babel-plugin-macros@3.1.0) next: - specifier: ^15.5.3 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^15.5.4 + version: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 @@ -597,7 +603,7 @@ importers: version: 19.1.9(@types/react@19.1.13) '@vanilla-extract/next-plugin': specifier: ^2.4.14 - version: 2.4.14(babel-plugin-macros@3.1.0)(next@15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(webpack@5.101.3) + version: 2.4.14(babel-plugin-macros@3.1.0)(next@15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(webpack@5.101.3) typescript: specifier: ^5 version: 5.9.2 @@ -623,38 +629,60 @@ importers: specifier: workspace:* version: link:../vite-plugin '@storybook/addon-docs': - specifier: ^9.1.7 - version: 9.1.7(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + specifier: ^9.1.8 + version: 9.1.8(@types/react@19.1.15)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/addon-onboarding': - specifier: ^9.1.7 - version: 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + specifier: ^9.1.8 + version: 9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/react-vite': - specifier: ^9.1.7 - version: 9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.51.0)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^9.1.8 + version: 9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.51.0)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@types/react': - specifier: ^19.1.13 - version: 19.1.13 + specifier: ^19.1.15 + version: 19.1.15 eslint-plugin-storybook: - specifier: ^9.1.7 - version: 9.1.7(eslint@9.36.0(jiti@2.5.1))(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2) + specifier: ^9.1.8 + version: 9.1.8(eslint@9.36.0(jiti@2.6.0))(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2) rollup-plugin-preserve-directives: specifier: ^0.4.0 version: 0.4.0(rollup@4.51.0) storybook: - specifier: ^9.1.7 - version: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^9.1.8 + version: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) typescript: specifier: ^5.9.2 version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + + packages/eslint-plugin: + dependencies: + '@typescript-eslint/utils': + specifier: ^8.44 + version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + typescript-eslint: + specifier: ^8.44 + version: 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + devDependencies: + '@typescript-eslint/rule-tester': + specifier: ^8.44 + version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + typescript: + specifier: ^5.9.2 + version: 5.9.2 + vite: + specifier: ^6 + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite-plugin-dts: + specifier: ^4.5.4 + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) packages/next-plugin: dependencies: @@ -666,7 +694,7 @@ importers: version: 4.26.2 next: specifier: ^15.5 - version: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 15.5.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) devDependencies: '@types/webpack': specifier: ^5.28.5 @@ -676,13 +704,13 @@ importers: version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) packages/react: dependencies: @@ -704,10 +732,10 @@ importers: version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) packages/reset-css: dependencies: @@ -723,10 +751,10 @@ importers: version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) packages/rsbuild-plugin: dependencies: @@ -735,20 +763,20 @@ importers: version: link:../../bindings/devup-ui-wasm devDependencies: '@rsbuild/core': - specifier: ^1.5.10 - version: 1.5.10 + specifier: ^1.5.12 + version: 1.5.12 typescript: specifier: ^5.9.2 version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) packages/vite-plugin: dependencies: @@ -757,14 +785,14 @@ importers: version: link:../../bindings/devup-ui-wasm vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) devDependencies: typescript: specifier: ^5.9.2 version: 5.9.2 vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) packages/webpack-plugin: dependencies: @@ -780,13 +808,13 @@ importers: version: 5.9.2 vite: specifier: ^6 - version: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) packages: @@ -2257,11 +2285,14 @@ packages: '@next/env@15.5.3': resolution: {integrity: sha512-RSEDTRqyihYXygx/OJXwvVupfr9m04+0vH8vyy0HfZ7keRto6VX9BbEk0J2PUk0VGy6YhklJUSrgForov5F9pw==} - '@next/eslint-plugin-next@15.5.3': - resolution: {integrity: sha512-SdhaKdko6dpsSr0DldkESItVrnPYB1NS2NpShCSX5lc7SSQmLZt5Mug6t2xbiuVWEVDLZSuIAoQyYVBYp0dR5g==} + '@next/env@15.5.4': + resolution: {integrity: sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==} - '@next/mdx@15.5.3': - resolution: {integrity: sha512-tpD3sdWfAiqjqD1WXL4ZEpxswXdbeoTQjlgvDzbQOxDr37qaAo9bFkpMVb3P3pgAJAQ9Q6w1Yql6YtOsmgZrzg==} + '@next/eslint-plugin-next@15.5.4': + resolution: {integrity: sha512-SR1vhXNNg16T4zffhJ4TS7Xn7eq4NfKfcOsRwea7RIAHrjRpI9ALYbamqIJqkAhowLlERffiwk0FMvTLNdnVtw==} + + '@next/mdx@15.5.4': + resolution: {integrity: sha512-QUc14KkswCau2/Lul13t13v8QYRiEh3aeyUMUix5mK/Zd8c/J9NQuVvLGhxS7fxGPU+fOcv0GaXqZshkvNaX7A==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -2277,48 +2308,96 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.5.4': + resolution: {integrity: sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@15.5.3': resolution: {integrity: sha512-w83w4SkOOhekJOcA5HBvHyGzgV1W/XvOfpkrxIse4uPWhYTTRwtGEM4v/jiXwNSJvfRvah0H8/uTLBKRXlef8g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.5.4': + resolution: {integrity: sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@15.5.3': resolution: {integrity: sha512-+m7pfIs0/yvgVu26ieaKrifV8C8yiLe7jVp9SpcIzg7XmyyNE7toC1fy5IOQozmr6kWl/JONC51osih2RyoXRw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.5.4': + resolution: {integrity: sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@15.5.3': resolution: {integrity: sha512-u3PEIzuguSenoZviZJahNLgCexGFhso5mxWCrrIMdvpZn6lkME5vc/ADZG8UUk5K1uWRy4hqSFECrON6UKQBbQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.5.4': + resolution: {integrity: sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@15.5.3': resolution: {integrity: sha512-lDtOOScYDZxI2BENN9m0pfVPJDSuUkAD1YXSvlJF0DKwZt0WlA7T7o3wrcEr4Q+iHYGzEaVuZcsIbCps4K27sA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.5.4': + resolution: {integrity: sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@15.5.3': resolution: {integrity: sha512-9vWVUnsx9PrY2NwdVRJ4dUURAQ8Su0sLRPqcCCxtX5zIQUBES12eRVHq6b70bbfaVaxIDGJN2afHui0eDm+cLg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.5.4': + resolution: {integrity: sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@15.5.3': resolution: {integrity: sha512-1CU20FZzY9LFQigRi6jM45oJMU3KziA5/sSG+dXeVaTm661snQP6xu3ykGxxwU5sLG3sh14teO/IOEPVsQMRfA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.5.4': + resolution: {integrity: sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-x64-msvc@15.5.3': resolution: {integrity: sha512-JMoLAq3n3y5tKXPQwCK5c+6tmwkuFDa2XAxz8Wm4+IVthdBZdZGh+lmiLUHg9f9IDwIQpUjp+ysd6OkYTyZRZw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.5.4': + resolution: {integrity: sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2359,57 +2438,57 @@ packages: resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} engines: {node: ^16.14.0 || >=18.0.0} - '@pandacss/config@1.3.1': - resolution: {integrity: sha512-Q58Q40JvVyZSruX3jthoJMsUv80Q0g2Aug0Q4OKSaqxLV3MXh3gW8KN0qztVp4kSS+sURShh8qPd6Ucjp5YXPA==} + '@pandacss/config@1.4.0': + resolution: {integrity: sha512-g/9t1V6k44rVqfQvsHBwB6D+GPUYRffHd1dnCh+OXIt/sYofmEwiVVoSmc1C0ohFimyNxMe2aPn7BctIRZWrqg==} - '@pandacss/core@1.3.1': - resolution: {integrity: sha512-NxRnZnz+kftf4iBJwNdoR/cjDIXT7x5f43teQoSDklcB+5CghAoN8Q5xqJS3pQ8PPZDQnB2Ek+sncTWBfITlgg==} + '@pandacss/core@1.4.0': + resolution: {integrity: sha512-BTMFFwaTCOAOxt27OQZwBErECtr4wUc/ZSM8ANi0AWryGJGx0jb4xmKhAu5B85B2zpxt9BkyNs8QC6UOt6DWgA==} - '@pandacss/dev@1.3.1': - resolution: {integrity: sha512-ddoVOsbb39sp6TTZQtrQRBlxsPKJWsnZvr3bKucRXa6xvjUEuWHgA0pP2qmx1XruIj+i4Tj8T2gHzZWhCT9r/g==} + '@pandacss/dev@1.4.0': + resolution: {integrity: sha512-/aS6WQHUjeoa1V+tW/bykZPqJ1jLIWz4gRgkRxCxpaS/ziSdYptZYVmcASsTWVtFamr8uEotB3hZejuLw6B9IA==} hasBin: true - '@pandacss/extractor@1.3.1': - resolution: {integrity: sha512-6UCPexBqvqJ0+He/yOwIZprPoRs/Gpt9n2Whf57NIceozhOpnFsCwrtgOQZLZlx7x9OdKf44g5ZBxM9wvRzCdw==} + '@pandacss/extractor@1.4.0': + resolution: {integrity: sha512-4JBZMyAH9T1HJPtEUQyzZH2GNi/qqCHHUdr+yY0v1BegUJvQgDXp/TNBFZuiGrfxUbd5Up6MqsLwKL3//e+KMg==} - '@pandacss/generator@1.3.1': - resolution: {integrity: sha512-xQQX2NNNVBYYq+wkcY3fk4UVAsAF+Y2YSfsxskLRMkPXFUzESphEv6mOadYQl7sTkxdpUriFYA3jL2Z9aiCb8Q==} + '@pandacss/generator@1.4.0': + resolution: {integrity: sha512-HSZ3LRVTb35lgB6fBrkeU2hil8wTp/mkzQEn0cqiEzlS0dHbilGQrFYmZOjcPZWD/gK2YKcFBuwNISWFZkLiKQ==} '@pandacss/is-valid-prop@0.54.0': resolution: {integrity: sha512-UhRgg1k9VKRCBAHl+XUK3lvN0k9bYifzYGZOqajDid4L1DyU813A1L0ZwN4iV9WX5TX3PfUugqtgG9LnIeFGBQ==} - '@pandacss/is-valid-prop@1.3.1': - resolution: {integrity: sha512-HT4U2GkVsdoESpN21DhzlgN32EfTki7Nd1vddhO4TGw4q0z1oaIuOozMH3/g6fFcN+Jo3fLOX+ZmbToLA/CPXw==} + '@pandacss/is-valid-prop@1.4.0': + resolution: {integrity: sha512-c3FX90/ogkhBEXcjkKdeICM+cg3w4gvJ9Urkoy+Ien+IJNCrPwjesX82k+ystY/teTzMF9B9g4sGAjkkRsd3ug==} - '@pandacss/logger@1.3.1': - resolution: {integrity: sha512-dY7I5+cAwPoYD5WblO9OjKd+RPZy3MUSZEk+fjM6KZsyl0GShdWery2246DxvpKCJnBLcYFp0UZErANt5gkllQ==} + '@pandacss/logger@1.4.0': + resolution: {integrity: sha512-d3FZVyPGIk87uWCMegtiGZSHAI7IA4MC3nUFpkCzBPaJgZfkVSwJjBr8Qz/Hz3S219i66a3vy3UxyCgc7omiHg==} - '@pandacss/node@1.3.1': - resolution: {integrity: sha512-2Qa6fjcpemaIVru4SBbNca5eDqeKOzIlIzXFlrdOOFD4ZWXDVaFqiCX6XeibeoHTHX+ACjtInv0GUrE8RNoCXw==} + '@pandacss/node@1.4.0': + resolution: {integrity: sha512-67axJaUcGDzvCOL5OTbMzSqrxLgM4t3JJNnSFKLeseaCAXqx7G97cJxP/sCXVWXoE47J/O7Sd4xaCQMMu4D2zA==} - '@pandacss/parser@1.3.1': - resolution: {integrity: sha512-vXYaZQD/9h5n/hOr8OCLLvMaY+ng/LchiFqXo5sHaA/fThTMeglipCjuK94rExbJ3PwqNTwcs8zQu0TrOpf/Gg==} + '@pandacss/parser@1.4.0': + resolution: {integrity: sha512-rEOaCI3cgoIs1vqTS8YH3L+Ex8WsW1deGmBo3Hl90mXDcqfkVJxBEAiTzFOCQAYpTUwX+lXzHiCGZQLPvBIFqQ==} - '@pandacss/postcss@1.3.1': - resolution: {integrity: sha512-QuJI31oQMXbtlDPNRENfqVs1VaTTVq6zGOOuz3BDDj++6x165IIEs3KgRmnKPnUNyRHTkQxOMoQZgKQ1wAsU9A==} + '@pandacss/postcss@1.4.0': + resolution: {integrity: sha512-t8BhJeNNV5H5PhqGrA6eER5Yc+Ph45yxZZewZ1YaanuRAWJqBja63x+s4by8aAk6PCe9+czM04BKfafZ3dXZCQ==} - '@pandacss/preset-base@1.3.1': - resolution: {integrity: sha512-3/Q1WlfIrxFLTbRo7Va1EBSgMgDOsvDxill26FWl2CIztKlQtRgeBg4ez8m7LM3elGth6jkTdBTRIry1MXNw1g==} + '@pandacss/preset-base@1.4.0': + resolution: {integrity: sha512-3qo/HdDezCqa6eItZypYiSnm+Sr7SxQtYST4n0UvLYCo3+crvR4q4CwaQG7UNq48abeVIHbN9Ux8kBVP6jFSmA==} - '@pandacss/preset-panda@1.3.1': - resolution: {integrity: sha512-ReLsoXIHIgXLSy0o+trdZpeMwvliL+9lNcpNtlkZrTrzLbrahJwBU0fOeCGxgOemu/3ZfHCTmw2LKWcj942A2w==} + '@pandacss/preset-panda@1.4.0': + resolution: {integrity: sha512-ZumZ7mQBqjpne1GrhqSuIW8/9KY02xI4N8vtD1F8poorVG2JC97QF+5FRtUH8hir7f94xR08G33wTe8qefSP7A==} - '@pandacss/reporter@1.3.1': - resolution: {integrity: sha512-1JovCGuvf+mL86QpIhBVF/s08MeaRwS5FLzoC4Qd0cjlTCE7nrReyfwNhQuMsvKGCPLjZ4OlWl2wpXn0NZ6p8g==} + '@pandacss/reporter@1.4.0': + resolution: {integrity: sha512-ofk6WVhG/nf8t4d7kE9lcLcI0gQDhG8Qedtf+tHncRkVPN9iRpwb2zCXbcg5qjB4q3k5mlTcA+2mj1fLssvnKA==} - '@pandacss/shared@1.3.1': - resolution: {integrity: sha512-B/dVrOpeXbD4RYkdjGoYsvL7YMBQlV/zZ0Vk096a++c0qtgxnIs0nY1scCcL+UeLcKDvCEUF+Q7uzZfDjipPYg==} + '@pandacss/shared@1.4.0': + resolution: {integrity: sha512-84XTuJbsjEvOTQty3MnAQsF0STG54Mwnwhx/pvbvKbXcisLAw/xjn5Z07zo7EBgqbyf3vZxK1+yeIWCwvHhj0g==} - '@pandacss/token-dictionary@1.3.1': - resolution: {integrity: sha512-Y5LgQ+wOZD6fayx4schMBE8YhXJjvGnYxusZrLmTDSLsrvFWigpkAFBog1Tq/1ic0DWRPdjPAqoz1oOjCCAWZA==} + '@pandacss/token-dictionary@1.4.0': + resolution: {integrity: sha512-9hTH1Y3SiXZN0LI5KmLMsT7AZjgvL+JcuOhNTCD5lKOe9Z1sbVDEbQFeg99vm/I99z385w9qOQXw8EfDLlLazQ==} - '@pandacss/types@1.3.1': - resolution: {integrity: sha512-U5r2P36u97KHqJcMSmDb7rWKrrquO+Q0PImKOTVQ/PRZ1bFpVPLYpHEt5KngEYsNM7gU+EuLFuGZuSkkFYUlKw==} + '@pandacss/types@1.4.0': + resolution: {integrity: sha512-lXN3GiPDSjBNXze9LUGEIHtbH8/e/xhb0i4BBDCQAjbt1+My0VHe4OTE1Bg/dD8X2oKAQIB0VsRl4Wf2DRDm7g==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -2422,8 +2501,8 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@rolldown/pluginutils@1.0.0-beta.35': - resolution: {integrity: sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} @@ -2539,70 +2618,70 @@ packages: cpu: [x64] os: [win32] - '@rsbuild/core@1.5.10': - resolution: {integrity: sha512-8FDZhtw18XRfCDEZjzt6Xi9ZR+oYpIj7d1AfGX+BVDzLpDCoAHJ/4dWy0ryl8ADssZeezY9JPqKWfTfVJEpc9Q==} + '@rsbuild/core@1.5.12': + resolution: {integrity: sha512-DpinE1If6WRTwQYqH+PRtJo3zshkDYHfIcWq4lTtfsPfPLrXshmRXBam3BS1RRu4v2gGT+LCNiUefftsmcmL0A==} engines: {node: '>=18.12.0'} hasBin: true - '@rsbuild/plugin-react@1.4.0': - resolution: {integrity: sha512-YhhOUOonJBjnKpUf7E4iXKidldPWAGmYBRtDjQgcSmW4tbW0DasFpNCqLn5870Q2Ly6oCU06sLv+8G597I36+w==} + '@rsbuild/plugin-react@1.4.1': + resolution: {integrity: sha512-kahvnfRPQTsG0tReR6h0KuVfyjKJfpv/PoU5qW5SDkON7vmbGn8Jx7l3fI+yU3lR/7qDiAO19QnNjkqxPsFT3Q==} peerDependencies: '@rsbuild/core': 1.x - '@rspack/binding-darwin-arm64@1.5.5': - resolution: {integrity: sha512-Kg3ywEZHLX+aROfTQ5tMOv+Ud+8b4jk8ruUgsi0W8oBkEkR5xBdhFa9vcf6pzy+gfoLCnEI68U9i8ttm+G0csA==} + '@rspack/binding-darwin-arm64@1.5.7': + resolution: {integrity: sha512-prQ/vgJxOPdlYiR4gVeOEKofTCEOu70JQIQApqFnw8lKM7rd9ag8ogDNqmc2L/GGXGHLAqds28oeKXRlzYf7+Q==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.5.5': - resolution: {integrity: sha512-uoGTYnlYW8m47yiDCKvXOehhAOH12wlePJq4sbUbBoHmG07vbDw7fUqnvy2k8319NTVEpMJWGoKyisgI09/uMQ==} + '@rspack/binding-darwin-x64@1.5.7': + resolution: {integrity: sha512-FPqiWSbEEerqfJrGnYe68svvl6NyuQFAb3qqFe/Q0MqFhBYmAZwa0R2/ylugCdgFLZxmkFuWqpDgItpvJb/E3Q==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.5.5': - resolution: {integrity: sha512-KgVN3TeUJ3iNwwOX3JGY4arvoLHX94eItJ4TeOSyetRiSJUrQI0evP16i5kIh+n+p7mVnXmfUS944Gl+uNsJmg==} + '@rspack/binding-linux-arm64-gnu@1.5.7': + resolution: {integrity: sha512-fwy+NY+0CHrZqqzDrjPBlTuK53W4dG5EEg/QQFAE7KVM+okRqPk8tg45bJ5628rCNLe13GDmPIE107LmgspNqA==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.5.5': - resolution: {integrity: sha512-1gKthlCQinXtWar6Hl9Il6BQ/NgYBH0NVuUsjjf85ejD/cTPQENKyIpGvVa1rSIHSfnG/XujUbruHAeY9mEHCA==} + '@rspack/binding-linux-arm64-musl@1.5.7': + resolution: {integrity: sha512-576u/0F4ZUzpHckFme4vQ0sSxjE+B/gVP4tNJ+P6bJaclXLFXV4icbjTUQwOIgmA1EQz/JFeKGGJZ4p6mowpBQ==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.5.5': - resolution: {integrity: sha512-haPFg4M9GwpSI5g9BQhKUNdzCKDvFexIUkLiAHBjFU9iWQTEcI9VfYPixestOIwzUv7E34rHM+jAsmRGWdgmXw==} + '@rspack/binding-linux-x64-gnu@1.5.7': + resolution: {integrity: sha512-brSHywXjjeuWkv0ywgxS4VgDgquarEb4XGr+eXhOaPcc8x2rNefyc4hErplrI7+oxPXVuGK5VE4ZH5bj3Yknvg==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.5.5': - resolution: {integrity: sha512-oUny56JEkCZvIu4n8/P7IPLPNtJnL89EDhxHINH87XLBY3OOgo8JHELR11Zj9SFWiGNsRcLqi+Q78tWa0ligBQ==} + '@rspack/binding-linux-x64-musl@1.5.7': + resolution: {integrity: sha512-HcS0DzbLlWCwVfYcWMbTgILh4GELD6m4CZoFEhIr4fJCJi0p8NgLYycy1QtDhaUjs8TKalmyMwHrJwGnD141JA==} cpu: [x64] os: [linux] - '@rspack/binding-wasm32-wasi@1.5.5': - resolution: {integrity: sha512-tRgxBgIXaBKBH/0KlwvyqbIMqQrg8jKOyFOEQseEE7Oqs2M9KkJ7Vp5QN11u3NvZ9nz5GbZxmVGBMkdj9Gth1w==} + '@rspack/binding-wasm32-wasi@1.5.7': + resolution: {integrity: sha512-uTRUEuK+TVlvUBSWXVoxD+6JTN+rvtRqVlO+A7I7VnOY7p9Rpvk1sXcHtEwg/XuDCq4DALnvlzbFLh7G3zILvw==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.5.5': - resolution: {integrity: sha512-wGWd2yluoFdQgtkIbny6FoHnzahTk+o9RzrptjeS1u/NV1lKrWzmWhwZojMGOUqPiaukZKaziOEo7gpRn2XbEQ==} + '@rspack/binding-win32-arm64-msvc@1.5.7': + resolution: {integrity: sha512-dFHrXRUmMTkxEn/Uw2RLbIckKfi0Zmn2NnEXwedWdyRgZW4Vhk7+VBxM22O/CHZmAGt12Ol25yTuVv58ANLEKA==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.5.5': - resolution: {integrity: sha512-Ikml8AQkzjPCG24vTO4pG2bpJ8vp93jVEgo9X9uYjO2vQbIp5QSOmeZOTM7tXCf8AfTfHEF/yAdE/pR/+tXXGQ==} + '@rspack/binding-win32-ia32-msvc@1.5.7': + resolution: {integrity: sha512-PNtnOIUzE9p/Fbl6l/1Zs7bhn8ccTlaHTgZgQq0sO/QxjLlbU0WPjRl+YLo27cAningSOAbANuYlN8vAcuimrw==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.5.5': - resolution: {integrity: sha512-m2059ms0i/GIQGWTlZ5GI6SWpuMFAPMsWlhXLk2LZRIydhi+N/YPkmc33lFRTlDA3QpKDCvowvCvIIA7g6WSlg==} + '@rspack/binding-win32-x64-msvc@1.5.7': + resolution: {integrity: sha512-22gTaYkwaIUvyXRxf1RVnFTJPqF2hD1pgAQNBIz7kYybe6vvSZ6KInW4WyG4vjYKrJg/cbS4QvtlLn0lYXrdIw==} cpu: [x64] os: [win32] - '@rspack/binding@1.5.5': - resolution: {integrity: sha512-JkB943uBU0lABnKG/jdO+gg3/eeO9CEQMR/1dL6jSU9GTxaNf3XIVc05RhRC7qoVsiXuhSMMFxWyV0hyHxp2bA==} + '@rspack/binding@1.5.7': + resolution: {integrity: sha512-/fFrf4Yu8Tc0yXBw33g2++turdld1MDphLiLg05bx92fOVI1MafocwPvm35e3y1z7CtlQJ2Bmvzhi6APJShKxg==} - '@rspack/core@1.5.5': - resolution: {integrity: sha512-AOIuMktK6X/xHAjJ/0QJ2kbSkILXj641GCPE+EOfWO27ODA8fHPArKbyz5AVGVePV3aUfEo2VFcsNzP67VBEPA==} + '@rspack/core@1.5.7': + resolution: {integrity: sha512-57ey3wafK/g+B9zLdCiIrX3eTK8rFEM3yvxBUb2ro3ZtAaCGm4y7xERcXZJNn4D01pjzzCJ/u1ezpQmsZYLP7A==} engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -2651,26 +2730,26 @@ packages: '@rushstack/ts-command-line@5.0.3': resolution: {integrity: sha512-bgPhQEqLVv/2hwKLYv/XvsTWNZ9B/+X1zJ7WgQE9rO5oiLzrOZvkIW4pk13yOQBhHyjcND5qMOa6p83t+Z66iQ==} - '@storybook/addon-docs@9.1.7': - resolution: {integrity: sha512-ZwD25QBWOeZS2T/JSHl6iqMx7w2yCxREnZIQaLpyOoGl2mRUk2NHcsGfdXQ4sL0zd7YT7CTfzH5tbwQfLIiEog==} + '@storybook/addon-docs@9.1.8': + resolution: {integrity: sha512-GVrNVEdNRRo6r1hawfgyy6x+HJqPx1oOHm0U0wz0SGAxgS/Xh6SQVZL+RDoh7NpXkNi1GbezVlT931UsHQTyvQ==} peerDependencies: - storybook: ^9.1.7 + storybook: ^9.1.8 - '@storybook/addon-onboarding@9.1.7': - resolution: {integrity: sha512-GCD/5ichFZWlLzEy7YWGL0G2DMZMDU1HXOFODGOgVP7bL3Y7x2eC4tmLN0umzZY2PL5o5go2P2htYhvQI7cLLw==} + '@storybook/addon-onboarding@9.1.8': + resolution: {integrity: sha512-fydnYy2NZ2ZuoIncsN6PdeRUJthFyR8LZchFFrSqy/s9ahWjQ+XRrDevcm9Y6w4d6qTwsgRC3CDPRIJLj/9dgg==} peerDependencies: - storybook: ^9.1.7 + storybook: ^9.1.8 - '@storybook/builder-vite@9.1.7': - resolution: {integrity: sha512-9nflIekC220TSKprN/dDW+tAZSxwkRaq0C6mc5UCgXKjgq4oXditpdwrAcoH0v91RC/bN7LW9Xu5IbvnLNiqLQ==} + '@storybook/builder-vite@9.1.8': + resolution: {integrity: sha512-JjvBag0nM1N51O3VF5++op9Ly5OC8Q+y4PrWLgi2dKhMxJFs8fD9D4PeI/v41PUiQcI0suQxN9BoYoKn2QxUZw==} peerDependencies: - storybook: ^9.1.7 + storybook: ^9.1.8 vite: ^6 - '@storybook/csf-plugin@9.1.7': - resolution: {integrity: sha512-xrPKWt16hBXvyHliuIEzPLvHdRbEe5Oubk/NIPibFVG4cxhEmNxMeHo3uFua3wgtEXyp4UErRWteviNjYSzjUA==} + '@storybook/csf-plugin@9.1.8': + resolution: {integrity: sha512-KnrXPz87bn+8ZGkzFEBc7TT5HkWpR1Xz7ojxPclSvkKxTfzazuaw0JlOQMzJoI1+wHXDAIw/4MIsO8HEiaWyfQ==} peerDependencies: - storybook: ^9.1.7 + storybook: ^9.1.8 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -2682,29 +2761,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.1.7': - resolution: {integrity: sha512-ktjCuZ42g3TAF6nMiSdLbJu/EcvC039hYrmVltKpfF7krf+0xHkK3dCuYqSBp5nv3fS+IemrqmzJwREu5BJLuQ==} + '@storybook/react-dom-shim@9.1.8': + resolution: {integrity: sha512-OepccjVZh/KQugTH8/RL2CIyf1g5Lwc5ESC8x8BH3iuYc82WMQBwMJzRI5EofQdirau63NGrqkWCgQASoVreEA==} 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.1.7 + storybook: ^9.1.8 - '@storybook/react-vite@9.1.7': - resolution: {integrity: sha512-552jMY5eKnP/rWKpcEjyE4ppyGmO+r9IoYNIJQBWA4DpXAQ8NjhsygCFhdDPFGfCxx7+KmfRgOBPcXeywWNgtQ==} + '@storybook/react-vite@9.1.8': + resolution: {integrity: sha512-DIxp76vcelyFOUJupeQEIHXDrSPP6KDXj6Z+Z9thS1HH7JY+OdGtcMLy4fbiD77Zyc8TV9RRZ1D33z2Ot/v9Vw==} 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.1.7 + storybook: ^9.1.8 vite: ^6 - '@storybook/react@9.1.7': - resolution: {integrity: sha512-GxuA2Eh3LlkEF4HHDKFGP+bqQ1+7VtABVacSXukMu82WV4VAOXhhHEDII8R9AVl2Fbs/iPJnNVj06wnkDeUZhA==} + '@storybook/react@9.1.8': + resolution: {integrity: sha512-EULkwHroJ4IDYcjIBj9VpGhaZ9E5b8LI84hlfBkJ9rnK44a/GrK1yFRIusukO58qTJSh2Y7zfAFKNuiaWh3Sfw==} 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.1.7 + storybook: ^9.1.8 typescript: '>= 4.9.x' peerDependenciesMeta: typescript: @@ -2713,11 +2792,11 @@ packages: '@stylexjs/babel-plugin@0.11.1': resolution: {integrity: sha512-hQ02pz6VLjr/yC21NyVu5Lv1djQNiYkUI/vGAawv/TYly8SGI/N2ba7ea6E7vtkdE5K4idh8o3EhY2IA28xzsg==} - '@stylexjs/babel-plugin@0.15.4': - resolution: {integrity: sha512-QfL2j3VCU+KTyIEoPBhdwq8KW1Gv0FVvwSzfjjdQ0J2Ei/DJBx2AXVsDYzBcVw0WI+KsEfQUHFZ1Fk2t1U/9Iw==} + '@stylexjs/babel-plugin@0.16.0': + resolution: {integrity: sha512-GCmhsrjJtsa222e+iiySXtQhWUVvVxkVehjeghvl0z+ibMuJhaeUUpXRWqsR8vn5BWHmuA1QJoFng1hYqlV+Kw==} - '@stylexjs/eslint-plugin@0.15.4': - resolution: {integrity: sha512-P33h+QdudEI3oSzIvVXhNHeAfbUzG4xGYW7tt4hdMizAl+bwIj58+8TK7fxQPV01yBMMNGrBlA/aCmzfQOP8Gw==} + '@stylexjs/eslint-plugin@0.16.0': + resolution: {integrity: sha512-Ci9qzHQFJbcCnsV9qMoYP8f4DoVpAeArIYBMu/HCo9OL9J0DP2KN1pJGXAje34DXRAzDxT1qujuKgX7fTCyU8Q==} '@stylexjs/nextjs-plugin@0.11.1': resolution: {integrity: sha512-42mJGw9W3i9cRrChv25JCMGvWhCVVcmt1EqgOgRMy3XTH45Ehd9TkwDiVmhknvSEDKxw+ib3AiSPjZ1ehZ9d6A==} @@ -2736,8 +2815,8 @@ packages: '@stylexjs/stylex@0.11.1': resolution: {integrity: sha512-1OofsiCP2DYV+Cw/iIuHYTAJRy34TtxQt0FDuQGTnNH915hb6NkPmX6iPa++9t4KP3HWR9oVRmAHkpP58BIYbw==} - '@stylexjs/stylex@0.15.4': - resolution: {integrity: sha512-UQT75p3qxwCIsVpH87YfgHvzWGDyMbQcFKhguj4noBZCc+npEh5h7J4BIHMgrxpyJa9mislLfXv+M5TmP2YH5A==} + '@stylexjs/stylex@0.16.0': + resolution: {integrity: sha512-IWwucXiK8LN9i6DenRS+aAJp9zLez0/2NGu5rkobMuoReCrhjnRLwJGzSxIBPkcGSitVyg5f7IRDNzr4RyuGCw==} '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -2988,6 +3067,9 @@ packages: '@types/react@19.1.13': resolution: {integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==} + '@types/react@19.1.15': + resolution: {integrity: sha512-+kLxJpaJzXybyDyFXYADyP1cznTO8HSuBpenGlnKOAkH4hyNINiywvXS/tGJhsrGGP/gM185RA3xpjY0Yg4erA==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3024,22 +3106,51 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser@8.44.1': + resolution: {integrity: sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.44.0': resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/project-service@8.44.1': + resolution: {integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/rule-tester@8.44.1': + resolution: {integrity: sha512-yzqJhTLrbXCdEZhO9cuasGLZixWWx11/uFn6Leuu0p1PeW97wDy9JhiaAOl45TFrv5f67qwWdrzM5PMIuIu4vw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/scope-manager@8.44.0': resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.44.1': + resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.44.0': resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/tsconfig-utils@8.44.1': + resolution: {integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@8.44.0': resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3051,12 +3162,22 @@ packages: resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.44.1': + resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.44.0': resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/typescript-estree@8.44.1': + resolution: {integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.44.0': resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3064,10 +3185,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.44.1': + resolution: {integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@8.44.0': resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.44.1': + resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -3188,8 +3320,8 @@ packages: peerDependencies: webpack: ^4.30.0 || ^5.20.2 - '@vitejs/plugin-react@5.0.3': - resolution: {integrity: sha512-PFVHhosKkofGH0Yzrw1BipSedTH68BFF8ZWy1kfUpCtJcouXXY0+racG8sExw7hw0HoX36813ga5o3LTWZ4FUg==} + '@vitejs/plugin-react@5.0.4': + resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^6 @@ -3850,10 +3982,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -4275,8 +4403,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-next@15.5.3: - resolution: {integrity: sha512-e6j+QhQFOr5pfsc8VJbuTD9xTXJaRvMHYjEeLPA2pFkheNlgPLCkxdvhxhfuM4KGcqSZj2qEnpHisdTVs3BxuQ==} + eslint-config-next@15.5.4: + resolution: {integrity: sha512-BzgVVuT3kfJes8i2GHenC1SRJ+W3BTML11lAOYFOOPzrk2xp66jBOAGEFRw+3LkYCln5UzvFsLhojrshb5Zfaw==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' @@ -4353,6 +4481,12 @@ packages: peerDependencies: eslint: '*' + eslint-plugin-eslint-plugin@7.0.0: + resolution: {integrity: sha512-EgiW9zf4PbqA+yN9T6Z8bHx46+fWtAIXFrYkL4nSTnI84LnTKmzjh+cIJaVAyFVZveKUSG8LcVe1suGG78qZPw==} + engines: {node: ^20.19.0 || ^22.13.1 || >=24.0.0} + peerDependencies: + eslint: '>=9.0.0' + eslint-plugin-import@2.32.0: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} @@ -4412,12 +4546,12 @@ packages: peerDependencies: eslint: '>=5.0.0' - eslint-plugin-storybook@9.1.7: - resolution: {integrity: sha512-Bq9VNutFGX7T0jw7luWt5eEyRFInIsE0+FSaXdayqBNW6NPaGuE+hoBhhTowvohNqEqn5DXwIkPHiI1GhONE9g==} + eslint-plugin-storybook@9.1.8: + resolution: {integrity: sha512-mEn5EVc7DAEvuwKMqUrIYUFZQJiQD3i5egLi1UJERQm91mDOMr5RdC4hjUF3tNE+WxQYD7QzH2j1qf36ML7V3g==} engines: {node: '>=20.0.0'} peerDependencies: eslint: '>=8' - storybook: ^9.1.7 + storybook: ^9.1.8 eslint-plugin-unused-imports@4.2.0: resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==} @@ -4737,8 +4871,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - happy-dom@18.0.1: - resolution: {integrity: sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA==} + happy-dom@19.0.1: + resolution: {integrity: sha512-Rr1H/mvgdCGoIq+jjaGxE/y+ZB+O2DhUBXk9vqoRVc5zsZ/Ne6Fssb8fXaAjPFh3Ajmbx+kfDDf946PHiUbC6Q==} engines: {node: '>=20.0.0'} has-bigints@1.1.0: @@ -5100,6 +5234,10 @@ packages: resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true + jiti@2.6.0: + resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -5326,10 +5464,6 @@ packages: resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -5337,8 +5471,8 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@16.1.6: - resolution: {integrity: sha512-U4kuulU3CKIytlkLlaHcGgKscNfJPNTiDF2avIUGFCv7K95/DCYQ7Ra62ydeRWmgQGg9zJYw2dzdbztwJlqrow==} + lint-staged@16.2.3: + resolution: {integrity: sha512-1OnJEESB9zZqsp61XHH2fvpS1es3hRCxMplF/AJUDa8Ho8VrscYDIuxGrj3m8KPXbcWZ8fT9XTMUhEQmOVKpKw==} engines: {node: '>=20.17'} hasBin: true @@ -5749,6 +5883,27 @@ packages: sass: optional: true + next@15.5.4: + resolution: {integrity: sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + node-eval@2.0.0: resolution: {integrity: sha512-Ap+L9HznXAVeJj3TJ1op6M6bg5xtTq8L5CU/PJxtkhea/DrIxdTknGKIECKd/v/Lgql95iuMAYvIzBNd0pmcMg==} engines: {node: '>= 4'} @@ -6527,8 +6682,8 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - storybook@9.1.7: - resolution: {integrity: sha512-X8YSQMNuqV9DklQLZH6mLKpDn15Z5tuUUTAIYsiGqx5BwsjtXnv5K04fXgl3jqTZyUauzV/ii8KdT04NVLtMwQ==} + storybook@9.1.8: + resolution: {integrity: sha512-/iP+DvieJ6Mnixy4PFY/KXnhsg/IHIDlTbZqly3EDbveuhsCuIUELfGnj+QSRGf9C6v/f4sZf9sZ3r80ZnKuEA==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -8450,9 +8605,9 @@ snapshots: '@esbuild/win32-x64@0.25.10': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.6.0))': dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -8643,12 +8798,12 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: glob: 10.4.5 magic-string: 0.30.19 react-docgen-typescript: 2.4.0(typescript@5.9.2) - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) optionalDependencies: typescript: 5.9.2 @@ -8676,10 +8831,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@kuma-ui/babel-plugin@1.2.3(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@babel/core': 7.28.4 - '@kuma-ui/core': 1.5.9(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(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: @@ -8688,11 +8843,11 @@ snapshots: - react - supports-color - '@kuma-ui/compiler@1.3.3(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@babel/core': 7.28.4 - '@kuma-ui/babel-plugin': 1.2.3(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(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 @@ -8703,7 +8858,7 @@ snapshots: - react - supports-color - '@kuma-ui/core@1.5.9(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(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 @@ -8712,18 +8867,18 @@ snapshots: stylis: 4.3.6 optionalDependencies: '@types/react': 19.1.13 - next: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.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.4)(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3)': + '@kuma-ui/next-plugin@1.3.3(@babel/core@7.28.4)(@types/react@19.1.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3)': dependencies: '@babel/preset-env': 7.28.3(@babel/core@7.28.4) '@babel/preset-react': 7.27.1(@babel/core@7.28.4) '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) - '@kuma-ui/core': 1.5.9(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3) + '@kuma-ui/core': 1.5.9(@types/react@19.1.13)(next@15.5.4(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3) babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.101.3) browserslist: 4.21.5 - next: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 webpack: 5.101.3 optionalDependencies: @@ -8743,9 +8898,9 @@ snapshots: '@kuma-ui/wasm@1.0.3': {} - '@kuma-ui/webpack-plugin@1.4.3(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3)': + '@kuma-ui/webpack-plugin@1.4.3(@types/react@19.1.13)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(webpack@5.101.3)': dependencies: - '@kuma-ui/compiler': 1.3.3(@types/react@19.1.13)(next@15.5.3(@babel/core@7.28.4)(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.13)(next@15.5.4(@babel/core@7.28.4)(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 @@ -8818,6 +8973,12 @@ snapshots: '@types/react': 19.1.13 react: 19.1.1 + '@mdx-js/react@3.1.1(@types/react@19.1.15)(react@19.1.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.1.15 + react: 19.1.1 + '@microsoft/api-extractor-model@7.30.7(@types/node@24.5.2)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -8973,11 +9134,13 @@ snapshots: '@next/env@15.5.3': {} - '@next/eslint-plugin-next@15.5.3': + '@next/env@15.5.4': {} + + '@next/eslint-plugin-next@15.5.4': dependencies: fast-glob: 3.3.1 - '@next/mdx@15.5.3(@mdx-js/loader@3.1.1(webpack@5.101.3))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))': + '@next/mdx@15.5.4(@mdx-js/loader@3.1.1(webpack@5.101.3))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))': dependencies: source-map: 0.7.6 optionalDependencies: @@ -8987,27 +9150,51 @@ snapshots: '@next/swc-darwin-arm64@15.5.3': optional: true + '@next/swc-darwin-arm64@15.5.4': + optional: true + '@next/swc-darwin-x64@15.5.3': optional: true + '@next/swc-darwin-x64@15.5.4': + optional: true + '@next/swc-linux-arm64-gnu@15.5.3': optional: true + '@next/swc-linux-arm64-gnu@15.5.4': + optional: true + '@next/swc-linux-arm64-musl@15.5.3': optional: true + '@next/swc-linux-arm64-musl@15.5.4': + optional: true + '@next/swc-linux-x64-gnu@15.5.3': optional: true + '@next/swc-linux-x64-gnu@15.5.4': + optional: true + '@next/swc-linux-x64-musl@15.5.3': optional: true + '@next/swc-linux-x64-musl@15.5.4': + optional: true + '@next/swc-win32-arm64-msvc@15.5.3': optional: true + '@next/swc-win32-arm64-msvc@15.5.4': + optional: true + '@next/swc-win32-x64-msvc@15.5.3': optional: true + '@next/swc-win32-x64-msvc@15.5.4': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9074,27 +9261,27 @@ snapshots: dependencies: which: 4.0.0 - '@pandacss/config@1.3.1': + '@pandacss/config@1.4.0': dependencies: - '@pandacss/logger': 1.3.1 - '@pandacss/preset-base': 1.3.1 - '@pandacss/preset-panda': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/logger': 1.4.0 + '@pandacss/preset-base': 1.4.0 + '@pandacss/preset-panda': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/types': 1.4.0 bundle-n-require: 1.1.2 escalade: 3.1.2 merge-anything: 5.1.7 microdiff: 1.3.2 typescript: 5.8.3 - '@pandacss/core@1.3.1': + '@pandacss/core@1.4.0': dependencies: '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.4.49) - '@pandacss/is-valid-prop': 1.3.1 - '@pandacss/logger': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/token-dictionary': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/is-valid-prop': 1.4.0 + '@pandacss/logger': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/token-dictionary': 1.4.0 + '@pandacss/types': 1.4.0 browserslist: 4.23.3 hookable: 5.5.3 lightningcss: 1.25.1 @@ -9110,39 +9297,39 @@ snapshots: postcss-selector-parser: 6.1.2 ts-pattern: 5.8.0 - '@pandacss/dev@1.3.1(typescript@5.9.2)': + '@pandacss/dev@1.4.0(typescript@5.9.2)': dependencies: '@clack/prompts': 0.9.1 - '@pandacss/config': 1.3.1 - '@pandacss/logger': 1.3.1 - '@pandacss/node': 1.3.1(typescript@5.9.2) - '@pandacss/postcss': 1.3.1(typescript@5.9.2) - '@pandacss/preset-panda': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/token-dictionary': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/config': 1.4.0 + '@pandacss/logger': 1.4.0 + '@pandacss/node': 1.4.0(typescript@5.9.2) + '@pandacss/postcss': 1.4.0(typescript@5.9.2) + '@pandacss/preset-panda': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/token-dictionary': 1.4.0 + '@pandacss/types': 1.4.0 cac: 6.7.14 transitivePeerDependencies: - jsdom - typescript - '@pandacss/extractor@1.3.1(typescript@5.9.2)': + '@pandacss/extractor@1.4.0(typescript@5.9.2)': dependencies: - '@pandacss/shared': 1.3.1 + '@pandacss/shared': 1.4.0 ts-evaluator: 1.2.0(typescript@5.9.2) ts-morph: 26.0.0 transitivePeerDependencies: - jsdom - typescript - '@pandacss/generator@1.3.1': + '@pandacss/generator@1.4.0': dependencies: - '@pandacss/core': 1.3.1 - '@pandacss/is-valid-prop': 1.3.1 - '@pandacss/logger': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/token-dictionary': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/core': 1.4.0 + '@pandacss/is-valid-prop': 1.4.0 + '@pandacss/logger': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/token-dictionary': 1.4.0 + '@pandacss/types': 1.4.0 javascript-stringify: 2.1.0 outdent: 0.8.0 pluralize: 8.0.0 @@ -9151,24 +9338,24 @@ snapshots: '@pandacss/is-valid-prop@0.54.0': {} - '@pandacss/is-valid-prop@1.3.1': {} + '@pandacss/is-valid-prop@1.4.0': {} - '@pandacss/logger@1.3.1': + '@pandacss/logger@1.4.0': dependencies: - '@pandacss/types': 1.3.1 + '@pandacss/types': 1.4.0 kleur: 4.1.5 - '@pandacss/node@1.3.1(typescript@5.9.2)': - dependencies: - '@pandacss/config': 1.3.1 - '@pandacss/core': 1.3.1 - '@pandacss/generator': 1.3.1 - '@pandacss/logger': 1.3.1 - '@pandacss/parser': 1.3.1(typescript@5.9.2) - '@pandacss/reporter': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/token-dictionary': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/node@1.4.0(typescript@5.9.2)': + dependencies: + '@pandacss/config': 1.4.0 + '@pandacss/core': 1.4.0 + '@pandacss/generator': 1.4.0 + '@pandacss/logger': 1.4.0 + '@pandacss/parser': 1.4.0(typescript@5.9.2) + '@pandacss/reporter': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/token-dictionary': 1.4.0 + '@pandacss/types': 1.4.0 browserslist: 4.23.3 chokidar: 4.0.3 fast-glob: 3.3.3 @@ -9192,14 +9379,14 @@ snapshots: - jsdom - typescript - '@pandacss/parser@1.3.1(typescript@5.9.2)': + '@pandacss/parser@1.4.0(typescript@5.9.2)': dependencies: - '@pandacss/config': 1.3.1 - '@pandacss/core': 1.3.1 - '@pandacss/extractor': 1.3.1(typescript@5.9.2) - '@pandacss/logger': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/config': 1.4.0 + '@pandacss/core': 1.4.0 + '@pandacss/extractor': 1.4.0(typescript@5.9.2) + '@pandacss/logger': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/types': 1.4.0 '@vue/compiler-sfc': 3.4.19 magic-string: 0.30.17 ts-morph: 26.0.0 @@ -9208,42 +9395,42 @@ snapshots: - jsdom - typescript - '@pandacss/postcss@1.3.1(typescript@5.9.2)': + '@pandacss/postcss@1.4.0(typescript@5.9.2)': dependencies: - '@pandacss/node': 1.3.1(typescript@5.9.2) + '@pandacss/node': 1.4.0(typescript@5.9.2) postcss: 8.4.49 transitivePeerDependencies: - jsdom - typescript - '@pandacss/preset-base@1.3.1': + '@pandacss/preset-base@1.4.0': dependencies: - '@pandacss/types': 1.3.1 + '@pandacss/types': 1.4.0 - '@pandacss/preset-panda@1.3.1': + '@pandacss/preset-panda@1.4.0': dependencies: - '@pandacss/types': 1.3.1 + '@pandacss/types': 1.4.0 - '@pandacss/reporter@1.3.1': + '@pandacss/reporter@1.4.0': dependencies: - '@pandacss/core': 1.3.1 - '@pandacss/generator': 1.3.1 - '@pandacss/logger': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/core': 1.4.0 + '@pandacss/generator': 1.4.0 + '@pandacss/logger': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/types': 1.4.0 table: 6.9.0 wordwrapjs: 5.1.0 - '@pandacss/shared@1.3.1': {} + '@pandacss/shared@1.4.0': {} - '@pandacss/token-dictionary@1.3.1': + '@pandacss/token-dictionary@1.4.0': dependencies: - '@pandacss/logger': 1.3.1 - '@pandacss/shared': 1.3.1 - '@pandacss/types': 1.3.1 + '@pandacss/logger': 1.4.0 + '@pandacss/shared': 1.4.0 + '@pandacss/types': 1.4.0 ts-pattern: 5.8.0 - '@pandacss/types@1.3.1': {} + '@pandacss/types@1.4.0': {} '@pkgjs/parseargs@0.11.0': optional: true @@ -9252,7 +9439,7 @@ snapshots: '@popperjs/core@2.11.8': {} - '@rolldown/pluginutils@1.0.0-beta.35': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/pluginutils@5.3.0(rollup@4.51.0)': dependencies: @@ -9325,71 +9512,71 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.51.0': optional: true - '@rsbuild/core@1.5.10': + '@rsbuild/core@1.5.12': dependencies: - '@rspack/core': 1.5.5(@swc/helpers@0.5.17) + '@rspack/core': 1.5.7(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 core-js: 3.45.1 - jiti: 2.5.1 + jiti: 2.6.0 - '@rsbuild/plugin-react@1.4.0(@rsbuild/core@1.5.10)': + '@rsbuild/plugin-react@1.4.1(@rsbuild/core@1.5.12)': dependencies: - '@rsbuild/core': 1.5.10 + '@rsbuild/core': 1.5.12 '@rspack/plugin-react-refresh': 1.5.1(react-refresh@0.17.0) react-refresh: 0.17.0 transitivePeerDependencies: - webpack-hot-middleware - '@rspack/binding-darwin-arm64@1.5.5': + '@rspack/binding-darwin-arm64@1.5.7': optional: true - '@rspack/binding-darwin-x64@1.5.5': + '@rspack/binding-darwin-x64@1.5.7': optional: true - '@rspack/binding-linux-arm64-gnu@1.5.5': + '@rspack/binding-linux-arm64-gnu@1.5.7': optional: true - '@rspack/binding-linux-arm64-musl@1.5.5': + '@rspack/binding-linux-arm64-musl@1.5.7': optional: true - '@rspack/binding-linux-x64-gnu@1.5.5': + '@rspack/binding-linux-x64-gnu@1.5.7': optional: true - '@rspack/binding-linux-x64-musl@1.5.5': + '@rspack/binding-linux-x64-musl@1.5.7': optional: true - '@rspack/binding-wasm32-wasi@1.5.5': + '@rspack/binding-wasm32-wasi@1.5.7': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rspack/binding-win32-arm64-msvc@1.5.5': + '@rspack/binding-win32-arm64-msvc@1.5.7': optional: true - '@rspack/binding-win32-ia32-msvc@1.5.5': + '@rspack/binding-win32-ia32-msvc@1.5.7': optional: true - '@rspack/binding-win32-x64-msvc@1.5.5': + '@rspack/binding-win32-x64-msvc@1.5.7': optional: true - '@rspack/binding@1.5.5': + '@rspack/binding@1.5.7': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.5.5 - '@rspack/binding-darwin-x64': 1.5.5 - '@rspack/binding-linux-arm64-gnu': 1.5.5 - '@rspack/binding-linux-arm64-musl': 1.5.5 - '@rspack/binding-linux-x64-gnu': 1.5.5 - '@rspack/binding-linux-x64-musl': 1.5.5 - '@rspack/binding-wasm32-wasi': 1.5.5 - '@rspack/binding-win32-arm64-msvc': 1.5.5 - '@rspack/binding-win32-ia32-msvc': 1.5.5 - '@rspack/binding-win32-x64-msvc': 1.5.5 - - '@rspack/core@1.5.5(@swc/helpers@0.5.17)': + '@rspack/binding-darwin-arm64': 1.5.7 + '@rspack/binding-darwin-x64': 1.5.7 + '@rspack/binding-linux-arm64-gnu': 1.5.7 + '@rspack/binding-linux-arm64-musl': 1.5.7 + '@rspack/binding-linux-x64-gnu': 1.5.7 + '@rspack/binding-linux-x64-musl': 1.5.7 + '@rspack/binding-wasm32-wasi': 1.5.7 + '@rspack/binding-win32-arm64-msvc': 1.5.7 + '@rspack/binding-win32-ia32-msvc': 1.5.7 + '@rspack/binding-win32-x64-msvc': 1.5.7 + + '@rspack/core@1.5.7(@swc/helpers@0.5.17)': dependencies: '@module-federation/runtime-tools': 0.18.0 - '@rspack/binding': 1.5.5 + '@rspack/binding': 1.5.7 '@rspack/lite-tapable': 1.0.1 optionalDependencies: '@swc/helpers': 0.5.17 @@ -9440,33 +9627,33 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@storybook/addon-docs@9.1.7(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/addon-docs@9.1.8(@types/react@19.1.15)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: - '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1) - '@storybook/csf-plugin': 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + '@mdx-js/react': 3.1.1(@types/react@19.1.15)(react@19.1.1) + '@storybook/csf-plugin': 9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/icons': 1.6.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@storybook/react-dom-shim': 9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/react-dom-shim': 9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-onboarding@9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/addon-onboarding@9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/builder-vite@9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/builder-vite@9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@storybook/csf-plugin': 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@storybook/csf-plugin': 9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) ts-dedent: 2.2.0 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) - '@storybook/csf-plugin@9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/csf-plugin@9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -9476,39 +9663,39 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@storybook/react-dom-shim@9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/react-dom-shim@9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/react-vite@9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.51.0)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/react-vite@9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.51.0)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - '@storybook/builder-vite': 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/react': 9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2) + '@storybook/builder-vite': 9.1.8(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@storybook/react': 9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2) find-up: 7.0.0 magic-string: 0.30.19 react: 19.1.1 react-docgen: 8.0.1 react-dom: 19.1.1(react@19.1.1) resolve: 1.22.10 - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) tsconfig-paths: 4.2.0 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)': + '@storybook/react@9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/react-dom-shim': 9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: typescript: 5.9.2 @@ -9524,31 +9711,32 @@ snapshots: transitivePeerDependencies: - supports-color - '@stylexjs/babel-plugin@0.15.4': + '@stylexjs/babel-plugin@0.16.0': dependencies: '@babel/core': 7.28.4 '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 '@dual-bundle/import-meta-resolve': 4.2.1 - '@stylexjs/stylex': 0.15.4 + '@stylexjs/stylex': 0.16.0 postcss-value-parser: 4.2.0 transitivePeerDependencies: - supports-color - '@stylexjs/eslint-plugin@0.15.4': + '@stylexjs/eslint-plugin@0.16.0': dependencies: css-shorthand-expand: 1.2.0 micromatch: 4.0.8 + postcss-value-parser: 4.2.0 - '@stylexjs/nextjs-plugin@0.11.1(next@15.5.3(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))': + '@stylexjs/nextjs-plugin@0.11.1(next@15.5.4(@babel/core@7.28.4)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@stylexjs/babel-plugin': 0.11.1 - next: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) transitivePeerDependencies: - supports-color @@ -9566,7 +9754,7 @@ snapshots: invariant: 2.2.4 styleq: 0.2.1 - '@stylexjs/stylex@0.15.4': + '@stylexjs/stylex@0.16.0': dependencies: css-mediaquery: 0.1.2 invariant: 2.2.4 @@ -9652,10 +9840,10 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.13 - '@tanstack/eslint-plugin-query@5.89.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': + '@tanstack/eslint-plugin-query@5.89.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: - '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) transitivePeerDependencies: - supports-color - typescript @@ -9680,15 +9868,15 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.15))(@types/react@19.1.15)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.13 - '@types/react-dom': 19.1.9(@types/react@19.1.13) + '@types/react': 19.1.15 + '@types/react-dom': 19.1.9(@types/react@19.1.15) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -9817,13 +10005,17 @@ snapshots: dependencies: '@types/react': 19.1.13 + '@types/react-dom@19.1.9(@types/react@19.1.15)': + dependencies: + '@types/react': 19.1.15 + '@types/react-syntax-highlighter@15.5.13': dependencies: '@types/react': 19.1.13 '@types/react-test-renderer@19.1.0': dependencies: - '@types/react': 19.1.13 + '@types/react': 19.1.15 '@types/react-transition-group@4.4.12(@types/react@19.1.13)': dependencies: @@ -9833,6 +10025,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/react@19.1.15': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/stylis@4.2.7': {} @@ -9856,15 +10052,15 @@ snapshots: '@types/whatwg-mimetype@3.0.2': {} - '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.44.0 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -9873,14 +10069,44 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + eslint: 9.36.0(jiti@2.6.0) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + optional: true + + '@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@typescript-eslint/scope-manager': 8.44.0 '@typescript-eslint/types': 8.44.0 '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.44.0 debug: 4.4.3 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.44.1 + '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.1 + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -9888,28 +10114,60 @@ snapshots: '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': dependencies: '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) - '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/types': 8.44.1 + debug: 4.4.3 + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.44.1(typescript@5.9.2)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2) + '@typescript-eslint/types': 8.44.1 debug: 4.4.3 typescript: 5.9.2 transitivePeerDependencies: - supports-color + '@typescript-eslint/rule-tester@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + dependencies: + '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + ajv: 6.12.6 + eslint: 9.36.0(jiti@2.6.0) + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/scope-manager@8.44.0': dependencies: '@typescript-eslint/types': 8.44.0 '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/scope-manager@8.44.1': + dependencies: + '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/visitor-keys': 8.44.1 + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@typescript-eslint/type-utils@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.44.0 '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) debug: 4.4.3 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: @@ -9917,6 +10175,8 @@ snapshots: '@typescript-eslint/types@8.44.0': {} + '@typescript-eslint/types@8.44.1': {} + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': dependencies: '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) @@ -9933,13 +10193,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.44.1(typescript@5.9.2)': + dependencies: + '@typescript-eslint/project-service': 8.44.1(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2) + '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/visitor-keys': 8.44.1 + debug: 4.4.3 + 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.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) '@typescript-eslint/scope-manager': 8.44.0 '@typescript-eslint/types': 8.44.0 '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) + typescript: 5.9.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) + '@typescript-eslint/scope-manager': 8.44.1 + '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -9949,6 +10236,11 @@ snapshots: '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.44.1': + dependencies: + '@typescript-eslint/types': 8.44.1 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -10049,10 +10341,10 @@ snapshots: - babel-plugin-macros - supports-color - '@vanilla-extract/next-plugin@2.4.14(babel-plugin-macros@3.1.0)(next@15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(webpack@5.101.3)': + '@vanilla-extract/next-plugin@2.4.14(babel-plugin-macros@3.1.0)(next@15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(webpack@5.101.3)': dependencies: '@vanilla-extract/webpack-plugin': 2.3.22(babel-plugin-macros@3.1.0)(webpack@5.101.3) - next: 15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -10071,19 +10363,19 @@ snapshots: - babel-plugin-macros - supports-color - '@vitejs/plugin-react@5.0.3(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitejs/plugin-react@5.0.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.35 + '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -10098,7 +10390,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.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -10110,13 +10402,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -11140,8 +11432,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.2: {} - character-entities-html4@2.1.0: {} character-entities-legacy@1.1.4: {} @@ -11614,24 +11904,24 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.6.5(eslint@9.36.0(jiti@2.5.1)): + eslint-compat-utils@0.6.5(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) semver: 7.7.2 - eslint-config-next@15.5.3(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2): + eslint-config-next@15.5.4(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2): dependencies: - '@next/eslint-plugin-next': 15.5.3 + '@next/eslint-plugin-next': 15.5.4 '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.6.0)) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -11639,9 +11929,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.5.1)): + eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -11651,32 +11941,32 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.5.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.36.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.1): + eslint-json-compat-utils@0.2.1(eslint@9.36.0(jiti@2.6.0))(jsonc-eslint-parser@2.4.1): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) esquery: 1.6.0 jsonc-eslint-parser: 2.4.1 - eslint-mdx@3.6.2(eslint@9.36.0(jiti@2.5.1)): + eslint-mdx@3.6.2(eslint@9.36.0(jiti@2.6.0)): dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) espree: 10.4.0 estree-util-visit: 2.0.0 remark-mdx: 3.1.1 @@ -11692,37 +11982,43 @@ snapshots: - bluebird - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.0)) transitivePeerDependencies: - supports-color - eslint-plugin-devup@2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-devup@2.0.5(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2): dependencies: '@eslint/js': 9.35.0 - '@tanstack/eslint-plugin-query': 5.89.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) - eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-prettier: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.5.1)))(eslint@9.36.0(jiti@2.5.1))(prettier@3.6.2) - eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1)) + '@tanstack/eslint-plugin-query': 5.89.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) + eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-prettier: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2) + eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.36.0(jiti@2.6.0)) + eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0)) prettier: 3.6.2 - typescript-eslint: 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + typescript-eslint: 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) transitivePeerDependencies: - '@types/eslint' - '@typescript-eslint/eslint-plugin' - supports-color - typescript - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-eslint-plugin@7.0.0(eslint@9.36.0(jiti@2.6.0)): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) + eslint: 9.36.0(jiti@2.6.0) + estraverse: 5.3.0 + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -11731,9 +12027,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11745,18 +12041,18 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.20.1(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-jsonc@2.20.1(eslint@9.36.0(jiti@2.6.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) - eslint: 9.36.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.36.0(jiti@2.5.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.36.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) + eslint: 9.36.0(jiti@2.6.0) + eslint-compat-utils: 0.6.5(eslint@9.36.0(jiti@2.6.0)) + eslint-json-compat-utils: 0.2.1(eslint@9.36.0(jiti@2.6.0))(jsonc-eslint-parser@2.4.1) espree: 10.4.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.1 @@ -11765,7 +12061,7 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsx-a11y@6.10.2(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.36.0(jiti@2.6.0)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -11775,7 +12071,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11784,10 +12080,10 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-mdx@3.6.2(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-mdx@3.6.2(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) - eslint-mdx: 3.6.2(eslint@9.36.0(jiti@2.5.1)) + eslint: 9.36.0(jiti@2.6.0) + eslint-mdx: 3.6.2(eslint@9.36.0(jiti@2.6.0)) mdast-util-from-markdown: 2.0.2 mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -11802,21 +12098,21 @@ snapshots: - remark-lint-file-extension - supports-color - eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.5.1)))(eslint@9.36.0(jiti@2.5.1))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.11 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.5.1)) + eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.6.0)) - eslint-plugin-react-hooks@5.2.0(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-react-hooks@5.2.0(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) - eslint-plugin-react@7.37.5(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-react@7.37.5(eslint@9.36.0(jiti@2.6.0)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -11824,7 +12120,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -11838,24 +12134,24 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) - eslint-plugin-storybook@9.1.7(eslint@9.36.0(jiti@2.5.1))(storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2): + eslint-plugin-storybook@9.1.8(eslint@9.36.0(jiti@2.6.0))(storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.2): dependencies: - '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) - storybook: 9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) + storybook: 9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0)): dependencies: - eslint: 9.36.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) eslint-scope@5.1.1: dependencies: @@ -11871,9 +12167,9 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.36.0(jiti@2.5.1): + eslint@9.36.0(jiti@2.6.0): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 @@ -11909,7 +12205,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.5.1 + jiti: 2.6.0 transitivePeerDependencies: - supports-color @@ -12224,7 +12520,7 @@ snapshots: graphemer@1.4.0: {} - happy-dom@18.0.1: + happy-dom@19.0.1: dependencies: '@types/node': 20.19.17 '@types/whatwg-mimetype': 3.0.2 @@ -12598,6 +12894,8 @@ snapshots: jiti@2.5.1: {} + jiti@2.6.0: {} + jju@1.4.0: {} js-tokens@4.0.0: {} @@ -12768,26 +13066,19 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 - lilconfig@3.1.3: {} - lines-and-columns@1.2.4: {} lines-and-columns@2.0.4: {} - lint-staged@16.1.6: + lint-staged@16.2.3: dependencies: - chalk: 5.6.2 commander: 14.0.1 - debug: 4.4.3 - lilconfig: 3.1.3 listr2: 9.0.4 micromatch: 4.0.8 nano-spawn: 1.0.3 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.8.1 - transitivePeerDependencies: - - supports-color listr2@9.0.4: dependencies: @@ -13422,7 +13713,7 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - next@15.5.3(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + next@15.5.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@next/env': 15.5.3 '@swc/helpers': 0.5.15 @@ -13445,6 +13736,29 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.5.4(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + dependencies: + '@next/env': 15.5.4 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001743 + postcss: 8.4.31 + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + styled-jsx: 5.1.6(@babel/core@7.28.4)(babel-plugin-macros@3.1.0)(react@19.1.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.4 + '@next/swc-darwin-x64': 15.5.4 + '@next/swc-linux-arm64-gnu': 15.5.4 + '@next/swc-linux-arm64-musl': 15.5.4 + '@next/swc-linux-x64-gnu': 15.5.4 + '@next/swc-linux-x64-musl': 15.5.4 + '@next/swc-win32-arm64-msvc': 15.5.4 + '@next/swc-win32-x64-msvc': 15.5.4 + sharp: 0.34.4 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + node-eval@2.0.0: dependencies: path-is-absolute: 1.0.1 @@ -14366,13 +14680,13 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@9.1.7(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)): + storybook@9.1.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.8.0 '@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.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.10 @@ -14703,13 +15017,13 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2): + typescript-eslint@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.36.0(jiti@2.5.1) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.36.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -14920,13 +15234,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -14941,7 +15255,7 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-dts@4.5.4(@types/node@24.5.2)(rollup@4.51.0)(typescript@5.9.2)(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@microsoft/api-extractor': 7.52.13(@types/node@24.5.2) '@rollup/pluginutils': 5.3.0(rollup@4.51.0) @@ -14954,13 +15268,13 @@ snapshots: magic-string: 0.30.19 typescript: 5.9.2 optionalDependencies: - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): + vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -14971,16 +15285,16 @@ snapshots: optionalDependencies: '@types/node': 24.5.2 fsevents: 2.3.3 - jiti: 2.5.1 + jiti: 2.6.0 lightningcss: 1.30.1 terser: 5.44.0 yaml: 2.8.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@18.0.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(happy-dom@19.0.1)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -14998,13 +15312,13 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite: 6.3.6(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 '@types/node': 24.5.2 - happy-dom: 18.0.1 + happy-dom: 19.0.1 transitivePeerDependencies: - jiti - less diff --git a/tsconfig.json b/tsconfig.json index 2c8f4962..f10ecddb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,4 +21,4 @@ "noEmit": true, "baseUrl": "." } -} \ No newline at end of file +}