Repository navigation
Conversation
…rations css(a, b) composing classes whose styles the build knows, bound to css() in the file or exported by another module, merges their atoms per property, selector, breakpoint and layer, conditions included, instead of joining classes whose winner the stylesheet order picked. vanilla-extract style([...]) passes each composed style as its own argument, keeping a style composed again later. Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…asurable Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…JSX spreads win Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…led order and JSX element className Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…uate shouldForwardProp at build time Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ring Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #691 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… and conditional styles Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…h Emotion Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ed parameters Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…mpiles Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Contributor
Changepacks@devup-ui/wasm@1.0.82 → 1.0.83 - bindings/devup-ui-wasm/package.jsonPatch
@devup-ui/bun-plugin@1.0.21 → 1.0.22 - packages/bun-plugin/package.jsonPatch
@devup-ui/components@0.1.59 → 0.1.60 - packages/components/package.jsonPatch
@devup-ui/eslint-plugin@1.0.21 → 1.0.22 - packages/eslint-plugin/package.jsonPatch
@devup-ui/next-plugin@1.0.89 → 1.0.90 - packages/next-plugin/package.jsonPatch
@devup-ui/plugin-utils@1.0.16 → 1.0.17 - packages/plugin-utils/package.jsonPatch
@devup-ui/react@1.0.44 → 1.0.45 - packages/react/package.jsonPatch
@devup-ui/reset-css@1.0.31 → 1.0.32 - packages/reset-css/package.jsonPatch
@devup-ui/rsbuild-plugin@1.0.66 → 1.0.67 - packages/rsbuild-plugin/package.jsonPatch
@devup-ui/vite-plugin@1.0.72 → 1.0.73 - packages/vite-plugin/package.jsonPatch
@devup-ui/webpack-plugin@1.0.70 → 1.0.71 - packages/webpack-plugin/package.jsonPatch
|
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #684 (FN-01, FN-02, SC-16, TOOL-09~18, JSX-13/14, PLG-25, VE-06, TOOL-07)
#730(
fix/emotion-component-selectors, 합성/compat PR 스택의 맨 위) 위에 쌓인 PR입니다. CI가main대상 PR에서만 도므로 base는main이고, diff에는 #730 아래 스택의 커밋이 함께 보입니다. 이 PR의 고유 커밋은d0028a89하나이며, 스택이 먼저 병합되어야 합니다.요약
공개/compat 타입이 빌드가 컴파일하는 것을 받아들이고 거부하는 것을 거부하도록 고쳤습니다. 항목마다 타입 테스트(valid/invalid,
@ts-expect-error)를packages/react/type-tests/에 두었고,test:types가type-tests/tsconfig.json전체를 검사합니다. 같은 파일을 빌드한dist를 소비자 입장에서@types/react19.3.0과 18.3.31 둘 다로 검사해 통과를 확인했습니다.항목별 결과
수정함
css(): 클래스 문자열, 스타일 객체, 배열(중첩 포함),false/null/undefined/조건 부분을 받습니다(css('external', base, on && { p: 3 })). 함수/숫자/알 수 없는 키는 거부합니다.CssPart타입 공개.css/keyframes/globalCss태그드 템플릿: 빌드가 평가하는 정적 보간(string | number | boolean | null | undefined,css()결과)을 받고, 함수/객체 보간은 거부합니다(빌드도 거부).DefaultTheme을 augment 가능한 interface로 선언(StyledTheme상속),CSSObject/CSSProperties/CSSPseudos/CSSKeyframes/CSSProp/RuleSet/Keyframes추가,useTheme/withTheme/ThemeProvider가DefaultTheme을 따릅니다. 빌드가 변환하지 않아 패키지가 설치되어 있어야 하는ThemeConsumer/ThemeContext도 선언했습니다.SerializedStyles/Keyframes, styled-componentsRuleSet/Keyframes를 각각 이름 붙은(브랜드) 문자열로 내보냅니다. 평범한string이나 다른 라이브러리의 결과는 할당할 수 없고, 값은 빌드가 쓰는 클래스/이름이라string으로는 쓸 수 있습니다(animationName: fade등 빌드가 받는 위치 유지).styled:.attrs(),.withConfig({ shouldForwardProp, displayName }),.withComponent()와 결과 컴포넌트가styled.button.attrs({...})<P>`...`처럼 이어지는 형태를 타입으로 받습니다(빌드가 컴파일하는 형태).style([a, b, 'class'])배열 합성,styleVariants의 mapper 인자,createGlobalTheme,createGlobalThemeContract추가. 평가기가 등록하지 않는globalKeyframes/composeStyles/generateIdentifier선언 제거.styleVars가 숫자 값을 받습니다({ '--count': 1 }).styleOrder는1~254(숫자 또는 숫자 문자열)만 받습니다. 빌드는 그 밖의 값과 런타임 값을 조용히 무시합니다. 타입이 표현할 수 있는 나머지는 아래 "TypeScript로 표현 불가" 참고.DevupCustomShorthands는 이미DevupProps["w"]형태라 반응형을 받습니다(확인). 손으로 augment할 때를 위해ResponsiveValue를 공개했습니다(insetY?: ResponsiveValue<string | number>). 값 타입을 자동으로 감싸는 방식은DevupProps가 순환 참조되어 시도했으나 불가능했습니다.DevupTheme에 문서와 같은shadow를 추가했습니다(엔진이shadow와shadows를 모두 읽으므로shadows는 별칭으로 유지).base에서 이미 해결됨 / 달라진 판단
@ts-expect-error로 고정했습니다. 컴파일을 지원하는 것은 추출기 변경(fix(react): back compat theming with context and add ThemeConsumer and createTheme #712)입니다.createGlobalStyle<P>제네릭: props 함수 보간은 빌드가 에러로 거부(globalCss() cannot use ...)하므로 타입도 계속 거부합니다.props/index.ts주석: 빠른 해석을 위해 앞에,Parameters<typeof Box>가 기본 요소를 설명하도록 뒤에).type-tests가 동등성을 고정하고 있어 제거하지 않았습니다.TypeScript로 표현 불가
css/globalCss/keyframes,export const x = css, 맨styled.div는 타입으로 구별할 수 없습니다(lintcss-utils-literal-only,no-runtime-read가 담당: fix(eslint-plugin): check styleOrder only where the build reads it #733/feat(eslint-plugin): follow the import aliases and style positions the build compiles #735).$missing토큰은string에 흡수되어 제외할 수 없습니다(템플릿 리터럴 타입에는 부정 표현이 없음).csstype-extra의 선언 자체에 순환 alias 오류가 있어(TCalcProduct등,skipLibCheck: false에서 17건) 이 저장소에서 고칠 수 없습니다. 소비자 검사는skipLibCheck: true로 합니다.이 PR에서 하지 않음
style-order-range의parseInt)는 lint 패키지 코드이고 #733이 같은 파일을 고치므로 충돌을 피해 건드리지 않았습니다("100px"같은 값은 타입 레벨에서는 이제 거부됩니다).새로 생기는 오류
빌드 에러는 추가되지 않았습니다. 타입 에러는 위 항목의 거부 케이스(예:
css(1),styleOrder={0},style대신 사라진globalKeyframesimport)와, 이전에는 받던styleOrder의 임의 숫자/문자열 값에서 새로 납니다.남는 한계
.name/.styles같은 Emotion 객체 속성은 쓸 수 없습니다(빌드가 클래스 문자열을 쓰기 때문).검증
bun test5488 pass / 0 fail, 커버리지 100%.bun lint오류 0(기존 경고 2개).packages/react의test:types(전 항목 타입 테스트), 루트bun run build통과. Rust 변경 없음.dist를 복사해/// <reference types="@devup-ui/react/compat/types" />와 함께css-forms,styled,props,compat타입 테스트를@types/react19.3.0, 18.3.31로 각각 실행해 오류 0..d.ts는skipLibCheck: false로도 확인했습니다(남는 오류는 위의 빌드가 거부하는 케이스와 하니스 경로 문제뿐).