Repository navigation
Conversation
…APIs Refs #691 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 #691 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…typed values Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ore test order Refs #692 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>
…i-kit-behavior # Conflicts: # packages/components/src/components/Checkbox/index.tsx # packages/components/src/components/Radio/index.tsx
…-behavior # Conflicts: # packages/components/src/components/Checkbox/index.tsx # packages/components/src/components/Select/__tests__/index.browser.test.tsx # packages/components/src/components/Select/index.tsx
…for real users Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…me cannot read as a style function Refs #692 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.83 → 1.0.84 - bindings/devup-ui-wasm/package.jsonPatch
@devup-ui/bun-plugin@1.0.22 → 1.0.23 - packages/bun-plugin/package.jsonPatch
@devup-ui/components@0.1.60 → 0.1.61 - packages/components/package.jsonPatch
@devup-ui/eslint-plugin@1.0.22 → 1.0.23 - packages/eslint-plugin/package.jsonPatch
@devup-ui/next-plugin@1.0.90 → 1.0.91 - packages/next-plugin/package.jsonPatch
@devup-ui/plugin-utils@1.0.17 → 1.0.18 - 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.67 → 1.0.68 - packages/rsbuild-plugin/package.jsonPatch
@devup-ui/vite-plugin@1.0.73 → 1.0.74 - packages/vite-plugin/package.jsonPatch
@devup-ui/webpack-plugin@1.0.71 → 1.0.72 - packages/webpack-plugin/package.jsonPatch
|
…button by their content or the caller Refs #692 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
Merge main history while preserving this PR implementation. No manual conflict resolutions.
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 #692 (RT-07~RT-19, RT-27, RT-28)
이 PR은 열린 UI 키트 PR #720 #721 #723 #724 #725를 합친 통합 base 위에 쌓여 있습니다(merge 커밋 5개 + 고유 커밋
48fc98f2). 이 PR의 CI는main대상으로 도므로 diff에 위 PR들의 변경이 함께 보이고, #720 #721 #723 #724 #725가 먼저 병합되어야 합니다. 병합 충돌은 Checkbox(forwardRef+props.id우선 id)와 Radio(ref+ 올바른:focus-visiblesolid outline), Select(위치 effect + 키보드/포커스 effect를 둘 다 유지)에서 났고 양쪽 동작을 모두 보존하도록 풀었습니다. 병합 직후bun test5478 pass를 확인한 뒤에 고유 변경을 시작했습니다.요약
항목마다 통합 base에서 먼저 확인했고, 이미 고쳐진 것은 고치지 않고 아래에 적었습니다. 컴포넌트는 스타일링은 그대로 빌드 타임이고 동작 JS만 바뀝니다.
항목별 결과
base(#720 등)에서 이미 해결됨
onOpenChange(false)로 가고 제어형일 때는 내부 상태를 바꾸지 않습니다(fix(react,components): support React 18 peers and drop React 19-only APIs #720). 동작 계약(소유자에게 알림, 제어형 유지, 비제어형 닫힘, 내부 클릭 무시,openprop 추종)을 테스트로 고정했습니다.이 PR에서 수정
position: fixed인데 문서 크기와 비교하던 것을innerWidth/innerHeight(뷰포트)와 비교하고, 한쪽 inset을 쓸 때 반대쪽을 비웁니다. 아래/위/오른쪽 충돌과 resize 시 전환 테스트.SelectTrigger asChild: 자식onClick/onKeyDown을 열기 동작과 합성(자식 → 트리거에 준 핸들러 → 열기,preventDefault면 중단),className병합, 트리거의 상태 aria(aria-expanded등)가 항상 우선, 자식의aria-label은 유지, 자식 ref와 트리거ref를 합성(React 18/19 모두).SelectTrigger는forwardRef로 바뀌었습니다.value)은 알리기만 합니다.onClick/onChange는 합성되고(preventDefault면 중단)disabled/value/type은 불변 props가 뒤에 와서 경계 비활성화를 덮어쓸 수 없습니다. text 모드는 입력 전용 속성(type,readOnly,value,onChange)이 없는<output>으로 렌더링합니다.aria-label("button"/"input"/"textarea") 제거: 보이는 텍스트나 연결된<label>이 이름이 됩니다. 아이콘만 있는 버튼은 호출하는 쪽이aria-label을 줍니다. Input의 장식 아이콘은aria-hidden.ole=listbox인 컨테이너는 트리거를 ^Gria-labelledby로 가리키며(호출자가 준 트리거 id나 ^GsChild 자식의 id를 따라감), 호출자가 ^Gria-label/^Gria-labelledby를 주면 그것이 우선합니다. #725의 테스트 선택자는
ole/^Gria-haspopup으로 바꿨습니다.
{target:{value:''}}이벤트 대신 값을 비우고 실제input이벤트를 발생시켜 React가 진짜ChangeEvent를 만들게 합니다(제어형/비제어형 모두, 포커스 복귀). 소유자가 값을 유지하면 지워지지 않습니다.aria-invalid, 에러 메시지에id와role="alert", 컨트롤의aria-describedby에 사용자 값과 메시지 id 병합. 에러가 없으면 아무것도 주장하지 않습니다.inputBackground,inputDisabledBackground,inputDisabledText,inputPlaceholder,primaryBackground; TextareadisabledBackground,disabledText; Select 팝업--inputBackground). 키는 추가만 했고 기존 키는 그대로입니다. 컨테이너에서 변수를 상속하는지 테스트.aria-busy, 기본으로 비활성화되어 중복 활성화 불가(disableWhileLoading={false}로 끌 수 있음), 화면에 보이지 않는role="status"문구(loadingLabel, 기본 "Loading").ThemeScript:nonce를 포함한 표준 script props를 전달하고, 저장소/matchMedia읽기가 던져도 중단되지 않고 기본 테마를 설정합니다(생성된 스크립트를 실제로 실행해 검증).getTheme/setTheme/initTheme:document가 없으면(SSR) 아무것도 하지 않고(getTheme은null), 저장소 쓰기가 막혀도 현재 페이지에는 적용됩니다.setTheme로 명시한 선택)가 있으면 그것이 우선, 없으면auto일 때 시스템 설정을 따르고 변경도 따라갑니다. 다른 탭이 저장한 테마(storage이벤트)와 삭제도 따라갑니다.ThemeScript에 같은 리스너가 들어 있고,initTheme은 추종을 멈추는 함수를 반환합니다(반환 타입void→() => void, 기존 호출은 그대로 동작).clip: rect(0,0,0,0)추가. 실제 추출 CSS가 sanitize.css 13의 두 규칙과 같은지 테스트.bun-test-env-dom이 기본인 이 저장소 방식(happy-dom)을 따랐습니다.새로 생기는 오류
빌드 에러는 없습니다. 타입/동작 변경:
Button/Input/Textarea에 더 이상 기본aria-label이 없고, Input의 에러 메시지는aria-label="error-message"대신role="alert"로 조회됩니다(스냅샷/쿼리 갱신).남는 한계
SelectOption(aria-label="Select option")과SelectContainer("Select container")도 모든 옵션의 이름을 같은 문구로 덮어씁니다. RT-12와 같은 문제지만 #725의 설계와 기존 테스트가 이 라벨에 기대고 있어 이번에 건드리지 않았습니다.useId,forwardRef,version으로 ref 위치 판별).elementRef는 버전 인자로 두 분기를 모두 단위 테스트합니다.forwardRef,Context.Provider,useContext)에서 오며 기존 2개 외에 이 PR이 추가한 것은SelectTrigger의forwardRef하나입니다(React 18에서 ref를 받으려면 필요).검증
bun test5558 pass / 0 fail, 커버리지 100%.bun lint오류 0.cargo test --workspace,cargo fmt/clippy -D warnings(lint 스크립트 포함) 통과. Rust 변경 없음.packages/components,packages/react(ThemeScript, 테마 헬퍼),packages/reset-css. 체인지팩 Patch(components, react, reset-css).2026-10-08 업데이트: main 11790bef를 merge commit으로 병합했습니다; 충돌 파일: 없음; 충돌 없이 자동 병합했고, 이미 포함된 squash 원본은 조상 확인 후 ours 전략으로 중복 적용하지 않았습니다.