Open
Conversation
3de33c6 to
ac577ac
Compare
ac577ac to
62095f1
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to lynx, this PR will be updated.
lynxis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonlynx.Releases
@seed-design/lynx-react@0.2.0-alpha.1
Minor Changes
d0ea7fe:
BottomSheet컴포넌트 추가 (@lynx-js/lynx-ui-sheet래핑)BottomSheetRoot,BottomSheetTrigger,BottomSheetBackdrop,BottomSheetContent,BottomSheetHandle,BottomSheetHeader,BottomSheetTitle,BottomSheetDescription,BottomSheetBody,BottomSheetFooteropen/defaultOpen/onOpenChange를 노출하고 내부에서 lynx-ui-sheet의show/defaultShow/onShowChange로 매핑createSlotRecipeContext유틸을 Lynx 버전으로 포팅해packages/lynx-react/src/utils/create-slot-recipe-context.tsx신규 — 이후 복합 슬롯 컴포넌트의 공통 기반BottomSheetCloseButton은 Tier B로 분리 (SVG 지원 후 추가 예정)lazyMount/unmountOnExit는 미지원 —forceMount로 대체@lynx-js/lynx-ui-sheetpeerDependency 추가2194ead:
@seed-design/lynx-react내부 구조 정리 + 런타임 버그 수정Public API 변경 (Breaking)
createRecipeContextexport 제거 — 내부 실사용 0건. 단일 slot 컴포넌트 포팅 시 필요하면 재도입.createCompoundContextexport 제거 — Switch 단독 사용이라 inlineReact.createContext + null-check throw패턴으로 교체. lynx-ui 의 13 개 compound 패키지가 동일 inline 패턴.dynamicStyleexport +./dynamic-stylesubpath export 제거 — 모노레포 전체에서 실사용 0건. Skeleton / Scrollable 로드맵 컴포넌트 도입 시점에 CSS 변수 주입 방식 재검토.런타임 버그 수정
ActionButton이withProvider("view", "root")/withContext("text", "text")로 intrinsic string 을 인자로 넘기고 있어BackgroundSnapshot not found: view런타임 에러를 유발하던 기존 버그 수정.ActionButtonRoot/ActionButtonTextSlot을 파일-내forwardRef+ 리터럴<view>/<text>JSX 로 재작성. PR feat(lynx-react): add BottomSheet component #1489 가 BottomSheet 에만 적용한 fix 를 ActionButton 에도 동일하게 적용.내부 정리
useControllableState,usePressTap훅을src/utils/→src/hooks/로 이동 (public export 이름 변경 없음, 상대 경로만 이동).AGENTS.md에 "Native tag literal JSX constraint" 섹션 추가 — 허용/금지 패턴 표, PR feat(lynx-react): add BottomSheet component #1489 (withContext("view")실패) + PR refactor(lynx-react): align utils with lynx-ui, move hooks to src/hooks/ #1503 spike (createSlotRecipeContext공통 유틸 파일 안의 factory 도 실패) 실증 근거, Lynx 엔진 레벨 근본 원인(ConvertStringTagToEnumTagenum 변환 실패) 정리. 핵심 발견: Lynx 컴파일러는 리터럴<view>/<text>JSX 를 파일 단위로 정적 분석하기 때문에, 리터럴 JSX 가 렌더 대상 컴포넌트 파일과 동일한 파일 안에 있어야 한다 — 공통 유틸 파일의 helper 로 추출 불가.Spike 실패 기록
이번 PR 에서
createSlotRecipeContext반환 객체에withViewContext(slot)/withTextContext(slot)헬퍼를 추가해 BottomSheet 의 로컬createViewSlot/createTextSlotfactory 를 대체하려 시도했으나, 런타임BackgroundSnapshot not found: view에러로 revert. 구조는 BottomSheet 의 기존 factory 와 동일 (1-layerforwardRef+ 리터럴<view>) 이지만 선언 파일이 달라 Lynx 컴파일러의 파일-스코프 정적 분석을 통과하지 못함. BottomSheet 의 기존createViewSlot/createTextSlotfactory 는 그대로 유지.d410a4c: Add recipe/slot-recipe context utilities and refactor ActionButton to use them.
createRecipeContext: single-slot recipe context withwithContextHOC.createSlotRecipeContext: multi-slot recipe context withwithRootProvider/withProvider/withContextfor wrapping React function components, pluswithViewContext/withTextContextfactories that emit literal<view>/<text>JSX for native intrinsic slots (required to pass the Lynx compiler's BackgroundSnapshot static analysis).NativeSlotPropstype for compound components extending native slot props.splitMultipleVariantsPropsutility for compound components that host multiple recipes (first consumer: TagGroup in a follow-up PR).ActionButtonrefactored internally to compose viawithProvider("view", "root")+withContext("text", "text"). Public API unchanged.ada0152: Lynx 플랫폼용
Switch컴포넌트 추가SwitchRoot,SwitchControl,SwitchThumb,SwitchLabelexportuseControllableState와usePressTapprimitive 인라인 조합으로 구현 (별도useSwitch훅 없음)SwitchHiddenInput,name/value/required/invalid, focus/focusVisible (Lynx 런타임 미지원)active(pressed) 모디파이어는switchmarkrecipe CSS에 pressed 상태 추가 시 활성화 예정70054ea: TagGroup 컴포넌트 추가 + qvism preset 웹/Lynx 분리
@seed-design/lynx-react:TagGroupRoot,TagGroupItem,TagGroupItemLabel지원. Root에서size/weight/tone을 Context로 Item에 전파, children 사이에 separator 자동 삽입 (기본" · ",separatorprop으로 커스텀 가능). 웹 대비<span>→<view>/<text>렌더,flexShrink·asChild·아이콘 slot 미지원.@seed-design/lynx-css: qvism preset이@seed-design/qvism-preset(웹) 과@seed-design/qvism-preset/lynx(Lynx) 로 완전 분리됨. Lynx preset은@lynx-js/types의CSSProperties타입으로 recipe 작성 시 미지원 property를 컴파일 타임에 차단. TagGroup recipe를 Lynx flex row 기반으로 재작성.@seed-design/lynx-css@0.1.1-alpha.1
Patch Changes
4d9b05c: Regenerate Lynx CSS after qvism preset web/Lynx split.
packages/lynx-cssnow uses its ownqvism.config.mjsdriven by the dedicated Lynx preset entry (@seed-design/qvism-preset/lynx), and no longer depends on the removedtargetsmechanism inqvism-core.70054ea: TagGroup 컴포넌트 추가 + qvism preset 웹/Lynx 분리
@seed-design/lynx-react:TagGroupRoot,TagGroupItem,TagGroupItemLabel지원. Root에서size/weight/tone을 Context로 Item에 전파, children 사이에 separator 자동 삽입 (기본" · ",separatorprop으로 커스텀 가능). 웹 대비<span>→<view>/<text>렌더,flexShrink·asChild·아이콘 slot 미지원.@seed-design/lynx-css: qvism preset이@seed-design/qvism-preset(웹) 과@seed-design/qvism-preset/lynx(Lynx) 로 완전 분리됨. Lynx preset은@lynx-js/types의CSSProperties타입으로 recipe 작성 시 미지원 property를 컴파일 타임에 차단. TagGroup recipe를 Lynx flex row 기반으로 재작성.ffc6d4f: 등록되지 않은 컴포넌트의 CSS 산출물을 정리했어요. recipes-lynx.ts에 등록된 recipe만 lynx-css 패키지에 남도록 orphan 파일 330개를 제거했습니다.