sh-ui-cli 0.52.1 → 0.52.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/changelog/versions.json +14 -0
- package/data/registry/react/components/_smoke/vanilla-extract.test.ts +33 -0
- package/data/registry/react/components/input/styles.css.ts +6 -6
- package/data/registry/react/registry.json +35 -852
- package/package.json +1 -1
- package/src/api.d.ts +3 -4
- package/src/constants.js +9 -5
- package/src/mcp.mjs +0 -1
- package/data/registry/react/components/accordion/index.vanilla-extract.tsx +0 -97
- package/data/registry/react/components/accordion/styles.css.ts +0 -131
- package/data/registry/react/components/avatar/index.vanilla-extract.tsx +0 -73
- package/data/registry/react/components/avatar/styles.css.ts +0 -68
- package/data/registry/react/components/badge/index.vanilla-extract.tsx +0 -40
- package/data/registry/react/components/badge/styles.css.ts +0 -71
- package/data/registry/react/components/breadcrumb/index.vanilla-extract.tsx +0 -152
- package/data/registry/react/components/breadcrumb/styles.css.ts +0 -95
- package/data/registry/react/components/calendar/index.vanilla-extract.tsx +0 -806
- package/data/registry/react/components/calendar/styles.css.ts +0 -250
- package/data/registry/react/components/carousel/index.vanilla-extract.tsx +0 -430
- package/data/registry/react/components/carousel/styles.css.ts +0 -169
- package/data/registry/react/components/checkbox/index.vanilla-extract.tsx +0 -96
- package/data/registry/react/components/checkbox/styles.css.ts +0 -74
- package/data/registry/react/components/code-editor/index.vanilla-extract.tsx +0 -230
- package/data/registry/react/components/code-editor/styles.css.ts +0 -97
- package/data/registry/react/components/code-panel/index.vanilla-extract.tsx +0 -191
- package/data/registry/react/components/code-panel/styles.css.ts +0 -151
- package/data/registry/react/components/color-picker/index.vanilla-extract.tsx +0 -467
- package/data/registry/react/components/color-picker/styles.css.ts +0 -169
- package/data/registry/react/components/combobox/index.vanilla-extract.tsx +0 -165
- package/data/registry/react/components/combobox/styles.css.ts +0 -174
- package/data/registry/react/components/context-menu/index.vanilla-extract.tsx +0 -251
- package/data/registry/react/components/context-menu/styles.css.ts +0 -167
- package/data/registry/react/components/date-picker/index.vanilla-extract.tsx +0 -520
- package/data/registry/react/components/date-picker/styles.css.ts +0 -111
- package/data/registry/react/components/dialog/index.vanilla-extract.tsx +0 -95
- package/data/registry/react/components/dialog/styles.css.ts +0 -140
- package/data/registry/react/components/dropdown-menu/index.vanilla-extract.tsx +0 -255
- package/data/registry/react/components/dropdown-menu/styles.css.ts +0 -175
- package/data/registry/react/components/file-upload/index.vanilla-extract.tsx +0 -487
- package/data/registry/react/components/file-upload/styles.css.ts +0 -193
- package/data/registry/react/components/form/index.vanilla-extract.tsx +0 -61
- package/data/registry/react/components/form/styles.css.ts +0 -56
- package/data/registry/react/components/header/index.vanilla-extract.tsx +0 -805
- package/data/registry/react/components/header/styles.css.ts +0 -413
- package/data/registry/react/components/label/index.vanilla-extract.tsx +0 -52
- package/data/registry/react/components/label/styles.css.ts +0 -141
- package/data/registry/react/components/markdown-editor/index.vanilla-extract.tsx +0 -119
- package/data/registry/react/components/markdown-editor/styles.css.ts +0 -231
- package/data/registry/react/components/menubar/index.vanilla-extract.tsx +0 -32
- package/data/registry/react/components/menubar/styles.css.ts +0 -53
- package/data/registry/react/components/numeric-input/index.vanilla-extract.tsx +0 -148
- package/data/registry/react/components/numeric-input/styles.css.ts +0 -65
- package/data/registry/react/components/page-toc/index.vanilla-extract.tsx +0 -174
- package/data/registry/react/components/page-toc/styles.css.ts +0 -97
- package/data/registry/react/components/pagination/index.vanilla-extract.tsx +0 -269
- package/data/registry/react/components/pagination/styles.css.ts +0 -113
- package/data/registry/react/components/popover/index.vanilla-extract.tsx +0 -113
- package/data/registry/react/components/popover/styles.css.ts +0 -78
- package/data/registry/react/components/progress/index.vanilla-extract.tsx +0 -54
- package/data/registry/react/components/progress/styles.css.ts +0 -53
- package/data/registry/react/components/radio/index.vanilla-extract.tsx +0 -65
- package/data/registry/react/components/radio/styles.css.ts +0 -79
- package/data/registry/react/components/rich-text-editor/index.vanilla-extract.tsx +0 -348
- package/data/registry/react/components/rich-text-editor/styles.css.ts +0 -243
- package/data/registry/react/components/select/index.vanilla-extract.tsx +0 -234
- package/data/registry/react/components/select/styles.css.ts +0 -225
- package/data/registry/react/components/separator/index.vanilla-extract.tsx +0 -46
- package/data/registry/react/components/separator/styles.css.ts +0 -24
- package/data/registry/react/components/sidebar/index.vanilla-extract.tsx +0 -1067
- package/data/registry/react/components/sidebar/styles.css.ts +0 -578
- package/data/registry/react/components/skeleton/index.vanilla-extract.tsx +0 -22
- package/data/registry/react/components/skeleton/styles.css.ts +0 -30
- package/data/registry/react/components/slider/index.vanilla-extract.tsx +0 -298
- package/data/registry/react/components/slider/styles.css.ts +0 -75
- package/data/registry/react/components/spinner/index.vanilla-extract.tsx +0 -38
- package/data/registry/react/components/spinner/styles.css.ts +0 -60
- package/data/registry/react/components/switch/index.vanilla-extract.tsx +0 -39
- package/data/registry/react/components/switch/styles.css.ts +0 -87
- package/data/registry/react/components/tabs/index.vanilla-extract.tsx +0 -91
- package/data/registry/react/components/tabs/styles.css.ts +0 -145
- package/data/registry/react/components/textarea/index.vanilla-extract.tsx +0 -23
- package/data/registry/react/components/textarea/styles.css.ts +0 -55
- package/data/registry/react/components/toast/index.vanilla-extract.tsx +0 -258
- package/data/registry/react/components/toast/styles.css.ts +0 -307
- package/data/registry/react/components/toggle/index.vanilla-extract.tsx +0 -131
- package/data/registry/react/components/toggle/styles.css.ts +0 -109
- package/data/registry/react/components/tooltip/index.vanilla-extract.tsx +0 -83
- package/data/registry/react/components/tooltip/styles.css.ts +0 -59
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$description": "sh-ui 릴리즈 노트 단일 소스. docs(React)와 showcase(Flutter)가 함께 읽는다. 새 릴리즈마다 맨 앞에 추가.",
|
|
4
4
|
"versions": [
|
|
5
|
+
{
|
|
6
|
+
"version": "0.52.2",
|
|
7
|
+
"date": "2026-05-04",
|
|
8
|
+
"title": "vanilla-extract rollback — 자동 변환 broken, PLANNED 로 후퇴",
|
|
9
|
+
"type": "patch",
|
|
10
|
+
"highlights": [
|
|
11
|
+
"**v0.50.0 의 vanilla-extract 자동 변환 회수** — `.module.css → .css.ts` 자동 변환 스크립트로 ship 했던 40 개 변종이 vanilla-extract 의 strict selector 규칙 (selectors 안 다른 클래스 reference 금지, `& > *` / `& .third-party` 같은 descendant 패턴 거부, mutual reference TDZ 등) 을 어겨 사용자 빌드 시 깨짐. 검증 인프라 (vitest + @vanilla-extract/vite-plugin) 도입 후 발견.",
|
|
12
|
+
"**vanilla-extract 를 SUPPORTED → PLANNED 로 되돌림** — `CSS_FRAMEWORKS_SUPPORTED` 에서 제거, `CSS_FRAMEWORKS_PLANNED` 로 이동. CLI/MCP/UI 모두 다시 \"곧 지원 예정\" 으로 안내. button/card/input 3 개 수동 작성 파일럿 변종은 그대로 유지 — `sh-ui.config.json` 을 직접 손대면 동작.",
|
|
13
|
+
"**input 파일럿 fix** — `affix > *` 규칙이 vanilla-extract selectors 키에 들어 있어 거부됐음. `globalStyle()` 로 빼서 수정. 이제 button/card/input 모두 검증 통과.",
|
|
14
|
+
"**검증 인프라 정착** — `packages/registry/react/components/_smoke/vanilla-extract.test.ts` — 모든 `styles.css.ts` 가 vanilla-extract 빌드 컨텍스트에서 정상 import 되는지 자동 검증. 향후 정식 rollout 때 회귀 가드.",
|
|
15
|
+
"사용자 영향: vanilla-extract 사용자는 거의 없을 것 (PLANNED 였다가 잠시 SUPPORTED 됐다 다시 PLANNED). plain · tailwind · css-modules 사용자에게는 변동 없음."
|
|
16
|
+
],
|
|
17
|
+
"url": "https://github.com/sanghyeonKim0201/sh-ui/releases/tag/v0.52.2"
|
|
18
|
+
},
|
|
5
19
|
{
|
|
6
20
|
"version": "0.52.1",
|
|
7
21
|
"date": "2026-05-04",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vanilla-extract 자동 변환 검증 — 모든 styles.css.ts 파일이 정상 import 되는지.
|
|
3
|
+
*
|
|
4
|
+
* `style()` 호출은 vanilla-extract 빌드 플러그인 없이도 런타임에서 동작 (단순 문자열 반환).
|
|
5
|
+
* 다만 import 자체가 실패하거나 type 가 깨졌으면 vitest 가 잡는다.
|
|
6
|
+
*
|
|
7
|
+
* 새 변종 추가 시: `glob` 패턴으로 자동 발견되므로 별도 추가 불필요.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from "vitest";
|
|
10
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
11
|
+
import { resolve } from "node:path";
|
|
12
|
+
|
|
13
|
+
const COMPONENTS_DIR = resolve(__dirname, "..");
|
|
14
|
+
|
|
15
|
+
const components = readdirSync(COMPONENTS_DIR, { withFileTypes: true })
|
|
16
|
+
.filter((d) => d.isDirectory() && d.name !== "_smoke")
|
|
17
|
+
.map((d) => d.name)
|
|
18
|
+
.filter((name) => existsSync(resolve(COMPONENTS_DIR, name, "styles.css.ts")));
|
|
19
|
+
|
|
20
|
+
describe("vanilla-extract — styles.css.ts 모듈 무결성", () => {
|
|
21
|
+
for (const name of components) {
|
|
22
|
+
it(`${name} loads without error`, async () => {
|
|
23
|
+
const mod = await import(`../${name}/styles.css.ts`);
|
|
24
|
+
const exports = Object.keys(mod).filter((k) => k !== "default");
|
|
25
|
+
expect(exports.length).toBeGreaterThan(0);
|
|
26
|
+
// 각 export 가 string (vanilla-extract style 함수 반환값) 또는 byKey 같은 record
|
|
27
|
+
for (const key of exports) {
|
|
28
|
+
const val = mod[key];
|
|
29
|
+
expect(typeof val === "string" || typeof val === "object").toBe(true);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { style } from "@vanilla-extract/css";
|
|
1
|
+
import { globalStyle, style } from "@vanilla-extract/css";
|
|
2
2
|
|
|
3
3
|
export const input = style({
|
|
4
4
|
display: "block",
|
|
@@ -105,12 +105,12 @@ export const affix = style({
|
|
|
105
105
|
justifyContent: "center",
|
|
106
106
|
color: "var(--foreground-muted)",
|
|
107
107
|
pointerEvents: "none",
|
|
108
|
+
});
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
},
|
|
110
|
+
// vanilla-extract 의 selectors 키는 universal/element descendant (& > *) 도 허용 안 함.
|
|
111
|
+
// 자식 요소에 룰 적용하려면 globalStyle 로 빼야 함.
|
|
112
|
+
globalStyle(`${affix} > *`, {
|
|
113
|
+
pointerEvents: "auto",
|
|
114
114
|
});
|
|
115
115
|
|
|
116
116
|
export const affixPrefix = style({ left: "var(--space-3)" });
|