@spectrabrain/eds 0.0.4 → 0.1.1
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/AI.md +13 -40
- package/AI_CONTEXT.json +90 -0
- package/CHANGELOG.md +120 -0
- package/CONSUMER_AGENT.md +152 -0
- package/FRONTEND_CONVENTIONS.md +252 -0
- package/QUICKSTART.md +42 -0
- package/README.md +38 -69
- package/TAILWIND_V4.md +57 -243
- package/TOKEN_CONTEXT.md +98 -0
- package/consumer/align/templates/components.json +21 -0
- package/consumer/align/templates/env.mock +1 -0
- package/consumer/align/templates/eslint.config.js +35 -0
- package/consumer/align/templates/package.scripts.json +10 -0
- package/consumer/align/templates/prettierignore +2 -0
- package/consumer/align/templates/prettierrc.json +7 -0
- package/consumer/align/templates/src/app/App.tsx +16 -0
- package/consumer/align/templates/src/app/main.tsx +27 -0
- package/consumer/align/templates/src/app/providers/ErrorBoundary.tsx +58 -0
- package/consumer/align/templates/src/app/providers/ErrorHandler.tsx +29 -0
- package/consumer/align/templates/src/app/router/index.tsx +23 -0
- package/consumer/align/templates/src/app/styles/index.css +2 -0
- package/consumer/align/templates/src/mocks/browser.ts +5 -0
- package/consumer/align/templates/src/mocks/handlers.ts +4 -0
- package/consumer/align/templates/src/shared/api/index.ts +23 -0
- package/consumer/align/templates/src/shared/api/queryClient.ts +24 -0
- package/consumer/align/templates/src/shared/lib/eventBus.ts +44 -0
- package/consumer/align/templates/src/shared/lib/utils/index.ts +6 -0
- package/consumer/align/templates/src/vite-env.d.ts +2 -0
- package/consumer/align/templates/tsconfig.json +22 -0
- package/consumer/align/templates/vite.config.babel.ts +36 -0
- package/consumer/align/templates/vite.config.rolldown.ts +35 -0
- package/consumer/align-analysis.mjs +1159 -0
- package/consumer/align-plan.mjs +377 -0
- package/consumer/align-rules.mjs +473 -0
- package/consumer/align.mjs +401 -0
- package/consumer/cli.mjs +157 -0
- package/consumer/css-root.mjs +259 -0
- package/consumer/doctor.mjs +204 -0
- package/consumer/generate-tailwind.mjs +83 -0
- package/consumer/init.mjs +186 -0
- package/consumer/managed-block.mjs +126 -0
- package/consumer/paths.mjs +266 -0
- package/consumer/register-scripts.mjs +129 -0
- package/consumer/scan-classes.mjs +71 -0
- package/consumer/sync.mjs +155 -0
- package/consumer/update-agent-context.mjs +143 -0
- package/consumer-postinstall.mjs +60 -0
- package/dist/base.css +4 -0
- package/dist/components/Button/README.md +70 -80
- package/dist/components/Button/spec.json +71 -133
- package/dist/components.css +102 -368
- package/dist/index.d.mts +40 -1
- package/dist/index.d.ts +40 -1
- package/dist/index.js +34 -6250
- package/dist/index.mjs +36 -6252
- package/dist/styles.css +1 -0
- package/dist/tokens.d.mts +5 -2
- package/dist/tokens.d.ts +5 -2
- package/dist/tokens.js +6 -7
- package/dist/tokens.mjs +6 -7
- package/llms.txt +22 -9
- package/package.json +33 -2
package/dist/styles.css
CHANGED
package/dist/tokens.d.mts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
type SemanticTokenName = "color-bg-brand-primary" | "color-bg-brand-primary-hover" | "color-bg-brand-weak" | "color-bg-brand-weak-hover" | "color-bg-critical-primary" | "color-bg-critical-primary-hover" | "color-bg-critical-weak" | "color-bg-critical-weak-hover" | "color-bg-disabled" | "color-bg-informative-primary" | "color-bg-informative-primary-hover" | "color-bg-informative-weak" | "color-bg-informative-weak-hover" | "color-bg-layer-basement" | "color-bg-layer-basement-hover" | "color-bg-layer-default" | "color-bg-layer-default-hover" | "color-bg-layer-floating" | "color-bg-layer-floating-hover" | "color-bg-neutral-inverted" | "color-bg-neutral-inverted-hover" | "color-bg-neutral-primary" | "color-bg-neutral-primary-hover" | "color-bg-neutral-weak" | "color-bg-neutral-weak-hover" | "color-bg-positive-primary" | "color-bg-positive-primary-hover" | "color-bg-positive-weak" | "color-bg-positive-weak-hover" | "color-bg-transparent" | "color-bg-transparent-hover" | "color-bg-warning-primary" | "color-bg-warning-primary-hover" | "color-bg-warning-weak" | "color-bg-warning-weak-hover" | "color-fg-brand" | "color-fg-brand-contrast" | "color-fg-critical" | "color-fg-critical-contrast" | "color-fg-disabled" | "color-fg-focus" | "color-fg-informative" | "color-fg-informative-contrast" | "color-fg-neutral" | "color-fg-neutral-inverted" | "color-fg-neutral-secondary" | "color-fg-neutral-tertiary" | "color-fg-placeholder" | "color-fg-positive" | "color-fg-positive-contrast" | "color-fg-warning" | "color-fg-warning-contrast" | "color-stroke-brand-primary" | "color-stroke-brand-weak" | "color-stroke-critical-primary" | "color-stroke-critical-weak" | "color-stroke-focusRing" | "color-stroke-informative-primary" | "color-stroke-informative-weak" | "color-stroke-neutral-contrast" | "color-stroke-neutral-primary" | "color-stroke-neutral-secondary" | "color-stroke-neutral-tertiary" | "color-stroke-neutral-weak" | "color-stroke-positive-primary" | "color-stroke-positive-weak" | "color-stroke-warning-primary" | "color-stroke-warning-weak" | "typography-body1-fontFamily" | "typography-body1-fontSize" | "typography-body1-fontWeight" | "typography-body1-letterSpacing" | "typography-body1-lineHeight" | "typography-body2-fontFamily" | "typography-body2-fontSize" | "typography-body2-fontWeight" | "typography-body2-letterSpacing" | "typography-body2-lineHeight" | "typography-body3-fontFamily" | "typography-body3-fontSize" | "typography-body3-fontWeight" | "typography-body3-letterSpacing" | "typography-body3-lineHeight" | "typography-body4-fontFamily" | "typography-body4-fontSize" | "typography-body4-fontWeight" | "typography-body4-letterSpacing" | "typography-body4-lineHeight" | "typography-caption1-fontFamily" | "typography-caption1-fontSize" | "typography-caption1-fontWeight" | "typography-caption1-letterSpacing" | "typography-caption1-lineHeight" | "typography-caption2-fontFamily" | "typography-caption2-fontSize" | "typography-caption2-fontWeight" | "typography-caption2-letterSpacing" | "typography-caption2-lineHeight" | "typography-caption3-fontFamily" | "typography-caption3-fontSize" | "typography-caption3-fontWeight" | "typography-caption3-letterSpacing" | "typography-caption3-lineHeight" | "typography-display1-fontFamily" | "typography-display1-fontSize" | "typography-display1-fontWeight" | "typography-display1-letterSpacing" | "typography-display1-lineHeight" | "typography-display2-fontFamily" | "typography-display2-fontSize" | "typography-display2-fontWeight" | "typography-display2-letterSpacing" | "typography-display2-lineHeight" | "typography-heading1-fontFamily" | "typography-heading1-fontSize" | "typography-heading1-fontWeight" | "typography-heading1-letterSpacing" | "typography-heading1-lineHeight" | "typography-heading2-fontFamily" | "typography-heading2-fontSize" | "typography-heading2-fontWeight" | "typography-heading2-letterSpacing" | "typography-heading2-lineHeight" | "typography-heading3-fontFamily" | "typography-heading3-fontSize" | "typography-heading3-fontWeight" | "typography-heading3-letterSpacing" | "typography-heading3-lineHeight" | "typography-heading4-fontFamily" | "typography-heading4-fontSize" | "typography-heading4-fontWeight" | "typography-heading4-letterSpacing" | "typography-heading4-lineHeight" | "typography-title1-fontFamily" | "typography-title1-fontSize" | "typography-title1-fontWeight" | "typography-title1-letterSpacing" | "typography-title1-lineHeight" | "typography-title2-fontFamily" | "typography-title2-fontSize" | "typography-title2-fontWeight" | "typography-title2-letterSpacing" | "typography-title2-lineHeight" | "typography-title3-fontFamily" | "typography-title3-fontSize" | "typography-title3-fontWeight" | "typography-title3-letterSpacing" | "typography-title3-lineHeight" | "typography-title4-fontFamily" | "typography-title4-fontSize" | "typography-title4-fontWeight" | "typography-title4-letterSpacing" | "typography-title4-lineHeight";
|
|
2
2
|
type SemanticTokenType = "color" | "dimension" | "fontFamily" | "fontWeight";
|
|
3
|
-
type SemanticTokenCssVariable =
|
|
4
|
-
type SemanticTokenCssReference =
|
|
3
|
+
type SemanticTokenCssVariable = `--eds-${SemanticTokenName}`;
|
|
4
|
+
type SemanticTokenCssReference = `var(${SemanticTokenCssVariable})`;
|
|
5
5
|
interface SemanticToken {
|
|
6
6
|
readonly name: SemanticTokenName;
|
|
7
7
|
readonly type: SemanticTokenType;
|
|
8
|
+
/** 빌드 시 해석된 참고용 값입니다. 스타일에는 cssVariable 또는 cssVar()를 씁니다. */
|
|
8
9
|
readonly value: unknown;
|
|
9
10
|
readonly cssVariable: string;
|
|
10
11
|
}
|
|
11
12
|
type SemanticTokenMap = Readonly<Record<SemanticTokenName, SemanticToken>>;
|
|
13
|
+
/** 공개 token manifest입니다. 이름 목록은 tokenNames, CSS 참조는 cssVar()입니다. */
|
|
12
14
|
declare const tokens: SemanticTokenMap;
|
|
13
15
|
declare const tokenNames: readonly SemanticTokenName[];
|
|
16
|
+
/** 공개 token 이름을 var(--eds-…) 참조로 바꿉니다. 이름은 SemanticTokenName 리터럴로 전달하며, tokenNames에 없는 문자열은 런타임 오류입니다. */
|
|
14
17
|
declare function cssVar(name: SemanticTokenName): SemanticTokenCssReference;
|
|
15
18
|
|
|
16
19
|
export { type SemanticToken, type SemanticTokenCssReference, type SemanticTokenCssVariable, type SemanticTokenMap, type SemanticTokenName, type SemanticTokenType, cssVar, tokenNames, tokens };
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
type SemanticTokenName = "color-bg-brand-primary" | "color-bg-brand-primary-hover" | "color-bg-brand-weak" | "color-bg-brand-weak-hover" | "color-bg-critical-primary" | "color-bg-critical-primary-hover" | "color-bg-critical-weak" | "color-bg-critical-weak-hover" | "color-bg-disabled" | "color-bg-informative-primary" | "color-bg-informative-primary-hover" | "color-bg-informative-weak" | "color-bg-informative-weak-hover" | "color-bg-layer-basement" | "color-bg-layer-basement-hover" | "color-bg-layer-default" | "color-bg-layer-default-hover" | "color-bg-layer-floating" | "color-bg-layer-floating-hover" | "color-bg-neutral-inverted" | "color-bg-neutral-inverted-hover" | "color-bg-neutral-primary" | "color-bg-neutral-primary-hover" | "color-bg-neutral-weak" | "color-bg-neutral-weak-hover" | "color-bg-positive-primary" | "color-bg-positive-primary-hover" | "color-bg-positive-weak" | "color-bg-positive-weak-hover" | "color-bg-transparent" | "color-bg-transparent-hover" | "color-bg-warning-primary" | "color-bg-warning-primary-hover" | "color-bg-warning-weak" | "color-bg-warning-weak-hover" | "color-fg-brand" | "color-fg-brand-contrast" | "color-fg-critical" | "color-fg-critical-contrast" | "color-fg-disabled" | "color-fg-focus" | "color-fg-informative" | "color-fg-informative-contrast" | "color-fg-neutral" | "color-fg-neutral-inverted" | "color-fg-neutral-secondary" | "color-fg-neutral-tertiary" | "color-fg-placeholder" | "color-fg-positive" | "color-fg-positive-contrast" | "color-fg-warning" | "color-fg-warning-contrast" | "color-stroke-brand-primary" | "color-stroke-brand-weak" | "color-stroke-critical-primary" | "color-stroke-critical-weak" | "color-stroke-focusRing" | "color-stroke-informative-primary" | "color-stroke-informative-weak" | "color-stroke-neutral-contrast" | "color-stroke-neutral-primary" | "color-stroke-neutral-secondary" | "color-stroke-neutral-tertiary" | "color-stroke-neutral-weak" | "color-stroke-positive-primary" | "color-stroke-positive-weak" | "color-stroke-warning-primary" | "color-stroke-warning-weak" | "typography-body1-fontFamily" | "typography-body1-fontSize" | "typography-body1-fontWeight" | "typography-body1-letterSpacing" | "typography-body1-lineHeight" | "typography-body2-fontFamily" | "typography-body2-fontSize" | "typography-body2-fontWeight" | "typography-body2-letterSpacing" | "typography-body2-lineHeight" | "typography-body3-fontFamily" | "typography-body3-fontSize" | "typography-body3-fontWeight" | "typography-body3-letterSpacing" | "typography-body3-lineHeight" | "typography-body4-fontFamily" | "typography-body4-fontSize" | "typography-body4-fontWeight" | "typography-body4-letterSpacing" | "typography-body4-lineHeight" | "typography-caption1-fontFamily" | "typography-caption1-fontSize" | "typography-caption1-fontWeight" | "typography-caption1-letterSpacing" | "typography-caption1-lineHeight" | "typography-caption2-fontFamily" | "typography-caption2-fontSize" | "typography-caption2-fontWeight" | "typography-caption2-letterSpacing" | "typography-caption2-lineHeight" | "typography-caption3-fontFamily" | "typography-caption3-fontSize" | "typography-caption3-fontWeight" | "typography-caption3-letterSpacing" | "typography-caption3-lineHeight" | "typography-display1-fontFamily" | "typography-display1-fontSize" | "typography-display1-fontWeight" | "typography-display1-letterSpacing" | "typography-display1-lineHeight" | "typography-display2-fontFamily" | "typography-display2-fontSize" | "typography-display2-fontWeight" | "typography-display2-letterSpacing" | "typography-display2-lineHeight" | "typography-heading1-fontFamily" | "typography-heading1-fontSize" | "typography-heading1-fontWeight" | "typography-heading1-letterSpacing" | "typography-heading1-lineHeight" | "typography-heading2-fontFamily" | "typography-heading2-fontSize" | "typography-heading2-fontWeight" | "typography-heading2-letterSpacing" | "typography-heading2-lineHeight" | "typography-heading3-fontFamily" | "typography-heading3-fontSize" | "typography-heading3-fontWeight" | "typography-heading3-letterSpacing" | "typography-heading3-lineHeight" | "typography-heading4-fontFamily" | "typography-heading4-fontSize" | "typography-heading4-fontWeight" | "typography-heading4-letterSpacing" | "typography-heading4-lineHeight" | "typography-title1-fontFamily" | "typography-title1-fontSize" | "typography-title1-fontWeight" | "typography-title1-letterSpacing" | "typography-title1-lineHeight" | "typography-title2-fontFamily" | "typography-title2-fontSize" | "typography-title2-fontWeight" | "typography-title2-letterSpacing" | "typography-title2-lineHeight" | "typography-title3-fontFamily" | "typography-title3-fontSize" | "typography-title3-fontWeight" | "typography-title3-letterSpacing" | "typography-title3-lineHeight" | "typography-title4-fontFamily" | "typography-title4-fontSize" | "typography-title4-fontWeight" | "typography-title4-letterSpacing" | "typography-title4-lineHeight";
|
|
2
2
|
type SemanticTokenType = "color" | "dimension" | "fontFamily" | "fontWeight";
|
|
3
|
-
type SemanticTokenCssVariable =
|
|
4
|
-
type SemanticTokenCssReference =
|
|
3
|
+
type SemanticTokenCssVariable = `--eds-${SemanticTokenName}`;
|
|
4
|
+
type SemanticTokenCssReference = `var(${SemanticTokenCssVariable})`;
|
|
5
5
|
interface SemanticToken {
|
|
6
6
|
readonly name: SemanticTokenName;
|
|
7
7
|
readonly type: SemanticTokenType;
|
|
8
|
+
/** 빌드 시 해석된 참고용 값입니다. 스타일에는 cssVariable 또는 cssVar()를 씁니다. */
|
|
8
9
|
readonly value: unknown;
|
|
9
10
|
readonly cssVariable: string;
|
|
10
11
|
}
|
|
11
12
|
type SemanticTokenMap = Readonly<Record<SemanticTokenName, SemanticToken>>;
|
|
13
|
+
/** 공개 token manifest입니다. 이름 목록은 tokenNames, CSS 참조는 cssVar()입니다. */
|
|
12
14
|
declare const tokens: SemanticTokenMap;
|
|
13
15
|
declare const tokenNames: readonly SemanticTokenName[];
|
|
16
|
+
/** 공개 token 이름을 var(--eds-…) 참조로 바꿉니다. 이름은 SemanticTokenName 리터럴로 전달하며, tokenNames에 없는 문자열은 런타임 오류입니다. */
|
|
14
17
|
declare function cssVar(name: SemanticTokenName): SemanticTokenCssReference;
|
|
15
18
|
|
|
16
19
|
export { type SemanticToken, type SemanticTokenCssReference, type SemanticTokenCssVariable, type SemanticTokenMap, type SemanticTokenName, type SemanticTokenType, cssVar, tokenNames, tokens };
|
package/dist/tokens.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/generated/tokens.ts
|
|
4
|
-
var tokenMap = {
|
|
4
|
+
var tokenMap = /* @__PURE__ */ Object.freeze({
|
|
5
5
|
"color-bg-brand-primary": {
|
|
6
6
|
"name": "color-bg-brand-primary",
|
|
7
7
|
"type": "color",
|
|
@@ -1141,9 +1141,9 @@ var tokenMap = {
|
|
|
1141
1141
|
},
|
|
1142
1142
|
"cssVariable": "--eds-typography-title4-lineHeight"
|
|
1143
1143
|
}
|
|
1144
|
-
};
|
|
1145
|
-
var tokens =
|
|
1146
|
-
var tokenNames = Object.freeze([
|
|
1144
|
+
});
|
|
1145
|
+
var tokens = tokenMap;
|
|
1146
|
+
var tokenNames = /* @__PURE__ */ Object.freeze([
|
|
1147
1147
|
"color-bg-brand-primary",
|
|
1148
1148
|
"color-bg-brand-primary-hover",
|
|
1149
1149
|
"color-bg-brand-weak",
|
|
@@ -1299,11 +1299,10 @@ var tokenNames = Object.freeze([
|
|
|
1299
1299
|
"typography-title4-lineHeight"
|
|
1300
1300
|
]);
|
|
1301
1301
|
function cssVar(name) {
|
|
1302
|
-
|
|
1303
|
-
if (!token) {
|
|
1302
|
+
if (!tokenNames.includes(name)) {
|
|
1304
1303
|
throw new Error("Unknown semantic token: " + name);
|
|
1305
1304
|
}
|
|
1306
|
-
return "var(" +
|
|
1305
|
+
return "var(--eds-" + name + ")";
|
|
1307
1306
|
}
|
|
1308
1307
|
|
|
1309
1308
|
exports.cssVar = cssVar;
|
package/dist/tokens.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/generated/tokens.ts
|
|
2
|
-
var tokenMap = {
|
|
2
|
+
var tokenMap = /* @__PURE__ */ Object.freeze({
|
|
3
3
|
"color-bg-brand-primary": {
|
|
4
4
|
"name": "color-bg-brand-primary",
|
|
5
5
|
"type": "color",
|
|
@@ -1139,9 +1139,9 @@ var tokenMap = {
|
|
|
1139
1139
|
},
|
|
1140
1140
|
"cssVariable": "--eds-typography-title4-lineHeight"
|
|
1141
1141
|
}
|
|
1142
|
-
};
|
|
1143
|
-
var tokens =
|
|
1144
|
-
var tokenNames = Object.freeze([
|
|
1142
|
+
});
|
|
1143
|
+
var tokens = tokenMap;
|
|
1144
|
+
var tokenNames = /* @__PURE__ */ Object.freeze([
|
|
1145
1145
|
"color-bg-brand-primary",
|
|
1146
1146
|
"color-bg-brand-primary-hover",
|
|
1147
1147
|
"color-bg-brand-weak",
|
|
@@ -1297,11 +1297,10 @@ var tokenNames = Object.freeze([
|
|
|
1297
1297
|
"typography-title4-lineHeight"
|
|
1298
1298
|
]);
|
|
1299
1299
|
function cssVar(name) {
|
|
1300
|
-
|
|
1301
|
-
if (!token) {
|
|
1300
|
+
if (!tokenNames.includes(name)) {
|
|
1302
1301
|
throw new Error("Unknown semantic token: " + name);
|
|
1303
1302
|
}
|
|
1304
|
-
return "var(" +
|
|
1303
|
+
return "var(--eds-" + name + ")";
|
|
1305
1304
|
}
|
|
1306
1305
|
|
|
1307
1306
|
export { cssVar, tokenNames, tokens };
|
package/llms.txt
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
|
-
# EVA Design System
|
|
1
|
+
# EVA Design System (@spectrabrain/eds)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> React 웹용 EVA 디자인 시스템 패키지입니다. 소비처 AI는 package root(`require.resolve("@spectrabrain/eds/package.json")`의 디렉터리)의 `QUICKSTART.md` 하나를 먼저 읽고, 나머지는 아래 조건에 해당할 때만 읽습니다. 같은 목록의 기계용 원천은 `AI_CONTEXT.json`의 `readOrder`입니다.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
2. Tailwind CSS v4에서 token만 연결하려면 [Tailwind CSS v4 token 설정](./TAILWIND_V4.md)을 읽습니다.
|
|
7
|
-
3. [semantic token manifest](./dist/tokens.json)에서 사용 가능한 token 이름을 확인합니다.
|
|
8
|
-
4. [npm 소비자 안내](./README.md)에서 설치와 CSS 진입점을 확인합니다.
|
|
9
|
-
5. 컴포넌트를 사용할 때만 [Button 개요·사용 맥락·API](./dist/components/Button/README.md)를 읽습니다.
|
|
10
|
-
6. Button을 사용할 때만 [Button 공개 manifest](./dist/components/Button/spec.json)에서 허용 조합과 접근성 계약을 확인합니다.
|
|
5
|
+
EDS 내부 소스로 동작을 추론하지 않고 공개 문서와 TypeScript contract를 기준으로 합니다. 링크는 모두 package root 기준 경로입니다.
|
|
11
6
|
|
|
12
|
-
|
|
7
|
+
## 필수
|
|
8
|
+
|
|
9
|
+
- [QUICKSTART.md](./QUICKSTART.md): UI 작업 규칙, 완료 기준과 doctor 실패 시 복구 순서, 명령(`npm run sync:eds`, `npm run eds:doctor`), 조건부 문서 목록입니다.
|
|
10
|
+
|
|
11
|
+
## 조건부
|
|
12
|
+
|
|
13
|
+
- [CONSUMER_AGENT.md](./CONSUMER_AGENT.md): 소비처 `AGENTS.md`에 `<!-- EDS:BEGIN -->` block이 없거나, sync·doctor가 exit 2이거나 sync 뒤에도 doctor가 exit 1이거나, EDS 버전을 올렸거나, 사용자가 프로토타입을 EVA 구조로 정리하라고 요청했을 때(`eds align`) 읽습니다.
|
|
14
|
+
- [TOKEN_CONTEXT.md](./TOKEN_CONTEXT.md): EDS 컴포넌트 prop 밖에서 색상·typography token을 지정하거나 바꿀 때 읽습니다. Tailwind 없이 CSS variable이나 `cssVar()`로 쓰는 경우도 포함합니다.
|
|
15
|
+
- [TAILWIND_V4.md](./TAILWIND_V4.md): Tailwind CSS v4 adapter나 root CSS 배선을 설정하거나 고칠 때 읽습니다.
|
|
16
|
+
- [AI.md](./AI.md): 요청이 dark theme, 생성된 class 밖의 Tailwind utility, `AI_CONTEXT.json` `components`에 없는 컴포넌트를 요구할 때 읽습니다.
|
|
17
|
+
- [FRONTEND_CONVENTIONS.md](./FRONTEND_CONVENTIONS.md): `.eds/align/PLAN.md`가 있거나(`eds align` 진행 중), 소비처 `AGENTS.md`가 구조·라이브러리·코드 패턴 변경에 이 문서를 가리킬 때 읽습니다.
|
|
18
|
+
- [dist/components/Button/README.md](./dist/components/Button/README.md): Button을 쓸 때 사용 맥락, role·variant 선택, prop, 접근성, 목록 밖 아이콘 규칙을 읽습니다.
|
|
19
|
+
- [dist/components/Button/spec.json](./dist/components/Button/spec.json): `api.iconNames`의 아이콘 이름을 확인하거나 도구가 기계용 계약을 읽을 때 씁니다.
|
|
20
|
+
- [dist/tokens.json](./dist/tokens.json): 도구·스크립트가 기계용 token manifest를 읽거나, Tailwind 없이 쓸 `var(--eds-*)` 이름을 확인할 때 씁니다. class 이름은 `src/styles/eds-tokens.css`에 있습니다.
|
|
21
|
+
- [CHANGELOG.md](./CHANGELOG.md): EDS 버전을 올렸을 때(설치된 버전이 `AGENTS.md`의 `EDS:VERSION` 줄보다 높을 때) 읽습니다.
|
|
22
|
+
|
|
23
|
+
## Optional
|
|
24
|
+
|
|
25
|
+
- [README.md](./README.md): 사람을 위한 설치 안내와 공개 경로 표입니다.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrabrain/eds",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "EVA services' shared React design system",
|
|
5
5
|
"author": "SpectraBrain",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -8,14 +8,32 @@
|
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"module": "./dist/index.mjs",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
+
"typesVersions": {
|
|
12
|
+
"*": {
|
|
13
|
+
"tokens": [
|
|
14
|
+
"./dist/tokens.d.ts"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
11
18
|
"files": [
|
|
12
19
|
"dist",
|
|
13
20
|
"README.md",
|
|
14
21
|
"AI.md",
|
|
22
|
+
"AI_CONTEXT.json",
|
|
23
|
+
"CONSUMER_AGENT.md",
|
|
24
|
+
"TOKEN_CONTEXT.md",
|
|
15
25
|
"llms.txt",
|
|
16
26
|
"TAILWIND_V4.md",
|
|
27
|
+
"QUICKSTART.md",
|
|
28
|
+
"FRONTEND_CONVENTIONS.md",
|
|
29
|
+
"CHANGELOG.md",
|
|
30
|
+
"consumer-postinstall.mjs",
|
|
31
|
+
"consumer",
|
|
17
32
|
"NOTICE"
|
|
18
33
|
],
|
|
34
|
+
"bin": {
|
|
35
|
+
"eds": "./consumer/cli.mjs"
|
|
36
|
+
},
|
|
19
37
|
"scripts": {
|
|
20
38
|
"tokens:generate": "tsx scripts/build-tokens.ts",
|
|
21
39
|
"components:generate": "tsx scripts/build-components.ts",
|
|
@@ -23,6 +41,7 @@
|
|
|
23
41
|
"tokens:validate": "tsx scripts/build-tokens.ts --validate",
|
|
24
42
|
"tokens:connectivity": "tsx scripts/check-token-connectivity.ts",
|
|
25
43
|
"tokens:connectivity:strict": "npm run tokens:connectivity -- --strict",
|
|
44
|
+
"tokens:contrast": "npm run tokens:generate && tsx scripts/check-token-contrast.ts",
|
|
26
45
|
"library:build": "tsup",
|
|
27
46
|
"fonts:build": "tsx scripts/build-font-assets.ts",
|
|
28
47
|
"tokens:build": "npm run typecheck && npm run library:build && npm run component-manifest:generate && npm run fonts:build && npm run public-boundary:check",
|
|
@@ -33,6 +52,7 @@
|
|
|
33
52
|
"typecheck": "npm run tokens:generate && npm run components:generate && npm run component-manifest:generate && tsc --noEmit",
|
|
34
53
|
"build": "npm run tokens:build",
|
|
35
54
|
"package:check": "node scripts/check-package-exports.mjs",
|
|
55
|
+
"postinstall": "node ./consumer-postinstall.mjs",
|
|
36
56
|
"prepack": "npm run tokens:build",
|
|
37
57
|
"test:unit": "vitest run",
|
|
38
58
|
"test": "npm run tokens:build && npm run test:unit"
|
|
@@ -46,7 +66,9 @@
|
|
|
46
66
|
"sideEffects": [
|
|
47
67
|
"./dist/tokens.css",
|
|
48
68
|
"./dist/styles.css",
|
|
49
|
-
"./dist/fonts.css"
|
|
69
|
+
"./dist/fonts.css",
|
|
70
|
+
"./dist/components.css",
|
|
71
|
+
"./dist/base.css"
|
|
50
72
|
],
|
|
51
73
|
"peerDependencies": {
|
|
52
74
|
"react": ">=18.2 <20"
|
|
@@ -106,11 +128,20 @@
|
|
|
106
128
|
"./tokens.css": "./dist/tokens.css",
|
|
107
129
|
"./styles.css": "./dist/styles.css",
|
|
108
130
|
"./fonts.css": "./dist/fonts.css",
|
|
131
|
+
"./components.css": "./dist/components.css",
|
|
132
|
+
"./base.css": "./dist/base.css",
|
|
109
133
|
"./tokens.json": "./dist/tokens.json",
|
|
110
134
|
"./components/Button/README.md": "./dist/components/Button/README.md",
|
|
111
135
|
"./components/Button/spec.json": "./dist/components/Button/spec.json",
|
|
136
|
+
"./CONSUMER_AGENT.md": "./CONSUMER_AGENT.md",
|
|
137
|
+
"./AI.md": "./AI.md",
|
|
138
|
+
"./CHANGELOG.md": "./CHANGELOG.md",
|
|
139
|
+
"./AI_CONTEXT.json": "./AI_CONTEXT.json",
|
|
140
|
+
"./TOKEN_CONTEXT.md": "./TOKEN_CONTEXT.md",
|
|
112
141
|
"./llms.txt": "./llms.txt",
|
|
113
142
|
"./TAILWIND_V4.md": "./TAILWIND_V4.md",
|
|
143
|
+
"./QUICKSTART.md": "./QUICKSTART.md",
|
|
144
|
+
"./FRONTEND_CONVENTIONS.md": "./FRONTEND_CONVENTIONS.md",
|
|
114
145
|
"./package.json": "./package.json"
|
|
115
146
|
}
|
|
116
147
|
}
|