Skip to content

Commit fa54689

Browse files
committed
chore: @fieldstack/ui 패키지 스캐폴딩 추가
1 parent 576121a commit fa54689

6 files changed

Lines changed: 120 additions & 0 deletions

File tree

packages/ui/package.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "@fieldstack/ui",
3+
"private": true,
4+
"version": "0.0.0",
5+
"main": "dist/index.js",
6+
"types": "dist/index.d.ts",
7+
"scripts": {
8+
"build": "tsc",
9+
"test": "vitest run --passWithNoTests",
10+
"typecheck": "tsc --noEmit"
11+
},
12+
"dependencies": {
13+
"@fieldstack/core": "workspace:*"
14+
},
15+
"devDependencies": {
16+
"vitest": "^2.1.9"
17+
}
18+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
export type ControlTier = "p0" | "p0_5" | "p1" | "p2";
2+
3+
export type ControlName =
4+
| "alert"
5+
| "button"
6+
| "checkbox"
7+
| "combobox"
8+
| "empty-state"
9+
| "form-field"
10+
| "input"
11+
| "modal"
12+
| "otp-pin-input"
13+
| "password-input"
14+
| "progress"
15+
| "radio"
16+
| "search-input"
17+
| "select"
18+
| "skeleton"
19+
| "spinner"
20+
| "switch"
21+
| "textarea"
22+
| "toast";
23+
24+
export interface ControlDescriptor {
25+
name: ControlName;
26+
tier: ControlTier;
27+
ready: boolean;
28+
}
29+
30+
export const CONTROL_DESCRIPTORS: ControlDescriptor[] = [
31+
{ name: "button", tier: "p0", ready: false },
32+
{ name: "input", tier: "p0", ready: false },
33+
{ name: "select", tier: "p0", ready: false },
34+
{ name: "combobox", tier: "p0", ready: false },
35+
{ name: "checkbox", tier: "p0", ready: false },
36+
{ name: "radio", tier: "p0", ready: false },
37+
{ name: "switch", tier: "p0", ready: false },
38+
{ name: "modal", tier: "p0", ready: false },
39+
{ name: "form-field", tier: "p0", ready: false },
40+
{ name: "alert", tier: "p0", ready: false },
41+
{ name: "progress", tier: "p0", ready: false },
42+
{ name: "textarea", tier: "p0_5", ready: false },
43+
{ name: "password-input", tier: "p0_5", ready: false },
44+
{ name: "otp-pin-input", tier: "p0_5", ready: false },
45+
{ name: "search-input", tier: "p0_5", ready: false },
46+
{ name: "spinner", tier: "p0_5", ready: false },
47+
{ name: "toast", tier: "p0_5", ready: false },
48+
{ name: "empty-state", tier: "p0_5", ready: false },
49+
{ name: "skeleton", tier: "p0_5", ready: false }
50+
];

packages/ui/src/contracts.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export interface UiProviderConfig {
2+
useRadixPrimitives: boolean;
3+
useShadcnPatterns: boolean;
4+
}
5+
6+
export interface UiPackageMetadata {
7+
name: "@fieldstack/ui";
8+
version: string;
9+
}
10+
11+
export const UI_PROVIDER_CONFIG_DEFAULTS: UiProviderConfig = {
12+
useRadixPrimitives: true,
13+
useShadcnPatterns: true
14+
};
15+
16+
export const UI_PACKAGE_METADATA: UiPackageMetadata = {
17+
name: "@fieldstack/ui",
18+
version: "0.0.0"
19+
};

packages/ui/src/foundation.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export interface ThemeColorScale {
2+
[key: string]: string;
3+
}
4+
5+
export interface UiThemeTokens {
6+
primary: ThemeColorScale;
7+
success: ThemeColorScale;
8+
warning: ThemeColorScale;
9+
danger: ThemeColorScale;
10+
}
11+
12+
export const UI_THEME_TOKENS_BASE: UiThemeTokens = {
13+
primary: { "500": "#3B82F6" },
14+
success: { "500": "#10B981" },
15+
warning: { "500": "#F59E0B" },
16+
danger: { "500": "#EF4444" }
17+
};

packages/ui/src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export * from "./components";
2+
export * from "./contracts";
3+
export * from "./foundation";

packages/ui/tsconfig.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"extends": "../../tsconfig.json",
3+
"compilerOptions": {
4+
"outDir": "dist",
5+
"rootDir": "src",
6+
"declaration": true,
7+
"noEmit": false,
8+
"moduleResolution": "Node",
9+
"module": "CommonJS",
10+
"jsx": "react-jsx"
11+
},
12+
"include": ["src/**/*.ts", "src/**/*.tsx"]
13+
}

0 commit comments

Comments
 (0)